@openhands/agent-canvas 1.15.0 → 1.17.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 +15 -1
- package/README.windows.md +2 -2
- package/build/assets/{acp-providers-BKvmTf82.js → acp-providers-DrjNsPOH.js} +1 -1
- package/build/assets/active-backend-context-rZiLJRUc.js +2 -0
- package/build/assets/{agent-context-settings-D3PjSTU1.js → agent-context-settings-CJUrcBut.js} +1 -1
- package/build/assets/agent-profiles-service.api-Biieml2L.js +1 -0
- package/build/assets/agent-profiles-settings-x6RvPsq7.js +1 -0
- package/build/assets/agent-server-client-options-BikiNwTa.js +1 -0
- package/build/assets/agent-server-conversation-service.api-DYFsNHKf.js +88 -0
- package/build/assets/agent-settings-BJyovpJ_.js +1 -0
- package/build/assets/agent-settings-CpY3zObk.js +2 -0
- package/build/assets/alert-banner-vARz1idS.js +1 -0
- package/build/assets/{api-error-message-BJyfWp6p.js → api-error-message-Ve79qDcN.js} +1 -1
- package/build/assets/api-key-entry-screen-CsMuBhoP.js +1 -0
- package/build/assets/{app-settings-CbHqzQus.js → app-settings-BaJ7nfHt.js} +1 -1
- package/build/assets/automation-detail-CVoGDrKq.js +3 -0
- package/build/assets/{automation-export-BRopEHMu.js → automation-export-DxY47m3T.js} +1 -1
- package/build/assets/automation-git-sync-CRMP9Bbm.js +1 -0
- package/build/assets/automation-setup-route-072beLz1.js +3 -0
- package/build/assets/{automation-templates-C_0FZgLG.js → automation-templates-4C4PM8K7.js} +1 -1
- package/build/assets/automations-list-xuqTSQL4.js +1 -0
- package/build/assets/{back-nav-button-Dm9tIjVf.js → back-nav-button-B8tH0BEp.js} +1 -1
- package/build/assets/backend-form-modal-0aJmWdsa.js +1 -0
- package/build/assets/{backend-synced-settings-badge-3fOwg6Bd.js → backend-synced-settings-badge-B7rKWBir.js} +1 -1
- package/build/assets/{badge-D4SqUCsR.js → badge-CcGx2TaV.js} +1 -1
- package/build/assets/{base-modal-C7_BDl_U.js → base-modal-DTULovNc.js} +1 -1
- package/build/assets/bot-CLMxGFaq.js +1 -0
- package/build/assets/{brand-button-Dxv6PDeN.js → brand-button-DxPO4Lf8.js} +1 -1
- package/build/assets/browser-C-_qBasq.js +46 -0
- package/build/assets/{browser-tab-BAl4ckJE.js → browser-tab-DZanIw5m.js} +1 -1
- package/build/assets/canvas-extension-page-o_cWgE9B.js +1 -0
- package/build/assets/canvas-extensions-DSgNlCha.js +1 -0
- package/build/assets/canvas-extensions-runtime-DdnkgJXV.js +1 -0
- package/build/assets/{chat-send-button-DWwR2cgI.js → chat-send-button-B3SFSIg5.js} +1 -1
- package/build/assets/check-fDEfgSzj.js +1 -0
- package/build/assets/chevron-down-CFrWHqu8.js +1 -0
- package/build/assets/chevron-right-C5roOrJu.js +1 -0
- package/build/assets/circle-check-ClTzJTdb.js +1 -0
- package/build/assets/{circle-plus-check-toggle-CBh_qomE.js → circle-plus-check-toggle-Fr-h-mbL.js} +1 -1
- package/build/assets/{cloud-funnel-analytics-287iIERo.js → cloud-funnel-analytics-BQanUEEC.js} +1 -1
- package/build/assets/{cog-C4rrw-ZK.js → cog-VBlRo6iw.js} +1 -1
- package/build/assets/command-menu-BT3Ia5Ru.js +1 -0
- package/build/assets/commits-tab-2jhtaohl.js +1 -0
- package/build/assets/{condenser-settings-BcNmYR4s.js → condenser-settings-eVKFMvap.js} +1 -1
- package/build/assets/confirmation-modal-gIFHeZt6.js +1 -0
- package/build/assets/{context-menu-list-item-lVYETtY5.js → context-menu-list-item-DDROe12Z.js} +1 -1
- package/build/assets/conversation-BnjJSFf5.js +93 -0
- package/build/assets/conversation-DZ578rOX.js +1 -0
- package/build/assets/conversation-panel-DZ578rOX.js +1 -0
- package/build/assets/conversation-state-store-D1_G_9I-.js +1 -0
- package/build/assets/{conversation-store-Ca3ghXap.js → conversation-store-DVVfkCsk.js} +1 -1
- package/build/assets/{conversation-tab-empty-state-HJtkmHZj.js → conversation-tab-empty-state-DKlzAz5c.js} +1 -1
- package/build/assets/{copy-to-clipboard-button-Cjkswvnj.js → copy-to-clipboard-button-B3w0X7WH.js} +1 -1
- package/build/assets/{device-verify-EZhHhBT7.js → device-verify-BfkCzyFB.js} +1 -1
- package/build/assets/{dropdown-classes-DJe-E6MC.js → dropdown-classes-B9kJVDIk.js} +1 -1
- package/build/assets/edit-automation-modal-BwhJ39JT.js +1 -0
- package/build/assets/empty-state-RZz0OfnY.js +1 -0
- package/build/assets/{entry.client-C7Bi2tkU.js → entry.client-Ds8LVp-E.js} +2 -2
- package/build/assets/enum-filter-dropdown-C4pW0ORd.js +1 -0
- package/build/assets/{environment-switch-overlay-CEKrFiMw.js → environment-switch-overlay-P2ZAuzov.js} +1 -1
- package/build/assets/{error-state-BALXiBNy.js → error-state-B_5cgNPJ.js} +1 -1
- package/build/assets/extensions-hub-DsaUr4ca.js +1 -0
- package/build/assets/extensions-navigation-CRMZd-FE.js +1 -0
- package/build/assets/external-link-DQtv7eTh.js +1 -0
- package/build/assets/files-tab-CCgAcVdc.js +1 -0
- package/build/assets/{form-control-classes-CGw40z5h.js → form-control-classes-B-z85REi.js} +1 -1
- package/build/assets/format-model-name-CasAP3nd.js +1 -0
- package/build/assets/get-git-path-EHrSDxTM.js +1 -0
- package/build/assets/git-repo-dropdown-D2WEQ97X.js +1 -0
- package/build/assets/{git-repo-dropdown-ai8qaNkD.js → git-repo-dropdown-DVeCUUXG.js} +1 -1
- package/build/assets/{highlighted-source-view-C3sxykQi.js → highlighted-source-view-DjHO3SdW.js} +1 -1
- package/build/assets/home-BorS_vdS.js +1 -0
- package/build/assets/home-aIMbHw5M.js +1 -0
- package/build/assets/home-automation-run-tooltip-CpHNFiFl.js +1 -0
- package/build/assets/home-store-DyXz0w6d.js +1 -0
- package/build/assets/hooks-service-C6dpRtZM.js +1 -0
- package/build/assets/index-home-zKFuKK2B.js +1 -0
- package/build/assets/info-CTIdjttz.js +1 -0
- package/build/assets/install-server-modal-DUiZMc8u.js +1 -0
- package/build/assets/kebab-menu-item-content-mm04SBD3.js +1 -0
- package/build/assets/{key-Cn5za3rg.js → key-CfXbJa8w.js} +1 -1
- package/build/assets/{launch-C1ieiOGe.js → launch-BSIf9KEg.js} +1 -1
- package/build/assets/list-filter-CNpqTWVY.js +1 -0
- package/build/assets/{list-todo-Cuu-STFc.js → list-todo-ByXMdY4W.js} +1 -1
- package/build/assets/llm-not-configured-banner-z_QRSeV0.js +27 -0
- package/build/assets/llm-settings-B-5AHMiX.js +1 -0
- package/build/assets/llm-settings-B3SjHDmA.js +1 -0
- package/build/assets/llm-subscription-service-aDNBQ7Gq.js +1 -0
- package/build/assets/loader-circle-Dex47vVW.js +1 -0
- package/build/assets/{loading-spinner-0L3ZTToZ.js → loading-spinner-DfHI77BA.js} +1 -1
- package/build/assets/manage-backends-modal-q1NdFisr.js +1 -0
- package/build/assets/manifest-8920b615.js +1 -0
- package/build/assets/{manifest-subpage-layout-BGhiUQbA.js → manifest-subpage-layout-BQQy5ipR.js} +1 -1
- package/build/assets/{map-provider-B9LTm23I.js → map-provider-DXvssjw9.js} +1 -1
- package/build/assets/markdown-renderer-rivLvYh-.js +8 -0
- package/build/assets/{mcp-CKbR4Vft.js → mcp-CEXDhQWn.js} +1 -1
- package/build/assets/{mcp-marketplace-utils-C13fFccR.js → mcp-marketplace-utils-Cn_NIMWM.js} +1 -1
- package/build/assets/mcp-page-LGYIICMG.js +9 -0
- package/build/assets/messages-DUSeANAh.js +41 -0
- package/build/assets/{modal-body-CMOc2tLl.js → modal-body-DJw4xBki.js} +1 -1
- package/build/assets/{modal-classes-BAb4Y_BG.js → modal-classes-Dg0ngBPO.js} +1 -1
- package/build/assets/{modal-close-button-CkJ0Ktjj.js → modal-close-button-B9j4nasm.js} +1 -1
- package/build/assets/{mouse-pointer-click-CsgRs_-r.js → mouse-pointer-click-DEhsSUpu.js} +1 -1
- package/build/assets/onboarding-BjFebfs5.js +1 -0
- package/build/assets/onboarding-modal-DDTjOpyd.js +1 -0
- package/build/assets/organization-service.api-Cyg1Tn03.js +1 -0
- package/build/assets/pencil-D5c47kyN.js +1 -0
- package/build/assets/pin-C7vMagvf.js +1 -0
- package/build/assets/planner-tab-D8f2Y3rn.js +1 -0
- package/build/assets/plug-CeaqeF6u.js +1 -0
- package/build/assets/plugins-management-service-Bh_pBuf-.js +1 -0
- package/build/assets/plus-B3wvU06-.js +1 -0
- package/build/assets/profiles-service.api-BbOK0EkF.js +1 -0
- package/build/assets/providers-2gIIkz2N.js +1 -0
- package/build/assets/proxy-CBgMd2zf.js +1 -0
- package/build/assets/{puzzle-A9pGxxai.js → puzzle-DdAqbUrb.js} +1 -1
- package/build/assets/recommended-automations-launcher-YLAQTp4s.js +1 -0
- package/build/assets/refresh-cw-DEQdPCpH.js +1 -0
- package/build/assets/root-Bye_XmEL.js +2 -0
- package/build/assets/root-Cnwwzgo0.css +1 -0
- package/build/assets/root-layout-CSAwxBGM.js +2 -0
- package/build/assets/schema-field-CK0xYNbO.js +1 -0
- package/build/assets/scroll-fade-state-Dt_fx2kf.js +1 -0
- package/build/assets/sdk-section-page-Da73Rs_o.js +1 -0
- package/build/assets/secret-form-CB2VwYYg.js +1 -0
- package/build/assets/secrets-service-Cr8g8xuv.js +1 -0
- package/build/assets/{secrets-settings-BizaTEr1.js → secrets-settings-Bh0udeKv.js} +1 -1
- package/build/assets/settings-CKqk8ZnH.js +1 -0
- package/build/assets/settings-DmyIgRxO.js +1 -0
- package/build/assets/{settings-dropdown-input-tM0A0ipy.js → settings-dropdown-input-DVpyD87C.js} +1 -1
- package/build/assets/settings-index-BSJUFmjE.js +1 -0
- package/build/assets/{settings-input-C03KUoSC.js → settings-input-C0dd8Utu.js} +1 -1
- package/build/assets/{settings-list-classes-BJ0g8rWj.js → settings-list-classes-Ds4jPBHK.js} +1 -1
- package/build/assets/{settings-modal-AzEF1QPP.js → settings-modal-yStgEh2o.js} +1 -1
- package/build/assets/settings-service.api-9_xdv_mh.js +1 -0
- package/build/assets/{settings-switch-CQE0EGC-.js → settings-switch-B78Khmyz.js} +1 -1
- package/build/assets/{settings-utils-ClYOkbbI.js → settings-utils-8GIIgOQL.js} +1 -1
- package/build/assets/shared-conversation-DM96X4KV.js +1 -0
- package/build/assets/shield-check-DO7wa_eu.js +1 -0
- package/build/assets/{sidebar-layout-D3hE08wK.js → sidebar-layout-EPfWxk11.js} +1 -1
- package/build/assets/sidebar-mobile-menu-toggle-D5GR5xT9.js +1 -0
- package/build/assets/sidebar-nav-link-_t4_Ef-9.js +1 -0
- package/build/assets/{sidebar-onboarding-checklist-storage-3qYflszY.js → sidebar-onboarding-checklist-storage-DbDX-Wvj.js} +1 -1
- package/build/assets/sidebar-store-CSDFK0W5.js +1 -0
- package/build/assets/{skill-card-pill-row-CFxjoqxn.js → skill-card-pill-row-989y15jV.js} +1 -1
- package/build/assets/skill-enablement-DXeaImBz.js +1 -0
- package/build/assets/skill-filter-BBeZ4JEP.js +2 -0
- package/build/assets/{skill-icon-badge-CPQJ6A-I.js → skill-icon-badge-BDhQ-tQ0.js} +1 -1
- package/build/assets/skill-scope-Dz3kPH3P.js +1 -0
- package/build/assets/skills-plugins-e3CYGdUJ.js +1 -0
- package/build/assets/skills-settings-3e-FuHw_.js +1 -0
- package/build/assets/styled-tooltip-Pd22BIvr.js +1 -0
- package/build/assets/{task-list-tab-04GNQuii.js → task-list-tab-3Jg8ywch.js} +1 -1
- package/build/assets/{terminal-Cj0iHIW7.js → terminal-onXx0_Qz.js} +1 -1
- package/build/assets/toggle-switch-lwQtxDcm.js +1 -0
- package/build/assets/trash-2-ZhKuTLiz.js +1 -0
- package/build/assets/trash-B6OIe4yX.js +1 -0
- package/build/assets/triangle-alert-BajLPpQg.js +1 -0
- package/build/assets/{typography-SgFy466J.js → typography-HLLg_FAn.js} +1 -1
- package/build/assets/usage-tab-Cm-9j3UK.js +1 -0
- package/build/assets/use-acp-credential-form-BARcvjYE.js +1 -0
- package/build/assets/use-activate-agent-profile-BLKML6vQ.js +1 -0
- package/build/assets/use-agent-profiles-1P91KSXz.js +1 -0
- package/build/assets/{use-automation-health-BxXdzZMP.js → use-automation-health-BZkQNEA8.js} +1 -1
- package/build/assets/use-automation-permissions-B_RpvL-s.js +1 -0
- package/build/assets/{use-automations-zYb0dUny.js → use-automations-Cg0PDIZr.js} +1 -1
- package/build/assets/{use-can-manage-org-profiles-BWMahtUh.js → use-can-manage-org-profiles-BbN6KfDr.js} +1 -1
- package/build/assets/use-canvas-extensions-CFUpHat6.js +1 -0
- package/build/assets/{use-cloud-current-user-id-CPHMDG-C.js → use-cloud-current-user-id-Dk0rjr63.js} +1 -1
- package/build/assets/use-config-DpafU_QP.js +1 -0
- package/build/assets/use-create-conversation-1YgmAHt-.js +1 -0
- package/build/assets/use-create-secret-D8p9ybQj.js +1 -0
- package/build/assets/{use-get-secrets-BT4ihRwj.js → use-get-secrets-CQ4b0qK8.js} +1 -1
- package/build/assets/use-is-authed-BRPjCRKM.js +1 -0
- package/build/assets/{use-launch-skill-in-chat-BYjYihBP.js → use-launch-skill-in-chat-DeYa1tFM.js} +1 -1
- package/build/assets/use-llm-configured-DGm8FiRR.js +1 -0
- package/build/assets/use-llm-profiles-BTTtpW4z.js +1 -0
- package/build/assets/use-manifest-capabilities-AOWGcu0j.js +1 -0
- package/build/assets/use-onboarding-completion-CoINurkm.js +1 -0
- package/build/assets/use-pinned-home-route-D6krwXjy.js +1 -0
- package/build/assets/use-plugins-marketplace-mLsIDhBv.js +1 -0
- package/build/assets/use-save-agent-profile-CxyO9YG-.js +1 -0
- package/build/assets/{use-save-settings-CUZW6yXP.js → use-save-settings-3U5K9-8x.js} +1 -1
- package/build/assets/use-settings-Dn00UISA.js +1 -0
- package/build/assets/use-settings-nav-items-vrjxTqcu.js +16 -0
- package/build/assets/use-tracking-B9prBsrq.js +3 -0
- package/build/assets/{use-user-conversation-DT0_QCnL.js → use-user-conversation-ZWlXtbZb.js} +1 -1
- package/build/assets/{useInfiniteQuery-CgeUQPfs.js → useInfiniteQuery-BzrRqjLg.js} +1 -1
- package/build/assets/{useMutation-DFnzkf6f.js → useMutation-CJuK90oc.js} +1 -1
- package/build/assets/{useQueries-BhbrGEf1.js → useQueries-CykmpT-a.js} +1 -1
- package/build/assets/{useQuery-BXWbZBZl.js → useQuery-S6j94er1.js} +1 -1
- package/build/assets/utils-BOco8mxR.js +1 -0
- package/build/assets/{vendor~conversation-panel~conversation-CTvDDiXg.js → vendor~conversation-panel~conversation-4eJ0tml3.js} +1 -1
- package/build/assets/{vendor~entry.client-BFE7Llz9.js → vendor~entry.client-CoCfUXUF.js} +1 -1
- package/build/assets/{vendor~entry.client-BaKt_PIp.js → vendor~entry.client-DA2izTjq.js} +1 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js +2 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BfkNGovw.js +185 -0
- package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-DnDoaYNi.js} +1 -1
- package/build/assets/{vendor~index-home~home~conversation-panel~conversation-BTyukeM-.js → vendor~index-home~home~conversation-panel~conversation-CSFLzmTN.js} +1 -1
- package/build/assets/vendor~root-layout-n8XCEXG8.js +1 -0
- package/build/assets/{vendor~root-layout~conversation-panel~conversation-BYAWJwQX.js → vendor~root-layout~conversation-panel~conversation-3Idg1_U3.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-CHaLEBVR.js → vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-DkPlXWl9.js} +1 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation-DgQ564nC.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-CxhwKuAd.js +1 -0
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-Dtu7BpYk.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js} +2 -2
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iyia17eu-CV850oio.js +1 -0
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-DonTKfQD.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BPjI-atc.js} +125 -15
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-BgxDvUcf.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C7HiY4Ae.js} +42 -3
- package/build/assets/{verification-settings-Bj6bo097.js → verification-settings-u2POabjH.js} +1 -1
- package/build/assets/{wrench-hi7Q13dF.js → wrench-CkgI4rxA.js} +1 -1
- package/build/assets/x-By6qCmtY.js +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +94 -25
- package/build/locales/ca/openhands.json +94 -25
- package/build/locales/de/openhands.json +94 -25
- package/build/locales/en/openhands.json +94 -25
- package/build/locales/es/openhands.json +94 -25
- package/build/locales/fr/openhands.json +94 -25
- package/build/locales/it/openhands.json +94 -25
- package/build/locales/ja/openhands.json +94 -25
- package/build/locales/ko-KR/openhands.json +94 -25
- package/build/locales/no/openhands.json +94 -25
- package/build/locales/pt/openhands.json +94 -25
- package/build/locales/tr/openhands.json +94 -25
- package/build/locales/uk/openhands.json +94 -25
- package/build/locales/zh-CN/openhands.json +94 -25
- package/build/locales/zh-TW/openhands.json +94 -25
- package/config/defaults.json +9 -5
- package/dist/api/agent-profiles-service/profile-field-support.d.ts +26 -0
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +72 -12
- package/dist/api/agent-server-adapter.js +249 -145
- 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.d.ts +21 -0
- package/dist/api/agent-server-compatibility.js +52 -38
- package/dist/api/agent-server-compatibility.js.map +1 -1
- package/dist/api/agent-server-config.cjs +1 -1
- package/dist/api/agent-server-config.cjs.map +1 -1
- package/dist/api/agent-server-config.d.ts +32 -0
- package/dist/api/agent-server-config.js +21 -5
- package/dist/api/agent-server-config.js.map +1 -1
- package/dist/api/automation-service/automation-service.api.cjs +1 -1
- package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
- package/dist/api/automation-service/automation-service.api.d.ts +2 -2
- package/dist/api/automation-service/automation-service.api.js +7 -7
- package/dist/api/automation-service/automation-service.api.js.map +1 -1
- package/dist/api/canvas-extensions-service.cjs +1 -0
- package/dist/api/canvas-extensions-service.d.ts +22 -0
- package/dist/api/canvas-extensions-service.js +4 -0
- package/dist/api/cloud/conversation-service.api.cjs +1 -1
- package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
- package/dist/api/cloud/conversation-service.api.d.ts +6 -0
- package/dist/api/cloud/conversation-service.api.js +14 -6
- package/dist/api/cloud/conversation-service.api.js.map +1 -1
- package/dist/api/cloud/provider-connections-service.api.cjs +2 -0
- package/dist/api/cloud/provider-connections-service.api.cjs.map +1 -0
- package/dist/api/cloud/provider-connections-service.api.d.ts +5 -0
- package/dist/api/cloud/provider-connections-service.api.js +50 -0
- package/dist/api/cloud/provider-connections-service.api.js.map +1 -0
- package/dist/api/cloud/skills-service.api.cjs +1 -1
- package/dist/api/cloud/skills-service.api.cjs.map +1 -1
- package/dist/api/cloud/skills-service.api.d.ts +10 -0
- package/dist/api/cloud/skills-service.api.js +11 -1
- package/dist/api/cloud/skills-service.api.js.map +1 -1
- package/dist/api/conversation-file-upload.api.cjs +1 -1
- package/dist/api/conversation-file-upload.api.js +10 -10
- package/dist/api/conversation-metadata-store.cjs +1 -1
- package/dist/api/conversation-metadata-store.cjs.map +1 -1
- package/dist/api/conversation-metadata-store.d.ts +24 -0
- package/dist/api/conversation-metadata-store.js +10 -2
- 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 +31 -0
- package/dist/api/conversation-service/agent-server-conversation-service.api.js +188 -128
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/event-service/event-service.api.cjs +1 -1
- package/dist/api/event-service/event-service.api.js +12 -12
- package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
- package/dist/api/git-service/agent-server-git-service.api.js +8 -8
- package/dist/api/hooks-service.cjs +2 -0
- package/dist/api/hooks-service.cjs.map +1 -0
- package/dist/api/hooks-service.d.ts +13 -0
- package/dist/api/hooks-service.js +20 -0
- package/dist/api/hooks-service.js.map +1 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.cjs +1 -1
- package/dist/api/provider-connections-service/provider-connections-service.api.cjs.map +1 -1
- package/dist/api/provider-connections-service/provider-connections-service.api.js +25 -16
- package/dist/api/provider-connections-service/provider-connections-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.js +8 -8
- 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.d.ts +5 -2
- package/dist/api/settings-service/settings-service.api.js +20 -11
- 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.d.ts +7 -0
- package/dist/api/skills-service.js +11 -8
- package/dist/api/skills-service.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/critic-result-display.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/critic-result-display.js +5 -5
- package/dist/components/conversation-events/chat/event-message-components/event-group.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/event-group.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/event-group.js +40 -36
- package/dist/components/conversation-events/chat/event-message-components/event-group.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/finish-event-message.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/finish-event-message.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/finish-event-message.js +2 -1
- package/dist/components/conversation-events/chat/event-message-components/finish-event-message.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.d.ts +1 -1
- package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.js +28 -28
- package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/thought-event-message.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/thought-event-message.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/thought-event-message.js +2 -1
- package/dist/components/conversation-events/chat/event-message-components/thought-event-message.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.d.ts +1 -1
- package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js +37 -37
- 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 +79 -70
- package/dist/components/conversation-events/chat/event-message.js.map +1 -1
- package/dist/components/conversation-events/chat/messages.cjs +1 -1
- package/dist/components/conversation-events/chat/messages.cjs.map +1 -1
- package/dist/components/conversation-events/chat/messages.js +28 -27
- package/dist/components/conversation-events/chat/messages.js.map +1 -1
- package/dist/components/features/automations/automation-card.cjs +1 -1
- package/dist/components/features/automations/automation-card.cjs.map +1 -1
- package/dist/components/features/automations/automation-card.js +118 -102
- package/dist/components/features/automations/automation-card.js.map +1 -1
- package/dist/components/features/automations/automation-list-row.cjs +1 -1
- package/dist/components/features/automations/automation-list-row.cjs.map +1 -1
- package/dist/components/features/automations/automation-list-row.js +88 -77
- package/dist/components/features/automations/automation-list-row.js.map +1 -1
- package/dist/components/features/automations/detail/detail-header.d.ts +3 -1
- package/dist/components/features/automations/detail/run-phase.cjs +2 -0
- package/dist/components/features/automations/detail/run-phase.cjs.map +1 -0
- package/dist/components/features/automations/detail/run-phase.d.ts +89 -0
- package/dist/components/features/automations/detail/run-phase.js +72 -0
- package/dist/components/features/automations/detail/run-phase.js.map +1 -0
- package/dist/components/features/automations/detail/run-status-badge.cjs +1 -1
- package/dist/components/features/automations/detail/run-status-badge.cjs.map +1 -1
- package/dist/components/features/automations/detail/run-status-badge.d.ts +2 -2
- package/dist/components/features/automations/detail/run-status-badge.js +82 -53
- package/dist/components/features/automations/detail/run-status-badge.js.map +1 -1
- package/dist/components/features/automations/kebab-menu.cjs +1 -1
- package/dist/components/features/automations/kebab-menu.cjs.map +1 -1
- package/dist/components/features/automations/kebab-menu.js +9 -5
- package/dist/components/features/automations/kebab-menu.js.map +1 -1
- package/dist/components/features/automations/recommended-automations-launcher.cjs +1 -1
- package/dist/components/features/automations/recommended-automations-launcher.cjs.map +1 -1
- package/dist/components/features/automations/recommended-automations-launcher.js +12 -12
- package/dist/components/features/automations/recommended-automations-launcher.js.map +1 -1
- package/dist/components/features/automations/recommended-automations-section.cjs +1 -1
- package/dist/components/features/automations/recommended-automations-section.js +9 -9
- 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.js +5 -11
- package/dist/components/features/backends/backend-form-modal.js.map +1 -1
- package/dist/components/features/backends/backend-selector.cjs +1 -1
- package/dist/components/features/backends/backend-selector.cjs.map +1 -1
- package/dist/components/features/backends/backend-selector.js +133 -122
- package/dist/components/features/backends/backend-selector.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 +29 -29
- package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
- package/dist/components/features/canvas-extensions/add-canvas-extension-modal.d.ts +6 -0
- package/dist/components/features/canvas-extensions/canvas-extension-card.d.ts +9 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.cjs +2 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.cjs.map +1 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.d.ts +23 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.js +19 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.js.map +1 -0
- package/dist/components/features/chat/change-agent-button.cjs +1 -1
- package/dist/components/features/chat/change-agent-button.js +4 -4
- 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 +107 -104
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/chat-markdown-path-code.cjs +3 -0
- package/dist/components/features/chat/chat-markdown-path-code.cjs.map +1 -0
- package/dist/components/features/chat/chat-markdown-path-code.d.ts +27 -0
- package/dist/components/features/chat/chat-markdown-path-code.js +72 -0
- package/dist/components/features/chat/chat-markdown-path-code.js.map +1 -0
- package/dist/components/features/chat/chat-message.cjs +1 -1
- package/dist/components/features/chat/chat-message.cjs.map +1 -1
- package/dist/components/features/chat/chat-message.d.ts +2 -1
- package/dist/components/features/chat/chat-message.js +88 -79
- package/dist/components/features/chat/chat-message.js.map +1 -1
- package/dist/components/features/chat/components/context-window-meter.cjs +1 -1
- package/dist/components/features/chat/components/context-window-meter.js +4 -4
- package/dist/components/features/chat/confirmation-mode-enabled.cjs +1 -1
- package/dist/components/features/chat/confirmation-mode-enabled.js +4 -4
- package/dist/components/features/chat/generic-event-message.cjs +1 -1
- package/dist/components/features/chat/generic-event-message.cjs.map +1 -1
- package/dist/components/features/chat/generic-event-message.d.ts +2 -1
- package/dist/components/features/chat/generic-event-message.js +41 -22
- package/dist/components/features/chat/generic-event-message.js.map +1 -1
- package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
- package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
- package/dist/components/features/chat/interactive-chat-box.js +20 -19
- package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
- package/dist/components/features/chat/path-component.cjs +1 -1
- package/dist/components/features/chat/path-component.cjs.map +1 -1
- package/dist/components/features/chat/path-component.d.ts +8 -2
- package/dist/components/features/chat/path-component.js +33 -21
- package/dist/components/features/chat/path-component.js.map +1 -1
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.cjs +1 -1
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.cjs.map +1 -1
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.js +38 -43
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.js.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.cjs +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.cjs.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.d.ts +8 -5
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.js +22 -16
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.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.d.ts +4 -0
- package/dist/components/features/chat/user-message-body.js +30 -24
- package/dist/components/features/chat/user-message-body.js.map +1 -1
- package/dist/components/features/conversation/conversation-overview-git-section.cjs +1 -1
- package/dist/components/features/conversation/conversation-overview-git-section.js +4 -4
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs +1 -1
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-overview-skills-panel.js +63 -81
- package/dist/components/features/conversation/conversation-overview-skills-panel.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +77 -78
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +96 -96
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.d.ts +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js +3 -3
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js.map +1 -1
- package/dist/components/features/conversation-panel/advanced-conversation-options-modal.cjs +2 -0
- package/dist/components/features/conversation-panel/advanced-conversation-options-modal.cjs.map +1 -0
- package/dist/components/features/conversation-panel/advanced-conversation-options-modal.d.ts +21 -0
- package/dist/components/features/conversation-panel/advanced-conversation-options-modal.js +239 -0
- package/dist/components/features/conversation-panel/advanced-conversation-options-modal.js.map +1 -0
- package/dist/components/features/conversation-panel/conversation-active-tag-filters.cjs +2 -0
- package/dist/components/features/conversation-panel/conversation-active-tag-filters.cjs.map +1 -0
- package/dist/components/features/conversation-panel/conversation-active-tag-filters.d.ts +28 -0
- package/dist/components/features/conversation-panel/conversation-active-tag-filters.js +69 -0
- package/dist/components/features/conversation-panel/conversation-active-tag-filters.js.map +1 -0
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.d.ts +2 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js +19 -18
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.d.ts +2 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.js +91 -80
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.js +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card.d.ts +7 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card.js +87 -81
- package/dist/components/features/conversation-panel/conversation-card/conversation-card.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.d.ts +2 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.js +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.d.ts +2 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.js +2 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-layouts-menu.cjs +2 -0
- package/dist/components/features/conversation-panel/conversation-layouts-menu.cjs.map +1 -0
- package/dist/components/features/conversation-panel/conversation-layouts-menu.d.ts +29 -0
- package/dist/components/features/conversation-panel/conversation-layouts-menu.js +177 -0
- package/dist/components/features/conversation-panel/conversation-layouts-menu.js.map +1 -0
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.d.ts +37 -0
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js +85 -45
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.js +296 -290
- package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
- package/dist/components/features/conversation-panel/edit-conversation-tags-modal.cjs +2 -0
- package/dist/components/features/conversation-panel/edit-conversation-tags-modal.cjs.map +1 -0
- package/dist/components/features/conversation-panel/edit-conversation-tags-modal.d.ts +22 -0
- package/dist/components/features/conversation-panel/edit-conversation-tags-modal.js +153 -0
- package/dist/components/features/conversation-panel/edit-conversation-tags-modal.js.map +1 -0
- package/dist/components/features/conversation-panel/hide-older-conversations-row.cjs +2 -0
- package/dist/components/features/conversation-panel/hide-older-conversations-row.cjs.map +1 -0
- package/dist/components/features/conversation-panel/hide-older-conversations-row.d.ts +6 -0
- package/dist/components/features/conversation-panel/hide-older-conversations-row.js +65 -0
- package/dist/components/features/conversation-panel/hide-older-conversations-row.js.map +1 -0
- package/dist/components/features/conversation-panel/menu-row.cjs +1 -1
- package/dist/components/features/conversation-panel/menu-row.cjs.map +1 -1
- package/dist/components/features/conversation-panel/menu-row.d.ts +11 -1
- package/dist/components/features/conversation-panel/menu-row.js +27 -16
- package/dist/components/features/conversation-panel/menu-row.js.map +1 -1
- package/dist/components/features/conversation-panel/skills-modal.cjs +1 -1
- package/dist/components/features/conversation-panel/skills-modal.cjs.map +1 -1
- package/dist/components/features/conversation-panel/skills-modal.js +29 -28
- package/dist/components/features/conversation-panel/skills-modal.js.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
- package/dist/components/features/files-tab/file-content-viewer.js +5 -5
- package/dist/components/features/home/featured-automations/automation-health-indicator.cjs +1 -1
- package/dist/components/features/home/featured-automations/automation-health-indicator.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/automation-health-indicator.js +1 -1
- package/dist/components/features/home/featured-automations/automation-health-indicator.js.map +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.d.ts +4 -3
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js +22 -25
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js.map +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.d.ts +1 -1
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js +15 -15
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js.map +1 -1
- package/dist/components/features/home/featured-automations/automation-run-health.cjs +1 -1
- package/dist/components/features/home/featured-automations/automation-run-health.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/automation-run-health.d.ts +5 -3
- package/dist/components/features/home/featured-automations/automation-run-health.js +30 -23
- package/dist/components/features/home/featured-automations/automation-run-health.js.map +1 -1
- package/dist/components/features/home/featured-automations/home-automation-activity.d.ts +3 -2
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.d.ts +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +59 -37
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -1
- package/dist/components/features/manifest/manifest-form-field.d.ts +3 -1
- package/dist/components/features/manifest/manifest-review-step.d.ts +3 -1
- package/dist/components/features/onboarding/onboarding-host.d.ts +3 -4
- package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +5 -9
- package/dist/components/features/settings/acp-auth-status-banner.d.ts +23 -6
- package/dist/components/features/settings/cloud-settings-link.cjs +1 -1
- package/dist/components/features/settings/cloud-settings-link.cjs.map +1 -1
- package/dist/components/features/settings/cloud-settings-link.js +5 -3
- package/dist/components/features/settings/cloud-settings-link.js.map +1 -1
- package/dist/components/features/settings/integrations-settings-link.cjs +1 -1
- package/dist/components/features/settings/integrations-settings-link.cjs.map +1 -1
- package/dist/components/features/settings/integrations-settings-link.d.ts +3 -1
- package/dist/components/features/settings/integrations-settings-link.js +20 -17
- package/dist/components/features/settings/integrations-settings-link.js.map +1 -1
- 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 +2 -1
- package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +2 -2
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.js +3 -0
- package/dist/components/features/settings/sdk-settings/field-help.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.cjs.map +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.d.ts +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.js +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.js.map +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs.map +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.d.ts +8 -7
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js +172 -142
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js.map +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.cjs +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.cjs.map +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.js +38 -25
- package/dist/components/features/settings/secrets-settings/secret-form.js.map +1 -1
- 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-nav-link.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-nav-link.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-nav-link.d.ts +10 -1
- package/dist/components/features/sidebar/sidebar-nav-link.js +54 -36
- package/dist/components/features/sidebar/sidebar-nav-link.js.map +1 -1
- 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 +3 -1
- package/dist/components/features/sidebar/sidebar-rail-body.js +98 -58
- 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 +44 -43
- package/dist/components/features/sidebar/sidebar.js.map +1 -1
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs +1 -1
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js +3 -3
- package/dist/components/features/skills/build-skill-pills.cjs +1 -1
- package/dist/components/features/skills/build-skill-pills.cjs.map +1 -1
- package/dist/components/features/skills/build-skill-pills.js +60 -52
- package/dist/components/features/skills/build-skill-pills.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 +54 -43
- package/dist/components/features/skills/extensions-navigation.js.map +1 -1
- package/dist/components/features/skills/skill-filter.cjs +1 -1
- package/dist/components/features/skills/skill-filter.cjs.map +1 -1
- package/dist/components/features/skills/skill-filter.d.ts +8 -3
- package/dist/components/features/skills/skill-filter.js +69 -52
- package/dist/components/features/skills/skill-filter.js.map +1 -1
- package/dist/components/shared/buttons/styled-tooltip.cjs +1 -1
- package/dist/components/shared/buttons/styled-tooltip.cjs.map +1 -1
- package/dist/components/shared/buttons/styled-tooltip.d.ts +2 -1
- package/dist/components/shared/buttons/styled-tooltip.js +2 -1
- package/dist/components/shared/buttons/styled-tooltip.js.map +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.d.ts +5 -1
- package/dist/components/shared/filters/enum-filter-dropdown.js +14 -14
- package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
- package/dist/components/shared/modals/confirmation-modal.cjs +1 -1
- package/dist/components/shared/modals/confirmation-modal.cjs.map +1 -1
- package/dist/components/shared/modals/confirmation-modal.d.ts +2 -1
- package/dist/components/shared/modals/confirmation-modal.js +8 -8
- package/dist/components/shared/modals/confirmation-modal.js.map +1 -1
- package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
- package/dist/components/shared/modals/settings/model-selector.js +27 -27
- package/dist/components/shared/modals/settings/settings-form.cjs +1 -1
- package/dist/components/shared/modals/settings/settings-form.js +8 -8
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +9 -5
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants/settings-nav.d.ts +8 -0
- package/dist/contexts/conversation-websocket-context.cjs +3 -3
- package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
- package/dist/contexts/conversation-websocket-context.d.ts +5 -0
- package/dist/contexts/conversation-websocket-context.js +194 -198
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/contexts/websocket-provider-wrapper.cjs +1 -1
- package/dist/contexts/websocket-provider-wrapper.cjs.map +1 -1
- package/dist/contexts/websocket-provider-wrapper.js +31 -15
- package/dist/contexts/websocket-provider-wrapper.js.map +1 -1
- package/dist/extensions/canvas-extension-module-loader.d.ts +11 -0
- package/dist/hooks/chat/record-model-switch-message.cjs +1 -1
- package/dist/hooks/chat/record-model-switch-message.cjs.map +1 -1
- package/dist/hooks/chat/record-model-switch-message.d.ts +31 -0
- package/dist/hooks/chat/record-model-switch-message.js +25 -12
- package/dist/hooks/chat/record-model-switch-message.js.map +1 -1
- package/dist/hooks/chat/use-plan-mode-interceptor.cjs +2 -0
- package/dist/hooks/chat/use-plan-mode-interceptor.cjs.map +1 -0
- package/dist/hooks/chat/use-plan-mode-interceptor.d.ts +16 -0
- package/dist/hooks/chat/use-plan-mode-interceptor.js +43 -0
- package/dist/hooks/chat/use-plan-mode-interceptor.js.map +1 -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.js +5 -1
- package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
- package/dist/hooks/mutation/use-manage-canvas-extensions.d.ts +12 -0
- package/dist/hooks/mutation/use-read-conversation-file.cjs +1 -1
- package/dist/hooks/mutation/use-read-conversation-file.cjs.map +1 -1
- package/dist/hooks/mutation/use-read-conversation-file.js +11 -4
- package/dist/hooks/mutation/use-read-conversation-file.js.map +1 -1
- package/dist/hooks/mutation/use-save-settings.cjs +1 -1
- package/dist/hooks/mutation/use-save-settings.js +3 -3
- 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.js +13 -25
- package/dist/hooks/mutation/use-switch-llm-profile.js.map +1 -1
- package/dist/hooks/mutation/use-update-conversation-tags.cjs +2 -0
- package/dist/hooks/mutation/use-update-conversation-tags.cjs.map +1 -0
- package/dist/hooks/mutation/use-update-conversation-tags.d.ts +8 -0
- package/dist/hooks/mutation/use-update-conversation-tags.js +45 -0
- package/dist/hooks/mutation/use-update-conversation-tags.js.map +1 -0
- package/dist/hooks/query/concurrency-limiter.cjs +2 -0
- package/dist/hooks/query/concurrency-limiter.cjs.map +1 -0
- package/dist/hooks/query/concurrency-limiter.d.ts +22 -0
- package/dist/hooks/query/concurrency-limiter.js +29 -0
- package/dist/hooks/query/concurrency-limiter.js.map +1 -0
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +10 -0
- package/dist/hooks/query/query-keys.js +2 -2
- 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.js +4 -4
- package/dist/hooks/query/use-automation-sdk-version.cjs +1 -1
- package/dist/hooks/query/use-automation-sdk-version.cjs.map +1 -1
- package/dist/hooks/query/use-automation-sdk-version.d.ts +0 -1
- package/dist/hooks/query/use-automation-sdk-version.js +30 -55
- package/dist/hooks/query/use-automation-sdk-version.js.map +1 -1
- package/dist/hooks/query/use-automations.cjs.map +1 -1
- package/dist/hooks/query/use-automations.js.map +1 -1
- package/dist/hooks/query/use-backends-health.cjs +1 -1
- package/dist/hooks/query/use-backends-health.cjs.map +1 -1
- package/dist/hooks/query/use-backends-health.d.ts +1 -1
- package/dist/hooks/query/use-backends-health.js +50 -64
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-canvas-extensions.cjs +1 -0
- package/dist/hooks/query/use-canvas-extensions.d.ts +5 -0
- package/dist/hooks/query/use-canvas-extensions.js +3 -0
- package/dist/hooks/query/use-commit-changes.cjs +1 -1
- package/dist/hooks/query/use-commit-changes.js +4 -4
- package/dist/hooks/query/use-conversation-skills.cjs +1 -1
- package/dist/hooks/query/use-conversation-skills.cjs.map +1 -1
- package/dist/hooks/query/use-conversation-skills.d.ts +14 -5
- package/dist/hooks/query/use-conversation-skills.js +20 -4
- package/dist/hooks/query/use-conversation-skills.js.map +1 -1
- package/dist/hooks/query/use-latest-automation-runs.cjs +1 -1
- package/dist/hooks/query/use-latest-automation-runs.js +1 -0
- package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.js +19 -16
- package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
- package/dist/hooks/query/use-provider-connections.cjs +1 -1
- package/dist/hooks/query/use-provider-connections.cjs.map +1 -1
- package/dist/hooks/query/use-provider-connections.d.ts +6 -3
- package/dist/hooks/query/use-provider-connections.js +7 -3
- package/dist/hooks/query/use-provider-connections.js.map +1 -1
- package/dist/hooks/query/use-search-providers.cjs +1 -1
- package/dist/hooks/query/use-search-providers.cjs.map +1 -1
- package/dist/hooks/query/use-search-providers.js +17 -10
- package/dist/hooks/query/use-search-providers.js.map +1 -1
- package/dist/hooks/query/use-sub-conversations.cjs +1 -1
- package/dist/hooks/query/use-sub-conversations.cjs.map +1 -1
- package/dist/hooks/query/use-sub-conversations.js +16 -16
- package/dist/hooks/query/use-sub-conversations.js.map +1 -1
- package/dist/hooks/query/use-unified-get-git-changes.cjs +1 -1
- package/dist/hooks/query/use-unified-get-git-changes.js +4 -4
- package/dist/hooks/query/use-unified-git-commits.cjs +1 -1
- package/dist/hooks/query/use-unified-git-commits.js +4 -4
- package/dist/hooks/query/use-unified-git-diff.cjs +1 -1
- package/dist/hooks/query/use-unified-git-diff.js +4 -4
- package/dist/hooks/query/use-unified-vscode-url.cjs +1 -1
- package/dist/hooks/query/use-unified-vscode-url.cjs.map +1 -1
- package/dist/hooks/query/use-unified-vscode-url.d.ts +1 -0
- package/dist/hooks/query/use-unified-vscode-url.js +40 -26
- package/dist/hooks/query/use-unified-vscode-url.js.map +1 -1
- package/dist/hooks/query/use-workspace-file-content.cjs +1 -1
- package/dist/hooks/query/use-workspace-file-content.js +5 -5
- package/dist/hooks/query/use-workspace-files.cjs +1 -1
- package/dist/hooks/query/use-workspace-files.js +6 -6
- package/dist/hooks/use-acp-credential-form.d.ts +6 -0
- package/dist/hooks/use-acp-model-context.cjs +1 -1
- package/dist/hooks/use-acp-model-context.js +3 -3
- package/dist/hooks/use-agent-state.cjs +1 -1
- package/dist/hooks/use-agent-state.cjs.map +1 -1
- package/dist/hooks/use-agent-state.d.ts +17 -1
- package/dist/hooks/use-agent-state.js +19 -9
- package/dist/hooks/use-agent-state.js.map +1 -1
- package/dist/hooks/use-automation-permissions.cjs +2 -0
- package/dist/hooks/use-automation-permissions.cjs.map +1 -0
- package/dist/hooks/use-automation-permissions.d.ts +43 -0
- package/dist/hooks/use-automation-permissions.js +52 -0
- package/dist/hooks/use-automation-permissions.js.map +1 -0
- package/dist/hooks/use-chat-input-model-state.cjs +1 -1
- package/dist/hooks/use-chat-input-model-state.js +3 -3
- package/dist/hooks/use-conversation-overview-git-diff-stats.cjs +1 -1
- package/dist/hooks/use-conversation-overview-git-diff-stats.js +4 -4
- 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.d.ts +3 -1
- package/dist/hooks/use-handle-plan-click.js +85 -26
- package/dist/hooks/use-handle-plan-click.js.map +1 -1
- package/dist/hooks/use-home-automation-actions.cjs +1 -1
- package/dist/hooks/use-home-automation-actions.cjs.map +1 -1
- package/dist/hooks/use-home-automation-actions.js +1 -0
- package/dist/hooks/use-home-automation-actions.js.map +1 -1
- package/dist/hooks/use-llm-configured.cjs +1 -1
- package/dist/hooks/use-llm-configured.js +3 -3
- package/dist/hooks/use-manifest-preflight.d.ts +1 -1
- package/dist/hooks/use-pinned-home-route.cjs +2 -0
- package/dist/hooks/use-pinned-home-route.cjs.map +1 -0
- package/dist/hooks/use-pinned-home-route.d.ts +33 -0
- package/dist/hooks/use-pinned-home-route.js +34 -0
- package/dist/hooks/use-pinned-home-route.js.map +1 -0
- package/dist/hooks/use-skill-enablement.cjs +2 -0
- package/dist/hooks/use-skill-enablement.cjs.map +1 -0
- package/dist/hooks/use-skill-enablement.d.ts +14 -0
- package/dist/hooks/use-skill-enablement.js +80 -0
- package/dist/hooks/use-skill-enablement.js.map +1 -0
- package/dist/hooks/use-unified-websocket-status.cjs +1 -1
- package/dist/hooks/use-unified-websocket-status.cjs.map +1 -1
- package/dist/hooks/use-unified-websocket-status.d.ts +7 -0
- package/dist/hooks/use-unified-websocket-status.js +5 -1
- package/dist/hooks/use-unified-websocket-status.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 +83 -14
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +3 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +1575 -402
- package/dist/i18n/translation.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -14
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +1 -0
- package/dist/locales/ar/openhands.json +94 -25
- package/dist/locales/ca/openhands.json +94 -25
- package/dist/locales/de/openhands.json +94 -25
- package/dist/locales/en/openhands.json +94 -25
- package/dist/locales/es/openhands.json +94 -25
- package/dist/locales/fr/openhands.json +94 -25
- package/dist/locales/it/openhands.json +94 -25
- package/dist/locales/ja/openhands.json +94 -25
- package/dist/locales/ko-KR/openhands.json +94 -25
- package/dist/locales/no/openhands.json +94 -25
- package/dist/locales/pt/openhands.json +94 -25
- package/dist/locales/tr/openhands.json +94 -25
- package/dist/locales/uk/openhands.json +94 -25
- package/dist/locales/zh-CN/openhands.json +94 -25
- package/dist/locales/zh-TW/openhands.json +94 -25
- package/dist/manifests/automation-insights.cjs.map +1 -1
- package/dist/manifests/automation-insights.d.ts +10 -2
- package/dist/manifests/automation-insights.js.map +1 -1
- package/dist/manifests/automation-interface.cjs +1 -1
- package/dist/manifests/automation-interface.cjs.map +1 -1
- package/dist/manifests/automation-interface.d.ts +6 -0
- package/dist/manifests/automation-interface.js +11 -8
- package/dist/manifests/automation-interface.js.map +1 -1
- package/dist/manifests/automation-setup.cjs +1 -1
- package/dist/manifests/automation-setup.cjs.map +1 -1
- package/dist/manifests/automation-setup.d.ts +9 -16
- package/dist/manifests/automation-setup.js +17 -7
- package/dist/manifests/automation-setup.js.map +1 -1
- package/dist/manifests/manifest-actions.d.ts +1 -1
- package/dist/manifests/manifest-capabilities.d.ts +3 -1
- package/dist/manifests/manifest-local-validation.cjs +2 -0
- package/dist/manifests/manifest-local-validation.cjs.map +1 -0
- package/dist/manifests/manifest-local-validation.d.ts +15 -11
- package/dist/manifests/manifest-local-validation.js +8 -0
- package/dist/manifests/manifest-local-validation.js.map +1 -0
- package/dist/manifests/manifest-template.cjs +2 -0
- package/dist/manifests/manifest-template.cjs.map +1 -0
- package/dist/manifests/manifest-template.d.ts +4 -4
- package/dist/manifests/manifest-template.js +12 -0
- package/dist/manifests/manifest-template.js.map +1 -0
- package/dist/manifests/manifest-validation.cjs +1 -1
- package/dist/manifests/manifest-validation.cjs.map +1 -1
- package/dist/manifests/manifest-validation.js +106 -28
- package/dist/manifests/manifest-validation.js.map +1 -1
- package/dist/manifests/types.cjs.map +1 -1
- package/dist/manifests/types.d.ts +39 -4
- package/dist/manifests/types.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +45 -4
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.cjs +8 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.js +221 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +2 -2
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +6 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +2 -2
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +6 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs +30 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js +65 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +28 -14
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.js +2 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +2 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +59 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +1 -0
- 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 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.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 +74 -72
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +42 -3
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +22 -3
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- 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 +1 -1
- 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 +8 -7
- 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 +2 -2
- package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.cjs +1 -1
- package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.js +21 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shrink.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shrink.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shrink.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shrink.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js +43 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/tags.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/tags.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/tags.js +22 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/tags.js.map +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +5 -5
- package/dist/package.js.map +1 -1
- package/dist/routes/agent-settings.d.ts +12 -0
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +11 -11
- package/dist/routes/files-tab.cjs +1 -1
- package/dist/routes/files-tab.cjs.map +1 -1
- package/dist/routes/files-tab.js +14 -14
- package/dist/routes/files-tab.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.d.ts +3 -1
- package/dist/routes/llm-settings.js +100 -91
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/routes/planner-tab.cjs +1 -1
- package/dist/routes/planner-tab.cjs.map +1 -1
- package/dist/routes/planner-tab.js +44 -28
- package/dist/routes/planner-tab.js.map +1 -1
- package/dist/services/canvas-ui.cjs +1 -1
- package/dist/services/canvas-ui.cjs.map +1 -1
- package/dist/services/canvas-ui.d.ts +5 -0
- package/dist/services/canvas-ui.js +24 -10
- package/dist/services/canvas-ui.js.map +1 -1
- package/dist/services/settings.cjs +1 -1
- package/dist/services/settings.cjs.map +1 -1
- package/dist/services/settings.js +3 -2
- package/dist/services/settings.js.map +1 -1
- package/dist/services/telemetry.cjs +1 -1
- package/dist/services/telemetry.cjs.map +1 -1
- package/dist/services/telemetry.d.ts +5 -0
- package/dist/services/telemetry.js +122 -115
- package/dist/services/telemetry.js.map +1 -1
- 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.d.ts +32 -5
- package/dist/stores/conversation-panel-preferences-store.js +29 -12
- package/dist/stores/conversation-panel-preferences-store.js.map +1 -1
- package/dist/stores/conversation-state-store.cjs +1 -1
- package/dist/stores/conversation-state-store.cjs.map +1 -1
- package/dist/stores/conversation-state-store.d.ts +9 -3
- package/dist/stores/conversation-state-store.js +6 -3
- package/dist/stores/conversation-state-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 +2 -0
- package/dist/stores/conversation-store.js +3 -0
- package/dist/stores/conversation-store.js.map +1 -1
- package/dist/stores/model-store.cjs +1 -1
- package/dist/stores/model-store.cjs.map +1 -1
- package/dist/stores/model-store.d.ts +7 -0
- package/dist/stores/model-store.js +4 -0
- package/dist/stores/model-store.js.map +1 -1
- package/dist/types/automation.cjs.map +1 -1
- package/dist/types/automation.d.ts +66 -1
- package/dist/types/automation.js.map +1 -1
- package/dist/types/canvas-extension.cjs +2 -0
- package/dist/types/canvas-extension.cjs.map +1 -0
- package/dist/types/canvas-extension.d.ts +77 -0
- package/dist/types/canvas-extension.js +6 -0
- package/dist/types/canvas-extension.js.map +1 -0
- package/dist/types/settings.d.ts +7 -0
- package/dist/ui/context-menu.d.ts +1 -1
- package/dist/ui/help-link.cjs +1 -1
- package/dist/ui/help-link.cjs.map +1 -1
- package/dist/ui/help-link.d.ts +6 -1
- package/dist/ui/help-link.js +32 -18
- package/dist/ui/help-link.js.map +1 -1
- package/dist/ui/toggle-switch.cjs +1 -1
- package/dist/ui/toggle-switch.cjs.map +1 -1
- package/dist/ui/toggle-switch.d.ts +4 -1
- package/dist/ui/toggle-switch.js +4 -3
- package/dist/ui/toggle-switch.js.map +1 -1
- package/dist/utils/acp-auth-display.d.ts +35 -0
- package/dist/utils/automation-catalog.cjs +1 -1
- package/dist/utils/automation-catalog.cjs.map +1 -1
- package/dist/utils/automation-catalog.d.ts +12 -1
- package/dist/utils/automation-catalog.js +42 -12
- package/dist/utils/automation-catalog.js.map +1 -1
- package/dist/utils/automation-run-display.cjs +2 -0
- package/dist/utils/automation-run-display.cjs.map +1 -0
- package/dist/utils/automation-run-display.d.ts +20 -0
- package/dist/utils/automation-run-display.js +85 -0
- package/dist/utils/automation-run-display.js.map +1 -0
- package/dist/utils/automation-schedule.cjs +1 -1
- package/dist/utils/automation-schedule.cjs.map +1 -1
- package/dist/utils/automation-schedule.d.ts +16 -0
- package/dist/utils/automation-schedule.js +2 -0
- package/dist/utils/automation-schedule.js.map +1 -1
- package/dist/utils/cache-utils.cjs +1 -1
- package/dist/utils/cache-utils.js +5 -5
- package/dist/utils/constants.cjs +1 -1
- package/dist/utils/constants.cjs.map +1 -1
- package/dist/utils/constants.d.ts +4 -0
- package/dist/utils/constants.js +23 -3
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/format-event-timestamp.cjs +2 -0
- package/dist/utils/format-event-timestamp.cjs.map +1 -0
- package/dist/utils/format-event-timestamp.d.ts +1 -0
- package/dist/utils/format-event-timestamp.js +13 -0
- package/dist/utils/format-event-timestamp.js.map +1 -0
- package/dist/utils/format-model-name.cjs +1 -1
- package/dist/utils/format-model-name.cjs.map +1 -1
- package/dist/utils/format-model-name.d.ts +7 -3
- package/dist/utils/format-model-name.js +6 -11
- package/dist/utils/format-model-name.js.map +1 -1
- package/dist/utils/format-relative-time.cjs +1 -1
- package/dist/utils/format-relative-time.cjs.map +1 -1
- package/dist/utils/format-relative-time.d.ts +7 -0
- package/dist/utils/format-relative-time.js +7 -2
- package/dist/utils/format-relative-time.js.map +1 -1
- package/dist/utils/git-diff-stats.cjs +2 -2
- package/dist/utils/git-diff-stats.cjs.map +1 -1
- package/dist/utils/git-diff-stats.d.ts +4 -0
- package/dist/utils/git-diff-stats.js +12 -2
- package/dist/utils/git-diff-stats.js.map +1 -1
- package/dist/utils/path-utils.cjs +1 -1
- package/dist/utils/path-utils.cjs.map +1 -1
- package/dist/utils/path-utils.d.ts +15 -3
- package/dist/utils/path-utils.js +29 -3
- package/dist/utils/path-utils.js.map +1 -1
- package/dist/utils/plan-file.cjs +4 -0
- package/dist/utils/plan-file.cjs.map +1 -0
- package/dist/utils/plan-file.d.ts +18 -0
- package/dist/utils/plan-file.js +58 -0
- package/dist/utils/plan-file.js.map +1 -0
- package/dist/utils/recommended-automation-rail.cjs +1 -1
- package/dist/utils/recommended-automation-rail.cjs.map +1 -1
- package/dist/utils/recommended-automation-rail.js +1 -0
- package/dist/utils/recommended-automation-rail.js.map +1 -1
- package/dist/utils/scroll-fade-state.cjs +1 -1
- package/dist/utils/scroll-fade-state.cjs.map +1 -1
- package/dist/utils/scroll-fade-state.d.ts +6 -0
- package/dist/utils/scroll-fade-state.js +8 -1
- package/dist/utils/scroll-fade-state.js.map +1 -1
- package/dist/utils/sdk-settings-schema.cjs +1 -1
- package/dist/utils/sdk-settings-schema.cjs.map +1 -1
- package/dist/utils/sdk-settings-schema.d.ts +1 -0
- package/dist/utils/sdk-settings-schema.js +25 -22
- package/dist/utils/sdk-settings-schema.js.map +1 -1
- package/dist/utils/skill-enablement.cjs +2 -0
- package/dist/utils/skill-enablement.cjs.map +1 -0
- package/dist/utils/skill-enablement.d.ts +51 -0
- package/dist/utils/skill-enablement.js +31 -0
- package/dist/utils/skill-enablement.js.map +1 -0
- package/dist/utils/utils.cjs +1 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.js +11 -11
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/vscode-origin.cjs +2 -0
- package/dist/utils/vscode-origin.cjs.map +1 -0
- package/dist/utils/vscode-origin.d.ts +55 -0
- package/dist/utils/vscode-origin.js +27 -0
- package/dist/utils/vscode-origin.js.map +1 -0
- package/dist/utils/workspace-mode.d.ts +4 -0
- package/package.json +5 -5
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/check-translation-completeness.cjs +1 -0
- package/scripts/dev-extra-backend.mjs +28 -9
- package/scripts/dev-safe.mjs +81 -8
- package/scripts/dev-static.mjs +35 -37
- package/scripts/dev-with-automation.mjs +83 -2
- package/scripts/ingress.mjs +27 -1
- package/scripts/static-server.mjs +107 -2
- package/tools/canvas_ui_tool.py +19 -0
- package/build/assets/active-backend-context-DKFSMbn3.js +0 -2
- package/build/assets/agent-profiles-settings-D4cY5U2T.js +0 -1
- package/build/assets/agent-server-conversation-service.api-DozDKIW_.js +0 -86
- package/build/assets/agent-settings-351vXWc9.js +0 -2
- package/build/assets/agent-settings-Ce7BDZ6I.js +0 -1
- package/build/assets/alert-banner-Kyy1YWZU.js +0 -1
- package/build/assets/api-key-entry-screen-INIxqAMs.js +0 -1
- package/build/assets/automation-detail-DXDhUwPq.js +0 -3
- package/build/assets/automation-git-sync-CzyS4cn1.js +0 -1
- package/build/assets/automation-setup-route-FRr05f_g.js +0 -1
- package/build/assets/automations-list-CERuQWE6.js +0 -1
- package/build/assets/backend-form-modal-DK78-jn1.js +0 -1
- package/build/assets/bot-C-0Wu7vQ.js +0 -1
- package/build/assets/browser-11etCQ04.js +0 -7
- package/build/assets/check-Cf2YoT90.js +0 -1
- package/build/assets/chevron-down-C3OQ-ehx.js +0 -1
- package/build/assets/chevron-right-CN1uUiJ1.js +0 -1
- package/build/assets/circle-check-g5yeGMd-.js +0 -1
- package/build/assets/command-menu-BZQ8S3Ke.js +0 -1
- package/build/assets/commits-tab-DZtJgaDM.js +0 -1
- package/build/assets/confirmation-modal-Bk4JRcCM.js +0 -1
- package/build/assets/conversation-CchMzpGl.js +0 -1
- package/build/assets/conversation-Dpzftz57.js +0 -93
- package/build/assets/conversation-panel-CchMzpGl.js +0 -1
- package/build/assets/conversation-state-store-a9d2fxRc.js +0 -1
- package/build/assets/edit-automation-modal-D-urtv8n.js +0 -1
- package/build/assets/empty-state-CvaVahVr.js +0 -1
- package/build/assets/enum-filter-dropdown-DliX_Lo0.js +0 -1
- package/build/assets/extensions-hub-CFduxBnk.js +0 -1
- package/build/assets/extensions-navigation-BeC224yX.js +0 -1
- package/build/assets/external-link-DFpYunfj.js +0 -1
- package/build/assets/files-tab-CL3J9b3p.js +0 -1
- package/build/assets/format-model-name-BNPKVsIq.js +0 -1
- package/build/assets/get-git-path-DlAJa_i6.js +0 -1
- package/build/assets/git-repo-dropdown-DGMEhz7d.js +0 -1
- package/build/assets/home-BCGlNJCA.js +0 -1
- package/build/assets/home-DB1pRqTC.js +0 -1
- package/build/assets/home-automation-run-tooltip-CooFQRIG.js +0 -1
- package/build/assets/home-store-Dl1dPE58.js +0 -1
- package/build/assets/index-home-DB1pRqTC.js +0 -1
- package/build/assets/info-uYSVzX86.js +0 -1
- package/build/assets/install-server-modal-BbJdhzet.js +0 -1
- package/build/assets/kebab-menu-item-content-BYokkRHi.js +0 -1
- package/build/assets/list-filter-OFkpRrmi.js +0 -1
- package/build/assets/llm-not-configured-banner-BqqYnJ1t.js +0 -27
- package/build/assets/llm-settings-CnDbbmVW.js +0 -1
- package/build/assets/llm-settings-S8Yjg__1.js +0 -1
- package/build/assets/llm-subscription-service-BpPfzW4x.js +0 -1
- package/build/assets/loader-circle-nvrwthvj.js +0 -1
- package/build/assets/manage-backends-modal-BCUPswyl.js +0 -1
- package/build/assets/manifest-58597dde.js +0 -1
- package/build/assets/markdown-renderer-Cb2sBWtV.js +0 -8
- package/build/assets/mcp-page-Bm4K2NQq.js +0 -9
- package/build/assets/messages-BTN5thLe.js +0 -40
- package/build/assets/onboarding-Cx_kaiD1.js +0 -1
- package/build/assets/onboarding-modal-vMwn7ihv.js +0 -1
- package/build/assets/organization-service.api-C8XpQ0pM.js +0 -1
- package/build/assets/pencil-Clh1Wjvh.js +0 -1
- package/build/assets/planner-tab-DQvDU3ap.js +0 -1
- package/build/assets/plug-BuQhHSSG.js +0 -1
- package/build/assets/plugins-management-service-BjYeF0b0.js +0 -1
- package/build/assets/plus-CEKne-Yp.js +0 -1
- package/build/assets/profiles-service.api-QB-T_u-g.js +0 -1
- package/build/assets/providers-FfSZ5TXP.js +0 -1
- package/build/assets/proxy-tcFL2yTQ.js +0 -1
- package/build/assets/recommended-automations-launcher-Bw8uC4V6.js +0 -1
- package/build/assets/refresh-cw-Bh69DyYO.js +0 -1
- package/build/assets/root-BLeQfBEq.css +0 -1
- package/build/assets/root-ZKKYPR1Z.js +0 -2
- package/build/assets/root-layout-luJoE9IG.js +0 -2
- package/build/assets/schema-field-Csw5fhtN.js +0 -1
- package/build/assets/scroll-fade-state-Dw-i4SGq.js +0 -1
- package/build/assets/sdk-section-page-HTffvm7Q.js +0 -1
- package/build/assets/secret-form-HTUbYw5o.js +0 -1
- package/build/assets/secrets-service-BTor9uAU.js +0 -1
- package/build/assets/settings-BlmrkwRi.js +0 -1
- package/build/assets/settings-DcNPxz0v.js +0 -1
- package/build/assets/settings-index-CKq0b0Vg.js +0 -1
- package/build/assets/settings-service.api-B2agVfjL.js +0 -1
- package/build/assets/shared-conversation-B55pCyBG.js +0 -1
- package/build/assets/shield-check-CFDViW82.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-BOtyJHwE.js +0 -1
- package/build/assets/sidebar-nav-link-CPzhyHQg.js +0 -1
- package/build/assets/sidebar-store-DtpU7zaI.js +0 -1
- package/build/assets/skill-filter-CWZ5kjcg.js +0 -2
- package/build/assets/skill-scope-CV1dkAbW.js +0 -1
- package/build/assets/skills-plugins-DGHULTq6.js +0 -1
- package/build/assets/skills-settings-CM1lFv3e.js +0 -1
- package/build/assets/styled-tooltip-Dl06rkpY.js +0 -1
- package/build/assets/toggle-switch-Fd_QGz0r.js +0 -1
- package/build/assets/trash-2-Dl8_RGz0.js +0 -1
- package/build/assets/trash-_RMt7Ayc.js +0 -1
- package/build/assets/triangle-alert-SM-q4NU_.js +0 -1
- package/build/assets/usage-tab-BcfWV6db.js +0 -1
- package/build/assets/use-acp-credential-form-BsSW5NHG.js +0 -1
- package/build/assets/use-activate-agent-profile-B2NS8nA5.js +0 -1
- package/build/assets/use-agent-profiles-DWBPC0Si.js +0 -1
- package/build/assets/use-config-Bft35DOK.js +0 -1
- package/build/assets/use-create-conversation-DwN5vv2f.js +0 -1
- package/build/assets/use-create-secret-BSxJMxHp.js +0 -1
- package/build/assets/use-has-permission-B3C8rQmR.js +0 -1
- package/build/assets/use-is-authed-CFGkY3-Z.js +0 -1
- package/build/assets/use-llm-configured-BI6obxsc.js +0 -1
- package/build/assets/use-llm-profiles-djGAhTWL.js +0 -1
- package/build/assets/use-manifest-capabilities-3z0-1G59.js +0 -1
- package/build/assets/use-onboarding-completion-BXpyUSsJ.js +0 -1
- package/build/assets/use-plugins-marketplace-DI4_pK56.js +0 -1
- package/build/assets/use-save-agent-profile-DdBSTdpN.js +0 -1
- package/build/assets/use-settings-C5VhGpqd.js +0 -1
- package/build/assets/use-settings-nav-items-DHaUu1Dg.js +0 -16
- package/build/assets/use-tracking-D5t9otIF.js +0 -3
- package/build/assets/utils-DaCIEEQP.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js +0 -186
- package/build/assets/vendor~index-home~home~conversation-panel~conversation~alert-banner-B3qC_oj8.js +0 -1
- package/build/assets/vendor~root-layout-BlUaZ18v.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-B2OLKL7N.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js +0 -1
- package/build/assets/x-DkgltWa0.js +0 -1
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs +0 -2
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs.map +0 -1
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.d.ts +0 -35
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js +0 -247
- package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js.map +0 -1
- package/dist/components/features/tips/random-tip.d.ts +0 -2
- package/dist/hooks/query/use-skills.cjs +0 -2
- package/dist/hooks/query/use-skills.cjs.map +0 -1
- package/dist/hooks/query/use-skills.d.ts +0 -7
- package/dist/hooks/query/use-skills.js +0 -13
- package/dist/hooks/query/use-skills.js.map +0 -1
- package/dist/hooks/use-has-permission.cjs +0 -2
- package/dist/hooks/use-has-permission.cjs.map +0 -1
- package/dist/hooks/use-has-permission.d.ts +0 -1
- package/dist/hooks/use-has-permission.js +0 -8
- package/dist/hooks/use-has-permission.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs +0 -2
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +0 -14
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +0 -1
- package/dist/utils/tips.d.ts +0 -7
- package/dist/utils/workspace-relative-path.cjs +0 -2
- package/dist/utils/workspace-relative-path.cjs.map +0 -1
- package/dist/utils/workspace-relative-path.d.ts +0 -10
- package/dist/utils/workspace-relative-path.js +0 -22
- package/dist/utils/workspace-relative-path.js.map +0 -1
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js} +0 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { I18nKey as t } from "../../../i18n/declaration.js";
|
|
3
|
+
import { Archive as n } from "../../../node_modules/lucide-react/dist/esm/icons/archive.js";
|
|
4
|
+
import { Bot as r } from "../../../node_modules/lucide-react/dist/esm/icons/bot.js";
|
|
5
|
+
import { CalendarArrowDown as i } from "../../../node_modules/lucide-react/dist/esm/icons/calendar-arrow-down.js";
|
|
6
|
+
import { Clock3 as a } from "../../../node_modules/lucide-react/dist/esm/icons/clock-3.js";
|
|
7
|
+
import { ClockArrowDown as o } from "../../../node_modules/lucide-react/dist/esm/icons/clock-arrow-down.js";
|
|
8
|
+
import { EyeOff as s } from "../../../node_modules/lucide-react/dist/esm/icons/eye-off.js";
|
|
9
|
+
import { Folder as c } from "../../../node_modules/lucide-react/dist/esm/icons/folder.js";
|
|
10
|
+
import { GitBranch as l } from "../../../node_modules/lucide-react/dist/esm/icons/git-branch.js";
|
|
11
|
+
import { MessageCircle as u } from "../../../node_modules/lucide-react/dist/esm/icons/message-circle.js";
|
|
12
|
+
import { MousePointerClick as d } from "../../../node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js";
|
|
13
|
+
import { Star as f } from "../../../node_modules/lucide-react/dist/esm/icons/star.js";
|
|
14
|
+
import { Tag as p } from "../../../node_modules/lucide-react/dist/esm/icons/tag.js";
|
|
15
|
+
import { cn as m } from "../../../utils/utils.js";
|
|
16
|
+
import { readVerticalScrollEdgeState as h } from "../../../utils/scroll-fade-state.js";
|
|
17
|
+
import { ModalBackdrop as g } from "../../shared/modals/modal-backdrop.js";
|
|
18
|
+
import { MODAL_MAX_WIDTH_VIEWPORT as _, ModalBody as v } from "../../shared/modals/modal-body.js";
|
|
19
|
+
import { BaseModalDescription as y, BaseModalTitle as b } from "../../shared/modals/confirmation-modals/base-modal.js";
|
|
20
|
+
import { ModalCloseButton as x } from "../../shared/modals/modal-close-button.js";
|
|
21
|
+
import { BrandButton as S } from "../settings/brand-button.js";
|
|
22
|
+
import "./conversation-panel-list-helpers.js";
|
|
23
|
+
import { useConversationPanelPreferencesStore as C } from "../../../stores/conversation-panel-preferences-store.js";
|
|
24
|
+
import { MenuHeading as w } from "./menu-heading.js";
|
|
25
|
+
import { MenuSeparator as T } from "./menu-separator.js";
|
|
26
|
+
import { MenuRow as E } from "./menu-row.js";
|
|
27
|
+
import D from "../../../icons/automations.js";
|
|
28
|
+
import { HideOlderConversationsRow as O } from "./hide-older-conversations-row.js";
|
|
29
|
+
import k from "react";
|
|
30
|
+
import { jsx as A, jsxs as j } from "react/jsx-runtime";
|
|
31
|
+
//#region src/components/features/conversation-panel/advanced-conversation-options-modal.tsx
|
|
32
|
+
function M({ open: M, onClose: N, backendKind: P, automationNameFacets: F }) {
|
|
33
|
+
let { t: I } = e("openhands"), L = C(), R = k.useRef(null), [z, B] = k.useState({
|
|
34
|
+
top: !1,
|
|
35
|
+
bottom: !1
|
|
36
|
+
}), V = k.useCallback(() => {
|
|
37
|
+
let e = R.current;
|
|
38
|
+
e && B(h(e));
|
|
39
|
+
}, []);
|
|
40
|
+
if (k.useLayoutEffect(() => {
|
|
41
|
+
if (!M) return;
|
|
42
|
+
V();
|
|
43
|
+
let e = R.current;
|
|
44
|
+
if (!e) return;
|
|
45
|
+
let t = new ResizeObserver(V);
|
|
46
|
+
return t.observe(e), e.firstElementChild && t.observe(e.firstElementChild), () => t.disconnect();
|
|
47
|
+
}, [
|
|
48
|
+
M,
|
|
49
|
+
V,
|
|
50
|
+
L.automationFilterMode
|
|
51
|
+
]), !M) return null;
|
|
52
|
+
let H = I(P === "local" ? t.CONVERSATION_PANEL$BY_WORKSPACE : t.CONVERSATION_PANEL$BY_REPOSITORY);
|
|
53
|
+
return /* @__PURE__ */ A(g, {
|
|
54
|
+
onClose: N,
|
|
55
|
+
children: /* @__PURE__ */ j(v, {
|
|
56
|
+
width: "md",
|
|
57
|
+
className: m("relative items-start overflow-hidden border border-[var(--oh-border)]", _),
|
|
58
|
+
testID: "advanced-conversation-options-modal",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ A(x, {
|
|
61
|
+
onClose: N,
|
|
62
|
+
testId: "advanced-options-modal-close"
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ j("div", {
|
|
65
|
+
className: "flex w-full flex-col gap-2 pr-8",
|
|
66
|
+
children: [/* @__PURE__ */ A(b, { title: I(t.CONVERSATION_PANEL$ADVANCED_OPTIONS) }), /* @__PURE__ */ A(y, { children: I(t.CONVERSATION_PANEL$ADVANCED_OPTIONS_DESCRIPTION) })]
|
|
67
|
+
}),
|
|
68
|
+
/* @__PURE__ */ j("div", {
|
|
69
|
+
className: "relative -mx-6 w-[calc(100%+3rem)] min-h-0",
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ A("div", {
|
|
72
|
+
"aria-hidden": !0,
|
|
73
|
+
"data-testid": "advanced-options-scroll-edge-top",
|
|
74
|
+
"data-visible": z.top ? "true" : "false",
|
|
75
|
+
className: m("pointer-events-none absolute inset-x-0 top-0 z-10 h-px bg-[var(--oh-border)]", z.top ? "opacity-100" : "opacity-0")
|
|
76
|
+
}),
|
|
77
|
+
/* @__PURE__ */ j("div", {
|
|
78
|
+
ref: R,
|
|
79
|
+
role: "menu",
|
|
80
|
+
"aria-orientation": "vertical",
|
|
81
|
+
"aria-label": I(t.CONVERSATION_PANEL$ADVANCED_OPTIONS),
|
|
82
|
+
tabIndex: -1,
|
|
83
|
+
"data-testid": "advanced-options-scroll",
|
|
84
|
+
className: "custom-scrollbar-always flex max-h-[60vh] w-full flex-col overflow-y-auto px-6",
|
|
85
|
+
onClick: (e) => e.stopPropagation(),
|
|
86
|
+
onScroll: V,
|
|
87
|
+
children: [
|
|
88
|
+
/* @__PURE__ */ A(w, { children: I(t.CONVERSATION_PANEL$ORGANIZE) }),
|
|
89
|
+
/* @__PURE__ */ A(E, {
|
|
90
|
+
icon: c,
|
|
91
|
+
label: H,
|
|
92
|
+
selected: L.organizeMode === "grouped",
|
|
93
|
+
testId: "organize-grouped",
|
|
94
|
+
onClick: () => L.setOrganizeMode("grouped")
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ A(E, {
|
|
97
|
+
icon: a,
|
|
98
|
+
label: I(t.CONVERSATION_PANEL$CHRONOLOGICAL),
|
|
99
|
+
selected: L.organizeMode === "chronological",
|
|
100
|
+
testId: "organize-chronological",
|
|
101
|
+
onClick: () => L.setOrganizeMode("chronological")
|
|
102
|
+
}),
|
|
103
|
+
/* @__PURE__ */ A(T, {}),
|
|
104
|
+
/* @__PURE__ */ A(w, { children: I(t.CONVERSATION_PANEL$SORT_BY) }),
|
|
105
|
+
/* @__PURE__ */ A(E, {
|
|
106
|
+
icon: i,
|
|
107
|
+
label: I(t.CONVERSATION_PANEL$SORT_CREATED),
|
|
108
|
+
selected: L.conversationSort === "created",
|
|
109
|
+
testId: "sort-created",
|
|
110
|
+
onClick: () => L.setConversationSort("created")
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ A(E, {
|
|
113
|
+
icon: o,
|
|
114
|
+
label: I(t.CONVERSATION_PANEL$SORT_UPDATED),
|
|
115
|
+
selected: L.conversationSort === "updated",
|
|
116
|
+
testId: "sort-updated",
|
|
117
|
+
onClick: () => L.setConversationSort("updated")
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ A(T, {}),
|
|
120
|
+
/* @__PURE__ */ A(w, { children: I(t.CONVERSATION_PANEL$THREADS) }),
|
|
121
|
+
/* @__PURE__ */ A(E, {
|
|
122
|
+
icon: u,
|
|
123
|
+
label: I(t.CONVERSATION_PANEL$ALL_THREADS),
|
|
124
|
+
selected: L.threadScope === "all",
|
|
125
|
+
testId: "scope-all",
|
|
126
|
+
onClick: () => L.setThreadScope("all")
|
|
127
|
+
}),
|
|
128
|
+
/* @__PURE__ */ A(E, {
|
|
129
|
+
icon: f,
|
|
130
|
+
label: I(t.CONVERSATION_PANEL$RELEVANT_THREADS),
|
|
131
|
+
selected: L.threadScope === "relevant",
|
|
132
|
+
testId: "scope-relevant",
|
|
133
|
+
onClick: () => L.setThreadScope("relevant")
|
|
134
|
+
}),
|
|
135
|
+
/* @__PURE__ */ A(T, {}),
|
|
136
|
+
/* @__PURE__ */ A(w, { children: I(t.CONVERSATION_PANEL$SHOW) }),
|
|
137
|
+
/* @__PURE__ */ A(E, {
|
|
138
|
+
icon: n,
|
|
139
|
+
label: I(t.CONVERSATION_PANEL$SHOW_ARCHIVED),
|
|
140
|
+
selected: L.showArchivedConversations,
|
|
141
|
+
variant: "toggle",
|
|
142
|
+
testId: "toggle-show-archived",
|
|
143
|
+
onClick: L.toggleShowArchivedConversations
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ A(O, {}),
|
|
146
|
+
/* @__PURE__ */ A(T, {}),
|
|
147
|
+
/* @__PURE__ */ A(w, { children: I(t.CONVERSATION_PANEL$AUTOMATIONS) }),
|
|
148
|
+
/* @__PURE__ */ A(E, {
|
|
149
|
+
icon: u,
|
|
150
|
+
label: I(t.CONVERSATION_PANEL$AUTOMATIONS_ALL),
|
|
151
|
+
selected: L.automationFilterMode === "all",
|
|
152
|
+
testId: "automation-filter-all",
|
|
153
|
+
onClick: () => L.setAutomationFilterMode("all")
|
|
154
|
+
}),
|
|
155
|
+
/* @__PURE__ */ A(E, {
|
|
156
|
+
icon: s,
|
|
157
|
+
label: I(t.CONVERSATION_PANEL$AUTOMATIONS_HIDE),
|
|
158
|
+
selected: L.automationFilterMode === "hide-automations",
|
|
159
|
+
testId: "automation-filter-hide",
|
|
160
|
+
onClick: () => L.setAutomationFilterMode("hide-automations")
|
|
161
|
+
}),
|
|
162
|
+
/* @__PURE__ */ A(E, {
|
|
163
|
+
icon: D,
|
|
164
|
+
label: I(t.CONVERSATION_PANEL$AUTOMATIONS_ONLY),
|
|
165
|
+
selected: L.automationFilterMode === "only-automations",
|
|
166
|
+
testId: "automation-filter-only",
|
|
167
|
+
onClick: () => L.setAutomationFilterMode("only-automations")
|
|
168
|
+
}),
|
|
169
|
+
L.automationFilterMode === "only-automations" ? F.map((e) => /* @__PURE__ */ A(E, {
|
|
170
|
+
icon: p,
|
|
171
|
+
label: e === "__unnamed__" ? I(t.CONVERSATION_PANEL$AUTOMATION_UNNAMED) : e,
|
|
172
|
+
selected: L.selectedAutomationNames.includes(e),
|
|
173
|
+
variant: "toggle",
|
|
174
|
+
testId: `automation-name-row-${e}`,
|
|
175
|
+
onClick: () => L.toggleAutomationName(e)
|
|
176
|
+
}, e)) : null,
|
|
177
|
+
/* @__PURE__ */ A(T, {}),
|
|
178
|
+
/* @__PURE__ */ A(w, { children: I(t.CONVERSATION_PANEL$METADATA) }),
|
|
179
|
+
/* @__PURE__ */ A(E, {
|
|
180
|
+
icon: l,
|
|
181
|
+
label: I(t.CONVERSATION_PANEL$REPO_BRANCH),
|
|
182
|
+
selected: L.showRepoBranchMetadata,
|
|
183
|
+
variant: "toggle",
|
|
184
|
+
testId: "toggle-repo-branch-metadata",
|
|
185
|
+
onClick: L.toggleShowRepoBranchMetadata
|
|
186
|
+
}),
|
|
187
|
+
/* @__PURE__ */ A(E, {
|
|
188
|
+
icon: r,
|
|
189
|
+
label: I(t.CONVERSATION_PANEL$LLM_MODEL),
|
|
190
|
+
selected: L.showLlmProfiles,
|
|
191
|
+
variant: "toggle",
|
|
192
|
+
testId: "toggle-llm-profiles",
|
|
193
|
+
onClick: L.toggleShowLlmProfiles
|
|
194
|
+
}),
|
|
195
|
+
/* @__PURE__ */ A(E, {
|
|
196
|
+
icon: p,
|
|
197
|
+
label: I(t.CONVERSATION_PANEL$TAG_CHIPS),
|
|
198
|
+
selected: L.showTagsMetadata,
|
|
199
|
+
variant: "toggle",
|
|
200
|
+
testId: "toggle-tags-metadata",
|
|
201
|
+
onClick: L.toggleShowTagsMetadata
|
|
202
|
+
}),
|
|
203
|
+
/* @__PURE__ */ A(E, {
|
|
204
|
+
icon: d,
|
|
205
|
+
label: I(t.CONVERSATION_PANEL$HOVER_METADATA),
|
|
206
|
+
selected: L.showHoverMetadata,
|
|
207
|
+
variant: "toggle",
|
|
208
|
+
testId: "toggle-hover-metadata",
|
|
209
|
+
onClick: L.toggleShowHoverMetadata
|
|
210
|
+
})
|
|
211
|
+
]
|
|
212
|
+
}),
|
|
213
|
+
/* @__PURE__ */ A("div", {
|
|
214
|
+
"aria-hidden": !0,
|
|
215
|
+
"data-testid": "advanced-options-scroll-edge-bottom",
|
|
216
|
+
"data-visible": z.bottom ? "true" : "false",
|
|
217
|
+
className: m("pointer-events-none absolute inset-x-0 bottom-0 z-10 h-px bg-[var(--oh-border)]", z.bottom ? "opacity-100" : "opacity-0")
|
|
218
|
+
})
|
|
219
|
+
]
|
|
220
|
+
}),
|
|
221
|
+
/* @__PURE__ */ A("div", {
|
|
222
|
+
className: "flex w-full justify-end",
|
|
223
|
+
onClick: (e) => e.stopPropagation(),
|
|
224
|
+
children: /* @__PURE__ */ A(S, {
|
|
225
|
+
type: "button",
|
|
226
|
+
variant: "primary",
|
|
227
|
+
onClick: N,
|
|
228
|
+
testId: "advanced-options-close",
|
|
229
|
+
children: I(t.BUTTON$CLOSE)
|
|
230
|
+
})
|
|
231
|
+
})
|
|
232
|
+
]
|
|
233
|
+
})
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
//#endregion
|
|
237
|
+
export { M as AdvancedConversationOptionsModal };
|
|
238
|
+
|
|
239
|
+
//# sourceMappingURL=advanced-conversation-options-modal.js.map
|
package/dist/components/features/conversation-panel/advanced-conversation-options-modal.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced-conversation-options-modal.js","names":[],"sources":["../../../../src/components/features/conversation-panel/advanced-conversation-options-modal.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Archive,\n Bot,\n CalendarArrowDown,\n Clock3,\n ClockArrowDown,\n EyeOff,\n Folder,\n GitBranch,\n MessageCircle,\n MousePointerClick,\n Star,\n Tag,\n} from \"lucide-react\";\nimport AutomationsIcon from \"#/icons/automations.svg?react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport type { BackendKind } from \"#/api/backend-registry/types\";\nimport { useConversationPanelPreferencesStore } from \"#/stores/conversation-panel-preferences-store\";\nimport {\n BaseModalDescription,\n BaseModalTitle,\n} from \"#/components/shared/modals/confirmation-modals/base-modal\";\nimport { ModalBackdrop } from \"#/components/shared/modals/modal-backdrop\";\nimport {\n MODAL_MAX_WIDTH_VIEWPORT,\n ModalBody,\n} from \"#/components/shared/modals/modal-body\";\nimport { ModalCloseButton } from \"#/components/shared/modals/modal-close-button\";\nimport { BrandButton } from \"#/components/features/settings/brand-button\";\nimport { cn } from \"#/utils/utils\";\nimport { readVerticalScrollEdgeState } from \"#/utils/scroll-fade-state\";\nimport { MenuHeading } from \"./menu-heading\";\nimport { MenuSeparator } from \"./menu-separator\";\nimport { MenuRow } from \"./menu-row\";\nimport { HideOlderConversationsRow } from \"./hide-older-conversations-row\";\nimport { UNNAMED_AUTOMATION_FACET } from \"./conversation-panel-list-helpers\";\n\nexport interface AdvancedConversationOptionsModalProps {\n open: boolean;\n onClose: () => void;\n backendKind: BackendKind;\n /**\n * Distinct automation names among the loaded conversations. Rendered as\n * selectable rows under the Automations section in `only-automations`\n * mode — the only control for `selectedAutomationNames`, which is\n * persisted and narrows the list on its own.\n */\n automationNameFacets: readonly string[];\n}\n\n/**\n * The full preference surface, promoted from the old hamburger filter menu\n * into its own modal (design from the 2026-08-14 PM walkthrough video).\n * Rows apply immediately and stay open — the modal closes only via the\n * top-right X, footer Close, Escape, or backdrop click.\n */\nexport function AdvancedConversationOptionsModal({\n open,\n onClose,\n backendKind,\n automationNameFacets,\n}: AdvancedConversationOptionsModalProps) {\n const { t } = useTranslation(\"openhands\");\n const preferences = useConversationPanelPreferencesStore();\n const scrollRef = React.useRef<HTMLDivElement>(null);\n const [scrollEdges, setScrollEdges] = React.useState({\n top: false,\n bottom: false,\n });\n\n const updateScrollEdges = React.useCallback(() => {\n const element = scrollRef.current;\n if (!element) {\n return;\n }\n setScrollEdges(readVerticalScrollEdgeState(element));\n }, []);\n\n React.useLayoutEffect(() => {\n if (!open) {\n return undefined;\n }\n updateScrollEdges();\n\n const element = scrollRef.current;\n if (!element) {\n return undefined;\n }\n\n const resizeObserver = new ResizeObserver(updateScrollEdges);\n resizeObserver.observe(element);\n if (element.firstElementChild) {\n resizeObserver.observe(element.firstElementChild);\n }\n\n return () => resizeObserver.disconnect();\n }, [open, updateScrollEdges, preferences.automationFilterMode]);\n\n if (!open) return null;\n\n const groupedLabel =\n backendKind === \"local\"\n ? t(I18nKey.CONVERSATION_PANEL$BY_WORKSPACE)\n : t(I18nKey.CONVERSATION_PANEL$BY_REPOSITORY);\n\n return (\n <ModalBackdrop onClose={onClose}>\n <ModalBody\n width=\"md\"\n className={cn(\n \"relative items-start overflow-hidden border border-[var(--oh-border)]\",\n MODAL_MAX_WIDTH_VIEWPORT,\n )}\n testID=\"advanced-conversation-options-modal\"\n >\n <ModalCloseButton\n onClose={onClose}\n testId=\"advanced-options-modal-close\"\n />\n <div className=\"flex w-full flex-col gap-2 pr-8\">\n <BaseModalTitle\n title={t(I18nKey.CONVERSATION_PANEL$ADVANCED_OPTIONS)}\n />\n <BaseModalDescription>\n {t(I18nKey.CONVERSATION_PANEL$ADVANCED_OPTIONS_DESCRIPTION)}\n </BaseModalDescription>\n </div>\n\n <div className=\"relative -mx-6 w-[calc(100%+3rem)] min-h-0\">\n <div\n aria-hidden\n data-testid=\"advanced-options-scroll-edge-top\"\n data-visible={scrollEdges.top ? \"true\" : \"false\"}\n className={cn(\n \"pointer-events-none absolute inset-x-0 top-0 z-10 h-px bg-[var(--oh-border)]\",\n scrollEdges.top ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n <div\n ref={scrollRef}\n role=\"menu\"\n aria-orientation=\"vertical\"\n aria-label={t(I18nKey.CONVERSATION_PANEL$ADVANCED_OPTIONS)}\n // Same idiom as the old filter menu: focusable for jsx-a11y but\n // out of the natural Tab order (the rows are tabbable buttons).\n tabIndex={-1}\n data-testid=\"advanced-options-scroll\"\n className=\"custom-scrollbar-always flex max-h-[60vh] w-full flex-col overflow-y-auto px-6\"\n onClick={(event) => event.stopPropagation()}\n onScroll={updateScrollEdges}\n >\n <MenuHeading>{t(I18nKey.CONVERSATION_PANEL$ORGANIZE)}</MenuHeading>\n <MenuRow\n icon={Folder}\n label={groupedLabel}\n selected={preferences.organizeMode === \"grouped\"}\n testId=\"organize-grouped\"\n onClick={() => preferences.setOrganizeMode(\"grouped\")}\n />\n <MenuRow\n icon={Clock3}\n label={t(I18nKey.CONVERSATION_PANEL$CHRONOLOGICAL)}\n selected={preferences.organizeMode === \"chronological\"}\n testId=\"organize-chronological\"\n onClick={() => preferences.setOrganizeMode(\"chronological\")}\n />\n\n <MenuSeparator />\n <MenuHeading>{t(I18nKey.CONVERSATION_PANEL$SORT_BY)}</MenuHeading>\n <MenuRow\n icon={CalendarArrowDown}\n label={t(I18nKey.CONVERSATION_PANEL$SORT_CREATED)}\n selected={preferences.conversationSort === \"created\"}\n testId=\"sort-created\"\n onClick={() => preferences.setConversationSort(\"created\")}\n />\n <MenuRow\n icon={ClockArrowDown}\n label={t(I18nKey.CONVERSATION_PANEL$SORT_UPDATED)}\n selected={preferences.conversationSort === \"updated\"}\n testId=\"sort-updated\"\n onClick={() => preferences.setConversationSort(\"updated\")}\n />\n\n <MenuSeparator />\n <MenuHeading>{t(I18nKey.CONVERSATION_PANEL$THREADS)}</MenuHeading>\n <MenuRow\n icon={MessageCircle}\n label={t(I18nKey.CONVERSATION_PANEL$ALL_THREADS)}\n selected={preferences.threadScope === \"all\"}\n testId=\"scope-all\"\n onClick={() => preferences.setThreadScope(\"all\")}\n />\n <MenuRow\n icon={Star}\n label={t(I18nKey.CONVERSATION_PANEL$RELEVANT_THREADS)}\n selected={preferences.threadScope === \"relevant\"}\n testId=\"scope-relevant\"\n onClick={() => preferences.setThreadScope(\"relevant\")}\n />\n\n <MenuSeparator />\n <MenuHeading>{t(I18nKey.CONVERSATION_PANEL$SHOW)}</MenuHeading>\n <MenuRow\n icon={Archive}\n label={t(I18nKey.CONVERSATION_PANEL$SHOW_ARCHIVED)}\n selected={preferences.showArchivedConversations}\n variant=\"toggle\"\n testId=\"toggle-show-archived\"\n onClick={preferences.toggleShowArchivedConversations}\n />\n <HideOlderConversationsRow />\n <MenuSeparator />\n <MenuHeading>\n {t(I18nKey.CONVERSATION_PANEL$AUTOMATIONS)}\n </MenuHeading>\n <MenuRow\n icon={MessageCircle}\n label={t(I18nKey.CONVERSATION_PANEL$AUTOMATIONS_ALL)}\n selected={preferences.automationFilterMode === \"all\"}\n testId=\"automation-filter-all\"\n onClick={() => preferences.setAutomationFilterMode(\"all\")}\n />\n <MenuRow\n icon={EyeOff}\n label={t(I18nKey.CONVERSATION_PANEL$AUTOMATIONS_HIDE)}\n selected={preferences.automationFilterMode === \"hide-automations\"}\n testId=\"automation-filter-hide\"\n onClick={() =>\n preferences.setAutomationFilterMode(\"hide-automations\")\n }\n />\n <MenuRow\n icon={AutomationsIcon}\n label={t(I18nKey.CONVERSATION_PANEL$AUTOMATIONS_ONLY)}\n selected={preferences.automationFilterMode === \"only-automations\"}\n testId=\"automation-filter-only\"\n onClick={() =>\n preferences.setAutomationFilterMode(\"only-automations\")\n }\n />\n {/* Name rows only make sense while the list is scoped to\n automations — and `setAutomationFilterMode` clears the selection\n on the way out, so a hidden row can never keep narrowing. */}\n {preferences.automationFilterMode === \"only-automations\"\n ? automationNameFacets.map((facet) => (\n <MenuRow\n key={facet}\n icon={Tag}\n label={\n facet === UNNAMED_AUTOMATION_FACET\n ? t(I18nKey.CONVERSATION_PANEL$AUTOMATION_UNNAMED)\n : facet\n }\n selected={preferences.selectedAutomationNames.includes(\n facet,\n )}\n variant=\"toggle\"\n testId={`automation-name-row-${facet}`}\n onClick={() => preferences.toggleAutomationName(facet)}\n />\n ))\n : null}\n\n <MenuSeparator />\n <MenuHeading>{t(I18nKey.CONVERSATION_PANEL$METADATA)}</MenuHeading>\n <MenuRow\n icon={GitBranch}\n label={t(I18nKey.CONVERSATION_PANEL$REPO_BRANCH)}\n selected={preferences.showRepoBranchMetadata}\n variant=\"toggle\"\n testId=\"toggle-repo-branch-metadata\"\n onClick={preferences.toggleShowRepoBranchMetadata}\n />\n <MenuRow\n icon={Bot}\n label={t(I18nKey.CONVERSATION_PANEL$LLM_MODEL)}\n selected={preferences.showLlmProfiles}\n variant=\"toggle\"\n testId=\"toggle-llm-profiles\"\n onClick={preferences.toggleShowLlmProfiles}\n />\n <MenuRow\n icon={Tag}\n label={t(I18nKey.CONVERSATION_PANEL$TAG_CHIPS)}\n selected={preferences.showTagsMetadata}\n variant=\"toggle\"\n testId=\"toggle-tags-metadata\"\n onClick={preferences.toggleShowTagsMetadata}\n />\n <MenuRow\n icon={MousePointerClick}\n label={t(I18nKey.CONVERSATION_PANEL$HOVER_METADATA)}\n selected={preferences.showHoverMetadata}\n variant=\"toggle\"\n testId=\"toggle-hover-metadata\"\n onClick={preferences.toggleShowHoverMetadata}\n />\n </div>\n <div\n aria-hidden\n data-testid=\"advanced-options-scroll-edge-bottom\"\n data-visible={scrollEdges.bottom ? \"true\" : \"false\"}\n className={cn(\n \"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-px bg-[var(--oh-border)]\",\n scrollEdges.bottom ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n </div>\n\n <div\n className=\"flex w-full justify-end\"\n onClick={(event) => event.stopPropagation()}\n >\n <BrandButton\n type=\"button\"\n variant=\"primary\"\n onClick={onClose}\n testId=\"advanced-options-close\"\n >\n {t(I18nKey.BUTTON$CLOSE)}\n </BrandButton>\n </div>\n </ModalBody>\n </ModalBackdrop>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA,SAAgB,EAAiC,EAC/C,SACA,YACA,gBACA,2BACwC;CACxC,IAAM,EAAE,SAAM,EAAe,WAAW,GAClC,IAAc,EAAqC,GACnD,IAAY,EAAM,OAAuB,IAAI,GAC7C,CAAC,GAAa,KAAkB,EAAM,SAAS;EACnD,KAAK;EACL,QAAQ;CACV,CAAC,GAEK,IAAoB,EAAM,kBAAkB;EAChD,IAAM,IAAU,EAAU;EACrB,KAGL,EAAe,EAA4B,CAAO,CAAC;CACrD,GAAG,CAAC,CAAC;CAsBL,IApBA,EAAM,sBAAsB;EAC1B,IAAI,CAAC,GACH;EAEF,EAAkB;EAElB,IAAM,IAAU,EAAU;EAC1B,IAAI,CAAC,GACH;EAGF,IAAM,IAAiB,IAAI,eAAe,CAAiB;EAM3D,OALA,EAAe,QAAQ,CAAO,GAC1B,EAAQ,qBACV,EAAe,QAAQ,EAAQ,iBAAiB,SAGrC,EAAe,WAAW;CACzC,GAAG;EAAC;EAAM;EAAmB,EAAY;CAAoB,CAAC,GAE1D,CAAC,GAAM,OAAO;CAElB,IAAM,IAEA,EADJ,MAAgB,UACV,EAAQ,kCACR,EAAQ,gCAAgC;CAEhD,OACE,kBAAC,GAAD;EAAwB;YACtB,kBAAC,GAAD;GACE,OAAM;GACN,WAAW,EACT,yEACA,CACF;GACA,QAAO;aANT;IAQE,kBAAC,GAAD;KACW;KACT,QAAO;IACR,CAAA;IACD,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD,EACE,OAAO,EAAE,EAAQ,mCAAmC,EACrD,CAAA,GACD,kBAAC,GAAD,EAAA,UACG,EAAE,EAAQ,+CAA+C,EACtC,CAAA,CACnB;;IAEL,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OACE,eAAA;OACA,eAAY;OACZ,gBAAc,EAAY,MAAM,SAAS;OACzC,WAAW,EACT,gFACA,EAAY,MAAM,gBAAgB,WACpC;MACD,CAAA;MACD,kBAAC,OAAD;OACE,KAAK;OACL,MAAK;OACL,oBAAiB;OACjB,cAAY,EAAE,EAAQ,mCAAmC;OAGzD,UAAU;OACV,eAAY;OACZ,WAAU;OACV,UAAU,MAAU,EAAM,gBAAgB;OAC1C,UAAU;iBAXZ;QAaE,kBAAC,GAAD,EAAA,UAAc,EAAE,EAAQ,2BAA2B,EAAe,CAAA;QAClE,kBAAC,GAAD;SACE,MAAM;SACN,OAAO;SACP,UAAU,EAAY,iBAAiB;SACvC,QAAO;SACP,eAAe,EAAY,gBAAgB,SAAS;QACrD,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,gCAAgC;SACjD,UAAU,EAAY,iBAAiB;SACvC,QAAO;SACP,eAAe,EAAY,gBAAgB,eAAe;QAC3D,CAAA;QAED,kBAAC,GAAD,CAAgB,CAAA;QAChB,kBAAC,GAAD,EAAA,UAAc,EAAE,EAAQ,0BAA0B,EAAe,CAAA;QACjE,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,+BAA+B;SAChD,UAAU,EAAY,qBAAqB;SAC3C,QAAO;SACP,eAAe,EAAY,oBAAoB,SAAS;QACzD,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,+BAA+B;SAChD,UAAU,EAAY,qBAAqB;SAC3C,QAAO;SACP,eAAe,EAAY,oBAAoB,SAAS;QACzD,CAAA;QAED,kBAAC,GAAD,CAAgB,CAAA;QAChB,kBAAC,GAAD,EAAA,UAAc,EAAE,EAAQ,0BAA0B,EAAe,CAAA;QACjE,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,8BAA8B;SAC/C,UAAU,EAAY,gBAAgB;SACtC,QAAO;SACP,eAAe,EAAY,eAAe,KAAK;QAChD,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,mCAAmC;SACpD,UAAU,EAAY,gBAAgB;SACtC,QAAO;SACP,eAAe,EAAY,eAAe,UAAU;QACrD,CAAA;QAED,kBAAC,GAAD,CAAgB,CAAA;QAChB,kBAAC,GAAD,EAAA,UAAc,EAAE,EAAQ,uBAAuB,EAAe,CAAA;QAC9D,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,gCAAgC;SACjD,UAAU,EAAY;SACtB,SAAQ;SACR,QAAO;SACP,SAAS,EAAY;QACtB,CAAA;QACD,kBAAC,GAAD,CAA4B,CAAA;QAC5B,kBAAC,GAAD,CAAgB,CAAA;QAChB,kBAAC,GAAD,EAAA,UACG,EAAE,EAAQ,8BAA8B,EAC9B,CAAA;QACb,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,kCAAkC;SACnD,UAAU,EAAY,yBAAyB;SAC/C,QAAO;SACP,eAAe,EAAY,wBAAwB,KAAK;QACzD,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,mCAAmC;SACpD,UAAU,EAAY,yBAAyB;SAC/C,QAAO;SACP,eACE,EAAY,wBAAwB,kBAAkB;QAEzD,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,mCAAmC;SACpD,UAAU,EAAY,yBAAyB;SAC/C,QAAO;SACP,eACE,EAAY,wBAAwB,kBAAkB;QAEzD,CAAA;QAIA,EAAY,yBAAyB,qBAClC,EAAqB,KAAK,MACxB,kBAAC,GAAD;SAEE,MAAM;SACN,OACE,MAAA,gBACI,EAAE,EAAQ,qCAAqC,IAC/C;SAEN,UAAU,EAAY,wBAAwB,SAC5C,CACF;SACA,SAAQ;SACR,QAAQ,uBAAuB;SAC/B,eAAe,EAAY,qBAAqB,CAAK;QACtD,GAbM,CAaN,CACF,IACD;QAEJ,kBAAC,GAAD,CAAgB,CAAA;QAChB,kBAAC,GAAD,EAAA,UAAc,EAAE,EAAQ,2BAA2B,EAAe,CAAA;QAClE,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,8BAA8B;SAC/C,UAAU,EAAY;SACtB,SAAQ;SACR,QAAO;SACP,SAAS,EAAY;QACtB,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,4BAA4B;SAC7C,UAAU,EAAY;SACtB,SAAQ;SACR,QAAO;SACP,SAAS,EAAY;QACtB,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,4BAA4B;SAC7C,UAAU,EAAY;SACtB,SAAQ;SACR,QAAO;SACP,SAAS,EAAY;QACtB,CAAA;QACD,kBAAC,GAAD;SACE,MAAM;SACN,OAAO,EAAE,EAAQ,iCAAiC;SAClD,UAAU,EAAY;SACtB,SAAQ;SACR,QAAO;SACP,SAAS,EAAY;QACtB,CAAA;OACE;;MACL,kBAAC,OAAD;OACE,eAAA;OACA,eAAY;OACZ,gBAAc,EAAY,SAAS,SAAS;OAC5C,WAAW,EACT,mFACA,EAAY,SAAS,gBAAgB,WACvC;MACD,CAAA;KACE;;IAEL,kBAAC,OAAD;KACE,WAAU;KACV,UAAU,MAAU,EAAM,gBAAgB;eAE1C,kBAAC,GAAD;MACE,MAAK;MACL,SAAQ;MACR,SAAS;MACT,QAAO;gBAEN,EAAE,EAAQ,YAAY;KACZ,CAAA;IACV,CAAA;GACI;;CACE,CAAA;AAEnB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),t=require("../../../i18n/declaration.cjs"),n=require("../../../node_modules/lucide-react/dist/esm/icons/tag.cjs"),r=require("../../../node_modules/lucide-react/dist/esm/icons/workflow.cjs"),i=require("../../../node_modules/lucide-react/dist/esm/icons/x.cjs"),a=require("./conversation-panel-list-helpers.cjs");let o=require("react/jsx-runtime");function s({selectedFacets:s,onToggleFacet:c,selectedAutomationNames:l,onToggleAutomationName:u,onClearAll:d}){let{t:f}=e.useTranslation(`openhands`);if(s.length===0&&l.length===0)return null;let p=`flex min-w-0 max-w-full cursor-pointer items-center gap-1 rounded-full bg-[var(--oh-surface)] px-2 py-0.5 text-[10px] leading-4 text-white hover:bg-white/10`;return(0,o.jsxs)(`div`,{"data-testid":`conversation-active-tag-filters`,className:`flex min-w-0 items-start gap-1.5 border-b border-[var(--oh-border)] px-4 py-1.5`,children:[(0,o.jsx)(n.Tag,{className:`mt-1 h-3 w-3 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0}),(0,o.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center gap-1`,children:[s.map(e=>(0,o.jsxs)(`button`,{type:`button`,"data-testid":`active-tag-filter-${e}`,onClick:()=>c(e),className:p,children:[(0,o.jsx)(`span`,{className:`truncate`,children:a.formatTagFacetLabel(e)}),(0,o.jsx)(i.X,{className:`h-3 w-3 shrink-0`,"aria-hidden":!0})]},e)),l.map(e=>(0,o.jsxs)(`button`,{type:`button`,"data-testid":`active-automation-filter-${e}`,onClick:()=>u(e),className:p,children:[(0,o.jsx)(r.Workflow,{className:`h-3 w-3 shrink-0`,"aria-hidden":!0}),(0,o.jsx)(`span`,{className:`truncate`,children:e===`__unnamed__`?f(t.I18nKey.CONVERSATION_PANEL$AUTOMATION_UNNAMED):e}),(0,o.jsx)(i.X,{className:`h-3 w-3 shrink-0`,"aria-hidden":!0})]},e))]}),(0,o.jsx)(`button`,{type:`button`,"data-testid":`clear-tag-filters`,onClick:d,className:`shrink-0 cursor-pointer text-[10px] leading-5 text-[var(--oh-muted)] hover:text-white`,children:f(t.I18nKey.CONVERSATION_PANEL$CLEAR_FILTERS)})]})}exports.ConversationActiveTagFilters=s;
|
|
2
|
+
//# sourceMappingURL=conversation-active-tag-filters.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-active-tag-filters.cjs","names":[],"sources":["../../../../src/components/features/conversation-panel/conversation-active-tag-filters.tsx"],"sourcesContent":["import { Tag, Workflow, X } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport {\n formatTagFacetLabel,\n UNNAMED_AUTOMATION_FACET,\n} from \"./conversation-panel-list-helpers\";\n\ninterface ConversationActiveTagFiltersProps {\n selectedFacets: readonly string[];\n onToggleFacet: (facet: string) => void;\n /** Automation names narrowing the list in `only-automations` mode. */\n selectedAutomationNames: readonly string[];\n onToggleAutomationName: (name: string) => void;\n onClearAll: () => void;\n}\n\n/**\n * Always-visible record of which facet selections are narrowing the list —\n * both families: user tags and automation names.\n *\n * The facet rows live two levels inside a menu (tag facets behind a toggle in\n * the layouts menu, automation names inside the advanced-options modal).\n * Without this strip a filter left switched on just makes conversations\n * disappear, with nothing on screen to say why or how to get them back — and\n * both selections are persisted, so a reload brings the narrowing back with\n * the explanation still buried.\n *\n * The automation *mode* deliberately has no chip here: it is a scope, not a\n * facet selection, and `onClearAll` leaves it alone for the same reason —\n * this strip must not silently switch a surface it doesn't show.\n *\n * Renders nothing when nothing is selected — an empty bar would cost a row\n * of a narrow sidebar to say \"no news\".\n */\nexport function ConversationActiveTagFilters({\n selectedFacets,\n onToggleFacet,\n selectedAutomationNames,\n onToggleAutomationName,\n onClearAll,\n}: ConversationActiveTagFiltersProps) {\n const { t } = useTranslation(\"openhands\");\n\n if (selectedFacets.length === 0 && selectedAutomationNames.length === 0) {\n return null;\n }\n\n const chipClassName =\n \"flex min-w-0 max-w-full cursor-pointer items-center gap-1 rounded-full bg-[var(--oh-surface)] px-2 py-0.5 text-[10px] leading-4 text-white hover:bg-white/10\";\n\n return (\n <div\n data-testid=\"conversation-active-tag-filters\"\n className=\"flex min-w-0 items-start gap-1.5 border-b border-[var(--oh-border)] px-4 py-1.5\"\n >\n <Tag\n className=\"mt-1 h-3 w-3 shrink-0 text-[var(--oh-muted)]\"\n aria-hidden\n />\n\n <div className=\"flex min-w-0 flex-1 flex-wrap items-center gap-1\">\n {selectedFacets.map((facet) => (\n <button\n key={facet}\n type=\"button\"\n data-testid={`active-tag-filter-${facet}`}\n onClick={() => onToggleFacet(facet)}\n className={chipClassName}\n >\n <span className=\"truncate\">{formatTagFacetLabel(facet)}</span>\n <X className=\"h-3 w-3 shrink-0\" aria-hidden />\n </button>\n ))}\n\n {selectedAutomationNames.map((name) => (\n <button\n key={name}\n type=\"button\"\n data-testid={`active-automation-filter-${name}`}\n onClick={() => onToggleAutomationName(name)}\n className={chipClassName}\n >\n <Workflow className=\"h-3 w-3 shrink-0\" aria-hidden />\n <span className=\"truncate\">\n {name === UNNAMED_AUTOMATION_FACET\n ? t(I18nKey.CONVERSATION_PANEL$AUTOMATION_UNNAMED)\n : name}\n </span>\n <X className=\"h-3 w-3 shrink-0\" aria-hidden />\n </button>\n ))}\n </div>\n\n <button\n type=\"button\"\n data-testid=\"clear-tag-filters\"\n onClick={onClearAll}\n className=\"shrink-0 cursor-pointer text-[10px] leading-5 text-[var(--oh-muted)] hover:text-white\"\n >\n {t(I18nKey.CONVERSATION_PANEL$CLEAR_FILTERS)}\n </button>\n </div>\n );\n}\n"],"mappings":"8dAmCA,SAAgB,EAA6B,CAC3C,iBACA,gBACA,0BACA,yBACA,cACoC,CACpC,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAExC,GAAI,EAAe,SAAW,GAAK,EAAwB,SAAW,EACpE,OAAO,KAGT,IAAM,EACJ,+JAEF,OACE,EAAA,EAAA,MAAC,MAAD,CACE,cAAY,kCACZ,UAAU,2FAFZ,EAIE,EAAA,EAAA,KAAC,EAAA,IAAD,CACE,UAAU,+CACV,cAAA,EACD,CAAA,GAED,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,4DAAf,CACG,EAAe,IAAK,IACnB,EAAA,EAAA,MAAC,SAAD,CAEE,KAAK,SACL,cAAa,qBAAqB,IAClC,YAAe,EAAc,CAAK,EAClC,UAAW,WALb,EAOE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,oBAAY,EAAA,oBAAoB,CAAK,CAAQ,CAAA,GAC7D,EAAA,EAAA,KAAC,EAAA,EAAD,CAAG,UAAU,mBAAmB,cAAA,EAAa,CAAA,CACvC,GARD,CAQC,CACT,EAEA,EAAwB,IAAK,IAC5B,EAAA,EAAA,MAAC,SAAD,CAEE,KAAK,SACL,cAAa,4BAA4B,IACzC,YAAe,EAAuB,CAAI,EAC1C,UAAW,WALb,EAOE,EAAA,EAAA,KAAC,EAAA,SAAD,CAAU,UAAU,mBAAmB,cAAA,EAAa,CAAA,GACpD,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,oBACb,IAAA,cACG,EAAE,EAAA,QAAQ,qCAAqC,EAC/C,CACA,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAG,UAAU,mBAAmB,cAAA,EAAa,CAAA,CACvC,GAbD,CAaC,CACT,CACE,KAEL,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,cAAY,oBACZ,QAAS,EACT,UAAU,iGAET,EAAE,EAAA,QAAQ,gCAAgC,CACrC,CAAA,CACL,GAET"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
interface ConversationActiveTagFiltersProps {
|
|
2
|
+
selectedFacets: readonly string[];
|
|
3
|
+
onToggleFacet: (facet: string) => void;
|
|
4
|
+
/** Automation names narrowing the list in `only-automations` mode. */
|
|
5
|
+
selectedAutomationNames: readonly string[];
|
|
6
|
+
onToggleAutomationName: (name: string) => void;
|
|
7
|
+
onClearAll: () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Always-visible record of which facet selections are narrowing the list —
|
|
11
|
+
* both families: user tags and automation names.
|
|
12
|
+
*
|
|
13
|
+
* The facet rows live two levels inside a menu (tag facets behind a toggle in
|
|
14
|
+
* the layouts menu, automation names inside the advanced-options modal).
|
|
15
|
+
* Without this strip a filter left switched on just makes conversations
|
|
16
|
+
* disappear, with nothing on screen to say why or how to get them back — and
|
|
17
|
+
* both selections are persisted, so a reload brings the narrowing back with
|
|
18
|
+
* the explanation still buried.
|
|
19
|
+
*
|
|
20
|
+
* The automation *mode* deliberately has no chip here: it is a scope, not a
|
|
21
|
+
* facet selection, and `onClearAll` leaves it alone for the same reason —
|
|
22
|
+
* this strip must not silently switch a surface it doesn't show.
|
|
23
|
+
*
|
|
24
|
+
* Renders nothing when nothing is selected — an empty bar would cost a row
|
|
25
|
+
* of a narrow sidebar to say "no news".
|
|
26
|
+
*/
|
|
27
|
+
export declare function ConversationActiveTagFilters({ selectedFacets, onToggleFacet, selectedAutomationNames, onToggleAutomationName, onClearAll, }: ConversationActiveTagFiltersProps): import("react").JSX.Element | null;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { I18nKey as t } from "../../../i18n/declaration.js";
|
|
3
|
+
import { Tag as n } from "../../../node_modules/lucide-react/dist/esm/icons/tag.js";
|
|
4
|
+
import { Workflow as r } from "../../../node_modules/lucide-react/dist/esm/icons/workflow.js";
|
|
5
|
+
import { X as i } from "../../../node_modules/lucide-react/dist/esm/icons/x.js";
|
|
6
|
+
import { formatTagFacetLabel as a } from "./conversation-panel-list-helpers.js";
|
|
7
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/features/conversation-panel/conversation-active-tag-filters.tsx
|
|
9
|
+
function c({ selectedFacets: c, onToggleFacet: l, selectedAutomationNames: u, onToggleAutomationName: d, onClearAll: f }) {
|
|
10
|
+
let { t: p } = e("openhands");
|
|
11
|
+
if (c.length === 0 && u.length === 0) return null;
|
|
12
|
+
let m = "flex min-w-0 max-w-full cursor-pointer items-center gap-1 rounded-full bg-[var(--oh-surface)] px-2 py-0.5 text-[10px] leading-4 text-white hover:bg-white/10";
|
|
13
|
+
return /* @__PURE__ */ s("div", {
|
|
14
|
+
"data-testid": "conversation-active-tag-filters",
|
|
15
|
+
className: "flex min-w-0 items-start gap-1.5 border-b border-[var(--oh-border)] px-4 py-1.5",
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ o(n, {
|
|
18
|
+
className: "mt-1 h-3 w-3 shrink-0 text-[var(--oh-muted)]",
|
|
19
|
+
"aria-hidden": !0
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ s("div", {
|
|
22
|
+
className: "flex min-w-0 flex-1 flex-wrap items-center gap-1",
|
|
23
|
+
children: [c.map((e) => /* @__PURE__ */ s("button", {
|
|
24
|
+
type: "button",
|
|
25
|
+
"data-testid": `active-tag-filter-${e}`,
|
|
26
|
+
onClick: () => l(e),
|
|
27
|
+
className: m,
|
|
28
|
+
children: [/* @__PURE__ */ o("span", {
|
|
29
|
+
className: "truncate",
|
|
30
|
+
children: a(e)
|
|
31
|
+
}), /* @__PURE__ */ o(i, {
|
|
32
|
+
className: "h-3 w-3 shrink-0",
|
|
33
|
+
"aria-hidden": !0
|
|
34
|
+
})]
|
|
35
|
+
}, e)), u.map((e) => /* @__PURE__ */ s("button", {
|
|
36
|
+
type: "button",
|
|
37
|
+
"data-testid": `active-automation-filter-${e}`,
|
|
38
|
+
onClick: () => d(e),
|
|
39
|
+
className: m,
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ o(r, {
|
|
42
|
+
className: "h-3 w-3 shrink-0",
|
|
43
|
+
"aria-hidden": !0
|
|
44
|
+
}),
|
|
45
|
+
/* @__PURE__ */ o("span", {
|
|
46
|
+
className: "truncate",
|
|
47
|
+
children: e === "__unnamed__" ? p(t.CONVERSATION_PANEL$AUTOMATION_UNNAMED) : e
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ o(i, {
|
|
50
|
+
className: "h-3 w-3 shrink-0",
|
|
51
|
+
"aria-hidden": !0
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
}, e))]
|
|
55
|
+
}),
|
|
56
|
+
/* @__PURE__ */ o("button", {
|
|
57
|
+
type: "button",
|
|
58
|
+
"data-testid": "clear-tag-filters",
|
|
59
|
+
onClick: f,
|
|
60
|
+
className: "shrink-0 cursor-pointer text-[10px] leading-5 text-[var(--oh-muted)] hover:text-white",
|
|
61
|
+
children: p(t.CONVERSATION_PANEL$CLEAR_FILTERS)
|
|
62
|
+
})
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
export { c as ConversationActiveTagFilters };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=conversation-active-tag-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-active-tag-filters.js","names":[],"sources":["../../../../src/components/features/conversation-panel/conversation-active-tag-filters.tsx"],"sourcesContent":["import { Tag, Workflow, X } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport {\n formatTagFacetLabel,\n UNNAMED_AUTOMATION_FACET,\n} from \"./conversation-panel-list-helpers\";\n\ninterface ConversationActiveTagFiltersProps {\n selectedFacets: readonly string[];\n onToggleFacet: (facet: string) => void;\n /** Automation names narrowing the list in `only-automations` mode. */\n selectedAutomationNames: readonly string[];\n onToggleAutomationName: (name: string) => void;\n onClearAll: () => void;\n}\n\n/**\n * Always-visible record of which facet selections are narrowing the list —\n * both families: user tags and automation names.\n *\n * The facet rows live two levels inside a menu (tag facets behind a toggle in\n * the layouts menu, automation names inside the advanced-options modal).\n * Without this strip a filter left switched on just makes conversations\n * disappear, with nothing on screen to say why or how to get them back — and\n * both selections are persisted, so a reload brings the narrowing back with\n * the explanation still buried.\n *\n * The automation *mode* deliberately has no chip here: it is a scope, not a\n * facet selection, and `onClearAll` leaves it alone for the same reason —\n * this strip must not silently switch a surface it doesn't show.\n *\n * Renders nothing when nothing is selected — an empty bar would cost a row\n * of a narrow sidebar to say \"no news\".\n */\nexport function ConversationActiveTagFilters({\n selectedFacets,\n onToggleFacet,\n selectedAutomationNames,\n onToggleAutomationName,\n onClearAll,\n}: ConversationActiveTagFiltersProps) {\n const { t } = useTranslation(\"openhands\");\n\n if (selectedFacets.length === 0 && selectedAutomationNames.length === 0) {\n return null;\n }\n\n const chipClassName =\n \"flex min-w-0 max-w-full cursor-pointer items-center gap-1 rounded-full bg-[var(--oh-surface)] px-2 py-0.5 text-[10px] leading-4 text-white hover:bg-white/10\";\n\n return (\n <div\n data-testid=\"conversation-active-tag-filters\"\n className=\"flex min-w-0 items-start gap-1.5 border-b border-[var(--oh-border)] px-4 py-1.5\"\n >\n <Tag\n className=\"mt-1 h-3 w-3 shrink-0 text-[var(--oh-muted)]\"\n aria-hidden\n />\n\n <div className=\"flex min-w-0 flex-1 flex-wrap items-center gap-1\">\n {selectedFacets.map((facet) => (\n <button\n key={facet}\n type=\"button\"\n data-testid={`active-tag-filter-${facet}`}\n onClick={() => onToggleFacet(facet)}\n className={chipClassName}\n >\n <span className=\"truncate\">{formatTagFacetLabel(facet)}</span>\n <X className=\"h-3 w-3 shrink-0\" aria-hidden />\n </button>\n ))}\n\n {selectedAutomationNames.map((name) => (\n <button\n key={name}\n type=\"button\"\n data-testid={`active-automation-filter-${name}`}\n onClick={() => onToggleAutomationName(name)}\n className={chipClassName}\n >\n <Workflow className=\"h-3 w-3 shrink-0\" aria-hidden />\n <span className=\"truncate\">\n {name === UNNAMED_AUTOMATION_FACET\n ? t(I18nKey.CONVERSATION_PANEL$AUTOMATION_UNNAMED)\n : name}\n </span>\n <X className=\"h-3 w-3 shrink-0\" aria-hidden />\n </button>\n ))}\n </div>\n\n <button\n type=\"button\"\n data-testid=\"clear-tag-filters\"\n onClick={onClearAll}\n className=\"shrink-0 cursor-pointer text-[10px] leading-5 text-[var(--oh-muted)] hover:text-white\"\n >\n {t(I18nKey.CONVERSATION_PANEL$CLEAR_FILTERS)}\n </button>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAmCA,SAAgB,EAA6B,EAC3C,mBACA,kBACA,4BACA,2BACA,iBACoC;CACpC,IAAM,EAAE,SAAM,EAAe,WAAW;CAExC,IAAI,EAAe,WAAW,KAAK,EAAwB,WAAW,GACpE,OAAO;CAGT,IAAM,IACJ;CAEF,OACE,kBAAC,OAAD;EACE,eAAY;EACZ,WAAU;YAFZ;GAIE,kBAAC,GAAD;IACE,WAAU;IACV,eAAA;GACD,CAAA;GAED,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,EAAe,KAAK,MACnB,kBAAC,UAAD;KAEE,MAAK;KACL,eAAa,qBAAqB;KAClC,eAAe,EAAc,CAAK;KAClC,WAAW;eALb,CAOE,kBAAC,QAAD;MAAM,WAAU;gBAAY,EAAoB,CAAK;KAAQ,CAAA,GAC7D,kBAAC,GAAD;MAAG,WAAU;MAAmB,eAAA;KAAa,CAAA,CACvC;OARD,CAQC,CACT,GAEA,EAAwB,KAAK,MAC5B,kBAAC,UAAD;KAEE,MAAK;KACL,eAAa,4BAA4B;KACzC,eAAe,EAAuB,CAAI;KAC1C,WAAW;eALb;MAOE,kBAAC,GAAD;OAAU,WAAU;OAAmB,eAAA;MAAa,CAAA;MACpD,kBAAC,QAAD;OAAM,WAAU;iBACb,MAAA,gBACG,EAAE,EAAQ,qCAAqC,IAC/C;MACA,CAAA;MACN,kBAAC,GAAD;OAAG,WAAU;OAAmB,eAAA;MAAa,CAAA;KACvC;OAbD,CAaC,CACT,CACE;;GAEL,kBAAC,UAAD;IACE,MAAK;IACL,eAAY;IACZ,SAAS;IACT,WAAU;cAET,EAAE,EAAQ,gCAAgC;GACrC,CAAA;EACL;;AAET"}
|
package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),n=require("../../../../i18n/declaration.cjs"),r=require("../../../../utils/status.cjs"),i=require("../../../../utils/utils.cjs"),a=require("../ellipsis-button.cjs"),o=require("./conversation-card-context-menu.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("react-dom");function u({contextMenuOpen:e,onContextMenuToggle:u,onDelete:d,onArchive:f,onUnarchive:p,onStop:m,onEdit:h,
|
|
1
|
+
const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),n=require("../../../../i18n/declaration.cjs"),r=require("../../../../utils/status.cjs"),i=require("../../../../utils/utils.cjs"),a=require("../ellipsis-button.cjs"),o=require("./conversation-card-context-menu.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("react-dom");function u({contextMenuOpen:e,onContextMenuToggle:u,onDelete:d,onArchive:f,onUnarchive:p,onStop:m,onEdit:h,onEditTags:g,onDownloadViaVSCode:_,onDownloadConversation:v,executionStatus:y,conversationId:b,showOptions:x}){let{t:S}=t.useTranslation(`openhands`),C=r.isExecutionPaused(y),w=r.isExecutionActive(y),T=(0,s.useRef)(null),[,E]=(0,s.useReducer)(e=>e+1,0);(0,s.useLayoutEffect)(()=>{if(!e)return;E();let t=0,n=()=>{t||=window.requestAnimationFrame(()=>{t=0,E()})};return window.addEventListener(`resize`,n),window.addEventListener(`scroll`,n,!0),()=>{t&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,n),window.removeEventListener(`scroll`,n,!0)}},[e]);let D=(()=>{if(!e||!T.current)return;let t=T.current.getBoundingClientRect(),n=Number(window.innerWidth)||0,r=Number(window.innerHeight)||0,i=Number(t.bottom)||0,a=Number(t.right)||0;return{position:`fixed`,top:i+320+8>r?Math.max(8,t.top-320-4):i+4,right:Math.max(8,n-a),zIndex:1e5}})(),O=typeof document<`u`?document.body:null;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(a.EllipsisButton,{ref:T,onClick:t=>{t.preventDefault(),t.stopPropagation(),u(!e)},ariaLabel:S(n.I18nKey.COMMON$MORE_OPTIONS),className:i.cn(C&&`opacity-60`)}),e&&D&&O?(0,l.createPortal)((0,c.jsx)(o.ConversationCardContextMenu,{ignoreOutsideClickRef:T,floatingStyle:D,onClose:()=>u(!1),onDelete:d,onArchive:f,onUnarchive:p,onStop:w?m:void 0,onEdit:h,onEditTags:g,onDownloadViaVSCode:b&&x?_:void 0,onDownloadConversation:b?v:void 0,position:`bottom`}),O):null]})}exports.ConversationCardActions=u;
|
|
2
2
|
//# sourceMappingURL=conversation-card-actions.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-card-actions.cjs","names":[],"sources":["../../../../../src/components/features/conversation-panel/conversation-card/conversation-card-actions.tsx"],"sourcesContent":["import React, { useLayoutEffect, useReducer, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"#/utils/utils\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { ExecutionStatus } from \"#/types/agent-server/core/base/common\";\nimport { isExecutionActive, isExecutionPaused } from \"#/utils/status\";\nimport { ConversationCardContextMenu } from \"./conversation-card-context-menu\";\nimport { EllipsisButton } from \"../ellipsis-button\";\n\ninterface ConversationCardActionsProps {\n contextMenuOpen: boolean;\n onContextMenuToggle: (isOpen: boolean) => void;\n onDelete?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onArchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onUnarchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onStop?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onEdit?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadViaVSCode?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadConversation?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n executionStatus?: ExecutionStatus | null;\n conversationId?: string;\n showOptions?: boolean;\n}\n\nexport function ConversationCardActions({\n contextMenuOpen,\n onContextMenuToggle,\n onDelete,\n onArchive,\n onUnarchive,\n onStop,\n onEdit,\n onDownloadViaVSCode,\n onDownloadConversation,\n executionStatus,\n conversationId,\n showOptions,\n}: ConversationCardActionsProps) {\n const { t } = useTranslation(\"openhands\");\n const isPaused = isExecutionPaused(executionStatus);\n const isActive = isExecutionActive(executionStatus);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [, bumpPosition] = useReducer((i: number) => i + 1, 0);\n\n useLayoutEffect(() => {\n if (!contextMenuOpen) return undefined;\n // Anchor ref is assigned after the ellipsis mounts; measure on the next frame.\n bumpPosition();\n // The scroll listener is in capture phase so it fires for nested scroll\n // containers too. Coalesce bursts via rAF so fast scrolling triggers at\n // most one reposition per paint frame instead of one per scroll event.\n let frame = 0;\n const update = () => {\n if (frame) return;\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n bumpPosition();\n });\n };\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n };\n }, [contextMenuOpen]);\n\n const floatingStyle: React.CSSProperties | undefined = (() => {\n if (!contextMenuOpen || !anchorRef.current) return undefined;\n const rect = anchorRef.current.getBoundingClientRect();\n const vw = Number(window.innerWidth) || 0;\n const vh = Number(window.innerHeight) || 0;\n const bottom = Number(rect.bottom) || 0;\n const rectRight = Number(rect.right) || 0;\n // Conservative cap on this menu's intrinsic height (~7 items at\n // ~36px + padding). When the anchor is so close to the viewport\n // bottom that opening downward would clip the menu, flip it above\n // the anchor instead. Slight over-estimate is fine — it just means\n // we flip a few pixels earlier than strictly necessary.\n const ESTIMATED_MENU_HEIGHT = 320;\n const gutter = 8;\n const overflowsDownward = bottom + ESTIMATED_MENU_HEIGHT + gutter > vh;\n const top = overflowsDownward\n ? Math.max(gutter, rect.top - ESTIMATED_MENU_HEIGHT - 4)\n : bottom + 4;\n return {\n position: \"fixed\",\n top,\n right: Math.max(gutter, vw - rectRight),\n zIndex: 100_000,\n };\n })();\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n return (\n <>\n <EllipsisButton\n ref={anchorRef}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onContextMenuToggle(!contextMenuOpen);\n }}\n ariaLabel={t(I18nKey.COMMON$MORE_OPTIONS)}\n className={cn(isPaused && \"opacity-60\")}\n />\n {contextMenuOpen && floatingStyle && portalTarget\n ? createPortal(\n <ConversationCardContextMenu\n ignoreOutsideClickRef={anchorRef}\n floatingStyle={floatingStyle}\n onClose={() => onContextMenuToggle(false)}\n onDelete={onDelete}\n onArchive={onArchive}\n onUnarchive={onUnarchive}\n onStop={isActive ? onStop : undefined}\n onEdit={onEdit}\n onDownloadViaVSCode={\n conversationId && showOptions ? onDownloadViaVSCode : undefined\n }\n onDownloadConversation={\n conversationId ? onDownloadConversation : undefined\n }\n position=\"bottom\"\n />,\n portalTarget,\n )\n : null}\n </>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversation-card-actions.cjs","names":[],"sources":["../../../../../src/components/features/conversation-panel/conversation-card/conversation-card-actions.tsx"],"sourcesContent":["import React, { useLayoutEffect, useReducer, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"#/utils/utils\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { ExecutionStatus } from \"#/types/agent-server/core/base/common\";\nimport { isExecutionActive, isExecutionPaused } from \"#/utils/status\";\nimport { ConversationCardContextMenu } from \"./conversation-card-context-menu\";\nimport { EllipsisButton } from \"../ellipsis-button\";\n\ninterface ConversationCardActionsProps {\n contextMenuOpen: boolean;\n onContextMenuToggle: (isOpen: boolean) => void;\n onDelete?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onArchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onUnarchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onStop?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onEdit?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onEditTags?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadViaVSCode?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadConversation?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n executionStatus?: ExecutionStatus | null;\n conversationId?: string;\n showOptions?: boolean;\n}\n\nexport function ConversationCardActions({\n contextMenuOpen,\n onContextMenuToggle,\n onDelete,\n onArchive,\n onUnarchive,\n onStop,\n onEdit,\n onEditTags,\n onDownloadViaVSCode,\n onDownloadConversation,\n executionStatus,\n conversationId,\n showOptions,\n}: ConversationCardActionsProps) {\n const { t } = useTranslation(\"openhands\");\n const isPaused = isExecutionPaused(executionStatus);\n const isActive = isExecutionActive(executionStatus);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [, bumpPosition] = useReducer((i: number) => i + 1, 0);\n\n useLayoutEffect(() => {\n if (!contextMenuOpen) return undefined;\n // Anchor ref is assigned after the ellipsis mounts; measure on the next frame.\n bumpPosition();\n // The scroll listener is in capture phase so it fires for nested scroll\n // containers too. Coalesce bursts via rAF so fast scrolling triggers at\n // most one reposition per paint frame instead of one per scroll event.\n let frame = 0;\n const update = () => {\n if (frame) return;\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n bumpPosition();\n });\n };\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n };\n }, [contextMenuOpen]);\n\n const floatingStyle: React.CSSProperties | undefined = (() => {\n if (!contextMenuOpen || !anchorRef.current) return undefined;\n const rect = anchorRef.current.getBoundingClientRect();\n const vw = Number(window.innerWidth) || 0;\n const vh = Number(window.innerHeight) || 0;\n const bottom = Number(rect.bottom) || 0;\n const rectRight = Number(rect.right) || 0;\n // Conservative cap on this menu's intrinsic height (~7 items at\n // ~36px + padding). When the anchor is so close to the viewport\n // bottom that opening downward would clip the menu, flip it above\n // the anchor instead. Slight over-estimate is fine — it just means\n // we flip a few pixels earlier than strictly necessary.\n const ESTIMATED_MENU_HEIGHT = 320;\n const gutter = 8;\n const overflowsDownward = bottom + ESTIMATED_MENU_HEIGHT + gutter > vh;\n const top = overflowsDownward\n ? Math.max(gutter, rect.top - ESTIMATED_MENU_HEIGHT - 4)\n : bottom + 4;\n return {\n position: \"fixed\",\n top,\n right: Math.max(gutter, vw - rectRight),\n zIndex: 100_000,\n };\n })();\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n return (\n <>\n <EllipsisButton\n ref={anchorRef}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onContextMenuToggle(!contextMenuOpen);\n }}\n ariaLabel={t(I18nKey.COMMON$MORE_OPTIONS)}\n className={cn(isPaused && \"opacity-60\")}\n />\n {contextMenuOpen && floatingStyle && portalTarget\n ? createPortal(\n <ConversationCardContextMenu\n ignoreOutsideClickRef={anchorRef}\n floatingStyle={floatingStyle}\n onClose={() => onContextMenuToggle(false)}\n onDelete={onDelete}\n onArchive={onArchive}\n onUnarchive={onUnarchive}\n onStop={isActive ? onStop : undefined}\n onEdit={onEdit}\n onEditTags={onEditTags}\n onDownloadViaVSCode={\n conversationId && showOptions ? onDownloadViaVSCode : undefined\n }\n onDownloadConversation={\n conversationId ? onDownloadConversation : undefined\n }\n position=\"bottom\"\n />,\n portalTarget,\n )\n : null}\n </>\n );\n}\n"],"mappings":"scA0BA,SAAgB,EAAwB,CACtC,kBACA,sBACA,WACA,YACA,cACA,SACA,SACA,aACA,sBACA,yBACA,kBACA,iBACA,eAC+B,CAC/B,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAClC,EAAW,EAAA,kBAAkB,CAAe,EAC5C,EAAW,EAAA,kBAAkB,CAAe,EAC5C,GAAA,EAAA,EAAA,QAAsC,IAAI,EAC1C,EAAG,IAAA,EAAA,EAAA,YAA4B,GAAc,EAAI,EAAG,CAAC,GAE3D,EAAA,EAAA,qBAAsB,CACpB,GAAI,CAAC,EAAiB,OAEtB,EAAa,EAIb,IAAI,EAAQ,EACN,MAAe,CACf,AACJ,IAAQ,OAAO,0BAA4B,CACzC,EAAQ,EACR,EAAa,CACf,CAAC,CACH,EAGA,OAFA,OAAO,iBAAiB,SAAU,CAAM,EACxC,OAAO,iBAAiB,SAAU,EAAQ,EAAI,MACjC,CACP,GAAO,OAAO,qBAAqB,CAAK,EAC5C,OAAO,oBAAoB,SAAU,CAAM,EAC3C,OAAO,oBAAoB,SAAU,EAAQ,EAAI,CACnD,CACF,EAAG,CAAC,CAAe,CAAC,EAEpB,IAAM,OAAwD,CAC5D,GAAI,CAAC,GAAmB,CAAC,EAAU,QAAS,OAC5C,IAAM,EAAO,EAAU,QAAQ,sBAAsB,EAC/C,EAAK,OAAO,OAAO,UAAU,GAAK,EAClC,EAAK,OAAO,OAAO,WAAW,GAAK,EACnC,EAAS,OAAO,EAAK,MAAM,GAAK,EAChC,EAAY,OAAO,EAAK,KAAK,GAAK,EAYxC,MAAO,CACL,SAAU,QACV,IANwB,EAAS,IAAwB,EAAS,EAEhE,KAAK,IAAI,EAAQ,EAAK,IAAM,IAAwB,CAAC,EACrD,EAAS,EAIX,MAAO,KAAK,IAAI,EAAQ,EAAK,CAAS,EACtC,OAAQ,GACV,CACF,GAAG,EAEG,EAAe,OAAO,SAAa,IAAc,SAAS,KAAO,KAEvE,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAA,eAAD,CACE,IAAK,EACL,QAAU,GAAU,CAClB,EAAM,eAAe,EACrB,EAAM,gBAAgB,EACtB,EAAoB,CAAC,CAAe,CACtC,EACA,UAAW,EAAE,EAAA,QAAQ,mBAAmB,EACxC,UAAW,EAAA,GAAG,GAAY,YAAY,CACvC,CAAA,EACA,GAAmB,GAAiB,GAAA,EAAA,EAAA,eAE/B,EAAA,EAAA,KAAC,EAAA,4BAAD,CACE,sBAAuB,EACR,gBACf,YAAe,EAAoB,EAAK,EAC9B,WACC,YACE,cACb,OAAQ,EAAW,EAAS,IAAA,GACpB,SACI,aACZ,oBACE,GAAkB,EAAc,EAAsB,IAAA,GAExD,uBACE,EAAiB,EAAyB,IAAA,GAE5C,SAAS,QACV,CAAA,EACD,CACF,EACA,IACJ,CAAA,CAAA,CAEN"}
|
package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.d.ts
CHANGED
|
@@ -8,11 +8,12 @@ interface ConversationCardActionsProps {
|
|
|
8
8
|
onUnarchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
9
9
|
onStop?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
10
10
|
onEdit?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
11
|
+
onEditTags?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
11
12
|
onDownloadViaVSCode?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
12
13
|
onDownloadConversation?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
13
14
|
executionStatus?: ExecutionStatus | null;
|
|
14
15
|
conversationId?: string;
|
|
15
16
|
showOptions?: boolean;
|
|
16
17
|
}
|
|
17
|
-
export declare function ConversationCardActions({ contextMenuOpen, onContextMenuToggle, onDelete, onArchive, onUnarchive, onStop, onEdit, onDownloadViaVSCode, onDownloadConversation, executionStatus, conversationId, showOptions, }: ConversationCardActionsProps): React.JSX.Element;
|
|
18
|
+
export declare function ConversationCardActions({ contextMenuOpen, onContextMenuToggle, onDelete, onArchive, onUnarchive, onStop, onEdit, onEditTags, onDownloadViaVSCode, onDownloadConversation, executionStatus, conversationId, showOptions, }: ConversationCardActionsProps): React.JSX.Element;
|
|
18
19
|
export {};
|
package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js
CHANGED
|
@@ -8,50 +8,51 @@ import { useLayoutEffect as s, useReducer as c, useRef as l } from "react";
|
|
|
8
8
|
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
9
9
|
import { createPortal as p } from "react-dom";
|
|
10
10
|
//#region src/components/features/conversation-panel/conversation-card/conversation-card-actions.tsx
|
|
11
|
-
function m({ contextMenuOpen: m, onContextMenuToggle: h, onDelete: g, onArchive: _, onUnarchive: v, onStop: y, onEdit: b,
|
|
12
|
-
let { t:
|
|
11
|
+
function m({ contextMenuOpen: m, onContextMenuToggle: h, onDelete: g, onArchive: _, onUnarchive: v, onStop: y, onEdit: b, onEditTags: x, onDownloadViaVSCode: S, onDownloadConversation: C, executionStatus: w, conversationId: T, showOptions: E }) {
|
|
12
|
+
let { t: D } = e("openhands"), O = r(w), k = n(w), A = l(null), [, j] = c((e) => e + 1, 0);
|
|
13
13
|
s(() => {
|
|
14
14
|
if (!m) return;
|
|
15
|
-
|
|
15
|
+
j();
|
|
16
16
|
let e = 0, t = () => {
|
|
17
17
|
e ||= window.requestAnimationFrame(() => {
|
|
18
|
-
e = 0,
|
|
18
|
+
e = 0, j();
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
return window.addEventListener("resize", t), window.addEventListener("scroll", t, !0), () => {
|
|
22
22
|
e && window.cancelAnimationFrame(e), window.removeEventListener("resize", t), window.removeEventListener("scroll", t, !0);
|
|
23
23
|
};
|
|
24
24
|
}, [m]);
|
|
25
|
-
let
|
|
26
|
-
if (!m || !
|
|
27
|
-
let e =
|
|
25
|
+
let M = (() => {
|
|
26
|
+
if (!m || !A.current) return;
|
|
27
|
+
let e = A.current.getBoundingClientRect(), t = Number(window.innerWidth) || 0, n = Number(window.innerHeight) || 0, r = Number(e.bottom) || 0, i = Number(e.right) || 0;
|
|
28
28
|
return {
|
|
29
29
|
position: "fixed",
|
|
30
30
|
top: r + 320 + 8 > n ? Math.max(8, e.top - 320 - 4) : r + 4,
|
|
31
31
|
right: Math.max(8, t - i),
|
|
32
32
|
zIndex: 1e5
|
|
33
33
|
};
|
|
34
|
-
})(),
|
|
34
|
+
})(), N = typeof document < "u" ? document.body : null;
|
|
35
35
|
return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(a, {
|
|
36
|
-
ref:
|
|
36
|
+
ref: A,
|
|
37
37
|
onClick: (e) => {
|
|
38
38
|
e.preventDefault(), e.stopPropagation(), h(!m);
|
|
39
39
|
},
|
|
40
|
-
ariaLabel:
|
|
41
|
-
className: i(
|
|
42
|
-
}), m &&
|
|
43
|
-
ignoreOutsideClickRef:
|
|
44
|
-
floatingStyle:
|
|
40
|
+
ariaLabel: D(t.COMMON$MORE_OPTIONS),
|
|
41
|
+
className: i(O && "opacity-60")
|
|
42
|
+
}), m && M && N ? p(/* @__PURE__ */ d(o, {
|
|
43
|
+
ignoreOutsideClickRef: A,
|
|
44
|
+
floatingStyle: M,
|
|
45
45
|
onClose: () => h(!1),
|
|
46
46
|
onDelete: g,
|
|
47
47
|
onArchive: _,
|
|
48
48
|
onUnarchive: v,
|
|
49
|
-
onStop:
|
|
49
|
+
onStop: k ? y : void 0,
|
|
50
50
|
onEdit: b,
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
onEditTags: x,
|
|
52
|
+
onDownloadViaVSCode: T && E ? S : void 0,
|
|
53
|
+
onDownloadConversation: T ? C : void 0,
|
|
53
54
|
position: "bottom"
|
|
54
|
-
}),
|
|
55
|
+
}), N) : null] });
|
|
55
56
|
}
|
|
56
57
|
//#endregion
|
|
57
58
|
export { m as ConversationCardActions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-card-actions.js","names":[],"sources":["../../../../../src/components/features/conversation-panel/conversation-card/conversation-card-actions.tsx"],"sourcesContent":["import React, { useLayoutEffect, useReducer, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"#/utils/utils\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { ExecutionStatus } from \"#/types/agent-server/core/base/common\";\nimport { isExecutionActive, isExecutionPaused } from \"#/utils/status\";\nimport { ConversationCardContextMenu } from \"./conversation-card-context-menu\";\nimport { EllipsisButton } from \"../ellipsis-button\";\n\ninterface ConversationCardActionsProps {\n contextMenuOpen: boolean;\n onContextMenuToggle: (isOpen: boolean) => void;\n onDelete?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onArchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onUnarchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onStop?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onEdit?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadViaVSCode?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadConversation?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n executionStatus?: ExecutionStatus | null;\n conversationId?: string;\n showOptions?: boolean;\n}\n\nexport function ConversationCardActions({\n contextMenuOpen,\n onContextMenuToggle,\n onDelete,\n onArchive,\n onUnarchive,\n onStop,\n onEdit,\n onDownloadViaVSCode,\n onDownloadConversation,\n executionStatus,\n conversationId,\n showOptions,\n}: ConversationCardActionsProps) {\n const { t } = useTranslation(\"openhands\");\n const isPaused = isExecutionPaused(executionStatus);\n const isActive = isExecutionActive(executionStatus);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [, bumpPosition] = useReducer((i: number) => i + 1, 0);\n\n useLayoutEffect(() => {\n if (!contextMenuOpen) return undefined;\n // Anchor ref is assigned after the ellipsis mounts; measure on the next frame.\n bumpPosition();\n // The scroll listener is in capture phase so it fires for nested scroll\n // containers too. Coalesce bursts via rAF so fast scrolling triggers at\n // most one reposition per paint frame instead of one per scroll event.\n let frame = 0;\n const update = () => {\n if (frame) return;\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n bumpPosition();\n });\n };\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n };\n }, [contextMenuOpen]);\n\n const floatingStyle: React.CSSProperties | undefined = (() => {\n if (!contextMenuOpen || !anchorRef.current) return undefined;\n const rect = anchorRef.current.getBoundingClientRect();\n const vw = Number(window.innerWidth) || 0;\n const vh = Number(window.innerHeight) || 0;\n const bottom = Number(rect.bottom) || 0;\n const rectRight = Number(rect.right) || 0;\n // Conservative cap on this menu's intrinsic height (~7 items at\n // ~36px + padding). When the anchor is so close to the viewport\n // bottom that opening downward would clip the menu, flip it above\n // the anchor instead. Slight over-estimate is fine — it just means\n // we flip a few pixels earlier than strictly necessary.\n const ESTIMATED_MENU_HEIGHT = 320;\n const gutter = 8;\n const overflowsDownward = bottom + ESTIMATED_MENU_HEIGHT + gutter > vh;\n const top = overflowsDownward\n ? Math.max(gutter, rect.top - ESTIMATED_MENU_HEIGHT - 4)\n : bottom + 4;\n return {\n position: \"fixed\",\n top,\n right: Math.max(gutter, vw - rectRight),\n zIndex: 100_000,\n };\n })();\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n return (\n <>\n <EllipsisButton\n ref={anchorRef}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onContextMenuToggle(!contextMenuOpen);\n }}\n ariaLabel={t(I18nKey.COMMON$MORE_OPTIONS)}\n className={cn(isPaused && \"opacity-60\")}\n />\n {contextMenuOpen && floatingStyle && portalTarget\n ? createPortal(\n <ConversationCardContextMenu\n ignoreOutsideClickRef={anchorRef}\n floatingStyle={floatingStyle}\n onClose={() => onContextMenuToggle(false)}\n onDelete={onDelete}\n onArchive={onArchive}\n onUnarchive={onUnarchive}\n onStop={isActive ? onStop : undefined}\n onEdit={onEdit}\n onDownloadViaVSCode={\n conversationId && showOptions ? onDownloadViaVSCode : undefined\n }\n onDownloadConversation={\n conversationId ? onDownloadConversation : undefined\n }\n position=\"bottom\"\n />,\n portalTarget,\n )\n : null}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"conversation-card-actions.js","names":[],"sources":["../../../../../src/components/features/conversation-panel/conversation-card/conversation-card-actions.tsx"],"sourcesContent":["import React, { useLayoutEffect, useReducer, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"#/utils/utils\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { ExecutionStatus } from \"#/types/agent-server/core/base/common\";\nimport { isExecutionActive, isExecutionPaused } from \"#/utils/status\";\nimport { ConversationCardContextMenu } from \"./conversation-card-context-menu\";\nimport { EllipsisButton } from \"../ellipsis-button\";\n\ninterface ConversationCardActionsProps {\n contextMenuOpen: boolean;\n onContextMenuToggle: (isOpen: boolean) => void;\n onDelete?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onArchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onUnarchive?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onStop?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onEdit?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onEditTags?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadViaVSCode?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onDownloadConversation?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n executionStatus?: ExecutionStatus | null;\n conversationId?: string;\n showOptions?: boolean;\n}\n\nexport function ConversationCardActions({\n contextMenuOpen,\n onContextMenuToggle,\n onDelete,\n onArchive,\n onUnarchive,\n onStop,\n onEdit,\n onEditTags,\n onDownloadViaVSCode,\n onDownloadConversation,\n executionStatus,\n conversationId,\n showOptions,\n}: ConversationCardActionsProps) {\n const { t } = useTranslation(\"openhands\");\n const isPaused = isExecutionPaused(executionStatus);\n const isActive = isExecutionActive(executionStatus);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [, bumpPosition] = useReducer((i: number) => i + 1, 0);\n\n useLayoutEffect(() => {\n if (!contextMenuOpen) return undefined;\n // Anchor ref is assigned after the ellipsis mounts; measure on the next frame.\n bumpPosition();\n // The scroll listener is in capture phase so it fires for nested scroll\n // containers too. Coalesce bursts via rAF so fast scrolling triggers at\n // most one reposition per paint frame instead of one per scroll event.\n let frame = 0;\n const update = () => {\n if (frame) return;\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n bumpPosition();\n });\n };\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n };\n }, [contextMenuOpen]);\n\n const floatingStyle: React.CSSProperties | undefined = (() => {\n if (!contextMenuOpen || !anchorRef.current) return undefined;\n const rect = anchorRef.current.getBoundingClientRect();\n const vw = Number(window.innerWidth) || 0;\n const vh = Number(window.innerHeight) || 0;\n const bottom = Number(rect.bottom) || 0;\n const rectRight = Number(rect.right) || 0;\n // Conservative cap on this menu's intrinsic height (~7 items at\n // ~36px + padding). When the anchor is so close to the viewport\n // bottom that opening downward would clip the menu, flip it above\n // the anchor instead. Slight over-estimate is fine — it just means\n // we flip a few pixels earlier than strictly necessary.\n const ESTIMATED_MENU_HEIGHT = 320;\n const gutter = 8;\n const overflowsDownward = bottom + ESTIMATED_MENU_HEIGHT + gutter > vh;\n const top = overflowsDownward\n ? Math.max(gutter, rect.top - ESTIMATED_MENU_HEIGHT - 4)\n : bottom + 4;\n return {\n position: \"fixed\",\n top,\n right: Math.max(gutter, vw - rectRight),\n zIndex: 100_000,\n };\n })();\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n return (\n <>\n <EllipsisButton\n ref={anchorRef}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onContextMenuToggle(!contextMenuOpen);\n }}\n ariaLabel={t(I18nKey.COMMON$MORE_OPTIONS)}\n className={cn(isPaused && \"opacity-60\")}\n />\n {contextMenuOpen && floatingStyle && portalTarget\n ? createPortal(\n <ConversationCardContextMenu\n ignoreOutsideClickRef={anchorRef}\n floatingStyle={floatingStyle}\n onClose={() => onContextMenuToggle(false)}\n onDelete={onDelete}\n onArchive={onArchive}\n onUnarchive={onUnarchive}\n onStop={isActive ? onStop : undefined}\n onEdit={onEdit}\n onEditTags={onEditTags}\n onDownloadViaVSCode={\n conversationId && showOptions ? onDownloadViaVSCode : undefined\n }\n onDownloadConversation={\n conversationId ? onDownloadConversation : undefined\n }\n position=\"bottom\"\n />,\n portalTarget,\n )\n : null}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;AA0BA,SAAgB,EAAwB,EACtC,oBACA,wBACA,aACA,cACA,gBACA,WACA,WACA,eACA,wBACA,2BACA,oBACA,mBACA,kBAC+B;CAC/B,IAAM,EAAE,SAAM,EAAe,WAAW,GAClC,IAAW,EAAkB,CAAe,GAC5C,IAAW,EAAkB,CAAe,GAC5C,IAAY,EAA0B,IAAI,GAC1C,GAAG,KAAgB,GAAY,MAAc,IAAI,GAAG,CAAC;CAE3D,QAAsB;EACpB,IAAI,CAAC,GAAiB;EAEtB,EAAa;EAIb,IAAI,IAAQ,GACN,UAAe;GACf,AACJ,MAAQ,OAAO,4BAA4B;IAEzC,AADA,IAAQ,GACR,EAAa;GACf,CAAC;EACH;EAGA,OAFA,OAAO,iBAAiB,UAAU,CAAM,GACxC,OAAO,iBAAiB,UAAU,GAAQ,EAAI,SACjC;GAGX,AAFI,KAAO,OAAO,qBAAqB,CAAK,GAC5C,OAAO,oBAAoB,UAAU,CAAM,GAC3C,OAAO,oBAAoB,UAAU,GAAQ,EAAI;EACnD;CACF,GAAG,CAAC,CAAe,CAAC;CAEpB,IAAM,WAAwD;EAC5D,IAAI,CAAC,KAAmB,CAAC,EAAU,SAAS;EAC5C,IAAM,IAAO,EAAU,QAAQ,sBAAsB,GAC/C,IAAK,OAAO,OAAO,UAAU,KAAK,GAClC,IAAK,OAAO,OAAO,WAAW,KAAK,GACnC,IAAS,OAAO,EAAK,MAAM,KAAK,GAChC,IAAY,OAAO,EAAK,KAAK,KAAK;EAYxC,OAAO;GACL,UAAU;GACV,KANwB,IAAS,MAAwB,IAAS,IAEhE,KAAK,IAAI,GAAQ,EAAK,MAAM,MAAwB,CAAC,IACrD,IAAS;GAIX,OAAO,KAAK,IAAI,GAAQ,IAAK,CAAS;GACtC,QAAQ;EACV;CACF,GAAG,GAEG,IAAe,OAAO,WAAa,MAAc,SAAS,OAAO;CAEvE,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,KAAK;EACL,UAAU,MAAU;GAGlB,AAFA,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,EAAoB,CAAC,CAAe;EACtC;EACA,WAAW,EAAE,EAAQ,mBAAmB;EACxC,WAAW,EAAG,KAAY,YAAY;CACvC,CAAA,GACA,KAAmB,KAAiB,IACjC,EACE,kBAAC,GAAD;EACE,uBAAuB;EACR;EACf,eAAe,EAAoB,EAAK;EAC9B;EACC;EACE;EACb,QAAQ,IAAW,IAAS,KAAA;EACpB;EACI;EACZ,qBACE,KAAkB,IAAc,IAAsB,KAAA;EAExD,wBACE,IAAiB,IAAyB,KAAA;EAE5C,UAAS;CACV,CAAA,GACD,CACF,IACA,IACJ,EAAA,CAAA;AAEN"}
|