@openhands/agent-canvas 1.1.0 → 1.2.1
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/Trans-De9RwQhA.js +1 -0
- package/build/assets/__vite-browser-external-4xJsU2-u.js +1 -0
- package/build/assets/{acp-providers-B_ZxlEbx.js → acp-providers-D_D8VUpP.js} +1 -1
- package/build/assets/active-backend-context-u2tdYRgH.js +1 -0
- package/build/assets/add-backend-modal-DIEyAkA4.js +1 -0
- package/build/assets/agent-profiles-settings-BovdV4N8.js +1 -0
- package/build/assets/{agent-server-client-options-CxnCYyIW.js → agent-server-client-options-DVLRd9sw.js} +1 -1
- package/build/assets/agent-server-conversation-service.api-BP73yONA.js +5 -0
- package/build/assets/agent-settings-FGL3Yvkp.js +1 -0
- package/build/assets/agent-settings-Ofbh6UTD.js +2 -0
- package/build/assets/alert-banner-BW0wRYw6.js +1 -0
- package/build/assets/api-key-entry-screen-CZIdRmUJ.js +1 -0
- package/build/assets/app-settings-BHJ9nKti.js +1 -0
- package/build/assets/automation-detail-DwYGzLkp.js +2 -0
- package/build/assets/automations-list-CuAfJmMW.js +1 -0
- package/build/assets/back-nav-button-BYmxFxGt.js +1 -0
- package/build/assets/backend-form-modal-BiaOB2C4.js +1 -0
- package/build/assets/backend-synced-settings-badge-Bs3FSXsS.js +1 -0
- package/build/assets/base-modal-CC5Pp8CF.js +1 -0
- package/build/assets/bot-D7eUAuSB.js +1 -0
- package/build/assets/brand-button-DKPMEKcW.js +1 -0
- package/build/assets/{browser-CCwPzPsD.js → browser-B39N74jU.js} +2 -2
- package/build/assets/browser-store-BI6uklCG.js +1 -0
- package/build/assets/browser-tab-aiDg7aEn.js +1 -0
- package/build/assets/chat-send-button-DxuZIoW8.js +1 -0
- package/build/assets/check-Bvi71siz.js +1 -0
- package/build/assets/checkmark-h7udgXMM.js +1 -0
- package/build/assets/{chevron-down-BxZEAIv4.js → chevron-down-CI8A6tet.js} +1 -1
- package/build/assets/circle-plus-check-toggle-T3eAIuPQ.js +1 -0
- package/build/assets/close-p3Op5lxI.js +1 -0
- package/build/assets/code-tag-DYlAhEQY.js +1 -0
- package/build/assets/{color-themes-CTNRQd1a.js → color-themes-DPBzNtVg.js} +4 -4
- package/build/assets/combobox-caret-CLGvOs32.js +1 -0
- package/build/assets/command-menu-DKrLCRla.js +1 -0
- package/build/assets/{command-store-C-57Heey.js → command-store-D8J5LMW1.js} +1 -1
- package/build/assets/condenser-settings-D_5vY4m3.js +1 -0
- package/build/assets/confirmation-modal-BK1F0A68.js +1 -0
- package/build/assets/context-menu-list-item-DBFzplWW.js +1 -0
- package/build/assets/conversation-DnVC6vRV.js +1 -0
- package/build/assets/conversation-local-storage-F6zVMM--.js +1 -0
- package/build/assets/conversation-panel-ZEz-z3az.js +1 -0
- package/build/assets/conversation-service.api-CqZcHr1c.js +1 -0
- package/build/assets/conversation-state-store-B2Bp32XI.js +1 -0
- package/build/assets/conversation-store-LptbOvKa.js +1 -0
- package/build/assets/conversation-tab-empty-state-m8IUkfMj.js +1 -0
- package/build/assets/conversation-xkBS3AHC.js +19 -0
- package/build/assets/copy-3JCw_XFB.js +1 -0
- package/build/assets/copy-BLmGeJcd.js +1 -0
- package/build/assets/copy-to-clipboard-button-Aj9wFmt2.js +1 -0
- package/build/assets/createLucideIcon-CVAsW2Yo.js +1 -0
- package/build/assets/declaration-B9kpCaYl.js +1 -0
- package/build/assets/device-verify-B5YCrvSu.js +1 -0
- package/build/assets/dist-CodhvuAP.js +1 -0
- package/build/assets/dropdown-classes-CgQ45JmQ.js +1 -0
- package/build/assets/edit-automation-modal-B6U96gVV.js +1 -0
- package/build/assets/ellipsis-button-1BV9Sga8.js +1 -0
- package/build/assets/entry.client-Dy--3GeA.js +2 -0
- package/build/assets/enum-filter-dropdown-DCITiYVi.js +1 -0
- package/build/assets/environment-switch-overlay-DUnKILNH.js +1 -0
- package/build/assets/extensions-hub-CksKNpP9.js +1 -0
- package/build/assets/{extensions-navigation-DfLHdTUC.js → extensions-navigation-Di9rJ-b5.js} +1 -1
- package/build/assets/{external-link-D8njjDTk.js → external-link-D2zJjE9G.js} +1 -1
- package/build/assets/files-tab-61Vaihc6.js +1 -0
- package/build/assets/files-tab-store-DJsPxYdg.js +1 -0
- package/build/assets/folder-mMWFvaw0.js +1 -0
- package/build/assets/form-control-classes-9rkU4usZ.js +1 -0
- package/build/assets/get-language-from-path-CPNnuVhI.js +1 -0
- package/build/assets/git-provider-icon-aQRcUVI-.js +1 -0
- package/build/assets/home-5gOtUe-n.js +1 -0
- package/build/assets/iconBase-DaTRRUjy.js +1 -0
- package/build/assets/index-redirect-CUUJiNki.js +1 -0
- package/build/assets/install-server-modal-BRab9inF.js +1 -0
- package/build/assets/launch-1TJRKkkX.js +1 -0
- package/build/assets/lesson-plan-BtrZUCuj.js +4 -0
- package/build/assets/link-external-DfKQroKX.js +1 -0
- package/build/assets/{list-todo-B_Ts2JmZ.js → list-todo-BfH6yYUK.js} +1 -1
- package/build/assets/llm-not-configured-banner-BrU5uHto.js +27 -0
- package/build/assets/llm-settings-BpdU51Jo.js +1 -0
- package/build/assets/llm-settings-DsInf6yD.js +1 -0
- package/build/assets/{llm-subscription-service-BX_AtNlO.js → llm-subscription-service-CKyaV24y.js} +1 -1
- package/build/assets/loader-circle-BEykUKYG.js +1 -0
- package/build/assets/loading-spinner-DHAIPZkP.js +1 -0
- package/build/assets/manage-backends-modal-BREySP-J.js +1 -0
- package/build/assets/manifest-a5bb7568.js +1 -0
- package/build/assets/{markdown-renderer-DWy7Np7u.js → markdown-renderer-D8mayGjI.js} +1 -1
- package/build/assets/mcp-XXf8k6mb.js +9 -0
- package/build/assets/messages-D2oZb47Z.js +40 -0
- package/build/assets/middleware-DYHYNAnP.js +6 -0
- package/build/assets/modal-backdrop-zVwfOJZr.js +1 -0
- package/build/assets/modal-body-Dcu5McCa.js +1 -0
- package/build/assets/{modal-classes-C4kS6ib_.js → modal-classes-DPqxSyuP.js} +1 -1
- package/build/assets/modal-close-button-CTCX4nCH.js +1 -0
- package/build/assets/model-selector-VDHBytb6.js +1 -0
- package/build/assets/{mouse-pointer-click-CXAx4FyM.js → mouse-pointer-click-PdEQPL6v.js} +1 -1
- package/build/assets/navigation-context-DPs2G0X8.js +1 -0
- package/build/assets/navigation-link-D8hfwvxI.js +1 -0
- package/build/assets/onboarding-D32kiGME.js +1 -0
- package/build/assets/onboarding-modal-C084vkv7.js +1 -0
- package/build/assets/openhands-logo-bcNw5bkY.js +1 -0
- package/build/assets/option-service.api-Cl5VLGyw.js +1 -0
- package/build/assets/organization-service.api-CnynNoT-.js +1 -0
- package/build/assets/path-utils-BeOmjIcE.js +1 -0
- package/build/assets/{pencil-CsL0ns9y.js → pencil-Dj2XjKmI.js} +1 -1
- package/build/assets/plan-components-j9X4AxYM.js +1 -0
- package/build/assets/planner-tab-AZMjJx31.js +1 -0
- package/build/assets/plugins-management-service-BAp70KN7.js +1 -0
- package/build/assets/profiles-service.api-CeYEmSM3.js +1 -0
- package/build/assets/providers-vX9jk9Vy.js +1 -0
- package/build/assets/{proxy-TeteRRW5.js → proxy-CHmFkV16.js} +1 -1
- package/build/assets/react-DPDgL6du.js +1 -0
- package/build/assets/recommended-automations-launcher-Bk8tQ-Cn.js +58 -0
- package/build/assets/{refresh-cw-GkGYXsU-.js → refresh-cw-DM82EIyx.js} +1 -1
- package/build/assets/root-CxWZUXTQ.css +1 -0
- package/build/assets/root-layout-CoWw4kpz.js +2 -0
- package/build/assets/root-tuEPDx-i.js +2 -0
- package/build/assets/runtime-waiting-state-DkzLgvMn.js +1 -0
- package/build/assets/schema-field-nvq_Juo2.js +1 -0
- package/build/assets/sdk-section-page-CgT70FaZ.js +1 -0
- package/build/assets/sdk-settings-schema-BjBkMHzZ.js +1 -0
- package/build/assets/search-4DHskuhE.js +1 -0
- package/build/assets/search-BsjCEFNf.js +1 -0
- package/build/assets/secrets-service-CZYjNxFw.js +1 -0
- package/build/assets/secrets-settings-BCxk9p9s.js +1 -0
- package/build/assets/segmented-toggle-Cen5AMUc.js +1 -0
- package/build/assets/settings-CedTdtb5.js +1 -0
- package/build/assets/settings-dropdown-input-xzoZwgUe.js +1 -0
- package/build/assets/settings-gear-MXCyZW0x.js +1 -0
- package/build/assets/settings-index-Cct3PJSP.js +1 -0
- package/build/assets/settings-input-DYs7t3oK.js +1 -0
- package/build/assets/settings-list-classes-DvQr5jVS.js +1 -0
- package/build/assets/{settings-CN_HaPjH.js → settings-mQUckT0g.js} +1 -1
- package/build/assets/settings-modal-DwLybV_O.js +1 -0
- package/build/assets/settings-section-header-context-COMOIaxV.js +1 -0
- package/build/assets/settings-service.api-DldkFI1x.js +1 -0
- package/build/assets/settings-switch-C2N2xqEb.js +1 -0
- package/build/assets/{settings-utils-9-_6iVIn.js → settings-utils-BMdG65By.js} +1 -1
- package/build/assets/shared-conversation-DnDwfLgg.js +1 -0
- package/build/assets/sidebar-layout-BtpUSN3j.js +1 -0
- package/build/assets/sidebar-mobile-menu-toggle-B8k3qu84.js +1 -0
- package/build/assets/sidebar-nav-link-CIB3NBRW.js +1 -0
- package/build/assets/sidebar-store-CZuE8AH5.js +1 -0
- package/build/assets/skill-card-pill-row-D2bUe2kB.js +1 -0
- package/build/assets/skills-9cDZONKh.js +1 -0
- package/build/assets/skills-plugins-B68ay6Pu.js +1 -0
- package/build/assets/skills-settings-A6sUy0T7.js +2 -0
- package/build/assets/{square-chevron-right-Cfi-SUY0.js → square-chevron-right-Czw3FFWc.js} +1 -1
- package/build/assets/styled-tooltip-DsKsFjuq.js +1 -0
- package/build/assets/suspense-X5dBsJzn.js +1 -0
- package/build/assets/switch-skeleton-DqQwalyu.js +1 -0
- package/build/assets/task-list-tab-BAThr9Ex.js +1 -0
- package/build/assets/{terminal-HakoMrQX.js → terminal-BmT0_gIH.js} +2 -2
- package/build/assets/terminal-BuLtIrb9.js +1 -0
- package/build/assets/toggle-switch-DBlOOzBr.js +1 -0
- package/build/assets/{trash-2-Bq4hqiRH.js → trash-2-Be_7y3Mn.js} +1 -1
- package/build/assets/typography-YGPBGzOG.js +1 -0
- package/build/assets/u-check-circle-BqoIxNz_.js +1 -0
- package/build/assets/u-check-circle-half-LiwZkuFe.js +1 -0
- package/build/assets/u-edit-DJ90xc8Z.js +1 -0
- package/build/assets/use-acp-credential-form-Bs6s0DTU.js +1 -0
- package/build/assets/use-activate-agent-profile-CKtTToSx.js +1 -0
- package/build/assets/use-active-agent-profile-CWLPpOtK.js +1 -0
- package/build/assets/use-active-conversation-DI5S5M1w.js +1 -0
- package/build/assets/use-agent-profiles-DPcaYLpm.js +1 -0
- package/build/assets/use-agent-state-Buh3bQDh.js +1 -0
- package/build/assets/use-backends-health-CxkvJy2N.js +1 -0
- package/build/assets/use-breakpoint-B-O0lQ84.js +1 -0
- package/build/assets/use-can-manage-org-profiles-DeX2Mfje.js +1 -0
- package/build/assets/use-click-outside-element-Bf4Omzot.js +1 -0
- package/build/assets/use-cloud-current-user-id-D_PQGfmT.js +1 -0
- package/build/assets/use-config-ur0RbjCP.js +1 -0
- package/build/assets/use-create-conversation-D9OWYcte.js +1 -0
- package/build/assets/use-create-secret-CVFSlhlR.js +1 -0
- package/build/assets/use-event-store-YSOxy9FC.js +4 -0
- package/build/assets/use-handle-plan-click-Dug8egQl.js +1 -0
- package/build/assets/use-is-authed-_dhQ2Xuj.js +1 -0
- package/build/assets/use-launch-skill-in-chat-BnoDgvAy.js +1 -0
- package/build/assets/use-llm-profiles-DjackuP1.js +1 -0
- package/build/assets/use-onboarding-completion-C_Swglzp.js +1 -0
- package/build/assets/use-plugins-marketplace-BGb-KgfD.js +1 -0
- package/build/assets/use-runtime-is-ready-Diiq65Q-.js +1 -0
- package/build/assets/use-save-agent-profile-aKKLqDJM.js +1 -0
- package/build/assets/{use-save-settings-DErJDIDL.js → use-save-settings-CChDyjOB.js} +1 -1
- package/build/assets/use-settings-dX4fKUPF.js +1 -0
- package/build/assets/use-settings-nav-items-D6pHnvxg.js +16 -0
- package/build/assets/use-skills-Dqo-pDDx.js +1 -0
- package/build/assets/use-task-list-CmWGElgb.js +1 -0
- package/build/assets/use-tracking-GtXCHmTv.js +1 -0
- package/build/assets/use-user-conversation-6uOXFP95.js +1 -0
- package/build/assets/useMutation-DCE9RcgK.js +1 -0
- package/build/assets/useMutationState-BUab8Kxr.js +1 -0
- package/build/assets/useQueries-CRzaAqzH.js +1 -0
- package/build/assets/useQuery-CpjHYtZc.js +1 -0
- package/build/assets/useTranslation-Cgy4JA_g.js +1 -0
- package/build/assets/utils-CE0lDWtb.js +1 -0
- package/build/assets/vendor-styling-CI0PQ3ab.js +22 -0
- package/build/assets/{vendor~browser-BQU4C3CQ.js → vendor~browser-Cvg7jXCP.js} +1 -1
- package/build/assets/{vendor~browser-tab-Cim6xN2k.js → vendor~browser-tab-Di0kh5Zw.js} +1 -1
- package/build/assets/vendor~conversation-panel~conversation~alert-banner-DHDkknt5.js +1 -0
- package/build/assets/vendor~entry.client-9tWQ_Ugw.js +1 -0
- package/build/assets/{vendor~entry.client-lAMyAlBD.js → vendor~entry.client-D6BtSOtn.js} +1 -1
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js +177 -0
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js +1 -0
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js +10 -0
- package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~t35o0b0f-Bss49YXv.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js} +1 -1
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js +1 -0
- package/build/assets/{vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~fpbtwbmk-DDSPtjxR.js → vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js} +1 -1
- package/build/assets/{vendor~files-tab-BvQLon-P.js → vendor~files-tab-B02k3xvx.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation-DBPRU26Z.js → vendor~home~conversation-panel~conversation-CYMF9JYB.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DnEBAp2W.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-9UMeuPV6.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CzI-A-Gz.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BD0GaRGa.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-ByET2Quf.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CqXiHwjU.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DCYBrned.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-D7EUmQ8Y.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DnctfFZL.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DTzw2x50.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-pSG7lnvH.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-d8aETPbZ.js} +1 -1
- package/build/assets/{vendor~launch-DqoOsAhA.js → vendor~launch-CHXA9cJu.js} +1 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation-CpiTHpHl.js +1 -0
- package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-BJl81v7J.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-_TdZcNMD.js} +1 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation-Cn2jwSga.js +1 -0
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~enjl5xdm-mMKDm94D.js +48 -0
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-DRld6s9c.js → vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-rV6d1Iv_.js} +502 -43
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-9d2kA26V.js → vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js} +1 -1
- package/build/assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-CXyYYvYh.js +1 -0
- package/build/assets/verification-settings-D_zsNB_c.js +1 -0
- package/build/assets/x-Cb0WAtak.js +1 -0
- package/build/assets/x-mark-Batp6gXa.js +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +138 -1
- package/build/locales/ca/openhands.json +138 -1
- package/build/locales/de/openhands.json +138 -1
- package/build/locales/en/openhands.json +138 -1
- package/build/locales/es/openhands.json +138 -1
- package/build/locales/fr/openhands.json +138 -1
- package/build/locales/it/openhands.json +138 -1
- package/build/locales/ja/openhands.json +138 -1
- package/build/locales/ko-KR/openhands.json +138 -1
- package/build/locales/no/openhands.json +138 -1
- package/build/locales/pt/openhands.json +138 -1
- package/build/locales/tr/openhands.json +138 -1
- package/build/locales/uk/openhands.json +138 -1
- package/build/locales/zh-CN/openhands.json +138 -1
- package/build/locales/zh-TW/openhands.json +138 -1
- package/config/defaults.json +7 -9
- package/dist/_virtual/__vite-browser-external.cjs +2 -0
- package/dist/_virtual/__vite-browser-external.cjs.map +1 -0
- package/dist/_virtual/__vite-browser-external.js +9 -0
- package/dist/_virtual/__vite-browser-external.js.map +1 -0
- package/dist/api/agent-profiles-service/agent-profiles-service.api.cjs +2 -0
- package/dist/api/agent-profiles-service/agent-profiles-service.api.cjs.map +1 -0
- package/dist/api/agent-profiles-service/agent-profiles-service.api.d.ts +22 -0
- package/dist/api/agent-profiles-service/agent-profiles-service.api.js +35 -0
- package/dist/api/agent-profiles-service/agent-profiles-service.api.js.map +1 -0
- package/dist/api/agent-server-adapter.cjs +2 -2
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +11 -1
- package/dist/api/agent-server-adapter.js +60 -60
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/agent-server-compatibility.cjs +1 -1
- package/dist/api/agent-server-compatibility.cjs.map +1 -1
- package/dist/api/agent-server-compatibility.js +1 -0
- package/dist/api/agent-server-compatibility.js.map +1 -1
- package/dist/api/agent-server-home.cjs +1 -1
- package/dist/api/agent-server-home.cjs.map +1 -1
- package/dist/api/agent-server-home.js +1 -0
- package/dist/api/agent-server-home.js.map +1 -1
- package/dist/api/cloud/agent-profiles-service.api.cjs +2 -0
- package/dist/api/cloud/agent-profiles-service.api.cjs.map +1 -0
- package/dist/api/cloud/agent-profiles-service.api.d.ts +7 -0
- package/dist/api/cloud/agent-profiles-service.api.js +58 -0
- package/dist/api/cloud/agent-profiles-service.api.js.map +1 -0
- package/dist/api/cloud/organization-service.api.cjs +1 -1
- package/dist/api/cloud/organization-service.api.cjs.map +1 -1
- package/dist/api/cloud/organization-service.api.d.ts +8 -0
- package/dist/api/cloud/organization-service.api.js +3 -1
- package/dist/api/cloud/organization-service.api.js.map +1 -1
- package/dist/api/cloud/profiles-service.api.cjs +2 -0
- package/dist/api/cloud/profiles-service.api.cjs.map +1 -0
- package/dist/api/cloud/profiles-service.api.d.ts +7 -0
- package/dist/api/cloud/profiles-service.api.js +75 -0
- package/dist/api/cloud/profiles-service.api.js.map +1 -0
- package/dist/api/cloud/settings-service.api.cjs +1 -1
- package/dist/api/cloud/settings-service.api.cjs.map +1 -1
- package/dist/api/cloud/settings-service.api.js +1 -1
- package/dist/api/cloud/settings-service.api.js.map +1 -1
- package/dist/api/config-service/config-service.api.cjs +1 -1
- package/dist/api/config-service/config-service.api.cjs.map +1 -1
- package/dist/api/config-service/config-service.api.js +1 -0
- package/dist/api/config-service/config-service.api.js.map +1 -1
- package/dist/api/conversation-metadata-store.cjs.map +1 -1
- package/dist/api/conversation-metadata-store.d.ts +11 -0
- package/dist/api/conversation-metadata-store.js.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +20 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.js +134 -105
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.types.d.ts +2 -0
- package/dist/api/conversation-service/conversation-service.api.cjs +1 -1
- package/dist/api/conversation-service/conversation-service.api.cjs.map +1 -1
- package/dist/api/conversation-service/conversation-service.api.d.ts +1 -0
- package/dist/api/conversation-service/conversation-service.api.js +4 -0
- package/dist/api/conversation-service/conversation-service.api.js.map +1 -1
- package/dist/api/device-flow-client.cjs +1 -1
- package/dist/api/device-flow-client.cjs.map +1 -1
- package/dist/api/device-flow-client.js +33 -25
- package/dist/api/device-flow-client.js.map +1 -1
- package/dist/api/event-service/event-service.api.cjs +1 -1
- package/dist/api/event-service/event-service.api.cjs.map +1 -1
- package/dist/api/event-service/event-service.api.js +1 -0
- package/dist/api/event-service/event-service.api.js.map +1 -1
- package/dist/api/mcp-service/mcp-redacted-credentials.cjs +1 -1
- package/dist/api/mcp-service/mcp-redacted-credentials.cjs.map +1 -1
- package/dist/api/mcp-service/mcp-redacted-credentials.d.ts +3 -3
- package/dist/api/mcp-service/mcp-redacted-credentials.js +29 -30
- package/dist/api/mcp-service/mcp-redacted-credentials.js.map +1 -1
- package/dist/api/mcp-service/mcp-service.api.cjs +1 -1
- package/dist/api/mcp-service/mcp-service.api.cjs.map +1 -1
- package/dist/api/mcp-service/mcp-service.api.d.ts +8 -1
- package/dist/api/mcp-service/mcp-service.api.js +129 -23
- package/dist/api/mcp-service/mcp-service.api.js.map +1 -1
- package/dist/api/option-service/option-service.api.cjs +1 -1
- package/dist/api/option-service/option-service.api.cjs.map +1 -1
- package/dist/api/option-service/option-service.api.js +1 -0
- package/dist/api/option-service/option-service.api.js.map +1 -1
- package/dist/api/plugins-management-service.cjs +2 -0
- package/dist/api/plugins-management-service.cjs.map +1 -0
- package/dist/api/plugins-management-service.d.ts +50 -0
- package/dist/api/plugins-management-service.js +41 -0
- package/dist/api/plugins-management-service.js.map +1 -0
- package/dist/api/plugins-service.d.ts +49 -0
- package/dist/api/profiles-service/profiles-service.api.cjs +1 -1
- package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
- package/dist/api/profiles-service/profiles-service.api.js +21 -14
- package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
- package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
- package/dist/api/runtime-service/agent-server-runtime-service.cjs.map +1 -1
- package/dist/api/runtime-service/agent-server-runtime-service.js +1 -0
- package/dist/api/runtime-service/agent-server-runtime-service.js.map +1 -1
- package/dist/api/secrets-service.cjs +1 -1
- package/dist/api/secrets-service.cjs.map +1 -1
- package/dist/api/secrets-service.js +1 -0
- package/dist/api/secrets-service.js.map +1 -1
- package/dist/api/settings-service/settings-service.api.cjs +1 -1
- package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
- package/dist/api/settings-service/settings-service.api.js +92 -50
- package/dist/api/settings-service/settings-service.api.js.map +1 -1
- package/dist/api/skills-service.cjs +1 -1
- package/dist/api/skills-service.cjs.map +1 -1
- package/dist/api/skills-service.js +1 -0
- package/dist/api/skills-service.js.map +1 -1
- package/dist/api/workspaces-service/workspaces-service.api.cjs +1 -1
- package/dist/api/workspaces-service/workspaces-service.api.cjs.map +1 -1
- package/dist/api/workspaces-service/workspaces-service.api.js +1 -0
- package/dist/api/workspaces-service/workspaces-service.api.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js +57 -38
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs +2 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js +13 -9
- package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js +65 -26
- package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message.cjs +2 -2
- package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message.js +78 -76
- package/dist/components/conversation-events/chat/event-message.js.map +1 -1
- package/dist/components/features/analytics/telemetry-consent-banner.cjs +1 -1
- package/dist/components/features/analytics/telemetry-consent-banner.cjs.map +1 -1
- package/dist/components/features/analytics/telemetry-consent-banner.js +1 -0
- package/dist/components/features/analytics/telemetry-consent-banner.js.map +1 -1
- package/dist/components/features/automations/detail/activity-log-item.d.ts +3 -2
- package/dist/components/features/automations/detail/activity-log-section.d.ts +3 -2
- package/dist/components/features/automations/detail/debug-automation-button.d.ts +17 -0
- package/dist/components/features/automations/detail/run-logs-modal.d.ts +6 -1
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
- package/dist/components/features/backends/backend-form-modal.d.ts +6 -2
- package/dist/components/features/backends/backend-form-modal.js +198 -161
- package/dist/components/features/backends/backend-form-modal.js.map +1 -1
- package/dist/components/features/backends/backend-row.cjs +1 -1
- package/dist/components/features/backends/backend-row.cjs.map +1 -1
- package/dist/components/features/backends/backend-row.d.ts +2 -1
- package/dist/components/features/backends/backend-row.js +60 -54
- package/dist/components/features/backends/backend-row.js.map +1 -1
- package/dist/components/features/backends/backend-selector.cjs +1 -1
- package/dist/components/features/backends/backend-selector.cjs.map +1 -1
- package/dist/components/features/backends/backend-selector.js +4 -4
- package/dist/components/features/backends/backend-version.cjs +1 -1
- package/dist/components/features/backends/backend-version.cjs.map +1 -1
- package/dist/components/features/backends/backend-version.js +1 -0
- package/dist/components/features/backends/backend-version.js.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.js +72 -61
- package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
- package/dist/components/features/chat/change-agent-button.cjs +1 -1
- package/dist/components/features/chat/change-agent-button.js +9 -9
- package/dist/components/features/chat/chat-add-file-button.cjs +1 -1
- package/dist/components/features/chat/chat-add-file-button.cjs.map +1 -1
- package/dist/components/features/chat/chat-add-file-button.js +38 -34
- package/dist/components/features/chat/chat-add-file-button.js.map +1 -1
- package/dist/components/features/chat/chat-interface.cjs +2 -2
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +136 -129
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-actions.js +100 -87
- package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +2 -0
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -0
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.d.ts +15 -0
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +118 -0
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -0
- package/dist/components/features/chat/components/chat-input-model.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-model.js +17 -17
- package/dist/components/features/chat/components/chat-input-profile-picker.cjs +2 -0
- package/dist/components/features/chat/components/chat-input-profile-picker.cjs.map +1 -0
- package/dist/components/features/chat/components/chat-input-profile-picker.d.ts +9 -0
- package/dist/components/features/chat/components/chat-input-profile-picker.js +112 -0
- package/dist/components/features/chat/components/chat-input-profile-picker.js.map +1 -0
- package/dist/components/features/chat/components/resolve-picker-kind.cjs +2 -0
- package/dist/components/features/chat/components/resolve-picker-kind.cjs.map +1 -0
- package/dist/components/features/chat/components/resolve-picker-kind.d.ts +29 -0
- package/dist/components/features/chat/components/resolve-picker-kind.js +8 -0
- package/dist/components/features/chat/components/resolve-picker-kind.js.map +1 -0
- package/dist/components/features/chat/goal-status-banner.cjs +2 -0
- package/dist/components/features/chat/goal-status-banner.cjs.map +1 -0
- package/dist/components/features/chat/goal-status-banner.d.ts +11 -0
- package/dist/components/features/chat/goal-status-banner.js +12 -0
- package/dist/components/features/chat/goal-status-banner.js.map +1 -0
- package/dist/components/features/chat/goal-status-content.cjs +2 -0
- package/dist/components/features/chat/goal-status-content.cjs.map +1 -0
- package/dist/components/features/chat/goal-status-content.d.ts +21 -0
- package/dist/components/features/chat/goal-status-content.js +98 -0
- package/dist/components/features/chat/goal-status-content.js.map +1 -0
- package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
- package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
- package/dist/components/features/chat/interactive-chat-box.js +20 -19
- package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/code-block.cjs +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/code-block.cjs.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/code-block.d.ts +10 -3
- package/dist/components/features/chat/tool-visualizers/primitives/code-block.js +29 -16
- package/dist/components/features/chat/tool-visualizers/primitives/code-block.js.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/output-pane.cjs +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/output-pane.cjs.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/output-pane.d.ts +2 -2
- package/dist/components/features/chat/tool-visualizers/primitives/output-pane.js +16 -16
- package/dist/components/features/chat/tool-visualizers/primitives/output-pane.js.map +1 -1
- package/dist/components/features/chat/user-message-body.cjs +1 -1
- package/dist/components/features/chat/user-message-body.cjs.map +1 -1
- package/dist/components/features/chat/user-message-body.js +20 -20
- package/dist/components/features/chat/user-message-body.js.map +1 -1
- package/dist/components/features/command-menu/command-menu-items.d.ts +32 -0
- package/dist/components/features/command-menu/command-menu-trigger.cjs +2 -0
- package/dist/components/features/command-menu/command-menu-trigger.cjs.map +1 -0
- package/dist/components/features/command-menu/command-menu-trigger.d.ts +5 -0
- package/dist/components/features/command-menu/command-menu-trigger.js +53 -0
- package/dist/components/features/command-menu/command-menu-trigger.js.map +1 -0
- package/dist/components/features/command-menu/command-menu.d.ts +2 -0
- package/dist/components/features/command-menu/index.d.ts +2 -0
- package/dist/components/features/controls/tools-context-menu.cjs +1 -1
- package/dist/components/features/controls/tools-context-menu.cjs.map +1 -1
- package/dist/components/features/controls/tools-context-menu.d.ts +3 -1
- package/dist/components/features/controls/tools-context-menu.js +94 -77
- package/dist/components/features/controls/tools-context-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js +8 -5
- package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.d.ts +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.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 +2 -1
- 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 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/plugins-modal.cjs +2 -0
- package/dist/components/features/conversation-panel/plugins-modal.cjs.map +1 -0
- package/dist/components/features/conversation-panel/plugins-modal.d.ts +12 -0
- package/dist/components/features/conversation-panel/plugins-modal.js +62 -0
- package/dist/components/features/conversation-panel/plugins-modal.js.map +1 -0
- package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.cjs +1 -1
- package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.cjs.map +1 -1
- package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.js +4 -4
- 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.js +17 -15
- 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.cjs.map +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.js +102 -59
- package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
- 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 +284 -169
- 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.cjs.map +1 -1
- package/dist/components/features/mcp-page/installed-server-card.js +16 -18
- package/dist/components/features/mcp-page/installed-server-card.js.map +1 -1
- package/dist/components/features/onboarding/onboarding-host.d.ts +3 -13
- package/dist/components/features/plugins/add-plugin-modal.d.ts +6 -0
- package/dist/components/features/plugins/build-plugins-view-model.d.ts +39 -0
- package/dist/components/features/plugins/plugin-card.d.ts +13 -0
- package/dist/components/features/plugins/plugin-detail-modal.d.ts +13 -0
- package/dist/components/features/plugins/plugin-picker-card.d.ts +10 -0
- package/dist/components/features/plugins/plugin-picker-modal.d.ts +9 -0
- package/dist/components/features/plugins/plugin-picker-trigger.d.ts +9 -0
- package/dist/components/features/plugins/plugin-picker.d.ts +18 -0
- package/dist/components/features/plugins/plugin-spec-identity.d.ts +28 -0
- package/dist/components/features/plugins/plugins-toolbar.d.ts +9 -0
- package/dist/components/features/settings/agent-profiles/agent-profile-actions-menu.d.ts +16 -0
- package/dist/components/features/settings/agent-profiles/agent-profile-row.d.ts +13 -0
- package/dist/components/features/settings/agent-profiles/agent-profiles-body.d.ts +15 -0
- package/dist/components/features/settings/agent-profiles/agent-profiles-local-view.d.ts +7 -0
- package/dist/components/features/settings/agent-profiles/agent-profiles-manager.d.ts +7 -0
- package/dist/components/features/settings/agent-profiles/delete-agent-profile-modal.d.ts +7 -0
- package/dist/components/features/settings/agent-profiles/index.d.ts +6 -0
- package/dist/components/features/settings/agent-profiles/merge-agent-profile-save-input.d.ts +18 -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 +1 -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 -1
- package/dist/components/features/settings/llm-profiles/profile-row.d.ts +3 -1
- package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +3 -1
- package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.cjs +1 -1
- package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.cjs.map +1 -1
- package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.js +3 -2
- package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.js.map +1 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs +7 -7
- package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs.map +1 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-form.js +279 -130
- package/dist/components/features/settings/mcp-settings/mcp-server-form.js.map +1 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +1 -12
- package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +1 -11
- package/dist/components/features/settings/settings-dropdown-input.cjs +1 -1
- package/dist/components/features/settings/settings-dropdown-input.js +6 -6
- package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.d.ts +1 -2
- package/dist/components/features/sidebar/sidebar-rail-body.js +81 -82
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/components/features/sidebar/sidebar.cjs +1 -1
- package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar.js +45 -46
- package/dist/components/features/sidebar/sidebar.js.map +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
- package/dist/components/features/skills/extensions-navigation.js +1 -2
- package/dist/components/features/skills/extensions-navigation.js.map +1 -1
- package/dist/components/shared/modals/modal-backdrop.cjs +1 -1
- package/dist/components/shared/modals/modal-backdrop.cjs.map +1 -1
- package/dist/components/shared/modals/modal-backdrop.d.ts +5 -1
- package/dist/components/shared/modals/modal-backdrop.js +3 -3
- package/dist/components/shared/modals/modal-backdrop.js.map +1 -1
- package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
- package/dist/components/shared/modals/settings/model-selector.js +16 -16
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +7 -3
- package/dist/config/defaults.js.map +1 -1
- 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 +200 -197
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/hooks/chat/use-goal-interceptor.cjs +2 -0
- package/dist/hooks/chat/use-goal-interceptor.cjs.map +1 -0
- package/dist/hooks/chat/use-goal-interceptor.d.ts +8 -0
- package/dist/hooks/chat/use-goal-interceptor.js +37 -0
- package/dist/hooks/chat/use-goal-interceptor.js.map +1 -0
- package/dist/hooks/chat/use-grip-resize.cjs +1 -1
- package/dist/hooks/chat/use-grip-resize.cjs.map +1 -1
- package/dist/hooks/chat/use-grip-resize.js +17 -16
- package/dist/hooks/chat/use-grip-resize.js.map +1 -1
- package/dist/hooks/chat/use-model-interceptor.cjs +1 -1
- package/dist/hooks/chat/use-model-interceptor.cjs.map +1 -1
- package/dist/hooks/chat/use-model-interceptor.d.ts +3 -3
- package/dist/hooks/chat/use-model-interceptor.js +8 -9
- package/dist/hooks/chat/use-model-interceptor.js.map +1 -1
- package/dist/hooks/chat/use-slash-command.cjs +1 -1
- package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
- package/dist/hooks/chat/use-slash-command.js +4 -4
- package/dist/hooks/chat/use-slash-command.js.map +1 -1
- package/dist/hooks/mutation/conversation-mutation-utils.cjs +1 -1
- package/dist/hooks/mutation/conversation-mutation-utils.cjs.map +1 -1
- package/dist/hooks/mutation/conversation-mutation-utils.d.ts +17 -0
- package/dist/hooks/mutation/conversation-mutation-utils.js +23 -4
- package/dist/hooks/mutation/conversation-mutation-utils.js.map +1 -1
- package/dist/hooks/mutation/use-activate-agent-profile.cjs +2 -0
- package/dist/hooks/mutation/use-activate-agent-profile.cjs.map +1 -0
- package/dist/hooks/mutation/use-activate-agent-profile.d.ts +23 -0
- package/dist/hooks/mutation/use-activate-agent-profile.js +34 -0
- package/dist/hooks/mutation/use-activate-agent-profile.js.map +1 -0
- package/dist/hooks/mutation/use-activate-llm-profile.cjs +1 -1
- package/dist/hooks/mutation/use-activate-llm-profile.js +1 -1
- package/dist/hooks/mutation/use-add-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-add-mcp-server.cjs.map +1 -1
- package/dist/hooks/mutation/use-add-mcp-server.d.ts +1 -12
- package/dist/hooks/mutation/use-add-mcp-server.js +10 -34
- package/dist/hooks/mutation/use-add-mcp-server.js.map +1 -1
- package/dist/hooks/mutation/use-apply-onboarding-agent-profile.d.ts +20 -0
- package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.d.ts +2 -0
- package/dist/hooks/mutation/use-create-conversation.js +94 -25
- package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
- package/dist/hooks/mutation/use-delete-agent-profile.d.ts +1 -0
- package/dist/hooks/mutation/use-delete-llm-profile.cjs +1 -1
- package/dist/hooks/mutation/use-delete-llm-profile.js +1 -1
- package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-delete-mcp-server.js +4 -4
- package/dist/hooks/mutation/use-fork-conversation.cjs +2 -0
- package/dist/hooks/mutation/use-fork-conversation.cjs.map +1 -0
- package/dist/hooks/mutation/use-fork-conversation.d.ts +24 -0
- package/dist/hooks/mutation/use-fork-conversation.js +29 -0
- package/dist/hooks/mutation/use-fork-conversation.js.map +1 -0
- package/dist/hooks/mutation/use-install-plugin.d.ts +7 -0
- package/dist/hooks/mutation/use-new-conversation-command.cjs +1 -1
- package/dist/hooks/mutation/use-new-conversation-command.cjs.map +1 -1
- package/dist/hooks/mutation/use-new-conversation-command.d.ts +1 -0
- package/dist/hooks/mutation/use-new-conversation-command.js +20 -10
- package/dist/hooks/mutation/use-new-conversation-command.js.map +1 -1
- package/dist/hooks/mutation/use-rename-agent-profile.d.ts +6 -0
- package/dist/hooks/mutation/use-rename-llm-profile.cjs +1 -1
- package/dist/hooks/mutation/use-rename-llm-profile.js +1 -1
- package/dist/hooks/mutation/use-save-agent-profile.d.ts +5 -0
- package/dist/hooks/mutation/use-save-llm-profile.cjs +1 -1
- package/dist/hooks/mutation/use-save-llm-profile.js +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
- package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs +1 -1
- package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs.map +1 -1
- package/dist/hooks/mutation/use-switch-llm-profile-and-log.d.ts +3 -4
- package/dist/hooks/mutation/use-switch-llm-profile-and-log.js +10 -35
- package/dist/hooks/mutation/use-switch-llm-profile-and-log.js.map +1 -1
- package/dist/hooks/mutation/use-switch-llm-profile.cjs +1 -1
- package/dist/hooks/mutation/use-switch-llm-profile.cjs.map +1 -1
- package/dist/hooks/mutation/use-switch-llm-profile.d.ts +20 -5
- package/dist/hooks/mutation/use-switch-llm-profile.js +38 -14
- package/dist/hooks/mutation/use-switch-llm-profile.js.map +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.cjs.map +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.js +11 -37
- package/dist/hooks/mutation/use-update-mcp-server.js.map +1 -1
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +21 -0
- package/dist/hooks/query/query-keys.js +7 -3
- package/dist/hooks/query/query-keys.js.map +1 -1
- package/dist/hooks/query/use-active-conversation.cjs +1 -1
- package/dist/hooks/query/use-active-conversation.cjs.map +1 -1
- package/dist/hooks/query/use-active-conversation.js +17 -16
- package/dist/hooks/query/use-active-conversation.js.map +1 -1
- package/dist/hooks/query/use-agent-profiles.cjs +2 -0
- package/dist/hooks/query/use-agent-profiles.cjs.map +1 -0
- package/dist/hooks/query/use-agent-profiles.d.ts +13 -0
- package/dist/hooks/query/use-agent-profiles.js +24 -0
- package/dist/hooks/query/use-agent-profiles.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 +18 -3
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- 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 +4 -2
- package/dist/hooks/query/use-conversation-history.js.map +1 -1
- package/dist/hooks/query/use-local-workspaces.cjs +1 -1
- package/dist/hooks/query/use-local-workspaces.cjs.map +1 -1
- package/dist/hooks/query/use-local-workspaces.js +1 -0
- package/dist/hooks/query/use-local-workspaces.js.map +1 -1
- package/dist/hooks/query/use-plugins-marketplace.d.ts +7 -0
- package/dist/hooks/query/use-resolved-workspaces.cjs +1 -1
- package/dist/hooks/query/use-resolved-workspaces.cjs.map +1 -1
- package/dist/hooks/query/use-resolved-workspaces.js +7 -6
- package/dist/hooks/query/use-resolved-workspaces.js.map +1 -1
- package/dist/hooks/query/use-search-subdirs.cjs +1 -1
- package/dist/hooks/query/use-search-subdirs.cjs.map +1 -1
- package/dist/hooks/query/use-search-subdirs.js +1 -0
- package/dist/hooks/query/use-search-subdirs.js.map +1 -1
- package/dist/hooks/query/use-settings.cjs +1 -1
- package/dist/hooks/query/use-settings.cjs.map +1 -1
- package/dist/hooks/query/use-settings.js +11 -11
- package/dist/hooks/query/use-settings.js.map +1 -1
- package/dist/hooks/query/use-verified-models.cjs +1 -1
- package/dist/hooks/query/use-verified-models.cjs.map +1 -1
- package/dist/hooks/query/use-verified-models.js +1 -0
- package/dist/hooks/query/use-verified-models.js.map +1 -1
- package/dist/hooks/use-acp-model-context.cjs +1 -1
- package/dist/hooks/use-acp-model-context.cjs.map +1 -1
- package/dist/hooks/use-acp-model-context.d.ts +1 -1
- package/dist/hooks/use-acp-model-context.js +9 -8
- package/dist/hooks/use-acp-model-context.js.map +1 -1
- package/dist/hooks/use-active-agent-profile.cjs +2 -0
- package/dist/hooks/use-active-agent-profile.cjs.map +1 -0
- package/dist/hooks/use-active-agent-profile.d.ts +20 -0
- package/dist/hooks/use-active-agent-profile.js +17 -0
- package/dist/hooks/use-active-agent-profile.js.map +1 -0
- package/dist/hooks/use-auto-resize.cjs +1 -1
- package/dist/hooks/use-auto-resize.cjs.map +1 -1
- package/dist/hooks/use-auto-resize.d.ts +2 -0
- package/dist/hooks/use-auto-resize.js +49 -45
- package/dist/hooks/use-auto-resize.js.map +1 -1
- package/dist/hooks/use-can-manage-org-profiles.cjs +1 -0
- package/dist/hooks/use-can-manage-org-profiles.d.ts +18 -0
- package/dist/hooks/use-can-manage-org-profiles.js +2 -0
- package/dist/hooks/use-chat-input-llm-profile-state.cjs +2 -0
- package/dist/hooks/use-chat-input-llm-profile-state.cjs.map +1 -0
- package/dist/hooks/use-chat-input-llm-profile-state.d.ts +23 -0
- package/dist/hooks/use-chat-input-llm-profile-state.js +30 -0
- package/dist/hooks/use-chat-input-llm-profile-state.js.map +1 -0
- package/dist/hooks/use-chat-input-model-state.cjs.map +1 -1
- package/dist/hooks/use-chat-input-model-state.d.ts +1 -1
- package/dist/hooks/use-chat-input-model-state.js.map +1 -1
- package/dist/hooks/use-chat-input-profile-state.cjs +2 -0
- package/dist/hooks/use-chat-input-profile-state.cjs.map +1 -0
- package/dist/hooks/use-chat-input-profile-state.d.ts +20 -0
- package/dist/hooks/use-chat-input-profile-state.js +22 -0
- package/dist/hooks/use-chat-input-profile-state.js.map +1 -0
- package/dist/hooks/use-conversation-name-context-menu.cjs +1 -1
- package/dist/hooks/use-conversation-name-context-menu.cjs.map +1 -1
- package/dist/hooks/use-conversation-name-context-menu.d.ts +4 -0
- package/dist/hooks/use-conversation-name-context-menu.js +44 -37
- package/dist/hooks/use-conversation-name-context-menu.js.map +1 -1
- package/dist/hooks/use-conversation-plugins.cjs +2 -0
- package/dist/hooks/use-conversation-plugins.cjs.map +1 -0
- package/dist/hooks/use-conversation-plugins.d.ts +9 -0
- package/dist/hooks/use-conversation-plugins.js +12 -0
- package/dist/hooks/use-conversation-plugins.js.map +1 -0
- package/dist/hooks/use-handle-plan-click.cjs +1 -1
- package/dist/hooks/use-handle-plan-click.cjs.map +1 -1
- package/dist/hooks/use-handle-plan-click.js +2 -1
- package/dist/hooks/use-handle-plan-click.js.map +1 -1
- package/dist/hooks/use-llm-configured.cjs +1 -1
- package/dist/hooks/use-llm-configured.cjs.map +1 -1
- package/dist/hooks/use-llm-configured.js +17 -16
- package/dist/hooks/use-llm-configured.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 +51 -1
- package/dist/hooks/use-tracking.js +61 -2
- package/dist/hooks/use-tracking.js.map +1 -1
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +138 -1
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +18 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +2329 -0
- package/dist/i18n/translation.js.map +1 -1
- package/dist/icons/slack.cjs +2 -0
- package/dist/icons/slack.cjs.map +1 -0
- package/dist/icons/slack.js +19 -0
- package/dist/icons/slack.js.map +1 -0
- package/dist/icons/u-puzzle-piece.cjs +2 -0
- package/dist/icons/u-puzzle-piece.cjs.map +1 -0
- package/dist/icons/u-puzzle-piece.js +19 -0
- package/dist/icons/u-puzzle-piece.js.map +1 -0
- package/dist/icons/x-circle-solid.cjs +2 -0
- package/dist/icons/x-circle-solid.cjs.map +1 -0
- package/dist/icons/x-circle-solid.js +13 -0
- package/dist/icons/x-circle-solid.js.map +1 -0
- package/dist/locales/ar/openhands.json +138 -1
- package/dist/locales/ca/openhands.json +138 -1
- package/dist/locales/de/openhands.json +138 -1
- package/dist/locales/en/openhands.json +138 -1
- package/dist/locales/es/openhands.json +138 -1
- package/dist/locales/fr/openhands.json +138 -1
- package/dist/locales/it/openhands.json +138 -1
- package/dist/locales/ja/openhands.json +138 -1
- package/dist/locales/ko-KR/openhands.json +138 -1
- package/dist/locales/no/openhands.json +138 -1
- package/dist/locales/pt/openhands.json +138 -1
- package/dist/locales/tr/openhands.json +138 -1
- package/dist/locales/uk/openhands.json +138 -1
- package/dist/locales/zh-CN/openhands.json +138 -1
- package/dist/locales/zh-TW/openhands.json +138 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js +0 -20
- package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js +70 -3
- package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/box.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/box.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/box.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/box.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.js +3 -7
- package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +27 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js +20 -26
- package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js +0 -9
- package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js +13 -13
- package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.js +14 -10
- package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.js +13 -10
- package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +1 -8
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.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 +20 -18
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.js +66 -21
- package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.js +17 -11
- package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js +12 -17
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js +14 -19
- package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js +15 -20
- package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.js +33 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.js +10 -8
- package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.js +1 -6
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.js.map +1 -1
- 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 +71 -89
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/index.js +4 -4
- package/dist/node_modules/@openhands/extensions/integrations/index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +502 -43
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +58 -33
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.js +40 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js +4 -4
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js +3 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +3 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/hooks-client.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/hooks-client.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.js +84 -27
- package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js +9 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/meta-profiles-client.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/meta-profiles-client.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.js +42 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/shared-client.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/shared-client.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.js +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/sub-agents-client.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/sub-agents-client.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/tool-client.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/tool-client.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/clients.js +20 -0
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.js +18 -0
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation.js +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.js +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js +15 -17
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.js +3 -0
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/workspace.cjs +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/workspace.js +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +7 -4
- package/dist/package.js.map +1 -1
- package/dist/routes/agent-settings.d.ts +106 -0
- package/dist/routes/files-tab.cjs +1 -1
- package/dist/routes/files-tab.js +23 -23
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.d.ts +6 -4
- package/dist/routes/llm-settings.js +0 -1
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/routes/mcp.cjs.map +1 -1
- package/dist/routes/mcp.js.map +1 -1
- package/dist/services/settings.cjs +1 -1
- package/dist/services/settings.cjs.map +1 -1
- package/dist/services/settings.js +2 -6
- package/dist/services/settings.js.map +1 -1
- package/dist/stores/command-menu-store.cjs +2 -0
- package/dist/stores/command-menu-store.cjs.map +1 -0
- package/dist/stores/command-menu-store.d.ts +8 -0
- package/dist/stores/command-menu-store.js +12 -0
- package/dist/stores/command-menu-store.js.map +1 -0
- package/dist/stores/conversation-panel-preferences-store.cjs +1 -1
- package/dist/stores/conversation-panel-preferences-store.cjs.map +1 -1
- package/dist/stores/conversation-panel-preferences-store.js +1 -1
- package/dist/stores/conversation-panel-preferences-store.js.map +1 -1
- package/dist/stores/conversation-store.cjs +1 -1
- package/dist/stores/conversation-store.cjs.map +1 -1
- package/dist/stores/conversation-store.d.ts +1 -0
- package/dist/stores/conversation-store.js +1 -0
- package/dist/stores/conversation-store.js.map +1 -1
- package/dist/stores/goal-store.cjs +2 -0
- package/dist/stores/goal-store.cjs.map +1 -0
- package/dist/stores/goal-store.d.ts +28 -0
- package/dist/stores/goal-store.js +14 -0
- package/dist/stores/goal-store.js.map +1 -0
- package/dist/themes/color-themes.cjs +3 -3
- package/dist/themes/color-themes.cjs.map +1 -1
- package/dist/themes/color-themes.d.ts +13 -2
- package/dist/themes/color-themes.js +2 -2
- package/dist/themes/color-themes.js.map +1 -1
- package/dist/types/agent-server/core/events/conversation-state-event.d.ts +39 -3
- package/dist/types/agent-server/type-guards.cjs +1 -1
- package/dist/types/agent-server/type-guards.cjs.map +1 -1
- package/dist/types/agent-server/type-guards.d.ts +2 -1
- package/dist/types/agent-server/type-guards.js +3 -3
- package/dist/types/agent-server/type-guards.js.map +1 -1
- package/dist/types/mcp-auth.cjs +2 -0
- package/dist/types/mcp-auth.cjs.map +1 -0
- package/dist/types/mcp-auth.d.ts +43 -0
- package/dist/types/mcp-auth.js +13 -0
- package/dist/types/mcp-auth.js.map +1 -0
- package/dist/types/mcp-server.d.ts +22 -1
- package/dist/types/settings.d.ts +6 -4
- package/dist/ui/context-menu.d.ts +1 -1
- package/dist/utils/acp-command.d.ts +64 -0
- package/dist/utils/automation-debug-prompt.d.ts +18 -0
- package/dist/utils/constants.cjs +1 -1
- package/dist/utils/constants.cjs.map +1 -1
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.js +12 -3
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dropdown-classes.cjs +1 -1
- package/dist/utils/dropdown-classes.cjs.map +1 -1
- package/dist/utils/dropdown-classes.js +4 -2
- package/dist/utils/dropdown-classes.js.map +1 -1
- package/dist/utils/form-control-classes.cjs +1 -1
- package/dist/utils/form-control-classes.js +1 -1
- 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 +72 -37
- package/dist/utils/handle-event-for-ui.js.map +1 -1
- package/dist/utils/mcp-config.cjs +1 -1
- package/dist/utils/mcp-config.cjs.map +1 -1
- package/dist/utils/mcp-config.d.ts +15 -9
- package/dist/utils/mcp-config.js +124 -53
- package/dist/utils/mcp-config.js.map +1 -1
- package/dist/utils/mcp-installed-server-display.cjs +2 -0
- package/dist/utils/mcp-installed-server-display.cjs.map +1 -0
- package/dist/utils/mcp-installed-server-display.d.ts +8 -0
- package/dist/utils/mcp-installed-server-display.js +12 -0
- package/dist/utils/mcp-installed-server-display.js.map +1 -0
- package/dist/utils/mcp-installed-servers.cjs +1 -1
- package/dist/utils/mcp-installed-servers.cjs.map +1 -1
- package/dist/utils/mcp-installed-servers.js +4 -4
- package/dist/utils/mcp-installed-servers.js.map +1 -1
- 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.d.ts +2 -0
- package/dist/utils/mcp-marketplace-utils.js +31 -16
- package/dist/utils/mcp-marketplace-utils.js.map +1 -1
- package/dist/utils/mcp-server-name.cjs +2 -0
- package/dist/utils/mcp-server-name.cjs.map +1 -0
- package/dist/utils/mcp-server-name.d.ts +3 -0
- package/dist/utils/mcp-server-name.js +12 -0
- package/dist/utils/mcp-server-name.js.map +1 -0
- package/dist/utils/plugin-display.cjs +2 -0
- package/dist/utils/plugin-display.cjs.map +1 -0
- package/dist/utils/plugin-display.d.ts +20 -0
- package/dist/utils/plugin-display.js +29 -0
- package/dist/utils/plugin-display.js.map +1 -0
- package/dist/utils/settings-utils.cjs.map +1 -1
- package/dist/utils/settings-utils.js.map +1 -1
- package/dist/utils/workspaces-compatibility.cjs +1 -1
- package/dist/utils/workspaces-compatibility.cjs.map +1 -1
- package/dist/utils/workspaces-compatibility.js +1 -0
- package/dist/utils/workspaces-compatibility.js.map +1 -1
- package/package.json +7 -4
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/check-translation-completeness.cjs +6 -0
- package/scripts/dev-safe.mjs +14 -3
- package/scripts/dev-with-automation.mjs +4 -0
- package/scripts/gen-acp-docker-env.mjs +107 -0
- package/scripts/ingress.mjs +66 -226
- package/scripts/proxy-utils.mjs +171 -0
- package/scripts/static-server.mjs +127 -283
- package/build/assets/Trans-CiZR6eVI.js +0 -1
- package/build/assets/active-backend-context-CEuva6ZJ.js +0 -1
- package/build/assets/add-backend-modal-b_eiVk3A.js +0 -1
- package/build/assets/agent-server-conversation-service.api-D_uJ7BKc.js +0 -5
- package/build/assets/agent-settings-DyfziYyM.js +0 -2
- package/build/assets/alert-banner-BFayS5vM.js +0 -1
- package/build/assets/analytics-consent-form-modal-CQ22qlFF.js +0 -1
- package/build/assets/api-key-entry-screen-KnIwP0vN.js +0 -1
- package/build/assets/app-settings-CBaHJ5vJ.js +0 -1
- package/build/assets/automation-detail-DgQswnXg.js +0 -1
- package/build/assets/automations-list-D99p6CoQ.js +0 -1
- package/build/assets/back-nav-button-Cp9z-wsG.js +0 -1
- package/build/assets/backend-form-modal-BABAz-zH.js +0 -1
- package/build/assets/backend-synced-settings-badge-DzwWQC4T.js +0 -1
- package/build/assets/base-modal-1bHiB5Wf.js +0 -1
- package/build/assets/brand-button-FHWgEb4Q.js +0 -1
- package/build/assets/browser-store-B9h0eW79.js +0 -1
- package/build/assets/browser-tab-JiCXo0Nc.js +0 -1
- package/build/assets/chat-send-button-QtyofqFt.js +0 -1
- package/build/assets/check-6ieIiPhW.js +0 -1
- package/build/assets/checkmark-BfgRVMHK.js +0 -1
- package/build/assets/circle-plus-check-toggle-CmINKfZj.js +0 -1
- package/build/assets/close-DhH0uMa7.js +0 -1
- package/build/assets/code-tag-CnORXDJj.js +0 -1
- package/build/assets/combobox-caret-BB15S7zY.js +0 -1
- package/build/assets/condenser-settings-BOKNShD9.js +0 -1
- package/build/assets/confirmation-modal-CofmThy4.js +0 -1
- package/build/assets/context-menu-list-item-DO12IEaK.js +0 -1
- package/build/assets/conversation-DIzv-jq8.js +0 -1
- package/build/assets/conversation-DV3odvMe.js +0 -19
- package/build/assets/conversation-local-storage-DK7yJr5N.js +0 -1
- package/build/assets/conversation-panel-CgCarTAn.js +0 -1
- package/build/assets/conversation-service.api-RV_bOKNz.js +0 -1
- package/build/assets/conversation-state-store-4obo4ZMf.js +0 -1
- package/build/assets/conversation-store-CXrL0v-X.js +0 -6
- package/build/assets/conversation-tab-empty-state-CqT5ur_H.js +0 -1
- package/build/assets/copy-C5tBqfWu.js +0 -1
- package/build/assets/copy-to-clipboard-button-BVFYcsg_.js +0 -1
- package/build/assets/createLucideIcon-D3nkdIAN.js +0 -1
- package/build/assets/declaration-B0yY_dkQ.js +0 -1
- package/build/assets/device-verify-DRupI_hz.js +0 -1
- package/build/assets/dist-D5d5zm8o.js +0 -1
- package/build/assets/dist-fV7trlfb.js +0 -1
- package/build/assets/dropdown-classes-5IsMjYYw.js +0 -1
- package/build/assets/edit-automation-modal-BG-gd82b.js +0 -1
- package/build/assets/ellipsis-button-DWvVZO_r.js +0 -1
- package/build/assets/entry.client-uhbVfCtd.js +0 -2
- package/build/assets/enum-filter-dropdown-CB2fqz_e.js +0 -1
- package/build/assets/environment-switch-overlay-Oeal5TVq.js +0 -1
- package/build/assets/extensions-hub-DxiE0AZR.js +0 -1
- package/build/assets/files-tab-1F2OlNeH.js +0 -1
- package/build/assets/files-tab-store-C1q5Rbx3.js +0 -1
- package/build/assets/folder-C5tr7xyN.js +0 -1
- package/build/assets/get-language-from-path-E1JKsbeE.js +0 -1
- package/build/assets/git-provider-icon-CKs-22Ts.js +0 -1
- package/build/assets/home-B3E0le0g.js +0 -1
- package/build/assets/iconBase-DMoh3FEg.js +0 -1
- package/build/assets/index-redirect-DhuK5mhS.js +0 -1
- package/build/assets/install-server-modal-DjintV14.js +0 -1
- package/build/assets/is-backend-llm-ready-Bj44pekN.js +0 -1
- package/build/assets/launch-DCU3S84p.js +0 -1
- package/build/assets/lesson-plan-BUUPKVsa.js +0 -3
- package/build/assets/link-external-CF4KHxx-.js +0 -1
- package/build/assets/llm-client-BakM_czF.js +0 -1
- package/build/assets/llm-not-configured-banner-BV-NIjfR.js +0 -27
- package/build/assets/llm-settings-B5d7PHzz.js +0 -1
- package/build/assets/llm-settings-C5whb-0p.js +0 -1
- package/build/assets/loader-circle-DyX8DmLg.js +0 -1
- package/build/assets/loading-spinner-BvOAco8a.js +0 -1
- package/build/assets/manage-backends-modal-D9ClxVpM.js +0 -1
- package/build/assets/manifest-38a873aa.js +0 -1
- package/build/assets/mcp-7rk44GRS.js +0 -9
- package/build/assets/mcp-client-DxHXYNOw.js +0 -1
- package/build/assets/messages-DgBEaXil.js +0 -43
- package/build/assets/modal-backdrop-DjAC2zOZ.js +0 -1
- package/build/assets/modal-body-OJdIUJ68.js +0 -1
- package/build/assets/modal-close-button-BNjGesHc.js +0 -1
- package/build/assets/model-selector-w2uGPM5y.js +0 -1
- package/build/assets/navigation-context-CUJ60pLI.js +0 -1
- package/build/assets/navigation-link-BiPKTOHF.js +0 -1
- package/build/assets/onboarding-Cit87z8g.js +0 -1
- package/build/assets/onboarding-modal-JPrzvr8W.js +0 -1
- package/build/assets/openhands-logo-uNs9g6LY.js +0 -1
- package/build/assets/option-service.api-BLYUhnCF.js +0 -1
- package/build/assets/organization-service.api-DpSSwlZu.js +0 -1
- package/build/assets/path-utils-B4WAVqvK.js +0 -1
- package/build/assets/plan-components-DSOTFW2D.js +0 -1
- package/build/assets/planner-tab-LmoxgKKe.js +0 -1
- package/build/assets/preload-helper-D_sPnjeL.js +0 -1
- package/build/assets/profiles-client-B4SJ4ZAf.js +0 -1
- package/build/assets/providers-BGUAB8kf.js +0 -1
- package/build/assets/react-Dn-iWFF5.js +0 -1
- package/build/assets/react-dom-BBXlXOZX.js +0 -1
- package/build/assets/react-uQK8du1l.js +0 -1
- package/build/assets/recommended-automations-launcher-Df9MXUpX.js +0 -50
- package/build/assets/root-BShAdYGY.css +0 -1
- package/build/assets/root-C99reK-P.js +0 -2
- package/build/assets/root-layout-BtH64XeC.js +0 -2
- package/build/assets/runtime-waiting-state-C7MjXDeW.js +0 -1
- package/build/assets/schema-field-BCDuEMrl.js +0 -1
- package/build/assets/sdk-section-page-XJN9mGju.js +0 -1
- package/build/assets/sdk-settings-schema-B15AE1GH.js +0 -1
- package/build/assets/search-rob4u9f8.js +0 -1
- package/build/assets/secrets-service-CrPyCR8u.js +0 -1
- package/build/assets/secrets-settings-UJn15N7E.js +0 -1
- package/build/assets/settings-C5aUD_sQ.js +0 -1
- package/build/assets/settings-dropdown-input-DQRt2_RA.js +0 -1
- package/build/assets/settings-gear-B7bZDo_8.js +0 -1
- package/build/assets/settings-index-zP_rYIW1.js +0 -1
- package/build/assets/settings-input-n8FzVso3.js +0 -1
- package/build/assets/settings-list-classes-DquY3fwm.js +0 -1
- package/build/assets/settings-modal-szlQ6LpE.js +0 -1
- package/build/assets/settings-section-header-context-DrXgyNC-.js +0 -1
- package/build/assets/settings-service.api-B4G8NzCM.js +0 -1
- package/build/assets/settings-switch-DsbEm3ie.js +0 -1
- package/build/assets/shared-conversation-BrAvqeaI.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-BRZGCe-l.js +0 -1
- package/build/assets/sidebar-nav-link-B_EygIce.js +0 -1
- package/build/assets/skill-card-pill-row-Bq9Imkdh.js +0 -1
- package/build/assets/skills-Wg6i0kbu.js +0 -1
- package/build/assets/skills-client-DNd444Bm.js +0 -1
- package/build/assets/skills-plugins-DaGkVI7-.js +0 -1
- package/build/assets/skills-settings-Dlp0WFaT.js +0 -2
- package/build/assets/styled-tooltip-ulgpZDga.js +0 -1
- package/build/assets/suspense-BqBQEuKs.js +0 -1
- package/build/assets/switch-skeleton-C49gVWOQ.js +0 -1
- package/build/assets/task-list-tab-Bz-UlCm2.js +0 -1
- package/build/assets/telemetry-DD3HKMgf.js +0 -2
- package/build/assets/terminal-BwLvVzyJ.js +0 -1
- package/build/assets/toggle-switch-CxW8-lBI.js +0 -1
- package/build/assets/typography-BLf_mRKH.js +0 -1
- package/build/assets/u-check-circle-CxTAJuY9.js +0 -1
- package/build/assets/u-check-circle-half-Bj73jfUG.js +0 -1
- package/build/assets/u-circuit-C-6V9H9C.js +0 -1
- package/build/assets/u-edit-C7OnK2sa.js +0 -1
- package/build/assets/use-acp-credential-form-oehc057O.js +0 -1
- package/build/assets/use-active-conversation-CFXVX2on.js +0 -1
- package/build/assets/use-agent-state-D6xfZA4-.js +0 -1
- package/build/assets/use-backends-health-93yRIOWs.js +0 -1
- package/build/assets/use-breakpoint-Xdy_aZHE.js +0 -1
- package/build/assets/use-click-outside-element-CADb_gCP.js +0 -1
- package/build/assets/use-cloud-current-user-id-CzOXsy04.js +0 -1
- package/build/assets/use-config-oXjEWyb6.js +0 -1
- package/build/assets/use-create-conversation-D-YkgrxS.js +0 -1
- package/build/assets/use-create-secret-CX7Ij7W4.js +0 -1
- package/build/assets/use-event-store-DMRAQQi8.js +0 -1
- package/build/assets/use-handle-plan-click-CwW2Ijc2.js +0 -1
- package/build/assets/use-is-authed-CNbX1KMm.js +0 -1
- package/build/assets/use-launch-skill-in-chat-xI9byRUw.js +0 -1
- package/build/assets/use-llm-profiles-BXRZ2rBh.js +0 -1
- package/build/assets/use-runtime-is-ready-Dwzs9_vp.js +0 -1
- package/build/assets/use-settings-_usWr_qn.js +0 -1
- package/build/assets/use-settings-nav-items-DoB5iH-7.js +0 -16
- package/build/assets/use-skills-BtorhoCN.js +0 -1
- package/build/assets/use-task-list-u46BhYBC.js +0 -1
- package/build/assets/use-tracking-Ca7p71hH.js +0 -1
- package/build/assets/use-user-conversation-U-16WF6G.js +0 -1
- package/build/assets/useMutation-CseCrRRO.js +0 -1
- package/build/assets/useQuery-bowvACed.js +0 -1
- package/build/assets/useTranslation-KhTtKmnv.js +0 -1
- package/build/assets/utils-cRyMoFbz.js +0 -1
- package/build/assets/vendor~conversation-panel~conversation~alert-banner-CjfR7T3x.js +0 -1
- package/build/assets/vendor~entry.client-_zl82x5T.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~dj9x5fm9-CgCGB-3J.js +0 -177
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~jfvr34cq-BJdsUTJG.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~m3df9r20-BynFAJ_S.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~nk00xiud-MfCRtPrK.js +0 -9
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~ghtfhmuy-BHDILMe2.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation-BFZmbXpq.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation~index-BPY-kNjK.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation-BhWqQNmF.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~cfyi58ut-CnnEa0dP.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~clac83qc-DMX6XUwI.js +0 -2
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ldu51w4e-Cqp6k3RG.js +0 -1
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ldu51w4e-DS4GWhCz.js +0 -9
- package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~ji28rqgb-DVffa9Ks.js +0 -48
- package/build/assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-BzR6ypP3.js +0 -1
- package/build/assets/vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~hzfcl1q6-BcvHZmEZ.js +0 -2
- package/build/assets/vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~hzfcl1q6-Cuvp6wqR.js +0 -14
- package/build/assets/verification-settings-DKZnUHD6.js +0 -1
- package/build/assets/x-DpnGZyVW.js +0 -1
- package/build/assets/x-mark-x3tvCZzc.js +0 -1
- package/dist/components/features/analytics/analytics-consent-form-modal.d.ts +0 -5
- package/dist/components/features/chat/switch-profile-button.cjs +0 -2
- package/dist/components/features/chat/switch-profile-button.cjs.map +0 -1
- package/dist/components/features/chat/switch-profile-button.d.ts +0 -1
- package/dist/components/features/chat/switch-profile-button.js +0 -48
- package/dist/components/features/chat/switch-profile-button.js.map +0 -1
- package/dist/components/features/chat/switch-profile-context-menu.cjs +0 -2
- package/dist/components/features/chat/switch-profile-context-menu.cjs.map +0 -1
- package/dist/components/features/chat/switch-profile-context-menu.d.ts +0 -9
- package/dist/components/features/chat/switch-profile-context-menu.js +0 -106
- package/dist/components/features/chat/switch-profile-context-menu.js.map +0 -1
- package/dist/components/features/onboarding/is-backend-llm-ready.d.ts +0 -30
- package/dist/icons/u-circuit.cjs +0 -2
- package/dist/icons/u-circuit.cjs.map +0 -1
- package/dist/icons/u-circuit.js +0 -19
- package/dist/icons/u-circuit.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.js +0 -28
- package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.js.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.cjs +0 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.cjs.map +0 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.js +0 -35
- package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.js.map +0 -1
- /package/build/assets/{agent-server-ui-style-scope-CIDFDeQb.js → agent-server-ui-style-scope-COnDHTm5.js} +0 -0
- /package/build/assets/{automation-DNgDxqtq.js → automation-BU8zu-FP.js} +0 -0
- /package/build/assets/{common-KeiA2Rod.js → common-Dh7OqABE.js} +0 -0
- /package/build/assets/{environment-switch-store-BpKxp6Xq.js → environment-switch-store-DkjlKWzN.js} +0 -0
- /package/build/assets/{extension-module-card-classes-DvvyImGv.js → extension-module-card-classes-9V3J9J_b.js} +0 -0
- /package/build/assets/{git-status-mapper-B3_HbzUT.js → git-status-mapper-BI8FyUVp.js} +0 -0
- /package/build/assets/{handle-capture-consent-BChvj6mt.js → handle-capture-consent-CPMXU29K.js} +0 -0
- /package/build/assets/{llm-subscription-C1xDoa3K.js → llm-subscription-DtsX5Lhg.js} +0 -0
- /package/build/assets/{map-provider-MonJL5SS.js → map-provider-BM2SJarp.js} +0 -0
- /package/build/assets/{objectWithoutPropertiesLoose-BRYudkUn.js → objectWithoutPropertiesLoose-BgYIAs2y.js} +0 -0
- /package/build/assets/{rolldown-runtime-wFmyQBCi.js → rolldown-runtime-BFRubm34.js} +0 -0
- /package/build/assets/{settings-like-page-layout-classes-DNg2vKSM.js → settings-like-page-layout-classes-DENKlZpD.js} +0 -0
- /package/build/assets/{v4-BMWDcIWQ.js → v4-DbCkTSoU.js} +0 -0
- /package/build/assets/{vendor~browser-yZEspfT9.js → vendor~browser-Dqd33JyP.js} +0 -0
- /package/build/assets/{vendor~terminal-CcUoOdAH.js → vendor~terminal-aeP3PnKf.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-input-profile-picker.js","names":[],"sources":["../../../../../src/components/features/chat/components/chat-input-profile-picker.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useChatInputProfileState } from \"#/hooks/use-chat-input-profile-state\";\nimport { ComboboxCaretInline } from \"#/ui/combobox-caret\";\nimport SettingsGearIcon from \"#/icons/settings-gear.svg?react\";\nimport CheckIcon from \"#/icons/checkmark.svg?react\";\nimport { useClickOutsideElement } from \"#/hooks/use-click-outside-element\";\nimport { NavigationLink } from \"#/components/shared/navigation-link\";\nimport { ContextMenu } from \"#/ui/context-menu\";\nimport { ContextMenuListItem } from \"#/components/features/context-menu/context-menu-list-item\";\nimport { Divider } from \"#/ui/divider\";\nimport { Typography } from \"#/ui/typography\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\nimport { chatInputPillButtonClassName } from \"#/utils/form-control-classes\";\n\nconst PROFILE_LABEL_MAX_CHARS = 18;\n\nfunction truncateLabel(label: string): string {\n return label.length <= PROFILE_LABEL_MAX_CHARS\n ? label\n : `${label.slice(0, PROFILE_LABEL_MAX_CHARS)}…`;\n}\n\ninterface ChatInputProfileMenuContentProps {\n onClose: () => void;\n dividerInset?: \"menu\";\n settingsLinkClassName?: string;\n settingsIconClassName?: string;\n}\n\nexport function ChatInputProfileMenuContent({\n onClose,\n dividerInset,\n settingsLinkClassName,\n settingsIconClassName,\n}: ChatInputProfileMenuContentProps) {\n const { t } = useTranslation(\"openhands\");\n const { profiles, currentProfileId, selectProfile } =\n useChatInputProfileState();\n\n const handleSelect = (profile: (typeof profiles)[number]) => {\n selectProfile(profile);\n onClose();\n };\n\n return (\n <>\n {profiles.length > 0 && (\n <>\n {/* role=\"presentation\" keeps this a valid <li> child of the\n ContextMenu <ul> without exposing the label as a menu item. */}\n <li role=\"presentation\" className=\"px-2 pt-1 pb-0.5\">\n <Typography.Text className=\"text-[11px] font-medium text-[var(--oh-text-dim)] uppercase tracking-wide leading-4\">\n {t(I18nKey.SETTINGS$AVAILABLE_PROFILES)}\n </Typography.Text>\n </li>\n {profiles.map((profile) => {\n const isCurrent =\n profile.id != null && profile.id === currentProfileId;\n return (\n <ContextMenuListItem\n key={profile.id ?? profile.name}\n testId={`chat-input-agent-profile-option-${profile.name}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n if (isCurrent) {\n onClose();\n return;\n }\n handleSelect(profile);\n }}\n className={cn(\n \"flex items-center gap-2\",\n isCurrent && \"bg-[var(--oh-interactive-hover)]\",\n )}\n >\n <span\n className=\"flex-1 truncate text-sm leading-5\"\n title={profile.name}\n >\n {profile.name}\n </span>\n {isCurrent && (\n <CheckIcon\n width={14}\n height={14}\n className=\"shrink-0\"\n aria-hidden\n />\n )}\n </ContextMenuListItem>\n );\n })}\n </>\n )}\n {profiles.length > 0 && <Divider inset={dividerInset} />}\n <li className=\"text-sm\">\n <NavigationLink\n to=\"/settings/agents\"\n onClick={onClose}\n className={cn(\n \"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 settingsLinkClassName,\n )}\n >\n <SettingsGearIcon\n width={16}\n height={16}\n className={cn(\"shrink-0\", settingsIconClassName)}\n aria-hidden\n />\n <span>{t(I18nKey.CHAT$MANAGE_AGENT_PROFILES)}</span>\n </NavigationLink>\n </li>\n </>\n );\n}\n\nexport function ChatInputProfilePicker() {\n const { t } = useTranslation(\"openhands\");\n const { profiles, currentProfileName, isLoading, isSwitching } =\n useChatInputProfileState();\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const popoverRef = useClickOutsideElement<HTMLUListElement>(\n () => setIsPopoverOpen(false),\n triggerRef,\n );\n\n // Nothing to launch from yet (empty store before the backend seeds, or an\n // agent-server without the /api/agent-profiles surface): stay out of the way.\n if (isLoading || profiles.length === 0) {\n return null;\n }\n\n const label = currentProfileName ?? t(I18nKey.CHAT$AGENT_PROFILE_PLACEHOLDER);\n\n return (\n <div className=\"relative min-w-0\">\n <button\n ref={triggerRef}\n type=\"button\"\n className={cn(chatInputPillButtonClassName, \"max-w-[200px]\")}\n title={currentProfileName ?? undefined}\n data-testid=\"chat-input-agent-profile\"\n aria-expanded={isPopoverOpen}\n aria-haspopup=\"dialog\"\n // Disabled while a profile switch (new-conversation create / activate) is\n // in flight, so re-opening the menu can't fire a second create. The menu\n // closes on select, so this is the only double-submit path.\n disabled={isSwitching}\n aria-busy={isSwitching}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsPopoverOpen((open) => !open);\n }}\n >\n <span className=\"truncate\">{truncateLabel(label)}</span>\n <ComboboxCaretInline isOpen={isPopoverOpen} />\n </button>\n\n {isPopoverOpen && (\n <ContextMenu\n ref={popoverRef}\n testId=\"chat-input-agent-profile-popover\"\n position=\"top\"\n alignment=\"left\"\n spacing=\"none\"\n className=\"z-[60] mb-2 min-w-[200px] max-w-[320px] max-h-[60vh] overflow-y-auto\"\n >\n <ChatInputProfileMenuContent\n onClose={() => setIsPopoverOpen(false)}\n />\n </ContextMenu>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,IAAM,IAA0B;AAEhC,SAAS,EAAc,GAAuB;AAC5C,QAAO,EAAM,UAAU,IACnB,IACA,GAAG,EAAM,MAAM,GAAG,EAAwB,CAAC;;AAUjD,SAAgB,EAA4B,EAC1C,YACA,iBACA,0BACA,4BACmC;CACnC,IAAM,EAAE,SAAM,EAAe,YAAY,EACnC,EAAE,aAAU,qBAAkB,qBAClC,GAA0B,EAEtB,KAAgB,MAAuC;AAE3D,EADA,EAAc,EAAQ,EACtB,GAAS;;AAGX,QACE,kBAAA,GAAA,EAAA,UAAA;EACG,EAAS,SAAS,KACjB,kBAAA,GAAA,EAAA,UAAA,CAGE,kBAAC,MAAD;GAAI,MAAK;GAAe,WAAU;aAChC,kBAAC,EAAW,MAAZ;IAAiB,WAAU;cACxB,EAAE,EAAQ,4BAA4B;IACvB,CAAA;GACf,CAAA,EACJ,EAAS,KAAK,MAAY;GACzB,IAAM,IACJ,EAAQ,MAAM,QAAQ,EAAQ,OAAO;AACvC,UACE,kBAAC,GAAD;IAEE,QAAQ,mCAAmC,EAAQ;IACnD,UAAU,MAAU;AAGlB,SAFA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACnB,GAAW;AACb,SAAS;AACT;;AAEF,OAAa,EAAQ;;IAEvB,WAAW,EACT,2BACA,KAAa,mCACd;cAfH,CAiBE,kBAAC,QAAD;KACE,WAAU;KACV,OAAO,EAAQ;eAEd,EAAQ;KACJ,CAAA,EACN,KACC,kBAAC,GAAD;KACE,OAAO;KACP,QAAQ;KACR,WAAU;KACV,eAAA;KACA,CAAA,CAEgB;MA9Bf,EAAQ,MAAM,EAAQ,KA8BP;IAExB,CACD,EAAA,CAAA;EAEJ,EAAS,SAAS,KAAK,kBAAC,GAAD,EAAS,OAAO,GAAgB,CAAA;EACxD,kBAAC,MAAD;GAAI,WAAU;aACZ,kBAAC,GAAD;IACE,IAAG;IACH,SAAS;IACT,WAAW,EACT,+IACA,EACD;cANH,CAQE,kBAAC,GAAD;KACE,OAAO;KACP,QAAQ;KACR,WAAW,EAAG,YAAY,EAAsB;KAChD,eAAA;KACA,CAAA,EACF,kBAAC,QAAD,EAAA,UAAO,EAAE,EAAQ,2BAA2B,EAAQ,CAAA,CACrC;;GACd,CAAA;EACJ,EAAA,CAAA;;AAIP,SAAgB,IAAyB;CACvC,IAAM,EAAE,SAAM,EAAe,YAAY,EACnC,EAAE,aAAU,uBAAoB,cAAW,mBAC/C,GAA0B,EACtB,CAAC,GAAe,KAAoB,EAAM,SAAS,GAAM,EACzD,IAAa,EAAM,OAA0B,KAAK,EAClD,IAAa,QACX,EAAiB,GAAM,EAC7B,EACD;AAID,KAAI,KAAa,EAAS,WAAW,EACnC,QAAO;CAGT,IAAM,IAAQ,KAAsB,EAAE,EAAQ,+BAA+B;AAE7E,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,UAAD;GACE,KAAK;GACL,MAAK;GACL,WAAW,EAAG,GAA8B,gBAAgB;GAC5D,OAAO,KAAsB,KAAA;GAC7B,eAAY;GACZ,iBAAe;GACf,iBAAc;GAId,UAAU;GACV,aAAW;GACX,UAAU,MAAU;AAGlB,IAFA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACvB,GAAkB,MAAS,CAAC,EAAK;;aAhBrC,CAmBE,kBAAC,QAAD;IAAM,WAAU;cAAY,EAAc,EAAM;IAAQ,CAAA,EACxD,kBAAC,GAAD,EAAqB,QAAQ,GAAiB,CAAA,CACvC;MAER,KACC,kBAAC,GAAD;GACE,KAAK;GACL,QAAO;GACP,UAAS;GACT,WAAU;GACV,SAAQ;GACR,WAAU;aAEV,kBAAC,GAAD,EACE,eAAe,EAAiB,GAAM,EACtC,CAAA;GACU,CAAA,CAEZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);function e({hasConversation:e,isCloud:t,isAcp:n,profilesAvailable:r}){return e?n?`model`:`llm-profile`:r?`agent-profile`:t?`model`:`llm-profile`}exports.resolvePickerKind=e;
|
|
2
|
+
//# sourceMappingURL=resolve-picker-kind.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-picker-kind.cjs","names":[],"sources":["../../../../../src/components/features/chat/components/resolve-picker-kind.ts"],"sourcesContent":["export type PickerKind = \"model\" | \"agent-profile\" | \"llm-profile\";\n\nexport interface ResolvePickerKindInput {\n /** A conversation is active (i.e. we're inside a conversation, not on home). */\n hasConversation: boolean;\n /** The active backend is cloud (vs. a local agent-server). */\n isCloud: boolean;\n /** The current context runs an ACP agent (active conv or home ACP settings). */\n isAcp: boolean;\n /** At least one AgentProfile exists to launch the next conversation from. */\n profilesAvailable: boolean;\n}\n\n/**\n * Decide which chat-input model/profile picker to show. Pure so the matrix is\n * unit-tested directly (see `resolve-picker-kind.test.ts`).\n *\n * - Home (local or cloud): the AgentProfile picker, which starts a new\n * conversation / activates the default (#3727, cloud via #15060). When no\n * profiles exist yet, fall back — cloud → model, local → LLM-profile (cloud\n * has no home LLM-profile activate path).\n * - In an ACP conversation (local or cloud): the model picker — ACP owns its\n * LLM via the subprocess/session, so the picker just live-switches the\n * session model (set_session_model / cloud's switch_acp_model proxy).\n * - In an OpenHands conversation (local or cloud): the LLM-profile picker,\n * which live-switches the running conversation's LLM profile via\n * /switch_profile — a real endpoint on both backends (cloud proxies\n * POST /api/v1/app-conversations/{id}/switch_profile, unchanged since\n * OpenHands#14288). There is no cloud-specific restriction here.\n */\nexport function resolvePickerKind({\n hasConversation,\n isCloud,\n isAcp,\n profilesAvailable,\n}: ResolvePickerKindInput): PickerKind {\n if (!hasConversation) {\n if (profilesAvailable) return \"agent-profile\";\n return isCloud ? \"model\" : \"llm-profile\";\n }\n return isAcp ? \"model\" : \"llm-profile\";\n}\n"],"mappings":"sDA8BA,SAAgB,EAAkB,CAChC,kBACA,UACA,QACA,qBACqC,CAKrC,OAJK,EAIE,EAAQ,QAAU,cAHnB,EAA0B,gBACvB,EAAU,QAAU"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type PickerKind = "model" | "agent-profile" | "llm-profile";
|
|
2
|
+
export interface ResolvePickerKindInput {
|
|
3
|
+
/** A conversation is active (i.e. we're inside a conversation, not on home). */
|
|
4
|
+
hasConversation: boolean;
|
|
5
|
+
/** The active backend is cloud (vs. a local agent-server). */
|
|
6
|
+
isCloud: boolean;
|
|
7
|
+
/** The current context runs an ACP agent (active conv or home ACP settings). */
|
|
8
|
+
isAcp: boolean;
|
|
9
|
+
/** At least one AgentProfile exists to launch the next conversation from. */
|
|
10
|
+
profilesAvailable: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Decide which chat-input model/profile picker to show. Pure so the matrix is
|
|
14
|
+
* unit-tested directly (see `resolve-picker-kind.test.ts`).
|
|
15
|
+
*
|
|
16
|
+
* - Home (local or cloud): the AgentProfile picker, which starts a new
|
|
17
|
+
* conversation / activates the default (#3727, cloud via #15060). When no
|
|
18
|
+
* profiles exist yet, fall back — cloud → model, local → LLM-profile (cloud
|
|
19
|
+
* has no home LLM-profile activate path).
|
|
20
|
+
* - In an ACP conversation (local or cloud): the model picker — ACP owns its
|
|
21
|
+
* LLM via the subprocess/session, so the picker just live-switches the
|
|
22
|
+
* session model (set_session_model / cloud's switch_acp_model proxy).
|
|
23
|
+
* - In an OpenHands conversation (local or cloud): the LLM-profile picker,
|
|
24
|
+
* which live-switches the running conversation's LLM profile via
|
|
25
|
+
* /switch_profile — a real endpoint on both backends (cloud proxies
|
|
26
|
+
* POST /api/v1/app-conversations/{id}/switch_profile, unchanged since
|
|
27
|
+
* OpenHands#14288). There is no cloud-specific restriction here.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolvePickerKind({ hasConversation, isCloud, isAcp, profilesAvailable, }: ResolvePickerKindInput): PickerKind;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/components/features/chat/components/resolve-picker-kind.ts
|
|
2
|
+
function e({ hasConversation: e, isCloud: t, isAcp: n, profilesAvailable: r }) {
|
|
3
|
+
return e ? n ? "model" : "llm-profile" : r ? "agent-profile" : t ? "model" : "llm-profile";
|
|
4
|
+
}
|
|
5
|
+
//#endregion
|
|
6
|
+
export { e as resolvePickerKind };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=resolve-picker-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-picker-kind.js","names":[],"sources":["../../../../../src/components/features/chat/components/resolve-picker-kind.ts"],"sourcesContent":["export type PickerKind = \"model\" | \"agent-profile\" | \"llm-profile\";\n\nexport interface ResolvePickerKindInput {\n /** A conversation is active (i.e. we're inside a conversation, not on home). */\n hasConversation: boolean;\n /** The active backend is cloud (vs. a local agent-server). */\n isCloud: boolean;\n /** The current context runs an ACP agent (active conv or home ACP settings). */\n isAcp: boolean;\n /** At least one AgentProfile exists to launch the next conversation from. */\n profilesAvailable: boolean;\n}\n\n/**\n * Decide which chat-input model/profile picker to show. Pure so the matrix is\n * unit-tested directly (see `resolve-picker-kind.test.ts`).\n *\n * - Home (local or cloud): the AgentProfile picker, which starts a new\n * conversation / activates the default (#3727, cloud via #15060). When no\n * profiles exist yet, fall back — cloud → model, local → LLM-profile (cloud\n * has no home LLM-profile activate path).\n * - In an ACP conversation (local or cloud): the model picker — ACP owns its\n * LLM via the subprocess/session, so the picker just live-switches the\n * session model (set_session_model / cloud's switch_acp_model proxy).\n * - In an OpenHands conversation (local or cloud): the LLM-profile picker,\n * which live-switches the running conversation's LLM profile via\n * /switch_profile — a real endpoint on both backends (cloud proxies\n * POST /api/v1/app-conversations/{id}/switch_profile, unchanged since\n * OpenHands#14288). There is no cloud-specific restriction here.\n */\nexport function resolvePickerKind({\n hasConversation,\n isCloud,\n isAcp,\n profilesAvailable,\n}: ResolvePickerKindInput): PickerKind {\n if (!hasConversation) {\n if (profilesAvailable) return \"agent-profile\";\n return isCloud ? \"model\" : \"llm-profile\";\n }\n return isAcp ? \"model\" : \"llm-profile\";\n}\n"],"mappings":";AA8BA,SAAgB,EAAkB,EAChC,oBACA,YACA,UACA,wBACqC;AAKrC,QAJK,IAIE,IAAQ,UAAU,gBAHnB,IAA0B,kBACvB,IAAU,UAAU"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../stores/goal-store.cjs`),t=require(`./goal-status-content.cjs`);let n=require(`react/jsx-runtime`);function r({conversationId:r}){let i=e.useGoalStore(e=>e.statusByConversation),a=r?i[r]:void 0;return a?.active?(0,n.jsx)(t.GoalStatusContent,{status:a}):null}exports.GoalStatusBanner=r;
|
|
2
|
+
//# sourceMappingURL=goal-status-banner.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-status-banner.cjs","names":[],"sources":["../../../../src/components/features/chat/goal-status-banner.tsx"],"sourcesContent":["import { useGoalStore } from \"#/stores/goal-store\";\nimport { GoalStatusContent } from \"./goal-status-content\";\n\nexport interface GoalStatusBannerProps {\n conversationId: string | null | undefined;\n}\n\n/**\n * Live, bottom-pinned banner for an *active* `/goal` loop, fed by goal\n * ConversationStateUpdateEvents (see useGoalStore). Once the loop ends it hides:\n * the final status is rendered inline in the message timeline instead (see\n * event-message.tsx + should-render-event.ts), so the finished goal settles into\n * the conversation and later messages append below it.\n */\nexport function GoalStatusBanner({ conversationId }: GoalStatusBannerProps) {\n const statusByConversation = useGoalStore((s) => s.statusByConversation);\n const status = conversationId\n ? statusByConversation[conversationId]\n : undefined;\n\n if (!status?.active) return null;\n\n return <GoalStatusContent status={status} />;\n}\n"],"mappings":"+KAcA,SAAgB,EAAiB,CAAE,kBAAyC,CAC1E,IAAM,EAAuB,EAAA,aAAc,GAAM,EAAE,qBAAqB,CAClE,EAAS,EACX,EAAqB,GACrB,IAAA,GAIJ,OAFK,GAAQ,QAEN,EAAA,EAAA,KAAC,EAAA,kBAAD,CAA2B,SAAU,CAAA,CAFhB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface GoalStatusBannerProps {
|
|
2
|
+
conversationId: string | null | undefined;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Live, bottom-pinned banner for an *active* `/goal` loop, fed by goal
|
|
6
|
+
* ConversationStateUpdateEvents (see useGoalStore). Once the loop ends it hides:
|
|
7
|
+
* the final status is rendered inline in the message timeline instead (see
|
|
8
|
+
* event-message.tsx + should-render-event.ts), so the finished goal settles into
|
|
9
|
+
* the conversation and later messages append below it.
|
|
10
|
+
*/
|
|
11
|
+
export declare function GoalStatusBanner({ conversationId }: GoalStatusBannerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useGoalStore as e } from "../../../stores/goal-store.js";
|
|
2
|
+
import { GoalStatusContent as t } from "./goal-status-content.js";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/features/chat/goal-status-banner.tsx
|
|
5
|
+
function r({ conversationId: r }) {
|
|
6
|
+
let i = e((e) => e.statusByConversation), a = r ? i[r] : void 0;
|
|
7
|
+
return a?.active ? /* @__PURE__ */ n(t, { status: a }) : null;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { r as GoalStatusBanner };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=goal-status-banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-status-banner.js","names":[],"sources":["../../../../src/components/features/chat/goal-status-banner.tsx"],"sourcesContent":["import { useGoalStore } from \"#/stores/goal-store\";\nimport { GoalStatusContent } from \"./goal-status-content\";\n\nexport interface GoalStatusBannerProps {\n conversationId: string | null | undefined;\n}\n\n/**\n * Live, bottom-pinned banner for an *active* `/goal` loop, fed by goal\n * ConversationStateUpdateEvents (see useGoalStore). Once the loop ends it hides:\n * the final status is rendered inline in the message timeline instead (see\n * event-message.tsx + should-render-event.ts), so the finished goal settles into\n * the conversation and later messages append below it.\n */\nexport function GoalStatusBanner({ conversationId }: GoalStatusBannerProps) {\n const statusByConversation = useGoalStore((s) => s.statusByConversation);\n const status = conversationId\n ? statusByConversation[conversationId]\n : undefined;\n\n if (!status?.active) return null;\n\n return <GoalStatusContent status={status} />;\n}\n"],"mappings":";;;;AAcA,SAAgB,EAAiB,EAAE,qBAAyC;CAC1E,IAAM,IAAuB,GAAc,MAAM,EAAE,qBAAqB,EAClE,IAAS,IACX,EAAqB,KACrB,KAAA;AAIJ,QAFK,GAAQ,SAEN,kBAAC,GAAD,EAA2B,WAAU,CAAA,GAFhB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../node_modules/react-i18next/dist/es/useTranslation.cjs`),t=require(`../../../i18n/declaration.cjs`),n=require(`../../../utils/utils.cjs`),r=require(`../../../hooks/use-conversation-id.cjs`),i=require(`../../../utils/custom-toast-handlers.cjs`),a=require(`../../../stores/goal-store.cjs`),o=require(`../../../hooks/mutation/conversation-mutation-utils.cjs`),s=require(`./generic-event-message.cjs`),c=require(`../../../icons/check-circle-solid.cjs`),l=require(`../../../icons/x-circle-solid.cjs`),u=require(`../../../utils/form-control-classes.cjs`);let d=require(`react`),f=require(`react/jsx-runtime`);var p={running:t.I18nKey.GOAL$STATUS_RUNNING,complete:t.I18nKey.GOAL$STATUS_COMPLETE,capped:t.I18nKey.GOAL$STATUS_CAPPED,interrupted:t.I18nKey.GOAL$STATUS_INTERRUPTED};function m({status:m}){let{t:h}=e.useTranslation(`openhands`),{conversationId:g}=r.useOptionalConversationId(),_=a.useGoalStore(e=>g?!!e.statusByConversation[g]?.active:!1),[v,y]=(0,d.useState)(!1),{active:b,objective:x,iteration:S,max_iterations:C,verdict:w}=m,T=w?Math.round(w.score*100):null,E=w?.missing?h(t.I18nKey.GOAL$MISSING,{missing:w.missing}):``,D=async(e,t)=>{if(!(!g||v)){y(!0);try{await e(g)}catch(e){i.displayErrorToast(e instanceof Error&&e.message?e.message:h(t))}finally{y(!1)}}},O=()=>D(async e=>{await o.stopGoal(e),await o.pauseConversation(e)},t.I18nKey.GOAL$STOP_FAILED),k=()=>D(o.resumeGoal,t.I18nKey.GOAL$RESUME_FAILED),A=null;return g&&b?A=(0,f.jsx)(`button`,{type:`button`,"data-testid":`goal-stop`,disabled:v,onClick:O,className:n.cn(u.chatInputPillButtonClassName,u.formControlDisabledClassName),children:h(t.I18nKey.GOAL$STOP)}):g&&m.status===`interrupted`&&!_&&(A=(0,f.jsx)(`button`,{type:`button`,"data-testid":`goal-resume`,disabled:v,onClick:k,className:n.cn(u.chatInputPillButtonClassName,u.formControlDisabledClassName),children:h(t.I18nKey.GOAL$RESUME)})),(0,f.jsx)(`div`,{"data-testid":`goal-status`,className:`flex flex-col w-full`,children:(0,f.jsx)(s.GenericEventMessage,{title:(0,f.jsxs)(`span`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,f.jsx)(`span`,{className:`opacity-60`,children:h(t.I18nKey.GOAL$PREFIX)}),(0,f.jsx)(`span`,{children:x}),(0,f.jsx)(`span`,{className:`opacity-60`,children:h(t.I18nKey.GOAL$ROUND,{iteration:S,max:C})}),(0,f.jsx)(`span`,{children:h(p[m.status])}),T!==null&&(0,f.jsx)(`span`,{className:`opacity-60`,children:h(t.I18nKey.GOAL$SCORE,{score:T})}),b?(0,f.jsx)(`span`,{"data-testid":`goal-spinner`,className:`inline-block w-3.5 h-3.5 ml-1 rounded-full border-2 border-transparent border-t-[var(--oh-border-input)] animate-spin`}):m.status===`complete`?(0,f.jsx)(`span`,{"data-testid":`goal-done`,className:`inline-flex ml-1`,children:(0,f.jsx)(c.default,{className:`w-3.5 h-3.5 fill-success`})}):(0,f.jsx)(`span`,{"data-testid":`goal-ended`,className:`inline-flex ml-1`,children:(0,f.jsx)(l.default,{className:`w-3.5 h-3.5 fill-[var(--oh-muted)]`})})]}),titleTrailing:A,details:E,initiallyExpanded:!b,chevronPosition:`before`})})}exports.GoalStatusContent=m;
|
|
2
|
+
//# sourceMappingURL=goal-status-content.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-status-content.cjs","names":[],"sources":["../../../../src/components/features/chat/goal-status-content.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport CheckCircle from \"#/icons/check-circle-solid.svg?react\";\nimport XCircle from \"#/icons/x-circle-solid.svg?react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { GoalStatus } from \"#/types/agent-server/core/events/conversation-state-event\";\nimport { useGoalStore } from \"#/stores/goal-store\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\nimport {\n pauseConversation,\n resumeGoal,\n stopGoal,\n} from \"#/hooks/mutation/conversation-mutation-utils\";\nimport { displayErrorToast } from \"#/utils/custom-toast-handlers\";\nimport { cn } from \"#/utils/utils\";\nimport {\n chatInputPillButtonClassName,\n formControlDisabledClassName,\n} from \"#/utils/form-control-classes\";\nimport { GenericEventMessage } from \"./generic-event-message\";\n\nconst STATUS_LABEL_KEY: Record<GoalStatus[\"status\"], I18nKey> = {\n running: I18nKey.GOAL$STATUS_RUNNING,\n complete: I18nKey.GOAL$STATUS_COMPLETE,\n capped: I18nKey.GOAL$STATUS_CAPPED,\n interrupted: I18nKey.GOAL$STATUS_INTERRUPTED,\n};\n\n/**\n * Goal-status row: objective, round count, status word, the judge's score, the\n * judge's \"missing\" note (expandable), and an indicator — spinner while running,\n * green check when complete, muted cross when it ends without completing\n * (capped/interrupted).\n *\n * Also exposes the loop controls at the end of the row: a Stop button while the\n * loop is active and a Resume button once it is interrupted. Stop both cancels\n * the loop (`stopGoal`) and interrupts the conversation, because the backend's\n * stop deliberately leaves the in-flight agent turn running.\n *\n * Used in two places: the live bottom banner (GoalStatusBanner) while a loop is\n * active, and inline in the message timeline for the terminal status, so a\n * finished `/goal` settles into the conversation. Because the inline copy mounts\n * fresh once terminal, `initiallyExpanded={!active}` expands the note there\n * without any re-mount trickery.\n */\nexport function GoalStatusContent({ status }: { status: GoalStatus }) {\n const { t } = useTranslation(\"openhands\");\n const { conversationId } = useOptionalConversationId();\n // Whether *some* goal loop is currently live for this conversation. Used to\n // hide a stale inline Resume button once the user has resumed (or started a\n // new goal): resuming again would just 409 on the backend.\n const goalActive = useGoalStore((s) =>\n conversationId\n ? Boolean(s.statusByConversation[conversationId]?.active)\n : false,\n );\n const [pending, setPending] = useState(false);\n const {\n active,\n objective,\n iteration,\n max_iterations: maxIterations,\n verdict,\n } = status;\n const scorePct = verdict ? Math.round(verdict.score * 100) : null;\n const details = verdict?.missing\n ? t(I18nKey.GOAL$MISSING, { missing: verdict.missing })\n : \"\";\n\n const runAction = async (\n action: (id: string) => Promise<void>,\n failKey: I18nKey,\n ) => {\n if (!conversationId || pending) return;\n setPending(true);\n try {\n await action(conversationId);\n } catch (err) {\n displayErrorToast(\n err instanceof Error && err.message ? err.message : t(failKey),\n );\n } finally {\n setPending(false);\n }\n };\n\n // stopGoal only cancels the loop; the backend leaves the current agent turn\n // running, so interrupt the conversation too to actually halt it.\n const handleStop = () =>\n runAction(async (id) => {\n await stopGoal(id);\n await pauseConversation(id);\n }, I18nKey.GOAL$STOP_FAILED);\n\n const handleResume = () => runAction(resumeGoal, I18nKey.GOAL$RESUME_FAILED);\n\n let actionButton: ReactNode = null;\n if (conversationId && active) {\n actionButton = (\n <button\n type=\"button\"\n data-testid=\"goal-stop\"\n disabled={pending}\n onClick={handleStop}\n className={cn(\n chatInputPillButtonClassName,\n formControlDisabledClassName,\n )}\n >\n {t(I18nKey.GOAL$STOP)}\n </button>\n );\n } else if (conversationId && status.status === \"interrupted\" && !goalActive) {\n actionButton = (\n <button\n type=\"button\"\n data-testid=\"goal-resume\"\n disabled={pending}\n onClick={handleResume}\n className={cn(\n chatInputPillButtonClassName,\n formControlDisabledClassName,\n )}\n >\n {t(I18nKey.GOAL$RESUME)}\n </button>\n );\n }\n\n return (\n <div data-testid=\"goal-status\" className=\"flex flex-col w-full\">\n <GenericEventMessage\n title={\n <span className=\"flex items-center gap-2 flex-wrap\">\n <span className=\"opacity-60\">{t(I18nKey.GOAL$PREFIX)}</span>\n <span>{objective}</span>\n <span className=\"opacity-60\">\n {t(I18nKey.GOAL$ROUND, { iteration, max: maxIterations })}\n </span>\n <span>{t(STATUS_LABEL_KEY[status.status])}</span>\n {scorePct !== null && (\n <span className=\"opacity-60\">\n {t(I18nKey.GOAL$SCORE, { score: scorePct })}\n </span>\n )}\n {active ? (\n <span\n data-testid=\"goal-spinner\"\n className=\"inline-block w-3.5 h-3.5 ml-1 rounded-full border-2 border-transparent border-t-[var(--oh-border-input)] animate-spin\"\n />\n ) : status.status === \"complete\" ? (\n <span data-testid=\"goal-done\" className=\"inline-flex ml-1\">\n <CheckCircle className=\"w-3.5 h-3.5 fill-success\" />\n </span>\n ) : (\n <span data-testid=\"goal-ended\" className=\"inline-flex ml-1\">\n <XCircle className=\"w-3.5 h-3.5 fill-[var(--oh-muted)]\" />\n </span>\n )}\n </span>\n }\n titleTrailing={actionButton}\n details={details}\n initiallyExpanded={!active}\n chevronPosition=\"before\"\n />\n </div>\n );\n}\n"],"mappings":"uqBAqBA,IAAM,EAA0D,CAC9D,QAAS,EAAA,QAAQ,oBACjB,SAAU,EAAA,QAAQ,qBAClB,OAAQ,EAAA,QAAQ,mBAChB,YAAa,EAAA,QAAQ,wBACtB,CAmBD,SAAgB,EAAkB,CAAE,UAAkC,CACpE,GAAM,CAAE,KAAM,EAAA,eAAe,YAAY,CACnC,CAAE,kBAAmB,EAAA,2BAA2B,CAIhD,EAAa,EAAA,aAAc,GAC/B,EACI,EAAQ,EAAE,qBAAqB,IAAiB,OAChD,GACL,CACK,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CACJ,SACA,YACA,YACA,eAAgB,EAChB,WACE,EACE,EAAW,EAAU,KAAK,MAAM,EAAQ,MAAQ,IAAI,CAAG,KACvD,EAAU,GAAS,QACrB,EAAE,EAAA,QAAQ,aAAc,CAAE,QAAS,EAAQ,QAAS,CAAC,CACrD,GAEE,EAAY,MAChB,EACA,IACG,CACC,MAAC,GAAkB,GACvB,GAAW,GAAK,CAChB,GAAI,CACF,MAAM,EAAO,EAAe,OACrB,EAAK,CACZ,EAAA,kBACE,aAAe,OAAS,EAAI,QAAU,EAAI,QAAU,EAAE,EAAQ,CAC/D,QACO,CACR,EAAW,GAAM,IAMf,MACJ,EAAU,KAAO,IAAO,CACtB,MAAM,EAAA,SAAS,EAAG,CAClB,MAAM,EAAA,kBAAkB,EAAG,EAC1B,EAAA,QAAQ,iBAAiB,CAExB,MAAqB,EAAU,EAAA,WAAY,EAAA,QAAQ,mBAAmB,CAExE,EAA0B,KAiC9B,OAhCI,GAAkB,EACpB,GACE,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,cAAY,YACZ,SAAU,EACV,QAAS,EACT,UAAW,EAAA,GACT,EAAA,6BACA,EAAA,6BACD,UAEA,EAAE,EAAA,QAAQ,UAAU,CACd,CAAA,CAEF,GAAkB,EAAO,SAAW,eAAiB,CAAC,IAC/D,GACE,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,cAAY,cACZ,SAAU,EACV,QAAS,EACT,UAAW,EAAA,GACT,EAAA,6BACA,EAAA,6BACD,UAEA,EAAE,EAAA,QAAQ,YAAY,CAChB,CAAA,GAKX,EAAA,EAAA,KAAC,MAAD,CAAK,cAAY,cAAc,UAAU,iCACvC,EAAA,EAAA,KAAC,EAAA,oBAAD,CACE,OACE,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,6CAAhB,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAE,EAAA,QAAQ,YAAY,CAAQ,CAAA,EAC5D,EAAA,EAAA,KAAC,OAAD,CAAA,SAAO,EAAiB,CAAA,EACxB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBACb,EAAE,EAAA,QAAQ,WAAY,CAAE,YAAW,IAAK,EAAe,CAAC,CACpD,CAAA,EACP,EAAA,EAAA,KAAC,OAAD,CAAA,SAAO,EAAE,EAAiB,EAAO,QAAQ,CAAQ,CAAA,CAChD,IAAa,OACZ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBACb,EAAE,EAAA,QAAQ,WAAY,CAAE,MAAO,EAAU,CAAC,CACtC,CAAA,CAER,GACC,EAAA,EAAA,KAAC,OAAD,CACE,cAAY,eACZ,UAAU,wHACV,CAAA,CACA,EAAO,SAAW,YACpB,EAAA,EAAA,KAAC,OAAD,CAAM,cAAY,YAAY,UAAU,6BACtC,EAAA,EAAA,KAAC,EAAA,QAAD,CAAa,UAAU,2BAA6B,CAAA,CAC/C,CAAA,EAEP,EAAA,EAAA,KAAC,OAAD,CAAM,cAAY,aAAa,UAAU,6BACvC,EAAA,EAAA,KAAC,EAAA,QAAD,CAAS,UAAU,qCAAuC,CAAA,CACrD,CAAA,CAEJ,GAET,cAAe,EACN,UACT,kBAAmB,CAAC,EACpB,gBAAgB,SAChB,CAAA,CACE,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GoalStatus } from "#/types/agent-server/core/events/conversation-state-event";
|
|
2
|
+
/**
|
|
3
|
+
* Goal-status row: objective, round count, status word, the judge's score, the
|
|
4
|
+
* judge's "missing" note (expandable), and an indicator — spinner while running,
|
|
5
|
+
* green check when complete, muted cross when it ends without completing
|
|
6
|
+
* (capped/interrupted).
|
|
7
|
+
*
|
|
8
|
+
* Also exposes the loop controls at the end of the row: a Stop button while the
|
|
9
|
+
* loop is active and a Resume button once it is interrupted. Stop both cancels
|
|
10
|
+
* the loop (`stopGoal`) and interrupts the conversation, because the backend's
|
|
11
|
+
* stop deliberately leaves the in-flight agent turn running.
|
|
12
|
+
*
|
|
13
|
+
* Used in two places: the live bottom banner (GoalStatusBanner) while a loop is
|
|
14
|
+
* active, and inline in the message timeline for the terminal status, so a
|
|
15
|
+
* finished `/goal` settles into the conversation. Because the inline copy mounts
|
|
16
|
+
* fresh once terminal, `initiallyExpanded={!active}` expands the note there
|
|
17
|
+
* without any re-mount trickery.
|
|
18
|
+
*/
|
|
19
|
+
export declare function GoalStatusContent({ status }: {
|
|
20
|
+
status: GoalStatus;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { I18nKey as t } from "../../../i18n/declaration.js";
|
|
3
|
+
import { cn as n } from "../../../utils/utils.js";
|
|
4
|
+
import { useOptionalConversationId as r } from "../../../hooks/use-conversation-id.js";
|
|
5
|
+
import { displayErrorToast as i } from "../../../utils/custom-toast-handlers.js";
|
|
6
|
+
import { useGoalStore as a } from "../../../stores/goal-store.js";
|
|
7
|
+
import { pauseConversation as o, resumeGoal as s, stopGoal as c } from "../../../hooks/mutation/conversation-mutation-utils.js";
|
|
8
|
+
import { GenericEventMessage as l } from "./generic-event-message.js";
|
|
9
|
+
import u from "../../../icons/check-circle-solid.js";
|
|
10
|
+
import d from "../../../icons/x-circle-solid.js";
|
|
11
|
+
import { chatInputPillButtonClassName as f, formControlDisabledClassName as p } from "../../../utils/form-control-classes.js";
|
|
12
|
+
import { useState as m } from "react";
|
|
13
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
14
|
+
//#region src/components/features/chat/goal-status-content.tsx
|
|
15
|
+
var _ = {
|
|
16
|
+
running: t.GOAL$STATUS_RUNNING,
|
|
17
|
+
complete: t.GOAL$STATUS_COMPLETE,
|
|
18
|
+
capped: t.GOAL$STATUS_CAPPED,
|
|
19
|
+
interrupted: t.GOAL$STATUS_INTERRUPTED
|
|
20
|
+
};
|
|
21
|
+
function v({ status: v }) {
|
|
22
|
+
let { t: y } = e("openhands"), { conversationId: b } = r(), x = a((e) => b ? !!e.statusByConversation[b]?.active : !1), [S, C] = m(!1), { active: w, objective: T, iteration: E, max_iterations: D, verdict: O } = v, k = O ? Math.round(O.score * 100) : null, A = O?.missing ? y(t.GOAL$MISSING, { missing: O.missing }) : "", j = async (e, t) => {
|
|
23
|
+
if (!(!b || S)) {
|
|
24
|
+
C(!0);
|
|
25
|
+
try {
|
|
26
|
+
await e(b);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
i(e instanceof Error && e.message ? e.message : y(t));
|
|
29
|
+
} finally {
|
|
30
|
+
C(!1);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}, M = () => j(async (e) => {
|
|
34
|
+
await c(e), await o(e);
|
|
35
|
+
}, t.GOAL$STOP_FAILED), N = () => j(s, t.GOAL$RESUME_FAILED), P = null;
|
|
36
|
+
return b && w ? P = /* @__PURE__ */ h("button", {
|
|
37
|
+
type: "button",
|
|
38
|
+
"data-testid": "goal-stop",
|
|
39
|
+
disabled: S,
|
|
40
|
+
onClick: M,
|
|
41
|
+
className: n(f, p),
|
|
42
|
+
children: y(t.GOAL$STOP)
|
|
43
|
+
}) : b && v.status === "interrupted" && !x && (P = /* @__PURE__ */ h("button", {
|
|
44
|
+
type: "button",
|
|
45
|
+
"data-testid": "goal-resume",
|
|
46
|
+
disabled: S,
|
|
47
|
+
onClick: N,
|
|
48
|
+
className: n(f, p),
|
|
49
|
+
children: y(t.GOAL$RESUME)
|
|
50
|
+
})), /* @__PURE__ */ h("div", {
|
|
51
|
+
"data-testid": "goal-status",
|
|
52
|
+
className: "flex flex-col w-full",
|
|
53
|
+
children: /* @__PURE__ */ h(l, {
|
|
54
|
+
title: /* @__PURE__ */ g("span", {
|
|
55
|
+
className: "flex items-center gap-2 flex-wrap",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ h("span", {
|
|
58
|
+
className: "opacity-60",
|
|
59
|
+
children: y(t.GOAL$PREFIX)
|
|
60
|
+
}),
|
|
61
|
+
/* @__PURE__ */ h("span", { children: T }),
|
|
62
|
+
/* @__PURE__ */ h("span", {
|
|
63
|
+
className: "opacity-60",
|
|
64
|
+
children: y(t.GOAL$ROUND, {
|
|
65
|
+
iteration: E,
|
|
66
|
+
max: D
|
|
67
|
+
})
|
|
68
|
+
}),
|
|
69
|
+
/* @__PURE__ */ h("span", { children: y(_[v.status]) }),
|
|
70
|
+
k !== null && /* @__PURE__ */ h("span", {
|
|
71
|
+
className: "opacity-60",
|
|
72
|
+
children: y(t.GOAL$SCORE, { score: k })
|
|
73
|
+
}),
|
|
74
|
+
w ? /* @__PURE__ */ h("span", {
|
|
75
|
+
"data-testid": "goal-spinner",
|
|
76
|
+
className: "inline-block w-3.5 h-3.5 ml-1 rounded-full border-2 border-transparent border-t-[var(--oh-border-input)] animate-spin"
|
|
77
|
+
}) : v.status === "complete" ? /* @__PURE__ */ h("span", {
|
|
78
|
+
"data-testid": "goal-done",
|
|
79
|
+
className: "inline-flex ml-1",
|
|
80
|
+
children: /* @__PURE__ */ h(u, { className: "w-3.5 h-3.5 fill-success" })
|
|
81
|
+
}) : /* @__PURE__ */ h("span", {
|
|
82
|
+
"data-testid": "goal-ended",
|
|
83
|
+
className: "inline-flex ml-1",
|
|
84
|
+
children: /* @__PURE__ */ h(d, { className: "w-3.5 h-3.5 fill-[var(--oh-muted)]" })
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
}),
|
|
88
|
+
titleTrailing: P,
|
|
89
|
+
details: A,
|
|
90
|
+
initiallyExpanded: !w,
|
|
91
|
+
chevronPosition: "before"
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { v as GoalStatusContent };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=goal-status-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-status-content.js","names":[],"sources":["../../../../src/components/features/chat/goal-status-content.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport CheckCircle from \"#/icons/check-circle-solid.svg?react\";\nimport XCircle from \"#/icons/x-circle-solid.svg?react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { GoalStatus } from \"#/types/agent-server/core/events/conversation-state-event\";\nimport { useGoalStore } from \"#/stores/goal-store\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\nimport {\n pauseConversation,\n resumeGoal,\n stopGoal,\n} from \"#/hooks/mutation/conversation-mutation-utils\";\nimport { displayErrorToast } from \"#/utils/custom-toast-handlers\";\nimport { cn } from \"#/utils/utils\";\nimport {\n chatInputPillButtonClassName,\n formControlDisabledClassName,\n} from \"#/utils/form-control-classes\";\nimport { GenericEventMessage } from \"./generic-event-message\";\n\nconst STATUS_LABEL_KEY: Record<GoalStatus[\"status\"], I18nKey> = {\n running: I18nKey.GOAL$STATUS_RUNNING,\n complete: I18nKey.GOAL$STATUS_COMPLETE,\n capped: I18nKey.GOAL$STATUS_CAPPED,\n interrupted: I18nKey.GOAL$STATUS_INTERRUPTED,\n};\n\n/**\n * Goal-status row: objective, round count, status word, the judge's score, the\n * judge's \"missing\" note (expandable), and an indicator — spinner while running,\n * green check when complete, muted cross when it ends without completing\n * (capped/interrupted).\n *\n * Also exposes the loop controls at the end of the row: a Stop button while the\n * loop is active and a Resume button once it is interrupted. Stop both cancels\n * the loop (`stopGoal`) and interrupts the conversation, because the backend's\n * stop deliberately leaves the in-flight agent turn running.\n *\n * Used in two places: the live bottom banner (GoalStatusBanner) while a loop is\n * active, and inline in the message timeline for the terminal status, so a\n * finished `/goal` settles into the conversation. Because the inline copy mounts\n * fresh once terminal, `initiallyExpanded={!active}` expands the note there\n * without any re-mount trickery.\n */\nexport function GoalStatusContent({ status }: { status: GoalStatus }) {\n const { t } = useTranslation(\"openhands\");\n const { conversationId } = useOptionalConversationId();\n // Whether *some* goal loop is currently live for this conversation. Used to\n // hide a stale inline Resume button once the user has resumed (or started a\n // new goal): resuming again would just 409 on the backend.\n const goalActive = useGoalStore((s) =>\n conversationId\n ? Boolean(s.statusByConversation[conversationId]?.active)\n : false,\n );\n const [pending, setPending] = useState(false);\n const {\n active,\n objective,\n iteration,\n max_iterations: maxIterations,\n verdict,\n } = status;\n const scorePct = verdict ? Math.round(verdict.score * 100) : null;\n const details = verdict?.missing\n ? t(I18nKey.GOAL$MISSING, { missing: verdict.missing })\n : \"\";\n\n const runAction = async (\n action: (id: string) => Promise<void>,\n failKey: I18nKey,\n ) => {\n if (!conversationId || pending) return;\n setPending(true);\n try {\n await action(conversationId);\n } catch (err) {\n displayErrorToast(\n err instanceof Error && err.message ? err.message : t(failKey),\n );\n } finally {\n setPending(false);\n }\n };\n\n // stopGoal only cancels the loop; the backend leaves the current agent turn\n // running, so interrupt the conversation too to actually halt it.\n const handleStop = () =>\n runAction(async (id) => {\n await stopGoal(id);\n await pauseConversation(id);\n }, I18nKey.GOAL$STOP_FAILED);\n\n const handleResume = () => runAction(resumeGoal, I18nKey.GOAL$RESUME_FAILED);\n\n let actionButton: ReactNode = null;\n if (conversationId && active) {\n actionButton = (\n <button\n type=\"button\"\n data-testid=\"goal-stop\"\n disabled={pending}\n onClick={handleStop}\n className={cn(\n chatInputPillButtonClassName,\n formControlDisabledClassName,\n )}\n >\n {t(I18nKey.GOAL$STOP)}\n </button>\n );\n } else if (conversationId && status.status === \"interrupted\" && !goalActive) {\n actionButton = (\n <button\n type=\"button\"\n data-testid=\"goal-resume\"\n disabled={pending}\n onClick={handleResume}\n className={cn(\n chatInputPillButtonClassName,\n formControlDisabledClassName,\n )}\n >\n {t(I18nKey.GOAL$RESUME)}\n </button>\n );\n }\n\n return (\n <div data-testid=\"goal-status\" className=\"flex flex-col w-full\">\n <GenericEventMessage\n title={\n <span className=\"flex items-center gap-2 flex-wrap\">\n <span className=\"opacity-60\">{t(I18nKey.GOAL$PREFIX)}</span>\n <span>{objective}</span>\n <span className=\"opacity-60\">\n {t(I18nKey.GOAL$ROUND, { iteration, max: maxIterations })}\n </span>\n <span>{t(STATUS_LABEL_KEY[status.status])}</span>\n {scorePct !== null && (\n <span className=\"opacity-60\">\n {t(I18nKey.GOAL$SCORE, { score: scorePct })}\n </span>\n )}\n {active ? (\n <span\n data-testid=\"goal-spinner\"\n className=\"inline-block w-3.5 h-3.5 ml-1 rounded-full border-2 border-transparent border-t-[var(--oh-border-input)] animate-spin\"\n />\n ) : status.status === \"complete\" ? (\n <span data-testid=\"goal-done\" className=\"inline-flex ml-1\">\n <CheckCircle className=\"w-3.5 h-3.5 fill-success\" />\n </span>\n ) : (\n <span data-testid=\"goal-ended\" className=\"inline-flex ml-1\">\n <XCircle className=\"w-3.5 h-3.5 fill-[var(--oh-muted)]\" />\n </span>\n )}\n </span>\n }\n titleTrailing={actionButton}\n details={details}\n initiallyExpanded={!active}\n chevronPosition=\"before\"\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,IAAM,IAA0D;CAC9D,SAAS,EAAQ;CACjB,UAAU,EAAQ;CAClB,QAAQ,EAAQ;CAChB,aAAa,EAAQ;CACtB;AAmBD,SAAgB,EAAkB,EAAE,aAAkC;CACpE,IAAM,EAAE,SAAM,EAAe,YAAY,EACnC,EAAE,sBAAmB,GAA2B,EAIhD,IAAa,GAAc,MAC/B,IACI,EAAQ,EAAE,qBAAqB,IAAiB,SAChD,GACL,EACK,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,EACJ,WACA,cACA,cACA,gBAAgB,GAChB,eACE,GACE,IAAW,IAAU,KAAK,MAAM,EAAQ,QAAQ,IAAI,GAAG,MACvD,IAAU,GAAS,UACrB,EAAE,EAAQ,cAAc,EAAE,SAAS,EAAQ,SAAS,CAAC,GACrD,IAEE,IAAY,OAChB,GACA,MACG;AACC,SAAC,KAAkB,IACvB;KAAW,GAAK;AAChB,OAAI;AACF,UAAM,EAAO,EAAe;YACrB,GAAK;AACZ,MACE,aAAe,SAAS,EAAI,UAAU,EAAI,UAAU,EAAE,EAAQ,CAC/D;aACO;AACR,MAAW,GAAM;;;IAMf,UACJ,EAAU,OAAO,MAAO;AAEtB,EADA,MAAM,EAAS,EAAG,EAClB,MAAM,EAAkB,EAAG;IAC1B,EAAQ,iBAAiB,EAExB,UAAqB,EAAU,GAAY,EAAQ,mBAAmB,EAExE,IAA0B;AAiC9B,QAhCI,KAAkB,IACpB,IACE,kBAAC,UAAD;EACE,MAAK;EACL,eAAY;EACZ,UAAU;EACV,SAAS;EACT,WAAW,EACT,GACA,EACD;YAEA,EAAE,EAAQ,UAAU;EACd,CAAA,GAEF,KAAkB,EAAO,WAAW,iBAAiB,CAAC,MAC/D,IACE,kBAAC,UAAD;EACE,MAAK;EACL,eAAY;EACZ,UAAU;EACV,SAAS;EACT,WAAW,EACT,GACA,EACD;YAEA,EAAE,EAAQ,YAAY;EAChB,CAAA,GAKX,kBAAC,OAAD;EAAK,eAAY;EAAc,WAAU;YACvC,kBAAC,GAAD;GACE,OACE,kBAAC,QAAD;IAAM,WAAU;cAAhB;KACE,kBAAC,QAAD;MAAM,WAAU;gBAAc,EAAE,EAAQ,YAAY;MAAQ,CAAA;KAC5D,kBAAC,QAAD,EAAA,UAAO,GAAiB,CAAA;KACxB,kBAAC,QAAD;MAAM,WAAU;gBACb,EAAE,EAAQ,YAAY;OAAE;OAAW,KAAK;OAAe,CAAC;MACpD,CAAA;KACP,kBAAC,QAAD,EAAA,UAAO,EAAE,EAAiB,EAAO,QAAQ,EAAQ,CAAA;KAChD,MAAa,QACZ,kBAAC,QAAD;MAAM,WAAU;gBACb,EAAE,EAAQ,YAAY,EAAE,OAAO,GAAU,CAAC;MACtC,CAAA;KAER,IACC,kBAAC,QAAD;MACE,eAAY;MACZ,WAAU;MACV,CAAA,GACA,EAAO,WAAW,aACpB,kBAAC,QAAD;MAAM,eAAY;MAAY,WAAU;gBACtC,kBAAC,GAAD,EAAa,WAAU,4BAA6B,CAAA;MAC/C,CAAA,GAEP,kBAAC,QAAD;MAAM,eAAY;MAAa,WAAU;gBACvC,kBAAC,GAAD,EAAS,WAAU,sCAAuC,CAAA;MACrD,CAAA;KAEJ;;GAET,eAAe;GACN;GACT,mBAAmB,CAAC;GACpB,iBAAgB;GAChB,CAAA;EACE,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../types/agent-state.cjs`),t=require(`../../../utils/utils.cjs`),n=require(`../../../hooks/use-conversation-id.cjs`),r=require(`../../../stores/conversation-store.cjs`),i=require(`../../../hooks/query/use-active-conversation.cjs`),a=require(`../../../hooks/use-agent-state.cjs`),o=require(`./utils/chat-input.utils.cjs`),s=require(`../../../hooks/query/use-sub-conversation-task-polling.cjs`),c=require(`./custom-chat-input.cjs`),l=require(`../../../hooks/chat/use-btw-interceptor.cjs`),u=require(`../../../hooks/chat/use-
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../types/agent-state.cjs`),t=require(`../../../utils/utils.cjs`),n=require(`../../../hooks/use-conversation-id.cjs`),r=require(`../../../stores/conversation-store.cjs`),i=require(`../../../hooks/query/use-active-conversation.cjs`),a=require(`../../../hooks/use-agent-state.cjs`),o=require(`./utils/chat-input.utils.cjs`),s=require(`../../../hooks/query/use-sub-conversation-task-polling.cjs`),c=require(`./custom-chat-input.cjs`),l=require(`../../../hooks/chat/use-btw-interceptor.cjs`),u=require(`../../../hooks/chat/use-goal-interceptor.cjs`),d=require(`../../../hooks/chat/use-model-interceptor.cjs`),f=require(`../../../hooks/chat/use-chat-attachment-upload.cjs`),p=require(`./git-control-bar.cjs`);let m=require(`react/jsx-runtime`);function h({onSubmit:h,disabled:g=!1}){let{images:_,files:v,imagesMarkedUploadAsFile:y,clearAllFiles:b,subConversationTaskId:x}=r.useConversationStore(),{curAgentState:S}=a.useAgentState(),{data:C}=i.useActiveConversation(),{conversationId:w}=n.useOptionalConversationId(),T=w??C?.id??null,{taskStatus:E}=s.useSubConversationTaskPolling(x,C?.id||null),{handleUpload:D}=f.useChatAttachmentUpload(),O=d.useModelInterceptor(T,u.useGoalInterceptor(T,l.useBtwInterceptor(T,e=>{let{imagesToEmbed:t,imagesAsFiles:n}=o.partitionImagesForUpload(_,y);h(e,t,[...v,...n]),b()})));return(0,m.jsxs)(`div`,{"data-testid":`interactive-chat-box`,children:[(0,m.jsx)(c.CustomChatInput,{disabled:g||S===e.AgentState.AWAITING_USER_CONFIRMATION||t.isTaskPolling(E),isNewConversationPending:g,onSubmit:O,onFilesPaste:D}),(0,m.jsx)(`div`,{className:`mt-3 pb-3`,children:(0,m.jsx)(p.GitControlBar,{onSuggestionsClick:e=>{O(e)}})})]})}exports.InteractiveChatBox=h;
|
|
2
2
|
//# sourceMappingURL=interactive-chat-box.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-chat-box.cjs","names":[],"sources":["../../../../src/components/features/chat/interactive-chat-box.tsx"],"sourcesContent":["import { CustomChatInput } from \"./custom-chat-input\";\nimport { useBtwInterceptor } from \"#/hooks/chat/use-btw-interceptor\";\nimport { useModelInterceptor } from \"#/hooks/chat/use-model-interceptor\";\nimport { useChatAttachmentUpload } from \"#/hooks/chat/use-chat-attachment-upload\";\nimport { AgentState } from \"#/types/agent-state\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\nimport { GitControlBar } from \"./git-control-bar\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useAgentState } from \"#/hooks/use-agent-state\";\nimport { useSubConversationTaskPolling } from \"#/hooks/query/use-sub-conversation-task-polling\";\nimport { partitionImagesForUpload } from \"#/components/features/chat/utils/chat-input.utils\";\nimport { isTaskPolling } from \"#/utils/utils\";\n\ninterface InteractiveChatBoxProps {\n onSubmit: (message: string, images: File[], files: File[]) => void;\n disabled?: boolean;\n}\n\nexport function InteractiveChatBox({\n onSubmit,\n disabled = false,\n}: InteractiveChatBoxProps) {\n const {\n images,\n files,\n imagesMarkedUploadAsFile,\n clearAllFiles,\n subConversationTaskId,\n } = useConversationStore();\n const { curAgentState } = useAgentState();\n const { data: conversation } = useActiveConversation();\n const { conversationId: routeConversationId } = useOptionalConversationId();\n const conversationId = routeConversationId ?? conversation?.id ?? null;\n\n const { taskStatus: subConversationTaskStatus } =\n useSubConversationTaskPolling(\n subConversationTaskId,\n conversation?.id || null,\n );\n\n const { handleUpload } = useChatAttachmentUpload();\n\n const
|
|
1
|
+
{"version":3,"file":"interactive-chat-box.cjs","names":[],"sources":["../../../../src/components/features/chat/interactive-chat-box.tsx"],"sourcesContent":["import { CustomChatInput } from \"./custom-chat-input\";\nimport { useBtwInterceptor } from \"#/hooks/chat/use-btw-interceptor\";\nimport { useGoalInterceptor } from \"#/hooks/chat/use-goal-interceptor\";\nimport { useModelInterceptor } from \"#/hooks/chat/use-model-interceptor\";\nimport { useChatAttachmentUpload } from \"#/hooks/chat/use-chat-attachment-upload\";\nimport { AgentState } from \"#/types/agent-state\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\nimport { GitControlBar } from \"./git-control-bar\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useAgentState } from \"#/hooks/use-agent-state\";\nimport { useSubConversationTaskPolling } from \"#/hooks/query/use-sub-conversation-task-polling\";\nimport { partitionImagesForUpload } from \"#/components/features/chat/utils/chat-input.utils\";\nimport { isTaskPolling } from \"#/utils/utils\";\n\ninterface InteractiveChatBoxProps {\n onSubmit: (message: string, images: File[], files: File[]) => void;\n disabled?: boolean;\n}\n\nexport function InteractiveChatBox({\n onSubmit,\n disabled = false,\n}: InteractiveChatBoxProps) {\n const {\n images,\n files,\n imagesMarkedUploadAsFile,\n clearAllFiles,\n subConversationTaskId,\n } = useConversationStore();\n const { curAgentState } = useAgentState();\n const { data: conversation } = useActiveConversation();\n const { conversationId: routeConversationId } = useOptionalConversationId();\n const conversationId = routeConversationId ?? conversation?.id ?? null;\n\n const { taskStatus: subConversationTaskStatus } =\n useSubConversationTaskPolling(\n subConversationTaskId,\n conversation?.id || null,\n );\n\n const { handleUpload } = useChatAttachmentUpload();\n\n const handleAfterGoal = useBtwInterceptor(conversationId, (message) => {\n const { imagesToEmbed, imagesAsFiles } = partitionImagesForUpload(\n images,\n imagesMarkedUploadAsFile,\n );\n onSubmit(message, imagesToEmbed, [...files, ...imagesAsFiles]);\n clearAllFiles();\n });\n const handleAfterModel = useGoalInterceptor(conversationId, handleAfterGoal);\n const handleSubmit = useModelInterceptor(conversationId, handleAfterModel);\n\n const handleSuggestionsClick = (suggestion: string) => {\n handleSubmit(suggestion);\n };\n\n const isDisabled =\n disabled ||\n curAgentState === AgentState.AWAITING_USER_CONFIRMATION ||\n isTaskPolling(subConversationTaskStatus);\n\n return (\n <div data-testid=\"interactive-chat-box\">\n <CustomChatInput\n disabled={isDisabled}\n isNewConversationPending={disabled}\n onSubmit={handleSubmit}\n onFilesPaste={handleUpload}\n />\n <div className=\"mt-3 pb-3\">\n <GitControlBar onSuggestionsClick={handleSuggestionsClick} />\n </div>\n </div>\n );\n}\n"],"mappings":"4yBAoBA,SAAgB,EAAmB,CACjC,WACA,WAAW,IACe,CAC1B,GAAM,CACJ,SACA,QACA,2BACA,gBACA,yBACE,EAAA,sBAAsB,CACpB,CAAE,iBAAkB,EAAA,eAAe,CACnC,CAAE,KAAM,GAAiB,EAAA,uBAAuB,CAChD,CAAE,eAAgB,GAAwB,EAAA,2BAA2B,CACrE,EAAiB,GAAuB,GAAc,IAAM,KAE5D,CAAE,WAAY,GAClB,EAAA,8BACE,EACA,GAAc,IAAM,KACrB,CAEG,CAAE,gBAAiB,EAAA,yBAAyB,CAW5C,EAAe,EAAA,oBAAoB,EADhB,EAAA,mBAAmB,EARpB,EAAA,kBAAkB,EAAiB,GAAY,CACrE,GAAM,CAAE,gBAAe,iBAAkB,EAAA,yBACvC,EACA,EACD,CACD,EAAS,EAAS,EAAe,CAAC,GAAG,EAAO,GAAG,EAAc,CAAC,CAC9D,GAAe,EAE2C,CACH,CAAiB,CAW1E,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,cAAY,gCAAjB,EACE,EAAA,EAAA,KAAC,EAAA,gBAAD,CACE,SAPJ,GACA,IAAkB,EAAA,WAAW,4BAC7B,EAAA,cAAc,EAA0B,CAMpC,yBAA0B,EAC1B,SAAU,EACV,aAAc,EACd,CAAA,EACF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,sBACb,EAAA,EAAA,KAAC,EAAA,cAAD,CAAe,mBAlBW,GAAuB,CACrD,EAAa,EAAW,EAiByC,CAAA,CACzD,CAAA,CACF"}
|
|
@@ -8,32 +8,33 @@ import { partitionImagesForUpload as o } from "./utils/chat-input.utils.js";
|
|
|
8
8
|
import { useSubConversationTaskPolling as s } from "../../../hooks/query/use-sub-conversation-task-polling.js";
|
|
9
9
|
import { CustomChatInput as c } from "./custom-chat-input.js";
|
|
10
10
|
import { useBtwInterceptor as l } from "../../../hooks/chat/use-btw-interceptor.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
11
|
+
import { useGoalInterceptor as u } from "../../../hooks/chat/use-goal-interceptor.js";
|
|
12
|
+
import { useModelInterceptor as d } from "../../../hooks/chat/use-model-interceptor.js";
|
|
13
|
+
import { useChatAttachmentUpload as f } from "../../../hooks/chat/use-chat-attachment-upload.js";
|
|
14
|
+
import { GitControlBar as p } from "./git-control-bar.js";
|
|
15
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
15
16
|
//#region src/components/features/chat/interactive-chat-box.tsx
|
|
16
|
-
function
|
|
17
|
-
let { images:
|
|
18
|
-
let { imagesToEmbed: t, imagesAsFiles: n } = o(
|
|
19
|
-
|
|
20
|
-
}));
|
|
21
|
-
return /* @__PURE__ */
|
|
17
|
+
function g({ onSubmit: g, disabled: _ = !1 }) {
|
|
18
|
+
let { images: v, files: y, imagesMarkedUploadAsFile: b, clearAllFiles: x, subConversationTaskId: S } = r(), { curAgentState: C } = a(), { data: w } = i(), { conversationId: T } = n(), E = T ?? w?.id ?? null, { taskStatus: D } = s(S, w?.id || null), { handleUpload: O } = f(), k = d(E, u(E, l(E, (e) => {
|
|
19
|
+
let { imagesToEmbed: t, imagesAsFiles: n } = o(v, b);
|
|
20
|
+
g(e, t, [...y, ...n]), x();
|
|
21
|
+
})));
|
|
22
|
+
return /* @__PURE__ */ h("div", {
|
|
22
23
|
"data-testid": "interactive-chat-box",
|
|
23
|
-
children: [/* @__PURE__ */
|
|
24
|
-
disabled:
|
|
25
|
-
isNewConversationPending:
|
|
26
|
-
onSubmit:
|
|
27
|
-
onFilesPaste:
|
|
28
|
-
}), /* @__PURE__ */
|
|
24
|
+
children: [/* @__PURE__ */ m(c, {
|
|
25
|
+
disabled: _ || C === e.AWAITING_USER_CONFIRMATION || t(D),
|
|
26
|
+
isNewConversationPending: _,
|
|
27
|
+
onSubmit: k,
|
|
28
|
+
onFilesPaste: O
|
|
29
|
+
}), /* @__PURE__ */ m("div", {
|
|
29
30
|
className: "mt-3 pb-3",
|
|
30
|
-
children: /* @__PURE__ */ p
|
|
31
|
-
|
|
31
|
+
children: /* @__PURE__ */ m(p, { onSuggestionsClick: (e) => {
|
|
32
|
+
k(e);
|
|
32
33
|
} })
|
|
33
34
|
})]
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
37
|
//#endregion
|
|
37
|
-
export {
|
|
38
|
+
export { g as InteractiveChatBox };
|
|
38
39
|
|
|
39
40
|
//# sourceMappingURL=interactive-chat-box.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-chat-box.js","names":[],"sources":["../../../../src/components/features/chat/interactive-chat-box.tsx"],"sourcesContent":["import { CustomChatInput } from \"./custom-chat-input\";\nimport { useBtwInterceptor } from \"#/hooks/chat/use-btw-interceptor\";\nimport { useModelInterceptor } from \"#/hooks/chat/use-model-interceptor\";\nimport { useChatAttachmentUpload } from \"#/hooks/chat/use-chat-attachment-upload\";\nimport { AgentState } from \"#/types/agent-state\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\nimport { GitControlBar } from \"./git-control-bar\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useAgentState } from \"#/hooks/use-agent-state\";\nimport { useSubConversationTaskPolling } from \"#/hooks/query/use-sub-conversation-task-polling\";\nimport { partitionImagesForUpload } from \"#/components/features/chat/utils/chat-input.utils\";\nimport { isTaskPolling } from \"#/utils/utils\";\n\ninterface InteractiveChatBoxProps {\n onSubmit: (message: string, images: File[], files: File[]) => void;\n disabled?: boolean;\n}\n\nexport function InteractiveChatBox({\n onSubmit,\n disabled = false,\n}: InteractiveChatBoxProps) {\n const {\n images,\n files,\n imagesMarkedUploadAsFile,\n clearAllFiles,\n subConversationTaskId,\n } = useConversationStore();\n const { curAgentState } = useAgentState();\n const { data: conversation } = useActiveConversation();\n const { conversationId: routeConversationId } = useOptionalConversationId();\n const conversationId = routeConversationId ?? conversation?.id ?? null;\n\n const { taskStatus: subConversationTaskStatus } =\n useSubConversationTaskPolling(\n subConversationTaskId,\n conversation?.id || null,\n );\n\n const { handleUpload } = useChatAttachmentUpload();\n\n const
|
|
1
|
+
{"version":3,"file":"interactive-chat-box.js","names":[],"sources":["../../../../src/components/features/chat/interactive-chat-box.tsx"],"sourcesContent":["import { CustomChatInput } from \"./custom-chat-input\";\nimport { useBtwInterceptor } from \"#/hooks/chat/use-btw-interceptor\";\nimport { useGoalInterceptor } from \"#/hooks/chat/use-goal-interceptor\";\nimport { useModelInterceptor } from \"#/hooks/chat/use-model-interceptor\";\nimport { useChatAttachmentUpload } from \"#/hooks/chat/use-chat-attachment-upload\";\nimport { AgentState } from \"#/types/agent-state\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\nimport { GitControlBar } from \"./git-control-bar\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useAgentState } from \"#/hooks/use-agent-state\";\nimport { useSubConversationTaskPolling } from \"#/hooks/query/use-sub-conversation-task-polling\";\nimport { partitionImagesForUpload } from \"#/components/features/chat/utils/chat-input.utils\";\nimport { isTaskPolling } from \"#/utils/utils\";\n\ninterface InteractiveChatBoxProps {\n onSubmit: (message: string, images: File[], files: File[]) => void;\n disabled?: boolean;\n}\n\nexport function InteractiveChatBox({\n onSubmit,\n disabled = false,\n}: InteractiveChatBoxProps) {\n const {\n images,\n files,\n imagesMarkedUploadAsFile,\n clearAllFiles,\n subConversationTaskId,\n } = useConversationStore();\n const { curAgentState } = useAgentState();\n const { data: conversation } = useActiveConversation();\n const { conversationId: routeConversationId } = useOptionalConversationId();\n const conversationId = routeConversationId ?? conversation?.id ?? null;\n\n const { taskStatus: subConversationTaskStatus } =\n useSubConversationTaskPolling(\n subConversationTaskId,\n conversation?.id || null,\n );\n\n const { handleUpload } = useChatAttachmentUpload();\n\n const handleAfterGoal = useBtwInterceptor(conversationId, (message) => {\n const { imagesToEmbed, imagesAsFiles } = partitionImagesForUpload(\n images,\n imagesMarkedUploadAsFile,\n );\n onSubmit(message, imagesToEmbed, [...files, ...imagesAsFiles]);\n clearAllFiles();\n });\n const handleAfterModel = useGoalInterceptor(conversationId, handleAfterGoal);\n const handleSubmit = useModelInterceptor(conversationId, handleAfterModel);\n\n const handleSuggestionsClick = (suggestion: string) => {\n handleSubmit(suggestion);\n };\n\n const isDisabled =\n disabled ||\n curAgentState === AgentState.AWAITING_USER_CONFIRMATION ||\n isTaskPolling(subConversationTaskStatus);\n\n return (\n <div data-testid=\"interactive-chat-box\">\n <CustomChatInput\n disabled={isDisabled}\n isNewConversationPending={disabled}\n onSubmit={handleSubmit}\n onFilesPaste={handleUpload}\n />\n <div className=\"mt-3 pb-3\">\n <GitControlBar onSuggestionsClick={handleSuggestionsClick} />\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAoBA,SAAgB,EAAmB,EACjC,aACA,cAAW,MACe;CAC1B,IAAM,EACJ,WACA,UACA,6BACA,kBACA,6BACE,GAAsB,EACpB,EAAE,qBAAkB,GAAe,EACnC,EAAE,MAAM,MAAiB,GAAuB,EAChD,EAAE,gBAAgB,MAAwB,GAA2B,EACrE,IAAiB,KAAuB,GAAc,MAAM,MAE5D,EAAE,YAAY,MAClB,EACE,GACA,GAAc,MAAM,KACrB,EAEG,EAAE,oBAAiB,GAAyB,EAW5C,IAAe,EAAoB,GADhB,EAAmB,GARpB,EAAkB,IAAiB,MAAY;EACrE,IAAM,EAAE,kBAAe,qBAAkB,EACvC,GACA,EACD;AAED,EADA,EAAS,GAAS,GAAe,CAAC,GAAG,GAAO,GAAG,EAAc,CAAC,EAC9D,GAAe;GAE2C,CACH,CAAiB;AAW1E,QACE,kBAAC,OAAD;EAAK,eAAY;YAAjB,CACE,kBAAC,GAAD;GACE,UAPJ,KACA,MAAkB,EAAW,8BAC7B,EAAc,EAA0B;GAMpC,0BAA0B;GAC1B,UAAU;GACV,cAAc;GACd,CAAA,EACF,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,GAAD,EAAe,qBAlBW,MAAuB;AACrD,MAAa,EAAW;MAiByC,CAAA;GACzD,CAAA,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../../../../node_modules/react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.cjs`),
|
|
1
|
+
const e=require(`../../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../../../../node_modules/react-i18next/dist/es/useTranslation.cjs`),n=require(`../../../../../i18n/declaration.cjs`),r=require(`../../../../../node_modules/react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.cjs`),i=require(`../../../../shared/buttons/copyable-content-wrapper.cjs`),a=require(`../../../../../node_modules/react-syntax-highlighter/dist/esm/prism-light.cjs`);require(`../../../markdown/syntax-highlighter.cjs`);const o=require(`../../../../conversation-events/chat/event-content-helpers/shared.cjs`);let s=require(`react`);s=e.__toESM(s,1);let c=require(`react/jsx-runtime`);function l({code:e,language:l,copy:u=!0,placeholder:d,expandable:f=!1,wrapLongLines:p=!1}){let{t:m}=t.useTranslation(`openhands`),[h,g]=s.default.useState(!1),_=e.length>o.MAX_CONTENT_LENGTH,v=(_&&!(f&&h)?`${e.slice(0,1e3)}…`:e).trim()||d||``,y=u&&e.trim().length>0,b=m(h?n.I18nKey.BUTTON$COLLAPSE:n.I18nKey.BUTTON$EXPAND),x=(0,c.jsx)(a.default,{className:`rounded-lg text-xs`,style:r.default,language:l,PreTag:`div`,wrapLongLines:p,customStyle:p?{whiteSpace:`pre-wrap`}:void 0,codeTagProps:p?{style:{whiteSpace:`pre-wrap`}}:void 0,children:v});return(0,c.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[y?(0,c.jsx)(i.CopyableContentWrapper,{text:e,children:x}):x,f&&_&&(0,c.jsx)(`button`,{type:`button`,onClick:()=>g(e=>!e),className:`self-start text-xs text-muted transition-colors hover:text-white hover:underline`,children:b})]})}exports.CodeBlock=l;
|
|
2
2
|
//# sourceMappingURL=code-block.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.cjs","names":[],"sources":["../../../../../../src/components/features/chat/tool-visualizers/primitives/code-block.tsx"],"sourcesContent":["import React from \"react\";\nimport { vscDarkPlus } from \"react-syntax-highlighter/dist/esm/styles/prism\";\nimport { SyntaxHighlighter } from \"../../../markdown/syntax-highlighter\";\nimport { CopyableContentWrapper } from \"#/components/shared/buttons/copyable-content-wrapper\";\nimport { MAX_CONTENT_LENGTH } from \"#/components/conversation-events/chat/event-content-helpers/shared\";\n\ninterface CodeBlockProps {\n code: string;\n /** Prism language hint (e.g. \"bash\", \"python\"). */\n language?: string;\n /** Show a copy button on hover. Defaults to true. */\n copy?: boolean;\n}\n\n/**\n * Syntax-highlighted code block with an optional hover copy button. Long\n * content is truncated to the same limit the markdown path uses
|
|
1
|
+
{"version":3,"file":"code-block.cjs","names":[],"sources":["../../../../../../src/components/features/chat/tool-visualizers/primitives/code-block.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { vscDarkPlus } from \"react-syntax-highlighter/dist/esm/styles/prism\";\nimport { SyntaxHighlighter } from \"../../../markdown/syntax-highlighter\";\nimport { CopyableContentWrapper } from \"#/components/shared/buttons/copyable-content-wrapper\";\nimport { MAX_CONTENT_LENGTH } from \"#/components/conversation-events/chat/event-content-helpers/shared\";\nimport { I18nKey } from \"#/i18n/declaration\";\n\ninterface CodeBlockProps {\n code: string;\n /** Prism language hint (e.g. \"bash\", \"python\"). */\n language?: string;\n /** Show a copy button on hover. Defaults to true. */\n copy?: boolean;\n /** Text shown when code is empty. */\n placeholder?: string;\n /** Let truncated content be expanded inline. Defaults to false. */\n expandable?: boolean;\n /** Wrap long lines instead of horizontal-only scrolling. Defaults to false. */\n wrapLongLines?: boolean;\n}\n\n/**\n * Syntax-highlighted code block with an optional hover copy button. Long\n * content is truncated to the same limit the markdown path uses, optionally\n * with an inline expand control. The copy button always yields the full,\n * untruncated text.\n */\nexport function CodeBlock({\n code,\n language,\n copy = true,\n placeholder,\n expandable = false,\n wrapLongLines = false,\n}: CodeBlockProps) {\n const { t } = useTranslation(\"openhands\");\n const [isExpanded, setIsExpanded] = React.useState(false);\n const isTruncated = code.length > MAX_CONTENT_LENGTH;\n const display =\n isTruncated && !(expandable && isExpanded)\n ? `${code.slice(0, MAX_CONTENT_LENGTH)}…`\n : code;\n const text = display.trim() || placeholder || \"\";\n const canCopy = copy && code.trim().length > 0;\n const toggleLabel = isExpanded\n ? t(I18nKey.BUTTON$COLLAPSE)\n : t(I18nKey.BUTTON$EXPAND);\n\n const block = (\n <SyntaxHighlighter\n className=\"rounded-lg text-xs\"\n style={vscDarkPlus}\n language={language}\n PreTag=\"div\"\n wrapLongLines={wrapLongLines}\n customStyle={wrapLongLines ? { whiteSpace: \"pre-wrap\" } : undefined}\n codeTagProps={\n wrapLongLines ? { style: { whiteSpace: \"pre-wrap\" } } : undefined\n }\n >\n {text}\n </SyntaxHighlighter>\n );\n\n return (\n <div className=\"flex flex-col gap-1\">\n {canCopy ? (\n <CopyableContentWrapper text={code}>{block}</CopyableContentWrapper>\n ) : (\n block\n )}\n {expandable && isTruncated && (\n <button\n type=\"button\"\n onClick={() => setIsExpanded((prev) => !prev)}\n className=\"self-start text-xs text-muted transition-colors hover:text-white hover:underline\"\n >\n {toggleLabel}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":"sqBA4BA,SAAgB,EAAU,CACxB,OACA,WACA,OAAO,GACP,cACA,aAAa,GACb,gBAAgB,IACC,CACjB,GAAM,CAAE,KAAM,EAAA,eAAe,YAAY,CACnC,CAAC,EAAY,GAAiB,EAAA,QAAM,SAAS,GAAM,CACnD,EAAc,EAAK,OAAS,EAAA,mBAK5B,GAHJ,GAAe,EAAE,GAAc,GAC3B,GAAG,EAAK,MAAM,EAAA,IAAsB,CAAC,GACrC,GACe,MAAM,EAAI,GAAe,GACxC,EAAU,GAAQ,EAAK,MAAM,CAAC,OAAS,EACvC,EACF,EADgB,EACd,EAAA,QAAQ,gBACR,EAAA,QAAQ,cAAc,CAEtB,GACJ,EAAA,EAAA,KAAC,EAAA,QAAD,CACE,UAAU,qBACV,MAAO,EAAA,QACG,WACV,OAAO,MACQ,gBACf,YAAa,EAAgB,CAAE,WAAY,WAAY,CAAG,IAAA,GAC1D,aACE,EAAgB,CAAE,MAAO,CAAE,WAAY,WAAY,CAAE,CAAG,IAAA,YAGzD,EACiB,CAAA,CAGtB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+BAAf,CACG,GACC,EAAA,EAAA,KAAC,EAAA,uBAAD,CAAwB,KAAM,WAAO,EAA+B,CAAA,CAEpE,EAED,GAAc,IACb,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,YAAe,EAAe,GAAS,CAAC,EAAK,CAC7C,UAAU,4FAET,EACM,CAAA,CAEP"}
|
|
@@ -4,11 +4,18 @@ interface CodeBlockProps {
|
|
|
4
4
|
language?: string;
|
|
5
5
|
/** Show a copy button on hover. Defaults to true. */
|
|
6
6
|
copy?: boolean;
|
|
7
|
+
/** Text shown when code is empty. */
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
/** Let truncated content be expanded inline. Defaults to false. */
|
|
10
|
+
expandable?: boolean;
|
|
11
|
+
/** Wrap long lines instead of horizontal-only scrolling. Defaults to false. */
|
|
12
|
+
wrapLongLines?: boolean;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* Syntax-highlighted code block with an optional hover copy button. Long
|
|
10
|
-
* content is truncated to the same limit the markdown path uses
|
|
11
|
-
* button always yields the full,
|
|
16
|
+
* content is truncated to the same limit the markdown path uses, optionally
|
|
17
|
+
* with an inline expand control. The copy button always yields the full,
|
|
18
|
+
* untruncated text.
|
|
12
19
|
*/
|
|
13
|
-
export declare function CodeBlock({ code, language, copy }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function CodeBlock({ code, language, copy, placeholder, expandable, wrapLongLines, }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
14
21
|
export {};
|
|
@@ -1,25 +1,38 @@
|
|
|
1
|
-
import e from "../../../../../node_modules/react-
|
|
2
|
-
import {
|
|
3
|
-
import n from "../../../../../node_modules/react-syntax-highlighter/dist/esm/prism-
|
|
1
|
+
import { useTranslation as e } from "../../../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { I18nKey as t } from "../../../../../i18n/declaration.js";
|
|
3
|
+
import n from "../../../../../node_modules/react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.js";
|
|
4
|
+
import { CopyableContentWrapper as r } from "../../../../shared/buttons/copyable-content-wrapper.js";
|
|
5
|
+
import i from "../../../../../node_modules/react-syntax-highlighter/dist/esm/prism-light.js";
|
|
4
6
|
import "../../../markdown/syntax-highlighter.js";
|
|
5
|
-
import { MAX_CONTENT_LENGTH as
|
|
6
|
-
import "react";
|
|
7
|
-
import { jsx as
|
|
7
|
+
import { MAX_CONTENT_LENGTH as a } from "../../../../conversation-events/chat/event-content-helpers/shared.js";
|
|
8
|
+
import o from "react";
|
|
9
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
8
10
|
//#region src/components/features/chat/tool-visualizers/primitives/code-block.tsx
|
|
9
|
-
function
|
|
10
|
-
let
|
|
11
|
+
function l({ code: l, language: u, copy: d = !0, placeholder: f, expandable: p = !1, wrapLongLines: m = !1 }) {
|
|
12
|
+
let { t: h } = e("openhands"), [g, _] = o.useState(!1), v = l.length > a, y = (v && !(p && g) ? `${l.slice(0, 1e3)}…` : l).trim() || f || "", b = d && l.trim().length > 0, x = h(g ? t.BUTTON$COLLAPSE : t.BUTTON$EXPAND), S = /* @__PURE__ */ s(i, {
|
|
11
13
|
className: "rounded-lg text-xs",
|
|
12
|
-
style:
|
|
13
|
-
language:
|
|
14
|
+
style: n,
|
|
15
|
+
language: u,
|
|
14
16
|
PreTag: "div",
|
|
15
|
-
|
|
17
|
+
wrapLongLines: m,
|
|
18
|
+
customStyle: m ? { whiteSpace: "pre-wrap" } : void 0,
|
|
19
|
+
codeTagProps: m ? { style: { whiteSpace: "pre-wrap" } } : void 0,
|
|
20
|
+
children: y
|
|
21
|
+
});
|
|
22
|
+
return /* @__PURE__ */ c("div", {
|
|
23
|
+
className: "flex flex-col gap-1",
|
|
24
|
+
children: [b ? /* @__PURE__ */ s(r, {
|
|
25
|
+
text: l,
|
|
26
|
+
children: S
|
|
27
|
+
}) : S, p && v && /* @__PURE__ */ s("button", {
|
|
28
|
+
type: "button",
|
|
29
|
+
onClick: () => _((e) => !e),
|
|
30
|
+
className: "self-start text-xs text-muted transition-colors hover:text-white hover:underline",
|
|
31
|
+
children: x
|
|
32
|
+
})]
|
|
16
33
|
});
|
|
17
|
-
return s ? /* @__PURE__ */ i(t, {
|
|
18
|
-
text: a,
|
|
19
|
-
children: c
|
|
20
|
-
}) : c;
|
|
21
34
|
}
|
|
22
35
|
//#endregion
|
|
23
|
-
export {
|
|
36
|
+
export { l as CodeBlock };
|
|
24
37
|
|
|
25
38
|
//# sourceMappingURL=code-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.js","names":[],"sources":["../../../../../../src/components/features/chat/tool-visualizers/primitives/code-block.tsx"],"sourcesContent":["import React from \"react\";\nimport { vscDarkPlus } from \"react-syntax-highlighter/dist/esm/styles/prism\";\nimport { SyntaxHighlighter } from \"../../../markdown/syntax-highlighter\";\nimport { CopyableContentWrapper } from \"#/components/shared/buttons/copyable-content-wrapper\";\nimport { MAX_CONTENT_LENGTH } from \"#/components/conversation-events/chat/event-content-helpers/shared\";\n\ninterface CodeBlockProps {\n code: string;\n /** Prism language hint (e.g. \"bash\", \"python\"). */\n language?: string;\n /** Show a copy button on hover. Defaults to true. */\n copy?: boolean;\n}\n\n/**\n * Syntax-highlighted code block with an optional hover copy button. Long\n * content is truncated to the same limit the markdown path uses
|
|
1
|
+
{"version":3,"file":"code-block.js","names":[],"sources":["../../../../../../src/components/features/chat/tool-visualizers/primitives/code-block.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { vscDarkPlus } from \"react-syntax-highlighter/dist/esm/styles/prism\";\nimport { SyntaxHighlighter } from \"../../../markdown/syntax-highlighter\";\nimport { CopyableContentWrapper } from \"#/components/shared/buttons/copyable-content-wrapper\";\nimport { MAX_CONTENT_LENGTH } from \"#/components/conversation-events/chat/event-content-helpers/shared\";\nimport { I18nKey } from \"#/i18n/declaration\";\n\ninterface CodeBlockProps {\n code: string;\n /** Prism language hint (e.g. \"bash\", \"python\"). */\n language?: string;\n /** Show a copy button on hover. Defaults to true. */\n copy?: boolean;\n /** Text shown when code is empty. */\n placeholder?: string;\n /** Let truncated content be expanded inline. Defaults to false. */\n expandable?: boolean;\n /** Wrap long lines instead of horizontal-only scrolling. Defaults to false. */\n wrapLongLines?: boolean;\n}\n\n/**\n * Syntax-highlighted code block with an optional hover copy button. Long\n * content is truncated to the same limit the markdown path uses, optionally\n * with an inline expand control. The copy button always yields the full,\n * untruncated text.\n */\nexport function CodeBlock({\n code,\n language,\n copy = true,\n placeholder,\n expandable = false,\n wrapLongLines = false,\n}: CodeBlockProps) {\n const { t } = useTranslation(\"openhands\");\n const [isExpanded, setIsExpanded] = React.useState(false);\n const isTruncated = code.length > MAX_CONTENT_LENGTH;\n const display =\n isTruncated && !(expandable && isExpanded)\n ? `${code.slice(0, MAX_CONTENT_LENGTH)}…`\n : code;\n const text = display.trim() || placeholder || \"\";\n const canCopy = copy && code.trim().length > 0;\n const toggleLabel = isExpanded\n ? t(I18nKey.BUTTON$COLLAPSE)\n : t(I18nKey.BUTTON$EXPAND);\n\n const block = (\n <SyntaxHighlighter\n className=\"rounded-lg text-xs\"\n style={vscDarkPlus}\n language={language}\n PreTag=\"div\"\n wrapLongLines={wrapLongLines}\n customStyle={wrapLongLines ? { whiteSpace: \"pre-wrap\" } : undefined}\n codeTagProps={\n wrapLongLines ? { style: { whiteSpace: \"pre-wrap\" } } : undefined\n }\n >\n {text}\n </SyntaxHighlighter>\n );\n\n return (\n <div className=\"flex flex-col gap-1\">\n {canCopy ? (\n <CopyableContentWrapper text={code}>{block}</CopyableContentWrapper>\n ) : (\n block\n )}\n {expandable && isTruncated && (\n <button\n type=\"button\"\n onClick={() => setIsExpanded((prev) => !prev)}\n className=\"self-start text-xs text-muted transition-colors hover:text-white hover:underline\"\n >\n {toggleLabel}\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AA4BA,SAAgB,EAAU,EACxB,SACA,aACA,UAAO,IACP,gBACA,gBAAa,IACb,mBAAgB,MACC;CACjB,IAAM,EAAE,SAAM,EAAe,YAAY,EACnC,CAAC,GAAY,KAAiB,EAAM,SAAS,GAAM,EACnD,IAAc,EAAK,SAAS,GAK5B,KAHJ,KAAe,EAAE,KAAc,KAC3B,GAAG,EAAK,MAAM,GAAA,IAAsB,CAAC,KACrC,GACe,MAAM,IAAI,KAAe,IACxC,IAAU,KAAQ,EAAK,MAAM,CAAC,SAAS,GACvC,IACF,EADgB,IACd,EAAQ,kBACR,EAAQ,cAAc,EAEtB,IACJ,kBAAC,GAAD;EACE,WAAU;EACV,OAAO;EACG;EACV,QAAO;EACQ;EACf,aAAa,IAAgB,EAAE,YAAY,YAAY,GAAG,KAAA;EAC1D,cACE,IAAgB,EAAE,OAAO,EAAE,YAAY,YAAY,EAAE,GAAG,KAAA;YAGzD;EACiB,CAAA;AAGtB,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACG,IACC,kBAAC,GAAD;GAAwB,MAAM;aAAO;GAA+B,CAAA,GAEpE,GAED,KAAc,KACb,kBAAC,UAAD;GACE,MAAK;GACL,eAAe,GAAe,MAAS,CAAC,EAAK;GAC7C,WAAU;aAET;GACM,CAAA,CAEP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../../../../node_modules/react-i18next/dist/es/useTranslation.cjs`),n=require(`../../../../../i18n/declaration.cjs`),r=require(
|
|
1
|
+
const e=require(`../../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../../../../node_modules/react-i18next/dist/es/useTranslation.cjs`),n=require(`../../../../../i18n/declaration.cjs`),r=require(`./code-block.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o({output:e,exitCode:i,copy:o=!0}){let{t:s}=t.useTranslation(`openhands`);return(0,a.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i!=null&&i!==0&&i!==-1&&(0,a.jsx)(`span`,{className:`self-start rounded bg-status-fail-bg px-1.5 py-0.5 font-mono text-xs text-status-fail-text`,children:s(n.I18nKey.OBSERVATION$EXIT_CODE,{code:i})}),(0,a.jsx)(r.CodeBlock,{code:e,language:`bash`,copy:o,placeholder:s(n.I18nKey.OBSERVATION$COMMAND_NO_OUTPUT),expandable:!0,wrapLongLines:!0})]})}exports.OutputPane=o;
|
|
2
2
|
//# sourceMappingURL=output-pane.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-pane.cjs","names":[],"sources":["../../../../../../src/components/features/chat/tool-visualizers/primitives/output-pane.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport {
|
|
1
|
+
{"version":3,"file":"output-pane.cjs","names":[],"sources":["../../../../../../src/components/features/chat/tool-visualizers/primitives/output-pane.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { CodeBlock } from \"./code-block\";\n\ninterface OutputPaneProps {\n output: string;\n /** Process exit code, when known. `0` and `-1` (timeout) are not badged —\n * the card's success indicator already conveys those. */\n exitCode?: number | null;\n /** Show a hover copy button that yields the full, untruncated output.\n * Defaults to true; suppressed automatically when there is no output. */\n copy?: boolean;\n}\n\n/**\n * Monospace output block for command results, with a failure exit-code badge\n * and an optional hover copy button. Long content is truncated in the display\n * to the same limit the markdown path uses, with an inline control to reveal\n * the full output. The copy button always yields the untruncated output.\n */\nexport function OutputPane({ output, exitCode, copy = true }: OutputPaneProps) {\n const { t } = useTranslation(\"openhands\");\n const showExitBadge = exitCode != null && exitCode !== 0 && exitCode !== -1;\n\n return (\n <div className=\"flex flex-col gap-1\">\n {showExitBadge && (\n <span className=\"self-start rounded bg-status-fail-bg px-1.5 py-0.5 font-mono text-xs text-status-fail-text\">\n {t(I18nKey.OBSERVATION$EXIT_CODE, { code: exitCode })}\n </span>\n )}\n <CodeBlock\n code={output}\n language=\"bash\"\n copy={copy}\n placeholder={t(I18nKey.OBSERVATION$COMMAND_NO_OUTPUT)}\n expandable\n wrapLongLines\n />\n </div>\n );\n}\n"],"mappings":"6SAqBA,SAAgB,EAAW,CAAE,SAAQ,WAAU,OAAO,IAAyB,CAC7E,GAAM,CAAE,KAAM,EAAA,eAAe,YAAY,CAGzC,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+BAAf,CAHoB,GAAY,MAAQ,IAAa,GAAK,IAAa,KAKnE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sGACb,EAAE,EAAA,QAAQ,sBAAuB,CAAE,KAAM,EAAU,CAAC,CAChD,CAAA,EAET,EAAA,EAAA,KAAC,EAAA,UAAD,CACE,KAAM,EACN,SAAS,OACH,OACN,YAAa,EAAE,EAAA,QAAQ,8BAA8B,CACrD,WAAA,GACA,cAAA,GACA,CAAA,CACE"}
|
|
@@ -10,8 +10,8 @@ interface OutputPaneProps {
|
|
|
10
10
|
/**
|
|
11
11
|
* Monospace output block for command results, with a failure exit-code badge
|
|
12
12
|
* and an optional hover copy button. Long content is truncated in the display
|
|
13
|
-
* to the same limit the markdown path uses
|
|
14
|
-
* full
|
|
13
|
+
* to the same limit the markdown path uses, with an inline control to reveal
|
|
14
|
+
* the full output. The copy button always yields the untruncated output.
|
|
15
15
|
*/
|
|
16
16
|
export declare function OutputPane({ output, exitCode, copy }: OutputPaneProps): import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
export {};
|