@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
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCredentialValidationForServer as e } from "../../utils/mcp-credential-validation.js";
|
|
2
|
+
import { redactMcpSecrets as t } from "../../utils/redact-mcp-secrets.js";
|
|
3
|
+
import n from "../mcp-service/mcp-service.api.js";
|
|
2
4
|
import { getMcpServerHealthKey as r } from "../../utils/mcp-server-health-key.js";
|
|
3
|
-
import {
|
|
4
|
-
import { redactMcpSecrets as a } from "../../utils/redact-mcp-secrets.js";
|
|
5
|
-
import o from "../mcp-service/mcp-service.api.js";
|
|
5
|
+
import { beginMcpHealthCheck as i, resolveMcpHealthCheck as a, setMcpServerHealth as o } from "./mcp-health-store.js";
|
|
6
6
|
//#region src/api/mcp-health/probe-mcp-server-health.ts
|
|
7
7
|
var s = /\b(401|403)\b|unauthorized|forbidden|invalid[ _-]?(token|credentials?|api[ _-]?key)/i;
|
|
8
|
-
function c(e,
|
|
8
|
+
function c(e, n) {
|
|
9
9
|
return {
|
|
10
10
|
status: "failed",
|
|
11
11
|
kind: "unknown",
|
|
12
|
-
error:
|
|
12
|
+
error: t(n instanceof Error ? n.message : String(n), e),
|
|
13
13
|
checkedAt: Date.now()
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
function l(
|
|
17
|
-
let
|
|
18
|
-
if (!
|
|
16
|
+
function l(t, n) {
|
|
17
|
+
let r = Date.now();
|
|
18
|
+
if (!n.ok) return {
|
|
19
19
|
status: "failed",
|
|
20
|
-
kind: (
|
|
21
|
-
error:
|
|
22
|
-
checkedAt:
|
|
20
|
+
kind: (n.error_kind === "connection" || n.error_kind === "unknown") && s.test(n.error) ? "credentials" : n.error_kind,
|
|
21
|
+
error: n.error,
|
|
22
|
+
checkedAt: r
|
|
23
23
|
};
|
|
24
|
-
let
|
|
24
|
+
let i = e(t);
|
|
25
25
|
return {
|
|
26
26
|
status: "healthy",
|
|
27
|
-
verification:
|
|
28
|
-
toolCount:
|
|
29
|
-
checkedAt:
|
|
27
|
+
verification: i && n.tools.includes(i.toolCall.name) && n.tool_result && !n.tool_result.is_error ? "verified" : "connectivity-only",
|
|
28
|
+
toolCount: n.tools.length,
|
|
29
|
+
checkedAt: r
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
async function u(
|
|
33
|
-
let
|
|
32
|
+
async function u(e) {
|
|
33
|
+
let t = r(e), o = i(t), s;
|
|
34
34
|
try {
|
|
35
|
-
s = l(
|
|
36
|
-
} catch (
|
|
37
|
-
s = c(
|
|
35
|
+
s = l(e, await n.testServer(e));
|
|
36
|
+
} catch (t) {
|
|
37
|
+
s = c(e, t);
|
|
38
38
|
}
|
|
39
|
-
t
|
|
39
|
+
a(t, o, s);
|
|
40
40
|
}
|
|
41
|
-
async function d(
|
|
42
|
-
let
|
|
41
|
+
async function d(e) {
|
|
42
|
+
let t = r(e), o = i(t);
|
|
43
43
|
try {
|
|
44
|
-
let
|
|
45
|
-
return t
|
|
46
|
-
} catch (
|
|
47
|
-
return t
|
|
44
|
+
let r = await n.authorizeOAuth(e);
|
|
45
|
+
return a(t, o, l(e, r)), r;
|
|
46
|
+
} catch (n) {
|
|
47
|
+
return a(t, o, c(e, n)), null;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
function f(e, t,
|
|
51
|
-
let
|
|
52
|
-
|
|
50
|
+
function f(e, t, n) {
|
|
51
|
+
let i = r(e);
|
|
52
|
+
n.some((e) => r(e) === i) || o(i, l(e, t));
|
|
53
53
|
}
|
|
54
54
|
//#endregion
|
|
55
55
|
export { u as probeMcpServerHealth, d as reauthorizeMcpServerHealth, f as seedMcpServerHealth };
|
|
@@ -100,29 +100,10 @@ export interface InputMetadata {
|
|
|
100
100
|
name: string;
|
|
101
101
|
description: string;
|
|
102
102
|
}
|
|
103
|
-
export interface Microagent {
|
|
104
|
-
name: string;
|
|
105
|
-
type: "repo" | "knowledge" | "agentskills";
|
|
106
|
-
content: string;
|
|
107
|
-
triggers: string[];
|
|
108
|
-
}
|
|
109
|
-
export interface GetMicroagentsResponse {
|
|
110
|
-
microagents: Microagent[];
|
|
111
|
-
}
|
|
112
|
-
export interface GetMicroagentPromptResponse {
|
|
113
|
-
status: string;
|
|
114
|
-
prompt: string;
|
|
115
|
-
}
|
|
116
103
|
export interface IOption<T> {
|
|
117
104
|
label: string;
|
|
118
105
|
value: T;
|
|
119
106
|
}
|
|
120
|
-
export interface MicroagentContentResponse {
|
|
121
|
-
content: string;
|
|
122
|
-
path: string;
|
|
123
|
-
git_provider: Provider;
|
|
124
|
-
triggers: string[];
|
|
125
|
-
}
|
|
126
107
|
export type GetFilesResponse = string[];
|
|
127
108
|
export interface GetFileResponse {
|
|
128
109
|
code: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../../_virtual/_rolldown/runtime.cjs");const e=require("../../node_modules/@openhands/typescript-client/dist/client/profiles-client.cjs");require("../../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("../backend-registry/active-store.cjs"),n=require("../agent-server-client-options.cjs"),r=require("../cloud/profiles-service.api.cjs");function i(){return t.getActiveBackend().backend.kind===`cloud`}var
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");const e=require("../../node_modules/@openhands/typescript-client/dist/client/profiles-client.cjs");require("../../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("../backend-registry/active-store.cjs"),n=require("../agent-server-client-options.cjs"),r=require("../cloud/profiles-service.api.cjs");function i(){return t.getActiveBackend().backend.kind===`cloud`}function a(e){if(!e||typeof e!=`object`)return!1;let t=`name`in e?e.name:void 0;if(t===`AbortError`||t===`TimeoutError`)return!0;let n=`cause`in e?e.cause:void 0;return!!n&&typeof n==`object`&&`name`in n&&(n.name===`AbortError`||n.name===`TimeoutError`)}var o=class{static async listProfiles(){return i()?r.fetchCloudProfiles():new e.ProfilesClient(n.getAgentServerClientOptions()).listProfiles()}static async getProfile(t,a){if(i())return r.fetchCloudProfile(t);let o=a?{exposeSecrets:a}:{};return new e.ProfilesClient(n.getAgentServerClientOptions()).getProfile(t,o)}static async saveProfile(t,a){return i()?r.saveCloudProfile(t,a):new e.ProfilesClient(n.getAgentServerClientOptions()).saveProfile(t,a)}static async deleteProfile(t){return i()?r.deleteCloudProfile(t):new e.ProfilesClient(n.getAgentServerClientOptions()).deleteProfile(t)}static async renameProfile(t,a){return i()?r.renameCloudProfile(t,a):new e.ProfilesClient(n.getAgentServerClientOptions()).renameProfile(t,a)}static async activateProfile(t){return i()?r.activateCloudProfile(t):new e.ProfilesClient(n.getAgentServerClientOptions()).activateProfile(t)}static async validateProfile(t,r){if(i())return null;let o=new e.ProfilesClient({...n.getAgentServerClientOptions(),timeout:3e4});try{return await o.validateProfile(t,r)}catch(e){let t=e&&typeof e==`object`&&`status`in e?e.status:void 0;if(t===404||t===429||typeof t==`number`&&t>=500||a(e))return null;throw e}finally{o.close()}}};exports.default=o;
|
|
2
2
|
//# sourceMappingURL=profiles-service.api.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles-service.api.cjs","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo,\n ProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n// Re-export SDK types for consumers\nexport type {\n
|
|
1
|
+
{"version":3,"file":"profiles-service.api.cjs","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo as ClientProfileInfo,\n ProfileListResponse as ClientProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n/**\n * Profile summaries carry an optional `provider_connection_id` (the shared\n * provider connection a profile links to), but `@openhands/typescript-client`\n * predates that field. Widen the client types here so consumers can read it; it\n * stays optional, so a client response without the field is still assignable.\n */\nexport interface ProfileInfo extends ClientProfileInfo {\n provider_connection_id?: string | null;\n /** True when provider_connection_id is set but the referenced connection no longer exists. */\n provider_connection_broken?: boolean;\n}\n\nexport interface ProfileListResponse extends Omit<\n ClientProfileListResponse,\n \"profiles\"\n> {\n profiles: ProfileInfo[];\n}\n\n// Re-export SDK types for consumers\nexport type {\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n};\n\nfunction isCloudBackend(): boolean {\n return getActiveBackend().backend.kind === \"cloud\";\n}\n\nfunction isAbortLike(error: unknown): boolean {\n if (!error || typeof error !== \"object\") return false;\n const name = \"name\" in error ? error.name : undefined;\n if (name === \"AbortError\" || name === \"TimeoutError\") return true;\n const cause = \"cause\" in error ? error.cause : undefined;\n return (\n !!cause &&\n typeof cause === \"object\" &&\n \"name\" in cause &&\n (cause.name === \"AbortError\" || cause.name === \"TimeoutError\")\n );\n}\n\nclass ProfilesService {\n static async listProfiles(): Promise<ProfileListResponse> {\n if (isCloudBackend()) return fetchCloudProfiles();\n return new ProfilesClient(getAgentServerClientOptions()).listProfiles();\n }\n\n static async getProfile(\n name: string,\n exposeSecrets?: ExposeSecretsMode,\n ): Promise<ProfileDetailResponse> {\n // Cloud never exposes profile secrets (api_key is always nulled with an\n // api_key_set flag), so `exposeSecrets` is local-only.\n if (isCloudBackend()) return fetchCloudProfile(name);\n const options: GetProfileOptions = exposeSecrets ? { exposeSecrets } : {};\n return new ProfilesClient(getAgentServerClientOptions()).getProfile(\n name,\n options,\n );\n }\n\n static async saveProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return saveCloudProfile(name, request);\n return new ProfilesClient(getAgentServerClientOptions()).saveProfile(\n name,\n request,\n );\n }\n\n static async deleteProfile(name: string): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return deleteCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).deleteProfile(\n name,\n );\n }\n\n static async renameProfile(\n name: string,\n newName: string,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return renameCloudProfile(name, newName);\n return new ProfilesClient(getAgentServerClientOptions()).renameProfile(\n name,\n newName,\n );\n }\n\n static async activateProfile(name: string): Promise<ActivateProfileResponse> {\n if (isCloudBackend()) return activateCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).activateProfile(\n name,\n );\n }\n\n /**\n * Pre-flight check: fire a minimal LLM completion to catch misconfigurations\n * (invalid model names, missing provider prefixes, bad base URLs, invalid\n * API keys) before a profile is saved.\n *\n * Returns `{ valid: true }` when the LLM responds, or\n * `{ valid: false, error: { type, message } }` on a blocking error.\n * Transient errors (rate limits, timeouts) are non-blocking.\n *\n * Cloud backends do not implement this endpoint; `null` signals\n * \"no verdict\" so callers fall through to the normal save path.\n */\n static async validateProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ValidateProfileResponse | null> {\n if (isCloudBackend()) return null;\n const client = new ProfilesClient({\n ...getAgentServerClientOptions(),\n timeout: 30000,\n });\n try {\n return await client.validateProfile(name, request);\n } catch (error) {\n // Older agent-server versions don't have the endpoint → 404\n // Treat as \"no verdict\" rather than blocking the save.\n const status =\n error && typeof error === \"object\" && \"status\" in error\n ? (error as { status?: unknown }).status\n : undefined;\n if (\n status === 404 ||\n status === 429 ||\n (typeof status === \"number\" && status >= 500) ||\n isAbortLike(error)\n ) {\n return null;\n }\n throw error;\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProfilesService;\n"],"mappings":"sXAwEA,SAAS,GAA0B,CACjC,OAAO,EAAA,iBAAiB,EAAE,QAAQ,OAAS,OAC7C,CAEA,SAAS,EAAY,EAAyB,CAC5C,GAAI,CAAC,GAAS,OAAO,GAAU,SAAU,MAAO,GAChD,IAAM,EAAO,SAAU,EAAQ,EAAM,KAAO,IAAA,GAC5C,GAAI,IAAS,cAAgB,IAAS,eAAgB,MAAO,GAC7D,IAAM,EAAQ,UAAW,EAAQ,EAAM,MAAQ,IAAA,GAC/C,MACE,CAAC,CAAC,GACF,OAAO,GAAU,UACjB,SAAU,IACT,EAAM,OAAS,cAAgB,EAAM,OAAS,eAEnD,CAEA,IAAM,EAAN,KAAsB,CACpB,aAAa,cAA6C,CAExD,OADI,EAAe,EAAU,EAAA,mBAAmB,EACzC,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CACxE,CAEA,aAAa,WACX,EACA,EACgC,CAGhC,GAAI,EAAe,EAAG,OAAO,EAAA,kBAAkB,CAAI,EACnD,IAAM,EAA6B,EAAgB,CAAE,eAAc,EAAI,CAAC,EACxE,OAAO,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,WACvD,EACA,CACF,CACF,CAEA,aAAa,YACX,EACA,EACkC,CAElC,OADI,EAAe,EAAU,EAAA,iBAAiB,EAAM,CAAO,EACpD,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,YACvD,EACA,CACF,CACF,CAEA,aAAa,cAAc,EAAgD,CAEzE,OADI,EAAe,EAAU,EAAA,mBAAmB,CAAI,EAC7C,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,cACvD,CACF,CACF,CAEA,aAAa,cACX,EACA,EACkC,CAElC,OADI,EAAe,EAAU,EAAA,mBAAmB,EAAM,CAAO,EACtD,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,cACvD,EACA,CACF,CACF,CAEA,aAAa,gBAAgB,EAAgD,CAE3E,OADI,EAAe,EAAU,EAAA,qBAAqB,CAAI,EAC/C,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,gBACvD,CACF,CACF,CAcA,aAAa,gBACX,EACA,EACyC,CACzC,GAAI,EAAe,EAAG,OAAO,KAC7B,IAAM,EAAS,IAAI,EAAA,eAAe,CAChC,GAAG,EAAA,4BAA4B,EAC/B,QAAS,GACX,CAAC,EACD,GAAI,CACF,OAAO,MAAM,EAAO,gBAAgB,EAAM,CAAO,CACnD,OAAS,EAAO,CAGd,IAAM,EACJ,GAAS,OAAO,GAAU,UAAY,WAAY,EAC7C,EAA+B,OAChC,IAAA,GACN,GACE,IAAW,KACX,IAAW,KACV,OAAO,GAAW,UAAY,GAAU,KACzC,EAAY,CAAK,EAEjB,OAAO,KAET,MAAM,CACR,QAAU,CACR,EAAO,MAAM,CACf,CACF,CACF"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
import type { ProfileInfo, ProfileListResponse, ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode } from "@openhands/typescript-client";
|
|
2
|
-
|
|
1
|
+
import type { ProfileInfo as ClientProfileInfo, ProfileListResponse as ClientProfileListResponse, ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode, ValidateProfileResponse } from "@openhands/typescript-client";
|
|
2
|
+
/**
|
|
3
|
+
* Profile summaries carry an optional `provider_connection_id` (the shared
|
|
4
|
+
* provider connection a profile links to), but `@openhands/typescript-client`
|
|
5
|
+
* predates that field. Widen the client types here so consumers can read it; it
|
|
6
|
+
* stays optional, so a client response without the field is still assignable.
|
|
7
|
+
*/
|
|
8
|
+
export interface ProfileInfo extends ClientProfileInfo {
|
|
9
|
+
provider_connection_id?: string | null;
|
|
10
|
+
/** True when provider_connection_id is set but the referenced connection no longer exists. */
|
|
11
|
+
provider_connection_broken?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ProfileListResponse extends Omit<ClientProfileListResponse, "profiles"> {
|
|
14
|
+
profiles: ProfileInfo[];
|
|
15
|
+
}
|
|
16
|
+
export type { ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode, ValidateProfileResponse, };
|
|
3
17
|
declare class ProfilesService {
|
|
4
18
|
static listProfiles(): Promise<ProfileListResponse>;
|
|
5
19
|
static getProfile(name: string, exposeSecrets?: ExposeSecretsMode): Promise<ProfileDetailResponse>;
|
|
@@ -7,5 +21,18 @@ declare class ProfilesService {
|
|
|
7
21
|
static deleteProfile(name: string): Promise<ProfileMutationResponse>;
|
|
8
22
|
static renameProfile(name: string, newName: string): Promise<ProfileMutationResponse>;
|
|
9
23
|
static activateProfile(name: string): Promise<ActivateProfileResponse>;
|
|
24
|
+
/**
|
|
25
|
+
* Pre-flight check: fire a minimal LLM completion to catch misconfigurations
|
|
26
|
+
* (invalid model names, missing provider prefixes, bad base URLs, invalid
|
|
27
|
+
* API keys) before a profile is saved.
|
|
28
|
+
*
|
|
29
|
+
* Returns `{ valid: true }` when the LLM responds, or
|
|
30
|
+
* `{ valid: false, error: { type, message } }` on a blocking error.
|
|
31
|
+
* Transient errors (rate limits, timeouts) are non-blocking.
|
|
32
|
+
*
|
|
33
|
+
* Cloud backends do not implement this endpoint; `null` signals
|
|
34
|
+
* "no verdict" so callers fall through to the normal save path.
|
|
35
|
+
*/
|
|
36
|
+
static validateProfile(name: string, request: SaveProfileRequest): Promise<ValidateProfileResponse | null>;
|
|
10
37
|
}
|
|
11
38
|
export default ProfilesService;
|
|
@@ -7,7 +7,14 @@ import { activateCloudProfile as r, deleteCloudProfile as i, fetchCloudProfile a
|
|
|
7
7
|
function l() {
|
|
8
8
|
return t().backend.kind === "cloud";
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
function u(e) {
|
|
11
|
+
if (!e || typeof e != "object") return !1;
|
|
12
|
+
let t = "name" in e ? e.name : void 0;
|
|
13
|
+
if (t === "AbortError" || t === "TimeoutError") return !0;
|
|
14
|
+
let n = "cause" in e ? e.cause : void 0;
|
|
15
|
+
return !!n && typeof n == "object" && "name" in n && (n.name === "AbortError" || n.name === "TimeoutError");
|
|
16
|
+
}
|
|
17
|
+
var d = class {
|
|
11
18
|
static async listProfiles() {
|
|
12
19
|
return l() ? o() : new e(n()).listProfiles();
|
|
13
20
|
}
|
|
@@ -28,8 +35,24 @@ var u = class {
|
|
|
28
35
|
static async activateProfile(t) {
|
|
29
36
|
return l() ? r(t) : new e(n()).activateProfile(t);
|
|
30
37
|
}
|
|
38
|
+
static async validateProfile(t, r) {
|
|
39
|
+
if (l()) return null;
|
|
40
|
+
let i = new e({
|
|
41
|
+
...n(),
|
|
42
|
+
timeout: 3e4
|
|
43
|
+
});
|
|
44
|
+
try {
|
|
45
|
+
return await i.validateProfile(t, r);
|
|
46
|
+
} catch (e) {
|
|
47
|
+
let t = e && typeof e == "object" && "status" in e ? e.status : void 0;
|
|
48
|
+
if (t === 404 || t === 429 || typeof t == "number" && t >= 500 || u(e)) return null;
|
|
49
|
+
throw e;
|
|
50
|
+
} finally {
|
|
51
|
+
i.close();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
31
54
|
};
|
|
32
55
|
//#endregion
|
|
33
|
-
export {
|
|
56
|
+
export { d as default };
|
|
34
57
|
|
|
35
58
|
//# sourceMappingURL=profiles-service.api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles-service.api.js","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo,\n ProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n// Re-export SDK types for consumers\nexport type {\n
|
|
1
|
+
{"version":3,"file":"profiles-service.api.js","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo as ClientProfileInfo,\n ProfileListResponse as ClientProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n/**\n * Profile summaries carry an optional `provider_connection_id` (the shared\n * provider connection a profile links to), but `@openhands/typescript-client`\n * predates that field. Widen the client types here so consumers can read it; it\n * stays optional, so a client response without the field is still assignable.\n */\nexport interface ProfileInfo extends ClientProfileInfo {\n provider_connection_id?: string | null;\n /** True when provider_connection_id is set but the referenced connection no longer exists. */\n provider_connection_broken?: boolean;\n}\n\nexport interface ProfileListResponse extends Omit<\n ClientProfileListResponse,\n \"profiles\"\n> {\n profiles: ProfileInfo[];\n}\n\n// Re-export SDK types for consumers\nexport type {\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n};\n\nfunction isCloudBackend(): boolean {\n return getActiveBackend().backend.kind === \"cloud\";\n}\n\nfunction isAbortLike(error: unknown): boolean {\n if (!error || typeof error !== \"object\") return false;\n const name = \"name\" in error ? error.name : undefined;\n if (name === \"AbortError\" || name === \"TimeoutError\") return true;\n const cause = \"cause\" in error ? error.cause : undefined;\n return (\n !!cause &&\n typeof cause === \"object\" &&\n \"name\" in cause &&\n (cause.name === \"AbortError\" || cause.name === \"TimeoutError\")\n );\n}\n\nclass ProfilesService {\n static async listProfiles(): Promise<ProfileListResponse> {\n if (isCloudBackend()) return fetchCloudProfiles();\n return new ProfilesClient(getAgentServerClientOptions()).listProfiles();\n }\n\n static async getProfile(\n name: string,\n exposeSecrets?: ExposeSecretsMode,\n ): Promise<ProfileDetailResponse> {\n // Cloud never exposes profile secrets (api_key is always nulled with an\n // api_key_set flag), so `exposeSecrets` is local-only.\n if (isCloudBackend()) return fetchCloudProfile(name);\n const options: GetProfileOptions = exposeSecrets ? { exposeSecrets } : {};\n return new ProfilesClient(getAgentServerClientOptions()).getProfile(\n name,\n options,\n );\n }\n\n static async saveProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return saveCloudProfile(name, request);\n return new ProfilesClient(getAgentServerClientOptions()).saveProfile(\n name,\n request,\n );\n }\n\n static async deleteProfile(name: string): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return deleteCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).deleteProfile(\n name,\n );\n }\n\n static async renameProfile(\n name: string,\n newName: string,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return renameCloudProfile(name, newName);\n return new ProfilesClient(getAgentServerClientOptions()).renameProfile(\n name,\n newName,\n );\n }\n\n static async activateProfile(name: string): Promise<ActivateProfileResponse> {\n if (isCloudBackend()) return activateCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).activateProfile(\n name,\n );\n }\n\n /**\n * Pre-flight check: fire a minimal LLM completion to catch misconfigurations\n * (invalid model names, missing provider prefixes, bad base URLs, invalid\n * API keys) before a profile is saved.\n *\n * Returns `{ valid: true }` when the LLM responds, or\n * `{ valid: false, error: { type, message } }` on a blocking error.\n * Transient errors (rate limits, timeouts) are non-blocking.\n *\n * Cloud backends do not implement this endpoint; `null` signals\n * \"no verdict\" so callers fall through to the normal save path.\n */\n static async validateProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ValidateProfileResponse | null> {\n if (isCloudBackend()) return null;\n const client = new ProfilesClient({\n ...getAgentServerClientOptions(),\n timeout: 30000,\n });\n try {\n return await client.validateProfile(name, request);\n } catch (error) {\n // Older agent-server versions don't have the endpoint → 404\n // Treat as \"no verdict\" rather than blocking the save.\n const status =\n error && typeof error === \"object\" && \"status\" in error\n ? (error as { status?: unknown }).status\n : undefined;\n if (\n status === 404 ||\n status === 429 ||\n (typeof status === \"number\" && status >= 500) ||\n isAbortLike(error)\n ) {\n return null;\n }\n throw error;\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProfilesService;\n"],"mappings":";;;;;;AAwEA,SAAS,IAA0B;CACjC,OAAO,EAAiB,EAAE,QAAQ,SAAS;AAC7C;AAEA,SAAS,EAAY,GAAyB;CAC5C,IAAI,CAAC,KAAS,OAAO,KAAU,UAAU,OAAO;CAChD,IAAM,IAAO,UAAU,IAAQ,EAAM,OAAO,KAAA;CAC5C,IAAI,MAAS,gBAAgB,MAAS,gBAAgB,OAAO;CAC7D,IAAM,IAAQ,WAAW,IAAQ,EAAM,QAAQ,KAAA;CAC/C,OACE,CAAC,CAAC,KACF,OAAO,KAAU,YACjB,UAAU,MACT,EAAM,SAAS,gBAAgB,EAAM,SAAS;AAEnD;AAEA,IAAM,IAAN,MAAsB;CACpB,aAAa,eAA6C;EAExD,OADI,EAAe,IAAU,EAAmB,IACzC,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa;CACxE;CAEA,aAAa,WACX,GACA,GACgC;EAGhC,IAAI,EAAe,GAAG,OAAO,EAAkB,CAAI;EACnD,IAAM,IAA6B,IAAgB,EAAE,iBAAc,IAAI,CAAC;EACxE,OAAO,IAAI,EAAe,EAA4B,CAAC,EAAE,WACvD,GACA,CACF;CACF;CAEA,aAAa,YACX,GACA,GACkC;EAElC,OADI,EAAe,IAAU,EAAiB,GAAM,CAAO,IACpD,IAAI,EAAe,EAA4B,CAAC,EAAE,YACvD,GACA,CACF;CACF;CAEA,aAAa,cAAc,GAAgD;EAEzE,OADI,EAAe,IAAU,EAAmB,CAAI,IAC7C,IAAI,EAAe,EAA4B,CAAC,EAAE,cACvD,CACF;CACF;CAEA,aAAa,cACX,GACA,GACkC;EAElC,OADI,EAAe,IAAU,EAAmB,GAAM,CAAO,IACtD,IAAI,EAAe,EAA4B,CAAC,EAAE,cACvD,GACA,CACF;CACF;CAEA,aAAa,gBAAgB,GAAgD;EAE3E,OADI,EAAe,IAAU,EAAqB,CAAI,IAC/C,IAAI,EAAe,EAA4B,CAAC,EAAE,gBACvD,CACF;CACF;CAcA,aAAa,gBACX,GACA,GACyC;EACzC,IAAI,EAAe,GAAG,OAAO;EAC7B,IAAM,IAAS,IAAI,EAAe;GAChC,GAAG,EAA4B;GAC/B,SAAS;EACX,CAAC;EACD,IAAI;GACF,OAAO,MAAM,EAAO,gBAAgB,GAAM,CAAO;EACnD,SAAS,GAAO;GAGd,IAAM,IACJ,KAAS,OAAO,KAAU,YAAY,YAAY,IAC7C,EAA+B,SAChC,KAAA;GACN,IACE,MAAW,OACX,MAAW,OACV,OAAO,KAAW,YAAY,KAAU,OACzC,EAAY,CAAK,GAEjB,OAAO;GAET,MAAM;EACR,UAAU;GACR,EAAO,MAAM;EACf;CACF;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");const e=require("../../node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs");require("../../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("../agent-server-client-options.cjs");var n=`/api/llm/provider-connections`;function r(){let{host:n,apiKey:r}=t.getAgentServerClientOptions();return new e.AgentServerClient({host:n,...r?{apiKey:r}:{}})}var i=class{static async list(){let e=r();try{return await e.get(n,{responseType:`json`})}finally{e.close()}}static async create(e){let t=r();try{return await t.post(n,e,{responseType:`json`})}finally{t.close()}}static async update(e,t){let i=r();try{return await i.patch(`${n}/${encodeURIComponent(e)}`,t,{responseType:`json`})}finally{i.close()}}static async delete(e){let t=r();try{return await t.delete(`${n}/${encodeURIComponent(e)}`,{responseType:`json`})}finally{t.close()}}};exports.default=i;
|
|
2
|
+
//# sourceMappingURL=provider-connections-service.api.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-connections-service.api.cjs","names":[],"sources":["../../../src/api/provider-connections-service/provider-connections-service.api.ts"],"sourcesContent":["/**\n * ProviderConnectionsService is a thin wrapper over the local agent-server's\n * `/api/llm/provider-connections` CRUD endpoints. A provider connection is a\n * shared `api_key` + optional `base_url` that one or more LLM profiles\n * reference by id; the agent-server resolves the credential into a runnable LLM\n * at profile-load time, so this service only manages the stored connections.\n *\n * These endpoints exist only on the agent-server (local backend). Cloud has no\n * equivalent yet, so callers must gate usage on `backend.kind === \"local\"`.\n *\n * There is no generated client for these routes in `@openhands/typescript-client`\n * yet, so requests go through the generic `AgentServerClient` verb helpers —\n * the same approach `LLMBalanceService` uses.\n */\nimport { AgentServerClient } from \"@openhands/typescript-client/clients\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\n\nconst PROVIDER_CONNECTIONS_PATH = \"/api/llm/provider-connections\";\n\nexport interface ProviderConnection {\n id: string;\n display_name: string;\n provider: string;\n base_url: string | null;\n created_at: number;\n updated_at: number;\n /** Whether the stored connection currently holds a usable key. */\n api_key_set: boolean;\n}\n\nexport interface CreateProviderConnectionRequest {\n display_name: string;\n provider: string;\n api_key: string;\n base_url?: string | null;\n}\n\n/**\n * Partial update. Only the provided fields change. `api_key` may be sent to\n * rotate the key; the agent-server rejects `api_key: null` (a connection must\n * always keep a key), so callers omit it to leave the key unchanged.\n */\nexport interface UpdateProviderConnectionRequest {\n display_name?: string;\n provider?: string;\n api_key?: string;\n base_url?: string | null;\n}\n\nfunction createClient(): AgentServerClient {\n const { host, apiKey } = getAgentServerClientOptions();\n return new AgentServerClient({ host, ...(apiKey ? { apiKey } : {}) });\n}\n\nclass ProviderConnectionsService {\n static async list(): Promise<ProviderConnection[]> {\n const client = createClient();\n try {\n return await client.get<ProviderConnection[]>(PROVIDER_CONNECTIONS_PATH, {\n responseType: \"json\",\n });\n } finally {\n client.close();\n }\n }\n\n static async create(\n request: CreateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.post<ProviderConnection>(\n PROVIDER_CONNECTIONS_PATH,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async update(\n id: string,\n request: UpdateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.patch<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async delete(id: string): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.delete<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProviderConnectionsService;\n"],"mappings":"sRAiBA,IAAM,EAA4B,gCAgClC,SAAS,GAAkC,CACzC,GAAM,CAAE,OAAM,UAAW,EAAA,4BAA4B,EACrD,OAAO,IAAI,EAAA,kBAAkB,CAAE,OAAM,GAAI,EAAS,CAAE,QAAO,EAAI,CAAC,CAAG,CAAC,CACtE,CAEA,IAAM,EAAN,KAAiC,CAC/B,aAAa,MAAsC,CACjD,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,IAA0B,EAA2B,CACvE,aAAc,MAChB,CAAC,CACH,QAAU,CACR,EAAO,MAAM,CACf,CACF,CAEA,aAAa,OACX,EAC6B,CAC7B,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,KAClB,EACA,EACA,CAAE,aAAc,MAAO,CACzB,CACF,QAAU,CACR,EAAO,MAAM,CACf,CACF,CAEA,aAAa,OACX,EACA,EAC6B,CAC7B,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,MAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,IACrD,EACA,CAAE,aAAc,MAAO,CACzB,CACF,QAAU,CACR,EAAO,MAAM,CACf,CACF,CAEA,aAAa,OAAO,EAAyC,CAC3D,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,OAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,IACrD,CAAE,aAAc,MAAO,CACzB,CACF,QAAU,CACR,EAAO,MAAM,CACf,CACF,CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface ProviderConnection {
|
|
2
|
+
id: string;
|
|
3
|
+
display_name: string;
|
|
4
|
+
provider: string;
|
|
5
|
+
base_url: string | null;
|
|
6
|
+
created_at: number;
|
|
7
|
+
updated_at: number;
|
|
8
|
+
/** Whether the stored connection currently holds a usable key. */
|
|
9
|
+
api_key_set: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface CreateProviderConnectionRequest {
|
|
12
|
+
display_name: string;
|
|
13
|
+
provider: string;
|
|
14
|
+
api_key: string;
|
|
15
|
+
base_url?: string | null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Partial update. Only the provided fields change. `api_key` may be sent to
|
|
19
|
+
* rotate the key; the agent-server rejects `api_key: null` (a connection must
|
|
20
|
+
* always keep a key), so callers omit it to leave the key unchanged.
|
|
21
|
+
*/
|
|
22
|
+
export interface UpdateProviderConnectionRequest {
|
|
23
|
+
display_name?: string;
|
|
24
|
+
provider?: string;
|
|
25
|
+
api_key?: string;
|
|
26
|
+
base_url?: string | null;
|
|
27
|
+
}
|
|
28
|
+
declare class ProviderConnectionsService {
|
|
29
|
+
static list(): Promise<ProviderConnection[]>;
|
|
30
|
+
static create(request: CreateProviderConnectionRequest): Promise<ProviderConnection>;
|
|
31
|
+
static update(id: string, request: UpdateProviderConnectionRequest): Promise<ProviderConnection>;
|
|
32
|
+
static delete(id: string): Promise<ProviderConnection>;
|
|
33
|
+
}
|
|
34
|
+
export default ProviderConnectionsService;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { AgentServerClient as e } from "../../node_modules/@openhands/typescript-client/dist/client/openhands-client.js";
|
|
2
|
+
import "../../node_modules/@openhands/typescript-client/dist/clients.js";
|
|
3
|
+
import { getAgentServerClientOptions as t } from "../agent-server-client-options.js";
|
|
4
|
+
//#region src/api/provider-connections-service/provider-connections-service.api.ts
|
|
5
|
+
var n = "/api/llm/provider-connections";
|
|
6
|
+
function r() {
|
|
7
|
+
let { host: n, apiKey: r } = t();
|
|
8
|
+
return new e({
|
|
9
|
+
host: n,
|
|
10
|
+
...r ? { apiKey: r } : {}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
var i = class {
|
|
14
|
+
static async list() {
|
|
15
|
+
let e = r();
|
|
16
|
+
try {
|
|
17
|
+
return await e.get(n, { responseType: "json" });
|
|
18
|
+
} finally {
|
|
19
|
+
e.close();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
static async create(e) {
|
|
23
|
+
let t = r();
|
|
24
|
+
try {
|
|
25
|
+
return await t.post(n, e, { responseType: "json" });
|
|
26
|
+
} finally {
|
|
27
|
+
t.close();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static async update(e, t) {
|
|
31
|
+
let i = r();
|
|
32
|
+
try {
|
|
33
|
+
return await i.patch(`${n}/${encodeURIComponent(e)}`, t, { responseType: "json" });
|
|
34
|
+
} finally {
|
|
35
|
+
i.close();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
static async delete(e) {
|
|
39
|
+
let t = r();
|
|
40
|
+
try {
|
|
41
|
+
return await t.delete(`${n}/${encodeURIComponent(e)}`, { responseType: "json" });
|
|
42
|
+
} finally {
|
|
43
|
+
t.close();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { i as default };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=provider-connections-service.api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-connections-service.api.js","names":[],"sources":["../../../src/api/provider-connections-service/provider-connections-service.api.ts"],"sourcesContent":["/**\n * ProviderConnectionsService is a thin wrapper over the local agent-server's\n * `/api/llm/provider-connections` CRUD endpoints. A provider connection is a\n * shared `api_key` + optional `base_url` that one or more LLM profiles\n * reference by id; the agent-server resolves the credential into a runnable LLM\n * at profile-load time, so this service only manages the stored connections.\n *\n * These endpoints exist only on the agent-server (local backend). Cloud has no\n * equivalent yet, so callers must gate usage on `backend.kind === \"local\"`.\n *\n * There is no generated client for these routes in `@openhands/typescript-client`\n * yet, so requests go through the generic `AgentServerClient` verb helpers —\n * the same approach `LLMBalanceService` uses.\n */\nimport { AgentServerClient } from \"@openhands/typescript-client/clients\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\n\nconst PROVIDER_CONNECTIONS_PATH = \"/api/llm/provider-connections\";\n\nexport interface ProviderConnection {\n id: string;\n display_name: string;\n provider: string;\n base_url: string | null;\n created_at: number;\n updated_at: number;\n /** Whether the stored connection currently holds a usable key. */\n api_key_set: boolean;\n}\n\nexport interface CreateProviderConnectionRequest {\n display_name: string;\n provider: string;\n api_key: string;\n base_url?: string | null;\n}\n\n/**\n * Partial update. Only the provided fields change. `api_key` may be sent to\n * rotate the key; the agent-server rejects `api_key: null` (a connection must\n * always keep a key), so callers omit it to leave the key unchanged.\n */\nexport interface UpdateProviderConnectionRequest {\n display_name?: string;\n provider?: string;\n api_key?: string;\n base_url?: string | null;\n}\n\nfunction createClient(): AgentServerClient {\n const { host, apiKey } = getAgentServerClientOptions();\n return new AgentServerClient({ host, ...(apiKey ? { apiKey } : {}) });\n}\n\nclass ProviderConnectionsService {\n static async list(): Promise<ProviderConnection[]> {\n const client = createClient();\n try {\n return await client.get<ProviderConnection[]>(PROVIDER_CONNECTIONS_PATH, {\n responseType: \"json\",\n });\n } finally {\n client.close();\n }\n }\n\n static async create(\n request: CreateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.post<ProviderConnection>(\n PROVIDER_CONNECTIONS_PATH,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async update(\n id: string,\n request: UpdateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.patch<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async delete(id: string): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.delete<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProviderConnectionsService;\n"],"mappings":";;;;AAiBA,IAAM,IAA4B;AAgClC,SAAS,IAAkC;CACzC,IAAM,EAAE,SAAM,cAAW,EAA4B;CACrD,OAAO,IAAI,EAAkB;EAAE;EAAM,GAAI,IAAS,EAAE,UAAO,IAAI,CAAC;CAAG,CAAC;AACtE;AAEA,IAAM,IAAN,MAAiC;CAC/B,aAAa,OAAsC;EACjD,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,IAA0B,GAA2B,EACvE,cAAc,OAChB,CAAC;EACH,UAAU;GACR,EAAO,MAAM;EACf;CACF;CAEA,aAAa,OACX,GAC6B;EAC7B,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,KAClB,GACA,GACA,EAAE,cAAc,OAAO,CACzB;EACF,UAAU;GACR,EAAO,MAAM;EACf;CACF;CAEA,aAAa,OACX,GACA,GAC6B;EAC7B,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,MAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,KACrD,GACA,EAAE,cAAc,OAAO,CACzB;EACF,UAAU;GACR,EAAO,MAAM;EACf;CACF;CAEA,aAAa,OAAO,GAAyC;EAC3D,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,OAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,KACrD,EAAE,cAAc,OAAO,CACzB;EACF,UAAU;GACR,EAAO,MAAM;EACf;CACF;AACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/typescript-client/dist/client/settings-client.cjs");require("../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("./backend-registry/active-store.cjs"),n=require("./agent-server-client-options.cjs"),r=require("./agent-server-compatibility.cjs"),i=require("./with-retry.cjs"),a=require("./cloud/secrets-service.api.cjs");
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/typescript-client/dist/client/settings-client.cjs");require("../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("./backend-registry/active-store.cjs"),n=require("./agent-server-client-options.cjs"),r=require("./agent-server-compatibility.cjs"),i=require("./with-retry.cjs"),a=require("./cloud/secrets-service.api.cjs");async function o(){return t.getActiveBackend().backend.kind===`cloud`?i.withRetry(()=>a.fetchCloudSecrets()):(await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).listSecrets())).secrets.map(e=>({name:e.name,description:e.description}))}var s=class{static async getSecrets(){try{return await o()}catch(e){return console.error(`Failed to fetch secrets after retries:`,e),[]}}static async getSecretsOrThrow(){return o()}static async createSecret(r,o,s){if(t.getActiveBackend().backend.kind===`cloud`){await a.saveCloudSecret({name:r,value:o,description:s});return}await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).upsertSecret({name:r,value:o,description:s}))}static async updateSecret(r,o,s,c){if(t.getActiveBackend().backend.kind===`cloud`){await a.saveCloudSecret({name:o,value:c,description:s,previousName:r});return}let l=new e.SettingsClient(n.getAgentServerClientOptions()),u=c??await i.withRetry(()=>l.getSecret(r));await i.withRetry(()=>l.upsertSecret({name:o,value:u,description:s})),o!==r&&await this.deleteSecret(r)}static async deleteSecret(o){try{if(t.getActiveBackend().backend.kind===`cloud`){await i.withRetry(()=>a.deleteCloudSecret(o));return}await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).deleteSecret(o))}catch(e){if(r.isSdkHttpStatusError(e,404)||e&&typeof e==`object`&&`response`in e&&e.response?.status===404)return;throw e}}};exports.SecretsService=s;
|
|
2
2
|
//# sourceMappingURL=secrets-service.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets-service.cjs","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n
|
|
1
|
+
{"version":3,"file":"secrets-service.cjs","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nasync function fetchSecrets(): Promise<CustomSecretWithoutValue[]> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n return withRetry(() => fetchCloudSecrets());\n }\n const response = await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).listSecrets(),\n );\n return response.secrets.map((s) => ({\n name: s.name,\n description: s.description,\n }));\n}\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n return await fetchSecrets();\n } catch (error) {\n console.error(\"Failed to fetch secrets after retries:\", error);\n return [];\n }\n }\n\n /**\n * List all custom secrets, surfacing failures to callers that must\n * distinguish an unavailable list from an empty one.\n */\n static async getSecretsOrThrow(): Promise<CustomSecretWithoutValue[]> {\n return fetchSecrets();\n }\n\n /**\n * Create or update a custom secret (upsert by name).\n * Uses the agent-server API endpoint: PUT /api/settings/secrets\n *\n * @param name - Secret name (must start with letter, contain only letters/numbers/underscores, 1-64 chars)\n * @param value - Secret value\n * @param description - Optional description\n * @throws Error if the API call fails after retries\n */\n static async createSecret(\n name: string,\n value: string,\n description?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({ name, value, description });\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).upsertSecret({\n name,\n value,\n description,\n }),\n );\n }\n\n /**\n * Update a secret's name and/or description, and optionally overwrite its\n * value. When no value is given the existing one is preserved: the\n * agent-server only exposes an upsert endpoint, so we fetch the existing\n * value and re-upsert it under the updated name/description.\n *\n * @param secretToEdit - Existing secret name\n * @param name - New (or same) secret name\n * @param description - Optional new description\n * @param value - Optional new value; when omitted the stored value is kept\n * @throws Error if the API call fails after retries\n */\n static async updateSecret(\n secretToEdit: string,\n name: string,\n description?: string,\n value?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({\n name,\n value,\n description,\n previousName: secretToEdit,\n });\n return;\n }\n\n const client = new SettingsClient(getAgentServerClientOptions());\n const nextValue =\n value ?? (await withRetry(() => client.getSecret(secretToEdit)));\n\n await withRetry(() =>\n client.upsertSecret({\n name,\n value: nextValue,\n description,\n }),\n );\n\n if (name !== secretToEdit) {\n await this.deleteSecret(secretToEdit);\n }\n }\n\n /**\n * Delete a custom secret by name.\n * Uses the agent-server API endpoint: DELETE /api/settings/secrets/{name}\n *\n * @param name - Secret name to delete\n * @throws Error if the API call fails (except 404, which is treated as success)\n */\n static async deleteSecret(name: string): Promise<void> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await withRetry(() => deleteCloudSecret(name));\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).deleteSecret(name),\n );\n } catch (error) {\n // 404 means secret doesn't exist - treat as successful deletion.\n // Both the SDK's HttpError (status on the error itself) and\n // axios-style errors (status under `response`) count.\n if (\n isSdkHttpStatusError(error, 404) ||\n (error &&\n typeof error === \"object\" &&\n \"response\" in error &&\n (error as { response?: { status?: number } }).response?.status ===\n 404)\n ) {\n return;\n }\n throw error;\n }\n }\n}\n"],"mappings":"qbAYA,eAAe,GAAoD,CAOjE,OANI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAC/B,EAAA,cAAgB,EAAA,kBAAkB,CAAC,GAKrC,MAHgB,EAAA,cACrB,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,YAAY,CAChE,GACgB,QAAQ,IAAK,IAAO,CAClC,KAAM,EAAE,KACR,YAAa,EAAE,WACjB,EAAE,CACJ,CAEA,IAAa,EAAb,KAA4B,CAQ1B,aAAa,YAAkD,CAC7D,GAAI,CACF,OAAO,MAAM,EAAa,CAC5B,OAAS,EAAO,CAEd,OADA,QAAQ,MAAM,yCAA0C,CAAK,EACtD,CAAC,CACV,CACF,CAMA,aAAa,mBAAyD,CACpE,OAAO,EAAa,CACtB,CAWA,aAAa,aACX,EACA,EACA,EACe,CACf,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,gBAAgB,CAAE,OAAM,QAAO,aAAY,CAAC,EAClD,MACF,CACA,MAAM,EAAA,cACJ,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CAC7D,OACA,QACA,aACF,CAAC,CACH,CACF,CAcA,aAAa,aACX,EACA,EACA,EACA,EACe,CACf,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,gBAAgB,CACpB,OACA,QACA,cACA,aAAc,CAChB,CAAC,EACD,MACF,CAEA,IAAM,EAAS,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EACzD,EACJ,GAAU,MAAM,EAAA,cAAgB,EAAO,UAAU,CAAY,CAAC,EAEhE,MAAM,EAAA,cACJ,EAAO,aAAa,CAClB,OACA,MAAO,EACP,aACF,CAAC,CACH,EAEI,IAAS,GACX,MAAM,KAAK,aAAa,CAAY,CAExC,CASA,aAAa,aAAa,EAA6B,CACrD,GAAI,CACF,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,cAAgB,EAAA,kBAAkB,CAAI,CAAC,EAC7C,MACF,CACA,MAAM,EAAA,cACJ,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CAAI,CACrE,CACF,OAAS,EAAO,CAId,GACE,EAAA,qBAAqB,EAAO,GAAG,GAC9B,GACC,OAAO,GAAU,UACjB,aAAc,GACb,EAA6C,UAAU,SACtD,IAEJ,OAEF,MAAM,CACR,CACF,CACF"}
|
|
@@ -8,6 +8,11 @@ export declare class SecretsService {
|
|
|
8
8
|
* All secrets are returned in a single response.
|
|
9
9
|
*/
|
|
10
10
|
static getSecrets(): Promise<CustomSecretWithoutValue[]>;
|
|
11
|
+
/**
|
|
12
|
+
* List all custom secrets, surfacing failures to callers that must
|
|
13
|
+
* distinguish an unavailable list from an empty one.
|
|
14
|
+
*/
|
|
15
|
+
static getSecretsOrThrow(): Promise<CustomSecretWithoutValue[]>;
|
|
11
16
|
/**
|
|
12
17
|
* Create or update a custom secret (upsert by name).
|
|
13
18
|
* Uses the agent-server API endpoint: PUT /api/settings/secrets
|
|
@@ -6,17 +6,23 @@ import { isSdkHttpStatusError as r } from "./agent-server-compatibility.js";
|
|
|
6
6
|
import { withRetry as i } from "./with-retry.js";
|
|
7
7
|
import { deleteCloudSecret as a, fetchCloudSecrets as o, saveCloudSecret as s } from "./cloud/secrets-service.api.js";
|
|
8
8
|
//#region src/api/secrets-service.ts
|
|
9
|
-
|
|
9
|
+
async function c() {
|
|
10
|
+
return t().backend.kind === "cloud" ? i(() => o()) : (await i(() => new e(n()).listSecrets())).secrets.map((e) => ({
|
|
11
|
+
name: e.name,
|
|
12
|
+
description: e.description
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
var l = class {
|
|
10
16
|
static async getSecrets() {
|
|
11
17
|
try {
|
|
12
|
-
return
|
|
13
|
-
name: e.name,
|
|
14
|
-
description: e.description
|
|
15
|
-
}));
|
|
18
|
+
return await c();
|
|
16
19
|
} catch (e) {
|
|
17
20
|
return console.error("Failed to fetch secrets after retries:", e), [];
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
static async getSecretsOrThrow() {
|
|
24
|
+
return c();
|
|
25
|
+
}
|
|
20
26
|
static async createSecret(r, a, o) {
|
|
21
27
|
if (t().backend.kind === "cloud") {
|
|
22
28
|
await s({
|
|
@@ -63,6 +69,6 @@ var c = class {
|
|
|
63
69
|
}
|
|
64
70
|
};
|
|
65
71
|
//#endregion
|
|
66
|
-
export {
|
|
72
|
+
export { l as SecretsService };
|
|
67
73
|
|
|
68
74
|
//# sourceMappingURL=secrets-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets-service.js","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n
|
|
1
|
+
{"version":3,"file":"secrets-service.js","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nasync function fetchSecrets(): Promise<CustomSecretWithoutValue[]> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n return withRetry(() => fetchCloudSecrets());\n }\n const response = await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).listSecrets(),\n );\n return response.secrets.map((s) => ({\n name: s.name,\n description: s.description,\n }));\n}\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n return await fetchSecrets();\n } catch (error) {\n console.error(\"Failed to fetch secrets after retries:\", error);\n return [];\n }\n }\n\n /**\n * List all custom secrets, surfacing failures to callers that must\n * distinguish an unavailable list from an empty one.\n */\n static async getSecretsOrThrow(): Promise<CustomSecretWithoutValue[]> {\n return fetchSecrets();\n }\n\n /**\n * Create or update a custom secret (upsert by name).\n * Uses the agent-server API endpoint: PUT /api/settings/secrets\n *\n * @param name - Secret name (must start with letter, contain only letters/numbers/underscores, 1-64 chars)\n * @param value - Secret value\n * @param description - Optional description\n * @throws Error if the API call fails after retries\n */\n static async createSecret(\n name: string,\n value: string,\n description?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({ name, value, description });\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).upsertSecret({\n name,\n value,\n description,\n }),\n );\n }\n\n /**\n * Update a secret's name and/or description, and optionally overwrite its\n * value. When no value is given the existing one is preserved: the\n * agent-server only exposes an upsert endpoint, so we fetch the existing\n * value and re-upsert it under the updated name/description.\n *\n * @param secretToEdit - Existing secret name\n * @param name - New (or same) secret name\n * @param description - Optional new description\n * @param value - Optional new value; when omitted the stored value is kept\n * @throws Error if the API call fails after retries\n */\n static async updateSecret(\n secretToEdit: string,\n name: string,\n description?: string,\n value?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({\n name,\n value,\n description,\n previousName: secretToEdit,\n });\n return;\n }\n\n const client = new SettingsClient(getAgentServerClientOptions());\n const nextValue =\n value ?? (await withRetry(() => client.getSecret(secretToEdit)));\n\n await withRetry(() =>\n client.upsertSecret({\n name,\n value: nextValue,\n description,\n }),\n );\n\n if (name !== secretToEdit) {\n await this.deleteSecret(secretToEdit);\n }\n }\n\n /**\n * Delete a custom secret by name.\n * Uses the agent-server API endpoint: DELETE /api/settings/secrets/{name}\n *\n * @param name - Secret name to delete\n * @throws Error if the API call fails (except 404, which is treated as success)\n */\n static async deleteSecret(name: string): Promise<void> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await withRetry(() => deleteCloudSecret(name));\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).deleteSecret(name),\n );\n } catch (error) {\n // 404 means secret doesn't exist - treat as successful deletion.\n // Both the SDK's HttpError (status on the error itself) and\n // axios-style errors (status under `response`) count.\n if (\n isSdkHttpStatusError(error, 404) ||\n (error &&\n typeof error === \"object\" &&\n \"response\" in error &&\n (error as { response?: { status?: number } }).response?.status ===\n 404)\n ) {\n return;\n }\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;AAYA,eAAe,IAAoD;CAOjE,OANI,EAAiB,EAAE,QAAQ,SAAS,UAC/B,QAAgB,EAAkB,CAAC,KAKrC,MAHgB,QACrB,IAAI,EAAe,EAA4B,CAAC,EAAE,YAAY,CAChE,GACgB,QAAQ,KAAK,OAAO;EAClC,MAAM,EAAE;EACR,aAAa,EAAE;CACjB,EAAE;AACJ;AAEA,IAAa,IAAb,MAA4B;CAQ1B,aAAa,aAAkD;EAC7D,IAAI;GACF,OAAO,MAAM,EAAa;EAC5B,SAAS,GAAO;GAEd,OADA,QAAQ,MAAM,0CAA0C,CAAK,GACtD,CAAC;EACV;CACF;CAMA,aAAa,oBAAyD;EACpE,OAAO,EAAa;CACtB;CAWA,aAAa,aACX,GACA,GACA,GACe;EACf,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;GAC/C,MAAM,EAAgB;IAAE;IAAM;IAAO;GAAY,CAAC;GAClD;EACF;EACA,MAAM,QACJ,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa;GAC7D;GACA;GACA;EACF,CAAC,CACH;CACF;CAcA,aAAa,aACX,GACA,GACA,GACA,GACe;EACf,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;GAC/C,MAAM,EAAgB;IACpB;IACA;IACA;IACA,cAAc;GAChB,CAAC;GACD;EACF;EAEA,IAAM,IAAS,IAAI,EAAe,EAA4B,CAAC,GACzD,IACJ,KAAU,MAAM,QAAgB,EAAO,UAAU,CAAY,CAAC;EAUhE,AARA,MAAM,QACJ,EAAO,aAAa;GAClB;GACA,OAAO;GACP;EACF,CAAC,CACH,GAEI,MAAS,KACX,MAAM,KAAK,aAAa,CAAY;CAExC;CASA,aAAa,aAAa,GAA6B;EACrD,IAAI;GACF,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;IAC/C,MAAM,QAAgB,EAAkB,CAAI,CAAC;IAC7C;GACF;GACA,MAAM,QACJ,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa,CAAI,CACrE;EACF,SAAS,GAAO;GAId,IACE,EAAqB,GAAO,GAAG,KAC9B,KACC,OAAO,KAAU,YACjB,cAAc,KACb,EAA6C,UAAU,WACtD,KAEJ;GAEF,MAAM;EACR;CACF;AACF"}
|
package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require("./get-skill-ready-content.cjs");var t=e=>typeof e==`object`&&!!e&&`_isSkillReadyEvent`in e&&e._isSkillReadyEvent===!0,n=t=>{let n=t.activated_skills||
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require("./get-skill-ready-content.cjs");var t=e=>typeof e==`object`&&!!e&&`_isSkillReadyEvent`in e&&e._isSkillReadyEvent===!0,n=t=>{let n=t.activated_skills||[],r=t.extended_content||[];if(n.length===0&&r.length===0)throw Error(`Cannot create skill ready event without activated skills or extended content`);let i=e.getSkillReadyContent(n,r),a=e.getSkillReadyItems(n,r);return{id:`${t.id}-skill-ready`,timestamp:t.timestamp,source:`agent`,_isSkillReadyEvent:!0,_skillReadyContent:i,_skillReadyItems:a}};exports.createSkillReadyEvent=n,exports.isSkillReadyEvent=t;
|
|
2
2
|
//# sourceMappingURL=create-skill-ready-event.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-skill-ready-event.cjs","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n
|
|
1
|
+
{"version":3,"file":"create-skill-ready-event.cjs","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n const activatedSkills = userEvent.activated_skills || [];\n\n const extendedContent = userEvent.extended_content || [];\n\n // Only create event if we have skills or extended content\n if (activatedSkills.length === 0 && extendedContent.length === 0) {\n throw new Error(\n \"Cannot create skill ready event without activated skills or extended content\",\n );\n }\n\n const content = getSkillReadyContent(activatedSkills, extendedContent);\n const items = getSkillReadyItems(activatedSkills, extendedContent);\n\n return {\n id: `${userEvent.id}-skill-ready`,\n timestamp: userEvent.timestamp,\n source: \"agent\",\n _isSkillReadyEvent: true,\n _skillReadyContent: content,\n _skillReadyItems: items,\n };\n};\n"],"mappings":"uGAuBA,IAAa,EAAqB,GAChC,OAAO,GAAU,YACjB,GACA,uBAAwB,GACxB,EAAM,qBAAuB,GAOlB,EACX,GACoB,CACpB,IAAM,EAAkB,EAAU,kBAAoB,CAAC,EAEjD,EAAkB,EAAU,kBAAoB,CAAC,EAGvD,GAAI,EAAgB,SAAW,GAAK,EAAgB,SAAW,EAC7D,MAAU,MACR,8EACF,EAGF,IAAM,EAAU,EAAA,qBAAqB,EAAiB,CAAe,EAC/D,EAAQ,EAAA,mBAAmB,EAAiB,CAAe,EAEjE,MAAO,CACL,GAAI,GAAG,EAAU,GAAG,cACpB,UAAW,EAAU,UACrB,OAAQ,QACR,mBAAoB,GACpB,mBAAoB,EACpB,iBAAkB,CACpB,CACF"}
|
package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getSkillReadyContent as e, getSkillReadyItems as t } from "./get-skill-ready-content.js";
|
|
2
2
|
//#region src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts
|
|
3
3
|
var n = (e) => typeof e == "object" && !!e && "_isSkillReadyEvent" in e && e._isSkillReadyEvent === !0, r = (n) => {
|
|
4
|
-
let r = n.activated_skills ||
|
|
4
|
+
let r = n.activated_skills || [], i = n.extended_content || [];
|
|
5
5
|
if (r.length === 0 && i.length === 0) throw Error("Cannot create skill ready event without activated skills or extended content");
|
|
6
6
|
let a = e(r, i), o = t(r, i);
|
|
7
7
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-skill-ready-event.js","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n
|
|
1
|
+
{"version":3,"file":"create-skill-ready-event.js","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n const activatedSkills = userEvent.activated_skills || [];\n\n const extendedContent = userEvent.extended_content || [];\n\n // Only create event if we have skills or extended content\n if (activatedSkills.length === 0 && extendedContent.length === 0) {\n throw new Error(\n \"Cannot create skill ready event without activated skills or extended content\",\n );\n }\n\n const content = getSkillReadyContent(activatedSkills, extendedContent);\n const items = getSkillReadyItems(activatedSkills, extendedContent);\n\n return {\n id: `${userEvent.id}-skill-ready`,\n timestamp: userEvent.timestamp,\n source: \"agent\",\n _isSkillReadyEvent: true,\n _skillReadyContent: content,\n _skillReadyItems: items,\n };\n};\n"],"mappings":";;AAuBA,IAAa,KAAqB,MAChC,OAAO,KAAU,cACjB,KACA,wBAAwB,KACxB,EAAM,uBAAuB,IAOlB,KACX,MACoB;CACpB,IAAM,IAAkB,EAAU,oBAAoB,CAAC,GAEjD,IAAkB,EAAU,oBAAoB,CAAC;CAGvD,IAAI,EAAgB,WAAW,KAAK,EAAgB,WAAW,GAC7D,MAAU,MACR,8EACF;CAGF,IAAM,IAAU,EAAqB,GAAiB,CAAe,GAC/D,IAAQ,EAAmB,GAAiB,CAAe;CAEjE,OAAO;EACL,IAAI,GAAG,EAAU,GAAG;EACpB,WAAW,EAAU;EACrB,QAAQ;EACR,oBAAoB;EACpB,oBAAoB;EACpB,kBAAkB;CACpB;AACF"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { UserAssistantEventMessage } from "./user-assistant-event-message";
|
|
2
|
-
export { ObservationPairEventMessage } from "./observation-pair-event-message";
|
|
3
2
|
export { ErrorEventMessage } from "./error-event-message";
|
|
4
3
|
export { FinishEventMessage } from "./finish-event-message";
|
|
5
4
|
export { GenericEventMessageWrapper } from "./generic-event-message-wrapper";
|