@openhands/agent-canvas 1.0.0-beta.5 → 1.0.0-beta.7
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 +24 -7
- package/README.windows.md +27 -0
- package/bin/agent-canvas.mjs +26 -3
- package/build/assets/{QueryClientProvider-CkGuhXg-.js → QueryClientProvider-Cnr-Yl3j.js} +1 -1
- package/build/assets/{Trans-Cvm_-SMi.js → Trans-4jmk54WC.js} +1 -1
- package/build/assets/acp-providers-CPdgcp13.js +1 -0
- package/build/assets/{acp-route-guard-B2yoBZ_4.js → acp-route-guard-BoVmCn0e.js} +1 -1
- package/build/assets/active-backend-context-Beu-LZL-.js +1 -0
- package/build/assets/add-backend-modal-BheqYXHK.js +1 -0
- package/build/assets/agent-server-client-options-HEOwGVIU.js +1 -0
- package/build/assets/agent-server-compatibility-CdI3N7dr.js +1 -0
- package/build/assets/agent-server-conversation-service.api-CORdqJZg.js +5 -0
- package/build/assets/{agent-settings-CnGSCmK8.js → agent-settings-UFvcGjoI.js} +1 -1
- package/build/assets/{alert-banner-DtzAX654.js → alert-banner-DFnn_lC6.js} +1 -1
- package/build/assets/{analytics-consent-form-modal-CHZ3I37v.js → analytics-consent-form-modal-CVNugqzu.js} +1 -1
- package/build/assets/api-key-entry-screen-M6su2VSf.js +1 -0
- package/build/assets/{app-settings-Db9ITeJH.js → app-settings-BlvBhBdc.js} +1 -1
- package/build/assets/automation-detail-BWrQk4Oa.js +1 -0
- package/build/assets/automations-list-ux9KvYsU.js +1 -0
- package/build/assets/back-nav-button-7dQJ2k3O.js +1 -0
- package/build/assets/backend-form-modal-CDnEYjaU.js +1 -0
- package/build/assets/{backend-synced-settings-badge-Dc6c7GT4.js → backend-synced-settings-badge-BTIj-Ffq.js} +1 -1
- package/build/assets/base-modal-C2oy2EBG.js +1 -0
- package/build/assets/brand-button-DJ_S16rO.js +1 -0
- package/build/assets/{browser-D810xUYt.js → browser-CGM-k-sH.js} +2 -2
- package/build/assets/browser-store-DAsixKdU.js +1 -0
- package/build/assets/{browser-tab-B-aIqXRl.js → browser-tab-dvSPdvkm.js} +1 -1
- package/build/assets/{checkmark-DL7acQA7.js → checkmark-Dus0b6jt.js} +1 -1
- package/build/assets/{chevron-left-small-CVWf8TI6.js → chevron-left-small-_uvG7RVM.js} +1 -1
- package/build/assets/{circle-plus-check-toggle-P7ZZToV4.js → circle-plus-check-toggle-DKS8MAVV.js} +1 -1
- package/build/assets/{close-B5LROHR3.js → close-BU5iTc66.js} +1 -1
- package/build/assets/code-tag-BzyqOtPD.js +1 -0
- package/build/assets/combobox-caret-BJC7XJsz.js +1 -0
- package/build/assets/{command-store-DFN_17p1.js → command-store-CE1weJy8.js} +1 -1
- package/build/assets/{condenser-settings-wnEKhBof.js → condenser-settings-BolbDvm5.js} +1 -1
- package/build/assets/{confirmation-modal-Dau3w_sa.js → confirmation-modal-B5Ca6qFE.js} +1 -1
- package/build/assets/context-menu-list-item-7tAcm2c3.js +1 -0
- package/build/assets/conversation-D0N4dw_p.js +19 -0
- package/build/assets/conversation-DhRJuZLG.js +1 -0
- package/build/assets/conversation-panel-CNqHbS_Z.js +1 -0
- package/build/assets/conversation-service.api-BsJy6uuL.js +1 -0
- package/build/assets/conversation-state-store-D-w0uurj.js +1 -0
- package/build/assets/conversation-store-CC-isCnP.js +1 -0
- package/build/assets/{conversation-tab-empty-state-DyssnnWa.js → conversation-tab-empty-state-CStQLPVW.js} +1 -1
- package/build/assets/conversation-websocket-context-DvHgx_FE.js +3 -0
- package/build/assets/{copy-DYgmUdIw.js → copy-Chg-sFu3.js} +1 -1
- package/build/assets/{custom-toast-handlers-C-SZFmto.js → custom-toast-handlers-ufGJ6_Rc.js} +1 -1
- package/build/assets/declaration-CR6HMp29.js +1 -0
- package/build/assets/{device-verify-DqDlphsG.js → device-verify-C6mj28zv.js} +1 -1
- package/build/assets/dist-DNeWJ2bh.js +1 -0
- package/build/assets/dropdown-classes-BsVmxlNG.js +1 -0
- package/build/assets/edit-automation-modal-BpX-t-HD.js +1 -0
- package/build/assets/ellipsis-button-Vh5MvRZa.js +1 -0
- package/build/assets/entry.client-Ck9rQCg-.js +2 -0
- package/build/assets/enum-filter-dropdown-5JeF2RLb.js +1 -0
- package/build/assets/{environment-switch-overlay-XL8yCGP6.js → environment-switch-overlay-Tf_BIfeR.js} +1 -1
- package/build/assets/extensions-hub-CE9QOb5n.js +1 -0
- package/build/assets/{extensions-navigation-BYR8Giqq.js → extensions-navigation-DSLGNGbS.js} +1 -1
- package/build/assets/file-BTY6Gyy9.js +1 -0
- package/build/assets/files-tab-cL668j1I.js +1 -0
- package/build/assets/files-tab-store-m0ARqX_E.js +1 -0
- package/build/assets/{folder-ZZJVGgd7.js → folder-D1T2W1cj.js} +1 -1
- package/build/assets/git-control-bar-branch-button-DtIrOrie.js +27 -0
- package/build/assets/git-provider-icon-CHdGBdU2.js +1 -0
- package/build/assets/globe-Bzj_0oXT.js +1 -0
- package/build/assets/home-Cz2Veg56.js +1 -0
- package/build/assets/{i18n-CTohRuoO.js → i18n-DET2iOyh.js} +1 -1
- package/build/assets/install-server-modal-B9nXCS3u.js +1 -0
- package/build/assets/launch-CWz0dm4o.js +1 -0
- package/build/assets/{lesson-plan-dH5Bj0pN.js → lesson-plan-duSsqWVs.js} +1 -1
- package/build/assets/link-external-DGxVm4Ps.js +1 -0
- package/build/assets/{llm-client-DaH1TuyR.js → llm-client-CYEaUjGx.js} +1 -1
- package/build/assets/llm-settings-DFkXHuvT.js +1 -0
- package/build/assets/llm-settings-DhrdCXqX.js +1 -0
- package/build/assets/{loading-spinner-BPtYORNK.js → loading-spinner-5GT9q1xy.js} +1 -1
- package/build/assets/manage-backends-modal-DpBD_vR9.js +1 -0
- package/build/assets/manage-workspaces-modal-CtRbxREx.js +1 -0
- package/build/assets/manifest-eed90ff5.js +1 -0
- package/build/assets/{markdown-renderer-DMzf2i4x.js → markdown-renderer-B3IAVfv4.js} +1 -1
- package/build/assets/mcp-BUe7kiYM.js +9 -0
- package/build/assets/messages-dqp_KYyl.js +36 -0
- package/build/assets/{modal-backdrop-BAbgYsqB.js → modal-backdrop-RfNCrSpK.js} +1 -1
- package/build/assets/{modal-body-BI6Ru2Qr.js → modal-body-aoa2fx5W.js} +1 -1
- package/build/assets/modal-classes-6YqcqA6y.js +1 -0
- package/build/assets/{modal-close-button-t1Gh3qmL.js → modal-close-button-CtWOUMmw.js} +1 -1
- package/build/assets/{model-selector-SM9IUz-q.js → model-selector-BvSTrkhT.js} +1 -1
- package/build/assets/{navigation-context-D0YWpT8d.js → navigation-context-BdKYH32C.js} +1 -1
- package/build/assets/{navigation-link-Cn7KP3c5.js → navigation-link-U4vY9i_C.js} +1 -1
- package/build/assets/{openhands-logo-CnrF6LKb.js → openhands-logo-CCo0wJZX.js} +1 -1
- package/build/assets/{option-service.api-KvY_mZMY.js → option-service.api-DmNVxAvS.js} +1 -1
- package/build/assets/{organization-service.api-DzYTHTYC.js → organization-service.api-DbnougaQ.js} +1 -1
- package/build/assets/{path-utils-C3bQf6lJ.js → path-utils-onx24uF5.js} +1 -1
- package/build/assets/{plan-components-atxXCF0R.js → plan-components-CRDMQzsS.js} +1 -1
- package/build/assets/{planner-tab-BlrCpv-7.js → planner-tab-CmIjLz7q.js} +1 -1
- package/build/assets/{profiles-client-D6IkTJof.js → profiles-client-fEmgWkCW.js} +1 -1
- package/build/assets/{providers-Bx6EfrzZ.js → providers-CbD7fiic.js} +1 -1
- package/build/assets/proxy-BAdHH8QB.js +1 -0
- package/build/assets/{query-client-config-B7u9asM0.js → query-client-config-CRnGSujB.js} +1 -1
- package/build/assets/{recommended-automations-launcher-BQChv2rc.js → recommended-automations-launcher-uTyODuzB.js} +3 -3
- package/build/assets/{root-BgEbw3S0.js → root-DmjpFpTu.js} +2 -2
- package/build/assets/root-Z2VHU4R3.css +1 -0
- package/build/assets/root-layout-DejMsKhy.js +2 -0
- package/build/assets/{sdk-section-page-DOIKvwSL.js → sdk-section-page-BgDlMhcq.js} +1 -1
- package/build/assets/{sdk-settings-schema-DsUf9wu1.js → sdk-settings-schema-CLmJ9sho.js} +1 -1
- package/build/assets/{search-27Owlc3A.js → search-SuJctqNJ.js} +1 -1
- package/build/assets/secrets-service-B7CxNinp.js +1 -0
- package/build/assets/secrets-settings-yK7CqIpm.js +1 -0
- package/build/assets/{server-client-DyAQ3NZ_.js → server-client-Kh4QSwDJ.js} +1 -1
- package/build/assets/{settings-BYkVX7vW.js → settings-DN5PpgRD.js} +1 -1
- package/build/assets/{settings-dropdown-input-BJYvGdg-.js → settings-dropdown-input-BtoovFre.js} +1 -1
- package/build/assets/{settings-gear-C77PgE_O.js → settings-gear-Dd8K2_8B.js} +1 -1
- package/build/assets/settings-index-DKC8IY1P.js +1 -0
- package/build/assets/{settings-input-Bn7F5C75.js → settings-input-CehsXnb3.js} +1 -1
- package/build/assets/settings-list-classes-E3v_f6QG.js +1 -0
- package/build/assets/settings-modal-DJ4kGzUx.js +1 -0
- package/build/assets/{settings-section-header-context-BgZe5YkE.js → settings-section-header-context-DewwJ0-F.js} +1 -1
- package/build/assets/settings-service.api-C3rxTtPj.js +1 -0
- package/build/assets/{settings-switch-BeIKrWms.js → settings-switch-BiBuS3xa.js} +1 -1
- package/build/assets/{settings-utils-B6Nl07io.js → settings-utils-DY04tWG1.js} +1 -1
- package/build/assets/{shared-conversation-AMyqXvpk.js → shared-conversation-h9YnBtCU.js} +1 -1
- package/build/assets/sidebar-mobile-menu-toggle-D0-AvsnT.js +1 -0
- package/build/assets/{sidebar-nav-link-BGjiJq-4.js → sidebar-nav-link-OhIeFyna.js} +1 -1
- package/build/assets/{sidebar-store-Uy3v0AOV.js → sidebar-store-DnQAJAE5.js} +1 -1
- package/build/assets/{skill-card-pill-row-DF1axQCG.js → skill-card-pill-row-BW9qvhoK.js} +1 -1
- package/build/assets/{skills-ChIKZPK4.js → skills-0GRKX5Xj.js} +1 -1
- package/build/assets/{skills-plugins-CcI_19lM.js → skills-plugins-DNcsNF88.js} +1 -1
- package/build/assets/skills-settings-7liFiSY6.js +2 -0
- package/build/assets/{styled-tooltip-CBzrri6o.js → styled-tooltip-hdfMXPQC.js} +1 -1
- package/build/assets/{switch-skeleton-DnC9wLp7.js → switch-skeleton-DSKqSx2A.js} +1 -1
- package/build/assets/{task-list-tab-DUJn1sgz.js → task-list-tab-DT6_zfUs.js} +1 -1
- package/build/assets/{terminal-DgQk1Ay6.js → terminal-CDhQGDua.js} +2 -2
- package/build/assets/{terminal-RmuaSdhJ.js → terminal-CPYWdo4j.js} +1 -1
- package/build/assets/{toggle-switch-Pvyp2RAN.js → toggle-switch-T2v6sJ6l.js} +1 -1
- package/build/assets/{typography-gpuWmrQO.js → typography-BDgnT7Yp.js} +1 -1
- package/build/assets/{u-check-circle-IUIfACQQ.js → u-check-circle-DOauqQKb.js} +1 -1
- package/build/assets/{u-check-circle-half-C1YxB6py.js → u-check-circle-half-steSK_JB.js} +1 -1
- package/build/assets/{u-circuit-BmVikJHu.js → u-circuit-x3ExjBbU.js} +1 -1
- package/build/assets/{u-edit-CFvXHqZk.js → u-edit-BbrptMCa.js} +1 -1
- package/build/assets/{use-active-conversation-BEFNwnFk.js → use-active-conversation-DHGcmjCK.js} +1 -1
- package/build/assets/use-agent-settings-schema-CLoTOSJI.js +1 -0
- package/build/assets/{use-agent-state-Bkrd1FZq.js → use-agent-state-PKrUPMJ3.js} +1 -1
- package/build/assets/{use-cloud-current-user-id-CvkXFnTT.js → use-cloud-current-user-id-Ddr75hEz.js} +1 -1
- package/build/assets/{use-config-Co1O8-Ey.js → use-config-OIMQLQ2s.js} +1 -1
- package/build/assets/{use-create-conversation-CEgXpkfH.js → use-create-conversation-Bszyp13O.js} +1 -1
- package/build/assets/{use-event-store-BT_gV3ut.js → use-event-store-BomO7ywK.js} +1 -1
- package/build/assets/{use-get-secrets-DuhdIA59.js → use-get-secrets-8Jby8ele.js} +1 -1
- package/build/assets/{use-handle-plan-click-Ckkm5eIY.js → use-handle-plan-click-CohJPvvW.js} +1 -1
- package/build/assets/use-is-authed-dw2026rR.js +1 -0
- package/build/assets/{use-is-creating-conversation-BZ5hB_Bg.js → use-is-creating-conversation-DX2qSlfL.js} +1 -1
- package/build/assets/{use-launch-skill-in-chat-fNN_xGZG.js → use-launch-skill-in-chat-sQNEOLGD.js} +1 -1
- package/build/assets/use-llm-profiles-C861aFAq.js +1 -0
- package/build/assets/use-runtime-is-ready-Do2h_hRl.js +1 -0
- package/build/assets/{use-save-settings-VUrj_QNG.js → use-save-settings-DkAOEfD9.js} +1 -1
- package/build/assets/use-settings-D5hbTS9t.js +1 -0
- package/build/assets/{use-settings-nav-items-1ZvovKSr.js → use-settings-nav-items-BcSbo02d.js} +1 -1
- package/build/assets/{use-skills-DAMLFjKU.js → use-skills-D7PS0fH0.js} +1 -1
- package/build/assets/{use-task-list-CLJbuJgM.js → use-task-list-CsT10CBb.js} +1 -1
- package/build/assets/{use-unified-vscode-url-DdSRw-6P.js → use-unified-vscode-url-DEoe-NRI.js} +1 -1
- package/build/assets/use-user-conversation-Cs5H1pUF.js +1 -0
- package/build/assets/{useMutation-DqrumCWD.js → useMutation-GSSKKebK.js} +1 -1
- package/build/assets/{useTranslation-DCOdSSMl.js → useTranslation-B6voJV4y.js} +1 -1
- package/build/assets/utils-DCVfKFRt.js +1 -0
- package/build/assets/{vendor~browser-BNjNhjFU.js → vendor~browser-BrOJLj3y.js} +1 -1
- package/build/assets/vendor~conversation-panel~conversation-C9o-K1hW.js +1 -0
- package/build/assets/vendor~conversation-panel~conversation~index-RXYdJYxU.js +1 -0
- package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-DJS-rJdI.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DpAdkv8m.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-6ByzelMS.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B92czPCF.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BED5W_c4.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-By5W2oHN.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CCbqAFiI.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BbFOrAjI.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CG96FCly.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-smY2r837.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-E4d6IEfI.js} +1 -1
- package/build/assets/vendor~home~mcp~automations-list-CZSK-lT2.js +1 -0
- package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-Z3nsiNNq.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CjJdFLoM.js} +1 -1
- package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DbfELDJu.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-m8dOii0J.js} +2 -2
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation-DjAjXS5J.js → vendor~root-layout~home~conversation-panel~conversation-B5WNMnt4.js} +1 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-CbAhtEMv.js +1 -0
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-6Rm8U_Sr.js +9 -0
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BkQGKpye.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-tTR8C6m0.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-Bbs7UJ5U.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-BJbu9kpL.js} +2 -2
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-DTwbEEcX.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-hTzSytKK.js} +1 -1
- package/build/assets/{vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js → vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-DYXOLEck.js} +1 -1
- package/build/assets/{verification-settings-CsbvQcYS.js → verification-settings-Dlt8pINd.js} +1 -1
- package/build/assets/{vscode-tab-DjNArCgY.js → vscode-tab-DgepcYtF.js} +1 -1
- package/build/assets/{waiting-for-runtime-message-CntjExbU.js → waiting-for-runtime-message-CdK3btDZ.js} +1 -1
- package/build/assets/{x-mark-CrpjscNc.js → x-mark-BrkSPIiT.js} +1 -1
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +20 -2
- package/build/locales/ca/openhands.json +20 -2
- package/build/locales/de/openhands.json +20 -2
- package/build/locales/en/openhands.json +20 -2
- package/build/locales/es/openhands.json +20 -2
- package/build/locales/fr/openhands.json +20 -2
- package/build/locales/it/openhands.json +20 -2
- package/build/locales/ja/openhands.json +20 -2
- package/build/locales/ko-KR/openhands.json +20 -2
- package/build/locales/no/openhands.json +20 -2
- package/build/locales/pt/openhands.json +20 -2
- package/build/locales/tr/openhands.json +20 -2
- package/build/locales/uk/openhands.json +20 -2
- package/build/locales/zh-CN/openhands.json +20 -2
- package/build/locales/zh-TW/openhands.json +20 -2
- package/dist/api/acp-service/acp-service.api.d.ts +18 -0
- 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.js +54 -55
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/agent-server-client-options.cjs +1 -1
- package/dist/api/agent-server-client-options.cjs.map +1 -1
- package/dist/api/agent-server-client-options.d.ts +4 -0
- package/dist/api/agent-server-client-options.js +18 -12
- package/dist/api/agent-server-client-options.js.map +1 -1
- package/dist/api/agent-server-compatibility.cjs +1 -1
- package/dist/api/agent-server-compatibility.cjs.map +1 -1
- package/dist/api/agent-server-compatibility.d.ts +1 -1
- package/dist/api/agent-server-compatibility.js +30 -25
- package/dist/api/agent-server-compatibility.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 +1 -51
- package/dist/api/agent-server-config.js +20 -70
- package/dist/api/agent-server-config.js.map +1 -1
- package/dist/api/backend-registry/active-store.cjs +1 -1
- package/dist/api/backend-registry/active-store.cjs.map +1 -1
- package/dist/api/backend-registry/active-store.d.ts +11 -5
- package/dist/api/backend-registry/active-store.js +36 -27
- package/dist/api/backend-registry/active-store.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 +3 -9
- 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 +9 -16
- package/dist/api/backend-registry/default-backend.js +5 -4
- 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 +67 -34
- package/dist/api/backend-registry/storage.js.map +1 -1
- package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
- package/dist/api/cloud/conversation-service.api.d.ts +8 -13
- package/dist/api/cloud/conversation-service.api.js.map +1 -1
- package/dist/api/cloud/organization-service.api.cjs.map +1 -1
- package/dist/api/cloud/organization-service.api.d.ts +1 -2
- 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 +6 -6
- package/dist/api/cloud/proxy.js +33 -24
- package/dist/api/cloud/proxy.js.map +1 -1
- package/dist/api/cloud/sandbox-service.api.cjs.map +1 -1
- package/dist/api/cloud/sandbox-service.api.d.ts +3 -3
- package/dist/api/cloud/sandbox-service.api.js.map +1 -1
- package/dist/api/cloud/secrets-service.api.cjs.map +1 -1
- package/dist/api/cloud/secrets-service.api.d.ts +3 -4
- package/dist/api/cloud/secrets-service.api.js.map +1 -1
- package/dist/api/cloud/settings-service.api.cjs +1 -1
- package/dist/api/cloud/settings-service.api.cjs.map +1 -1
- package/dist/api/cloud/settings-service.api.js +5 -1
- package/dist/api/cloud/settings-service.api.js.map +1 -1
- package/dist/api/cloud/skills-service.api.cjs.map +1 -1
- package/dist/api/cloud/skills-service.api.d.ts +5 -5
- package/dist/api/cloud/skills-service.api.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.js +115 -108
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- 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 +3 -5
- package/dist/api/device-flow-client.js +55 -66
- package/dist/api/device-flow-client.js.map +1 -1
- package/dist/api/event-service/event-service.api.cjs +1 -1
- package/dist/api/event-service/event-service.api.cjs.map +1 -1
- package/dist/api/event-service/event-service.api.d.ts +3 -3
- package/dist/api/event-service/event-service.api.js +17 -17
- package/dist/api/event-service/event-service.api.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.js +11 -11
- package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
- package/dist/api/runtime-service/agent-server-runtime-service.js +6 -6
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-content.cjs +2 -2
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-content.js +10 -10
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.d.ts +5 -5
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js.map +1 -1
- package/dist/components/features/automations/automation-action-button-classes.d.ts +2 -2
- 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 +1 -0
- package/dist/components/features/backends/backend-form-modal.js +203 -140
- package/dist/components/features/backends/backend-form-modal.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 +117 -105
- package/dist/components/features/backends/backend-selector.js.map +1 -1
- package/dist/components/features/backends/backend-status-dot.cjs +1 -1
- package/dist/components/features/backends/backend-status-dot.cjs.map +1 -1
- package/dist/components/features/backends/backend-status-dot.d.ts +1 -1
- package/dist/components/features/backends/backend-status-dot.js +1 -1
- package/dist/components/features/backends/backend-status-dot.js.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.js +81 -70
- package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
- package/dist/components/features/chat/change-agent-button.cjs +1 -1
- package/dist/components/features/chat/change-agent-button.cjs.map +1 -1
- package/dist/components/features/chat/change-agent-button.js +59 -57
- package/dist/components/features/chat/change-agent-button.js.map +1 -1
- package/dist/components/features/chat/change-agent-context-menu.cjs +1 -1
- package/dist/components/features/chat/change-agent-context-menu.cjs.map +1 -1
- package/dist/components/features/chat/change-agent-context-menu.d.ts +3 -1
- package/dist/components/features/chat/change-agent-context-menu.js +30 -25
- package/dist/components/features/chat/change-agent-context-menu.js.map +1 -1
- package/dist/components/features/chat/chat-add-file-button.cjs +1 -1
- package/dist/components/features/chat/chat-add-file-button.cjs.map +1 -1
- package/dist/components/features/chat/chat-add-file-button.js +39 -38
- package/dist/components/features/chat/chat-add-file-button.js.map +1 -1
- package/dist/components/features/chat/chat-message.cjs +1 -1
- package/dist/components/features/chat/chat-message.cjs.map +1 -1
- package/dist/components/features/chat/chat-message.d.ts +2 -1
- package/dist/components/features/chat/chat-message.js +185 -57
- package/dist/components/features/chat/chat-message.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.js +113 -113
- package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-model.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-model.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-model.js +52 -51
- package/dist/components/features/chat/components/chat-input-model.js.map +1 -1
- package/dist/components/features/chat/components/slash-command-menu.cjs +2 -2
- package/dist/components/features/chat/components/slash-command-menu.cjs.map +1 -1
- package/dist/components/features/chat/components/slash-command-menu.js +38 -34
- package/dist/components/features/chat/components/slash-command-menu.js.map +1 -1
- package/dist/components/features/chat/git-control-bar-pr-button.cjs +1 -1
- package/dist/components/features/chat/git-control-bar-pr-button.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar-pr-button.js +16 -15
- package/dist/components/features/chat/git-control-bar-pr-button.js.map +1 -1
- package/dist/components/features/chat/git-control-bar-pull-button.cjs +1 -1
- package/dist/components/features/chat/git-control-bar-pull-button.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar-pull-button.js +16 -15
- package/dist/components/features/chat/git-control-bar-pull-button.js.map +1 -1
- package/dist/components/features/chat/git-control-bar-push-button.cjs +1 -1
- package/dist/components/features/chat/git-control-bar-push-button.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar-push-button.js +16 -15
- package/dist/components/features/chat/git-control-bar-push-button.js.map +1 -1
- package/dist/components/features/chat/git-control-bar.cjs +1 -1
- package/dist/components/features/chat/git-control-bar.cjs.map +1 -1
- package/dist/components/features/chat/git-control-bar.js +63 -62
- package/dist/components/features/chat/git-control-bar.js.map +1 -1
- package/dist/components/features/chat/pending-user-messages.cjs +1 -1
- package/dist/components/features/chat/pending-user-messages.cjs.map +1 -1
- package/dist/components/features/chat/pending-user-messages.js +27 -23
- package/dist/components/features/chat/pending-user-messages.js.map +1 -1
- package/dist/components/features/chat/switch-profile-button.cjs +1 -1
- package/dist/components/features/chat/switch-profile-button.cjs.map +1 -1
- package/dist/components/features/chat/switch-profile-button.js +26 -25
- package/dist/components/features/chat/switch-profile-button.js.map +1 -1
- package/dist/components/features/chat/switch-profile-context-menu.cjs +1 -1
- package/dist/components/features/chat/switch-profile-context-menu.cjs.map +1 -1
- package/dist/components/features/chat/switch-profile-context-menu.js +77 -67
- package/dist/components/features/chat/switch-profile-context-menu.js.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.cjs +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.cjs.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.d.ts +2 -1
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.js +3 -2
- package/dist/components/features/context-menu/context-menu-icon-text-with-description.js.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text.cjs +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/context-menu/context-menu-icon-text.d.ts +2 -1
- package/dist/components/features/context-menu/context-menu-icon-text.js +20 -10
- package/dist/components/features/context-menu/context-menu-icon-text.js.map +1 -1
- package/dist/components/features/context-menu/context-menu-list-item.cjs +1 -1
- package/dist/components/features/context-menu/context-menu-list-item.cjs.map +1 -1
- package/dist/components/features/context-menu/context-menu-list-item.js +10 -9
- package/dist/components/features/context-menu/context-menu-list-item.js.map +1 -1
- package/dist/components/features/controls/agent-status.cjs +1 -1
- package/dist/components/features/controls/agent-status.js +12 -12
- package/dist/components/features/controls/git-tools-submenu.cjs +1 -1
- package/dist/components/features/controls/git-tools-submenu.cjs.map +1 -1
- package/dist/components/features/controls/git-tools-submenu.js +1 -1
- package/dist/components/features/controls/git-tools-submenu.js.map +1 -1
- package/dist/components/features/controls/macros-submenu.cjs +1 -1
- package/dist/components/features/controls/macros-submenu.cjs.map +1 -1
- package/dist/components/features/controls/macros-submenu.js +1 -1
- package/dist/components/features/controls/macros-submenu.js.map +1 -1
- package/dist/components/features/controls/server-status-context-menu-icon-text.cjs +1 -1
- package/dist/components/features/controls/server-status-context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/controls/server-status-context-menu-icon-text.js +14 -15
- package/dist/components/features/controls/server-status-context-menu-icon-text.js.map +1 -1
- package/dist/components/features/controls/server-status-context-menu.cjs +1 -1
- package/dist/components/features/controls/server-status-context-menu.js +4 -4
- package/dist/components/features/controls/server-status.cjs +1 -1
- package/dist/components/features/controls/server-status.js +7 -7
- package/dist/components/features/controls/tools-context-menu-icon-text.cjs +1 -1
- package/dist/components/features/controls/tools-context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/controls/tools-context-menu-icon-text.js +16 -16
- package/dist/components/features/controls/tools-context-menu-icon-text.js.map +1 -1
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.cjs +1 -1
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.js +11 -11
- package/dist/components/features/conversation/conversation-name-context-menu-icon-text.js.map +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.cjs +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.js +11 -11
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +60 -47
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js +86 -82
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js +4 -4
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +9 -9
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js +93 -93
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.js +177 -177
- package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
- package/dist/components/features/conversation-panel/ellipsis-button.cjs +1 -1
- package/dist/components/features/conversation-panel/ellipsis-button.cjs.map +1 -1
- package/dist/components/features/conversation-panel/ellipsis-button.js +13 -13
- package/dist/components/features/conversation-panel/ellipsis-button.js.map +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js +57 -53
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.cjs +1 -1
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.cjs.map +1 -1
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.js +3 -2
- package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.js.map +1 -1
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.cjs +1 -1
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.cjs.map +1 -1
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.js +11 -8
- package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.js.map +1 -1
- package/dist/components/features/conversation-panel/system-message-modal/tab-content.cjs.map +1 -1
- package/dist/components/features/conversation-panel/system-message-modal/tab-content.d.ts +2 -5
- package/dist/components/features/conversation-panel/system-message-modal/tab-content.js.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.js +45 -42
- package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
- package/dist/components/features/home/llm-not-configured-banner.d.ts +11 -0
- package/dist/components/features/home/shared/dropdown-item.cjs +1 -1
- package/dist/components/features/home/shared/dropdown-item.cjs.map +1 -1
- package/dist/components/features/home/shared/dropdown-item.js +20 -16
- package/dist/components/features/home/shared/dropdown-item.js.map +1 -1
- package/dist/components/features/home/shared/generic-dropdown-menu.cjs +1 -1
- package/dist/components/features/home/shared/generic-dropdown-menu.cjs.map +1 -1
- package/dist/components/features/home/shared/generic-dropdown-menu.js +23 -22
- package/dist/components/features/home/shared/generic-dropdown-menu.js.map +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs.map +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js +103 -102
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js.map +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs.map +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +68 -67
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js.map +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.cjs.map +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.js +62 -60
- package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
- package/dist/components/features/mcp-page/index.cjs +1 -1
- package/dist/components/features/mcp-page/index.d.ts +1 -0
- package/dist/components/features/mcp-page/index.js +1 -0
- package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
- package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
- package/dist/components/features/mcp-page/install-server-modal.js +150 -119
- package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
- package/dist/components/features/mcp-page/save-as-secret-toggle.cjs +2 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.cjs.map +1 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.d.ts +7 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.js +50 -0
- package/dist/components/features/mcp-page/save-as-secret-toggle.js.map +1 -0
- package/dist/components/features/onboarding/onboarding-modal.d.ts +2 -2
- package/dist/components/features/onboarding/steps/check-backend-step.d.ts +1 -1
- package/dist/components/features/onboarding/steps/choose-agent-step.d.ts +2 -1
- package/dist/components/features/onboarding/steps/setup-acp-secrets-step.d.ts +19 -10
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.d.ts +5 -0
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -0
- package/dist/components/features/settings/llm-profiles/profile-actions-menu.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/profile-actions-menu.js +1 -0
- package/dist/components/features/skills/extensions-navigation.cjs +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
- package/dist/components/features/skills/extensions-navigation.js +1 -1
- package/dist/components/features/skills/extensions-navigation.js.map +1 -1
- package/dist/components/shared/buttons/back-nav-button.cjs +2 -0
- package/dist/components/shared/buttons/back-nav-button.cjs.map +1 -0
- package/dist/components/shared/buttons/back-nav-button.d.ts +17 -0
- package/dist/components/shared/buttons/back-nav-button.js +33 -0
- package/dist/components/shared/buttons/back-nav-button.js.map +1 -0
- package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs +1 -1
- package/dist/components/shared/buttons/conversation-confirmation-buttons.js +5 -5
- package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.js +32 -31
- package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
- package/dist/components/shared/modals/confirmation-modals/base-modal.cjs +1 -1
- package/dist/components/shared/modals/confirmation-modals/base-modal.cjs.map +1 -1
- package/dist/components/shared/modals/confirmation-modals/base-modal.js +14 -13
- package/dist/components/shared/modals/confirmation-modals/base-modal.js.map +1 -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 +17 -16
- package/dist/components/shared/modals/settings/settings-modal.js.map +1 -1
- package/dist/components/shared/text-shimmer.cjs +2 -0
- package/dist/components/shared/text-shimmer.cjs.map +1 -0
- package/dist/components/shared/text-shimmer.d.ts +11 -0
- package/dist/components/shared/text-shimmer.js +43 -0
- package/dist/components/shared/text-shimmer.js.map +1 -0
- package/dist/constants/acp-providers.cjs +1 -1
- package/dist/constants/acp-providers.cjs.map +1 -1
- package/dist/constants/acp-providers.d.ts +16 -3
- package/dist/constants/acp-providers.js +0 -1
- package/dist/constants/acp-providers.js.map +1 -1
- package/dist/contexts/active-backend-context.cjs +1 -1
- package/dist/contexts/active-backend-context.cjs.map +1 -1
- package/dist/contexts/active-backend-context.js +32 -32
- package/dist/contexts/active-backend-context.js.map +1 -1
- package/dist/hooks/chat/use-chat-input-logic.cjs +1 -1
- package/dist/hooks/chat/use-chat-input-logic.cjs.map +1 -1
- package/dist/hooks/chat/use-chat-input-logic.js +13 -6
- package/dist/hooks/chat/use-chat-input-logic.js.map +1 -1
- package/dist/hooks/mutation/use-save-fields-as-secrets.cjs +2 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.cjs.map +1 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.d.ts +9 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.js +24 -0
- package/dist/hooks/mutation/use-save-fields-as-secrets.js.map +1 -0
- package/dist/hooks/mutation/use-unified-start-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-unified-start-conversation.js +8 -8
- package/dist/hooks/mutation/use-unified-stop-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-unified-stop-conversation.js +15 -15
- package/dist/hooks/query/use-acp-auth-status.d.ts +36 -0
- package/dist/hooks/query/use-agent-settings-schema.cjs +1 -1
- package/dist/hooks/query/use-agent-settings-schema.cjs.map +1 -1
- package/dist/hooks/query/use-agent-settings-schema.js +26 -16
- package/dist/hooks/query/use-agent-settings-schema.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.d.ts +2 -0
- package/dist/hooks/query/use-backends-health.js +31 -21
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.js +15 -14
- package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
- package/dist/hooks/query/use-settings.cjs +1 -1
- package/dist/hooks/query/use-settings.cjs.map +1 -1
- package/dist/hooks/query/use-settings.js +65 -52
- package/dist/hooks/query/use-settings.js.map +1 -1
- package/dist/hooks/query/use-user-conversation.cjs +1 -1
- package/dist/hooks/query/use-user-conversation.cjs.map +1 -1
- package/dist/hooks/query/use-user-conversation.js +20 -11
- package/dist/hooks/query/use-user-conversation.js.map +1 -1
- package/dist/hooks/use-agent-state.cjs +1 -1
- package/dist/hooks/use-agent-state.js +13 -13
- package/dist/hooks/use-conversation-name-context-menu.cjs +1 -1
- package/dist/hooks/use-conversation-name-context-menu.js +10 -10
- package/dist/hooks/use-conversation-name-context-menu.js.map +1 -1
- package/dist/hooks/use-llm-configured.d.ts +25 -0
- package/dist/hooks/use-runtime-is-ready.cjs +1 -1
- package/dist/hooks/use-runtime-is-ready.js +5 -5
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +19 -1
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +3 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +321 -15
- package/dist/i18n/translation.js.map +1 -1
- package/dist/icons/stop-circle.cjs +1 -1
- package/dist/icons/stop-circle.cjs.map +1 -1
- package/dist/icons/stop-circle.js +7 -10
- package/dist/icons/stop-circle.js.map +1 -1
- package/dist/locales/ar/openhands.json +20 -2
- package/dist/locales/ca/openhands.json +20 -2
- package/dist/locales/de/openhands.json +20 -2
- package/dist/locales/en/openhands.json +20 -2
- package/dist/locales/es/openhands.json +20 -2
- package/dist/locales/fr/openhands.json +20 -2
- package/dist/locales/it/openhands.json +20 -2
- package/dist/locales/ja/openhands.json +20 -2
- package/dist/locales/ko-KR/openhands.json +20 -2
- package/dist/locales/no/openhands.json +20 -2
- package/dist/locales/pt/openhands.json +20 -2
- package/dist/locales/tr/openhands.json +20 -2
- package/dist/locales/uk/openhands.json +20 -2
- package/dist/locales/zh-CN/openhands.json +20 -2
- package/dist/locales/zh-TW/openhands.json +20 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.js +2 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.js +2 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.js +3 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js +8 -7
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js +2 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.js +4 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.cjs +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.cjs.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js +15 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js.map +1 -0
- 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/conversation.cjs +1 -1
- package/dist/routes/conversation.cjs.map +1 -1
- package/dist/routes/conversation.js +1 -1
- package/dist/routes/conversation.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.js +55 -54
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/routes/secrets-settings.cjs +1 -1
- package/dist/routes/secrets-settings.cjs.map +1 -1
- package/dist/routes/secrets-settings.js +19 -27
- package/dist/routes/secrets-settings.js.map +1 -1
- package/dist/stores/conversation-store.cjs +1 -1
- package/dist/stores/conversation-store.cjs.map +1 -1
- package/dist/stores/conversation-store.d.ts +4 -0
- package/dist/stores/conversation-store.js +6 -0
- package/dist/stores/conversation-store.js.map +1 -1
- package/dist/types/agent-server/core/events/acp-tool-call-event.d.ts +6 -4
- package/dist/types/agent-server/core/events/system-event.d.ts +5 -0
- package/dist/types/automation.d.ts +15 -0
- package/dist/types/settings.d.ts +3 -1
- package/dist/ui/combobox-caret.cjs +1 -1
- package/dist/ui/combobox-caret.cjs.map +1 -1
- package/dist/ui/combobox-caret.d.ts +1 -1
- package/dist/ui/combobox-caret.js +9 -8
- package/dist/ui/combobox-caret.js.map +1 -1
- package/dist/ui/context-menu.cjs +1 -1
- package/dist/ui/context-menu.cjs.map +1 -1
- package/dist/ui/context-menu.js +9 -8
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/dropdown/dropdown-menu.cjs +1 -1
- package/dist/ui/dropdown/dropdown-menu.cjs.map +1 -1
- package/dist/ui/dropdown/dropdown-menu.js +21 -17
- package/dist/ui/dropdown/dropdown-menu.js.map +1 -1
- package/dist/ui/dropdown/dropdown.cjs +1 -1
- package/dist/ui/dropdown/dropdown.cjs.map +1 -1
- package/dist/ui/dropdown/dropdown.js +2 -2
- package/dist/ui/dropdown/dropdown.js.map +1 -1
- package/dist/utils/automation-schedule.d.ts +1 -0
- package/dist/utils/dropdown-classes.cjs +2 -0
- package/dist/utils/dropdown-classes.cjs.map +1 -0
- package/dist/utils/dropdown-classes.d.ts +32 -0
- package/dist/utils/dropdown-classes.js +8 -0
- package/dist/utils/dropdown-classes.js.map +1 -0
- package/dist/utils/form-control-classes.cjs +1 -1
- package/dist/utils/form-control-classes.cjs.map +1 -1
- package/dist/utils/form-control-classes.d.ts +18 -2
- package/dist/utils/form-control-classes.js +4 -3
- package/dist/utils/form-control-classes.js.map +1 -1
- package/dist/utils/git-control-bar-classes.cjs +2 -0
- package/dist/utils/git-control-bar-classes.cjs.map +1 -0
- package/dist/utils/git-control-bar-classes.d.ts +4 -0
- package/dist/utils/git-control-bar-classes.js +14 -0
- package/dist/utils/git-control-bar-classes.js.map +1 -0
- package/dist/utils/handle-event-for-ui.cjs.map +1 -1
- package/dist/utils/handle-event-for-ui.d.ts +6 -3
- package/dist/utils/handle-event-for-ui.js.map +1 -1
- package/dist/utils/mobile-top-bar-icon-button-classes.cjs +1 -1
- package/dist/utils/mobile-top-bar-icon-button-classes.cjs.map +1 -1
- package/dist/utils/mobile-top-bar-icon-button-classes.js +3 -3
- package/dist/utils/mobile-top-bar-icon-button-classes.js.map +1 -1
- package/dist/utils/modal-classes.cjs +2 -0
- package/dist/utils/modal-classes.cjs.map +1 -0
- package/dist/utils/modal-classes.d.ts +8 -0
- package/dist/utils/modal-classes.js +7 -0
- package/dist/utils/modal-classes.js.map +1 -0
- package/dist/utils/openhands-llm.cjs +2 -0
- package/dist/utils/openhands-llm.cjs.map +1 -0
- package/dist/utils/openhands-llm.d.ts +2 -0
- package/dist/utils/openhands-llm.js +9 -0
- package/dist/utils/openhands-llm.js.map +1 -0
- package/dist/utils/redact-custom-secrets.cjs +2 -0
- package/dist/utils/redact-custom-secrets.cjs.map +1 -0
- package/dist/utils/redact-custom-secrets.d.ts +6 -0
- package/dist/utils/redact-custom-secrets.js +10 -0
- package/dist/utils/redact-custom-secrets.js.map +1 -0
- package/dist/utils/status.cjs +1 -1
- package/dist/utils/status.cjs.map +1 -1
- package/dist/utils/status.d.ts +2 -1
- package/dist/utils/status.js +9 -8
- package/dist/utils/status.js.map +1 -1
- package/dist/utils/system-message-adapter.cjs +1 -1
- package/dist/utils/system-message-adapter.cjs.map +1 -1
- package/dist/utils/system-message-adapter.js +10 -7
- package/dist/utils/system-message-adapter.js.map +1 -1
- package/dist/utils/utils.cjs +1 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.d.ts +2 -1
- package/dist/utils/utils.js +21 -20
- package/dist/utils/utils.js.map +1 -1
- package/package.json +2 -2
- package/scripts/dev-safe.mjs +3 -1
- package/scripts/dev-static.mjs +2 -2
- package/scripts/dev-with-automation.mjs +283 -108
- package/scripts/static-build.mjs +20 -19
- package/scripts/static-server.mjs +50 -3
- package/build/assets/acp-providers-CbiRekh9.js +0 -1
- package/build/assets/active-backend-context-cCM1vYYZ.js +0 -1
- package/build/assets/add-backend-modal-DIUQzMPa.js +0 -1
- package/build/assets/agent-server-client-options-Bc5ZorQZ.js +0 -1
- package/build/assets/agent-server-compatibility-BlkUsrX2.js +0 -1
- package/build/assets/agent-server-conversation-service.api-C2V5SlHu.js +0 -5
- package/build/assets/api-key-entry-screen-B2gynaCp.js +0 -1
- package/build/assets/automation-detail-DJvbVSYK.js +0 -1
- package/build/assets/automations-list-rMki-8au.js +0 -1
- package/build/assets/backend-form-modal-Dnk33xA_.js +0 -1
- package/build/assets/base-modal-_dYTw1ri.js +0 -1
- package/build/assets/brand-button-Br7f0kZJ.js +0 -1
- package/build/assets/browser-store-Couc4S5D.js +0 -1
- package/build/assets/clock-BRjCgHTc.js +0 -1
- package/build/assets/combobox-caret-to1O8irE.js +0 -1
- package/build/assets/context-menu-list-item-CWNFpuiC.js +0 -1
- package/build/assets/conversation-DVrKU0oz.js +0 -19
- package/build/assets/conversation-Dlys-D5A.js +0 -1
- package/build/assets/conversation-panel-iF09WjZ4.js +0 -1
- package/build/assets/conversation-service.api-CCfztilW.js +0 -1
- package/build/assets/conversation-state-store-u5jepov0.js +0 -1
- package/build/assets/conversation-store-Z5iMCRpc.js +0 -1
- package/build/assets/conversation-websocket-context-DhJhqUna.js +0 -3
- package/build/assets/declaration-BNMqORFE.js +0 -1
- package/build/assets/dist-BxBP7tFD.js +0 -1
- package/build/assets/edit-automation-modal-BGzR3nfZ.js +0 -1
- package/build/assets/ellipsis-button-ZyLMPURn.js +0 -1
- package/build/assets/entry.client-1VMHpktY.js +0 -2
- package/build/assets/enum-filter-dropdown-CEgCdu4A.js +0 -1
- package/build/assets/extensions-hub-C651jsVh.js +0 -1
- package/build/assets/files-tab-R5z0lLdY.js +0 -1
- package/build/assets/files-tab-store-CDyVTXNT.js +0 -1
- package/build/assets/git-control-bar-branch-button-COdRAYHb.js +0 -27
- package/build/assets/git-provider-icon-BzLbc0yC.js +0 -1
- package/build/assets/home-XxBpNOVq.js +0 -1
- package/build/assets/install-server-modal-f31_CLrW.js +0 -1
- package/build/assets/launch-CshDse3e.js +0 -1
- package/build/assets/link-external-D2POYx4c.js +0 -1
- package/build/assets/llm-settings-Bql-vydt.js +0 -1
- package/build/assets/llm-settings-C_tal6Ds.js +0 -1
- package/build/assets/manage-backends-modal-l7RkKfwX.js +0 -1
- package/build/assets/manage-workspaces-modal-DhKF_8z3.js +0 -1
- package/build/assets/manifest-d9077852.js +0 -1
- package/build/assets/mcp-D2onbwVk.js +0 -9
- package/build/assets/messages-D0rWot7s.js +0 -36
- package/build/assets/proxy-CxydCnis.js +0 -1
- package/build/assets/root-DHeCXo9N.css +0 -1
- package/build/assets/root-layout-Czo9Ma6Q.js +0 -2
- package/build/assets/secrets-service-BsnKFc2x.js +0 -1
- package/build/assets/secrets-settings-Bz_UohPJ.js +0 -1
- package/build/assets/settings-client-C73C7IgV.js +0 -1
- package/build/assets/settings-index-Dz0BmdJD.js +0 -1
- package/build/assets/settings-list-classes-Bf80tWtc.js +0 -1
- package/build/assets/settings-modal-Brzgh5Yw.js +0 -1
- package/build/assets/settings-service.api-CZ3uWx4v.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-Do_aA9Zm.js +0 -1
- package/build/assets/skills-settings-DlA5hlXw.js +0 -2
- package/build/assets/status-hp6M6E7E.js +0 -1
- package/build/assets/use-agent-settings-schema-33Un7UF2.js +0 -1
- package/build/assets/use-is-authed-BggE5wPj.js +0 -1
- package/build/assets/use-llm-profiles-DDOol3gK.js +0 -1
- package/build/assets/use-runtime-is-ready-B7EF4BKU.js +0 -1
- package/build/assets/use-settings-DQIZmIov.js +0 -1
- package/build/assets/use-user-conversation-C6hrMMtn.js +0 -1
- package/build/assets/utils-i18rdUj2.js +0 -1
- package/build/assets/vendor~conversation-panel~conversation-a9SyrrhV.js +0 -1
- package/build/assets/vendor~conversation-panel~conversation~index-C23ZXO4R.js +0 -1
- package/build/assets/vendor~home~mcp~automations-list-Ccy2I0KU.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-BebWhFNT.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js +0 -9
- /package/build/assets/{automation-IdgZq6ZK.js → automation-XDPAjiZi.js} +0 -0
- /package/build/assets/{color-themes-DSaoIL6A.js → color-themes-B9pm9c-R.js} +0 -0
- /package/build/assets/{common-DR1t-EeP.js → common-DqjLSBOt.js} +0 -0
- /package/build/assets/{conversation-local-storage-UYl-SX-r.js → conversation-local-storage-YmOVXxxW.js} +0 -0
- /package/build/assets/{dist-C6t0EXL7.js → dist-C3NfioQC.js} +0 -0
- /package/build/assets/{environment-switch-store-C4ulFJKp.js → environment-switch-store-CiurvTtK.js} +0 -0
- /package/build/assets/{health-store-BDC2rM-X.js → health-store-B5f0S2FY.js} +0 -0
- /package/build/assets/{map-provider-COBVzZYo.js → map-provider-BJ_8KZKU.js} +0 -0
- /package/build/assets/{middleware-BC9EwbB9.js → middleware-CfatjPYZ.js} +0 -0
- /package/build/assets/{objectWithoutPropertiesLoose-Du6eBn-V.js → objectWithoutPropertiesLoose-DSQKyRhw.js} +0 -0
- /package/build/assets/{react-Do0CT17Y.js → react-Dy05vyj5.js} +0 -0
- /package/build/assets/{sdk-settings-field-metadata-CBPmeqYa.js → sdk-settings-field-metadata-DQiaIBie.js} +0 -0
- /package/build/assets/{settings-D_H-qsRm.js → settings-DGY6n4J2.js} +0 -0
- /package/build/assets/{settings-like-page-layout-classes-I0BDBEoq.js → settings-like-page-layout-classes-D7YjdTd0.js} +0 -0
- /package/build/assets/{use-breakpoint-DbJ6FkQ-.js → use-breakpoint-DF_RiQ6s.js} +0 -0
- /package/build/assets/{use-click-outside-element-DffgWWoZ.js → use-click-outside-element-DhxCUyWl.js} +0 -0
- /package/build/assets/{v4-CNn21NXa.js → v4-khGvL7i2.js} +0 -0
- /package/build/assets/{vendor~browser-DDiZgqD3.js → vendor~browser-DisFGEp9.js} +0 -0
- /package/build/assets/{vendor~browser-tab-BgwV1mxF.js → vendor~browser-tab-BxhTtM9_.js} +0 -0
- /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-DbvX3OcM.js → vendor~conversation-panel~conversation~alert-banner-w-I2sY6c.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-iOsylxCS.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-BClAMeFe.js} +0 -0
- /package/build/assets/{vendor~files-tab-BGKayPiK.js → vendor~files-tab-BtkpAiMX.js} +0 -0
- /package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BW6261Sb.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CyZ-3lDQ.js} +0 -0
- /package/build/assets/{vendor~home~mcp~automations-list-DoPfwaXj.js → vendor~home~mcp~automations-list-BgV86Sti.js} +0 -0
- /package/build/assets/{vendor~launch-vdeRTWFu.js → vendor~launch-BXgl67Re.js} +0 -0
- /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-D9P8e98a.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-CLlsvdNP.js} +0 -0
- /package/build/assets/{vendor~terminal-DUrOWGFE.js → vendor~terminal-DZaJIY8A.js} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-modal-Brzgh5Yw.js","assets/rolldown-runtime-BFRubm34.js","assets/model-selector-SM9IUz-q.js","assets/vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DbfELDJu.js","assets/preload-helper-CT1Z6Pdu.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BkQGKpye.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~hkqzh1hb-BZ0HXuHD.js","assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-BebWhFNT.js","assets/declaration-BNMqORFE.js","assets/react-CM_dJw1Z.js","assets/vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-Z3nsiNNq.js","assets/react-dom-hVBnwgwZ.js","assets/agent-server-client-options-Bc5ZorQZ.js","assets/llm-client-DaH1TuyR.js","assets/vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~g56ukk6u-DsSvIDZQ.js","assets/QueryClientProvider-CkGuhXg-.js","assets/useTranslation-DCOdSSMl.js","assets/context-CEQZwATj.js","assets/brand-button-Br7f0kZJ.js","assets/utils-i18rdUj2.js","assets/combobox-caret-to1O8irE.js","assets/sdk-settings-schema-DsUf9wu1.js","assets/dist-C6t0EXL7.js","assets/sdk-settings-field-metadata-CBPmeqYa.js","assets/map-provider-COBVzZYo.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-iOsylxCS.js","assets/settings-input-Bn7F5C75.js","assets/base-modal-_dYTw1ri.js","assets/modal-body-BI6Ru2Qr.js","assets/modal-backdrop-BAbgYsqB.js","assets/navigation-context-D0YWpT8d.js","assets/use-save-settings-VUrj_QNG.js","assets/useMutation-DqrumCWD.js","assets/mutation-D0OogFCz.js","assets/settings-service.api-CZ3uWx4v.js","assets/settings-client-C73C7IgV.js","assets/proxy-CxydCnis.js","assets/vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-D9P8e98a.js","assets/settings-D_H-qsRm.js","assets/query-keys-tAsQcc_9.js","assets/use-settings-DQIZmIov.js","assets/active-backend-context-cCM1vYYZ.js","assets/health-store-BDC2rM-X.js","assets/settings-utils-B6Nl07io.js","assets/add-backend-modal-DIUQzMPa.js","assets/backend-form-modal-Dnk33xA_.js","assets/server-client-DyAQ3NZ_.js","assets/organization-service.api-DzYTHTYC.js","assets/modal-close-button-t1Gh3qmL.js","assets/manage-backends-modal-l7RkKfwX.js","assets/pencil-Dr0b2jL1.js","assets/createLucideIcon-Ddu8jDOQ.js","assets/plus-DT-M0FA1.js","assets/trash-2-CbVljPko.js","assets/confirmation-modal-Dau3w_sa.js","assets/environment-switch-overlay-XL8yCGP6.js","assets/environment-switch-store-C4ulFJKp.js","assets/analytics-consent-form-modal-CHZ3I37v.js","assets/handle-capture-consent-3XrjZ8wi.js","assets/alert-banner-DtzAX654.js","assets/vendor~conversation-panel~conversation~alert-banner-DbvX3OcM.js","assets/vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-d2oallMa.js","assets/iconBase-DE30Zj_-.js","assets/close-B5LROHR3.js","assets/typography-gpuWmrQO.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./preload-helper-CT1Z6Pdu.js";import{A as r,C as i,F as a,L as o,M as s,N as c,P as l,R as u,c as d,j as f,k as p}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{t as m}from"./react-dom-hVBnwgwZ.js";import{t as h}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js";import{d as g,t as _,u as v}from"./path-utils-C3bQf6lJ.js";import{o as y,t as b}from"./declaration-BNMqORFE.js";import{t as x}from"./use-is-creating-conversation-BZ5hB_Bg.js";import{t as S}from"./useTranslation-DCOdSSMl.js";import{a as C}from"./i18n-CTohRuoO.js";import{t as w}from"./createLucideIcon-Ddu8jDOQ.js";import{n as T,r as E,t as D}from"./git-branch-DQS2nMK4.js";import{t as O}from"./check-CYxAHs85.js";import{a as k,c as A,d as j,f as M,i as N,l as P,o as ee,r as F,s as I,t as L,u as R}from"./sidebar-mobile-menu-toggle-Do_aA9Zm.js";import{n as te,r as ne}from"./custom-toast-handlers-C-SZFmto.js";import{t as re}from"./plus-DT-M0FA1.js";import{t as ie}from"./trash-2-CbVljPko.js";import{t as ae}from"./x-JOBEVLW0.js";import{t as z}from"./utils-i18rdUj2.js";import{n as oe,r as se}from"./active-backend-context-cCM1vYYZ.js";import{n as ce}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js";import{t as le}from"./agent-server-conversation-service.api-C2V5SlHu.js";import{t as ue}from"./modal-backdrop-BAbgYsqB.js";import{n as de}from"./modal-body-BI6Ru2Qr.js";import{i as fe,r as pe}from"./base-modal-_dYTw1ri.js";import{c as me,d as he,i as ge}from"./brand-button-Br7f0kZJ.js";import{t as _e}from"./loading-spinner-BPtYORNK.js";import{t as ve}from"./use-config-Co1O8-Ey.js";import{t as ye}from"./openhands-logo-CnrF6LKb.js";import{n as be,t as xe}from"./navigation-context-D0YWpT8d.js";import{t as B}from"./navigation-link-Cn7KP3c5.js";import{a as Se,d as Ce,f as we,i as Te,m as V,n as Ee,o as H,p as U,s as De,t as Oe}from"./use-cloud-current-user-id-CvkXFnTT.js";import{n as W,t as ke}from"./sidebar-nav-link-BGjiJq-4.js";import{t as Ae}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-Bbs7UJ5U.js";import{t as je}from"./vendor~root-layout~home~conversation-panel~conversation-DjAjXS5J.js";import{t as G}from"./styled-tooltip-CBzrri6o.js";import{r as Me,t as Ne}from"./combobox-caret-to1O8irE.js";import{_ as Pe,a as Fe,c as Ie,d as Le,f as Re,g as ze,h as Be,i as Ve,l as He,m as Ue,n as We,p as Ge,r as Ke,s as qe,t as Je,u as Ye}from"./git-provider-icon-BzLbc0yC.js";import{i as Xe,r as Ze}from"./backend-form-modal-Dnk33xA_.js";import{s as Qe}from"./environment-switch-store-C4ulFJKp.js";import{t as $e}from"./react-Do0CT17Y.js";import{r as et,t as tt}from"./middleware-BC9EwbB9.js";import{t as nt}from"./conversation-store-Z5iMCRpc.js";import{t as rt}from"./add-backend-modal-DIUQzMPa.js";import{t as it}from"./manage-backends-modal-l7RkKfwX.js";import{t as K}from"./common-DR1t-EeP.js";import{c as at,l as ot,o as st}from"./acp-providers-CbiRekh9.js";import{t as ct}from"./use-is-authed-BggE5wPj.js";import{t as lt}from"./use-click-outside-element-DffgWWoZ.js";import{i as ut,n as dt}from"./status-hp6M6E7E.js";import{r as ft,t as pt}from"./use-settings-DQIZmIov.js";import{t as mt}from"./use-create-conversation-CEgXpkfH.js";import{t as ht}from"./vscode-url-helper-Cwy1A62q.js";import{t as gt}from"./conversation-service.api-CCfztilW.js";import{r as _t,t as vt}from"./vendor~root-layout~conversation-panel~conversation~shared-conversation-DW31UyBp.js";import{n as yt,t as q}from"./context-menu-list-item-CWNFpuiC.js";import{i as J,r as bt,t as xt}from"./ellipsis-button-ZyLMPURn.js";import{t as St}from"./u-edit-CFvXHqZk.js";import{t as Ct}from"./skills-ChIKZPK4.js";import{a as wt,c as Tt,i as Et,l as Dt,n as Ot,o as kt,r as At,s as jt,t as Mt,u as Nt}from"./manage-workspaces-modal-DhKF_8z3.js";import{o as Pt,s as Ft,t as It}from"./vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-d2oallMa.js";import{t as Lt}from"./search-27Owlc3A.js";import{t as Rt}from"./sidebar-store-Uy3v0AOV.js";import{t as zt}from"./handle-capture-consent-3XrjZ8wi.js";import{t as Bt}from"./use-save-settings-VUrj_QNG.js";import{t as Vt}from"./use-user-conversation-C6hrMMtn.js";import{t as Ht}from"./conversation-state-store-u5jepov0.js";var Ut=w(`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`}]]),Wt=w(`clock-3`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]]),Gt=w(`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`}]]),Kt=w(`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`}]]),qt=w(`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`}]]),Jt=w(`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`}]]),Yt=w(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),Xt=w(`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`}]]),Zt=w(`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`}]]),Qt=w(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),$t=w(`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=y(),en=46,tn=30;function nn({className:e,logoClassName:t,logoWidth:n=en,logoHeight:r=tn}={}){let{t:i}=S(`openhands`);return(0,X.jsx)(B,{to:`/conversations`,"aria-label":i(b.BRANDING$OPENHANDS_LOGO),className:z(e),children:(0,X.jsx)(ye,{width:n,height:r,className:z(`shrink-0`,t)})})}function rn(){return(0,X.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-white/20 border-t-white rounded-full`,"data-testid":`dropdown-loading`})}function an({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)(ae,{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:z(Me,`text-current`,e&&`rotate-180`,t&&`cursor-not-allowed`)}),children:(0,X.jsx)(Ne,{})})}function sn({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:z(`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:`p-0`}),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:z(`px-2 py-2 cursor-pointer text-sm rounded`,`text-white focus:outline-none font-normal`,`flex items-center gap-2`,n?.value===e.value?`bg-[var(--oh-interactive-selected)] text-white`:`hover:bg-[var(--oh-interactive-hover)]`)}),children:[e.prefix,(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)(Pe,{inset:`menu`}),(0,X.jsx)(`div`,{className:`p-0`,children:o})]}):null]})}function cn({placeholder:e,isDisabled:t,getInputProps:n,italicPlaceholder:r=!0,fitContent:i=!1}){return(0,X.jsx)(`input`,{...n({placeholder:e,disabled:t,className:z(`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`,ge,`px-0 not-italic text-inherit`)})})}var ln={position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0};function un({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)(``),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}=je({items:S,itemToString:e=>e?.label??``,inputValue:v,stateReducer:(e,t)=>t.type===je.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:z(`relative`,g?`inline-block w-auto`:`w-full`),"data-testid":c,onMouseEnter:m?()=>{_.current&&=(clearTimeout(_.current),null),E()}:void 0,onMouseLeave:m?()=>{_.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:ln}),(0,X.jsx)(`button`,{type:`button`,...O({tabIndex:-1}),style:ln,"aria-hidden":!0})]}):(0,X.jsxs)(`div`,{className:z(`bg-tertiary border border-[var(--oh-border-input)] rounded p-2`,`flex items-center gap-2`,g?`w-auto`:`w-full`,me,`group w-full gap-2 px-3 text-[var(--oh-muted)] hover:text-white`,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)(cn,{placeholder:a,isDisabled:M,getInputProps:P,italicPlaceholder:h,fitContent:g}),r&&(0,X.jsx)(rn,{}),n&&w&&(0,X.jsx)(an,{onClear:()=>T(null)}),(0,X.jsx)(on,{isOpen:C,isDisabled:M,getToggleButtonProps:O})]}),(0,X.jsx)(sn,{isOpen:C,filteredOptions:S,selectedItem:w,emptyMessage:t,getMenuProps:k,getItemProps:A,footer:u,openUpward:d,fitContent:g})]})}var dn=`::`;function fn(e,t){return t?`${e}${dn}${t}`:e}function pn(e){let[t,n]=e.split(dn);return{backendId:t,orgId:n??null}}function mn(e){return(0,X.jsx)(Ze,{isConnected:e?.isConnected??null})}function hn(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:fn(e.id,null),label:e.name,prefix:mn(i[e.id])});for(let e of s){let o=n[e.id],s=mn(i[e.id]);if(!o||o.orgs.length===0)a.push({value:fn(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:fn(e.id,r.id),label:`${e.name} – ${i}`,prefix:s})}}}return a}function gn({openUpward:e=!1,hideTrigger:t=!1,defaultOpen:n=!1,onSelectOption:i,onOpenAddBackend:a,onOpenManageBackends:o,sidebarCollapsed:c=!1}={}){let{t:l}=S(`openhands`),{backends:u,active:d,setActive:f}=se(),p=Ee(),m=Oe(),h=Xe(u),g=s(),_=r(`/settings`),v=r(`/settings/*`),y=r(`/conversations/:conversationId`),x=r(`/automations/:automationId`),[C,w]=Y.useState(!1),[T,E]=Y.useState(!1),D=l(b.BACKEND$PERSONAL_WORKSPACE),O=Y.useMemo(()=>hn(u,D,p,m,h),[u,D,p,m,h]),k=fn(d.backend.id,d.orgId),A=O.find(e=>e.value===k),j=!!(_||v),M=l(b.SIDEBAR$SETTINGS),N=nt(e=>e.isRightPanelShown),P=!c||y&&N?`top`:`left`,ee=Object.values(p).some(e=>e.isLoading);Y.useEffect(()=>{if(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]);let F=Y.useCallback(()=>{if(a){a(),i?.();return}w(!0)},[a,i]),I=Y.useCallback(()=>{if(o){o(),i?.();return}E(!0)},[o,i]),L=Y.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),R=(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[(0,X.jsxs)(`button`,{type:`button`,"data-testid":`add-backend-menu-item`,onMouseDown:L,onClick:F,className:`flex w-full items-center gap-2 px-2 py-2 rounded-md text-sm cursor-pointer text-white hover:bg-[var(--oh-interactive-hover)]`,children:[(0,X.jsx)(re,{width:16,height:16,className:`text-white shrink-0`}),l(b.BACKEND$ADD)]}),(0,X.jsxs)(`button`,{type:`button`,"data-testid":`manage-backends-menu-item`,onMouseDown:L,onClick:I,className:`flex w-full items-center gap-2 px-2 py-2 rounded-md text-sm cursor-pointer text-white hover:bg-[var(--oh-interactive-hover)]`,children:[(0,X.jsx)(Qt,{width:16,height:16,className:`text-white shrink-0`}),l(b.BACKEND$MANAGE)]})]}),te=Y.useCallback(async e=>{if(e===k)return;let{backendId:t,orgId:n}=pn(e),r=u.find(e=>e.id===t);r&&(Qe(O.find(t=>t.value===e)?.label??r.name),await new Promise(e=>{setTimeout(e,400)}),y?g(`/conversations`):x&&g(`/automations`),f(r.id,n),i?.())},[k,u,y,x,g,O,f,l,i]);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)(un,{testId:`backend-selector`,defaultValue:A??{value:k,label:d.backend.name,prefix:mn(h[d.backend.id])},footer:R,openUpward:e,hideTrigger:t,defaultOpen:n,openOnHover:!t,onChange:e=>{e&&te(e.value)},placeholder:d.backend.name,loading:ee,options:O,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`},`${k}-${A?.label??``}`)}),t?null:(0,X.jsx)(G,{content:M,placement:P,offset:10,children:(0,X.jsx)(B,{to:`/settings`,"data-testid":`backend-selector-settings-link`,"data-active":j,"aria-label":M,className:z(j?`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`,he),children:(0,X.jsx)(Qt,{width:16,height:16})})})]}),C?(0,X.jsx)(rt,{onClose:()=>w(!1)}):null,T?(0,X.jsx)(it,{onClose:()=>E(!1)}):null]})}var _n=(e=20)=>{let{data:t}=ct(),n=oe();return g({queryKey:[`user`,`conversations`,`paginated`,e,n.backend.id,n.orgId],queryFn:async({pageParam:t})=>await le.searchConversations(e,t),enabled:!!t,getNextPageParam:e=>e.next_page_id,initialPageParam:void 0,refetchInterval:1e4,meta:{backendId:n.backend.id}})},vn=(e=10)=>h({queryKey:[`start-tasks`,`search`,e],queryFn:()=>[],select:e=>e.filter(e=>e.status!==`READY`&&e.status!==`ERROR`)});function yn({onConfirm:e,onClose:t,onCancel:n}){let{t:r}=S(`openhands`);return(0,X.jsx)(ue,{onClose:n,children:(0,X.jsxs)(de,{testID:`confirm-new-conversation-modal`,children:[(0,X.jsx)(pe,{title:r(b.CONVERSATION$EXIT_WARNING)}),(0,X.jsxs)(`div`,{className:`flex w-full justify-end gap-2`,children:[(0,X.jsx)(fe,{text:r(b.BUTTON$CANCEL),onClick:t,className:`bg-tertiary`}),(0,X.jsx)(fe,{text:r(b.ACTION$CONFIRM),onClick:e,className:`bg-[#C63143]`})]})]})})}var bn=e=>e.includes(`Z`)||e.match(/[+-]\d{2}:\d{2}$/)!==null?new Date(e):new Date(`${e}Z`),xn=e=>{let t=typeof e==`string`?bn(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 Sn({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:z(`text-xs leading-6 font-semibold bg-transparent truncate overflow-hidden`,r&&`opacity-60`),title:t,children:t})}var Cn=e=>{switch(e){case K.FINISHED:return`check`;case K.RUNNING:return`working`;case K.IDLE:case K.WAITING_FOR_CONFIRMATION:return`active`;case K.PAUSED:return`paused`;case K.ERROR:case K.STUCK:return`error`;default:return`unknown`}},wn=(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 Tn(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 En({executionStatus:e,sandboxStatus:t,showTooltip:n=!0}){let{t:r}=S(`openhands`),i=t===`MISSING`,a=t===`ERROR`?`error`:i?`paused`:Cn(e),o=r(wn(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)(vt,{"data-testid":`conversation-status-archived`,size:10,className:`shrink-0 text-[var(--oh-muted)] opacity-60`,"aria-hidden":!0}):Tn(a)});return n?(0,X.jsx)(G,{content:o,placement:`right`,showArrow:!0,tooltipClassName:`bg-base text-white text-xs shadow-lg`,children:s}):s}function Dn({title:e,titleMode:t,onTitleSave:n,executionStatus:r,sandboxStatus: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)(En,{executionStatus:r,sandboxStatus:i})}),(0,X.jsx)(Sn,{title:e,titleMode:t,onSave:n,isConversationArchived:i===`MISSING`||i===`ERROR`})]})}var On=e(m(),1);function kn({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}=oe(),m=lt(e,d),h=p.kind===`cloud`?b.COMMON$CLOSE_CONVERSATION_STOP_RUNTIME:b.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)(Pe,{inset:`menu`})]},t):null},[]),_=u!=null;return(0,X.jsxs)(yt,{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)(q,{testId:`edit-button`,onClick:r,children:(0,X.jsx)(J,{icon:(0,X.jsx)(St,{width:16,height:16}),text:f(b.BUTTON$RENAME)})},`edit-button`)],`edit-section`),g([a&&(0,X.jsx)(q,{testId:`show-agent-tools-button`,onClick:a,children:(0,X.jsx)(J,{icon:(0,X.jsx)(Ue,{width:16,height:16}),text:f(b.BUTTON$SHOW_AGENT_TOOLS_AND_METADATA)})},`show-agent-tools-button`),o&&(0,X.jsx)(q,{testId:`show-skills-button`,onClick:o,children:(0,X.jsx)(J,{icon:(0,X.jsx)(Ct,{width:16,height:16,className:`stroke-[1.75]`,"aria-hidden":!0}),text:f(b.CONVERSATION$SHOW_SKILLS)})},`show-skills-button`)],`tools-section`),g([n&&(0,X.jsx)(q,{testId:`stop-button`,onClick:n,children:(0,X.jsx)(J,{icon:(0,X.jsx)(Ge,{width:16,height:16}),text:f(h)})},`stop-button`),s&&(0,X.jsx)(q,{testId:`download-vscode-button`,onClick:s,children:(0,X.jsx)(J,{icon:(0,X.jsx)(A,{width:16,height:16}),text:f(b.BUTTON$DOWNLOAD_VIA_VSCODE)})},`download-vscode-button`),c&&(0,X.jsx)(q,{testId:`download-trajectory-button`,onClick:c,children:(0,X.jsx)(J,{icon:(0,X.jsx)(A,{width:16,height:16}),text:f(b.BUTTON$EXPORT_CONVERSATION)})},`download-trajectory-button`)],`control-section`),g([i&&(0,X.jsx)(q,{testId:`display-cost-button`,onClick:i,children:(0,X.jsx)(J,{icon:(0,X.jsx)(I,{width:16,height:16}),text:f(b.BUTTON$DISPLAY_COST)})},`display-cost-button`),t&&(0,X.jsx)(q,{testId:`delete-button`,onClick:t,children:(0,X.jsx)(J,{icon:(0,X.jsx)(bt,{width:16,height:16}),text:f(b.COMMON$DELETE_CONVERSATION)})},`delete-button`)],`info-section`,!0)]})}function An({contextMenuOpen:e,onContextMenuToggle:t,onDelete:n,onStop:r,onEdit:i,onDownloadViaVSCode:a,onDownloadConversation:o,executionStatus:s,conversationId:c,showOptions:l}){let u=ut(s),d=dt(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)(xt,{ref:f,onClick:n=>{n.preventDefault(),n.stopPropagation(),t(!e)},className:z(u&&`opacity-60`)}),e&&m&&h?(0,On.createPortal)((0,X.jsx)(kn,{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]})}var jn={bitbucket:It,bitbucket_data_center:It,github:Pt,gitlab:Ft};function Mn({selectedRepository:e}){let t=e.git_provider?jn[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)(Re,{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)(_t,{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 Nn({workspaceWorkingDir:e}){let{t}=S(`openhands`),n=e?_(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)(Le,{width:14,height:14,className:`text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{className:`truncate min-w-0`,children:t(b.COMMON$NO_REPOSITORY)})]})}function Pn({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=ut(r),p=null;if(c)if(l===`acp`){let e=st(u)??d(b.CONVERSATION$ACP_AGENT_GENERIC),t=at(u,s),n=t??e;p={kind:ot(u),text:n,tooltip:t?`${e} · ${t}`:e}}else s&&(p={kind:`openhands`,text:s,tooltip:s});let m=r===void 0?void 0:`pl-[26px]`;return(0,X.jsxs)(`div`,{className:z(`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)(Nt,{kind:p.kind}),(0,X.jsx)(`span`,{className:`truncate`,children:p.text})]})}):null,(0,X.jsxs)(`div`,{className:z(`flex flex-row items-center gap-2 w-full min-w-0`,a&&m),children:[a&&(e?.selected_repository?(0,X.jsx)(Mn,{selectedRepository:e}):(0,X.jsx)(Nn,{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:`${xn(t??n)} ${d(b.CONVERSATION$AGO)}`})})})]})]})}function Fn(){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)(Ye,{className:`text-white w-3 h-3`}),(0,X.jsx)(`span`,{children:e(b.COMMON$ERROR)})]})}function In({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}){let x=ce(),[S,C]=Y.useState(`view`),{mutateAsync:w}=He(),T=e=>{e!==``&&e!==a&&r?.(e),C(`view`)},E=e=>{e.preventDefault(),e.stopPropagation(),t?.(),p?.(!1)},D=e=>{e.preventDefault(),e.stopPropagation(),n?.(),p?.(!1)},O=e=>{e.preventDefault(),e.stopPropagation(),C(`edit`),p?.(!1)},k=async e=>{if(e.preventDefault(),e.stopPropagation(),x.capture(`download_via_vscode_button_clicked`),l)try{let e=await gt.getVSCodeUrl(l);if(e.vscode_url){let t=ht(e.vscode_url);t&&window.open(t,`_blank`)}}catch{}p?.(!1)},A=async e=>{e.preventDefault(),e.stopPropagation(),l&&await w(l),p?.(!1)},j=!!(t||r||i),M=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:z(`group relative h-auto w-full cursor-pointer rounded-md py-1 pl-2 pr-1 transition-colors`,`data-[context-menu-open=false]:hover:bg-[var(--oh-surface)]`,`data-[active=true]: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)(Dn,{title:a,titleMode:S,onTitleSave:T,executionStatus:u,sandboxStatus:d}),d===`ERROR`&&(0,X.jsx)(Fn,{})]}),(0,X.jsxs)(`div`,{className:`relative ml-auto pl-2 flex items-center justify-end shrink-0`,children:[(c??s)&&(0,X.jsx)(`p`,{className:z(`text-xs text-[var(--oh-muted)] text-right whitespace-nowrap transition-opacity -translate-x-1.5`,j&&`group-hover:opacity-0 group-focus-within:opacity-0`,f&&`opacity-0`),children:(0,X.jsx)(`time`,{children:xn(s??c)})}),j&&(0,X.jsx)(`div`,{className:z(`absolute right-0 top-1/2 -translate-y-1/2 transition-opacity`,`opacity-0 invisible group-hover:opacity-100 group-hover:visible`,f&&`visible opacity-100`),children:(0,X.jsx)(An,{contextMenuOpen:f,onContextMenuToggle:p||(()=>{}),onDelete:t&&E,onStop:n&&D,onEdit:r&&O,onDownloadViaVSCode:k,onDownloadConversation:A,executionStatus:u,conversationId:l,showOptions:i})})]})]}),M&&(0,X.jsx)(Pn,{selectedRepository:o,lastUpdatedAt:s,createdAt:c,executionStatus:u,workspaceWorkingDir:h,showRepositoryMetadata:g,showTimestamp:!1,llmModel:_,showAgentChip:v,agentKind:y,acpServer:b})]})}function Ln({taskStatus:e}){return(0,X.jsx)(`div`,{className:z(`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 Rn({taskStatus:e}){return e===`WORKING`?null:(0,X.jsx)(`span`,{className:z(`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:(e=>e.toLowerCase().replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()))(e)})}function zn({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)(Ln,{taskStatus:t})}),(0,X.jsx)(`h3`,{className:`text-sm font-medium text-content-2 truncate flex-1`,children:e}),(0,X.jsx)(Rn,{taskStatus:t})]})}function Bn({selectedRepository:e,createdAt:t,detail:n}){let{t:r}=S(`openhands`);return(0,X.jsxs)(`div`,{className:z(`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)(Mn,{selectedRepository:e}):(0,X.jsx)(Nn,{}),t&&(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)] flex-1 text-right`,children:(0,X.jsx)(`time`,{children:`${xn(t)} ${r(b.CONVERSATION$AGO)}`})})]}),n&&(0,X.jsx)(`div`,{className:`text-xs text-[var(--oh-text-subtle)] truncate`,children:n})]})}function Vn({task:e,onClick:t}){let{t:n}=S(`openhands`),r=e.request.title||e.detail||n(b.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:z(`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)(zn,{title:r,taskStatus:e.status})}),(0,X.jsx)(Bn,{selectedRepository:i,createdAt:e.created_at,detail:e.detail})]})}function Hn({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 Un({conversationId:e,title:t,selectedRepository:n,executionStatus:r,sandboxStatus:i,lastUpdatedAt:a,createdAt:o,workspaceWorkingDir:s,isActive:c=!1,onClose:l,showRepositoryMetadata:u=!0,llmModel:d=null,showLlmProfiles:f=!1,agentKind:p=null,acpServer:m=null}){return(0,X.jsx)(Ae,{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)(En,{executionStatus:r,sandboxStatus:i,showTooltip:!1}),(0,X.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,title:t,children:t||`(untitled)`})]}),(0,X.jsx)(Pn,{selectedRepository:n,lastUpdatedAt:a,createdAt:o,executionStatus:r,workspaceWorkingDir:s,showRepositoryMetadata:u,llmModel:d,showAgentChip:f,agentKind:p,acpServer:m})]}),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)(B,{to:`/conversations/${e}`,onClick:l,"data-testid":`compact-conversation-row`,"data-conversation-id":e,"aria-label":t||e,className:({isActive:e})=>z(`flex items-center justify-center w-10 h-9 mx-auto rounded-md`,`transition-colors cursor-pointer`,e||c?`bg-tertiary`:`hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(En,{executionStatus:r,sandboxStatus:i,showTooltip:!1})})})}var Wn={showOlderConversations:!0,showRepoBranchMetadata:!1,showLlmProfiles:!1,organizeMode:`chronological`,conversationSort:`updated`,threadScope:`all`},Z=$e()(et(e=>({...Wn,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})),setOrganizeMode:t=>e(()=>({organizeMode:t})),setConversationSort:t=>e(()=>({conversationSort:t})),setThreadScope:t=>e(()=>({threadScope:t}))}),{name:`conversation-panel-preferences`,storage:tt(()=>localStorage),partialize:e=>({showOlderConversations:e.showOlderConversations,showRepoBranchMetadata:e.showRepoBranchMetadata,showLlmProfiles:e.showLlmProfiles,organizeMode:e.organizeMode,conversationSort:e.conversationSort,threadScope:e.threadScope})})),Gn=e=>e.length>0?e.charAt(0).toUpperCase()+e.slice(1):e,Kn=`px-2 pb-1 pt-1`,qn=`text-[11px] font-semibold uppercase tracking-wide text-[var(--oh-muted)]`;function Jn({children:e,suffix:t}){return t==null?(0,X.jsx)(`div`,{role:`presentation`,className:z(Kn,qn),children:e}):(0,X.jsxs)(`div`,{role:`presentation`,className:z(`flex items-baseline justify-between gap-2`,Kn),children:[(0,X.jsx)(`span`,{className:z(`min-w-0 truncate text-left`,qn),children:e}),t]})}function Yn(){return(0,X.jsx)(Pe,{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:z(`group flex w-full items-center gap-2 rounded px-2 py-2 text-left text-sm text-[var(--oh-foreground)]`,`hover:bg-[var(--oh-interactive-hover)] disabled:cursor-not-allowed disabled:opacity-50`),children:[(0,X.jsx)(e,{className:z(`h-3.5 w-3.5 shrink-0 text-[var(--oh-muted)] group-hover:text-[var(--oh-foreground)] group-focus-visible:text-[var(--oh-foreground)]`,he),"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t}),n?(0,X.jsx)(O,{className:`ml-auto h-3.5 w-3.5 shrink-0 text-[var(--oh-foreground)]`,"aria-hidden":!0}):null]})}function Xn({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,totalConversationsCount:g,onRequestDeleteAll:_}){let{t:v}=S(`openhands`),y=v(r===`local`?b.CONVERSATION_PANEL$BY_WORKSPACE:b.CONVERSATION_PANEL$BY_REPOSITORY),x=Y.useRef(null),C=Y.useRef(null),w=Y.useRef(e);return Y.useEffect(()=>{e?(C.current?.querySelector(`[role="menuitem"], [role="menuitemradio"]`))?.focus():w.current&&x.current?.focus(),w.current=e},[e]),(0,X.jsxs)(`div`,{ref:n,className:`relative shrink-0 pr-0.5`,children:[(0,X.jsx)(`button`,{ref:x,type:`button`,"data-testid":`older-conversations-filter-toggle`,"aria-label":v(b.CONVERSATION_PANEL$FILTER_LABEL),"aria-haspopup":`menu`,"aria-expanded":e,onClick:()=>t(!e),className:z(`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)]`,he),children:(0,X.jsx)(Yt,{className:`lucide lucide-list-filter shrink-0`,width:14,height:14,strokeWidth:2,"aria-hidden":!0})}),e?(0,X.jsxs)(`div`,{ref:C,role:`menu`,"aria-orientation":`vertical`,"aria-label":v(b.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=C.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:`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`,children:[(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$ORGANIZE)}),(0,X.jsx)(Q,{icon:T,label:y,selected:i===`grouped`,onClick:()=>{a(`grouped`),t(!1)}}),(0,X.jsx)(Q,{icon:Wt,label:v(b.CONVERSATION_PANEL$CHRONOLOGICAL),selected:i===`chronological`,onClick:()=>{a(`chronological`),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$SORT_BY)}),(0,X.jsx)(Q,{icon:Ut,label:v(b.CONVERSATION_PANEL$SORT_CREATED),selected:o===`created`,onClick:()=>{s(`created`),t(!1)}}),(0,X.jsx)(Q,{icon:Gt,label:v(b.CONVERSATION_PANEL$SORT_UPDATED),selected:o===`updated`,onClick:()=>{s(`updated`),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$SHOW)}),(0,X.jsx)(Q,{icon:Xt,label:v(b.CONVERSATION_PANEL$ALL_THREADS),selected:c===`all`,onClick:()=>{l(`all`),t(!1)}}),(0,X.jsx)(Q,{icon:$t,label:v(b.CONVERSATION_PANEL$RELEVANT_THREADS),selected:c===`relevant`,onClick:()=>{l(`relevant`),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{children:v(b.CONVERSATION_PANEL$METADATA)}),(0,X.jsx)(Q,{icon:E,label:v(b.CONVERSATION_PANEL$LLM_MODEL),selected:m,testId:`toggle-llm-profiles`,onClick:()=>{h(),t(!1)}}),(0,X.jsx)(Q,{icon:D,label:v(b.CONVERSATION_PANEL$REPO_BRANCH),selected:f,testId:`toggle-repo-branch-metadata`,onClick:()=>{p(),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Jn,{suffix:(0,X.jsx)(`span`,{className:`shrink-0 text-right text-[10px] font-medium normal-case tracking-normal text-[var(--oh-muted)]/70`,children:v(b.CONVERSATION_PANEL$OLDER_OVER_ONE_HOUR)}),children:v(b.CONVERSATION_PANEL$OLDER_SECTION)}),(0,X.jsx)(Q,{testId:`toggle-older-conversations`,icon:u?Kt:qt,label:Gn(v(u?b.CONVERSATION$HIDE:b.CONVERSATION$SHOW_ALL)),onClick:()=>{d(),t(!1)}}),(0,X.jsx)(Yn,{}),(0,X.jsx)(Q,{testId:`delete-all-conversations`,icon:ie,label:Gn(v(b.CONVERSATION$DELETE_ALL)),disabled:g===0,onClick:()=>{g!==0&&(_(),t(!1))}})]}):null]})}var Zn=z(`z-50 flex flex-col rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 text-white shadow-lg`);function Qn(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 $n({trigger:e,className:t,popoverClassName:n,popoverTestId:r=`new-conversation-popover`,useFixedPlacement:i=!1}){let{t:a}=S(`openhands`),{navigate:o}=be(),[s,c]=Y.useState(!1),l=Y.useRef(null),u=Y.useRef(null),d=Qn(u,{open:s,enabled:i}),{data:f,error:p}=wt(),m=f?.workspaceParents??[],{mutate:h}=jt(),{mutate:g}=Tt(),{mutate:_}=kt(),{mutate:v}=Dt(),{workspaces:y}=Et(),C=At(p,a),[w,T]=Y.useState(!1),[E,D]=Y.useState(!1),{mutate:O,isPending:k}=mt(),A=x(),j=k||A;Y.useEffect(()=>{if(!s||w||E)return;let e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s,w,E]),Y.useEffect(()=>{if(!s||w||E)return;let e=e=>{e.key===`Escape`&&c(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,w,E]);let M=e=>{j||O({workingDir:e},{onSuccess:e=>{c(!1),o(`/conversations/${e.conversation_id}`)}})},N=z(`flex w-full cursor-pointer items-center gap-2 rounded px-2 py-2 text-left text-sm text-white`,`font-normal transition-colors hover:bg-[var(--oh-interactive-hover)]`,`disabled:cursor-not-allowed disabled:opacity-60`),P=Y.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),ee=Y.useCallback(()=>{c(e=>!e)},[]),F=s&&(!i||d!==null),I=!!C,L=i&&d?{position:`fixed`,top:d.top,left:d.left,width:d.width}:void 0,R=(0,X.jsx)(`button`,{type:`button`,"data-testid":`add-workspaces-button`,disabled:I,onMouseDown:P,onClick:e=>{e.preventDefault(),e.stopPropagation(),!I&&T(!0)},className:N,children:a(b.HOME$ADD_WORKSPACES)}),te=C?(0,X.jsx)(G,{content:C,placement:`top`,children:(0,X.jsx)(`span`,{className:`block`,children:R})}):R;return(0,X.jsxs)(`div`,{className:z(!i&&`relative`,t),ref:l,children:[(0,X.jsx)(`span`,{ref:u,className:`inline-flex`,children:e({onClick:ee,"aria-expanded":s,"aria-haspopup":`menu`,disabled:j})}),F&&(0,X.jsxs)(`div`,{"data-testid":r,className:z(Zn,!i&&z(`absolute top-full mt-0`,n)),style:L,children:[(0,X.jsxs)(`ul`,{className:`flex max-h-[40vh] flex-col overflow-y-auto sm:max-h-[280px]`,children:[(0,X.jsx)(`li`,{children:(0,X.jsx)(`button`,{type:`button`,disabled:j,"data-testid":`launch-no-workspace`,onClick:()=>M(),className:N,children:(0,X.jsx)(`span`,{className:`text-[var(--oh-muted)]`,children:a(b.HOME$NO_WORKSPACE_OPTION)})})}),y.map(e=>(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,disabled:j,"data-testid":`launch-workspace`,"data-workspace-path":e.path,onClick:()=>M(e.path),className:N,children:[(0,X.jsx)(Ie,{width:14,height:14,className:`shrink-0`}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]})},e.id))]}),(0,X.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`new-conversation-menu-footer`,children:[(0,X.jsx)(Pe,{inset:`menu`,testId:`new-conversation-menu-footer-divider`}),te,(y.length>0||m.length>0)&&(0,X.jsx)(`button`,{type:`button`,"data-testid":`manage-workspaces-button`,onMouseDown:P,onClick:e=>{e.preventDefault(),e.stopPropagation(),D(!0)},className:N,children:a(b.HOME$MANAGE_WORKSPACES)})]})]}),(0,X.jsx)(Ot,{isOpen:w,onClose:()=>T(!1),onAdd:e=>h(e),onAddParent:e=>_(e)}),(0,X.jsx)(Mt,{isOpen:E,workspaces:y,workspaceParents:m,onClose:()=>D(!1),onRemove:e=>g(e),onRemoveParent:e=>v(e)})]})}function er({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)(Ie,{width:14,height:14,className:`shrink-0`}),(0,X.jsx)(`span`,{className:`truncate`,children:e.full_name})]})})}function tr({trigger:e,className:t,popoverClassName:n,popoverTestId:r=`new-conversation-popover`,useFixedPlacement:i=!1}){let{t:a}=S(`openhands`),{navigate:o}=be(),{providers:s}=qe(),{lastSelectedProvider:c,setLastSelectedProvider:l}=We(),[u,d]=Y.useState(!1),f=Y.useRef(null),p=Y.useRef(null),m=Qn(p,{open:u,enabled:i}),[h,g]=Y.useState(c??null),[_,v]=Y.useState(``),y=Ke(_,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:C,isLoading:w,isError:T,hasNextPage:E,isFetchingNextPage:D,fetchNextPage:O}=Fe({provider:h}),{data:k,isLoading:A}=Ve(y,h),j=Y.useMemo(()=>C?.pages.flatMap(e=>e.items)??[],[C]),M=y?k??[]:j,{mutate:N,isPending:P}=mt(),ee=x(),F=P||ee;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||N({repository:{name:e.full_name,gitProvider:e.git_provider,branch:e.main_branch??`main`}},{onSuccess:e=>{d(!1),o(`/conversations/${e.conversation_id}`)}})},L=e=>{g(e),l(e),v(``)},R=z(`flex w-full cursor-pointer items-center gap-2 rounded px-2 py-2 text-left text-sm text-white`,`font-normal transition-colors hover:bg-[var(--oh-interactive-hover)]`,`disabled:cursor-not-allowed disabled:opacity-60`);Y.useEffect(()=>{u&&(y||!E||D||w||M.length===0||M.length>=10||O())},[u,y,E,D,w,M.length,O]);let te=y?A:w,ne=!y&&E&&M.length>0,re=Y.useCallback(()=>{d(e=>!e)},[]),ie=u&&(!i||m!==null),ae=i&&m?{position:`fixed`,top:m.top,left:m.left,width:m.width}:void 0;return(0,X.jsxs)(`div`,{className:z(!i&&`relative`,t),ref:f,children:[(0,X.jsx)(`span`,{ref:p,className:`inline-flex`,children:e({onClick:re,"aria-expanded":u,"aria-haspopup":`menu`,disabled:F})}),ie&&(0,X.jsxs)(`div`,{"data-testid":r,className:z(Zn,!i&&z(`absolute top-full mt-0`,n)),style:ae,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:()=>L(e),className:z(`flex items-center gap-1 rounded px-2 py-1 text-xs`,`border transition-colors`,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)(Je,{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)(Lt,{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(b.COMMON$SEARCH_REPOSITORIES),disabled:!h,className:z(`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)(Pe,{inset:`menu`}),(0,X.jsxs)(`ul`,{className:`flex max-h-[40vh] flex-col overflow-y-auto custom-scrollbar-always sm:max-h-[280px]`,children:[te&&M.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(b.HOME$LOADING_REPOSITORIES)}),T&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[#F87171]`,"data-testid":`cloud-repo-error`,children:a(b.HOME$FAILED_TO_LOAD_REPOSITORIES)}),!te&&!T&&M.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(b.GITHUB$NO_RESULTS)}),M.map(e=>(0,X.jsx)(er,{repo:e,disabled:F,onSelect:I,itemClass:R},`${e.git_provider}:${e.id}`)),ne&&(0,X.jsx)(`li`,{children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`cloud-repo-load-more`,disabled:D,onClick:()=>O(),className:R,children:(0,X.jsx)(`span`,{className:`text-[var(--oh-text-secondary)]`,children:a(D?b.HOME$LOADING_MORE_REPOSITORIES:b.CONVERSATION$LOAD_MORE)})})})]})]})]})}var nr=z(`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 rr({backendKind:e}){let{t}=S(`openhands`),n=t(b.CONVERSATION_PANEL$NEW_THREAD_FOLDER_ARIA),r=(0,X.jsx)(Jt,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0,strokeWidth:2});return e===`local`?(0,X.jsx)($n,{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:nr,"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)(tr,{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:nr,"aria-label":n,"aria-expanded":t,"aria-haspopup":a,disabled:i,"data-testid":`conversation-panel-new-thread-picker`,onClick:e,children:r})})}function ir(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 ar(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 or(e){if(!e)return 0;let t=Date.parse(e);return Number.isFinite(t)?t:0}function sr(e,t){let n=t===`created`?`created_at`:`updated_at`;return[...e].sort((e,t)=>or(t[n])-or(e[n]))}function cr(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 lr(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 ur(e,t,n,r){let i=new Map;for(let n of e){let{id:e,label:a}=t===`local`?cr(n):lr(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=sr(r.conversations,n);return{id:e,label:r.label,conversations:i,launch:ar(e,t,i)}}),o=e=>e.conversations.reduce((e,t)=>Math.max(e,or(n===`created`?t.created_at:t.updated_at)),0);return a.sort((e,t)=>o(t)-o(e)),a}var dr=()=>{},fr=3600*1e3,pr=e=>{let t=Date.now()-fr,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 mr({onClose:e,compact:t=!1}){let{t:n}=S(`openhands`),{conversationId:r,navigate:i}=be(),{backend:a}=oe(),o=lt(e??dr),[s,c]=Y.useState(!1),[l,u]=Y.useState(!1),[d,f]=Y.useState(!1),[p,m]=Y.useState(!1),h=Z(e=>e.showOlderConversations),g=Z(e=>e.toggleShowOlderConversations),_=Z(e=>e.showRepoBranchMetadata),v=Z(e=>e.toggleShowRepoBranchMetadata),y=Z(e=>e.showLlmProfiles),C=Z(e=>e.toggleShowLlmProfiles),w=Z(e=>e.organizeMode),E=Z(e=>e.setOrganizeMode),D=Z(e=>e.conversationSort),O=Z(e=>e.setConversationSort),k=Z(e=>e.threadScope),A=Z(e=>e.setThreadScope),[M,N]=Y.useState(!1),[ee,F]=Y.useState(!1),I=lt(()=>{N(!1)}),[L,ie]=Y.useState(()=>new Set),[ae,se]=Y.useState(()=>new Set),ce=Y.useCallback(e=>{ie(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),le=Y.useCallback(e=>{se(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]);Y.useEffect(()=>{w!==`grouped`&&(ie(new Set),se(new Set))},[w]);let ue=Y.useRef(null),[de,fe]=Y.useState(null),[pe,me]=Y.useState(null),[he,ge]=Y.useState(null),{data:ve,isLoading:ye,isFetched:xe,hasNextPage:Se,isFetchingNextPage:Ce,fetchNextPage:we}=_n(),{data:Te}=vn(),V=Y.useMemo(()=>ve?.pages.flatMap(e=>e.items)??[],[ve]),Ee=Y.useMemo(()=>k===`relevant`?V.filter(e=>dt(e.execution_status)):V,[V,k]),{recent:H,older:U}=Y.useMemo(()=>pr(Ee),[Ee]),De=Y.useMemo(()=>sr(h?[...H,...U]:H,D),[H,U,h,D]),Oe=Y.useMemo(()=>({emptyWorkspace:n(b.CONVERSATION_PANEL$NO_WORKSPACE),emptyRepository:n(b.CONVERSATION_PANEL$NO_REPOSITORY)}),[n]),W=Y.useMemo(()=>t||w!==`grouped`?null:ur([...H,...h?U:[]],a.kind,D,Oe),[a.kind,t,D,Oe,U,w,H,h]),ke=Y.useMemo(()=>sr(H.filter(e=>dt(e.execution_status)),D),[D,H]),Ae=De.length,je=Y.useMemo(()=>W?W.reduce((e,t)=>e+t.conversations.length,0):0,[W]),G=w===`grouped`&&!t?je===0:Ae===0,{mutate:Me,mutateAsync:Ne}=ze(),{mutate:Pe}=Be(),{mutate:Fe}=P(),Ie=U.length>0&&!h,Le=!!Se&&!Ie&&!t&&!G,{mutate:Re}=mt(),Ve=x(),He=Y.useCallback(e=>{Ve||Re({workingDir:e.workingDir,repository:e.repository},{onSuccess:e=>{i(`/conversations/${e.conversation_id}`)}})},[Re,Ve,i]),Ue=Y.useCallback((e,t)=>{c(!0),fe(e),me(t)},[]),We=Y.useCallback(e=>{u(!0),fe(e)},[]),Ge=Y.useCallback((e,t)=>{Fe({conversationId:e,newTitle:t},{onSuccess:()=>{ne(n(b.CONVERSATION$TITLE_UPDATED))}})},[n,Fe]),Ke=()=>{de&&Me({conversationId:de},{onSuccess:()=>{de===r&&i(`/conversations`)}})},qe=()=>{de&&Pe({conversationId:de})},Je=async()=>{let e=V.map(e=>e.id),t=await Promise.allSettled(e.map(e=>Ne({conversationId:e}))),n=t.flatMap((t,n)=>t.status===`fulfilled`?[e[n]]:[]),a=t.length-n.length;r!==null&&n.includes(r)&&i(`/conversations`),a>0&&te(`${a} conversation${a===1?``:`s`} could not be deleted.`)},Ye=Y.useCallback(n=>t?(0,X.jsx)(Un,{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===r,onClose:e,showRepositoryMetadata:_,llmModel:n.llm_model,showLlmProfiles:y,agentKind:n.agent_kind,acpServer:n.acp_server},n.id):(0,X.jsx)(B,{to:`/conversations/${n.id}`,onClick:e,className:`block`,children:(0,X.jsx)(In,{onDelete:()=>Ue(n.id,n.title??``),onStop:()=>We(n.id),onChangeTitle:e=>Ge(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===r,workspaceWorkingDir:n.selected_workspace??n.workspace?.working_dir,showRepositoryMetadata:_,llmModel:n.llm_model,showLlmProfiles:y,agentKind:n.agent_kind,acpServer:n.acp_server})},n.id),[t,r,Ge,Ue,We,e,he,_,y]),Xe=ye||!xe,Ze=xe&&!ye&&!t&&G&&!Te?.length;return(0,X.jsxs)(`div`,{ref:o,"data-testid":`conversation-panel`,className:`flex h-full min-h-0 w-full flex-col`,children:[!t&&(0,X.jsx)(`div`,{className:z(`-ml-2.5 w-[calc(100%+0.625rem)] max-w-none box-border border-b`,ee?`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(b.SIDEBAR$CONVERSATIONS)}),(0,X.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-0.5`,children:[(0,X.jsx)(rr,{backendKind:a.kind}),(0,X.jsx)(Xn,{filterMenuOpen:M,setFilterMenuOpen:N,menuRef:I,backendKind:a.kind,organizeMode:w,setOrganizeMode:E,conversationSort:D,setConversationSort:O,threadScope:k,setThreadScope:A,showOlderConversations:h,toggleShowOlderConversations:g,showRepoBranchMetadata:_,toggleShowRepoBranchMetadata:v,showLlmProfiles:y,toggleShowLlmProfiles:C,totalConversationsCount:V.length,onRequestDeleteAll:()=>m(!0)})]})]})}),(0,X.jsxs)(`div`,{ref:ue,"data-testid":`conversation-panel-list-scroll`,onScroll:e=>{F(e.currentTarget.scrollTop>0)},className:z(`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:[Xe&&(0,X.jsx)(Hn,{compact:t}),!t&&Ze&&(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(b.CONVERSATION$NO_CONVERSATIONS)})}),!t&&Te?.map(t=>(0,X.jsx)(B,{to:`/conversations/task-${t.id}`,onClick:e,className:`block`,children:(0,X.jsx)(Vn,{task:t})},t.id)),!Xe&&t?ke.map(Ye):null,!Xe&&!t&&w===`grouped`&&W&&W.length>0?(0,X.jsx)(`nav`,{"aria-label":n(b.SIDEBAR$CONVERSATIONS),className:`space-y-1 md:space-y-0.5 pb-1`,children:W.map(e=>{let t=`thread-folder-${e.id.replace(/[^a-zA-Z0-9_-]/g,`-`)}`,i=e.id.replace(/[^a-zA-Z0-9_-]/g,`-`),a=!L.has(e.id),o=ae.has(e.id),{visibleConversations:s,isPreviewTruncated:c,isShowingAll:l}=ir(e.conversations,{expanded:o,activeConversationId:r});return(0,X.jsxs)(`section`,{"aria-labelledby":t,children:[(0,X.jsxs)(`div`,{className:z(`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`,id:t,"aria-expanded":a,onClick:()=>ce(e.id),className:`flex min-h-8 min-w-0 flex-1 items-center gap-2 rounded-md py-1 text-left text-inherit outline-none transition-colors focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`,children:[(0,X.jsx)(T,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`truncate`,children:e.label})]}),(0,X.jsx)(`button`,{type:`button`,className:z(`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:Ve,"aria-label":n(b.CONVERSATION_PANEL$ADD_CONVERSATION_TO_GROUP,{label:e.label}),"data-testid":`add-conversation-to-group-${e.id.replace(/[^a-zA-Z0-9_-]/g,`-`)}`,onClick:t=>{t.preventDefault(),t.stopPropagation(),He(e.launch)},children:(0,X.jsx)(re,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0,strokeWidth:2})})]}),a?(0,X.jsxs)(`div`,{className:`mt-0.5 space-y-0.5`,children:[s.map(Ye),c?(0,X.jsx)(`div`,{className:`pl-2`,children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`thread-folder-view-more-${i}`,onClick:()=>le(e.id),className:`ml-[26px] cursor-pointer text-xs text-[var(--oh-text-dim)] hover:text-white`,children:n(l?b.CONVERSATION_PANEL$LESS:b.CONVERSATION_PANEL$MORE)})}):null]}):null]},e.id)})}):null,!Xe&&!t&&w===`chronological`?(0,X.jsx)(`div`,{className:`space-y-0.5`,children:De.map(Ye)}):null,Le&&(0,X.jsx)(`div`,{className:`flex justify-center py-4`,children:Ce?(0,X.jsx)(_e,{size:`small`}):(0,X.jsx)(`button`,{type:`button`,"data-testid":`load-more-conversations`,onClick:()=>we(),className:`text-xs text-[var(--oh-muted)] hover:text-white`,children:n(b.CONVERSATION$LOAD_MORE)})})]}),s&&(0,X.jsx)(j,{onConfirm:()=>{Ke(),c(!1),me(null)},onCancel:()=>{c(!1),me(null)},conversationTitle:pe??void 0}),p&&(0,X.jsx)(j,{title:n(b.CONVERSATION$CONFIRM_DELETE_ALL_TITLE),description:n(b.CONVERSATION$CONFIRM_DELETE_ALL_DESC,{count:V.length}),onConfirm:async()=>{await Je(),m(!1)},onCancel:()=>m(!1)}),l&&(0,X.jsx)(R,{onConfirm:()=>{qe(),u(!1)},onCancel:()=>u(!1)}),d&&(0,X.jsx)(yn,{onConfirm:()=>{e?.()},onClose:()=>f(!1),onCancel:()=>f(!1)})]})}function hr({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)(mr,{})})})}var gr=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,_r=34,vr=Math.round(_r*30/46);function yr({collapsed:e,showCollapseToggle:t,showMobileCloseButton:n=!1,onCloseMobile:r,linkDisabled:i,collapseToggleLabel:a,onCollapse:o,onExpand:s,showCollapsedExpandButton:c,isExtensionsActive:l,currentPath:u,activeBackendHealth:d,collapsedBackendPopoverOpen:f,setCollapsedBackendPopoverOpen:p,collapsedBackendPopoverRef:m,collapsedBackendCloseTimer:h,onOpenAddBackend:g,onOpenManageBackends:_}){let{t:y}=S(`openhands`),x=h;return(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,X.jsxs)(`div`,{className:Ce(e),children:[(0,X.jsxs)(`div`,{className:z(e&&t?Te:`flex min-w-0 shrink-0 items-center`),children:[(0,X.jsx)(`div`,{className:z(e&&t&&`flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150`,e&&c&&`opacity-0`),children:(0,X.jsx)(nn,{logoWidth:_r,logoHeight:vr,logoClassName:`max-w-none`,className:z(De,`overflow-visible`)})}),e&&t?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":a,onClick:s,className:z(Se,c?`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":a,onClick:o,className:z(`hidden md:inline-flex ml-auto`,H,`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":y(b.SIDEBAR$CLOSE_MENU),className:z(`inline-flex ml-auto`,H,`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:U(e),children:[(0,X.jsx)(ke,{to:`/conversations`,end:!0,label:`New Chat`,testId:`sidebar-conversations-link`,disabled:i,collapsed:e,icon:(0,X.jsx)(re,{width:$,height:$})}),(0,X.jsx)(ke,{to:`/customize`,label:`Customize`,testId:`sidebar-skills-link`,disabled:i,collapsed:e,forceActive:l,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)(ke,{to:`/automations`,label:y(b.SIDEBAR$AUTOMATIONS),testId:`sidebar-automations-link`,disabled:i,collapsed:e,icon:(0,X.jsx)(gr,{width:$,height:$})})]}),(0,X.jsx)(hr,{collapsed:e}),e&&t?(0,X.jsxs)(`nav`,{className:z(U(e),`mt-auto pb-2 cursor-pointer`),children:[(0,X.jsx)(G,{content:y(b.SIDEBAR$SETTINGS),placement:`right`,children:(0,X.jsxs)(B,{to:`/settings`,"data-testid":`collapsed-settings-link`,"aria-label":y(b.SIDEBAR$SETTINGS),className:V({collapsed:!0}),children:[(0,X.jsx)(W,{active:u.startsWith(`/settings`),children:(0,X.jsx)(Qt,{width:$,height:$})}),(0,X.jsx)(`span`,{className:we(!0),children:y(b.SIDEBAR$SETTINGS)})]})}),(0,X.jsxs)(`div`,{className:`relative`,ref:m,onMouseEnter:()=>{x.current&&=(clearTimeout(x.current),null),p(!0)},onMouseLeave:()=>{x.current=setTimeout(()=>p(!1),150)},children:[(0,X.jsxs)(`button`,{type:`button`,"data-testid":`collapsed-backend-selector-link`,"aria-label":y(b.BACKEND$MANAGE),"aria-expanded":f,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onMouseUp:e=>e.stopPropagation(),className:z(V({collapsed:!0}),`relative`),children:[(0,X.jsx)(W,{active:f,children:(0,X.jsxs)(`span`,{className:`relative inline-flex size-[18px] shrink-0 items-center justify-center`,children:[(0,X.jsx)(Ze,{isConnected:d?.isConnected??null,className:`absolute -left-0.5 -top-0.5 z-[1] pointer-events-none`}),(0,X.jsx)(Zt,{width:$,height:$})]})}),(0,X.jsx)(`span`,{className:we(!0),children:y(b.BACKEND$MANAGE)})]}),f?(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)(gn,{sidebarCollapsed:e,hideTrigger:!0,defaultOpen:!0,openUpward:!0,onSelectOption:()=>p(!1),onOpenAddBackend:g,onOpenManageBackends:_})}):null]})]}):null,e?null:(0,X.jsx)(`div`,{className:z(`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)(gn,{sidebarCollapsed:e,openUpward:!0})})]})}var br=Y.lazy(()=>n(()=>import(`./settings-modal-Brzgh5Yw.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,39,40,41,42,43,44,45,46]))),xr=Y.lazy(()=>n(()=>import(`./add-backend-modal-DIUQzMPa.js`).then(e=>e.n).then(e=>({default:e.AddBackendModal})),__vite__mapDeps([47,1,9,48,13,49,50,16,15,17,10,40,39,18,19,45,20,21,7,29,32,12,31,51,33,44]))),Sr=Y.lazy(()=>n(()=>import(`./manage-backends-modal-l7RkKfwX.js`).then(e=>e.n).then(e=>({default:e.ManageBackendsModal})),__vite__mapDeps([52,1,13,49,15,16,17,9,10,53,54,55,56,18,19,48,50,40,39,45,20,21,7,29,32,12,31,51,33,44,57]))),Cr=250;function wr(){let{t:e}=S(`openhands`),{currentPath:t}=be(),{data:n}=ve(),{data:r,error:i,isError:a,isFetching:o}=ft(),{backends:s,active:c}=se(),l=Xe(s)[c.backend.id],u=Rt(e=>e.collapsed),d=Rt(e=>e.setCollapsed),[f,p]=Y.useState(!1),[m,h]=Y.useState(!1),g=Y.useRef(null),[_,v]=Y.useState(!1),[y,x]=Y.useState(!1),[C,w]=Y.useState(!1),T=Y.useRef(!1),[,E]=Y.useReducer(e=>e+1,0),{isOpen:D,close:O}=ee(),[k,A]=Y.useState(!1),[j,M]=Y.useState(!1),N=lt(()=>h(!1)),P=pt(i);Y.useEffect(()=>{O()},[t,O]),Y.useEffect(()=>{if(D){A(!0);let e=requestAnimationFrame(()=>{M(!0)});return()=>cancelAnimationFrame(e)}M(!1);let e=window.setTimeout(()=>{A(!1)},Cr);return()=>window.clearTimeout(e)},[D]),Y.useEffect(()=>{if(!D)return;let e=e=>{e.key===`Escape`&&O()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[D,O]),Y.useEffect(()=>{t===`/settings`?p(!1):!o&&a&&P!==404?te(`Something went wrong while fetching settings. Please reload the page.`):P===404&&!n?.feature_flags?.hide_llm_settings&&p(!0)},[t,o,a,P,n?.feature_flags?.hide_llm_settings]);let F=r?.email_verified===!1,I=e(u?b.SIDEBAR$EXPAND:b.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={linkDisabled:F,collapseToggleLabel:I,onCollapse:Y.useCallback(()=>{w(!1),T.current=!0,E(),d(!0),window.setTimeout(()=>{T.current=!1,E()},250)},[d]),onExpand:()=>d(!1),showCollapsedExpandButton:u&&C&&!T.current,isExtensionsActive:t===`/customize`||t.startsWith(`/skills`)||t===`/plugins`||t===`/mcp`,currentPath:t,activeBackendHealth:l,collapsedBackendPopoverOpen:m,setCollapsedBackendPopoverOpen:h,collapsedBackendPopoverRef:N,collapsedBackendCloseTimer:g,onOpenAddBackend:()=>v(!0),onOpenManageBackends:()=>x(!0)};return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`aside`,{"aria-label":e(b.SIDEBAR$NAVIGATION_LABEL),"data-collapsed":u?`true`:`false`,onClick:L,onMouseEnter:()=>{u&&w(!0)},onMouseLeave:()=>{w(!1)},className:z(`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)(yr,{collapsed:u,showCollapseToggle:!0,...R})}),k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:z(`fixed inset-0 z-40 bg-black/50 md:hidden`,`transition-opacity ease-in-out motion-reduce:transition-none`,j?`opacity-100`:`pointer-events-none opacity-0`),style:{transitionDuration:`${Cr}ms`},onClick:O,"aria-hidden":!j}),(0,X.jsx)(`aside`,{"aria-label":e(b.SIDEBAR$NAVIGATION_LABEL),"data-testid":`sidebar-mobile-drawer`,"aria-hidden":!j,className:z(`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`,j?`translate-x-0`:`-translate-x-full`),style:{transitionDuration:`${Cr}ms`},children:(0,X.jsx)(yr,{collapsed:!1,showCollapseToggle:!1,showMobileCloseButton:!0,onCloseMobile:O,...R})})]}):null,f&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(br,{settings:r,onClose:()=>p(!1)})}),_&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(xr,{onClose:()=>v(!1)})}),y&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Sr,{onClose:()=>x(!1)})})]})}var Tr=`/settings`,Er=`/customize`,Dr=[`/skills`,`/mcp`,`/plugins`];function Or(e){return e===Tr?{mode:`menu`}:e.startsWith(`${Tr}/`)&&e.length>9?{mode:`back`,backTo:Tr,backLabelKey:b.SETTINGS$TITLE}:e===Er?{mode:`menu`}:Dr.some(t=>e===t||e.startsWith(`${t}/`))?{mode:`back`,backTo:Er,backLabelKey:b.NAV$EXTENSIONS}:{mode:`menu`}}function kr(){let{t:e}=S(`openhands`),{currentPath:t,navigate:n}=be(),r=Or(t);return(0,X.jsxs)(`header`,{className:`flex md:hidden h-12 shrink-0 items-center gap-2 px-2.5`,"aria-label":e(b.SIDEBAR$NAVIGATION_LABEL),children:[(0,X.jsx)(L,{}),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??b.COMMON$BACK),className:F,children:(0,X.jsx)(M,{size:20,className:N,"aria-hidden":!0,strokeWidth:2})}):null]})}var Ar=()=>{let e=ce(),{mutate:t}=Bt();return{migrateUserConsent:Y.useCallback(async n=>{let r=localStorage.getItem(`analytics-consent`);r&&(n?.handleAnalyticsWasPresentInLocalStorage(),t({user_consents_to_analytics:r===`true`},{onSuccess:()=>{zt(e,r===`true`)}}),localStorage.removeItem(`analytics-consent`))},[e,t])}},jr=()=>{let e=ce(),{data:t}=ft(),n=Y.useRef(!1);Y.useEffect(()=>{if(!e||t===void 0||n.current)return;let r=t.user_consents_to_analytics;if(r!==null){let t=e.has_opted_in_capturing(),i=e.has_opted_out_capturing();(r===!0&&!t||r===!1&&!i)&&zt(e,r),n.current=!0}},[e,t])};function Mr(e){switch(e){case K.RUNNING:return`🟢`;case K.FINISHED:case K.IDLE:case K.WAITING_FOR_CONFIRMATION:return`✅`;case K.PAUSED:return`⚪`;case K.ERROR:case K.STUCK:return`🔴`;default:return null}}var Nr=`OpenHands`,Pr=()=>{let{conversationId:e}=l(),{data:t}=Vt(e??null),n=Ht(e=>e.execution_status),r=t?.title,i=e&&r?`${r} | ${Nr}`:Nr;if(!e)return i;let a=Mr(n??t?.execution_status??null);return a?`${a} ${i}`:i};function Fr({children:e}){let{pathname:t}=p(),n=s(),r=c(),i=f(),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)(xe,{value:Y.useMemo(()=>({currentPath:t,conversationId:a,isNavigating:!!r.location,navigate:(e,t)=>n(e,t)}),[t,a,r.location,n]),children:e})}var Ir=Y.lazy(()=>n(()=>import(`./environment-switch-overlay-XL8yCGP6.js`),__vite__mapDeps([58,1,12,10,9,18,19,59]))),Lr=Y.lazy(()=>n(()=>import(`./analytics-consent-form-modal-CHZ3I37v.js`).then(e=>({default:e.AnalyticsConsentFormModal})),__vite__mapDeps([60,27,1,28,10,9,18,19,20,21,7,30,31,32,12,34,35,16,36,17,37,13,38,39,40,41,42,43,15,44,45,61]))),Rr=Y.lazy(()=>n(()=>import(`./alert-banner-DtzAX654.js`).then(e=>({default:e.AlertBanner})),__vite__mapDeps([62,1,63,10,9,18,19,64,65,21,7,33,66,67,24]))),zr=u(function(){let e=a(),{t}=S(`openhands`);return i(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(b.ERROR$GENERIC)}),(0,X.jsx)(`pre`,{children:e.message})]}):(0,X.jsx)(`div`,{children:(0,X.jsx)(`h1`,{children:t(b.ERROR$UNKNOWN)})})}),Br=o(function(){let e=p(),t=Pr(),{data:n}=ft(),{migrateUserConsent:r}=Ar(),i=ve(),[a,o]=Y.useState(!1);if(jr(),Y.useEffect(()=>{n?.language&&C.changeLanguage(n.language)},[n?.language]),Y.useEffect(()=>{o(n?.user_consents_to_analytics===null)},[n?.user_consents_to_analytics]),Y.useEffect(()=>{r({handleAnalyticsWasPresentInLocalStorage:()=>{o(!1)}})},[r]),i.isLoading)return(0,X.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-base`,children:(0,X.jsx)(_e,{size:`large`})});let s=/^\/conversations\/[^/]+/.test(e.pathname);return(0,X.jsx)(Fr,{children:(0,X.jsxs)(k,{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)(wr,{}),(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-col w-full min-w-0 h-full gap-3`,children:[s?null:(0,X.jsx)(kr,{}),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)(Rr,{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)(d,{})})]}),a&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Lr,{onClose:()=>{o(!1)}})})]}),(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Ir,{})})]})})});export{zr as ErrorBoundary,Br as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-BFRubm34.js";import{c as t,t as n}from"./agent-server-client-options-Bc5ZorQZ.js";import{t as r}from"./settings-client-C73C7IgV.js";import{t as i}from"./proxy-CxydCnis.js";var a=100;function o(){let e=t().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 t().backend.kind===`cloud`?await f(()=>s()):(await f(()=>new r(n()).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(t().backend.kind===`cloud`){await f(()=>c(e,i,a));return}await f(()=>new r(n()).upsertSecret({name:e,value:i,description:a}))}static async updateSecret(e,n,r){if(t().backend.kind===`cloud`){await f(()=>l(e,n,r));return}await this.createSecret(e,n,r)}static async deleteSecret(e){try{if(t().backend.kind===`cloud`){await f(()=>u(e));return}await f(()=>new r(n()).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{t}from"./react-CM_dJw1Z.js";import{L as n}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{t as r}from"./useMutation-DqrumCWD.js";import{o as i,t as a}from"./declaration-BNMqORFE.js";import{n as o}from"./QueryClientProvider-CkGuhXg-.js";import{t as s}from"./useTranslation-DCOdSSMl.js";import{a as c,c as l,i as u,l as d,o as f,r as p,s as m,u as h}from"./settings-list-classes-Bf80tWtc.js";import{t as g}from"./pencil-Dr0b2jL1.js";import{t as _}from"./trash-2-CbVljPko.js";import{t as v}from"./utils-i18rdUj2.js";import{a as y,s as b,t as x}from"./brand-button-Br7f0kZJ.js";import{t as S}from"./loading-spinner-BPtYORNK.js";import{n as C,t as w}from"./settings-input-Bn7F5C75.js";import{t as T}from"./confirmation-modal-Dau3w_sa.js";import{r as E}from"./typography-gpuWmrQO.js";import{t as D}from"./secrets-service-BsnKFc2x.js";import{n as O,t as k}from"./use-get-secrets-DuhdIA59.js";var A=e(t(),1),j=()=>r({mutationFn:e=>D.deleteSecret(e)}),M=()=>r({mutationFn:({secretToEdit:e,name:t,description:n})=>D.updateSecret(e,t,n)}),N=i();function P({mode:e,selectedSecret:t,onCancel:n}){let r=o(),{t:i}=s(`openhands`),{data:c}=k(),{mutate:l}=O(),{mutate:u}=M(),[d,f]=A.useState(null),p=e===`edit`&&t&&c?.find(e=>e.name===t)?.description?.trim()||``,m=()=>{r.invalidateQueries({queryKey:[`secrets-search`]}),r.invalidateQueries({queryKey:[`secrets`]})},h=(e,t,r)=>{l({name:e,value:t,description:r},{onSettled:n,onSuccess:m})},g=(e,t,r)=>{u({secretToEdit:e,name:t,description:r},{onSettled:n,onSuccess:m})};return(0,N.jsxs)(`form`,{"data-testid":e===`add`?`add-secret-form`:`edit-secret-form`,onSubmit:n=>{n.preventDefault();let r=new FormData(n.currentTarget),a=r.get(`secret-name`)?.toString(),o=r.get(`secret-value`)?.toString().trim(),s=r.get(`secret-description`)?.toString();if(a){if(f(null),c?.some(e=>e.name===a&&e.name!==t)){f(i(`SECRETS$SECRET_ALREADY_EXISTS`));return}if(e===`add`){if(!o){f(i(`SECRETS$SECRET_VALUE_REQUIRED`));return}h(a,o,s||void 0)}else e===`edit`&&t&&g(t,a,s||void 0)}},className:`flex flex-col items-start gap-6`,children:[(0,N.jsx)(w,{testId:`name-input`,name:`secret-name`,type:`text`,label:`Name`,className:`w-full min-w-0`,required:!0,defaultValue:e===`edit`&&t?t:``,placeholder:i(`SECRETS$API_KEY_EXAMPLE`),pattern:`^[a-zA-Z][a-zA-Z0-9_]{0,63}$`,title:`Must start with a letter, contain only letters/numbers/underscores, and be 1-64 characters`}),d&&(0,N.jsx)(`p`,{className:`text-red-500 text-sm`,children:d}),e===`add`&&(0,N.jsxs)(`label`,{className:`flex flex-col gap-2.5 w-full min-w-0`,children:[(0,N.jsx)(`span`,{className:`text-sm`,children:i(a.FORM$VALUE)}),(0,N.jsx)(`textarea`,{"data-testid":`value-input`,name:`secret-value`,required:!0,className:v(`resize-none`,y,`placeholder:italic`,`disabled:bg-[var(--oh-surface-raised)] disabled:border-[var(--oh-border-subtle)] disabled:cursor-not-allowed`),rows:8})]}),(0,N.jsxs)(`label`,{className:`flex flex-col gap-2.5 w-full min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`text-sm`,children:i(a.FORM$DESCRIPTION)}),(0,N.jsx)(C,{})]}),(0,N.jsx)(`input`,{"data-testid":`description-input`,name:`secret-description`,defaultValue:p,className:v(b,`disabled:bg-[var(--oh-surface-raised)] disabled:border-[var(--oh-border-subtle)]`)})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,N.jsx)(x,{testId:`cancel-button`,type:`button`,variant:`secondary`,onClick:n,children:i(a.BUTTON$CANCEL)}),(0,N.jsxs)(x,{testId:`submit-button`,type:`submit`,variant:`primary`,children:[e===`add`&&i(`SECRETS$ADD_SECRET`),e===`edit`&&i(`SECRETS$EDIT_SECRET`)]})]})]})}function F(){return(0,N.jsxs)(`div`,{className:v(u,`justify-between border-t border-[var(--oh-border)] first:border-t-0`),children:[(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-4`,children:[(0,N.jsx)(`span`,{className:`skeleton h-4 w-1/4`}),(0,N.jsx)(`span`,{className:`skeleton h-4 w-1/2`})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,N.jsx)(`span`,{className:`skeleton h-4 w-4`}),(0,N.jsx)(`span`,{className:`skeleton h-4 w-4`})]})]})}function I({title:e,description:t,onEdit:n,onDelete:r}){return(0,N.jsxs)(`tr`,{"data-testid":`secret-item`,className:d,children:[(0,N.jsx)(`td`,{className:v(f,`text-content-2 truncate`),title:e,children:e}),(0,N.jsx)(`td`,{className:v(f,`truncate text-content-2 opacity-80`),title:t||``,children:t||``}),(0,N.jsx)(`td`,{className:f,children:(0,N.jsxs)(`div`,{className:`flex items-center justify-end gap-0.5`,children:[(0,N.jsx)(`button`,{"data-testid":`edit-secret-button`,type:`button`,onClick:n,"aria-label":`Edit ${e}`,className:p,children:(0,N.jsx)(g,{"aria-hidden":!0,className:`size-4`,strokeWidth:2})}),(0,N.jsx)(`button`,{"data-testid":`delete-secret-button`,type:`button`,onClick:r,"aria-label":`Delete ${e}`,className:p,children:(0,N.jsx)(_,{"aria-hidden":!0,className:`size-4`,strokeWidth:2})})]})})]})}var L={hideTitle:!0};function R(){let e=o(),{t}=s(`openhands`),n=(0,A.useRef)(null),{data:r,isLoading:i,hasNextPage:u,isFetchingNextPage:d,onLoadMore:f}=k(),{mutate:p}=j(),[g,_]=A.useState(`list`),[y,b]=A.useState(null),[C,w]=A.useState(!1),D=(0,A.useCallback)(e=>{let t=e.currentTarget;t.scrollHeight-t.scrollTop<=t.clientHeight+100&&u&&!d&&f()},[u,d,f]),O=()=>{e.invalidateQueries({queryKey:[`secrets-search`]}),e.invalidateQueries({queryKey:[`secrets`]})},M=e=>{p(e,{onSettled:()=>{w(!1)},onSuccess:O,onError:O})},L=()=>{y&&M(y)},R=()=>{w(!1)},z=()=>{_(`list`),b(null)},B=g===`add-secret-form`||g===`edit-secret-form`,V=t(g===`add-secret-form`?a.SECRETS$ADD_A_SECRET:a.SECRETS$EDIT_A_SECRET);return(0,N.jsxs)(`div`,{"data-testid":`secrets-settings-screen`,className:`flex flex-col gap-6`,children:[g===`list`?(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,N.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,N.jsx)(E.H2,{children:t(a.SETTINGS$NAV_SECRETS)}),(0,N.jsx)(`p`,{"data-testid":`settings-page-subtitle`,className:`text-sm leading-5 text-tertiary-light`,children:t(a.SETTINGS$PAGE_SECRETS_SUBLINE)})]}),(0,N.jsx)(x,{testId:`add-secret-button`,type:`button`,variant:`primary`,className:`shrink-0 whitespace-nowrap`,onClick:()=>_(`add-secret-form`),isDisabled:i,children:t(`SECRETS$ADD_NEW_SECRET`)})]}):null,B?(0,N.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:z,className:`flex items-center gap-2 self-start rounded-lg p-2 text-[var(--oh-muted)] transition-colors hover:bg-tertiary hover:text-white`,"data-testid":`back-to-secrets`,children:[(0,N.jsx)(h,{size:20,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`text-sm leading-5`,children:t(a.BUTTON$BACK)})]}),(0,N.jsx)(E.H2,{testId:`secret-editor-title`,children:V})]}):null,i&&g===`list`&&(0,N.jsxs)(`ul`,{children:[(0,N.jsx)(F,{}),(0,N.jsx)(F,{}),(0,N.jsx)(F,{})]}),g===`list`&&!i&&(0,N.jsxs)(`div`,{ref:n,className:c,onScroll:D,children:[(0,N.jsxs)(`table`,{className:`w-full min-w-full table-fixed`,children:[(0,N.jsx)(`thead`,{className:m,children:(0,N.jsxs)(`tr`,{children:[(0,N.jsx)(`th`,{className:v(l,`w-1/4`),children:t(a.SETTINGS$NAME)}),(0,N.jsx)(`th`,{className:v(l,`w-1/2`),children:t(a.SECRETS$DESCRIPTION)}),(0,N.jsx)(`th`,{className:v(l,`w-1/4 text-right`),children:t(a.SETTINGS$ACTIONS)})]})}),(0,N.jsx)(`tbody`,{children:r?.map(e=>(0,N.jsx)(I,{title:e.name,description:e.description,onEdit:()=>{_(`edit-secret-form`),b(e.name)},onDelete:()=>{w(!0),b(e.name)}},e.name))})]}),d&&(0,N.jsx)(`div`,{className:`flex justify-center p-4`,children:(0,N.jsx)(S,{size:`small`})})]}),(g===`add-secret-form`||g===`edit-secret-form`)&&(0,N.jsx)(P,{mode:g===`add-secret-form`?`add`:`edit`,selectedSecret:y,onCancel:z}),C&&(0,N.jsx)(T,{text:t(`SECRETS$CONFIRM_DELETE_KEY`),onConfirm:L,onCancel:R})]})}var z=n(R);export{z as default,L as handle};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./agent-server-client-options-Bc5ZorQZ.js";var t=class{constructor(t){this.host=t.host.replace(/\/$/,``),this.apiKey=t.apiKey,this.client=new e({baseUrl:this.host,apiKey:this.apiKey,timeout:t.timeout||6e4})}async getAgentSchema(){return(await this.client.get(`/api/settings/agent-schema`)).data}async getSettings(e={}){return(await this.client.get(`/api/settings`,{headers:e.exposeSecrets?{"X-Expose-Secrets":e.exposeSecrets}:void 0})).data}async updateSettings(e){return(await this.client.patch(`/api/settings`,e)).data}async listSecrets(){return(await this.client.get(`/api/settings/secrets`)).data}async upsertSecret(e){return(await this.client.put(`/api/settings/secrets`,e)).data}async getSecret(e){return(await this.client.get(`/api/settings/secrets/${encodeURIComponent(e)}`,{responseType:`text`})).data}async deleteSecret(e){return(await this.client.delete(`/api/settings/secrets/${encodeURIComponent(e)}`)).data}async getConversationSchema(){return(await this.client.get(`/api/settings/conversation-schema`)).data}async listProfiles(){return(await this.client.get(`/api/profiles`)).data}async getProfile(e,t={}){return(await this.client.get(`/api/profiles/${encodeURIComponent(e)}`,{headers:t.exposeSecrets?{"X-Expose-Secrets":t.exposeSecrets}:void 0})).data}async saveProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}`,t)).data}async deleteProfile(e){return(await this.client.delete(`/api/profiles/${encodeURIComponent(e)}`)).data}async renameProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}/rename`,{new_name:t})).data}close(){this.client.close()}};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as e,s as t}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{o as n,t as r}from"./declaration-BNMqORFE.js";import{t as i}from"./useTranslation-DCOdSSMl.js";import{t as a}from"./use-settings-nav-items-1ZvovKSr.js";import{t as o}from"./use-config-Co1O8-Ey.js";import{t as s}from"./sidebar-nav-link-BGjiJq-4.js";import{r as c}from"./typography-gpuWmrQO.js";import{t as l}from"./use-breakpoint-DbJ6FkQ-.js";import{t as u}from"./backend-synced-settings-badge-Dc6c7GT4.js";import{n as d}from"./settings-utils-B6Nl07io.js";var f=n();function p({navigationItems:e}){let{t}=i(`openhands`),n=e.filter(e=>e.type===`item`);return(0,f.jsxs)(`div`,{"data-testid":`settings-mobile-hub`,className:`flex flex-col gap-4 px-4 py-2 md:hidden`,children:[(0,f.jsx)(c.H2,{children:t(r.SETTINGS$TITLE)}),(0,f.jsx)(`nav`,{className:`flex flex-col gap-0.5`,children:n.map(e=>(0,f.jsx)(s,{to:e.item.to,label:t(e.item.text),end:!0,testId:`sidebar-settings-${e.item.to}`,icon:e.item.icon},e.item.to))}),(0,f.jsx)(`div`,{className:`pt-1`,children:(0,f.jsx)(u,{})})]})}var m=e(function(){let e=l(768),n=a(),{data:r}=o();return e?(0,f.jsx)(p,{navigationItems:n}):(0,f.jsx)(t,{to:d(r?.feature_flags)??`/settings/app`,replace:!0})});export{m as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-Ddu8jDOQ.js";import{t}from"./utils-i18rdUj2.js";import{d as n,l as r,n as i,o as a}from"./brand-button-Br7f0kZJ.js";var o=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),s=`h-12 min-h-12`,c=t(i,a,r,`overflow-hidden`),l=t(c,`overflow-auto max-h-[min(40vh,22rem)]`),u=`divide-y divide-[var(--oh-border)]`,d=`hover:bg-[var(--oh-interactive-hover-low)]`,f=t(s,`flex items-center px-3`,n,d),p=t(d,n,`border-t border-[var(--oh-border)] first:border-t-0`),m=t(r,`sticky top-0 z-10 border-b border-[var(--oh-border)]`),h=t(s,`px-3 text-left text-sm font-medium align-middle`),g=t(s,`px-3 text-sm align-middle min-w-0`),_=t(`inline-flex cursor-pointer items-center justify-center rounded-md p-1 text-muted`,n,`hover:bg-[var(--oh-interactive-hover-low)] hover:text-white`);export{l as a,h as c,f as i,p as l,u as n,g as o,_ as r,m as s,c as t,o as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{o as n,t as r}from"./declaration-BNMqORFE.js";import{t as i}from"./useTranslation-DCOdSSMl.js";import{O as a,t as o}from"./utils-i18rdUj2.js";import{n as s}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js";import{t as c}from"./modal-backdrop-BAbgYsqB.js";import{r as l,t as u}from"./modal-body-BI6Ru2Qr.js";import{t as d}from"./base-modal-_dYTw1ri.js";import{t as f}from"./brand-button-Br7f0kZJ.js";import{n as p}from"./navigation-context-D0YWpT8d.js";import{t as m}from"./model-selector-SM9IUz-q.js";import{t as h}from"./settings-input-Bn7F5C75.js";import{t as g}from"./settings-D_H-qsRm.js";import{t as _}from"./use-save-settings-VUrj_QNG.js";import{d as v,i as y}from"./sdk-settings-schema-DsUf9wu1.js";import{t as b}from"./settings-utils-B6Nl07io.js";var x=e(t(),1),S=n();function C({testId:e,title:t,description:n,buttons:r}){return(0,S.jsx)(d,{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 w({settings:e,onClose:t}){let n=s(),{mutate:o}=_(),{currentPath:l}=p(),{t:u}=i(`openhands`),d=x.useRef(null),[g,w]=x.useState(!1),T=async e=>{let r=b(e);await o(r,{onSuccess:()=>{t();let e=r.agent_settings_diff?.llm??{};n.capture(`settings_saved`,{LLM_MODEL:e.model,LLM_API_KEY_SET:e.api_key?`SET`:`UNSET`,SEARCH_API_KEY_SET:r.search_api_key?`SET`:`UNSET`,REMOTE_RUNTIME_RESOURCE_FACTOR:r.remote_runtime_resource_factor})}})},E=()=>{T(new FormData(d.current??void 0))},D=e=>{e.preventDefault();let t=new FormData(e.currentTarget);l.startsWith(`/conversations/`)?w(!0):T(t)},O=e.llm_api_key_set,k=y(e,`llm.model`),A=y(e,`llm.base_url`);return(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`form`,{ref:d,"data-testid":`settings-form`,className:`flex flex-col gap-6`,onSubmit:D,children:[(0,S.jsxs)(`div`,{className:`flex flex-col gap-[17px]`,children:[(0,S.jsx)(m,{currentModel:typeof k==`string`?k:void 0,currentBaseUrl:typeof A==`string`?A:void 0,wrapperClassName:`!flex-col !gap-[17px]`,labelClassName:a.LABEL_CLASSNAME}),(0,S.jsx)(h,{testId:`llm-api-key-input`,name:`llm-api-key-input`,label:u(r.SETTINGS_FORM$API_KEY),type:`password`,className:`w-full`,placeholder:O?`<hidden>`:``,labelClassName:a.LABEL_CLASSNAME}),(0,S.jsx)(v,{testId:`llm-api-key-help-anchor`,text:u(r.SETTINGS$DONT_KNOW_API_KEY),linkText:u(r.SETTINGS$CLICK_FOR_INSTRUCTIONS),href:`https://docs.openhands.dev/usage/local-setup#getting-an-api-key`,size:`settings`,linkColor:`white`})]}),(0,S.jsx)(`div`,{className:`flex flex-col gap-2`,children:(0,S.jsx)(f,{testId:`save-settings-button`,type:`submit`,variant:`primary`,className:`w-full`,children:u(r.BUTTON$SAVE)})})]}),g&&(0,S.jsx)(c,{children:(0,S.jsx)(C,{title:u(r.MODAL$END_SESSION_TITLE),description:u(r.MODAL$END_SESSION_MESSAGE),buttons:{danger:{text:u(r.BUTTON$END_SESSION),onClick:E},cancel:{text:u(r.BUTTON$CANCEL),onClick:()=>w(!1)}}})})]})}function T({onClose:e,settings:t}){let{t:n}=i(`openhands`);return(0,S.jsx)(c,{children:(0,S.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`,l(`md`),u),children:[(0,S.jsx)(`span`,{className:`text-5 leading-6 font-medium -tracking-[0.2px]`,children:n(r.AI_SETTINGS$TITLE)}),(0,S.jsx)(v,{testId:`advanced-settings-link`,text:`${n(r.SETTINGS$DESCRIPTION)}. ${n(r.SETTINGS$FOR_OTHER_OPTIONS)} ${n(r.COMMON$SEE)}`,linkText:n(r.COMMON$ADVANCED_SETTINGS),href:`/settings`,suffix:`.`,size:`settings`,linkColor:`white`,suffixClassName:`text-white`}),(0,S.jsx)(w,{settings:t||g,onClose:e})]})})}export{T as SettingsModal};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,t}from"./agent-server-client-options-Bc5ZorQZ.js";import{t as n}from"./settings-client-C73C7IgV.js";import{t as r}from"./proxy-CxydCnis.js";import{t as i}from"./settings-D_H-qsRm.js";var a=`openhands-agent-server-app-preferences`,o=[`language`,`user_consents_to_analytics`,`enable_sound_notifications`,`git_user_name`,`git_user_email`],s=new Set(o),c=e=>s.has(e),l=(e,t)=>{switch(e){case`language`:case`git_user_name`:case`git_user_email`:return typeof t==`string`?t:void 0;case`enable_sound_notifications`:return typeof t==`boolean`?t:void 0;case`user_consents_to_analytics`:return t===null?null:typeof t==`boolean`?t:void 0;default:return}},u=e=>{let t={};for(let n of o)if(n in e){let r=l(n,e[n]);r!==void 0&&(t[n]=r)}return t},d=()=>{if(typeof window>`u`)return{};try{let e=window.localStorage.getItem(a);if(!e)return{};let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?{}:u(t)}catch{return{}}},f=e=>{if(typeof window>`u`)return;let t=u(e),n={...d(),...t};if(Object.keys(n).length===0){window.localStorage.removeItem(a);return}window.localStorage.setItem(a,JSON.stringify(n))},p=e=>{let t={},n={};for(let[r,i]of Object.entries(e))if(c(r)){let e=l(r,i);e!==void 0&&(t[r]=e)}else n[r]=i;return{extracted:t,rest:n}};function m(){let t=e().backend;if(t.kind!==`cloud`)throw Error(`Cloud settings call requires a cloud backend.`);return t}function h(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),t}function g(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 _(){let e=await r({backend:m(),method:`GET`,path:`/api/v1/settings`});return{...e,agent_settings:h(e),conversation_settings:g(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 v(e){let t=m(),n={};if(e.agent_settings_diff&&Object.keys(e.agent_settings_diff).length>0&&(n.agent_settings_diff=e.agent_settings_diff),e.conversation_settings_diff&&Object.keys(e.conversation_settings_diff).length>0&&(n.conversation_settings_diff=e.conversation_settings_diff),e.disabled_skills!==void 0&&(n.disabled_skills=e.disabled_skills),e.app_preferences)for(let[t,r]of Object.entries(e.app_preferences))n[t]=r;await r({backend:t,method:`POST`,path:`/api/v1/settings`,body:n})}async function y(){return r({backend:m(),method:`GET`,path:`/api/v1/settings/agent-schema`})}async function b(){return r({backend:m(),method:`GET`,path:`/api/v1/settings/conversation-schema`})}var x=e=>JSON.parse(JSON.stringify(e)),S=`openhands-agent-server-disabled-skills`,C=()=>{if(typeof window>`u`)return null;try{let e=window.localStorage.getItem(S);if(!e)return null;let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):null}catch{return null}},w=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(S,JSON.stringify(e))}catch{}},T=(e,t)=>({...e??{},...t??{}});async function E(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 D={redacted:null,encrypted:null,timestamp:0},O=300*1e3,k=()=>Date.now()-D.timestamp<O,A=()=>{D={redacted:null,encrypted:null,timestamp:0}},j=e=>{let t={agent_settings:e.agent_settings??{},conversation_settings:e.conversation_settings??{},llm_api_key_set:e.llm_api_key_is_set},n=C();return n!==null&&(t.disabled_skills=n),t},M=e=>{let t=T(i.agent_settings??{},e.agent_settings??{}),n=T(i.conversation_settings??{},e.conversation_settings??{}),r=d(),a={...x(i),...r,...e,provider_tokens_set:{...i.provider_tokens_set??{},...e.provider_tokens_set??{}},agent_settings:t,conversation_settings:n},o=t.llm,s=t.condenser;return typeof t.agent==`string`&&(a.agent=t.agent),typeof o?.model==`string`&&o.model.length>0&&(a.llm_model=o.model),typeof o?.base_url==`string`&&(a.llm_base_url=o.base_url),typeof s?.enabled==`boolean`&&(a.enable_default_condenser=s.enabled),typeof s?.max_size==`number`&&(a.condenser_max_size=s.max_size),t.mcp_config&&(a.mcp_config=t.mcp_config),typeof n.confirmation_mode==`boolean`&&(a.confirmation_mode=n.confirmation_mode),(typeof n.security_analyzer==`string`||n.security_analyzer===null)&&(a.security_analyzer=n.security_analyzer),typeof n.max_iterations==`number`&&(a.max_iterations=n.max_iterations),a.search_api_key_set=!!a.search_api_key,a},N=class r{static async fetchSettingsFromApi(e){return E(()=>new n(t()).getSettings({exposeSecrets:e}))}static async getSettings(){if(e().backend.kind===`cloud`)try{return M(await E(()=>_()))}catch(e){return console.warn(`Failed to fetch cloud settings, using defaults:`,e),M({})}if(k()&&D.redacted)return M(j(D.redacted));try{let e=await this.fetchSettingsFromApi();return D.redacted=e,D.timestamp=Date.now(),M(j(e))}catch(e){return console.warn(`Failed to fetch settings from API, using defaults:`,e),M({})}}static async getSettingsForConversation(){if(k()&&D.encrypted)return{agentSettings:D.encrypted.agent_settings,conversationSettings:D.encrypted.conversation_settings,secretsEncrypted:!0};let e=await this.fetchSettingsFromApi(`encrypted`);return D.encrypted=e,D.timestamp||=Date.now(),{agentSettings:e.agent_settings,conversationSettings:e.conversation_settings,secretsEncrypted:!0}}static async getSettingsSchema(){return e().backend.kind===`cloud`?await y():await new n(t()).getAgentSchema()}static async getConversationSettingsSchema(){return e().backend.kind===`cloud`?await b():await new n(t()).getConversationSchema()}static async saveSettings(i){let{extracted:a,rest:o}=p(i),s=Object.keys(a).length>0;s&&f(a);let 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);let d=o.disabled_skills;Array.isArray(d)&&(c.disabled_skills=d);let m=e().backend.kind===`cloud`,h=c.agent_settings_diff,g=!!h&&`mcp_config`in h&&h.mcp_config!==null,y;if(g)try{y=m?(await _())?.agent_settings?.mcp_config:(await r.fetchSettingsFromApi())?.agent_settings?.mcp_config}catch{}if(m){if(!(c.agent_settings_diff||c.conversation_settings_diff||c.disabled_skills!==void 0||s))return!0;g&&await E(()=>v({agent_settings_diff:{mcp_config:null}}));try{await E(()=>v({...c,...s?{app_preferences:a}:{}}))}catch(e){if(g&&y)try{await v({agent_settings_diff:{mcp_config:y}})}catch{}throw e}}else{Array.isArray(d)&&w(d);let e={...c};if(delete e.disabled_skills,!(e.agent_settings_diff||e.conversation_settings_diff))return s&&A(),!0;g&&await E(()=>new n(t()).updateSettings({agent_settings_diff:{mcp_config:null}}));try{await E(()=>new n(t()).updateSettings(e))}catch(e){if(g&&y)try{await new n(t()).updateSettings({agent_settings_diff:{mcp_config:y}})}catch{}throw e}}return A(),!0}static invalidateCache(){A()}};export{N as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./useMutation-DqrumCWD.js";import{o as r,t as i}from"./declaration-BNMqORFE.js";import{n as a}from"./QueryClientProvider-CkGuhXg-.js";import{t as o}from"./Trans-Cvm_-SMi.js";import{t as s}from"./useTranslation-DCOdSSMl.js";import{t as c}from"./createLucideIcon-Ddu8jDOQ.js";import{t as l}from"./utils-i18rdUj2.js";import{t as u}from"./agent-server-conversation-service.api-C2V5SlHu.js";import{t as d}from"./modal-backdrop-BAbgYsqB.js";import{n as f}from"./modal-body-BI6Ru2Qr.js";import{n as p,r as m}from"./base-modal-_dYTw1ri.js";import{d as h,t as g}from"./brand-button-Br7f0kZJ.js";var _=c(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),v=e(t(),1),y=r();function b({onConfirm:e,onCancel:t,conversationTitle:n,title:r,description:a}){let{t:c}=s(`openhands`),l;return l=a??(n?(0,y.jsx)(o,{ns:`openhands`,i18nKey:i.CONVERSATION$DELETE_WARNING_WITH_TITLE,values:{title:n},components:{title:(0,y.jsx)(`span`,{className:`text-white`})}}):c(i.CONVERSATION$DELETE_WARNING)),(0,y.jsx)(d,{onClose:t,children:(0,y.jsxs)(f,{className:`items-start border border-[var(--oh-border)]`,children:[(0,y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,y.jsx)(m,{title:r??c(i.CONVERSATION$CONFIRM_DELETE)}),(0,y.jsx)(p,{children:l})]}),(0,y.jsxs)(`div`,{className:`flex justify-end gap-2 w-full`,onClick:e=>e.stopPropagation(),children:[(0,y.jsx)(g,{type:`button`,variant:`secondary`,onClick:t,"data-testid":`cancel-button`,children:c(i.BUTTON$CANCEL)}),(0,y.jsx)(g,{type:`button`,variant:`primary`,onClick:e,"data-testid":`confirm-button`,children:c(i.ACTION$CONFIRM_DELETE)})]})]})})}function x({onConfirm:e,onCancel:t}){let{t:n}=s(`openhands`);return(0,y.jsx)(d,{onClose:t,children:(0,y.jsxs)(f,{className:`items-start border border-[var(--oh-border)]`,children:[(0,y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,y.jsx)(m,{title:n(i.CONVERSATION$CONFIRM_CLOSE_CONVERSATION)}),(0,y.jsx)(p,{description:n(i.CONVERSATION$CLOSE_CONVERSATION_WARNING)})]}),(0,y.jsxs)(`div`,{className:`flex justify-end gap-2 w-full`,onClick:e=>e.stopPropagation(),children:[(0,y.jsx)(g,{type:`button`,variant:`secondary`,onClick:t,"data-testid":`cancel-button`,children:n(i.BUTTON$CANCEL)}),(0,y.jsx)(g,{type:`button`,variant:`primary`,onClick:e,"data-testid":`confirm-button`,children:n(i.ACTION$CONFIRM_CLOSE)})]})]})})}var S=()=>{let e=a();return n({mutationFn:e=>u.updateConversationTitle(e.conversationId,e.newTitle),onMutate:async t=>{await e.cancelQueries({queryKey:[`user`,`conversations`]});let n=e.getQueryData([`user`,`conversations`]);return e.setQueryData([`user`,`conversations`],e=>e?.map(e=>e.id===t.conversationId?{...e,title:t.newTitle}:e)),e.setQueryData([`user`,`conversation`,t.conversationId],e=>e&&{...e,title:t.newTitle}),{previousConversations:n}},onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]})}})},C=e=>(0,y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,y.jsx)(`path`,{d:`M12 2C12.5523 2 13 2.44772 13 3V13.5858L15.2929 11.2929C15.6834 10.9024 16.3166 10.9024 16.7071 11.2929C17.0976 11.6834 17.0976 12.3166 16.7071 12.7071L12.7071 16.7071C12.3166 17.0976 11.6834 17.0976 11.2929 16.7071L7.29289 12.7071C6.90237 12.3166 6.90237 11.6834 7.29289 11.2929C7.68342 10.9024 8.31658 10.9024 8.70711 11.2929L11 13.5858V3C11 2.44772 11.4477 2 12 2ZM5 17C5.55228 17 6 17.4477 6 18V20H18V18C18 17.4477 18.4477 17 19 17C19.5523 17 20 17.4477 20 18V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20V18C4 17.4477 4.44772 17 5 17Z`,fill:`currentColor`})}),w=e=>(0,y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,y.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M21 7.5V9H3V7.5H21ZM3 10.5H21V18H3V10.5ZM21 6H3C2.60218 6 2.22064 6.15804 1.93934 6.43934C1.65804 6.72064 1.5 7.10218 1.5 7.5V18C1.5 18.3978 1.65804 18.7794 1.93934 19.0607C2.22064 19.342 2.60218 19.5 3 19.5H21C21.3978 19.5 21.7794 19.342 22.0607 19.0607C22.342 18.7794 22.5 18.3978 22.5 18V7.5C22.5 7.10218 22.342 6.72064 22.0607 6.43934C21.7794 6.15804 21.3978 6 21 6ZM16.5 15H19.5V16.5H16.5V15Z`,fill:`currentColor`})}),T=v.createContext(null);function E({children:e}){let[t,n]=v.useState(!1),r=v.useCallback(()=>n(!0),[]),i=v.useCallback(()=>n(!1),[]),a=v.useCallback(()=>n(e=>!e),[]),o=v.useMemo(()=>({isOpen:t,open:r,close:i,toggle:a}),[t,r,i,a]);return(0,y.jsx)(T.Provider,{value:o,children:e})}function D(){let e=v.useContext(T);if(!e)throw Error(`useSidebarMobileNav must be used within SidebarMobileNavProvider`);return e}var O=l(`inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md p-1`,`text-[var(--oh-muted)]`,h,`hover:bg-white/10 hover:text-white`),k=`size-5 shrink-0`,A=e=>(0,y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,y.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M10 5.5H18C18.2761 5.5 18.5 5.72386 18.5 6V18C18.5 18.2761 18.2761 18.5 18 18.5H10L10 5.5ZM8.5 5.5H6C5.72386 5.5 5.5 5.72386 5.5 6V18C5.5 18.2761 5.72386 18.5 6 18.5H8.5L8.5 5.5ZM18 4H6C4.89543 4 4 4.89543 4 6V18C4 19.1046 4.89543 20 6 20H18C19.1046 20 20 19.1046 20 18V6C20 4.89543 19.1046 4 18 4Z`,fill:`currentColor`})});function j(){let{t:e}=s(`openhands`),{isOpen:t,toggle:n}=D();return(0,y.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-menu-toggle`,onClick:n,"aria-expanded":t,"aria-label":e(t?i.SIDEBAR$CLOSE_MENU:i.SIDEBAR$OPEN_MENU),className:O,children:(0,y.jsx)(A,{className:k,"aria-hidden":!0})})}export{E as a,C as c,b as d,_ as f,k as i,S as l,A as n,D as o,O as r,w as s,j as t,x as u};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{L as n}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{o as r,t as i}from"./declaration-BNMqORFE.js";import{t as a}from"./Trans-Cvm_-SMi.js";import{t as o}from"./useTranslation-DCOdSSMl.js";import{t as s}from"./retrieve-axios-error-message-BY-yIkIq.js";import{n as c}from"./custom-toast-handlers-C-SZFmto.js";import{a as l,l as u,n as d,s as f}from"./circle-plus-check-toggle-P7ZZToV4.js";import{t as p}from"./x-JOBEVLW0.js";import{t as m}from"./utils-i18rdUj2.js";import{t as h}from"./modal-backdrop-BAbgYsqB.js";import{t as g}from"./brand-button-Br7f0kZJ.js";import{t as _}from"./modal-close-button-t1Gh3qmL.js";import{r as v}from"./use-settings-DQIZmIov.js";import{t as y}from"./skills-ChIKZPK4.js";import{t as b}from"./use-save-settings-VUrj_QNG.js";import{t as ee}from"./use-skills-DAMLFjKU.js";import{t as x}from"./checkmark-DL7acQA7.js";import{t as S}from"./copy-DYgmUdIw.js";import{t as C}from"./settings-switch-BeIKrWms.js";import{n as w,t as T}from"./skill-card-pill-row-DF1axQCG.js";import{n as E}from"./extensions-navigation-BYR8Giqq.js";import{n as D,t as O}from"./use-launch-skill-in-chat-fNN_xGZG.js";import{t as k}from"./enum-filter-dropdown-CEgCdu4A.js";import{n as A}from"./settings-like-page-layout-classes-I0BDBEoq.js";var j=e(t(),1),M=r();function N({skillName:e,className:t}){return(0,M.jsx)(`span`,{"aria-hidden":`true`,title:e,"data-testid":`skill-icon-${e}`,className:m(`inline-flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden`,`rounded-lg border border-white/10 bg-surface-raised text-white`,`shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]`,`[&>svg]:h-5 [&>svg]:w-5`,t),children:(0,M.jsx)(y,{})})}var P=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function F(e){let t=e.match(/^description:\s*\|\s*\r?\n((?:[ \t].*(?:\r?\n|$))+)/m);if(t)return t[1].replace(/^[ \t]+/gm,``).trim();let n=e.match(/^description:\s*['"](.+?)['"]\s*$/m);if(n)return n[1].trim();let r=e.match(/^description:\s*(.+)\s*$/m);return r?r[1].trim():null}function I(e){let t=e.match(P);return t?e.slice(t[0].length).trim():e.trim()}function L(e){let t=e.replace(/^#+\s+[^\n]+\n+/,``).trim();return t.split(/\n\s*\n/).map(e=>e.replace(/\s+/g,` `).trim()).find(e=>e.length>0)??t.replace(/\s+/g,` `).trim()}function R(e){let t=e.description?.trim();if(t)return t;let n=e.content?.trim();if(!n)return``;let r=n.match(P);if(r){let e=F(r[1]);if(e)return e}return L(I(n))}var te=`inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light`,z={agentskills:{labelKey:i.SETTINGS$SKILLS_TYPE_AGENTSKILLS},knowledge:{labelKey:i.SETTINGS$SKILLS_TYPE_KNOWLEDGE},repo:{labelKey:i.SETTINGS$SKILLS_TYPE_REPO}};function B({type:e}){let{t}=o(`openhands`),n=z[e];return(0,M.jsx)(`span`,{"data-testid":`skill-type-badge-${e}`,className:te,children:t(n.labelKey)})}function V(e,t,n){if(e)return`${e}-${t}-${n}`}function H(e,t,n={}){let{variant:r=`card`,testIdPrefix:a}=n,o=[{id:`type-${e.type}`,node:(0,M.jsx)(B,{type:e.type})}];if(e.version&&o.push({id:`version-${e.version}`,node:(0,M.jsx)(`span`,{"data-testid":V(a,e.name,`version`)??`skill-version-${e.name}`,className:T,children:t(i.SETTINGS$SKILLS_VERSION,{version:e.version})})}),r===`detail`&&e.license&&o.push({id:`license-${e.license}`,node:(0,M.jsx)(`span`,{"data-testid":V(a,e.name,`license`),className:T,children:e.license})}),r===`detail`&&e.compatibility&&o.push({id:`compatibility-${e.compatibility}`,node:(0,M.jsx)(`span`,{"data-testid":V(a,e.name,`compatibility`),className:T,children:e.compatibility})}),e.disable_model_invocation&&o.push({id:`disable-model-invocation`,node:(0,M.jsxs)(`span`,{"data-testid":V(a,e.name,`disable-model-invocation`)??`skill-disable-model-invocation-${e.name}`,className:`inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]`,children:[(0,M.jsx)(`span`,{className:`size-1.5 rounded-full bg-[#fca5a5]`}),t(i.SETTINGS$SKILLS_DISABLE_MODEL_INVOCATION)]})}),r===`detail`&&e.allowed_tools)for(let t of e.allowed_tools)o.push({id:`allowed-tool-${t}`,node:(0,M.jsx)(`span`,{"data-testid":V(a,e.name,`tool-${t}`),className:m(T,`font-mono`),children:t})});if(r===`detail`&&e.metadata)for(let[t,n]of Object.entries(e.metadata))o.push({id:`metadata-${t}`,node:(0,M.jsxs)(`span`,{"data-testid":V(a,e.name,`metadata-${t}`),className:T,children:[(0,M.jsxs)(`span`,{className:`font-mono text-[10px] text-tertiary-light`,children:[t,`:`]}),` `,n]})});for(let t of e.triggers??[])o.push({id:`trigger-${t}`,node:(0,M.jsx)(`span`,{"data-testid":V(a,e.name,`trigger-${t}`),className:T,children:t})});return o}function U(e){let t=e?.trim();return t?!!(/^https?:\/\//i.test(t)||t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`~`)||/^[A-Za-z]:[\\/]/.test(t)||t.includes(`/`)||t.includes(`\\`)):!1}function W({skill:e,enabled:t,onOpen:n,onToggle:r}){let{t:a}=o(`openhands`),[s,c]=j.useState(!1),u=R(e),p=j.useMemo(()=>H(e,a),[e,a]),h=U(e.source);return j.useEffect(()=>{if(!s)return;let e=setTimeout(()=>c(!1),2e3);return()=>clearTimeout(e)},[s]),(0,M.jsx)(`div`,{"data-testid":`skill-card-${e.name}`,role:`button`,tabIndex:0,onClick:n,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n())},className:m(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,f,l),children:(0,M.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,M.jsx)(N,{skillName:e.name}),(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3`,children:[(0,M.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(`h3`,{"data-testid":`skill-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,M.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,M.jsx)(`p`,{"data-testid":`skill-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),h?(0,M.jsx)(`button`,{type:`button`,"data-testid":`skill-copy-source-${e.name}`,"aria-label":a(s?i.BUTTON$COPIED:i.SETTINGS$SKILLS_COPY_PATH),disabled:s,onClick:async t=>{t.stopPropagation(),e.source&&(await navigator.clipboard.writeText(e.source),c(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:s?(0,M.jsx)(x,{width:12,height:12}):(0,M.jsx)(S,{width:12,height:12})}):null]}):null]}),(0,M.jsx)(d,{testId:`skill-toggle-${e.name}`,isSelected:t,onToggle:r,disableTooltipKey:i.COMMON$DISABLE})]}),u?(0,M.jsx)(`div`,{"data-testid":`skill-description-${e.name}`,className:`min-w-0`,children:(0,M.jsx)(`p`,{className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:u})}):null,p.length>0?(0,M.jsx)(w,{pills:p,testId:`skill-triggers-${e.name}`}):null]})]})})}var G=`https://docs.openhands.dev/overview/skills/adding#adding-new-skills`,K=`/add-skill https://github.com/OpenHands/extensions/tree/main/skills/codereview`;function q(e){return e.name===`add-skill`?K:`/${e.name} `}function J({testId:e,label:t,value:n}){return(0,M.jsxs)(`label`,{className:`flex min-w-0 w-full flex-col gap-2.5`,children:[(0,M.jsx)(`span`,{className:`text-sm`,children:t}),(0,M.jsx)(`textarea`,{"data-testid":e,readOnly:!0,value:n,rows:Math.min(12,Math.max(4,n.split(`
|
|
2
|
-
`).length)),className:m(`bg-[var(--oh-surface-raised)] border border-[var(--oh-border-subtle)] w-full min-w-0 rounded-sm p-2 text-sm`,`cursor-not-allowed resize-none custom-scrollbar`)})]})}function Y({skill:e,enabled:t,onToggle:n,onClose:r}){let{t:a}=o(`openhands`),s=O(),[c,l]=j.useState(!1),u=j.useMemo(()=>q(e),[e]),d=R(e),f=j.useMemo(()=>H(e,a,{variant:`detail`,testIdPrefix:`skill-modal-pill`}),[e,a]),p=U(e.source);return j.useEffect(()=>{if(!c)return;let e=setTimeout(()=>l(!1),2e3);return()=>clearTimeout(e)},[c]),(0,M.jsx)(h,{onClose:r,"aria-label":e.name,children:(0,M.jsxs)(`div`,{"data-testid":`skill-detail-modal`,"data-skill-name":e.name,className:`relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)] w-[520px] max-w-[90vw] max-h-[85vh] overflow-y-auto custom-scrollbar`,children:[(0,M.jsx)(_,{onClose:r,testId:`skill-detail-modal-close`}),(0,M.jsxs)(`div`,{className:`flex items-start gap-3 pr-6`,children:[(0,M.jsx)(N,{skillName:e.name}),(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(`h2`,{"data-testid":`skill-modal-name-${e.name}`,className:`text-lg font-semibold`,children:e.name}),e.source?(0,M.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,M.jsx)(`p`,{"data-testid":`skill-modal-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),p?(0,M.jsx)(`button`,{type:`button`,"data-testid":`skill-modal-copy-source-${e.name}`,"aria-label":a(c?i.BUTTON$COPIED:i.SETTINGS$SKILLS_COPY_PATH),disabled:c,onClick:async()=>{e.source&&(await navigator.clipboard.writeText(e.source),l(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:c?(0,M.jsx)(x,{width:12,height:12}):(0,M.jsx)(S,{width:12,height:12})}):null]}):null]})]}),(0,M.jsx)(`div`,{"data-testid":`skill-modal-enable-row-${e.name}`,className:`flex w-full items-center rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)] px-3 py-2.5`,children:(0,M.jsx)(C,{testId:`skill-modal-toggle-${e.name}`,isToggled:t,onToggle:n,togglePosition:`right`,children:a(t?i.SETTINGS$SKILLS_ENABLED:i.SETTINGS$SKILLS_DISABLED)})}),d?(0,M.jsx)(`p`,{"data-testid":`skill-modal-description-${e.name}`,className:`text-xs text-tertiary-light`,children:d}):null,f.length>0?(0,M.jsx)(w,{pills:f,testId:`skill-modal-pills-${e.name}`}):null,e.content?(0,M.jsx)(J,{testId:`skill-modal-field-content-${e.name}`,label:a(i.SETTINGS$SKILLS_CONTENT),value:e.content}):null,(0,M.jsxs)(`div`,{className:`mt-2 flex justify-end gap-2`,children:[(0,M.jsx)(g,{type:`button`,variant:`secondary`,onClick:r,testId:`skill-detail-close`,children:a(i.BUTTON$CLOSE)}),(0,M.jsx)(g,{type:`button`,variant:`primary`,isDisabled:!t,onClick:()=>s(u,r),testId:`skill-detail-use-skill-${e.name}`,startContent:(0,M.jsx)(D,{className:`size-4`,"aria-hidden":!0}),children:a(i.SETTINGS$SKILLS_USE_SKILL_BUTTON)})]})]})})}var X=[i.SETTINGS$SKILLS_ADD_MODAL_STEP_1,i.SETTINGS$SKILLS_ADD_MODAL_STEP_2,i.SETTINGS$SKILLS_ADD_MODAL_STEP_3,i.SETTINGS$SKILLS_ADD_MODAL_STEP_4,i.SETTINGS$SKILLS_ADD_MODAL_STEP_5],Z={cmd:(0,M.jsx)(Q,{}),path:(0,M.jsx)(Q,{}),env:(0,M.jsx)(Q,{})};function Q({children:e}){return(0,M.jsx)(`code`,{className:m(`mx-0.5 inline-block rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] px-1.5 py-0.5 align-baseline font-mono text-[11px] text-white`),children:e})}function ne(){let{t:e}=o(`openhands`),[t,n]=j.useState(!1);return j.useEffect(()=>{if(!t)return;let e=setTimeout(()=>n(!1),2e3);return()=>clearTimeout(e)},[t]),(0,M.jsxs)(`div`,{className:`relative`,children:[(0,M.jsx)(`pre`,{"data-testid":`add-skill-modal-example`,className:m(`overflow-x-auto rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] p-2 pr-10 text-xs text-white`),children:K}),(0,M.jsx)(`button`,{type:`button`,"data-testid":`add-skill-modal-example-copy`,"aria-label":e(t?i.BUTTON$COPIED:i.BUTTON$COPY),disabled:t,onClick:async()=>{await navigator.clipboard.writeText(K),n(!0)},className:m(`absolute right-2 top-2 cursor-pointer rounded-sm border border-[var(--oh-border-subtle)]`,`bg-base-secondary p-1 text-tertiary-alt transition-colors`,`hover:bg-[var(--oh-surface)] hover:text-white disabled:cursor-default [&_path]:fill-current`),children:t?(0,M.jsx)(x,{width:14,height:14}):(0,M.jsx)(S,{width:14,height:14})})]})}function $({i18nKey:e}){return(0,M.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:(0,M.jsx)(a,{ns:`openhands`,i18nKey:e,components:Z})})}function re({onClose:e}){let{t}=o(`openhands`);return(0,M.jsx)(h,{onClose:e,"aria-label":t(i.SETTINGS$SKILLS_ADD_MODAL_TITLE),children:(0,M.jsxs)(`div`,{"data-testid":`add-skill-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,M.jsx)(_,{onClose:e,testId:`add-skill-modal-close`}),(0,M.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,M.jsx)(`h2`,{className:`pr-6 text-lg font-semibold`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_TITLE)}),(0,M.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_INTRO)})]}),(0,M.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,M.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_CHAT_TITLE)}),(0,M.jsx)($,{i18nKey:i.SETTINGS$SKILLS_ADD_MODAL_CHAT_BODY}),(0,M.jsx)(`p`,{className:`text-xs text-tertiary-light`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_EXAMPLE_LABEL)}),(0,M.jsx)(ne,{}),(0,M.jsx)(`ol`,{className:`list-decimal space-y-1 pl-4 text-xs leading-relaxed text-tertiary-light`,children:X.map(e=>(0,M.jsx)(`li`,{children:e===i.SETTINGS$SKILLS_ADD_MODAL_STEP_3?(0,M.jsx)(a,{ns:`openhands`,i18nKey:e,components:Z}):t(e)},e))})]}),(0,M.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS_TITLE)}),(0,M.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS)})]}),(0,M.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_STORAGE_TITLE)}),(0,M.jsx)($,{i18nKey:i.SETTINGS$SKILLS_ADD_MODAL_STORAGE_BODY})]}),(0,M.jsx)($,{i18nKey:i.SETTINGS$SKILLS_ADD_MODAL_PRIVATE_REPOS}),(0,M.jsx)(`a`,{href:G,target:`_blank`,rel:`noreferrer`,"data-testid":`add-skill-modal-docs-link`,className:`self-start text-xs text-[var(--oh-muted)] transition-colors hover:text-white hover:underline`,children:t(i.SETTINGS$SKILLS_ADD_MODAL_VIEW_DOCS)})]}),(0,M.jsx)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:(0,M.jsx)(g,{type:`button`,variant:`secondary`,onClick:e,testId:`add-skill-modal-dismiss`,children:t(i.BUTTON$CLOSE)})})]})})}var ie=[`all`,`agentskills`,`knowledge`,`repo`],ae={all:i.SETTINGS$SKILLS_TYPE_ALL,agentskills:i.SETTINGS$SKILLS_TYPE_AGENTSKILLS,knowledge:i.SETTINGS$SKILLS_TYPE_KNOWLEDGE,repo:i.SETTINGS$SKILLS_TYPE_REPO};function oe({value:e,onChange:t}){return(0,M.jsx)(k,{testId:`skills-type-filter`,value:e,onChange:t,options:ie,labelKeyByValue:ae})}function se({search:e,onSearchChange:t,typeFilter:n,onTypeFilterChange:r}){let{t:a}=o(`openhands`);return(0,M.jsxs)(`div`,{"data-testid":`skills-toolbar`,className:`flex items-stretch gap-2`,children:[(0,M.jsxs)(`div`,{className:m(`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,M.jsx)(u,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,M.jsx)(`input`,{"data-testid":`skills-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:a(i.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),"aria-label":a(i.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),className:m(`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,M.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":`Clear search`,className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,M.jsx)(p,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,M.jsx)(oe,{value:n,onChange:r})]})}function ce(e,t){if(!t)return!0;let n=[e.name,R(e),e.description??``,e.content??``,e.license??``,e.compatibility??``,...e.triggers??[],...e.allowed_tools??[]],r=t.toLowerCase();return n.some(e=>e.toLowerCase().includes(r))}function le(){let{t:e}=o(`openhands`),{mutate:t}=b(),{data:n,isLoading:r}=v(),{data:a,isLoading:l}=ee(),[u,d]=j.useState(new Set),[f,p]=j.useState(!1),[h,_]=j.useState(``),[y,x]=j.useState(`all`),[S,C]=j.useState(null),[w,T]=j.useState(!1);j.useEffect(()=>{r||!n||(d(new Set(n.disabled_skills??[])),p(!0))},[r,n?.disabled_skills]);let D=(e,t)=>{d(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})};j.useEffect(()=>{f&&t({disabled_skills:Array.from(u)},{onError:t=>{c(s(t)||e(i.ERROR$GENERIC))}})},[u,f,t,e]);let O=r||l||!n,k=j.useMemo(()=>a?a.filter(e=>(y===`all`||e.type===y)&&ce(e,h)):[],[a,y,h]);return(0,M.jsxs)(`div`,{"data-testid":`skills-settings-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,M.jsx)(E,{}),(0,M.jsx)(`main`,{className:m(A,`h-full`),children:(0,M.jsxs)(`div`,{className:`mx-auto flex w-full min-w-0 max-w-[800px] flex-col gap-6`,children:[(0,M.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,M.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,M.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(i.SETTINGS$SKILLS_TITLE)}),(0,M.jsx)(`div`,{"data-testid":`skills-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(i.SETTINGS$SKILLS_PAGE_DESCRIPTION)})]}),(0,M.jsx)(g,{type:`button`,variant:`secondary`,testId:`skills-add-skill-button`,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>T(!0),children:e(i.SETTINGS$SKILLS_ADD_BUTTON)})]}),O&&(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,M.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}),!O&&(!a||a.length===0)&&(0,M.jsx)(`p`,{className:`text-sm text-tertiary`,children:e(i.SETTINGS$SKILLS_NO_SKILLS)}),!O&&a&&a.length>0&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(se,{search:h,onSearchChange:_,typeFilter:y,onTypeFilterChange:x}),k.length===0?(0,M.jsx)(`p`,{"data-testid":`skills-no-match`,className:`text-sm text-tertiary`,children:e(i.SETTINGS$SKILLS_NO_MATCH)}):(0,M.jsx)(`section`,{className:m(`flex min-w-0 flex-col gap-3`,`@container min-w-0 w-full`),children:(0,M.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-3 @min-[600px]:grid-cols-2`,children:k.map(e=>(0,M.jsx)(W,{skill:e,enabled:!u.has(e.name),onOpen:()=>C(e),onToggle:t=>D(e.name,t)},e.name))})})]}),S&&(0,M.jsx)(Y,{skill:S,enabled:!u.has(S.name),onToggle:e=>D(S.name,e),onClose:()=>C(null)}),w&&(0,M.jsx)(re,{onClose:()=>T(!1)})]})})]})}var ue=n(le);export{ue as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./declaration-BNMqORFE.js";import{t}from"./common-DR1t-EeP.js";var n=new Set([t.IDLE,t.RUNNING,t.WAITING_FOR_CONFIRMATION,t.FINISHED]);function r(e){return!!e&&n.has(e)}function i(e){return e===t.PAUSED}function a(e){return e===t.ERROR||e===t.STUCK}function o(n,r,i,a){if(i===`ERROR`||a===`ERROR`||r===`error`)return e.AGENT_STATUS$ERROR_OCCURRED;if(i&&i!==`READY`)switch(i){case`WAITING_FOR_SANDBOX`:return e.COMMON$WAITING_FOR_SANDBOX;case`SETTING_UP_GIT_HOOKS`:return e.STATUS$SETTING_UP_GIT_HOOKS;case`SETTING_UP_SKILLS`:return e.STATUS$SETTING_UP_SKILLS;case`STARTING_CONVERSATION`:return e.CONVERSATION$STARTING_CONVERSATION;case`WORKING`:case`PREPARING_REPOSITORY`:case`RUNNING_SETUP_SCRIPT`:return e.CONVERSATION$STARTING_CONVERSATION;default:return e.CONVERSATION$STARTING_CONVERSATION}if(r===t.PAUSED)return e.CHAT_INTERFACE$STOPPED;if(n&&n!==`OPEN`)switch(n){case`CLOSED`:case`CLOSING`:return e.CHAT_INTERFACE$DISCONNECTED;case`CONNECTING`:return e.CHAT_INTERFACE$CONNECTING;default:throw Error(`Unknown WebsocketConnectionState: ${n}`)}if(r&&r!==t.STUCK)switch(r){case t.IDLE:return e.AGENT_STATUS$WAITING_FOR_TASK;case t.RUNNING:return e.AGENT_STATUS$RUNNING_TASK;case t.WAITING_FOR_CONFIRMATION:return e.AGENT_STATUS$WAITING_FOR_USER_CONFIRMATION;case t.FINISHED:return e.CHAT_INTERFACE$AGENT_FINISHED_MESSAGE;default:throw Error(`Unknown executionStatus: ${r}`)}return e.CHAT_INTERFACE$AGENT_ERROR_MESSAGE}export{i,r as n,a as r,o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js";import{t}from"./settings-service.api-CZ3uWx4v.js";import{t as n}from"./use-is-authed-BggE5wPj.js";var r=(r,i)=>{let{data:a}=n(),{data:o,error:s,isLoading:c,isFetching:l}=e({queryKey:[`settings-schema`,r],queryFn:r===`conversation`?t.getConversationSettingsSchema:t.getSettingsSchema,retry:!1,refetchOnWindowFocus:!1,staleTime:1e3*60*5,gcTime:1e3*60*15,enabled:!i&&!!a,meta:{disableToast:!0}});return i?{data:i,error:null,isLoading:!1,isFetching:!1}:{data:o,error:s,isLoading:c,isFetching:l}},i=e=>r(`agent`,e),a=e=>r(`conversation`,e);export{a as n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.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"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js";import{t}from"./agent-server-client-options-Bc5ZorQZ.js";import{n}from"./active-backend-context-cCM1vYYZ.js";import{t as r}from"./profiles-client-D6IkTJof.js";import{n as i,t as a}from"./query-keys-tAsQcc_9.js";var o=class{static async listProfiles(){return new r(t()).listProfiles()}static async getProfile(e,n){let i=n?{exposeSecrets:n}:{};return new r(t()).getProfile(e,i)}static async saveProfile(e,n){return new r(t()).saveProfile(e,n)}static async deleteProfile(e){return new r(t()).deleteProfile(e)}static async renameProfile(e,n){return new r(t()).renameProfile(e,n)}static async activateProfile(e){return new r(t()).activateProfile(e)}};function s(t={}){let{backend:r,orgId:s}=n();return e({queryKey:[...i.all,r.id,s],queryFn:o.listProfiles,...a,enabled:t.enabled??!0,meta:{disableToast:!0}})}export{o as n,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as e,y as t}from"./utils-i18rdUj2.js";import{n}from"./status-hp6M6E7E.js";import{t as r}from"./use-active-conversation-BEFNwnFk.js";import{t as i}from"./use-agent-state-Bkrd1FZq.js";var a=({allowAgentError:a=!1}={})=>{let{data:o}=r(),{curAgentState:s}=i(),c=a?t:e;return n(o?.execution_status)&&!c.includes(s)};export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js";import{n as t}from"./active-backend-context-cCM1vYYZ.js";import{a as n}from"./query-keys-tAsQcc_9.js";import{r}from"./vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-D9P8e98a.js";import{t as i}from"./settings-D_H-qsRm.js";import{t as a}from"./settings-service.api-CZ3uWx4v.js";var o=(...e)=>e.find(e=>typeof e==`boolean`),s=(...e)=>e.find(e=>typeof e==`number`),c=(...e)=>{for(let t of e){if(typeof t==`string`)return t;if(t===null)return null}},l={sse_servers:[],stdio_servers:[],shttp_servers:[]};function u(e){if(!e||typeof e!=`object`)return{...l};let t=e;if(!(`mcpServers`in t)||!t.mcpServers||typeof t.mcpServers!=`object`)return{...l};let n=[],r=[],i=[],a=t.mcpServers;for(let[e,t]of Object.entries(a)){if(!t||typeof t!=`object`)continue;let a=t.url;if(a){let e=t.transport,r=t.auth,o=typeof r==`string`&&r!==`oauth`?r:void 0;if(e===`sse`){let e={url:a};o&&(e.api_key=o),n.push(e)}else{let e={url:a};o&&(e.api_key=o),t.timeout!=null&&(e.timeout=t.timeout),i.push(e)}}else{let n={name:e,command:t.command};t.args&&(n.args=t.args),t.env&&(n.env=t.env),r.push(n)}}return{sse_servers:n,stdio_servers:r,shttp_servers:i}}function d(e){let t={},n=e=>{if(!(e in t))return e;let n=1;for(;`${e}_${n}`in t;)n+=1;return`${e}_${n}`};for(let r of e.sse_servers){let e={};typeof r==`string`?e.url=r:(e.url=r.url,r.api_key&&(e.auth=r.api_key)),e.transport=`sse`,t[n(`sse`)]=e}for(let r of e.shttp_servers){let e={};typeof r==`string`?e.url=r:(e.url=r.url,r.api_key&&(e.auth=r.api_key),r.timeout!=null&&(e.timeout=r.timeout)),t[n(`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?{mcpServers:t}:null}var f=e=>{if(typeof e==`object`&&e&&`status`in e){let{status:t}=e;if(typeof t==`number`)return t}if(r.isAxiosError(e))return e.response?.status},p=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},m=(e,t,n,r=!1)=>{let i=p(e,t);return typeof i==`string`&&(i.length>0||r)?i:n},h=e=>{let t=e.agent_settings??{},n={...i.conversation_settings??{},...e.conversation_settings??{}};return{...i,...e,llm_model:m(t,`llm.model`,i.llm_model),llm_base_url:m(t,`llm.base_url`,i.llm_base_url,!0),agent:m(t,`agent`,i.agent),llm_api_key:e.llm_api_key??null,llm_api_key_set:e.llm_api_key_set??!1,confirmation_mode:o(n.confirmation_mode)??i.confirmation_mode,security_analyzer:c(n.security_analyzer)??i.security_analyzer,max_iterations:s(n.max_iterations)??i.max_iterations,enable_default_condenser:o(p(t,`condenser.enabled`))??i.enable_default_condenser,condenser_max_size:s(p(t,`condenser.max_size`))??i.condenser_max_size,mcp_config:u(e.mcp_config??t.mcp_config),search_api_key:e.search_api_key||``,email:e.email||``,git_user_name:e.git_user_name||i.git_user_name,git_user_email:e.git_user_email||i.git_user_email,is_new_user:!1,disabled_skills:e.disabled_skills??i.disabled_skills,agent_settings_schema:e.agent_settings_schema??null,agent_settings:e.agent_settings??i.agent_settings,conversation_settings_schema:e.conversation_settings_schema??i.conversation_settings_schema,conversation_settings:n}},g=async(e=`personal`)=>{if(e!==`personal`)throw Error(`Unsupported settings scope: ${e}`);return h(await a.getSettings())},_=(r=`personal`)=>{let a=t(),o=e({queryKey:[...n.byScope(r),a.backend.id,a.orgId],queryFn:()=>g(r),retry:(e,t)=>f(t)!==404,refetchOnWindowFocus:!1,staleTime:1e3*60*5,gcTime:1e3*60*15,meta:{disableToast:!0}});return f(o.error)===404?{data:i,error:o.error,isError:o.isError,isLoading:o.isLoading,isFetching:o.isFetching,isFetched:o.isFetched,isSuccess:o.isSuccess,status:o.status,fetchStatus:o.fetchStatus,refetch:o.refetch}:o};export{d as a,u as i,g as n,_ as r,f as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js";import{n as t}from"./active-backend-context-cCM1vYYZ.js";import{t as n}from"./agent-server-conversation-service.api-C2V5SlHu.js";var r=1e3*60*5,i=1e3*60*15,a=(a,o)=>{let s=t();return e({queryKey:[`user`,`conversation`,a,s.backend.id,s.orgId],queryFn:async()=>a?(await n.batchGetAppConversations([a]))[0]??null:null,enabled:!!a&&!a.startsWith(`task-`),retry:!1,refetchInterval:o,staleTime:r,gcTime:i})};export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./declaration-BNMqORFE.js";import{n as t,r as n}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~hkqzh1hb-BZ0HXuHD.js";var r=`var(--oh-status-success)`,i=`var(--oh-status-error)`,a={base00:`transparent`,base01:`var(--cool-grey-900)`,base02:`var(--cool-grey-700)`,base03:`var(--cool-grey-600)`,base04:`var(--cool-grey-500)`,base05:`var(--cool-grey-200)`,base06:`var(--cool-grey-100)`,base07:`#ffffff`,base08:`#ff5370`,base09:`#f78c6c`,base0A:`#ffcb6b`,base0B:`#c3e88d`,base0C:`#89ddff`,base0D:`#82aaff`,base0E:`#c792ea`,base0F:`#ff5370`},o={PRODUCTION:`https://app.all-hands.dev`},s={LABEL_CLASSNAME:`text-[11px] font-medium leading-4 tracking-[0.11px]`},c={HEIGHT_THRESHOLD:100},l=1.5,u=`/btw`,d=`/model`,f=[{skill:{name:`new`,type:`agentskills`,content:`Creates a new conversation using the same runtime`,triggers:[`/new`]},command:`/new`},{skill:{name:`btw`,type:`agentskills`,content:`Ask the agent a side question without derailing the main task`,triggers:[u]},command:u},{skill:{name:`model`,type:`agentskills`,content:`List saved LLM profiles, or switch the conversation LLM profile with /model <name>`,triggers:[d]},command:d}],p=[`The following information has been included`,`It may or may not be relevant`,`Skill location:`,`(Use this path to resolve`],m=function(e){return e.LOADING=`loading`,e.INIT=`init`,e.RUNNING=`running`,e.AWAITING_USER_INPUT=`awaiting_user_input`,e.PAUSED=`paused`,e.STOPPED=`stopped`,e.FINISHED=`finished`,e.REJECTED=`rejected`,e.ERROR=`error`,e.RATE_LIMITED=`rate_limited`,e.AWAITING_USER_CONFIRMATION=`awaiting_user_confirmation`,e.USER_CONFIRMED=`user_confirmed`,e.USER_REJECTED=`user_rejected`,e}({}),h=[m.INIT,m.LOADING],g=[...h,m.ERROR];function _(...e){return t(n(e))}var v=(e,t)=>{let n=window.URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(n)},y=(e,t)=>{let n=parseFloat(e.style.height||``);return Number.isFinite(n)?n:t},b=(e,t)=>{e.style.setProperty(`height`,`${t}px`)},x=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?!0:`ontouchstart`in window||navigator.maxTouchPoints>0?typeof window.matchMedia==`function`?!window.matchMedia(`(pointer: fine)`).matches:!0:!1,S=e=>e.split(`.`).pop()?.toUpperCase()||`FILE`,C=(e,t)=>{if(!e)return!1;switch(e){case`bitbucket`:case`bitbucket_data_center`:return!0;case`github`:return t===`cloud`;default:return!1}},w=(e,t)=>{if(t&&t.trim()!==``)return t.startsWith(`http`)?t:`https://${t}`;switch(e){case`github`:return`https://github.com`;case`gitlab`:return`https://gitlab.com`;case`bitbucket`:return`https://bitbucket.org`;case`azure_devops`:return`https://dev.azure.com`;case`forgejo`:return`https://codeberg.org`;default:return``}},T=e=>e===`gitlab`?`GitLab`:e===`bitbucket`?`Bitbucket`:e===`bitbucket_data_center`?`Bitbucket Data Center`:e===`azure_devops`?`Azure DevOps`:e===`forgejo`?`Forgejo`:`GitHub`,E=e=>e?`merge request`:`pull request`,D=e=>e?`MR`:`PR`,O=(e,t,n)=>{let r=w(e,n);if(e===`bitbucket_data_center`){let[e,n]=t.split(`/`);return`${r}/projects/${e}/repos/${n}`}return`${r}/${t}`},k=(e,t,n,r)=>{let i=w(e,r);switch(e){case`github`:return`${i}/${t}/tree/${n}`;case`forgejo`:return`${i}/${t}/src/branch/${n}`;case`gitlab`:return`${i}/${t}/-/tree/${n}`;case`bitbucket`:return`${i}/${t}/src/${n}`;case`bitbucket_data_center`:{let e=t.split(`/`);if(e.length>=2){let[t,r]=e;return`${i}/projects/${t}/repos/${r}/browse?at=refs/heads/${n}`}return``}case`azure_devops`:{let e=t.split(`/`);if(e.length===3){let[t,r,a]=e;return`${i}/${t}/${r}/_git/${a}?version=GB${n}`}return``}default:return``}},A=()=>`Please pull the latest code from the repository.`,j=e=>`Please push the changes to a remote branch on ${T(e)}, but do NOT create a ${E(e===`gitlab`)}. Check your current branch name first - if it's main, master, deploy, or another common default branch name, create a new branch with a descriptive name related to your changes. Otherwise, use the exact SAME branch name as the one you are currently on.`,M=e=>{let t=T(e),n=E(e===`gitlab`);return`Please push the changes to ${t} and open a ${n}. If you're on a default branch (e.g., main, master, deploy), create a new branch with a descriptive name otherwise use the current branch. If a ${n} template exists in the repository, please follow it when creating the ${D(e===`gitlab`)} description.`},N=()=>`Please create a new branch with a descriptive name related to the work you plan to do.`,P=e=>!!e&&e!==`ERROR`&&e!==`READY`,F=e=>{let{isPausing:t,isTask:n,taskStatus:a,isStartingStatus:o,isStopStatus:s,curAgentState:c}=e;return t?`#FFD600`:n&&a?a===`ERROR`?i:`#FFD600`:o?`#FFD600`:s?`#ffffff`:c===m.ERROR?i:r};function I({isPausing:t=!1,isTask:n,taskStatus:r,taskDetail:i,isStartingStatus:a,isStopStatus:o,curAgentState:s,errorMessage:c,t:l}){return t?l(e.COMMON$STOPPING):n&&r?r===`ERROR`?i||l(e.CONVERSATION$ERROR_STARTING_CONVERSATION):r===`READY`?l(e.CONVERSATION$READY):i||r.toLowerCase().replace(/_/g,` `).replace(/^\w/,e=>e.toUpperCase()):a?l(e.COMMON$STARTING):o?l(e.COMMON$SERVER_STOPPED):s===m.ERROR?c||l(e.COMMON$ERROR):l(e.COMMON$RUNNING)}export{l as C,o as D,d as E,s as O,c as S,p as T,m as _,N as a,u as b,A as c,I as d,y as f,C as g,b as h,v as i,i as k,j as l,P as m,k as n,M as o,x as p,O as r,S as s,_ as t,F as u,g as v,a as w,f as x,h as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{o as n}from"./declaration-BNMqORFE.js";import{t as r}from"./createLucideIcon-Ddu8jDOQ.js";import{A as i,E as a,T as o,j as s,k as c,w as l}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js";import{Ct as u,D as d,G as f,O as ee,Tt as p,X as m,Z as te,at as h,b as ne,ct as g,ft as re,ht as _,it as ie,lt as v,mt as ae,ot as y,pt as oe,rt as b,s as se,st as x,v as S,vt as ce,wt as le,xt as ue,y as C}from"./vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-BebWhFNT.js";import{C as de,D as fe,E as pe,O as w,S as me,T as he,_ as ge,a as _e,b as ve,c as ye,d as T,f as E,g as be,h as D,i as xe,k as Se,l as Ce,m as we,n as Te,o as O,p as Ee,r as De,s as Oe,t as ke,u as Ae,v as je,w as Me,x as k,y as Ne}from"./vendor~conversation-panel~conversation~index-C23ZXO4R.js";var Pe=r(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),Fe=r(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]);function Ie(e){return e===`x`||e===`y`?k[e]?null:(k[e]=!0,()=>{k[e]=!1}):k.x||k.y?null:(k.x=k.y=!0,()=>{k.x=k.y=!1})}function A(e){return ce(e)&&`ownerSVGElement`in e}var j=new WeakMap,M,Le=(e,t,n)=>(r,i)=>i&&i[0]?i[0][e+`Size`]:A(r)&&`getBBox`in r?r.getBBox()[t]:r[n],Re=Le(`inline`,`width`,`offsetWidth`),ze=Le(`block`,`height`,`offsetHeight`);function Be({target:e,borderBoxSize:t}){j.get(e)?.forEach(n=>{n(e,{get width(){return Re(e,t)},get height(){return ze(e,t)}})})}function Ve(e){e.forEach(Be)}function He(){typeof ResizeObserver>`u`||(M=new ResizeObserver(Ve))}function Ue(e,t){M||He();let n=me(e);return n.forEach(e=>{let n=j.get(e);n||(n=new Set,j.set(e,n)),n.add(t),M?.observe(e)}),()=>{n.forEach(e=>{let n=j.get(e);n?.delete(t),n?.size||M?.unobserve(e)})}}var N=new Set,P;function We(){P=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};N.forEach(t=>t(e))},window.addEventListener(`resize`,P)}function Ge(e){return N.add(e),P||We(),()=>{N.delete(e),!N.size&&typeof P==`function`&&(window.removeEventListener(`resize`,P),P=void 0)}}function Ke(e,t){return typeof e==`function`?Ge(e):Ue(e,t)}function qe(e){return A(e)&&e.tagName===`svg`}function F(e,t){e.min=t.min,e.max=t.max}function I(e,t){F(e.x,t.x),F(e.y,t.y)}function Je(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}var Ye=1e-4,Xe=1-Ye,Ze=1+Ye,Qe=.01,$e=0-Qe,et=0+Qe;function L(e){return e.max-e.min}function tt(e,t,n){return Math.abs(e-t)<=n}function nt(e,t,n,r=.5){e.origin=r,e.originPoint=f(t.min,t.max,e.origin),e.scale=L(n)/L(t),e.translate=f(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Xe&&e.scale<=Ze||isNaN(e.scale))&&(e.scale=1),(e.translate>=$e&&e.translate<=et||isNaN(e.translate))&&(e.translate=0)}function R(e,t,n,r){nt(e.x,t.x,n.x,r?r.originX:void 0),nt(e.y,t.y,n.y,r?r.originY:void 0)}function rt(e,t,n,r=0){e.min=(r?f(n.min,n.max,r):n.min)+t.min,e.max=e.min+L(t)}function it(e,t,n,r){rt(e.x,t.x,n.x,r?.x),rt(e.y,t.y,n.y,r?.y)}function at(e,t,n,r=0){let i=r?f(n.min,n.max,r):n.min;e.min=t.min-i,e.max=e.min+L(t)}function z(e,t,n,r){at(e.x,t.x,n.x,r?.x),at(e.y,t.y,n.y,r?.y)}function ot(e,t,n,r,i){return e-=t,e=Ae(e,1/n,r),i!==void 0&&(e=Ae(e,1/i,r)),e}function st(e,t=0,n=1,r=.5,i,a=e,o=e){if(m.test(t)&&(t=parseFloat(t),t=f(o.min,o.max,t/100)-o.min),typeof t!=`number`)return;let s=f(a.min,a.max,r);e===a&&(s-=t),e.min=ot(e.min,t,n,s,i),e.max=ot(e.max,t,n,s,i)}function ct(e,t,[n,r,i],a,o){st(e,t[n],t[r],t[i],t.scale,a,o)}var lt=[`x`,`scaleX`,`originX`],ut=[`y`,`scaleY`,`originY`];function dt(e,t,n,r){ct(e.x,t,lt,n?n.x:void 0,r?r.x:void 0),ct(e.y,t,ut,n?n.y:void 0,r?r.y:void 0)}function ft(e){return e.translate===0&&e.scale===1}function pt(e){return ft(e.x)&&ft(e.y)}function mt(e,t){return e.min===t.min&&e.max===t.max}function ht(e,t){return mt(e.x,t.x)&&mt(e.y,t.y)}function gt(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function _t(e,t){return gt(e.x,t.x)&>(e.y,t.y)}function vt(e){return L(e.x)/L(e.y)}function yt(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function B(e){return[e(`x`),e(`y`)]}function bt(e,t,n){let r=``,i=e.x.translate/t.x,a=e.y.translate/t.y,o=n?.z||0;if((i||a||o)&&(r=`translate3d(${i}px, ${a}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){let{transformPerspective:e,rotate:t,rotateX:i,rotateY:a,skewX:o,skewY:s}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),i&&(r+=`rotateX(${i}deg) `),a&&(r+=`rotateY(${a}deg) `),o&&(r+=`skewX(${o}deg) `),s&&(r+=`skewY(${s}deg) `)}let s=e.x.scale*t.x,c=e.y.scale*t.y;return(s!==1||c!==1)&&(r+=`scale(${s}, ${c})`),r||`none`}var xt=[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomLeftRadius`,`borderBottomRightRadius`],St=xt.length,Ct=e=>typeof e==`string`?parseFloat(e):e,wt=e=>typeof e==`number`||te.test(e);function Tt(e,t,n,r,i,a){i?(e.opacity=f(0,n.opacity??1,Dt(r)),e.opacityExit=f(t.opacity??1,0,Ot(r))):a&&(e.opacity=f(t.opacity??1,n.opacity??1,r));for(let i=0;i<St;i++){let a=xt[i],o=Et(t,a),s=Et(n,a);o===void 0&&s===void 0||(o||=0,s||=0,o===0||s===0||wt(o)===wt(s)?(e[a]=Math.max(f(Ct(o),Ct(s),r),0),(m.test(s)||m.test(o))&&(e[a]+=`%`)):e[a]=s)}(t.rotate||n.rotate)&&(e.rotate=f(t.rotate||0,n.rotate||0,r))}function Et(e,t){return e[t]===void 0?e.borderRadius:e[t]}var Dt=kt(0,.5,fe),Ot=kt(.5,.95,_);function kt(e,t,n){return r=>r<e?0:r>t?1:n(w(e,t,r))}function At(e,t,n){let r=d(e)?e:ee(e);return r.start(he(``,r,t,n)),r.animation}var jt=(e,t)=>e.depth-t.depth,Mt=class{constructor(){this.children=[],this.isDirty=!1}add(e){le(this.children,e),this.isDirty=!0}remove(e){p(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(jt),this.isDirty=!1,this.children.forEach(e)}};function Nt(e,t){let n=ie.now(),r=({timestamp:i})=>{let a=i-n;a>=t&&(h(r),e(a-t))};return y.setup(r,!0),()=>h(r)}var Pt=class{constructor(){this.members=[]}add(e){le(this.members,e);for(let t=this.members.length-1;t>=0;t--){let n=this.members[t];if(n===e||n===this.lead||n===this.prevLead)continue;let r=n.instance;(!r||r.isConnected===!1)&&!n.snapshot&&(p(this.members,n),n.unmount())}e.scheduleRender()}remove(e){if(p(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){for(let t=this.members.indexOf(e)-1;t>=0;t--){let e=this.members[t];if(e.isPresent!==!1&&e.instance?.isConnected!==!1)return this.promote(e),!0}return!1}promote(e,t){let n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.updateSnapshot(),e.scheduleRender();let{layoutDependency:r}=n.options,{layoutDependency:i}=e.options;(r===void 0||r!==i)&&(e.resumeFrom=n,t&&(n.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}},V={hasAnimatedSinceResize:!0,hasEverUpdated:!1},H={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},U=[``,`X`,`Y`,`Z`],Ft=1e3,It=0;function W(e,t,n,r){let{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Lt(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let n=de(t);if(window.MotionHasOptimisedAnimation(n,`transform`)){let{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,`transform`,y,!(t||r))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Lt(r)}function Rt({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:a}){return class{constructor(e={},n=t?.()){this.id=It++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,v.value&&(H.nodes=H.calculatedTargetDeltas=H.calculatedProjections=0),this.nodes.forEach(Vt),this.nodes.forEach(Xt),this.nodes.forEach(Zt),this.nodes.forEach(Ht),v.addProjectionMetrics&&v.addProjectionMetrics(H)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new Mt)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new ae),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let n=this.eventHandlers.get(e);n&&n.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t){if(this.instance)return;this.isSVG=A(t)&&!qe(t),this.instance=t;let{layoutId:n,layout:r,visualElement:i}=this.options;if(i&&!i.current&&i.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(r||n)&&(this.isLayoutDirty=!0),e){let n,r=0,i=()=>this.root.updateBlockedByResize=!1;y.read(()=>{r=window.innerWidth}),e(t,()=>{let e=window.innerWidth;e!==r&&(r=e,this.root.updateBlockedByResize=!0,n&&n(),n=Nt(i,250),V.hasAnimatedSinceResize&&(V.hasAnimatedSinceResize=!1,this.nodes.forEach(Yt)))})}n&&this.root.registerSharedNode(n,this),this.options.animate!==!1&&i&&(n||r)&&this.addEventListener(`didUpdate`,({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:n,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let a=this.options.transition||i.getDefaultTransition()||an,{onLayoutAnimationStart:o,onLayoutAnimationComplete:s}=i.getProps(),c=!this.targetLayout||!_t(this.targetLayout,r),l=!t&&n;if(this.options.layoutRoot||this.resumeFrom||l||t&&(c||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={...pe(a,`layout`),onPlay:o,onComplete:s};(i.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,l)}else t||Yt(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),h(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Qt),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Lt(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,(typeof t.latestValues.x==`string`||typeof t.latestValues.y==`string`)&&(t.isLayoutDirty=!0),t.updateScroll(`snapshot`),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:n}=this.options;if(t===void 0&&!n)return;let r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,``):void 0,this.updateSnapshot(),e&&this.notifyListeners(`willUpdate`)}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let e=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),e&&this.nodes.forEach(Gt),this.nodes.forEach(Wt);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Kt);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(qt),this.nodes.forEach(Jt),this.nodes.forEach(zt),this.nodes.forEach(Bt)):this.nodes.forEach(Kt),this.clearAllSnapshots();let e=ie.now();x.delta=u(0,1e3/60,e-x.timestamp),x.timestamp=e,x.isProcessing=!0,g.update.process(x),g.preRender.process(x),g.render.process(x),x.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,ne.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(Ut),this.sharedNodes.forEach($t)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,y.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){y.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!L(this.snapshot.measuredBox.x)&&!L(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||=S(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners(`measure`,this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify(`LayoutMeasure`,this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e=`measure`){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t&&this.instance){let t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!a)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!pt(this.projectionDelta),n=this.getTransformTemplate(),r=n?n(this.latestValues,``):void 0,i=r!==this.prevTransformTemplateValue;e&&this.instance&&(t||D(this.latestValues)||i)&&(a(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){let t=this.measurePageBox(),n=this.removeElementScroll(t);return e&&(n=this.removeTransform(n)),ln(n),{animationId:this.root.animationId,measuredBox:t,layoutBox:n,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return S();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(dn))){let{scroll:e}=this.root;e&&(E(t.x,e.offset.x),E(t.y,e.offset.y))}return t}removeElementScroll(e){let t=S();if(I(t,e),this.scroll?.wasRoot)return t;for(let n=0;n<this.path.length;n++){let r=this.path[n],{scroll:i,options:a}=r;r!==this.root&&i&&a.layoutScroll&&(i.wasRoot&&I(t,e),E(t.x,i.offset.x),E(t.y,i.offset.y))}return t}applyTransform(e,t=!1,n){let r=n||S();I(r,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];!t&&n.options.layoutScroll&&n.scroll&&n!==n.root&&(E(r.x,-n.scroll.offset.x),E(r.y,-n.scroll.offset.y)),D(n.latestValues)&&T(r,n.latestValues,n.layout?.layoutBox)}return D(this.latestValues)&&T(r,this.latestValues,this.layout?.layoutBox),r}removeTransform(e){let t=S();I(t,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];if(!D(n.latestValues))continue;let r;n.instance&&(we(n.latestValues)&&n.updateSnapshot(),r=S(),I(r,n.measurePageBox())),dt(t,n.latestValues,n.snapshot?.layoutBox,r)}return D(this.latestValues)&&dt(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:e.crossfade===void 0?!0:e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==x.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||=t.isProjectionDirty,this.isTransformDirty||=t.isTransformDirty,this.isSharedProjectionDirty||=t.isSharedProjectionDirty;let n=!!this.resumingFrom||this!==t;if(!(e||n&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:r,layoutId:i}=this.options;if(!this.layout||!(r||i))return;this.resolvedRelativeTargetAt=x.timestamp;let a=this.getClosestProjectingParent();a&&this.linkedParentVersion!==a.layoutVersion&&!a.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&a&&a.layout?this.createRelativeTarget(a,this.layout.layoutBox,a.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=S(),this.targetWithTransforms=S()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),it(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):I(this.target,this.layout.layoutBox),ye(this.target,this.targetDelta)):I(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&a&&!!a.resumingFrom==!!this.resumingFrom&&!a.options.layoutScroll&&a.target&&this.animationProgress!==1?this.createRelativeTarget(a,this.target,a.target):this.relativeParent=this.relativeTarget=void 0),v.value&&H.calculatedTargetDeltas++)}getClosestProjectingParent(){if(!(!this.parent||we(this.parent.latestValues)||Ee(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(e,t,n){this.relativeParent=e,this.linkedParentVersion=e.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=S(),this.relativeTargetOrigin=S(),z(this.relativeTargetOrigin,t,n,this.options.layoutAnchor||void 0),I(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,n=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(n=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(n=!1),this.resolvedRelativeTargetAt===x.timestamp&&(n=!1),n)return;let{layout:r,layoutId:i}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(r||i))return;I(this.layoutCorrected,this.layout.layoutBox);let a=this.treeScale.x,o=this.treeScale.y;Ce(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=S());let{target:s}=e;if(!s){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Je(this.prevProjectionDelta.x,this.projectionDelta.x),Je(this.prevProjectionDelta.y,this.projectionDelta.y)),R(this.projectionDelta,this.layoutCorrected,s,this.latestValues),(this.treeScale.x!==a||this.treeScale.y!==o||!yt(this.projectionDelta.x,this.prevProjectionDelta.x)||!yt(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners(`projectionUpdate`,s)),v.value&&H.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){if(this.options.visualElement?.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=C(),this.projectionDelta=C(),this.projectionDeltaWithTransform=C()}setAnimationOrigin(e,t=!1){let n=this.snapshot,r=n?n.latestValues:{},i={...this.latestValues},a=C();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let o=S(),s=(n?n.source:void 0)!==(this.layout?this.layout.source:void 0),c=this.getStack(),l=!c||c.members.length<=1,u=!!(s&&!l&&this.options.crossfade===!0&&!this.path.some(rn));this.animationProgress=0;let d;this.mixTargetDelta=t=>{let n=t/1e3;en(a.x,e.x,n),en(a.y,e.y,n),this.setTargetDelta(a),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(z(o,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),nn(this.relativeTarget,this.relativeTargetOrigin,o,n),d&&ht(this.relativeTarget,d)&&(this.isProjectionDirty=!1),d||=S(),I(d,this.relativeTarget)),s&&(this.animationValues=i,Tt(i,r,this.latestValues,n,u,l)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(`animationStart`),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&=(h(this.pendingAnimation),void 0),this.pendingAnimation=y.update(()=>{V.hasAnimatedSinceResize=!0,b.layout++,this.motionValue||=ee(0),this.motionValue.jump(0,!1),this.currentAnimation=At(this.motionValue,[0,1e3],{...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onStop:()=>{b.layout--},onComplete:()=>{b.layout--,e.onComplete&&e.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(`animationComplete`)}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Ft),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,target:n,layout:r,latestValues:i}=e;if(!(!t||!n||!r)){if(this!==e&&this.layout&&r&&un(this.options.animationType,this.layout.layoutBox,r.layoutBox)){n=this.target||S();let t=L(this.layout.layoutBox.x);n.x.min=e.target.x.min,n.x.max=n.x.min+t;let r=L(this.layout.layoutBox.y);n.y.min=e.target.y.min,n.y.max=n.y.min+r}I(t,n),T(t,i),R(this.projectionDeltaWithTransform,this.layoutCorrected,t,i)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new Pt),this.sharedNodes.get(e).add(t);let n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return e?e.lead===this:!0}getLead(){let{layoutId:e}=this.options;return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){let r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return e?e.relegate(this):!1}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;let r={};n.z&&W(`z`,e,r,this.animationValues);for(let t=0;t<U.length;t++)W(`rotate${U[t]}`,e,r,this.animationValues),W(`skew${U[t]}`,e,r,this.animationValues);e.render();for(let t in r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}applyProjectionStyles(e,t){if(!this.instance||this.isSVG)return;if(!this.isVisible){e.visibility=`hidden`;return}let n=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,e.visibility=``,e.opacity=``,e.pointerEvents=i(t?.pointerEvents)||``,e.transform=n?n(this.latestValues,``):`none`;return}let r=this.getLead();if(!this.projectionDelta||!this.layout||!r.target){this.options.layoutId&&(e.opacity=this.latestValues.opacity===void 0?1:this.latestValues.opacity,e.pointerEvents=i(t?.pointerEvents)||``),this.hasProjected&&!D(this.latestValues)&&(e.transform=n?n({},``):`none`,this.hasProjected=!1);return}e.visibility=``;let a=r.animationValues||r.latestValues;this.applyTransformsToTarget();let o=bt(this.projectionDeltaWithTransform,this.treeScale,a);n&&(o=n(a,o)),e.transform=o;let{x:s,y:c}=this.projectionDelta;e.transformOrigin=`${s.origin*100}% ${c.origin*100}% 0`,r.animationValues?e.opacity=r===this?a.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:a.opacityExit:e.opacity=r===this?a.opacity===void 0?``:a.opacity:a.opacityExit===void 0?0:a.opacityExit;for(let t in se){if(a[t]===void 0)continue;let{correct:n,applyTo:i,isCSSVariable:s}=se[t],c=o===`none`?a[t]:n(a[t],r);if(i){let t=i.length;for(let n=0;n<t;n++)e[i[n]]=c}else s?this.options.visualElement.renderState.vars[t]=c:e[t]=c}this.options.layoutId&&(e.pointerEvents=r===this?i(t?.pointerEvents)||``:`none`)}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach(Wt),this.root.sharedNodes.clear()}}}function zt(e){e.updateLayout()}function Bt(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners(`didUpdate`)){let{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,a=t.source!==e.layout.source;if(i===`size`)B(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],i=L(r);r.min=n[e].min,r.max=r.min+i});else if(i===`x`||i===`y`){let e=i===`x`?`y`:`x`;F(a?t.measuredBox[e]:t.layoutBox[e],n[e])}else un(i,t.layoutBox,n)&&B(r=>{let i=a?t.measuredBox[r]:t.layoutBox[r],o=L(n[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=C();R(o,n,t.layoutBox);let s=C();a?R(s,e.applyTransform(r,!0),t.measuredBox):R(s,n,t.layoutBox);let c=!pt(o),l=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:a}=r;if(i&&a){let o=e.options.layoutAnchor||void 0,s=S();z(s,t.layoutBox,i.layoutBox,o);let c=S();z(c,n,a.layoutBox,o),_t(s,c)||(l=!0),r.options.layoutRoot&&(e.relativeTarget=c,e.relativeTargetOrigin=s,e.relativeParent=r)}}}e.notifyListeners(`didUpdate`,{layout:n,snapshot:t,delta:s,layoutDelta:o,hasLayoutChanged:c,hasRelativeLayoutChanged:l})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function Vt(e){v.value&&H.nodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty),e.isTransformDirty||=e.parent.isTransformDirty)}function Ht(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Ut(e){e.clearSnapshot()}function Wt(e){e.clearMeasurements()}function Gt(e){e.isLayoutDirty=!0,e.updateLayout()}function Kt(e){e.isLayoutDirty=!1}function qt(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function Jt(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(`BeforeLayoutMeasure`),e.resetTransform()}function Yt(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Xt(e){e.resolveTargetDelta()}function Zt(e){e.calcProjection()}function Qt(e){e.resetSkewAndRotation()}function $t(e){e.removeLeadSnapshot()}function en(e,t,n){e.translate=f(t.translate,0,n),e.scale=f(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function tn(e,t,n,r){e.min=f(t.min,n.min,r),e.max=f(t.max,n.max,r)}function nn(e,t,n,r){tn(e.x,t.x,n.x,r),tn(e.y,t.y,n.y,r)}function rn(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var an={duration:.45,ease:[.4,0,.1,1]},on=e=>typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),sn=on(`applewebkit/`)&&!on(`chrome/`)?Math.round:_;function cn(e){e.min=sn(e.min),e.max=sn(e.max)}function ln(e){cn(e.x),cn(e.y)}function un(e,t,n){return e===`position`||e===`preserve-aspect`&&!tt(vt(t),vt(n),.2)}function dn(e){return e!==e.root&&e.scroll?.wasRoot}var fn=Rt({attachResizeListener:(e,t)=>O(e,`resize`,t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),G={current:void 0},pn=Rt({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!G.current){let e=new fn({});e.mount(window),e.setOptions({layoutScroll:!0}),G.current=e}return G.current},resetTransform:(e,t)=>{e.style.transform=t===void 0?`none`:t},checkIsScrollRoot:e=>window.getComputedStyle(e).position===`fixed`});function K(e,t,n,r){return O(e,t,Te(n),r)}var mn=({current:e})=>e?e.ownerDocument.defaultView:null,hn=(e,t)=>Math.abs(e-t);function gn(e,t){let n=hn(e.x,t.x),r=hn(e.y,t.y);return Math.sqrt(n**2+r**2)}var _n=new Set([`auto`,`scroll`]),vn=class{constructor(e,t,{transformPagePoint:n,contextWindow:r=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=q(this.lastRawMoveEventInfo,this.transformPagePoint));let e=J(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=gn(e.offset,{x:0,y:0})>=this.distanceThreshold;if(!t&&!n)return;let{point:r}=e,{timestamp:i}=x;this.history.push({...r,timestamp:i});let{onStart:a,onMove:o}=this.handlers;t||(a&&a(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),o&&o(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=q(t,this.transformPagePoint),y.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=J(e.type===`pointercancel`?this.lastMoveEventInfo:q(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!ve(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.distanceThreshold=a,this.contextWindow=r||window;let s=q(De(e),this.transformPagePoint),{point:c}=s,{timestamp:l}=x;this.history=[{...c,timestamp:l}];let{onSessionStart:u}=t;u&&u(e,J(s,this.history)),this.removeListeners=Se(K(this.contextWindow,`pointermove`,this.handlePointerMove),K(this.contextWindow,`pointerup`,this.handlePointerUp),K(this.contextWindow,`pointercancel`,this.handlePointerUp)),o&&this.startScrollTracking(o)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(_n.has(e.overflowX)||_n.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.addEventListener(`scroll`,this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.removeEventListener(`scroll`,this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let n=e===window,r=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},i={x:r.x-t.x,y:r.y-t.y};i.x===0&&i.y===0||(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(e,r),y.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),h(this.updatePoint)}};function q(e,t){return t?{point:t(e.point)}:e}function yn(e,t){return{x:e.x-t.x,y:e.y-t.y}}function J({point:e},t){return{point:e,delta:yn(e,xn(t)),offset:yn(e,bn(t)),velocity:Sn(t,.1)}}function bn(e){return e[0]}function xn(e){return e[e.length-1]}function Sn(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=xn(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>oe(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>oe(t)*2&&(r=e[1]);let a=re(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function Cn(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?f(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?f(n,e,r.max):Math.min(e,n)),e}function wn(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function Tn(e,{top:t,left:n,bottom:r,right:i}){return{x:wn(e.x,n,i),y:wn(e.y,t,r)}}function En(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function Dn(e,t){return{x:En(e.x,t.x),y:En(e.y,t.y)}}function On(e,t){let n=.5,r=L(e),i=L(t);return i>r?n=w(t.min,t.max-r,e.min):r>i&&(n=w(e.min,e.max-i,t.min)),u(0,1,n)}function kn(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}var Y=.35;function An(e=Y){return e===!1?e=0:e===!0&&(e=Y),{x:jn(e,`left`,`right`),y:jn(e,`top`,`bottom`)}}function jn(e,t,n){return{min:Mn(e,t),max:Mn(e,n)}}function Mn(e,t){return typeof e==`number`?e:e[t]||0}var Nn=new WeakMap,Pn=class{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=S(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:n}={}){let{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;let i=e=>{t&&this.snapToCursor(De(e).point),this.stopAnimation()},a=(e,t)=>{let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();if(n&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Ie(n),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),B(e=>{let t=this.getAxisMotionValue(e).get()||0;if(m.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=L(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&y.update(()=>i(e,t),!1,!0),Me(this.visualElement,`transform`);let{animationState:a}=this.visualElement;a&&a.setActive(`whileDrag`,!0)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openDragLock)return;let{offset:o}=t;if(r&&this.currentDirection===null){this.currentDirection=Ln(o),this.currentDirection!==null&&i&&i(this.currentDirection);return}this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&y.update(()=>a(e,t),!1,!0)},s=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:l}=this.getProps();this.panSession=new vn(e,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:s,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,distanceThreshold:n,contextWindow:mn(this.visualElement),element:this.visualElement.current})}stop(e,t){let n=e||this.latestPointerEvent,r=t||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!r||!n)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:o}=this.getProps();o&&y.postRender(()=>o(n,r))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive(`whileDrag`,!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!X(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=Cn(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&o(e)?this.constraints||=this.resolveRefConstraints():e&&n?this.constraints=Tn(n.layoutBox,e):this.constraints=!1,this.elastic=An(t),r!==this.constraints&&!o(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&B(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=kn(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!o(e))return!1;let n=e.current;ue(n!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.",`drag-constraints-ref`);let{projection:r}=this.visualElement;if(!r||!r.layout)return!1;let i=Oe(n,r.root,this.visualElement.getTransformPagePoint()),a=Dn(r.layout.layoutBox,i);if(t){let e=t(ge(a));this.hasMutatedConstraints=!!e,e&&(a=be(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=B(o=>{if(!X(o,t,this.currentDirection))return;let c=s&&s[o]||{};(a===!0||a===o)&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return Me(this.visualElement,e),n.start(he(e,n,0,t,this.visualElement,!1))}stopAnimation(){B(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`,n=this.visualElement.getProps();return n[t]||this.visualElement.getValue(e,(n.initial?n.initial[e]:void 0)||0)}snapToCursor(e){B(t=>{let{drag:n}=this.getProps();if(!X(t,n,this.currentDirection))return;let{projection:r}=this.visualElement,i=this.getAxisMotionValue(t);if(r&&r.layout){let{min:n,max:a}=r.layout.layoutBox[t],o=i.get()||0;i.set(e[t]-f(n,a,.5)+o)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!o(t)||!n||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};B(e=>{let t=this.getAxisMotionValue(e);if(t&&this.constraints!==!1){let n=t.get();r[e]=On({min:n,max:n},this.constraints[e])}});let{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),B(t=>{if(!X(t,e,null))return;let n=this.getAxisMotionValue(t),{min:i,max:a}=this.constraints[t];n.set(f(i,a,r[t]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;Nn.set(this.visualElement,this);let e=this.visualElement.current,t=K(e,`pointerdown`,t=>{let{drag:n,dragListener:r=!0}=this.getProps(),i=t.target,a=i!==e&&Ne(i);n&&r&&!a&&this.start(t)}),n,r=()=>{let{dragConstraints:t}=this.getProps();o(t)&&t.current&&(this.constraints=this.resolveRefConstraints(),n||=In(e,t.current,()=>this.scalePositionWithinConstraints()))},{projection:i}=this.visualElement,a=i.addEventListener(`measure`,r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),y.read(r);let s=O(window,`resize`,()=>this.scalePositionWithinConstraints()),c=i.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(B(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{s(),t(),a(),c&&c(),n&&n()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=Y,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function Fn(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function In(e,t,n){let r=Ke(e,Fn(n)),i=Ke(t,Fn(n));return()=>{r(),i()}}function X(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Ln(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var Rn=class extends je{constructor(e){super(e),this.removeGroupControls=_,this.removeListeners=_,this.controls=new Pn(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||_}update(){let{dragControls:e}=this.node.getProps(),{dragControls:t}=this.node.prevProps||{};e!==t&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},Z=e=>(t,n)=>{e&&y.update(()=>e(t,n),!1,!0)},zn=class extends je{constructor(){super(...arguments),this.removePointerDownListener=_}onPointerDown(e){this.session=new vn(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:mn(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:Z(e),onStart:Z(t),onMove:Z(n),onEnd:(e,t)=>{delete this.session,r&&y.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=K(this.node.current,`pointerdown`,e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}},Bn=n(),Q=e(t(),1),$=!1,Vn=class extends Q.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:i}=e;i&&(t.group&&t.group.add(i),n&&n.register&&r&&n.register(i),$&&i.root.didUpdate(),i.addEventListener(`animationComplete`,()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),V.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:n,drag:r,isPresent:i}=this.props,{projection:a}=n;return a?(a.isPresent=i,e.layoutDependency!==t&&a.setOptions({...a.options,layoutDependency:t}),$=!0,r||e.layoutDependency!==t||t===void 0||e.isPresent!==i?a.willUpdate():this.safeToRemove(),e.isPresent!==i&&(i?a.promote():a.relegate()||y.postRender(()=>{let e=a.getStack();(!e||!e.members.length)&&this.safeToRemove()})),null):null}componentDidUpdate(){let{visualElement:e,layoutAnchor:t}=this.props,{projection:n}=e;n&&(n.options.layoutAnchor=t,n.root.didUpdate(),ne.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;$=!0,r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}};function Hn(e){let[t,n]=c(),r=(0,Q.useContext)(s);return(0,Bn.jsx)(Vn,{...e,layoutGroup:r,switchLayoutGroup:(0,Q.useContext)(a),isPresent:t,safeToRemove:n})}var Un={pan:{Feature:zn},drag:{Feature:Rn,ProjectionNode:pn,MeasureLayout:Hn}},Wn={layout:{ProjectionNode:pn,MeasureLayout:Hn}},Gn=l({...xe,...ke,...Un,...Wn},_e);export{Fe as n,Pe as r,Gn as t};
|