@openhands/agent-canvas 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.windows.md +2 -2
- package/build/assets/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-DRFevVIj.js +1 -0
- package/build/assets/add-backend-modal-DzuB9zlG.js +1 -0
- package/build/assets/agent-profiles-settings-BfAwTshW.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-DfH2k6Sx.js +5 -0
- package/build/assets/agent-settings-CMMms-0q.js +1 -0
- package/build/assets/agent-settings-DjVlKgaP.js +2 -0
- package/build/assets/alert-banner-BW0wRYw6.js +1 -0
- package/build/assets/api-key-entry-screen-O8gS-fnF.js +1 -0
- package/build/assets/app-settings-SlZvaXlk.js +1 -0
- package/build/assets/automation-detail-CwsNJ9AM.js +2 -0
- package/build/assets/automations-list-B9cPtugh.js +1 -0
- package/build/assets/back-nav-button-BYmxFxGt.js +1 -0
- package/build/assets/backend-form-modal-D2EDGVAc.js +1 -0
- package/build/assets/backend-synced-settings-badge-6OCwIuLY.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-Dd1sO5U6.js} +1 -1
- 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-BhxvlfoY.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-B8prFAZF.js +19 -0
- package/build/assets/conversation-DGVDwGn8.js +1 -0
- package/build/assets/conversation-local-storage-F6zVMM--.js +1 -0
- package/build/assets/conversation-panel-C7DC4Cxx.js +1 -0
- package/build/assets/conversation-service.api-Ch9kR9aE.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/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-BoibW8cd.js +1 -0
- package/build/assets/ellipsis-button-1BV9Sga8.js +1 -0
- package/build/assets/entry.client-BgWj9jL_.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-MtC8lK3A.js +1 -0
- package/build/assets/{extensions-navigation-DfLHdTUC.js → extensions-navigation-BtV14oQL.js} +1 -1
- package/build/assets/{external-link-D8njjDTk.js → external-link-D2zJjE9G.js} +1 -1
- package/build/assets/files-tab-DHqtsKLy.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-CGU7_KiU.js +1 -0
- package/build/assets/home-BgjWP_UN.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-J_eQ6lhG.js +1 -0
- package/build/assets/launch-DamfAY5L.js +1 -0
- package/build/assets/lesson-plan-HD886V64.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-DTrLsVr_.js +27 -0
- package/build/assets/llm-settings-BgSFkbHC.js +1 -0
- package/build/assets/llm-settings-Bkc8C5Bi.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-BUzj5_Lq.js +1 -0
- package/build/assets/manifest-4d6a1552.js +1 -0
- package/build/assets/{markdown-renderer-DWy7Np7u.js → markdown-renderer-D8mayGjI.js} +1 -1
- package/build/assets/mcp-DvqJYDbz.js +9 -0
- package/build/assets/messages-C4KEFkPk.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-gGIqoxvA.js +1 -0
- package/build/assets/onboarding-modal-CGHPoMp7.js +1 -0
- package/build/assets/openhands-logo-bcNw5bkY.js +1 -0
- package/build/assets/option-service.api-Dz7Eomnx.js +1 -0
- package/build/assets/organization-service.api-CnynNoT-.js +1 -0
- package/build/assets/path-utils-CBaRYg35.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-G4j36bJk.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-CPoq0VXm.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-CXaEK1rW.js +50 -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-S6CfVoNm.js +2 -0
- package/build/assets/root-layout-CvxdHJ6j.js +2 -0
- package/build/assets/runtime-waiting-state-DkzLgvMn.js +1 -0
- package/build/assets/schema-field-DwUzlw6b.js +1 -0
- package/build/assets/sdk-section-page-BUXONTx6.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-ZxyfRBgx.js +1 -0
- package/build/assets/segmented-toggle-Cen5AMUc.js +1 -0
- package/build/assets/settings-Bx6vn-g8.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-D4SM26d5.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-BoC8oMlg.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-DMiaQFsj.js +1 -0
- package/build/assets/sidebar-layout-BtpUSN3j.js +1 -0
- package/build/assets/sidebar-mobile-menu-toggle-CaV3tQFF.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-D2WkrXkr.js +1 -0
- package/build/assets/skills-settings-CZGVOp_t.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-B0aL_iDZ.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-rzaqkJ1n.js +1 -0
- package/build/assets/use-activate-agent-profile-DY0txItX.js +1 -0
- package/build/assets/use-active-agent-profile-Cp5AFONR.js +1 -0
- package/build/assets/use-active-conversation-DvcFBqFe.js +1 -0
- package/build/assets/use-agent-profiles-DnH16_Vm.js +1 -0
- package/build/assets/use-agent-state-BvRcEzY4.js +1 -0
- package/build/assets/use-backends-health-e-Ull4wz.js +1 -0
- package/build/assets/use-breakpoint-B-O0lQ84.js +1 -0
- package/build/assets/use-can-manage-org-profiles-OIhplvQ0.js +1 -0
- package/build/assets/use-click-outside-element-Bf4Omzot.js +1 -0
- package/build/assets/use-cloud-current-user-id-ekU7UXDT.js +1 -0
- package/build/assets/use-config-Dwf5gla-.js +1 -0
- package/build/assets/use-create-conversation-CvAXfA3T.js +1 -0
- package/build/assets/use-create-secret-BKeXCo__.js +1 -0
- package/build/assets/use-event-store-YSOxy9FC.js +4 -0
- package/build/assets/use-handle-plan-click-cAXS-Hft.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-BcLibtGb.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-CBFe69Ew.js +1 -0
- package/build/assets/use-save-agent-profile-DFjxHhNx.js +1 -0
- package/build/assets/{use-save-settings-DErJDIDL.js → use-save-settings-5xPYpSQM.js} +1 -1
- package/build/assets/use-settings-B07msZ2Z.js +1 -0
- package/build/assets/use-settings-nav-items-CswsOEyw.js +16 -0
- package/build/assets/use-skills-Aoaoq_ei.js +1 -0
- package/build/assets/use-task-list-CmWGElgb.js +1 -0
- package/build/assets/use-tracking-CqODdfO4.js +1 -0
- package/build/assets/use-user-conversation-BPHQ-dm-.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-DJHl5b-B.js} +236 -17
- 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-L2sdihTY.js +1 -0
- package/build/assets/verification-settings-DZQ-JvKH.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/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/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/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 +67 -87
- 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 +236 -17
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +24 -5
- 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/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
|
@@ -5,9 +5,10 @@ import { useNavigation as r } from "../context/navigation-context.js";
|
|
|
5
5
|
import { displaySuccessToast as ee } from "../utils/custom-toast-handlers.js";
|
|
6
6
|
import { useActiveBackend as i } from "../contexts/active-backend-context.js";
|
|
7
7
|
import { useEventStore as a } from "../stores/use-event-store.js";
|
|
8
|
-
import o from "../
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
8
|
+
import { getStoredConversationMetadata as o } from "../api/conversation-metadata-store.js";
|
|
9
|
+
import s from "../stores/metrics-store.js";
|
|
10
|
+
import { useActiveConversation as c } from "./query/use-active-conversation.js";
|
|
11
|
+
import { useDeleteConversation as te } from "./mutation/use-delete-conversation.js";
|
|
11
12
|
import { useUnifiedPauseConversation as l } from "./mutation/use-unified-stop-conversation.js";
|
|
12
13
|
import { useUpdateConversationPublicFlag as u } from "./mutation/use-update-conversation-public-flag.js";
|
|
13
14
|
import { useDownloadConversation as d } from "./use-download-conversation.js";
|
|
@@ -15,29 +16,31 @@ import { adaptSystemMessage as f } from "../utils/system-message-adapter.js";
|
|
|
15
16
|
import p from "react";
|
|
16
17
|
//#region src/hooks/use-conversation-name-context-menu.ts
|
|
17
18
|
function m({ conversationId: m, executionStatus: h, showOptions: g = !1, onContextMenuToggle: _ }) {
|
|
18
|
-
let { t: v } = e(), { conversationId: y, navigate: b } = r(), { backend: x } = i(), S = a((e) => e.events), { mutate: C } =
|
|
19
|
-
e.preventDefault(), e.stopPropagation(), L(!0), _?.(!1);
|
|
20
|
-
}, U = (e) => {
|
|
19
|
+
let { t: v } = e(), { conversationId: y, navigate: b } = r(), { backend: x } = i(), S = a((e) => e.events), { mutate: C } = te(), { mutate: w } = l(), { mutate: T } = u(), { data: E } = c(), D = s(), [O, k] = p.useState(!1), [A, j] = p.useState(!1), [M, N] = p.useState(!1), [P, F] = p.useState(!1), [I, L] = p.useState(!1), [R, z] = p.useState(!1), [B, V] = p.useState(!1), { mutateAsync: H } = d(), U = f(S), W = (e) => {
|
|
21
20
|
e.preventDefault(), e.stopPropagation(), z(!0), _?.(!1);
|
|
22
|
-
},
|
|
21
|
+
}, G = (e) => {
|
|
22
|
+
e.preventDefault(), e.stopPropagation(), V(!0), _?.(!1);
|
|
23
|
+
}, K = () => {
|
|
23
24
|
m && C({ conversationId: m }, { onSuccess: () => {
|
|
24
25
|
m === y && b("/conversations");
|
|
25
|
-
} }),
|
|
26
|
-
},
|
|
27
|
-
m && w({ conversationId: m }),
|
|
28
|
-
}, K = (e) => {
|
|
29
|
-
e.preventDefault(), e.stopPropagation(), _?.(!1);
|
|
30
|
-
}, q = async (e) => {
|
|
31
|
-
e.preventDefault(), e.stopPropagation(), m && await B(m), _?.(!1);
|
|
26
|
+
} }), z(!1);
|
|
27
|
+
}, q = () => {
|
|
28
|
+
m && w({ conversationId: m }), V(!1);
|
|
32
29
|
}, J = (e) => {
|
|
30
|
+
e.preventDefault(), e.stopPropagation(), _?.(!1);
|
|
31
|
+
}, Y = async (e) => {
|
|
32
|
+
e.preventDefault(), e.stopPropagation(), m && await H(m), _?.(!1);
|
|
33
|
+
}, X = (e) => {
|
|
33
34
|
e.stopPropagation(), k(!0), _?.(!1);
|
|
34
|
-
},
|
|
35
|
+
}, Z = (e) => {
|
|
35
36
|
e.stopPropagation(), j(!0), _?.(!1);
|
|
36
|
-
},
|
|
37
|
+
}, Q = (e) => {
|
|
37
38
|
e.stopPropagation(), N(!0), _?.(!1);
|
|
38
|
-
},
|
|
39
|
+
}, ne = (e) => {
|
|
39
40
|
e.stopPropagation(), F(!0), _?.(!1);
|
|
40
|
-
},
|
|
41
|
+
}, re = (e) => {
|
|
42
|
+
e.stopPropagation(), L(!0), _?.(!1);
|
|
43
|
+
}, ie = (e) => {
|
|
41
44
|
m && E && T({
|
|
42
45
|
conversationId: m,
|
|
43
46
|
isPublic: e ?? !E.public
|
|
@@ -48,15 +51,16 @@ function m({ conversationId: m, executionStatus: h, showOptions: g = !1, onConte
|
|
|
48
51
|
x.host
|
|
49
52
|
]);
|
|
50
53
|
return {
|
|
51
|
-
handleDelete:
|
|
52
|
-
handleStop:
|
|
53
|
-
handleEdit:
|
|
54
|
-
handleDownloadConversation:
|
|
55
|
-
handleDisplayCost:
|
|
56
|
-
handleShowAgentTools:
|
|
57
|
-
handleShowSkills:
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
handleDelete: W,
|
|
55
|
+
handleStop: G,
|
|
56
|
+
handleEdit: J,
|
|
57
|
+
handleDownloadConversation: Y,
|
|
58
|
+
handleDisplayCost: X,
|
|
59
|
+
handleShowAgentTools: Z,
|
|
60
|
+
handleShowSkills: Q,
|
|
61
|
+
handleShowPlugins: ne,
|
|
62
|
+
handleShowHooks: re,
|
|
63
|
+
handleTogglePublic: ie,
|
|
60
64
|
handleCopyShareLink: (e) => {
|
|
61
65
|
if (e.preventDefault(), e.stopPropagation(), !$) {
|
|
62
66
|
_?.(!1);
|
|
@@ -65,27 +69,30 @@ function m({ conversationId: m, executionStatus: h, showOptions: g = !1, onConte
|
|
|
65
69
|
navigator.clipboard.writeText($), ee(v(t.CONVERSATION$LINK_COPIED));
|
|
66
70
|
},
|
|
67
71
|
shareUrl: $,
|
|
68
|
-
handleConfirmDelete:
|
|
69
|
-
handleConfirmStop:
|
|
72
|
+
handleConfirmDelete: K,
|
|
73
|
+
handleConfirmStop: q,
|
|
70
74
|
metricsModalVisible: O,
|
|
71
75
|
setMetricsModalVisible: k,
|
|
72
76
|
systemModalVisible: A,
|
|
73
77
|
setSystemModalVisible: j,
|
|
74
78
|
skillsModalVisible: M,
|
|
75
79
|
setSkillsModalVisible: N,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
pluginsModalVisible: P,
|
|
81
|
+
setPluginsModalVisible: F,
|
|
82
|
+
hooksModalVisible: I,
|
|
83
|
+
setHooksModalVisible: L,
|
|
84
|
+
confirmDeleteModalVisible: R,
|
|
85
|
+
setConfirmDeleteModalVisible: z,
|
|
86
|
+
confirmStopModalVisible: B,
|
|
87
|
+
setConfirmStopModalVisible: V,
|
|
82
88
|
metrics: D,
|
|
83
|
-
systemMessage:
|
|
89
|
+
systemMessage: U,
|
|
84
90
|
shouldShowStop: n(h),
|
|
85
91
|
shouldShowDownloadConversation: !!(m && g),
|
|
86
92
|
shouldShowDisplayCost: g,
|
|
87
|
-
shouldShowAgentTools: !!(g &&
|
|
93
|
+
shouldShowAgentTools: !!(g && U),
|
|
88
94
|
shouldShowSkills: !!(g && m),
|
|
95
|
+
shouldShowPlugins: !!(g && m && (o(m)?.plugins?.length ?? 0) > 0),
|
|
89
96
|
shouldShowHooks: !!(g && m && n(h))
|
|
90
97
|
};
|
|
91
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-conversation-name-context-menu.js","names":[],"sources":["../../src/hooks/use-conversation-name-context-menu.ts"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigation } from \"#/context/navigation-context\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport useMetricsStore from \"#/stores/metrics-store\";\nimport { useDeleteConversation } from \"./mutation/use-delete-conversation\";\nimport { useUnifiedPauseConversation } from \"./mutation/use-unified-stop-conversation\";\nimport { useUpdateConversationPublicFlag } from \"./mutation/use-update-conversation-public-flag\";\nimport { useActiveConversation } from \"./query/use-active-conversation\";\nimport { useEventStore } from \"#/stores/use-event-store\";\nimport { displaySuccessToast } from \"#/utils/custom-toast-handlers\";\nimport { I18nKey } from \"#/i18n/declaration\";\n\nimport { useDownloadConversation } from \"./use-download-conversation\";\nimport {\n adaptSystemMessage,\n SystemMessageForModal,\n} from \"#/utils/system-message-adapter\";\nimport { ExecutionStatus } from \"#/types/agent-server/core/base/common\";\nimport { isExecutionActive } from \"#/utils/status\";\n\ninterface UseConversationNameContextMenuProps {\n conversationId?: string;\n executionStatus?: ExecutionStatus | null;\n showOptions?: boolean;\n onContextMenuToggle?: (isOpen: boolean) => void;\n}\n\nexport function useConversationNameContextMenu({\n conversationId,\n executionStatus,\n showOptions = false,\n onContextMenuToggle,\n}: UseConversationNameContextMenuProps) {\n const { t } = useTranslation();\n const { conversationId: currentConversationId, navigate } = useNavigation();\n const { backend } = useActiveBackend();\n const events = useEventStore((state) => state.events);\n const { mutate: deleteConversation } = useDeleteConversation();\n const { mutate: stopConversation } = useUnifiedPauseConversation();\n const { mutate: updatePublicFlag } = useUpdateConversationPublicFlag();\n const { data: conversation } = useActiveConversation();\n const metrics = useMetricsStore();\n\n const [metricsModalVisible, setMetricsModalVisible] = React.useState(false);\n const [systemModalVisible, setSystemModalVisible] = React.useState(false);\n const [skillsModalVisible, setSkillsModalVisible] = React.useState(false);\n const [hooksModalVisible, setHooksModalVisible] = React.useState(false);\n const [confirmDeleteModalVisible, setConfirmDeleteModalVisible] =\n React.useState(false);\n const [confirmStopModalVisible, setConfirmStopModalVisible] =\n React.useState(false);\n const { mutateAsync: downloadConversation } = useDownloadConversation();\n\n const systemMessage: SystemMessageForModal | null =\n adaptSystemMessage(events);\n\n const handleDelete = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n setConfirmDeleteModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleStop = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n setConfirmStopModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleConfirmDelete = () => {\n if (conversationId) {\n deleteConversation(\n { conversationId },\n {\n onSuccess: () => {\n if (conversationId === currentConversationId) {\n navigate(\"/conversations\");\n }\n },\n },\n );\n }\n setConfirmDeleteModalVisible(false);\n };\n\n const handleConfirmStop = () => {\n if (conversationId) {\n stopConversation({ conversationId });\n }\n setConfirmStopModalVisible(false);\n };\n\n const handleEdit = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n // This will be handled by the parent component to switch to edit mode\n onContextMenuToggle?.(false);\n };\n\n const handleDownloadConversation = async (\n event: React.MouseEvent<HTMLButtonElement>,\n ) => {\n event.preventDefault();\n event.stopPropagation();\n if (conversationId) {\n await downloadConversation(conversationId);\n }\n onContextMenuToggle?.(false);\n };\n\n const handleDisplayCost = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setMetricsModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowAgentTools = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setSystemModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowSkills = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setSkillsModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowHooks = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setHooksModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleTogglePublic = (nextIsPublic?: boolean) => {\n if (conversationId && conversation) {\n updatePublicFlag({\n conversationId,\n isPublic: nextIsPublic ?? !conversation.public,\n });\n }\n // Intentionally don't close the menu — let the user see the toggle flip.\n };\n\n const shareUrl = React.useMemo(() => {\n if (!conversationId) return \"\";\n // On cloud backends, the shareable URL must point at the cloud\n // environment's host (e.g. the cloud app domain) rather than the local\n // dev origin so the link works for anyone the user shares it with.\n const origin =\n backend.kind === \"cloud\"\n ? backend.host.replace(/\\/+$/, \"\")\n : window.location.origin;\n return `${origin}/shared/conversations/${conversationId}`;\n }, [conversationId, backend.kind, backend.host]);\n\n const handleCopyShareLink = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (!shareUrl) {\n onContextMenuToggle?.(false);\n return;\n }\n\n navigator.clipboard.writeText(shareUrl);\n displaySuccessToast(t(I18nKey.CONVERSATION$LINK_COPIED));\n };\n\n return {\n // Handlers\n handleDelete,\n handleStop,\n handleEdit,\n handleDownloadConversation,\n handleDisplayCost,\n handleShowAgentTools,\n handleShowSkills,\n handleShowHooks,\n handleTogglePublic,\n handleCopyShareLink,\n shareUrl,\n handleConfirmDelete,\n handleConfirmStop,\n\n // Modal states\n metricsModalVisible,\n setMetricsModalVisible,\n systemModalVisible,\n setSystemModalVisible,\n skillsModalVisible,\n setSkillsModalVisible,\n hooksModalVisible,\n setHooksModalVisible,\n confirmDeleteModalVisible,\n setConfirmDeleteModalVisible,\n confirmStopModalVisible,\n setConfirmStopModalVisible,\n\n // Data\n metrics,\n systemMessage,\n\n shouldShowStop: isExecutionActive(executionStatus),\n shouldShowDownloadConversation: Boolean(conversationId && showOptions),\n shouldShowDisplayCost: showOptions,\n shouldShowAgentTools: Boolean(showOptions && systemMessage),\n shouldShowSkills: Boolean(showOptions && conversationId),\n shouldShowHooks: Boolean(\n showOptions && conversationId && isExecutionActive(executionStatus),\n ),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA4BA,SAAgB,EAA+B,EAC7C,mBACA,oBACA,iBAAc,IACd,0BACsC;CACtC,IAAM,EAAE,SAAM,GAAgB,EACxB,EAAE,gBAAgB,GAAuB,gBAAa,GAAe,EACrE,EAAE,eAAY,GAAkB,EAChC,IAAS,GAAe,MAAU,EAAM,OAAO,EAC/C,EAAE,QAAQ,MAAuB,GAAuB,EACxD,EAAE,QAAQ,MAAqB,GAA6B,EAC5D,EAAE,QAAQ,MAAqB,GAAiC,EAChE,EAAE,MAAM,MAAiB,GAAuB,EAChD,IAAU,GAAiB,EAE3B,CAAC,GAAqB,KAA0B,EAAM,SAAS,GAAM,EACrE,CAAC,GAAoB,KAAyB,EAAM,SAAS,GAAM,EACnE,CAAC,GAAoB,KAAyB,EAAM,SAAS,GAAM,EACnE,CAAC,GAAmB,KAAwB,EAAM,SAAS,GAAM,EACjE,CAAC,GAA2B,KAChC,EAAM,SAAS,GAAM,EACjB,CAAC,GAAyB,KAC9B,EAAM,SAAS,GAAM,EACjB,EAAE,aAAa,MAAyB,GAAyB,EAEjE,IACJ,EAAmB,EAAO,EAEtB,KAAgB,MAA+C;AAInE,EAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACvB,EAA6B,GAAK,EAClC,IAAsB,GAAM;IAGxB,KAAc,MAA+C;AAIjE,EAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACvB,EAA2B,GAAK,EAChC,IAAsB,GAAM;IAGxB,UAA4B;AAahC,EAZI,KACF,EACE,EAAE,mBAAgB,EAClB,EACE,iBAAiB;AACf,GAAI,MAAmB,KACrB,EAAS,iBAAiB;KAG/B,CACF,EAEH,EAA6B,GAAM;IAG/B,UAA0B;AAI9B,EAHI,KACF,EAAiB,EAAE,mBAAgB,CAAC,EAEtC,EAA2B,GAAM;IAG7B,KAAc,MAA+C;AAIjE,EAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EAEvB,IAAsB,GAAM;IAGxB,IAA6B,OACjC,MACG;AAMH,EALA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACnB,KACF,MAAM,EAAqB,EAAe,EAE5C,IAAsB,GAAM;IAGxB,KAAqB,MAA+C;AAGxE,EAFA,EAAM,iBAAiB,EACvB,EAAuB,GAAK,EAC5B,IAAsB,GAAM;IAGxB,KAAwB,MAA+C;AAG3E,EAFA,EAAM,iBAAiB,EACvB,EAAsB,GAAK,EAC3B,IAAsB,GAAM;IAGxB,KAAoB,MAA+C;AAGvE,EAFA,EAAM,iBAAiB,EACvB,EAAsB,GAAK,EAC3B,IAAsB,GAAM;IAGxB,KAAmB,MAA+C;AAGtE,EAFA,EAAM,iBAAiB,EACvB,EAAqB,GAAK,EAC1B,IAAsB,GAAM;IAGxB,KAAsB,MAA2B;AACrD,EAAI,KAAkB,KACpB,EAAiB;GACf;GACA,UAAU,KAAgB,CAAC,EAAa;GACzC,CAAC;IAKA,IAAW,EAAM,cAChB,IAQE,GAHL,EAAQ,SAAS,UACb,EAAQ,KAAK,QAAQ,QAAQ,GAAG,GAChC,OAAO,SAAS,OACL,wBAAwB,MARb,IAS3B;EAAC;EAAgB,EAAQ;EAAM,EAAQ;EAAK,CAAC;AAehD,QAAO;EAEL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,sBAxB2B,MAA+C;AAI1E,OAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EAEnB,CAAC,GAAU;AACb,QAAsB,GAAM;AAC5B;;AAIF,GADA,UAAU,UAAU,UAAU,EAAS,EACvC,GAAoB,EAAE,EAAQ,yBAAyB,CAAC;;EAexD;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAEA,gBAAgB,EAAkB,EAAgB;EAClD,gCAAgC,GAAQ,KAAkB;EAC1D,uBAAuB;EACvB,sBAAsB,GAAQ,KAAe;EAC7C,kBAAkB,GAAQ,KAAe;EACzC,iBAAiB,GACf,KAAe,KAAkB,EAAkB,EAAgB;EAEtE"}
|
|
1
|
+
{"version":3,"file":"use-conversation-name-context-menu.js","names":[],"sources":["../../src/hooks/use-conversation-name-context-menu.ts"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigation } from \"#/context/navigation-context\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport useMetricsStore from \"#/stores/metrics-store\";\nimport { useDeleteConversation } from \"./mutation/use-delete-conversation\";\nimport { useUnifiedPauseConversation } from \"./mutation/use-unified-stop-conversation\";\nimport { useUpdateConversationPublicFlag } from \"./mutation/use-update-conversation-public-flag\";\nimport { useActiveConversation } from \"./query/use-active-conversation\";\nimport { useEventStore } from \"#/stores/use-event-store\";\nimport { displaySuccessToast } from \"#/utils/custom-toast-handlers\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { getStoredConversationMetadata } from \"#/api/conversation-metadata-store\";\n\nimport { useDownloadConversation } from \"./use-download-conversation\";\nimport {\n adaptSystemMessage,\n SystemMessageForModal,\n} from \"#/utils/system-message-adapter\";\nimport { ExecutionStatus } from \"#/types/agent-server/core/base/common\";\nimport { isExecutionActive } from \"#/utils/status\";\n\ninterface UseConversationNameContextMenuProps {\n conversationId?: string;\n executionStatus?: ExecutionStatus | null;\n showOptions?: boolean;\n onContextMenuToggle?: (isOpen: boolean) => void;\n}\n\nexport function useConversationNameContextMenu({\n conversationId,\n executionStatus,\n showOptions = false,\n onContextMenuToggle,\n}: UseConversationNameContextMenuProps) {\n const { t } = useTranslation();\n const { conversationId: currentConversationId, navigate } = useNavigation();\n const { backend } = useActiveBackend();\n const events = useEventStore((state) => state.events);\n const { mutate: deleteConversation } = useDeleteConversation();\n const { mutate: stopConversation } = useUnifiedPauseConversation();\n const { mutate: updatePublicFlag } = useUpdateConversationPublicFlag();\n const { data: conversation } = useActiveConversation();\n const metrics = useMetricsStore();\n\n const [metricsModalVisible, setMetricsModalVisible] = React.useState(false);\n const [systemModalVisible, setSystemModalVisible] = React.useState(false);\n const [skillsModalVisible, setSkillsModalVisible] = React.useState(false);\n const [pluginsModalVisible, setPluginsModalVisible] = React.useState(false);\n const [hooksModalVisible, setHooksModalVisible] = React.useState(false);\n const [confirmDeleteModalVisible, setConfirmDeleteModalVisible] =\n React.useState(false);\n const [confirmStopModalVisible, setConfirmStopModalVisible] =\n React.useState(false);\n const { mutateAsync: downloadConversation } = useDownloadConversation();\n\n const systemMessage: SystemMessageForModal | null =\n adaptSystemMessage(events);\n\n const handleDelete = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n setConfirmDeleteModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleStop = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n setConfirmStopModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleConfirmDelete = () => {\n if (conversationId) {\n deleteConversation(\n { conversationId },\n {\n onSuccess: () => {\n if (conversationId === currentConversationId) {\n navigate(\"/conversations\");\n }\n },\n },\n );\n }\n setConfirmDeleteModalVisible(false);\n };\n\n const handleConfirmStop = () => {\n if (conversationId) {\n stopConversation({ conversationId });\n }\n setConfirmStopModalVisible(false);\n };\n\n const handleEdit = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n // This will be handled by the parent component to switch to edit mode\n onContextMenuToggle?.(false);\n };\n\n const handleDownloadConversation = async (\n event: React.MouseEvent<HTMLButtonElement>,\n ) => {\n event.preventDefault();\n event.stopPropagation();\n if (conversationId) {\n await downloadConversation(conversationId);\n }\n onContextMenuToggle?.(false);\n };\n\n const handleDisplayCost = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setMetricsModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowAgentTools = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setSystemModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowSkills = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setSkillsModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowPlugins = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setPluginsModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleShowHooks = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n setHooksModalVisible(true);\n onContextMenuToggle?.(false);\n };\n\n const handleTogglePublic = (nextIsPublic?: boolean) => {\n if (conversationId && conversation) {\n updatePublicFlag({\n conversationId,\n isPublic: nextIsPublic ?? !conversation.public,\n });\n }\n // Intentionally don't close the menu — let the user see the toggle flip.\n };\n\n const shareUrl = React.useMemo(() => {\n if (!conversationId) return \"\";\n // On cloud backends, the shareable URL must point at the cloud\n // environment's host (e.g. the cloud app domain) rather than the local\n // dev origin so the link works for anyone the user shares it with.\n const origin =\n backend.kind === \"cloud\"\n ? backend.host.replace(/\\/+$/, \"\")\n : window.location.origin;\n return `${origin}/shared/conversations/${conversationId}`;\n }, [conversationId, backend.kind, backend.host]);\n\n const handleCopyShareLink = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (!shareUrl) {\n onContextMenuToggle?.(false);\n return;\n }\n\n navigator.clipboard.writeText(shareUrl);\n displaySuccessToast(t(I18nKey.CONVERSATION$LINK_COPIED));\n };\n\n return {\n // Handlers\n handleDelete,\n handleStop,\n handleEdit,\n handleDownloadConversation,\n handleDisplayCost,\n handleShowAgentTools,\n handleShowSkills,\n handleShowPlugins,\n handleShowHooks,\n handleTogglePublic,\n handleCopyShareLink,\n shareUrl,\n handleConfirmDelete,\n handleConfirmStop,\n\n // Modal states\n metricsModalVisible,\n setMetricsModalVisible,\n systemModalVisible,\n setSystemModalVisible,\n skillsModalVisible,\n setSkillsModalVisible,\n pluginsModalVisible,\n setPluginsModalVisible,\n hooksModalVisible,\n setHooksModalVisible,\n confirmDeleteModalVisible,\n setConfirmDeleteModalVisible,\n confirmStopModalVisible,\n setConfirmStopModalVisible,\n\n // Data\n metrics,\n systemMessage,\n\n shouldShowStop: isExecutionActive(executionStatus),\n shouldShowDownloadConversation: Boolean(conversationId && showOptions),\n shouldShowDisplayCost: showOptions,\n shouldShowAgentTools: Boolean(showOptions && systemMessage),\n shouldShowSkills: Boolean(showOptions && conversationId),\n shouldShowPlugins: Boolean(\n showOptions &&\n conversationId &&\n (getStoredConversationMetadata(conversationId)?.plugins?.length ?? 0) > 0,\n ),\n shouldShowHooks: Boolean(\n showOptions && conversationId && isExecutionActive(executionStatus),\n ),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA6BA,SAAgB,EAA+B,EAC7C,mBACA,oBACA,iBAAc,IACd,0BACsC;CACtC,IAAM,EAAE,SAAM,GAAgB,EACxB,EAAE,gBAAgB,GAAuB,gBAAa,GAAe,EACrE,EAAE,eAAY,GAAkB,EAChC,IAAS,GAAe,MAAU,EAAM,OAAO,EAC/C,EAAE,QAAQ,MAAuB,IAAuB,EACxD,EAAE,QAAQ,MAAqB,GAA6B,EAC5D,EAAE,QAAQ,MAAqB,GAAiC,EAChE,EAAE,MAAM,MAAiB,GAAuB,EAChD,IAAU,GAAiB,EAE3B,CAAC,GAAqB,KAA0B,EAAM,SAAS,GAAM,EACrE,CAAC,GAAoB,KAAyB,EAAM,SAAS,GAAM,EACnE,CAAC,GAAoB,KAAyB,EAAM,SAAS,GAAM,EACnE,CAAC,GAAqB,KAA0B,EAAM,SAAS,GAAM,EACrE,CAAC,GAAmB,KAAwB,EAAM,SAAS,GAAM,EACjE,CAAC,GAA2B,KAChC,EAAM,SAAS,GAAM,EACjB,CAAC,GAAyB,KAC9B,EAAM,SAAS,GAAM,EACjB,EAAE,aAAa,MAAyB,GAAyB,EAEjE,IACJ,EAAmB,EAAO,EAEtB,KAAgB,MAA+C;AAInE,EAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACvB,EAA6B,GAAK,EAClC,IAAsB,GAAM;IAGxB,KAAc,MAA+C;AAIjE,EAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACvB,EAA2B,GAAK,EAChC,IAAsB,GAAM;IAGxB,UAA4B;AAahC,EAZI,KACF,EACE,EAAE,mBAAgB,EAClB,EACE,iBAAiB;AACf,GAAI,MAAmB,KACrB,EAAS,iBAAiB;KAG/B,CACF,EAEH,EAA6B,GAAM;IAG/B,UAA0B;AAI9B,EAHI,KACF,EAAiB,EAAE,mBAAgB,CAAC,EAEtC,EAA2B,GAAM;IAG7B,KAAc,MAA+C;AAIjE,EAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EAEvB,IAAsB,GAAM;IAGxB,IAA6B,OACjC,MACG;AAMH,EALA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EACnB,KACF,MAAM,EAAqB,EAAe,EAE5C,IAAsB,GAAM;IAGxB,KAAqB,MAA+C;AAGxE,EAFA,EAAM,iBAAiB,EACvB,EAAuB,GAAK,EAC5B,IAAsB,GAAM;IAGxB,KAAwB,MAA+C;AAG3E,EAFA,EAAM,iBAAiB,EACvB,EAAsB,GAAK,EAC3B,IAAsB,GAAM;IAGxB,KAAoB,MAA+C;AAGvE,EAFA,EAAM,iBAAiB,EACvB,EAAsB,GAAK,EAC3B,IAAsB,GAAM;IAGxB,MAAqB,MAA+C;AAGxE,EAFA,EAAM,iBAAiB,EACvB,EAAuB,GAAK,EAC5B,IAAsB,GAAM;IAGxB,MAAmB,MAA+C;AAGtE,EAFA,EAAM,iBAAiB,EACvB,EAAqB,GAAK,EAC1B,IAAsB,GAAM;IAGxB,MAAsB,MAA2B;AACrD,EAAI,KAAkB,KACpB,EAAiB;GACf;GACA,UAAU,KAAgB,CAAC,EAAa;GACzC,CAAC;IAKA,IAAW,EAAM,cAChB,IAQE,GAHL,EAAQ,SAAS,UACb,EAAQ,KAAK,QAAQ,QAAQ,GAAG,GAChC,OAAO,SAAS,OACL,wBAAwB,MARb,IAS3B;EAAC;EAAgB,EAAQ;EAAM,EAAQ;EAAK,CAAC;AAehD,QAAO;EAEL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,sBAzB2B,MAA+C;AAI1E,OAHA,EAAM,gBAAgB,EACtB,EAAM,iBAAiB,EAEnB,CAAC,GAAU;AACb,QAAsB,GAAM;AAC5B;;AAIF,GADA,UAAU,UAAU,UAAU,EAAS,EACvC,GAAoB,EAAE,EAAQ,yBAAyB,CAAC;;EAgBxD;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAEA,gBAAgB,EAAkB,EAAgB;EAClD,gCAAgC,GAAQ,KAAkB;EAC1D,uBAAuB;EACvB,sBAAsB,GAAQ,KAAe;EAC7C,kBAAkB,GAAQ,KAAe;EACzC,mBAAmB,GACjB,KACA,MACC,EAA8B,EAAe,EAAE,SAAS,UAAU,KAAK;EAE1E,iBAAiB,GACf,KAAe,KAAkB,EAAkB,EAAgB;EAEtE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./use-conversation-id.cjs`),t=require(`../api/conversation-metadata-store.cjs`);let n=require(`react`);function r(){let{conversationId:r}=e.useOptionalConversationId();return(0,n.useMemo)(()=>r?t.getStoredConversationMetadata(r)?.plugins??[]:[],[r])}exports.useConversationPlugins=r;
|
|
2
|
+
//# sourceMappingURL=use-conversation-plugins.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-conversation-plugins.cjs","names":[],"sources":["../../src/hooks/use-conversation-plugins.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { getStoredConversationMetadata } from \"#/api/conversation-metadata-store\";\nimport type { PluginSpec } from \"#/api/conversation-service/agent-server-conversation-service.types\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\n\n/**\n * Plugins loaded into the active conversation, read from the client-side\n * metadata snapshot taken at creation (explicitly attached plugins plus the\n * enabled installed plugins the SDK auto-loads). Empty when none are loaded or\n * when used outside a conversation route. The agent-server doesn't return a\n * live conversation's loaded plugins, so this is the available source today.\n */\nexport function useConversationPlugins(): PluginSpec[] {\n const { conversationId } = useOptionalConversationId();\n return useMemo(() => {\n if (!conversationId) return [];\n return getStoredConversationMetadata(conversationId)?.plugins ?? [];\n }, [conversationId]);\n}\n"],"mappings":"qKAYA,SAAgB,GAAuC,CACrD,GAAM,CAAE,kBAAmB,EAAA,2BAA2B,CACtD,OAAA,EAAA,EAAA,aACO,EACE,EAAA,8BAA8B,EAAe,EAAE,SAAW,EAAE,CADvC,EAAE,CAE7B,CAAC,EAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginSpec } from "#/api/conversation-service/agent-server-conversation-service.types";
|
|
2
|
+
/**
|
|
3
|
+
* Plugins loaded into the active conversation, read from the client-side
|
|
4
|
+
* metadata snapshot taken at creation (explicitly attached plugins plus the
|
|
5
|
+
* enabled installed plugins the SDK auto-loads). Empty when none are loaded or
|
|
6
|
+
* when used outside a conversation route. The agent-server doesn't return a
|
|
7
|
+
* live conversation's loaded plugins, so this is the available source today.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useConversationPlugins(): PluginSpec[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useOptionalConversationId as e } from "./use-conversation-id.js";
|
|
2
|
+
import { getStoredConversationMetadata as t } from "../api/conversation-metadata-store.js";
|
|
3
|
+
import { useMemo as n } from "react";
|
|
4
|
+
//#region src/hooks/use-conversation-plugins.ts
|
|
5
|
+
function r() {
|
|
6
|
+
let { conversationId: r } = e();
|
|
7
|
+
return n(() => r ? t(r)?.plugins ?? [] : [], [r]);
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { r as useConversationPlugins };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=use-conversation-plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-conversation-plugins.js","names":[],"sources":["../../src/hooks/use-conversation-plugins.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { getStoredConversationMetadata } from \"#/api/conversation-metadata-store\";\nimport type { PluginSpec } from \"#/api/conversation-service/agent-server-conversation-service.types\";\nimport { useOptionalConversationId } from \"#/hooks/use-conversation-id\";\n\n/**\n * Plugins loaded into the active conversation, read from the client-side\n * metadata snapshot taken at creation (explicitly attached plugins plus the\n * enabled installed plugins the SDK auto-loads). Empty when none are loaded or\n * when used outside a conversation route. The agent-server doesn't return a\n * live conversation's loaded plugins, so this is the available source today.\n */\nexport function useConversationPlugins(): PluginSpec[] {\n const { conversationId } = useOptionalConversationId();\n return useMemo(() => {\n if (!conversationId) return [];\n return getStoredConversationMetadata(conversationId)?.plugins ?? [];\n }, [conversationId]);\n}\n"],"mappings":";;;;AAYA,SAAgB,IAAuC;CACrD,IAAM,EAAE,sBAAmB,GAA2B;AACtD,QAAO,QACA,IACE,EAA8B,EAAe,EAAE,WAAW,EAAE,GADvC,EAAE,EAE7B,CAAC,EAAe,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../node_modules/react-i18next/dist/es/useTranslation.cjs`),t=require(`../i18n/declaration.cjs`),n=require(`../utils/conversation-local-storage.cjs`),r=require(`../stores/conversation-store.cjs`),i=require(`../utils/custom-toast-handlers.cjs`),a=require(`./query/use-active-conversation.cjs`),o=require(`./mutation/use-create-conversation.cjs`);let s=require(`react`);var c=()=>{let{t:c}=e.useTranslation(`openhands`),{setConversationMode:l,setSubConversationTaskId:u,subConversationTaskId:d}=r.useConversationStore(),{data:f}=a.useActiveConversation(),{mutate:p,isPending:m}=o.useCreateConversation();return(0,s.useEffect)(()=>{if(!f?.id)return;let e=n.getConversationState(f.id);e.subConversationTaskId&&!d&&u(e.subConversationTaskId)},[f?.id,d,u]),{handlePlanClick:(0,s.useCallback)(e=>{e?.preventDefault(),e?.stopPropagation(),l(`plan`),!(f?.sub_conversation_ids&&f.sub_conversation_ids.length>0||!f?.id||d)&&p({parentConversationId:f.id,agentType:`plan`},{onSuccess:e=>{i.displaySuccessToast(c(t.I18nKey.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED)),e.task_id&&(u(e.task_id),n.setConversationState(f.id,{subConversationTaskId:e.task_id}))}})},[f,p,l,u,d,c]),isCreatingConversation:m}};exports.useHandlePlanClick=c;
|
|
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/conversation-local-storage.cjs`),r=require(`../stores/conversation-store.cjs`),i=require(`../utils/custom-toast-handlers.cjs`),a=require(`./query/use-active-conversation.cjs`),o=require(`./mutation/use-create-conversation.cjs`);let s=require(`react`);var c=()=>{let{t:c}=e.useTranslation(`openhands`),{setConversationMode:l,setSubConversationTaskId:u,subConversationTaskId:d}=r.useConversationStore(),{data:f}=a.useActiveConversation(),{mutate:p,isPending:m}=o.useCreateConversation();return(0,s.useEffect)(()=>{if(!f?.id)return;let e=n.getConversationState(f.id);e.subConversationTaskId&&!d&&u(e.subConversationTaskId)},[f?.id,d,u]),{handlePlanClick:(0,s.useCallback)(e=>{e?.preventDefault(),e?.stopPropagation(),l(`plan`),!(f?.sub_conversation_ids&&f.sub_conversation_ids.length>0||!f?.id||d)&&p({parentConversationId:f.id,agentType:`plan`,entryPoint:`plan_sub_conversation`},{onSuccess:e=>{i.displaySuccessToast(c(t.I18nKey.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED)),e.task_id&&(u(e.task_id),n.setConversationState(f.id,{subConversationTaskId:e.task_id}))}})},[f,p,l,u,d,c]),isCreatingConversation:m}};exports.useHandlePlanClick=c;
|
|
2
2
|
//# sourceMappingURL=use-handle-plan-click.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-handle-plan-click.cjs","names":[],"sources":["../../src/hooks/use-handle-plan-click.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useCreateConversation } from \"#/hooks/mutation/use-create-conversation\";\nimport { displaySuccessToast } from \"#/utils/custom-toast-handlers\";\nimport {\n getConversationState,\n setConversationState,\n} from \"#/utils/conversation-local-storage\";\n\n/**\n * Custom hook that encapsulates the logic for handling plan creation.\n * Returns a function that can be called to create a plan conversation and\n * the pending state of the conversation creation.\n *\n * @returns An object containing handlePlanClick function and isCreatingConversation boolean\n */\nexport const useHandlePlanClick = () => {\n const { t } = useTranslation(\"openhands\");\n const {\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n } = useConversationStore();\n const { data: conversation } = useActiveConversation();\n const { mutate: createConversation, isPending: isCreatingConversation } =\n useCreateConversation();\n\n // Restore subConversationTaskId from localStorage on conversation load\n // This handles the case where page was refreshed while sub-conversation creation was in progress\n useEffect(() => {\n if (!conversation?.id) return;\n\n const storedState = getConversationState(conversation.id);\n if (storedState.subConversationTaskId && !subConversationTaskId) {\n setSubConversationTaskId(storedState.subConversationTaskId);\n }\n }, [conversation?.id, subConversationTaskId, setSubConversationTaskId]);\n\n const handlePlanClick = useCallback(\n (event?: React.MouseEvent<HTMLButtonElement> | KeyboardEvent) => {\n event?.preventDefault();\n event?.stopPropagation();\n\n // Set conversation mode to \"plan\" immediately\n setConversationMode(\"plan\");\n\n // Check if sub_conversation_ids is not empty or if a sub-conversation creation is already in progress\n if (\n (conversation?.sub_conversation_ids &&\n conversation.sub_conversation_ids.length > 0) ||\n !conversation?.id ||\n subConversationTaskId\n ) {\n // Do nothing if any condition is true\n return;\n }\n\n // Create a new sub-conversation if we have a current conversation ID\n createConversation(\n {\n parentConversationId: conversation.id,\n agentType: \"plan\",\n },\n {\n onSuccess: (data) => {\n displaySuccessToast(\n t(I18nKey.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED),\n );\n // Track the task ID to poll for sub-conversation creation\n if (data.task_id) {\n setSubConversationTaskId(data.task_id);\n // Persist to localStorage so it survives page refresh\n setConversationState(conversation.id, {\n subConversationTaskId: data.task_id,\n });\n }\n },\n },\n );\n },\n [\n conversation,\n createConversation,\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n t,\n ],\n );\n\n return { handlePlanClick, isCreatingConversation };\n};\n"],"mappings":"6aAmBA,IAAa,MAA2B,CACtC,GAAM,CAAE,KAAM,EAAA,eAAe,YAAY,CACnC,CACJ,sBACA,2BACA,yBACE,EAAA,sBAAsB,CACpB,CAAE,KAAM,GAAiB,EAAA,uBAAuB,CAChD,CAAE,OAAQ,EAAoB,UAAW,GAC7C,EAAA,uBAAuB,
|
|
1
|
+
{"version":3,"file":"use-handle-plan-click.cjs","names":[],"sources":["../../src/hooks/use-handle-plan-click.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useCreateConversation } from \"#/hooks/mutation/use-create-conversation\";\nimport { displaySuccessToast } from \"#/utils/custom-toast-handlers\";\nimport {\n getConversationState,\n setConversationState,\n} from \"#/utils/conversation-local-storage\";\n\n/**\n * Custom hook that encapsulates the logic for handling plan creation.\n * Returns a function that can be called to create a plan conversation and\n * the pending state of the conversation creation.\n *\n * @returns An object containing handlePlanClick function and isCreatingConversation boolean\n */\nexport const useHandlePlanClick = () => {\n const { t } = useTranslation(\"openhands\");\n const {\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n } = useConversationStore();\n const { data: conversation } = useActiveConversation();\n const { mutate: createConversation, isPending: isCreatingConversation } =\n useCreateConversation();\n\n // Restore subConversationTaskId from localStorage on conversation load\n // This handles the case where page was refreshed while sub-conversation creation was in progress\n useEffect(() => {\n if (!conversation?.id) return;\n\n const storedState = getConversationState(conversation.id);\n if (storedState.subConversationTaskId && !subConversationTaskId) {\n setSubConversationTaskId(storedState.subConversationTaskId);\n }\n }, [conversation?.id, subConversationTaskId, setSubConversationTaskId]);\n\n const handlePlanClick = useCallback(\n (event?: React.MouseEvent<HTMLButtonElement> | KeyboardEvent) => {\n event?.preventDefault();\n event?.stopPropagation();\n\n // Set conversation mode to \"plan\" immediately\n setConversationMode(\"plan\");\n\n // Check if sub_conversation_ids is not empty or if a sub-conversation creation is already in progress\n if (\n (conversation?.sub_conversation_ids &&\n conversation.sub_conversation_ids.length > 0) ||\n !conversation?.id ||\n subConversationTaskId\n ) {\n // Do nothing if any condition is true\n return;\n }\n\n // Create a new sub-conversation if we have a current conversation ID\n createConversation(\n {\n parentConversationId: conversation.id,\n agentType: \"plan\",\n entryPoint: \"plan_sub_conversation\",\n },\n {\n onSuccess: (data) => {\n displaySuccessToast(\n t(I18nKey.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED),\n );\n // Track the task ID to poll for sub-conversation creation\n if (data.task_id) {\n setSubConversationTaskId(data.task_id);\n // Persist to localStorage so it survives page refresh\n setConversationState(conversation.id, {\n subConversationTaskId: data.task_id,\n });\n }\n },\n },\n );\n },\n [\n conversation,\n createConversation,\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n t,\n ],\n );\n\n return { handlePlanClick, isCreatingConversation };\n};\n"],"mappings":"6aAmBA,IAAa,MAA2B,CACtC,GAAM,CAAE,KAAM,EAAA,eAAe,YAAY,CACnC,CACJ,sBACA,2BACA,yBACE,EAAA,sBAAsB,CACpB,CAAE,KAAM,GAAiB,EAAA,uBAAuB,CAChD,CAAE,OAAQ,EAAoB,UAAW,GAC7C,EAAA,uBAAuB,CAkEzB,OA9DA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAc,GAAI,OAEvB,IAAM,EAAc,EAAA,qBAAqB,EAAa,GAAG,CACrD,EAAY,uBAAyB,CAAC,GACxC,EAAyB,EAAY,sBAAsB,EAE5D,CAAC,GAAc,GAAI,EAAuB,EAAyB,CAAC,CAuDhE,CAAE,iBAAA,EAAA,EAAA,aApDN,GAAgE,CAC/D,GAAO,gBAAgB,CACvB,GAAO,iBAAiB,CAGxB,EAAoB,OAAO,CAIxB,KAAc,sBACb,EAAa,qBAAqB,OAAS,GAC7C,CAAC,GAAc,IACf,IAOF,EACE,CACE,qBAAsB,EAAa,GACnC,UAAW,OACX,WAAY,wBACb,CACD,CACE,UAAY,GAAS,CACnB,EAAA,oBACE,EAAE,EAAA,QAAQ,2CAA2C,CACtD,CAEG,EAAK,UACP,EAAyB,EAAK,QAAQ,CAEtC,EAAA,qBAAqB,EAAa,GAAI,CACpC,sBAAuB,EAAK,QAC7B,CAAC,GAGP,CACF,EAEH,CACE,EACA,EACA,EACA,EACA,EACA,EACD,CAGM,CAAiB,yBAAwB"}
|
|
@@ -21,7 +21,8 @@ var u = () => {
|
|
|
21
21
|
handlePlanClick: c((e) => {
|
|
22
22
|
e?.preventDefault(), e?.stopPropagation(), d("plan"), !(m?.sub_conversation_ids && m.sub_conversation_ids.length > 0 || !m?.id || p) && h({
|
|
23
23
|
parentConversationId: m.id,
|
|
24
|
-
agentType: "plan"
|
|
24
|
+
agentType: "plan",
|
|
25
|
+
entryPoint: "plan_sub_conversation"
|
|
25
26
|
}, { onSuccess: (e) => {
|
|
26
27
|
a(u(t.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED)), e.task_id && (f(e.task_id), r(m.id, { subConversationTaskId: e.task_id }));
|
|
27
28
|
} });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-handle-plan-click.js","names":[],"sources":["../../src/hooks/use-handle-plan-click.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useCreateConversation } from \"#/hooks/mutation/use-create-conversation\";\nimport { displaySuccessToast } from \"#/utils/custom-toast-handlers\";\nimport {\n getConversationState,\n setConversationState,\n} from \"#/utils/conversation-local-storage\";\n\n/**\n * Custom hook that encapsulates the logic for handling plan creation.\n * Returns a function that can be called to create a plan conversation and\n * the pending state of the conversation creation.\n *\n * @returns An object containing handlePlanClick function and isCreatingConversation boolean\n */\nexport const useHandlePlanClick = () => {\n const { t } = useTranslation(\"openhands\");\n const {\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n } = useConversationStore();\n const { data: conversation } = useActiveConversation();\n const { mutate: createConversation, isPending: isCreatingConversation } =\n useCreateConversation();\n\n // Restore subConversationTaskId from localStorage on conversation load\n // This handles the case where page was refreshed while sub-conversation creation was in progress\n useEffect(() => {\n if (!conversation?.id) return;\n\n const storedState = getConversationState(conversation.id);\n if (storedState.subConversationTaskId && !subConversationTaskId) {\n setSubConversationTaskId(storedState.subConversationTaskId);\n }\n }, [conversation?.id, subConversationTaskId, setSubConversationTaskId]);\n\n const handlePlanClick = useCallback(\n (event?: React.MouseEvent<HTMLButtonElement> | KeyboardEvent) => {\n event?.preventDefault();\n event?.stopPropagation();\n\n // Set conversation mode to \"plan\" immediately\n setConversationMode(\"plan\");\n\n // Check if sub_conversation_ids is not empty or if a sub-conversation creation is already in progress\n if (\n (conversation?.sub_conversation_ids &&\n conversation.sub_conversation_ids.length > 0) ||\n !conversation?.id ||\n subConversationTaskId\n ) {\n // Do nothing if any condition is true\n return;\n }\n\n // Create a new sub-conversation if we have a current conversation ID\n createConversation(\n {\n parentConversationId: conversation.id,\n agentType: \"plan\",\n },\n {\n onSuccess: (data) => {\n displaySuccessToast(\n t(I18nKey.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED),\n );\n // Track the task ID to poll for sub-conversation creation\n if (data.task_id) {\n setSubConversationTaskId(data.task_id);\n // Persist to localStorage so it survives page refresh\n setConversationState(conversation.id, {\n subConversationTaskId: data.task_id,\n });\n }\n },\n },\n );\n },\n [\n conversation,\n createConversation,\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n t,\n ],\n );\n\n return { handlePlanClick, isCreatingConversation };\n};\n"],"mappings":";;;;;;;;;AAmBA,IAAa,UAA2B;CACtC,IAAM,EAAE,SAAM,EAAe,YAAY,EACnC,EACJ,wBACA,6BACA,6BACE,GAAsB,EACpB,EAAE,MAAM,MAAiB,GAAuB,EAChD,EAAE,QAAQ,GAAoB,WAAW,MAC7C,GAAuB;
|
|
1
|
+
{"version":3,"file":"use-handle-plan-click.js","names":[],"sources":["../../src/hooks/use-handle-plan-click.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useConversationStore } from \"#/stores/conversation-store\";\nimport { useActiveConversation } from \"#/hooks/query/use-active-conversation\";\nimport { useCreateConversation } from \"#/hooks/mutation/use-create-conversation\";\nimport { displaySuccessToast } from \"#/utils/custom-toast-handlers\";\nimport {\n getConversationState,\n setConversationState,\n} from \"#/utils/conversation-local-storage\";\n\n/**\n * Custom hook that encapsulates the logic for handling plan creation.\n * Returns a function that can be called to create a plan conversation and\n * the pending state of the conversation creation.\n *\n * @returns An object containing handlePlanClick function and isCreatingConversation boolean\n */\nexport const useHandlePlanClick = () => {\n const { t } = useTranslation(\"openhands\");\n const {\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n } = useConversationStore();\n const { data: conversation } = useActiveConversation();\n const { mutate: createConversation, isPending: isCreatingConversation } =\n useCreateConversation();\n\n // Restore subConversationTaskId from localStorage on conversation load\n // This handles the case where page was refreshed while sub-conversation creation was in progress\n useEffect(() => {\n if (!conversation?.id) return;\n\n const storedState = getConversationState(conversation.id);\n if (storedState.subConversationTaskId && !subConversationTaskId) {\n setSubConversationTaskId(storedState.subConversationTaskId);\n }\n }, [conversation?.id, subConversationTaskId, setSubConversationTaskId]);\n\n const handlePlanClick = useCallback(\n (event?: React.MouseEvent<HTMLButtonElement> | KeyboardEvent) => {\n event?.preventDefault();\n event?.stopPropagation();\n\n // Set conversation mode to \"plan\" immediately\n setConversationMode(\"plan\");\n\n // Check if sub_conversation_ids is not empty or if a sub-conversation creation is already in progress\n if (\n (conversation?.sub_conversation_ids &&\n conversation.sub_conversation_ids.length > 0) ||\n !conversation?.id ||\n subConversationTaskId\n ) {\n // Do nothing if any condition is true\n return;\n }\n\n // Create a new sub-conversation if we have a current conversation ID\n createConversation(\n {\n parentConversationId: conversation.id,\n agentType: \"plan\",\n entryPoint: \"plan_sub_conversation\",\n },\n {\n onSuccess: (data) => {\n displaySuccessToast(\n t(I18nKey.PLANNING_AGENTT$PLANNING_AGENT_INITIALIZED),\n );\n // Track the task ID to poll for sub-conversation creation\n if (data.task_id) {\n setSubConversationTaskId(data.task_id);\n // Persist to localStorage so it survives page refresh\n setConversationState(conversation.id, {\n subConversationTaskId: data.task_id,\n });\n }\n },\n },\n );\n },\n [\n conversation,\n createConversation,\n setConversationMode,\n setSubConversationTaskId,\n subConversationTaskId,\n t,\n ],\n );\n\n return { handlePlanClick, isCreatingConversation };\n};\n"],"mappings":";;;;;;;;;AAmBA,IAAa,UAA2B;CACtC,IAAM,EAAE,SAAM,EAAe,YAAY,EACnC,EACJ,wBACA,6BACA,6BACE,GAAsB,EACpB,EAAE,MAAM,MAAiB,GAAuB,EAChD,EAAE,QAAQ,GAAoB,WAAW,MAC7C,GAAuB;AAkEzB,QA9DA,QAAgB;AACd,MAAI,CAAC,GAAc,GAAI;EAEvB,IAAM,IAAc,EAAqB,EAAa,GAAG;AACzD,EAAI,EAAY,yBAAyB,CAAC,KACxC,EAAyB,EAAY,sBAAsB;IAE5D;EAAC,GAAc;EAAI;EAAuB;EAAyB,CAAC,EAuDhE;EAAE,iBArDe,GACrB,MAAgE;AAC/D,MAAO,gBAAgB,EACvB,GAAO,iBAAiB,EAGxB,EAAoB,OAAO,EAIxB,KAAc,wBACb,EAAa,qBAAqB,SAAS,KAC7C,CAAC,GAAc,MACf,MAOF,EACE;IACE,sBAAsB,EAAa;IACnC,WAAW;IACX,YAAY;IACb,EACD,EACE,YAAY,MAAS;AAKnB,IAJA,EACE,EAAE,EAAQ,2CAA2C,CACtD,EAEG,EAAK,YACP,EAAyB,EAAK,QAAQ,EAEtC,EAAqB,EAAa,IAAI,EACpC,uBAAuB,EAAK,SAC7B,CAAC;MAGP,CACF;KAEH;GACE;GACA;GACA;GACA;GACA;GACA;GACD,CAGM;EAAiB;EAAwB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./query/query-keys.cjs`),t=require(`../node_modules/@tanstack/react-query/build/modern/useQuery.cjs`),n=require(`../contexts/active-backend-context.cjs`),r=require(`../
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./query/query-keys.cjs`),t=require(`../node_modules/@tanstack/react-query/build/modern/useQuery.cjs`),n=require(`../contexts/active-backend-context.cjs`),r=require(`../api/profiles-service/profiles-service.api.cjs`),i=require(`../constants/llm-subscription.cjs`),a=require(`./query/use-settings.cjs`),o=require(`./query/use-llm-profiles.cjs`),s=require(`./use-active-agent-profile.cjs`),c=require(`./query/use-config.cjs`),l=require(`../utils/settings-utils.cjs`);function u(){let{data:u,isLoading:d,isError:f}=a.useSettings(),{data:p,isLoading:m,isError:h}=c.useConfig(),{data:g,isLoading:_,isError:v}=o.useLlmProfiles(),{backend:y,orgId:b}=n.useActiveBackend(),x=y.kind===`local`,{activeProfile:S,isLoading:C}=s.useActiveAgentProfile(),w=(S?.agent_kind??u?.agent_settings?.agent_kind)===`acp`,T=u?.llm_api_key_set===!0,E=S?.agent_kind===`openhands`?S.llm_profile_ref:void 0,D=(E?g?.profiles.find(e=>e.name===E):void 0)??g?.profiles.find(e=>e.name===g?.active_profile),O=D?.api_key_set===!0,k=x&&!!D&&!O,{data:A,isLoading:j,isError:M}=t.useQuery({queryKey:[...e.LLM_PROFILES_QUERY_KEYS.all,y.id,b,`detail`,D?.name],queryFn:()=>r.default.getProfile(D.name),...e.CONFIG_CACHE_OPTIONS,enabled:k,meta:{disableToast:!0}}),N=k&&i.isSubscriptionLlmConfig(A?.config),P=l.isSettingsPageHidden(`/settings/llm`,p?.feature_flags);return{isConfigured:w||P||(x?O||N:T),isLoading:d||f&&!u||m||h&&!p||_||v&&!g||C||k&&(j||M&&!A)}}exports.useLlmConfigured=u;
|
|
2
2
|
//# sourceMappingURL=use-llm-configured.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-llm-configured.cjs","names":[],"sources":["../../src/hooks/use-llm-configured.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useSettings } from \"#/hooks/query/use-settings\";\nimport { useConfig } from \"#/hooks/query/use-config\";\nimport { useLlmProfiles } from \"#/hooks/query/use-llm-profiles\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { isSettingsPageHidden } from \"#/utils/settings-utils\";\nimport ProfilesService from \"#/api/profiles-service/profiles-service.api\";\nimport {\n CONFIG_CACHE_OPTIONS,\n LLM_PROFILES_QUERY_KEYS,\n} from \"#/hooks/query/query-keys\";\nimport { isSubscriptionLlmConfig } from \"#/constants/llm-subscription\";\n\ninterface LlmConfiguredResult {\n /**\n * True when the active backend's agent has a usable LLM:\n * - ACP agents own their LLM via a subprocess, so they never need a key.\n * - OpenHands agents are ready only once an LLM API key has been saved.\n * - When the LLM settings page is hidden by a feature flag there is no\n * place to finish setup, so we treat the LLM as configured to avoid\n * surfacing an actionless warning.\n */\n isConfigured: boolean;\n /**\n * True while the configured/unconfigured state is indeterminate — either\n * settings/config are still resolving, or a fetch failed and left us with no\n * data to decide from. Consumers should render nothing in this state so a\n * warning doesn't flash before data loads or on a transient network error.\n */\n isLoading: boolean;\n}\n\n/**\n * Reports whether the active backend's agent has an LLM ready to run\n * conversations. Surfaces the gap left by the onboarding \"Skip for now\" path,\n * which persists no settings — leaving an OpenHands agent without an API key.\n */\nexport function useLlmConfigured(): LlmConfiguredResult {\n const {\n data: settings,\n isLoading: settingsLoading,\n isError: settingsError,\n } = useSettings();\n const {\n data: config,\n isLoading: configLoading,\n isError: configError,\n } = useConfig();\n const {\n data: profilesData,\n isLoading: profilesLoading,\n isError: profilesError,\n } = useLlmProfiles();\n const { backend, orgId } = useActiveBackend();\n const isLocal = backend.kind === \"local\";\n\n const
|
|
1
|
+
{"version":3,"file":"use-llm-configured.cjs","names":[],"sources":["../../src/hooks/use-llm-configured.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useSettings } from \"#/hooks/query/use-settings\";\nimport { useConfig } from \"#/hooks/query/use-config\";\nimport { useLlmProfiles } from \"#/hooks/query/use-llm-profiles\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { useActiveAgentProfile } from \"#/hooks/use-active-agent-profile\";\nimport { isSettingsPageHidden } from \"#/utils/settings-utils\";\nimport ProfilesService from \"#/api/profiles-service/profiles-service.api\";\nimport {\n CONFIG_CACHE_OPTIONS,\n LLM_PROFILES_QUERY_KEYS,\n} from \"#/hooks/query/query-keys\";\nimport { isSubscriptionLlmConfig } from \"#/constants/llm-subscription\";\n\ninterface LlmConfiguredResult {\n /**\n * True when the active backend's agent has a usable LLM:\n * - ACP agents own their LLM via a subprocess, so they never need a key.\n * - OpenHands agents are ready only once an LLM API key has been saved.\n * - When the LLM settings page is hidden by a feature flag there is no\n * place to finish setup, so we treat the LLM as configured to avoid\n * surfacing an actionless warning.\n */\n isConfigured: boolean;\n /**\n * True while the configured/unconfigured state is indeterminate — either\n * settings/config are still resolving, or a fetch failed and left us with no\n * data to decide from. Consumers should render nothing in this state so a\n * warning doesn't flash before data loads or on a transient network error.\n */\n isLoading: boolean;\n}\n\n/**\n * Reports whether the active backend's agent has an LLM ready to run\n * conversations. Surfaces the gap left by the onboarding \"Skip for now\" path,\n * which persists no settings — leaving an OpenHands agent without an API key.\n */\nexport function useLlmConfigured(): LlmConfiguredResult {\n const {\n data: settings,\n isLoading: settingsLoading,\n isError: settingsError,\n } = useSettings();\n const {\n data: config,\n isLoading: configLoading,\n isError: configError,\n } = useConfig();\n const {\n data: profilesData,\n isLoading: profilesLoading,\n isError: profilesError,\n } = useLlmProfiles();\n const { backend, orgId } = useActiveBackend();\n const isLocal = backend.kind === \"local\";\n\n // The active AgentProfile is the current agent — an ACP profile owns its LLM\n // via the subprocess and never needs an API key. Fall back to the global\n // agent settings only while the profile list loads.\n const {\n activeProfile: activeAgentProfile,\n isLoading: activeAgentProfileLoading,\n } = useActiveAgentProfile();\n const activeAgentKind = activeAgentProfile?.agent_kind;\n const isAcpAgent =\n (activeAgentKind ?? settings?.agent_settings?.agent_kind) === \"acp\";\n const hasApiKey = settings?.llm_api_key_set === true;\n // The LLM that will actually power the next conversation is the profile the\n // active AGENT profile references (`llm_profile_ref`) — conversations launch\n // from the agent profile, not the standalone \"active LLM profile\".\n const referencedLlmProfileName =\n activeAgentProfile?.agent_kind === \"openhands\"\n ? activeAgentProfile.llm_profile_ref\n : undefined;\n const referencedProfile = referencedLlmProfileName\n ? profilesData?.profiles.find(\n (profile) => profile.name === referencedLlmProfileName,\n )\n : undefined;\n // Fall back to the active LLM profile when the ref is absent (list loading,\n // or an agent profile without a ref) OR stale (names a profile that no longer\n // exists). This mirrors the launch-time fallback in `useCreateConversation`,\n // which drops a stale-ref profile launch to an `agent_settings` launch on the\n // active LLM. Without this fallback the two contradict each other: launch\n // succeeds via the fallback, but this hook reports `isConfigured: false` and\n // spuriously disables the composer + shows the banner — even inside a running\n // conversation (VascoSch92 review, #1571).\n const activeProfile =\n referencedProfile ??\n profilesData?.profiles.find(\n (profile) => profile.name === profilesData?.active_profile,\n );\n const hasActiveProfileApiKey = activeProfile?.api_key_set === true;\n const shouldLoadActiveProfileDetail =\n isLocal && !!activeProfile && !hasActiveProfileApiKey;\n const {\n data: activeProfileDetail,\n isLoading: activeProfileDetailLoading,\n isError: activeProfileDetailError,\n } = useQuery({\n queryKey: [\n ...LLM_PROFILES_QUERY_KEYS.all,\n backend.id,\n orgId,\n \"detail\",\n activeProfile?.name,\n ],\n queryFn: () => ProfilesService.getProfile(activeProfile!.name),\n ...CONFIG_CACHE_OPTIONS,\n enabled: shouldLoadActiveProfileDetail,\n meta: { disableToast: true },\n });\n const hasActiveProfileSubscription =\n shouldLoadActiveProfileDetail &&\n isSubscriptionLlmConfig(\n activeProfileDetail?.config as Record<string, unknown> | undefined,\n );\n const llmSettingsHidden = isSettingsPageHidden(\n \"/settings/llm\",\n config?.feature_flags,\n );\n\n // In local mode, profiles are the source of truth: a usable LLM must be\n // backed by an active profile that still exists and is authenticated. API-key\n // profiles use the list endpoint's api_key_set flag; subscription profiles\n // intentionally have no key, so we inspect the active profile detail config.\n // The raw settings key can be a stale copy left behind by a deleted profile\n // (settings are not cleared on delete), so we don't count it here. Cloud\n // backends don't use profiles and keep the settings-key signal.\n const hasUsableActiveProfile =\n hasActiveProfileApiKey || hasActiveProfileSubscription;\n const hasUsableLlm = isLocal ? hasUsableActiveProfile : hasApiKey;\n\n // Treat a fetch failure as indeterminate (same as loading) only when it\n // leaves us with no data to decide from — otherwise a transient network\n // error would surface the banner with the same urgency as a genuinely\n // missing API key. A settings 404 is deliberately not covered here:\n // `useSettings` maps it to DEFAULT_SETTINGS (no key, OpenHands agent) while\n // keeping `isError` set, and that is exactly the new-user / \"Skip for now\"\n // state the banner exists to catch — so we keep deciding from that data.\n const settingsIndeterminate = settingsLoading || (settingsError && !settings);\n const configIndeterminate = configLoading || (configError && !config);\n // The active agent profile decides `isAcpAgent` and which LLM profile the\n // next conversation runs; on a cold cache it's still loading, so decide\n // nothing yet — otherwise an ACP agent (which needs no key) briefly reads as\n // an unconfigured OpenHands agent and flashes the \"LLM not set up\" banner.\n const agentProfileIndeterminate = activeAgentProfileLoading;\n const profilesIndeterminate =\n profilesLoading || (profilesError && !profilesData);\n const activeProfileDetailIndeterminate =\n shouldLoadActiveProfileDetail &&\n (activeProfileDetailLoading ||\n (activeProfileDetailError && !activeProfileDetail));\n\n return {\n isConfigured: isAcpAgent || llmSettingsHidden || hasUsableLlm,\n isLoading:\n settingsIndeterminate ||\n configIndeterminate ||\n profilesIndeterminate ||\n agentProfileIndeterminate ||\n activeProfileDetailIndeterminate,\n };\n}\n"],"mappings":"8gBAsCA,SAAgB,GAAwC,CACtD,GAAM,CACJ,KAAM,EACN,UAAW,EACX,QAAS,GACP,EAAA,aAAa,CACX,CACJ,KAAM,EACN,UAAW,EACX,QAAS,GACP,EAAA,WAAW,CACT,CACJ,KAAM,EACN,UAAW,EACX,QAAS,GACP,EAAA,gBAAgB,CACd,CAAE,UAAS,SAAU,EAAA,kBAAkB,CACvC,EAAU,EAAQ,OAAS,QAK3B,CACJ,cAAe,EACf,UAAW,GACT,EAAA,uBAAuB,CAErB,GADkB,GAAoB,YAEtB,GAAU,gBAAgB,cAAgB,MAC1D,EAAY,GAAU,kBAAoB,GAI1C,EACJ,GAAoB,aAAe,YAC/B,EAAmB,gBACnB,IAAA,GAcA,GAboB,EACtB,GAAc,SAAS,KACpB,GAAY,EAAQ,OAAS,EAC/B,CACD,IAAA,KAWF,GAAc,SAAS,KACpB,GAAY,EAAQ,OAAS,GAAc,eAC7C,CACG,EAAyB,GAAe,cAAgB,GACxD,EACJ,GAAW,CAAC,CAAC,GAAiB,CAAC,EAC3B,CACJ,KAAM,EACN,UAAW,EACX,QAAS,GACP,EAAA,SAAS,CACX,SAAU,CACR,GAAG,EAAA,wBAAwB,IAC3B,EAAQ,GACR,EACA,SACA,GAAe,KAChB,CACD,YAAe,EAAA,QAAgB,WAAW,EAAe,KAAK,CAC9D,GAAG,EAAA,qBACH,QAAS,EACT,KAAM,CAAE,aAAc,GAAM,CAC7B,CAAC,CACI,EACJ,GACA,EAAA,wBACE,GAAqB,OACtB,CACG,EAAoB,EAAA,qBACxB,gBACA,GAAQ,cACT,CAkCD,MAAO,CACL,aAAc,GAAc,IAxBT,EADnB,GAA0B,EAC4B,GAyBtD,UAhB4B,GAAoB,GAAiB,CAAC,GACxC,GAAkB,GAAe,CAAC,GAO5D,GAAoB,GAAiB,CAAC,GAYpC,GAVF,IACC,GACE,GAA4B,CAAC,GAUjC"}
|
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
import { CONFIG_CACHE_OPTIONS as e, LLM_PROFILES_QUERY_KEYS as t } from "./query/query-keys.js";
|
|
2
2
|
import { useQuery as n } from "../node_modules/@tanstack/react-query/build/modern/useQuery.js";
|
|
3
3
|
import { useActiveBackend as r } from "../contexts/active-backend-context.js";
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import o from "
|
|
4
|
+
import i from "../api/profiles-service/profiles-service.api.js";
|
|
5
|
+
import { isSubscriptionLlmConfig as a } from "../constants/llm-subscription.js";
|
|
6
|
+
import { useSettings as o } from "./query/use-settings.js";
|
|
7
7
|
import { useLlmProfiles as s } from "./query/use-llm-profiles.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { useActiveAgentProfile as c } from "./use-active-agent-profile.js";
|
|
9
|
+
import { useConfig as l } from "./query/use-config.js";
|
|
10
|
+
import { isSettingsPageHidden as u } from "../utils/settings-utils.js";
|
|
10
11
|
//#region src/hooks/use-llm-configured.ts
|
|
11
|
-
function
|
|
12
|
-
let { data:
|
|
12
|
+
function d() {
|
|
13
|
+
let { data: d, isLoading: f, isError: p } = o(), { data: m, isLoading: h, isError: g } = l(), { data: _, isLoading: v, isError: y } = s(), { backend: b, orgId: x } = r(), S = b.kind === "local", { activeProfile: C, isLoading: w } = c(), T = (C?.agent_kind ?? d?.agent_settings?.agent_kind) === "acp", E = d?.llm_api_key_set === !0, D = C?.agent_kind === "openhands" ? C.llm_profile_ref : void 0, O = (D ? _?.profiles.find((e) => e.name === D) : void 0) ?? _?.profiles.find((e) => e.name === _?.active_profile), k = O?.api_key_set === !0, A = S && !!O && !k, { data: j, isLoading: M, isError: N } = n({
|
|
13
14
|
queryKey: [
|
|
14
15
|
...t.all,
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
b.id,
|
|
17
|
+
x,
|
|
17
18
|
"detail",
|
|
18
|
-
|
|
19
|
+
O?.name
|
|
19
20
|
],
|
|
20
|
-
queryFn: () =>
|
|
21
|
+
queryFn: () => i.getProfile(O.name),
|
|
21
22
|
...e,
|
|
22
|
-
enabled:
|
|
23
|
+
enabled: A,
|
|
23
24
|
meta: { disableToast: !0 }
|
|
24
|
-
}),
|
|
25
|
+
}), P = A && a(j?.config), F = u("/settings/llm", m?.feature_flags);
|
|
25
26
|
return {
|
|
26
|
-
isConfigured:
|
|
27
|
-
isLoading:
|
|
27
|
+
isConfigured: T || F || (S ? k || P : E),
|
|
28
|
+
isLoading: f || p && !d || h || g && !m || v || y && !_ || w || A && (M || N && !j)
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
//#endregion
|
|
31
|
-
export {
|
|
32
|
+
export { d as useLlmConfigured };
|
|
32
33
|
|
|
33
34
|
//# sourceMappingURL=use-llm-configured.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-llm-configured.js","names":[],"sources":["../../src/hooks/use-llm-configured.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useSettings } from \"#/hooks/query/use-settings\";\nimport { useConfig } from \"#/hooks/query/use-config\";\nimport { useLlmProfiles } from \"#/hooks/query/use-llm-profiles\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { isSettingsPageHidden } from \"#/utils/settings-utils\";\nimport ProfilesService from \"#/api/profiles-service/profiles-service.api\";\nimport {\n CONFIG_CACHE_OPTIONS,\n LLM_PROFILES_QUERY_KEYS,\n} from \"#/hooks/query/query-keys\";\nimport { isSubscriptionLlmConfig } from \"#/constants/llm-subscription\";\n\ninterface LlmConfiguredResult {\n /**\n * True when the active backend's agent has a usable LLM:\n * - ACP agents own their LLM via a subprocess, so they never need a key.\n * - OpenHands agents are ready only once an LLM API key has been saved.\n * - When the LLM settings page is hidden by a feature flag there is no\n * place to finish setup, so we treat the LLM as configured to avoid\n * surfacing an actionless warning.\n */\n isConfigured: boolean;\n /**\n * True while the configured/unconfigured state is indeterminate — either\n * settings/config are still resolving, or a fetch failed and left us with no\n * data to decide from. Consumers should render nothing in this state so a\n * warning doesn't flash before data loads or on a transient network error.\n */\n isLoading: boolean;\n}\n\n/**\n * Reports whether the active backend's agent has an LLM ready to run\n * conversations. Surfaces the gap left by the onboarding \"Skip for now\" path,\n * which persists no settings — leaving an OpenHands agent without an API key.\n */\nexport function useLlmConfigured(): LlmConfiguredResult {\n const {\n data: settings,\n isLoading: settingsLoading,\n isError: settingsError,\n } = useSettings();\n const {\n data: config,\n isLoading: configLoading,\n isError: configError,\n } = useConfig();\n const {\n data: profilesData,\n isLoading: profilesLoading,\n isError: profilesError,\n } = useLlmProfiles();\n const { backend, orgId } = useActiveBackend();\n const isLocal = backend.kind === \"local\";\n\n const
|
|
1
|
+
{"version":3,"file":"use-llm-configured.js","names":[],"sources":["../../src/hooks/use-llm-configured.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useSettings } from \"#/hooks/query/use-settings\";\nimport { useConfig } from \"#/hooks/query/use-config\";\nimport { useLlmProfiles } from \"#/hooks/query/use-llm-profiles\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { useActiveAgentProfile } from \"#/hooks/use-active-agent-profile\";\nimport { isSettingsPageHidden } from \"#/utils/settings-utils\";\nimport ProfilesService from \"#/api/profiles-service/profiles-service.api\";\nimport {\n CONFIG_CACHE_OPTIONS,\n LLM_PROFILES_QUERY_KEYS,\n} from \"#/hooks/query/query-keys\";\nimport { isSubscriptionLlmConfig } from \"#/constants/llm-subscription\";\n\ninterface LlmConfiguredResult {\n /**\n * True when the active backend's agent has a usable LLM:\n * - ACP agents own their LLM via a subprocess, so they never need a key.\n * - OpenHands agents are ready only once an LLM API key has been saved.\n * - When the LLM settings page is hidden by a feature flag there is no\n * place to finish setup, so we treat the LLM as configured to avoid\n * surfacing an actionless warning.\n */\n isConfigured: boolean;\n /**\n * True while the configured/unconfigured state is indeterminate — either\n * settings/config are still resolving, or a fetch failed and left us with no\n * data to decide from. Consumers should render nothing in this state so a\n * warning doesn't flash before data loads or on a transient network error.\n */\n isLoading: boolean;\n}\n\n/**\n * Reports whether the active backend's agent has an LLM ready to run\n * conversations. Surfaces the gap left by the onboarding \"Skip for now\" path,\n * which persists no settings — leaving an OpenHands agent without an API key.\n */\nexport function useLlmConfigured(): LlmConfiguredResult {\n const {\n data: settings,\n isLoading: settingsLoading,\n isError: settingsError,\n } = useSettings();\n const {\n data: config,\n isLoading: configLoading,\n isError: configError,\n } = useConfig();\n const {\n data: profilesData,\n isLoading: profilesLoading,\n isError: profilesError,\n } = useLlmProfiles();\n const { backend, orgId } = useActiveBackend();\n const isLocal = backend.kind === \"local\";\n\n // The active AgentProfile is the current agent — an ACP profile owns its LLM\n // via the subprocess and never needs an API key. Fall back to the global\n // agent settings only while the profile list loads.\n const {\n activeProfile: activeAgentProfile,\n isLoading: activeAgentProfileLoading,\n } = useActiveAgentProfile();\n const activeAgentKind = activeAgentProfile?.agent_kind;\n const isAcpAgent =\n (activeAgentKind ?? settings?.agent_settings?.agent_kind) === \"acp\";\n const hasApiKey = settings?.llm_api_key_set === true;\n // The LLM that will actually power the next conversation is the profile the\n // active AGENT profile references (`llm_profile_ref`) — conversations launch\n // from the agent profile, not the standalone \"active LLM profile\".\n const referencedLlmProfileName =\n activeAgentProfile?.agent_kind === \"openhands\"\n ? activeAgentProfile.llm_profile_ref\n : undefined;\n const referencedProfile = referencedLlmProfileName\n ? profilesData?.profiles.find(\n (profile) => profile.name === referencedLlmProfileName,\n )\n : undefined;\n // Fall back to the active LLM profile when the ref is absent (list loading,\n // or an agent profile without a ref) OR stale (names a profile that no longer\n // exists). This mirrors the launch-time fallback in `useCreateConversation`,\n // which drops a stale-ref profile launch to an `agent_settings` launch on the\n // active LLM. Without this fallback the two contradict each other: launch\n // succeeds via the fallback, but this hook reports `isConfigured: false` and\n // spuriously disables the composer + shows the banner — even inside a running\n // conversation (VascoSch92 review, #1571).\n const activeProfile =\n referencedProfile ??\n profilesData?.profiles.find(\n (profile) => profile.name === profilesData?.active_profile,\n );\n const hasActiveProfileApiKey = activeProfile?.api_key_set === true;\n const shouldLoadActiveProfileDetail =\n isLocal && !!activeProfile && !hasActiveProfileApiKey;\n const {\n data: activeProfileDetail,\n isLoading: activeProfileDetailLoading,\n isError: activeProfileDetailError,\n } = useQuery({\n queryKey: [\n ...LLM_PROFILES_QUERY_KEYS.all,\n backend.id,\n orgId,\n \"detail\",\n activeProfile?.name,\n ],\n queryFn: () => ProfilesService.getProfile(activeProfile!.name),\n ...CONFIG_CACHE_OPTIONS,\n enabled: shouldLoadActiveProfileDetail,\n meta: { disableToast: true },\n });\n const hasActiveProfileSubscription =\n shouldLoadActiveProfileDetail &&\n isSubscriptionLlmConfig(\n activeProfileDetail?.config as Record<string, unknown> | undefined,\n );\n const llmSettingsHidden = isSettingsPageHidden(\n \"/settings/llm\",\n config?.feature_flags,\n );\n\n // In local mode, profiles are the source of truth: a usable LLM must be\n // backed by an active profile that still exists and is authenticated. API-key\n // profiles use the list endpoint's api_key_set flag; subscription profiles\n // intentionally have no key, so we inspect the active profile detail config.\n // The raw settings key can be a stale copy left behind by a deleted profile\n // (settings are not cleared on delete), so we don't count it here. Cloud\n // backends don't use profiles and keep the settings-key signal.\n const hasUsableActiveProfile =\n hasActiveProfileApiKey || hasActiveProfileSubscription;\n const hasUsableLlm = isLocal ? hasUsableActiveProfile : hasApiKey;\n\n // Treat a fetch failure as indeterminate (same as loading) only when it\n // leaves us with no data to decide from — otherwise a transient network\n // error would surface the banner with the same urgency as a genuinely\n // missing API key. A settings 404 is deliberately not covered here:\n // `useSettings` maps it to DEFAULT_SETTINGS (no key, OpenHands agent) while\n // keeping `isError` set, and that is exactly the new-user / \"Skip for now\"\n // state the banner exists to catch — so we keep deciding from that data.\n const settingsIndeterminate = settingsLoading || (settingsError && !settings);\n const configIndeterminate = configLoading || (configError && !config);\n // The active agent profile decides `isAcpAgent` and which LLM profile the\n // next conversation runs; on a cold cache it's still loading, so decide\n // nothing yet — otherwise an ACP agent (which needs no key) briefly reads as\n // an unconfigured OpenHands agent and flashes the \"LLM not set up\" banner.\n const agentProfileIndeterminate = activeAgentProfileLoading;\n const profilesIndeterminate =\n profilesLoading || (profilesError && !profilesData);\n const activeProfileDetailIndeterminate =\n shouldLoadActiveProfileDetail &&\n (activeProfileDetailLoading ||\n (activeProfileDetailError && !activeProfileDetail));\n\n return {\n isConfigured: isAcpAgent || llmSettingsHidden || hasUsableLlm,\n isLoading:\n settingsIndeterminate ||\n configIndeterminate ||\n profilesIndeterminate ||\n agentProfileIndeterminate ||\n activeProfileDetailIndeterminate,\n };\n}\n"],"mappings":";;;;;;;;;;;AAsCA,SAAgB,IAAwC;CACtD,IAAM,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,GAAa,EACX,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,GAAW,EACT,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,GAAgB,EACd,EAAE,YAAS,aAAU,GAAkB,EACvC,IAAU,EAAQ,SAAS,SAK3B,EACJ,eAAe,GACf,WAAW,MACT,GAAuB,EAErB,KADkB,GAAoB,cAEtB,GAAU,gBAAgB,gBAAgB,OAC1D,IAAY,GAAU,oBAAoB,IAI1C,IACJ,GAAoB,eAAe,cAC/B,EAAmB,kBACnB,KAAA,GAcA,KAboB,IACtB,GAAc,SAAS,MACpB,MAAY,EAAQ,SAAS,EAC/B,GACD,KAAA,MAWF,GAAc,SAAS,MACpB,MAAY,EAAQ,SAAS,GAAc,eAC7C,EACG,IAAyB,GAAe,gBAAgB,IACxD,IACJ,KAAW,CAAC,CAAC,KAAiB,CAAC,GAC3B,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,EAAS;EACX,UAAU;GACR,GAAG,EAAwB;GAC3B,EAAQ;GACR;GACA;GACA,GAAe;GAChB;EACD,eAAe,EAAgB,WAAW,EAAe,KAAK;EAC9D,GAAG;EACH,SAAS;EACT,MAAM,EAAE,cAAc,IAAM;EAC7B,CAAC,EACI,IACJ,KACA,EACE,GAAqB,OACtB,EACG,IAAoB,EACxB,iBACA,GAAQ,cACT;AAkCD,QAAO;EACL,cAAc,KAAc,MAxBT,IADnB,KAA0B,IAC4B;EAyBtD,WAhB4B,KAAoB,KAAiB,CAAC,KACxC,KAAkB,KAAe,CAAC,KAO5D,KAAoB,KAAiB,CAAC,KAYpC,KAVF,MACC,KACE,KAA4B,CAAC;EAUjC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../node_modules/posthog-js/react/dist/esm/index.cjs`),t=require(`./query/use-settings.cjs`);var n=()=>{let n=e.usePostHog(),{data:r}=t.useSettings(),i={current_url:window.location.href,user_email:r?.email||r?.git_user_email||null},a=(e,t={})=>{!n||r?.user_consents_to_analytics!==!0||n.capture(e,{...t,...i})};return{trackLoginButtonClick:({provider:e})=>{a(`login_button_clicked`,{provider:e})},trackConversationCreated:({hasRepository:
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../node_modules/posthog-js/react/dist/esm/index.cjs`),t=require(`./query/use-settings.cjs`);var n=()=>{let n=e.usePostHog(),{data:r}=t.useSettings(),i={current_url:window.location.href,user_email:r?.email||r?.git_user_email||null},a=(e,t={})=>{!n||r?.user_consents_to_analytics!==!0||n.capture(e,{...t,...i})};return{trackLoginButtonClick:({provider:e})=>{a(`login_button_clicked`,{provider:e})},trackConversationCreated:({conversationId:e,taskId:t,hasRepository:n,gitProvider:r,hasWorkspace:i,workspaceMode:o,hasInitialQuery:s,agentType:c,hasParentConversation:l,entryPoint:u})=>{a(`conversation_created`,{conversation_id:e,task_id:t,is_start_task:e.startsWith(`task-`),has_repository:n,git_provider:r,has_workspace:i,workspace_mode:o,has_initial_query:s,agent_type:c,has_parent_conversation:l,entry_point:u})},trackPushButtonClick:()=>{a(`push_button_clicked`)},trackPullButtonClick:()=>{a(`pull_button_clicked`)},trackCreatePrButtonClick:()=>{a(`create_pr_button_clicked`)},trackUserSignupCompleted:()=>{a(`user_signup_completed`,{signup_timestamp:new Date().toISOString()})},trackPrebuiltAutomationEnabled:({automationId:e,automationName:t,automationCategory:n})=>{a(`prebuilt_automation_enabled`,{automation_id:e,automation_name:t,automation_category:n})},trackInitialQuerySubmitted:({entryPoint:e,queryCharacterLength:t,replayJsonSize:n})=>{a(`initial_query_submitted`,{entry_point:e,query_character_length:t,replay_json_size:n})},trackUserMessageSent:({sessionMessageCount:e,currentMessageLength:t})=>{a(`user_message_sent`,{session_message_count:e,current_message_length:t})},trackDownloadVsCodeButtonClicked:()=>{a(`download_via_vscode_button_clicked`)},trackSettingsSaved:({llmModel:e,llmApiKeySet:t,searchApiKeySet:n,remoteRuntimeResourceFactor:r})=>{a(`settings_saved`,{LLM_MODEL:e,LLM_API_KEY_SET:t,SEARCH_API_KEY_SET:n,REMOTE_RUNTIME_RESOURCE_FACTOR:r})},trackMcpConfigUpdated:({sseServersCount:e,stdioServersCount:t})=>{a(`mcp_config_updated`,{has_mcp_config:!0,sse_servers_count:e,stdio_servers_count:t})},trackDownloadTrajectoryButtonClicked:()=>{a(`download_trajectory_button_clicked`)},trackAutomationCreated:({backendKind:e})=>{a(`automation_created`,{backend_kind:e})},trackAutomationExecuted:({backendKind:e})=>{a(`automation_executed`,{backend_kind:e})},trackAutomationDeleted:({backendKind:e})=>{a(`automation_deleted`,{backend_kind:e})},trackAutomationDeactivated:({backendKind:e})=>{a(`automation_deactivated`,{backend_kind:e})},trackAutomationEdited:({backendKind:e})=>{a(`automation_edited`,{backend_kind:e})},trackBackendAdded:({backendKind:e,connectionMethod:t,isOpenhandsCloud:n,isCustomHost:r,hasApiKey:i,source:o})=>{a(`backend_added`,{backend_kind:e,connection_method:t,is_openhands_cloud:n,is_custom_host:r,has_api_key:i,source:o})},trackOnboardingStarted:()=>{a(`onboarding_started`)},trackOnboardingStepViewed:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{a(`onboarding_step_viewed`,{step:e,step_index:t,total_steps:n,agent:r})},trackOnboardingCompleted:({agent:e})=>{a(`onboarding_completed`,{agent:e})},trackOnboardingSkipped:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{a(`onboarding_skipped`,{step:e,step_index:t,total_steps:n,agent:r})}}};exports.useTracking=n;
|
|
2
2
|
//# sourceMappingURL=use-tracking.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tracking.cjs","names":[],"sources":["../../src/hooks/use-tracking.ts"],"sourcesContent":["import { usePostHog } from \"posthog-js/react\";\nimport { useSettings } from \"./query/use-settings\";\nimport { Provider } from \"#/types/settings\";\n\n/**\n * Hook that provides tracking functions with automatic data collection\n * from available hooks (settings, etc.)\n *\n * All events require explicit user consent (user_consents_to_analytics === true).\n * Events are silently dropped when:\n * - posthog is not initialized (VITE_POSTHOG_CLIENT_KEY not set)\n * - user_consents_to_analytics is false or null (consent not yet collected)\n */\nexport const useTracking = () => {\n const posthog = usePostHog();\n const { data: settings } = useSettings();\n\n // Common properties included in all tracking events\n const commonProperties = {\n current_url: window.location.href,\n user_email: settings?.email || settings?.git_user_email || null,\n };\n\n /**\n * Capture an event only when PostHog is available and the user has\n * explicitly consented. null and false are both treated as \"not consented\".\n */\n const track = (event: string, properties: Record<string, unknown> = {}) => {\n if (!posthog || settings?.user_consents_to_analytics !== true) return;\n posthog.capture(event, { ...properties, ...commonProperties });\n };\n\n const trackLoginButtonClick = ({ provider }: { provider: Provider }) => {\n track(\"login_button_clicked\", { provider });\n };\n\n const trackConversationCreated = ({\n hasRepository,\n }: {\n hasRepository: boolean;\n }) => {\n track(\"conversation_created\", { has_repository: hasRepository });\n };\n\n const trackPushButtonClick = () => {\n track(\"push_button_clicked\");\n };\n\n const trackPullButtonClick = () => {\n track(\"pull_button_clicked\");\n };\n\n const trackCreatePrButtonClick = () => {\n track(\"create_pr_button_clicked\");\n };\n\n const trackUserSignupCompleted = () => {\n track(\"user_signup_completed\", {\n signup_timestamp: new Date().toISOString(),\n });\n };\n\n const trackPrebuiltAutomationEnabled = ({\n automationId,\n automationName,\n automationCategory,\n }: {\n automationId?: string;\n automationName: string;\n automationCategory?: string;\n }) => {\n track(\"prebuilt_automation_enabled\", {\n automation_id: automationId,\n automation_name: automationName,\n automation_category: automationCategory,\n });\n };\n\n const trackInitialQuerySubmitted = ({\n entryPoint,\n queryCharacterLength,\n replayJsonSize,\n }: {\n entryPoint: string;\n queryCharacterLength: number;\n replayJsonSize?: number;\n }) => {\n track(\"initial_query_submitted\", {\n entry_point: entryPoint,\n query_character_length: queryCharacterLength,\n replay_json_size: replayJsonSize,\n });\n };\n\n const trackUserMessageSent = ({\n sessionMessageCount,\n currentMessageLength,\n }: {\n sessionMessageCount: number;\n currentMessageLength: number;\n }) => {\n track(\"user_message_sent\", {\n session_message_count: sessionMessageCount,\n current_message_length: currentMessageLength,\n });\n };\n\n const trackDownloadVsCodeButtonClicked = () => {\n track(\"download_via_vscode_button_clicked\");\n };\n\n const trackSettingsSaved = ({\n llmModel,\n llmApiKeySet,\n searchApiKeySet,\n remoteRuntimeResourceFactor,\n }: {\n llmModel: unknown;\n llmApiKeySet: \"SET\" | \"UNSET\";\n searchApiKeySet: \"SET\" | \"UNSET\";\n remoteRuntimeResourceFactor?: unknown;\n }) => {\n track(\"settings_saved\", {\n LLM_MODEL: llmModel,\n LLM_API_KEY_SET: llmApiKeySet,\n SEARCH_API_KEY_SET: searchApiKeySet,\n REMOTE_RUNTIME_RESOURCE_FACTOR: remoteRuntimeResourceFactor,\n });\n };\n\n const trackMcpConfigUpdated = ({\n sseServersCount,\n stdioServersCount,\n }: {\n sseServersCount: number;\n stdioServersCount: number;\n }) => {\n track(\"mcp_config_updated\", {\n has_mcp_config: true,\n sse_servers_count: sseServersCount,\n stdio_servers_count: stdioServersCount,\n });\n };\n\n const trackDownloadTrajectoryButtonClicked = () => {\n track(\"download_trajectory_button_clicked\");\n };\n\n return {\n trackLoginButtonClick,\n trackConversationCreated,\n trackPushButtonClick,\n trackPullButtonClick,\n trackCreatePrButtonClick,\n trackUserSignupCompleted,\n trackPrebuiltAutomationEnabled,\n trackInitialQuerySubmitted,\n trackUserMessageSent,\n trackDownloadVsCodeButtonClicked,\n trackSettingsSaved,\n trackMcpConfigUpdated,\n trackDownloadTrajectoryButtonClicked,\n };\n};\n"],"mappings":"0JAaA,IAAa,MAAoB,CAC/B,IAAM,EAAU,EAAA,YAAY,CACtB,CAAE,KAAM,GAAa,EAAA,aAAa,CAGlC,EAAmB,CACvB,YAAa,OAAO,SAAS,KAC7B,WAAY,GAAU,OAAS,GAAU,gBAAkB,KAC5D,CAMK,GAAS,EAAe,EAAsC,EAAE,GAAK,CACrE,CAAC,GAAW,GAAU,6BAA+B,IACzD,EAAQ,QAAQ,EAAO,CAAE,GAAG,EAAY,GAAG,EAAkB,CAAC,EAuHhE,MAAO,CACL,uBArH6B,CAAE,cAAuC,CACtE,EAAM,uBAAwB,CAAE,WAAU,CAAC,EAqH3C,0BAlHgC,CAChC,mBAGI,CACJ,EAAM,uBAAwB,CAAE,eAAgB,EAAe,CAAC,EA8GhE,yBA3GiC,CACjC,EAAM,sBAAsB,EA2G5B,yBAxGiC,CACjC,EAAM,sBAAsB,EAwG5B,6BArGqC,CACrC,EAAM,2BAA2B,EAqGjC,6BAlGqC,CACrC,EAAM,wBAAyB,CAC7B,iBAAkB,IAAI,MAAM,CAAC,aAAa,CAC3C,CAAC,EAgGF,gCA7FsC,CACtC,eACA,iBACA,wBAKI,CACJ,EAAM,8BAA+B,CACnC,cAAe,EACf,gBAAiB,EACjB,oBAAqB,EACtB,CAAC,EAiFF,4BA9EkC,CAClC,aACA,uBACA,oBAKI,CACJ,EAAM,0BAA2B,CAC/B,YAAa,EACb,uBAAwB,EACxB,iBAAkB,EACnB,CAAC,EAkEF,sBA/D4B,CAC5B,sBACA,0BAII,CACJ,EAAM,oBAAqB,CACzB,sBAAuB,EACvB,uBAAwB,EACzB,CAAC,EAsDF,qCAnD6C,CAC7C,EAAM,qCAAqC,EAmD3C,oBAhD0B,CAC1B,WACA,eACA,kBACA,iCAMI,CACJ,EAAM,iBAAkB,CACtB,UAAW,EACX,gBAAiB,EACjB,mBAAoB,EACpB,+BAAgC,EACjC,CAAC,EAiCF,uBA9B6B,CAC7B,kBACA,uBAII,CACJ,EAAM,qBAAsB,CAC1B,eAAgB,GAChB,kBAAmB,EACnB,oBAAqB,EACtB,CAAC,EAoBF,yCAjBiD,CACjD,EAAM,qCAAqC,EAiB5C"}
|
|
1
|
+
{"version":3,"file":"use-tracking.cjs","names":[],"sources":["../../src/hooks/use-tracking.ts"],"sourcesContent":["import { usePostHog } from \"posthog-js/react\";\nimport { useSettings } from \"./query/use-settings\";\nimport { Provider } from \"#/types/settings\";\nimport type { BackendKind } from \"#/api/backend-registry/types\";\nimport type { WorkspaceMode } from \"#/api/conversation-metadata-store\";\n\n/**\n * Hook that provides tracking functions with automatic data collection\n * from available hooks (settings, etc.)\n *\n * All events require explicit user consent (user_consents_to_analytics === true).\n * Events are silently dropped when:\n * - posthog is not initialized (VITE_POSTHOG_CLIENT_KEY not set)\n * - user_consents_to_analytics is false or null (consent not yet collected)\n */\nexport const useTracking = () => {\n const posthog = usePostHog();\n const { data: settings } = useSettings();\n\n // Common properties included in all tracking events\n const commonProperties = {\n current_url: window.location.href,\n user_email: settings?.email || settings?.git_user_email || null,\n };\n\n /**\n * Capture an event only when PostHog is available and the user has\n * explicitly consented. null and false are both treated as \"not consented\".\n */\n const track = (event: string, properties: Record<string, unknown> = {}) => {\n if (!posthog || settings?.user_consents_to_analytics !== true) return;\n posthog.capture(event, { ...properties, ...commonProperties });\n };\n\n const trackLoginButtonClick = ({ provider }: { provider: Provider }) => {\n track(\"login_button_clicked\", { provider });\n };\n\n const trackConversationCreated = ({\n conversationId,\n taskId,\n hasRepository,\n gitProvider,\n hasWorkspace,\n workspaceMode,\n hasInitialQuery,\n agentType,\n hasParentConversation,\n entryPoint,\n }: {\n conversationId: string;\n taskId?: string;\n hasRepository: boolean;\n gitProvider?: Provider;\n hasWorkspace: boolean;\n workspaceMode?: WorkspaceMode;\n hasInitialQuery: boolean;\n agentType?: \"default\" | \"plan\";\n hasParentConversation: boolean;\n entryPoint?: string;\n }) => {\n track(\"conversation_created\", {\n conversation_id: conversationId,\n task_id: taskId,\n is_start_task: conversationId.startsWith(\"task-\"),\n has_repository: hasRepository,\n git_provider: gitProvider,\n has_workspace: hasWorkspace,\n workspace_mode: workspaceMode,\n has_initial_query: hasInitialQuery,\n agent_type: agentType,\n has_parent_conversation: hasParentConversation,\n entry_point: entryPoint,\n });\n };\n\n const trackPushButtonClick = () => {\n track(\"push_button_clicked\");\n };\n\n const trackPullButtonClick = () => {\n track(\"pull_button_clicked\");\n };\n\n const trackCreatePrButtonClick = () => {\n track(\"create_pr_button_clicked\");\n };\n\n const trackUserSignupCompleted = () => {\n track(\"user_signup_completed\", {\n signup_timestamp: new Date().toISOString(),\n });\n };\n\n const trackPrebuiltAutomationEnabled = ({\n automationId,\n automationName,\n automationCategory,\n }: {\n automationId?: string;\n automationName: string;\n automationCategory?: string;\n }) => {\n track(\"prebuilt_automation_enabled\", {\n automation_id: automationId,\n automation_name: automationName,\n automation_category: automationCategory,\n });\n };\n\n const trackInitialQuerySubmitted = ({\n entryPoint,\n queryCharacterLength,\n replayJsonSize,\n }: {\n entryPoint: string;\n queryCharacterLength: number;\n replayJsonSize?: number;\n }) => {\n track(\"initial_query_submitted\", {\n entry_point: entryPoint,\n query_character_length: queryCharacterLength,\n replay_json_size: replayJsonSize,\n });\n };\n\n const trackUserMessageSent = ({\n sessionMessageCount,\n currentMessageLength,\n }: {\n sessionMessageCount: number;\n currentMessageLength: number;\n }) => {\n track(\"user_message_sent\", {\n session_message_count: sessionMessageCount,\n current_message_length: currentMessageLength,\n });\n };\n\n const trackDownloadVsCodeButtonClicked = () => {\n track(\"download_via_vscode_button_clicked\");\n };\n\n const trackSettingsSaved = ({\n llmModel,\n llmApiKeySet,\n searchApiKeySet,\n remoteRuntimeResourceFactor,\n }: {\n llmModel: unknown;\n llmApiKeySet: \"SET\" | \"UNSET\";\n searchApiKeySet: \"SET\" | \"UNSET\";\n remoteRuntimeResourceFactor?: unknown;\n }) => {\n track(\"settings_saved\", {\n LLM_MODEL: llmModel,\n LLM_API_KEY_SET: llmApiKeySet,\n SEARCH_API_KEY_SET: searchApiKeySet,\n REMOTE_RUNTIME_RESOURCE_FACTOR: remoteRuntimeResourceFactor,\n });\n };\n\n const trackMcpConfigUpdated = ({\n sseServersCount,\n stdioServersCount,\n }: {\n sseServersCount: number;\n stdioServersCount: number;\n }) => {\n track(\"mcp_config_updated\", {\n has_mcp_config: true,\n sse_servers_count: sseServersCount,\n stdio_servers_count: stdioServersCount,\n });\n };\n\n const trackDownloadTrajectoryButtonClicked = () => {\n track(\"download_trajectory_button_clicked\");\n };\n\n const trackAutomationCreated = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_created\", { backend_kind: backendKind });\n };\n\n const trackAutomationExecuted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_executed\", { backend_kind: backendKind });\n };\n\n const trackAutomationDeleted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_deleted\", { backend_kind: backendKind });\n };\n\n const trackAutomationDeactivated = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_deactivated\", { backend_kind: backendKind });\n };\n\n const trackAutomationEdited = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_edited\", { backend_kind: backendKind });\n };\n\n const trackBackendAdded = ({\n backendKind,\n connectionMethod,\n isOpenhandsCloud,\n isCustomHost,\n hasApiKey,\n source,\n }: {\n backendKind: BackendKind;\n connectionMethod: \"manual\" | \"cloud_login\";\n isOpenhandsCloud: boolean;\n isCustomHost: boolean;\n hasApiKey: boolean;\n source?: \"add_backend_modal\" | \"manage_backends_modal\";\n }) => {\n track(\"backend_added\", {\n backend_kind: backendKind,\n connection_method: connectionMethod,\n is_openhands_cloud: isOpenhandsCloud,\n is_custom_host: isCustomHost,\n has_api_key: hasApiKey,\n source,\n });\n };\n\n const trackOnboardingStarted = () => {\n track(\"onboarding_started\");\n };\n\n const trackOnboardingStepViewed = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_step_viewed\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n const trackOnboardingCompleted = ({ agent }: { agent: string }) => {\n track(\"onboarding_completed\", { agent });\n };\n\n const trackOnboardingSkipped = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_skipped\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n return {\n trackLoginButtonClick,\n trackConversationCreated,\n trackPushButtonClick,\n trackPullButtonClick,\n trackCreatePrButtonClick,\n trackUserSignupCompleted,\n trackPrebuiltAutomationEnabled,\n trackInitialQuerySubmitted,\n trackUserMessageSent,\n trackDownloadVsCodeButtonClicked,\n trackSettingsSaved,\n trackMcpConfigUpdated,\n trackDownloadTrajectoryButtonClicked,\n trackAutomationCreated,\n trackAutomationExecuted,\n trackAutomationDeleted,\n trackAutomationDeactivated,\n trackAutomationEdited,\n trackBackendAdded,\n trackOnboardingStarted,\n trackOnboardingStepViewed,\n trackOnboardingCompleted,\n trackOnboardingSkipped,\n };\n};\n"],"mappings":"0JAeA,IAAa,MAAoB,CAC/B,IAAM,EAAU,EAAA,YAAY,CACtB,CAAE,KAAM,GAAa,EAAA,aAAa,CAGlC,EAAmB,CACvB,YAAa,OAAO,SAAS,KAC7B,WAAY,GAAU,OAAS,GAAU,gBAAkB,KAC5D,CAMK,GAAS,EAAe,EAAsC,EAAE,GAAK,CACrE,CAAC,GAAW,GAAU,6BAA+B,IACzD,EAAQ,QAAQ,EAAO,CAAE,GAAG,EAAY,GAAG,EAAkB,CAAC,EAoQhE,MAAO,CACL,uBAlQ6B,CAAE,cAAuC,CACtE,EAAM,uBAAwB,CAAE,WAAU,CAAC,EAkQ3C,0BA/PgC,CAChC,iBACA,SACA,gBACA,cACA,eACA,gBACA,kBACA,YACA,wBACA,gBAYI,CACJ,EAAM,uBAAwB,CAC5B,gBAAiB,EACjB,QAAS,EACT,cAAe,EAAe,WAAW,QAAQ,CACjD,eAAgB,EAChB,aAAc,EACd,cAAe,EACf,eAAgB,EAChB,kBAAmB,EACnB,WAAY,EACZ,wBAAyB,EACzB,YAAa,EACd,CAAC,EA6NF,yBA1NiC,CACjC,EAAM,sBAAsB,EA0N5B,yBAvNiC,CACjC,EAAM,sBAAsB,EAuN5B,6BApNqC,CACrC,EAAM,2BAA2B,EAoNjC,6BAjNqC,CACrC,EAAM,wBAAyB,CAC7B,iBAAkB,IAAI,MAAM,CAAC,aAAa,CAC3C,CAAC,EA+MF,gCA5MsC,CACtC,eACA,iBACA,wBAKI,CACJ,EAAM,8BAA+B,CACnC,cAAe,EACf,gBAAiB,EACjB,oBAAqB,EACtB,CAAC,EAgMF,4BA7LkC,CAClC,aACA,uBACA,oBAKI,CACJ,EAAM,0BAA2B,CAC/B,YAAa,EACb,uBAAwB,EACxB,iBAAkB,EACnB,CAAC,EAiLF,sBA9K4B,CAC5B,sBACA,0BAII,CACJ,EAAM,oBAAqB,CACzB,sBAAuB,EACvB,uBAAwB,EACzB,CAAC,EAqKF,qCAlK6C,CAC7C,EAAM,qCAAqC,EAkK3C,oBA/J0B,CAC1B,WACA,eACA,kBACA,iCAMI,CACJ,EAAM,iBAAkB,CACtB,UAAW,EACX,gBAAiB,EACjB,mBAAoB,EACpB,+BAAgC,EACjC,CAAC,EAgJF,uBA7I6B,CAC7B,kBACA,uBAII,CACJ,EAAM,qBAAsB,CAC1B,eAAgB,GAChB,kBAAmB,EACnB,oBAAqB,EACtB,CAAC,EAmIF,yCAhIiD,CACjD,EAAM,qCAAqC,EAgI3C,wBA7H8B,CAC9B,iBAGI,CACJ,EAAM,qBAAsB,CAAE,aAAc,EAAa,CAAC,EAyH1D,yBAtH+B,CAC/B,iBAGI,CACJ,EAAM,sBAAuB,CAAE,aAAc,EAAa,CAAC,EAkH3D,wBA/G8B,CAC9B,iBAGI,CACJ,EAAM,qBAAsB,CAAE,aAAc,EAAa,CAAC,EA2G1D,4BAxGkC,CAClC,iBAGI,CACJ,EAAM,yBAA0B,CAAE,aAAc,EAAa,CAAC,EAoG9D,uBAjG6B,CAC7B,iBAGI,CACJ,EAAM,oBAAqB,CAAE,aAAc,EAAa,CAAC,EA6FzD,mBA1FyB,CACzB,cACA,mBACA,mBACA,eACA,YACA,YAQI,CACJ,EAAM,gBAAiB,CACrB,aAAc,EACd,kBAAmB,EACnB,mBAAoB,EACpB,eAAgB,EAChB,YAAa,EACb,SACD,CAAC,EAqEF,2BAlEmC,CACnC,EAAM,qBAAqB,EAkE3B,2BA/DiC,CACjC,OACA,YACA,aACA,WAMI,CACJ,EAAM,yBAA0B,CAC9B,OACA,WAAY,EACZ,YAAa,EACb,QACD,CAAC,EAgDF,0BA7CgC,CAAE,WAA+B,CACjE,EAAM,uBAAwB,CAAE,QAAO,CAAC,EA6CxC,wBA1C8B,CAC9B,OACA,YACA,aACA,WAMI,CACJ,EAAM,qBAAsB,CAC1B,OACA,WAAY,EACZ,YAAa,EACb,QACD,CAAC,EA2BH"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Provider } from "#/types/settings";
|
|
2
|
+
import type { BackendKind } from "#/api/backend-registry/types";
|
|
3
|
+
import type { WorkspaceMode } from "#/api/conversation-metadata-store";
|
|
2
4
|
/**
|
|
3
5
|
* Hook that provides tracking functions with automatic data collection
|
|
4
6
|
* from available hooks (settings, etc.)
|
|
@@ -12,8 +14,17 @@ export declare const useTracking: () => {
|
|
|
12
14
|
trackLoginButtonClick: ({ provider }: {
|
|
13
15
|
provider: Provider;
|
|
14
16
|
}) => void;
|
|
15
|
-
trackConversationCreated: ({ hasRepository, }: {
|
|
17
|
+
trackConversationCreated: ({ conversationId, taskId, hasRepository, gitProvider, hasWorkspace, workspaceMode, hasInitialQuery, agentType, hasParentConversation, entryPoint, }: {
|
|
18
|
+
conversationId: string;
|
|
19
|
+
taskId?: string;
|
|
16
20
|
hasRepository: boolean;
|
|
21
|
+
gitProvider?: Provider;
|
|
22
|
+
hasWorkspace: boolean;
|
|
23
|
+
workspaceMode?: WorkspaceMode;
|
|
24
|
+
hasInitialQuery: boolean;
|
|
25
|
+
agentType?: "default" | "plan";
|
|
26
|
+
hasParentConversation: boolean;
|
|
27
|
+
entryPoint?: string;
|
|
17
28
|
}) => void;
|
|
18
29
|
trackPushButtonClick: () => void;
|
|
19
30
|
trackPullButtonClick: () => void;
|
|
@@ -45,4 +56,43 @@ export declare const useTracking: () => {
|
|
|
45
56
|
stdioServersCount: number;
|
|
46
57
|
}) => void;
|
|
47
58
|
trackDownloadTrajectoryButtonClicked: () => void;
|
|
59
|
+
trackAutomationCreated: ({ backendKind, }: {
|
|
60
|
+
backendKind: BackendKind;
|
|
61
|
+
}) => void;
|
|
62
|
+
trackAutomationExecuted: ({ backendKind, }: {
|
|
63
|
+
backendKind: BackendKind;
|
|
64
|
+
}) => void;
|
|
65
|
+
trackAutomationDeleted: ({ backendKind, }: {
|
|
66
|
+
backendKind: BackendKind;
|
|
67
|
+
}) => void;
|
|
68
|
+
trackAutomationDeactivated: ({ backendKind, }: {
|
|
69
|
+
backendKind: BackendKind;
|
|
70
|
+
}) => void;
|
|
71
|
+
trackAutomationEdited: ({ backendKind, }: {
|
|
72
|
+
backendKind: BackendKind;
|
|
73
|
+
}) => void;
|
|
74
|
+
trackBackendAdded: ({ backendKind, connectionMethod, isOpenhandsCloud, isCustomHost, hasApiKey, source, }: {
|
|
75
|
+
backendKind: BackendKind;
|
|
76
|
+
connectionMethod: "manual" | "cloud_login";
|
|
77
|
+
isOpenhandsCloud: boolean;
|
|
78
|
+
isCustomHost: boolean;
|
|
79
|
+
hasApiKey: boolean;
|
|
80
|
+
source?: "add_backend_modal" | "manage_backends_modal";
|
|
81
|
+
}) => void;
|
|
82
|
+
trackOnboardingStarted: () => void;
|
|
83
|
+
trackOnboardingStepViewed: ({ step, stepIndex, totalSteps, agent, }: {
|
|
84
|
+
step: string;
|
|
85
|
+
stepIndex: number;
|
|
86
|
+
totalSteps: number;
|
|
87
|
+
agent: string;
|
|
88
|
+
}) => void;
|
|
89
|
+
trackOnboardingCompleted: ({ agent }: {
|
|
90
|
+
agent: string;
|
|
91
|
+
}) => void;
|
|
92
|
+
trackOnboardingSkipped: ({ step, stepIndex, totalSteps, agent, }: {
|
|
93
|
+
step: string;
|
|
94
|
+
stepIndex: number;
|
|
95
|
+
totalSteps: number;
|
|
96
|
+
agent: string;
|
|
97
|
+
}) => void;
|
|
48
98
|
};
|