@openhands/agent-canvas 1.14.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.windows.md +2 -2
- package/build/assets/acp-providers-BKvmTf82.js +1 -0
- package/build/assets/active-backend-context-DKFSMbn3.js +2 -0
- package/build/assets/agent-context-settings-D3PjSTU1.js +1 -0
- package/build/assets/agent-profiles-settings-D4cY5U2T.js +1 -0
- package/build/assets/agent-server-conversation-service.api-DozDKIW_.js +86 -0
- package/build/assets/agent-settings-351vXWc9.js +2 -0
- package/build/assets/agent-settings-Ce7BDZ6I.js +1 -0
- package/build/assets/alert-banner-Kyy1YWZU.js +1 -0
- package/build/assets/api-error-message-BJyfWp6p.js +1 -0
- package/build/assets/api-key-entry-screen-INIxqAMs.js +1 -0
- package/build/assets/app-settings-CbHqzQus.js +1 -0
- package/build/assets/automation-detail-DXDhUwPq.js +3 -0
- package/build/assets/automation-export-BRopEHMu.js +2 -0
- package/build/assets/automation-git-sync-CzyS4cn1.js +1 -0
- package/build/assets/automation-setup-route-FRr05f_g.js +1 -0
- package/build/assets/automation-templates-C_0FZgLG.js +1 -0
- package/build/assets/automations-list-CERuQWE6.js +1 -0
- package/build/assets/back-nav-button-Dm9tIjVf.js +1 -0
- package/build/assets/backend-form-modal-DK78-jn1.js +1 -0
- package/build/assets/backend-synced-settings-badge-3fOwg6Bd.js +1 -0
- package/build/assets/badge-D4SqUCsR.js +1 -0
- package/build/assets/base-modal-C7_BDl_U.js +1 -0
- package/build/assets/bot-C-0Wu7vQ.js +1 -0
- package/build/assets/brand-button-Dxv6PDeN.js +1 -0
- package/build/assets/browser-11etCQ04.js +7 -0
- package/build/assets/browser-tab-BAl4ckJE.js +1 -0
- package/build/assets/chat-send-button-DWwR2cgI.js +1 -0
- package/build/assets/check-Cf2YoT90.js +1 -0
- package/build/assets/chevron-down-C3OQ-ehx.js +1 -0
- package/build/assets/chevron-right-CN1uUiJ1.js +1 -0
- package/build/assets/circle-check-g5yeGMd-.js +1 -0
- package/build/assets/circle-plus-check-toggle-CBh_qomE.js +1 -0
- package/build/assets/cloud-funnel-analytics-287iIERo.js +1 -0
- package/build/assets/cog-C4rrw-ZK.js +1 -0
- package/build/assets/command-menu-BZQ8S3Ke.js +1 -0
- package/build/assets/commits-tab-DZtJgaDM.js +1 -0
- package/build/assets/condenser-settings-BcNmYR4s.js +1 -0
- package/build/assets/confirmation-modal-Bk4JRcCM.js +1 -0
- package/build/assets/context-menu-list-item-lVYETtY5.js +1 -0
- package/build/assets/conversation-CchMzpGl.js +1 -0
- package/build/assets/conversation-Dpzftz57.js +93 -0
- package/build/assets/conversation-panel-CchMzpGl.js +1 -0
- package/build/assets/conversation-state-store-a9d2fxRc.js +1 -0
- package/build/assets/conversation-store-Ca3ghXap.js +6 -0
- package/build/assets/conversation-tab-empty-state-HJtkmHZj.js +1 -0
- package/build/assets/copy-to-clipboard-button-Cjkswvnj.js +1 -0
- package/build/assets/device-verify-EZhHhBT7.js +1 -0
- package/build/assets/dropdown-classes-DJe-E6MC.js +1 -0
- package/build/assets/edit-automation-modal-D-urtv8n.js +1 -0
- package/build/assets/empty-state-CvaVahVr.js +1 -0
- package/build/assets/entry.client-C7Bi2tkU.js +2 -0
- package/build/assets/enum-filter-dropdown-DliX_Lo0.js +1 -0
- package/build/assets/environment-switch-overlay-CEKrFiMw.js +1 -0
- package/build/assets/error-state-BALXiBNy.js +1 -0
- package/build/assets/extension-module-card-classes-DpeaYhYo.js +1 -0
- package/build/assets/extensions-hub-CFduxBnk.js +1 -0
- package/build/assets/extensions-navigation-BeC224yX.js +1 -0
- package/build/assets/external-link-DFpYunfj.js +1 -0
- package/build/assets/files-tab-CL3J9b3p.js +1 -0
- package/build/assets/form-control-classes-CGw40z5h.js +1 -0
- package/build/assets/get-git-path-DlAJa_i6.js +1 -0
- package/build/assets/git-repo-dropdown-DGMEhz7d.js +1 -0
- package/build/assets/git-repo-dropdown-ai8qaNkD.js +1 -0
- package/build/assets/highlighted-source-view-C3sxykQi.js +1 -0
- package/build/assets/home-BCGlNJCA.js +1 -0
- package/build/assets/home-DB1pRqTC.js +1 -0
- package/build/assets/home-automation-run-tooltip-CooFQRIG.js +1 -0
- package/build/assets/home-store-Dl1dPE58.js +1 -0
- package/build/assets/index-home-DB1pRqTC.js +1 -0
- package/build/assets/info-uYSVzX86.js +1 -0
- package/build/assets/install-server-modal-BbJdhzet.js +1 -0
- package/build/assets/kebab-menu-item-content-BYokkRHi.js +1 -0
- package/build/assets/key-Cn5za3rg.js +1 -0
- package/build/assets/launch-C1ieiOGe.js +1 -0
- package/build/assets/list-filter-OFkpRrmi.js +1 -0
- package/build/assets/list-todo-Cuu-STFc.js +1 -0
- package/build/assets/llm-not-configured-banner-BqqYnJ1t.js +27 -0
- package/build/assets/llm-settings-CnDbbmVW.js +1 -0
- package/build/assets/llm-settings-S8Yjg__1.js +1 -0
- package/build/assets/llm-subscription-service-BpPfzW4x.js +1 -0
- package/build/assets/loader-circle-nvrwthvj.js +1 -0
- package/build/assets/loading-spinner-0L3ZTToZ.js +1 -0
- package/build/assets/manage-backends-modal-BCUPswyl.js +1 -0
- package/build/assets/manifest-58597dde.js +1 -0
- package/build/assets/manifest-subpage-layout-BGhiUQbA.js +1 -0
- package/build/assets/map-provider-B9LTm23I.js +1 -0
- package/build/assets/markdown-renderer-Cb2sBWtV.js +8 -0
- package/build/assets/mcp-CKbR4Vft.js +1 -0
- package/build/assets/mcp-marketplace-utils-C13fFccR.js +1 -0
- package/build/assets/mcp-page-Bm4K2NQq.js +9 -0
- package/build/assets/messages-BTN5thLe.js +40 -0
- package/build/assets/modal-body-CMOc2tLl.js +1 -0
- package/build/assets/modal-classes-BAb4Y_BG.js +1 -0
- package/build/assets/modal-close-button-CkJ0Ktjj.js +1 -0
- package/build/assets/mouse-pointer-click-CsgRs_-r.js +1 -0
- package/build/assets/onboarding-Cx_kaiD1.js +1 -0
- package/build/assets/onboarding-modal-vMwn7ihv.js +1 -0
- package/build/assets/organization-service.api-C8XpQ0pM.js +1 -0
- package/build/assets/parse-git-remote-url-DpDM9bK6.js +1 -0
- package/build/assets/pencil-Clh1Wjvh.js +1 -0
- package/build/assets/planner-tab-DQvDU3ap.js +1 -0
- package/build/assets/plug-BuQhHSSG.js +1 -0
- package/build/assets/plugins-management-service-BjYeF0b0.js +1 -0
- package/build/assets/plus-CEKne-Yp.js +1 -0
- package/build/assets/profiles-service.api-QB-T_u-g.js +1 -0
- package/build/assets/providers-FfSZ5TXP.js +1 -0
- package/build/assets/proxy-tcFL2yTQ.js +1 -0
- package/build/assets/puzzle-A9pGxxai.js +1 -0
- package/build/assets/recommended-automations-launcher-Bw8uC4V6.js +1 -0
- package/build/assets/refresh-cw-Bh69DyYO.js +1 -0
- package/build/assets/root-BLeQfBEq.css +1 -0
- package/build/assets/root-ZKKYPR1Z.js +2 -0
- package/build/assets/root-layout-luJoE9IG.js +2 -0
- package/build/assets/schema-field-Csw5fhtN.js +1 -0
- package/build/assets/scroll-fade-state-Dw-i4SGq.js +1 -0
- package/build/assets/sdk-section-page-HTffvm7Q.js +1 -0
- package/build/assets/secret-form-HTUbYw5o.js +1 -0
- package/build/assets/secrets-service-BTor9uAU.js +1 -0
- package/build/assets/secrets-settings-BizaTEr1.js +1 -0
- package/build/assets/server-process-C9RKzd1x.js +1 -0
- package/build/assets/settings-BlmrkwRi.js +1 -0
- package/build/assets/settings-dropdown-input-tM0A0ipy.js +1 -0
- package/build/assets/settings-index-CKq0b0Vg.js +1 -0
- package/build/assets/settings-input-C03KUoSC.js +1 -0
- package/build/assets/settings-list-classes-BJ0g8rWj.js +1 -0
- package/build/assets/settings-modal-AzEF1QPP.js +1 -0
- package/build/assets/settings-service.api-B2agVfjL.js +1 -0
- package/build/assets/settings-switch-CQE0EGC-.js +1 -0
- package/build/assets/settings-utils-ClYOkbbI.js +1 -0
- package/build/assets/shared-conversation-B55pCyBG.js +1 -0
- package/build/assets/shield-check-CFDViW82.js +1 -0
- package/build/assets/sidebar-layout-D3hE08wK.js +1 -0
- package/build/assets/sidebar-mobile-menu-toggle-BOtyJHwE.js +1 -0
- package/build/assets/sidebar-nav-link-CPzhyHQg.js +1 -0
- package/build/assets/sidebar-onboarding-checklist-storage-3qYflszY.js +1 -0
- package/build/assets/sidebar-store-DtpU7zaI.js +1 -0
- package/build/assets/skill-card-pill-row-CFxjoqxn.js +1 -0
- package/build/assets/skill-filter-CWZ5kjcg.js +2 -0
- package/build/assets/skill-icon-badge-CPQJ6A-I.js +1 -0
- package/build/assets/skill-scope-CV1dkAbW.js +1 -0
- package/build/assets/skills-plugins-DGHULTq6.js +1 -0
- package/build/assets/skills-settings-CM1lFv3e.js +1 -0
- package/build/assets/styled-tooltip-Dl06rkpY.js +1 -0
- package/build/assets/task-list-tab-04GNQuii.js +1 -0
- package/build/assets/terminal-Cj0iHIW7.js +3 -0
- package/build/assets/toggle-switch-Fd_QGz0r.js +1 -0
- package/build/assets/trash-2-Dl8_RGz0.js +1 -0
- package/build/assets/trash-_RMt7Ayc.js +1 -0
- package/build/assets/triangle-alert-SM-q4NU_.js +1 -0
- package/build/assets/typography-SgFy466J.js +1 -0
- package/build/assets/usage-tab-BcfWV6db.js +1 -0
- package/build/assets/use-acp-credential-form-BsSW5NHG.js +1 -0
- package/build/assets/use-activate-agent-profile-B2NS8nA5.js +1 -0
- package/build/assets/use-agent-profiles-DWBPC0Si.js +1 -0
- package/build/assets/use-automation-health-BxXdzZMP.js +1 -0
- package/build/assets/use-automations-zYb0dUny.js +1 -0
- package/build/assets/use-can-manage-org-profiles-BWMahtUh.js +1 -0
- package/build/assets/use-cloud-current-user-id-CPHMDG-C.js +1 -0
- package/build/assets/use-config-Bft35DOK.js +1 -0
- package/build/assets/use-create-conversation-DwN5vv2f.js +1 -0
- package/build/assets/use-create-secret-BSxJMxHp.js +1 -0
- package/build/assets/use-get-secrets-BT4ihRwj.js +1 -0
- package/build/assets/use-has-permission-B3C8rQmR.js +1 -0
- package/build/assets/use-is-authed-CFGkY3-Z.js +1 -0
- package/build/assets/use-launch-skill-in-chat-BYjYihBP.js +1 -0
- package/build/assets/use-llm-configured-BI6obxsc.js +1 -0
- package/build/assets/use-llm-profiles-djGAhTWL.js +1 -0
- package/build/assets/use-manifest-capabilities-3z0-1G59.js +1 -0
- package/build/assets/use-onboarding-completion-BXpyUSsJ.js +1 -0
- package/build/assets/use-plugins-marketplace-DI4_pK56.js +1 -0
- package/build/assets/use-save-agent-profile-DdBSTdpN.js +1 -0
- package/build/assets/use-save-settings-CUZW6yXP.js +1 -0
- package/build/assets/use-settings-C5VhGpqd.js +1 -0
- package/build/assets/use-settings-nav-items-DHaUu1Dg.js +16 -0
- package/build/assets/use-tracking-D5t9otIF.js +3 -0
- package/build/assets/use-user-conversation-DT0_QCnL.js +1 -0
- package/build/assets/useInfiniteQuery-CgeUQPfs.js +1 -0
- package/build/assets/useMutation-DFnzkf6f.js +1 -0
- package/build/assets/useQueries-BhbrGEf1.js +1 -0
- package/build/assets/useQuery-BXWbZBZl.js +1 -0
- package/build/assets/utils-DaCIEEQP.js +1 -0
- package/build/assets/vendor~browser-hbU4u2Ag.js +47 -0
- package/build/assets/vendor~commits-tab-BaO2Ce3e.js +11 -0
- package/build/assets/vendor~conversation-panel~conversation-CTvDDiXg.js +1 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js +186 -0
- package/build/assets/vendor~index-home~home~conversation-panel~conversation-BTyukeM-.js +13 -0
- package/build/assets/vendor~root-layout-BlUaZ18v.js +1 -0
- package/build/assets/vendor~root-layout~conversation-panel~conversation-BYAWJwQX.js +1 -0
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-CHaLEBVR.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-B2OLKL7N.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-DXqM7vqB.js +1 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-Dtu7BpYk.js +48 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js +1 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-DonTKfQD.js +4949 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-BgxDvUcf.js +8420 -0
- package/build/assets/verification-settings-Bj6bo097.js +1 -0
- package/build/assets/wrench-hi7Q13dF.js +1 -0
- package/build/assets/x-DkgltWa0.js +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +124 -43
- package/build/locales/ca/openhands.json +124 -43
- package/build/locales/de/openhands.json +124 -43
- package/build/locales/en/openhands.json +124 -43
- package/build/locales/es/openhands.json +124 -43
- package/build/locales/fr/openhands.json +124 -43
- package/build/locales/it/openhands.json +124 -43
- package/build/locales/ja/openhands.json +124 -43
- package/build/locales/ko-KR/openhands.json +124 -43
- package/build/locales/no/openhands.json +124 -43
- package/build/locales/pt/openhands.json +124 -43
- package/build/locales/tr/openhands.json +124 -43
- package/build/locales/uk/openhands.json +124 -43
- package/build/locales/zh-CN/openhands.json +124 -43
- package/build/locales/zh-TW/openhands.json +124 -43
- package/config/defaults.json +2 -2
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +10 -1
- package/dist/api/agent-server-adapter.js +115 -110
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/automation-service/automation-service.api.cjs +1 -1
- package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
- package/dist/api/automation-service/automation-service.api.d.ts +13 -2
- package/dist/api/automation-service/automation-service.api.js +99 -84
- package/dist/api/automation-service/automation-service.api.js.map +1 -1
- package/dist/api/backend-registry/url-selection.cjs +1 -1
- package/dist/api/backend-registry/url-selection.cjs.map +1 -1
- package/dist/api/backend-registry/url-selection.d.ts +2 -1
- package/dist/api/backend-registry/url-selection.js +2 -2
- package/dist/api/backend-registry/url-selection.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 +29 -24
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/git-provider-items-service.cjs +2 -0
- package/dist/api/git-provider-items-service.cjs.map +1 -0
- package/dist/api/git-provider-items-service.d.ts +25 -0
- package/dist/api/git-provider-items-service.js +127 -0
- package/dist/api/git-provider-items-service.js.map +1 -0
- package/dist/api/mcp-health/probe-mcp-server-health.cjs +1 -1
- package/dist/api/mcp-health/probe-mcp-server-health.js +31 -31
- package/dist/api/open-hands.types.d.ts +0 -19
- package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
- package/dist/api/profiles-service/profiles-service.api.d.ts +16 -2
- package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
- package/dist/api/provider-connections-service/provider-connections-service.api.cjs +2 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.cjs.map +1 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.d.ts +34 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.js +50 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.js.map +1 -0
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message.js +1 -1
- package/dist/components/conversation-events/chat/event-message.js.map +1 -1
- package/dist/components/conversation-events/chat/messages.cjs.map +1 -1
- package/dist/components/conversation-events/chat/messages.js.map +1 -1
- package/dist/components/features/automations/add-automation-menu.d.ts +7 -0
- package/dist/components/features/automations/add-automation-modal.cjs +2 -0
- package/dist/components/features/automations/add-automation-modal.cjs.map +1 -0
- package/dist/components/features/automations/add-automation-modal.js +42 -0
- package/dist/components/features/automations/add-automation-modal.js.map +1 -0
- package/dist/components/features/automations/automation-action-button-classes.cjs +2 -0
- package/dist/components/features/automations/automation-action-button-classes.cjs.map +1 -0
- package/dist/components/features/automations/automation-action-button-classes.d.ts +0 -2
- package/dist/components/features/automations/automation-action-button-classes.js +8 -0
- package/dist/components/features/automations/automation-action-button-classes.js.map +1 -0
- package/dist/components/features/automations/automation-card-skeleton.cjs +2 -0
- package/dist/components/features/automations/automation-card-skeleton.cjs.map +1 -0
- package/dist/components/features/automations/automation-card-skeleton.js +33 -0
- package/dist/components/features/automations/automation-card-skeleton.js.map +1 -0
- package/dist/components/features/automations/automation-card.cjs +2 -0
- package/dist/components/features/automations/automation-card.cjs.map +1 -0
- package/dist/components/features/automations/automation-card.d.ts +1 -1
- package/dist/components/features/automations/automation-card.js +160 -0
- package/dist/components/features/automations/automation-card.js.map +1 -0
- package/dist/components/features/automations/automation-group.cjs +2 -0
- package/dist/components/features/automations/automation-group.cjs.map +1 -0
- package/dist/components/features/automations/automation-group.js +54 -0
- package/dist/components/features/automations/automation-group.js.map +1 -0
- package/dist/components/features/automations/automation-list-row.cjs +2 -0
- package/dist/components/features/automations/automation-list-row.cjs.map +1 -0
- package/dist/components/features/automations/automation-list-row.js +152 -0
- package/dist/components/features/automations/automation-list-row.js.map +1 -0
- package/dist/components/features/automations/automation-run-insights.cjs +2 -0
- package/dist/components/features/automations/automation-run-insights.cjs.map +1 -0
- package/dist/components/features/automations/automation-run-insights.js +46 -0
- package/dist/components/features/automations/automation-run-insights.js.map +1 -0
- package/dist/components/features/automations/automation-view-mode.cjs +2 -0
- package/dist/components/features/automations/automation-view-mode.cjs.map +1 -0
- package/dist/components/features/automations/automation-view-mode.d.ts +5 -1
- package/dist/components/features/automations/automation-view-mode.js +6 -0
- package/dist/components/features/automations/automation-view-mode.js.map +1 -0
- package/dist/components/features/automations/backend-not-configured.cjs +2 -0
- package/dist/components/features/automations/backend-not-configured.cjs.map +1 -0
- package/dist/components/features/automations/backend-not-configured.js +34 -0
- package/dist/components/features/automations/backend-not-configured.js.map +1 -0
- package/dist/components/features/automations/build-automation-menu-items.cjs +2 -0
- package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -0
- package/dist/components/features/automations/build-automation-menu-items.js +53 -0
- package/dist/components/features/automations/build-automation-menu-items.js.map +1 -0
- package/dist/components/features/automations/build-automation-pills.cjs +2 -0
- package/dist/components/features/automations/build-automation-pills.cjs.map +1 -0
- package/dist/components/features/automations/build-automation-pills.js +71 -0
- package/dist/components/features/automations/build-automation-pills.js.map +1 -0
- package/dist/components/features/automations/create-instructions.cjs +2 -0
- package/dist/components/features/automations/create-instructions.cjs.map +1 -0
- package/dist/components/features/automations/create-instructions.js +102 -0
- package/dist/components/features/automations/create-instructions.js.map +1 -0
- package/dist/components/features/automations/dashboard/automations-dashboard-controls.d.ts +4 -3
- package/dist/components/features/automations/detail/run-status-badge.cjs +2 -0
- package/dist/components/features/automations/detail/run-status-badge.cjs.map +1 -0
- package/dist/components/features/automations/detail/run-status-badge.js +102 -0
- package/dist/components/features/automations/detail/run-status-badge.js.map +1 -0
- package/dist/components/features/automations/empty-state.cjs +2 -0
- package/dist/components/features/automations/empty-state.cjs.map +1 -0
- package/dist/components/features/automations/empty-state.js +35 -0
- package/dist/components/features/automations/empty-state.js.map +1 -0
- package/dist/components/features/automations/error-state.cjs +2 -0
- package/dist/components/features/automations/error-state.cjs.map +1 -0
- package/dist/components/features/automations/error-state.js +28 -0
- package/dist/components/features/automations/error-state.js.map +1 -0
- package/dist/components/features/automations/import-automation-modal.d.ts +2 -1
- package/dist/components/features/automations/kebab-menu-item-content.cjs +2 -0
- package/dist/components/features/automations/kebab-menu-item-content.cjs.map +1 -0
- package/dist/components/features/automations/kebab-menu-item-content.js +21 -0
- package/dist/components/features/automations/kebab-menu-item-content.js.map +1 -0
- package/dist/components/features/automations/kebab-menu.cjs +2 -0
- package/dist/components/features/automations/kebab-menu.cjs.map +1 -0
- package/dist/components/features/automations/kebab-menu.d.ts +2 -1
- package/dist/components/features/automations/kebab-menu.js +76 -0
- package/dist/components/features/automations/kebab-menu.js.map +1 -0
- package/dist/components/features/automations/recommended-automations-launcher.cjs +2 -0
- package/dist/components/features/automations/recommended-automations-launcher.cjs.map +1 -0
- package/dist/components/features/automations/recommended-automations-launcher.d.ts +7 -1
- package/dist/components/features/automations/recommended-automations-launcher.js +134 -0
- package/dist/components/features/automations/recommended-automations-launcher.js.map +1 -0
- package/dist/components/features/automations/recommended-automations-rail.cjs +2 -0
- package/dist/components/features/automations/recommended-automations-rail.cjs.map +1 -0
- package/dist/components/features/automations/recommended-automations-rail.d.ts +9 -0
- package/dist/components/features/automations/recommended-automations-rail.js +127 -0
- package/dist/components/features/automations/recommended-automations-rail.js.map +1 -0
- package/dist/components/features/automations/recommended-automations-section.cjs +2 -0
- package/dist/components/features/automations/recommended-automations-section.cjs.map +1 -0
- package/dist/components/features/automations/recommended-automations-section.d.ts +2 -2
- package/dist/components/features/automations/recommended-automations-section.js +198 -0
- package/dist/components/features/automations/recommended-automations-section.js.map +1 -0
- package/dist/components/features/automations/responder-deployment-modal.cjs +2 -0
- package/dist/components/features/automations/responder-deployment-modal.cjs.map +1 -0
- package/dist/components/features/automations/responder-deployment-modal.js +75 -0
- package/dist/components/features/automations/responder-deployment-modal.js.map +1 -0
- package/dist/components/features/automations/status-badge.cjs +2 -0
- package/dist/components/features/automations/status-badge.cjs.map +1 -0
- package/dist/components/features/automations/status-badge.js +12 -0
- package/dist/components/features/automations/status-badge.js.map +1 -0
- package/dist/components/features/automations/to-latest-run-state.cjs +2 -0
- package/dist/components/features/automations/to-latest-run-state.cjs.map +1 -0
- package/dist/components/features/automations/to-latest-run-state.d.ts +6 -0
- package/dist/components/features/automations/to-latest-run-state.js +21 -0
- package/dist/components/features/automations/to-latest-run-state.js.map +1 -0
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.js +10 -10
- package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
- package/dist/components/features/backends/manage-backends-modal.js +5 -5
- package/dist/components/features/chat/chat-interface.cjs +2 -2
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +179 -177
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/command-menu/command-menu-items.d.ts +10 -4
- package/dist/components/features/conversation/conversation-git-actions-menu.cjs +2 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.d.ts +15 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.js +123 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.js.map +1 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.cjs +2 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.d.ts +10 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.js +60 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.js.map +1 -0
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs +1 -1
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js +46 -10
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js.map +1 -1
- package/dist/components/features/conversation/conversation-main/conversation-main.cjs +1 -1
- package/dist/components/features/conversation/conversation-main/conversation-main.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-main/conversation-main.js +49 -43
- package/dist/components/features/conversation/conversation-main/conversation-main.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.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.js +49 -40
- package/dist/components/features/conversation/conversation-name-with-status.js.map +1 -1
- package/dist/components/features/conversation/conversation-name.cjs +1 -1
- package/dist/components/features/conversation/conversation-name.js +4 -4
- package/dist/components/features/conversation/conversation-overview-automations-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.js +48 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.d.ts +10 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.js +221 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.d.ts +2 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.js +88 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.js +138 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.d.ts +17 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.js +43 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.js +6 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.d.ts +7 -0
- package/dist/components/features/conversation/conversation-overview-drawer.js +45 -0
- package/dist/components/features/conversation/conversation-overview-drawer.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.d.ts +12 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.js +13 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.d.ts +7 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.js +81 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-section.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-git-section.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-section.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-git-section.js +143 -0
- package/dist/components/features/conversation/conversation-overview-git-section.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.js +108 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.d.ts +24 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.js +12 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.d.ts +2 -0
- package/dist/components/features/conversation/conversation-overview-panel.js +102 -0
- package/dist/components/features/conversation/conversation-overview-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.d.ts +8 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js +29 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.js +89 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-sections.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-sections.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-sections.d.ts +43 -0
- package/dist/components/features/conversation/conversation-overview-sections.js +27 -0
- package/dist/components/features/conversation/conversation-overview-sections.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.js +138 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-toggle.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-toggle.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-toggle.d.ts +11 -0
- package/dist/components/features/conversation/conversation-overview-toggle.js +99 -0
- package/dist/components/features/conversation/conversation-overview-toggle.js.map +1 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs +2 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.d.ts +4 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.js +7 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.js.map +1 -0
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js +10 -9
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js.map +1 -1
- 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 +68 -62
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +98 -88
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
- package/dist/components/features/conversation/right-panel-toggle.cjs +1 -1
- package/dist/components/features/conversation/right-panel-toggle.cjs.map +1 -1
- package/dist/components/features/conversation/right-panel-toggle.d.ts +3 -2
- package/dist/components/features/conversation/right-panel-toggle.js +34 -33
- package/dist/components/features/conversation/right-panel-toggle.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.d.ts +2 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js +14 -7
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.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 +252 -225
- package/dist/components/features/conversation-panel/conversation-panel.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 +4 -4
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
- package/dist/components/features/diff-viewer/accordion-panel.cjs +2 -0
- package/dist/components/features/diff-viewer/accordion-panel.cjs.map +1 -0
- package/dist/components/features/diff-viewer/accordion-panel.d.ts +13 -0
- package/dist/components/features/diff-viewer/accordion-panel.js +41 -0
- package/dist/components/features/diff-viewer/accordion-panel.js.map +1 -0
- package/dist/components/features/diff-viewer/commit-list.cjs +1 -1
- package/dist/components/features/diff-viewer/commit-list.cjs.map +1 -1
- package/dist/components/features/diff-viewer/commit-list.d.ts +5 -1
- package/dist/components/features/diff-viewer/commit-list.js +30 -16
- package/dist/components/features/diff-viewer/commit-list.js.map +1 -1
- package/dist/components/features/diff-viewer/commit-row.cjs +1 -1
- package/dist/components/features/diff-viewer/commit-row.cjs.map +1 -1
- package/dist/components/features/diff-viewer/commit-row.d.ts +1 -2
- package/dist/components/features/diff-viewer/commit-row.js +38 -34
- package/dist/components/features/diff-viewer/commit-row.js.map +1 -1
- package/dist/components/features/diff-viewer/diff-change-list.cjs +2 -0
- package/dist/components/features/diff-viewer/diff-change-list.cjs.map +1 -0
- package/dist/components/features/diff-viewer/diff-change-list.d.ts +18 -0
- package/dist/components/features/diff-viewer/diff-change-list.js +22 -0
- package/dist/components/features/diff-viewer/diff-change-list.js.map +1 -0
- package/dist/components/features/diff-viewer/editor-container.cjs +1 -1
- package/dist/components/features/diff-viewer/editor-container.cjs.map +1 -1
- package/dist/components/features/diff-viewer/editor-container.d.ts +2 -1
- package/dist/components/features/diff-viewer/editor-container.js +8 -7
- package/dist/components/features/diff-viewer/editor-container.js.map +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.cjs +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.cjs.map +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +10 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.js +138 -112
- package/dist/components/features/diff-viewer/file-diff-viewer.js.map +1 -1
- package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs +2 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs.map +1 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.d.ts +12 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.js +51 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.js.map +1 -0
- 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 +0 -1
- package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
- package/dist/components/features/files-tab/file-quick-row.cjs +1 -1
- package/dist/components/features/files-tab/file-quick-row.cjs.map +1 -1
- package/dist/components/features/files-tab/file-quick-row.d.ts +9 -7
- package/dist/components/features/files-tab/file-quick-row.js +63 -34
- package/dist/components/features/files-tab/file-quick-row.js.map +1 -1
- package/dist/components/features/files-tab/files-tab-tree.constants.cjs +2 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.cjs.map +1 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.d.ts +7 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.js +6 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.js.map +1 -0
- package/dist/components/features/files-tab/segmented-toggle.cjs +1 -1
- package/dist/components/features/files-tab/segmented-toggle.cjs.map +1 -1
- package/dist/components/features/files-tab/segmented-toggle.d.ts +5 -3
- package/dist/components/features/files-tab/segmented-toggle.js +10 -13
- package/dist/components/features/files-tab/segmented-toggle.js.map +1 -1
- package/dist/components/features/files-tab/tree-node.cjs +1 -1
- package/dist/components/features/files-tab/tree-node.cjs.map +1 -1
- package/dist/components/features/files-tab/tree-node.js +34 -32
- package/dist/components/features/files-tab/tree-node.js.map +1 -1
- package/dist/components/features/files-tab/workspace-path.cjs +2 -0
- package/dist/components/features/files-tab/workspace-path.cjs.map +1 -0
- package/dist/components/features/files-tab/workspace-path.d.ts +6 -0
- package/dist/components/features/files-tab/workspace-path.js +41 -0
- package/dist/components/features/files-tab/workspace-path.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.js +22 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js +45 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js +108 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-health.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-run-health.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-health.js +75 -0
- package/dist/components/features/home/featured-automations/automation-run-health.js.map +1 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +2 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +74 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -0
- package/dist/components/features/home/featured-automations/pinned-automation-card.d.ts +3 -3
- package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs +1 -1
- package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs.map +1 -1
- package/dist/components/features/home/git-repo-dropdown/use-url-search.js +1 -1
- package/dist/components/features/home/git-repo-dropdown/use-url-search.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.js +6 -6
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +6 -6
- package/dist/components/features/manifest/manifest-form-field.d.ts +4 -3
- package/dist/components/features/manifest/manifest-icons.cjs +2 -0
- package/dist/components/features/manifest/manifest-icons.cjs.map +1 -0
- package/dist/components/features/manifest/manifest-icons.d.ts +1 -0
- package/dist/components/features/manifest/manifest-icons.js +21 -0
- package/dist/components/features/manifest/manifest-icons.js.map +1 -0
- package/dist/components/features/manifest/manifest-repository-list.d.ts +25 -0
- package/dist/components/features/markdown/markdown-table-scroll.cjs +1 -1
- package/dist/components/features/markdown/markdown-table-scroll.cjs.map +1 -1
- package/dist/components/features/markdown/markdown-table-scroll.d.ts +2 -6
- package/dist/components/features/markdown/markdown-table-scroll.js +15 -21
- package/dist/components/features/markdown/markdown-table-scroll.js.map +1 -1
- package/dist/components/features/mcp-logo-badge.cjs +1 -1
- package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
- package/dist/components/features/mcp-logo-badge.d.ts +1 -1
- package/dist/components/features/mcp-logo-badge.js +1 -0
- package/dist/components/features/mcp-logo-badge.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.js +16 -16
- package/dist/components/features/mcp-page/index.cjs +1 -1
- package/dist/components/features/mcp-page/index.js +2 -2
- 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 +25 -25
- package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
- package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
- package/dist/components/features/mcp-page/installed-server-card.js +5 -5
- package/dist/components/features/mcp-page/marketplace-card.cjs +1 -1
- package/dist/components/features/mcp-page/marketplace-card.js +4 -4
- package/dist/components/features/mcp-page/marketplace-section.cjs +1 -1
- package/dist/components/features/mcp-page/marketplace-section.js +3 -3
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs +2 -0
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs.map +1 -0
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.js +60 -0
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.js.map +1 -0
- package/dist/components/features/mcp-page/mcp-server-health.cjs +1 -1
- package/dist/components/features/mcp-page/mcp-server-health.js +18 -18
- package/dist/components/features/onboarding/use-onboarding-completion.cjs +2 -0
- package/dist/components/features/onboarding/use-onboarding-completion.cjs.map +1 -0
- package/dist/components/features/onboarding/use-onboarding-completion.js +32 -0
- package/dist/components/features/onboarding/use-onboarding-completion.js.map +1 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs +2 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs.map +1 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.d.ts +1 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js +22 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js.map +1 -0
- package/dist/components/features/settings/brand-button.cjs +1 -1
- package/dist/components/features/settings/brand-button.cjs.map +1 -1
- package/dist/components/features/settings/brand-button.d.ts +2 -0
- package/dist/components/features/settings/brand-button.js +4 -2
- package/dist/components/features/settings/brand-button.js.map +1 -1
- package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.d.ts +7 -0
- package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.js +7 -0
- package/dist/components/features/settings/llm-profiles/llm-profiles-manager.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-profiles-manager.js +3 -0
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +1 -0
- package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +20 -1
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.d.ts +19 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.js +10 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-row.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-row.d.ts +10 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-row.js +6 -0
- package/dist/components/features/settings/llm-profiles/provider-connections-manager.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connections-manager.d.ts +15 -0
- package/dist/components/features/settings/llm-profiles/provider-connections-manager.js +8 -0
- package/dist/components/features/settings/sdk-settings/schema-field.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/schema-field.js +6 -6
- package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js +7 -7
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js.map +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.cjs +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.js +7 -7
- package/dist/components/features/settings/settings-input.cjs +1 -1
- package/dist/components/features/settings/settings-input.cjs.map +1 -1
- package/dist/components/features/settings/settings-input.d.ts +6 -0
- package/dist/components/features/settings/settings-input.js +14 -13
- package/dist/components/features/settings/settings-input.js.map +1 -1
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.d.ts +7 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js +102 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.d.ts +8 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js +66 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.d.ts +3 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js +15 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.d.ts +10 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js +39 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.d.ts +26 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js +78 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.d.ts +5 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.js +127 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.js +115 -111
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs +2 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs.map +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.d.ts +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js +10 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js.map +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs +2 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs.map +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.d.ts +15 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js +75 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js.map +1 -0
- package/dist/components/features/skills/add-skill-modal.cjs +2 -0
- package/dist/components/features/skills/add-skill-modal.cjs.map +1 -0
- package/dist/components/features/skills/add-skill-modal.js +164 -0
- package/dist/components/features/skills/add-skill-modal.js.map +1 -0
- package/dist/components/features/skills/build-skill-pills.cjs +2 -0
- package/dist/components/features/skills/build-skill-pills.cjs.map +1 -0
- package/dist/components/features/skills/build-skill-pills.js +88 -0
- package/dist/components/features/skills/build-skill-pills.js.map +1 -0
- package/dist/components/features/skills/get-skill-card-description.cjs +2 -0
- package/dist/components/features/skills/get-skill-card-description.cjs.map +1 -0
- package/dist/components/features/skills/get-skill-card-description.js +34 -0
- package/dist/components/features/skills/get-skill-card-description.js.map +1 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.cjs +2 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.cjs.map +1 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.js +9 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.js.map +1 -0
- package/dist/components/features/skills/is-copyable-skill-source.cjs +2 -0
- package/dist/components/features/skills/is-copyable-skill-source.cjs.map +1 -0
- package/dist/components/features/skills/is-copyable-skill-source.js +9 -0
- package/dist/components/features/skills/is-copyable-skill-source.js.map +1 -0
- package/dist/components/features/skills/skill-card-pill-row.cjs +2 -0
- package/dist/components/features/skills/skill-card-pill-row.cjs.map +1 -0
- package/dist/components/features/skills/skill-card-pill-row.d.ts +1 -1
- package/dist/components/features/skills/skill-card-pill-row.js +137 -0
- package/dist/components/features/skills/skill-card-pill-row.js.map +1 -0
- package/dist/components/features/skills/skill-card.cjs +2 -0
- package/dist/components/features/skills/skill-card.cjs.map +1 -0
- package/dist/components/features/skills/skill-card.js +93 -0
- package/dist/components/features/skills/skill-card.js.map +1 -0
- package/dist/components/features/skills/skill-detail-modal.cjs +3 -0
- package/dist/components/features/skills/skill-detail-modal.cjs.map +1 -0
- package/dist/components/features/skills/skill-detail-modal.js +150 -0
- package/dist/components/features/skills/skill-detail-modal.js.map +1 -0
- package/dist/components/features/skills/skill-facet-rail.cjs +2 -0
- package/dist/components/features/skills/skill-facet-rail.cjs.map +1 -0
- package/dist/components/features/skills/skill-facet-rail.js +42 -0
- package/dist/components/features/skills/skill-facet-rail.js.map +1 -0
- package/dist/components/features/skills/skill-facet-row.cjs +2 -0
- package/dist/components/features/skills/skill-facet-row.cjs.map +1 -0
- package/dist/components/features/skills/skill-facet-row.js +44 -0
- package/dist/components/features/skills/skill-facet-row.js.map +1 -0
- package/dist/components/features/skills/skill-filter.cjs +2 -0
- package/dist/components/features/skills/skill-filter.cjs.map +1 -0
- package/dist/components/features/skills/skill-filter.js +166 -0
- package/dist/components/features/skills/skill-filter.js.map +1 -0
- package/dist/components/features/skills/skill-filters-modal.cjs +2 -0
- package/dist/components/features/skills/skill-filters-modal.cjs.map +1 -0
- package/dist/components/features/skills/skill-filters-modal.js +53 -0
- package/dist/components/features/skills/skill-filters-modal.js.map +1 -0
- package/dist/components/features/skills/skill-icon-badge.cjs +2 -0
- package/dist/components/features/skills/skill-icon-badge.cjs.map +1 -0
- package/dist/components/features/skills/skill-icon-badge.js +17 -0
- package/dist/components/features/skills/skill-icon-badge.js.map +1 -0
- package/dist/components/features/skills/skill-type-badge.cjs +2 -0
- package/dist/components/features/skills/skill-type-badge.cjs.map +1 -0
- package/dist/components/features/skills/skill-type-badge.js +21 -0
- package/dist/components/features/skills/skill-type-badge.js.map +1 -0
- package/dist/components/features/skills/skills-toolbar.cjs +2 -0
- package/dist/components/features/skills/skills-toolbar.cjs.map +1 -0
- package/dist/components/features/skills/skills-toolbar.js +63 -0
- package/dist/components/features/skills/skills-toolbar.js.map +1 -0
- package/dist/components/shared/buttons/circle-plus-check-toggle.cjs +1 -1
- package/dist/components/shared/buttons/circle-plus-check-toggle.cjs.map +1 -1
- package/dist/components/shared/buttons/circle-plus-check-toggle.js +19 -6
- package/dist/components/shared/buttons/circle-plus-check-toggle.js.map +1 -1
- 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.d.ts +4 -1
- package/dist/components/shared/filters/enum-filter-dropdown.js +14 -14
- package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
- package/dist/components/shared/modals/settings/settings-form.cjs +1 -1
- package/dist/components/shared/modals/settings/settings-form.js +4 -4
- package/dist/components/ui/resize-handle.cjs +1 -1
- package/dist/components/ui/resize-handle.cjs.map +1 -1
- package/dist/components/ui/resize-handle.d.ts +2 -1
- package/dist/components/ui/resize-handle.js +6 -5
- package/dist/components/ui/resize-handle.js.map +1 -1
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants/skills-docs.cjs +2 -0
- package/dist/constants/skills-docs.cjs.map +1 -0
- package/dist/constants/skills-docs.js +6 -0
- package/dist/constants/skills-docs.js.map +1 -0
- package/dist/contexts/conversation-websocket-context.cjs +3 -3
- package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
- package/dist/contexts/conversation-websocket-context.js +174 -149
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/fixtures/home-automations-demo.cjs +2 -0
- package/dist/fixtures/home-automations-demo.cjs.map +1 -0
- package/dist/fixtures/home-automations-demo.d.ts +1 -3
- package/dist/fixtures/home-automations-demo.js +384 -0
- package/dist/fixtures/home-automations-demo.js.map +1 -0
- package/dist/hooks/chat/use-slash-command.cjs +1 -1
- package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
- package/dist/hooks/chat/use-slash-command.d.ts +1 -2
- package/dist/hooks/chat/use-slash-command.js +1 -0
- package/dist/hooks/chat/use-slash-command.js.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.js +27 -30
- package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
- package/dist/hooks/mutation/use-create-provider-connection.cjs +1 -0
- package/dist/hooks/mutation/use-create-provider-connection.d.ts +2 -0
- package/dist/hooks/mutation/use-create-provider-connection.js +1 -0
- package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-delete-mcp-server.js +3 -3
- package/dist/hooks/mutation/use-delete-provider-connection.cjs +1 -0
- package/dist/hooks/mutation/use-delete-provider-connection.d.ts +1 -0
- package/dist/hooks/mutation/use-delete-provider-connection.js +1 -0
- package/dist/hooks/mutation/use-switch-acp-model.cjs +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.d.ts +5 -3
- package/dist/hooks/mutation/use-switch-acp-model.js +9 -13
- package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.js +6 -6
- package/dist/hooks/mutation/use-update-provider-connection.cjs +1 -0
- package/dist/hooks/mutation/use-update-provider-connection.d.ts +7 -0
- package/dist/hooks/mutation/use-update-provider-connection.js +1 -0
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +3 -0
- package/dist/hooks/query/query-keys.js +4 -4
- package/dist/hooks/query/query-keys.js.map +1 -1
- package/dist/hooks/query/use-automation-detail.cjs +1 -0
- package/dist/hooks/query/use-automation-detail.js +2 -0
- package/dist/hooks/query/use-automation-health.cjs +2 -0
- package/dist/hooks/query/use-automation-health.cjs.map +1 -0
- package/dist/hooks/query/use-automation-health.js +22 -0
- package/dist/hooks/query/use-automation-health.js.map +1 -0
- package/dist/hooks/query/use-automations.cjs +2 -0
- package/dist/hooks/query/use-automations.cjs.map +1 -0
- package/dist/hooks/query/use-automations.js +28 -0
- package/dist/hooks/query/use-automations.js.map +1 -0
- package/dist/hooks/query/use-backends-health.cjs +1 -1
- package/dist/hooks/query/use-backends-health.cjs.map +1 -1
- package/dist/hooks/query/use-backends-health.js +1 -1
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-commit-changes.cjs +1 -1
- package/dist/hooks/query/use-commit-changes.js +4 -4
- package/dist/hooks/query/use-conversation-history.cjs +1 -1
- package/dist/hooks/query/use-conversation-history.cjs.map +1 -1
- package/dist/hooks/query/use-conversation-history.js +3 -1
- package/dist/hooks/query/use-conversation-history.js.map +1 -1
- package/dist/hooks/query/use-conversation-metrics.cjs +1 -1
- package/dist/hooks/query/use-conversation-metrics.js +3 -3
- package/dist/hooks/query/use-latest-automation-runs.cjs +1 -0
- package/dist/hooks/query/use-latest-automation-runs.d.ts +2 -0
- package/dist/hooks/query/use-latest-automation-runs.js +3 -0
- package/dist/hooks/query/use-llm-profiles.d.ts +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 +1 -1
- package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
- package/dist/hooks/query/use-provider-connections.cjs +2 -0
- package/dist/hooks/query/use-provider-connections.cjs.map +1 -0
- package/dist/hooks/query/use-provider-connections.d.ts +8 -0
- package/dist/hooks/query/use-provider-connections.js +19 -0
- package/dist/hooks/query/use-provider-connections.js.map +1 -0
- package/dist/hooks/query/use-repository-git-items.cjs +2 -0
- package/dist/hooks/query/use-repository-git-items.cjs.map +1 -0
- package/dist/hooks/query/use-repository-git-items.d.ts +3 -0
- package/dist/hooks/query/use-repository-git-items.js +33 -0
- package/dist/hooks/query/use-repository-git-items.js.map +1 -0
- package/dist/hooks/query/use-unified-get-git-changes.cjs +1 -1
- package/dist/hooks/query/use-unified-get-git-changes.js +4 -4
- package/dist/hooks/query/use-unified-git-commits.cjs +1 -1
- package/dist/hooks/query/use-unified-git-commits.js +4 -4
- package/dist/hooks/query/use-unified-git-diff.cjs +1 -1
- package/dist/hooks/query/use-unified-git-diff.js +4 -4
- package/dist/hooks/query/use-workspace-files.cjs +1 -1
- package/dist/hooks/query/use-workspace-files.js +6 -6
- package/dist/hooks/use-bash-command-runner.cjs +1 -1
- package/dist/hooks/use-bash-command-runner.cjs.map +1 -1
- package/dist/hooks/use-bash-command-runner.js +45 -42
- package/dist/hooks/use-bash-command-runner.js.map +1 -1
- package/dist/hooks/use-conversation-overview-column-space.cjs +2 -0
- package/dist/hooks/use-conversation-overview-column-space.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-column-space.d.ts +2 -0
- package/dist/hooks/use-conversation-overview-column-space.js +25 -0
- package/dist/hooks/use-conversation-overview-column-space.js.map +1 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.cjs +2 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.d.ts +7 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.js +37 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.js.map +1 -0
- package/dist/hooks/use-conversation-overview-panel-peek.cjs +2 -0
- package/dist/hooks/use-conversation-overview-panel-peek.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-panel-peek.d.ts +9 -0
- package/dist/hooks/use-conversation-overview-panel-peek.js +32 -0
- package/dist/hooks/use-conversation-overview-panel-peek.js.map +1 -0
- package/dist/hooks/use-conversation-overview-stats.cjs +2 -0
- package/dist/hooks/use-conversation-overview-stats.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-stats.d.ts +4 -0
- package/dist/hooks/use-conversation-overview-stats.js +15 -0
- package/dist/hooks/use-conversation-overview-stats.js.map +1 -0
- package/dist/hooks/use-conversation-primary-repository.cjs +2 -0
- package/dist/hooks/use-conversation-primary-repository.cjs.map +1 -0
- package/dist/hooks/use-conversation-primary-repository.d.ts +11 -0
- package/dist/hooks/use-conversation-primary-repository.js +17 -0
- package/dist/hooks/use-conversation-primary-repository.js.map +1 -0
- package/dist/hooks/use-drag-scroll.cjs +2 -0
- package/dist/hooks/use-drag-scroll.cjs.map +1 -0
- package/dist/hooks/use-drag-scroll.d.ts +12 -0
- package/dist/hooks/use-drag-scroll.js +41 -0
- package/dist/hooks/use-drag-scroll.js.map +1 -0
- package/dist/hooks/use-has-permission.cjs +2 -0
- package/dist/hooks/use-has-permission.cjs.map +1 -0
- package/dist/hooks/use-has-permission.js +8 -0
- package/dist/hooks/use-has-permission.js.map +1 -0
- package/dist/hooks/use-home-automation-actions.cjs +2 -0
- package/dist/hooks/use-home-automation-actions.cjs.map +1 -0
- package/dist/hooks/use-home-automation-actions.js +15 -0
- package/dist/hooks/use-home-automation-actions.js.map +1 -0
- package/dist/hooks/use-launch-skill-in-chat.cjs +2 -0
- package/dist/hooks/use-launch-skill-in-chat.cjs.map +1 -0
- package/dist/hooks/use-launch-skill-in-chat.js +16 -0
- package/dist/hooks/use-launch-skill-in-chat.js.map +1 -0
- package/dist/hooks/use-mcp-server-health.cjs +1 -1
- package/dist/hooks/use-mcp-server-health.js +3 -3
- package/dist/hooks/use-resizable-drawer-width.cjs +2 -0
- package/dist/hooks/use-resizable-drawer-width.cjs.map +1 -0
- package/dist/hooks/use-resizable-drawer-width.d.ts +22 -0
- package/dist/hooks/use-resizable-drawer-width.js +46 -0
- package/dist/hooks/use-resizable-drawer-width.js.map +1 -0
- package/dist/hooks/use-responder-url-secret.cjs +2 -0
- package/dist/hooks/use-responder-url-secret.cjs.map +1 -0
- package/dist/hooks/use-responder-url-secret.js +51 -0
- package/dist/hooks/use-responder-url-secret.js.map +1 -0
- package/dist/hooks/use-select-conversation-tab.cjs +1 -1
- package/dist/hooks/use-select-conversation-tab.cjs.map +1 -1
- package/dist/hooks/use-select-conversation-tab.d.ts +2 -0
- package/dist/hooks/use-select-conversation-tab.js +15 -7
- package/dist/hooks/use-select-conversation-tab.js.map +1 -1
- package/dist/hooks/use-tracking.cjs +1 -1
- package/dist/hooks/use-tracking.cjs.map +1 -1
- package/dist/hooks/use-tracking.d.ts +17 -0
- package/dist/hooks/use-tracking.js +10 -0
- package/dist/hooks/use-tracking.js.map +1 -1
- package/dist/hooks/use-websocket.cjs +1 -1
- package/dist/hooks/use-websocket.cjs.map +1 -1
- package/dist/hooks/use-websocket.d.ts +1 -2
- package/dist/hooks/use-websocket.js +58 -51
- package/dist/hooks/use-websocket.js.map +1 -1
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +124 -43
- 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 +2091 -714
- package/dist/i18n/translation.js.map +1 -1
- package/dist/icons/check-circle.cjs +2 -0
- package/dist/icons/check-circle.cjs.map +1 -0
- package/dist/icons/check-circle.js +20 -0
- package/dist/icons/check-circle.js.map +1 -0
- package/dist/icons/chevron-down.cjs +2 -0
- package/dist/icons/chevron-down.cjs.map +1 -0
- package/dist/icons/chevron-down.js +20 -0
- package/dist/icons/chevron-down.js.map +1 -0
- package/dist/icons/clock.cjs +2 -0
- package/dist/icons/clock.cjs.map +1 -0
- package/dist/icons/clock.js +20 -0
- package/dist/icons/clock.js.map +1 -0
- package/dist/icons/exclamation-circle.cjs +2 -0
- package/dist/icons/exclamation-circle.cjs.map +1 -0
- package/dist/icons/exclamation-circle.js +20 -0
- package/dist/icons/exclamation-circle.js.map +1 -0
- package/dist/icons/kebab-vertical.cjs +2 -0
- package/dist/icons/kebab-vertical.cjs.map +1 -0
- package/dist/icons/kebab-vertical.js +14 -0
- package/dist/icons/kebab-vertical.js.map +1 -0
- package/dist/icons/key.cjs +2 -0
- package/dist/icons/key.cjs.map +1 -0
- package/dist/icons/key.js +21 -0
- package/dist/icons/key.js.map +1 -0
- package/dist/icons/message-square-share.cjs +2 -0
- package/dist/icons/message-square-share.cjs.map +1 -0
- package/dist/icons/message-square-share.js +22 -0
- package/dist/icons/message-square-share.js.map +1 -0
- package/dist/icons/play.cjs +2 -0
- package/dist/icons/play.cjs.map +1 -0
- package/dist/icons/play.js +19 -0
- package/dist/icons/play.js.map +1 -0
- package/dist/icons/power.cjs +2 -0
- package/dist/icons/power.cjs.map +1 -0
- package/dist/icons/power.js +20 -0
- package/dist/icons/power.js.map +1 -0
- package/dist/icons/sparkle.cjs +2 -0
- package/dist/icons/sparkle.cjs.map +1 -0
- package/dist/icons/sparkle.js +20 -0
- package/dist/icons/sparkle.js.map +1 -0
- package/dist/icons/trash.cjs +2 -0
- package/dist/icons/trash.cjs.map +1 -0
- package/dist/icons/trash.js +20 -0
- package/dist/icons/trash.js.map +1 -0
- package/dist/icons/x-circle.cjs +2 -0
- package/dist/icons/x-circle.cjs.map +1 -0
- package/dist/icons/x-circle.js +20 -0
- package/dist/icons/x-circle.js.map +1 -0
- package/dist/locales/ar/openhands.json +124 -43
- package/dist/locales/ca/openhands.json +124 -43
- package/dist/locales/de/openhands.json +124 -43
- package/dist/locales/en/openhands.json +124 -43
- package/dist/locales/es/openhands.json +124 -43
- package/dist/locales/fr/openhands.json +124 -43
- package/dist/locales/it/openhands.json +124 -43
- package/dist/locales/ja/openhands.json +124 -43
- package/dist/locales/ko-KR/openhands.json +124 -43
- package/dist/locales/no/openhands.json +124 -43
- package/dist/locales/pt/openhands.json +124 -43
- package/dist/locales/tr/openhands.json +124 -43
- package/dist/locales/uk/openhands.json +124 -43
- package/dist/locales/zh-CN/openhands.json +124 -43
- package/dist/locales/zh-TW/openhands.json +124 -43
- package/dist/manifests/automation-insights.cjs +2 -0
- package/dist/manifests/automation-insights.cjs.map +1 -0
- package/dist/manifests/automation-insights.d.ts +2 -0
- package/dist/manifests/automation-insights.js +9 -0
- package/dist/manifests/automation-insights.js.map +1 -0
- package/dist/manifests/automation-interface.cjs +1 -1
- package/dist/manifests/automation-interface.cjs.map +1 -1
- package/dist/manifests/automation-interface.d.ts +47 -31
- package/dist/manifests/automation-interface.js +48 -54
- package/dist/manifests/automation-interface.js.map +1 -1
- package/dist/manifests/automation-setup.cjs +1 -1
- package/dist/manifests/automation-setup.cjs.map +1 -1
- package/dist/manifests/automation-setup.d.ts +37 -3
- package/dist/manifests/automation-setup.js +16 -2
- package/dist/manifests/automation-setup.js.map +1 -1
- package/dist/manifests/interface-validation.cjs +1 -1
- package/dist/manifests/interface-validation.cjs.map +1 -1
- package/dist/manifests/interface-validation.js +56 -52
- package/dist/manifests/interface-validation.js.map +1 -1
- package/dist/manifests/manifest-actions.d.ts +5 -0
- package/dist/manifests/manifest-bundle.d.ts +30 -0
- package/dist/manifests/manifest-local-validation.d.ts +10 -1
- package/dist/manifests/manifest-sources.cjs +1 -1
- package/dist/manifests/manifest-sources.cjs.map +1 -1
- package/dist/manifests/manifest-sources.js +3 -3
- package/dist/manifests/manifest-sources.js.map +1 -1
- package/dist/manifests/manifest-template.d.ts +14 -0
- package/dist/manifests/manifest-validation.cjs +1 -1
- package/dist/manifests/manifest-validation.cjs.map +1 -1
- package/dist/manifests/manifest-validation.js +78 -45
- package/dist/manifests/manifest-validation.js.map +1 -1
- package/dist/manifests/types.cjs +1 -1
- package/dist/manifests/types.cjs.map +1 -1
- package/dist/manifests/types.d.ts +64 -3
- package/dist/manifests/types.js +7 -6
- package/dist/manifests/types.js.map +1 -1
- package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.cjs +1 -1
- package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.js +10 -10
- package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.cjs +1 -1
- package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.js +8 -8
- package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.cjs +1 -1
- package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.js +9 -9
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +4843 -0
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +11 -0
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs +13 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js +87 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +12 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +98 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +9 -7
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +32 -13
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +2 -2
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +29 -34
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs +3 -3
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js +2 -2
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +14 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js +72 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +16 -10
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/index.js +18 -13
- package/dist/node_modules/@openhands/extensions/automations/index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.js +6 -2
- package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js +36 -3
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js +75 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +68 -66
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +1002 -47
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +59 -17
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.js +9 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.js +19 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js +39 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.js +39 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js +25 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.js.map +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +3 -3
- package/dist/package.js.map +1 -1
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +87 -85
- package/dist/routes/app-settings.js.map +1 -1
- package/dist/routes/commits-tab.cjs +1 -1
- package/dist/routes/commits-tab.cjs.map +1 -1
- package/dist/routes/commits-tab.js +27 -21
- package/dist/routes/commits-tab.js.map +1 -1
- package/dist/routes/conversation.cjs +1 -1
- package/dist/routes/conversation.cjs.map +1 -1
- package/dist/routes/conversation.js +56 -55
- package/dist/routes/conversation.js.map +1 -1
- package/dist/routes/files-tab.cjs +1 -1
- package/dist/routes/files-tab.cjs.map +1 -1
- package/dist/routes/files-tab.d.ts +4 -0
- package/dist/routes/files-tab.js +121 -151
- package/dist/routes/files-tab.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.d.ts +9 -1
- package/dist/routes/llm-settings.js +137 -107
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/routes/mcp.cjs +1 -1
- package/dist/routes/mcp.cjs.map +1 -1
- package/dist/routes/mcp.js +20 -20
- package/dist/routes/secrets-settings.cjs +1 -1
- package/dist/routes/secrets-settings.js +15 -15
- package/dist/stores/conversation-store.cjs +1 -1
- package/dist/stores/conversation-store.cjs.map +1 -1
- package/dist/stores/conversation-store.d.ts +8 -1
- package/dist/stores/conversation-store.js +9 -0
- package/dist/stores/conversation-store.js.map +1 -1
- package/dist/stores/files-tab-store.cjs +1 -1
- package/dist/stores/files-tab-store.cjs.map +1 -1
- package/dist/stores/files-tab-store.d.ts +13 -0
- package/dist/stores/files-tab-store.js +49 -5
- package/dist/stores/files-tab-store.js.map +1 -1
- package/dist/stores/use-event-store.cjs +1 -1
- package/dist/stores/use-event-store.cjs.map +1 -1
- package/dist/stores/use-event-store.js +11 -11
- package/dist/stores/use-event-store.js.map +1 -1
- package/dist/types/agent-server/core/events/message-event.d.ts +2 -2
- package/dist/types/automation.cjs +2 -0
- package/dist/types/automation.cjs.map +1 -0
- package/dist/types/automation.js +8 -0
- package/dist/types/automation.js.map +1 -0
- package/dist/utils/automation-catalog.cjs +1 -1
- package/dist/utils/automation-catalog.cjs.map +1 -1
- package/dist/utils/automation-catalog.d.ts +12 -0
- package/dist/utils/automation-catalog.js +20 -1
- package/dist/utils/automation-catalog.js.map +1 -1
- package/dist/utils/automation-schedule.cjs +2 -0
- package/dist/utils/automation-schedule.cjs.map +1 -0
- package/dist/utils/automation-schedule.js +8 -0
- package/dist/utils/automation-schedule.js.map +1 -0
- package/dist/utils/automation-stack-section.cjs +2 -0
- package/dist/utils/automation-stack-section.cjs.map +1 -0
- package/dist/utils/automation-stack-section.d.ts +2 -0
- package/dist/utils/automation-stack-section.js +6 -0
- package/dist/utils/automation-stack-section.js.map +1 -0
- package/dist/utils/constants.cjs +1 -1
- package/dist/utils/constants.cjs.map +1 -1
- package/dist/utils/constants.js +4 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/conversation-local-storage.cjs +1 -1
- package/dist/utils/conversation-local-storage.cjs.map +1 -1
- package/dist/utils/conversation-local-storage.d.ts +17 -4
- package/dist/utils/conversation-local-storage.js +111 -63
- package/dist/utils/conversation-local-storage.js.map +1 -1
- package/dist/utils/conversation-metrics.cjs +1 -1
- package/dist/utils/conversation-metrics.cjs.map +1 -1
- package/dist/utils/conversation-metrics.d.ts +3 -2
- package/dist/utils/conversation-metrics.js +16 -14
- package/dist/utils/conversation-metrics.js.map +1 -1
- package/dist/utils/conversation-overview-project-scope.cjs +2 -0
- package/dist/utils/conversation-overview-project-scope.cjs.map +1 -0
- package/dist/utils/conversation-overview-project-scope.d.ts +16 -0
- package/dist/utils/conversation-overview-project-scope.js +22 -0
- package/dist/utils/conversation-overview-project-scope.js.map +1 -0
- package/dist/utils/extension-module-card-classes.cjs +1 -1
- package/dist/utils/extension-module-card-classes.cjs.map +1 -1
- package/dist/utils/extension-module-card-classes.d.ts +1 -1
- package/dist/utils/extension-module-card-classes.js +2 -2
- package/dist/utils/extension-module-card-classes.js.map +1 -1
- package/dist/utils/format-relative-time.cjs +2 -0
- package/dist/utils/format-relative-time.cjs.map +1 -0
- package/dist/utils/format-relative-time.js +17 -0
- package/dist/utils/format-relative-time.js.map +1 -0
- package/dist/utils/git-diff-stats.cjs +5 -0
- package/dist/utils/git-diff-stats.cjs.map +1 -0
- package/dist/utils/git-diff-stats.d.ts +9 -0
- package/dist/utils/git-diff-stats.js +53 -0
- package/dist/utils/git-diff-stats.js.map +1 -0
- package/dist/utils/handle-event-for-ui.cjs +1 -1
- package/dist/utils/handle-event-for-ui.cjs.map +1 -1
- package/dist/utils/handle-event-for-ui.js +13 -11
- package/dist/utils/handle-event-for-ui.js.map +1 -1
- package/dist/utils/mcp-credential-validation.cjs +1 -1
- package/dist/utils/mcp-credential-validation.js +3 -3
- package/dist/utils/mcp-marketplace-utils.cjs +1 -1
- package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
- package/dist/utils/mcp-marketplace-utils.js +22 -9
- package/dist/utils/mcp-marketplace-utils.js.map +1 -1
- package/dist/utils/parse-git-remote-url.cjs +1 -1
- package/dist/utils/parse-git-remote-url.cjs.map +1 -1
- package/dist/utils/parse-git-remote-url.js +6 -7
- package/dist/utils/parse-git-remote-url.js.map +1 -1
- package/dist/utils/recommended-automation-rail.cjs +2 -0
- package/dist/utils/recommended-automation-rail.cjs.map +1 -0
- package/dist/utils/recommended-automation-rail.d.ts +22 -0
- package/dist/utils/recommended-automation-rail.js +44 -0
- package/dist/utils/recommended-automation-rail.js.map +1 -0
- package/dist/utils/responder-deployment.cjs +2 -0
- package/dist/utils/responder-deployment.cjs.map +1 -0
- package/dist/utils/responder-deployment.js +42 -0
- package/dist/utils/responder-deployment.js.map +1 -0
- package/dist/utils/scroll-fade-state.cjs +2 -0
- package/dist/utils/scroll-fade-state.cjs.map +1 -0
- package/dist/utils/scroll-fade-state.d.ts +6 -0
- package/dist/utils/scroll-fade-state.js +13 -0
- package/dist/utils/scroll-fade-state.js.map +1 -0
- package/dist/utils/skill-category.cjs +2 -0
- package/dist/utils/skill-category.cjs.map +1 -0
- package/dist/utils/skill-category.js +51 -0
- package/dist/utils/skill-category.js.map +1 -0
- package/dist/utils/skill-scope.cjs +1 -1
- package/dist/utils/skill-scope.cjs.map +1 -1
- package/dist/utils/skill-scope.js +1 -1
- package/dist/utils/skill-scope.js.map +1 -1
- package/dist/utils/streaming-delta-batcher.cjs +2 -0
- package/dist/utils/streaming-delta-batcher.cjs.map +1 -0
- package/dist/utils/streaming-delta-batcher.d.ts +21 -0
- package/dist/utils/streaming-delta-batcher.js +31 -0
- package/dist/utils/streaming-delta-batcher.js.map +1 -0
- package/dist/utils/tar-gzip.d.ts +26 -0
- package/dist/utils/utils.cjs +1 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.d.ts +1 -41
- package/dist/utils/utils.js +27 -6
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/websocket-handshake.cjs +2 -0
- package/dist/utils/websocket-handshake.cjs.map +1 -0
- package/dist/utils/websocket-handshake.d.ts +11 -0
- package/dist/utils/websocket-handshake.js +12 -0
- package/dist/utils/websocket-handshake.js.map +1 -0
- package/package.json +3 -3
- package/scripts/check-translation-completeness.cjs +4 -0
- package/scripts/dev-static.mjs +49 -43
- package/scripts/dev-with-automation.mjs +13 -5
- package/scripts/seed-automation-ux-data.mjs +810 -0
- package/build/assets/acp-providers-CYy8qA2z.js +0 -1
- package/build/assets/active-backend-context-BZDG15C0.js +0 -2
- package/build/assets/agent-context-settings-DGWBBbcp.js +0 -1
- package/build/assets/agent-profiles-settings-DrkGdf4_.js +0 -1
- package/build/assets/agent-server-conversation-service.api-DK56YPTs.js +0 -86
- package/build/assets/agent-settings-DfcSgkLD.js +0 -2
- package/build/assets/agent-settings-Lrc5-twS.js +0 -1
- package/build/assets/alert-banner-BgDHhL7b.js +0 -1
- package/build/assets/api-error-message-BEIE_yD1.js +0 -1
- package/build/assets/api-key-entry-screen-DaZnOlVo.js +0 -1
- package/build/assets/app-settings-BG5NAUbC.js +0 -1
- package/build/assets/automation-detail-D4Hs831Z.js +0 -3
- package/build/assets/automation-export-n0X6FB0C.js +0 -2
- package/build/assets/automation-git-sync-CDrm8WV7.js +0 -1
- package/build/assets/automation-setup-route-CZCl4ONs.js +0 -1
- package/build/assets/automation-templates-DFF96AdL.js +0 -1
- package/build/assets/automations-list-Bl-oGOrV.js +0 -1
- package/build/assets/back-nav-button-H_ThtDA0.js +0 -1
- package/build/assets/backend-form-modal-CbCemvHt.js +0 -1
- package/build/assets/backend-not-configured-DP8KLNq_.js +0 -1
- package/build/assets/backend-synced-settings-badge-BBASWqsb.js +0 -1
- package/build/assets/badge-B-51h-SW.js +0 -1
- package/build/assets/base-modal-BbjycA8X.js +0 -1
- package/build/assets/bot-CGPCg03p.js +0 -1
- package/build/assets/brand-button-Blxv5nww.js +0 -1
- package/build/assets/browser-CuW0nWvh.js +0 -7
- package/build/assets/browser-tab-D5G0ORwt.js +0 -1
- package/build/assets/chat-send-button-BD2tii1r.js +0 -1
- package/build/assets/check-DSuS-lyr.js +0 -1
- package/build/assets/chevron-down-CgGcmtE2.js +0 -1
- package/build/assets/circle-check-CG5-NPw7.js +0 -1
- package/build/assets/circle-plus-check-toggle-ASbpB8vN.js +0 -1
- package/build/assets/cloud-funnel-analytics-GlCUG0gk.js +0 -1
- package/build/assets/cog-CZiR80uT.js +0 -1
- package/build/assets/combobox-caret-DvpEsh2O.js +0 -1
- package/build/assets/command-menu-DwUQzjYP.js +0 -1
- package/build/assets/condenser-settings-BptcoiLA.js +0 -1
- package/build/assets/confirmation-modal-CiEwxZAA.js +0 -1
- package/build/assets/context-menu-list-item-CdcamfM1.js +0 -1
- package/build/assets/conversation-DREHj4nT.js +0 -1
- package/build/assets/conversation-DotRfiDz.js +0 -90
- package/build/assets/conversation-panel-DREHj4nT.js +0 -1
- package/build/assets/conversation-state-store-DMLtlHbE.js +0 -1
- package/build/assets/conversation-store-Blc5xysY.js +0 -6
- package/build/assets/conversation-tab-empty-state-D-puECpY.js +0 -1
- package/build/assets/copy-to-clipboard-button-BGxcUbgy.js +0 -1
- package/build/assets/device-verify-CZJfWaJf.js +0 -1
- package/build/assets/dropdown-classes-tLhpwtxS.js +0 -1
- package/build/assets/entry.client-D8GnI6GZ.js +0 -2
- package/build/assets/enum-filter-dropdown-Fk8k60nk.js +0 -1
- package/build/assets/environment-switch-overlay-DeztVYuL.js +0 -1
- package/build/assets/extension-module-card-classes-Bo43vY5V.js +0 -1
- package/build/assets/extensions-hub-Cd6GCYzq.js +0 -1
- package/build/assets/extensions-navigation-C4sgZg-y.js +0 -1
- package/build/assets/external-link-C0UpBgsE.js +0 -1
- package/build/assets/file-text-C6WYtNdV.js +0 -1
- package/build/assets/files-tab-BW_qzyAm.js +0 -1
- package/build/assets/form-control-classes-CGXBLcn1.js +0 -1
- package/build/assets/format-relative-time-ZhQD4rsl.js +0 -1
- package/build/assets/git-provider-icon-CaQ1yLPi.js +0 -1
- package/build/assets/git-repo-dropdown-CgXR6M_E.js +0 -1
- package/build/assets/git-repo-dropdown-D2Uei3CO.js +0 -1
- package/build/assets/highlighted-source-view-C_YOp8Fo.js +0 -1
- package/build/assets/home-DNzzJcMP.js +0 -1
- package/build/assets/home-aCos-5vc.js +0 -1
- package/build/assets/home-store-DgzViC3f.js +0 -1
- package/build/assets/index-home-DNzzJcMP.js +0 -1
- package/build/assets/info-CLoC1LRo.js +0 -1
- package/build/assets/install-server-modal-D7zIqNKz.js +0 -1
- package/build/assets/kebab-menu-item-content-DERMdnDv.js +0 -1
- package/build/assets/launch-5PjKeLak.js +0 -1
- package/build/assets/list-todo-BF049YaY.js +0 -1
- package/build/assets/llm-not-configured-banner-BK9z5eS0.js +0 -27
- package/build/assets/llm-settings-BLAMK2tR.js +0 -1
- package/build/assets/llm-settings-BWsbarGM.js +0 -1
- package/build/assets/llm-subscription-service-SfnEV9Uc.js +0 -1
- package/build/assets/loader-circle-D7IagAyF.js +0 -1
- package/build/assets/loading-spinner-DBgXgra0.js +0 -1
- package/build/assets/manage-backends-modal-BTqNPhzc.js +0 -1
- package/build/assets/manifest-abebca3c.js +0 -1
- package/build/assets/manifest-subpage-layout-Rn-glaxV.js +0 -1
- package/build/assets/map-provider-BK4HnqYz.js +0 -1
- package/build/assets/markdown-renderer-Cp6DlHQN.js +0 -8
- package/build/assets/mcp-BC-Ixn4T.js +0 -9
- package/build/assets/mcp-marketplace-utils-BJWJgbB6.js +0 -1
- package/build/assets/messages-CzFKrzPG.js +0 -40
- package/build/assets/modal-body-BdKfD3Hl.js +0 -1
- package/build/assets/modal-classes-D5_b5vMi.js +0 -1
- package/build/assets/modal-close-button-objukxk_.js +0 -1
- package/build/assets/mouse-pointer-click-C_gXyLyD.js +0 -1
- package/build/assets/npm-CHVHV1MC.js +0 -1
- package/build/assets/onboarding-Diw0V51A.js +0 -1
- package/build/assets/onboarding-modal-Da4yHzsA.js +0 -1
- package/build/assets/organization-service.api-BztSy69u.js +0 -1
- package/build/assets/parse-git-remote-url-BkXN9jzl.js +0 -1
- package/build/assets/pencil-49avMHlD.js +0 -1
- package/build/assets/planner-tab-CJiSpNax.js +0 -1
- package/build/assets/plugins-management-service-lHdNKWNU.js +0 -1
- package/build/assets/plus-C0BagBpV.js +0 -1
- package/build/assets/profiles-service.api-BLr7FXec.js +0 -1
- package/build/assets/providers-CWXnb7S3.js +0 -1
- package/build/assets/proxy-DYDXxtje.js +0 -1
- package/build/assets/puzzle-Bt2B1rzf.js +0 -1
- package/build/assets/recommended-automations-launcher-CcFMfJRR.js +0 -1
- package/build/assets/refresh-cw-nmcesifB.js +0 -1
- package/build/assets/root-CT4t7apy.css +0 -1
- package/build/assets/root-DnRgLKpU.js +0 -2
- package/build/assets/root-layout-2L9tr-BN.js +0 -2
- package/build/assets/schema-field-C59lVZTA.js +0 -1
- package/build/assets/sdk-section-page-BbBEQQjq.js +0 -1
- package/build/assets/search-CYSDBczG.js +0 -1
- package/build/assets/secrets-service-BtsgYSlj.js +0 -1
- package/build/assets/secrets-settings-DJ0OKa4_.js +0 -1
- package/build/assets/segmented-toggle-DiVfTZuN.js +0 -1
- package/build/assets/settings-CDqL_Uqh.js +0 -1
- package/build/assets/settings-dropdown-input-Ba1UN5Du.js +0 -1
- package/build/assets/settings-index-Cz2cKt2K.js +0 -1
- package/build/assets/settings-input-CWUEHHvS.js +0 -1
- package/build/assets/settings-list-classes-DdcLXDGn.js +0 -1
- package/build/assets/settings-modal-nEEK1Kh1.js +0 -1
- package/build/assets/settings-service.api-3yAUFcaP.js +0 -1
- package/build/assets/settings-switch-Dk9hChx1.js +0 -1
- package/build/assets/settings-utils-CxjtCSB3.js +0 -1
- package/build/assets/shared-conversation-DbAcrx3s.js +0 -1
- package/build/assets/shield-check-CiOTXxV2.js +0 -1
- package/build/assets/sidebar-layout-lrfPooIB.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-KERXfNu1.js +0 -1
- package/build/assets/sidebar-nav-link-B8lFD6Cb.js +0 -1
- package/build/assets/sidebar-store-u6pUpxJ7.js +0 -1
- package/build/assets/skill-card-pill-row-dGIUzr_b.js +0 -1
- package/build/assets/skill-icon-badge-kkOWZ89w.js +0 -1
- package/build/assets/skill-scope-DWN1PBPH.js +0 -1
- package/build/assets/skills-plugins-DFjH2Nq6.js +0 -1
- package/build/assets/skills-settings-DIHpl3ol.js +0 -2
- package/build/assets/sparkles-ntyMLnbj.js +0 -1
- package/build/assets/styled-tooltip-B6JXcsmL.js +0 -1
- package/build/assets/task-list-tab-aEJzEcHD.js +0 -1
- package/build/assets/terminal-Dch7Ty5K.js +0 -3
- package/build/assets/toggle-switch-B2MLKsgt.js +0 -1
- package/build/assets/trash-2-yZnDM4Ji.js +0 -1
- package/build/assets/typography-DB5HoCk0.js +0 -1
- package/build/assets/usage-tab-DrEtBmBT.js +0 -1
- package/build/assets/use-acp-credential-form-c8KXAa8A.js +0 -1
- package/build/assets/use-activate-agent-profile-B0p34N3q.js +0 -1
- package/build/assets/use-agent-profiles-CPIc6wLH.js +0 -1
- package/build/assets/use-can-manage-org-profiles-Dz_8Eqkv.js +0 -1
- package/build/assets/use-cloud-current-user-id-DvUVqCle.js +0 -1
- package/build/assets/use-config-C3PO4TBw.js +0 -1
- package/build/assets/use-create-conversation-DVrA_uLD.js +0 -1
- package/build/assets/use-create-secret-DbBIpaCR.js +0 -1
- package/build/assets/use-get-secrets-6PBitf54.js +0 -1
- package/build/assets/use-has-permission-CQ31Cl8j.js +0 -1
- package/build/assets/use-is-authed-2UrDIziV.js +0 -1
- package/build/assets/use-is-creating-conversation-BvYpmb3v.js +0 -1
- package/build/assets/use-launch-skill-in-chat-COnDpxCQ.js +0 -1
- package/build/assets/use-llm-profiles-diZS4FiN.js +0 -1
- package/build/assets/use-manifest-capabilities-HIWCtIUm.js +0 -1
- package/build/assets/use-onboarding-completion-Bs8PcXik.js +0 -1
- package/build/assets/use-plugins-marketplace-BCuNLFsr.js +0 -1
- package/build/assets/use-save-agent-profile-BaMNSpBV.js +0 -1
- package/build/assets/use-save-settings-BahvC2Gw.js +0 -1
- package/build/assets/use-settings-C6ZxpBDX.js +0 -1
- package/build/assets/use-settings-nav-items-Bqn69Ggw.js +0 -16
- package/build/assets/use-tracking-Bhu7gk2y.js +0 -3
- package/build/assets/use-user-conversation-BkNXpXrd.js +0 -1
- package/build/assets/useInfiniteQuery-c_OmS3lK.js +0 -1
- package/build/assets/useMutation-6ZsQCqAn.js +0 -1
- package/build/assets/useQueries-xDrGlTO_.js +0 -1
- package/build/assets/useQuery-Bs5NFz2s.js +0 -1
- package/build/assets/utils-DUD5ScdA.js +0 -1
- package/build/assets/vendor~browser-B-fae1JU.js +0 -47
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js +0 -186
- package/build/assets/vendor~files-tab-B6POTS66.js +0 -11
- package/build/assets/vendor~index-home~home~conversation-panel~conversation-53Q_U6uP.js +0 -13
- package/build/assets/vendor~root-layout-DeQACFVA.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation-bv7ooVgH.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-e8pX05xf.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-BvS6PCK2.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~mcp~automations-list~automation-templates~automation-set~bxsimjx0-D7IDevqN.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-DOPLJMH9.js +0 -48
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BOVIFA_g.js +0 -73
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js +0 -7465
- package/build/assets/verification-settings-COueVXmM.js +0 -1
- package/build/assets/wrench-C95ujnYo.js +0 -1
- package/build/assets/x-86ZCfxKY.js +0 -1
- package/build/assets/zap-DRa-r-Tf.js +0 -1
- package/dist/components/features/diff-viewer/empty-changes-message.cjs +0 -2
- package/dist/components/features/diff-viewer/empty-changes-message.cjs.map +0 -1
- package/dist/components/features/diff-viewer/empty-changes-message.js +0 -17
- package/dist/components/features/diff-viewer/empty-changes-message.js.map +0 -1
- package/dist/components/features/tips/random-tip.cjs +0 -2
- package/dist/components/features/tips/random-tip.cjs.map +0 -1
- package/dist/components/features/tips/random-tip.js +0 -41
- package/dist/components/features/tips/random-tip.js.map +0 -1
- package/dist/hooks/query/use-has-git-commits.cjs +0 -2
- package/dist/hooks/query/use-has-git-commits.cjs.map +0 -1
- package/dist/hooks/query/use-has-git-commits.d.ts +0 -25
- package/dist/hooks/query/use-has-git-commits.js +0 -31
- package/dist/hooks/query/use-has-git-commits.js.map +0 -1
- package/dist/hooks/use-has-attached-source.cjs +0 -2
- package/dist/hooks/use-has-attached-source.cjs.map +0 -1
- package/dist/hooks/use-has-attached-source.d.ts +0 -18
- package/dist/hooks/use-has-attached-source.js +0 -14
- package/dist/hooks/use-has-attached-source.js.map +0 -1
- package/dist/icons/chveron-up.cjs +0 -2
- package/dist/icons/chveron-up.cjs.map +0 -1
- package/dist/icons/chveron-up.js +0 -21
- package/dist/icons/chveron-up.js.map +0 -1
- package/dist/routes/changes-tab.cjs +0 -2
- package/dist/routes/changes-tab.cjs.map +0 -1
- package/dist/routes/changes-tab.d.ts +0 -3
- package/dist/routes/changes-tab.js +0 -64
- package/dist/routes/changes-tab.js.map +0 -1
- package/dist/utils/file-priority.cjs +0 -2
- package/dist/utils/file-priority.cjs.map +0 -1
- package/dist/utils/file-priority.d.ts +0 -27
- package/dist/utils/file-priority.js +0 -61
- package/dist/utils/file-priority.js.map +0 -1
- package/dist/utils/table-row-classes.d.ts +0 -9
- package/dist/utils/tips.cjs +0 -2
- package/dist/utils/tips.cjs.map +0 -1
- package/dist/utils/tips.js +0 -45
- package/dist/utils/tips.js.map +0 -1
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-rfV8mQ9m.js} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,bt as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{n as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-rfV8mQ9m.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js";import{t as o}from"./useInfiniteQuery-CgeUQPfs.js";import{t as s}from"./useMutation-DFnzkf6f.js";import{t as c}from"./useQuery-BXWbZBZl.js";import{a as l}from"./recommended-automations-launcher-Bw8uC4V6.js";import{Gt as u,Ht as d,It as f,M as p,Mt as m,Nt as h,O as g,R as _,j as v,k as y,n as b,qt as x,xt as S}from"./active-backend-context-DKFSMbn3.js";import{L as C,N as w,P as T,S as E,W as D,_ as O,b as k,c as A,d as j,f as ee,g as M,i as te,k as N,n as ne,o as re,s as ie,t as P,v as ae,w as oe,y as F,z as se}from"./utils-DaCIEEQP.js";import{t as ce}from"./chat-send-button-DWwR2cgI.js";import{t as I}from"./check-Cf2YoT90.js";import{t as le}from"./chevron-down-C3OQ-ehx.js";import{t as L}from"./chevron-right-CN1uUiJ1.js";import{t as ue}from"./circle-check-g5yeGMd-.js";import{a as de,i as fe,n as R,r as pe,t as me}from"./vendor~index-home~home~conversation-panel~conversation-BTyukeM-.js";import{_ as he,a as ge,c as _e,d as ve,f as ye,g as be,i as xe,l as Se,m as z,n as Ce,o as we,p as Te,r as Ee,t as De,u as Oe}from"./use-llm-configured-BI6obxsc.js";import{t as ke}from"./cloud-funnel-analytics-287iIERo.js";import{t as Ae}from"./loader-circle-nvrwthvj.js";import{t as je}from"./plus-CEKne-Yp.js";import{t as Me}from"./refresh-cw-Bh69DyYO.js";import{n as B,t as V}from"./context-menu-list-item-lVYETtY5.js";import{t as Ne}from"./loading-spinner-0L3ZTToZ.js";import{t as Pe}from"./settings-service.api-B2agVfjL.js";import{n as Fe}from"./use-settings-C5VhGpqd.js";import{t as Ie}from"./modal-backdrop-BSzNhM4r.js";import{n as Le}from"./modal-body-CMOc2tLl.js";import{r as Re}from"./base-modal-C7_BDl_U.js";import{_ as ze,n as Be,s as Ve,t as He}from"./form-control-classes-CGw40z5h.js";import{t as Ue}from"./brand-button-Dxv6PDeN.js";import{n as We}from"./navigation-context-CQZwH_tC.js";import{t as Ge}from"./navigation-link-Bxo3-4vo.js";import{t as Ke}from"./vendor~root-layout~index-home~home~conversation-panel~conversation~automation-setup-route-CjECvSl5.js";import{t as qe}from"./styled-tooltip-Dl06rkpY.js";import{c as Je,i as Ye,r as Xe,u as Ze}from"./dropdown-classes-DJe-E6MC.js";import{r as Qe}from"./settings-dropdown-input-tM0A0ipy.js";import{t as $e}from"./dist-Bl64nBZL.js";import{_ as et,c as tt,i as nt,o as rt,r as it,t as H}from"./conversation-store-Ca3ghXap.js";import{t as at}from"./modal-close-button-CkJ0Ktjj.js";import{C as ot,T as st,m as ct,t as U,w as lt}from"./agent-server-conversation-service.api-DozDKIW_.js";import{t as ut}from"./profiles-service.api-QB-T_u-g.js";import{f as dt,o as ft,s as pt,u as mt}from"./acp-providers-BKvmTf82.js";import{d as ht,f as gt,i as _t,l as vt,o as yt,s as bt}from"./conversation-state-store-a9d2fxRc.js";import{t as xt}from"./use-click-outside-element-W6Os4Nlb.js";import{t as St}from"./use-llm-profiles-djGAhTWL.js";import{n as Ct,t as wt}from"./use-agent-profiles-DWBPC0Si.js";import{a as Tt,i as Et,n as Dt,o as Ot,r as kt,t as At}from"./use-create-conversation-DwN5vv2f.js";import{a as jt,r as Mt,t as Nt}from"./use-can-manage-org-profiles-BWMahtUh.js";import{t as Pt}from"./skills-B0IliMxw.js";import{r as Ft}from"./format-model-name-BNPKVsIq.js";import{c as It}from"./vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-DXqM7vqB.js";import{a as Lt,n as Rt,s as zt}from"./home-store-Dl1dPE58.js";import{t as Bt}from"./checkmark-XZyokq_Y.js";import{n as Vt,r as W}from"./typography-SgFy466J.js";import{n as Ht,t as Ut}from"./use-activate-agent-profile-B2NS8nA5.js";import{J as Wt,N as Gt,S as Kt,U as qt,X as Jt,Y as G,Z as K,b as Yt,h as Xt,i as Zt,l as Qt,o as $t,p as en,r as tn,s as nn,t as rn}from"./markdown-renderer-Cb2sBWtV.js";import{i as an,r as on,t as sn}from"./skill-scope-CV1dkAbW.js";import{t as cn}from"./syntax-highlighter-BGDg_7w9.js";import{n as ln,t as un}from"./link-external-BNZzCM1I.js";import{t as dn}from"./merge-agent-profile-save-input-WcFmQVKK.js";import{t as fn}from"./settings-gear-DaJj6Pde.js";import{t as pn}from"./u-robot-BvAOA2ZD.js";import{a as mn,i as hn,n as gn,o as _n,r as vn,s as yn}from"./git-repo-dropdown-ai8qaNkD.js";var q=e(t(),1),bn={"image/png":`png`,"image/jpeg":`jpg`,"image/jpg":`jpg`,"image/gif":`gif`,"image/webp":`webp`,"image/bmp":`bmp`};function xn(e){if(e.name.trim())return e;let t=bn[e.type]??(e.type.startsWith(`image/`)?`png`:`bin`);return new File([e],`pasted-image-${Date.now()}.${t}`,{type:e.type,lastModified:e.lastModified})}function Sn(e,t){let n=new Set(t),r=[],i=[];for(let t of e)n.has(t.name)?i.push(t):r.push(t);return{imagesToEmbed:r,imagesAsFiles:i}}function Cn(e){let t=Array.from(e.files);if(t.length>0)return t.map(xn);let n=[];for(let t=0;t<e.items.length;t+=1){let r=e.items[t];if(r.kind!==`file`)continue;let i=r.getAsFile();i&&n.push(xn(i))}return n}var wn=e=>e?(e.innerText||e.textContent||``).trim()===``:!0,Tn=e=>{e&&wn(e)&&(e.innerHTML=``,e.textContent=``)},J=e=>e?.innerText||``,En=e=>{e&&(e.textContent=``)},Dn=e=>{e&&(e.value=``)},On=e=>{if(!e)return;let t=window.getSelection();if(!t||t.rangeCount===0)return;let n=t.getRangeAt(0);if(!n.getBoundingClientRect||!e.getBoundingClientRect)return;let r=n.getBoundingClientRect(),i=e.getBoundingClientRect();r.bottom>i.bottom&&(e.scrollTop=e.scrollHeight-e.clientHeight)},kn=e=>{if(!e)return;e.focus();let t=window.getSelection();if(!t)return;let n=document.createRange();n.selectNodeContents(e),n.collapse(!1),t.removeAllRanges(),t.addRange(n),On(e)},An=e=>e.startsWith(`task-`),jn=500,Y=`oh:home-prompt-draft`,Mn=(e,t)=>{let{state:n,setDraftMessage:r}=tt(e??``),i=(0,q.useRef)(null),a=(0,q.useRef)(!1),[o,s]=(0,q.useState)(!1),c=(0,q.useRef)(e),l=(0,q.useRef)(!0),u=(0,q.useRef)(``);(0,q.useEffect)(()=>{if(!e)return;let n=c.current,r=l.current;c.current=e,l.current=!1,i.current&&=(clearTimeout(i.current),null);let o=t.current;if(!r&&n&&n!==e){let t=An(n),r=!An(e);if(t&&r&&o){let t=J(o).trim();if(t){rt(e,{draftMessage:t}),a.current=!0,s(!0);return}}}o&&(o.textContent=``),a.current=!1,s(!1)},[e,t]),(0,q.useEffect)(()=>{if(a.current)return;let n=t.current;if(!n)return;if(!e){try{let e=sessionStorage.getItem(Y);if(e&&J(n).trim()===``){n.textContent=e;let t=window.getSelection(),r=document.createRange();r.selectNodeContents(n),r.collapse(!1),t?.removeAllRanges(),t?.addRange(r),u.current=e}}catch{}a.current=!0,s(!0);return}let{draftMessage:r}=nt(e);r&&J(n).trim()===``&&(n.textContent=r,kn(n)),a.current=!0,s(!0)},[t,e]);let d=(0,q.useCallback)(()=>{if(i.current&&clearTimeout(i.current),!e){let e=t.current;if(e){let t=J(e).trim();u.current=t;try{t?sessionStorage.setItem(Y,t):sessionStorage.removeItem(Y)}catch{}}return}let a=e;i.current=setTimeout(()=>{if(a!==c.current)return;let e=t.current;if(!e)return;let i=J(e).trim();i!==(n.draftMessage||``)&&r(i||null)},jn)},[t,n.draftMessage,r,e]),f=(0,q.useCallback)(()=>{if(i.current&&=(clearTimeout(i.current),null),!e){try{sessionStorage.removeItem(Y)}catch{}return}r(null)},[e,r]);return(0,q.useEffect)(()=>()=>{if(i.current&&clearTimeout(i.current),!c.current){let e=u.current;try{e?sessionStorage.getItem(`oh:home-prompt-draft`)!==null&&sessionStorage.setItem(Y,e):sessionStorage.removeItem(Y)}catch{}}},[]),{saveDraft:d,clearDraft:f,isRestored:o,hasDraft:!!n.draftMessage}},Nn=()=>{let e=(0,q.useRef)(null),{conversationId:t}=K(),{messageToSend:n,messageRestoreIfEmpty:r,hasRightPanelToggled:i,setMessageToSend:a,clearMessageRestoreIfEmpty:o,setIsRightPanelShown:s}=H(),{saveDraft:c,clearDraft:l}=Mn(t,e),u=t?n:null;return(0,q.useEffect)(()=>{!t||!r||(J(e.current).trim().length===0&&a(r.text),o())},[t,r,a,o]),(0,q.useEffect)(()=>{t&&e.current&&(a(J(e.current)),s(i))},[t,i,a,s]),{chatInputRef:e,messageToSend:u,checkIsContentEmpty:(0,q.useCallback)(()=>wn(e.current),[]),clearEmptyContentHandler:(0,q.useCallback)(()=>{Tn(e.current)},[]),getCurrentMessage:(0,q.useCallback)(()=>J(e.current),[]),saveDraft:c,clearDraft:l}},Pn=e=>{let t=(0,q.useRef)(null),n=(0,q.useRef)(null),[r,i]=(0,q.useState)(!1),a=(0,q.useCallback)((t,n)=>{e&&t.length>0&&e(t,n)},[e]);return(0,q.useEffect)(()=>{let e=e=>{let t=e.detail.files;t&&t.length>0&&a(t,{fromPaste:!0})};return document.addEventListener(`pasteFiles`,e),()=>{document.removeEventListener(`pasteFiles`,e)}},[a]),{fileInputRef:t,chatContainerRef:n,isDragOver:r,handleFileIconClick:(0,q.useCallback)(e=>{!e&&t.current&&t.current.click()},[]),handleFileInputChange:(0,q.useCallback)(e=>{a(Array.from(e.target.files||[]))},[a]),handleDragOver:(0,q.useCallback)((e,t)=>{t||(e.preventDefault(),i(!0))},[]),handleDragLeave:(0,q.useCallback)((e,t)=>{t||n.current?.contains(e.relatedTarget)||(e.preventDefault(),i(!1))},[]),handleDrop:(0,q.useCallback)((e,t)=>{t||(e.preventDefault(),i(!1),a(Array.from(e.dataTransfer.files)))},[a])}},Fn=2,In=120,Ln=()=>{let e=document.getElementById(`resize-grip`)?.parentElement??null;return e?e.getBoundingClientRect().bottom>=window.innerHeight-In:!0},Rn=({elementRef:e,minHeight:t,maxHeight:n,onGripDragStart:r,onGripDragEnd:i,onHeightChange:a,onReachedMinHeight:o})=>{let s=e=>`touches`in e&&e.touches.length>0?e.touches[0].clientY:e.clientY,c=(e,t)=>{let n=document.getElementById(`resize-grip`);n&&(n.addEventListener(`touchmove`,e,{passive:!1,capture:!0}),n.addEventListener(`touchend`,t,{capture:!0}))},l=(e,t)=>{document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t)},u=u=>{let d=O(),f=e.current?.offsetHeight||t,p=!1,m=i=>{if(i.preventDefault(),!p){let e=s(i);if(Math.abs(e-u)<Fn)return;p=!0,r?.()}let c=s(i)-u,l=Math.max(t,Math.min(n,f-c)),d=e.current;if(!d)return;d.style.height=`${l}px`;let m=d.scrollHeight>l||l>=n;d.style.overflowY=m?`auto`:`hidden`,a&&a(l),o&&Math.abs(l-t)<=1.5&&o()},h=()=>{if(p&&i?.(),d){let e=document.getElementById(`resize-grip`);if(!e)return;e.removeEventListener(`mousemove`,m),e.removeEventListener(`mouseup`,h),e.removeEventListener(`touchmove`,m),e.removeEventListener(`touchend`,h)}else document.removeEventListener(`mousemove`,m),document.removeEventListener(`mouseup`,h),document.removeEventListener(`touchmove`,m),document.removeEventListener(`touchend`,h)};d?c(m,h):l(m,h)};return{handleGripMouseDown:e=>{e.preventDefault(),Ln()&&u(e.clientY)},handleGripTouchStart:e=>{e.preventDefault(),Ln()&&u(e.touches[0].clientY)}}},zn=20,Bn=120,Vn=20,Hn=50,Un=()=>({hasUserResizedRef:(0,q.useRef)(!1),manualHeightRef:(0,q.useRef)(null)}),Wn=(e,t,n)=>{let{minHeight:r,maxHeight:i}=n,a=Math.max(r,Math.min(t,i));return e.style.setProperty(`height`,`${a}px`),e.style.setProperty(`overflow-y`,a>=i?`auto`:`hidden`),a},Gn=(e,t,n=Hn)=>e>t+n,Kn=(e,t)=>{let n=M(e,t),r=n;e.style.setProperty(`height`,`auto`);let i=e.scrollHeight;return k(e,n),{currentHeight:r,currentStyleHeight:n,contentHeight:i}},qn=(e,t)=>{let{finalHeight:n,overflowY:r}=t,i=e;i.style.height=`${n}px`,i.style.overflowY=r},X=(e,t)=>{t&&t(e)},Jn=(e,t={})=>{let n=(0,q.useRef)(null),{minHeight:r=zn,maxHeight:i=Bn,enableManualResize:a=!1,value:o,onValueApplied:s,onGripDragStart:c,onGripDragEnd:l,onHeightChange:u}=t,d={minHeight:r,maxHeight:i},{hasUserResizedRef:f,manualHeightRef:p}=Un(),m=()=>{f.current=!1,p.current=null},h=(0,q.useCallback)(e=>{u?.(e),f.current&&(p.current=e)},[u]),g=(0,q.useCallback)(()=>{f.current=!0,c?.()},[c]),_=(0,q.useCallback)(()=>{let t=e.current;if(t){let e=M(t,r);Math.abs(e-r)<=1.5&&(f.current=!1,p.current=null)}l?.()},[r,l]),{handleGripMouseDown:v,handleGripTouchStart:y}=Rn({elementRef:e,minHeight:r,maxHeight:i,onGripDragStart:a?g:void 0,onGripDragEnd:a?_:void 0,onHeightChange:h}),b=(0,q.useCallback)((e,t,n)=>{if(f.current&&t>r){qn(e,{finalHeight:t,overflowY:`hidden`}),X(t,u);return}let i=Math.max(n,r);qn(e,{finalHeight:i,overflowY:`hidden`}),X(i,u)},[r,u]),x=(0,q.useCallback)((e,t,n)=>{if(!Gn(t,n)){let t=Math.max(n,r);qn(e,{finalHeight:t,overflowY:`hidden`}),X(t,u);return}qn(e,{finalHeight:t,overflowY:`auto`}),X(t,u)},[r,u]),S=(0,q.useCallback)(e=>{qn(e,{finalHeight:i,overflowY:`auto`}),X(i,u)},[i,u]),C=(0,q.useCallback)(()=>{let t=e.current;if(!t)return;if((t.textContent??``).trim().length===0&&f.current&&p.current&&p.current>r+1.5){k(t,p.current),t.style.overflowY=`hidden`,X(p.current,u);return}let{currentHeight:n,contentHeight:a}=Kn(t,r);if(a<=n){b(t,n,a);return}if(a<=i){x(t,n,a);return}S(t)},[e,r,i,u,b,x,S]),w=(0,q.useCallback)(()=>{n.current&&cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{n.current=null,C()})},[C]);return(0,q.useEffect)(()=>{if(o===void 0)return;let t=0,n=()=>{let t=e.current;return t?(t.textContent=o.text,w(),kn(t),s?.(),!0):!1};return n()||(t=requestAnimationFrame(()=>{n()})),()=>{t&&cancelAnimationFrame(t)}},[o,w,s]),(0,q.useEffect)(()=>{w()},[w]),{smartResize:w,handleGripMouseDown:v,handleGripTouchStart:y,increaseHeightForEmptyContent:()=>{let t=e.current;if(!t)return;let n=M(t,r),a=Math.min(n+Vn,i);if(a>n){let e=Wn(t,a,d);X(e,u),f.current=!0,p.current=e}},resetManualResize:m}},Yn=(e,t)=>{let[n,r]=(0,q.useState)(!1),[i,a]=(0,q.useState)(!1),[o,s]=(0,q.useState)(!0),{setShouldHideSuggestions:c,clearMessageToSend:l}=H(),u=(0,q.useRef)(null),d=(0,q.useRef)(!1);(0,q.useEffect)(()=>{let e=()=>s(Ln());return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let f=(0,q.useCallback)(()=>{a(!0)},[]),p=(0,q.useCallback)(()=>{a(!1),d.current=!0},[]),m=(0,q.useCallback)(e=>{if(o){if(d.current){d.current=!1,e.preventDefault(),e.stopPropagation();return}e.stopPropagation(),r(e=>!e)}},[o]),{smartResize:h,handleGripMouseDown:g,handleGripTouchStart:_,increaseHeightForEmptyContent:v,resetManualResize:y}=Jn(e,{minHeight:20,maxHeight:400,onHeightChange:(0,q.useCallback)(e=>{c(e>T.HEIGHT_THRESHOLD)},[c]),onGripDragStart:f,onGripDragEnd:p,value:t??void 0,onValueApplied:l,enableManualResize:!0});return{gripRef:u,isGripVisible:n,isGripDragging:i,canResize:o,handleTopEdgeClick:m,smartResize:h,handleGripMouseDown:g,handleGripTouchStart:_,increaseHeightForEmptyContent:v,resetManualResize:y}},Xn=(e,t,n,r,i,a,o)=>({handleInput:(0,q.useCallback)(()=>{t(),e.current&&Tn(e.current),On(e.current)},[t,e]),handlePaste:(0,q.useCallback)(e=>{e.preventDefault();let n=Cn(e.clipboardData);if(n.length>0){let e=new CustomEvent(`pasteFiles`,{detail:{files:n}});document.dispatchEvent(e);return}let r=e.clipboardData.getData(`text/plain`);r&&(document.execCommand(`insertText`,!1,r),setTimeout(t,0))},[t]),handleKeyDown:(0,q.useCallback)((e,t,i)=>{if(e.key===`Enter`&&!e.nativeEvent.isComposing){if(r()){e.preventDefault(),n();return}!ae()&&!e.shiftKey&&!t&&(e.preventDefault(),i())}},[r,n]),handleBlur:(0,q.useCallback)(()=>{e.current&&Tn(e.current),o&&o()},[e,o]),handleFocus:(0,q.useCallback)(()=>{a&&a()},[a])}),Zn=(e,t,n,r,i)=>({handleSubmit:(0,q.useCallback)(()=>{let a=e.current?.innerText||``,o=a.trim(),{images:s,files:c}=H.getState(),l=s.length>0||c.length>0;!o&&!l||(r(a),En(e.current),Dn(t.current),n(),i?.())},[e,t,n,r,i]),handleStop:(0,q.useCallback)(e=>{e&&e()},[])}),Qn=()=>an(G().data?.selected_workspace??void 0);function $n(e){let t=window.getSelection();if(!t||t.rangeCount===0)return-1;let n=t.getRangeAt(0),r=n.cloneRange();return r.selectNodeContents(e),r.setEnd(n.startContainer,n.startOffset),r.toString().length}var er=e=>{let{data:t,isLoading:n}=Qn(),r=b().backend.kind===`cloud`,{data:i,isLoading:a}=St(),[o,s]=(0,q.useState)(!1),[c,l]=(0,q.useState)(``),[u,d]=(0,q.useState)(`command`),[f,p]=(0,q.useState)(0),m=(0,q.useMemo)(()=>{let e=w.filter(e=>e.command===`/new`?r:!0);return n||!t||t.forEach(t=>{let n=(t.triggers||[]).filter(e=>e.startsWith(`/`));n.length>0?n.forEach(n=>{e.push({skill:t,command:n})}):t.type===`agentskills`&&e.push({skill:t,command:`/${t.name}`})}),e},[t,n,r]),h=(0,q.useMemo)(()=>(i?.profiles??[]).map(e=>{let t=`${se} ${e.name}`;return{command:t,skill:{name:e.name,type:`agentskills`,source:null,content:e.model?`Switch to ${Ft(e.model)}`:`Switch to this LLM profile`,triggers:[t]}}}),[i?.profiles]),g=(0,q.useMemo)(()=>{let e=u===`model-profile`?h:m;if(!c)return e;let t=c.toLowerCase();return e.filter(e=>e.command.toLowerCase().includes(t)||e.skill.name.toLowerCase().includes(t)||e.skill.content?.toLowerCase().includes(t))},[u,h,m,c]),_=(0,q.useRef)(o);_.current=o;let v=(0,q.useRef)(g);v.current=g;let y=(0,q.useRef)(f);y.current=f,(0,q.useEffect)(()=>{p(0)},[c]);let x=(0,q.useRef)(null),S=(0,q.useCallback)(()=>{let t=e.current;if(!t)return null;let n=(t.innerText||``).replace(/[\n\r]+$/,``),r=$n(t);if(r<0)return null;let i=n.slice(0,r),a=i.match(/(^|\s)(\/model(?:\s+\S*)?)$/);if(a){let e=a[2],t=i.length-e.length,o=n.slice(r).match(/^\S*/),s=r+(o?o[0].length:0);return{kind:`model-profile`,text:e.replace(/^\/model(?:\s+)?/,``),start:t,end:s}}let o=i.match(/(^|\s)(\/\S*)$/);if(!o)return null;let s=o[2],c=i.length-s.length,l=n.slice(r).match(/^\S*/),u=r+(l?l[0].length:0);return{kind:`command`,text:s.slice(1),start:c,end:u}},[e]),C=(0,q.useCallback)(()=>{let e=S(),t=e?.kind===`model-profile`?h.length>0||a:m.length>0;e!==null&&t?(d(e.kind),l(e.text),x.current={start:e.start,end:e.end},s(!0)):(s(!1),l(``),d(`command`),x.current=null)},[S,a,h.length,m.length]),T=(0,q.useCallback)(t=>{let n=e.current;if(!n)return;let r=x.current,i=(n.innerText||``).replace(/[\n\r]+$/,``),a=`${t.command} `;if(r){n.textContent=i.slice(0,r.start)+a+i.slice(r.end);let e=r.start+a.length,t=n.firstChild;if(t){let n=document.createRange(),r=window.getSelection(),i=Math.min(e,t.textContent.length);n.setStart(t,i),n.collapse(!0),r?.removeAllRanges(),r?.addRange(n)}}else{n.textContent=a;let e=document.createRange(),t=window.getSelection();e.selectNodeContents(n),e.collapse(!1),t?.removeAllRanges(),t?.addRange(e)}s(!1),l(``),d(`command`),p(0),x.current=null,n.dispatchEvent(new InputEvent(`input`,{bubbles:!0})),n.focus()},[e]);return{isMenuOpen:o,filteredItems:g,selectedIndex:f,updateSlashMenu:C,selectItem:T,handleSlashKeyDown:(0,q.useCallback)(e=>{let t=v.current;if(!_.current||t.length===0)return!1;switch(e.key){case`ArrowDown`:return e.preventDefault(),p(e=>e<t.length-1?e+1:0),!0;case`ArrowUp`:return e.preventDefault(),p(e=>e>0?e-1:t.length-1),!0;case`Enter`:case`Tab`:{let n=t[y.current];return n?(e.preventDefault(),T(n),!0):!1}case`Escape`:return e.preventDefault(),s(!1),!0;case`ArrowLeft`:case`ArrowRight`:case`Home`:case`End`:return s(!1),!1;default:return!1}},[T]),closeMenu:(0,q.useCallback)(()=>s(!1),[])}},Z=r();function tr({gripRef:e,isGripVisible:t,isGripDragging:n,canResize:r,handleTopEdgeClick:i,handleGripMouseDown:a,handleGripTouchStart:o}){return(0,Z.jsxs)(`div`,{className:P(`absolute top-0 left-0 w-full h-3 z-20 group`,!r&&`pointer-events-none`),id:`resize-grip`,onClick:r?i:void 0,children:[r&&(0,Z.jsx)(`div`,{className:`absolute inset-0 z-[1] cursor-ns-resize select-none`,onMouseDown:a,onTouchStart:o,"aria-hidden":!0}),(0,Z.jsx)(`div`,{ref:e,className:P(`pointer-events-none absolute top-0 left-0 w-full h-px bg-white z-[2] transition-opacity duration-200`,!r&&`opacity-0`,r&&(t||n?`opacity-100`:`opacity-0 group-hover:opacity-100`))})]})}var nr=e=>(0,Z.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:[(0,Z.jsx)(`path`,{d:`M15.5 10C16.3284 10 17 9.32843 17 8.5C17 7.67157 16.3284 7 15.5 7C14.6716 7 14 7.67157 14 8.5C14 9.32843 14.6716 10 15.5 10Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M3 5C3 3.89543 3.89543 3 5 3H19C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5ZM19 5H5V12.9194L8.37534 10.2191C8.74056 9.92696 9.25951 9.92696 9.62473 10.2191L13.9258 13.66L15.2929 12.2929C15.6835 11.9024 16.3166 11.9024 16.7071 12.2929L19 14.5857V5ZM5 19H19V17.4142L16 14.4142L14.7071 15.7071C14.3468 16.0674 13.7732 16.0992 13.3753 15.7809L9.00004 12.2806L5 15.4807V19Z`,fill:`currentColor`})]}),rr=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:17,height:17,viewBox:`0 0 17 17`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{d:`M14.2541 0.99075C15.0629 0.811957 15.8642 1.32275 16.0432 2.13138C16.222 2.94015 15.7113 3.74145 14.9026 3.92044C10.5163 4.8902 8.31751 8.22203 8.09593 11.8745L10.343 9.62942C10.863 9.10947 11.7057 9.10867 12.2258 9.62845C12.7459 10.1486 12.7459 10.9921 12.2258 11.5122L7.52073 16.2173C7.03316 16.7049 6.26163 16.7357 5.73851 16.3091L5.63694 16.2173L0.93089 11.5122C0.411068 10.9922 0.411047 10.1485 0.93089 9.62845C1.45095 9.10851 2.29457 9.10859 2.81468 9.62845L5.09691 11.9107C5.32362 7.06867 8.20704 2.32786 14.2541 0.99075Z`,fill:`currentColor`})});function ir(){let{t:e}=a(`openhands`);return(0,Z.jsx)(`div`,{className:`drag-over`,children:(0,Z.jsxs)(`div`,{className:`drag-over-content-wrapper`,children:[(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(nr,{width:36,height:36,className:`rotate-[-27deg] absolute top-[-40px] left-[-10px]`}),(0,Z.jsx)(rr,{width:16,height:16,className:`absolute top-[-16px] left-[-20px]`})]}),(0,Z.jsx)(`div`,{className:`drag-over-content`,children:(0,Z.jsx)(`p`,{children:e(D.COMMON$DROP_YOUR_FILES_HERE)})})]})})}function ar({onClick:e}){return(0,Z.jsx)(`button`,{type:`button`,onClick:e,className:P(`z-10 flex w-4 h-4 rounded-full items-center justify-center bg-[var(--oh-surface)] hover:bg-[var(--oh-muted)] cursor-pointer absolute top-1 right-1 opacity-0 group-hover:opacity-100 transition-opacity duration-200`,O()&&`opacity-100`),children:(0,Z.jsx)(_e,{width:10,height:10,color:`#ffffff`})})}function or({file:e,onRemove:t,isLoading:n=!1}){let r=A(e.name);return(0,Z.jsxs)(`div`,{className:`group flex gap-2 rounded-lg bg-[var(--oh-interactive-hover)] max-w-[160px] px-3 py-1 relative`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col justify-center gap-0.25`,children:[(0,Z.jsx)(ar,{onClick:t}),(0,Z.jsx)(`div`,{className:`flex items-center gap-2 w-full`,children:(0,Z.jsx)(`span`,{className:P(`text-sm font-normal leading-5 flex-1 max-w-[136px] truncate`,n?`max-w-[108px] text-[var(--oh-muted)]`:`text-white`),children:e.name})}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(cn,{width:12,height:12,color:`var(--oh-muted)`}),(0,Z.jsx)(`span`,{className:`text-[9px] font-normal leading-5 text-[var(--oh-muted)]`,children:r})]})]}),n&&(0,Z.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,Z.jsx)(Ae,{className:`animate-spin w-5 h-5`,color:`white`})})]})}function sr({active:e,onToggle:t}){let{t:n}=a(`openhands`),r=n(D.CHAT_INTERFACE$UPLOAD_IMAGES_AS_FILES),i=n(D.CHAT_INTERFACE$DO_NOT_UPLOAD_AS_FILE),o=e?i:r;return(0,Z.jsx)(`div`,{className:`absolute bottom-2 left-1 z-10 h-4 w-4`,children:(0,Z.jsx)(qe,{content:o,placement:`bottom`,offset:10,shouldFlip:!1,tooltipClassName:`bg-white text-black text-xs font-medium leading-5`,children:(0,Z.jsx)(`button`,{type:`button`,"aria-label":o,"aria-pressed":e,onClick:e=>{e.stopPropagation(),t()},className:P(`flex h-4 w-4 items-center justify-center rounded-full bg-[var(--oh-surface)] text-[var(--oh-foreground)] transition-colors cursor-pointer hover:bg-[var(--oh-muted)]`),children:e?(0,Z.jsx)(I,{width:10,height:10,strokeWidth:2.5,"aria-hidden":!0}):(0,Z.jsx)(fe,{width:10,height:10,strokeWidth:2.5,"aria-hidden":!0})})})})}function cr({image:e,onRemove:t,isLoading:n=!1,showUploadAsFileToggle:r=!1,uploadAsFileActive:i=!1,onToggleUploadAsFile:a}){let[o,s]=q.useState(``);return q.useEffect(()=>{let t=URL.createObjectURL(e);return s(t),()=>{URL.revokeObjectURL(t)}},[e]),(0,Z.jsxs)(`div`,{className:`group relative flex h-[49px] w-[51px] min-h-[49px] min-w-[51px] items-center justify-center rounded-lg bg-[var(--oh-interactive-hover)]`,children:[n?(0,Z.jsx)(Ae,{className:`animate-spin w-5 h-5`,color:`white`}):o&&(0,Z.jsx)(`img`,{src:o,alt:e.name,className:`h-full w-full rounded-lg object-cover`}),(0,Z.jsx)(ar,{onClick:t}),r&&a&&(0,Z.jsx)(sr,{active:i,onToggle:a})]})}function lr(){let{images:e,files:t,loadingFiles:n,loadingImages:r,imagesMarkedUploadAsFile:i,removeFile:a,removeImage:o,toggleImageUploadAsFile:s}=H(),c=e=>{a(e)},l=e=>{o(e)};return e.length===0&&t.length===0&&n.length===0&&r.length===0?null:(0,Z.jsx)(`div`,{className:`flex w-full flex-col gap-2 pb-4`,children:(0,Z.jsxs)(`div`,{className:`flex w-full items-center gap-4 overflow-x-auto custom-scrollbar`,children:[t.map((e,t)=>(0,Z.jsx)(or,{file:e,onRemove:()=>c(t),isLoading:n.includes(e.name)},`file-${t}-${e.name}`)),n.map((e,t)=>(0,Z.jsx)(or,{file:new File([],e),onRemove:()=>{},isLoading:!0},`loading-file-${t}-${e}`)),e.map((e,t)=>(0,Z.jsx)(cr,{image:e,onRemove:()=>l(t),isLoading:r.includes(e.name),showUploadAsFileToggle:!0,uploadAsFileActive:i.includes(e.name),onToggleUploadAsFile:()=>s(e.name)},`image-${t}-${e.name}`)),r.map((e,t)=>(0,Z.jsx)(cr,{image:new File([],e),onRemove:()=>{},isLoading:!0,showUploadAsFileToggle:!0,uploadAsFileActive:i.includes(e),onToggleUploadAsFile:()=>s(e)},`loading-image-${t}-${e}`))]})})}function ur({chatInputRef:e,disabled:t=!1,onInput:n,onPaste:r,onKeyDown:i,onFocus:o,onBlur:s}){let{t:c}=a(`openhands`),l=H(e=>e.conversationMode)===`plan`;return q.useEffect(()=>{t||kn(e.current)},[]),(0,Z.jsx)(`div`,{className:`box-border content-stretch flex flex-row items-center justify-start min-h-6 p-0 relative shrink-0 flex-1`,"data-name":`Text & caret`,children:(0,Z.jsx)(`div`,{className:`basis-0 flex flex-col font-normal grow justify-center leading-[0] min-h-px min-w-px overflow-ellipsis overflow-hidden relative shrink-0 text-[var(--oh-text-tertiary)] text-[16px] text-left`,children:(0,Z.jsx)(`div`,{ref:e,className:P(`chat-input bg-transparent text-white text-[16px] font-normal leading-[20px] outline-none resize-none custom-scrollbar min-h-[20px] max-h-[400px] [text-overflow:inherit] [text-wrap-mode:inherit] [white-space-collapse:inherit] block whitespace-pre-wrap`,t&&`cursor-not-allowed opacity-50`),contentEditable:!t,"data-placeholder":c(l?D.COMMON$LET_S_WORK_ON_A_PLAN:D.SUGGESTIONS$WHAT_TO_BUILD),"data-testid":`chat-input`,onInput:n,onPaste:r,onKeyDown:i,onFocus:o,onBlur:s})})})}function dr({chatInputRef:e,isNewConversationPending:t=!1,onInput:n,onPaste:r,onKeyDown:i,onFocus:a,onBlur:o}){return(0,Z.jsx)(`div`,{className:`box-border content-stretch flex flex-row items-end justify-between p-0 relative shrink-0 w-full pb-[18px] gap-2`,children:(0,Z.jsx)(`div`,{className:`basis-0 box-border content-stretch flex flex-row gap-4 grow items-end justify-start min-h-px min-w-px p-0 relative shrink-0`,children:(0,Z.jsx)(ur,{chatInputRef:e,disabled:t,onInput:n,onPaste:r,onKeyDown:i,onFocus:a,onBlur:o})})})}var fr=e(n(),1),pr=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{d:`M9 6C9.55228 6 10 6.44772 10 7V17C10 17.5523 9.55228 18 9 18C8.44772 18 8 17.5523 8 17V7C8 6.44772 8.44772 6 9 6ZM15 6C15.5523 6 16 6.44772 16 7V17C16 17.5523 15.5523 18 15 18C14.4477 18 14 17.5523 14 17V7C14 6.44772 14.4477 6 15 6Z`,fill:`currentColor`})});function mr({handleStop:e}){return(0,Z.jsx)(`button`,{type:`button`,onClick:e,"data-testid":`stop-button`,className:`cursor-pointer`,children:(0,Z.jsx)(pr,{className:`block max-w-none w-4 h-4 text-current`})})}var hr=e=>(0,Z.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Z.jsx)(`path`,{d:`M15 11H13V7C13 6.73478 12.8946 6.48043 12.7071 6.29289C12.5196 6.10536 12.2652 6 12 6C11.7348 6 11.4804 6.10536 11.2929 6.29289C11.1054 6.48043 11 6.73478 11 7V12C11 12.2652 11.1054 12.5196 11.2929 12.7071C11.4804 12.8946 11.7348 13 12 13H15C15.2652 13 15.5196 12.8946 15.7071 12.7071C15.8946 12.5196 16 12.2652 16 12C16 11.7348 15.8946 11.4804 15.7071 11.2929C15.5196 11.1054 15.2652 11 15 11ZM12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z`,fill:`currentColor`})}),gr=e=>(0,Z.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Z.jsx)(`path`,{d:`M8 8.37911C8 7.31633 9.15785 6.65415 10.0798 7.18966L16.3139 10.8105C17.2287 11.3419 17.2287 12.6581 16.3139 13.1895L10.0798 16.8103C9.15785 17.3459 8 16.6837 8 15.6209V8.37911Z`,fill:`currentColor`})});function _r({onAgentResumed:e,disabled:t=!1}){return(0,Z.jsx)(`button`,{type:`button`,onClick:e,"data-testid":`play-button`,disabled:t,className:P(`cursor-pointer`,t&&`cursor-not-allowed`),children:(0,Z.jsx)(gr,{className:`block max-w-none w-4 h-4 text-current`})})}function vr(){return(0,Z.jsx)(`div`,{"data-testid":`agent-loading-spinner`,children:(0,Z.jsx)(Ae,{className:`animate-spin w-4 h-4 text-current`})})}function yr(){let e=$t();return e?e.connectionState:`CLOSED`}var br=et()((e,t)=>({byTaskId:{},setPendingTaskAttachments:(t,n)=>e(e=>({byTaskId:{...e.byTaskId,[t]:n}})),consumePendingTaskAttachments:n=>{let r=t().byTaskId[n];return r?(e(e=>{let{[n]:t,...r}=e.byTaskId;return{byTaskId:r}}),r):null}}));function xr(e,t){br.getState().setPendingTaskAttachments(e,t)}function Sr(e){return br.getState().consumePendingTaskAttachments(e)}var Cr=e=>new Promise((t,n)=>{let r=new FileReader;r.onloadend=()=>{t(r.result)},r.onerror=n,r.readAsDataURL(e)}),wr=3*1024*1024,Tr=3*1024*1024;function Er(e){let t=e.filter(e=>e.size>wr);if(t.length>0){let e=t.map(e=>e.name);return{isValid:!1,errorMessage:`Files exceeding 3MB are not allowed: ${e.join(`, `)}`,oversizedFiles:e}}return{isValid:!0}}function Dr(e,t=[]){let n=t.reduce((e,t)=>e+t.size,0)+e.reduce((e,t)=>e+t.size,0);return n>Tr?{isValid:!1,errorMessage:`Total file size would be ${(n/(1024*1024)).toFixed(1)}MB, exceeding the 3MB limit. Please select fewer or smaller files.`}:{isValid:!0}}function Or(e,t=[]){let n=Er(e);return n.isValid?Dr(e,t):n}async function kr(e){let{conversationId:t,content:n,images:r,files:i,imagesMarkedUploadAsFile:a,t:o}=e,{imagesToEmbed:s,imagesAsFiles:c}=Sn(r,a),l=[...i,...c],u=Or([...s,...l]);if(!u.isValid)throw Error(u.errorMessage??`Invalid attachments`);let d=await Promise.all(s.map(e=>Cr(e))),f=await yt(t),{skipped_files:p,uploaded_files:h}=l.length>0?await bt(t,l):{skipped_files:[],uploaded_files:[]};p.forEach(e=>m(e.reason));let g=`${o(D.CHAT_INTERFACE$AUGMENTED_PROMPT_FILES_TITLE)}: ${h.join(`
|
|
2
|
+
|
|
3
|
+
`)}`,_=h.length>0?`${n}\n\n${g}`:n,v=new Date().toISOString(),y={role:`user`,content:[{type:`text`,text:_}]};return d.length>0&&y.content.push({type:`image`,image_urls:d}),await U.sendMessage(t,y,f),{text:n,content:_,imageUrls:d,fileUrls:h,timestamp:v}}async function Ar(e,t){let n=Sr(e);if(n)try{await x(),await kr({conversationId:t,content:n.content,images:n.images,files:n.files,imagesMarkedUploadAsFile:n.imagesMarkedUploadAsFile,t:u.getFixedT(null,d)})}catch(e){throw m(e instanceof Error?e.message:null),e}}var jr=new Map,Mr=null;function Nr(e,t){jr.set(e,t)}function Pr(e){jr.delete(e)}function Fr(e,t){Mr={fromConversationId:e,toConversationId:t}}function Ir(e){if(Mr?.toConversationId!==e)return null;let t=Mr;return Mr=null,t}function Lr(e,t){return t===e?!0:jr.get(e)===t}var Rr=(e,t)=>{let n=e.request.plugins?.map(st);if(!n?.length)return;let r=ot(t);lt(t,{...r,selected_repository:r?.selected_repository??e.request.selected_repository??null,selected_branch:r?.selected_branch??e.request.selected_branch??null,git_provider:r?.git_provider??e.request.git_provider??null,plugins:n})},zr=()=>{let{conversationId:e}=K(),t=!!e&&e.startsWith(`task-`),n=t?e.replace(`task-`,``):null,r=c({queryKey:[`start-task`,n],queryFn:async()=>n?U.getStartTask(n):null,enabled:!!n,refetchInterval:e=>{let t=e.state.data;return!t||t.status===`READY`||t.status===`ERROR`?!1:3e3},retry:!1});return{isTask:t,taskId:n,conversationId:t?null:e??null,task:r.data,taskStatus:r.data?.status,taskDetail:r.data?.detail,taskError:r.error,isLoadingTask:r.isLoading,repositoryInfo:{selectedRepository:r.data?.request?.selected_repository,selectedBranch:r.data?.request?.selected_branch,gitProvider:r.data?.request?.git_provider}}},Br=()=>{let e=zr(),{task:t,taskId:n}=e,{conversationId:r}=K(),{navigate:i}=We(),a=Te(),o=(0,q.useRef)(null);return(0,q.useLayoutEffect)(()=>{if(!r)return;let e=Ir(r);e&&(Yt.getState().reassignPendingMessages(e.fromConversationId,e.toConversationId),Pr(e.toConversationId))},[r]),(0,q.useEffect)(()=>{let e=t?.app_conversation_id;!n||t?.status!==`READY`||!e||o.current===n||(o.current=n,ke(n,e),Rr(t,e),(async()=>{await Ar(n,e);let t=`task-${n}`;Nr(e,t),Fr(t,e);let r=it(n);r&&rt(e,{draftMessage:r}),i(a(`/conversations/${e}`),{replace:!0})})())},[a,t,n,i]),e},Vr=(e,t)=>{let n=c({queryKey:[`sub-conversation-task`,e],queryFn:async()=>e?U.getStartTask(e):null,enabled:!!e&&!!t,refetchInterval:e=>{let t=e.state.data;return!t||t.status===`READY`||t.status===`ERROR`?!1:3e3},retry:!1});return{task:n.data,taskStatus:n.data?.status,taskDetail:n.data?.detail,taskError:n.error,isLoadingTask:n.isLoading,subConversationId:n.data?.app_conversation_id}},Hr=`/assets/notification-Cyeyy5ud.mp3`,Ur=[N.AWAITING_USER_INPUT,N.FINISHED,N.AWAITING_USER_CONFIRMATION];function Wr(e){let{data:t}=Fe(),n=(0,q.useRef)(void 0),r=(0,q.useRef)(void 0);(0,q.useEffect)(()=>{typeof window<`u`&&!n.current&&(n.current=new Audio(Hr),n.current.volume=.5)},[]);let i=t?.enable_sound_notifications??!1;(0,q.useEffect)(()=>{r.current!==e&&(r.current=e,Ur.includes(e)&&i&&n.current&&(n.current.currentTime=0,n.current.play().catch(()=>{})))},[e,i])}function Gr({className:e=``,handleStop:t,handleResumeAgent:n,disabled:r=!1,isPausing:i=!1}){let{t:o}=a(`openhands`),{setShouldShownAgentLoading:s}=H(),{curAgentState:c,executionStatus:l}=Wt();Wr(c);let u=yr(),{data:d}=G(),{taskStatus:f}=zr(),{subConversationTaskId:p}=H(),{taskStatus:m}=Vr(p,d?.id||null),h=E(u,l??null,f,m),g=c===N.INIT||c===N.LOADING||u===`CONNECTING`&&f!==`ERROR`||F(f)||F(m),_=g||i,v=c===N.ERROR||c===N.RATE_LIMITED||u===`CLOSED`||f===`ERROR`,y=!v&&c===N.RUNNING,b=!v&&(c===N.STOPPED||c===N.PAUSED),x=!_&&(y||b),S=h===D.CHAT_INTERFACE$AGENT_FINISHED_MESSAGE,C=h===D.AGENT_STATUS$WAITING_FOR_TASK,w=S||C,[T,O]=(0,q.useState)(!0),[k,A]=(0,q.useState)(!1);return(0,q.useEffect)(()=>{s(!!g)},[g,s]),(0,q.useEffect)(()=>{if(!w){O(!0),A(!1);return}O(!0),A(!1);let e=window.setTimeout(()=>{A(!0)},1e3),t=window.setTimeout(()=>{O(!1)},1500);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[w]),w&&!T?null:(0,Z.jsxs)(`div`,{className:P(`flex items-center gap-1 min-w-0`,w&&`transition-opacity duration-500`,k&&`opacity-0`,e),children:[(0,Z.jsx)(`span`,{className:`text-[11px] text-[var(--oh-muted)] font-normal leading-5 min-w-0 max-w-full truncate`,title:o(h),children:o(h)}),(0,Z.jsxs)(`div`,{className:P(`box-border content-stretch flex flex-row gap-[3px] items-center justify-center overflow-clip px-0.5 py-1 relative rounded-[100px] shrink-0 size-6 transition-all duration-200 active:scale-95 bg-transparent text-[var(--oh-muted)] hover:bg-white/10 hover:text-white`,x?`cursor-pointer`:`cursor-default`),children:[_&&(0,Z.jsx)(vr,{}),!_&&y&&(0,Z.jsx)(mr,{handleStop:t}),!_&&b&&(0,Z.jsx)(_r,{onAgentResumed:n,disabled:r}),!_&&v&&(0,Z.jsx)(we,{className:`w-4 h-4 text-current`,"data-testid":`circle-error-icon`}),!_&&!y&&!b&&!v&&(w?(0,Z.jsx)(ue,{className:`w-4 h-4 text-current`}):(0,Z.jsx)(hr,{className:`w-4 h-4 text-current`}))]})]})}function Kr(e){return(0,Z.jsx)(`svg`,{viewBox:`0 0 257 183`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,...e,children:(0,Z.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M151.663 5.36257C158.763 -1.73743 170.363 -1.83743 177.563 5.36257L250.663 78.4626C257.763 85.5626 257.863 97.1626 250.663 104.363L177.563 177.463C170.363 184.563 158.863 184.563 151.663 177.463C144.563 170.263 144.563 158.763 151.663 151.563L211.863 91.3626L151.663 31.1626C144.563 24.1626 144.563 12.5626 151.663 5.36257ZM104.463 5.36257C97.3626 -1.73743 85.7626 -1.83743 78.5626 5.36257L5.36257 78.4626C-1.73743 85.5626 -1.83743 97.1626 5.36257 104.363L78.4626 177.463C85.6626 184.563 97.1626 184.563 104.363 177.463C111.463 170.263 111.463 158.763 104.363 151.563L44.1626 91.4626L104.363 31.2626C111.563 24.1626 111.563 12.5626 104.463 5.36257Z`,fill:`currentColor`})})}function qr({icon:e,text:t,className:n,iconClassName:r,isActive:i=!1}){return(0,Z.jsxs)(`div`,{className:P(`flex min-w-0 items-center`,Je,n),children:[(0,Z.jsx)(e,{className:P(`h-4 w-4`,Ze,r)}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 leading-5`,children:t}),i&&(0,Z.jsx)(Bt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]})}function Jr({icon:e,title:t,description:n,className:r,iconClassName:i,isActive:a=!1}){return(0,Z.jsxs)(`div`,{className:P(`flex min-w-0 w-full flex-col justify-center gap-1`,r),children:[(0,Z.jsx)(qr,{icon:e,text:t,className:`px-0`,iconClassName:i,isActive:a}),(0,Z.jsx)(W.Text,{className:`text-[var(--oh-muted)] text-[10px] font-normal whitespace-pre-wrap break-words`,children:n})]})}function Yr({activeMode:e,onClose:t,onCodeClick:n,onPlanClick:r}){let{t:i}=a(`openhands`),o=xt(t);return(0,Z.jsxs)(B,{ref:o,testId:`change-agent-context-menu`,position:`top`,alignment:`left`,className:`min-h-fit mb-2 min-w-[195px] max-w-[195px]`,children:[(0,Z.jsx)(V,{testId:`code-option`,onClick:e=>{e.preventDefault(),e.stopPropagation(),n?.(e),t()},className:P(e===`code`&&`bg-[var(--oh-interactive-hover)]`),children:(0,Z.jsx)(Jr,{icon:ln,title:i(D.COMMON$CODE),description:i(D.COMMON$CODE_AGENT_DESCRIPTION),isActive:e===`code`})}),(0,Z.jsx)(V,{testId:`plan-option`,onClick:e=>{e.preventDefault(),e.stopPropagation(),r?.(e),t()},className:P(e===`plan`&&`bg-[var(--oh-interactive-hover)]`),children:(0,Z.jsx)(Jr,{icon:Zt,title:i(D.COMMON$PLAN),description:i(D.COMMON$PLAN_AGENT_DESCRIPTION),isActive:e===`plan`})})]})}var Xr=()=>{let{t:e}=a(`openhands`),{setConversationMode:t,setSubConversationTaskId:n,subConversationTaskId:r}=H(),{data:i}=G(),{mutate:o,isPending:s}=Dt();return(0,q.useEffect)(()=>{if(!i?.id)return;let e=nt(i.id);e.subConversationTaskId&&!r&&n(e.subConversationTaskId)},[i?.id,r,n]),{handlePlanClick:(0,q.useCallback)(a=>{a?.preventDefault(),a?.stopPropagation(),t(`plan`),!(i?.sub_conversation_ids&&i.sub_conversation_ids.length>0||!i?.id||r)&&o({parentConversationId:i.id,agentType:`plan`,entryPoint:`plan_sub_conversation`},{onSuccess:t=>{h(e(D.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED)),t.task_id&&(n(t.task_id),rt(i.id,{subConversationTaskId:t.task_id}))}})},[i,o,t,n,r,e]),isCreatingConversation:s}};function Zr(){let[e,t]=(0,q.useState)(!1),{conversationMode:n,setConversationMode:r,subConversationTaskId:o}=H(),{conversationId:s}=K(),c=!s,l=yr()===`OPEN`,{curAgentState:u}=Wt(),{t:d}=a(`openhands`),f=u===N.RUNNING,{data:p}=G(),m=i(),h=(0,q.useRef)(null),{taskStatus:g,subConversationId:_}=Vr(o,p?.id||null);(0,q.useEffect)(()=>{g===`READY`&&_&&p?.id&&o&&h.current!==o&&(h.current=o,m.invalidateQueries({queryKey:[`user`,`conversation`,p.id]}))},[g,_,p?.id,o,m]);let{handlePlanClick:v,isCreatingConversation:y}=Xr();(0,q.useEffect)(()=>{(f||!l)&&e&&t(!1)},[f,e,l]);let b=c||f||y||!l;(0,q.useEffect)(()=>{if(b)return;let e=e=>{if(e.shiftKey&&e.key===`Tab`){e.preventDefault(),e.stopPropagation();let t=n===`code`?`plan`:`code`;t===`plan`?v(e):r(t)}};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[b,n,r,v]);let x=n=>{n.preventDefault(),n.stopPropagation(),t(!e)},S=e=>{e.preventDefault(),e.stopPropagation(),r(`code`)},C=n===`code`,w=(0,q.useMemo)(()=>d(C?D.COMMON$CODE:D.COMMON$PLAN),[C,d]),T=(0,q.useMemo)(()=>C?(0,Z.jsx)(Kr,{className:`h-[11px] w-[11px] shrink-0`}):(0,Z.jsx)(Zt,{width:18,height:18,color:`currentColor`}),[C]),E=(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:x,disabled:b,className:P(`flex items-center rounded-[100px]`,ze,C?`border border-transparent text-[var(--oh-muted)]`:`border border-[#597FF4] bg-[#4A67BD]`,!b&&C&&P(`cursor-pointer`,`hover:text-white hover:bg-white/10`),!b&&!C&&`cursor-pointer text-white hover:bg-[#597FF4]`,b&&P(`opacity-50 cursor-not-allowed`,C&&`border-transparent`)),children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1 pl-1.5`,children:[T,(0,Z.jsx)(W.Text,{className:`text-2.75 not-italic font-normal leading-5`,children:w})]}),(0,Z.jsx)(Qe,{isOpen:e})]}),e&&(0,Z.jsx)(Yr,{activeMode:n,onClose:()=>t(!1),onCodeClick:S,onPlanClick:v})]});return c?(0,Z.jsx)(qe,{content:d(D.CHANGE_AGENT$SWITCH_AFTER_CONVERSATION),placement:`top`,children:E}):E}var Qr=`/settings/agents`,$r=`/settings/llm`;function ei(){let{t:e}=a(`openhands`),{backend:t}=b(),{data:n}=G(),{data:r}=Fe(),i=Ce(),o=n?.agent_kind===`acp`,s=!n&&(i??r?.agent_settings?.agent_kind)===`acp`,c=o||s;return{isActiveAcpConversation:o,isHomeAcp:s,isAcpContext:c,destinationPath:c?Qr:$r,destinationLabel:e(c?D.SETTINGS$NAV_AGENT:t.kind===`cloud`?D.SETTINGS$LLM_SETTINGS:D.SETTINGS$LLM_PROFILES)}}function ti(e,t,n){return[...g.all,e,t,`detail`,n]}function ni(){let{backend:e,orgId:t}=b(),{conversationId:n}=K(),{activeProfile:r}=Ee(),i=r?.agent_kind===`acp`?r.name:null,{data:a}=c({queryKey:ti(e.id,t,i??``),queryFn:()=>Ct.getProfile(i),enabled:!n&&i!=null,...v,...y,meta:{disableToast:!0}}),o=a?.profile;return o?.agent_kind===`acp`?o:null}function ri(){let{data:e}=G(),{data:t}=Fe(),{conversationId:n}=K(),{backend:r}=b(),i=Nt(),a=ni(),{isActiveAcpConversation:o,isHomeAcp:s,isAcpContext:c,destinationPath:l,destinationLabel:u}=ei(),d=typeof t?.agent_settings?.acp_server==`string`?t.agent_settings.acp_server:null,f=o?e?.acp_server:s?a?.acp_server??d:null,p=c?pt(f):void 0,m=typeof t?.agent_settings?.acp_model==`string`?t.agent_settings.acp_model:null,h=s&&a?a.acp_model:m,g=null;g=o?e?.llm_model??dt({configured:h,providerDefault:ft(f)}):s?dt({configured:h,providerDefault:ft(f)}):e?.llm_model??t?.llm_model??null;let _=g&&c?mt(f,g)??g:g,v=p?.available_models??[],y=!s||r.kind!==`cloud`||i,x=c&&v.length>0&&y;return{isAcpContext:c,displayModel:_,currentModelId:g,availableAcpModels:v,showAcpPicker:x,switchConversationId:o?n??null:null,destinationPath:l,destinationLabel:u}}var ii=()=>{let e=i(),{backend:t,orgId:n}=b();return s({mutationFn:async({conversationId:r,model:i})=>{if(r){await U.switchAcpModel(r,i);return}let a=await e.ensureQueryData({queryKey:[...g.all,t.id,n],queryFn:Ct.listProfiles,...y}),o=a.profiles?.find(e=>e.id!=null&&e.id===a.active_agent_profile_id);if(o?.agent_kind===`acp`){let r=await e.ensureQueryData({queryKey:ti(t.id,n,o.name),queryFn:()=>Ct.getProfile(o.name),...y});await Ct.saveProfile(o.name,dn(r.profile,{agent_kind:`acp`,acp_model:i}));return}await Pe.saveSettings({agent_settings_diff:{acp_model:i}})},onSuccess:(t,{conversationId:n})=>{n?vt(e,n):(Pe.invalidateCache(),e.invalidateQueries({queryKey:_.personal()}),e.invalidateQueries({queryKey:g.all}))}})},ai=10,oi=22;function si(e,t=ai){return e.length<=t?e:`${e.slice(0,t)}…`}function ci({model:e,onClose:t,dividerInset:n,settingsLinkClassName:r,settingsIconClassName:i}){let{t:o}=a(`openhands`),s=ii(),c=e.showAcpPicker||!!e.displayModel,l=n=>{n!==e.currentModelId&&s.mutate({conversationId:e.switchConversationId,model:n}),t()};return(0,Z.jsxs)(Z.Fragment,{children:[e.showAcpPicker?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`li`,{role:`presentation`,className:`px-2 pt-1 pb-0.5`,children:(0,Z.jsx)(W.Text,{className:`text-[11px] font-medium text-[var(--oh-text-dim)] uppercase tracking-wide leading-4`,children:o(D.MODEL$AVAILABLE_MODELS)})}),e.availableAcpModels.map(t=>{let n=t.id===e.currentModelId;return(0,Z.jsxs)(V,{testId:`chat-input-acp-model-option-${t.id}`,onClick:e=>{e.preventDefault(),e.stopPropagation(),l(t.id)},className:P(`flex items-center gap-2`,n&&`bg-[var(--oh-interactive-hover)]`),children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate text-sm leading-5`,title:t.label,children:t.label}),n&&(0,Z.jsx)(Bt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]},t.id)})]}):e.displayModel?(0,Z.jsx)(`li`,{className:`text-sm`,children:(0,Z.jsx)(`div`,{className:`p-2 leading-5 text-[var(--oh-foreground)] break-all`,children:e.displayModel})}):null,c&&(0,Z.jsx)(z,{inset:n}),(0,Z.jsx)(`li`,{className:`text-sm`,children:(0,Z.jsxs)(Ge,{to:e.destinationPath,onClick:t,className:P(`flex h-[30px] items-center gap-2 rounded p-2 leading-5 text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)] transition-colors`,r),children:[(0,Z.jsx)(fn,{width:16,height:16,className:P(`shrink-0`,i),"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:e.destinationLabel})]})})]})}function li(){let e=ri(),[t,n]=q.useState(!1),r=q.useRef(null),i=xt(()=>n(!1),r);if(!e.displayModel)return null;let a=si(e.displayModel,e.isAcpContext?oi:ai);return(0,Z.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,Z.jsxs)(`button`,{ref:r,type:`button`,className:Be,title:e.displayModel,"data-testid":`chat-input-llm-model`,"aria-expanded":t,"aria-haspopup":`dialog`,onClick:e=>{e.preventDefault(),e.stopPropagation(),n(e=>!e)},children:[(0,Z.jsx)(`span`,{children:a}),(0,Z.jsx)(Qe,{isOpen:t})]}),t&&(0,Z.jsx)(B,{ref:i,testId:`chat-input-llm-model-popover`,position:`top`,alignment:`left`,spacing:`none`,className:`z-[60] mb-2 min-w-[200px] max-w-[320px] max-h-[60vh] overflow-y-auto`,children:(0,Z.jsx)(ci,{model:e,onClose:()=>n(!1)})})]})}var ui=[`switch-llm-profile`],di=()=>{let e=i(),{t}=a();return s({mutationKey:ui,mutationFn:({conversationId:e,profileName:t})=>U.switchProfile(e,t),meta:{disableToast:!0},onMutate:({conversationId:e})=>({anchorEventId:e?Qt():null}),onError:(e,{profileName:n})=>{let r=t(D.MODEL$SWITCH_FAILED,{name:n});m(f(e)||r)},onSuccess:(t,{conversationId:n,profileName:r},i)=>{if(e.invalidateQueries({queryKey:p.all}),n){vt(e,n),nn(n,r,i?.anchorEventId??null);let t=ot(n);lt(n,{selected_repository:t?.selected_repository??null,selected_branch:t?.selected_branch??null,git_provider:t?.git_provider??null,selected_workspace:t?.selected_workspace??null,active_profile:r,plugins:t?.plugins??null})}else Pe.invalidateCache(),e.invalidateQueries({queryKey:_.personal()})}})};function fi(){let{mutate:e,isPending:t}=di();return{switchAndLog:(0,q.useCallback)((t,n)=>{e({conversationId:t,profileName:n})},[e]),isPending:t}}function pi(){let{conversationId:e}=K(),{data:t}=G(),{data:n,isLoading:r}=St(),i=Nt(),{switchAndLog:a}=fi(),o=l({mutationKey:ui})>0,s=Xt(t=>e?t.activeProfileByConversation[e]:void 0),c=n?.profiles??[],u=t?.llm_model??null,d=t?.active_profile??null,f=d&&c.some(e=>e.name===d)?d:null,p=s??f??(u?c.find(e=>e.model===u)?.name??null:n?.active_profile??null),m=c.find(e=>e.name===p)?.model??u??null,h=!(e?.startsWith(`task-`)??!1)&&(!!e||i);return{profiles:c,currentProfileName:p,currentProfileModel:m,isLoading:r,isSwitching:o,canSwitchProfile:h,selectProfile:(0,q.useCallback)(t=>{!h||t===p||a(e,t)},[h,e,p,a])}}var mi=18;function hi(e){return e.length<=mi?e:`${e.slice(0,mi)}…`}function gi({onClose:e,dividerInset:t,settingsLinkClassName:n,settingsIconClassName:r}){let{t:i}=a(`openhands`),{profiles:o,currentProfileName:s,currentProfileModel:c,canSwitchProfile:l,selectProfile:u}=pi(),d=l&&o.length>0,f=l?null:s,p=t=>{u(t),e()};return(0,Z.jsxs)(Z.Fragment,{children:[d&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`li`,{role:`presentation`,className:`px-2 pt-1 pb-0.5`,children:(0,Z.jsx)(W.Text,{className:`text-[11px] font-medium text-[var(--oh-text-dim)] uppercase tracking-wide leading-4`,children:i(D.SETTINGS$AVAILABLE_PROFILES)})}),o.map(t=>{let n=t.name===s,r=Ft(t.model);return(0,Z.jsxs)(V,{testId:`chat-input-llm-profile-option-${t.name}`,onClick:r=>{if(r.preventDefault(),r.stopPropagation(),n){e();return}p(t.name)},className:P(`flex flex-col items-stretch gap-0.5`,n&&`bg-[var(--oh-interactive-hover)]`),children:[(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate text-sm leading-5`,title:t.model??t.name,children:t.name}),n&&(0,Z.jsx)(Bt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]}),r&&(0,Z.jsx)(`span`,{className:`block truncate text-xs leading-4 text-[var(--oh-muted)]`,children:r})]},t.name)})]}),f&&(0,Z.jsx)(`li`,{className:`text-sm`,"data-testid":`chat-input-llm-profile-current`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-0.5 p-2 leading-5 text-[var(--oh-foreground)]`,children:[(0,Z.jsx)(`span`,{className:`truncate`,title:f,children:f}),c&&(0,Z.jsx)(`span`,{className:`truncate text-xs leading-4 text-[var(--oh-muted)]`,children:Ft(c)})]})}),(d||f)&&(0,Z.jsx)(z,{inset:t}),(0,Z.jsx)(`li`,{className:`text-sm`,children:(0,Z.jsxs)(Ge,{to:`/settings/llm`,onClick:e,className:P(`flex h-[30px] items-center gap-2 rounded p-2 leading-5 text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)] transition-colors`,n),children:[(0,Z.jsx)(fn,{width:16,height:16,className:P(`shrink-0`,r),"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:i(D.SETTINGS$LLM_PROFILES)})]})})]})}function _i(){let{t:e}=a(`openhands`),{profiles:t,currentProfileName:n,isLoading:r,isSwitching:i}=pi(),[o,s]=q.useState(!1),c=q.useRef(null),l=xt(()=>s(!1),c);if(r||t.length===0)return null;let u=n??e(D.LLM$SELECT_MODEL_PLACEHOLDER);return(0,Z.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,Z.jsxs)(`button`,{ref:c,type:`button`,className:P(Be,`max-w-[200px]`),title:n??void 0,"data-testid":`chat-input-llm-profile`,"aria-expanded":o,"aria-haspopup":`dialog`,disabled:i,"aria-busy":i,onClick:e=>{e.preventDefault(),e.stopPropagation(),s(e=>!e)},children:[(0,Z.jsx)(`span`,{className:`truncate`,children:hi(u)}),(0,Z.jsx)(Qe,{isOpen:o})]}),o&&(0,Z.jsx)(B,{ref:l,testId:`chat-input-llm-profile-popover`,position:`top`,alignment:`left`,spacing:`none`,className:`z-[60] mb-2 min-w-[200px] max-w-[320px] max-h-[60vh] overflow-y-auto`,children:(0,Z.jsx)(gi,{onClose:()=>s(!1)})})]})}function vi({isLoadingHistory:e,hasUserEvents:t,hasPendingUserMessages:n,hasSubstantiveAgentActions:r,hasModelEntries:i}){return e||t||n||r||i}function yi({isAcp:e}){return e?`model`:`llm-profile`}var bi=()=>{let e=i(),{t}=a();return s({mutationFn:e=>U.updateConversationPublicFlag(e.conversationId,e.isPublic),onMutate:async t=>{let n=[`user`,`conversation`,t.conversationId];await e.cancelQueries({queryKey:n});let r=e.getQueriesData({queryKey:n});return e.setQueriesData({queryKey:n},e=>e&&typeof e==`object`?{...e,public:t.isPublic}:e),{previousEntries:r}},onError:(n,r,i)=>{i?.previousEntries?.forEach(([t,n])=>{e.setQueryData(t,n)}),m(t(D.CONVERSATION$FAILED_TO_UPDATE_PUBLIC_SHARING))},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]}),e.invalidateQueries({queryKey:[`user`,`conversations`]})}})},xi=`<secret-hidden>`;function Si(e){let t=/(<CUSTOM_SECRETS>)([\s\S]*?)(<\/CUSTOM_SECRETS>|$)/gi,n=/^(\s*[^=:\n]+?\s*[:=]\s*)(.+?)\s*$/gm;return e.replace(t,(e,t,r,i)=>`${t}${r.replace(n,(e,t,n)=>n===xi?e:`${t}${xi}`)}${i}`)}function Ci(e){let t=e.find(qt);if(!t)return null;let n=t.dynamic_context?.text;return{content:n?`${t.system_prompt.text.trimEnd()}\n\n${Si(n)}`:t.system_prompt.text,tools:t.tools??null,openhands_version:null,agent_class:null}}function wi({conversationId:e,executionStatus:t,showOptions:n=!1,onContextMenuToggle:r}){let{t:i}=a(),{conversationId:o,navigate:s}=We(),{backend:c}=b(),l=Kt(e=>e.events),{mutate:u}=ye(),{mutate:d}=ve(),{mutate:f}=bi(),{data:p}=G(),[m,g]=q.useState(!1),[_,v]=q.useState(!1),[y,x]=q.useState(!1),[S,C]=q.useState(!1),[w,T]=q.useState(!1),[E,O]=q.useState(!1),{mutateAsync:k}=ge(),{navigateToTab:A}=tn(),j=Ci(l),ee=e=>{e.preventDefault(),e.stopPropagation(),T(!0),r?.(!1)},M=e=>{e.preventDefault(),e.stopPropagation(),O(!0),r?.(!1)},te=()=>{e&&u({conversationId:e},{onSuccess:()=>{e===o&&s(`/conversations`)}}),T(!1)},N=()=>{e&&d({conversationId:e}),O(!1)},ne=e=>{e.preventDefault(),e.stopPropagation(),r?.(!1)},re=async t=>{t.preventDefault(),t.stopPropagation(),e&&await k(e),r?.(!1)},ie=e=>{e.stopPropagation(),A(`usage`),r?.(!1)},P=e=>{e.stopPropagation(),g(!0),r?.(!1)},ae=e=>{e.stopPropagation(),v(!0),r?.(!1)},F=e=>{e.stopPropagation(),x(!0),r?.(!1)},se=e=>{e.stopPropagation(),C(!0),r?.(!1)},ce=t=>{e&&p&&f({conversationId:e,isPublic:t??!p.public})},I=q.useMemo(()=>e?`${c.kind===`cloud`?c.host.replace(/\/+$/,``):window.location.origin}/shared/conversations/${e}`:``,[e,c.kind,c.host]);return{handleDelete:ee,handleStop:M,handleEdit:ne,handleDownloadConversation:re,handleDisplayCost:ie,handleShowAgentTools:P,handleShowSkills:ae,handleShowPlugins:F,handleShowHooks:se,handleTogglePublic:ce,handleCopyShareLink:e=>{if(e.preventDefault(),e.stopPropagation(),!I){r?.(!1);return}navigator.clipboard.writeText(I),h(i(D.CONVERSATION$LINK_COPIED))},shareUrl:I,handleConfirmDelete:te,handleConfirmStop:N,systemModalVisible:m,setSystemModalVisible:g,skillsModalVisible:_,setSkillsModalVisible:v,pluginsModalVisible:y,setPluginsModalVisible:x,hooksModalVisible:S,setHooksModalVisible:C,confirmDeleteModalVisible:w,setConfirmDeleteModalVisible:T,confirmStopModalVisible:E,setConfirmStopModalVisible:O,systemMessage:j,shouldShowStop:oe(t),shouldShowDownloadConversation:!!(e&&n),shouldShowDisplayCost:n,shouldShowAgentTools:!!(n&&j),shouldShowSkills:!!(n&&e),shouldShowPlugins:!!(n&&e&&(ot(e)?.plugins?.length??0)>0),shouldShowHooks:!!(n&&e&&oe(t))}}var Ti=e=>(0,Z.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Z.jsx)(`path`,{d:`M17 6.05994C16.3065 6.0604 15.6345 6.30114 15.0985 6.74118C14.5625 7.18123 14.1954 7.7934 14.0599 8.47355C13.9243 9.1537 14.0286 9.85981 14.355 10.4717C14.6813 11.0837 15.2097 11.5636 15.85 11.8299C15.6978 12.1949 15.4408 12.5065 15.1115 12.7254C14.7822 12.9444 14.3954 13.0608 14 13.0599H10C9.29505 13.0629 8.604 13.2564 8.00001 13.6199V7.87994C8.66722 7.64405 9.22956 7.17987 9.58764 6.56946C9.94571 5.95905 10.0765 5.2417 9.9568 4.54421C9.83713 3.84671 9.47473 3.21398 8.93367 2.75784C8.3926 2.30169 7.70769 2.05151 7.00001 2.05151C6.29232 2.05151 5.60741 2.30169 5.06635 2.75784C4.52528 3.21398 4.16288 3.84671 4.04321 4.54421C3.92354 5.2417 4.0543 5.95905 4.41237 6.56946C4.77045 7.17987 5.33279 7.64405 6.00001 7.87994V16.2399C5.34099 16.4769 4.78566 16.937 4.43026 17.5405C4.07485 18.1439 3.94176 18.8527 4.05406 19.544C4.16635 20.2352 4.51695 20.8654 5.0451 21.3254C5.57325 21.7853 6.24567 22.0459 6.94581 22.0621C7.64596 22.0783 8.32971 21.8491 8.87857 21.4141C9.42744 20.9791 9.80683 20.3658 9.95099 19.6805C10.0952 18.9951 9.995 18.281 9.6679 17.6617C9.34079 17.0425 8.80735 16.5572 8.16001 16.2899C8.31158 15.9266 8.56704 15.616 8.89436 15.3972C9.22168 15.1784 9.60629 15.0611 10 15.0599H14C14.9148 15.0598 15.802 14.746 16.5135 14.171C17.225 13.5959 17.7179 12.7944 17.91 11.8999C18.5786 11.6728 19.1456 11.217 19.5113 10.613C19.8769 10.0089 20.0178 9.29524 19.9091 8.59754C19.8004 7.89984 19.449 7.26285 18.9169 6.79869C18.3848 6.33452 17.706 6.07292 17 6.05994ZM7.00001 4.05994C7.19779 4.05994 7.39113 4.11859 7.55558 4.22847C7.72003 4.33835 7.8482 4.49453 7.92389 4.67726C7.99957 4.85998 8.01938 5.06105 7.98079 5.25503C7.94221 5.44901 7.84697 5.6272 7.70711 5.76705C7.56726 5.9069 7.38908 6.00214 7.1951 6.04073C7.00112 6.07931 6.80005 6.05951 6.61732 5.98382C6.4346 5.90813 6.27842 5.77996 6.16854 5.61551C6.05866 5.45106 6.00001 5.25772 6.00001 5.05994C6.00001 4.79472 6.10536 4.54037 6.2929 4.35283C6.48044 4.1653 6.73479 4.05994 7.00001 4.05994ZM7.00001 20.0599C6.80222 20.0599 6.60889 20.0013 6.44444 19.8914C6.27999 19.7815 6.15181 19.6254 6.07613 19.4426C6.00044 19.2599 5.98064 19.0588 6.01922 18.8649C6.05781 18.6709 6.15305 18.4927 6.2929 18.3528C6.43275 18.213 6.61093 18.1177 6.80492 18.0792C6.9989 18.0406 7.19996 18.0604 7.38269 18.1361C7.56542 18.2117 7.72159 18.3399 7.83148 18.5044C7.94136 18.6688 8.00001 18.8622 8.00001 19.0599C8.00001 19.3252 7.89465 19.5795 7.70711 19.767C7.51958 19.9546 7.26522 20.0599 7.00001 20.0599ZM17 10.0599C16.8022 10.0599 16.6089 10.0013 16.4444 9.89141C16.28 9.78153 16.1518 9.62535 16.0761 9.44262C16.0004 9.2599 15.9806 9.05883 16.0192 8.86485C16.0578 8.67087 16.153 8.49269 16.2929 8.35283C16.4328 8.21298 16.6109 8.11774 16.8049 8.07916C16.9989 8.04057 17.2 8.06037 17.3827 8.13606C17.5654 8.21175 17.7216 8.33992 17.8315 8.50437C17.9414 8.66882 18 8.86216 18 9.05994C18 9.32516 17.8947 9.57951 17.7071 9.76705C17.5196 9.95458 17.2652 10.0599 17 10.0599Z`,fill:`currentColor`})}),Ei=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{d:`M17 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V8.99997C2 8.20432 2.31607 7.44125 2.87868 6.87864C3.44129 6.31604 4.20435 5.99997 5 5.99997H6C6.01682 5.1526 6.30235 4.33248 6.81541 3.65789C7.32848 2.98331 8.04255 2.48911 8.85464 2.2466C9.66673 2.00408 10.5349 2.02578 11.3338 2.30856C12.1328 2.59134 12.8213 3.12059 13.3 3.81997C13.7484 4.45911 13.9925 5.21923 14 5.99997H17C17.2652 5.99997 17.5196 6.10532 17.7071 6.29286C17.8946 6.48039 18 6.73475 18 6.99997V9.99997C18.8474 10.0168 19.6675 10.3023 20.3421 10.8154C21.0167 11.3284 21.5109 12.0425 21.7534 12.8546C21.9959 13.6667 21.9742 14.5348 21.6914 15.3338C21.4086 16.1328 20.8794 16.8212 20.18 17.3C19.5409 17.7484 18.7807 17.9925 18 18V21C18 21.2652 17.8946 21.5195 17.7071 21.7071C17.5196 21.8946 17.2652 22 17 22ZM5 7.99997C4.73478 7.99997 4.48043 8.10532 4.29289 8.29286C4.10536 8.48039 4 8.73475 4 8.99997V19C4 19.2652 4.10536 19.5195 4.29289 19.7071C4.48043 19.8946 4.73478 20 5 20H16V16.82C15.9991 16.6596 16.0368 16.5014 16.1099 16.3587C16.183 16.216 16.2894 16.093 16.42 16C16.5502 15.9071 16.7008 15.8468 16.8592 15.8242C17.0175 15.8016 17.179 15.8173 17.33 15.87C17.615 15.9862 17.9254 16.0262 18.2305 15.9858C18.5357 15.9455 18.825 15.8263 19.07 15.64C19.3139 15.4913 19.523 15.292 19.6834 15.0557C19.8439 14.8194 19.9518 14.5515 20 14.27C20.0386 13.986 20.0157 13.6971 19.9329 13.4228C19.85 13.1485 19.7092 12.8951 19.52 12.68C19.2641 12.3691 18.9155 12.1481 18.5252 12.0491C18.1349 11.9502 17.7231 11.9785 17.35 12.13C17.199 12.1827 17.0375 12.1983 16.8792 12.1757C16.7208 12.1531 16.5702 12.0928 16.44 12C16.3094 11.907 16.203 11.7839 16.1299 11.6412C16.0568 11.4985 16.0191 11.3403 16.02 11.18V7.99997H12.82C12.6557 8.00928 12.4915 7.97788 12.3422 7.90855C12.1929 7.83922 12.0631 7.7341 11.9641 7.60253C11.8652 7.47096 11.8003 7.317 11.7752 7.15432C11.75 6.99164 11.7654 6.82526 11.82 6.66997C11.9363 6.38497 11.9762 6.07459 11.9359 5.76945C11.8955 5.46431 11.7763 5.17496 11.59 4.92997C11.4424 4.67913 11.2402 4.46473 10.9984 4.30266C10.7566 4.14058 10.4815 4.03499 10.1934 3.99369C9.90527 3.95239 9.61155 3.97645 9.33399 4.06409C9.05644 4.15173 8.80216 4.3007 8.59 4.49997C8.39298 4.69538 8.23877 4.92966 8.1372 5.1879C8.03562 5.44614 7.9889 5.72269 8 5.99997C8.00232 6.22934 8.04637 6.45637 8.13 6.66997C8.18287 6.82118 8.19863 6.98289 8.17597 7.14147C8.1533 7.30005 8.09287 7.45087 7.99976 7.58122C7.90665 7.71158 7.78358 7.81765 7.64093 7.89053C7.49827 7.9634 7.34019 8.00093 7.18 7.99997H5Z`,fill:`currentColor`})}),Di=e=>(0,Z.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[(0,Z.jsx)(`path`,{d:`m17.586 11.414-5.93 5.93a1 1 0 0 1-8-8l3.137-3.137a.707.707 0 0 1 1.207.5V10`}),(0,Z.jsx)(`path`,{d:`M20.414 8.586 22 7`}),(0,Z.jsx)(`circle`,{cx:19,cy:10,r:2})]}),Oi=e=>(0,Z.jsxs)(`svg`,{width:29,height:28,viewBox:`0 0 29 28`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,Z.jsx)(`path`,{d:`M14.5 18.375C12.085 18.375 10.125 16.415 10.125 14C10.125 11.585 12.085 9.625 14.5 9.625C16.915 9.625 18.875 11.585 18.875 14C18.875 16.415 16.915 18.375 14.5 18.375ZM14.5 11.375C13.0533 11.375 11.875 12.5533 11.875 14C11.875 15.4467 13.0533 16.625 14.5 16.625C15.9467 16.625 17.125 15.4467 17.125 14C17.125 12.5533 15.9467 11.375 14.5 11.375Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M18.245 25.8883C18 25.8883 17.755 25.8533 17.51 25.795C16.7867 25.5967 16.18 25.1417 15.795 24.5L15.655 24.2667C14.9667 23.0767 14.0217 23.0767 13.3333 24.2667L13.205 24.4883C12.82 25.1417 12.2133 25.6083 11.49 25.795C10.755 25.9933 9.99668 25.8883 9.35501 25.5033L7.34834 24.3483C6.63668 23.94 6.12334 23.275 5.90168 22.47C5.69168 21.665 5.79668 20.8367 6.20501 20.125C6.54334 19.53 6.63668 18.9933 6.43834 18.655C6.24001 18.3167 5.73834 18.1183 5.05001 18.1183C3.34668 18.1183 1.95834 16.73 1.95834 15.0267V12.9733C1.95834 11.27 3.34668 9.88168 5.05001 9.88168C5.73834 9.88168 6.24001 9.68334 6.43834 9.34501C6.63668 9.00668 6.55501 8.47001 6.20501 7.87501C5.79668 7.16334 5.69168 6.32334 5.90168 5.53001C6.11168 4.72501 6.62501 4.06001 7.34834 3.65168L9.36668 2.49668C10.685 1.71501 12.4233 2.17001 13.2167 3.51168L13.3567 3.74501C14.045 4.93501 14.99 4.93501 15.6783 3.74501L15.8067 3.52334C16.6 2.17001 18.3383 1.71501 19.6683 2.50834L21.675 3.66334C22.3867 4.07168 22.9 4.73668 23.1217 5.54168C23.3317 6.34668 23.2267 7.17501 22.8183 7.88668C22.48 8.48168 22.3867 9.01834 22.585 9.35668C22.7833 9.69501 23.285 9.89334 23.9733 9.89334C25.6767 9.89334 27.065 11.2817 27.065 12.985V15.0383C27.065 16.7417 25.6767 18.13 23.9733 18.13C23.285 18.13 22.7833 18.3283 22.585 18.6667C22.3867 19.005 22.4683 19.5417 22.8183 20.1367C23.2267 20.8483 23.3433 21.6883 23.1217 22.4817C22.9117 23.2867 22.3983 23.9517 21.675 24.36L19.6567 25.515C19.2133 25.76 18.735 25.8883 18.245 25.8883ZM14.5 21.5717C15.5383 21.5717 16.5067 22.225 17.1717 23.38L17.3 23.6017C17.44 23.8467 17.6733 24.0217 17.9533 24.0917C18.2333 24.1617 18.5133 24.1267 18.7467 23.9867L20.765 22.82C21.0683 22.645 21.3017 22.3533 21.395 22.0033C21.4883 21.6533 21.4417 21.2917 21.2667 20.9883C20.6017 19.845 20.52 18.6667 21.0333 17.7683C21.5467 16.87 22.6083 16.3567 23.9383 16.3567C24.685 16.3567 25.28 15.7617 25.28 15.015V12.9617C25.28 12.2267 24.685 11.62 23.9383 11.62C22.6083 11.62 21.5467 11.1067 21.0333 10.2083C20.52 9.31001 20.6017 8.13168 21.2667 6.98834C21.4417 6.68501 21.4883 6.32334 21.395 5.97334C21.3017 5.62334 21.08 5.34334 20.7767 5.15668L18.7583 4.00168C18.2567 3.69834 17.5917 3.87334 17.2883 4.38668L17.16 4.60834C16.495 5.76334 15.5267 6.41668 14.4883 6.41668C13.45 6.41668 12.4817 5.76334 11.8167 4.60834L11.6883 4.37501C11.3967 3.88501 10.7433 3.71001 10.2417 4.00168L8.22334 5.16834C7.92001 5.34334 7.68668 5.63501 7.59334 5.98501C7.50001 6.33501 7.54668 6.69668 7.72168 7.00001C8.38668 8.14334 8.46834 9.32168 7.95501 10.22C7.44168 11.1183 6.38001 11.6317 5.05001 11.6317C4.30334 11.6317 3.70834 12.2267 3.70834 12.9733V15.0267C3.70834 15.7617 4.30334 16.3683 5.05001 16.3683C6.38001 16.3683 7.44168 16.8817 7.95501 17.78C8.46834 18.6783 8.38668 19.8567 7.72168 21C7.54668 21.3033 7.50001 21.665 7.59334 22.015C7.68668 22.365 7.90834 22.645 8.21168 22.8317L10.23 23.9867C10.475 24.1383 10.7667 24.1733 11.035 24.1033C11.315 24.0333 11.5483 23.8467 11.7 23.6017L11.8283 23.38C12.4933 22.2367 13.4617 21.5717 14.5 21.5717Z`,fill:`currentColor`})]}),ki=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{d:`M18.2099 13.1289L9.98776 20.3232C9.01788 21.1719 7.5 20.4831 7.5 19.1943L7.5 4.80565C7.5 3.51691 9.01788 2.82815 9.98775 3.67678L18.2099 10.8711C18.8929 11.4688 18.8929 12.5312 18.2099 13.1289Z`,fill:`currentColor`})});function Q({icon:e,text:t,rightIcon:n,className:r}){return(0,Z.jsxs)(`div`,{className:P(`flex min-w-0 w-full items-center justify-between`,Je,r),children:[(0,Z.jsxs)(`div`,{className:P(`flex min-w-0 items-center`,Je),children:[(0,Z.jsx)(`span`,{className:Ze,"aria-hidden":!0,children:e}),(0,Z.jsx)(`span`,{className:`text-sm font-normal leading-5`,children:t})]}),n?(0,Z.jsx)(`span`,{className:Ze,"aria-hidden":!0,children:n}):null]})}var Ai=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M20.781 10.5L13.281 3H12.2205L4.72049 10.5L5.78099 11.5605L12 5.3415V21H13.5V5.34L19.719 11.5605L20.781 10.5Z`,fill:`currentColor`})}),ji=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M4.72049 13.5L12.2205 21H13.281L20.781 13.5L19.7205 12.4395L13.5 18.6585V3H12V18.66L5.78099 12.438L4.72049 13.5Z`,fill:`currentcolor`})}),Mi=e=>(0,Z.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 12 14`,fill:`none`,...e,children:[(0,Z.jsx)(`path`,{d:`M9.79249 10.1936C10.2876 10.1936 10.6902 10.5962 10.6902 11.0913C10.6902 11.5864 10.2876 11.989 9.79249 11.989C9.29739 11.989 8.89478 11.5864 8.89478 11.0913C8.89478 10.5962 9.29739 10.1936 9.79249 10.1936ZM9.79249 9.10547C8.69891 9.10547 7.80664 9.99774 7.80664 11.0913C7.80664 12.1849 8.69891 13.0772 9.79249 13.0772C10.8861 13.0772 11.7783 12.1849 11.7783 11.0913C11.7783 9.99774 10.8861 9.10547 9.79249 9.10547Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M2.23585 10.1936C2.73095 10.1936 3.13356 10.5962 3.13356 11.0913C3.13356 11.5864 2.73095 11.989 2.23585 11.989C1.74075 11.989 1.33814 11.5864 1.33814 11.0913C1.33814 10.5962 1.74075 10.1936 2.23585 10.1936ZM2.23585 9.10547C1.14227 9.10547 0.25 9.99774 0.25 11.0913C0.25 12.1849 1.14227 13.0772 2.23585 13.0772C3.32943 13.0772 4.2217 12.1849 4.2217 11.0913C4.2217 9.99774 3.32943 9.10547 2.23585 9.10547Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M2.23585 2.16846C2.73095 2.16846 3.13356 2.57107 3.13356 3.06617C3.13356 3.56128 2.73095 3.96389 2.23585 3.96389C1.74075 3.96389 1.33814 3.56128 1.33814 3.06617C1.33814 2.57107 1.74075 2.16846 2.23585 2.16846ZM2.23585 1.08032C1.14227 1.08032 0.25 1.97259 0.25 3.06617C0.25 4.15975 1.14227 5.05202 2.23585 5.05202C3.32943 5.05202 4.2217 4.15975 4.2217 3.06617C4.2217 1.97259 3.32943 1.08032 2.23585 1.08032Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M2.23633 9.17627V4.55713`,stroke:`currentColor`,strokeMiterlimit:10}),(0,Z.jsx)(`path`,{d:`M9.79304 9.17605V4.33928C9.79304 3.63743 9.22176 3.06616 8.51992 3.06616H7.38281`,stroke:`currentColor`,strokeMiterlimit:10}),(0,Z.jsx)(`path`,{d:`M7.38191 5.21531L5.23828 3.06624L7.38191 0.922607V5.21531Z`,fill:`currentColor`})]}),Ni=`!w-auto whitespace-nowrap`;function Pi({onClose:e}){let{t}=a(`openhands`),{setMessageToSend:n}=H(),{data:r}=G(),i=r?.git_provider;return(0,Z.jsxs)(B,{testId:`git-tools-submenu`,className:`w-max`,children:[(0,Z.jsx)(V,{testId:`git-pull-button`,onClick:()=>{n(j()),e()},className:Ni,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(ji,{width:16,height:16}),text:t(D.COMMON$GIT_PULL)})}),(0,Z.jsx)(V,{testId:`git-push-button`,onClick:()=>{n(ee(i)),e()},className:Ni,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Ai,{width:16,height:16}),text:t(D.COMMON$GIT_PUSH)})}),(0,Z.jsx)(V,{testId:`create-pr-button`,onClick:()=>{n(ie(i)),e()},className:Ni,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Mi,{width:16,height:16}),text:t(D.COMMON$CREATE_PR)})}),(0,Z.jsx)(V,{testId:`create-new-branch-button`,onClick:()=>{n(re()),e()},className:Ni,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Ti,{width:16,height:16}),text:t(D.COMMON$CREATE_NEW_BRANCH)})})]})}var Fi=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:25,viewBox:`0 0 24 25`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{d:`M15.29 10.79L12.51 13.57C12.3436 13.5257 12.1723 13.5022 12 13.5C11.4696 13.5 10.9609 13.7107 10.5858 14.0858C10.2107 14.4609 10 14.9696 10 15.5C10.0023 15.6722 10.0258 15.8435 10.07 16.01L9.29003 16.79C9.1963 16.883 9.12191 16.9936 9.07114 17.1154C9.02037 17.2373 8.99423 17.368 8.99423 17.5C8.99423 17.632 9.02037 17.7627 9.07114 17.8846C9.12191 18.0064 9.1963 18.117 9.29003 18.21C9.38299 18.3037 9.49359 18.3781 9.61545 18.4289C9.73731 18.4797 9.86802 18.5058 10 18.5058C10.132 18.5058 10.2627 18.4797 10.3846 18.4289C10.5065 18.3781 10.6171 18.3037 10.71 18.21L11.49 17.43C11.6565 17.4743 11.8278 17.4978 12 17.5C12.5305 17.5 13.0392 17.2893 13.4142 16.9142C13.7893 16.5391 14 16.0304 14 15.5C13.9978 15.3278 13.9743 15.1565 13.93 14.99L16.71 12.21C16.8983 12.0217 17.0041 11.7663 17.0041 11.5C17.0041 11.2337 16.8983 10.9783 16.71 10.79C16.5217 10.6017 16.2663 10.4959 16 10.4959C15.7337 10.4959 15.4783 10.6017 15.29 10.79ZM12 4.5C10.6868 4.5 9.38645 4.75866 8.1732 5.2612C6.95994 5.76375 5.85755 6.50035 4.92896 7.42893C3.0536 9.3043 2.00003 11.8478 2.00003 14.5C1.99511 16.4806 2.58375 18.4172 3.69003 20.06C3.83855 20.2801 4.06844 20.4322 4.32911 20.4829C4.58979 20.5335 4.8599 20.4785 5.08003 20.33C5.30016 20.1815 5.45227 19.9516 5.50291 19.6909C5.55354 19.4302 5.49855 19.1601 5.35003 18.94C4.54455 17.7355 4.08131 16.3349 4.00978 14.8877C3.93826 13.4405 4.26113 12.001 4.94392 10.723C5.62671 9.44501 6.64378 8.37643 7.88653 7.63139C9.12928 6.88634 10.5511 6.49281 12 6.49281C13.449 6.49281 14.8708 6.88634 16.1135 7.63139C17.3563 8.37643 18.3734 9.44501 19.0561 10.723C19.7389 12.001 20.0618 13.4405 19.9903 14.8877C19.9188 16.3349 19.4555 17.7355 18.65 18.94C18.5763 19.0489 18.5248 19.1714 18.4985 19.3002C18.4722 19.4291 18.4716 19.5619 18.4966 19.691C18.5217 19.8201 18.572 19.943 18.6447 20.0527C18.7173 20.1623 18.8109 20.2566 18.92 20.33C19.0856 20.4412 19.2806 20.5004 19.48 20.5C19.6438 20.5002 19.8052 20.4603 19.9499 20.3835C20.0946 20.3068 20.2183 20.1957 20.31 20.06C21.4163 18.4172 22.005 16.4806 22 14.5C22 11.8478 20.9465 9.3043 19.0711 7.42893C17.1957 5.55357 14.6522 4.5 12 4.5Z`,fill:`currentColor`})}),Ii=e=>(0,Z.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 20 21`,fill:`none`,...e,children:[(0,Z.jsx)(`path`,{d:`M15.9532 15.8037C16.7679 15.8037 17.4304 16.4662 17.4304 17.2809C17.4304 18.0955 16.7679 18.758 15.9532 18.758C15.1385 18.758 14.4761 18.0955 14.4761 17.2809C14.4761 16.4662 15.1385 15.8037 15.9532 15.8037ZM15.9532 14.0132C14.1538 14.0132 12.6855 15.4814 12.6855 17.2809C12.6855 19.0803 14.1538 20.5485 15.9532 20.5485C17.7527 20.5485 19.2209 19.0803 19.2209 17.2809C19.2209 15.4814 17.7527 14.0132 15.9532 14.0132Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M3.51768 15.8037C4.33236 15.8037 4.99485 16.4662 4.99485 17.2809C4.99485 18.0955 4.33236 18.758 3.51768 18.758C2.703 18.758 2.04051 18.0955 2.04051 17.2809C2.04051 16.4662 2.703 15.8037 3.51768 15.8037ZM3.51768 14.0132C1.71822 14.0132 0.25 15.4814 0.25 17.2809C0.25 19.0803 1.71822 20.5485 3.51768 20.5485C5.31714 20.5485 6.78536 19.0803 6.78536 17.2809C6.78536 15.4814 5.31714 14.0132 3.51768 14.0132Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M3.51768 2.59862C4.33236 2.59862 4.99485 3.2611 4.99485 4.07579C4.99485 4.89047 4.33236 5.55296 3.51768 5.55296C2.703 5.55296 2.04051 4.89047 2.04051 4.07579C2.04051 3.2611 2.703 2.59862 3.51768 2.59862ZM3.51768 0.808105C1.71822 0.808105 0.25 2.27632 0.25 4.07579C0.25 5.87525 1.71822 7.34347 3.51768 7.34347C5.31714 7.34347 6.78536 5.87525 6.78536 4.07579C6.78536 2.27632 5.31714 0.808105 3.51768 0.808105Z`,fill:`currentColor`}),(0,Z.jsx)(`path`,{d:`M3.51758 14.1295V6.52881`,stroke:`currentColor`,strokeWidth:2,strokeMiterlimit:10}),(0,Z.jsx)(`path`,{d:`M15.9523 14.1294V6.17058C15.9523 5.0157 15.0123 4.07568 13.8574 4.07568H11.9863`,stroke:`currentColor`,strokeWidth:2,strokeMiterlimit:10}),(0,Z.jsx)(`path`,{d:`M11.9863 7.6119L8.45898 4.07565L11.9863 0.54834V7.6119Z`,fill:`currentColor`})]}),Li=e=>(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Z.jsx)(`path`,{d:`M4 4C4 2.89543 4.89543 2 6 2H14C14.2652 2 14.5196 2.10536 14.7071 2.29289L19.7071 7.29289C19.8946 7.48043 20 7.73478 20 8V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20V4ZM17.5858 8L14 4.41421V8H17.5858ZM12 4L6 4V20H18V10H13C12.4477 10 12 9.55228 12 9V4ZM8 13C8 12.4477 8.44772 12 9 12H15C15.5523 12 16 12.4477 16 13C16 13.5523 15.5523 14 15 14H9C8.44772 14 8 13.5523 8 13ZM8 17C8 16.4477 8.44772 16 9 16H15C15.5523 16 16 16.4477 16 17C16 17.5523 15.5523 18 15 18H9C8.44772 18 8 17.5523 8 17Z`,fill:`currentColor`})}),Ri=e=>(0,Z.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Z.jsx)(`path`,{d:`M2.71996 7.64998C2.91552 7.7074 3.10351 7.78797 3.27996 7.88998C3.89978 8.25991 4.60814 8.45523 5.32996 8.45523C6.05178 8.45523 6.76015 8.25991 7.37996 7.88998C7.77042 7.66914 8.21137 7.55307 8.65996 7.55307C9.10855 7.55307 9.5495 7.66914 9.93996 7.88998C10.5673 8.24867 11.2773 8.43735 12 8.43735C12.7226 8.43735 13.4327 8.24867 14.06 7.88998C14.4504 7.66914 14.8914 7.55307 15.34 7.55307C15.7885 7.55307 16.2295 7.66914 16.62 7.88998C17.2537 8.25217 17.97 8.44503 18.7 8.44998C19.4051 8.44852 20.0966 8.25492 20.7 7.88998C20.8764 7.78797 21.0644 7.7074 21.26 7.64998C21.5146 7.57572 21.7292 7.40336 21.8568 7.17081C21.9843 6.93827 22.0142 6.66459 21.94 6.40998C21.8657 6.15537 21.6933 5.94069 21.4608 5.81317C21.2282 5.68564 20.9546 5.65572 20.7 5.72998C20.3494 5.83818 20.0135 5.98932 19.7 6.17998C19.3814 6.36627 19.019 6.46446 18.65 6.46446C18.2809 6.46446 17.9185 6.36627 17.6 6.17998C16.9066 5.79105 16.1249 5.58679 15.33 5.58679C14.535 5.58679 13.7533 5.79105 13.06 6.17998C12.738 6.36703 12.3723 6.46556 12 6.46556C11.6276 6.46556 11.2619 6.36703 10.94 6.17998C10.2466 5.79105 9.46495 5.58679 8.66996 5.58679C7.87497 5.58679 7.09332 5.79105 6.39996 6.17998C6.08139 6.36627 5.719 6.46446 5.34996 6.46446C4.98092 6.46446 4.61853 6.36627 4.29996 6.17998C3.98645 5.98932 3.65057 5.83818 3.29996 5.72998C3.04535 5.65572 2.77167 5.68564 2.53913 5.81317C2.30658 5.94069 2.13422 6.15537 2.05996 6.40998C1.9857 6.66459 2.01562 6.93827 2.14315 7.17081C2.27067 7.40336 2.48535 7.57572 2.73996 7.64998H2.71996ZM20.72 15.73C20.3694 15.8382 20.0335 15.9893 19.72 16.18C19.4014 16.3663 19.039 16.4645 18.67 16.4645C18.3009 16.4645 17.9385 16.3663 17.62 16.18C16.9266 15.7911 16.1449 15.5868 15.35 15.5868C14.555 15.5868 13.7733 15.7911 13.08 16.18C12.758 16.367 12.3923 16.4656 12.02 16.4656C11.6476 16.4656 11.2819 16.367 10.96 16.18C10.2666 15.7911 9.48495 15.5868 8.68996 15.5868C7.89497 15.5868 7.11332 15.7911 6.41996 16.18C6.10139 16.3663 5.739 16.4645 5.36996 16.4645C5.00092 16.4645 4.63853 16.3663 4.31996 16.18C4.00645 15.9893 3.67057 15.8382 3.31996 15.73C3.19389 15.6932 3.06182 15.6816 2.93127 15.6959C2.80073 15.7102 2.67427 15.75 2.55913 15.8132C2.44398 15.8763 2.3424 15.9615 2.26019 16.0639C2.17797 16.1663 2.11673 16.2839 2.07996 16.41C2.04319 16.536 2.03161 16.6681 2.04589 16.7987C2.06016 16.9292 2.1 17.0557 2.16315 17.1708C2.22629 17.286 2.3115 17.3875 2.4139 17.4698C2.5163 17.552 2.63389 17.6132 2.75996 17.65C2.95552 17.7074 3.14351 17.788 3.31996 17.89C3.93978 18.2599 4.64814 18.4552 5.36996 18.4552C6.09178 18.4552 6.80015 18.2599 7.41996 17.89C7.81042 17.6691 8.25137 17.5531 8.69996 17.5531C9.14855 17.5531 9.5895 17.6691 9.97996 17.89C10.6073 18.2487 11.3173 18.4374 12.04 18.4374C12.7626 18.4374 13.4727 18.2487 14.1 17.89C14.4904 17.6691 14.9314 17.5531 15.38 17.5531C15.8285 17.5531 16.2695 17.6691 16.66 17.89C17.2937 18.2522 18.01 18.445 18.74 18.45C19.4451 18.4485 20.1366 18.2549 20.74 17.89C20.9164 17.788 21.1044 17.7074 21.3 17.65C21.5546 17.5757 21.7692 17.4034 21.8968 17.1708C22.0243 16.9383 22.0542 16.6646 21.98 16.41C21.9057 16.1554 21.7333 15.9407 21.5008 15.8132C21.2682 15.6856 20.9946 15.6557 20.74 15.73H20.72ZM20.72 10.73C20.3694 10.8382 20.0335 10.9893 19.72 11.18C19.4014 11.3663 19.039 11.4645 18.67 11.4645C18.3009 11.4645 17.9385 11.3663 17.62 11.18C16.9266 10.7911 16.1449 10.5868 15.35 10.5868C14.555 10.5868 13.7733 10.7911 13.08 11.18C12.758 11.367 12.3923 11.4656 12.02 11.4656C11.6476 11.4656 11.2819 11.367 10.96 11.18C10.2666 10.7911 9.48495 10.5868 8.68996 10.5868C7.89497 10.5868 7.11332 10.7911 6.41996 11.18C6.10139 11.3663 5.739 11.4645 5.36996 11.4645C5.00092 11.4645 4.63853 11.3663 4.31996 11.18C4.00645 10.9893 3.67057 10.8382 3.31996 10.73C3.18902 10.6805 3.04917 10.6591 2.90944 10.6672C2.76971 10.6752 2.63322 10.7125 2.5088 10.7766C2.38438 10.8406 2.2748 10.9301 2.18715 11.0393C2.0995 11.1484 2.03573 11.2747 1.99996 11.41C1.96319 11.536 1.95161 11.6681 1.96589 11.7987C1.98016 11.9292 2.02 12.0557 2.08315 12.1708C2.14629 12.286 2.2315 12.3875 2.3339 12.4698C2.4363 12.552 2.55389 12.6132 2.67996 12.65C2.87552 12.7074 3.06351 12.788 3.23996 12.89C3.85978 13.2599 4.56814 13.4552 5.28996 13.4552C6.01178 13.4552 6.72015 13.2599 7.33996 12.89C7.73042 12.6691 8.17137 12.5531 8.61996 12.5531C9.06855 12.5531 9.5095 12.6691 9.89996 12.89C10.5273 13.2487 11.2373 13.4374 11.96 13.4374C12.6826 13.4374 13.3927 13.2487 14.02 12.89C14.4104 12.6691 14.8514 12.5531 15.3 12.5531C15.7485 12.5531 16.1895 12.6691 16.58 12.89C17.2137 13.2522 17.93 13.445 18.66 13.45C19.3651 13.4485 20.0566 13.2549 20.66 12.89C20.8364 12.788 21.0244 12.7074 21.22 12.65C21.4746 12.5757 21.6892 12.4034 21.8168 12.1708C21.9443 11.9383 21.9742 11.6646 21.9 11.41C21.8257 11.1554 21.6533 10.9407 21.4208 10.8132C21.1882 10.6856 20.9146 10.6557 20.66 10.73H20.72Z`,fill:`currentColor`})}),zi=`INCREASE_TEST_COVERAGE`,Bi=`I want to increase the test coverage of the repository in the current directory.
|
|
4
|
+
|
|
5
|
+
Please investigate the repo to figure out what language is being used, and where tests are located, if there are any.
|
|
6
|
+
|
|
7
|
+
If there are no tests already in the repo, add a very basic test, using typical testing strategies for the language involved.
|
|
8
|
+
|
|
9
|
+
If there are existing tests, find a function or method which lacks adequate unit tests, and add unit tests for it. Be sure to respect the projects existing test structures.
|
|
10
|
+
|
|
11
|
+
Make sure the tests pass before you finish.`,Vi=`AUTO_MERGE_PRS`,Hi=`Please add a GitHub action to this repository which automatically merges pull requests from Dependabot so long as the tests are passing.`,Ui=`FIX_README`,Wi=`Please look at the README and make the following improvements, if they make sense:
|
|
12
|
+
* correct any typos that you find
|
|
13
|
+
* add missing language annotations on codeblocks
|
|
14
|
+
* if there are references to other files or other sections of the README, turn them into links
|
|
15
|
+
* make sure the readme has an h1 title towards the top
|
|
16
|
+
* make sure any existing sections in the readme are appropriately separated with headings
|
|
17
|
+
|
|
18
|
+
If there are no obvious ways to improve the README, make at least one small change to make the wording clearer or friendlier`,Gi=`CLEAN_DEPENDENCIES`,Ki=`Examine the dependencies of the current codebase. Make sure you can run the code and any tests.
|
|
19
|
+
|
|
20
|
+
Then run any commands necessary to update all dependencies to the latest versions, and make sure the code continues to run correctly and the tests pass. If changes need to be made to the codebase, go ahead and make those changes. You can look up documentation for new versions using the browser if you need to.
|
|
21
|
+
|
|
22
|
+
If a particular dependency update is causing trouble (e.g. breaking changes that you can't fix), you can revert it and send a message to the user explaining why.
|
|
23
|
+
|
|
24
|
+
Additionally, if you're able to prune any dependencies that are obviously unused, please do so. You may use third party tools to check for unused dependencies.`,qi=`ADD_DOCS`,Ji=`Investigate the documentation in the root of the current repo. Please add a CODE_OF_CONDUCT.md and CONTRIBUTORS.md with good defaults if they are not present. Use information in the README to inform the CONTRIBUTORS doc. If there is no LICENSE currently in the repo, please add the Apache 2.0 license. Add links to all these documents into the README`,Yi=`ADD_DOCKERFILE`,Xi=`Investigate the current repo to understand the installation instructions. Then create a Dockerfile that runs the application, using best practices like arguments and multi-stage builds wherever appropriate.
|
|
25
|
+
|
|
26
|
+
If there is an existing Dockerfile, and there are ways to improve it according to best practices, do so.`,Zi={[zi]:Bi,[Vi]:Hi,[Ui]:Wi,[Gi]:Ki,[qi]:Ji,[Yi]:Xi},Qi=`!w-auto whitespace-nowrap`;function $i({onClose:e}){let{t}=a(`openhands`),{setMessageToSend:n}=H();return(0,Z.jsxs)(B,{testId:`macros-submenu`,className:`overflow-visible`,children:[(0,Z.jsx)(V,{testId:`increase-test-coverage-button`,onClick:()=>{n(Zi.INCREASE_TEST_COVERAGE),e()},className:Qi,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Fi,{width:16,height:16}),text:t(D.INCREASE_TEST_COVERAGE)})}),(0,Z.jsx)(V,{testId:`fix-readme-button`,onClick:()=>{n(Zi.FIX_README),e()},className:Qi,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Li,{width:16,height:16}),text:t(D.FIX_README)})}),(0,Z.jsx)(V,{testId:`auto-merge-prs-button`,onClick:()=>{n(Zi.AUTO_MERGE_PRS),e()},className:Qi,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Ii,{width:16,height:16}),text:t(D.AUTO_MERGE_PRS)})}),(0,Z.jsx)(V,{testId:`clean-dependencies-button`,onClick:()=>{n(Zi.CLEAN_DEPENDENCIES),e()},className:Qi,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Ri,{width:16,height:16}),text:t(D.CLEAN_DEPENDENCIES)})})]})}function ea(){let{conversationId:e,navigate:t}=We(),{data:n,isLoading:r}=G(),{data:i,isLoading:a}=wt(),o=Dt(),s=Ht(),c=l({mutationKey:Ut}),u=l({mutationKey:At}),d=e?.startsWith(`task-`)??!1,f=d||c>0||u>0,p=i?.profiles??[],m=!!e,h=m?n?.launched_agent_profile?.agent_profile_id??i?.active_agent_profile_id??null:i?.active_agent_profile_id??null,g=p.find(e=>e.id!=null&&e.id===h)?.name??null,_=(0,q.useCallback)(r=>{if(d||!r.id||r.id===h)return;if(!m){s.mutate(r.id);return}let i=e?ot(e):null,a={agentProfileId:r.id,entryPoint:`blank_conversation_profile_picker`};n?.selected_repository&&(a.repository={name:n.selected_repository,gitProvider:n.git_provider??`github`,branch:n.selected_branch??void 0}),n?.selected_workspace&&(a.workingDir=n.selected_workspace,a.workspaceMode=i?.workspace_mode??`local_repo`),i?.plugins?.length&&(a.plugins=i.plugins),o.mutateAsync(a).then(e=>t(`/conversations/${e.conversation_id}`)).catch(()=>{})},[s,n,e,o,h,m,d,t]);return{profiles:p,currentProfileId:h,currentProfileName:g,isInConversation:m,isLoading:a||d||m&&r,isSwitching:f,selectProfile:_}}function ta({onClose:e,dividerInset:t,settingsLinkClassName:n,settingsIconClassName:r}){let{t:i}=a(`openhands`),{profiles:o,currentProfileId:s,isInConversation:c,isSwitching:l,selectProfile:u}=ea(),d=t=>{u(t),e()};return(0,Z.jsxs)(Z.Fragment,{children:[o.length>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`li`,{role:`presentation`,className:`px-2 pt-1 pb-0.5`,children:(0,Z.jsx)(W.Text,{className:`text-[11px] font-medium text-[var(--oh-text-dim)] uppercase tracking-wide leading-4`,children:i(D.SETTINGS$AVAILABLE_PROFILES)})}),o.map(t=>{let n=t.id!=null&&t.id===s;return(0,Z.jsxs)(V,{testId:`chat-input-agent-profile-option-${t.name}`,isDisabled:l,onClick:r=>{if(r.preventDefault(),r.stopPropagation(),n){e();return}d(t)},className:P(`flex items-center gap-2`,n&&`bg-[var(--oh-interactive-hover)]`),children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate text-sm leading-5`,title:t.name,children:t.name}),n&&(0,Z.jsx)(Bt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]},t.id??t.name)}),c&&(0,Z.jsx)(`li`,{role:`presentation`,className:`px-2 pt-0.5 pb-1`,children:(0,Z.jsx)(W.Text,{className:`text-[11px] text-[var(--oh-text-dim)] leading-4`,children:i(D.CHAT$START_NEW_WITH_PROFILE_HINT)})})]}),o.length>0&&(0,Z.jsx)(z,{inset:t}),(0,Z.jsx)(`li`,{className:`text-sm`,children:(0,Z.jsxs)(Ge,{to:`/settings/agents`,onClick:e,className:P(`flex h-[30px] items-center gap-2 rounded p-2 leading-5 text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)] transition-colors`,n),children:[(0,Z.jsx)(fn,{width:16,height:16,className:P(`shrink-0`,r),"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:i(D.CHAT$MANAGE_AGENT_PROFILES)})]})})]})}function na({isDisabled:e,children:t,placement:n=`right`}){let{t:r}=a(`openhands`);return e?(0,Z.jsx)(qe,{content:r(D.CONVERSATION$UNAVAILABLE_FOR_ARCHIVES),placement:n,tooltipClassName:`bg-white text-black text-xs font-medium leading-5`,children:(0,Z.jsx)(`span`,{className:`block w-full`,children:t})}):t}function ra(){let{data:e}=G();return Oe(e?.sandbox_status)}function ia({onClose:e,onShowSkills:t,onShowPlugins:n,onShowHooks:r,onShowAgentTools:i,shouldShowAgentTools:o=!0,shouldShowHooks:s=!1,shouldShowPlugins:c=!1,showAgentProfileSwitch:l=!1,footerAction:u}){let{t:d}=a(`openhands`),{data:f}=G(),{providers:p}=zt(),m=ra(),[h,g]=(0,q.useState)(null),_=!!f?.selected_repository,v=p.length>0,y=_&&v,b=e=>{m||g(h===e?null:e)},x=()=>{g(null),e()};return(0,Z.jsxs)(B,{ref:xt(x),testId:`tools-context-menu`,position:`top`,alignment:`left`,className:`left-[-16px] mb-2 bottom-full overflow-visible min-w-[200px]`,children:[l&&(0,Z.jsxs)(`div`,{className:`relative group/agent-profile`,children:[(0,Z.jsx)(V,{testId:`switch-agent-profile-button`,onClick:()=>b(`agent-profile`),children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(pn,{width:16,height:16,"aria-hidden":!0}),text:d(D.CHAT$SWITCH_AGENT_PROFILE),rightIcon:(0,Z.jsx)(ki,{width:10,height:10})})}),(0,Z.jsx)(`div`,{className:P(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/agent-profile:opacity-100 group-hover/agent-profile:visible group-hover/agent-profile:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,h===`agent-profile`&&`opacity-100 visible pointer-events-auto`),children:(0,Z.jsx)(B,{testId:`agent-profile-submenu`,className:`min-w-[220px] max-w-[320px] max-h-[60vh] overflow-y-auto gap-0`,children:(0,Z.jsx)(ta,{onClose:x,dividerInset:`menu`})})})]}),y&&(0,Z.jsxs)(`div`,{className:`relative group/git`,children:[(0,Z.jsx)(na,{isDisabled:m,children:(0,Z.jsx)(V,{testId:`git-tools-button`,onClick:()=>b(`git`),isDisabled:m,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Ti,{width:16,height:16}),text:d(D.COMMON$GIT_TOOLS),rightIcon:(0,Z.jsx)(ki,{width:10,height:10})})})}),!m&&(0,Z.jsx)(`div`,{className:P(`absolute left-full top-[-6px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/git:opacity-100 group-hover/git:visible group-hover/git:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,h===`git`&&`opacity-100 visible pointer-events-auto`),children:(0,Z.jsx)(Pi,{onClose:x})})]}),(0,Z.jsxs)(`div`,{className:`relative group/macros`,children:[(0,Z.jsx)(na,{isDisabled:m,children:(0,Z.jsx)(V,{testId:`macros-button`,onClick:()=>b(`macros`),isDisabled:m,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Oi,{width:16,height:16}),text:d(D.COMMON$MACROS),rightIcon:(0,Z.jsx)(ki,{width:10,height:10})})})}),!m&&(0,Z.jsx)(`div`,{className:P(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/macros:opacity-100 group-hover/macros:visible group-hover/macros:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,h===`macros`&&`opacity-100 visible pointer-events-auto`),children:(0,Z.jsx)($i,{onClose:x})})]}),o&&(0,Z.jsx)(z,{inset:`menu`}),(0,Z.jsx)(na,{isDisabled:m,children:(0,Z.jsx)(V,{testId:`show-skills-button`,onClick:t,isDisabled:m,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Pt,{width:16,height:16,className:`stroke-[1.75]`,"aria-hidden":!0}),text:d(D.CONVERSATION$SHOW_SKILLS)})})}),c&&(0,Z.jsx)(na,{isDisabled:m,children:(0,Z.jsx)(V,{testId:`show-plugins-button`,onClick:n,isDisabled:m,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Ei,{width:16,height:16,"aria-hidden":!0}),text:d(D.CONVERSATION$SHOW_PLUGINS)})})}),s&&(0,Z.jsx)(na,{isDisabled:m,children:(0,Z.jsx)(V,{testId:`show-hooks-button`,onClick:r,isDisabled:m,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Di,{width:16,height:16,"aria-hidden":!0}),text:d(D.CONVERSATION$SHOW_HOOKS)})})}),o&&(0,Z.jsx)(na,{isDisabled:m,children:(0,Z.jsx)(V,{testId:`show-agent-tools-button`,onClick:i,isDisabled:m,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Se,{width:16,height:16}),text:d(D.BUTTON$SHOW_AGENT_TOOLS_AND_METADATA)})})}),u&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(z,{}),(0,Z.jsx)(V,{testId:u.testId,onClick:e=>{e.preventDefault(),e.stopPropagation(),u.onClick(),x()},children:(0,Z.jsx)(Q,{icon:u.icon,text:u.label})})]})]})}function aa({agentClass:e,openhandsVersion:t,onClose:n}){let{t:r}=a(`openhands`);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(at,{onClose:n,testId:`close-system-message-modal`}),(0,Z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 pr-6`,children:[(0,Z.jsx)(Re,{title:r(D.SYSTEM_MESSAGE_MODAL$TITLE)}),(e||t)&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e&&(0,Z.jsxs)(`div`,{className:`text-sm`,children:[(0,Z.jsx)(W.Text,{className:`font-semibold text-[var(--oh-text-tertiary)]`,children:r(D.SYSTEM_MESSAGE_MODAL$AGENT_CLASS)}),` `,(0,Z.jsx)(W.Text,{className:`font-medium text-content-2`,children:e})]}),t&&(0,Z.jsxs)(`div`,{className:`text-sm`,children:[(0,Z.jsx)(W.Text,{className:`font-semibold text-[var(--oh-text-tertiary)]`,children:r(D.SYSTEM_MESSAGE_MODAL$OPENHANDS_VERSION)}),` `,(0,Z.jsx)(W.Text,{className:`text-content-2`,children:t})]})]})]})]})}function oa({isActive:e,children:t,onClick:n,className:r,disabled:i=!1}){return(0,Z.jsx)(`button`,{type:`button`,disabled:i,className:P(`px-4 py-2 font-normal border-b-2 transition-colors`,e?`border-foreground text-foreground`:`border-transparent text-[var(--oh-muted)] hover:text-[var(--oh-foreground)]`,i&&`opacity-50 cursor-not-allowed`,r),onClick:n,"aria-selected":e,role:`tab`,children:t})}function sa({activeTab:e,onTabChange:t,hasTools:n}){let{t:r}=a(`openhands`);return(0,Z.jsxs)(`div`,{className:`mb-2 flex border-b border-[var(--oh-border)]`,role:`tablist`,children:[(0,Z.jsx)(oa,{isActive:e===`system`,onClick:()=>t(`system`),children:r(D.SYSTEM_MESSAGE_MODAL$SYSTEM_MESSAGE_TAB)}),n&&(0,Z.jsx)(oa,{isActive:e===`tools`,onClick:()=>t(`tools`),children:r(D.SYSTEM_MESSAGE_MODAL$TOOLS_TAB)})]})}var ca=$e(`whitespace-pre-wrap`,{variants:{size:{default:`text-sm`,small:`text-xs`},font:{default:``,mono:`font-mono`},lineHeight:{default:``,relaxed:`leading-relaxed`},background:{default:``,dark:`bg-base`},textColor:{default:``,light:`text-[var(--oh-text-tertiary)]`},padding:{default:``,medium:`p-3`,large:`px-5`},borderRadius:{default:``,medium:`rounded-md`},shadow:{default:``,inner:`shadow-inner`},maxHeight:{default:``,small:`max-h-[400px]`,large:`max-h-[60vh]`},overflow:{default:``,auto:`overflow-auto`}},defaultVariants:{size:`default`,font:`default`,lineHeight:`default`,background:`default`,textColor:`default`,padding:`default`,borderRadius:`default`,shadow:`default`,maxHeight:`default`,overflow:`default`}});function la({size:e,font:t,lineHeight:n,background:r,textColor:i,padding:a,borderRadius:o,shadow:s,maxHeight:c,overflow:l,className:u,testId:d,children:f}){return(0,Z.jsx)(`pre`,{"data-testid":d,className:P(ca({size:e,font:t,lineHeight:n,background:r,textColor:i,padding:a,borderRadius:o,shadow:s,maxHeight:c,overflow:l}),u),children:f})}function ua({content:e}){return(0,Z.jsx)(la,{size:`small`,font:`mono`,lineHeight:`relaxed`,padding:`medium`,className:`text-[var(--oh-text-tertiary)]`,children:e})}function da({parameters:e}){let{t}=a(`openhands`);return(0,Z.jsxs)(`div`,{className:`mt-2`,"data-testid":`tool-parameters`,children:[(0,Z.jsx)(W.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)]`,children:t(D.SYSTEM_MESSAGE_MODAL$PARAMETERS)}),(0,Z.jsx)(`div`,{className:`text-sm mt-2 p-3 bg-base rounded-md overflow-auto text-[var(--oh-text-tertiary)] max-h-[400px] border border-[var(--oh-border)]`,children:(0,Z.jsx)(me,{name:!1,src:e,theme:C})})]})}function fa({title:e,isExpanded:t,onClick:n,className:r}){return(0,Z.jsxs)(`button`,{type:`button`,"data-testid":`toggle-button`,onClick:n,className:P(`w-full py-3 px-3 text-left flex items-center justify-between hover:bg-tertiary transition-colors`,r),children:[(0,Z.jsx)(`div`,{className:`flex items-center`,children:(0,Z.jsx)(W.Text,{className:`font-bold text-content-2`,children:e})}),(0,Z.jsx)(W.Text,{className:`text-[var(--oh-text-tertiary)]`,children:t?(0,Z.jsx)(le,{size:18}):(0,Z.jsx)(L,{size:18})})]})}function pa({tool:e,index:t,isExpanded:n,onToggle:r}){let i=e,a=i.function||i,o=i.title||i.annotations?.title||a.name||i.type===`function`&&i.function?.name||``,s=i.description||a.description||i.type===`function`&&i.function?.description||``,c=a.parameters||i.type===`function`&&i.function?.parameters||i.parameters||null;return(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(fa,{title:String(o),isExpanded:n,onClick:()=>r(t)}),n&&(0,Z.jsxs)(`div`,{className:`px-3 pb-3 pt-1 border-t border-[var(--oh-border)]`,children:[(0,Z.jsx)(`div`,{className:`mt-2 mb-3 text-sm text-[var(--oh-text-tertiary)] leading-relaxed`,children:(0,Z.jsx)(rn,{children:String(s)})}),c&&(0,Z.jsx)(da,{parameters:c})]})]})}function ma({tools:e,expandedTools:t,onToggleTool:n}){return(0,Z.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:e.map((e,r)=>(0,Z.jsx)(pa,{tool:e,index:r,isExpanded:t[r]||!1,onToggle:n},r))})}function ha(){let{t:e}=a(`openhands`);return(0,Z.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,Z.jsx)(W.Text,{className:`text-[var(--oh-muted)]`,children:e(D.SYSTEM_MESSAGE_MODAL$NO_TOOLS)})})}function ga({activeTab:e,systemMessage:t,expandedTools:n,onToggleTool:r}){return e===`system`?(0,Z.jsx)(ua,{content:t.content}):e===`tools`?t.tools&&t.tools.length>0?(0,Z.jsx)(ma,{tools:t.tools,expandedTools:n,onToggleTool:r}):(0,Z.jsx)(ha,{}):null}function _a({isOpen:e,onClose:t,systemMessage:n}){let[r,i]=(0,q.useState)(`system`),[a,o]=(0,q.useState)({});return n?e&&(0,Z.jsx)(Ie,{onClose:t,children:(0,Z.jsxs)(Le,{width:`lg`,className:`relative max-h-[80vh] flex flex-col items-start border border-[var(--oh-border)]`,testID:`system-message-modal`,children:[(0,Z.jsx)(aa,{agentClass:n.agent_class,openhandsVersion:n.openhands_version,onClose:t}),(0,Z.jsxs)(`div`,{className:`w-full`,children:[(0,Z.jsx)(sa,{activeTab:r,onTabChange:i,hasTools:!!(n.tools&&n.tools.length>0)}),(0,Z.jsx)(`div`,{className:`h-[60vh] overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:(0,Z.jsx)(ga,{activeTab:r,systemMessage:n,expandedTools:a,onToggleTool:e=>{o(t=>({...t,[e]:!t[e]}))}})})]})]})}):null}var va=`rounded-md p-1 text-white hover:bg-tertiary cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed`;function ya({isLoading:e,isRefetching:t,onRefresh:n,onClose:r}){let{t:i}=a(`openhands`),o=i(D.BUTTON$REFRESH);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(at,{onClose:r,testId:`close-skills-modal`}),(0,Z.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4 pr-10`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Z.jsx)(Re,{title:i(D.SKILLS_MODAL$TITLE)}),(0,Z.jsx)(W.Text,{className:`text-sm text-[var(--oh-muted)]`,children:i(D.SKILLS_MODAL$WARNING)})]}),(0,Z.jsx)(qe,{content:o,placement:`bottom`,children:(0,Z.jsx)(`button`,{type:`button`,"data-testid":`refresh-skills`,onClick:n,disabled:e||t,"aria-label":o,className:va,children:(0,Z.jsx)(Me,{size:18,className:P(t&&`animate-spin`),"aria-hidden":!0})})})]})]})}function ba({title:e,count:t,children:n}){return(0,Z.jsxs)(`section`,{className:`w-full`,children:[(0,Z.jsx)(`div`,{className:`sticky top-0 z-10 border-b border-[var(--oh-border)] bg-surface-raised px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(W.Text,{className:`text-xs font-medium tracking-[0.01em] text-tertiary-light`,children:e}),(0,Z.jsx)(`span`,{className:`inline-flex shrink-0 items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`,children:t})]})}),(0,Z.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:n})]})}function xa(){return(0,Z.jsx)(`div`,{className:`flex justify-center items-center py-8`,children:(0,Z.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-white`})})}function Sa({isError:e}){let{t}=a(`openhands`);return(0,Z.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,Z.jsx)(W.Text,{className:`text-[var(--oh-muted)]`,children:t(e?D.COMMON$FETCH_ERROR:D.CONVERSATION$NO_SKILLS)})})}function Ca({triggers:e}){let{t}=a(`openhands`);return!e||e.length===0?null:(0,Z.jsxs)(`div`,{className:`mt-2 mb-3`,children:[(0,Z.jsx)(W.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)] mb-2`,children:t(D.COMMON$TRIGGERS)}),(0,Z.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:e.map(e=>(0,Z.jsx)(`span`,{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`,children:e},e))})]})}function wa({content:e}){let{t}=a(`openhands`);return(0,Z.jsxs)(`div`,{className:`mt-2`,children:[(0,Z.jsx)(W.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)] mb-2`,children:t(D.COMMON$CONTENT)}),(0,Z.jsx)(la,{size:`small`,font:`mono`,lineHeight:`relaxed`,padding:`medium`,borderRadius:`medium`,maxHeight:`small`,overflow:`auto`,className:`mt-2 border border-[var(--oh-border)] bg-base text-[var(--oh-text-tertiary)]`,children:e||t(D.SKILLS_MODAL$NO_CONTENT)})]})}var Ta={knowledge:`Knowledge`,repo:`Repository`,agentskills:`AgentSkills`},Ea=`inline-flex shrink-0 items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`;function Da({skill:e,isExpanded:t,onToggle:n}){return(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>n(e.name),className:`w-full py-3 px-3 text-left flex items-center justify-between hover:bg-tertiary transition-colors`,children:[(0,Z.jsx)(`div`,{className:`flex items-center`,children:(0,Z.jsx)(W.Text,{className:`font-bold text-content-2`,children:e.name})}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:Ea,children:Ta[e.type]}),(0,Z.jsx)(W.Text,{className:`text-[var(--oh-text-tertiary)]`,children:t?(0,Z.jsx)(le,{size:18}):(0,Z.jsx)(L,{size:18})})]})]}),t&&(0,Z.jsxs)(`div`,{className:`px-3 pb-3 pt-1 border-t border-[var(--oh-border)]`,children:[(0,Z.jsx)(Ca,{triggers:e.triggers??[]}),(0,Z.jsx)(wa,{content:e.content??``})]})]})}var Oa={project:D.SKILLS_MODAL$SECTION_PROJECT,personal:D.SKILLS_MODAL$SECTION_USER,public:D.SKILLS_MODAL$SECTION_PUBLIC};function ka({onClose:e}){let{t}=a(`openhands`),n=S(),[r,i]=(0,q.useState)({}),{data:o,isLoading:s,isError:c,refetch:l,isRefetching:u}=Qn(),d=(0,q.useMemo)(()=>o?on(o,n):null,[o,n]),f=e=>{i(t=>({...t,[e]:!t[e]}))};return(0,Z.jsx)(Ie,{onClose:e,children:(0,Z.jsxs)(Le,{width:`lg`,className:`relative max-h-[80vh] flex flex-col items-start border border-[var(--oh-border)]`,testID:`skills-modal`,children:[(0,Z.jsx)(ya,{isLoading:s,isRefetching:u,onRefresh:l,onClose:e}),(0,Z.jsx)(`div`,{className:`w-full h-[60vh] overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:s?(0,Z.jsx)(xa,{}):c||!o||o.length===0?(0,Z.jsx)(Sa,{isError:c}):d&&(0,Z.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:sn.map(e=>{let n=d[e];return n.length===0?null:(0,Z.jsx)(ba,{title:t(Oa[e]),count:n.length,children:n.map(t=>(0,Z.jsx)(Da,{skill:t,isExpanded:r[t.name]||!1,onToggle:f},`${e}-${t.name}`))},e)})})})]})})}function Aa(){let{conversationId:e}=K();return(0,q.useMemo)(()=>e?ot(e)?.plugins??[]:[],[e])}function ja({onClose:e}){let{t}=a(`openhands`),n=Aa();return(0,Z.jsx)(Ie,{onClose:e,children:(0,Z.jsxs)(Le,{width:`lg`,className:`relative flex max-h-[80vh] flex-col items-start border border-[var(--oh-border)]`,testID:`plugins-modal`,children:[(0,Z.jsx)(at,{onClose:e,testId:`close-plugins-modal`}),(0,Z.jsxs)(`div`,{className:`flex w-full flex-col gap-2 pr-10`,children:[(0,Z.jsx)(Re,{title:t(D.PLUGINS_MODAL$TITLE)}),(0,Z.jsx)(W.Text,{className:`text-sm text-[var(--oh-muted)]`,children:t(D.PLUGINS_MODAL$DESCRIPTION)})]}),(0,Z.jsx)(`div`,{className:`w-full overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:n.length===0?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-6`,children:(0,Z.jsx)(W.Text,{className:`text-[var(--oh-muted)]`,children:t(D.PLUGINS_MODAL$EMPTY)})}):(0,Z.jsx)(`ul`,{className:`divide-y divide-[var(--oh-border)]`,children:n.map(e=>(0,Z.jsxs)(`li`,{"data-testid":`active-plugin-${kt(e)}`,className:`flex flex-col gap-1 p-4`,children:[(0,Z.jsx)(W.Text,{className:`font-semibold text-white`,children:kt(e)}),(0,Z.jsx)(W.Text,{className:`text-xs text-tertiary-alt`,children:Tt(e)?t(D.PLUGINS_MODAL$SOURCE_LOCAL):Et(e)})]},Ot(e)))})})]})})}var Ma=()=>{let{conversationId:e}=Jt(),{curAgentState:t}=Wt();return c({queryKey:[`conversation`,e,`hooks`],queryFn:async()=>{if(!e)throw Error(`No conversation ID provided`);let{hooks:t}=await U.getHooks(e);return t},enabled:!!e&&t!==N.LOADING&&t!==N.INIT,staleTime:1e3*60*5,gcTime:1e3*60*15})},Na=`rounded-md p-1 text-white hover:bg-tertiary cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed`;function Pa({isLoading:e,isRefetching:t,onRefresh:n,onClose:r}){let{t:i}=a(`openhands`),o=i(D.BUTTON$REFRESH);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(at,{onClose:r,testId:`close-hooks-modal`}),(0,Z.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4 pr-10`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Z.jsx)(Re,{title:i(D.HOOKS_MODAL$TITLE)}),(0,Z.jsx)(W.Text,{className:`text-sm text-[var(--oh-muted)]`,children:i(D.HOOKS_MODAL$WARNING)})]}),(0,Z.jsx)(qe,{content:o,placement:`bottom`,children:(0,Z.jsx)(`button`,{type:`button`,"data-testid":`refresh-hooks`,onClick:n,disabled:e||t,"aria-label":o,className:Na,children:(0,Z.jsx)(Me,{size:18,className:P(t&&`animate-spin`),"aria-hidden":!0})})})]})]})}function Fa(){return(0,Z.jsx)(`div`,{className:`flex justify-center items-center py-8`,children:(0,Z.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-white`})})}function Ia({isError:e}){let{t}=a(`openhands`);return(0,Z.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,Z.jsx)(W.Text,{className:`text-[var(--oh-muted)]`,children:t(e?D.COMMON$FETCH_ERROR:D.CONVERSATION$NO_HOOKS)})})}var La=`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`;function Ra({matcher:e}){let{t}=a(`openhands`);return(0,Z.jsxs)(`div`,{className:`py-3`,children:[(0,Z.jsxs)(`div`,{className:`mb-2`,children:[(0,Z.jsx)(W.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)]`,children:t(D.HOOKS_MODAL$MATCHER)}),(0,Z.jsx)(`span`,{className:`ml-2 ${La}`,children:e.matcher})]}),(0,Z.jsxs)(`div`,{className:`mt-2`,children:[(0,Z.jsx)(W.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)] mb-2`,children:t(D.HOOKS_MODAL$COMMANDS)}),(e.hooks??[]).map((e,n)=>(0,Z.jsxs)(`div`,{className:`mt-2`,children:[(0,Z.jsx)(la,{size:`small`,font:`mono`,lineHeight:`relaxed`,padding:`medium`,borderRadius:`medium`,maxHeight:`small`,overflow:`auto`,className:`border border-[var(--oh-border)] bg-base text-[var(--oh-text-tertiary)]`,children:e.command}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2 text-xs text-[var(--oh-muted)]`,children:[(0,Z.jsx)(`span`,{className:La,children:t(D.HOOKS_MODAL$TYPE,{type:e.type})}),(0,Z.jsx)(`span`,{className:La,children:t(D.HOOKS_MODAL$TIMEOUT,{timeout:e.timeout})}),e.async?(0,Z.jsx)(`span`,{className:La,children:t(D.HOOKS_MODAL$ASYNC)}):null]})]},`${e.command}-${n}`))]})]})}var za={pre_tool_use:D.HOOKS_MODAL$EVENT_PRE_TOOL_USE,post_tool_use:D.HOOKS_MODAL$EVENT_POST_TOOL_USE,user_prompt_submit:D.HOOKS_MODAL$EVENT_USER_PROMPT_SUBMIT,session_start:D.HOOKS_MODAL$EVENT_SESSION_START,session_end:D.HOOKS_MODAL$EVENT_SESSION_END,stop:D.HOOKS_MODAL$EVENT_STOP},Ba=`inline-flex shrink-0 items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`,Va=`HOOKS_MODAL$HOOK_COUNT`;function Ha({hookEvent:e,isExpanded:t,onToggle:n}){let{t:r}=a(`openhands`),i=za[e.event_type],o=i?r(i):e.event_type,s=e.matchers.reduce((e,t)=>e+(t.hooks??[]).length,0);return(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>n(e.event_type),className:`w-full py-3 px-3 text-left flex items-center justify-between hover:bg-tertiary transition-colors`,children:[(0,Z.jsx)(`div`,{className:`flex items-center`,children:(0,Z.jsx)(W.Text,{className:`font-bold text-content-2`,children:o})}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:Ba,children:r(Va,{count:s})}),(0,Z.jsx)(W.Text,{className:`text-[var(--oh-text-tertiary)]`,children:t?(0,Z.jsx)(le,{size:18}):(0,Z.jsx)(L,{size:18})})]})]}),t&&(0,Z.jsx)(`div`,{className:`border-t border-[var(--oh-border)] px-3 pt-3 pb-3`,children:(0,Z.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:e.matchers.map((t,n)=>(0,Z.jsx)(Ra,{matcher:t},`${e.event_type}-${t.matcher}-${n}`))})})]})}function Ua({testId:e=`runtime-waiting`,messageKey:t=D.DIFF_VIEWER$WAITING_FOR_RUNTIME,className:n}){let{t:r}=a(`openhands`);return(0,Z.jsxs)(`div`,{"data-testid":e,className:P(`flex h-full w-full flex-col items-center justify-center gap-3 py-8 text-center`,n),children:[(0,Z.jsx)(Ne,{size:`small`}),(0,Z.jsx)(W.Text,{className:`text-sm text-[var(--oh-muted)]`,children:r(t)})]})}function Wa({onClose:e}){let{curAgentState:t}=Wt(),[n,r]=(0,q.useState)({}),{data:i,isLoading:a,isError:o,refetch:s,isRefetching:c}=Ma(),l=e=>{r(t=>({...t,[e]:!t[e]}))},u=![N.LOADING,N.INIT].includes(t);return(0,Z.jsx)(Ie,{onClose:e,children:(0,Z.jsxs)(Le,{width:`lg`,className:`relative max-h-[80vh] flex flex-col items-start border border-[var(--oh-border)]`,testID:`hooks-modal`,children:[(0,Z.jsx)(Pa,{isLoading:a,isRefetching:c,onRefresh:s,onClose:e}),(0,Z.jsx)(`div`,{className:`w-full h-[60vh] overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:u?a?(0,Z.jsx)(Fa,{}):o||!i||i.length===0?(0,Z.jsx)(Ia,{isError:o}):(0,Z.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:i.map(e=>(0,Z.jsx)(Ha,{hookEvent:e,isExpanded:n[e.event_type]||!1,onToggle:l},e.event_type))}):(0,Z.jsx)(Ua,{testId:`hooks-runtime-waiting`})})]})})}function Ga({handleFileIconClick:e,disabled:t=!1,showAgentProfileSwitch:n=!1}){let{t:r}=a(`openhands`),{conversationId:i}=K(),{data:o}=G(),[s,c]=q.useState(!1),{handleShowAgentTools:l,handleShowSkills:u,handleShowPlugins:d,handleShowHooks:f,systemModalVisible:p,setSystemModalVisible:m,skillsModalVisible:h,setSkillsModalVisible:g,pluginsModalVisible:_,setPluginsModalVisible:v,hooksModalVisible:y,setHooksModalVisible:b,systemMessage:x,shouldShowAgentTools:S,shouldShowHooks:C,shouldShowPlugins:w}=wi({conversationId:i??void 0,executionStatus:o?.execution_status,showOptions:!0,onContextMenuToggle:c});return(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(`button`,{type:`button`,className:P(He,`relative shrink-0 size-6`,t?`cursor-not-allowed text-[var(--oh-text-subtle)]`:void 0,s&&!t&&`text-white bg-white/10`),"aria-label":r(D.CHAT_INTERFACE$PLUS_MENU),"aria-expanded":s,"aria-haspopup":`menu`,"data-testid":`chat-plus-button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),!t&&c(e=>!e)},disabled:t,children:(0,Z.jsx)(`span`,{className:`flex h-full w-full items-center justify-center`,children:(0,Z.jsx)(je,{className:`h-[13px] w-[13px] shrink-0`,strokeWidth:2})})}),s&&(0,Z.jsx)(ia,{onClose:()=>c(!1),showAgentProfileSwitch:n,onShowSkills:u,onShowPlugins:d,onShowHooks:f,onShowAgentTools:l,shouldShowAgentTools:S,shouldShowHooks:C,shouldShowPlugins:w,footerAction:{testId:`add-files-and-images-button`,icon:(0,Z.jsx)(R,{className:`h-4 w-4 shrink-0`,strokeWidth:2,"aria-hidden":!0}),label:r(D.CHAT_INTERFACE$ADD_FILES_AND_IMAGES),onClick:e}}),(0,Z.jsx)(_a,{isOpen:p,onClose:()=>m(!1),systemMessage:x||null}),h&&(0,Z.jsx)(ka,{onClose:()=>g(!1)}),_&&(0,Z.jsx)(ja,{onClose:()=>v(!1)}),y&&(0,Z.jsx)(Wa,{onClose:()=>b(!1)})]})}var Ka=(e,t,n,r=!0)=>{let i=c({queryKey:[`conversation-metrics`,e,t,n],queryFn:async()=>{if(!e)throw Error(`Conversation ID is required`);return ct(await U.getRuntimeConversation(e,t,n))},enabled:r&&!!e,staleTime:1e3*30,gcTime:1e3*60*5,refetchInterval:1e3*30,retry:!1});return{data:i.data,isLoading:i.isLoading,error:i.error}};function qa(e){let t=e?.context_window??0;return t<=0?null:{perTurnToken:e?.per_turn_token??0,contextWindow:t}}function Ja(){let e=en(e=>e.usage),{data:t}=G(),{data:n}=Ka(t?.id,t?.conversation_url,t?.session_api_key,!!t?.id);return(0,q.useMemo)(()=>qa(e)||qa(n?.accumulated_token_usage??null),[e,n])}var Ya=()=>{let e=i();return s({mutationFn:e=>U.condenseConversation(e.conversationId,e.conversationUrl,e.sessionApiKey),onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`conversation-metrics`,r.conversationId]})}})},Xa=2500,Za=9e4;function Qa(e,t,n){return{beforeToken:e,afterToken:t,savedToken:Math.max(0,e-t),outcome:n}}function $a({beforeToken:e,baselineEventIds:t,onComplete:n,timeoutMs:r=Za}){let i=(0,q.useRef)(n);i.current=n,(0,q.useEffect)(()=>{if(e===null)return;let n=!1,a=!1,o,s=t?new Set(t):new Set(Kt.getState().eventIds),c=()=>en.getState().usage?.per_turn_token??e,l=(t,r)=>{n||(n=!0,i.current(Qa(e,t,r)))},u=()=>{let t=c();return a&&t<e?(l(t,`compacted`),!0):!1},d=()=>{clearTimeout(o),o=setTimeout(()=>{l(c(),`no_change`)},Xa)},f=()=>{for(let e of Kt.getState().events){let t=`id`in e?e.id:void 0;if(t!==void 0){if(s.has(t))continue;s.add(t)}if(Gt(e)){a=!0,u()||d();return}}};f();let p=Kt.subscribe(()=>{n||f()}),m=en.subscribe(()=>{n||u()&&clearTimeout(o)}),h=setTimeout(()=>{l(c(),a?`no_change`:`timeout`)},r);return()=>{n=!0,p(),m(),clearTimeout(o),clearTimeout(h)}},[e,t,r])}function eo(e){if(e>=1e6){let t=e/1e6;return t>=10&&Number.isInteger(t)?`${t.toFixed(0)}M`:`${t.toFixed(1)}M`}if(e>=1e3){let t=e/1e3;return Number.isInteger(t)?`${t.toFixed(0)}k`:`${t.toFixed(1)}k`}return e.toLocaleString()}function to(e,t){return t<=0?0:Math.min(100,e/t*100)}function no(e=0){let{t}=a(`openhands`),n=i(),{data:r}=G(),{curAgentState:o}=Wt(),{mutate:s,isPending:c}=Ya(),[l,u]=q.useState(null),d=q.useRef(null),p=o===N.RUNNING||o===N.LOADING,g=c||l!==null,_=!r?.id||p||g,v=t(D.CONVERSATION$COMPACT_CONTEXT_DESCRIPTION),y=q.useEffectEvent(e=>{if(u(null),d.current=null,r?.id&&n.invalidateQueries({queryKey:[`conversation-metrics`,r.id]}),e.outcome===`timeout`){m(t(D.CONVERSATION$COMPACT_CONTEXT_FAILED));return}if(e.savedToken>0){h(t(D.CONVERSATION$COMPACT_CONTEXT_COMPLETE,{saved:eo(e.savedToken),before:eo(e.beforeToken),after:eo(e.afterToken)}));return}h(t(D.CONVERSATION$COMPACT_CONTEXT_COMPLETE_NO_CHANGE))});return $a({beforeToken:l,baselineEventIds:l===null?null:d.current,onComplete:y}),{handleCompact:()=>{if(!r?.id||g)return;let n=en.getState().usage?.per_turn_token??e;d.current=new Set(Kt.getState().eventIds),s({conversationId:r.id,conversationUrl:r.conversation_url,sessionApiKey:r.session_api_key},{onSuccess:()=>{u(n),h(t(D.CONVERSATION$COMPACT_CONTEXT_STARTED))},onError:e=>{u(null),d.current=null,m(f(e)||t(D.CONVERSATION$COMPACT_CONTEXT_FAILED))}})},isCompacting:g,isDisabled:_,description:v}}function ro(e){return e>90?`danger`:e>70?`warning`:`neutral`}function io({perTurnToken:e,contextWindow:t}){let{t:n}=a(`openhands`),r=t<=0,i=to(e,t),o=ro(i),s=o===`warning`,c=o===`danger`,l=Math.round(i),u=Math.max(0,100-l),d=r?n(D.CONVERSATION$CONTEXT_WINDOW_UNKNOWN):`${l}% ${n(D.CONVERSATION$USED)} (${u}% ${n(D.CONVERSATION$LEFT)})`;return(0,Z.jsxs)(`div`,{"data-testid":`context-meter`,className:`flex flex-col gap-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`span`,{className:`font-semibold`,children:n(D.CONVERSATION$CONTEXT_WINDOW)}),(0,Z.jsx)(`span`,{className:P(`shrink-0 text-xs`,c?`text-red-500`:s?`text-amber-500`:`text-[var(--oh-muted)]`),children:d})]}),(0,Z.jsx)(`div`,{className:`relative h-1.5 w-full rounded-full bg-tertiary`,children:(0,Z.jsx)(`div`,{"data-testid":`context-meter-bar`,className:P(`absolute inset-y-0 left-0 rounded-full transition-all duration-300`,c?`bg-red-500`:s?`bg-amber-500`:`bg-foreground`),style:{width:`${i}%`}})}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:r?e.toLocaleString():`${e.toLocaleString()} / ${t.toLocaleString()}`})})]})}var $=16,ao=2,oo=`color-mix(in srgb, var(--oh-foreground) ${.42*100}%, transparent)`,so={neutral:`var(--oh-foreground)`,warning:`#f59e0b`,danger:`#ef4444`};function co({percentage:e,className:t}){let n=($-ao)/2,r=2*Math.PI*n,i=Math.min(100,Math.max(0,e)),a=r-i/100*r,o=ro(i);return(0,Z.jsxs)(`svg`,{width:$,height:$,viewBox:`0 0 ${$} ${$}`,className:P(`shrink-0`,t),"aria-hidden":!0,children:[(0,Z.jsx)(`circle`,{cx:$/2,cy:$/2,r:n,fill:`none`,style:{stroke:oo},strokeWidth:ao,"data-testid":`context-window-ring-track`}),(0,Z.jsx)(`circle`,{cx:$/2,cy:$/2,r:n,fill:`none`,stroke:so[o],strokeWidth:ao,strokeLinecap:`round`,strokeDasharray:r,strokeDashoffset:a,transform:`rotate(-90 ${$/2} ${$/2})`,className:`transition-[stroke-dashoffset,stroke] duration-300`,"data-testid":`context-window-ring-arc`})]})}var lo={neutral:`bg-foreground`,warning:`bg-amber-500`,danger:`bg-red-500`},uo={neutral:`text-[var(--oh-muted)]`,warning:`text-amber-500`,danger:`text-red-500`};function fo(){let{t:e}=a(`openhands`),t=Ja(),{navigateToTab:n}=tn(),[r,i]=q.useState(!1),o=q.useRef(null),s=xt(()=>i(!1),o),{handleCompact:c,isCompacting:l,isDisabled:u}=no(t?.perTurnToken??0);if(!t)return null;let d=to(t.perTurnToken,t.contextWindow),f=Math.round(d),p=Math.max(0,100-f),m=`${f}% ${e(D.CONVERSATION$USED)} (${p}% ${e(D.CONVERSATION$LEFT)})`,h=`${eo(t.perTurnToken)} / ${eo(t.contextWindow)}`,g=ro(d),_=()=>{i(!1),n(`usage`)};return(0,Z.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Z.jsx)(qe,{content:e(D.CHAT_INTERFACE$SHOW_CONTEXT),placement:`top`,children:(0,Z.jsx)(`button`,{ref:o,type:`button`,className:P(He,`size-8`),"aria-label":`${e(D.CHAT_INTERFACE$CONTEXT_WINDOW_METER_LABEL)}: ${m}`,"aria-expanded":r,"aria-haspopup":`dialog`,"data-testid":`context-window-meter`,onClick:e=>{e.preventDefault(),e.stopPropagation(),i(e=>!e)},children:(0,Z.jsx)(co,{percentage:d})})}),r&&(0,Z.jsxs)(`div`,{ref:s,"data-testid":`context-window-meter-popover`,className:P(`absolute bottom-full right-0 z-[60] mb-2 w-[280px]`,`flex flex-col gap-0.5 rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 shadow-lg`),children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 px-2 py-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-semibold text-[var(--oh-foreground)]`,children:e(D.CONVERSATION$CONTEXT_WINDOW)}),(0,Z.jsx)(`span`,{className:P(`shrink-0 text-xs`,uo[g]),children:m})]}),(0,Z.jsx)(`button`,{type:`button`,"data-testid":`context-window-meter-bar-button`,className:`relative h-1.5 w-full rounded-full cursor-pointer`,style:{backgroundColor:oo},"aria-label":e(D.COMMON$USAGE),onClick:e=>{e.preventDefault(),e.stopPropagation(),_()},children:(0,Z.jsx)(`span`,{className:P(`absolute inset-y-0 left-0 rounded-full transition-all duration-300`,lo[g]),style:{width:`${Math.min(100,d)}%`}})}),(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsxs)(`button`,{type:`button`,"data-testid":`context-window-compact-button`,disabled:u,"aria-busy":l,"aria-label":e(D.CONVERSATION$COMPACT_CONTEXT),className:P(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs`,`text-[var(--oh-muted)] hover:bg-[var(--oh-interactive-hover)] hover:text-[var(--oh-foreground)]`,`transition-colors disabled:cursor-not-allowed disabled:opacity-50`),onClick:e=>{e.preventDefault(),e.stopPropagation(),c()},children:[l?(0,Z.jsx)(Ae,{className:`size-3 animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(pe,{className:`size-3`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:e(D.CONVERSATION$COMPACT_CONTEXT)})]}),(0,Z.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:h})]})]}),(0,Z.jsx)(z,{inset:`menu`}),(0,Z.jsx)(V,{testId:`context-window-plan-usage`,onClick:e=>{e.preventDefault(),e.stopPropagation(),_()},children:(0,Z.jsx)(jt,{icon:(0,Z.jsx)(be,{size:16}),text:e(D.COMMON$USAGE)})})]})]})}var po=()=>{let e=i();return s({mutationFn:e=>ht(e.conversationId),onMutate:async()=>(await e.cancelQueries({queryKey:[`user`,`conversations`]}),{previousConversations:e.getQueryData([`user`,`conversations`])}),onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]}),e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`v1-batch-get-app-conversations`]})}})},mo=()=>{let e=i();return s({mutationFn:e=>gt(e.conversationId),onMutate:async()=>(await e.cancelQueries({queryKey:[`user`,`conversations`]}),{previousConversations:e.getQueryData([`user`,`conversations`])}),onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]}),e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`v1-batch-get-app-conversations`]}),e.invalidateQueries({queryKey:[`unified`,`vscode_url`]})}})};function ho({disabled:e,canSubmit:t=!0,hasStartedConversation:n,onAddFileClick:r=()=>{},showButton:i=!0,buttonClassName:o=``,handleSubmit:s=()=>{}}){let{t:c}=a(`openhands`),l=ve(),u=po(),d=mo(),{conversationId:f}=K(),{backend:p}=b(),m=p.kind===`cloud`,h=ri(),g=!f||n===!1,_=wt({enabled:g}),v=g&&!(f?.startsWith(`task-`)??!1)&&(_.data?.profiles?.length??0)>0,y=m&&!h.isAcpContext,x=yr(),{curAgentState:S}=Wt(),{conversationMode:C,setConversationMode:w}=H(),{handlePlanClick:T,isCreatingConversation:E}=Xr(),O=q.useRef(null),k=q.useRef(null),A=q.useRef(null),j=q.useRef(null),ee=q.useRef(null),M=q.useRef(null),[te,ne]=q.useState(1/0),[re,ie]=q.useState(0),[ae,oe]=q.useState(32),[F,se]=q.useState(96),[I,le]=q.useState(120),[L,ue]=q.useState(!1),[fe,R]=q.useState(null),[pe,me]=q.useState();q.useEffect(()=>{let e=O.current,t=k.current,n=A.current,r=j.current,i=ee.current;if(!e||!t||!n||!i||y&&!r||typeof ResizeObserver>`u`)return;let a=()=>{let a=e.getBoundingClientRect().width,o=t.getBoundingClientRect().width,s=n.getBoundingClientRect().width,c=i.getBoundingClientRect().width;if(a>0&&ne(a),o>0&&ie(o),s>0&&oe(s),c>0&&le(c),r){let e=r.getBoundingClientRect().width;e>0&&se(e)}},o=new ResizeObserver(()=>{a()});return o.observe(e),o.observe(t),o.observe(n),o.observe(i),r&&o.observe(r),a(),()=>o.disconnect()},[y]);let he=()=>{f&&u.mutate({conversationId:f})},ge=()=>{f&&d.mutate({conversationId:f})},_e=l.isPending||u.isPending,ye=q.useCallback(e=>{let t=e,n={showCodeInline:!1,showModelInline:!1};return y&&t>=F&&(n.showCodeInline=!0,t-=F+12),t>=I&&(n.showModelInline=!0),n},[y,F,I]),be=te-re-8-ae-12,xe=ye(be),Se=(!y||xe.showCodeInline)&&xe.showModelInline?xe:ye(be-28-12),z=y?Se.showCodeInline:!1,Ce=Se.showModelInline,we=te>=360,Te=y&&!z||!Ce;q.useEffect(()=>{Te||(ue(!1),R(null))},[Te]);let Ee=xt(()=>{ue(!1),R(null)}),De=S===N.RUNNING||E||x!==`OPEN`,Oe=()=>{R(null),ue(!1)},ke=yi({isAcp:h.isAcpContext}),Ae=P(`group`,ze),je=P(`text-[var(--oh-muted)] group-hover:text-[var(--oh-foreground)]`,ze);q.useLayoutEffect(()=>{if(!L||!M.current)return;let e=M.current,t=()=>{let t=e.getBoundingClientRect();me({position:`fixed`,top:t.top-8,left:t.left,transform:`translateY(-100%)`,zIndex:9999})};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[L]);let Me=(0,Z.jsxs)(B,{ref:Ee,testId:`chat-input-overflow-menu`,position:`top`,alignment:`left`,className:`!static !top-auto !bottom-auto !left-auto !right-auto !mt-0 overflow-visible min-w-[200px]`,children:[y&&!z&&(0,Z.jsxs)(`div`,{className:`relative group/overflow-agent`,children:[(0,Z.jsx)(V,{testId:`overflow-agent-button`,onClick:()=>R(e=>e===`agent`?null:`agent`),isDisabled:De,children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Kr,{className:`h-[11px] w-[11px]`}),text:c(C===`code`?D.COMMON$CODE:D.COMMON$PLAN),rightIcon:(0,Z.jsx)(ki,{width:10,height:10})})}),!De&&(0,Z.jsx)(`div`,{className:P(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/overflow-agent:opacity-100 group-hover/overflow-agent:visible group-hover/overflow-agent:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,fe===`agent`&&`opacity-100 visible pointer-events-auto`),children:(0,Z.jsxs)(B,{testId:`overflow-agent-submenu`,className:`overflow-visible min-w-[195px]`,children:[(0,Z.jsx)(V,{testId:`overflow-agent-code`,onClick:e=>{e.preventDefault(),e.stopPropagation(),w(`code`),Oe()},children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Kr,{className:`h-[11px] w-[11px]`}),text:c(D.COMMON$CODE)})}),(0,Z.jsx)(V,{testId:`overflow-agent-plan`,onClick:e=>{T(e),Oe()},children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(Zt,{width:16,height:16,color:`currentColor`}),text:c(D.COMMON$PLAN)})})]})})]}),!Ce&&(0,Z.jsxs)(`div`,{className:`relative group/overflow-model`,children:[(0,Z.jsx)(V,{testId:`overflow-model-button`,onClick:()=>R(e=>e===`model`?null:`model`),children:(0,Z.jsx)(Q,{icon:(0,Z.jsx)(de,{width:16,height:16,strokeWidth:2,"aria-hidden":!0}),text:c(D.SETTINGS$AGENT_MODEL),rightIcon:(0,Z.jsx)(ki,{width:10,height:10})})}),(0,Z.jsx)(`div`,{className:P(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/overflow-model:opacity-100 group-hover/overflow-model:visible group-hover/overflow-model:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,fe===`model`&&`opacity-100 visible pointer-events-auto`),children:(0,Z.jsx)(B,{testId:`overflow-model-submenu`,className:`min-w-[220px] max-w-[320px] max-h-[60vh] overflow-y-auto gap-0`,children:ke===`model`?(0,Z.jsx)(ci,{model:h,onClose:Oe,dividerInset:`menu`,settingsLinkClassName:Ae,settingsIconClassName:je}):(0,Z.jsx)(gi,{onClose:Oe,dividerInset:`menu`,settingsLinkClassName:Ae,settingsIconClassName:je})})})]})]});return(0,Z.jsxs)(`div`,{ref:O,className:`w-full min-w-0 flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`div`,{className:`flex min-w-0 items-center gap-1`,children:(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`div`,{ref:A,className:P(!1),children:(0,Z.jsx)(Ga,{disabled:e,handleFileIconClick:r,showAgentProfileSwitch:v})}),y&&(0,Z.jsx)(`div`,{ref:j,className:P(!z&&`hidden`),children:(0,Z.jsx)(Zr,{})}),(0,Z.jsx)(`div`,{ref:ee,className:P(!Ce&&`hidden`),children:ke===`model`?(0,Z.jsx)(li,{}):(0,Z.jsx)(_i,{})}),Te&&(0,Z.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Z.jsx)(`button`,{ref:M,type:`button`,className:P(He,`size-6`),"aria-label":c(D.CHAT_INTERFACE$MORE_INPUT_ACTIONS),"aria-expanded":L,"aria-haspopup":`menu`,onClick:e=>{e.preventDefault(),e.stopPropagation(),ue(e=>!e)},children:(0,Z.jsx)(Mt,{width:16,height:16,color:`currentColor`})}),L&&typeof document<`u`&&pe&&fr.createPortal((0,Z.jsx)(`div`,{style:pe,children:Me}),document.body)]})]})}),(0,Z.jsxs)(`div`,{ref:k,className:`ml-auto flex shrink-0 items-center gap-2`,children:[we&&f&&(0,Z.jsx)(Gr,{handleStop:he,handleResumeAgent:ge,disabled:e,isPausing:_e}),(0,Z.jsx)(fo,{}),i&&(0,Z.jsx)(ce,{buttonClassName:o,handleSubmit:s,disabled:e||!t})]})]})}function go(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\*{3}(.+?)\*{3}/g,`$1`).replace(/\*{2}(.+?)\*{2}/g,`$1`).replace(/\*(.+?)\*/g,`$1`).replace(/_{3}(.+?)_{3}/g,`$1`).replace(/_{2}(.+?)_{2}/g,`$1`).replace(/_(.+?)_/g,`$1`).replace(/`(.+?)`/g,`$1`).replace(/~~(.+?)~~/g,`$1`)}function _o(e){let t=e,n=e.match(/^---\s*\n([\s\S]*?)\n---/);if(n){let r=n[1].match(/^description:\s*(.+)$/m);if(r){let e=r[1].trim();return(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))&&(e=e.slice(1,-1)),go(e)}t=e.slice(n[0].length)}let r=t.split(`
|
|
27
|
+
`).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith(`#`)&&e!==`---`);if(!r)return null;let i=go(r);return i.match(/^[^.!?\n]*[.!?]/)?.[0]||i}function vo({item:e,isSelected:t,onSelect:n,ref:r}){let i=(0,q.useMemo)(()=>`description`in e.skill&&e.skill.description?go(e.skill.description):`content`in e.skill&&e.skill.content?_o(e.skill.content):null,[e.skill]);return(0,Z.jsxs)(`button`,{role:`option`,"aria-selected":t,ref:r,type:`button`,className:P(`w-full px-3 py-2.5 text-left`,Xe,t?`bg-tertiary`:`hover:bg-[var(--oh-surface-raised)]`),onMouseDown:t=>{t.preventDefault(),n(e)},children:[(0,Z.jsx)(Vt,{className:`font-normal`,children:e.command}),i&&(0,Z.jsx)(Vt,{className:`text-xs text-[var(--oh-muted)] mt-0.5 truncate block`,children:i})]})}function yo({items:e,selectedIndex:t,onSelect:n}){let{t:r}=a(`openhands`),i=(0,q.useRef)([]);return(0,q.useEffect)(()=>{i.current=i.current.slice(0,e.length)},[e.length]),(0,q.useEffect)(()=>{let e=i.current[t];e&&e.scrollIntoView({block:`nearest`})},[t]),e.length===0?null:(0,Z.jsxs)(`div`,{role:`listbox`,"aria-label":r(D.CHAT_INTERFACE$COMMANDS),className:`absolute bottom-full left-0 w-full mb-1 bg-[var(--oh-surface)] border border-[var(--oh-border-subtle)] rounded-lg shadow-lg max-h-[300px] overflow-y-auto custom-scrollbar z-50`,"data-testid":`slash-command-menu`,children:[(0,Z.jsx)(`div`,{className:`px-3 py-2 text-xs text-[var(--oh-muted)] border-b border-[var(--oh-border-subtle)]`,children:r(D.CHAT_INTERFACE$COMMANDS)}),(0,Z.jsx)(`div`,{className:Ye,children:e.map((e,r)=>(0,Z.jsx)(vo,{item:e,isSelected:r===t,onSelect:n,ref:e=>{i.current[r]=e}},e.command))})]})}function bo({chatContainerRef:e,isDragOver:t,disabled:n,canSubmit:r,hasStartedConversation:i,isNewConversationPending:a=!1,showButton:o,buttonClassName:s,chatInputRef:c,handleFileIconClick:l,handleSubmit:u,onDragOver:d,onDragLeave:f,onDrop:p,onInput:m,onPaste:h,onKeyDown:g,onFocus:_,onBlur:v,isSlashMenuOpen:y=!1,slashItems:b=[],slashSelectedIndex:x=0,onSlashSelect:S}){return(0,Z.jsxs)(`div`,{ref:e,className:P(`bg-[var(--oh-surface)] box-border content-stretch flex flex-col items-start justify-center p-4 relative rounded-[15px] w-full`,H(e=>e.conversationMode)===`plan`&&`border border-[#597FF4]`),onDragOver:e=>d(e,n),onDragLeave:e=>f(e,n),onDrop:e=>p(e,n),children:[t&&(0,Z.jsx)(ir,{}),(0,Z.jsx)(lr,{}),(0,Z.jsxs)(`div`,{className:`relative w-full`,children:[y&&S&&(0,Z.jsx)(yo,{items:b,selectedIndex:x,onSelect:S}),(0,Z.jsx)(dr,{chatInputRef:c,isNewConversationPending:a,onInput:m,onPaste:h,onKeyDown:g,onFocus:_,onBlur:v})]}),(0,Z.jsx)(ho,{disabled:n,canSubmit:r,hasStartedConversation:i,onAddFileClick:()=>l(n),showButton:o,buttonClassName:s,handleSubmit:u})]})}function xo({fileInputRef:e,onChange:t}){return(0,Z.jsx)(`input`,{type:`file`,ref:e,multiple:!0,accept:`*/*`,className:`hidden`,onChange:t,"data-testid":`upload-image-input`})}function So({disabled:e=!1,isNewConversationPending:t=!1,hasStartedConversation:n,showButton:r=!0,onSubmit:i,onFocus:a,onBlur:o,onFilesPaste:s,className:c=``,buttonClassName:l=``}){let[u,d]=q.useState(!1),{submittedMessage:f,clearAllFiles:p,setShouldHideSuggestions:m,setSubmittedMessage:h,images:g,files:_}=H(),v=e,y=(0,q.useRef)(i);(0,q.useEffect)(()=>{y.current=i},[i]),(0,q.useEffect)(()=>{!f||e||(y.current(f),h(null))},[f,e,h]);let{chatInputRef:b,messageToSend:x,checkIsContentEmpty:S,clearEmptyContentHandler:C,saveDraft:w}=Nn(),T=q.useCallback(()=>{let e=b.current?.innerText??``,t=g.length>0||_.length>0;d(e.trim().length>0||t)},[b,g,_]),{fileInputRef:E,chatContainerRef:D,isDragOver:O,handleFileIconClick:k,handleFileInputChange:A,handleDragOver:j,handleDragLeave:ee,handleDrop:M}=Pn(s),{gripRef:te,isGripVisible:N,isGripDragging:ne,canResize:re,handleTopEdgeClick:ie,smartResize:ae,handleGripMouseDown:oe,handleGripTouchStart:F,increaseHeightForEmptyContent:se,resetManualResize:ce}=Yn(b,x),{handleSubmit:I}=Zn(b,E,ae,i,ce),le=q.useCallback(()=>{I(),T()},[I,T]),{handleInput:L,handlePaste:ue,handleKeyDown:de,handleBlur:fe,handleFocus:R}=Xn(b,ae,se,S,C,a,o),{isMenuOpen:pe,filteredItems:me,selectedIndex:he,updateSlashMenu:ge,selectItem:_e,handleSlashKeyDown:ve,closeMenu:ye}=er(b);return(0,q.useEffect)(()=>()=>{m(!1),p()},[m,p]),(0,q.useEffect)(()=>{T()},[T,g.length,_.length]),(0,Z.jsxs)(`div`,{className:P(`w-full`,c),children:[(0,Z.jsx)(xo,{fileInputRef:E,onChange:A}),(0,Z.jsxs)(`div`,{className:`relative w-full`,children:[(0,Z.jsx)(tr,{gripRef:te,isGripVisible:N,isGripDragging:ne,canResize:re,handleTopEdgeClick:ie,handleGripMouseDown:oe,handleGripTouchStart:F}),(0,Z.jsx)(bo,{chatContainerRef:D,isDragOver:O,disabled:v,canSubmit:u,hasStartedConversation:n,isNewConversationPending:t,showButton:r,buttonClassName:l,chatInputRef:b,handleFileIconClick:k,handleSubmit:le,onDragOver:j,onDragLeave:ee,onDrop:M,onInput:()=>{L(),ge(),w(),T()},onPaste:ue,onKeyDown:e=>{ve(e)||de(e,v,le)},onFocus:R,onBlur:()=>{fe(),ye(),T()},isSlashMenuOpen:pe,slashItems:me,slashSelectedIndex:he,onSlashSelect:_e})]})]})}var Co=`${se} `,wo=(e,t)=>{let n=Xt(e=>e.show),r=i(),{switchAndLog:o}=fi(),{backend:s,orgId:c}=b(),{t:l}=a();return(0,q.useCallback)(i=>{let a=i.trim();if(!(a===`/model`||a.startsWith(Co))){t(i);return}let u=a.slice(se.length).trim();if(u){o(e??null,u);return}if(!e)return;let d=Qt();r.fetchQuery({queryKey:[...p.all,s.id,c],queryFn:ut.listProfiles,staleTime:0}).then(({profiles:t})=>n(e,d,t)).catch(e=>{let t=l(D.MODEL$LIST_FAILED);m(e instanceof Error&&e.message?e.message:t)})},[e,t,n,r,o,s.id,c,l])},To=e=>e.type.startsWith(`image/`),Eo=async e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{t()},r.onerror=()=>{n(Error(`Failed to read file: ${e.name}`))},r.onabort=()=>{n(Error(`File reading was aborted: ${e.name}`))},r.readAsArrayBuffer(e)}),Do=async e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{t()},r.onerror=()=>{n(Error(`Failed to read image: ${e.name}`))},r.onabort=()=>{n(Error(`Image reading was aborted: ${e.name}`))},r.readAsDataURL(e)}),Oo=async e=>{let t=await Promise.allSettled(e.map(async e=>(await Eo(e),e))),n=[],r=[];return t.forEach((t,i)=>{t.status===`fulfilled`?n.push(t.value):r.push({file:e[i],error:t.reason})}),{successful:n,failed:r}},ko=async e=>{let t=await Promise.allSettled(e.map(async e=>(await Do(e),e))),n=[],r=[];return t.forEach((t,i)=>{t.status===`fulfilled`?n.push(t.value):r.push({file:e[i],error:t.reason})}),{successful:n,failed:r}};function Ao(){let{images:e,files:t,addImages:n,addFiles:r,addFileLoading:i,removeFileLoading:a,addImageLoading:o,removeImageLoading:s,markImagesAsPasted:c}=H();return{handleUpload:(0,q.useCallback)(async(l,u)=>{let d=Or(l,[...e,...t]);if(!d.isValid){m(`Error: ${d.errorMessage}`);return}let f=l.filter(e=>!To(e)),p=l.filter(e=>To(e));p.length>0&&c(p.map(e=>e.name)),f.forEach(e=>i(e.name)),p.forEach(e=>o(e.name));try{let[e,t]=await Promise.all([Oo(f),ko(p)]);e.successful.length>0&&(r(e.successful),e.successful.forEach(e=>a(e.name))),t.successful.length>0&&(n(t.successful),t.successful.forEach(e=>s(e.name))),e.failed.forEach(({file:e,error:t})=>{a(e.name),m(`Failed to process file ${e.name}: ${t.message}`)}),t.failed.forEach(({file:e,error:t})=>{s(e.name),m(`Failed to process image ${e.name}: ${t.message}`)})}catch{f.forEach(e=>a(e.name)),p.forEach(e=>s(e.name)),m(`An unexpected error occurred while processing files`)}},[e,t,n,r,i,a,o,s,c])}}function jo({hasSelection:e,testId:t=`dropdown-loading`}){return(0,Z.jsx)(`div`,{className:P(`absolute top-1/2 transform -translate-y-1/2`,e?`right-11`:`right-6`),children:(0,Z.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-transparent border-t-white rounded-full`,"data-testid":t})})}function Mo({providers:e,value:t,placeholder:n,className:r,errorMessage:i,disabled:o=!1,isLoading:s=!1,onChange:c,inputClassName:l,toggleButtonClassName:u,itemClassName:d}){let{t:f}=a(`openhands`),[p,m]=(0,q.useState)(``),[h,g]=(0,q.useState)(t||null),_=e=>{switch(e){case`github`:return`GitHub`;case`gitlab`:return`GitLab`;case`bitbucket`:return`Bitbucket`;case`bitbucket_data_center`:return`Bitbucket Data Center`;case`azure_devops`:return`Azure DevOps`;default:return e.charAt(0).toUpperCase()+e.slice(1)}},v=(0,q.useMemo)(()=>h&&p===_(h)||!p?.trim()?e:e.filter(e=>_(e).toLowerCase().includes(p.toLowerCase())),[e,p,h]),{isOpen:y,getToggleButtonProps:b,getMenuProps:x,getInputProps:S,highlightedIndex:C,getItemProps:w,selectedItem:T}=Ke({items:v,itemToString:e=>e?_(e):``,selectedItem:h,onSelectedItemChange:({selectedItem:e})=>{g(e||null),c?.(e||null)},onInputValueChange:({inputValue:e})=>{m(e||``)},inputValue:p});(0,q.useEffect)(()=>{t!==h&&g(t||null)},[t,h]),(0,q.useEffect)(()=>{T&&!y?m(_(T)):T||m(``)},[T,y]);let E=(e,t,n,r,i)=>(0,Z.jsx)(mn,{item:e,index:t,isSelected:e===r,getItemProps:i,getDisplayText:_,getItemKey:e=>e,isProviderDropdown:!0,itemClassName:d},e),O=e=>(0,Z.jsx)(hn,{inputValue:e,searchMessage:`No providers found`,emptyMessage:`No providers available`,testId:`git-provider-dropdown-empty`});return(0,Z.jsxs)(`div`,{className:P(`relative`,r),children:[(0,Z.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[T&&(0,Z.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:(0,Z.jsx)(xe,{gitProvider:T,className:`min-w-[14px] min-h-[14px] w-[14px] h-[14px]`})}),(0,Z.jsx)(`input`,{...S({disabled:o,placeholder:n??f(D.COMMON$SELECT_PROVIDER_PLACEHOLDER),readOnly:!0,className:P(`w-29.5 h-6 py-0 border border-[var(--oh-border-input)] rounded shadow-none h-6 min-h-6 max-h-6 `,`text-inherit bg-tertiary placeholder:text-[var(--oh-muted)]`,`focus:outline-none focus:ring-0 focus:border-[var(--oh-border-input)]`,`disabled:bg-tertiary disabled:cursor-not-allowed disabled:opacity-60`,`pl-1.5 pr-[1px] cursor-pointer text-xs font-normal leading-5`,T&&`pl-6`,l)}),"data-testid":`git-provider-dropdown`}),(0,Z.jsx)(`div`,{className:`absolute right-0 top-1/2 transform -translate-y-1/2 flex items-center gap-1`,children:(0,Z.jsx)(_n,{isOpen:y,disabled:o,getToggleButtonProps:b,iconClassName:u})}),s&&(0,Z.jsx)(jo,{hasSelection:!!T})]}),(0,Z.jsx)(vn,{isOpen:y,filteredItems:v,inputValue:p,highlightedIndex:C,selectedItem:T,getMenuProps:x,getItemProps:w,renderItem:E,renderEmptyState:O,itemKey:e=>e}),(0,Z.jsx)(gn,{isError:!!i,message:i})]})}var No=(e,t=30,n)=>o({queryKey:[`repository`,e,`branches`,`paginated`,t,n],queryFn:async({pageParam:r})=>!e||!n?{items:[],next_page_id:null}:Lt.getRepositoryBranches(e,n,``,r??void 0,t),enabled:!!e&&!!n,staleTime:1e3*60*5,getNextPageParam:e=>e.next_page_id?e.next_page_id:void 0,initialPageParam:null});function Po(e,t,n=30,r){return c({queryKey:[`repository`,e,`branches`,`search`,t,n,r],queryFn:async()=>!e||!t||!r?[]:(await Lt.searchRepositoryBranches(e,r,t,void 0,n)).items,enabled:!!e&&!!t&&!!r,staleTime:1e3*60*5,gcTime:1e3*60*15})}function Fo(e,t,n,r,i,a){let{data:o,fetchNextPage:s,hasNextPage:c,isLoading:l,isFetchingNextPage:u,isError:d}=No(e,30,t),{data:f,isLoading:p}=Po(e,r,30,t),m=(0,q.useMemo)(()=>o?.pages?.flatMap(e=>e.items)||[],[o]),h=(0,q.useMemo)(()=>n?m.find(e=>e.name===n):null,[m,n]),{data:g,isLoading:_}=Po(e,n&&!h&&m.length>0&&!r?n:``,30,t);return{branches:(0,q.useMemo)(()=>{let e=r&&f&&i!==a?.name,t=e?f:m;if(n){let r=e?t.find(e=>e.name===n):h;if(!r&&g&&g.length>0)r=g.find(e=>e.name===n),r&&(t=[r,...t]);else if(r){let e=t.filter(e=>e.name!==n);t=[r,...e]}}return t},[r,f,m,a,i,n,h,g]),allBranches:m,fetchNextPage:s,hasNextPage:c,isLoading:l||_,isFetchingNextPage:u,isError:d,isSearchLoading:p}}function Io({isOpen:e,filteredBranches:t,inputValue:n,highlightedIndex:r,selectedItem:i,getMenuProps:a,getItemProps:o,onScroll:s,menuRef:c}){return(0,Z.jsx)(`div`,{"data-testid":`git-branch-dropdown-menu`,children:(0,Z.jsx)(vn,{isOpen:e,filteredItems:t,inputValue:n,highlightedIndex:r,selectedItem:i,getMenuProps:a,getItemProps:o,onScroll:s,menuRef:c,renderItem:(e,t,n,r,i)=>(0,Z.jsx)(mn,{item:e,index:t,isSelected:r?.name===e.name,getItemProps:i,getDisplayText:e=>e.name,getItemKey:e=>e.name},e.name),renderEmptyState:e=>(0,Z.jsx)(`li`,{className:`px-3 py-2`,children:(0,Z.jsx)(hn,{inputValue:e,searchMessage:`No branches found`,emptyMessage:`No branches available`,testId:`git-branch-dropdown-empty`})}),itemKey:e=>e.name})})}function Lo({repository:e,provider:t,selectedBranch:n,onBranchSelect:r,defaultBranch:i,placeholder:o,disabled:s=!1,className:c}){let{t:l}=a(`openhands`),[u,d]=(0,q.useState)(``),[f,p]=(0,q.useState)(!1),m=Rt(u,300),h=(0,q.useRef)(null),g=(0,q.useMemo)(()=>m.trim().length>0?m.trim():``,[m]),{branches:_,isLoading:v,isError:y,fetchNextPage:b,hasNextPage:x,isFetchingNextPage:S,isSearchLoading:C}=Fo(e,t,i||null,g,u,n),w=y?Error(`Failed to load branches`):null,T=(0,q.useCallback)(()=>{d(``),r(null),p(!0)},[r]),E=(0,q.useCallback)(e=>{r(e),d(``)},[r]),O=(0,q.useCallback)(e=>{let{scrollTop:t,scrollHeight:n,clientHeight:r}=e.currentTarget;n-t<=r*1.5&&x&&!S&&b()},[x,S,b]),{isOpen:k,selectedItem:A,highlightedIndex:j,getInputProps:ee,getItemProps:M,getMenuProps:te,getToggleButtonProps:N}=Ke({items:_,selectedItem:n,itemToString:e=>e?.name||``,onSelectedItemChange:({selectedItem:e})=>{E(e||null)},inputValue:u,stateReducer:(e,t)=>t.type===Ke.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes});(0,q.useEffect)(()=>{e&&(r(null),p(!1))},[e,r]),(0,q.useEffect)(()=>{if(e&&i&&!n&&!f&&_.length>0&&!v){let e=_.find(e=>e.name===i);e&&r(e)}},[e,i,n,f,_,r,v]),(0,q.useEffect)(()=>{d(``)},[e]),(0,q.useEffect)(()=>{n&&!k?d(n.name):!n&&!k&&d(``)},[n,k]);let ne=v||C||S;return(0,Z.jsxs)(`div`,{className:P(`relative`,c),children:[(0,Z.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[(0,Z.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:ne?(0,Z.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-transparent border-t-white rounded-full`}):(0,Z.jsx)(Ti,{width:16,height:16})}),(0,Z.jsx)(`input`,{...ee({disabled:s||!e,placeholder:o??l(D.COMMON$SELECT_BRANCH_PLACEHOLDER),className:P(Ve,`text-inherit shadow-none pl-7 pr-16 text-sm font-normal leading-5`,`placeholder:text-[var(--oh-muted)]`,`disabled:cursor-not-allowed disabled:opacity-60`),onChange:e=>{d(e.target.value)}}),"data-testid":`git-branch-dropdown-input`}),(0,Z.jsxs)(`div`,{className:`absolute right-1 top-1/2 transform -translate-y-1/2 flex items-center`,children:[n&&(0,Z.jsx)(yn,{disabled:s,onClear:T}),(0,Z.jsx)(_n,{isOpen:k,disabled:s||!e,getToggleButtonProps:N})]})]}),(0,Z.jsx)(Io,{isOpen:k,filteredBranches:_,inputValue:u,highlightedIndex:j,selectedItem:A,getMenuProps:te,getItemProps:M,onScroll:O,menuRef:h}),(0,Z.jsx)(gn,{isError:!!w})]})}function Ro({className:e}){return(0,Z.jsx)(`div`,{className:P(`w-3 h-3 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300 absolute right-0 top-1/2 -translate-y-1/2 h-full w-10.5 pr-2.5 justify-end git-external-link-icon`,e),children:(0,Z.jsx)(un,{width:12,height:12,color:`white`})})}function zo({selectedRepository:e,gitProvider:t,workspaceName:n,emptyStateLabel:r,onClick:i,disabled:o}){let{t:s}=a(`openhands`),{data:c}=Fe(),l=!!e&&!!t,u=t?c?.provider_tokens_set[t]:null,d=l?te(t,e,u):void 0,f=!e&&!n,p=e||n||s(D.COMMON$CONNECT_REPO);return l?(0,Z.jsxs)(`a`,{href:d,target:`_blank`,rel:`noopener noreferrer`,className:P(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2.5 py-1 rounded-[100px] flex-1 truncate relative`,`border border-[var(--oh-border)] bg-transparent hover:border-[var(--oh-border-subtle)] cursor-pointer`),children:[(0,Z.jsx)(`div`,{className:`w-3 h-3 flex items-center justify-center flex-shrink-0`,children:(0,Z.jsx)(xe,{gitProvider:t,className:`w-3 h-3 inline-flex`})}),(0,Z.jsx)(`div`,{className:`font-normal text-white text-sm leading-5 truncate flex-1 min-w-0`,title:p,children:p}),(0,Z.jsx)(Ro,{})]}):(0,Z.jsxs)(`button`,{type:`button`,onClick:i,disabled:o,className:P(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2.5 py-1 rounded-[100px] truncate relative`,`border border-[rgba(71,74,84,0.50)] bg-transparent`,o?`cursor-not-allowed opacity-50`:`cursor-pointer hover:border-[var(--oh-border-subtle)]`),children:[(0,Z.jsx)(`div`,{className:`w-3 h-3 flex items-center justify-center flex-shrink-0 text-white`,children:f?(0,Z.jsx)(he,{className:`w-3 h-3`,strokeWidth:2,"aria-hidden":!0,"data-testid":`git-control-bar-connect-repo-icon`}):(0,Z.jsx)(_t,{width:12,height:12,color:`white`})}),(0,Z.jsx)(`div`,{className:`font-normal text-white text-sm leading-5 truncate flex-1 min-w-0`,title:p,children:p})]})}function Bo({selectedBranch:e,selectedRepository:t,gitProvider:n}){let{t:r}=a(`openhands`),{data:i}=Fe(),o=n?i?.provider_tokens_set[n]:null,s=!!e&&!!t&&!!n,c=s?ne(n,t,e,o):void 0,l=e||r(D.COMMON$NO_BRANCH);return(0,Z.jsxs)(`a`,{href:s?c:void 0,target:`_blank`,rel:`noopener noreferrer`,className:P(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2.5 py-1 rounded-[100px] w-fit flex-shrink-0 max-w-[200px] truncate relative`,s?`border border-[var(--oh-border)] bg-transparent hover:border-[var(--oh-border-subtle)] cursor-pointer`:`border border-[rgba(71,74,84,0.50)] bg-transparent cursor-not-allowed min-w-[108px]`),children:[(0,Z.jsx)(`div`,{className:`w-3 h-3 flex items-center justify-center flex-shrink-0`,children:(0,Z.jsx)(Ti,{width:12,height:12,color:`white`})}),(0,Z.jsx)(`div`,{className:`font-normal text-white text-sm leading-5 truncate`,title:l,children:l}),s&&(0,Z.jsx)(Ro,{})]})}function Vo(){let{t:e}=a(`openhands`),{navigate:t}=We(),{isConfigured:n,isLoading:r}=De();return r||n?null:(0,Z.jsxs)(`div`,{"data-testid":`home-llm-not-configured-banner`,role:`alert`,className:`mt-3 flex w-full flex-col gap-3 rounded-xl border border-[var(--oh-border)] bg-[var(--oh-surface-raised)] px-4 py-3 text-[var(--oh-foreground)] sm:flex-row sm:items-center sm:justify-between sm:py-4`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start sm:items-center`,children:[(0,Z.jsx)(`div`,{className:`flex-shrink-0`,children:(0,Z.jsx)(It,{className:`align-middle text-yellow-400`})}),(0,Z.jsx)(W.Text,{className:`ml-3 text-sm font-medium`,children:e(D.HOME$LLM_NOT_CONFIGURED_MESSAGE)})]}),(0,Z.jsx)(Ue,{testId:`home-llm-not-configured-action`,type:`button`,variant:`primary`,className:`w-fit shrink-0 self-start whitespace-nowrap sm:self-auto`,onClick:()=>t(`/settings/llm`),children:e(D.HOME$LLM_NOT_CONFIGURED_ACTION)})]})}export{Ti as A,Cr as B,Fi as C,Q as D,Ai as E,zr as F,Sn as G,yr as H,Br as I,Lr as L,vi as M,Xr as N,Di as O,Vr as P,kr as R,Ii as S,ji as T,Qn as U,xr as V,Y as W,ra as _,Mo as a,Ri as b,So as c,to as d,Ka as f,_a as g,ka as h,Lo as i,wi as j,Ei as k,io as l,Ua as m,Bo as n,Ao as o,Wa as p,zo as r,wo as s,Vo as t,no as u,na as v,Mi as w,Li as x,Zi as y,Or as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,bt as n,n as r,r as i,t as a,yt as o}from"./vendor-styling-Ck5D_A2Q.js";import{U as s}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js";import{n as c}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-rfV8mQ9m.js";import{t as l}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js";import{D as u,h as d,o as f}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js";import{t as p}from"./useMutation-DFnzkf6f.js";import{t as m}from"./useQuery-BXWbZBZl.js";import{$ as h,I as g,M as _,Mt as v,N as y,Nt as b,R as x,ct as S,j as C,n as w}from"./active-backend-context-DKFSMbn3.js";import{B as T,W as E,t as D}from"./utils-DaCIEEQP.js";import{t as O}from"./back-nav-button-Dm9tIjVf.js";import{n as k,r as A}from"./map-provider-B9LTm23I.js";import{t as j}from"./external-link-DFpYunfj.js";import{t as M}from"./info-uYSVzX86.js";import{t as N}from"./triangle-alert-SM-q4NU_.js";import{t as P}from"./proxy-tcFL2yTQ.js";import{t as F}from"./loading-spinner-0L3ZTToZ.js";import{t as ee}from"./settings-DcNPxz0v.js";import{t as I}from"./settings-service.api-B2agVfjL.js";import{n as te}from"./use-settings-C5VhGpqd.js";import{f as ne}from"./form-control-classes-CGw40z5h.js";import{t as L}from"./brand-button-Dxv6PDeN.js";import{i as re}from"./dropdown-classes-DJe-E6MC.js";import{a as ie,t as ae}from"./settings-dropdown-input-tM0A0ipy.js";import{t as R}from"./settings-input-C03KUoSC.js";import{t as z}from"./profiles-service.api-QB-T_u-g.js";import{a as B,d as V,n as H,p as U,r as W,t as G}from"./llm-subscription-DTqtBCWz.js";import{t as K}from"./llm-subscription-service-BpPfzW4x.js";import{t as oe}from"./use-llm-profiles-djGAhTWL.js";import{i as se,n as ce,t as le}from"./use-can-manage-org-profiles-BWMahtUh.js";import{t as ue}from"./u-edit-DAkcF52u.js";import{a as de,n as fe,r as pe,t as me}from"./format-model-name-BNPKVsIq.js";import{_ as he,f as ge,m as _e,y as ve}from"./schema-field-Csw5fhtN.js";import{t as ye}from"./copy-to-clipboard-button-Cjkswvnj.js";import{r as be}from"./typography-SgFy466J.js";import{t as xe}from"./sdk-section-page-HTffvm7Q.js";import{o as q}from"./extension-module-card-classes-DpeaYhYo.js";import{a as Se,i as Ce,n as J,o as we,r as Y,t as Te}from"./badge-D4SqUCsR.js";import{t as Ee}from"./u-check-circle-BKn1spCL.js";import{i as De,n as Oe,r as ke,t as Ae}from"./settings-list-classes-BJ0g8rWj.js";import{n as je}from"./api-error-message-BJyfWp6p.js";import{n as Me}from"./settings-section-header-context-BOJ_Fbak.js";var Ne=u(`text-cursor`,[[`path`,{d:`M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1`,key:`uvaxm9`}],[`path`,{d:`M7 22h1a4 4 0 0 0 4-4`,key:`1l7xii`}],[`path`,{d:`M7 2h1a4 4 0 0 1 4 4`,key:`1vrvvh`}]]);function Pe(){let e=c();return p({mutationFn:e=>z.activateProfile(e),onSuccess:async()=>{I.invalidateCache(),await e.invalidateQueries({queryKey:_.all}),await e.invalidateQueries({queryKey:x.personal()})},meta:{disableToast:!0}})}var Fe=e=>{let[t,...n]=e.split(`/`);return!t||n.length===0?{provider:``,model:e,separator:``}:{provider:t,model:n.join(`/`),separator:`/`}};function Ie(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(n))}function Le(e,t){return t===void 0?e:e.filter(e=>e.verified===t)}function Re(e,t){return!t||t<=0?e:e.slice(0,t)}function ze(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}var Be=class{static async searchModels(e={},t){let n=S();if(n.backend.kind===`cloud`){let t=ze({page_id:e.page_id,limit:e.limit,query:e.query,verified__eq:e.verified__eq,provider__eq:e.provider__eq});return P({backend:n.backend,method:`GET`,path:`/api/v1/config/models/search${t}`})}let r=new d(h()),i=t===void 0?r.getVerifiedModels():Promise.resolve(t),[a,o]=await Promise.all([r.getModels(),i]),s=e.provider__eq??null,c=new Set(s?o?.[s]??[]:[]),l=[...c].map(e=>({provider:s,name:e,verified:!0})),u=s?(a??[]).filter(e=>e.startsWith(`${s}/`)).map(e=>e.slice(s.length+1)).filter(e=>e.length>0&&!c.has(e)).map(e=>({provider:s,name:e,verified:!1})):[];return{items:Re(Le(Ie([...l,...u],e.query),e.verified__eq),e.limit),next_page_id:null}}static async searchProviders(e={},t){let n=S();if(n.backend.kind===`cloud`){let t=ze({page_id:e.page_id,limit:e.limit,query:e.query,verified__eq:e.verified__eq});return P({backend:n.backend,method:`GET`,path:`/api/v1/config/providers/search${t}`})}let r=new d(h()),i=t===void 0?r.getVerifiedModels():Promise.resolve(t),[a,o]=await Promise.all([r.getProviders(),i]),s=new Set(Object.keys(o??{}));return{items:Re(Le(Ie([...new Set([...s,...a??[]])].map(e=>({name:e,verified:s.has(e)})),e.query),e.verified__eq),e.limit),next_page_id:null}}},Ve=[`config`,`verified-models`],X=1e3*60*5,He=1e3*60*15;async function Ue(){return S().backend.kind===`cloud`?{}:await new d(h()).getVerifiedModels()??{}}var We=()=>m({queryKey:[`config`,`providers`],queryFn:async({client:e})=>{let t=await e.fetchQuery({queryKey:Ve,queryFn:Ue,staleTime:X});return(await Be.searchProviders({},t)).items},staleTime:X,gcTime:He}),Ge=10;async function Ke(e,t,n,r=0){if(r>=Ge)throw Error(`Too many pagination requests for provider ${e}`);let i=await Be.searchModels({provider__eq:e,limit:100,page_id:n},t);if(i.next_page_id){let n=await Ke(e,t,i.next_page_id,r+1);return[...i.items,...n]}return i.items}var qe=e=>m({queryKey:[`config`,`models`,e],queryFn:async({client:t})=>Ke(e,await t.fetchQuery({queryKey:Ve,queryFn:Ue,staleTime:X})),enabled:!!e,staleTime:X,gcTime:He}),Z=e(t(),1),Q=o(),Je=`shrink-0 rounded-full border border-warning/40 bg-warning/10 px-1.5 py-0.5 text-[10px] leading-none text-warning`;function Ye(){return(0,Q.jsxs)(`p`,{"data-testid":`openhands-free-models-note`,className:`flex items-start gap-2 text-xs text-warning`,children:[(0,Q.jsx)(M,{className:`mt-0.5 size-4 shrink-0 text-warning`,"aria-hidden":!0}),(0,Q.jsx)(`span`,{children:fe})]})}function Xe({isDisabled:e,currentModel:t,onChange:n,onDefaultValuesChanged:o,wrapperClassName:s,labelClassName:c}){let[,u]=Z.useState(null),[d,f]=Z.useState(null),[p,m]=Z.useState(null),{data:h=[]}=We(),{data:g=[],isLoading:_,error:v}=qe(d),y=Z.useMemo(()=>h.filter(e=>e.verified),[h]),b=Z.useMemo(()=>h.filter(e=>!e.verified),[h]),x=Z.useMemo(()=>g.filter(e=>e.verified),[g]),S=Z.useMemo(()=>g.filter(e=>!e.verified),[g]);Z.useEffect(()=>{if(t){let{provider:e,model:n}=Fe(t);u(t),f(e||null),m(n),o?.(e||null,n)}},[t]);let C=e=>{f(e),m(null),u(`${e}/`),n?.(e,null)},w=e=>{let t=`${d}/${e}`;d===`openai`&&(t=e),u(t),m(e),n?.(d,e)},O=()=>{f(null),u(null)},A=de(d&&p?`${d}/${p}`:null),j=Z.useRef(null),[M,N]=Z.useState(0);Z.useLayoutEffect(()=>{if(!A||!j.current){N(0);return}let e=()=>{N(Math.ceil(j.current?.getBoundingClientRect().width??0))};if(e(),typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e);return t.observe(j.current),()=>t.disconnect()},[A,p]);let{t:P}=l(`openhands`);return(0,Q.jsxs)(`div`,{className:D(`flex flex-col md:flex-row w-full min-w-0 justify-between gap-4 md:gap-[46px]`,s),children:[(0,Q.jsxs)(`fieldset`,{className:`flex flex-col gap-2.5 w-full`,children:[(0,Q.jsx)(`label`,{className:D(`text-sm`,c),children:P(E.LLM$PROVIDER)}),(0,Q.jsxs)(a,{"data-testid":`llm-provider-input`,isRequired:!0,isVirtualized:!1,name:`llm-provider-input`,isDisabled:e,"aria-label":P(E.LLM$PROVIDER),isClearable:!1,onSelectionChange:e=>{e?.toString()&&C(e.toString())},onInputChange:e=>!e&&O(),defaultSelectedKey:d??void 0,selectedKey:d,classNames:{popoverContent:`bg-content1 rounded-xl border border-[var(--oh-border)]`,selectorButton:ie},selectorButtonProps:{disableRipple:!0},inputProps:{classNames:{inputWrapper:ne}},children:[(0,Q.jsx)(r,{title:P(E.MODEL_SELECTOR$VERIFIED),classNames:{heading:`text-[var(--oh-muted)]`},children:y.map(e=>(0,Q.jsx)(i,{"data-testid":`provider-item-${e.name}`,children:k(e.name)},e.name))}),b.length>0?(0,Q.jsx)(r,{title:P(E.MODEL_SELECTOR$OTHERS),classNames:{heading:`text-[var(--oh-muted)]`},children:b.map(e=>(0,Q.jsx)(i,{children:k(e.name)},e.name))}):null]})]}),d===`openhands`&&(0,Q.jsx)(`div`,{className:`flex flex-col gap-2`,children:(0,Q.jsx)(ve,{testId:`openhands-account-help`,text:P(E.SETTINGS$NEED_OPENHANDS_ACCOUNT),linkText:P(E.SETTINGS$CLICK_HERE),href:T.PRODUCTION,size:`settings`,linkColor:`white`})}),(0,Q.jsxs)(`fieldset`,{className:`flex flex-col gap-2.5 w-full`,children:[(0,Q.jsx)(`label`,{className:D(`text-sm`,c),children:P(E.LLM$MODEL)}),(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(a,{"data-testid":`llm-model-input`,isRequired:!0,isVirtualized:!1,isLoading:_,name:`llm-model-input`,"aria-label":P(E.LLM$MODEL),isClearable:!1,onSelectionChange:e=>{e?.toString()&&w(e.toString())},isDisabled:e||!d,selectedKey:p,defaultSelectedKey:p??void 0,classNames:{popoverContent:`bg-content1 rounded-xl border border-[var(--oh-border)]`,selectorButton:ie},selectorButtonProps:{disableRipple:!0},inputProps:{classNames:{inputWrapper:ne}},children:[(0,Q.jsx)(r,{title:P(E.MODEL_SELECTOR$VERIFIED),classNames:{heading:`text-[var(--oh-muted)]`},children:x.map(e=>(0,Q.jsx)(i,{textValue:e.name,children:(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`truncate`,children:e.name}),de(`${d}/${e.name}`)?(0,Q.jsx)(`span`,{className:Je,children:me}):null]})},e.name))}),S.length>0?(0,Q.jsx)(r,{title:P(E.MODEL_SELECTOR$OTHERS),classNames:{heading:`text-[var(--oh-muted)]`},children:S.map(e=>(0,Q.jsx)(i,{"data-testid":`model-item-${e.name}`,textValue:e.name,children:e.name},e.name))}):null]}),A&&p?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{ref:j,className:`pointer-events-none absolute left-3 top-1/2 whitespace-pre text-sm opacity-0`,"aria-hidden":!0,children:p}),(0,Q.jsx)(`span`,{"data-testid":`selected-free-model-badge`,className:D(Je,`pointer-events-none absolute top-1/2 z-10 -translate-y-1/2`),style:{left:`calc(0.75rem + ${M}px + 0.5rem)`},children:me})]}):null]}),v&&(0,Q.jsx)(`p`,{"data-testid":`models-error`,className:`text-danger text-xs`,children:P(E.CONFIGURATION$ERROR_FETCH_MODELS)}),d===`openhands`?(0,Q.jsx)(Ye,{}):null]})]})}function Ze(){return p({mutationFn:K.startOpenAIDeviceLogin})}function Qe(){let e=c();return p({mutationFn:K.pollOpenAIDeviceLogin,onSuccess:()=>{e.invalidateQueries({queryKey:y.openaiStatus})}})}function $e(){let e=c();return p({mutationFn:K.logoutOpenAI,onSuccess:()=>{e.invalidateQueries({queryKey:y.openaiStatus})}})}function et({enabled:e=!0}={}){return m({queryKey:y.openaiStatus,queryFn:K.getOpenAIStatus,enabled:e,retry:!1,refetchOnWindowFocus:!1,staleTime:1e3*60*5,meta:{disableToast:!0}})}var tt=5,nt=1;function rt(e){let t=e.verificationUriComplete??e.verificationUri;window.open(t,`_blank`,`noopener,noreferrer`)}function it({isDisabled:e=!1}){let{t}=l(`openhands`),n=et(),r=Ze(),i=Qe(),a=$e(),[o,s]=Z.useState(null),[c,u]=Z.useState(!1),[d,f]=Z.useState(!1),p=Z.useRef(null),m=Z.useCallback(()=>{p.current!==null&&(window.clearTimeout(p.current),p.current=null)},[]),h=()=>{o&&(navigator.clipboard.writeText(o.userCode),u(!0),setTimeout(()=>u(!1),2e3))},g=r.isPending||i.isPending||a.isPending,_=!!n.data?.connected,y=Z.useCallback(async e=>{try{return(await i.mutateAsync(e)).connected?(s(null),f(!1),b(t(E.SETTINGS$SUBSCRIPTION_CONNECTED_TOAST)),!0):(f(!0),!1)}catch{return v(t(E.SETTINGS$SUBSCRIPTION_CONNECT_ERROR)),!0}},[i,t]);return Z.useEffect(()=>{if(!o||_||e)return;let t=!1,n=Math.max(o.intervalSeconds??tt,nt),r=()=>{m(),p.current=window.setTimeout(async()=>{if(t)return;let e=await y(o.deviceCode);!t&&!e&&r()},n*1e3)};return r(),()=>{t=!0,m()}},[o,m,_,e,y]),(0,Q.jsxs)(`section`,{"data-testid":`openai-subscription-auth-card`,className:`flex flex-col gap-4 rounded-xl border border-[var(--oh-border)] bg-[var(--oh-surface-raised)] p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(be.H3,{children:t(E.SETTINGS$SUBSCRIPTION_CARD_TITLE)}),(0,Q.jsx)(be.Paragraph,{className:`text-tertiary-alt text-sm leading-5`,children:t(E.SETTINGS$SUBSCRIPTION_CARD_DESCRIPTION)})]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-1 text-sm`,"data-testid":`subscription-status`,children:n.isLoading?(0,Q.jsx)(`span`,{className:`text-tertiary-light`,children:t(E.SETTINGS$SUBSCRIPTION_STATUS_CHECKING)}):n.isError?(0,Q.jsx)(`span`,{className:`text-danger`,children:t(E.SETTINGS$SUBSCRIPTION_STATUS_UNAVAILABLE)}):_?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`text-success`,children:t(E.SETTINGS$SUBSCRIPTION_STATUS_CONNECTED)}),n.data?.accountEmail?(0,Q.jsx)(`span`,{className:`text-tertiary-light`,children:t(E.SETTINGS$SUBSCRIPTION_ACCOUNT,{account:n.data.accountEmail})}):null]}):(0,Q.jsx)(`span`,{className:`text-warning`,children:t(E.SETTINGS$SUBSCRIPTION_STATUS_DISCONNECTED)})}),o?(0,Q.jsxs)(`div`,{"data-testid":`subscription-device-challenge`,className:`flex flex-col gap-2 rounded-lg border border-[var(--oh-border-subtle)] p-3 text-sm`,children:[(0,Q.jsx)(`span`,{children:t(E.SETTINGS$SUBSCRIPTION_DEVICE_INSTRUCTIONS)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-[var(--oh-surface-deep)] px-3 py-2 font-mono text-base font-semibold text-white`,children:[(0,Q.jsx)(`span`,{"data-testid":`subscription-user-code`,className:`flex-1 select-all tracking-[0.08em]`,children:o.userCode}),(0,Q.jsx)(ye,{isHidden:!1,isDisabled:!1,onClick:h,mode:c?`copied`:`copy`})]}),(0,Q.jsxs)(`a`,{href:o.verificationUriComplete??o.verificationUri,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 text-sm text-[var(--oh-accent)] underline`,children:[t(E.SETTINGS$SUBSCRIPTION_OPEN_LOGIN),(0,Q.jsx)(j,{size:14,"aria-hidden":!0})]}),d?(0,Q.jsx)(`span`,{className:`text-warning`,children:t(E.SETTINGS$SUBSCRIPTION_PENDING_TOAST)}):null]}):null,(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[_?(0,Q.jsx)(L,{testId:`subscription-disconnect`,type:`button`,variant:`tertiary`,isDisabled:e||g,onClick:async()=>{try{await a.mutateAsync(),m(),s(null),f(!1),b(t(E.SETTINGS$SUBSCRIPTION_DISCONNECTED_TOAST))}catch{v(t(E.ERROR$GENERIC))}},children:t(E.SETTINGS$SUBSCRIPTION_DISCONNECT)}):(0,Q.jsx)(L,{testId:`subscription-connect`,type:`button`,variant:`primary`,isDisabled:e||g,onClick:async()=>{try{let e=await r.mutateAsync();s(e),f(!0),rt(e)}catch{v(t(E.SETTINGS$SUBSCRIPTION_CONNECT_ERROR))}},children:t(E.SETTINGS$SUBSCRIPTION_CONNECT)}),o?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{testId:`subscription-poll`,type:`button`,variant:`secondary`,isDisabled:e||g,onClick:async()=>{o&&(m(),y(o.deviceCode))},children:t(E.SETTINGS$SUBSCRIPTION_FINISH_SIGN_IN)}),(0,Q.jsx)(L,{testId:`subscription-cancel`,type:`button`,variant:`tertiary`,isDisabled:e||g,onClick:()=>{m(),s(null),f(!1)},children:t(E.BUTTON$CANCEL)})]}):null]})]})}var at=e=>(0,Q.jsxs)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,Q.jsx)(`path`,{d:`M9.9509 15.588H10.8349L16.5125 9.91042L15.6285 9.0264L10.3991 14.2681L8.00867 11.8777L7.12465 12.7617L9.9509 15.588Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12.8521 3.29895C14.8443 3.42346 16.712 4.41954 18.0816 5.78916C19.7002 7.53231 20.5718 9.64898 20.5718 12.1392C20.5718 14.1314 19.8247 15.999 18.5796 17.6177C17.3345 19.1118 15.5914 20.2324 13.5992 20.6059C11.607 20.9794 9.61486 20.7304 7.87171 19.7343C6.12856 18.7382 4.75895 17.2441 4.01189 15.3765C3.26482 13.5088 3.14031 11.3921 3.76286 9.52447C4.38542 7.53231 5.50601 5.91367 7.24916 4.79308C8.86779 3.67248 10.86 3.17444 12.8521 3.29895ZM13.4747 19.3608C15.0933 18.9873 16.5874 18.1157 17.708 16.7461C18.7041 15.3765 19.3267 13.7578 19.2022 12.0147C19.2022 10.0225 18.4551 8.03035 17.0855 6.66073C15.8404 5.41563 14.3463 4.66857 12.6031 4.54405C10.9845 4.41954 9.24132 4.79308 7.87171 5.78916C6.50209 6.78524 5.50601 8.15486 5.00797 9.89801C4.50993 11.5166 4.50993 13.2598 5.25699 14.8784C6.00405 16.4971 7.12465 17.7422 8.61877 18.6137C10.1129 19.4853 11.856 19.7343 13.4747 19.3608Z`,fill:`currentColor`})]});function ot({testId:e,isSet:t}){return(0,Q.jsx)(`span`,{"data-testid":e||(t?`set-indicator`:`unset-indicator`),children:(0,Q.jsx)(at,{className:D(t?`text-success`:`text-danger`)})})}function st(){let e=c();return p({mutationFn:({name:e,newName:t})=>z.renameProfile(e,t),onSuccess:async(t,{name:n,newName:r})=>{S().backend.kind===`local`&&(await I.getSettings())?.title_llm_profile===n&&await I.saveSettings({title_llm_profile:r}),I.invalidateCache(),await e.invalidateQueries({queryKey:_.all}),await e.invalidateQueries({queryKey:x.personal()})},meta:{disableToast:!0}})}function ct({profile:e,onClose:t}){let{t:n}=l(`openhands`),[r,i]=(0,Z.useState)(``),a=st(),o=(0,Z.useRef)(null);if((0,Z.useEffect)(()=>{i(e?.name??``)},[e?.name]),!e)return null;let s=we(r,{isRequired:!0}),c=r===e.name,u=async()=>{if(!s){v(n(E.SETTINGS$PROFILE_NAME_RULE));return}if(c){t();return}try{await a.mutateAsync({name:e.name,newName:r}),b(n(E.SETTINGS$PROFILE_RENAMED,{name:r})),t()}catch(e){v(e instanceof Error?e.message:n(E.ERROR$GENERIC))}},d=()=>{a.isPending||t()},f=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{type:`button`,variant:`tertiary`,onClick:d,isDisabled:a.isPending,children:n(E.BUTTON$CANCEL)}),(0,Q.jsx)(L,{testId:`rename-profile-submit`,type:`button`,variant:`primary`,onClick:u,isDisabled:a.isPending||!s,children:a.isPending?(0,Q.jsx)(F,{size:`small`}):n(E.BUTTON$RENAME)})]});return(0,Q.jsx)(Y,{isOpen:!0,title:n(E.SETTINGS$PROFILE_RENAME_TITLE),footer:f,onClose:d,initialFocusRef:o,children:(0,Q.jsx)(`div`,{"data-testid":`rename-profile-modal`,className:`flex flex-col gap-3`,children:(0,Q.jsx)(Ce,{ref:o,testId:`rename-profile-input`,ruleTestId:`rename-profile-rule`,value:r,onChange:i,isRequired:!0,onKeyDown:e=>{e.key===`Enter`&&!a.isPending&&s&&u()}})})})}function lt(){let e=c();return p({mutationFn:e=>z.deleteProfile(e),onSuccess:async(t,n)=>{S().backend.kind===`local`&&(await I.getSettings())?.title_llm_profile===n&&await I.saveSettings({title_llm_profile:null}),I.invalidateCache(),await e.invalidateQueries({queryKey:_.all}),await e.invalidateQueries({queryKey:x.personal()})},meta:{disableToast:!0}})}function ut({profile:e,onClose:t}){let{t:n}=l(`openhands`),r=lt(),i=(0,Z.useRef)(null);if(!e)return null;let a=async()=>{try{await r.mutateAsync(e.name),b(n(E.SETTINGS$PROFILE_DELETED,{name:e.name})),t()}catch(e){v(e instanceof Error?e.message:n(E.ERROR$GENERIC))}},o=()=>{r.isPending||t()},s=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{ref:i,type:`button`,variant:`tertiary`,onClick:o,isDisabled:r.isPending,children:n(E.BUTTON$CANCEL)}),(0,Q.jsx)(L,{testId:`delete-profile-confirm`,type:`button`,variant:`danger`,onClick:a,isDisabled:r.isPending,"aria-busy":r.isPending,children:r.isPending?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(F,{size:`small`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:n(E.BUTTON$DELETE)})]}):n(E.BUTTON$DELETE)})]});return(0,Q.jsx)(Y,{isOpen:!0,title:n(E.SETTINGS$PROFILE_DELETE_TITLE),footer:s,onClose:o,initialFocusRef:i,children:(0,Q.jsx)(`p`,{className:`text-sm break-all`,children:n(E.SETTINGS$PROFILE_DELETE_CONFIRMATION,{name:e.name})})})}var dt=e(n(),1);function ft({onEdit:e,onRename:t,onDuplicate:n,onSetActive:r,onDelete:i,isActive:a,isActivating:o,onClose:s,anchorRef:c}){let{t:u}=l(`openhands`),d=(0,Z.useRef)(null),f=(0,Z.useRef)([]),p=c?.current??null,[m,h]=(0,Z.useState)();(0,Z.useLayoutEffect)(()=>{if(!p)return;let e=()=>{let e=p.getBoundingClientRect();e&&h({position:`fixed`,zIndex:9999,top:e.bottom+8,right:window.innerWidth-e.right,width:`max-content`})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[p]),(0,Z.useEffect)(()=>{f.current[0]?.focus()},[]),(0,Z.useEffect)(()=>{let e=e=>{let t=e.target;d.current?.contains(t)||p?.contains(t)||s()},t=e=>{e.key===`Escape`&&s()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[p,s]);let g=e=>{e(),s()},_=(0,Z.useCallback)((e,t)=>{if(e.key===`Tab`){s();return}let n=f.current.filter(Boolean).length;if(e.key===`ArrowDown`){e.preventDefault();let r=(t+1)%n;f.current[r]?.focus()}else if(e.key===`ArrowUp`){e.preventDefault();let r=(t-1+n)%n;f.current[r]?.focus()}},[s]),v=a||o,y=!!p,b=(0,Q.jsxs)(`div`,{ref:d,className:D(`absolute right-0 top-full z-10 mt-2 w-[160px] rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 shadow-lg`,re,y&&`!static !top-auto !bottom-auto !left-auto !right-auto !mt-0`),role:`menu`,"aria-orientation":`vertical`,"data-testid":`profile-actions-menu`,children:[(0,Q.jsx)(J,{index:0,icon:(0,Q.jsx)(ue,{width:16,height:16}),label:u(E.SETTINGS$PROFILE_EDIT),onClick:()=>g(e),onKeyDown:_,menuItemsRef:f,testId:`profile-edit`}),(0,Q.jsx)(J,{index:1,icon:(0,Q.jsx)(Ne,{"aria-hidden":!0,className:`size-4`,strokeWidth:2}),label:u(E.BUTTON$RENAME),onClick:()=>g(t),onKeyDown:_,menuItemsRef:f,testId:`profile-rename`}),(0,Q.jsx)(J,{index:2,icon:(0,Q.jsx)(A,{"aria-hidden":!0,className:`size-4`,strokeWidth:2}),label:u(E.BUTTON$DUPLICATE),onClick:()=>g(n),onKeyDown:_,menuItemsRef:f,testId:`profile-duplicate`}),(0,Q.jsx)(J,{index:3,icon:(0,Q.jsx)(Ee,{width:16,height:16}),label:u(E.SETTINGS$PROFILE_SET_DEFAULT),onClick:()=>g(r),onKeyDown:_,menuItemsRef:f,disabled:v,testId:`profile-set-active`}),(0,Q.jsx)(J,{index:4,icon:(0,Q.jsx)(se,{width:16,height:16}),label:u(E.BUTTON$DELETE),onClick:()=>g(i),onKeyDown:_,menuItemsRef:f,testId:`profile-delete`})]});return y?typeof document>`u`||!m?null:dt.createPortal((0,Q.jsx)(`div`,{style:m,children:b}),document.body):b}function pt({profile:e,isActive:t,canManage:n,onActivate:r,onEdit:i,onRename:a,onDuplicate:o,onDelete:s,isActivating:c}){let{t:u}=l(`openhands`),[d,f]=(0,Z.useState)(!1),p=(0,Z.useRef)(null),m=pe(e.model);return(0,Q.jsxs)(`div`,{"data-testid":`profile-row`,className:D(De,`justify-between gap-3`),children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,Q.jsx)(`span`,{className:`min-w-0 max-w-full truncate text-sm font-medium text-white`,title:e.name,children:e.name}),m?(0,Q.jsx)(`span`,{className:`min-w-0 max-w-full truncate text-sm text-[var(--oh-muted)]`,title:e.model??void 0,children:m}):null,t&&(0,Q.jsx)(Te,{className:`shrink-0 whitespace-nowrap px-2.5 py-1 text-xs`,"data-testid":`profile-active-badge`,children:u(E.SETTINGS$PROFILE_DEFAULT)}),e.provider_connection_broken&&(0,Q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full bg-[var(--oh-warning,#f59e0b)] px-2 py-0.5 text-xs font-medium text-black`,title:u(E.SETTINGS$PROFILE_BROKEN_CONNECTION_TOOLTIP),"data-testid":`profile-broken-connection-badge`,children:[(0,Q.jsx)(N,{className:`h-3 w-3`,"aria-hidden":!0}),u(E.SETTINGS$PROFILE_BROKEN_CONNECTION)]})]}),n&&(0,Q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Q.jsx)(ce,{ref:p,onClick:()=>f(e=>!e),ariaLabel:u(E.SETTINGS$PROFILE_MENU),testId:`profile-menu-trigger`,className:ke}),d&&(0,Q.jsx)(ft,{anchorRef:p,onEdit:()=>i(e),onRename:()=>a(e),onDuplicate:()=>o(e),onSetActive:()=>r(e.name),onDelete:()=>s(e),isActive:t,isActivating:c,onClose:()=>f(!1)})]})]})}function mt(e,t){let n=new Map,r={connectionId:null,label:null,profiles:[]};for(let i of e){let e=i.provider_connection_id??null;if(!e){r.profiles.push(i);continue}let a=n.get(e);a||(a={connectionId:e,label:t[e]??e,profiles:[]},n.set(e,a)),a.profiles.push(i)}let i=[...n.values()];return r.profiles.length>0?[...i,r]:i}function ht({isLoading:e,loadError:t,profiles:n,active:r,canManage:i,connectionNamesById:a={},onActivate:o,onEdit:s,onRename:c,onDuplicate:u,onDelete:d,isActivating:f}){let{t:p}=l(`openhands`),m=e=>(0,Q.jsx)(pt,{profile:e,isActive:e.name===r,canManage:i,onActivate:o,onEdit:s,onRename:c,onDuplicate:u,onDelete:d,isActivating:f},e.name),h=D(Ae,Oe);return e?(0,Q.jsx)(`div`,{className:`flex justify-center p-4`,children:(0,Q.jsx)(F,{size:`large`})}):t?(0,Q.jsx)(`div`,{"data-testid":`profiles-load-error`,className:q,children:(0,Q.jsx)(`p`,{className:`text-sm text-red-400`,children:p(E.SETTINGS$PROFILES_LOAD_ERROR)})}):n.length===0?(0,Q.jsx)(`div`,{"data-testid":`profiles-empty`,className:q,children:(0,Q.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:p(E.SETTINGS$PROFILES_EMPTY)})}):n.some(e=>e.provider_connection_id)?(0,Q.jsx)(`div`,{className:`flex flex-col gap-4`,children:mt(n,a).map(e=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{"data-testid":`profile-group-header`,className:`text-xs font-medium uppercase tracking-wide text-[var(--oh-muted)]`,children:e.label??p(E.SETTINGS$PROFILES_UNGROUPED)}),(0,Q.jsx)(`div`,{className:h,children:e.profiles.map(m)})]},e.connectionId??`__unlinked__`))}):(0,Q.jsx)(`div`,{className:h,children:n.map(m)})}function gt({connection:e,linkedProfileCount:t,onEdit:n,onDelete:r}){let{t:i}=l(`openhands`);return(0,Q.jsxs)(`div`,{"data-testid":`provider-connection-row`,className:D(De,`justify-between gap-3`),children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,Q.jsx)(`span`,{className:`min-w-0 max-w-full truncate text-sm font-medium text-white`,title:e.display_name,children:e.display_name}),(0,Q.jsx)(`span`,{className:`min-w-0 max-w-full truncate text-sm text-[var(--oh-muted)]`,children:e.provider}),(0,Q.jsx)(`span`,{className:`shrink-0 text-sm text-[var(--oh-muted)]`,children:i(E.SETTINGS$PROVIDER_CONNECTION_MODEL_COUNT,{count:t})}),(0,Q.jsx)(ot,{isSet:e.api_key_set})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,Q.jsx)(`button`,{type:`button`,"data-testid":`provider-connection-edit`,"aria-label":i(E.SETTINGS$PROVIDER_CONNECTION_EDIT_TITLE),className:ke,onClick:()=>n(e),children:(0,Q.jsx)(ue,{width:16,height:16})}),(0,Q.jsx)(`button`,{type:`button`,"data-testid":`provider-connection-delete`,"aria-label":i(E.SETTINGS$PROVIDER_CONNECTION_DELETE_TITLE),className:ke,onClick:()=>r(e),children:(0,Q.jsx)(se,{width:16,height:16})})]})]})}var _t=`/api/llm/provider-connections`;function vt(){let{host:e,apiKey:t}=h();return new f({host:e,...t?{apiKey:t}:{}})}var yt=class{static async list(){let e=vt();try{return await e.get(_t,{responseType:`json`})}finally{e.close()}}static async create(e){let t=vt();try{return await t.post(_t,e,{responseType:`json`})}finally{t.close()}}static async update(e,t){let n=vt();try{return await n.patch(`${_t}/${encodeURIComponent(e)}`,t,{responseType:`json`})}finally{n.close()}}static async delete(e){let t=vt();try{return await t.delete(`${_t}/${encodeURIComponent(e)}`,{responseType:`json`})}finally{t.close()}}};function bt(){let e=c();return p({mutationFn:e=>yt.create(e),onSuccess:async()=>{await e.invalidateQueries({queryKey:g.all})},meta:{disableToast:!0}})}function xt(){let e=c();return p({mutationFn:({id:e,request:t})=>yt.update(e,t),onSuccess:async()=>{await e.invalidateQueries({queryKey:g.all}),await e.invalidateQueries({queryKey:_.all})},meta:{disableToast:!0}})}var St=`custom`;function Ct({connection:e,isCreate:t,onClose:n,onSaved:r}){let{t:i}=l(`openhands`),a=bt(),o=xt(),s=(0,Z.useRef)(null),[c,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(St),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(``),_=t||!!e,y=!!e?.api_key_set;(0,Z.useEffect)(()=>{u(e?.display_name??``),f(e?.provider??St),g(e?.base_url??``),m(``)},[e,t]);let x=a.isPending||o.isPending,S=c.trim(),C=p.trim(),w=!!S&&(!t||!!C);if(!_)return null;let T=()=>{x||n()},D=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{type:`button`,variant:`tertiary`,onClick:T,isDisabled:x,children:i(E.BUTTON$CANCEL)}),(0,Q.jsx)(L,{testId:`provider-connection-submit`,type:`button`,variant:`primary`,onClick:async()=>{if(!w||x)return;let s=h.trim();try{if(t){let e=await a.mutateAsync({display_name:S,provider:d.trim()||St,api_key:C,base_url:s||null});b(i(E.SETTINGS$PROVIDER_CONNECTION_CREATED,{name:e.display_name})),r?.(e)}else if(e){let t=await o.mutateAsync({id:e.id,request:{display_name:S,provider:d.trim()||St,base_url:s||null,...C?{api_key:C}:{}}});b(i(E.SETTINGS$PROVIDER_CONNECTION_UPDATED,{name:t.display_name})),r?.(t)}n()}catch(e){v(je(e,i(E.ERROR$GENERIC)))}},isDisabled:x||!w,"aria-busy":x,children:x?(0,Q.jsx)(F,{size:`small`}):i(E.BUTTON$SAVE)})]});return(0,Q.jsx)(Y,{isOpen:!0,title:i(t?E.SETTINGS$PROVIDER_CONNECTION_ADD_TITLE:E.SETTINGS$PROVIDER_CONNECTION_EDIT_TITLE),footer:D,onClose:T,initialFocusRef:s,children:(0,Q.jsxs)(`div`,{"data-testid":`provider-connection-modal`,className:`flex flex-col gap-4`,children:[(0,Q.jsx)(R,{ref:s,testId:`provider-connection-name-input`,label:i(E.SETTINGS$NAME),type:`text`,className:`w-full`,value:c,onChange:u,required:!0}),(0,Q.jsx)(R,{testId:`provider-connection-provider-input`,label:i(E.SETTINGS$PROVIDER_CONNECTION_PROVIDER),type:`text`,className:`w-full`,value:d,onChange:f}),(0,Q.jsx)(R,{testId:`provider-connection-api-key-input`,label:i(E.SETTINGS_FORM$API_KEY),type:`password`,className:`w-full`,value:p,placeholder:y?`<hidden>`:``,onChange:m,startContent:y?(0,Q.jsx)(ot,{isSet:y}):void 0,hint:y?i(E.SETTINGS$PROVIDER_CONNECTION_ROTATE_HINT):void 0}),(0,Q.jsx)(R,{testId:`provider-connection-base-url-input`,label:i(E.SETTINGS$BASE_URL),type:`text`,className:`w-full`,value:h,placeholder:`https://api.openai.com`,onChange:g,showOptionalTag:!0})]})})}function wt(){let e=c();return p({mutationFn:e=>yt.delete(e),onSuccess:async()=>{await e.invalidateQueries({queryKey:g.all}),await e.invalidateQueries({queryKey:_.all})},meta:{disableToast:!0}})}function Tt({connection:e,onClose:t}){let{t:n}=l(`openhands`),r=wt(),i=(0,Z.useRef)(null);if(!e)return null;let a=async()=>{try{await r.mutateAsync(e.id),b(n(E.SETTINGS$PROVIDER_CONNECTION_DELETED,{name:e.display_name})),t()}catch(e){v(je(e,n(E.ERROR$GENERIC)))}},o=()=>{r.isPending||t()},s=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(L,{ref:i,type:`button`,variant:`tertiary`,onClick:o,isDisabled:r.isPending,children:n(E.BUTTON$CANCEL)}),(0,Q.jsx)(L,{testId:`delete-provider-connection-confirm`,type:`button`,variant:`danger`,onClick:a,isDisabled:r.isPending,"aria-busy":r.isPending,children:r.isPending?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(F,{size:`small`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:n(E.BUTTON$DELETE)})]}):n(E.BUTTON$DELETE)})]});return(0,Q.jsx)(Y,{isOpen:!0,title:n(E.SETTINGS$PROVIDER_CONNECTION_DELETE_TITLE),footer:s,onClose:o,initialFocusRef:i,children:(0,Q.jsx)(`p`,{className:`text-sm break-all`,children:n(E.SETTINGS$PROVIDER_CONNECTION_DELETE_CONFIRMATION,{name:e.display_name})})})}function Et({connections:e,linkedCountById:t,isLoading:n,loadError:r}){let{t:i}=l(`openhands`),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(null);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`h2`,{className:`text-base font-medium text-white`,children:i(E.SETTINGS$PROVIDER_CONNECTIONS_TITLE)}),(0,Q.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:i(E.SETTINGS$PROVIDER_CONNECTIONS_SUBLINE)})]}),(0,Q.jsx)(L,{testId:`add-provider-connection`,type:`button`,variant:`secondary`,className:`ml-auto`,onClick:()=>o(!0),children:i(E.SETTINGS$PROVIDER_CONNECTION_ADD)})]}),n?null:r?(0,Q.jsx)(`div`,{"data-testid":`provider-connections-load-error`,className:q,children:(0,Q.jsx)(`p`,{className:`text-sm text-red-400`,children:i(E.SETTINGS$PROVIDER_CONNECTIONS_LOAD_ERROR)})}):e.length===0?(0,Q.jsx)(`div`,{"data-testid":`provider-connections-empty`,className:q,children:(0,Q.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:i(E.SETTINGS$PROVIDER_CONNECTIONS_EMPTY)})}):(0,Q.jsx)(`div`,{className:D(Ae,Oe),children:e.map(e=>(0,Q.jsx)(gt,{connection:e,linkedProfileCount:t[e.id]??0,onEdit:c,onDelete:d},e.id))})]}),a&&(0,Q.jsx)(Ct,{isCreate:!0,onClose:()=>o(!1)}),(0,Q.jsx)(Ct,{isCreate:!1,connection:s,onClose:()=>c(null)}),(0,Q.jsx)(Tt,{connection:u,onClose:()=>d(null)})]})}function Dt(){let{backend:e}=w(),t=e.kind===`local`;return m({queryKey:[...g.all,e.id],queryFn:yt.list,...C,enabled:t,meta:{disableToast:!0}})}function Ot(){let e=c();return p({mutationFn:({name:e,request:t})=>z.saveProfile(e,t),onSuccess:async()=>{I.invalidateCache(),await e.invalidateQueries({queryKey:_.all}),await e.invalidateQueries({queryKey:x.personal()})},meta:{disableToast:!0}})}function kt({onAddProfile:e,onEditProfile:t}){let{t:n}=l(`openhands`),{data:r,isLoading:i,error:a}=oe(),o=Pe(),s=Ot(),c=le(),{backend:u}=w(),d=u.kind===`local`,{data:f,isLoading:p,error:m}=Dt(),[h,g]=(0,Z.useState)(null),[_,y]=(0,Z.useState)(null),x=r?.profiles??[],S=r?.active_profile??null,C=(0,Z.useMemo)(()=>f??[],[f]),T=(0,Z.useMemo)(()=>Object.fromEntries(C.map(e=>[e.id,e.display_name])),[C]),D=(0,Z.useMemo)(()=>{let e={};for(let t of x){let n=t.provider_connection_id;n&&(e[n]=(e[n]??0)+1)}return e},[x]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Q.jsx)(`h2`,{className:`text-base font-medium text-white`,children:n(E.SETTINGS$AVAILABLE_PROFILES)}),e&&c?(0,Q.jsx)(L,{testId:`add-llm-profile`,type:`button`,variant:`secondary`,className:`ml-auto`,onClick:e,children:n(E.SETTINGS$ADD_LLM_PROFILE)}):null]}),(0,Q.jsx)(ht,{isLoading:i,loadError:a??null,profiles:x,active:S,canManage:c,connectionNamesById:T,onActivate:async e=>{try{await o.mutateAsync(e),b(n(E.SETTINGS$PROFILE_ACTIVATED,{name:e}))}catch(e){console.error(`Failed to activate profile:`,e),v(n(E.ERROR$GENERIC))}},onEdit:e=>{t?.(e)},onRename:g,onDuplicate:async e=>{try{let t=await z.getProfile(e.name,`encrypted`),r=new Set(x.map(e=>e.name)),i=`${e.name}-copy`,a=1;for(;r.has(i);)i=`${e.name}-copy-${a}`,a+=1;await s.mutateAsync({name:i,request:{llm:t.config,include_secrets:!0}}),b(n(E.SETTINGS$PROFILE_DUPLICATED,{name:i}))}catch(e){console.error(`Failed to duplicate profile:`,e),v(n(E.ERROR$GENERIC))}},onDelete:y,isActivating:o.isPending})]}),d&&c?(0,Q.jsx)(Et,{connections:C,linkedCountById:D,isLoading:p,loadError:m??null}):null]}),(0,Q.jsx)(ct,{profile:h,onClose:()=>g(null)}),(0,Q.jsx)(ut,{profile:_,onClose:()=>y(null)})]})}function At({activeProfileName:e,originalName:t,savedName:n}){return e?t?e===t:e===n:!1}function jt(){let{t:e}=l(`openhands`),{setHideSectionHeader:t}=Me(),n=Ot(),r=Pe(),{data:i}=oe(),{data:a}=te(),{data:o}=he(a?.agent_settings_schema),s=(0,Z.useRef)(o);s.current=o;let{backend:c}=w(),u=c.kind===`local`,[d,f]=(0,Z.useState)(`list`),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(null),[_,y]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(!1),[C,T]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>(t(d!==`list`),()=>t(!1)),[d,t]);let D=(0,Z.useMemo)(()=>new Set(i?.profiles.map(e=>e.name)??[]),[i]),k=(0,Z.useMemo)(()=>!(!we(p,{isRequired:!0})||d===`create`&&D.has(p)||d===`edit`&&p!==h?.profile.name&&D.has(p)),[p,d,D,h?.profile.name]),A=(0,Z.useCallback)(()=>{m(``),g(null),f(`create`)},[]),j=(0,Z.useCallback)(async t=>{try{let e=(await z.getProfile(t.name,`encrypted`)).config??{},n=s.current?.sections.find(e=>e.key===`llm`)?.fields??[],r={};for(let t of n){let n=t.key.startsWith(`llm.`)?t.key.slice(4):t.key;r[t.key]=_e(t,e[n])}n.length===0&&(r[`llm.model`]=e.model??``,r[`llm.api_key`]=e.api_key??``,r[`llm.base_url`]=e.base_url??``,r[H]=U(e.auth_type),r[B]=e.subscription_vendor??`openai`),r[$]=typeof e.provider_connection_id==`string`?e.provider_connection_id:``,g({profile:t,initialValues:r,baseConfig:e}),m(t.name),f(`edit`)}catch(t){console.error(`Failed to fetch profile details:`,t),v(e(E.ERROR$GENERIC))}},[e]),M=(0,Z.useCallback)(()=>{f(`list`),g(null),m(``),y(null)},[]),N=(0,Z.useCallback)(e=>{if(y(e),d===`create`&&!p){let t=e.values[`llm.model`];if(typeof t==`string`&&t){let e=Se(t);D.has(e)||m(e)}}},[d,p,D]),P=(0,Z.useCallback)(async()=>{if(!_||!k)return;let t;try{t=_.getDirtyPayload().llm??{}}catch(t){v(t instanceof Error?t.message:e(E.ERROR$GENERIC));return}let a=d===`edit`&&h?.baseConfig?{...h.baseConfig}:{},o=_.view===`basic`&&Object.prototype.hasOwnProperty.call(t,`model`)&&t.model!==a.model,s={...a,...t},c=U(s.auth_type),l=u?String(_.values[`llm.provider_connection_id`]??``).trim():``;if(c===`subscription`)s.auth_type=W,s.subscription_vendor=V,s.provider_connection_id=null,delete s.api_key,delete s.base_url;else if(l)s.auth_type=G,s.subscription_vendor=null,s.provider_connection_id=l,delete s.api_key,delete s.base_url;else if(s.auth_type=G,s.subscription_vendor=null,u&&(s.provider_connection_id=null),o&&delete s.base_url,typeof s.api_key!=`string`||s.api_key.trim()===``){let e=typeof a.api_key==`string`?a.api_key:``;e?s.api_key=e:delete s.api_key}if(!(typeof s.model==`string`&&s.model)){v(e(E.SETTINGS$MODEL_REQUIRED));return}let f=p.trim(),m=h?.profile.name,g=d===`edit`&&m&&m!==f,y=At({activeProfileName:i?.active_profile,originalName:m,savedName:f});S(!0),T(!0);try{if(!l){let t=await z.validateProfile(f,{llm:s,include_secrets:!0});if(t&&!t.valid){v(t.error?.message??e(E.ERROR$GENERIC));return}}T(!1),g&&await z.renameProfile(m,f),await n.mutateAsync({name:f,request:{llm:s,include_secrets:!0}}),y&&await r.mutateAsync(f),b(e(d===`create`?E.SETTINGS$PROFILE_CREATED:E.SETTINGS$PROFILE_UPDATED,{name:f})),M()}catch(t){console.error(`Failed to save profile:`,t),v(e(E.ERROR$GENERIC))}finally{T(!1),S(!1)}},[_,k,u,p,d,h,i?.active_profile,n,r,e,M]);if(d===`list`)return(0,Q.jsx)(kt,{onAddProfile:A,onEditProfile:j});let F=e(d===`edit`?E.SETTINGS$EDIT_LLM_PROFILE:E.SETTINGS$ADD_LLM_PROFILE),I=d===`edit`&&h?e(E.SETTINGS$PROFILE_LOADED,{name:h.profile.name}):e(E.SETTINGS$PROFILE_SAVE_HINT);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(O,{testId:`back-to-profiles`,onClick:M,children:e(E.BUTTON$BACK)}),(0,Q.jsx)(be.H2,{testId:`profile-editor-title`,children:F}),(0,Q.jsx)(`p`,{"data-testid":`profile-editor-description`,className:`text-sm leading-5 text-tertiary-light`,children:I})]}),(0,Q.jsx)(Ce,{testId:`profile-name-input`,value:p,onChange:m,isRequired:!0}),(0,Q.jsx)(Ht,{embedded:!0,hideSaveButton:!0,initialValueOverrides:d===`edit`&&h?.initialValues?h.initialValues:{"llm.model":ee.llm_model,"llm.api_key":``,"llm.base_url":``,[$]:``,[H]:G,[B]:V},showProviderConnection:u,onSaveControlChange:N},d===`edit`?`edit-${h?.profile.name}`:`new-profile`),(0,Q.jsxs)(`div`,{className:`flex justify-start gap-3 pt-4`,children:[(0,Q.jsx)(L,{testId:`cancel-profile-btn`,type:`button`,variant:`secondary`,onClick:M,children:e(E.BUTTON$CANCEL)}),(0,Q.jsx)(L,{testId:`save-profile-btn`,type:`button`,variant:`primary`,onClick:P,isDisabled:!k||x||C||!_,"aria-busy":x||C,children:e(C?E.STATUS$VALIDATING:x?E.STATUS$SAVING:E.BUTTON$SAVE)})]})]})}function Mt({enabled:e=!0}={}){return m({queryKey:y.openaiModels,queryFn:K.getOpenAIModels,enabled:e,retry:!1,refetchOnWindowFocus:!1,staleTime:1e3*60*5,meta:{disableToast:!0}})}var $=`llm.provider_connection_id`,Nt=`__none__`,Pt=new Set([`llm.model`,`llm.api_key`,`llm.base_url`,$,H,B]),Ft=(e,t)=>!e||!t?null:`${e}/${t}`,It=(e,t)=>e?.sections.flatMap(e=>e.fields).find(e=>e.key===t)?.default??null,Lt={openai:new Set([`https://api.openai.com`,`https://api.openai.com/v1`]),moonshot:new Set([`https://api.kimi.com/coding/v1`])},Rt=e=>{try{let t=new URL(e),n=t.pathname.replace(/\/+$/,``)||``;return`${t.origin}${n}`}catch{return e.trim().replace(/\/+$/,``)}},zt=(e,t)=>{let n=Rt(t),{provider:r}=Fe(e);if(r){let e=Lt[r];if(e)return e.has(n)}return Object.values(Lt).some(e=>e?.has(n))};function Bt({testId:e}){let{t}=l(`openhands`);return(0,Q.jsx)(ve,{testId:e,text:t(E.SETTINGS$OPENHANDS_API_KEY_HELP_TEXT),linkText:t(E.SETTINGS$NAV_API_KEYS),href:`https://app.all-hands.dev/settings/api-keys`,suffix:` ${t(E.SETTINGS$OPENHANDS_API_KEY_HELP_SUFFIX)}`})}function Vt(){return(0,Q.jsxs)(`p`,{"data-testid":`openhands-free-models-note`,className:`flex items-start gap-2 text-xs text-warning`,children:[(0,Q.jsx)(M,{className:`mt-0.5 size-4 shrink-0 text-warning`,"aria-hidden":!0}),(0,Q.jsx)(`span`,{children:fe})]})}function Ht({scope:e=`personal`,onSaveSuccess:t,initialValueOverrides:n,embedded:r,hideSaveButton:i,suppressSuccessToast:a,onSaveControlChange:o,showProviderConnection:s}){let{t:c}=l(`openhands`),{data:u}=Dt(),d=Z.useMemo(()=>s?u??[]:[],[s,u]),{data:f}=te(e),{data:p}=he(f?.agent_settings_schema),m=f?.agent_settings?.llm,h=U(n?.[`llm.auth_type`]??m?.auth_type),[g,_]=Z.useState(h===W),{data:v,isLoading:y,isFetching:b}=Mt({enabled:g}),x=g&&!v&&(y||b),S=Z.useRef(null),C=Z.useRef(null);Z.useEffect(()=>{h===`subscription`&&_(!0)},[h]);let w=String(ee.agent_settings?.llm?.model??``),T=Z.useCallback((e,t)=>{let n=ge(e,t);if(n!==`basic`)return n;let r=e.llm_model??``,i=e.llm_base_url?.trim()??``;return i.length>0&&!zt(r,i)?`all`:`basic`},[]),D=Z.useCallback(({values:e,isDisabled:t,view:n,onChange:i})=>{let a=typeof e[`llm.model`]==`string`?e[`llm.model`]:``,o=typeof e[`llm.base_url`]==`string`?e[`llm.base_url`]:``,l=a.startsWith(`openhands/`),u=U(e[H]),p=u===W,m=t||p&&x,h=v?.includes(a)?a:v?.[0]??``,g=typeof e[`llm.api_key`]==`string`?e[`llm.api_key`]:``,y=r?g.length>0:!!f?.llm_api_key_set,b=typeof e[`llm.provider_connection_id`]==`string`?e[$]:``,T=!!b,D=s&&!p&&(T||d.length>0),O=T&&!d.some(e=>e.id===b),k=()=>(0,Q.jsx)(ae,{testId:`llm-provider-connection-input`,name:$,label:c(E.SETTINGS$PROVIDER_CONNECTION_SELECT_LABEL),items:[{key:Nt,label:c(E.SETTINGS$MCP_AUTH_MODE_NONE)},...d.map(e=>({key:e.id,label:e.display_name})),...O?[{key:b,label:b}]:[]],selectedKey:b||Nt,isClearable:!1,isDisabled:t,onSelectionChange:e=>{i($,typeof e==`string`&&e!==Nt?e:``)}}),A=(e,n)=>(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(R,{testId:e,label:c(E.SETTINGS_FORM$API_KEY),type:`password`,className:`w-full`,value:g,placeholder:y?`<hidden>`:``,onChange:e=>i(`llm.api_key`,e),isDisabled:t,startContent:y?(0,Q.jsx)(ot,{isSet:y}):void 0}),(0,Q.jsx)(ve,{testId:n,text:c(E.SETTINGS$DONT_KNOW_API_KEY),linkText:c(E.SETTINGS$CLICK_FOR_INSTRUCTIONS),href:`https://docs.openhands.dev/usage/local-setup#getting-an-api-key`})]}),j=e=>{let t=e===`subscription`?W:G;if(i(H,t),t===`subscription`){_(!0),a&&!v?.includes(a)&&(S.current=a);let e=C.current&&v?.includes(C.current)?C.current:v?.[0];i(B,V),!v?.includes(a)&&e&&i(`llm.model`,e);return}a&&v?.includes(a)&&(C.current=a,i(`llm.model`,S.current??w))},M=()=>(0,Q.jsx)(ae,{testId:`llm-auth-type-input`,name:H,label:c(E.SETTINGS$LLM_AUTH_TYPE),items:[{key:G,label:c(E.SETTINGS$LLM_AUTH_TYPE_API_KEY)},{key:W,label:c(E.SETTINGS$LLM_AUTH_TYPE_SUBSCRIPTION)}],selectedKey:u,isClearable:!1,required:!0,isDisabled:m,onSelectionChange:j}),N=()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-testid":`llm-subscription-settings`,children:[(0,Q.jsx)(ae,{testId:`llm-subscription-model-input`,name:`llm.subscription_model`,label:c(E.SETTINGS$SUBSCRIPTION_MODEL),items:(v??[]).map(e=>({key:e,label:e})),selectedKey:h,isClearable:!1,required:!0,isDisabled:m||!v?.length,onSelectionChange:e=>{let t=typeof e==`string`?e:v?.[0];t&&i(`llm.model`,t)}}),(0,Q.jsx)(it,{isDisabled:t})]});return(0,Q.jsx)(`div`,{className:`flex flex-col gap-6`,children:n===`basic`?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-testid":`llm-settings-form-basic`,children:[M(),p?N():(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Xe,{currentModel:a||void 0,onChange:(e,t)=>{let n=Ft(e,t);n&&i(`llm.model`,n)},wrapperClassName:`!flex-col !gap-6`,isDisabled:t}),D?k():null,l&&!T?(0,Q.jsx)(Bt,{testId:`openhands-api-key-help`}):null,T?null:A(`llm-api-key-input`,`llm-api-key-help-anchor`)]})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-testid":`llm-settings-form-advanced`,children:[M(),p?N():(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(R,{testId:`llm-custom-model-input`,label:c(E.SETTINGS$CUSTOM_MODEL),type:`text`,className:`w-full`,value:a,placeholder:w,onChange:e=>i(`llm.model`,e),isDisabled:t}),l&&!T?(0,Q.jsxs)(Q.Fragment,{children:[de(a)?(0,Q.jsx)(Vt,{}):null,(0,Q.jsx)(Bt,{testId:`openhands-api-key-help-2`})]}):null,D?k():null,T?null:(0,Q.jsx)(R,{testId:`base-url-input`,label:c(E.SETTINGS$BASE_URL),type:`text`,className:`w-full`,value:o,placeholder:`https://api.openai.com`,onChange:e=>i(`llm.base_url`,e),isDisabled:t}),T?null:A(`llm-api-key-input`,`llm-api-key-help-anchor-advanced`)]})]})})},[d,s,w,r,x,f?.llm_api_key_set,v,c]),O=Z.useCallback((e,t)=>{let n=structuredClone(e.agent_settings_diff??{}),r=n.llm??{};if(U(t.values[`llm.auth_type`])===`subscription`){r.auth_type=W,r.subscription_vendor=V;let e=typeof r.model==`string`?r.model:String(t.values[`llm.model`]??``),n=v?.[0];if(!v?.includes(e)&&!n)throw Error(`Subscription models are not loaded yet.`);r.model=v?.includes(e)?e:n,delete r.api_key,delete r.base_url}else t.dirty[`llm.auth_type`]&&(r.auth_type=G,r.subscription_vendor=null),t.view===`basic`&&r.model!==void 0&&(r.base_url=It(p,`llm.base_url`));return n.llm=r,{agent_settings_diff:n}},[p,v]);return(0,Q.jsx)(xe,{scope:e,settingsSources:[{settingsSource:`agent_settings`,sectionKeys:[`llm`],excludeKeys:Pt}],header:D,buildPayload:O,getInitialView:T,forceShowAdvancedView:!0,allowAllView:!0,onSaveSuccess:t,initialValueOverrides:n,embedded:r,hideSaveButton:i,suppressSuccessToast:a,onSaveControlChange:o,testId:`llm-settings-screen`})}var Ut=s(function(){return(0,Q.jsx)(jt,{})});export{Pe as a,Xe as i,Ut as n,Ot as r,Ht as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./llm-settings-CnDbbmVW.js";export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js";import{$ as t}from"./active-backend-context-DKFSMbn3.js";import{c as n,d as r,l as i,o as a,s as o,u as s}from"./llm-subscription-DTqtBCWz.js";function c(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var l=(e,t)=>{for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim().length>0)return t.trim()}return null},u=(e,t)=>{for(let n of t){let t=e[n];if(typeof t==`number`&&Number.isFinite(t))return t}return null},d=(e,t)=>{for(let n of t){let t=e[n];if(typeof t==`boolean`)return t}return!1};async function f(n,r={}){let{host:i,apiKey:a}=t(),o=new e({host:i,apiKey:a});try{return await o.request({method:r.method??`GET`,path:n,body:r.jsonBody,responseType:`json`})}finally{o.close()}}function p(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):c(e)&&Array.isArray(e.models)?e.models.filter(e=>typeof e==`string`):[]}function m(e){return{vendor:r,connected:d(e,[`connected`,`authenticated`,`is_connected`]),accountEmail:l(e,[`account_email`,`email`,`account`]),expiresAt:l(e,[`expires_at`,`expiresAt`])??u(e,[`expires_at`,`expiresAt`])}}function h(e){let t=l(e,[`device_code`,`deviceCode`]),n=l(e,[`user_code`,`userCode`]),r=l(e,[`verification_uri`,`verificationUri`,`verification_url`,`verificationUrl`]);if(!t||!n||!r)throw Error(`Subscription device login response is incomplete`);return{deviceCode:t,userCode:n,verificationUri:r,verificationUriComplete:l(e,[`verification_uri_complete`,`verificationUriComplete`,`verification_url_complete`,`verificationUrlComplete`]),expiresAt:l(e,[`expires_at`,`expiresAt`])??u(e,[`expires_at`,`expiresAt`,`expires_in`,`expiresIn`]),intervalSeconds:u(e,[`interval`,`interval_seconds`,`intervalSeconds`])}}var g=class{static async getOpenAIModels(){return p(await f(i))}static async getOpenAIStatus(){return m(await f(s))}static async startOpenAIDeviceLogin(){return h(await f(o,{method:`POST`}))}static async pollOpenAIDeviceLogin(e){return m(await f(a,{method:`POST`,jsonBody:{device_code:e}}))}static async logoutOpenAI(){return m(await f(n,{method:`POST`}))}};export{g as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js";var t=e(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./rolldown-runtime-Cyuzqnbw.js";import{St as e,yt as t}from"./vendor-styling-Ck5D_A2Q.js";import{t as n}from"./utils-DaCIEEQP.js";e();var r=t(),i=e=>(0,r.jsx)(`svg`,{width:66,height:66,viewBox:`0 0 66 66`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,r.jsx)(`path`,{d:`M63 33C63 16.4315 49.5685 3 33 3C16.4315 3 3 16.4315 3 33C3 49.5685 16.4315 63 33 63`,stroke:`currentColor`,strokeWidth:6,strokeLinecap:`round`})});function a({size:e,className:t,outerClassName:a}){let o=e===`small`?`w-[25px] h-[25px]`:`w-[50px] h-[50px]`;return(0,r.jsx)(`div`,{"data-testid":`loading-spinner`,className:n(`relative`,o,t),children:(0,r.jsx)(i,{className:n(`absolute animate-spin`,o,a)})})}export{a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-Cyuzqnbw.js";import{St as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{t as i}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js";import{b as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js";import{t as o}from"./useQuery-BXWbZBZl.js";import{$ as s,Ct as c,G as l,r as u}from"./active-backend-context-DKFSMbn3.js";import{W as d,t as f}from"./utils-DaCIEEQP.js";import{a as p,o as m,r as h,s as g}from"./backend-form-modal-DK78-jn1.js";import{t as _}from"./pencil-Clh1Wjvh.js";import{t as v}from"./plus-CEKne-Yp.js";import{t as y}from"./refresh-cw-Bh69DyYO.js";import{t as b}from"./trash-2-Dl8_RGz0.js";import{i as x,o as S,r as C}from"./use-onboarding-completion-BXpyUSsJ.js";import{t as w}from"./modal-backdrop-BSzNhM4r.js";import{r as T,t as E}from"./modal-body-CMOc2tLl.js";import{n as D}from"./modal-classes-BAb4Y_BG.js";import{t as O}from"./brand-button-Dxv6PDeN.js";import{n as k,t as A}from"./use-cloud-current-user-id-CPHMDG-C.js";import{t as j}from"./modal-close-button-CkJ0Ktjj.js";import{t as M}from"./confirmation-modal-Bk4JRcCM.js";var N=e(n(),1),P=r();function F({backend:e}){let{t}=i(`openhands`),{data:n}=o({queryKey:[`backend-version`,e.host,e.apiKey],queryFn:async()=>l(await new a(s({host:e.host,sessionApiKey:e.apiKey||null,timeout:5e3})).getServerInfo()),retry:!1,staleTime:6e4,enabled:e.kind===`local`});return n?(0,P.jsx)(`span`,{className:`inline-flex shrink-0 items-center rounded-full border border-[var(--oh-border)] bg-[var(--oh-surface)] px-1.5 py-0.5 text-[10px] font-medium leading-none text-[var(--oh-text-dim)]`,"data-testid":`manage-backends-version-${e.name}`,children:t(d.BACKEND$VERSION_LABEL,{version:n})}):null}var I=`inline-flex cursor-pointer items-center justify-center rounded-md p-1 text-muted transition-colors hover:bg-interactive-hover hover:text-white`;function L({backend:e,health:t,orgLabel:n,onSelect:r,onEdit:a,onRemove:o,onLogin:s}){let{t:l}=i(`openhands`),u=x(t?.lastError),h=e.kind===`cloud`&&C(t?.lastError),v=!u&&!h&&t?.isConnected===!1&&t.lastError?t.lastError:null,S=h?l(d.BACKEND$LOGGED_OUT):g(l,e,t),w=t?.isConnected===!0?`text-green-300`:t?.isConnected===!1?`text-red-300`:`text-[var(--oh-muted)]`,T=u?!1:t?.isConnected??null,E=t?.isConnected===!0&&!u,D=c();return(0,P.jsxs)(`li`,{className:`flex items-stretch`,"data-testid":`manage-backends-row-${e.name}`,children:[(0,P.jsxs)(`button`,{type:`button`,disabled:!E,onClick:r,className:f(`flex min-w-0 flex-1 items-center gap-3 px-3 py-3 text-left`,E?`cursor-pointer transition-colors hover:bg-interactive-hover focus-visible:bg-interactive-hover focus-visible:outline-none`:`cursor-default`),children:[(0,P.jsx)(m,{isConnected:T}),(0,P.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,P.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,P.jsx)(`span`,{className:`truncate text-sm text-white`,children:e.name}),(0,P.jsx)(F,{backend:e})]}),n?(0,P.jsx)(`span`,{"data-testid":`manage-backends-org-${e.name}`,className:`truncate text-xs text-[var(--oh-text-secondary)]`,children:n}):null,(0,P.jsx)(`span`,{className:`truncate text-xs text-[var(--oh-muted)]`,children:e.host}),(0,P.jsx)(`span`,{"data-testid":`manage-backends-status-${e.name}`,className:f(`truncate text-xs`,w),children:S}),v?(0,P.jsx)(`span`,{"data-testid":`manage-backends-status-detail-${e.name}`,title:v,className:`text-xs text-red-300/80 whitespace-normal break-words`,children:v}):null]}),(0,P.jsx)(`span`,{className:`px-2 py-1 rounded-full text-[11px] uppercase tracking-wide text-[var(--oh-text-tertiary)] bg-[var(--oh-surface)] border border-[var(--oh-border)]`,children:e.kind===`cloud`?l(d.BACKEND$KIND_CLOUD):l(d.BACKEND$KIND_LOCAL)})]}),(0,P.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 px-3 py-3`,children:[h&&s?(0,P.jsx)(p,{host:e.host,onSuccess:s,testIdRoot:`manage-backends-login-${e.id}`,idleButtonLabel:l(d.BACKEND$LOG_BACK_IN),idleButtonContent:(0,P.jsx)(y,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}),className:`w-auto`,buttonVariant:`unstyled`,buttonClassName:I,statusDisplay:`modal`,analyticsSource:`manage_backends_modal`}):null,!D&&(0,P.jsx)(`button`,{type:`button`,onClick:a,"aria-label":l(d.BACKEND$EDIT),"data-testid":`manage-backends-edit-${e.name}`,className:I,children:(0,P.jsx)(_,{"aria-hidden":!0,className:`size-4`,strokeWidth:2})}),!D&&(0,P.jsx)(`button`,{type:`button`,onClick:o,"aria-label":l(d.BACKEND$REMOVE),"data-testid":`manage-backends-remove-${e.name}`,className:I,children:(0,P.jsx)(b,{"aria-hidden":!0,className:`size-4`,strokeWidth:2})})]})]})}var R=t({ManageBackendsModal:()=>B});function z(e,t,n,r){if(e.kind!==`cloud`)return;let i=t[e.id];if(!i||i.orgs.length===0)return;let a=n[e.id]?.userId??null;return i.orgs.map(e=>a&&a===e.id?r:e.name).join(`, `)}function B({onClose:e,recoveryMode:t=!1}){let{t:n}=i(`openhands`),{backends:r,active:a,removeBackend:o,setActive:s,updateBackend:l}=u(),m=S(r,{probeDisabledOnce:!0}),g=k(),_=A(),y=n(d.BACKEND$PERSONAL_WORKSPACE),b=c(),x=b!==null,C=x&&a.backend.kind===`cloud`?a.backend:null,F=b??C?.host??``,I=n(x?d.BACKEND$RECONNECT_CLOUD_TITLE:d.BACKEND$MANAGE_TITLE),[R,B]=N.useState(null),[V,H]=N.useState(null),[U,W]=N.useState(!1),G=()=>{R&&(o(R.id),B(null))},K=N.useCallback(t=>{(a.backend.id!==t.id||a.orgId!==null)&&s(t.id),e()},[a.backend.id,a.orgId,e,s]),q=N.useCallback((e,t)=>{l(e.id,{apiKey:t})},[l]),J=N.useCallback(e=>{C&&l(C.id,{apiKey:e})},[C,l]);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(w,{onClose:t?void 0:e,closeOnEscape:!t,closeOnBackdropClick:!t,"aria-label":I,children:(0,P.jsxs)(`div`,{"data-testid":`manage-backends-modal`,className:f(`relative flex flex-col bg-[var(--oh-surface)] border border-[var(--oh-border)] rounded-xl`,T(`lg`),E,`max-h-[70vh]`),children:[t?null:(0,P.jsx)(j,{onClose:e,testId:`close-manage-backends-modal`}),(0,P.jsx)(`div`,{className:f(`p-5`,!t&&`pr-12`),children:(0,P.jsx)(`h2`,{className:D,children:I})}),(0,P.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-5`,children:(0,P.jsx)(`div`,{className:`flex-1 overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,"data-testid":`manage-backends-list`,children:r.length===0?(0,P.jsx)(`p`,{className:`px-3 py-6 text-center text-sm text-[var(--oh-text-secondary)]`,children:n(d.BACKEND$MANAGE_EMPTY)}):(0,P.jsx)(`ul`,{className:`divide-y divide-[var(--oh-border)]`,children:r.map(e=>(0,P.jsx)(L,{backend:e,health:m[e.id],orgLabel:z(e,g,_,y),onSelect:()=>K(e),onEdit:()=>H(e),onRemove:()=>B({id:e.id,name:e.name}),onLogin:t=>q(e,t)},e.id))})})}),(0,P.jsxs)(`div`,{className:`flex justify-end gap-2 p-5`,children:[x?C?(0,P.jsx)(p,{host:F,onSuccess:J,testIdRoot:`manage-backends-reconnect-cloud`,idleButtonLabel:n(d.BACKEND$RECONNECT_CLOUD),className:`w-full sm:w-auto`,buttonClassName:`w-full sm:w-auto`,statusDisplay:`modal`}):null:(0,P.jsx)(O,{type:`button`,variant:t?`primary`:`secondary`,onClick:()=>W(!0),testId:`manage-backends-add`,startContent:(0,P.jsx)(v,{width:14,height:14}),children:n(d.BACKEND$ADD)}),t?null:(0,P.jsx)(O,{type:`button`,variant:`primary`,onClick:e,testId:`manage-backends-done`,children:n(d.HOME$DONE)})]})]})}),U?(0,P.jsx)(h,{mode:`add`,source:`manage_backends_modal`,onClose:()=>W(!1)}):null,V?(0,P.jsx)(h,{mode:`edit`,backend:V,onClose:()=>H(null)}):null,R?(0,P.jsx)(M,{text:n(d.BACKEND$REMOVE_CONFIRMATION,{name:R.name}),onConfirm:G,onCancel:()=>B(null)}):null]})}export{R as n,B as t};
|