@openhands/agent-canvas 1.13.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.windows.md +2 -2
- package/build/assets/acp-providers-BKvmTf82.js +1 -0
- package/build/assets/active-backend-context-DKFSMbn3.js +2 -0
- package/build/assets/agent-context-settings-D3PjSTU1.js +1 -0
- package/build/assets/agent-profiles-settings-D4cY5U2T.js +1 -0
- package/build/assets/agent-server-conversation-service.api-DozDKIW_.js +86 -0
- package/build/assets/agent-settings-351vXWc9.js +2 -0
- package/build/assets/agent-settings-Ce7BDZ6I.js +1 -0
- package/build/assets/alert-banner-Kyy1YWZU.js +1 -0
- package/build/assets/api-error-message-BJyfWp6p.js +1 -0
- package/build/assets/api-key-entry-screen-INIxqAMs.js +1 -0
- package/build/assets/app-settings-CbHqzQus.js +1 -0
- package/build/assets/automation-detail-DXDhUwPq.js +3 -0
- package/build/assets/automation-export-BRopEHMu.js +2 -0
- package/build/assets/automation-git-sync-CzyS4cn1.js +1 -0
- package/build/assets/automation-setup-route-FRr05f_g.js +1 -0
- package/build/assets/automation-templates-C_0FZgLG.js +1 -0
- package/build/assets/automations-list-CERuQWE6.js +1 -0
- package/build/assets/back-nav-button-Dm9tIjVf.js +1 -0
- package/build/assets/backend-form-modal-DK78-jn1.js +1 -0
- package/build/assets/backend-synced-settings-badge-3fOwg6Bd.js +1 -0
- package/build/assets/badge-D4SqUCsR.js +1 -0
- package/build/assets/base-modal-C7_BDl_U.js +1 -0
- package/build/assets/bot-C-0Wu7vQ.js +1 -0
- package/build/assets/brand-button-Dxv6PDeN.js +1 -0
- package/build/assets/browser-11etCQ04.js +7 -0
- package/build/assets/browser-tab-BAl4ckJE.js +1 -0
- package/build/assets/chat-send-button-DWwR2cgI.js +1 -0
- package/build/assets/check-Cf2YoT90.js +1 -0
- package/build/assets/chevron-down-C3OQ-ehx.js +1 -0
- package/build/assets/chevron-right-CN1uUiJ1.js +1 -0
- package/build/assets/circle-check-g5yeGMd-.js +1 -0
- package/build/assets/circle-plus-check-toggle-CBh_qomE.js +1 -0
- package/build/assets/cloud-funnel-analytics-287iIERo.js +1 -0
- package/build/assets/cog-C4rrw-ZK.js +1 -0
- package/build/assets/command-menu-BZQ8S3Ke.js +1 -0
- package/build/assets/commits-tab-DZtJgaDM.js +1 -0
- package/build/assets/condenser-settings-BcNmYR4s.js +1 -0
- package/build/assets/confirmation-modal-Bk4JRcCM.js +1 -0
- package/build/assets/context-menu-list-item-lVYETtY5.js +1 -0
- package/build/assets/conversation-CchMzpGl.js +1 -0
- package/build/assets/conversation-Dpzftz57.js +93 -0
- package/build/assets/conversation-panel-CchMzpGl.js +1 -0
- package/build/assets/conversation-state-store-a9d2fxRc.js +1 -0
- package/build/assets/conversation-store-Ca3ghXap.js +6 -0
- package/build/assets/conversation-tab-empty-state-HJtkmHZj.js +1 -0
- package/build/assets/copy-to-clipboard-button-Cjkswvnj.js +1 -0
- package/build/assets/device-verify-EZhHhBT7.js +1 -0
- package/build/assets/dropdown-classes-DJe-E6MC.js +1 -0
- package/build/assets/edit-automation-modal-D-urtv8n.js +1 -0
- package/build/assets/empty-state-CvaVahVr.js +1 -0
- package/build/assets/entry.client-C7Bi2tkU.js +2 -0
- package/build/assets/enum-filter-dropdown-DliX_Lo0.js +1 -0
- package/build/assets/environment-switch-overlay-CEKrFiMw.js +1 -0
- package/build/assets/error-state-BALXiBNy.js +1 -0
- package/build/assets/extension-module-card-classes-DpeaYhYo.js +1 -0
- package/build/assets/extensions-hub-CFduxBnk.js +1 -0
- package/build/assets/extensions-navigation-BeC224yX.js +1 -0
- package/build/assets/external-link-DFpYunfj.js +1 -0
- package/build/assets/files-tab-CL3J9b3p.js +1 -0
- package/build/assets/form-control-classes-CGw40z5h.js +1 -0
- package/build/assets/format-model-name-BNPKVsIq.js +1 -0
- package/build/assets/get-git-path-DlAJa_i6.js +1 -0
- package/build/assets/git-repo-dropdown-DGMEhz7d.js +1 -0
- package/build/assets/git-repo-dropdown-ai8qaNkD.js +1 -0
- package/build/assets/highlighted-source-view-C3sxykQi.js +1 -0
- package/build/assets/home-BCGlNJCA.js +1 -0
- package/build/assets/home-DB1pRqTC.js +1 -0
- package/build/assets/home-automation-run-tooltip-CooFQRIG.js +1 -0
- package/build/assets/home-store-Dl1dPE58.js +1 -0
- package/build/assets/index-home-DB1pRqTC.js +1 -0
- package/build/assets/info-uYSVzX86.js +1 -0
- package/build/assets/install-server-modal-BbJdhzet.js +1 -0
- package/build/assets/kebab-menu-item-content-BYokkRHi.js +1 -0
- package/build/assets/key-Cn5za3rg.js +1 -0
- package/build/assets/launch-C1ieiOGe.js +1 -0
- package/build/assets/list-filter-OFkpRrmi.js +1 -0
- package/build/assets/list-todo-Cuu-STFc.js +1 -0
- package/build/assets/llm-not-configured-banner-BqqYnJ1t.js +27 -0
- package/build/assets/llm-settings-CnDbbmVW.js +1 -0
- package/build/assets/llm-settings-S8Yjg__1.js +1 -0
- package/build/assets/llm-subscription-service-BpPfzW4x.js +1 -0
- package/build/assets/loader-circle-nvrwthvj.js +1 -0
- package/build/assets/loading-spinner-0L3ZTToZ.js +1 -0
- package/build/assets/manage-backends-modal-BCUPswyl.js +1 -0
- package/build/assets/manifest-58597dde.js +1 -0
- package/build/assets/manifest-subpage-layout-BGhiUQbA.js +1 -0
- package/build/assets/map-provider-B9LTm23I.js +1 -0
- package/build/assets/markdown-renderer-Cb2sBWtV.js +8 -0
- package/build/assets/mcp-CKbR4Vft.js +1 -0
- package/build/assets/mcp-marketplace-utils-C13fFccR.js +1 -0
- package/build/assets/mcp-page-Bm4K2NQq.js +9 -0
- package/build/assets/messages-BTN5thLe.js +40 -0
- package/build/assets/modal-body-CMOc2tLl.js +1 -0
- package/build/assets/modal-classes-BAb4Y_BG.js +1 -0
- package/build/assets/modal-close-button-CkJ0Ktjj.js +1 -0
- package/build/assets/mouse-pointer-click-CsgRs_-r.js +1 -0
- package/build/assets/onboarding-Cx_kaiD1.js +1 -0
- package/build/assets/onboarding-modal-vMwn7ihv.js +1 -0
- package/build/assets/organization-service.api-C8XpQ0pM.js +1 -0
- package/build/assets/parse-git-remote-url-DpDM9bK6.js +1 -0
- package/build/assets/pencil-Clh1Wjvh.js +1 -0
- package/build/assets/planner-tab-DQvDU3ap.js +1 -0
- package/build/assets/plug-BuQhHSSG.js +1 -0
- package/build/assets/plugins-management-service-BjYeF0b0.js +1 -0
- package/build/assets/plus-CEKne-Yp.js +1 -0
- package/build/assets/profiles-service.api-QB-T_u-g.js +1 -0
- package/build/assets/providers-FfSZ5TXP.js +1 -0
- package/build/assets/proxy-tcFL2yTQ.js +1 -0
- package/build/assets/puzzle-A9pGxxai.js +1 -0
- package/build/assets/recommended-automations-launcher-Bw8uC4V6.js +1 -0
- package/build/assets/refresh-cw-Bh69DyYO.js +1 -0
- package/build/assets/root-BLeQfBEq.css +1 -0
- package/build/assets/root-ZKKYPR1Z.js +2 -0
- package/build/assets/root-layout-luJoE9IG.js +2 -0
- package/build/assets/schema-field-Csw5fhtN.js +1 -0
- package/build/assets/scroll-fade-state-Dw-i4SGq.js +1 -0
- package/build/assets/sdk-section-page-HTffvm7Q.js +1 -0
- package/build/assets/secret-form-HTUbYw5o.js +1 -0
- package/build/assets/secrets-service-BTor9uAU.js +1 -0
- package/build/assets/secrets-settings-BizaTEr1.js +1 -0
- package/build/assets/server-process-C9RKzd1x.js +1 -0
- package/build/assets/settings-BlmrkwRi.js +1 -0
- package/build/assets/settings-DcNPxz0v.js +1 -0
- package/build/assets/settings-dropdown-input-tM0A0ipy.js +1 -0
- package/build/assets/settings-index-CKq0b0Vg.js +1 -0
- package/build/assets/settings-input-C03KUoSC.js +1 -0
- package/build/assets/settings-list-classes-BJ0g8rWj.js +1 -0
- package/build/assets/settings-modal-AzEF1QPP.js +1 -0
- package/build/assets/settings-service.api-B2agVfjL.js +1 -0
- package/build/assets/settings-switch-CQE0EGC-.js +1 -0
- package/build/assets/settings-utils-ClYOkbbI.js +1 -0
- package/build/assets/shared-conversation-B55pCyBG.js +1 -0
- package/build/assets/shield-check-CFDViW82.js +1 -0
- package/build/assets/sidebar-layout-D3hE08wK.js +1 -0
- package/build/assets/sidebar-mobile-menu-toggle-BOtyJHwE.js +1 -0
- package/build/assets/sidebar-nav-link-CPzhyHQg.js +1 -0
- package/build/assets/sidebar-onboarding-checklist-storage-3qYflszY.js +1 -0
- package/build/assets/sidebar-store-DtpU7zaI.js +1 -0
- package/build/assets/skill-card-pill-row-CFxjoqxn.js +1 -0
- package/build/assets/skill-filter-CWZ5kjcg.js +2 -0
- package/build/assets/skill-icon-badge-CPQJ6A-I.js +1 -0
- package/build/assets/skill-scope-CV1dkAbW.js +1 -0
- package/build/assets/skills-plugins-DGHULTq6.js +1 -0
- package/build/assets/skills-settings-CM1lFv3e.js +1 -0
- package/build/assets/styled-tooltip-Dl06rkpY.js +1 -0
- package/build/assets/task-list-tab-04GNQuii.js +1 -0
- package/build/assets/terminal-Cj0iHIW7.js +3 -0
- package/build/assets/toggle-switch-Fd_QGz0r.js +1 -0
- package/build/assets/trash-2-Dl8_RGz0.js +1 -0
- package/build/assets/trash-_RMt7Ayc.js +1 -0
- package/build/assets/triangle-alert-SM-q4NU_.js +1 -0
- package/build/assets/typography-SgFy466J.js +1 -0
- package/build/assets/usage-tab-BcfWV6db.js +1 -0
- package/build/assets/use-acp-credential-form-BsSW5NHG.js +1 -0
- package/build/assets/use-activate-agent-profile-B2NS8nA5.js +1 -0
- package/build/assets/use-agent-profiles-DWBPC0Si.js +1 -0
- package/build/assets/use-automation-health-BxXdzZMP.js +1 -0
- package/build/assets/use-automations-zYb0dUny.js +1 -0
- package/build/assets/use-can-manage-org-profiles-BWMahtUh.js +1 -0
- package/build/assets/use-cloud-current-user-id-CPHMDG-C.js +1 -0
- package/build/assets/use-config-Bft35DOK.js +1 -0
- package/build/assets/use-create-conversation-DwN5vv2f.js +1 -0
- package/build/assets/use-create-secret-BSxJMxHp.js +1 -0
- package/build/assets/use-get-secrets-BT4ihRwj.js +1 -0
- package/build/assets/use-has-permission-B3C8rQmR.js +1 -0
- package/build/assets/use-is-authed-CFGkY3-Z.js +1 -0
- package/build/assets/use-launch-skill-in-chat-BYjYihBP.js +1 -0
- package/build/assets/use-llm-configured-BI6obxsc.js +1 -0
- package/build/assets/use-llm-profiles-djGAhTWL.js +1 -0
- package/build/assets/use-manifest-capabilities-3z0-1G59.js +1 -0
- package/build/assets/use-onboarding-completion-BXpyUSsJ.js +1 -0
- package/build/assets/use-plugins-marketplace-DI4_pK56.js +1 -0
- package/build/assets/use-save-agent-profile-DdBSTdpN.js +1 -0
- package/build/assets/use-save-settings-CUZW6yXP.js +1 -0
- package/build/assets/use-settings-C5VhGpqd.js +1 -0
- package/build/assets/use-settings-nav-items-DHaUu1Dg.js +16 -0
- package/build/assets/use-tracking-D5t9otIF.js +3 -0
- package/build/assets/use-user-conversation-DT0_QCnL.js +1 -0
- package/build/assets/useInfiniteQuery-CgeUQPfs.js +1 -0
- package/build/assets/useMutation-DFnzkf6f.js +1 -0
- package/build/assets/useQueries-BhbrGEf1.js +1 -0
- package/build/assets/useQuery-BXWbZBZl.js +1 -0
- package/build/assets/utils-DaCIEEQP.js +1 -0
- package/build/assets/vendor~browser-hbU4u2Ag.js +47 -0
- package/build/assets/vendor~commits-tab-BaO2Ce3e.js +11 -0
- package/build/assets/vendor~conversation-panel~conversation-CTvDDiXg.js +1 -0
- package/build/assets/vendor~entry.client-BFE7Llz9.js +1 -0
- package/build/assets/vendor~entry.client-BaKt_PIp.js +9 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js +186 -0
- package/build/assets/vendor~index-home~home~conversation-panel~conversation-BTyukeM-.js +13 -0
- package/build/assets/vendor~root-layout-BlUaZ18v.js +1 -0
- package/build/assets/vendor~root-layout~conversation-panel~conversation-BYAWJwQX.js +1 -0
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-CHaLEBVR.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-B2OLKL7N.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-DXqM7vqB.js +1 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-Dtu7BpYk.js +48 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js +1 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-DonTKfQD.js +4949 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-BgxDvUcf.js +8420 -0
- package/build/assets/verification-settings-Bj6bo097.js +1 -0
- package/build/assets/wrench-hi7Q13dF.js +1 -0
- package/build/assets/x-DkgltWa0.js +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +183 -44
- package/build/locales/ca/openhands.json +183 -44
- package/build/locales/de/openhands.json +183 -44
- package/build/locales/en/openhands.json +183 -44
- package/build/locales/es/openhands.json +183 -44
- package/build/locales/fr/openhands.json +183 -44
- package/build/locales/it/openhands.json +183 -44
- package/build/locales/ja/openhands.json +183 -44
- package/build/locales/ko-KR/openhands.json +183 -44
- package/build/locales/no/openhands.json +183 -44
- package/build/locales/pt/openhands.json +183 -44
- package/build/locales/tr/openhands.json +183 -44
- package/build/locales/uk/openhands.json +183 -44
- package/build/locales/zh-CN/openhands.json +183 -44
- package/build/locales/zh-TW/openhands.json +183 -44
- package/config/defaults.json +2 -2
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +10 -1
- package/dist/api/agent-server-adapter.js +115 -110
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/automation-service/automation-service.api.cjs +1 -1
- package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
- package/dist/api/automation-service/automation-service.api.d.ts +23 -2
- package/dist/api/automation-service/automation-service.api.js +130 -73
- package/dist/api/automation-service/automation-service.api.js.map +1 -1
- package/dist/api/backend-registry/url-selection.cjs +1 -1
- package/dist/api/backend-registry/url-selection.cjs.map +1 -1
- package/dist/api/backend-registry/url-selection.d.ts +2 -1
- package/dist/api/backend-registry/url-selection.js +2 -2
- package/dist/api/backend-registry/url-selection.js.map +1 -1
- package/dist/api/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 +9 -0
- package/dist/api/cloud/conversation-service.api.js +11 -1
- package/dist/api/cloud/conversation-service.api.js.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.js +29 -24
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/git-provider-items-service.cjs +2 -0
- package/dist/api/git-provider-items-service.cjs.map +1 -0
- package/dist/api/git-provider-items-service.d.ts +25 -0
- package/dist/api/git-provider-items-service.js +127 -0
- package/dist/api/git-provider-items-service.js.map +1 -0
- package/dist/api/mcp-health/probe-mcp-server-health.cjs +1 -1
- package/dist/api/mcp-health/probe-mcp-server-health.js +31 -31
- package/dist/api/open-hands.types.d.ts +0 -19
- package/dist/api/profiles-service/profiles-service.api.cjs +1 -1
- package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
- package/dist/api/profiles-service/profiles-service.api.d.ts +29 -2
- package/dist/api/profiles-service/profiles-service.api.js +25 -2
- package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
- package/dist/api/provider-connections-service/provider-connections-service.api.cjs +2 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.cjs.map +1 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.d.ts +34 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.js +50 -0
- package/dist/api/provider-connections-service/provider-connections-service.api.js.map +1 -0
- package/dist/api/secrets-service.cjs +1 -1
- package/dist/api/secrets-service.cjs.map +1 -1
- package/dist/api/secrets-service.d.ts +5 -0
- package/dist/api/secrets-service.js +12 -6
- package/dist/api/secrets-service.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/index.d.ts +0 -1
- package/dist/components/conversation-events/chat/event-message.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message.js +1 -1
- package/dist/components/conversation-events/chat/event-message.js.map +1 -1
- package/dist/components/conversation-events/chat/messages.cjs.map +1 -1
- package/dist/components/conversation-events/chat/messages.js.map +1 -1
- package/dist/components/features/automations/add-automation-menu.d.ts +7 -0
- package/dist/components/features/automations/add-automation-modal.cjs +2 -0
- package/dist/components/features/automations/add-automation-modal.cjs.map +1 -0
- package/dist/components/features/automations/add-automation-modal.js +42 -0
- package/dist/components/features/automations/add-automation-modal.js.map +1 -0
- package/dist/components/features/automations/automation-action-button-classes.cjs +2 -0
- package/dist/components/features/automations/automation-action-button-classes.cjs.map +1 -0
- package/dist/components/features/automations/automation-action-button-classes.d.ts +0 -2
- package/dist/components/features/automations/automation-action-button-classes.js +8 -0
- package/dist/components/features/automations/automation-action-button-classes.js.map +1 -0
- package/dist/components/features/automations/automation-card-skeleton.cjs +2 -0
- package/dist/components/features/automations/automation-card-skeleton.cjs.map +1 -0
- package/dist/components/features/automations/automation-card-skeleton.js +33 -0
- package/dist/components/features/automations/automation-card-skeleton.js.map +1 -0
- package/dist/components/features/automations/automation-card.cjs +2 -0
- package/dist/components/features/automations/automation-card.cjs.map +1 -0
- package/dist/components/features/automations/automation-card.d.ts +1 -1
- package/dist/components/features/automations/automation-card.js +160 -0
- package/dist/components/features/automations/automation-card.js.map +1 -0
- package/dist/components/features/automations/automation-group.cjs +2 -0
- package/dist/components/features/automations/automation-group.cjs.map +1 -0
- package/dist/components/features/automations/automation-group.js +54 -0
- package/dist/components/features/automations/automation-group.js.map +1 -0
- package/dist/components/features/automations/automation-list-row.cjs +2 -0
- package/dist/components/features/automations/automation-list-row.cjs.map +1 -0
- package/dist/components/features/automations/automation-list-row.js +152 -0
- package/dist/components/features/automations/automation-list-row.js.map +1 -0
- package/dist/components/features/automations/automation-run-insights.cjs +2 -0
- package/dist/components/features/automations/automation-run-insights.cjs.map +1 -0
- package/dist/components/features/automations/automation-run-insights.js +46 -0
- package/dist/components/features/automations/automation-run-insights.js.map +1 -0
- package/dist/components/features/automations/automation-view-mode.cjs +2 -0
- package/dist/components/features/automations/automation-view-mode.cjs.map +1 -0
- package/dist/components/features/automations/automation-view-mode.d.ts +5 -1
- package/dist/components/features/automations/automation-view-mode.js +6 -0
- package/dist/components/features/automations/automation-view-mode.js.map +1 -0
- package/dist/components/features/automations/backend-not-configured.cjs +2 -0
- package/dist/components/features/automations/backend-not-configured.cjs.map +1 -0
- package/dist/components/features/automations/backend-not-configured.js +34 -0
- package/dist/components/features/automations/backend-not-configured.js.map +1 -0
- package/dist/components/features/automations/build-automation-menu-items.cjs +2 -0
- package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -0
- package/dist/components/features/automations/build-automation-menu-items.js +53 -0
- package/dist/components/features/automations/build-automation-menu-items.js.map +1 -0
- package/dist/components/features/automations/build-automation-pills.cjs +2 -0
- package/dist/components/features/automations/build-automation-pills.cjs.map +1 -0
- package/dist/components/features/automations/build-automation-pills.js +71 -0
- package/dist/components/features/automations/build-automation-pills.js.map +1 -0
- package/dist/components/features/automations/create-instructions.cjs +2 -0
- package/dist/components/features/automations/create-instructions.cjs.map +1 -0
- package/dist/components/features/automations/create-instructions.js +102 -0
- package/dist/components/features/automations/create-instructions.js.map +1 -0
- package/dist/components/features/automations/dashboard/automations-dashboard-controls.d.ts +4 -3
- package/dist/components/features/automations/detail/run-status-badge.cjs +2 -0
- package/dist/components/features/automations/detail/run-status-badge.cjs.map +1 -0
- package/dist/components/features/automations/detail/run-status-badge.js +102 -0
- package/dist/components/features/automations/detail/run-status-badge.js.map +1 -0
- package/dist/components/features/automations/empty-state.cjs +2 -0
- package/dist/components/features/automations/empty-state.cjs.map +1 -0
- package/dist/components/features/automations/empty-state.js +35 -0
- package/dist/components/features/automations/empty-state.js.map +1 -0
- package/dist/components/features/automations/error-state.cjs +2 -0
- package/dist/components/features/automations/error-state.cjs.map +1 -0
- package/dist/components/features/automations/error-state.js +28 -0
- package/dist/components/features/automations/error-state.js.map +1 -0
- package/dist/components/features/automations/git-sync/git-sync-activity-row.d.ts +15 -0
- package/dist/components/features/automations/git-sync/git-sync-config-form.d.ts +13 -0
- package/dist/components/features/automations/git-sync/git-sync-error-banner.d.ts +6 -0
- package/dist/components/features/automations/git-sync/git-sync-not-local-state.d.ts +1 -0
- package/dist/components/features/automations/git-sync/git-sync-overview-section.d.ts +12 -0
- package/dist/components/features/automations/git-sync/git-sync-skeleton.d.ts +1 -0
- package/dist/components/features/automations/git-sync/git-sync-status-pill.d.ts +7 -0
- package/dist/components/features/automations/git-sync/git-sync-unsupported-state.d.ts +7 -0
- package/dist/components/features/automations/import-automation-modal.d.ts +2 -1
- package/dist/components/features/automations/kebab-menu-item-content.cjs +2 -0
- package/dist/components/features/automations/kebab-menu-item-content.cjs.map +1 -0
- package/dist/components/features/automations/kebab-menu-item-content.js +21 -0
- package/dist/components/features/automations/kebab-menu-item-content.js.map +1 -0
- package/dist/components/features/automations/kebab-menu.cjs +2 -0
- package/dist/components/features/automations/kebab-menu.cjs.map +1 -0
- package/dist/components/features/automations/kebab-menu.d.ts +2 -1
- package/dist/components/features/automations/kebab-menu.js +76 -0
- package/dist/components/features/automations/kebab-menu.js.map +1 -0
- package/dist/components/features/automations/recommended-automations-launcher.cjs +2 -0
- package/dist/components/features/automations/recommended-automations-launcher.cjs.map +1 -0
- package/dist/components/features/automations/recommended-automations-launcher.d.ts +7 -1
- package/dist/components/features/automations/recommended-automations-launcher.js +134 -0
- package/dist/components/features/automations/recommended-automations-launcher.js.map +1 -0
- package/dist/components/features/automations/recommended-automations-rail.cjs +2 -0
- package/dist/components/features/automations/recommended-automations-rail.cjs.map +1 -0
- package/dist/components/features/automations/recommended-automations-rail.d.ts +9 -0
- package/dist/components/features/automations/recommended-automations-rail.js +127 -0
- package/dist/components/features/automations/recommended-automations-rail.js.map +1 -0
- package/dist/components/features/automations/recommended-automations-section.cjs +2 -0
- package/dist/components/features/automations/recommended-automations-section.cjs.map +1 -0
- package/dist/components/features/automations/recommended-automations-section.d.ts +2 -2
- package/dist/components/features/automations/recommended-automations-section.js +198 -0
- package/dist/components/features/automations/recommended-automations-section.js.map +1 -0
- package/dist/components/features/automations/responder-deployment-modal.cjs +2 -0
- package/dist/components/features/automations/responder-deployment-modal.cjs.map +1 -0
- package/dist/components/features/automations/responder-deployment-modal.d.ts +2 -1
- package/dist/components/features/automations/responder-deployment-modal.js +75 -0
- package/dist/components/features/automations/responder-deployment-modal.js.map +1 -0
- package/dist/components/features/automations/status-badge.cjs +2 -0
- package/dist/components/features/automations/status-badge.cjs.map +1 -0
- package/dist/components/features/automations/status-badge.js +12 -0
- package/dist/components/features/automations/status-badge.js.map +1 -0
- package/dist/components/features/automations/to-latest-run-state.cjs +2 -0
- package/dist/components/features/automations/to-latest-run-state.cjs.map +1 -0
- package/dist/components/features/automations/to-latest-run-state.d.ts +6 -0
- package/dist/components/features/automations/to-latest-run-state.js +21 -0
- package/dist/components/features/automations/to-latest-run-state.js.map +1 -0
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.js +10 -10
- package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
- package/dist/components/features/backends/manage-backends-modal.js +5 -5
- package/dist/components/features/chat/chat-interface.cjs +2 -2
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +151 -148
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/error-message-banner.cjs +1 -1
- package/dist/components/features/chat/error-message-banner.cjs.map +1 -1
- package/dist/components/features/chat/error-message-banner.d.ts +3 -1
- package/dist/components/features/chat/error-message-banner.js +64 -58
- package/dist/components/features/chat/error-message-banner.js.map +1 -1
- package/dist/components/features/command-menu/command-menu-items.d.ts +10 -4
- package/dist/components/features/conversation/conversation-git-actions-menu.cjs +2 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.d.ts +15 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.js +123 -0
- package/dist/components/features/conversation/conversation-git-actions-menu.js.map +1 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.cjs +2 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.d.ts +10 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.js +60 -0
- package/dist/components/features/conversation/conversation-git-actions-toggle.js.map +1 -0
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs +1 -1
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js +46 -10
- package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js.map +1 -1
- package/dist/components/features/conversation/conversation-main/conversation-main.cjs +1 -1
- package/dist/components/features/conversation/conversation-main/conversation-main.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-main/conversation-main.js +49 -43
- package/dist/components/features/conversation/conversation-main/conversation-main.js.map +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.cjs +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-name-with-status.js +49 -40
- package/dist/components/features/conversation/conversation-name-with-status.js.map +1 -1
- package/dist/components/features/conversation/conversation-name.cjs +1 -1
- package/dist/components/features/conversation/conversation-name.js +4 -4
- package/dist/components/features/conversation/conversation-overview-automations-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.js +48 -0
- package/dist/components/features/conversation/conversation-overview-automations-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.d.ts +10 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.js +221 -0
- package/dist/components/features/conversation/conversation-overview-context-menu.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.d.ts +2 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.js +88 -0
- package/dist/components/features/conversation/conversation-overview-diffs-row.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.js +138 -0
- package/dist/components/features/conversation/conversation-overview-drawer-content.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.d.ts +17 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.js +43 -0
- package/dist/components/features/conversation/conversation-overview-drawer-context.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.js +6 -0
- package/dist/components/features/conversation/conversation-overview-drawer.constants.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.d.ts +7 -0
- package/dist/components/features/conversation/conversation-overview-drawer.js +45 -0
- package/dist/components/features/conversation/conversation-overview-drawer.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.d.ts +12 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.js +13 -0
- package/dist/components/features/conversation/conversation-overview-drawer.types.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.d.ts +7 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.js +81 -0
- package/dist/components/features/conversation/conversation-overview-git-items-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-section.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-git-section.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-git-section.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-git-section.js +143 -0
- package/dist/components/features/conversation/conversation-overview-git-section.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.js +108 -0
- package/dist/components/features/conversation/conversation-overview-mcp-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.d.ts +24 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.js +12 -0
- package/dist/components/features/conversation/conversation-overview-panel.constants.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-panel.d.ts +2 -0
- package/dist/components/features/conversation/conversation-overview-panel.js +102 -0
- package/dist/components/features/conversation/conversation-overview-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.d.ts +8 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js +29 -0
- package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.js +89 -0
- package/dist/components/features/conversation/conversation-overview-secrets-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-sections.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-sections.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-sections.d.ts +43 -0
- package/dist/components/features/conversation/conversation-overview-sections.js +27 -0
- package/dist/components/features/conversation/conversation-overview-sections.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.d.ts +6 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.js +138 -0
- package/dist/components/features/conversation/conversation-overview-skills-panel.js.map +1 -0
- package/dist/components/features/conversation/conversation-overview-toggle.cjs +2 -0
- package/dist/components/features/conversation/conversation-overview-toggle.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-overview-toggle.d.ts +11 -0
- package/dist/components/features/conversation/conversation-overview-toggle.js +99 -0
- package/dist/components/features/conversation/conversation-overview-toggle.js.map +1 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs +2 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs.map +1 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.d.ts +4 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.js +7 -0
- package/dist/components/features/conversation/conversation-secondary-drawer.classes.js.map +1 -0
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js +10 -9
- package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +68 -62
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +98 -88
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
- package/dist/components/features/conversation/right-panel-toggle.cjs +1 -1
- package/dist/components/features/conversation/right-panel-toggle.cjs.map +1 -1
- package/dist/components/features/conversation/right-panel-toggle.d.ts +3 -2
- package/dist/components/features/conversation/right-panel-toggle.js +34 -33
- package/dist/components/features/conversation/right-panel-toggle.js.map +1 -1
- package/dist/components/features/conversation-panel/compact-conversation-row.cjs +1 -1
- package/dist/components/features/conversation-panel/compact-conversation-row.js +6 -6
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.d.ts +2 -1
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js +14 -7
- package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-panel.js +263 -236
- package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js +4 -4
- package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
- package/dist/components/features/diff-viewer/accordion-panel.cjs +2 -0
- package/dist/components/features/diff-viewer/accordion-panel.cjs.map +1 -0
- package/dist/components/features/diff-viewer/accordion-panel.d.ts +13 -0
- package/dist/components/features/diff-viewer/accordion-panel.js +41 -0
- package/dist/components/features/diff-viewer/accordion-panel.js.map +1 -0
- package/dist/components/features/diff-viewer/commit-list.cjs +1 -1
- package/dist/components/features/diff-viewer/commit-list.cjs.map +1 -1
- package/dist/components/features/diff-viewer/commit-list.d.ts +5 -1
- package/dist/components/features/diff-viewer/commit-list.js +30 -16
- package/dist/components/features/diff-viewer/commit-list.js.map +1 -1
- package/dist/components/features/diff-viewer/commit-row.cjs +1 -1
- package/dist/components/features/diff-viewer/commit-row.cjs.map +1 -1
- package/dist/components/features/diff-viewer/commit-row.d.ts +1 -2
- package/dist/components/features/diff-viewer/commit-row.js +38 -34
- package/dist/components/features/diff-viewer/commit-row.js.map +1 -1
- package/dist/components/features/diff-viewer/diff-change-list.cjs +2 -0
- package/dist/components/features/diff-viewer/diff-change-list.cjs.map +1 -0
- package/dist/components/features/diff-viewer/diff-change-list.d.ts +18 -0
- package/dist/components/features/diff-viewer/diff-change-list.js +22 -0
- package/dist/components/features/diff-viewer/diff-change-list.js.map +1 -0
- package/dist/components/features/diff-viewer/editor-container.cjs +1 -1
- package/dist/components/features/diff-viewer/editor-container.cjs.map +1 -1
- package/dist/components/features/diff-viewer/editor-container.d.ts +2 -1
- package/dist/components/features/diff-viewer/editor-container.js +8 -7
- package/dist/components/features/diff-viewer/editor-container.js.map +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.cjs +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.cjs.map +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +10 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.js +138 -112
- package/dist/components/features/diff-viewer/file-diff-viewer.js.map +1 -1
- package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs +2 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs.map +1 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.d.ts +12 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.js +51 -0
- package/dist/components/features/diff-viewer/uncommitted-changes-row.js.map +1 -0
- package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.js +0 -1
- package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
- package/dist/components/features/files-tab/file-quick-row.cjs +1 -1
- package/dist/components/features/files-tab/file-quick-row.cjs.map +1 -1
- package/dist/components/features/files-tab/file-quick-row.d.ts +9 -7
- package/dist/components/features/files-tab/file-quick-row.js +63 -34
- package/dist/components/features/files-tab/file-quick-row.js.map +1 -1
- package/dist/components/features/files-tab/files-tab-tree.constants.cjs +2 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.cjs.map +1 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.d.ts +7 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.js +6 -0
- package/dist/components/features/files-tab/files-tab-tree.constants.js.map +1 -0
- package/dist/components/features/files-tab/segmented-toggle.cjs +1 -1
- package/dist/components/features/files-tab/segmented-toggle.cjs.map +1 -1
- package/dist/components/features/files-tab/segmented-toggle.d.ts +5 -3
- package/dist/components/features/files-tab/segmented-toggle.js +10 -13
- package/dist/components/features/files-tab/segmented-toggle.js.map +1 -1
- package/dist/components/features/files-tab/tree-node.cjs +1 -1
- package/dist/components/features/files-tab/tree-node.cjs.map +1 -1
- package/dist/components/features/files-tab/tree-node.js +34 -32
- package/dist/components/features/files-tab/tree-node.js.map +1 -1
- package/dist/components/features/files-tab/workspace-path.cjs +2 -0
- package/dist/components/features/files-tab/workspace-path.cjs.map +1 -0
- package/dist/components/features/files-tab/workspace-path.d.ts +6 -0
- package/dist/components/features/files-tab/workspace-path.js +41 -0
- package/dist/components/features/files-tab/workspace-path.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.js +22 -0
- package/dist/components/features/home/featured-automations/automation-health-indicator.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js +45 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js +108 -0
- package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-health.cjs +2 -0
- package/dist/components/features/home/featured-automations/automation-run-health.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/automation-run-health.js +75 -0
- package/dist/components/features/home/featured-automations/automation-run-health.js.map +1 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +2 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +74 -0
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -0
- package/dist/components/features/home/featured-automations/pinned-automation-card.d.ts +3 -3
- package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs +1 -1
- package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs.map +1 -1
- package/dist/components/features/home/git-repo-dropdown/use-url-search.js +1 -1
- package/dist/components/features/home/git-repo-dropdown/use-url-search.js.map +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js +6 -6
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
- package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +6 -6
- package/dist/components/features/manifest/manifest-form-field.d.ts +4 -3
- package/dist/components/features/manifest/manifest-icons.cjs +2 -0
- package/dist/components/features/manifest/manifest-icons.cjs.map +1 -0
- package/dist/components/features/manifest/manifest-icons.d.ts +1 -0
- package/dist/components/features/manifest/manifest-icons.js +21 -0
- package/dist/components/features/manifest/manifest-icons.js.map +1 -0
- package/dist/components/features/manifest/manifest-repository-list.d.ts +25 -0
- package/dist/components/features/markdown/markdown-table-scroll.cjs +1 -1
- package/dist/components/features/markdown/markdown-table-scroll.cjs.map +1 -1
- package/dist/components/features/markdown/markdown-table-scroll.d.ts +2 -6
- package/dist/components/features/markdown/markdown-table-scroll.js +15 -21
- package/dist/components/features/markdown/markdown-table-scroll.js.map +1 -1
- package/dist/components/features/mcp-logo-badge.cjs +1 -1
- package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
- package/dist/components/features/mcp-logo-badge.d.ts +1 -1
- package/dist/components/features/mcp-logo-badge.js +1 -0
- package/dist/components/features/mcp-logo-badge.js.map +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.js +16 -16
- package/dist/components/features/mcp-page/index.cjs +1 -1
- package/dist/components/features/mcp-page/index.js +2 -2
- package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
- package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
- package/dist/components/features/mcp-page/install-server-modal.js +25 -25
- package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
- package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
- package/dist/components/features/mcp-page/installed-server-card.js +5 -5
- package/dist/components/features/mcp-page/marketplace-card.cjs +1 -1
- package/dist/components/features/mcp-page/marketplace-card.js +4 -4
- package/dist/components/features/mcp-page/marketplace-section.cjs +1 -1
- package/dist/components/features/mcp-page/marketplace-section.js +3 -3
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs +2 -0
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs.map +1 -0
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.js +60 -0
- package/dist/components/features/mcp-page/mcp-logo-stack-badge.js.map +1 -0
- package/dist/components/features/mcp-page/mcp-server-health.cjs +1 -1
- package/dist/components/features/mcp-page/mcp-server-health.js +18 -18
- package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +10 -7
- package/dist/components/features/onboarding/use-onboarding-completion.cjs +2 -0
- package/dist/components/features/onboarding/use-onboarding-completion.cjs.map +1 -0
- package/dist/components/features/onboarding/use-onboarding-completion.js +32 -0
- package/dist/components/features/onboarding/use-onboarding-completion.js.map +1 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs +2 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs.map +1 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.d.ts +1 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js +22 -0
- package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js.map +1 -0
- package/dist/components/features/settings/brand-button.cjs +1 -1
- package/dist/components/features/settings/brand-button.cjs.map +1 -1
- package/dist/components/features/settings/brand-button.d.ts +2 -0
- package/dist/components/features/settings/brand-button.js +4 -2
- package/dist/components/features/settings/brand-button.js.map +1 -1
- package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.d.ts +7 -0
- package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.js +7 -0
- package/dist/components/features/settings/llm-profiles/llm-profiles-manager.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-profiles-manager.js +3 -0
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +1 -0
- package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +20 -1
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.d.ts +19 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.js +10 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-row.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-row.d.ts +10 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-row.js +6 -0
- package/dist/components/features/settings/llm-profiles/provider-connections-manager.cjs +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connections-manager.d.ts +15 -0
- package/dist/components/features/settings/llm-profiles/provider-connections-manager.js +8 -0
- package/dist/components/features/settings/sdk-settings/schema-field.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/schema-field.js +6 -6
- package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js +7 -7
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js.map +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.cjs +1 -1
- package/dist/components/features/settings/secrets-settings/secret-form.js +7 -7
- package/dist/components/features/settings/settings-input.cjs +1 -1
- package/dist/components/features/settings/settings-input.cjs.map +1 -1
- package/dist/components/features/settings/settings-input.d.ts +6 -0
- package/dist/components/features/settings/settings-input.js +14 -13
- package/dist/components/features/settings/settings-input.js.map +1 -1
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.d.ts +7 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js +102 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.d.ts +8 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js +66 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.d.ts +3 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js +15 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.d.ts +10 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js +39 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs +2 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.d.ts +26 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js +78 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.d.ts +5 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.js +127 -0
- package/dist/components/features/sidebar/sidebar-onboarding-checklist.js.map +1 -0
- package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.js +115 -111
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs +2 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs.map +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.d.ts +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js +10 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js.map +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs +2 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs.map +1 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.d.ts +15 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js +75 -0
- package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js.map +1 -0
- package/dist/components/features/skills/add-skill-modal.cjs +2 -0
- package/dist/components/features/skills/add-skill-modal.cjs.map +1 -0
- package/dist/components/features/skills/add-skill-modal.js +164 -0
- package/dist/components/features/skills/add-skill-modal.js.map +1 -0
- package/dist/components/features/skills/build-skill-pills.cjs +2 -0
- package/dist/components/features/skills/build-skill-pills.cjs.map +1 -0
- package/dist/components/features/skills/build-skill-pills.js +88 -0
- package/dist/components/features/skills/build-skill-pills.js.map +1 -0
- package/dist/components/features/skills/get-skill-card-description.cjs +2 -0
- package/dist/components/features/skills/get-skill-card-description.cjs.map +1 -0
- package/dist/components/features/skills/get-skill-card-description.js +34 -0
- package/dist/components/features/skills/get-skill-card-description.js.map +1 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.cjs +2 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.cjs.map +1 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.js +9 -0
- package/dist/components/features/skills/get-skill-chat-launch-message.js.map +1 -0
- package/dist/components/features/skills/is-copyable-skill-source.cjs +2 -0
- package/dist/components/features/skills/is-copyable-skill-source.cjs.map +1 -0
- package/dist/components/features/skills/is-copyable-skill-source.js +9 -0
- package/dist/components/features/skills/is-copyable-skill-source.js.map +1 -0
- package/dist/components/features/skills/skill-card-pill-row.cjs +2 -0
- package/dist/components/features/skills/skill-card-pill-row.cjs.map +1 -0
- package/dist/components/features/skills/skill-card-pill-row.d.ts +1 -1
- package/dist/components/features/skills/skill-card-pill-row.js +137 -0
- package/dist/components/features/skills/skill-card-pill-row.js.map +1 -0
- package/dist/components/features/skills/skill-card.cjs +2 -0
- package/dist/components/features/skills/skill-card.cjs.map +1 -0
- package/dist/components/features/skills/skill-card.js +93 -0
- package/dist/components/features/skills/skill-card.js.map +1 -0
- package/dist/components/features/skills/skill-detail-modal.cjs +3 -0
- package/dist/components/features/skills/skill-detail-modal.cjs.map +1 -0
- package/dist/components/features/skills/skill-detail-modal.js +150 -0
- package/dist/components/features/skills/skill-detail-modal.js.map +1 -0
- package/dist/components/features/skills/skill-facet-rail.cjs +2 -0
- package/dist/components/features/skills/skill-facet-rail.cjs.map +1 -0
- package/dist/components/features/skills/skill-facet-rail.js +42 -0
- package/dist/components/features/skills/skill-facet-rail.js.map +1 -0
- package/dist/components/features/skills/skill-facet-row.cjs +2 -0
- package/dist/components/features/skills/skill-facet-row.cjs.map +1 -0
- package/dist/components/features/skills/skill-facet-row.js +44 -0
- package/dist/components/features/skills/skill-facet-row.js.map +1 -0
- package/dist/components/features/skills/skill-filter.cjs +2 -0
- package/dist/components/features/skills/skill-filter.cjs.map +1 -0
- package/dist/components/features/skills/skill-filter.js +166 -0
- package/dist/components/features/skills/skill-filter.js.map +1 -0
- package/dist/components/features/skills/skill-filters-modal.cjs +2 -0
- package/dist/components/features/skills/skill-filters-modal.cjs.map +1 -0
- package/dist/components/features/skills/skill-filters-modal.js +53 -0
- package/dist/components/features/skills/skill-filters-modal.js.map +1 -0
- package/dist/components/features/skills/skill-icon-badge.cjs +2 -0
- package/dist/components/features/skills/skill-icon-badge.cjs.map +1 -0
- package/dist/components/features/skills/skill-icon-badge.js +17 -0
- package/dist/components/features/skills/skill-icon-badge.js.map +1 -0
- package/dist/components/features/skills/skill-type-badge.cjs +2 -0
- package/dist/components/features/skills/skill-type-badge.cjs.map +1 -0
- package/dist/components/features/skills/skill-type-badge.js +21 -0
- package/dist/components/features/skills/skill-type-badge.js.map +1 -0
- package/dist/components/features/skills/skills-toolbar.cjs +2 -0
- package/dist/components/features/skills/skills-toolbar.cjs.map +1 -0
- package/dist/components/features/skills/skills-toolbar.js +63 -0
- package/dist/components/features/skills/skills-toolbar.js.map +1 -0
- package/dist/components/shared/buttons/circle-plus-check-toggle.cjs +1 -1
- package/dist/components/shared/buttons/circle-plus-check-toggle.cjs.map +1 -1
- package/dist/components/shared/buttons/circle-plus-check-toggle.js +19 -6
- package/dist/components/shared/buttons/circle-plus-check-toggle.js.map +1 -1
- package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs +1 -1
- package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs.map +1 -1
- package/dist/components/shared/buttons/conversation-confirmation-buttons.js +1 -1
- package/dist/components/shared/buttons/conversation-confirmation-buttons.js.map +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
- package/dist/components/shared/filters/enum-filter-dropdown.d.ts +4 -1
- package/dist/components/shared/filters/enum-filter-dropdown.js +14 -14
- package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
- package/dist/components/shared/modals/settings/settings-form.cjs +1 -1
- package/dist/components/shared/modals/settings/settings-form.js +4 -4
- package/dist/components/ui/resize-handle.cjs +1 -1
- package/dist/components/ui/resize-handle.cjs.map +1 -1
- package/dist/components/ui/resize-handle.d.ts +2 -1
- package/dist/components/ui/resize-handle.js +6 -5
- package/dist/components/ui/resize-handle.js.map +1 -1
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants/skills-docs.cjs +2 -0
- package/dist/constants/skills-docs.cjs.map +1 -0
- package/dist/constants/skills-docs.js +6 -0
- package/dist/constants/skills-docs.js.map +1 -0
- package/dist/contexts/conversation-websocket-context.cjs +3 -3
- package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
- package/dist/contexts/conversation-websocket-context.js +184 -159
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/fixtures/home-automations-demo.cjs +2 -0
- package/dist/fixtures/home-automations-demo.cjs.map +1 -0
- package/dist/fixtures/home-automations-demo.d.ts +1 -3
- package/dist/fixtures/home-automations-demo.js +384 -0
- package/dist/fixtures/home-automations-demo.js.map +1 -0
- package/dist/hooks/chat/use-slash-command.cjs +1 -1
- package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
- package/dist/hooks/chat/use-slash-command.d.ts +1 -2
- package/dist/hooks/chat/use-slash-command.js +1 -0
- package/dist/hooks/chat/use-slash-command.js.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.js +27 -30
- package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
- package/dist/hooks/mutation/use-create-provider-connection.cjs +1 -0
- package/dist/hooks/mutation/use-create-provider-connection.d.ts +2 -0
- package/dist/hooks/mutation/use-create-provider-connection.js +1 -0
- package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-delete-mcp-server.js +3 -3
- package/dist/hooks/mutation/use-delete-provider-connection.cjs +1 -0
- package/dist/hooks/mutation/use-delete-provider-connection.d.ts +1 -0
- package/dist/hooks/mutation/use-delete-provider-connection.js +1 -0
- package/dist/hooks/mutation/use-switch-acp-model.cjs +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.d.ts +5 -3
- package/dist/hooks/mutation/use-switch-acp-model.js +9 -13
- package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.js +6 -6
- package/dist/hooks/mutation/use-update-provider-connection.cjs +1 -0
- package/dist/hooks/mutation/use-update-provider-connection.d.ts +7 -0
- package/dist/hooks/mutation/use-update-provider-connection.js +1 -0
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +3 -0
- package/dist/hooks/query/query-keys.js +4 -4
- package/dist/hooks/query/query-keys.js.map +1 -1
- package/dist/hooks/query/use-automation-detail.cjs +1 -0
- package/dist/hooks/query/use-automation-detail.js +2 -0
- package/dist/hooks/query/use-automation-health.cjs +2 -0
- package/dist/hooks/query/use-automation-health.cjs.map +1 -0
- package/dist/hooks/query/use-automation-health.js +22 -0
- package/dist/hooks/query/use-automation-health.js.map +1 -0
- package/dist/hooks/query/use-automations.cjs +2 -0
- package/dist/hooks/query/use-automations.cjs.map +1 -0
- package/dist/hooks/query/use-automations.js +28 -0
- package/dist/hooks/query/use-automations.js.map +1 -0
- package/dist/hooks/query/use-backends-health.cjs +1 -1
- package/dist/hooks/query/use-backends-health.cjs.map +1 -1
- package/dist/hooks/query/use-backends-health.js +1 -1
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-conversation-history.cjs +1 -1
- package/dist/hooks/query/use-conversation-history.cjs.map +1 -1
- package/dist/hooks/query/use-conversation-history.js +3 -1
- package/dist/hooks/query/use-conversation-history.js.map +1 -1
- package/dist/hooks/query/use-conversation-metrics.cjs +1 -1
- package/dist/hooks/query/use-conversation-metrics.js +3 -3
- package/dist/hooks/query/use-git-sync.d.ts +19 -0
- package/dist/hooks/query/use-latest-automation-runs.cjs +1 -0
- package/dist/hooks/query/use-latest-automation-runs.d.ts +2 -0
- package/dist/hooks/query/use-latest-automation-runs.js +3 -0
- package/dist/hooks/query/use-llm-profiles.d.ts +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.js +1 -1
- package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
- package/dist/hooks/query/use-provider-connections.cjs +2 -0
- package/dist/hooks/query/use-provider-connections.cjs.map +1 -0
- package/dist/hooks/query/use-provider-connections.d.ts +8 -0
- package/dist/hooks/query/use-provider-connections.js +19 -0
- package/dist/hooks/query/use-provider-connections.js.map +1 -0
- package/dist/hooks/query/use-repository-git-items.cjs +2 -0
- package/dist/hooks/query/use-repository-git-items.cjs.map +1 -0
- package/dist/hooks/query/use-repository-git-items.d.ts +3 -0
- package/dist/hooks/query/use-repository-git-items.js +33 -0
- package/dist/hooks/query/use-repository-git-items.js.map +1 -0
- package/dist/hooks/query/use-task-polling.cjs +1 -1
- package/dist/hooks/query/use-task-polling.cjs.map +1 -1
- package/dist/hooks/query/use-task-polling.js +12 -10
- package/dist/hooks/query/use-task-polling.js.map +1 -1
- package/dist/hooks/query/use-workspace-files.cjs +1 -1
- package/dist/hooks/query/use-workspace-files.cjs.map +1 -1
- package/dist/hooks/query/use-workspace-files.d.ts +14 -4
- package/dist/hooks/query/use-workspace-files.js +46 -33
- package/dist/hooks/query/use-workspace-files.js.map +1 -1
- package/dist/hooks/use-bash-command-runner.cjs +1 -1
- package/dist/hooks/use-bash-command-runner.cjs.map +1 -1
- package/dist/hooks/use-bash-command-runner.js +45 -42
- package/dist/hooks/use-bash-command-runner.js.map +1 -1
- package/dist/hooks/use-conversation-overview-column-space.cjs +2 -0
- package/dist/hooks/use-conversation-overview-column-space.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-column-space.d.ts +2 -0
- package/dist/hooks/use-conversation-overview-column-space.js +25 -0
- package/dist/hooks/use-conversation-overview-column-space.js.map +1 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.cjs +2 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.d.ts +7 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.js +37 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.js.map +1 -0
- package/dist/hooks/use-conversation-overview-panel-peek.cjs +2 -0
- package/dist/hooks/use-conversation-overview-panel-peek.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-panel-peek.d.ts +9 -0
- package/dist/hooks/use-conversation-overview-panel-peek.js +32 -0
- package/dist/hooks/use-conversation-overview-panel-peek.js.map +1 -0
- package/dist/hooks/use-conversation-overview-stats.cjs +2 -0
- package/dist/hooks/use-conversation-overview-stats.cjs.map +1 -0
- package/dist/hooks/use-conversation-overview-stats.d.ts +4 -0
- package/dist/hooks/use-conversation-overview-stats.js +15 -0
- package/dist/hooks/use-conversation-overview-stats.js.map +1 -0
- package/dist/hooks/use-conversation-primary-repository.cjs +2 -0
- package/dist/hooks/use-conversation-primary-repository.cjs.map +1 -0
- package/dist/hooks/use-conversation-primary-repository.d.ts +11 -0
- package/dist/hooks/use-conversation-primary-repository.js +17 -0
- package/dist/hooks/use-conversation-primary-repository.js.map +1 -0
- package/dist/hooks/use-drag-scroll.cjs +2 -0
- package/dist/hooks/use-drag-scroll.cjs.map +1 -0
- package/dist/hooks/use-drag-scroll.d.ts +12 -0
- package/dist/hooks/use-drag-scroll.js +41 -0
- package/dist/hooks/use-drag-scroll.js.map +1 -0
- package/dist/hooks/use-has-permission.cjs +2 -0
- package/dist/hooks/use-has-permission.cjs.map +1 -0
- package/dist/hooks/use-has-permission.js +8 -0
- package/dist/hooks/use-has-permission.js.map +1 -0
- package/dist/hooks/use-home-automation-actions.cjs +2 -0
- package/dist/hooks/use-home-automation-actions.cjs.map +1 -0
- package/dist/hooks/use-home-automation-actions.js +15 -0
- package/dist/hooks/use-home-automation-actions.js.map +1 -0
- package/dist/hooks/use-launch-skill-in-chat.cjs +2 -0
- package/dist/hooks/use-launch-skill-in-chat.cjs.map +1 -0
- package/dist/hooks/use-launch-skill-in-chat.js +16 -0
- package/dist/hooks/use-launch-skill-in-chat.js.map +1 -0
- package/dist/hooks/use-mcp-server-health.cjs +1 -1
- package/dist/hooks/use-mcp-server-health.js +3 -3
- package/dist/hooks/use-resizable-drawer-width.cjs +2 -0
- package/dist/hooks/use-resizable-drawer-width.cjs.map +1 -0
- package/dist/hooks/use-resizable-drawer-width.d.ts +22 -0
- package/dist/hooks/use-resizable-drawer-width.js +46 -0
- package/dist/hooks/use-resizable-drawer-width.js.map +1 -0
- package/dist/hooks/use-responder-url-secret.cjs +2 -0
- package/dist/hooks/use-responder-url-secret.cjs.map +1 -0
- package/dist/hooks/use-responder-url-secret.d.ts +5 -0
- package/dist/hooks/use-responder-url-secret.js +51 -0
- package/dist/hooks/use-responder-url-secret.js.map +1 -0
- package/dist/hooks/use-select-conversation-tab.cjs +1 -1
- package/dist/hooks/use-select-conversation-tab.cjs.map +1 -1
- package/dist/hooks/use-select-conversation-tab.d.ts +2 -0
- package/dist/hooks/use-select-conversation-tab.js +15 -7
- package/dist/hooks/use-select-conversation-tab.js.map +1 -1
- package/dist/hooks/use-tracking.cjs +1 -1
- package/dist/hooks/use-tracking.cjs.map +1 -1
- package/dist/hooks/use-tracking.d.ts +23 -0
- package/dist/hooks/use-tracking.js +16 -0
- package/dist/hooks/use-tracking.js.map +1 -1
- package/dist/hooks/use-websocket.cjs +1 -1
- package/dist/hooks/use-websocket.cjs.map +1 -1
- package/dist/hooks/use-websocket.d.ts +1 -2
- package/dist/hooks/use-websocket.js +58 -51
- package/dist/hooks/use-websocket.js.map +1 -1
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +182 -43
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +3 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +3092 -729
- package/dist/i18n/translation.js.map +1 -1
- package/dist/icons/check-circle.cjs +2 -0
- package/dist/icons/check-circle.cjs.map +1 -0
- package/dist/icons/check-circle.js +20 -0
- package/dist/icons/check-circle.js.map +1 -0
- package/dist/icons/chevron-down.cjs +2 -0
- package/dist/icons/chevron-down.cjs.map +1 -0
- package/dist/icons/chevron-down.js +20 -0
- package/dist/icons/chevron-down.js.map +1 -0
- package/dist/icons/clock.cjs +2 -0
- package/dist/icons/clock.cjs.map +1 -0
- package/dist/icons/clock.js +20 -0
- package/dist/icons/clock.js.map +1 -0
- package/dist/icons/exclamation-circle.cjs +2 -0
- package/dist/icons/exclamation-circle.cjs.map +1 -0
- package/dist/icons/exclamation-circle.js +20 -0
- package/dist/icons/exclamation-circle.js.map +1 -0
- package/dist/icons/kebab-vertical.cjs +2 -0
- package/dist/icons/kebab-vertical.cjs.map +1 -0
- package/dist/icons/kebab-vertical.js +14 -0
- package/dist/icons/kebab-vertical.js.map +1 -0
- package/dist/icons/key.cjs +2 -0
- package/dist/icons/key.cjs.map +1 -0
- package/dist/icons/key.js +21 -0
- package/dist/icons/key.js.map +1 -0
- package/dist/icons/message-square-share.cjs +2 -0
- package/dist/icons/message-square-share.cjs.map +1 -0
- package/dist/icons/message-square-share.js +22 -0
- package/dist/icons/message-square-share.js.map +1 -0
- package/dist/icons/play.cjs +2 -0
- package/dist/icons/play.cjs.map +1 -0
- package/dist/icons/play.js +19 -0
- package/dist/icons/play.js.map +1 -0
- package/dist/icons/power.cjs +2 -0
- package/dist/icons/power.cjs.map +1 -0
- package/dist/icons/power.js +20 -0
- package/dist/icons/power.js.map +1 -0
- package/dist/icons/sparkle.cjs +2 -0
- package/dist/icons/sparkle.cjs.map +1 -0
- package/dist/icons/sparkle.js +20 -0
- package/dist/icons/sparkle.js.map +1 -0
- package/dist/icons/trash.cjs +2 -0
- package/dist/icons/trash.cjs.map +1 -0
- package/dist/icons/trash.js +20 -0
- package/dist/icons/trash.js.map +1 -0
- package/dist/icons/x-circle.cjs +2 -0
- package/dist/icons/x-circle.cjs.map +1 -0
- package/dist/icons/x-circle.js +20 -0
- package/dist/icons/x-circle.js.map +1 -0
- package/dist/locales/ar/openhands.json +183 -44
- package/dist/locales/ca/openhands.json +183 -44
- package/dist/locales/de/openhands.json +183 -44
- package/dist/locales/en/openhands.json +183 -44
- package/dist/locales/es/openhands.json +183 -44
- package/dist/locales/fr/openhands.json +183 -44
- package/dist/locales/it/openhands.json +183 -44
- package/dist/locales/ja/openhands.json +183 -44
- package/dist/locales/ko-KR/openhands.json +183 -44
- package/dist/locales/no/openhands.json +183 -44
- package/dist/locales/pt/openhands.json +183 -44
- package/dist/locales/tr/openhands.json +183 -44
- package/dist/locales/uk/openhands.json +183 -44
- package/dist/locales/zh-CN/openhands.json +183 -44
- package/dist/locales/zh-TW/openhands.json +183 -44
- package/dist/manifests/automation-insights.cjs +2 -0
- package/dist/manifests/automation-insights.cjs.map +1 -0
- package/dist/manifests/automation-insights.d.ts +2 -0
- package/dist/manifests/automation-insights.js +9 -0
- package/dist/manifests/automation-insights.js.map +1 -0
- package/dist/manifests/automation-interface.cjs +1 -1
- package/dist/manifests/automation-interface.cjs.map +1 -1
- package/dist/manifests/automation-interface.d.ts +47 -31
- package/dist/manifests/automation-interface.js +48 -54
- package/dist/manifests/automation-interface.js.map +1 -1
- package/dist/manifests/automation-setup.cjs +1 -1
- package/dist/manifests/automation-setup.cjs.map +1 -1
- package/dist/manifests/automation-setup.d.ts +37 -3
- package/dist/manifests/automation-setup.js +16 -2
- package/dist/manifests/automation-setup.js.map +1 -1
- package/dist/manifests/interface-validation.cjs +1 -1
- package/dist/manifests/interface-validation.cjs.map +1 -1
- package/dist/manifests/interface-validation.js +56 -52
- package/dist/manifests/interface-validation.js.map +1 -1
- package/dist/manifests/manifest-actions.d.ts +5 -0
- package/dist/manifests/manifest-bundle.d.ts +30 -0
- package/dist/manifests/manifest-local-validation.d.ts +10 -1
- package/dist/manifests/manifest-sources.cjs +1 -1
- package/dist/manifests/manifest-sources.cjs.map +1 -1
- package/dist/manifests/manifest-sources.js +3 -3
- package/dist/manifests/manifest-sources.js.map +1 -1
- package/dist/manifests/manifest-template.d.ts +14 -0
- package/dist/manifests/manifest-validation.cjs +1 -1
- package/dist/manifests/manifest-validation.cjs.map +1 -1
- package/dist/manifests/manifest-validation.js +78 -45
- package/dist/manifests/manifest-validation.js.map +1 -1
- package/dist/manifests/types.cjs +1 -1
- package/dist/manifests/types.cjs.map +1 -1
- package/dist/manifests/types.d.ts +64 -3
- package/dist/manifests/types.js +7 -6
- package/dist/manifests/types.js.map +1 -1
- package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.cjs +1 -1
- package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.js +10 -10
- package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.cjs +1 -1
- package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.js +8 -8
- package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.cjs +1 -1
- package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.js +9 -9
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +4843 -0
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +11 -0
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs +13 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js +87 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +12 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +98 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +9 -7
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +32 -13
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +2 -2
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +29 -34
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs +3 -3
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js +2 -2
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +14 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js +72 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +16 -10
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/index.js +18 -13
- package/dist/node_modules/@openhands/extensions/automations/index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/interface.js +6 -2
- package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js +36 -3
- package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js +75 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +68 -66
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +1002 -47
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +59 -17
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.js +9 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/activity.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.js +19 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/download.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js +39 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/library.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/package.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.js +39 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/palette.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js +25 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/timer.js.map +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +3 -3
- package/dist/package.js.map +1 -1
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +87 -85
- package/dist/routes/app-settings.js.map +1 -1
- package/dist/routes/commits-tab.cjs +1 -1
- package/dist/routes/commits-tab.cjs.map +1 -1
- package/dist/routes/commits-tab.js +27 -21
- package/dist/routes/commits-tab.js.map +1 -1
- package/dist/routes/conversation.cjs +1 -1
- package/dist/routes/conversation.cjs.map +1 -1
- package/dist/routes/conversation.js +56 -55
- package/dist/routes/conversation.js.map +1 -1
- package/dist/routes/files-tab.cjs +1 -1
- package/dist/routes/files-tab.cjs.map +1 -1
- package/dist/routes/files-tab.d.ts +4 -0
- package/dist/routes/files-tab.js +121 -151
- package/dist/routes/files-tab.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.d.ts +9 -1
- package/dist/routes/llm-settings.js +137 -107
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/routes/mcp.cjs +1 -1
- package/dist/routes/mcp.cjs.map +1 -1
- package/dist/routes/mcp.js +20 -20
- package/dist/routes/secrets-settings.cjs +1 -1
- package/dist/routes/secrets-settings.js +15 -15
- package/dist/services/settings.cjs +1 -1
- package/dist/services/settings.cjs.map +1 -1
- package/dist/services/settings.js +2 -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.js +47 -51
- package/dist/services/telemetry.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 +8 -1
- package/dist/stores/conversation-store.js +9 -0
- package/dist/stores/conversation-store.js.map +1 -1
- package/dist/stores/error-message-store.cjs +1 -1
- package/dist/stores/error-message-store.cjs.map +1 -1
- package/dist/stores/error-message-store.d.ts +3 -1
- package/dist/stores/error-message-store.js +5 -3
- package/dist/stores/error-message-store.js.map +1 -1
- package/dist/stores/files-tab-store.cjs +1 -1
- package/dist/stores/files-tab-store.cjs.map +1 -1
- package/dist/stores/files-tab-store.d.ts +13 -0
- package/dist/stores/files-tab-store.js +49 -5
- package/dist/stores/files-tab-store.js.map +1 -1
- package/dist/stores/use-event-store.cjs +1 -1
- package/dist/stores/use-event-store.cjs.map +1 -1
- package/dist/stores/use-event-store.js +11 -11
- package/dist/stores/use-event-store.js.map +1 -1
- package/dist/types/agent-server/core/events/message-event.d.ts +2 -2
- package/dist/types/automation.cjs +2 -0
- package/dist/types/automation.cjs.map +1 -0
- package/dist/types/automation.js +8 -0
- package/dist/types/automation.js.map +1 -0
- package/dist/types/git-sync.d.ts +51 -0
- package/dist/utils/automation-catalog.cjs +1 -1
- package/dist/utils/automation-catalog.cjs.map +1 -1
- package/dist/utils/automation-catalog.d.ts +12 -0
- package/dist/utils/automation-catalog.js +20 -1
- package/dist/utils/automation-catalog.js.map +1 -1
- package/dist/utils/automation-schedule.cjs +2 -0
- package/dist/utils/automation-schedule.cjs.map +1 -0
- package/dist/utils/automation-schedule.js +8 -0
- package/dist/utils/automation-schedule.js.map +1 -0
- package/dist/utils/automation-stack-section.cjs +2 -0
- package/dist/utils/automation-stack-section.cjs.map +1 -0
- package/dist/utils/automation-stack-section.d.ts +2 -0
- package/dist/utils/automation-stack-section.js +6 -0
- package/dist/utils/automation-stack-section.js.map +1 -0
- package/dist/utils/constants.cjs +1 -1
- package/dist/utils/constants.cjs.map +1 -1
- package/dist/utils/constants.js +4 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/conversation-local-storage.cjs +1 -1
- package/dist/utils/conversation-local-storage.cjs.map +1 -1
- package/dist/utils/conversation-local-storage.d.ts +17 -4
- package/dist/utils/conversation-local-storage.js +111 -63
- package/dist/utils/conversation-local-storage.js.map +1 -1
- package/dist/utils/conversation-metrics.cjs +1 -1
- package/dist/utils/conversation-metrics.cjs.map +1 -1
- package/dist/utils/conversation-metrics.d.ts +3 -2
- package/dist/utils/conversation-metrics.js +16 -14
- package/dist/utils/conversation-metrics.js.map +1 -1
- package/dist/utils/conversation-overview-project-scope.cjs +2 -0
- package/dist/utils/conversation-overview-project-scope.cjs.map +1 -0
- package/dist/utils/conversation-overview-project-scope.d.ts +16 -0
- package/dist/utils/conversation-overview-project-scope.js +22 -0
- package/dist/utils/conversation-overview-project-scope.js.map +1 -0
- package/dist/utils/error-handler.cjs +1 -1
- package/dist/utils/error-handler.cjs.map +1 -1
- package/dist/utils/error-handler.d.ts +3 -2
- package/dist/utils/error-handler.js +18 -5
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/extension-module-card-classes.cjs +1 -1
- package/dist/utils/extension-module-card-classes.cjs.map +1 -1
- package/dist/utils/extension-module-card-classes.d.ts +1 -1
- package/dist/utils/extension-module-card-classes.js +2 -2
- package/dist/utils/extension-module-card-classes.js.map +1 -1
- package/dist/utils/format-model-name.cjs +1 -1
- package/dist/utils/format-model-name.cjs.map +1 -1
- package/dist/utils/format-model-name.d.ts +1 -0
- package/dist/utils/format-model-name.js +1 -0
- package/dist/utils/format-model-name.js.map +1 -1
- package/dist/utils/format-relative-time.cjs +2 -0
- package/dist/utils/format-relative-time.cjs.map +1 -0
- package/dist/utils/format-relative-time.js +17 -0
- package/dist/utils/format-relative-time.js.map +1 -0
- package/dist/utils/git-diff-stats.cjs +5 -0
- package/dist/utils/git-diff-stats.cjs.map +1 -0
- package/dist/utils/git-diff-stats.d.ts +9 -0
- package/dist/utils/git-diff-stats.js +53 -0
- package/dist/utils/git-diff-stats.js.map +1 -0
- package/dist/utils/handle-event-for-ui.cjs +1 -1
- package/dist/utils/handle-event-for-ui.cjs.map +1 -1
- package/dist/utils/handle-event-for-ui.js +13 -11
- package/dist/utils/handle-event-for-ui.js.map +1 -1
- package/dist/utils/mcp-credential-validation.cjs +1 -1
- package/dist/utils/mcp-credential-validation.js +3 -3
- package/dist/utils/mcp-marketplace-utils.cjs +1 -1
- package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
- package/dist/utils/mcp-marketplace-utils.js +22 -9
- package/dist/utils/mcp-marketplace-utils.js.map +1 -1
- package/dist/utils/parse-git-remote-url.cjs +1 -1
- package/dist/utils/parse-git-remote-url.cjs.map +1 -1
- package/dist/utils/parse-git-remote-url.js +6 -7
- package/dist/utils/parse-git-remote-url.js.map +1 -1
- package/dist/utils/recommended-automation-rail.cjs +2 -0
- package/dist/utils/recommended-automation-rail.cjs.map +1 -0
- package/dist/utils/recommended-automation-rail.d.ts +22 -0
- package/dist/utils/recommended-automation-rail.js +44 -0
- package/dist/utils/recommended-automation-rail.js.map +1 -0
- package/dist/utils/responder-deployment.cjs +2 -0
- package/dist/utils/responder-deployment.cjs.map +1 -0
- package/dist/utils/responder-deployment.js +42 -0
- package/dist/utils/responder-deployment.js.map +1 -0
- package/dist/utils/scroll-fade-state.cjs +2 -0
- package/dist/utils/scroll-fade-state.cjs.map +1 -0
- package/dist/utils/scroll-fade-state.d.ts +6 -0
- package/dist/utils/scroll-fade-state.js +13 -0
- package/dist/utils/scroll-fade-state.js.map +1 -0
- package/dist/utils/skill-category.cjs +2 -0
- package/dist/utils/skill-category.cjs.map +1 -0
- package/dist/utils/skill-category.js +51 -0
- package/dist/utils/skill-category.js.map +1 -0
- package/dist/utils/skill-scope.cjs +1 -1
- package/dist/utils/skill-scope.cjs.map +1 -1
- package/dist/utils/skill-scope.js +1 -1
- package/dist/utils/skill-scope.js.map +1 -1
- package/dist/utils/streaming-delta-batcher.cjs +2 -0
- package/dist/utils/streaming-delta-batcher.cjs.map +1 -0
- package/dist/utils/streaming-delta-batcher.d.ts +21 -0
- package/dist/utils/streaming-delta-batcher.js +31 -0
- package/dist/utils/streaming-delta-batcher.js.map +1 -0
- package/dist/utils/tar-gzip.d.ts +26 -0
- package/dist/utils/transcript-export/load-complete-events.cjs +1 -1
- package/dist/utils/transcript-export/load-complete-events.cjs.map +1 -1
- package/dist/utils/transcript-export/load-complete-events.js +24 -16
- package/dist/utils/transcript-export/load-complete-events.js.map +1 -1
- package/dist/utils/utils.cjs +1 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.d.ts +1 -41
- package/dist/utils/utils.js +27 -6
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/websocket-handshake.cjs +2 -0
- package/dist/utils/websocket-handshake.cjs.map +1 -0
- package/dist/utils/websocket-handshake.d.ts +11 -0
- package/dist/utils/websocket-handshake.js +12 -0
- package/dist/utils/websocket-handshake.js.map +1 -0
- package/package.json +3 -3
- package/scripts/check-translation-completeness.cjs +7 -0
- package/scripts/dev-static.mjs +49 -43
- package/scripts/dev-with-automation.mjs +111 -14
- package/scripts/seed-automation-ux-data.mjs +810 -0
- package/build/assets/acp-providers-D1PORKc0.js +0 -1
- package/build/assets/active-backend-context-IqOjobNK.js +0 -2
- package/build/assets/agent-context-settings-DMrObcIS.js +0 -1
- package/build/assets/agent-profiles-settings-DororXN5.js +0 -1
- package/build/assets/agent-server-conversation-service.api-DWBe0rbX.js +0 -86
- package/build/assets/agent-settings-BJVk92PU.js +0 -2
- package/build/assets/agent-settings-COfJsQ1d.js +0 -1
- package/build/assets/alert-banner-CzZsm7ms.js +0 -1
- package/build/assets/api-key-entry-screen-D8Fade_-.js +0 -1
- package/build/assets/app-settings-CpyGB3AT.js +0 -1
- package/build/assets/automation-detail-B-jQ39Mm.js +0 -3
- package/build/assets/automation-export-B1dywoqk.js +0 -2
- package/build/assets/automation-setup-route-C-bWUZBi.js +0 -1
- package/build/assets/automation-templates-DgpCGOJV.js +0 -1
- package/build/assets/automations-list-DnMxlxsL.js +0 -1
- package/build/assets/back-nav-button-HHEneWMw.js +0 -1
- package/build/assets/backend-form-modal-DiVrD4Cm.js +0 -1
- package/build/assets/backend-synced-settings-badge-7MIjpr8M.js +0 -1
- package/build/assets/badge-CpYmcVZV.js +0 -1
- package/build/assets/base-modal-Fnh6Uln9.js +0 -1
- package/build/assets/bot-BQZx8e2i.js +0 -1
- package/build/assets/brand-button-swT1RyO0.js +0 -1
- package/build/assets/browser-B9AbV6kG.js +0 -7
- package/build/assets/browser-tab-zAY12m_i.js +0 -1
- package/build/assets/chat-send-button-DsJtivmL.js +0 -1
- package/build/assets/check-WAFXrrs_.js +0 -1
- package/build/assets/chevron-down-CifNWzme.js +0 -1
- package/build/assets/circle-check-CtnimJa8.js +0 -1
- package/build/assets/circle-plus-check-toggle-Cuzx55bo.js +0 -1
- package/build/assets/cloud-funnel-analytics-86CwNdSh.js +0 -1
- package/build/assets/combobox-caret-D0fRotFi.js +0 -1
- package/build/assets/command-menu-BXy03FBl.js +0 -1
- package/build/assets/condenser-settings-BmZa0ui_.js +0 -1
- package/build/assets/confirmation-modal-BgoN6lbN.js +0 -1
- package/build/assets/context-menu-list-item-Bq02tc-P.js +0 -1
- package/build/assets/conversation-BPo8SvLN.js +0 -1
- package/build/assets/conversation-CPCVsCUY.js +0 -90
- package/build/assets/conversation-panel-BPo8SvLN.js +0 -1
- package/build/assets/conversation-state-store-C5YpjMNy.js +0 -1
- package/build/assets/conversation-store-Blc5xysY.js +0 -6
- package/build/assets/conversation-tab-empty-state-CMqo_0Bd.js +0 -1
- package/build/assets/copy-to-clipboard-button-Cg1pF0xn.js +0 -1
- package/build/assets/device-verify-BfQLgNyq.js +0 -1
- package/build/assets/dropdown-classes-BIqQr5mx.js +0 -1
- package/build/assets/entry.client-CxFjRYqH.js +0 -2
- package/build/assets/enum-filter-dropdown-C_yV4_bo.js +0 -1
- package/build/assets/environment-switch-overlay-Bi4qbh2g.js +0 -1
- package/build/assets/extension-module-card-classes-Bo43vY5V.js +0 -1
- package/build/assets/extensions-hub-BqUINAhp.js +0 -1
- package/build/assets/extensions-navigation-lraj88Wk.js +0 -1
- package/build/assets/external-link-CgtpA_a1.js +0 -1
- package/build/assets/file-text-DEK4LSVw.js +0 -1
- package/build/assets/files-tab-DV0L-lFE.js +0 -1
- package/build/assets/form-control-classes-7yFSQJq_.js +0 -1
- package/build/assets/format-model-name-BN_rx1Y3.js +0 -1
- package/build/assets/format-relative-time-DSErAuVr.js +0 -1
- package/build/assets/git-provider-icon-BvlLAche.js +0 -1
- package/build/assets/git-repo-dropdown-ByMzpNko.js +0 -1
- package/build/assets/git-repo-dropdown-C6R7hgM8.js +0 -1
- package/build/assets/highlighted-source-view-C_sfncLZ.js +0 -1
- package/build/assets/home-BOrlwLqG.js +0 -1
- package/build/assets/home-BvMNC6E-.js +0 -1
- package/build/assets/home-store-CxqsY9Fi.js +0 -1
- package/build/assets/index-home-BvMNC6E-.js +0 -1
- package/build/assets/info-BRVcJAUg.js +0 -1
- package/build/assets/install-server-modal-Bl4G1zF4.js +0 -1
- package/build/assets/kebab-menu-item-content-BGoGFEAg.js +0 -1
- package/build/assets/launch-CkqiSCqi.js +0 -1
- package/build/assets/list-todo-DNWlzfaM.js +0 -1
- package/build/assets/llm-not-configured-banner-DLw_tu-G.js +0 -27
- package/build/assets/llm-settings-B-pkVCrt.js +0 -1
- package/build/assets/llm-settings-DSC0-IQ7.js +0 -1
- package/build/assets/llm-subscription-service-BAdOl5Xx.js +0 -1
- package/build/assets/loader-circle-B47W9XqT.js +0 -1
- package/build/assets/loading-spinner-xhnrGP4Y.js +0 -1
- package/build/assets/manage-backends-modal-DhGk5mJt.js +0 -1
- package/build/assets/manifest-653b89aa.js +0 -1
- package/build/assets/manifest-subpage-layout-CKWvL2ig.js +0 -1
- package/build/assets/map-provider-Mx8mZuE-.js +0 -1
- package/build/assets/markdown-renderer-DUmk7pFc.js +0 -8
- package/build/assets/mcp-DCkvl6K0.js +0 -9
- package/build/assets/mcp-marketplace-utils-DEbMXlQr.js +0 -1
- package/build/assets/messages-DSXvyc21.js +0 -40
- package/build/assets/modal-body-gIe21fDv.js +0 -1
- package/build/assets/modal-classes-D66dlgZ7.js +0 -1
- package/build/assets/modal-close-button-B6iOGYpI.js +0 -1
- package/build/assets/mouse-pointer-click-BYX1Pw5W.js +0 -1
- package/build/assets/npm-DLckoeJc.js +0 -1
- package/build/assets/onboarding-D7WDG66N.js +0 -1
- package/build/assets/onboarding-modal-C_xVrFNv.js +0 -1
- package/build/assets/organization-service.api-D-s9z18a.js +0 -1
- package/build/assets/pencil-BGOCPRyu.js +0 -1
- package/build/assets/planner-tab-AKaXIIfg.js +0 -1
- package/build/assets/plugins-management-service-wtmY4QQw.js +0 -1
- package/build/assets/plus-zNEL8rcX.js +0 -1
- package/build/assets/profiles-service.api-DCMYxHMi.js +0 -1
- package/build/assets/providers-BjrtjX4L.js +0 -1
- package/build/assets/proxy-9Z_WZggZ.js +0 -1
- package/build/assets/puzzle-BWLmN8z4.js +0 -1
- package/build/assets/recommended-automations-launcher-CFlzhu1o.js +0 -1
- package/build/assets/refresh-cw-CXtFWpwv.js +0 -1
- package/build/assets/root-CanxKlNV.css +0 -1
- package/build/assets/root-DkfG_UWR.js +0 -2
- package/build/assets/root-layout-D75LHYhh.js +0 -2
- package/build/assets/schema-field-OnM5Uob_.js +0 -1
- package/build/assets/sdk-section-page-m5WQm2sy.js +0 -1
- package/build/assets/search-CycosyjN.js +0 -1
- package/build/assets/secrets-service-B26R61C1.js +0 -1
- package/build/assets/secrets-settings-CbLYCKOX.js +0 -1
- package/build/assets/segmented-toggle-DCspm2U5.js +0 -1
- package/build/assets/settings-BJQI_iBM.js +0 -1
- package/build/assets/settings-CWFxymAf.js +0 -1
- package/build/assets/settings-dropdown-input-BI8V_Nov.js +0 -1
- package/build/assets/settings-index-BiTqJoH7.js +0 -1
- package/build/assets/settings-input-Cz62hWVW.js +0 -1
- package/build/assets/settings-list-classes-z_3FW5H3.js +0 -1
- package/build/assets/settings-modal-BIrIVn97.js +0 -1
- package/build/assets/settings-service.api--rJmnuLa.js +0 -1
- package/build/assets/settings-switch-BRsSI8Vs.js +0 -1
- package/build/assets/settings-utils-Ba7vel6T.js +0 -1
- package/build/assets/shared-conversation-CQK_PqHx.js +0 -1
- package/build/assets/shield-check-T3JsDJiM.js +0 -1
- package/build/assets/sidebar-layout-Bhi3hVcu.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-YWJNRN4p.js +0 -1
- package/build/assets/sidebar-nav-link-BSUlY5Ml.js +0 -1
- package/build/assets/sidebar-store-Cl1cUv_F.js +0 -1
- package/build/assets/skill-card-pill-row-BXz8L8Rn.js +0 -1
- package/build/assets/skill-icon-badge-QgfKv31M.js +0 -1
- package/build/assets/skill-scope-Dc3JPW-8.js +0 -1
- package/build/assets/skills-plugins-CpTV27n3.js +0 -1
- package/build/assets/skills-settings-CSW__IW4.js +0 -2
- package/build/assets/sparkles-TJ0mdECe.js +0 -1
- package/build/assets/styled-tooltip-BUMSbgrF.js +0 -1
- package/build/assets/task-list-tab-mAHMOkUz.js +0 -1
- package/build/assets/terminal-BzxBaHx2.js +0 -3
- package/build/assets/toggle-switch-O5v1FgxW.js +0 -1
- package/build/assets/trash-2-C0xNVp9c.js +0 -1
- package/build/assets/typography-NOKSk9_R.js +0 -1
- package/build/assets/usage-tab-tEmVN0KD.js +0 -1
- package/build/assets/use-acp-credential-form-BPNi0Zbm.js +0 -1
- package/build/assets/use-activate-agent-profile-D9YRQPTF.js +0 -1
- package/build/assets/use-agent-profiles-Cb2zUW3l.js +0 -1
- package/build/assets/use-can-manage-org-profiles-Dxzq2AEd.js +0 -1
- package/build/assets/use-cloud-current-user-id-Co2eJk2A.js +0 -1
- package/build/assets/use-config-DKAMiI5R.js +0 -1
- package/build/assets/use-create-conversation-CoHTiCbI.js +0 -1
- package/build/assets/use-create-secret-2zBlCDsF.js +0 -1
- package/build/assets/use-is-authed-C52-ivnB.js +0 -1
- package/build/assets/use-is-creating-conversation-DdaAE6jV.js +0 -1
- package/build/assets/use-launch-skill-in-chat-COnDpxCQ.js +0 -1
- package/build/assets/use-llm-profiles-C_BHue65.js +0 -1
- package/build/assets/use-manifest-capabilities-DPrQsaPP.js +0 -1
- package/build/assets/use-onboarding-completion-CCE8OQgV.js +0 -1
- package/build/assets/use-plugins-marketplace-CEiak69h.js +0 -1
- package/build/assets/use-save-agent-profile-DK9idD6a.js +0 -1
- package/build/assets/use-save-settings-DNmnbG6f.js +0 -1
- package/build/assets/use-settings-nav-items-BlFL7YhM.js +0 -16
- package/build/assets/use-settings-wCwPaSIv.js +0 -1
- package/build/assets/use-tracking-CVwPmhlX.js +0 -3
- package/build/assets/use-user-conversation-DVtfg0B_.js +0 -1
- package/build/assets/useInfiniteQuery-p1xq35r2.js +0 -1
- package/build/assets/useMutation-BFDQmgk9.js +0 -1
- package/build/assets/useQueries-DF1NAAeC.js +0 -1
- package/build/assets/useQuery-DRv--6bK.js +0 -1
- package/build/assets/utils-zxEjKE70.js +0 -1
- package/build/assets/vendor~browser-B-fae1JU.js +0 -47
- package/build/assets/vendor~entry.client-CgNUwtQL.js +0 -1
- package/build/assets/vendor~entry.client-zSIea5EO.js +0 -9
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-B8i84bh4.js +0 -186
- package/build/assets/vendor~files-tab-D9wR9yM2.js +0 -11
- package/build/assets/vendor~index-home~home~conversation-panel~conversation-Ipoe6hvY.js +0 -13
- package/build/assets/vendor~root-layout-C-IgVx6e.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation-Dhd_I4H4.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-Cc0f9kPP.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-d7svw-BB.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~mcp~automations-list~automation-templates~automation-set~bxsimjx0-D7IDevqN.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-D5DWZVc7.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-4WsUP-tz.js +0 -48
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~9pstowjp-BOVIFA_g.js +0 -73
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js +0 -7465
- package/build/assets/verification-settings-B8UMQ7MG.js +0 -1
- package/build/assets/wrench-DIka3hCq.js +0 -1
- package/build/assets/x-BWKA2Ver.js +0 -1
- package/build/assets/zap-DHddTPc0.js +0 -1
- package/dist/api/cloud/suggestions-service.api.d.ts +0 -8
- package/dist/api/suggestions-service/suggestions-service.api.d.ts +0 -11
- package/dist/components/conversation-events/chat/event-message-components/observation-pair-event-message.d.ts +0 -7
- package/dist/components/conversation-events/index.d.ts +0 -1
- package/dist/components/features/automations/metadata-chip.d.ts +0 -6
- package/dist/components/features/chat/task-tracking/status-badge.d.ts +0 -5
- package/dist/components/features/chat/task-tracking/status-icon.d.ts +0 -5
- package/dist/components/features/chat/task-tracking/task-list-section.d.ts +0 -10
- package/dist/components/features/controls/tools.d.ts +0 -2
- package/dist/components/features/conversation-panel/new-conversation-button.d.ts +0 -23
- package/dist/components/features/diff-viewer/empty-changes-message.cjs +0 -2
- package/dist/components/features/diff-viewer/empty-changes-message.cjs.map +0 -1
- package/dist/components/features/diff-viewer/empty-changes-message.js +0 -17
- package/dist/components/features/diff-viewer/empty-changes-message.js.map +0 -1
- package/dist/components/features/home/home-header/guide-message.d.ts +0 -1
- package/dist/components/features/home/home-header/home-header.d.ts +0 -1
- package/dist/components/features/home/new-conversation/create-conversation-button.d.ts +0 -1
- package/dist/components/features/home/new-conversation/new-conversation.d.ts +0 -1
- package/dist/components/features/home/new-conversation.d.ts +0 -1
- package/dist/components/features/home/tasks/task-card.d.ts +0 -6
- package/dist/components/features/home/tasks/task-group.d.ts +0 -7
- package/dist/components/features/home/tasks/task-issue-number.d.ts +0 -6
- package/dist/components/features/home/tasks/task-item-title.d.ts +0 -1
- package/dist/components/features/home/tasks/task-suggestions-skeleton.d.ts +0 -1
- package/dist/components/features/home/tasks/task-suggestions.d.ts +0 -6
- package/dist/components/features/settings/agent-server-onboarding.d.ts +0 -10
- package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +0 -6
- package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +0 -8
- package/dist/components/features/tips/random-tip.cjs +0 -2
- package/dist/components/features/tips/random-tip.cjs.map +0 -1
- package/dist/components/features/tips/random-tip.js +0 -41
- package/dist/components/features/tips/random-tip.js.map +0 -1
- package/dist/hooks/query/use-has-git-commits.cjs +0 -2
- package/dist/hooks/query/use-has-git-commits.cjs.map +0 -1
- package/dist/hooks/query/use-has-git-commits.d.ts +0 -25
- package/dist/hooks/query/use-has-git-commits.js +0 -31
- package/dist/hooks/query/use-has-git-commits.js.map +0 -1
- package/dist/hooks/query/use-suggested-tasks.d.ts +0 -1
- package/dist/hooks/use-has-attached-source.cjs +0 -2
- package/dist/hooks/use-has-attached-source.cjs.map +0 -1
- package/dist/hooks/use-has-attached-source.d.ts +0 -18
- package/dist/hooks/use-has-attached-source.js +0 -14
- package/dist/hooks/use-has-attached-source.js.map +0 -1
- package/dist/hooks/use-should-show-user-features.d.ts +0 -1
- package/dist/icons/chveron-up.cjs +0 -2
- package/dist/icons/chveron-up.cjs.map +0 -1
- package/dist/icons/chveron-up.js +0 -21
- package/dist/icons/chveron-up.js.map +0 -1
- package/dist/routes/changes-tab.cjs +0 -2
- package/dist/routes/changes-tab.cjs.map +0 -1
- package/dist/routes/changes-tab.d.ts +0 -3
- package/dist/routes/changes-tab.js +0 -64
- package/dist/routes/changes-tab.js.map +0 -1
- package/dist/ui/card-title.d.ts +0 -16
- package/dist/ui/card.d.ts +0 -14
- package/dist/utils/file-priority.cjs +0 -2
- package/dist/utils/file-priority.cjs.map +0 -1
- package/dist/utils/file-priority.d.ts +0 -27
- package/dist/utils/file-priority.js +0 -61
- package/dist/utils/file-priority.js.map +0 -1
- package/dist/utils/group-suggested-tasks.d.ts +0 -7
- package/dist/utils/table-row-classes.d.ts +0 -9
- package/dist/utils/tips.cjs +0 -2
- package/dist/utils/tips.cjs.map +0 -1
- package/dist/utils/tips.js +0 -45
- package/dist/utils/tips.js.map +0 -1
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dh9v73sa-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-rfV8mQ9m.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js} +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { cn as t } from "../../../utils/utils.js";
|
|
3
|
+
import { SKILL_CATEGORY_ICONS as n } from "../../../utils/skill-category.js";
|
|
4
|
+
import { SkillFacetRow as r } from "./skill-facet-row.js";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/features/skills/skill-facet-rail.tsx
|
|
7
|
+
function o(e, t) {
|
|
8
|
+
if (e === "category") return n[t];
|
|
9
|
+
}
|
|
10
|
+
function s({ groups: n, onToggle: s, className: c }) {
|
|
11
|
+
let { t: l } = e("openhands");
|
|
12
|
+
return n.length === 0 ? null : /* @__PURE__ */ i("div", {
|
|
13
|
+
"data-testid": "skill-facet-rail",
|
|
14
|
+
className: t("flex min-w-0 flex-col gap-5", c),
|
|
15
|
+
children: n.map((e) => {
|
|
16
|
+
let t = `skill-facet-group-${e.id}-title`;
|
|
17
|
+
return /* @__PURE__ */ a("div", {
|
|
18
|
+
"data-testid": `skill-facet-group-${e.id}`,
|
|
19
|
+
role: "group",
|
|
20
|
+
"aria-labelledby": t,
|
|
21
|
+
className: "flex flex-col gap-1.5",
|
|
22
|
+
children: [/* @__PURE__ */ i("span", {
|
|
23
|
+
id: t,
|
|
24
|
+
className: "px-1 text-[11px] font-semibold uppercase tracking-wider text-tertiary-alt",
|
|
25
|
+
children: l(e.labelKey)
|
|
26
|
+
}), e.rows.map((t) => /* @__PURE__ */ i(r, {
|
|
27
|
+
testId: `skill-facet-${e.id}-${t.value}`,
|
|
28
|
+
labelKey: t.labelKey,
|
|
29
|
+
count: t.count,
|
|
30
|
+
checked: t.checked,
|
|
31
|
+
disabled: t.disabled,
|
|
32
|
+
icon: o(e.id, t.value),
|
|
33
|
+
onToggle: () => s(e.id, t.value)
|
|
34
|
+
}, t.value))]
|
|
35
|
+
}, e.id);
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { s as SkillFacetRail };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=skill-facet-rail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-facet-rail.js","names":[],"sources":["../../../../src/components/features/skills/skill-facet-rail.tsx"],"sourcesContent":["import type { SkillCategoryId } from \"@openhands/extensions/skills\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"#/utils/utils\";\nimport { SKILL_CATEGORY_ICONS } from \"#/utils/skill-category\";\nimport { SkillFacetRow } from \"./skill-facet-row\";\nimport type { SkillFacetGroup, SkillFacetGroupId } from \"./skill-filter\";\n\ninterface SkillFacetRailProps {\n groups: SkillFacetGroup[];\n onToggle: (groupId: SkillFacetGroupId, value: string) => void;\n className?: string;\n}\n\n/** Only the category group carries an icon; the rest are plain rows. */\nfunction iconFor(\n groupId: SkillFacetGroupId,\n value: string,\n): LucideIcon | undefined {\n if (groupId !== \"category\") return undefined;\n return SKILL_CATEGORY_ICONS[value as SkillCategoryId];\n}\n\nexport function SkillFacetRail({\n groups,\n onToggle,\n className,\n}: SkillFacetRailProps) {\n const { t } = useTranslation(\"openhands\");\n\n if (groups.length === 0) return null;\n\n return (\n <div\n data-testid=\"skill-facet-rail\"\n className={cn(\"flex min-w-0 flex-col gap-5\", className)}\n >\n {groups.map((group) => {\n const titleId = `skill-facet-group-${group.id}-title`;\n return (\n <div\n key={group.id}\n data-testid={`skill-facet-group-${group.id}`}\n role=\"group\"\n aria-labelledby={titleId}\n className=\"flex flex-col gap-1.5\"\n >\n <span\n id={titleId}\n className=\"px-1 text-[11px] font-semibold uppercase tracking-wider text-tertiary-alt\"\n >\n {t(group.labelKey)}\n </span>\n {group.rows.map((row) => (\n <SkillFacetRow\n key={row.value}\n testId={`skill-facet-${group.id}-${row.value}`}\n labelKey={row.labelKey}\n count={row.count}\n checked={row.checked}\n disabled={row.disabled}\n icon={iconFor(group.id, row.value)}\n onToggle={() => onToggle(group.id, row.value)}\n />\n ))}\n </div>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;;;;AAeA,SAAS,EACP,GACA,GACwB;CACpB,UAAY,YAChB,OAAO,EAAqB;AAC9B;AAEA,SAAgB,EAAe,EAC7B,WACA,aACA,gBACsB;CACtB,IAAM,EAAE,SAAM,EAAe,WAAW;CAIxC,OAFI,EAAO,WAAW,IAAU,OAG9B,kBAAC,OAAD;EACE,eAAY;EACZ,WAAW,EAAG,+BAA+B,CAAS;YAErD,EAAO,KAAK,MAAU;GACrB,IAAM,IAAU,qBAAqB,EAAM,GAAG;GAC9C,OACE,kBAAC,OAAD;IAEE,eAAa,qBAAqB,EAAM;IACxC,MAAK;IACL,mBAAiB;IACjB,WAAU;cALZ,CAOE,kBAAC,QAAD;KACE,IAAI;KACJ,WAAU;eAET,EAAE,EAAM,QAAQ;IACb,CAAA,GACL,EAAM,KAAK,KAAK,MACf,kBAAC,GAAD;KAEE,QAAQ,eAAe,EAAM,GAAG,GAAG,EAAI;KACvC,UAAU,EAAI;KACd,OAAO,EAAI;KACX,SAAS,EAAI;KACb,UAAU,EAAI;KACd,MAAM,EAAQ,EAAM,IAAI,EAAI,KAAK;KACjC,gBAAgB,EAAS,EAAM,IAAI,EAAI,KAAK;IAC7C,GARM,EAAI,KAQV,CACF,CACE;MAxBE,EAAM,EAwBR;EAET,CAAC;CACE,CAAA;AAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),t=require("../../../node_modules/lucide-react/dist/esm/icons/check.cjs"),n=require("../../../utils/utils.cjs");let r=require("react/jsx-runtime");function i({labelKey:i,count:a,checked:o,disabled:s,icon:c,testId:l,onToggle:u}){let{t:d}=e.useTranslation(`openhands`),f=d(i);return(0,r.jsxs)(`button`,{type:`button`,role:`checkbox`,"aria-checked":o,"data-testid":l,disabled:s,onClick:u,className:n.cn(`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm`,s?`cursor-default text-tertiary-alt/40`:`cursor-pointer hover:bg-[var(--oh-surface-raised)] hover:text-white`,o?`text-white`:`text-tertiary-light`),children:[(0,r.jsx)(`span`,{"aria-hidden":!0,className:n.cn(`flex size-3.5 shrink-0 items-center justify-center rounded-[3px] border`,o?`border-white bg-white text-black`:`border-[var(--oh-border)]`),children:o?(0,r.jsx)(t.Check,{className:`size-2.5`,strokeWidth:3}):null}),c?(0,r.jsx)(c,{className:`size-3.5 shrink-0`,"aria-hidden":!0}):null,(0,r.jsx)(`span`,{title:f,className:`min-w-0 flex-1 truncate`,children:f}),(0,r.jsx)(`span`,{className:`shrink-0 text-xs text-tertiary-alt`,children:a})]})}exports.SkillFacetRow=i;
|
|
2
|
+
//# sourceMappingURL=skill-facet-row.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-facet-row.cjs","names":[],"sources":["../../../../src/components/features/skills/skill-facet-row.tsx"],"sourcesContent":["import { Check, type LucideIcon } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\n\ninterface SkillFacetRowProps {\n labelKey: I18nKey;\n count: number;\n checked: boolean;\n disabled: boolean;\n icon?: LucideIcon;\n testId: string;\n onToggle: () => void;\n}\n\nexport function SkillFacetRow({\n labelKey,\n count,\n checked,\n disabled,\n icon: Icon,\n testId,\n onToggle,\n}: SkillFacetRowProps) {\n const { t } = useTranslation(\"openhands\");\n const label = t(labelKey);\n\n return (\n <button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={checked}\n data-testid={testId}\n disabled={disabled}\n onClick={onToggle}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm\",\n disabled\n ? \"cursor-default text-tertiary-alt/40\"\n : // Same hover pair as the extensions nav links: a raised surface the\n // label brightens against, rather than a light fill it sinks into.\n \"cursor-pointer hover:bg-[var(--oh-surface-raised)] hover:text-white\",\n checked ? \"text-white\" : \"text-tertiary-light\",\n )}\n >\n <span\n aria-hidden\n className={cn(\n \"flex size-3.5 shrink-0 items-center justify-center rounded-[3px] border\",\n checked\n ? \"border-white bg-white text-black\"\n : \"border-[var(--oh-border)]\",\n )}\n >\n {checked ? <Check className=\"size-2.5\" strokeWidth={3} /> : null}\n </span>\n {Icon ? <Icon className=\"size-3.5 shrink-0\" aria-hidden /> : null}\n {/* The rail cannot be wide enough for every locale, so a truncated label stays readable on hover. */}\n <span title={label} className=\"min-w-0 flex-1 truncate\">\n {label}\n </span>\n <span className=\"shrink-0 text-xs text-tertiary-alt\">{count}</span>\n </button>\n );\n}\n"],"mappings":"uRAeA,SAAgB,EAAc,CAC5B,WACA,QACA,UACA,WACA,KAAM,EACN,SACA,YACqB,CACrB,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAClC,EAAQ,EAAE,CAAQ,EAExB,OACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,WACL,eAAc,EACd,cAAa,EACH,WACV,QAAS,EACT,UAAW,EAAA,GACT,0EACA,EACI,sCAGA,sEACJ,EAAU,aAAe,qBAC3B,WAfF,EAiBE,EAAA,EAAA,KAAC,OAAD,CACE,cAAA,GACA,UAAW,EAAA,GACT,0EACA,EACI,mCACA,2BACN,WAEC,GAAU,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAU,WAAW,YAAa,CAAI,CAAA,EAAI,IACxD,CAAA,EACL,GAAO,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,oBAAoB,cAAA,EAAa,CAAA,EAAI,MAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,MAAO,EAAO,UAAU,mCAC3B,CACG,CAAA,GACN,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,8CAAsC,CAAY,CAAA,CAC5D,GAEZ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { Check as t } from "../../../node_modules/lucide-react/dist/esm/icons/check.js";
|
|
3
|
+
import { cn as n } from "../../../utils/utils.js";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/features/skills/skill-facet-row.tsx
|
|
6
|
+
function a({ labelKey: a, count: o, checked: s, disabled: c, icon: l, testId: u, onToggle: d }) {
|
|
7
|
+
let { t: f } = e("openhands"), p = f(a);
|
|
8
|
+
return /* @__PURE__ */ i("button", {
|
|
9
|
+
type: "button",
|
|
10
|
+
role: "checkbox",
|
|
11
|
+
"aria-checked": s,
|
|
12
|
+
"data-testid": u,
|
|
13
|
+
disabled: c,
|
|
14
|
+
onClick: d,
|
|
15
|
+
className: n("flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm", c ? "cursor-default text-tertiary-alt/40" : "cursor-pointer hover:bg-[var(--oh-surface-raised)] hover:text-white", s ? "text-white" : "text-tertiary-light"),
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ r("span", {
|
|
18
|
+
"aria-hidden": !0,
|
|
19
|
+
className: n("flex size-3.5 shrink-0 items-center justify-center rounded-[3px] border", s ? "border-white bg-white text-black" : "border-[var(--oh-border)]"),
|
|
20
|
+
children: s ? /* @__PURE__ */ r(t, {
|
|
21
|
+
className: "size-2.5",
|
|
22
|
+
strokeWidth: 3
|
|
23
|
+
}) : null
|
|
24
|
+
}),
|
|
25
|
+
l ? /* @__PURE__ */ r(l, {
|
|
26
|
+
className: "size-3.5 shrink-0",
|
|
27
|
+
"aria-hidden": !0
|
|
28
|
+
}) : null,
|
|
29
|
+
/* @__PURE__ */ r("span", {
|
|
30
|
+
title: p,
|
|
31
|
+
className: "min-w-0 flex-1 truncate",
|
|
32
|
+
children: p
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ r("span", {
|
|
35
|
+
className: "shrink-0 text-xs text-tertiary-alt",
|
|
36
|
+
children: o
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { a as SkillFacetRow };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=skill-facet-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-facet-row.js","names":[],"sources":["../../../../src/components/features/skills/skill-facet-row.tsx"],"sourcesContent":["import { Check, type LucideIcon } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\n\ninterface SkillFacetRowProps {\n labelKey: I18nKey;\n count: number;\n checked: boolean;\n disabled: boolean;\n icon?: LucideIcon;\n testId: string;\n onToggle: () => void;\n}\n\nexport function SkillFacetRow({\n labelKey,\n count,\n checked,\n disabled,\n icon: Icon,\n testId,\n onToggle,\n}: SkillFacetRowProps) {\n const { t } = useTranslation(\"openhands\");\n const label = t(labelKey);\n\n return (\n <button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={checked}\n data-testid={testId}\n disabled={disabled}\n onClick={onToggle}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm\",\n disabled\n ? \"cursor-default text-tertiary-alt/40\"\n : // Same hover pair as the extensions nav links: a raised surface the\n // label brightens against, rather than a light fill it sinks into.\n \"cursor-pointer hover:bg-[var(--oh-surface-raised)] hover:text-white\",\n checked ? \"text-white\" : \"text-tertiary-light\",\n )}\n >\n <span\n aria-hidden\n className={cn(\n \"flex size-3.5 shrink-0 items-center justify-center rounded-[3px] border\",\n checked\n ? \"border-white bg-white text-black\"\n : \"border-[var(--oh-border)]\",\n )}\n >\n {checked ? <Check className=\"size-2.5\" strokeWidth={3} /> : null}\n </span>\n {Icon ? <Icon className=\"size-3.5 shrink-0\" aria-hidden /> : null}\n {/* The rail cannot be wide enough for every locale, so a truncated label stays readable on hover. */}\n <span title={label} className=\"min-w-0 flex-1 truncate\">\n {label}\n </span>\n <span className=\"shrink-0 text-xs text-tertiary-alt\">{count}</span>\n </button>\n );\n}\n"],"mappings":";;;;;AAeA,SAAgB,EAAc,EAC5B,aACA,UACA,YACA,aACA,MAAM,GACN,WACA,eACqB;CACrB,IAAM,EAAE,SAAM,EAAe,WAAW,GAClC,IAAQ,EAAE,CAAQ;CAExB,OACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,gBAAc;EACd,eAAa;EACH;EACV,SAAS;EACT,WAAW,EACT,2EACA,IACI,wCAGA,uEACJ,IAAU,eAAe,qBAC3B;YAfF;GAiBE,kBAAC,QAAD;IACE,eAAA;IACA,WAAW,EACT,2EACA,IACI,qCACA,2BACN;cAEC,IAAU,kBAAC,GAAD;KAAO,WAAU;KAAW,aAAa;IAAI,CAAA,IAAI;GACxD,CAAA;GACL,IAAO,kBAAC,GAAD;IAAM,WAAU;IAAoB,eAAA;GAAa,CAAA,IAAI;GAE7D,kBAAC,QAAD;IAAM,OAAO;IAAO,WAAU;cAC3B;GACG,CAAA;GACN,kBAAC,QAAD;IAAM,WAAU;cAAsC;GAAY,CAAA;EAC5D;;AAEZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../i18n/declaration.cjs"),t=require("../../../utils/skill-scope.cjs"),n=require("./get-skill-card-description.cjs"),r=require("../../../utils/skill-category.cjs");var i=`source`,a=`category`,o=`type`,s=`state`,c=[`enabled`,`disabled`],l=[`agentskills`,`knowledge`,`repo`],u={query:``,sources:new Set,categories:new Set,types:new Set,states:new Set};function d(e,t){return e.map(e=>({value:e,labelKey:t[e]}))}function f(e,t){return new Set(e.filter(e=>t.has(e)))}var p={project:e.I18nKey.SETTINGS$SKILLS_SOURCE_PROJECT,personal:e.I18nKey.SETTINGS$SKILLS_SOURCE_PERSONAL,public:e.I18nKey.SETTINGS$SKILLS_SOURCE_PUBLIC},m={agentskills:e.I18nKey.SETTINGS$SKILLS_TYPE_AGENTSKILLS,knowledge:e.I18nKey.SETTINGS$SKILLS_TYPE_KNOWLEDGE,repo:e.I18nKey.SETTINGS$SKILLS_TYPE_REPO},h={enabled:e.I18nKey.SETTINGS$SKILLS_ENABLED,disabled:e.I18nKey.SETTINGS$SKILLS_DISABLED},g=[{id:`state`,labelKey:e.I18nKey.SETTINGS$SKILLS_FACET_STATE,param:s,values:d(c,h),valueOf:(e,t)=>t.has(e.name)?`disabled`:`enabled`,selected:e=>e.states,withSelected:(e,t)=>({...e,states:f(c,t)})},{id:`source`,labelKey:e.I18nKey.SETTINGS$SKILLS_FACET_SOURCE,param:i,values:d(t.SKILL_SCOPE_ORDER,p),valueOf:e=>t.getSkillScope(e),selected:e=>e.sources,withSelected:(e,n)=>({...e,sources:f(t.SKILL_SCOPE_ORDER,n)})},{id:`category`,labelKey:e.I18nKey.SETTINGS$SKILLS_FACET_CATEGORY,param:a,values:d(r.SKILL_CATEGORY_ORDER,r.SKILL_CATEGORY_LABEL_KEYS),valueOf:e=>r.getSkillCategory(e),selected:e=>e.categories,withSelected:(e,t)=>({...e,categories:f(r.SKILL_CATEGORY_ORDER,t)})},{id:`type`,labelKey:e.I18nKey.SETTINGS$SKILLS_FACET_TYPE,param:o,values:d(l,m),valueOf:e=>e.type,selected:e=>e.types,withSelected:(e,t)=>({...e,types:f(l,t)})}];function _(e){let t=g.find(t=>t.id===e);if(!t)throw Error(`Unknown skill facet group: ${e}`);return t}function v(e,t){let r=t.trim();if(!r)return!0;let i=[e.name,n.getSkillCardDescription(e),e.description??``,e.content??``,e.license??``,e.compatibility??``,...e.triggers??[],...e.allowed_tools??[]],a=r.toLowerCase();return i.some(e=>e.toLowerCase().includes(a))}function y(e,t,n,r){return g.every(i=>{if(i.id===r)return!0;let a=i.selected(n);return a.size===0?!0:a.has(i.valueOf(e,t))})}function b(e,t,n){return e.filter(e=>v(e,n.query)&&y(e,t,n))}function x(e,t,n){let r={};for(let i of e){let e=t.valueOf(i,n);r[e]=(r[e]??0)+1}return r}function S(e,t,n,r,i){let a=x(t,e,r),o=e.values.filter(({value:e})=>(a[e]??0)>0),s=e.selected(i);if(o.length<2&&s.size===0)return null;let c=e.values.filter(({value:e})=>(a[e]??0)>0||s.has(e)),l=x(n.filter(t=>y(t,r,i,e.id)),e,r);return{id:e.id,labelKey:e.labelKey,rows:c.map(({value:e,labelKey:t})=>{let n=l[e]??0,r=s.has(e);return{value:e,labelKey:t,count:n,checked:r,disabled:n===0&&!r}})}}function C(e,t,n){let r=e.filter(e=>v(e,n.query));return g.map(i=>S(i,e,r,t,n)).filter(e=>e!==null)}function w(e,t,n){let r=_(t);if(!r.values.some(e=>e.value===n))return e;let i=new Set(r.selected(e));return i.has(n)?i.delete(n):i.add(n),r.withSelected(e,i)}function T(e){return{...u,query:e.query}}function E(e){return g.reduce((t,n)=>t+n.selected(e).size,0)}exports.EMPTY_SKILL_FILTER_STATE=u,exports.applySkillFilters=b,exports.buildSkillFacetGroups=C,exports.clearSkillFilterFacets=T,exports.countActiveFilters=E,exports.toggleSkillFilterValue=w;
|
|
2
|
+
//# sourceMappingURL=skill-filter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-filter.cjs","names":[],"sources":["../../../../src/components/features/skills/skill-filter.ts"],"sourcesContent":["import type { SkillCategoryId } from \"@openhands/extensions/skills\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport type { SkillInfo, SkillType } from \"#/types/settings\";\nimport {\n getSkillCategory,\n SKILL_CATEGORY_LABEL_KEYS,\n SKILL_CATEGORY_ORDER,\n} from \"#/utils/skill-category\";\nimport {\n getSkillScope,\n SKILL_SCOPE_ORDER,\n type SkillScope,\n} from \"#/utils/skill-scope\";\nimport { getSkillCardDescription } from \"./get-skill-card-description\";\n\nexport const SKILL_FILTER_QUERY_PARAM = \"q\";\nconst SOURCE_PARAM = \"source\";\nconst CATEGORY_PARAM = \"category\";\nconst TYPE_PARAM = \"type\";\nconst STATE_PARAM = \"state\";\n\nexport type SkillEnabledState = \"enabled\" | \"disabled\";\nexport type SkillFacetGroupId = \"state\" | \"source\" | \"category\" | \"type\";\n\nconst SKILL_ENABLED_STATE_ORDER: readonly SkillEnabledState[] = [\n \"enabled\",\n \"disabled\",\n];\nconst SKILL_TYPE_ORDER: readonly SkillType[] = [\n \"agentskills\",\n \"knowledge\",\n \"repo\",\n];\n\nexport interface SkillFilterState {\n query: string;\n sources: Set<SkillScope>;\n categories: Set<SkillCategoryId>;\n types: Set<SkillType>;\n states: Set<SkillEnabledState>;\n}\n\nexport interface SkillFacetRowModel {\n value: string;\n labelKey: I18nKey;\n count: number;\n checked: boolean;\n disabled: boolean;\n}\n\nexport interface SkillFacetGroup {\n id: SkillFacetGroupId;\n labelKey: I18nKey;\n rows: SkillFacetRowModel[];\n}\n\nexport const EMPTY_SKILL_FILTER_STATE: SkillFilterState = {\n query: \"\",\n sources: new Set(),\n categories: new Set(),\n types: new Set(),\n states: new Set(),\n};\n\n/** Carrying `labelKey`s rather than translated strings keeps this module pure, so its tests need no i18n. */\ninterface GroupValue {\n value: string;\n labelKey: I18nKey;\n}\n\nfunction labelledValues<TValue extends string>(\n order: readonly TValue[],\n labelKeys: Record<TValue, I18nKey>,\n): readonly GroupValue[] {\n return order.map((value) => ({ value, labelKey: labelKeys[value] }));\n}\n\n/** A new facet group is declared here and nowhere else: `selected` / `withSelected` are what keep every operation below driven by this table alone. */\ninterface GroupDef {\n id: SkillFacetGroupId;\n labelKey: I18nKey;\n param: string;\n values: readonly GroupValue[];\n valueOf: (skill: SkillInfo, disabledSet: Set<string>) => string;\n selected: (state: SkillFilterState) => Set<string>;\n withSelected: (\n state: SkillFilterState,\n next: Set<string>,\n ) => SkillFilterState;\n}\n\n/** Rebuilding rather than casting keeps every writer below cast-free: a value the group does not declare cannot survive. */\nfunction narrowSet<TValue extends string>(\n order: readonly TValue[],\n next: Set<string>,\n): Set<TValue> {\n return new Set(order.filter((value) => next.has(value)));\n}\n\nconst SOURCE_LABEL_KEYS: Record<SkillScope, I18nKey> = {\n project: I18nKey.SETTINGS$SKILLS_SOURCE_PROJECT,\n personal: I18nKey.SETTINGS$SKILLS_SOURCE_PERSONAL,\n public: I18nKey.SETTINGS$SKILLS_SOURCE_PUBLIC,\n};\n\nconst TYPE_LABEL_KEYS: Record<SkillType, I18nKey> = {\n agentskills: I18nKey.SETTINGS$SKILLS_TYPE_AGENTSKILLS,\n knowledge: I18nKey.SETTINGS$SKILLS_TYPE_KNOWLEDGE,\n repo: I18nKey.SETTINGS$SKILLS_TYPE_REPO,\n};\n\nconst STATE_LABEL_KEYS: Record<SkillEnabledState, I18nKey> = {\n enabled: I18nKey.SETTINGS$SKILLS_ENABLED,\n disabled: I18nKey.SETTINGS$SKILLS_DISABLED,\n};\n\nconst GROUP_DEFS: readonly GroupDef[] = [\n {\n id: \"state\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_STATE,\n param: STATE_PARAM,\n values: labelledValues(SKILL_ENABLED_STATE_ORDER, STATE_LABEL_KEYS),\n valueOf: (skill, disabledSet) =>\n disabledSet.has(skill.name) ? \"disabled\" : \"enabled\",\n selected: (state) => state.states,\n withSelected: (state, next) => ({\n ...state,\n states: narrowSet(SKILL_ENABLED_STATE_ORDER, next),\n }),\n },\n {\n id: \"source\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_SOURCE,\n param: SOURCE_PARAM,\n values: labelledValues(SKILL_SCOPE_ORDER, SOURCE_LABEL_KEYS),\n valueOf: (skill) => getSkillScope(skill),\n selected: (state) => state.sources,\n withSelected: (state, next) => ({\n ...state,\n sources: narrowSet(SKILL_SCOPE_ORDER, next),\n }),\n },\n {\n id: \"category\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_CATEGORY,\n param: CATEGORY_PARAM,\n values: labelledValues(SKILL_CATEGORY_ORDER, SKILL_CATEGORY_LABEL_KEYS),\n valueOf: (skill) => getSkillCategory(skill),\n selected: (state) => state.categories,\n withSelected: (state, next) => ({\n ...state,\n categories: narrowSet(SKILL_CATEGORY_ORDER, next),\n }),\n },\n {\n id: \"type\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_TYPE,\n param: TYPE_PARAM,\n values: labelledValues(SKILL_TYPE_ORDER, TYPE_LABEL_KEYS),\n valueOf: (skill) => skill.type,\n selected: (state) => state.types,\n withSelected: (state, next) => ({\n ...state,\n types: narrowSet(SKILL_TYPE_ORDER, next),\n }),\n },\n];\n\nfunction groupDef(id: SkillFacetGroupId): GroupDef {\n const def = GROUP_DEFS.find((candidate) => candidate.id === id);\n if (!def) throw new Error(`Unknown skill facet group: ${id}`);\n return def;\n}\n\n/** Unknown values are dropped, so a hand-edited URL cannot smuggle one in. */\nfunction parseSet(raw: string[], def: GroupDef): Set<string> {\n const legal = new Set(def.values.map(({ value }) => value));\n return new Set(\n raw.map((value) => value.trim()).filter((value) => legal.has(value)),\n );\n}\n\nexport function parseSkillFilterState(\n params: URLSearchParams,\n): SkillFilterState {\n return GROUP_DEFS.reduce<SkillFilterState>(\n (state, def) =>\n def.withSelected(state, parseSet(params.getAll(def.param), def)),\n {\n ...EMPTY_SKILL_FILTER_STATE,\n query: params.get(SKILL_FILTER_QUERY_PARAM) ?? \"\",\n },\n );\n}\n\nexport function toSkillFilterSearchParams(\n state: SkillFilterState,\n): URLSearchParams {\n const params = new URLSearchParams();\n if (state.query) params.set(SKILL_FILTER_QUERY_PARAM, state.query);\n\n // Canonical order keeps URLs deterministic regardless of click order.\n for (const def of GROUP_DEFS) {\n const selected = def.selected(state);\n for (const { value } of def.values) {\n if (selected.has(value)) params.append(def.param, value);\n }\n }\n\n return params;\n}\n\nfunction matchesQuery(skill: SkillInfo, query: string): boolean {\n const trimmed = query.trim();\n if (!trimmed) return true;\n\n const haystacks = [\n skill.name,\n getSkillCardDescription(skill),\n skill.description ?? \"\",\n skill.content ?? \"\",\n skill.license ?? \"\",\n skill.compatibility ?? \"\",\n ...(skill.triggers ?? []),\n ...(skill.allowed_tools ?? []),\n ];\n\n const lowered = trimmed.toLowerCase();\n return haystacks.some((value) => value.toLowerCase().includes(lowered));\n}\n\n/**\n * `exclude` omits one group's own selection so its rows stay counted against the other groups alone.\n * A row therefore reads \"this many skills carry this value, under your other filters\" — the usual disjunctive facet count — and not \"your result set will be this big\": the group ORs its values together, so on a group that already has a selection the two differ.\n */\nfunction matchesFacets(\n skill: SkillInfo,\n disabledSet: Set<string>,\n state: SkillFilterState,\n exclude?: SkillFacetGroupId,\n): boolean {\n return GROUP_DEFS.every((def) => {\n if (def.id === exclude) return true;\n const selected = def.selected(state);\n if (selected.size === 0) return true;\n return selected.has(def.valueOf(skill, disabledSet));\n });\n}\n\nexport function applySkillFilters(\n skills: SkillInfo[],\n disabledSet: Set<string>,\n state: SkillFilterState,\n): SkillInfo[] {\n return skills.filter(\n (skill) =>\n matchesQuery(skill, state.query) &&\n matchesFacets(skill, disabledSet, state),\n );\n}\n\nfunction countByValue(\n skills: SkillInfo[],\n def: GroupDef,\n disabledSet: Set<string>,\n): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const skill of skills) {\n const value = def.valueOf(skill, disabledSet);\n counts[value] = (counts[value] ?? 0) + 1;\n }\n return counts;\n}\n\nfunction buildGroup(\n def: GroupDef,\n allSkills: SkillInfo[],\n searched: SkillInfo[],\n disabledSet: Set<string>,\n state: SkillFilterState,\n): SkillFacetGroup | null {\n // Visibility and the row set come from the raw list so the rail's shape\n // depends only on what the user has, never on the active filters. If they\n // tracked filtered counts, narrowing could make a group vanish mid-click.\n const rawCounts = countByValue(allSkills, def, disabledSet);\n const discriminating = def.values.filter(\n ({ value }) => (rawCounts[value] ?? 0) > 0,\n );\n const selected = def.selected(state);\n // A group with only one (or zero) discriminating values is normally hidden,\n // but a selection can still be carried in from the URL for a value that has\n // no matches for this user. Hiding the group then would enforce the filter\n // invisibly, with no row left to explain or undo it.\n if (discriminating.length < 2 && selected.size === 0) return null;\n\n const visibleValues = def.values.filter(\n ({ value }) => (rawCounts[value] ?? 0) > 0 || selected.has(value),\n );\n\n const candidates = searched.filter((skill) =>\n matchesFacets(skill, disabledSet, state, def.id),\n );\n const counts = countByValue(candidates, def, disabledSet);\n\n return {\n id: def.id,\n labelKey: def.labelKey,\n rows: visibleValues.map(({ value, labelKey }) => {\n const count = counts[value] ?? 0;\n const checked = selected.has(value);\n return {\n value,\n labelKey,\n count,\n checked,\n disabled: count === 0 && !checked,\n };\n }),\n };\n}\n\nexport function buildSkillFacetGroups(\n skills: SkillInfo[],\n disabledSet: Set<string>,\n state: SkillFilterState,\n): SkillFacetGroup[] {\n const searched = skills.filter((skill) => matchesQuery(skill, state.query));\n\n return GROUP_DEFS.map((def) =>\n buildGroup(def, skills, searched, disabledSet, state),\n ).filter((group): group is SkillFacetGroup => group !== null);\n}\n\nexport function toggleSkillFilterValue(\n state: SkillFilterState,\n groupId: SkillFacetGroupId,\n value: string,\n): SkillFilterState {\n const def = groupDef(groupId);\n // `withSelected` would drop an unknown value anyway; returning the same\n // state object keeps a no-op toggle from re-rendering or rewriting the URL.\n if (!def.values.some((candidate) => candidate.value === value)) return state;\n\n const next = new Set(def.selected(state));\n if (next.has(value)) {\n next.delete(value);\n } else {\n next.add(value);\n }\n\n return def.withSelected(state, next);\n}\n\nexport function clearSkillFilterFacets(\n state: SkillFilterState,\n): SkillFilterState {\n return { ...EMPTY_SKILL_FILTER_STATE, query: state.query };\n}\n\nexport function countActiveFilters(state: SkillFilterState): number {\n // The query is excluded: it is already visible in its own input, so counting\n // it would double-report in both the Filters badge and the summary row.\n return GROUP_DEFS.reduce((total, def) => total + def.selected(state).size, 0);\n}\n"],"mappings":"6OAgBA,IAAM,EAAe,SACf,EAAiB,WACjB,EAAa,OACb,EAAc,QAKd,EAA0D,CAC9D,UACA,UACF,EACM,EAAyC,CAC7C,cACA,YACA,MACF,EAwBa,EAA6C,CACxD,MAAO,GACP,QAAS,IAAI,IACb,WAAY,IAAI,IAChB,MAAO,IAAI,IACX,OAAQ,IAAI,GACd,EAQA,SAAS,EACP,EACA,EACuB,CACvB,OAAO,EAAM,IAAK,IAAW,CAAE,QAAO,SAAU,EAAU,EAAO,EAAE,CACrE,CAiBA,SAAS,EACP,EACA,EACa,CACb,OAAO,IAAI,IAAI,EAAM,OAAQ,GAAU,EAAK,IAAI,CAAK,CAAC,CAAC,CACzD,CAEA,IAAM,EAAiD,CACrD,QAAS,EAAA,QAAQ,+BACjB,SAAU,EAAA,QAAQ,gCAClB,OAAQ,EAAA,QAAQ,6BAClB,EAEM,EAA8C,CAClD,YAAa,EAAA,QAAQ,iCACrB,UAAW,EAAA,QAAQ,+BACnB,KAAM,EAAA,QAAQ,yBAChB,EAEM,EAAuD,CAC3D,QAAS,EAAA,QAAQ,wBACjB,SAAU,EAAA,QAAQ,wBACpB,EAEM,EAAkC,CACtC,CACE,GAAI,QACJ,SAAU,EAAA,QAAQ,4BAClB,MAAO,EACP,OAAQ,EAAe,EAA2B,CAAgB,EAClE,SAAU,EAAO,IACf,EAAY,IAAI,EAAM,IAAI,EAAI,WAAa,UAC7C,SAAW,GAAU,EAAM,OAC3B,cAAe,EAAO,KAAU,CAC9B,GAAG,EACH,OAAQ,EAAU,EAA2B,CAAI,CACnD,EACF,EACA,CACE,GAAI,SACJ,SAAU,EAAA,QAAQ,6BAClB,MAAO,EACP,OAAQ,EAAe,EAAA,kBAAmB,CAAiB,EAC3D,QAAU,GAAU,EAAA,cAAc,CAAK,EACvC,SAAW,GAAU,EAAM,QAC3B,cAAe,EAAO,KAAU,CAC9B,GAAG,EACH,QAAS,EAAU,EAAA,kBAAmB,CAAI,CAC5C,EACF,EACA,CACE,GAAI,WACJ,SAAU,EAAA,QAAQ,+BAClB,MAAO,EACP,OAAQ,EAAe,EAAA,qBAAsB,EAAA,yBAAyB,EACtE,QAAU,GAAU,EAAA,iBAAiB,CAAK,EAC1C,SAAW,GAAU,EAAM,WAC3B,cAAe,EAAO,KAAU,CAC9B,GAAG,EACH,WAAY,EAAU,EAAA,qBAAsB,CAAI,CAClD,EACF,EACA,CACE,GAAI,OACJ,SAAU,EAAA,QAAQ,2BAClB,MAAO,EACP,OAAQ,EAAe,EAAkB,CAAe,EACxD,QAAU,GAAU,EAAM,KAC1B,SAAW,GAAU,EAAM,MAC3B,cAAe,EAAO,KAAU,CAC9B,GAAG,EACH,MAAO,EAAU,EAAkB,CAAI,CACzC,EACF,CACF,EAEA,SAAS,EAAS,EAAiC,CACjD,IAAM,EAAM,EAAW,KAAM,GAAc,EAAU,KAAO,CAAE,EAC9D,GAAI,CAAC,EAAK,MAAU,MAAM,8BAA8B,GAAI,EAC5D,OAAO,CACT,CAwCA,SAAS,EAAa,EAAkB,EAAwB,CAC9D,IAAM,EAAU,EAAM,KAAK,EAC3B,GAAI,CAAC,EAAS,MAAO,GAErB,IAAM,EAAY,CAChB,EAAM,KACN,EAAA,wBAAwB,CAAK,EAC7B,EAAM,aAAe,GACrB,EAAM,SAAW,GACjB,EAAM,SAAW,GACjB,EAAM,eAAiB,GACvB,GAAI,EAAM,UAAY,CAAC,EACvB,GAAI,EAAM,eAAiB,CAAC,CAC9B,EAEM,EAAU,EAAQ,YAAY,EACpC,OAAO,EAAU,KAAM,GAAU,EAAM,YAAY,EAAE,SAAS,CAAO,CAAC,CACxE,CAMA,SAAS,EACP,EACA,EACA,EACA,EACS,CACT,OAAO,EAAW,MAAO,GAAQ,CAC/B,GAAI,EAAI,KAAO,EAAS,MAAO,GAC/B,IAAM,EAAW,EAAI,SAAS,CAAK,EAEnC,OADI,EAAS,OAAS,EAAU,GACzB,EAAS,IAAI,EAAI,QAAQ,EAAO,CAAW,CAAC,CACrD,CAAC,CACH,CAEA,SAAgB,EACd,EACA,EACA,EACa,CACb,OAAO,EAAO,OACX,GACC,EAAa,EAAO,EAAM,KAAK,GAC/B,EAAc,EAAO,EAAa,CAAK,CAC3C,CACF,CAEA,SAAS,EACP,EACA,EACA,EACwB,CACxB,IAAM,EAAiC,CAAC,EACxC,IAAK,IAAM,KAAS,EAAQ,CAC1B,IAAM,EAAQ,EAAI,QAAQ,EAAO,CAAW,EAC5C,EAAO,IAAU,EAAO,IAAU,GAAK,CACzC,CACA,OAAO,CACT,CAEA,SAAS,EACP,EACA,EACA,EACA,EACA,EACwB,CAIxB,IAAM,EAAY,EAAa,EAAW,EAAK,CAAW,EACpD,EAAiB,EAAI,OAAO,QAC/B,CAAE,YAAa,EAAU,IAAU,GAAK,CAC3C,EACM,EAAW,EAAI,SAAS,CAAK,EAKnC,GAAI,EAAe,OAAS,GAAK,EAAS,OAAS,EAAG,OAAO,KAE7D,IAAM,EAAgB,EAAI,OAAO,QAC9B,CAAE,YAAa,EAAU,IAAU,GAAK,GAAK,EAAS,IAAI,CAAK,CAClE,EAKM,EAAS,EAHI,EAAS,OAAQ,GAClC,EAAc,EAAO,EAAa,EAAO,EAAI,EAAE,CAErB,EAAY,EAAK,CAAW,EAExD,MAAO,CACL,GAAI,EAAI,GACR,SAAU,EAAI,SACd,KAAM,EAAc,KAAK,CAAE,QAAO,cAAe,CAC/C,IAAM,EAAQ,EAAO,IAAU,EACzB,EAAU,EAAS,IAAI,CAAK,EAClC,MAAO,CACL,QACA,WACA,QACA,UACA,SAAU,IAAU,GAAK,CAAC,CAC5B,CACF,CAAC,CACH,CACF,CAEA,SAAgB,EACd,EACA,EACA,EACmB,CACnB,IAAM,EAAW,EAAO,OAAQ,GAAU,EAAa,EAAO,EAAM,KAAK,CAAC,EAE1E,OAAO,EAAW,IAAK,GACrB,EAAW,EAAK,EAAQ,EAAU,EAAa,CAAK,CACtD,EAAE,OAAQ,GAAoC,IAAU,IAAI,CAC9D,CAEA,SAAgB,EACd,EACA,EACA,EACkB,CAClB,IAAM,EAAM,EAAS,CAAO,EAG5B,GAAI,CAAC,EAAI,OAAO,KAAM,GAAc,EAAU,QAAU,CAAK,EAAG,OAAO,EAEvE,IAAM,EAAO,IAAI,IAAI,EAAI,SAAS,CAAK,CAAC,EAOxC,OANI,EAAK,IAAI,CAAK,EAChB,EAAK,OAAO,CAAK,EAEjB,EAAK,IAAI,CAAK,EAGT,EAAI,aAAa,EAAO,CAAI,CACrC,CAEA,SAAgB,EACd,EACkB,CAClB,MAAO,CAAE,GAAG,EAA0B,MAAO,EAAM,KAAM,CAC3D,CAEA,SAAgB,EAAmB,EAAiC,CAGlE,OAAO,EAAW,QAAQ,EAAO,IAAQ,EAAQ,EAAI,SAAS,CAAK,EAAE,KAAM,CAAC,CAC9E"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { I18nKey as e } from "../../../i18n/declaration.js";
|
|
2
|
+
import { SKILL_SCOPE_ORDER as t, getSkillScope as n } from "../../../utils/skill-scope.js";
|
|
3
|
+
import { getSkillCardDescription as r } from "./get-skill-card-description.js";
|
|
4
|
+
import { SKILL_CATEGORY_LABEL_KEYS as i, SKILL_CATEGORY_ORDER as a, getSkillCategory as o } from "../../../utils/skill-category.js";
|
|
5
|
+
//#region src/components/features/skills/skill-filter.ts
|
|
6
|
+
var s = "source", c = "category", l = "type", u = "state", d = ["enabled", "disabled"], f = [
|
|
7
|
+
"agentskills",
|
|
8
|
+
"knowledge",
|
|
9
|
+
"repo"
|
|
10
|
+
], p = {
|
|
11
|
+
query: "",
|
|
12
|
+
sources: /* @__PURE__ */ new Set(),
|
|
13
|
+
categories: /* @__PURE__ */ new Set(),
|
|
14
|
+
types: /* @__PURE__ */ new Set(),
|
|
15
|
+
states: /* @__PURE__ */ new Set()
|
|
16
|
+
};
|
|
17
|
+
function m(e, t) {
|
|
18
|
+
return e.map((e) => ({
|
|
19
|
+
value: e,
|
|
20
|
+
labelKey: t[e]
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
function h(e, t) {
|
|
24
|
+
return new Set(e.filter((e) => t.has(e)));
|
|
25
|
+
}
|
|
26
|
+
var g = {
|
|
27
|
+
project: e.SETTINGS$SKILLS_SOURCE_PROJECT,
|
|
28
|
+
personal: e.SETTINGS$SKILLS_SOURCE_PERSONAL,
|
|
29
|
+
public: e.SETTINGS$SKILLS_SOURCE_PUBLIC
|
|
30
|
+
}, _ = {
|
|
31
|
+
agentskills: e.SETTINGS$SKILLS_TYPE_AGENTSKILLS,
|
|
32
|
+
knowledge: e.SETTINGS$SKILLS_TYPE_KNOWLEDGE,
|
|
33
|
+
repo: e.SETTINGS$SKILLS_TYPE_REPO
|
|
34
|
+
}, v = {
|
|
35
|
+
enabled: e.SETTINGS$SKILLS_ENABLED,
|
|
36
|
+
disabled: e.SETTINGS$SKILLS_DISABLED
|
|
37
|
+
}, y = [
|
|
38
|
+
{
|
|
39
|
+
id: "state",
|
|
40
|
+
labelKey: e.SETTINGS$SKILLS_FACET_STATE,
|
|
41
|
+
param: u,
|
|
42
|
+
values: m(d, v),
|
|
43
|
+
valueOf: (e, t) => t.has(e.name) ? "disabled" : "enabled",
|
|
44
|
+
selected: (e) => e.states,
|
|
45
|
+
withSelected: (e, t) => ({
|
|
46
|
+
...e,
|
|
47
|
+
states: h(d, t)
|
|
48
|
+
})
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "source",
|
|
52
|
+
labelKey: e.SETTINGS$SKILLS_FACET_SOURCE,
|
|
53
|
+
param: s,
|
|
54
|
+
values: m(t, g),
|
|
55
|
+
valueOf: (e) => n(e),
|
|
56
|
+
selected: (e) => e.sources,
|
|
57
|
+
withSelected: (e, n) => ({
|
|
58
|
+
...e,
|
|
59
|
+
sources: h(t, n)
|
|
60
|
+
})
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: "category",
|
|
64
|
+
labelKey: e.SETTINGS$SKILLS_FACET_CATEGORY,
|
|
65
|
+
param: c,
|
|
66
|
+
values: m(a, i),
|
|
67
|
+
valueOf: (e) => o(e),
|
|
68
|
+
selected: (e) => e.categories,
|
|
69
|
+
withSelected: (e, t) => ({
|
|
70
|
+
...e,
|
|
71
|
+
categories: h(a, t)
|
|
72
|
+
})
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "type",
|
|
76
|
+
labelKey: e.SETTINGS$SKILLS_FACET_TYPE,
|
|
77
|
+
param: l,
|
|
78
|
+
values: m(f, _),
|
|
79
|
+
valueOf: (e) => e.type,
|
|
80
|
+
selected: (e) => e.types,
|
|
81
|
+
withSelected: (e, t) => ({
|
|
82
|
+
...e,
|
|
83
|
+
types: h(f, t)
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
];
|
|
87
|
+
function b(e) {
|
|
88
|
+
let t = y.find((t) => t.id === e);
|
|
89
|
+
if (!t) throw Error(`Unknown skill facet group: ${e}`);
|
|
90
|
+
return t;
|
|
91
|
+
}
|
|
92
|
+
function x(e, t) {
|
|
93
|
+
let n = t.trim();
|
|
94
|
+
if (!n) return !0;
|
|
95
|
+
let i = [
|
|
96
|
+
e.name,
|
|
97
|
+
r(e),
|
|
98
|
+
e.description ?? "",
|
|
99
|
+
e.content ?? "",
|
|
100
|
+
e.license ?? "",
|
|
101
|
+
e.compatibility ?? "",
|
|
102
|
+
...e.triggers ?? [],
|
|
103
|
+
...e.allowed_tools ?? []
|
|
104
|
+
], a = n.toLowerCase();
|
|
105
|
+
return i.some((e) => e.toLowerCase().includes(a));
|
|
106
|
+
}
|
|
107
|
+
function S(e, t, n, r) {
|
|
108
|
+
return y.every((i) => {
|
|
109
|
+
if (i.id === r) return !0;
|
|
110
|
+
let a = i.selected(n);
|
|
111
|
+
return a.size === 0 ? !0 : a.has(i.valueOf(e, t));
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function C(e, t, n) {
|
|
115
|
+
return e.filter((e) => x(e, n.query) && S(e, t, n));
|
|
116
|
+
}
|
|
117
|
+
function w(e, t, n) {
|
|
118
|
+
let r = {};
|
|
119
|
+
for (let i of e) {
|
|
120
|
+
let e = t.valueOf(i, n);
|
|
121
|
+
r[e] = (r[e] ?? 0) + 1;
|
|
122
|
+
}
|
|
123
|
+
return r;
|
|
124
|
+
}
|
|
125
|
+
function T(e, t, n, r, i) {
|
|
126
|
+
let a = w(t, e, r), o = e.values.filter(({ value: e }) => (a[e] ?? 0) > 0), s = e.selected(i);
|
|
127
|
+
if (o.length < 2 && s.size === 0) return null;
|
|
128
|
+
let c = e.values.filter(({ value: e }) => (a[e] ?? 0) > 0 || s.has(e)), l = w(n.filter((t) => S(t, r, i, e.id)), e, r);
|
|
129
|
+
return {
|
|
130
|
+
id: e.id,
|
|
131
|
+
labelKey: e.labelKey,
|
|
132
|
+
rows: c.map(({ value: e, labelKey: t }) => {
|
|
133
|
+
let n = l[e] ?? 0, r = s.has(e);
|
|
134
|
+
return {
|
|
135
|
+
value: e,
|
|
136
|
+
labelKey: t,
|
|
137
|
+
count: n,
|
|
138
|
+
checked: r,
|
|
139
|
+
disabled: n === 0 && !r
|
|
140
|
+
};
|
|
141
|
+
})
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function E(e, t, n) {
|
|
145
|
+
let r = e.filter((e) => x(e, n.query));
|
|
146
|
+
return y.map((i) => T(i, e, r, t, n)).filter((e) => e !== null);
|
|
147
|
+
}
|
|
148
|
+
function D(e, t, n) {
|
|
149
|
+
let r = b(t);
|
|
150
|
+
if (!r.values.some((e) => e.value === n)) return e;
|
|
151
|
+
let i = new Set(r.selected(e));
|
|
152
|
+
return i.has(n) ? i.delete(n) : i.add(n), r.withSelected(e, i);
|
|
153
|
+
}
|
|
154
|
+
function O(e) {
|
|
155
|
+
return {
|
|
156
|
+
...p,
|
|
157
|
+
query: e.query
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
function k(e) {
|
|
161
|
+
return y.reduce((t, n) => t + n.selected(e).size, 0);
|
|
162
|
+
}
|
|
163
|
+
//#endregion
|
|
164
|
+
export { p as EMPTY_SKILL_FILTER_STATE, C as applySkillFilters, E as buildSkillFacetGroups, O as clearSkillFilterFacets, k as countActiveFilters, D as toggleSkillFilterValue };
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=skill-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-filter.js","names":[],"sources":["../../../../src/components/features/skills/skill-filter.ts"],"sourcesContent":["import type { SkillCategoryId } from \"@openhands/extensions/skills\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport type { SkillInfo, SkillType } from \"#/types/settings\";\nimport {\n getSkillCategory,\n SKILL_CATEGORY_LABEL_KEYS,\n SKILL_CATEGORY_ORDER,\n} from \"#/utils/skill-category\";\nimport {\n getSkillScope,\n SKILL_SCOPE_ORDER,\n type SkillScope,\n} from \"#/utils/skill-scope\";\nimport { getSkillCardDescription } from \"./get-skill-card-description\";\n\nexport const SKILL_FILTER_QUERY_PARAM = \"q\";\nconst SOURCE_PARAM = \"source\";\nconst CATEGORY_PARAM = \"category\";\nconst TYPE_PARAM = \"type\";\nconst STATE_PARAM = \"state\";\n\nexport type SkillEnabledState = \"enabled\" | \"disabled\";\nexport type SkillFacetGroupId = \"state\" | \"source\" | \"category\" | \"type\";\n\nconst SKILL_ENABLED_STATE_ORDER: readonly SkillEnabledState[] = [\n \"enabled\",\n \"disabled\",\n];\nconst SKILL_TYPE_ORDER: readonly SkillType[] = [\n \"agentskills\",\n \"knowledge\",\n \"repo\",\n];\n\nexport interface SkillFilterState {\n query: string;\n sources: Set<SkillScope>;\n categories: Set<SkillCategoryId>;\n types: Set<SkillType>;\n states: Set<SkillEnabledState>;\n}\n\nexport interface SkillFacetRowModel {\n value: string;\n labelKey: I18nKey;\n count: number;\n checked: boolean;\n disabled: boolean;\n}\n\nexport interface SkillFacetGroup {\n id: SkillFacetGroupId;\n labelKey: I18nKey;\n rows: SkillFacetRowModel[];\n}\n\nexport const EMPTY_SKILL_FILTER_STATE: SkillFilterState = {\n query: \"\",\n sources: new Set(),\n categories: new Set(),\n types: new Set(),\n states: new Set(),\n};\n\n/** Carrying `labelKey`s rather than translated strings keeps this module pure, so its tests need no i18n. */\ninterface GroupValue {\n value: string;\n labelKey: I18nKey;\n}\n\nfunction labelledValues<TValue extends string>(\n order: readonly TValue[],\n labelKeys: Record<TValue, I18nKey>,\n): readonly GroupValue[] {\n return order.map((value) => ({ value, labelKey: labelKeys[value] }));\n}\n\n/** A new facet group is declared here and nowhere else: `selected` / `withSelected` are what keep every operation below driven by this table alone. */\ninterface GroupDef {\n id: SkillFacetGroupId;\n labelKey: I18nKey;\n param: string;\n values: readonly GroupValue[];\n valueOf: (skill: SkillInfo, disabledSet: Set<string>) => string;\n selected: (state: SkillFilterState) => Set<string>;\n withSelected: (\n state: SkillFilterState,\n next: Set<string>,\n ) => SkillFilterState;\n}\n\n/** Rebuilding rather than casting keeps every writer below cast-free: a value the group does not declare cannot survive. */\nfunction narrowSet<TValue extends string>(\n order: readonly TValue[],\n next: Set<string>,\n): Set<TValue> {\n return new Set(order.filter((value) => next.has(value)));\n}\n\nconst SOURCE_LABEL_KEYS: Record<SkillScope, I18nKey> = {\n project: I18nKey.SETTINGS$SKILLS_SOURCE_PROJECT,\n personal: I18nKey.SETTINGS$SKILLS_SOURCE_PERSONAL,\n public: I18nKey.SETTINGS$SKILLS_SOURCE_PUBLIC,\n};\n\nconst TYPE_LABEL_KEYS: Record<SkillType, I18nKey> = {\n agentskills: I18nKey.SETTINGS$SKILLS_TYPE_AGENTSKILLS,\n knowledge: I18nKey.SETTINGS$SKILLS_TYPE_KNOWLEDGE,\n repo: I18nKey.SETTINGS$SKILLS_TYPE_REPO,\n};\n\nconst STATE_LABEL_KEYS: Record<SkillEnabledState, I18nKey> = {\n enabled: I18nKey.SETTINGS$SKILLS_ENABLED,\n disabled: I18nKey.SETTINGS$SKILLS_DISABLED,\n};\n\nconst GROUP_DEFS: readonly GroupDef[] = [\n {\n id: \"state\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_STATE,\n param: STATE_PARAM,\n values: labelledValues(SKILL_ENABLED_STATE_ORDER, STATE_LABEL_KEYS),\n valueOf: (skill, disabledSet) =>\n disabledSet.has(skill.name) ? \"disabled\" : \"enabled\",\n selected: (state) => state.states,\n withSelected: (state, next) => ({\n ...state,\n states: narrowSet(SKILL_ENABLED_STATE_ORDER, next),\n }),\n },\n {\n id: \"source\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_SOURCE,\n param: SOURCE_PARAM,\n values: labelledValues(SKILL_SCOPE_ORDER, SOURCE_LABEL_KEYS),\n valueOf: (skill) => getSkillScope(skill),\n selected: (state) => state.sources,\n withSelected: (state, next) => ({\n ...state,\n sources: narrowSet(SKILL_SCOPE_ORDER, next),\n }),\n },\n {\n id: \"category\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_CATEGORY,\n param: CATEGORY_PARAM,\n values: labelledValues(SKILL_CATEGORY_ORDER, SKILL_CATEGORY_LABEL_KEYS),\n valueOf: (skill) => getSkillCategory(skill),\n selected: (state) => state.categories,\n withSelected: (state, next) => ({\n ...state,\n categories: narrowSet(SKILL_CATEGORY_ORDER, next),\n }),\n },\n {\n id: \"type\",\n labelKey: I18nKey.SETTINGS$SKILLS_FACET_TYPE,\n param: TYPE_PARAM,\n values: labelledValues(SKILL_TYPE_ORDER, TYPE_LABEL_KEYS),\n valueOf: (skill) => skill.type,\n selected: (state) => state.types,\n withSelected: (state, next) => ({\n ...state,\n types: narrowSet(SKILL_TYPE_ORDER, next),\n }),\n },\n];\n\nfunction groupDef(id: SkillFacetGroupId): GroupDef {\n const def = GROUP_DEFS.find((candidate) => candidate.id === id);\n if (!def) throw new Error(`Unknown skill facet group: ${id}`);\n return def;\n}\n\n/** Unknown values are dropped, so a hand-edited URL cannot smuggle one in. */\nfunction parseSet(raw: string[], def: GroupDef): Set<string> {\n const legal = new Set(def.values.map(({ value }) => value));\n return new Set(\n raw.map((value) => value.trim()).filter((value) => legal.has(value)),\n );\n}\n\nexport function parseSkillFilterState(\n params: URLSearchParams,\n): SkillFilterState {\n return GROUP_DEFS.reduce<SkillFilterState>(\n (state, def) =>\n def.withSelected(state, parseSet(params.getAll(def.param), def)),\n {\n ...EMPTY_SKILL_FILTER_STATE,\n query: params.get(SKILL_FILTER_QUERY_PARAM) ?? \"\",\n },\n );\n}\n\nexport function toSkillFilterSearchParams(\n state: SkillFilterState,\n): URLSearchParams {\n const params = new URLSearchParams();\n if (state.query) params.set(SKILL_FILTER_QUERY_PARAM, state.query);\n\n // Canonical order keeps URLs deterministic regardless of click order.\n for (const def of GROUP_DEFS) {\n const selected = def.selected(state);\n for (const { value } of def.values) {\n if (selected.has(value)) params.append(def.param, value);\n }\n }\n\n return params;\n}\n\nfunction matchesQuery(skill: SkillInfo, query: string): boolean {\n const trimmed = query.trim();\n if (!trimmed) return true;\n\n const haystacks = [\n skill.name,\n getSkillCardDescription(skill),\n skill.description ?? \"\",\n skill.content ?? \"\",\n skill.license ?? \"\",\n skill.compatibility ?? \"\",\n ...(skill.triggers ?? []),\n ...(skill.allowed_tools ?? []),\n ];\n\n const lowered = trimmed.toLowerCase();\n return haystacks.some((value) => value.toLowerCase().includes(lowered));\n}\n\n/**\n * `exclude` omits one group's own selection so its rows stay counted against the other groups alone.\n * A row therefore reads \"this many skills carry this value, under your other filters\" — the usual disjunctive facet count — and not \"your result set will be this big\": the group ORs its values together, so on a group that already has a selection the two differ.\n */\nfunction matchesFacets(\n skill: SkillInfo,\n disabledSet: Set<string>,\n state: SkillFilterState,\n exclude?: SkillFacetGroupId,\n): boolean {\n return GROUP_DEFS.every((def) => {\n if (def.id === exclude) return true;\n const selected = def.selected(state);\n if (selected.size === 0) return true;\n return selected.has(def.valueOf(skill, disabledSet));\n });\n}\n\nexport function applySkillFilters(\n skills: SkillInfo[],\n disabledSet: Set<string>,\n state: SkillFilterState,\n): SkillInfo[] {\n return skills.filter(\n (skill) =>\n matchesQuery(skill, state.query) &&\n matchesFacets(skill, disabledSet, state),\n );\n}\n\nfunction countByValue(\n skills: SkillInfo[],\n def: GroupDef,\n disabledSet: Set<string>,\n): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const skill of skills) {\n const value = def.valueOf(skill, disabledSet);\n counts[value] = (counts[value] ?? 0) + 1;\n }\n return counts;\n}\n\nfunction buildGroup(\n def: GroupDef,\n allSkills: SkillInfo[],\n searched: SkillInfo[],\n disabledSet: Set<string>,\n state: SkillFilterState,\n): SkillFacetGroup | null {\n // Visibility and the row set come from the raw list so the rail's shape\n // depends only on what the user has, never on the active filters. If they\n // tracked filtered counts, narrowing could make a group vanish mid-click.\n const rawCounts = countByValue(allSkills, def, disabledSet);\n const discriminating = def.values.filter(\n ({ value }) => (rawCounts[value] ?? 0) > 0,\n );\n const selected = def.selected(state);\n // A group with only one (or zero) discriminating values is normally hidden,\n // but a selection can still be carried in from the URL for a value that has\n // no matches for this user. Hiding the group then would enforce the filter\n // invisibly, with no row left to explain or undo it.\n if (discriminating.length < 2 && selected.size === 0) return null;\n\n const visibleValues = def.values.filter(\n ({ value }) => (rawCounts[value] ?? 0) > 0 || selected.has(value),\n );\n\n const candidates = searched.filter((skill) =>\n matchesFacets(skill, disabledSet, state, def.id),\n );\n const counts = countByValue(candidates, def, disabledSet);\n\n return {\n id: def.id,\n labelKey: def.labelKey,\n rows: visibleValues.map(({ value, labelKey }) => {\n const count = counts[value] ?? 0;\n const checked = selected.has(value);\n return {\n value,\n labelKey,\n count,\n checked,\n disabled: count === 0 && !checked,\n };\n }),\n };\n}\n\nexport function buildSkillFacetGroups(\n skills: SkillInfo[],\n disabledSet: Set<string>,\n state: SkillFilterState,\n): SkillFacetGroup[] {\n const searched = skills.filter((skill) => matchesQuery(skill, state.query));\n\n return GROUP_DEFS.map((def) =>\n buildGroup(def, skills, searched, disabledSet, state),\n ).filter((group): group is SkillFacetGroup => group !== null);\n}\n\nexport function toggleSkillFilterValue(\n state: SkillFilterState,\n groupId: SkillFacetGroupId,\n value: string,\n): SkillFilterState {\n const def = groupDef(groupId);\n // `withSelected` would drop an unknown value anyway; returning the same\n // state object keeps a no-op toggle from re-rendering or rewriting the URL.\n if (!def.values.some((candidate) => candidate.value === value)) return state;\n\n const next = new Set(def.selected(state));\n if (next.has(value)) {\n next.delete(value);\n } else {\n next.add(value);\n }\n\n return def.withSelected(state, next);\n}\n\nexport function clearSkillFilterFacets(\n state: SkillFilterState,\n): SkillFilterState {\n return { ...EMPTY_SKILL_FILTER_STATE, query: state.query };\n}\n\nexport function countActiveFilters(state: SkillFilterState): number {\n // The query is excluded: it is already visible in its own input, so counting\n // it would double-report in both the Filters badge and the summary row.\n return GROUP_DEFS.reduce((total, def) => total + def.selected(state).size, 0);\n}\n"],"mappings":";;;;;AAgBA,IAAM,IAAe,UACf,IAAiB,YACjB,IAAa,QACb,IAAc,SAKd,IAA0D,CAC9D,WACA,UACF,GACM,IAAyC;CAC7C;CACA;CACA;AACF,GAwBa,IAA6C;CACxD,OAAO;CACP,yBAAS,IAAI,IAAI;CACjB,4BAAY,IAAI,IAAI;CACpB,uBAAO,IAAI,IAAI;CACf,wBAAQ,IAAI,IAAI;AAClB;AAQA,SAAS,EACP,GACA,GACuB;CACvB,OAAO,EAAM,KAAK,OAAW;EAAE;EAAO,UAAU,EAAU;CAAO,EAAE;AACrE;AAiBA,SAAS,EACP,GACA,GACa;CACb,OAAO,IAAI,IAAI,EAAM,QAAQ,MAAU,EAAK,IAAI,CAAK,CAAC,CAAC;AACzD;AAEA,IAAM,IAAiD;CACrD,SAAS,EAAQ;CACjB,UAAU,EAAQ;CAClB,QAAQ,EAAQ;AAClB,GAEM,IAA8C;CAClD,aAAa,EAAQ;CACrB,WAAW,EAAQ;CACnB,MAAM,EAAQ;AAChB,GAEM,IAAuD;CAC3D,SAAS,EAAQ;CACjB,UAAU,EAAQ;AACpB,GAEM,IAAkC;CACtC;EACE,IAAI;EACJ,UAAU,EAAQ;EAClB,OAAO;EACP,QAAQ,EAAe,GAA2B,CAAgB;EAClE,UAAU,GAAO,MACf,EAAY,IAAI,EAAM,IAAI,IAAI,aAAa;EAC7C,WAAW,MAAU,EAAM;EAC3B,eAAe,GAAO,OAAU;GAC9B,GAAG;GACH,QAAQ,EAAU,GAA2B,CAAI;EACnD;CACF;CACA;EACE,IAAI;EACJ,UAAU,EAAQ;EAClB,OAAO;EACP,QAAQ,EAAe,GAAmB,CAAiB;EAC3D,UAAU,MAAU,EAAc,CAAK;EACvC,WAAW,MAAU,EAAM;EAC3B,eAAe,GAAO,OAAU;GAC9B,GAAG;GACH,SAAS,EAAU,GAAmB,CAAI;EAC5C;CACF;CACA;EACE,IAAI;EACJ,UAAU,EAAQ;EAClB,OAAO;EACP,QAAQ,EAAe,GAAsB,CAAyB;EACtE,UAAU,MAAU,EAAiB,CAAK;EAC1C,WAAW,MAAU,EAAM;EAC3B,eAAe,GAAO,OAAU;GAC9B,GAAG;GACH,YAAY,EAAU,GAAsB,CAAI;EAClD;CACF;CACA;EACE,IAAI;EACJ,UAAU,EAAQ;EAClB,OAAO;EACP,QAAQ,EAAe,GAAkB,CAAe;EACxD,UAAU,MAAU,EAAM;EAC1B,WAAW,MAAU,EAAM;EAC3B,eAAe,GAAO,OAAU;GAC9B,GAAG;GACH,OAAO,EAAU,GAAkB,CAAI;EACzC;CACF;AACF;AAEA,SAAS,EAAS,GAAiC;CACjD,IAAM,IAAM,EAAW,MAAM,MAAc,EAAU,OAAO,CAAE;CAC9D,IAAI,CAAC,GAAK,MAAU,MAAM,8BAA8B,GAAI;CAC5D,OAAO;AACT;AAwCA,SAAS,EAAa,GAAkB,GAAwB;CAC9D,IAAM,IAAU,EAAM,KAAK;CAC3B,IAAI,CAAC,GAAS,OAAO;CAErB,IAAM,IAAY;EAChB,EAAM;EACN,EAAwB,CAAK;EAC7B,EAAM,eAAe;EACrB,EAAM,WAAW;EACjB,EAAM,WAAW;EACjB,EAAM,iBAAiB;EACvB,GAAI,EAAM,YAAY,CAAC;EACvB,GAAI,EAAM,iBAAiB,CAAC;CAC9B,GAEM,IAAU,EAAQ,YAAY;CACpC,OAAO,EAAU,MAAM,MAAU,EAAM,YAAY,EAAE,SAAS,CAAO,CAAC;AACxE;AAMA,SAAS,EACP,GACA,GACA,GACA,GACS;CACT,OAAO,EAAW,OAAO,MAAQ;EAC/B,IAAI,EAAI,OAAO,GAAS,OAAO;EAC/B,IAAM,IAAW,EAAI,SAAS,CAAK;EAEnC,OADI,EAAS,SAAS,IAAU,KACzB,EAAS,IAAI,EAAI,QAAQ,GAAO,CAAW,CAAC;CACrD,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA,GACa;CACb,OAAO,EAAO,QACX,MACC,EAAa,GAAO,EAAM,KAAK,KAC/B,EAAc,GAAO,GAAa,CAAK,CAC3C;AACF;AAEA,SAAS,EACP,GACA,GACA,GACwB;CACxB,IAAM,IAAiC,CAAC;CACxC,KAAK,IAAM,KAAS,GAAQ;EAC1B,IAAM,IAAQ,EAAI,QAAQ,GAAO,CAAW;EAC5C,EAAO,MAAU,EAAO,MAAU,KAAK;CACzC;CACA,OAAO;AACT;AAEA,SAAS,EACP,GACA,GACA,GACA,GACA,GACwB;CAIxB,IAAM,IAAY,EAAa,GAAW,GAAK,CAAW,GACpD,IAAiB,EAAI,OAAO,QAC/B,EAAE,gBAAa,EAAU,MAAU,KAAK,CAC3C,GACM,IAAW,EAAI,SAAS,CAAK;CAKnC,IAAI,EAAe,SAAS,KAAK,EAAS,SAAS,GAAG,OAAO;CAE7D,IAAM,IAAgB,EAAI,OAAO,QAC9B,EAAE,gBAAa,EAAU,MAAU,KAAK,KAAK,EAAS,IAAI,CAAK,CAClE,GAKM,IAAS,EAHI,EAAS,QAAQ,MAClC,EAAc,GAAO,GAAa,GAAO,EAAI,EAAE,CAErB,GAAY,GAAK,CAAW;CAExD,OAAO;EACL,IAAI,EAAI;EACR,UAAU,EAAI;EACd,MAAM,EAAc,KAAK,EAAE,UAAO,kBAAe;GAC/C,IAAM,IAAQ,EAAO,MAAU,GACzB,IAAU,EAAS,IAAI,CAAK;GAClC,OAAO;IACL;IACA;IACA;IACA;IACA,UAAU,MAAU,KAAK,CAAC;GAC5B;EACF,CAAC;CACH;AACF;AAEA,SAAgB,EACd,GACA,GACA,GACmB;CACnB,IAAM,IAAW,EAAO,QAAQ,MAAU,EAAa,GAAO,EAAM,KAAK,CAAC;CAE1E,OAAO,EAAW,KAAK,MACrB,EAAW,GAAK,GAAQ,GAAU,GAAa,CAAK,CACtD,EAAE,QAAQ,MAAoC,MAAU,IAAI;AAC9D;AAEA,SAAgB,EACd,GACA,GACA,GACkB;CAClB,IAAM,IAAM,EAAS,CAAO;CAG5B,IAAI,CAAC,EAAI,OAAO,MAAM,MAAc,EAAU,UAAU,CAAK,GAAG,OAAO;CAEvE,IAAM,IAAO,IAAI,IAAI,EAAI,SAAS,CAAK,CAAC;CAOxC,OANI,EAAK,IAAI,CAAK,IAChB,EAAK,OAAO,CAAK,IAEjB,EAAK,IAAI,CAAK,GAGT,EAAI,aAAa,GAAO,CAAI;AACrC;AAEA,SAAgB,EACd,GACkB;CAClB,OAAO;EAAE,GAAG;EAA0B,OAAO,EAAM;CAAM;AAC3D;AAEA,SAAgB,EAAmB,GAAiC;CAGlE,OAAO,EAAW,QAAQ,GAAO,MAAQ,IAAQ,EAAI,SAAS,CAAK,EAAE,MAAM,CAAC;AAC9E"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),t=require("../../../i18n/declaration.cjs"),n=require("../../../utils/utils.cjs"),r=require("../../shared/modals/modal-backdrop.cjs"),i=require("../../shared/modals/modal-body.cjs"),a=require("../settings/brand-button.cjs"),o=require("./skill-facet-rail.cjs");let s=require("react/jsx-runtime");function c({groups:c,activeCount:l,onToggle:u,onClearAll:d,onClose:f}){let{t:p}=e.useTranslation(`openhands`);return(0,s.jsx)(r.ModalBackdrop,{onClose:f,"aria-label":p(t.I18nKey.SETTINGS$SKILLS_FILTERS_MODAL_TITLE),children:(0,s.jsxs)(i.ModalBody,{testID:`skill-filters-modal`,className:n.cn(`items-stretch`,i.MODAL_MAX_WIDTH_VIEWPORT),children:[(0,s.jsx)(`h3`,{className:`text-lg font-semibold text-foreground`,children:p(t.I18nKey.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}),(0,s.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto custom-scrollbar-always`,children:(0,s.jsx)(o.SkillFacetRail,{groups:c,onToggle:u})}),(0,s.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[l>0?(0,s.jsx)(a.BrandButton,{type:`button`,variant:`secondary`,testId:`skill-filters-modal-clear`,onClick:d,children:p(t.I18nKey.SETTINGS$SKILLS_CLEAR_FILTERS)}):null,(0,s.jsx)(a.BrandButton,{type:`button`,variant:`primary`,testId:`skill-filters-modal-done`,onClick:f,children:p(t.I18nKey.BUTTON$CLOSE)})]})]})})}exports.SkillFiltersModal=c;
|
|
2
|
+
//# sourceMappingURL=skill-filters-modal.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-filters-modal.cjs","names":[],"sources":["../../../../src/components/features/skills/skill-filters-modal.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { BrandButton } from \"#/components/features/settings/brand-button\";\nimport { ModalBackdrop } from \"#/components/shared/modals/modal-backdrop\";\nimport {\n MODAL_MAX_WIDTH_VIEWPORT,\n ModalBody,\n} from \"#/components/shared/modals/modal-body\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\nimport { SkillFacetRail } from \"./skill-facet-rail\";\nimport type { SkillFacetGroup, SkillFacetGroupId } from \"./skill-filter\";\n\ninterface SkillFiltersModalProps {\n groups: SkillFacetGroup[];\n activeCount: number;\n onToggle: (groupId: SkillFacetGroupId, value: string) => void;\n onClearAll: () => void;\n onClose: () => void;\n}\n\nexport function SkillFiltersModal({\n groups,\n activeCount,\n onToggle,\n onClearAll,\n onClose,\n}: SkillFiltersModalProps) {\n const { t } = useTranslation(\"openhands\");\n\n return (\n <ModalBackdrop\n onClose={onClose}\n aria-label={t(I18nKey.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}\n >\n <ModalBody\n testID=\"skill-filters-modal\"\n className={cn(\"items-stretch\", MODAL_MAX_WIDTH_VIEWPORT)}\n >\n <h3 className=\"text-lg font-semibold text-foreground\">\n {t(I18nKey.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}\n </h3>\n\n <div className=\"max-h-[60vh] overflow-y-auto custom-scrollbar-always\">\n <SkillFacetRail groups={groups} onToggle={onToggle} />\n </div>\n\n <div className=\"flex items-center justify-end gap-2\">\n {activeCount > 0 ? (\n <BrandButton\n type=\"button\"\n variant=\"secondary\"\n testId=\"skill-filters-modal-clear\"\n onClick={onClearAll}\n >\n {t(I18nKey.SETTINGS$SKILLS_CLEAR_FILTERS)}\n </BrandButton>\n ) : null}\n <BrandButton\n type=\"button\"\n variant=\"primary\"\n testId=\"skill-filters-modal-done\"\n onClick={onClose}\n >\n {t(I18nKey.BUTTON$CLOSE)}\n </BrandButton>\n </div>\n </ModalBody>\n </ModalBackdrop>\n );\n}\n"],"mappings":"2aAoBA,SAAgB,EAAkB,CAChC,SACA,cACA,WACA,aACA,WACyB,CACzB,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAExC,OACE,EAAA,EAAA,KAAC,EAAA,cAAD,CACW,UACT,aAAY,EAAE,EAAA,QAAQ,mCAAmC,YAEzD,EAAA,EAAA,MAAC,EAAA,UAAD,CACE,OAAO,sBACP,UAAW,EAAA,GAAG,gBAAiB,EAAA,wBAAwB,WAFzD,EAIE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,iDACX,EAAE,EAAA,QAAQ,mCAAmC,CAC5C,CAAA,GAEJ,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iEACb,EAAA,EAAA,KAAC,EAAA,eAAD,CAAwB,SAAkB,UAAW,CAAA,CAClD,CAAA,GAEL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+CAAf,CACG,EAAc,GACb,EAAA,EAAA,KAAC,EAAA,YAAD,CACE,KAAK,SACL,QAAQ,YACR,OAAO,4BACP,QAAS,WAER,EAAE,EAAA,QAAQ,6BAA6B,CAC7B,CAAA,EACX,MACJ,EAAA,EAAA,KAAC,EAAA,YAAD,CACE,KAAK,SACL,QAAQ,UACR,OAAO,2BACP,QAAS,WAER,EAAE,EAAA,QAAQ,YAAY,CACZ,CAAA,CACV,GACI,GACE,CAAA,CAEnB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { I18nKey as t } from "../../../i18n/declaration.js";
|
|
3
|
+
import { cn as n } from "../../../utils/utils.js";
|
|
4
|
+
import { ModalBackdrop as r } from "../../shared/modals/modal-backdrop.js";
|
|
5
|
+
import { MODAL_MAX_WIDTH_VIEWPORT as i, ModalBody as a } from "../../shared/modals/modal-body.js";
|
|
6
|
+
import { BrandButton as o } from "../settings/brand-button.js";
|
|
7
|
+
import { SkillFacetRail as s } from "./skill-facet-rail.js";
|
|
8
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
9
|
+
//#region src/components/features/skills/skill-filters-modal.tsx
|
|
10
|
+
function u({ groups: u, activeCount: d, onToggle: f, onClearAll: p, onClose: m }) {
|
|
11
|
+
let { t: h } = e("openhands");
|
|
12
|
+
return /* @__PURE__ */ c(r, {
|
|
13
|
+
onClose: m,
|
|
14
|
+
"aria-label": h(t.SETTINGS$SKILLS_FILTERS_MODAL_TITLE),
|
|
15
|
+
children: /* @__PURE__ */ l(a, {
|
|
16
|
+
testID: "skill-filters-modal",
|
|
17
|
+
className: n("items-stretch", i),
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ c("h3", {
|
|
20
|
+
className: "text-lg font-semibold text-foreground",
|
|
21
|
+
children: h(t.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)
|
|
22
|
+
}),
|
|
23
|
+
/* @__PURE__ */ c("div", {
|
|
24
|
+
className: "max-h-[60vh] overflow-y-auto custom-scrollbar-always",
|
|
25
|
+
children: /* @__PURE__ */ c(s, {
|
|
26
|
+
groups: u,
|
|
27
|
+
onToggle: f
|
|
28
|
+
})
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ l("div", {
|
|
31
|
+
className: "flex items-center justify-end gap-2",
|
|
32
|
+
children: [d > 0 ? /* @__PURE__ */ c(o, {
|
|
33
|
+
type: "button",
|
|
34
|
+
variant: "secondary",
|
|
35
|
+
testId: "skill-filters-modal-clear",
|
|
36
|
+
onClick: p,
|
|
37
|
+
children: h(t.SETTINGS$SKILLS_CLEAR_FILTERS)
|
|
38
|
+
}) : null, /* @__PURE__ */ c(o, {
|
|
39
|
+
type: "button",
|
|
40
|
+
variant: "primary",
|
|
41
|
+
testId: "skill-filters-modal-done",
|
|
42
|
+
onClick: m,
|
|
43
|
+
children: h(t.BUTTON$CLOSE)
|
|
44
|
+
})]
|
|
45
|
+
})
|
|
46
|
+
]
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { u as SkillFiltersModal };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=skill-filters-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-filters-modal.js","names":[],"sources":["../../../../src/components/features/skills/skill-filters-modal.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { BrandButton } from \"#/components/features/settings/brand-button\";\nimport { ModalBackdrop } from \"#/components/shared/modals/modal-backdrop\";\nimport {\n MODAL_MAX_WIDTH_VIEWPORT,\n ModalBody,\n} from \"#/components/shared/modals/modal-body\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\nimport { SkillFacetRail } from \"./skill-facet-rail\";\nimport type { SkillFacetGroup, SkillFacetGroupId } from \"./skill-filter\";\n\ninterface SkillFiltersModalProps {\n groups: SkillFacetGroup[];\n activeCount: number;\n onToggle: (groupId: SkillFacetGroupId, value: string) => void;\n onClearAll: () => void;\n onClose: () => void;\n}\n\nexport function SkillFiltersModal({\n groups,\n activeCount,\n onToggle,\n onClearAll,\n onClose,\n}: SkillFiltersModalProps) {\n const { t } = useTranslation(\"openhands\");\n\n return (\n <ModalBackdrop\n onClose={onClose}\n aria-label={t(I18nKey.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}\n >\n <ModalBody\n testID=\"skill-filters-modal\"\n className={cn(\"items-stretch\", MODAL_MAX_WIDTH_VIEWPORT)}\n >\n <h3 className=\"text-lg font-semibold text-foreground\">\n {t(I18nKey.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}\n </h3>\n\n <div className=\"max-h-[60vh] overflow-y-auto custom-scrollbar-always\">\n <SkillFacetRail groups={groups} onToggle={onToggle} />\n </div>\n\n <div className=\"flex items-center justify-end gap-2\">\n {activeCount > 0 ? (\n <BrandButton\n type=\"button\"\n variant=\"secondary\"\n testId=\"skill-filters-modal-clear\"\n onClick={onClearAll}\n >\n {t(I18nKey.SETTINGS$SKILLS_CLEAR_FILTERS)}\n </BrandButton>\n ) : null}\n <BrandButton\n type=\"button\"\n variant=\"primary\"\n testId=\"skill-filters-modal-done\"\n onClick={onClose}\n >\n {t(I18nKey.BUTTON$CLOSE)}\n </BrandButton>\n </div>\n </ModalBody>\n </ModalBackdrop>\n );\n}\n"],"mappings":";;;;;;;;;AAoBA,SAAgB,EAAkB,EAChC,WACA,gBACA,aACA,eACA,cACyB;CACzB,IAAM,EAAE,SAAM,EAAe,WAAW;CAExC,OACE,kBAAC,GAAD;EACW;EACT,cAAY,EAAE,EAAQ,mCAAmC;YAEzD,kBAAC,GAAD;GACE,QAAO;GACP,WAAW,EAAG,iBAAiB,CAAwB;aAFzD;IAIE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAE,EAAQ,mCAAmC;IAC5C,CAAA;IAEJ,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MAAwB;MAAkB;KAAW,CAAA;IAClD,CAAA;IAEL,kBAAC,OAAD;KAAK,WAAU;eAAf,CACG,IAAc,IACb,kBAAC,GAAD;MACE,MAAK;MACL,SAAQ;MACR,QAAO;MACP,SAAS;gBAER,EAAE,EAAQ,6BAA6B;KAC7B,CAAA,IACX,MACJ,kBAAC,GAAD;MACE,MAAK;MACL,SAAQ;MACR,QAAO;MACP,SAAS;gBAER,EAAE,EAAQ,YAAY;KACZ,CAAA,CACV;;GACI;;CACE,CAAA;AAEnB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../utils/utils.cjs"),t=require("../../../icons/skills.cjs");let n=require("react/jsx-runtime");function r({skillName:r,className:i}){return(0,n.jsx)(`span`,{"aria-hidden":`true`,title:r,"data-testid":`skill-icon-${r}`,className:e.cn(`inline-flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden`,`rounded-lg border border-white/10 bg-surface-raised text-white`,`shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]`,`[&>svg]:h-5 [&>svg]:w-5`,i),children:(0,n.jsx)(t.default,{})})}exports.SkillIconBadge=r;
|
|
2
|
+
//# sourceMappingURL=skill-icon-badge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-icon-badge.cjs","names":[],"sources":["../../../../src/components/features/skills/skill-icon-badge.tsx"],"sourcesContent":["import SkillsIcon from \"#/icons/skills.svg?react\";\nimport { cn } from \"#/utils/utils\";\n\ninterface SkillIconBadgeProps {\n skillName: string;\n className?: string;\n}\n\nexport function SkillIconBadge({ skillName, className }: SkillIconBadgeProps) {\n return (\n <span\n aria-hidden=\"true\"\n title={skillName}\n data-testid={`skill-icon-${skillName}`}\n className={cn(\n \"inline-flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden\",\n \"rounded-lg border border-white/10 bg-surface-raised text-white\",\n \"shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]\",\n \"[&>svg]:h-5 [&>svg]:w-5\",\n className,\n )}\n >\n <SkillsIcon />\n </span>\n );\n}\n"],"mappings":"yKAQA,SAAgB,EAAe,CAAE,YAAW,aAAkC,CAC5E,OACE,EAAA,EAAA,KAAC,OAAD,CACE,cAAY,OACZ,MAAO,EACP,cAAa,cAAc,IAC3B,UAAW,EAAA,GACT,6EACA,iEACA,gDACA,0BACA,CACF,YAEA,EAAA,EAAA,KAAC,EAAA,QAAD,CAAa,CAAA,CACT,CAAA,CAEV"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { cn as e } from "../../../utils/utils.js";
|
|
2
|
+
import t from "../../../icons/skills.js";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/features/skills/skill-icon-badge.tsx
|
|
5
|
+
function r({ skillName: r, className: i }) {
|
|
6
|
+
return /* @__PURE__ */ n("span", {
|
|
7
|
+
"aria-hidden": "true",
|
|
8
|
+
title: r,
|
|
9
|
+
"data-testid": `skill-icon-${r}`,
|
|
10
|
+
className: e("inline-flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden", "rounded-lg border border-white/10 bg-surface-raised text-white", "shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]", "[&>svg]:h-5 [&>svg]:w-5", i),
|
|
11
|
+
children: /* @__PURE__ */ n(t, {})
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { r as SkillIconBadge };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=skill-icon-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-icon-badge.js","names":[],"sources":["../../../../src/components/features/skills/skill-icon-badge.tsx"],"sourcesContent":["import SkillsIcon from \"#/icons/skills.svg?react\";\nimport { cn } from \"#/utils/utils\";\n\ninterface SkillIconBadgeProps {\n skillName: string;\n className?: string;\n}\n\nexport function SkillIconBadge({ skillName, className }: SkillIconBadgeProps) {\n return (\n <span\n aria-hidden=\"true\"\n title={skillName}\n data-testid={`skill-icon-${skillName}`}\n className={cn(\n \"inline-flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden\",\n \"rounded-lg border border-white/10 bg-surface-raised text-white\",\n \"shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]\",\n \"[&>svg]:h-5 [&>svg]:w-5\",\n className,\n )}\n >\n <SkillsIcon />\n </span>\n );\n}\n"],"mappings":";;;;AAQA,SAAgB,EAAe,EAAE,cAAW,gBAAkC;CAC5E,OACE,kBAAC,QAAD;EACE,eAAY;EACZ,OAAO;EACP,eAAa,cAAc;EAC3B,WAAW,EACT,8EACA,kEACA,iDACA,2BACA,CACF;YAEA,kBAAC,GAAD,CAAa,CAAA;CACT,CAAA;AAEV"}
|
|
@@ -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");let n=require("react/jsx-runtime");var r=`inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light`,i={agentskills:{labelKey:t.I18nKey.SETTINGS$SKILLS_TYPE_AGENTSKILLS},knowledge:{labelKey:t.I18nKey.SETTINGS$SKILLS_TYPE_KNOWLEDGE},repo:{labelKey:t.I18nKey.SETTINGS$SKILLS_TYPE_REPO}};function a({type:t}){let{t:a}=e.useTranslation(`openhands`),o=i[t];return(0,n.jsx)(`span`,{"data-testid":`skill-type-badge-${t}`,className:r,children:a(o.labelKey)})}exports.SkillTypeBadge=a;
|
|
2
|
+
//# sourceMappingURL=skill-type-badge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-type-badge.cjs","names":[],"sources":["../../../../src/components/features/skills/skill-type-badge.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport type { SkillType } from \"#/types/settings\";\n\ninterface SkillTypeBadgeProps {\n type: SkillType;\n}\n\n/** Theme-aware pill chrome for skill type badges only (not shared metadata pills). */\nconst SKILL_TYPE_BADGE_CLASS_NAME =\n \"inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light\";\n\nconst TYPE_CONFIG: Record<SkillType, { labelKey: I18nKey }> = {\n agentskills: {\n labelKey: I18nKey.SETTINGS$SKILLS_TYPE_AGENTSKILLS,\n },\n knowledge: {\n labelKey: I18nKey.SETTINGS$SKILLS_TYPE_KNOWLEDGE,\n },\n repo: {\n labelKey: I18nKey.SETTINGS$SKILLS_TYPE_REPO,\n },\n};\n\nexport function getSkillTypeLabelKey(type: SkillType): I18nKey {\n return TYPE_CONFIG[type].labelKey;\n}\n\nexport function SkillTypeBadge({ type }: SkillTypeBadgeProps) {\n const { t } = useTranslation(\"openhands\");\n const config = TYPE_CONFIG[type];\n return (\n <span\n data-testid={`skill-type-badge-${type}`}\n className={SKILL_TYPE_BADGE_CLASS_NAME}\n >\n {t(config.labelKey)}\n </span>\n );\n}\n"],"mappings":"mNASA,IAAM,EACJ,0LAEI,EAAwD,CAC5D,YAAa,CACX,SAAU,EAAA,QAAQ,gCACpB,EACA,UAAW,CACT,SAAU,EAAA,QAAQ,8BACpB,EACA,KAAM,CACJ,SAAU,EAAA,QAAQ,yBACpB,CACF,EAMA,SAAgB,EAAe,CAAE,QAA6B,CAC5D,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAClC,EAAS,EAAY,GAC3B,OACE,EAAA,EAAA,KAAC,OAAD,CACE,cAAa,oBAAoB,IACjC,UAAW,WAEV,EAAE,EAAO,QAAQ,CACd,CAAA,CAEV"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/features/skills/skill-type-badge.tsx
|
|
5
|
+
var r = "inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light", i = {
|
|
6
|
+
agentskills: { labelKey: t.SETTINGS$SKILLS_TYPE_AGENTSKILLS },
|
|
7
|
+
knowledge: { labelKey: t.SETTINGS$SKILLS_TYPE_KNOWLEDGE },
|
|
8
|
+
repo: { labelKey: t.SETTINGS$SKILLS_TYPE_REPO }
|
|
9
|
+
};
|
|
10
|
+
function a({ type: t }) {
|
|
11
|
+
let { t: a } = e("openhands"), o = i[t];
|
|
12
|
+
return /* @__PURE__ */ n("span", {
|
|
13
|
+
"data-testid": `skill-type-badge-${t}`,
|
|
14
|
+
className: r,
|
|
15
|
+
children: a(o.labelKey)
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { a as SkillTypeBadge };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=skill-type-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-type-badge.js","names":[],"sources":["../../../../src/components/features/skills/skill-type-badge.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport type { SkillType } from \"#/types/settings\";\n\ninterface SkillTypeBadgeProps {\n type: SkillType;\n}\n\n/** Theme-aware pill chrome for skill type badges only (not shared metadata pills). */\nconst SKILL_TYPE_BADGE_CLASS_NAME =\n \"inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light\";\n\nconst TYPE_CONFIG: Record<SkillType, { labelKey: I18nKey }> = {\n agentskills: {\n labelKey: I18nKey.SETTINGS$SKILLS_TYPE_AGENTSKILLS,\n },\n knowledge: {\n labelKey: I18nKey.SETTINGS$SKILLS_TYPE_KNOWLEDGE,\n },\n repo: {\n labelKey: I18nKey.SETTINGS$SKILLS_TYPE_REPO,\n },\n};\n\nexport function getSkillTypeLabelKey(type: SkillType): I18nKey {\n return TYPE_CONFIG[type].labelKey;\n}\n\nexport function SkillTypeBadge({ type }: SkillTypeBadgeProps) {\n const { t } = useTranslation(\"openhands\");\n const config = TYPE_CONFIG[type];\n return (\n <span\n data-testid={`skill-type-badge-${type}`}\n className={SKILL_TYPE_BADGE_CLASS_NAME}\n >\n {t(config.labelKey)}\n </span>\n );\n}\n"],"mappings":";;;;AASA,IAAM,IACJ,2LAEI,IAAwD;CAC5D,aAAa,EACX,UAAU,EAAQ,iCACpB;CACA,WAAW,EACT,UAAU,EAAQ,+BACpB;CACA,MAAM,EACJ,UAAU,EAAQ,0BACpB;AACF;AAMA,SAAgB,EAAe,EAAE,WAA6B;CAC5D,IAAM,EAAE,SAAM,EAAe,WAAW,GAClC,IAAS,EAAY;CAC3B,OACE,kBAAC,QAAD;EACE,eAAa,oBAAoB;EACjC,WAAW;YAEV,EAAE,EAAO,QAAQ;CACd,CAAA;AAEV"}
|
|
@@ -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/list-filter.cjs"),r=require("../../../node_modules/lucide-react/dist/esm/icons/search.cjs"),i=require("../../../node_modules/lucide-react/dist/esm/icons/x.cjs"),a=require("../../../utils/utils.cjs");let o=require("react/jsx-runtime");function s({search:s,onSearchChange:c,activeFilterCount:l,onOpenFilters:u}){let{t:d}=e.useTranslation(`openhands`);return(0,o.jsxs)(`div`,{"data-testid":`skills-toolbar`,className:`flex items-stretch gap-2`,children:[(0,o.jsxs)(`div`,{className:a.cn(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,o.jsx)(r.Search,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,o.jsx)(`input`,{"data-testid":`skills-search-input`,type:`search`,value:s,onChange:e=>c(e.target.value),placeholder:d(t.I18nKey.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),"aria-label":d(t.I18nKey.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),className:a.cn(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),s?(0,o.jsx)(`button`,{type:`button`,onClick:()=>c(``),"aria-label":d(t.I18nKey.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,o.jsx)(i.X,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,o.jsxs)(`button`,{type:`button`,"data-testid":`skills-filters-button`,onClick:u,className:a.cn(`flex shrink-0 items-center gap-2 rounded-lg px-3 py-2 text-sm md:hidden`,`border border-[var(--oh-border)] bg-base-secondary text-white`,`cursor-pointer hover:bg-[var(--oh-interactive-hover)]`),children:[(0,o.jsx)(n.ListFilter,{className:`size-4 shrink-0`,"aria-hidden":!0}),d(t.I18nKey.SETTINGS$SKILLS_FILTERS_BUTTON),l>0?(0,o.jsx)(`span`,{className:`rounded-full bg-white px-1.5 text-[11px] font-medium text-black`,children:l}):null]})]})}exports.SkillsToolbar=s;
|
|
2
|
+
//# sourceMappingURL=skills-toolbar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-toolbar.cjs","names":[],"sources":["../../../../src/components/features/skills/skills-toolbar.tsx"],"sourcesContent":["import { ListFilter, Search, X } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\n\ninterface SkillsToolbarProps {\n search: string;\n onSearchChange: (value: string) => void;\n activeFilterCount: number;\n onOpenFilters: () => void;\n}\n\nexport function SkillsToolbar({\n search,\n onSearchChange,\n activeFilterCount,\n onOpenFilters,\n}: SkillsToolbarProps) {\n const { t } = useTranslation(\"openhands\");\n\n return (\n <div data-testid=\"skills-toolbar\" className=\"flex items-stretch gap-2\">\n <div\n className={cn(\n \"relative flex flex-1 min-w-0 items-center\",\n \"rounded-lg border border-[var(--oh-border)] bg-base-secondary\",\n \"focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20\",\n \"transition-colors\",\n )}\n >\n <Search\n className=\"ml-3 h-4 w-4 shrink-0 text-tertiary-alt\"\n aria-hidden\n />\n <input\n data-testid=\"skills-search-input\"\n type=\"search\"\n value={search}\n onChange={(e) => onSearchChange(e.target.value)}\n placeholder={t(I18nKey.SETTINGS$SKILLS_SEARCH_PLACEHOLDER)}\n aria-label={t(I18nKey.SETTINGS$SKILLS_SEARCH_PLACEHOLDER)}\n className={cn(\n \"flex-1 min-w-0 bg-transparent border-0 outline-none\",\n \"px-3 py-2 text-sm placeholder:text-tertiary-alt\",\n \"[&::-webkit-search-cancel-button]:hidden\",\n )}\n />\n {search ? (\n <button\n type=\"button\"\n onClick={() => onSearchChange(\"\")}\n aria-label={t(I18nKey.MCP$SEARCH_CLEAR)}\n className=\"mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer\"\n >\n <X className=\"h-4 w-4\" aria-hidden />\n </button>\n ) : null}\n </div>\n\n {/* The facet rail is desktop-only, so below md this is the only way in. */}\n <button\n type=\"button\"\n data-testid=\"skills-filters-button\"\n onClick={onOpenFilters}\n className={cn(\n \"flex shrink-0 items-center gap-2 rounded-lg px-3 py-2 text-sm md:hidden\",\n \"border border-[var(--oh-border)] bg-base-secondary text-white\",\n \"cursor-pointer hover:bg-[var(--oh-interactive-hover)]\",\n )}\n >\n <ListFilter className=\"size-4 shrink-0\" aria-hidden />\n {t(I18nKey.SETTINGS$SKILLS_FILTERS_BUTTON)}\n {activeFilterCount > 0 ? (\n <span className=\"rounded-full bg-white px-1.5 text-[11px] font-medium text-black\">\n {activeFilterCount}\n </span>\n ) : null}\n </button>\n </div>\n );\n}\n"],"mappings":"udAYA,SAAgB,EAAc,CAC5B,SACA,iBACA,oBACA,iBACqB,CACrB,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAExC,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,cAAY,iBAAiB,UAAU,oCAA5C,EACE,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,EAAA,GACT,4CACA,gEACA,8EACA,mBACF,WANF,EAQE,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,UAAU,0CACV,cAAA,EACD,CAAA,GACD,EAAA,EAAA,KAAC,QAAD,CACE,cAAY,sBACZ,KAAK,SACL,MAAO,EACP,SAAW,GAAM,EAAe,EAAE,OAAO,KAAK,EAC9C,YAAa,EAAE,EAAA,QAAQ,kCAAkC,EACzD,aAAY,EAAE,EAAA,QAAQ,kCAAkC,EACxD,UAAW,EAAA,GACT,sDACA,kDACA,0CACF,CACD,CAAA,EACA,GACC,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,YAAe,EAAe,EAAE,EAChC,aAAY,EAAE,EAAA,QAAQ,gBAAgB,EACtC,UAAU,+EAEV,EAAA,EAAA,KAAC,EAAA,EAAD,CAAG,UAAU,UAAU,cAAA,EAAa,CAAA,CAC9B,CAAA,EACN,IACD,KAGL,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,cAAY,wBACZ,QAAS,EACT,UAAW,EAAA,GACT,0EACA,gEACA,uDACF,WARF,EAUE,EAAA,EAAA,KAAC,EAAA,WAAD,CAAY,UAAU,kBAAkB,cAAA,EAAa,CAAA,EACpD,EAAE,EAAA,QAAQ,8BAA8B,EACxC,EAAoB,GACnB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2EACb,CACG,CAAA,EACJ,IACE,GACL,GAET"}
|
|
@@ -0,0 +1,63 @@
|
|
|
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 { ListFilter as n } from "../../../node_modules/lucide-react/dist/esm/icons/list-filter.js";
|
|
4
|
+
import { Search as r } from "../../../node_modules/lucide-react/dist/esm/icons/search.js";
|
|
5
|
+
import { X as i } from "../../../node_modules/lucide-react/dist/esm/icons/x.js";
|
|
6
|
+
import { cn as a } from "../../../utils/utils.js";
|
|
7
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/features/skills/skills-toolbar.tsx
|
|
9
|
+
function c({ search: c, onSearchChange: l, activeFilterCount: u, onOpenFilters: d }) {
|
|
10
|
+
let { t: f } = e("openhands");
|
|
11
|
+
return /* @__PURE__ */ s("div", {
|
|
12
|
+
"data-testid": "skills-toolbar",
|
|
13
|
+
className: "flex items-stretch gap-2",
|
|
14
|
+
children: [/* @__PURE__ */ s("div", {
|
|
15
|
+
className: a("relative flex flex-1 min-w-0 items-center", "rounded-lg border border-[var(--oh-border)] bg-base-secondary", "focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20", "transition-colors"),
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ o(r, {
|
|
18
|
+
className: "ml-3 h-4 w-4 shrink-0 text-tertiary-alt",
|
|
19
|
+
"aria-hidden": !0
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ o("input", {
|
|
22
|
+
"data-testid": "skills-search-input",
|
|
23
|
+
type: "search",
|
|
24
|
+
value: c,
|
|
25
|
+
onChange: (e) => l(e.target.value),
|
|
26
|
+
placeholder: f(t.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),
|
|
27
|
+
"aria-label": f(t.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),
|
|
28
|
+
className: a("flex-1 min-w-0 bg-transparent border-0 outline-none", "px-3 py-2 text-sm placeholder:text-tertiary-alt", "[&::-webkit-search-cancel-button]:hidden")
|
|
29
|
+
}),
|
|
30
|
+
c ? /* @__PURE__ */ o("button", {
|
|
31
|
+
type: "button",
|
|
32
|
+
onClick: () => l(""),
|
|
33
|
+
"aria-label": f(t.MCP$SEARCH_CLEAR),
|
|
34
|
+
className: "mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer",
|
|
35
|
+
children: /* @__PURE__ */ o(i, {
|
|
36
|
+
className: "h-4 w-4",
|
|
37
|
+
"aria-hidden": !0
|
|
38
|
+
})
|
|
39
|
+
}) : null
|
|
40
|
+
]
|
|
41
|
+
}), /* @__PURE__ */ s("button", {
|
|
42
|
+
type: "button",
|
|
43
|
+
"data-testid": "skills-filters-button",
|
|
44
|
+
onClick: d,
|
|
45
|
+
className: a("flex shrink-0 items-center gap-2 rounded-lg px-3 py-2 text-sm md:hidden", "border border-[var(--oh-border)] bg-base-secondary text-white", "cursor-pointer hover:bg-[var(--oh-interactive-hover)]"),
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ o(n, {
|
|
48
|
+
className: "size-4 shrink-0",
|
|
49
|
+
"aria-hidden": !0
|
|
50
|
+
}),
|
|
51
|
+
f(t.SETTINGS$SKILLS_FILTERS_BUTTON),
|
|
52
|
+
u > 0 ? /* @__PURE__ */ o("span", {
|
|
53
|
+
className: "rounded-full bg-white px-1.5 text-[11px] font-medium text-black",
|
|
54
|
+
children: u
|
|
55
|
+
}) : null
|
|
56
|
+
]
|
|
57
|
+
})]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { c as SkillsToolbar };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=skills-toolbar.js.map
|