@openhands/agent-canvas 1.14.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -1
- package/README.windows.md +2 -2
- package/build/assets/acp-providers-CX3Lh9gj.js +1 -0
- package/build/assets/active-backend-context-CrHTlgvN.js +2 -0
- package/build/assets/agent-context-settings-DSZlXrLj.js +1 -0
- package/build/assets/agent-profiles-settings-Dzgb7G9z.js +1 -0
- package/build/assets/agent-server-conversation-service.api-tnqNjbpE.js +86 -0
- package/build/assets/agent-settings-DLtsqaOs.js +2 -0
- package/build/assets/agent-settings-fFvR-XC2.js +1 -0
- package/build/assets/alert-banner-HP6mX-Vr.js +1 -0
- package/build/assets/api-error-message-B-XdSk3b.js +1 -0
- package/build/assets/api-key-entry-screen-qTzrmJcr.js +1 -0
- package/build/assets/app-settings-dbnneVaV.js +1 -0
- package/build/assets/automation-detail-BmwlCUAB.js +3 -0
- package/build/assets/automation-export-D3a3of4G.js +2 -0
- package/build/assets/automation-git-sync-CprN5DcU.js +1 -0
- package/build/assets/automation-setup-route-C40kXjMY.js +1 -0
- package/build/assets/automation-templates-BRppNh99.js +1 -0
- package/build/assets/automations-list-DuNcRawl.js +1 -0
- package/build/assets/back-nav-button-Cjl_hoxq.js +1 -0
- package/build/assets/backend-form-modal-lhGwzXFI.js +1 -0
- package/build/assets/backend-synced-settings-badge-DPkz30BE.js +1 -0
- package/build/assets/badge-BU3S0VtE.js +1 -0
- package/build/assets/base-modal-D_L0oEbG.js +1 -0
- package/build/assets/bot-dMYHVfYM.js +1 -0
- package/build/assets/brand-button-BAfk4wGP.js +1 -0
- package/build/assets/browser-DSAo0tz1.js +46 -0
- package/build/assets/browser-tab-C9vy56R5.js +1 -0
- package/build/assets/canvas-extension-page-dx1gFrfW.js +1 -0
- package/build/assets/canvas-extensions-8A-XhpgP.js +1 -0
- package/build/assets/canvas-extensions-runtime-2_x5Ezmi.js +1 -0
- package/build/assets/chat-send-button-MUQqCZCS.js +1 -0
- package/build/assets/check-CS0vmpQQ.js +1 -0
- package/build/assets/chevron-down-e1QBpjVy.js +1 -0
- package/build/assets/chevron-right-ZG4R5G4Q.js +1 -0
- package/build/assets/circle-check-DzWLNsbE.js +1 -0
- package/build/assets/circle-plus-check-toggle-BO_kFZt3.js +1 -0
- package/build/assets/cloud-funnel-analytics-CztBCCPp.js +1 -0
- package/build/assets/cog-D-MPQW6G.js +1 -0
- package/build/assets/command-menu--UIlGL72.js +1 -0
- package/build/assets/commits-tab-AnZwLvh-.js +1 -0
- package/build/assets/condenser-settings-DmEOje-7.js +1 -0
- package/build/assets/confirmation-modal-Dv1ktp8K.js +1 -0
- package/build/assets/context-menu-list-item-I86vKcmM.js +1 -0
- package/build/assets/conversation-BbGrAO4Z.js +93 -0
- package/build/assets/conversation-mYT6NAoj.js +1 -0
- package/build/assets/conversation-panel-mYT6NAoj.js +1 -0
- package/build/assets/conversation-state-store-B0ImPLHO.js +1 -0
- package/build/assets/conversation-store-Ca3ghXap.js +6 -0
- package/build/assets/conversation-tab-empty-state-FIbh_lc8.js +1 -0
- package/build/assets/copy-to-clipboard-button-Ca8iSkkA.js +1 -0
- package/build/assets/device-verify-Bhn2e_Ye.js +1 -0
- package/build/assets/dropdown-classes-Bc1djN0-.js +1 -0
- package/build/assets/edit-automation-modal-DadGbJ2u.js +1 -0
- package/build/assets/empty-state-BoGVDecT.js +1 -0
- package/build/assets/entry.client-CqyPPjOq.js +2 -0
- package/build/assets/enum-filter-dropdown-Bgca129f.js +1 -0
- package/build/assets/environment-switch-overlay-BmBRT7gv.js +1 -0
- package/build/assets/error-state-Body8Ngd.js +1 -0
- package/build/assets/extension-module-card-classes-DpeaYhYo.js +1 -0
- package/build/assets/extensions-hub-CcDqq_vR.js +1 -0
- package/build/assets/extensions-navigation-Cr4yzYk4.js +1 -0
- package/build/assets/external-link-DKUlnCQV.js +1 -0
- package/build/assets/files-tab-D4o2VyE_.js +1 -0
- package/build/assets/form-control-classes-Bkh5FGrD.js +1 -0
- package/build/assets/format-model-name-CasAP3nd.js +1 -0
- package/build/assets/get-git-path-ChKDVHZp.js +1 -0
- package/build/assets/git-repo-dropdown-4ROKl2cB.js +1 -0
- package/build/assets/git-repo-dropdown-BkqzkMmM.js +1 -0
- package/build/assets/highlighted-source-view-BFRxGT_Q.js +1 -0
- package/build/assets/home-ChpSuepX.js +1 -0
- package/build/assets/home-DIsB440S.js +1 -0
- package/build/assets/home-automation-run-tooltip-BVNDWjAH.js +1 -0
- package/build/assets/home-store-CY9Ej0ux.js +1 -0
- package/build/assets/index-home-BdlrFIif.js +1 -0
- package/build/assets/info-B6RQawoW.js +1 -0
- package/build/assets/install-server-modal-Dpy89p4g.js +1 -0
- package/build/assets/kebab-menu-item-content-D8hSNGmm.js +1 -0
- package/build/assets/key-BmVyxs-2.js +1 -0
- package/build/assets/launch-IrTDEFCs.js +1 -0
- package/build/assets/list-filter-DsEK7NFC.js +1 -0
- package/build/assets/list-todo-apgLVjMw.js +1 -0
- package/build/assets/llm-not-configured-banner-CIFABh3K.js +27 -0
- package/build/assets/llm-settings-B9juXhIa.js +1 -0
- package/build/assets/llm-settings-De1d5dfr.js +1 -0
- package/build/assets/llm-subscription-service-BpJ0ouQo.js +1 -0
- package/build/assets/loader-circle-CC1au6hc.js +1 -0
- package/build/assets/loading-spinner-BY9N3pOe.js +1 -0
- package/build/assets/manage-backends-modal-BrPV3oB-.js +1 -0
- package/build/assets/manifest-80fb1c29.js +1 -0
- package/build/assets/manifest-subpage-layout-CAOYzrYp.js +1 -0
- package/build/assets/map-provider-Cu3Zgumb.js +1 -0
- package/build/assets/markdown-renderer-BzTlxI8x.js +8 -0
- package/build/assets/mcp-BTs_SXfZ.js +1 -0
- package/build/assets/mcp-marketplace-utils-AIBzzHTO.js +1 -0
- package/build/assets/mcp-page-BEBYqH_K.js +9 -0
- package/build/assets/messages-DKV9cRc2.js +41 -0
- package/build/assets/modal-body-BxZjsju9.js +1 -0
- package/build/assets/modal-classes-C8eycCwG.js +1 -0
- package/build/assets/modal-close-button-DDzdRvCs.js +1 -0
- package/build/assets/mouse-pointer-click-Co2uyaPA.js +1 -0
- package/build/assets/onboarding-DV_OXoeP.js +1 -0
- package/build/assets/onboarding-modal-rkyBYkeQ.js +1 -0
- package/build/assets/organization-service.api-DrYNkEN_.js +1 -0
- package/build/assets/parse-git-remote-url-DpDM9bK6.js +1 -0
- package/build/assets/pencil-47jAZH_V.js +1 -0
- package/build/assets/pin-By41Vl5J.js +1 -0
- package/build/assets/planner-tab-C9uZmhme.js +1 -0
- package/build/assets/plug-CG5HFcNG.js +1 -0
- package/build/assets/plugins-management-service-BMJgC3Ga.js +1 -0
- package/build/assets/plus-C7Slq-0I.js +1 -0
- package/build/assets/profiles-service.api-ChoKrL0l.js +1 -0
- package/build/assets/providers-BhMcY5nv.js +1 -0
- package/build/assets/proxy-9Fe1v5na.js +1 -0
- package/build/assets/puzzle-JM_QaRm0.js +1 -0
- package/build/assets/recommended-automations-launcher-6ABrI9Cy.js +1 -0
- package/build/assets/refresh-cw-3q3Frrii.js +1 -0
- package/build/assets/root-Dc8YmC9F.js +2 -0
- package/build/assets/root-VDaypvK4.css +1 -0
- package/build/assets/root-layout-CXkhSPYh.js +2 -0
- package/build/assets/schema-field-D-y9-LDb.js +1 -0
- package/build/assets/scroll-fade-state-Dw-i4SGq.js +1 -0
- package/build/assets/sdk-section-page-BlFiizlG.js +1 -0
- package/build/assets/secret-form-BB7the8W.js +1 -0
- package/build/assets/secrets-service-ByZVENbp.js +1 -0
- package/build/assets/secrets-settings-B_GpxKW2.js +1 -0
- package/build/assets/server-process-C9RKzd1x.js +1 -0
- package/build/assets/settings-C0EWuBtA.js +1 -0
- package/build/assets/settings-CKqk8ZnH.js +1 -0
- package/build/assets/settings-dropdown-input-BcwylHs2.js +1 -0
- package/build/assets/settings-index-5w5UW2K3.js +1 -0
- package/build/assets/settings-input-Db-1g8Ql.js +1 -0
- package/build/assets/settings-list-classes-BzeSZbF2.js +1 -0
- package/build/assets/settings-modal-DfJ3tcJQ.js +1 -0
- package/build/assets/settings-service.api-DJ1r62Zr.js +1 -0
- package/build/assets/settings-switch-CS-dJDmA.js +1 -0
- package/build/assets/settings-utils-UYpEdPuD.js +1 -0
- package/build/assets/shared-conversation-CA5ISEDy.js +1 -0
- package/build/assets/shield-check-D2aCRd16.js +1 -0
- package/build/assets/sidebar-layout-D6fS8-Gl.js +1 -0
- package/build/assets/sidebar-mobile-menu-toggle-C_fb0Jki.js +1 -0
- package/build/assets/sidebar-nav-link-DQQcMf1A.js +1 -0
- package/build/assets/sidebar-onboarding-checklist-storage-BBkeI6Bp.js +1 -0
- package/build/assets/sidebar-store-DGqHkVLw.js +1 -0
- package/build/assets/skill-card-pill-row-B27-xyig.js +1 -0
- package/build/assets/skill-enablement-DXeaImBz.js +1 -0
- package/build/assets/skill-filter-w__3UCEE.js +2 -0
- package/build/assets/skill-icon-badge-RQkq8wvl.js +1 -0
- package/build/assets/skill-scope-B42H-XOc.js +1 -0
- package/build/assets/skills-plugins-tgF8EiXC.js +1 -0
- package/build/assets/skills-settings-BgJ9PaOe.js +1 -0
- package/build/assets/styled-tooltip-C4jf5Fv9.js +1 -0
- package/build/assets/task-list-tab-C5zcaktH.js +1 -0
- package/build/assets/terminal-CNElN42a.js +3 -0
- package/build/assets/toggle-switch-ChOLXv2n.js +1 -0
- package/build/assets/trash-2-D7K26eDO.js +1 -0
- package/build/assets/trash-D-HYiVYM.js +1 -0
- package/build/assets/triangle-alert-CtdXWHUI.js +1 -0
- package/build/assets/typography-v1KN0tzi.js +1 -0
- package/build/assets/usage-tab-CVDffLPt.js +1 -0
- package/build/assets/use-acp-credential-form-XIQmpX6M.js +1 -0
- package/build/assets/use-activate-agent-profile-BLfmvDiG.js +1 -0
- package/build/assets/use-agent-profiles-Bd9Bvvp1.js +1 -0
- package/build/assets/use-automation-health-E6NZi9rb.js +1 -0
- package/build/assets/use-automations-xijQKIl9.js +1 -0
- package/build/assets/use-can-manage-org-profiles-CrJP5262.js +1 -0
- package/build/assets/use-canvas-extensions-Bi693ujJ.js +1 -0
- package/build/assets/use-cloud-current-user-id-CDfAHpPX.js +1 -0
- package/build/assets/use-config-A9QovgXO.js +1 -0
- package/build/assets/use-create-conversation-Dx3l7mFZ.js +1 -0
- package/build/assets/use-create-secret-B9cUFWRG.js +1 -0
- package/build/assets/use-get-secrets-K3jmk-LH.js +1 -0
- package/build/assets/use-has-permission-B3C8rQmR.js +1 -0
- package/build/assets/use-is-authed-nTBcM7dE.js +1 -0
- package/build/assets/use-launch-skill-in-chat-BYjYihBP.js +1 -0
- package/build/assets/use-llm-configured-BV9nZ1_j.js +1 -0
- package/build/assets/use-llm-profiles-BO-P4Oyo.js +1 -0
- package/build/assets/use-manifest-capabilities-Cw_flwEz.js +1 -0
- package/build/assets/use-onboarding-completion-D8U7k4Qb.js +1 -0
- package/build/assets/use-pinned-home-route-CckOZrmb.js +1 -0
- package/build/assets/use-plugins-marketplace-7i94Zu3Z.js +1 -0
- package/build/assets/use-save-agent-profile-BUjSsDXK.js +1 -0
- package/build/assets/use-save-settings-DYqkKv7T.js +1 -0
- package/build/assets/use-settings-DSXLbvBl.js +1 -0
- package/build/assets/use-settings-nav-items-CwRw-CmX.js +16 -0
- package/build/assets/use-tracking-D53y3TH9.js +3 -0
- package/build/assets/use-user-conversation-B9Gebw_g.js +1 -0
- package/build/assets/useInfiniteQuery-C926xzY4.js +1 -0
- package/build/assets/useMutation-B-qc391N.js +1 -0
- package/build/assets/useQueries-DlbhlH9I.js +1 -0
- package/build/assets/useQuery-BSTgq1rl.js +1 -0
- package/build/assets/utils-CN5ZfZy1.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-C8Fn4XOf.js +1 -0
- package/build/assets/vendor~entry.client-CoCfUXUF.js +1 -0
- package/build/assets/vendor~entry.client-DA2izTjq.js +9 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-DqZDXfg2.js +186 -0
- package/build/assets/vendor~index-home~home~conversation-panel~conversation-hWywRBaR.js +13 -0
- package/build/assets/vendor~root-layout-C9Ju9DQg.js +1 -0
- package/build/assets/vendor~root-layout~conversation-panel~conversation-BMbMgaGu.js +1 -0
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BWir3rJs.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation-j5MFqfSy.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-cDuKr-WD.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~iyia17eu-Chf7vmKB.js +1 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~nj1hli3r-DP9wmsjo.js +48 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-CUmIwQCN.js +5053 -0
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C7HiY4Ae.js +8459 -0
- package/build/assets/verification-settings-gw_q6vkL.js +1 -0
- package/build/assets/wrench-CUEI1krB.js +1 -0
- package/build/assets/x-DJdhbdmt.js +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +156 -59
- package/build/locales/ca/openhands.json +156 -59
- package/build/locales/de/openhands.json +156 -59
- package/build/locales/en/openhands.json +156 -59
- package/build/locales/es/openhands.json +156 -59
- package/build/locales/fr/openhands.json +156 -59
- package/build/locales/it/openhands.json +156 -59
- package/build/locales/ja/openhands.json +156 -59
- package/build/locales/ko-KR/openhands.json +156 -59
- package/build/locales/no/openhands.json +156 -59
- package/build/locales/pt/openhands.json +156 -59
- package/build/locales/tr/openhands.json +156 -59
- package/build/locales/uk/openhands.json +156 -59
- package/build/locales/zh-CN/openhands.json +156 -59
- package/build/locales/zh-TW/openhands.json +156 -59
- package/config/defaults.json +9 -5
- package/dist/api/agent-profiles-service/profile-field-support.d.ts +26 -0
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +10 -1
- package/dist/api/agent-server-adapter.js +139 -132
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/agent-server-compatibility.cjs +1 -1
- package/dist/api/agent-server-compatibility.cjs.map +1 -1
- package/dist/api/agent-server-compatibility.d.ts +21 -0
- package/dist/api/agent-server-compatibility.js +52 -38
- package/dist/api/agent-server-compatibility.js.map +1 -1
- package/dist/api/agent-server-config.cjs +1 -1
- package/dist/api/agent-server-config.cjs.map +1 -1
- package/dist/api/agent-server-config.d.ts +26 -0
- package/dist/api/agent-server-config.js +18 -5
- package/dist/api/agent-server-config.js.map +1 -1
- package/dist/api/automation-service/automation-service.api.cjs +1 -1
- package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
- package/dist/api/automation-service/automation-service.api.d.ts +13 -2
- package/dist/api/automation-service/automation-service.api.js +99 -84
- 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/canvas-extensions-service.cjs +1 -0
- package/dist/api/canvas-extensions-service.d.ts +22 -0
- package/dist/api/canvas-extensions-service.js +4 -0
- package/dist/api/cloud/conversation-service.api.cjs +1 -1
- package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
- package/dist/api/cloud/conversation-service.api.d.ts +6 -0
- package/dist/api/cloud/conversation-service.api.js +14 -6
- package/dist/api/cloud/conversation-service.api.js.map +1 -1
- package/dist/api/conversation-file-upload.api.cjs +1 -1
- package/dist/api/conversation-file-upload.api.js +10 -10
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +11 -0
- package/dist/api/conversation-service/agent-server-conversation-service.api.js +138 -122
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/event-service/event-service.api.cjs +1 -1
- package/dist/api/event-service/event-service.api.js +12 -12
- package/dist/api/git-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/git-service/agent-server-git-service.api.cjs +1 -1
- package/dist/api/git-service/agent-server-git-service.api.js +8 -8
- package/dist/api/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.map +1 -1
- package/dist/api/profiles-service/profiles-service.api.d.ts +16 -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/runtime-service/agent-server-runtime-service.cjs +1 -1
- package/dist/api/runtime-service/agent-server-runtime-service.js +8 -8
- package/dist/api/settings-service/settings-service.api.cjs +1 -1
- package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
- package/dist/api/settings-service/settings-service.api.d.ts +3 -2
- package/dist/api/settings-service/settings-service.api.js +2 -1
- package/dist/api/settings-service/settings-service.api.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/event-group.cjs +1 -1
- package/dist/components/conversation-events/chat/event-message-components/event-group.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-message-components/event-group.js +40 -36
- package/dist/components/conversation-events/chat/event-message-components/event-group.js.map +1 -1
- package/dist/components/conversation-events/chat/event-message.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 +170 -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-phase.cjs +2 -0
- package/dist/components/features/automations/detail/run-phase.cjs.map +1 -0
- package/dist/components/features/automations/detail/run-phase.d.ts +89 -0
- package/dist/components/features/automations/detail/run-phase.js +72 -0
- package/dist/components/features/automations/detail/run-phase.js.map +1 -0
- package/dist/components/features/automations/detail/run-status-badge.cjs +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/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.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.cjs.map +1 -1
- package/dist/components/features/backends/backend-form-modal.js +15 -21
- package/dist/components/features/backends/backend-form-modal.js.map +1 -1
- 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/canvas-extensions/add-canvas-extension-modal.d.ts +6 -0
- package/dist/components/features/canvas-extensions/canvas-extension-card.d.ts +9 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.cjs +2 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.cjs.map +1 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.d.ts +23 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.js +19 -0
- package/dist/components/features/canvas-extensions/canvas-extensions-runtime.js.map +1 -0
- package/dist/components/features/chat/chat-interface.cjs +2 -2
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +138 -133
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/chat-markdown-path-code.cjs +3 -0
- package/dist/components/features/chat/chat-markdown-path-code.cjs.map +1 -0
- package/dist/components/features/chat/chat-markdown-path-code.d.ts +27 -0
- package/dist/components/features/chat/chat-markdown-path-code.js +72 -0
- package/dist/components/features/chat/chat-markdown-path-code.js.map +1 -0
- package/dist/components/features/chat/path-component.cjs +1 -1
- package/dist/components/features/chat/path-component.cjs.map +1 -1
- package/dist/components/features/chat/path-component.d.ts +8 -2
- package/dist/components/features/chat/path-component.js +33 -21
- package/dist/components/features/chat/path-component.js.map +1 -1
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.cjs +1 -1
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.cjs.map +1 -1
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.js +38 -43
- package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.js.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.cjs +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.cjs.map +1 -1
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.d.ts +8 -5
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.js +22 -16
- package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.js.map +1 -1
- package/dist/components/features/chat/user-message-body.cjs +1 -1
- package/dist/components/features/chat/user-message-body.cjs.map +1 -1
- package/dist/components/features/chat/user-message-body.d.ts +4 -0
- package/dist/components/features/chat/user-message-body.js +30 -24
- package/dist/components/features/chat/user-message-body.js.map +1 -1
- package/dist/components/features/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 +120 -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 +89 -79
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.d.ts +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js +3 -3
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js.map +1 -1
- package/dist/components/features/conversation/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/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 +252 -225
- 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/conversation-panel/skills-modal.cjs +1 -1
- package/dist/components/features/conversation-panel/skills-modal.cjs.map +1 -1
- package/dist/components/features/conversation-panel/skills-modal.js +29 -28
- package/dist/components/features/conversation-panel/skills-modal.js.map +1 -1
- package/dist/components/features/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 +5 -6
- 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 +96 -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/onboarding-host.d.ts +3 -4
- package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +5 -9
- 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/acp-auth-status-banner.d.ts +23 -6
- 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 +2 -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 +13 -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/field-help.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.cjs.map +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.d.ts +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.js +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.js.map +1 -1
- package/dist/components/features/settings/sdk-settings/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 +9 -9
- 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-nav-link.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-nav-link.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-nav-link.d.ts +10 -1
- package/dist/components/features/sidebar/sidebar-nav-link.js +54 -36
- package/dist/components/features/sidebar/sidebar-nav-link.js.map +1 -1
- package/dist/components/features/sidebar/sidebar-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 +137 -110
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/components/features/sidebar/sidebar.cjs +1 -1
- package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar.js +1 -1
- package/dist/components/features/sidebar/sidebar.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 +96 -0
- package/dist/components/features/skills/build-skill-pills.js.map +1 -0
- package/dist/components/features/skills/extensions-navigation.cjs +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
- package/dist/components/features/skills/extensions-navigation.js +54 -43
- package/dist/components/features/skills/extensions-navigation.js.map +1 -1
- package/dist/components/features/skills/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.d.ts +8 -3
- package/dist/components/features/skills/skill-filter.js +183 -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/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 +6 -6
- 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 +9 -5
- 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 +174 -149
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/extensions/canvas-extension-module-loader.d.ts +11 -0
- 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-manage-canvas-extensions.d.ts +12 -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/concurrency-limiter.cjs +2 -0
- package/dist/hooks/query/concurrency-limiter.cjs.map +1 -0
- package/dist/hooks/query/concurrency-limiter.d.ts +22 -0
- package/dist/hooks/query/concurrency-limiter.js +29 -0
- package/dist/hooks/query/concurrency-limiter.js.map +1 -0
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +7 -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-active-conversation.cjs +1 -1
- package/dist/hooks/query/use-active-conversation.js +4 -4
- 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.d.ts +1 -1
- package/dist/hooks/query/use-backends-health.js +50 -64
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-canvas-extensions.cjs +1 -0
- package/dist/hooks/query/use-canvas-extensions.d.ts +5 -0
- package/dist/hooks/query/use-canvas-extensions.js +3 -0
- package/dist/hooks/query/use-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-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 +4 -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 +19 -16
- 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-search-providers.cjs +1 -1
- package/dist/hooks/query/use-search-providers.cjs.map +1 -1
- package/dist/hooks/query/use-search-providers.js +17 -10
- package/dist/hooks/query/use-search-providers.js.map +1 -1
- package/dist/hooks/query/use-unified-vscode-url.cjs +1 -1
- package/dist/hooks/query/use-unified-vscode-url.cjs.map +1 -1
- package/dist/hooks/query/use-unified-vscode-url.d.ts +1 -0
- package/dist/hooks/query/use-unified-vscode-url.js +40 -26
- package/dist/hooks/query/use-unified-vscode-url.js.map +1 -1
- package/dist/hooks/query/use-workspace-file-content.cjs +1 -1
- package/dist/hooks/query/use-workspace-file-content.js +5 -5
- package/dist/hooks/use-acp-credential-form.d.ts +6 -0
- 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-pinned-home-route.cjs +2 -0
- package/dist/hooks/use-pinned-home-route.cjs.map +1 -0
- package/dist/hooks/use-pinned-home-route.d.ts +33 -0
- package/dist/hooks/use-pinned-home-route.js +34 -0
- package/dist/hooks/use-pinned-home-route.js.map +1 -0
- package/dist/hooks/use-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.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-skill-enablement.cjs +2 -0
- package/dist/hooks/use-skill-enablement.cjs.map +1 -0
- package/dist/hooks/use-skill-enablement.d.ts +14 -0
- package/dist/hooks/use-skill-enablement.js +80 -0
- package/dist/hooks/use-skill-enablement.js.map +1 -0
- package/dist/hooks/use-tracking.cjs +1 -1
- package/dist/hooks/use-tracking.cjs.map +1 -1
- package/dist/hooks/use-tracking.d.ts +17 -0
- package/dist/hooks/use-tracking.js +10 -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 +153 -56
- 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 +2629 -980
- 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/index.cjs +1 -1
- package/dist/index.js +15 -14
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +1 -0
- package/dist/locales/ar/openhands.json +156 -59
- package/dist/locales/ca/openhands.json +156 -59
- package/dist/locales/de/openhands.json +156 -59
- package/dist/locales/en/openhands.json +156 -59
- package/dist/locales/es/openhands.json +156 -59
- package/dist/locales/fr/openhands.json +156 -59
- package/dist/locales/it/openhands.json +156 -59
- package/dist/locales/ja/openhands.json +156 -59
- package/dist/locales/ko-KR/openhands.json +156 -59
- package/dist/locales/no/openhands.json +156 -59
- package/dist/locales/pt/openhands.json +156 -59
- package/dist/locales/tr/openhands.json +156 -59
- package/dist/locales/uk/openhands.json +156 -59
- package/dist/locales/zh-CN/openhands.json +156 -59
- package/dist/locales/zh-TW/openhands.json +156 -59
- 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 +53 -31
- package/dist/manifests/automation-interface.js +56 -59
- 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 +4884 -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 +92 -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 +103 -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 +37 -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 +34 -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-bitbucket-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/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/linear-issue-to-bitbucket-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +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 +77 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs +30 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js +65 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +28 -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/datadog.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +2 -2
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +40 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/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 +75 -71
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +1043 -49
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +78 -17
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.js +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js +8 -7
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.js +2 -2
- package/dist/node_modules/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/blocks.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/blocks.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/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/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/panels-top-left.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/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/agent-settings.d.ts +10 -0
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +88 -86
- 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 +119 -149
- 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 +141 -103
- 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/canvas-ui.cjs +1 -1
- package/dist/services/canvas-ui.cjs.map +1 -1
- package/dist/services/canvas-ui.d.ts +5 -0
- package/dist/services/canvas-ui.js +24 -10
- package/dist/services/canvas-ui.js.map +1 -1
- package/dist/services/settings.cjs +1 -1
- package/dist/services/settings.cjs.map +1 -1
- package/dist/services/settings.js +3 -2
- package/dist/services/settings.js.map +1 -1
- package/dist/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/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.d.ts +20 -0
- package/dist/types/automation.js +8 -0
- package/dist/types/automation.js.map +1 -0
- package/dist/types/canvas-extension.cjs +2 -0
- package/dist/types/canvas-extension.cjs.map +1 -0
- package/dist/types/canvas-extension.d.ts +77 -0
- package/dist/types/canvas-extension.js +6 -0
- package/dist/types/canvas-extension.js.map +1 -0
- package/dist/types/settings.d.ts +7 -0
- package/dist/ui/help-link.cjs +1 -1
- package/dist/ui/help-link.cjs.map +1 -1
- package/dist/ui/help-link.d.ts +6 -1
- package/dist/ui/help-link.js +32 -18
- package/dist/ui/help-link.js.map +1 -1
- package/dist/utils/acp-auth-display.d.ts +35 -0
- package/dist/utils/automation-catalog.cjs +1 -1
- package/dist/utils/automation-catalog.cjs.map +1 -1
- package/dist/utils/automation-catalog.d.ts +12 -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/cache-utils.cjs +1 -1
- package/dist/utils/cache-utils.js +5 -5
- package/dist/utils/constants.cjs +1 -1
- package/dist/utils/constants.cjs.map +1 -1
- package/dist/utils/constants.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/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 +7 -3
- package/dist/utils/format-model-name.js +6 -11
- package/dist/utils/format-model-name.js.map +1 -1
- package/dist/utils/format-relative-time.cjs +2 -0
- package/dist/utils/format-relative-time.cjs.map +1 -0
- package/dist/utils/format-relative-time.d.ts +7 -0
- package/dist/utils/format-relative-time.js +22 -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/path-utils.cjs +1 -1
- package/dist/utils/path-utils.cjs.map +1 -1
- package/dist/utils/path-utils.d.ts +15 -3
- package/dist/utils/path-utils.js +29 -3
- package/dist/utils/path-utils.js.map +1 -1
- package/dist/utils/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-enablement.cjs +2 -0
- package/dist/utils/skill-enablement.cjs.map +1 -0
- package/dist/utils/skill-enablement.d.ts +51 -0
- package/dist/utils/skill-enablement.js +31 -0
- package/dist/utils/skill-enablement.js.map +1 -0
- package/dist/utils/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/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/vscode-origin.cjs +2 -0
- package/dist/utils/vscode-origin.cjs.map +1 -0
- package/dist/utils/vscode-origin.d.ts +55 -0
- package/dist/utils/vscode-origin.js +27 -0
- package/dist/utils/vscode-origin.js.map +1 -0
- package/dist/utils/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/dist/utils/workspace-mode.d.ts +4 -0
- package/package.json +3 -3
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/check-translation-completeness.cjs +5 -0
- package/scripts/dev-extra-backend.mjs +28 -9
- package/scripts/dev-safe.mjs +81 -8
- package/scripts/dev-static.mjs +48 -44
- package/scripts/dev-with-automation.mjs +95 -6
- package/scripts/ingress.mjs +27 -1
- package/scripts/seed-automation-ux-data.mjs +810 -0
- package/scripts/static-server.mjs +74 -1
- package/tools/canvas_ui_tool.py +19 -0
- package/build/assets/acp-providers-CYy8qA2z.js +0 -1
- package/build/assets/active-backend-context-BZDG15C0.js +0 -2
- package/build/assets/agent-context-settings-DGWBBbcp.js +0 -1
- package/build/assets/agent-profiles-settings-DrkGdf4_.js +0 -1
- package/build/assets/agent-server-conversation-service.api-DK56YPTs.js +0 -86
- package/build/assets/agent-settings-DfcSgkLD.js +0 -2
- package/build/assets/agent-settings-Lrc5-twS.js +0 -1
- package/build/assets/alert-banner-BgDHhL7b.js +0 -1
- package/build/assets/api-error-message-BEIE_yD1.js +0 -1
- package/build/assets/api-key-entry-screen-DaZnOlVo.js +0 -1
- package/build/assets/app-settings-BG5NAUbC.js +0 -1
- package/build/assets/automation-detail-D4Hs831Z.js +0 -3
- package/build/assets/automation-export-n0X6FB0C.js +0 -2
- package/build/assets/automation-git-sync-CDrm8WV7.js +0 -1
- package/build/assets/automation-setup-route-CZCl4ONs.js +0 -1
- package/build/assets/automation-templates-DFF96AdL.js +0 -1
- package/build/assets/automations-list-Bl-oGOrV.js +0 -1
- package/build/assets/back-nav-button-H_ThtDA0.js +0 -1
- package/build/assets/backend-form-modal-CbCemvHt.js +0 -1
- package/build/assets/backend-not-configured-DP8KLNq_.js +0 -1
- package/build/assets/backend-synced-settings-badge-BBASWqsb.js +0 -1
- package/build/assets/badge-B-51h-SW.js +0 -1
- package/build/assets/base-modal-BbjycA8X.js +0 -1
- package/build/assets/bot-CGPCg03p.js +0 -1
- package/build/assets/brand-button-Blxv5nww.js +0 -1
- package/build/assets/browser-CuW0nWvh.js +0 -7
- package/build/assets/browser-tab-D5G0ORwt.js +0 -1
- package/build/assets/chat-send-button-BD2tii1r.js +0 -1
- package/build/assets/check-DSuS-lyr.js +0 -1
- package/build/assets/chevron-down-CgGcmtE2.js +0 -1
- package/build/assets/circle-check-CG5-NPw7.js +0 -1
- package/build/assets/circle-plus-check-toggle-ASbpB8vN.js +0 -1
- package/build/assets/cloud-funnel-analytics-GlCUG0gk.js +0 -1
- package/build/assets/cog-CZiR80uT.js +0 -1
- package/build/assets/combobox-caret-DvpEsh2O.js +0 -1
- package/build/assets/command-menu-DwUQzjYP.js +0 -1
- package/build/assets/condenser-settings-BptcoiLA.js +0 -1
- package/build/assets/confirmation-modal-CiEwxZAA.js +0 -1
- package/build/assets/context-menu-list-item-CdcamfM1.js +0 -1
- package/build/assets/conversation-DREHj4nT.js +0 -1
- package/build/assets/conversation-DotRfiDz.js +0 -90
- package/build/assets/conversation-panel-DREHj4nT.js +0 -1
- package/build/assets/conversation-state-store-DMLtlHbE.js +0 -1
- package/build/assets/conversation-store-Blc5xysY.js +0 -6
- package/build/assets/conversation-tab-empty-state-D-puECpY.js +0 -1
- package/build/assets/copy-to-clipboard-button-BGxcUbgy.js +0 -1
- package/build/assets/device-verify-CZJfWaJf.js +0 -1
- package/build/assets/dropdown-classes-tLhpwtxS.js +0 -1
- package/build/assets/entry.client-D8GnI6GZ.js +0 -2
- package/build/assets/enum-filter-dropdown-Fk8k60nk.js +0 -1
- package/build/assets/environment-switch-overlay-DeztVYuL.js +0 -1
- package/build/assets/extension-module-card-classes-Bo43vY5V.js +0 -1
- package/build/assets/extensions-hub-Cd6GCYzq.js +0 -1
- package/build/assets/extensions-navigation-C4sgZg-y.js +0 -1
- package/build/assets/external-link-C0UpBgsE.js +0 -1
- package/build/assets/file-text-C6WYtNdV.js +0 -1
- package/build/assets/files-tab-BW_qzyAm.js +0 -1
- package/build/assets/form-control-classes-CGXBLcn1.js +0 -1
- package/build/assets/format-model-name-BNPKVsIq.js +0 -1
- package/build/assets/format-relative-time-ZhQD4rsl.js +0 -1
- package/build/assets/git-provider-icon-CaQ1yLPi.js +0 -1
- package/build/assets/git-repo-dropdown-CgXR6M_E.js +0 -1
- package/build/assets/git-repo-dropdown-D2Uei3CO.js +0 -1
- package/build/assets/highlighted-source-view-C_YOp8Fo.js +0 -1
- package/build/assets/home-DNzzJcMP.js +0 -1
- package/build/assets/home-aCos-5vc.js +0 -1
- package/build/assets/home-store-DgzViC3f.js +0 -1
- package/build/assets/index-home-DNzzJcMP.js +0 -1
- package/build/assets/info-CLoC1LRo.js +0 -1
- package/build/assets/install-server-modal-D7zIqNKz.js +0 -1
- package/build/assets/kebab-menu-item-content-DERMdnDv.js +0 -1
- package/build/assets/launch-5PjKeLak.js +0 -1
- package/build/assets/list-todo-BF049YaY.js +0 -1
- package/build/assets/llm-not-configured-banner-BK9z5eS0.js +0 -27
- package/build/assets/llm-settings-BLAMK2tR.js +0 -1
- package/build/assets/llm-settings-BWsbarGM.js +0 -1
- package/build/assets/llm-subscription-service-SfnEV9Uc.js +0 -1
- package/build/assets/loader-circle-D7IagAyF.js +0 -1
- package/build/assets/loading-spinner-DBgXgra0.js +0 -1
- package/build/assets/manage-backends-modal-BTqNPhzc.js +0 -1
- package/build/assets/manifest-abebca3c.js +0 -1
- package/build/assets/manifest-subpage-layout-Rn-glaxV.js +0 -1
- package/build/assets/map-provider-BK4HnqYz.js +0 -1
- package/build/assets/markdown-renderer-Cp6DlHQN.js +0 -8
- package/build/assets/mcp-BC-Ixn4T.js +0 -9
- package/build/assets/mcp-marketplace-utils-BJWJgbB6.js +0 -1
- package/build/assets/messages-CzFKrzPG.js +0 -40
- package/build/assets/modal-body-BdKfD3Hl.js +0 -1
- package/build/assets/modal-classes-D5_b5vMi.js +0 -1
- package/build/assets/modal-close-button-objukxk_.js +0 -1
- package/build/assets/mouse-pointer-click-C_gXyLyD.js +0 -1
- package/build/assets/npm-CHVHV1MC.js +0 -1
- package/build/assets/onboarding-Diw0V51A.js +0 -1
- package/build/assets/onboarding-modal-Da4yHzsA.js +0 -1
- package/build/assets/organization-service.api-BztSy69u.js +0 -1
- package/build/assets/parse-git-remote-url-BkXN9jzl.js +0 -1
- package/build/assets/pencil-49avMHlD.js +0 -1
- package/build/assets/planner-tab-CJiSpNax.js +0 -1
- package/build/assets/plugins-management-service-lHdNKWNU.js +0 -1
- package/build/assets/plus-C0BagBpV.js +0 -1
- package/build/assets/profiles-service.api-BLr7FXec.js +0 -1
- package/build/assets/providers-CWXnb7S3.js +0 -1
- package/build/assets/proxy-DYDXxtje.js +0 -1
- package/build/assets/puzzle-Bt2B1rzf.js +0 -1
- package/build/assets/recommended-automations-launcher-CcFMfJRR.js +0 -1
- package/build/assets/refresh-cw-nmcesifB.js +0 -1
- package/build/assets/root-CT4t7apy.css +0 -1
- package/build/assets/root-DnRgLKpU.js +0 -2
- package/build/assets/root-layout-2L9tr-BN.js +0 -2
- package/build/assets/schema-field-C59lVZTA.js +0 -1
- package/build/assets/sdk-section-page-BbBEQQjq.js +0 -1
- package/build/assets/search-CYSDBczG.js +0 -1
- package/build/assets/secrets-service-BtsgYSlj.js +0 -1
- package/build/assets/secrets-settings-DJ0OKa4_.js +0 -1
- package/build/assets/segmented-toggle-DiVfTZuN.js +0 -1
- package/build/assets/settings-CDqL_Uqh.js +0 -1
- package/build/assets/settings-DcNPxz0v.js +0 -1
- package/build/assets/settings-dropdown-input-Ba1UN5Du.js +0 -1
- package/build/assets/settings-index-Cz2cKt2K.js +0 -1
- package/build/assets/settings-input-CWUEHHvS.js +0 -1
- package/build/assets/settings-list-classes-DdcLXDGn.js +0 -1
- package/build/assets/settings-modal-nEEK1Kh1.js +0 -1
- package/build/assets/settings-service.api-3yAUFcaP.js +0 -1
- package/build/assets/settings-switch-Dk9hChx1.js +0 -1
- package/build/assets/settings-utils-CxjtCSB3.js +0 -1
- package/build/assets/shared-conversation-DbAcrx3s.js +0 -1
- package/build/assets/shield-check-CiOTXxV2.js +0 -1
- package/build/assets/sidebar-layout-lrfPooIB.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-KERXfNu1.js +0 -1
- package/build/assets/sidebar-nav-link-B8lFD6Cb.js +0 -1
- package/build/assets/sidebar-store-u6pUpxJ7.js +0 -1
- package/build/assets/skill-card-pill-row-dGIUzr_b.js +0 -1
- package/build/assets/skill-icon-badge-kkOWZ89w.js +0 -1
- package/build/assets/skill-scope-DWN1PBPH.js +0 -1
- package/build/assets/skills-plugins-DFjH2Nq6.js +0 -1
- package/build/assets/skills-settings-DIHpl3ol.js +0 -2
- package/build/assets/sparkles-ntyMLnbj.js +0 -1
- package/build/assets/styled-tooltip-B6JXcsmL.js +0 -1
- package/build/assets/task-list-tab-aEJzEcHD.js +0 -1
- package/build/assets/terminal-Dch7Ty5K.js +0 -3
- package/build/assets/toggle-switch-B2MLKsgt.js +0 -1
- package/build/assets/trash-2-yZnDM4Ji.js +0 -1
- package/build/assets/typography-DB5HoCk0.js +0 -1
- package/build/assets/usage-tab-DrEtBmBT.js +0 -1
- package/build/assets/use-acp-credential-form-c8KXAa8A.js +0 -1
- package/build/assets/use-activate-agent-profile-B0p34N3q.js +0 -1
- package/build/assets/use-agent-profiles-CPIc6wLH.js +0 -1
- package/build/assets/use-can-manage-org-profiles-Dz_8Eqkv.js +0 -1
- package/build/assets/use-cloud-current-user-id-DvUVqCle.js +0 -1
- package/build/assets/use-config-C3PO4TBw.js +0 -1
- package/build/assets/use-create-conversation-DVrA_uLD.js +0 -1
- package/build/assets/use-create-secret-DbBIpaCR.js +0 -1
- package/build/assets/use-get-secrets-6PBitf54.js +0 -1
- package/build/assets/use-has-permission-CQ31Cl8j.js +0 -1
- package/build/assets/use-is-authed-2UrDIziV.js +0 -1
- package/build/assets/use-is-creating-conversation-BvYpmb3v.js +0 -1
- package/build/assets/use-launch-skill-in-chat-COnDpxCQ.js +0 -1
- package/build/assets/use-llm-profiles-diZS4FiN.js +0 -1
- package/build/assets/use-manifest-capabilities-HIWCtIUm.js +0 -1
- package/build/assets/use-onboarding-completion-Bs8PcXik.js +0 -1
- package/build/assets/use-plugins-marketplace-BCuNLFsr.js +0 -1
- package/build/assets/use-save-agent-profile-BaMNSpBV.js +0 -1
- package/build/assets/use-save-settings-BahvC2Gw.js +0 -1
- package/build/assets/use-settings-C6ZxpBDX.js +0 -1
- package/build/assets/use-settings-nav-items-Bqn69Ggw.js +0 -16
- package/build/assets/use-tracking-Bhu7gk2y.js +0 -3
- package/build/assets/use-user-conversation-BkNXpXrd.js +0 -1
- package/build/assets/useInfiniteQuery-c_OmS3lK.js +0 -1
- package/build/assets/useMutation-6ZsQCqAn.js +0 -1
- package/build/assets/useQueries-xDrGlTO_.js +0 -1
- package/build/assets/useQuery-Bs5NFz2s.js +0 -1
- package/build/assets/utils-DUD5ScdA.js +0 -1
- package/build/assets/vendor~browser-B-fae1JU.js +0 -47
- package/build/assets/vendor~entry.client-BFE7Llz9.js +0 -1
- package/build/assets/vendor~entry.client-BaKt_PIp.js +0 -9
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js +0 -186
- package/build/assets/vendor~files-tab-B6POTS66.js +0 -11
- package/build/assets/vendor~index-home~home~conversation-panel~conversation-53Q_U6uP.js +0 -13
- package/build/assets/vendor~index-home~home~conversation-panel~conversation~alert-banner-B3qC_oj8.js +0 -1
- package/build/assets/vendor~root-layout-DeQACFVA.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation-bv7ooVgH.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-e8pX05xf.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-BvS6PCK2.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~hjcjabwg-DOPLJMH9.js +0 -48
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BOVIFA_g.js +0 -73
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js +0 -7465
- package/build/assets/verification-settings-COueVXmM.js +0 -1
- package/build/assets/wrench-C95ujnYo.js +0 -1
- package/build/assets/x-86ZCfxKY.js +0 -1
- package/build/assets/zap-DRa-r-Tf.js +0 -1
- 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/tips/random-tip.cjs +0 -2
- package/dist/components/features/tips/random-tip.cjs.map +0 -1
- package/dist/components/features/tips/random-tip.d.ts +0 -2
- 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/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/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/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/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.d.ts +0 -7
- package/dist/utils/tips.js +0 -45
- package/dist/utils/tips.js.map +0 -1
- package/dist/utils/workspace-relative-path.cjs +0 -2
- package/dist/utils/workspace-relative-path.cjs.map +0 -1
- package/dist/utils/workspace-relative-path.d.ts +0 -10
- package/dist/utils/workspace-relative-path.js +0 -22
- package/dist/utils/workspace-relative-path.js.map +0 -1
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-rfV8mQ9m.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-link.cjs","names":[],"sources":["../../src/ui/help-link.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"#/utils/utils\";\n\nconst helpLinkVariants = cva(\"\", {\n variants: {\n size: {\n default: \"text-xs\",\n settings: \"text-sm text-[var(--oh-muted)] font-normal leading-5.5\",\n },\n linkColor: {\n default: \"\",\n white: \"text-white\",\n },\n },\n defaultVariants: {\n size: \"default\",\n linkColor: \"default\",\n },\n});\n\ninterface HelpLinkProps extends VariantProps<typeof helpLinkVariants> {\n testId: string;\n text: string;\n linkText: string;\n href: string;\n suffix?: string;\n className?: string;\n linkTextClassName?: string;\n suffixClassName?: string;\n}\n\nexport function HelpLink({\n testId,\n text,\n linkText,\n href,\n suffix,\n size,\n linkColor,\n className,\n linkTextClassName,\n suffixClassName,\n}: HelpLinkProps) {\n return (\n <p\n data-testid={testId}\n className={cn(helpLinkVariants({ size }), className)}\n >\n {text}{\" \"}\n <a\n href={href}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n className={cn(\n \"underline underline-offset-2\",\n helpLinkVariants({ size, linkColor }),\n linkTextClassName,\n )}\n >\n {linkText}\n </a>\n {suffix && <span className={suffixClassName}>{suffix}</span>}\n </p>\n );\n}\n"],"mappings":"2LAGA,IAAM,EAAmB,EAAA,IAAI,GAAI,CAC/B,SAAU,CACR,KAAM,CACJ,QAAS,UACT,SAAU,wDACZ,EACA,UAAW,CACT,QAAS,GACT,MAAO,YACT,CACF,EACA,gBAAiB,CACf,KAAM,UACN,UAAW,SACb,CACF,CAAC,
|
|
1
|
+
{"version":3,"file":"help-link.cjs","names":[],"sources":["../../src/ui/help-link.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"#/utils/utils\";\n\nconst helpLinkVariants = cva(\"\", {\n variants: {\n size: {\n default: \"text-xs\",\n settings: \"text-sm text-[var(--oh-muted)] font-normal leading-5.5\",\n },\n linkColor: {\n default: \"\",\n white: \"text-white\",\n },\n },\n defaultVariants: {\n size: \"default\",\n linkColor: \"default\",\n },\n});\n\ninterface HelpLinkProps extends VariantProps<typeof helpLinkVariants> {\n testId: string;\n text: string;\n linkText: string;\n href: string;\n suffix?: string;\n /** Optional second link rendered after the suffix. */\n suffixLinkText?: string;\n suffixLinkHref?: string;\n /** Trailing text rendered after the second link (e.g. a period). */\n trailing?: string;\n className?: string;\n linkTextClassName?: string;\n suffixClassName?: string;\n}\n\nexport function HelpLink({\n testId,\n text,\n linkText,\n href,\n suffix,\n suffixLinkText,\n suffixLinkHref,\n trailing,\n size,\n linkColor,\n className,\n linkTextClassName,\n suffixClassName,\n}: HelpLinkProps) {\n return (\n <p\n data-testid={testId}\n className={cn(helpLinkVariants({ size }), className)}\n >\n {text}{\" \"}\n <a\n href={href}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n className={cn(\n \"underline underline-offset-2\",\n helpLinkVariants({ size, linkColor }),\n linkTextClassName,\n )}\n >\n {linkText}\n </a>\n {suffix && <span className={suffixClassName}>{suffix}</span>}\n {suffixLinkText && suffixLinkHref ? (\n <>\n {\" \"}\n <a\n href={suffixLinkHref}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n className={cn(\n \"underline underline-offset-2\",\n helpLinkVariants({ size, linkColor }),\n linkTextClassName,\n )}\n >\n {suffixLinkText}\n </a>\n {trailing}\n </>\n ) : null}\n </p>\n );\n}\n"],"mappings":"2LAGA,IAAM,EAAmB,EAAA,IAAI,GAAI,CAC/B,SAAU,CACR,KAAM,CACJ,QAAS,UACT,SAAU,wDACZ,EACA,UAAW,CACT,QAAS,GACT,MAAO,YACT,CACF,EACA,gBAAiB,CACf,KAAM,UACN,UAAW,SACb,CACF,CAAC,EAkBD,SAAgB,EAAS,CACvB,SACA,OACA,WACA,OACA,SACA,iBACA,iBACA,WACA,OACA,YACA,YACA,oBACA,mBACgB,CAChB,OACE,EAAA,EAAA,MAAC,IAAD,CACE,cAAa,EACb,UAAW,EAAA,GAAG,EAAiB,CAAE,MAAK,CAAC,EAAG,CAAS,WAFrD,CAIG,EAAM,KACP,EAAA,EAAA,KAAC,IAAD,CACQ,OACN,IAAI,sBACJ,OAAO,SACP,UAAW,EAAA,GACT,+BACA,EAAiB,CAAE,OAAM,WAAU,CAAC,EACpC,CACF,WAEC,CACA,CAAA,EACF,IAAU,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,WAAkB,CAAa,CAAA,EAC1D,GAAkB,GACjB,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,CACG,KACD,EAAA,EAAA,KAAC,IAAD,CACE,KAAM,EACN,IAAI,sBACJ,OAAO,SACP,UAAW,EAAA,GACT,+BACA,EAAiB,CAAE,OAAM,WAAU,CAAC,EACpC,CACF,WAEC,CACA,CAAA,EACF,CACD,CAAA,CAAA,EACA,IACH,GAEP"}
|
package/dist/ui/help-link.d.ts
CHANGED
|
@@ -9,9 +9,14 @@ interface HelpLinkProps extends VariantProps<typeof helpLinkVariants> {
|
|
|
9
9
|
linkText: string;
|
|
10
10
|
href: string;
|
|
11
11
|
suffix?: string;
|
|
12
|
+
/** Optional second link rendered after the suffix. */
|
|
13
|
+
suffixLinkText?: string;
|
|
14
|
+
suffixLinkHref?: string;
|
|
15
|
+
/** Trailing text rendered after the second link (e.g. a period). */
|
|
16
|
+
trailing?: string;
|
|
12
17
|
className?: string;
|
|
13
18
|
linkTextClassName?: string;
|
|
14
19
|
suffixClassName?: string;
|
|
15
20
|
}
|
|
16
|
-
export declare function HelpLink({ testId, text, linkText, href, suffix, size, linkColor, className, linkTextClassName, suffixClassName, }: HelpLinkProps): import("react").JSX.Element;
|
|
21
|
+
export declare function HelpLink({ testId, text, linkText, href, suffix, suffixLinkText, suffixLinkHref, trailing, size, linkColor, className, linkTextClassName, suffixClassName, }: HelpLinkProps): import("react").JSX.Element;
|
|
17
22
|
export {};
|
package/dist/ui/help-link.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { cn as e } from "../utils/utils.js";
|
|
2
2
|
import { cva as t } from "../node_modules/class-variance-authority/dist/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
4
4
|
//#region src/ui/help-link.tsx
|
|
5
|
-
var
|
|
5
|
+
var a = t("", {
|
|
6
6
|
variants: {
|
|
7
7
|
size: {
|
|
8
8
|
default: "text-xs",
|
|
@@ -18,31 +18,45 @@ var i = t("", {
|
|
|
18
18
|
linkColor: "default"
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
function
|
|
22
|
-
return /* @__PURE__ */
|
|
21
|
+
function o({ testId: t, text: o, linkText: s, href: c, suffix: l, suffixLinkText: u, suffixLinkHref: d, trailing: f, size: p, linkColor: m, className: h, linkTextClassName: g, suffixClassName: _ }) {
|
|
22
|
+
return /* @__PURE__ */ i("p", {
|
|
23
23
|
"data-testid": t,
|
|
24
|
-
className: e(
|
|
24
|
+
className: e(a({ size: p }), h),
|
|
25
25
|
children: [
|
|
26
|
-
|
|
26
|
+
o,
|
|
27
27
|
" ",
|
|
28
|
-
/* @__PURE__ */
|
|
29
|
-
href:
|
|
28
|
+
/* @__PURE__ */ r("a", {
|
|
29
|
+
href: c,
|
|
30
30
|
rel: "noreferrer noopener",
|
|
31
31
|
target: "_blank",
|
|
32
|
-
className: e("underline underline-offset-2",
|
|
33
|
-
size:
|
|
34
|
-
linkColor:
|
|
35
|
-
}),
|
|
36
|
-
children:
|
|
32
|
+
className: e("underline underline-offset-2", a({
|
|
33
|
+
size: p,
|
|
34
|
+
linkColor: m
|
|
35
|
+
}), g),
|
|
36
|
+
children: s
|
|
37
37
|
}),
|
|
38
|
-
|
|
39
|
-
className:
|
|
40
|
-
children:
|
|
41
|
-
})
|
|
38
|
+
l && /* @__PURE__ */ r("span", {
|
|
39
|
+
className: _,
|
|
40
|
+
children: l
|
|
41
|
+
}),
|
|
42
|
+
u && d ? /* @__PURE__ */ i(n, { children: [
|
|
43
|
+
" ",
|
|
44
|
+
/* @__PURE__ */ r("a", {
|
|
45
|
+
href: d,
|
|
46
|
+
rel: "noreferrer noopener",
|
|
47
|
+
target: "_blank",
|
|
48
|
+
className: e("underline underline-offset-2", a({
|
|
49
|
+
size: p,
|
|
50
|
+
linkColor: m
|
|
51
|
+
}), g),
|
|
52
|
+
children: u
|
|
53
|
+
}),
|
|
54
|
+
f
|
|
55
|
+
] }) : null
|
|
42
56
|
]
|
|
43
57
|
});
|
|
44
58
|
}
|
|
45
59
|
//#endregion
|
|
46
|
-
export {
|
|
60
|
+
export { o as HelpLink };
|
|
47
61
|
|
|
48
62
|
//# sourceMappingURL=help-link.js.map
|
package/dist/ui/help-link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-link.js","names":[],"sources":["../../src/ui/help-link.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"#/utils/utils\";\n\nconst helpLinkVariants = cva(\"\", {\n variants: {\n size: {\n default: \"text-xs\",\n settings: \"text-sm text-[var(--oh-muted)] font-normal leading-5.5\",\n },\n linkColor: {\n default: \"\",\n white: \"text-white\",\n },\n },\n defaultVariants: {\n size: \"default\",\n linkColor: \"default\",\n },\n});\n\ninterface HelpLinkProps extends VariantProps<typeof helpLinkVariants> {\n testId: string;\n text: string;\n linkText: string;\n href: string;\n suffix?: string;\n className?: string;\n linkTextClassName?: string;\n suffixClassName?: string;\n}\n\nexport function HelpLink({\n testId,\n text,\n linkText,\n href,\n suffix,\n size,\n linkColor,\n className,\n linkTextClassName,\n suffixClassName,\n}: HelpLinkProps) {\n return (\n <p\n data-testid={testId}\n className={cn(helpLinkVariants({ size }), className)}\n >\n {text}{\" \"}\n <a\n href={href}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n className={cn(\n \"underline underline-offset-2\",\n helpLinkVariants({ size, linkColor }),\n linkTextClassName,\n )}\n >\n {linkText}\n </a>\n {suffix && <span className={suffixClassName}>{suffix}</span>}\n </p>\n );\n}\n"],"mappings":";;;;AAGA,IAAM,IAAmB,EAAI,IAAI;CAC/B,UAAU;EACR,MAAM;GACJ,SAAS;GACT,UAAU;EACZ;EACA,WAAW;GACT,SAAS;GACT,OAAO;EACT;CACF;CACA,iBAAiB;EACf,MAAM;EACN,WAAW;CACb;AACF,CAAC;
|
|
1
|
+
{"version":3,"file":"help-link.js","names":[],"sources":["../../src/ui/help-link.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"#/utils/utils\";\n\nconst helpLinkVariants = cva(\"\", {\n variants: {\n size: {\n default: \"text-xs\",\n settings: \"text-sm text-[var(--oh-muted)] font-normal leading-5.5\",\n },\n linkColor: {\n default: \"\",\n white: \"text-white\",\n },\n },\n defaultVariants: {\n size: \"default\",\n linkColor: \"default\",\n },\n});\n\ninterface HelpLinkProps extends VariantProps<typeof helpLinkVariants> {\n testId: string;\n text: string;\n linkText: string;\n href: string;\n suffix?: string;\n /** Optional second link rendered after the suffix. */\n suffixLinkText?: string;\n suffixLinkHref?: string;\n /** Trailing text rendered after the second link (e.g. a period). */\n trailing?: string;\n className?: string;\n linkTextClassName?: string;\n suffixClassName?: string;\n}\n\nexport function HelpLink({\n testId,\n text,\n linkText,\n href,\n suffix,\n suffixLinkText,\n suffixLinkHref,\n trailing,\n size,\n linkColor,\n className,\n linkTextClassName,\n suffixClassName,\n}: HelpLinkProps) {\n return (\n <p\n data-testid={testId}\n className={cn(helpLinkVariants({ size }), className)}\n >\n {text}{\" \"}\n <a\n href={href}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n className={cn(\n \"underline underline-offset-2\",\n helpLinkVariants({ size, linkColor }),\n linkTextClassName,\n )}\n >\n {linkText}\n </a>\n {suffix && <span className={suffixClassName}>{suffix}</span>}\n {suffixLinkText && suffixLinkHref ? (\n <>\n {\" \"}\n <a\n href={suffixLinkHref}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n className={cn(\n \"underline underline-offset-2\",\n helpLinkVariants({ size, linkColor }),\n linkTextClassName,\n )}\n >\n {suffixLinkText}\n </a>\n {trailing}\n </>\n ) : null}\n </p>\n );\n}\n"],"mappings":";;;;AAGA,IAAM,IAAmB,EAAI,IAAI;CAC/B,UAAU;EACR,MAAM;GACJ,SAAS;GACT,UAAU;EACZ;EACA,WAAW;GACT,SAAS;GACT,OAAO;EACT;CACF;CACA,iBAAiB;EACf,MAAM;EACN,WAAW;CACb;AACF,CAAC;AAkBD,SAAgB,EAAS,EACvB,WACA,SACA,aACA,SACA,WACA,mBACA,mBACA,aACA,SACA,cACA,cACA,sBACA,sBACgB;CAChB,OACE,kBAAC,KAAD;EACE,eAAa;EACb,WAAW,EAAG,EAAiB,EAAE,QAAK,CAAC,GAAG,CAAS;YAFrD;GAIG;GAAM;GACP,kBAAC,KAAD;IACQ;IACN,KAAI;IACJ,QAAO;IACP,WAAW,EACT,gCACA,EAAiB;KAAE;KAAM;IAAU,CAAC,GACpC,CACF;cAEC;GACA,CAAA;GACF,KAAU,kBAAC,QAAD;IAAM,WAAW;cAAkB;GAAa,CAAA;GAC1D,KAAkB,IACjB,kBAAA,GAAA,EAAA,UAAA;IACG;IACD,kBAAC,KAAD;KACE,MAAM;KACN,KAAI;KACJ,QAAO;KACP,WAAW,EACT,gCACA,EAAiB;MAAE;MAAM;KAAU,CAAC,GACpC,CACF;eAEC;IACA,CAAA;IACF;GACD,EAAA,CAAA,IACA;EACH;;AAEP"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AcpAuthStatus } from "#/hooks/query/use-acp-auth-status";
|
|
2
|
+
/**
|
|
3
|
+
* Resolved display state for the ACP auth banner.
|
|
4
|
+
*
|
|
5
|
+
* - ``"signed-in"`` — the host-login probe confirmed a session (native backend).
|
|
6
|
+
* - ``"checking"`` — the first probe is still in flight.
|
|
7
|
+
* - ``"configured"`` — the probe can't confirm a login (e.g. a container with no
|
|
8
|
+
* interactive CLI, or a cloud backend where the probe doesn't run), but a
|
|
9
|
+
* credential for the provider exists in the active backend's secret store.
|
|
10
|
+
* - ``"none"`` — no confirmed login and no stored credential; show nothing.
|
|
11
|
+
*/
|
|
12
|
+
export type AcpAuthDisplay = "signed-in" | "checking" | "configured" | "none";
|
|
13
|
+
interface AcpAuthDisplayInput {
|
|
14
|
+
/** Result of the host-login probe (only meaningful on a native backend). */
|
|
15
|
+
status: AcpAuthStatus;
|
|
16
|
+
/** True while the first probe for this provider is in flight. */
|
|
17
|
+
isChecking: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Whether a credential for the provider exists in the active backend's secret
|
|
20
|
+
* store. Unlike {@link status}, this signal is available on Docker and cloud
|
|
21
|
+
* backends, so it can convey an accurate state where the probe goes silent.
|
|
22
|
+
*/
|
|
23
|
+
credentialsConfigured: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Decide what the ACP auth banner should show, given the (host-only) login
|
|
27
|
+
* probe and the backend-truthful "a credential is stored" signal.
|
|
28
|
+
*
|
|
29
|
+
* Precedence preserves the existing banner behavior — a probe-confirmed login
|
|
30
|
+
* wins, then the in-flight spinner — and only adds ``"configured"`` in the gap
|
|
31
|
+
* that previously rendered nothing. A stored credential never reports as
|
|
32
|
+
* ``"signed-in"``: only the probe can confirm an actual host login. See #1244.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveAcpAuthDisplay({ status, isChecking, credentialsConfigured, }: AcpAuthDisplayInput): AcpAuthDisplay;
|
|
35
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/extensions/skills/index.cjs");new Map(e.default.map(e=>[e.name,e]));
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/extensions/skills/index.cjs"),t=require("../components/features/manifest/manifest-icons.cjs");var n=new Map(e.default.map(e=>[e.name,e]));function r(e){let n=e.icon;return n?t.MANIFEST_ICON_BY_SLUG[n]??null:null}function i(e){return Object.keys(e.requires.integrations)}function a(e){return Object.entries(e.requires.integrations).filter(([,e])=>e.required!==!1).map(([e])=>e)}function o(e){return n.get(e.skill??e.id)?.triggers[0]??null}function s(e){return o(e)??`Set up the ${e.name} automation`}exports.getAutomationIcon=r,exports.getAutomationLaunchPrompt=s,exports.getIntegrationIds=i,exports.getRequiredIntegrationIds=a;
|
|
2
2
|
//# sourceMappingURL=automation-catalog.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-catalog.cjs","names":[],"sources":["../../src/utils/automation-catalog.ts"],"sourcesContent":["import type { RecommendedAutomation } from \"@openhands/extensions/automations\";\nimport {\n SKILLS_CATALOG,\n type SkillCatalogEntry,\n} from \"@openhands/extensions/skills\";\n\n/**\n * Reading a published automation catalog entry.\n *\n * The catalog states each thing once and leaves the rest to be derived, so an\n * entry no longer carries its own launch command or a flat list of required\n * integration ids. This module is the single place that performs those\n * derivations, so the components consuming the catalog stay unaware of how it\n * is shaped.\n */\n\nconst SKILL_BY_NAME = new Map<string, SkillCatalogEntry>(\n SKILLS_CATALOG.map((skill) => [skill.name, skill]),\n);\n\n/** Every integration the entry declares, in declaration order. */\nexport function getIntegrationIds(automation: RecommendedAutomation): string[] {\n return Object.keys(automation.requires.integrations);\n}\n\n/**\n * The integrations that gate this automation. One marked `required: false` can\n * be connected later, during setup, so it is still worth showing on the card\n * but must never stand between the user and a launch.\n */\nexport function getRequiredIntegrationIds(\n automation: RecommendedAutomation,\n): string[] {\n return Object.entries(automation.requires.integrations)\n .filter(([, requirement]) => requirement.required !== false)\n .map(([id]) => id);\n}\n\n/**\n * The command that invokes this automation's skill, or null when that skill is\n * invoked by description instead.\n *\n * The command is declared once, in the owning skill's own `triggers`; the\n * catalog names that skill only where it differs from the entry id.\n */\nexport function findAutomationCommand(\n automation: Pick<RecommendedAutomation, \"id\" | \"skill\">,\n): string | null {\n const skill = SKILL_BY_NAME.get(automation.skill ?? automation.id);\n return skill?.triggers[0] ?? null;\n}\n\n/**\n * What launching an automation card hands to the agent.\n *\n * The resolved command is passed through as-is: API routing (host, auth) is\n * discovered by the agent at runtime from `<RUNTIME_SERVICES>` in the system\n * prompt, and the skills themselves carry the instructions for reading that\n * block. An automation whose skill declares no command has the request spelled\n * out instead. Both are instructions to the agent rather than user-facing UI\n * copy, so they are intentionally in English and not localized.\n */\nexport function getAutomationLaunchPrompt(\n automation: RecommendedAutomation,\n): string {\n return (\n findAutomationCommand(automation) ??\n `Set up the ${automation.name} automation`\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"automation-catalog.cjs","names":[],"sources":["../../src/utils/automation-catalog.ts"],"sourcesContent":["import type { RecommendedAutomation } from \"@openhands/extensions/automations\";\nimport {\n SKILLS_CATALOG,\n type SkillCatalogEntry,\n} from \"@openhands/extensions/skills\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { MANIFEST_ICON_BY_SLUG } from \"#/components/features/manifest/manifest-icons\";\n\n/**\n * Reading a published automation catalog entry.\n *\n * The catalog states each thing once and leaves the rest to be derived, so an\n * entry no longer carries its own launch command or a flat list of required\n * integration ids. This module is the single place that performs those\n * derivations, so the components consuming the catalog stay unaware of how it\n * is shaped.\n */\n\nconst SKILL_BY_NAME = new Map<string, SkillCatalogEntry>(\n SKILLS_CATALOG.map((skill) => [skill.name, skill]),\n);\n\n/**\n * The glyph a card shows in place of its integration logos, or null when it\n * has none to show and the logos speak for it.\n *\n * An entry naming the service it talks to is recognised by that service's\n * logo; one whose identity is the work itself declares a slug instead. The\n * lookup is a guard as much as a mapping — the catalog is published elsewhere,\n * so a slug this host has no artwork for falls back rather than rendering\n * nothing.\n */\nexport function getAutomationIcon(\n automation: RecommendedAutomation,\n): LucideIcon | null {\n const slug = automation.icon;\n if (!slug) return null;\n return (\n (MANIFEST_ICON_BY_SLUG as Record<string, LucideIcon | undefined>)[slug] ??\n null\n );\n}\n\n/** Every integration the entry declares, in declaration order. */\nexport function getIntegrationIds(automation: RecommendedAutomation): string[] {\n return Object.keys(automation.requires.integrations);\n}\n\n/**\n * The integrations that gate this automation. One marked `required: false` can\n * be connected later, during setup, so it is still worth showing on the card\n * but must never stand between the user and a launch.\n */\nexport function getRequiredIntegrationIds(\n automation: RecommendedAutomation,\n): string[] {\n return Object.entries(automation.requires.integrations)\n .filter(([, requirement]) => requirement.required !== false)\n .map(([id]) => id);\n}\n\n/**\n * The command that invokes this automation's skill, or null when that skill is\n * invoked by description instead.\n *\n * The command is declared once, in the owning skill's own `triggers`; the\n * catalog names that skill only where it differs from the entry id.\n */\nexport function findAutomationCommand(\n automation: Pick<RecommendedAutomation, \"id\" | \"skill\">,\n): string | null {\n const skill = SKILL_BY_NAME.get(automation.skill ?? automation.id);\n return skill?.triggers[0] ?? null;\n}\n\n/**\n * What launching an automation card hands to the agent.\n *\n * The resolved command is passed through as-is: API routing (host, auth) is\n * discovered by the agent at runtime from `<RUNTIME_SERVICES>` in the system\n * prompt, and the skills themselves carry the instructions for reading that\n * block. An automation whose skill declares no command has the request spelled\n * out instead. Both are instructions to the agent rather than user-facing UI\n * copy, so they are intentionally in English and not localized.\n */\nexport function getAutomationLaunchPrompt(\n automation: RecommendedAutomation,\n): string {\n return (\n findAutomationCommand(automation) ??\n `Set up the ${automation.name} automation`\n );\n}\n"],"mappings":"uLAkBA,IAAM,EAAgB,IAAI,IACxB,EAAA,QAAe,IAAK,GAAU,CAAC,EAAM,KAAM,CAAK,CAAC,CACnD,EAYA,SAAgB,EACd,EACmB,CACnB,IAAM,EAAO,EAAW,KAExB,OADK,EAEF,EAAA,sBAAiE,IAClE,KAHgB,IAKpB,CAGA,SAAgB,EAAkB,EAA6C,CAC7E,OAAO,OAAO,KAAK,EAAW,SAAS,YAAY,CACrD,CAOA,SAAgB,EACd,EACU,CACV,OAAO,OAAO,QAAQ,EAAW,SAAS,YAAY,EACnD,QAAQ,EAAG,KAAiB,EAAY,WAAa,EAAK,EAC1D,KAAK,CAAC,KAAQ,CAAE,CACrB,CASA,SAAgB,EACd,EACe,CAEf,OADc,EAAc,IAAI,EAAW,OAAS,EAAW,EACxD,GAAO,SAAS,IAAM,IAC/B,CAYA,SAAgB,EACd,EACQ,CACR,OACE,EAAsB,CAAU,GAChC,cAAc,EAAW,KAAK,YAElC"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { RecommendedAutomation } from "@openhands/extensions/automations";
|
|
2
|
+
import type { LucideIcon } from "lucide-react";
|
|
3
|
+
/**
|
|
4
|
+
* The glyph a card shows in place of its integration logos, or null when it
|
|
5
|
+
* has none to show and the logos speak for it.
|
|
6
|
+
*
|
|
7
|
+
* An entry naming the service it talks to is recognised by that service's
|
|
8
|
+
* logo; one whose identity is the work itself declares a slug instead. The
|
|
9
|
+
* lookup is a guard as much as a mapping — the catalog is published elsewhere,
|
|
10
|
+
* so a slug this host has no artwork for falls back rather than rendering
|
|
11
|
+
* nothing.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getAutomationIcon(automation: RecommendedAutomation): LucideIcon | null;
|
|
2
14
|
/** Every integration the entry declares, in declaration order. */
|
|
3
15
|
export declare function getIntegrationIds(automation: RecommendedAutomation): string[];
|
|
4
16
|
/**
|
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
import e from "../node_modules/@openhands/extensions/skills/index.js";
|
|
2
|
-
|
|
2
|
+
import { MANIFEST_ICON_BY_SLUG as t } from "../components/features/manifest/manifest-icons.js";
|
|
3
|
+
//#region src/utils/automation-catalog.ts
|
|
4
|
+
var n = new Map(e.map((e) => [e.name, e]));
|
|
5
|
+
function r(e) {
|
|
6
|
+
let n = e.icon;
|
|
7
|
+
return n ? t[n] ?? null : null;
|
|
8
|
+
}
|
|
9
|
+
function i(e) {
|
|
10
|
+
return Object.keys(e.requires.integrations);
|
|
11
|
+
}
|
|
12
|
+
function a(e) {
|
|
13
|
+
return Object.entries(e.requires.integrations).filter(([, e]) => e.required !== !1).map(([e]) => e);
|
|
14
|
+
}
|
|
15
|
+
function o(e) {
|
|
16
|
+
return n.get(e.skill ?? e.id)?.triggers[0] ?? null;
|
|
17
|
+
}
|
|
18
|
+
function s(e) {
|
|
19
|
+
return o(e) ?? `Set up the ${e.name} automation`;
|
|
20
|
+
}
|
|
3
21
|
//#endregion
|
|
22
|
+
export { r as getAutomationIcon, s as getAutomationLaunchPrompt, i as getIntegrationIds, a as getRequiredIntegrationIds };
|
|
4
23
|
|
|
5
24
|
//# sourceMappingURL=automation-catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-catalog.js","names":[],"sources":["../../src/utils/automation-catalog.ts"],"sourcesContent":["import type { RecommendedAutomation } from \"@openhands/extensions/automations\";\nimport {\n SKILLS_CATALOG,\n type SkillCatalogEntry,\n} from \"@openhands/extensions/skills\";\n\n/**\n * Reading a published automation catalog entry.\n *\n * The catalog states each thing once and leaves the rest to be derived, so an\n * entry no longer carries its own launch command or a flat list of required\n * integration ids. This module is the single place that performs those\n * derivations, so the components consuming the catalog stay unaware of how it\n * is shaped.\n */\n\nconst SKILL_BY_NAME = new Map<string, SkillCatalogEntry>(\n SKILLS_CATALOG.map((skill) => [skill.name, skill]),\n);\n\n/** Every integration the entry declares, in declaration order. */\nexport function getIntegrationIds(automation: RecommendedAutomation): string[] {\n return Object.keys(automation.requires.integrations);\n}\n\n/**\n * The integrations that gate this automation. One marked `required: false` can\n * be connected later, during setup, so it is still worth showing on the card\n * but must never stand between the user and a launch.\n */\nexport function getRequiredIntegrationIds(\n automation: RecommendedAutomation,\n): string[] {\n return Object.entries(automation.requires.integrations)\n .filter(([, requirement]) => requirement.required !== false)\n .map(([id]) => id);\n}\n\n/**\n * The command that invokes this automation's skill, or null when that skill is\n * invoked by description instead.\n *\n * The command is declared once, in the owning skill's own `triggers`; the\n * catalog names that skill only where it differs from the entry id.\n */\nexport function findAutomationCommand(\n automation: Pick<RecommendedAutomation, \"id\" | \"skill\">,\n): string | null {\n const skill = SKILL_BY_NAME.get(automation.skill ?? automation.id);\n return skill?.triggers[0] ?? null;\n}\n\n/**\n * What launching an automation card hands to the agent.\n *\n * The resolved command is passed through as-is: API routing (host, auth) is\n * discovered by the agent at runtime from `<RUNTIME_SERVICES>` in the system\n * prompt, and the skills themselves carry the instructions for reading that\n * block. An automation whose skill declares no command has the request spelled\n * out instead. Both are instructions to the agent rather than user-facing UI\n * copy, so they are intentionally in English and not localized.\n */\nexport function getAutomationLaunchPrompt(\n automation: RecommendedAutomation,\n): string {\n return (\n findAutomationCommand(automation) ??\n `Set up the ${automation.name} automation`\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"automation-catalog.js","names":[],"sources":["../../src/utils/automation-catalog.ts"],"sourcesContent":["import type { RecommendedAutomation } from \"@openhands/extensions/automations\";\nimport {\n SKILLS_CATALOG,\n type SkillCatalogEntry,\n} from \"@openhands/extensions/skills\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { MANIFEST_ICON_BY_SLUG } from \"#/components/features/manifest/manifest-icons\";\n\n/**\n * Reading a published automation catalog entry.\n *\n * The catalog states each thing once and leaves the rest to be derived, so an\n * entry no longer carries its own launch command or a flat list of required\n * integration ids. This module is the single place that performs those\n * derivations, so the components consuming the catalog stay unaware of how it\n * is shaped.\n */\n\nconst SKILL_BY_NAME = new Map<string, SkillCatalogEntry>(\n SKILLS_CATALOG.map((skill) => [skill.name, skill]),\n);\n\n/**\n * The glyph a card shows in place of its integration logos, or null when it\n * has none to show and the logos speak for it.\n *\n * An entry naming the service it talks to is recognised by that service's\n * logo; one whose identity is the work itself declares a slug instead. The\n * lookup is a guard as much as a mapping — the catalog is published elsewhere,\n * so a slug this host has no artwork for falls back rather than rendering\n * nothing.\n */\nexport function getAutomationIcon(\n automation: RecommendedAutomation,\n): LucideIcon | null {\n const slug = automation.icon;\n if (!slug) return null;\n return (\n (MANIFEST_ICON_BY_SLUG as Record<string, LucideIcon | undefined>)[slug] ??\n null\n );\n}\n\n/** Every integration the entry declares, in declaration order. */\nexport function getIntegrationIds(automation: RecommendedAutomation): string[] {\n return Object.keys(automation.requires.integrations);\n}\n\n/**\n * The integrations that gate this automation. One marked `required: false` can\n * be connected later, during setup, so it is still worth showing on the card\n * but must never stand between the user and a launch.\n */\nexport function getRequiredIntegrationIds(\n automation: RecommendedAutomation,\n): string[] {\n return Object.entries(automation.requires.integrations)\n .filter(([, requirement]) => requirement.required !== false)\n .map(([id]) => id);\n}\n\n/**\n * The command that invokes this automation's skill, or null when that skill is\n * invoked by description instead.\n *\n * The command is declared once, in the owning skill's own `triggers`; the\n * catalog names that skill only where it differs from the entry id.\n */\nexport function findAutomationCommand(\n automation: Pick<RecommendedAutomation, \"id\" | \"skill\">,\n): string | null {\n const skill = SKILL_BY_NAME.get(automation.skill ?? automation.id);\n return skill?.triggers[0] ?? null;\n}\n\n/**\n * What launching an automation card hands to the agent.\n *\n * The resolved command is passed through as-is: API routing (host, auth) is\n * discovered by the agent at runtime from `<RUNTIME_SERVICES>` in the system\n * prompt, and the skills themselves carry the instructions for reading that\n * block. An automation whose skill declares no command has the request spelled\n * out instead. Both are instructions to the agent rather than user-facing UI\n * copy, so they are intentionally in English and not localized.\n */\nexport function getAutomationLaunchPrompt(\n automation: RecommendedAutomation,\n): string {\n return (\n findAutomationCommand(automation) ??\n `Set up the ${automation.name} automation`\n );\n}\n"],"mappings":";;;AAkBA,IAAM,IAAgB,IAAI,IACxB,EAAe,KAAK,MAAU,CAAC,EAAM,MAAM,CAAK,CAAC,CACnD;AAYA,SAAgB,EACd,GACmB;CACnB,IAAM,IAAO,EAAW;CAExB,OADK,IAEF,EAAiE,MAClE,OAHgB;AAKpB;AAGA,SAAgB,EAAkB,GAA6C;CAC7E,OAAO,OAAO,KAAK,EAAW,SAAS,YAAY;AACrD;AAOA,SAAgB,EACd,GACU;CACV,OAAO,OAAO,QAAQ,EAAW,SAAS,YAAY,EACnD,QAAQ,GAAG,OAAiB,EAAY,aAAa,EAAK,EAC1D,KAAK,CAAC,OAAQ,CAAE;AACrB;AASA,SAAgB,EACd,GACe;CAEf,OADc,EAAc,IAAI,EAAW,SAAS,EAAW,EACxD,GAAO,SAAS,MAAM;AAC/B;AAYA,SAAgB,EACd,GACQ;CACR,OACE,EAAsB,CAAU,KAChC,cAAc,EAAW,KAAK;AAElC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-schedule.cjs","names":[],"sources":["../../src/utils/automation-schedule.ts"],"sourcesContent":["export type SchedulePresetKind = \"daily\" | \"weekdays\" | \"weekly\";\n\nexport interface PresetSchedule {\n kind: SchedulePresetKind;\n hour: number;\n minute: number;\n weekday?: number;\n}\n\nexport interface CustomSchedule {\n kind: \"custom\";\n raw: string;\n hour?: number;\n minute?: number;\n}\n\nexport type ParsedSchedule = PresetSchedule | CustomSchedule;\n\nconst SINGLE_INT = /^(\\d+)$/;\n\nfunction parseSingleInt(\n field: string,\n min: number,\n max: number,\n): number | null {\n const match = field.match(SINGLE_INT);\n if (!match) return null;\n const value = Number(match[1]);\n if (Number.isNaN(value) || value < min || value > max) return null;\n return value;\n}\n\nexport function parseCronSchedule(\n cron: string | undefined | null,\n): ParsedSchedule {\n const raw = (cron ?? \"\").trim();\n if (!raw) return { kind: \"custom\", raw: \"\" };\n\n const fields = raw.split(/\\s+/);\n if (fields.length !== 5) return { kind: \"custom\", raw };\n\n const [minuteField, hourField, domField, monthField, dowField] = fields;\n\n const minute = parseSingleInt(minuteField, 0, 59);\n const hour = parseSingleInt(hourField, 0, 23);\n\n if (minute === null || hour === null) {\n return { kind: \"custom\", raw };\n }\n if (domField !== \"*\" || monthField !== \"*\") {\n return { kind: \"custom\", raw, hour, minute };\n }\n\n if (dowField === \"*\" || dowField === \"0-6\") {\n return { kind: \"daily\", hour, minute };\n }\n if (dowField === \"1-5\") {\n return { kind: \"weekdays\", hour, minute };\n }\n const weekday = parseSingleInt(dowField, 0, 6);\n if (weekday !== null) {\n return { kind: \"weekly\", hour, minute, weekday };\n }\n return { kind: \"custom\", raw, hour, minute };\n}\n\nexport function buildCronSchedule(input: PresetSchedule): string {\n const { kind, hour, minute, weekday } = input;\n switch (kind) {\n case \"daily\":\n return `${minute} ${hour} * * *`;\n case \"weekdays\":\n return `${minute} ${hour} * * 1-5`;\n case \"weekly\":\n return `${minute} ${hour} * * ${weekday ?? 1}`;\n default: {\n const _exhaustive: never = kind;\n return _exhaustive;\n }\n }\n}\n\nexport function formatTimeOfDay(hour: number, minute: number): string {\n const hh = String(hour).padStart(2, \"0\");\n const mm = String(minute).padStart(2, \"0\");\n return `${hh}:${mm}`;\n}\n\nexport function parseTimeOfDay(\n value: string,\n): { hour: number; minute: number } | null {\n const match = value.match(/^(\\d{1,2}):(\\d{2})$/);\n if (!match) return null;\n const hour = Number(match[1]);\n const minute = Number(match[2]);\n if (\n Number.isNaN(hour) ||\n Number.isNaN(minute) ||\n hour < 0 ||\n hour > 23 ||\n minute < 0 ||\n minute > 59\n ) {\n return null;\n }\n return { hour, minute };\n}\n\nexport function formatEventOn(on: string | string[] | undefined): string {\n if (!on) return \"—\";\n if (Array.isArray(on)) return on.join(\", \");\n return on;\n}\n"],"mappings":"6CA4GA,SAAgB,EAAc,EAA2C,CAGvE,OAFK,EACD,MAAM,QAAQ,CAAE,EAAU,EAAG,KAAK,IAAI,EACnC,EAFS,GAGlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-schedule.js","names":[],"sources":["../../src/utils/automation-schedule.ts"],"sourcesContent":["export type SchedulePresetKind = \"daily\" | \"weekdays\" | \"weekly\";\n\nexport interface PresetSchedule {\n kind: SchedulePresetKind;\n hour: number;\n minute: number;\n weekday?: number;\n}\n\nexport interface CustomSchedule {\n kind: \"custom\";\n raw: string;\n hour?: number;\n minute?: number;\n}\n\nexport type ParsedSchedule = PresetSchedule | CustomSchedule;\n\nconst SINGLE_INT = /^(\\d+)$/;\n\nfunction parseSingleInt(\n field: string,\n min: number,\n max: number,\n): number | null {\n const match = field.match(SINGLE_INT);\n if (!match) return null;\n const value = Number(match[1]);\n if (Number.isNaN(value) || value < min || value > max) return null;\n return value;\n}\n\nexport function parseCronSchedule(\n cron: string | undefined | null,\n): ParsedSchedule {\n const raw = (cron ?? \"\").trim();\n if (!raw) return { kind: \"custom\", raw: \"\" };\n\n const fields = raw.split(/\\s+/);\n if (fields.length !== 5) return { kind: \"custom\", raw };\n\n const [minuteField, hourField, domField, monthField, dowField] = fields;\n\n const minute = parseSingleInt(minuteField, 0, 59);\n const hour = parseSingleInt(hourField, 0, 23);\n\n if (minute === null || hour === null) {\n return { kind: \"custom\", raw };\n }\n if (domField !== \"*\" || monthField !== \"*\") {\n return { kind: \"custom\", raw, hour, minute };\n }\n\n if (dowField === \"*\" || dowField === \"0-6\") {\n return { kind: \"daily\", hour, minute };\n }\n if (dowField === \"1-5\") {\n return { kind: \"weekdays\", hour, minute };\n }\n const weekday = parseSingleInt(dowField, 0, 6);\n if (weekday !== null) {\n return { kind: \"weekly\", hour, minute, weekday };\n }\n return { kind: \"custom\", raw, hour, minute };\n}\n\nexport function buildCronSchedule(input: PresetSchedule): string {\n const { kind, hour, minute, weekday } = input;\n switch (kind) {\n case \"daily\":\n return `${minute} ${hour} * * *`;\n case \"weekdays\":\n return `${minute} ${hour} * * 1-5`;\n case \"weekly\":\n return `${minute} ${hour} * * ${weekday ?? 1}`;\n default: {\n const _exhaustive: never = kind;\n return _exhaustive;\n }\n }\n}\n\nexport function formatTimeOfDay(hour: number, minute: number): string {\n const hh = String(hour).padStart(2, \"0\");\n const mm = String(minute).padStart(2, \"0\");\n return `${hh}:${mm}`;\n}\n\nexport function parseTimeOfDay(\n value: string,\n): { hour: number; minute: number } | null {\n const match = value.match(/^(\\d{1,2}):(\\d{2})$/);\n if (!match) return null;\n const hour = Number(match[1]);\n const minute = Number(match[2]);\n if (\n Number.isNaN(hour) ||\n Number.isNaN(minute) ||\n hour < 0 ||\n hour > 23 ||\n minute < 0 ||\n minute > 59\n ) {\n return null;\n }\n return { hour, minute };\n}\n\nexport function formatEventOn(on: string | string[] | undefined): string {\n if (!on) return \"—\";\n if (Array.isArray(on)) return on.join(\", \");\n return on;\n}\n"],"mappings":";AA4GA,SAAgB,EAAc,GAA2C;CAGvE,OAFK,IACD,MAAM,QAAQ,CAAE,IAAU,EAAG,KAAK,IAAI,IACnC,IAFS;AAGlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-stack-section.cjs","names":[],"sources":["../../src/utils/automation-stack-section.ts"],"sourcesContent":["/** Shared bottom inset for stacked home sections (recommended rail, pinned). */\nexport const AUTOMATION_STACK_SECTION_BOTTOM_CLASS = \"pb-12\";\n"],"mappings":"6CACA,IAAa,EAAwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-stack-section.js","names":[],"sources":["../../src/utils/automation-stack-section.ts"],"sourcesContent":["/** Shared bottom inset for stacked home sections (recommended rail, pinned). */\nexport const AUTOMATION_STACK_SECTION_BOTTOM_CLASS = \"pb-12\";\n"],"mappings":";AACA,IAAa,IAAwC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("./path-utils.cjs"),t=require("../stores/model-store.cjs");var n=(n,r,i)=>{let{action:a}=n;if((a.kind===`StrReplaceEditorAction`||a.kind===`FileEditorAction`||a.kind===`ExecuteBashAction`)&&i.invalidateQueries({queryKey:[`file_changes`,r]},{cancelRefetch:!1}),(a.kind===`StrReplaceEditorAction`||a.kind===`FileEditorAction`)&&a.path){let t=e.stripWorkspacePrefix(a.path);i.invalidateQueries({queryKey:[`file_diff`,r,t]})}n.tool_name===`SwitchLLMTool`&&(i.invalidateQueries({queryKey:[`user`,`conversation`,r]}),t.useModelStore.getState().clearActiveProfile(r))};exports.handleActionEventCacheInvalidation=n;
|
|
2
2
|
//# sourceMappingURL=cache-utils.cjs.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { stripWorkspacePrefix as e } from "./path-utils.js";
|
|
2
|
+
import { useModelStore as t } from "../stores/model-store.js";
|
|
3
3
|
//#region src/utils/cache-utils.ts
|
|
4
4
|
var n = (n, r, i) => {
|
|
5
5
|
let { action: a } = n;
|
|
6
6
|
if ((a.kind === "StrReplaceEditorAction" || a.kind === "FileEditorAction" || a.kind === "ExecuteBashAction") && i.invalidateQueries({ queryKey: ["file_changes", r] }, { cancelRefetch: !1 }), (a.kind === "StrReplaceEditorAction" || a.kind === "FileEditorAction") && a.path) {
|
|
7
|
-
let
|
|
7
|
+
let t = e(a.path);
|
|
8
8
|
i.invalidateQueries({ queryKey: [
|
|
9
9
|
"file_diff",
|
|
10
10
|
r,
|
|
11
|
-
|
|
11
|
+
t
|
|
12
12
|
] });
|
|
13
13
|
}
|
|
14
14
|
n.tool_name === "SwitchLLMTool" && (i.invalidateQueries({ queryKey: [
|
|
15
15
|
"user",
|
|
16
16
|
"conversation",
|
|
17
17
|
r
|
|
18
|
-
] }),
|
|
18
|
+
] }), t.getState().clearActiveProfile(r));
|
|
19
19
|
};
|
|
20
20
|
//#endregion
|
|
21
21
|
export { n as handleActionEventCacheInvalidation };
|
package/dist/utils/constants.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");var e={base00:`transparent`,base01:`var(--cool-grey-900)`,base02:`var(--cool-grey-700)`,base03:`var(--cool-grey-600)`,base04:`var(--cool-grey-500)`,base05:`var(--cool-grey-200)`,base06:`var(--cool-grey-100)`,base07:`#ffffff`,base08:`#ff5370`,base09:`#f78c6c`,base0A:`#ffcb6b`,base0B:`#c3e88d`,base0C:`#89ddff`,base0D:`#82aaff`,base0E:`#c792ea`,base0F:`#ff5370`},t={PRODUCTION:`https://app.all-hands.dev`},n={LABEL_CLASSNAME:`text-[11px] font-medium leading-4 tracking-[0.11px]`},r={HEIGHT_THRESHOLD:100},i=1.5,a=`/btw`,o=`/model`,s=`/goal`,c=[{skill:{name:`new`,type:`agentskills`,content:`Creates a new conversation using the same runtime`,triggers:[`/new`]},command:`/new`},{skill:{name:`btw`,type:`agentskills`,content:`Ask the agent a side question without derailing the main task`,triggers:[a]},command:a},{skill:{name:`model`,type:`agentskills`,content:`List saved LLM profiles, or switch the conversation LLM profile with /model <name>`,triggers:[o]},command:o},{skill:{name:`goal`,type:`agentskills`,content:`Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>`,triggers:[s]},command:s}],l=[`The following information has been included`,`It may or may not be relevant`,`Skill location:`,`(Use this path to resolve`];exports.BTW_COMMAND=a,exports.BUILT_IN_COMMANDS=c,exports.CHAT_INPUT=r,exports.EPS=i,exports.GOAL_COMMAND=s,exports.JSON_VIEW_THEME=e,exports.METADATA_PREFIXES=l,exports.MODEL_COMMAND=o,exports.PRODUCT_URL=t,exports.SETTINGS_FORM=n;
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");var e={base00:`transparent`,base01:`var(--cool-grey-900)`,base02:`var(--cool-grey-700)`,base03:`var(--cool-grey-600)`,base04:`var(--cool-grey-500)`,base05:`var(--cool-grey-200)`,base06:`var(--cool-grey-100)`,base07:`#ffffff`,base08:`#ff5370`,base09:`#f78c6c`,base0A:`#ffcb6b`,base0B:`#c3e88d`,base0C:`#89ddff`,base0D:`#82aaff`,base0E:`#c792ea`,base0F:`#ff5370`},t={PRODUCTION:`https://app.all-hands.dev`},n={LABEL_CLASSNAME:`text-[11px] font-medium leading-4 tracking-[0.11px]`},r={HEIGHT_THRESHOLD:100},i=1.5,a=`/btw`,o=`/model`,s=`/goal`,c=[{skill:{name:`new`,type:`agentskills`,source:null,content:`Creates a new conversation using the same runtime`,triggers:[`/new`]},command:`/new`},{skill:{name:`btw`,type:`agentskills`,source:null,content:`Ask the agent a side question without derailing the main task`,triggers:[a]},command:a},{skill:{name:`model`,type:`agentskills`,source:null,content:`List saved LLM profiles, or switch the conversation LLM profile with /model <name>`,triggers:[o]},command:o},{skill:{name:`goal`,type:`agentskills`,source:null,content:`Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>`,triggers:[s]},command:s}],l=[`The following information has been included`,`It may or may not be relevant`,`Skill location:`,`(Use this path to resolve`];exports.BTW_COMMAND=a,exports.BUILT_IN_COMMANDS=c,exports.CHAT_INPUT=r,exports.EPS=i,exports.GOAL_COMMAND=s,exports.JSON_VIEW_THEME=e,exports.METADATA_PREFIXES=l,exports.MODEL_COMMAND=o,exports.PRODUCT_URL=t,exports.SETTINGS_FORM=n;
|
|
2
2
|
//# sourceMappingURL=constants.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["import { SlashCommandItem } from \"#/hooks/chat/use-slash-command\";\n\nexport const JSON_VIEW_THEME = {\n base00: \"transparent\", // background\n base01: \"var(--cool-grey-900)\", // lighter background\n base02: \"var(--cool-grey-700)\", // selection background\n base03: \"var(--cool-grey-600)\", // comments, invisibles\n base04: \"var(--cool-grey-500)\", // dark foreground\n base05: \"var(--cool-grey-200)\", // default foreground\n base06: \"var(--cool-grey-100)\", // light foreground\n base07: \"#ffffff\", // light background\n base08: \"#ff5370\", // variables, red\n base09: \"#f78c6c\", // integers, orange\n base0A: \"#ffcb6b\", // booleans, yellow\n base0B: \"#c3e88d\", // strings, green\n base0C: \"#89ddff\", // support, cyan\n base0D: \"#82aaff\", // functions, blue\n base0E: \"#c792ea\", // keywords, purple\n base0F: \"#ff5370\", // deprecated, red\n};\n\nexport const PRODUCT_URL = {\n PRODUCTION: \"https://app.all-hands.dev\",\n};\n\nexport const SETTINGS_FORM = {\n LABEL_CLASSNAME: \"text-[11px] font-medium leading-4 tracking-[0.11px]\",\n};\n\n// Chat input constants\nexport const CHAT_INPUT = {\n HEIGHT_THRESHOLD: 100, // Height in pixels when suggestions should be hidden\n};\n\n// UI tolerance constants\nexport const EPS = 1.5; // px tolerance for \"near min\" height comparisons\n\n/** The /btw slash command — asks a side question via the ask_agent endpoint. */\nexport const BTW_COMMAND = \"/btw\";\n\n/** The /model slash command — lists or switches the conversation's LLM profile. */\nexport const MODEL_COMMAND = \"/model\";\n\n/** The /goal slash command — drives the agent toward an objective, judging completion each round. */\nexport const GOAL_COMMAND = \"/goal\";\n\n/** Built-in slash commands surfaced in the menu for V1 conversations. */\nexport const BUILT_IN_COMMANDS: SlashCommandItem[] = [\n {\n skill: {\n name: \"new\",\n type: \"agentskills\",\n content: \"Creates a new conversation using the same runtime\",\n triggers: [\"/new\"],\n },\n command: \"/new\",\n },\n {\n skill: {\n name: \"btw\",\n type: \"agentskills\",\n content: \"Ask the agent a side question without derailing the main task\",\n triggers: [BTW_COMMAND],\n },\n command: BTW_COMMAND,\n },\n {\n skill: {\n name: \"model\",\n type: \"agentskills\",\n content:\n \"List saved LLM profiles, or switch the conversation LLM profile with /model <name>\",\n triggers: [MODEL_COMMAND],\n },\n command: MODEL_COMMAND,\n },\n {\n skill: {\n name: \"goal\",\n type: \"agentskills\",\n content:\n \"Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>\",\n triggers: [GOAL_COMMAND],\n },\n command: GOAL_COMMAND,\n },\n];\n\n// Skill content metadata prefixes\nexport const METADATA_PREFIXES: readonly string[] = [\n \"The following information has been included\",\n \"It may or may not be relevant\",\n \"Skill location:\",\n \"(Use this path to resolve\",\n];\n"],"mappings":"6CAEA,IAAa,EAAkB,CAC7B,OAAQ,cACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,SACV,EAEa,EAAc,CACzB,WAAY,2BACd,EAEa,EAAgB,CAC3B,gBAAiB,qDACnB,EAGa,EAAa,CACxB,iBAAkB,GACpB,EAGa,EAAM,IAGN,EAAc,OAGd,EAAgB,SAGhB,EAAe,QAGf,EAAwC,CACnD,CACE,MAAO,CACL,KAAM,MACN,KAAM,cACN,QAAS,oDACT,SAAU,CAAC,MAAM,CACnB,EACA,QAAS,MACX,EACA,CACE,MAAO,CACL,KAAM,MACN,KAAM,cACN,QAAS,gEACT,SAAU,CAAC,CAAW,CACxB,EACA,QAAS,CACX,EACA,CACE,MAAO,CACL,KAAM,QACN,KAAM,cACN,QACE,qFACF,SAAU,CAAC,CAAa,CAC1B,EACA,QAAS,CACX,EACA,CACE,MAAO,CACL,KAAM,OACN,KAAM,cACN,QACE,sHACF,SAAU,CAAC,CAAY,CACzB,EACA,QAAS,CACX,CACF,EAGa,EAAuC,CAClD,8CACA,gCACA,kBACA,2BACF"}
|
|
1
|
+
{"version":3,"file":"constants.cjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["import { SlashCommandItem } from \"#/hooks/chat/use-slash-command\";\n\nexport const JSON_VIEW_THEME = {\n base00: \"transparent\", // background\n base01: \"var(--cool-grey-900)\", // lighter background\n base02: \"var(--cool-grey-700)\", // selection background\n base03: \"var(--cool-grey-600)\", // comments, invisibles\n base04: \"var(--cool-grey-500)\", // dark foreground\n base05: \"var(--cool-grey-200)\", // default foreground\n base06: \"var(--cool-grey-100)\", // light foreground\n base07: \"#ffffff\", // light background\n base08: \"#ff5370\", // variables, red\n base09: \"#f78c6c\", // integers, orange\n base0A: \"#ffcb6b\", // booleans, yellow\n base0B: \"#c3e88d\", // strings, green\n base0C: \"#89ddff\", // support, cyan\n base0D: \"#82aaff\", // functions, blue\n base0E: \"#c792ea\", // keywords, purple\n base0F: \"#ff5370\", // deprecated, red\n};\n\nexport const PRODUCT_URL = {\n PRODUCTION: \"https://app.all-hands.dev\",\n};\n\nexport const SETTINGS_FORM = {\n LABEL_CLASSNAME: \"text-[11px] font-medium leading-4 tracking-[0.11px]\",\n};\n\n// Chat input constants\nexport const CHAT_INPUT = {\n HEIGHT_THRESHOLD: 100, // Height in pixels when suggestions should be hidden\n};\n\n// UI tolerance constants\nexport const EPS = 1.5; // px tolerance for \"near min\" height comparisons\n\n/** The /btw slash command — asks a side question via the ask_agent endpoint. */\nexport const BTW_COMMAND = \"/btw\";\n\n/** The /model slash command — lists or switches the conversation's LLM profile. */\nexport const MODEL_COMMAND = \"/model\";\n\n/** The /goal slash command — drives the agent toward an objective, judging completion each round. */\nexport const GOAL_COMMAND = \"/goal\";\n\n/** Built-in slash commands surfaced in the menu for V1 conversations. */\nexport const BUILT_IN_COMMANDS: SlashCommandItem[] = [\n {\n skill: {\n name: \"new\",\n type: \"agentskills\",\n source: null,\n content: \"Creates a new conversation using the same runtime\",\n triggers: [\"/new\"],\n },\n command: \"/new\",\n },\n {\n skill: {\n name: \"btw\",\n type: \"agentskills\",\n source: null,\n content: \"Ask the agent a side question without derailing the main task\",\n triggers: [BTW_COMMAND],\n },\n command: BTW_COMMAND,\n },\n {\n skill: {\n name: \"model\",\n type: \"agentskills\",\n source: null,\n content:\n \"List saved LLM profiles, or switch the conversation LLM profile with /model <name>\",\n triggers: [MODEL_COMMAND],\n },\n command: MODEL_COMMAND,\n },\n {\n skill: {\n name: \"goal\",\n type: \"agentskills\",\n source: null,\n content:\n \"Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>\",\n triggers: [GOAL_COMMAND],\n },\n command: GOAL_COMMAND,\n },\n];\n\n// Skill content metadata prefixes\nexport const METADATA_PREFIXES: readonly string[] = [\n \"The following information has been included\",\n \"It may or may not be relevant\",\n \"Skill location:\",\n \"(Use this path to resolve\",\n];\n"],"mappings":"6CAEA,IAAa,EAAkB,CAC7B,OAAQ,cACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,uBACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,UACR,OAAQ,SACV,EAEa,EAAc,CACzB,WAAY,2BACd,EAEa,EAAgB,CAC3B,gBAAiB,qDACnB,EAGa,EAAa,CACxB,iBAAkB,GACpB,EAGa,EAAM,IAGN,EAAc,OAGd,EAAgB,SAGhB,EAAe,QAGf,EAAwC,CACnD,CACE,MAAO,CACL,KAAM,MACN,KAAM,cACN,OAAQ,KACR,QAAS,oDACT,SAAU,CAAC,MAAM,CACnB,EACA,QAAS,MACX,EACA,CACE,MAAO,CACL,KAAM,MACN,KAAM,cACN,OAAQ,KACR,QAAS,gEACT,SAAU,CAAC,CAAW,CACxB,EACA,QAAS,CACX,EACA,CACE,MAAO,CACL,KAAM,QACN,KAAM,cACN,OAAQ,KACR,QACE,qFACF,SAAU,CAAC,CAAa,CAC1B,EACA,QAAS,CACX,EACA,CACE,MAAO,CACL,KAAM,OACN,KAAM,cACN,OAAQ,KACR,QACE,sHACF,SAAU,CAAC,CAAY,CACzB,EACA,QAAS,CACX,CACF,EAGa,EAAuC,CAClD,8CACA,gCACA,kBACA,2BACF"}
|
package/dist/utils/constants.js
CHANGED
|
@@ -21,6 +21,7 @@ var e = {
|
|
|
21
21
|
skill: {
|
|
22
22
|
name: "new",
|
|
23
23
|
type: "agentskills",
|
|
24
|
+
source: null,
|
|
24
25
|
content: "Creates a new conversation using the same runtime",
|
|
25
26
|
triggers: ["/new"]
|
|
26
27
|
},
|
|
@@ -30,6 +31,7 @@ var e = {
|
|
|
30
31
|
skill: {
|
|
31
32
|
name: "btw",
|
|
32
33
|
type: "agentskills",
|
|
34
|
+
source: null,
|
|
33
35
|
content: "Ask the agent a side question without derailing the main task",
|
|
34
36
|
triggers: [a]
|
|
35
37
|
},
|
|
@@ -39,6 +41,7 @@ var e = {
|
|
|
39
41
|
skill: {
|
|
40
42
|
name: "model",
|
|
41
43
|
type: "agentskills",
|
|
44
|
+
source: null,
|
|
42
45
|
content: "List saved LLM profiles, or switch the conversation LLM profile with /model <name>",
|
|
43
46
|
triggers: [o]
|
|
44
47
|
},
|
|
@@ -48,6 +51,7 @@ var e = {
|
|
|
48
51
|
skill: {
|
|
49
52
|
name: "goal",
|
|
50
53
|
type: "agentskills",
|
|
54
|
+
source: null,
|
|
51
55
|
content: "Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>",
|
|
52
56
|
triggers: [s]
|
|
53
57
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["import { SlashCommandItem } from \"#/hooks/chat/use-slash-command\";\n\nexport const JSON_VIEW_THEME = {\n base00: \"transparent\", // background\n base01: \"var(--cool-grey-900)\", // lighter background\n base02: \"var(--cool-grey-700)\", // selection background\n base03: \"var(--cool-grey-600)\", // comments, invisibles\n base04: \"var(--cool-grey-500)\", // dark foreground\n base05: \"var(--cool-grey-200)\", // default foreground\n base06: \"var(--cool-grey-100)\", // light foreground\n base07: \"#ffffff\", // light background\n base08: \"#ff5370\", // variables, red\n base09: \"#f78c6c\", // integers, orange\n base0A: \"#ffcb6b\", // booleans, yellow\n base0B: \"#c3e88d\", // strings, green\n base0C: \"#89ddff\", // support, cyan\n base0D: \"#82aaff\", // functions, blue\n base0E: \"#c792ea\", // keywords, purple\n base0F: \"#ff5370\", // deprecated, red\n};\n\nexport const PRODUCT_URL = {\n PRODUCTION: \"https://app.all-hands.dev\",\n};\n\nexport const SETTINGS_FORM = {\n LABEL_CLASSNAME: \"text-[11px] font-medium leading-4 tracking-[0.11px]\",\n};\n\n// Chat input constants\nexport const CHAT_INPUT = {\n HEIGHT_THRESHOLD: 100, // Height in pixels when suggestions should be hidden\n};\n\n// UI tolerance constants\nexport const EPS = 1.5; // px tolerance for \"near min\" height comparisons\n\n/** The /btw slash command — asks a side question via the ask_agent endpoint. */\nexport const BTW_COMMAND = \"/btw\";\n\n/** The /model slash command — lists or switches the conversation's LLM profile. */\nexport const MODEL_COMMAND = \"/model\";\n\n/** The /goal slash command — drives the agent toward an objective, judging completion each round. */\nexport const GOAL_COMMAND = \"/goal\";\n\n/** Built-in slash commands surfaced in the menu for V1 conversations. */\nexport const BUILT_IN_COMMANDS: SlashCommandItem[] = [\n {\n skill: {\n name: \"new\",\n type: \"agentskills\",\n content: \"Creates a new conversation using the same runtime\",\n triggers: [\"/new\"],\n },\n command: \"/new\",\n },\n {\n skill: {\n name: \"btw\",\n type: \"agentskills\",\n content: \"Ask the agent a side question without derailing the main task\",\n triggers: [BTW_COMMAND],\n },\n command: BTW_COMMAND,\n },\n {\n skill: {\n name: \"model\",\n type: \"agentskills\",\n content:\n \"List saved LLM profiles, or switch the conversation LLM profile with /model <name>\",\n triggers: [MODEL_COMMAND],\n },\n command: MODEL_COMMAND,\n },\n {\n skill: {\n name: \"goal\",\n type: \"agentskills\",\n content:\n \"Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>\",\n triggers: [GOAL_COMMAND],\n },\n command: GOAL_COMMAND,\n },\n];\n\n// Skill content metadata prefixes\nexport const METADATA_PREFIXES: readonly string[] = [\n \"The following information has been included\",\n \"It may or may not be relevant\",\n \"Skill location:\",\n \"(Use this path to resolve\",\n];\n"],"mappings":";AAEA,IAAa,IAAkB;CAC7B,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;AACV,GAEa,IAAc,EACzB,YAAY,4BACd,GAEa,IAAgB,EAC3B,iBAAiB,sDACnB,GAGa,IAAa,EACxB,kBAAkB,IACpB,GAGa,IAAM,KAGN,IAAc,QAGd,IAAgB,UAGhB,IAAe,SAGf,IAAwC;CACnD;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,SAAS;GACT,UAAU,CAAC,MAAM;EACnB;EACA,SAAS;CACX;CACA;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,SAAS;GACT,UAAU,CAAC,CAAW;EACxB;EACA,SAAS;CACX;CACA;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,SACE;GACF,UAAU,CAAC,CAAa;EAC1B;EACA,SAAS;CACX;CACA;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,SACE;GACF,UAAU,CAAC,CAAY;EACzB;EACA,SAAS;CACX;AACF,GAGa,IAAuC;CAClD;CACA;CACA;CACA;AACF"}
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["import { SlashCommandItem } from \"#/hooks/chat/use-slash-command\";\n\nexport const JSON_VIEW_THEME = {\n base00: \"transparent\", // background\n base01: \"var(--cool-grey-900)\", // lighter background\n base02: \"var(--cool-grey-700)\", // selection background\n base03: \"var(--cool-grey-600)\", // comments, invisibles\n base04: \"var(--cool-grey-500)\", // dark foreground\n base05: \"var(--cool-grey-200)\", // default foreground\n base06: \"var(--cool-grey-100)\", // light foreground\n base07: \"#ffffff\", // light background\n base08: \"#ff5370\", // variables, red\n base09: \"#f78c6c\", // integers, orange\n base0A: \"#ffcb6b\", // booleans, yellow\n base0B: \"#c3e88d\", // strings, green\n base0C: \"#89ddff\", // support, cyan\n base0D: \"#82aaff\", // functions, blue\n base0E: \"#c792ea\", // keywords, purple\n base0F: \"#ff5370\", // deprecated, red\n};\n\nexport const PRODUCT_URL = {\n PRODUCTION: \"https://app.all-hands.dev\",\n};\n\nexport const SETTINGS_FORM = {\n LABEL_CLASSNAME: \"text-[11px] font-medium leading-4 tracking-[0.11px]\",\n};\n\n// Chat input constants\nexport const CHAT_INPUT = {\n HEIGHT_THRESHOLD: 100, // Height in pixels when suggestions should be hidden\n};\n\n// UI tolerance constants\nexport const EPS = 1.5; // px tolerance for \"near min\" height comparisons\n\n/** The /btw slash command — asks a side question via the ask_agent endpoint. */\nexport const BTW_COMMAND = \"/btw\";\n\n/** The /model slash command — lists or switches the conversation's LLM profile. */\nexport const MODEL_COMMAND = \"/model\";\n\n/** The /goal slash command — drives the agent toward an objective, judging completion each round. */\nexport const GOAL_COMMAND = \"/goal\";\n\n/** Built-in slash commands surfaced in the menu for V1 conversations. */\nexport const BUILT_IN_COMMANDS: SlashCommandItem[] = [\n {\n skill: {\n name: \"new\",\n type: \"agentskills\",\n source: null,\n content: \"Creates a new conversation using the same runtime\",\n triggers: [\"/new\"],\n },\n command: \"/new\",\n },\n {\n skill: {\n name: \"btw\",\n type: \"agentskills\",\n source: null,\n content: \"Ask the agent a side question without derailing the main task\",\n triggers: [BTW_COMMAND],\n },\n command: BTW_COMMAND,\n },\n {\n skill: {\n name: \"model\",\n type: \"agentskills\",\n source: null,\n content:\n \"List saved LLM profiles, or switch the conversation LLM profile with /model <name>\",\n triggers: [MODEL_COMMAND],\n },\n command: MODEL_COMMAND,\n },\n {\n skill: {\n name: \"goal\",\n type: \"agentskills\",\n source: null,\n content:\n \"Drive the agent toward an objective until a judge says it's done — /goal <objective> or /goal --max <n> <objective>\",\n triggers: [GOAL_COMMAND],\n },\n command: GOAL_COMMAND,\n },\n];\n\n// Skill content metadata prefixes\nexport const METADATA_PREFIXES: readonly string[] = [\n \"The following information has been included\",\n \"It may or may not be relevant\",\n \"Skill location:\",\n \"(Use this path to resolve\",\n];\n"],"mappings":";AAEA,IAAa,IAAkB;CAC7B,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;AACV,GAEa,IAAc,EACzB,YAAY,4BACd,GAEa,IAAgB,EAC3B,iBAAiB,sDACnB,GAGa,IAAa,EACxB,kBAAkB,IACpB,GAGa,IAAM,KAGN,IAAc,QAGd,IAAgB,UAGhB,IAAe,SAGf,IAAwC;CACnD;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,QAAQ;GACR,SAAS;GACT,UAAU,CAAC,MAAM;EACnB;EACA,SAAS;CACX;CACA;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,QAAQ;GACR,SAAS;GACT,UAAU,CAAC,CAAW;EACxB;EACA,SAAS;CACX;CACA;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,QAAQ;GACR,SACE;GACF,UAAU,CAAC,CAAa;EAC1B;EACA,SAAS;CACX;CACA;EACE,OAAO;GACL,MAAM;GACN,MAAM;GACN,QAAQ;GACR,SACE;GACF,UAAU,CAAC,CAAY;EACzB;EACA,SAAS;CACX;AACF,GAGa,IAAuC;CAClD;CACA;CACA;CACA;AACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../components/features/conversation/conversation-overview-sections.cjs");let t=require("react");var n={CONVERSATION_STATE:`conversation-state`,PENDING_TASK_DRAFT:`pending-task-draft`},r=`conversation-state-updated`,i={selectedTab:`files`,unpinnedTabs:[],unpinnedOverviewSections:[...e.DEFAULT_UNPINNED_OVERVIEW_SECTIONS],unpinnedOverviewGitParts:[...e.DEFAULT_UNPINNED_OVERVIEW_GIT_PARTS],conversationMode:`code`,subConversationTaskId:null,draftMessage:null,rightPanelShown:!1,filesTabDiffView:null,filesTabContentViewMode:`rich`,filesTabTreeVisible:!0,filesTabOpenPaths:[],filesTabSelectedPath:null},a=new Set([`files`,`commits`,`browser`,`terminal`,`planner`,`tasklist`,`usage`]),o=new Set([`editor`,`served`,`app`,`vscode`]),s=new Set([`rich`,`plain`]);function c(t){let n=t;if(n.selectedTab!=null&&(o.has(n.selectedTab)||n.selectedTab===`changes`||!a.has(n.selectedTab))){let e=n.selectedTab;n={...n},e===`changes`?n.selectedTab=`commits`:delete n.selectedTab}if(n.unpinnedTabs){let e=n.unpinnedTabs.filter(e=>e!==`changes`&&!o.has(e));e.length!==n.unpinnedTabs.length&&(n={...n,unpinnedTabs:e})}if(n.unpinnedOverviewSections){let t=n.unpinnedOverviewSections.filter(t=>e.VALID_CONVERSATION_OVERVIEW_SECTIONS.has(t));t.length!==n.unpinnedOverviewSections.length&&(n={...n,unpinnedOverviewSections:t})}if(n.unpinnedOverviewGitParts){let t=n.unpinnedOverviewGitParts.filter(t=>e.VALID_CONVERSATION_OVERVIEW_GIT_PARTS.has(t));t.length!==n.unpinnedOverviewGitParts.length&&(n={...n,unpinnedOverviewGitParts:t})}if(n.filesTabContentViewMode!=null&&!s.has(n.filesTabContentViewMode)&&(n={...n},delete n.filesTabContentViewMode),n.rightPanelShown!=null&&typeof n.rightPanelShown!=`boolean`&&(n={...n},delete n.rightPanelShown),n.filesTabTreeVisible!=null&&typeof n.filesTabTreeVisible!=`boolean`&&(n={...n},delete n.filesTabTreeVisible),n.filesTabOpenPaths!=null)if(!Array.isArray(n.filesTabOpenPaths))n={...n},delete n.filesTabOpenPaths;else{let e=n.filesTabOpenPaths.filter(e=>typeof e==`string`&&e.length>0);e.length!==n.filesTabOpenPaths.length&&(n={...n,filesTabOpenPaths:e})}return n.filesTabSelectedPath!=null&&typeof n.filesTabSelectedPath!=`string`&&(n={...n},delete n.filesTabSelectedPath),n}function l(e){return e.startsWith(`task-`)}function u(e){return e===``||l(e)}function d(e){if(u(e))return i;try{let t=`${n.CONVERSATION_STATE}-${e}`,r=localStorage.getItem(t);return r===null?i:{...i,...c(JSON.parse(r))}}catch{return i}}function f(e,t){if(!u(e))try{let i=`${n.CONVERSATION_STATE}-${e}`,a={...d(e),...t};localStorage.setItem(i,JSON.stringify(a)),typeof window<`u`&&window.dispatchEvent(new CustomEvent(r,{detail:{conversationId:e}}))}catch(e){console.warn(`Failed to set conversation localStorage`,e)}}function p(e){return`${n.PENDING_TASK_DRAFT}-${e}`}function m(e,t){if(e)try{localStorage.setItem(p(e),t)}catch(e){console.warn(`Failed to store pending task draft`,e)}}function h(e){if(!e)return null;try{let t=p(e),n=localStorage.getItem(t);return localStorage.removeItem(t),n}catch(e){return console.warn(`Failed to consume pending task draft`,e),null}}function g(e){try{let t=`${n.CONVERSATION_STATE}-${e}`;localStorage.removeItem(t),typeof window<`u`&&window.dispatchEvent(new CustomEvent(r,{detail:{conversationId:e}}))}catch(t){console.warn(`Failed to clear conversation localStorage`,e,t)}}function _(e){let[i,a]=(0,t.useState)(()=>d(e));(0,t.useEffect)(()=>{if(typeof window>`u`)return;let t=`${n.CONVERSATION_STATE}-${e}`,i=()=>{a(d(e))},o=e=>{e.key===t&&i()},s=t=>{t.detail?.conversationId===e&&i()};return i(),window.addEventListener(`storage`,o),window.addEventListener(r,s),()=>{window.removeEventListener(`storage`,o),window.removeEventListener(r,s)}},[e]);let o=t=>{if(u(e)){a(e=>({...e,...t}));return}f(e,t)};return{state:i,setSelectedTab:e=>o({selectedTab:e}),setUnpinnedTabs:e=>o({unpinnedTabs:e}),setUnpinnedOverviewSections:e=>o({unpinnedOverviewSections:e}),setUnpinnedOverviewGitParts:e=>o({unpinnedOverviewGitParts:e}),setConversationMode:e=>o({conversationMode:e}),setDraftMessage:e=>o({draftMessage:e}),setRightPanelShown:e=>o({rightPanelShown:e}),setFilesTabDiffView:e=>o({filesTabDiffView:e}),setFilesTabContentViewMode:e=>o({filesTabContentViewMode:e}),setFilesTabTreeVisible:e=>o({filesTabTreeVisible:e}),setFilesTabOpenState:(e,t)=>o({filesTabOpenPaths:e,filesTabSelectedPath:t})}}exports.clearConversationLocalStorage=g,exports.consumePendingTaskDraft=h,exports.getConversationState=d,exports.isTaskConversationId=l,exports.setConversationState=f,exports.setPendingTaskDraft=m,exports.useConversationLocalStorageState=_;
|
|
2
2
|
//# sourceMappingURL=conversation-local-storage.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-local-storage.cjs","names":[],"sources":["../../src/utils/conversation-local-storage.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type {\n ConversationTab,\n ConversationMode,\n} from \"#/stores/conversation-store\";\nimport type { ViewMode } from \"#/components/features/files-tab/view-mode\";\n\nexport const LOCAL_STORAGE_KEYS = {\n CONVERSATION_STATE: \"conversation-state\",\n PENDING_TASK_DRAFT: \"pending-task-draft\",\n} as const;\n\nconst CONVERSATION_STATE_UPDATED_EVENT = \"conversation-state-updated\";\n\ntype ConversationStateUpdatedDetail = {\n conversationId: string;\n};\n\n/**\n * Consolidated conversation state stored in a single localStorage key.\n *\n * NOTE: the right-drawer open/closed state is intentionally *not* persisted\n * here. Users expect the drawer to start closed every time the app is\n * (re)loaded and only stay open when they opened it themselves during the\n * current session. That state lives in the in-memory Zustand\n * `useConversationStore` (`isRightPanelShown` / `hasRightPanelToggled`)\n * which survives in-app navigation but resets on full reloads. Older\n * builds wrote a `rightPanelShown` field into this blob; we accept and\n * silently ignore that field on read so we don't churn old localStorage.\n */\nexport interface ConversationState {\n selectedTab: ConversationTab | null;\n unpinnedTabs: string[];\n conversationMode: ConversationMode;\n subConversationTaskId: string | null;\n draftMessage: string | null;\n /**\n * User's persisted choice for the Files tab diff-vs-files toggle.\n * `null` means \"no explicit choice yet\" — the Files tab then falls back\n * to its repo-aware default (diff inside a git repo with commits, files\n * otherwise).\n */\n filesTabDiffView: boolean | null;\n /** User's persisted choice for the Files tab Rich/Plain content toggle. */\n filesTabContentViewMode: ViewMode;\n}\n\nconst DEFAULT_CONVERSATION_STATE: ConversationState = {\n selectedTab: \"files\",\n unpinnedTabs: [],\n conversationMode: \"code\",\n subConversationTaskId: null,\n draftMessage: null,\n filesTabDiffView: null,\n filesTabContentViewMode: \"rich\",\n};\n\nconst VALID_CONVERSATION_TABS: ReadonlySet<ConversationTab> = new Set([\n \"files\",\n \"browser\",\n \"terminal\",\n \"planner\",\n \"tasklist\",\n \"usage\",\n]);\n\n// Tab keys that *used to* exist and were removed during the Files tab\n// refactor. We strip these out of any persisted state on read so that\n// returning users don't keep ghost entries (in `selectedTab` or\n// `unpinnedTabs`) forever — the UI has no way to surface them again to\n// be re-pinned or re-selected. We deliberately use an explicit denylist\n// here rather than a strict \"whitelist against VALID_CONVERSATION_TABS\"\n// filter because `unpinnedTabs` is typed `string[]` and other parts of\n// the app legitimately store arbitrary tab keys in it (sub-conversation\n// tab ids etc.).\nconst REMOVED_CONVERSATION_TABS: ReadonlySet<string> = new Set([\n \"editor\",\n \"served\",\n \"changes\",\n \"app\",\n \"vscode\",\n]);\n\nconst VALID_VIEW_MODES: ReadonlySet<ViewMode> = new Set([\"rich\", \"plain\"]);\n\nfunction sanitizeStoredState(\n stored: Record<string, unknown>,\n): Partial<ConversationState> {\n // `rightPanelShown` is no longer part of the schema (the drawer's\n // open state is session-only) but old persisted blobs still carry it.\n // We just drop it on the way in — keeping it in `result` here would\n // pollute the merged `ConversationState` shape that consumers receive.\n const { rightPanelShown: _ignoredRightPanelShown, ...rest } = stored as {\n rightPanelShown?: unknown;\n } & Record<string, unknown>;\n let result: Partial<ConversationState> = rest as Partial<ConversationState>;\n\n if (\n result.selectedTab != null &&\n (REMOVED_CONVERSATION_TABS.has(result.selectedTab) ||\n !VALID_CONVERSATION_TABS.has(result.selectedTab as ConversationTab))\n ) {\n result = { ...result };\n delete result.selectedTab;\n }\n\n if (result.unpinnedTabs) {\n const filtered = result.unpinnedTabs.filter(\n (tab) => !REMOVED_CONVERSATION_TABS.has(tab),\n );\n if (filtered.length !== result.unpinnedTabs.length) {\n result = { ...result, unpinnedTabs: filtered };\n }\n }\n\n // Drop a corrupt/manually-edited `filesTabContentViewMode` so it falls\n // back to the typed default (\"rich\") instead of leaking a junk string\n // into ViewMode-typed consumers. TypeScript can't help us here — the\n // value comes from `JSON.parse(localStorage.getItem(...))` which is\n // unknown at runtime.\n if (\n result.filesTabContentViewMode != null &&\n !VALID_VIEW_MODES.has(result.filesTabContentViewMode)\n ) {\n result = { ...result };\n delete result.filesTabContentViewMode;\n }\n\n return result;\n}\n\n/**\n * Check if a conversation ID is a temporary task ID that should not be persisted.\n * Task IDs have the format \"task-{uuid}\" and are used during V1 conversation initialization.\n */\nexport function isTaskConversationId(conversationId: string): boolean {\n return conversationId.startsWith(\"task-\");\n}\n\n/**\n * Whether persistence should be skipped for this conversation id.\n *\n * Skips:\n * - empty string ids (callers outside of a conversation route, e.g.\n * rendered inside a unit test without a NavigationProvider)\n * - \"task-...\" ids used as placeholders during V1 conversation\n * initialization\n */\nfunction shouldSkipPersistence(conversationId: string): boolean {\n return conversationId === \"\" || isTaskConversationId(conversationId);\n}\n\n/**\n * Get the full conversation state from localStorage.\n */\nexport function getConversationState(\n conversationId: string,\n): ConversationState {\n if (shouldSkipPersistence(conversationId)) {\n return DEFAULT_CONVERSATION_STATE;\n }\n try {\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n const item = localStorage.getItem(key);\n if (item !== null) {\n return {\n ...DEFAULT_CONVERSATION_STATE,\n ...sanitizeStoredState(JSON.parse(item)),\n };\n }\n return DEFAULT_CONVERSATION_STATE;\n } catch {\n return DEFAULT_CONVERSATION_STATE;\n }\n}\n\n/**\n * Set the conversation state in localStorage, merging with existing state.\n */\nexport function setConversationState(\n conversationId: string,\n updates: Partial<ConversationState>,\n): void {\n if (shouldSkipPersistence(conversationId)) {\n return;\n }\n try {\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n const currentState = getConversationState(conversationId);\n const newState = { ...currentState, ...updates };\n localStorage.setItem(key, JSON.stringify(newState));\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent<ConversationStateUpdatedDetail>(\n CONVERSATION_STATE_UPDATED_EVENT,\n { detail: { conversationId } },\n ),\n );\n }\n } catch (err) {\n console.warn(\"Failed to set conversation localStorage\", err);\n }\n}\n\nfunction getPendingTaskDraftKey(taskId: string): string {\n return `${LOCAL_STORAGE_KEYS.PENDING_TASK_DRAFT}-${taskId}`;\n}\n\nexport function setPendingTaskDraft(\n taskId: string | null | undefined,\n draftMessage: string,\n): void {\n if (!taskId) return;\n try {\n localStorage.setItem(getPendingTaskDraftKey(taskId), draftMessage);\n } catch (err) {\n console.warn(\"Failed to store pending task draft\", err);\n }\n}\n\nexport function consumePendingTaskDraft(\n taskId: string | null | undefined,\n): string | null {\n if (!taskId) return null;\n try {\n const key = getPendingTaskDraftKey(taskId);\n const draft = localStorage.getItem(key);\n localStorage.removeItem(key);\n return draft;\n } catch (err) {\n console.warn(\"Failed to consume pending task draft\", err);\n return null;\n }\n}\n\nexport function clearConversationLocalStorage(conversationId: string) {\n try {\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n localStorage.removeItem(key);\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent<ConversationStateUpdatedDetail>(\n CONVERSATION_STATE_UPDATED_EVENT,\n { detail: { conversationId } },\n ),\n );\n }\n } catch (err) {\n console.warn(\n \"Failed to clear conversation localStorage\",\n conversationId,\n err,\n );\n }\n}\n\n/**\n * React hook for conversation-scoped localStorage state.\n * Returns the full state and individual setters for each property.\n *\n * The right-drawer open state is deliberately not represented here —\n * see the note on `ConversationState` for the rationale.\n */\nexport function useConversationLocalStorageState(conversationId: string): {\n state: ConversationState;\n setSelectedTab: (tab: ConversationTab | null) => void;\n setUnpinnedTabs: (tabs: string[]) => void;\n setConversationMode: (mode: ConversationMode) => void;\n setDraftMessage: (message: string | null) => void;\n setFilesTabDiffView: (diffView: boolean | null) => void;\n setFilesTabContentViewMode: (mode: ViewMode) => void;\n} {\n const [state, setState] = useState<ConversationState>(() =>\n getConversationState(conversationId),\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n\n const syncState = () => {\n setState(getConversationState(conversationId));\n };\n\n const handleStorage = (event: StorageEvent) => {\n if (event.key === key) {\n syncState();\n }\n };\n\n const handleConversationStateUpdated = (event: Event) => {\n const customEvent = event as CustomEvent<ConversationStateUpdatedDetail>;\n if (customEvent.detail?.conversationId === conversationId) {\n syncState();\n }\n };\n\n // Ensure this hook reflects latest state for the current conversation ID.\n syncState();\n\n window.addEventListener(\"storage\", handleStorage);\n window.addEventListener(\n CONVERSATION_STATE_UPDATED_EVENT,\n handleConversationStateUpdated,\n );\n\n return () => {\n window.removeEventListener(\"storage\", handleStorage);\n window.removeEventListener(\n CONVERSATION_STATE_UPDATED_EVENT,\n handleConversationStateUpdated,\n );\n };\n }, [conversationId]);\n\n const updateState = (updates: Partial<ConversationState>) => {\n if (shouldSkipPersistence(conversationId)) {\n // No durable storage for this id (empty / task placeholder), but the\n // hook is still useful as ephemeral in-memory state — update the\n // local React mirror directly so toggles in the UI behave normally\n // until a real conversation id arrives.\n setState((prev) => ({ ...prev, ...updates }));\n return;\n }\n setConversationState(conversationId, updates);\n };\n\n return {\n state,\n setSelectedTab: (tab) => updateState({ selectedTab: tab }),\n setUnpinnedTabs: (tabs) => updateState({ unpinnedTabs: tabs }),\n setConversationMode: (mode) => updateState({ conversationMode: mode }),\n setDraftMessage: (message) => updateState({ draftMessage: message }),\n setFilesTabDiffView: (diffView) =>\n updateState({ filesTabDiffView: diffView }),\n setFilesTabContentViewMode: (mode) =>\n updateState({ filesTabContentViewMode: mode }),\n };\n}\n"],"mappings":"oEAOA,IAAa,EAAqB,CAChC,mBAAoB,qBACpB,mBAAoB,oBACtB,EAEM,EAAmC,6BAmCnC,EAAgD,CACpD,YAAa,QACb,aAAc,CAAC,EACf,iBAAkB,OAClB,sBAAuB,KACvB,aAAc,KACd,iBAAkB,KAClB,wBAAyB,MAC3B,EAEM,EAAwD,IAAI,IAAI,CACpE,QACA,UACA,WACA,UACA,WACA,OACF,CAAC,EAWK,EAAiD,IAAI,IAAI,CAC7D,SACA,SACA,UACA,MACA,QACF,CAAC,EAEK,EAA0C,IAAI,IAAI,CAAC,OAAQ,OAAO,CAAC,EAEzE,SAAS,EACP,EAC4B,CAK5B,GAAM,CAAE,gBAAiB,EAAyB,GAAG,GAAS,EAG1D,EAAqC,EAWzC,GARE,EAAO,aAAe,OACrB,EAA0B,IAAI,EAAO,WAAW,GAC/C,CAAC,EAAwB,IAAI,EAAO,WAA8B,KAEpE,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,aAGZ,EAAO,aAAc,CACvB,IAAM,EAAW,EAAO,aAAa,OAClC,GAAQ,CAAC,EAA0B,IAAI,CAAG,CAC7C,EACI,EAAS,SAAW,EAAO,aAAa,SAC1C,EAAS,CAAE,GAAG,EAAQ,aAAc,CAAS,EAEjD,CAeA,OAPE,EAAO,yBAA2B,MAClC,CAAC,EAAiB,IAAI,EAAO,uBAAuB,IAEpD,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,yBAGT,CACT,CAMA,SAAgB,EAAqB,EAAiC,CACpE,OAAO,EAAe,WAAW,OAAO,CAC1C,CAWA,SAAS,EAAsB,EAAiC,CAC9D,OAAO,IAAmB,IAAM,EAAqB,CAAc,CACrE,CAKA,SAAgB,EACd,EACmB,CACnB,GAAI,EAAsB,CAAc,EACtC,OAAO,EAET,GAAI,CACF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IAClD,EAAO,aAAa,QAAQ,CAAG,EAOrC,OANI,IAAS,KAMN,EALE,CACL,GAAG,EACH,GAAG,EAAoB,KAAK,MAAM,CAAI,CAAC,CACzC,CAGJ,MAAQ,CACN,OAAO,CACT,CACF,CAKA,SAAgB,EACd,EACA,EACM,CACF,MAAsB,CAAc,EAGxC,GAAI,CACF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IAElD,EAAW,CAAE,GADE,EAAqB,CACpB,EAAc,GAAG,CAAQ,EAC/C,aAAa,QAAQ,EAAK,KAAK,UAAU,CAAQ,CAAC,EAC9C,OAAO,OAAW,KACpB,OAAO,cACL,IAAI,YACF,EACA,CAAE,OAAQ,CAAE,gBAAe,CAAE,CAC/B,CACF,CAEJ,OAAS,EAAK,CACZ,QAAQ,KAAK,0CAA2C,CAAG,CAC7D,CACF,CAEA,SAAS,EAAuB,EAAwB,CACtD,MAAO,GAAG,EAAmB,mBAAmB,GAAG,GACrD,CAcA,SAAgB,EACd,EACe,CACf,GAAI,CAAC,EAAQ,OAAO,KACpB,GAAI,CACF,IAAM,EAAM,EAAuB,CAAM,EACnC,EAAQ,aAAa,QAAQ,CAAG,EAEtC,OADA,aAAa,WAAW,CAAG,EACpB,CACT,OAAS,EAAK,CAEZ,OADA,QAAQ,KAAK,uCAAwC,CAAG,EACjD,IACT,CACF,CAEA,SAAgB,EAA8B,EAAwB,CACpE,GAAI,CACF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IACxD,aAAa,WAAW,CAAG,EACvB,OAAO,OAAW,KACpB,OAAO,cACL,IAAI,YACF,EACA,CAAE,OAAQ,CAAE,gBAAe,CAAE,CAC/B,CACF,CAEJ,OAAS,EAAK,CACZ,QAAQ,KACN,4CACA,EACA,CACF,CACF,CACF,CASA,SAAgB,EAAiC,EAQ/C,CACA,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,cACZ,EAAqB,CAAc,CACrC,GAEA,EAAA,EAAA,eAAgB,CACd,GAAI,OAAO,OAAW,IACpB,OAGF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IAElD,MAAkB,CACtB,EAAS,EAAqB,CAAc,CAAC,CAC/C,EAEM,EAAiB,GAAwB,CACzC,EAAM,MAAQ,GAChB,EAAU,CAEd,EAEM,EAAkC,GAAiB,CAEnD,EAAY,QAAQ,iBAAmB,GACzC,EAAU,CAEd,EAWA,OARA,EAAU,EAEV,OAAO,iBAAiB,UAAW,CAAa,EAChD,OAAO,iBACL,EACA,CACF,MAEa,CACX,OAAO,oBAAoB,UAAW,CAAa,EACnD,OAAO,oBACL,EACA,CACF,CACF,CACF,EAAG,CAAC,CAAc,CAAC,EAEnB,IAAM,EAAe,GAAwC,CAC3D,GAAI,EAAsB,CAAc,EAAG,CAKzC,EAAU,IAAU,CAAE,GAAG,EAAM,GAAG,CAAQ,EAAE,EAC5C,MACF,CACA,EAAqB,EAAgB,CAAO,CAC9C,EAEA,MAAO,CACL,QACA,eAAiB,GAAQ,EAAY,CAAE,YAAa,CAAI,CAAC,EACzD,gBAAkB,GAAS,EAAY,CAAE,aAAc,CAAK,CAAC,EAC7D,oBAAsB,GAAS,EAAY,CAAE,iBAAkB,CAAK,CAAC,EACrE,gBAAkB,GAAY,EAAY,CAAE,aAAc,CAAQ,CAAC,EACnE,oBAAsB,GACpB,EAAY,CAAE,iBAAkB,CAAS,CAAC,EAC5C,2BAA6B,GAC3B,EAAY,CAAE,wBAAyB,CAAK,CAAC,CACjD,CACF"}
|
|
1
|
+
{"version":3,"file":"conversation-local-storage.cjs","names":[],"sources":["../../src/utils/conversation-local-storage.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type {\n ConversationTab,\n ConversationMode,\n} from \"#/stores/conversation-store\";\nimport type { ViewMode } from \"#/components/features/files-tab/view-mode\";\nimport {\n DEFAULT_UNPINNED_OVERVIEW_GIT_PARTS,\n DEFAULT_UNPINNED_OVERVIEW_SECTIONS,\n VALID_CONVERSATION_OVERVIEW_GIT_PARTS,\n VALID_CONVERSATION_OVERVIEW_SECTIONS,\n} from \"#/components/features/conversation/conversation-overview-sections\";\n\nexport const LOCAL_STORAGE_KEYS = {\n CONVERSATION_STATE: \"conversation-state\",\n PENDING_TASK_DRAFT: \"pending-task-draft\",\n} as const;\n\nconst CONVERSATION_STATE_UPDATED_EVENT = \"conversation-state-updated\";\n\ntype ConversationStateUpdatedDetail = {\n conversationId: string;\n};\n\n/**\n * Consolidated conversation state stored in a single localStorage key.\n *\n * NOTE: the right-drawer open/closed state is intentionally *not* persisted\n * here. Users expect the drawer to start closed every time the app is\n * (re)loaded and only stay open when they opened it themselves during the\n * current session. That state lives in the in-memory Zustand\n * `useConversationStore` (`isRightPanelShown` / `hasRightPanelToggled`)\n * which survives in-app navigation but resets on full reloads. Older\n * builds wrote a `rightPanelShown` field into this blob; we accept and\n * silently ignore that field on read so we don't churn old localStorage.\n */\nexport interface ConversationState {\n selectedTab: ConversationTab | null;\n unpinnedTabs: string[];\n unpinnedOverviewSections?: string[];\n unpinnedOverviewGitParts?: string[];\n conversationMode: ConversationMode;\n subConversationTaskId: string | null;\n draftMessage: string | null;\n rightPanelShown?: boolean;\n /**\n * Legacy Files-tab Diff/Files toggle preference. Kept for blob\n * compatibility; the Files surface no longer hosts Diff/Commits\n * (those live in the sibling Commits conversation tab).\n */\n filesTabDiffView: boolean | null;\n /** User's persisted choice for the Files tab Rich/Plain content toggle. */\n filesTabContentViewMode: ViewMode;\n /** Whether the left-hand file tree is visible in the Files tab. */\n filesTabTreeVisible?: boolean;\n /** Open file tabs in the Files quick-row (basenames, closable). */\n filesTabOpenPaths?: string[];\n /** Currently selected path among `filesTabOpenPaths`, if any. */\n filesTabSelectedPath?: string | null;\n}\n\nconst DEFAULT_CONVERSATION_STATE: ConversationState = {\n selectedTab: \"files\",\n unpinnedTabs: [],\n unpinnedOverviewSections: [...DEFAULT_UNPINNED_OVERVIEW_SECTIONS],\n unpinnedOverviewGitParts: [...DEFAULT_UNPINNED_OVERVIEW_GIT_PARTS],\n conversationMode: \"code\",\n subConversationTaskId: null,\n draftMessage: null,\n rightPanelShown: false,\n filesTabDiffView: null,\n filesTabContentViewMode: \"rich\",\n filesTabTreeVisible: true,\n filesTabOpenPaths: [],\n filesTabSelectedPath: null,\n};\n\nconst VALID_CONVERSATION_TABS: ReadonlySet<ConversationTab> = new Set([\n \"files\",\n \"commits\",\n \"browser\",\n \"terminal\",\n \"planner\",\n \"tasklist\",\n \"usage\",\n]);\n\n// Tab keys that *used to* exist and were removed during the Files tab\n// refactor. We strip these out of any persisted state on read so that\n// returning users don't keep ghost entries (in `selectedTab` or\n// `unpinnedTabs`) forever — the UI has no way to surface them again to\n// be re-pinned or re-selected. We deliberately use an explicit denylist\n// here rather than a strict \"whitelist against VALID_CONVERSATION_TABS\"\n// filter because `unpinnedTabs` is typed `string[]` and other parts of\n// the app legitimately store arbitrary tab keys in it (sub-conversation\n// tab ids etc.).\nconst REMOVED_CONVERSATION_TABS: ReadonlySet<string> = new Set([\n \"editor\",\n \"served\",\n \"app\",\n \"vscode\",\n]);\n\nconst VALID_VIEW_MODES: ReadonlySet<ViewMode> = new Set([\"rich\", \"plain\"]);\n\nfunction sanitizeStoredState(\n stored: Record<string, unknown>,\n): Partial<ConversationState> {\n let result: Partial<ConversationState> = stored as Partial<ConversationState>;\n\n if (\n result.selectedTab != null &&\n (REMOVED_CONVERSATION_TABS.has(result.selectedTab) ||\n (result.selectedTab as string) === \"changes\" ||\n !VALID_CONVERSATION_TABS.has(result.selectedTab as ConversationTab))\n ) {\n const selectedTab = result.selectedTab as string;\n result = { ...result };\n if (selectedTab === \"changes\") {\n result.selectedTab = \"commits\";\n } else {\n delete result.selectedTab;\n }\n }\n\n if (result.unpinnedTabs) {\n const filtered = result.unpinnedTabs.filter(\n (tab) => tab !== \"changes\" && !REMOVED_CONVERSATION_TABS.has(tab),\n );\n if (filtered.length !== result.unpinnedTabs.length) {\n result = { ...result, unpinnedTabs: filtered };\n }\n }\n\n if (result.unpinnedOverviewSections) {\n const filtered = result.unpinnedOverviewSections.filter((section) =>\n VALID_CONVERSATION_OVERVIEW_SECTIONS.has(section),\n );\n if (filtered.length !== result.unpinnedOverviewSections.length) {\n result = { ...result, unpinnedOverviewSections: filtered };\n }\n }\n\n if (result.unpinnedOverviewGitParts) {\n const filtered = result.unpinnedOverviewGitParts.filter((part) =>\n VALID_CONVERSATION_OVERVIEW_GIT_PARTS.has(part),\n );\n if (filtered.length !== result.unpinnedOverviewGitParts.length) {\n result = { ...result, unpinnedOverviewGitParts: filtered };\n }\n }\n\n // Drop a corrupt/manually-edited `filesTabContentViewMode` so it falls\n // back to the typed default (\"rich\") instead of leaking a junk string\n // into ViewMode-typed consumers. TypeScript can't help us here — the\n // value comes from `JSON.parse(localStorage.getItem(...))` which is\n // unknown at runtime.\n if (\n result.filesTabContentViewMode != null &&\n !VALID_VIEW_MODES.has(result.filesTabContentViewMode)\n ) {\n result = { ...result };\n delete result.filesTabContentViewMode;\n }\n\n if (\n result.rightPanelShown != null &&\n typeof result.rightPanelShown !== \"boolean\"\n ) {\n result = { ...result };\n delete result.rightPanelShown;\n }\n\n if (\n result.filesTabTreeVisible != null &&\n typeof result.filesTabTreeVisible !== \"boolean\"\n ) {\n result = { ...result };\n delete result.filesTabTreeVisible;\n }\n\n if (result.filesTabOpenPaths != null) {\n if (!Array.isArray(result.filesTabOpenPaths)) {\n result = { ...result };\n delete result.filesTabOpenPaths;\n } else {\n const filtered = result.filesTabOpenPaths.filter(\n (path): path is string => typeof path === \"string\" && path.length > 0,\n );\n if (filtered.length !== result.filesTabOpenPaths.length) {\n result = { ...result, filesTabOpenPaths: filtered };\n }\n }\n }\n\n if (\n result.filesTabSelectedPath != null &&\n typeof result.filesTabSelectedPath !== \"string\"\n ) {\n result = { ...result };\n delete result.filesTabSelectedPath;\n }\n\n return result;\n}\n\n/**\n * Check if a conversation ID is a temporary task ID that should not be persisted.\n * Task IDs have the format \"task-{uuid}\" and are used during V1 conversation initialization.\n */\nexport function isTaskConversationId(conversationId: string): boolean {\n return conversationId.startsWith(\"task-\");\n}\n\n/**\n * Whether persistence should be skipped for this conversation id.\n *\n * Skips:\n * - empty string ids (callers outside of a conversation route, e.g.\n * rendered inside a unit test without a NavigationProvider)\n * - \"task-...\" ids used as placeholders during V1 conversation\n * initialization\n */\nfunction shouldSkipPersistence(conversationId: string): boolean {\n return conversationId === \"\" || isTaskConversationId(conversationId);\n}\n\n/**\n * Get the full conversation state from localStorage.\n */\nexport function getConversationState(\n conversationId: string,\n): ConversationState {\n if (shouldSkipPersistence(conversationId)) {\n return DEFAULT_CONVERSATION_STATE;\n }\n try {\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n const item = localStorage.getItem(key);\n if (item !== null) {\n return {\n ...DEFAULT_CONVERSATION_STATE,\n ...sanitizeStoredState(JSON.parse(item)),\n };\n }\n return DEFAULT_CONVERSATION_STATE;\n } catch {\n return DEFAULT_CONVERSATION_STATE;\n }\n}\n\n/**\n * Set the conversation state in localStorage, merging with existing state.\n */\nexport function setConversationState(\n conversationId: string,\n updates: Partial<ConversationState>,\n): void {\n if (shouldSkipPersistence(conversationId)) {\n return;\n }\n try {\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n const currentState = getConversationState(conversationId);\n const newState = { ...currentState, ...updates };\n localStorage.setItem(key, JSON.stringify(newState));\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent<ConversationStateUpdatedDetail>(\n CONVERSATION_STATE_UPDATED_EVENT,\n { detail: { conversationId } },\n ),\n );\n }\n } catch (err) {\n console.warn(\"Failed to set conversation localStorage\", err);\n }\n}\n\nfunction getPendingTaskDraftKey(taskId: string): string {\n return `${LOCAL_STORAGE_KEYS.PENDING_TASK_DRAFT}-${taskId}`;\n}\n\nexport function setPendingTaskDraft(\n taskId: string | null | undefined,\n draftMessage: string,\n): void {\n if (!taskId) return;\n try {\n localStorage.setItem(getPendingTaskDraftKey(taskId), draftMessage);\n } catch (err) {\n console.warn(\"Failed to store pending task draft\", err);\n }\n}\n\nexport function consumePendingTaskDraft(\n taskId: string | null | undefined,\n): string | null {\n if (!taskId) return null;\n try {\n const key = getPendingTaskDraftKey(taskId);\n const draft = localStorage.getItem(key);\n localStorage.removeItem(key);\n return draft;\n } catch (err) {\n console.warn(\"Failed to consume pending task draft\", err);\n return null;\n }\n}\n\nexport function clearConversationLocalStorage(conversationId: string) {\n try {\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n localStorage.removeItem(key);\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent<ConversationStateUpdatedDetail>(\n CONVERSATION_STATE_UPDATED_EVENT,\n { detail: { conversationId } },\n ),\n );\n }\n } catch (err) {\n console.warn(\n \"Failed to clear conversation localStorage\",\n conversationId,\n err,\n );\n }\n}\n\n/**\n * React hook for conversation-scoped localStorage state.\n * Returns the full state and individual setters for each property.\n *\n * The right-drawer open state is deliberately not represented here —\n * see the note on `ConversationState` for the rationale.\n */\nexport function useConversationLocalStorageState(conversationId: string): {\n state: ConversationState;\n setSelectedTab: (tab: ConversationTab | null) => void;\n setUnpinnedTabs: (tabs: string[]) => void;\n setUnpinnedOverviewSections?: (sections: string[]) => void;\n setUnpinnedOverviewGitParts?: (parts: string[]) => void;\n setConversationMode: (mode: ConversationMode) => void;\n setDraftMessage: (message: string | null) => void;\n setRightPanelShown?: (shown: boolean) => void;\n setFilesTabDiffView: (diffView: boolean | null) => void;\n setFilesTabContentViewMode: (mode: ViewMode) => void;\n setFilesTabTreeVisible?: (visible: boolean) => void;\n setFilesTabOpenState?: (\n openPaths: string[],\n selectedPath: string | null,\n ) => void;\n} {\n const [state, setState] = useState<ConversationState>(() =>\n getConversationState(conversationId),\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n const key = `${LOCAL_STORAGE_KEYS.CONVERSATION_STATE}-${conversationId}`;\n\n const syncState = () => {\n setState(getConversationState(conversationId));\n };\n\n const handleStorage = (event: StorageEvent) => {\n if (event.key === key) {\n syncState();\n }\n };\n\n const handleConversationStateUpdated = (event: Event) => {\n const customEvent = event as CustomEvent<ConversationStateUpdatedDetail>;\n if (customEvent.detail?.conversationId === conversationId) {\n syncState();\n }\n };\n\n // Ensure this hook reflects latest state for the current conversation ID.\n syncState();\n\n window.addEventListener(\"storage\", handleStorage);\n window.addEventListener(\n CONVERSATION_STATE_UPDATED_EVENT,\n handleConversationStateUpdated,\n );\n\n return () => {\n window.removeEventListener(\"storage\", handleStorage);\n window.removeEventListener(\n CONVERSATION_STATE_UPDATED_EVENT,\n handleConversationStateUpdated,\n );\n };\n }, [conversationId]);\n\n const updateState = (updates: Partial<ConversationState>) => {\n if (shouldSkipPersistence(conversationId)) {\n // No durable storage for this id (empty / task placeholder), but the\n // hook is still useful as ephemeral in-memory state — update the\n // local React mirror directly so toggles in the UI behave normally\n // until a real conversation id arrives.\n setState((prev) => ({ ...prev, ...updates }));\n return;\n }\n setConversationState(conversationId, updates);\n };\n\n return {\n state,\n setSelectedTab: (tab) => updateState({ selectedTab: tab }),\n setUnpinnedTabs: (tabs) => updateState({ unpinnedTabs: tabs }),\n setUnpinnedOverviewSections: (sections) =>\n updateState({ unpinnedOverviewSections: sections }),\n setUnpinnedOverviewGitParts: (parts) =>\n updateState({ unpinnedOverviewGitParts: parts }),\n setConversationMode: (mode) => updateState({ conversationMode: mode }),\n setDraftMessage: (message) => updateState({ draftMessage: message }),\n setRightPanelShown: (shown) => updateState({ rightPanelShown: shown }),\n setFilesTabDiffView: (diffView) =>\n updateState({ filesTabDiffView: diffView }),\n setFilesTabContentViewMode: (mode) =>\n updateState({ filesTabContentViewMode: mode }),\n setFilesTabTreeVisible: (visible) =>\n updateState({ filesTabTreeVisible: visible }),\n setFilesTabOpenState: (openPaths, selectedPath) =>\n updateState({\n filesTabOpenPaths: openPaths,\n filesTabSelectedPath: selectedPath,\n }),\n };\n}\n"],"mappings":"8JAaA,IAAa,EAAqB,CAChC,mBAAoB,qBACpB,mBAAoB,oBACtB,EAEM,EAAmC,6BA2CnC,EAAgD,CACpD,YAAa,QACb,aAAc,CAAC,EACf,yBAA0B,CAAC,GAAG,EAAA,kCAAkC,EAChE,yBAA0B,CAAC,GAAG,EAAA,mCAAmC,EACjE,iBAAkB,OAClB,sBAAuB,KACvB,aAAc,KACd,gBAAiB,GACjB,iBAAkB,KAClB,wBAAyB,OACzB,oBAAqB,GACrB,kBAAmB,CAAC,EACpB,qBAAsB,IACxB,EAEM,EAAwD,IAAI,IAAI,CACpE,QACA,UACA,UACA,WACA,UACA,WACA,OACF,CAAC,EAWK,EAAiD,IAAI,IAAI,CAC7D,SACA,SACA,MACA,QACF,CAAC,EAEK,EAA0C,IAAI,IAAI,CAAC,OAAQ,OAAO,CAAC,EAEzE,SAAS,EACP,EAC4B,CAC5B,IAAI,EAAqC,EAEzC,GACE,EAAO,aAAe,OACrB,EAA0B,IAAI,EAAO,WAAW,GAC9C,EAAO,cAA2B,WACnC,CAAC,EAAwB,IAAI,EAAO,WAA8B,GACpE,CACA,IAAM,EAAc,EAAO,YAC3B,EAAS,CAAE,GAAG,CAAO,EACjB,IAAgB,UAClB,EAAO,YAAc,UAErB,OAAO,EAAO,WAElB,CAEA,GAAI,EAAO,aAAc,CACvB,IAAM,EAAW,EAAO,aAAa,OAClC,GAAQ,IAAQ,WAAa,CAAC,EAA0B,IAAI,CAAG,CAClE,EACI,EAAS,SAAW,EAAO,aAAa,SAC1C,EAAS,CAAE,GAAG,EAAQ,aAAc,CAAS,EAEjD,CAEA,GAAI,EAAO,yBAA0B,CACnC,IAAM,EAAW,EAAO,yBAAyB,OAAQ,GACvD,EAAA,qCAAqC,IAAI,CAAO,CAClD,EACI,EAAS,SAAW,EAAO,yBAAyB,SACtD,EAAS,CAAE,GAAG,EAAQ,yBAA0B,CAAS,EAE7D,CAEA,GAAI,EAAO,yBAA0B,CACnC,IAAM,EAAW,EAAO,yBAAyB,OAAQ,GACvD,EAAA,sCAAsC,IAAI,CAAI,CAChD,EACI,EAAS,SAAW,EAAO,yBAAyB,SACtD,EAAS,CAAE,GAAG,EAAQ,yBAA0B,CAAS,EAE7D,CA+BA,GAvBE,EAAO,yBAA2B,MAClC,CAAC,EAAiB,IAAI,EAAO,uBAAuB,IAEpD,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,yBAId,EAAO,iBAAmB,MAC1B,OAAO,EAAO,iBAAoB,YAElC,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,iBAId,EAAO,qBAAuB,MAC9B,OAAO,EAAO,qBAAwB,YAEtC,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,qBAGZ,EAAO,mBAAqB,KAC9B,GAAI,CAAC,MAAM,QAAQ,EAAO,iBAAiB,EACzC,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,sBACT,CACL,IAAM,EAAW,EAAO,kBAAkB,OACvC,GAAyB,OAAO,GAAS,UAAY,EAAK,OAAS,CACtE,EACI,EAAS,SAAW,EAAO,kBAAkB,SAC/C,EAAS,CAAE,GAAG,EAAQ,kBAAmB,CAAS,EAEtD,CAWF,OAPE,EAAO,sBAAwB,MAC/B,OAAO,EAAO,sBAAyB,WAEvC,EAAS,CAAE,GAAG,CAAO,EACrB,OAAO,EAAO,sBAGT,CACT,CAMA,SAAgB,EAAqB,EAAiC,CACpE,OAAO,EAAe,WAAW,OAAO,CAC1C,CAWA,SAAS,EAAsB,EAAiC,CAC9D,OAAO,IAAmB,IAAM,EAAqB,CAAc,CACrE,CAKA,SAAgB,EACd,EACmB,CACnB,GAAI,EAAsB,CAAc,EACtC,OAAO,EAET,GAAI,CACF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IAClD,EAAO,aAAa,QAAQ,CAAG,EAOrC,OANI,IAAS,KAMN,EALE,CACL,GAAG,EACH,GAAG,EAAoB,KAAK,MAAM,CAAI,CAAC,CACzC,CAGJ,MAAQ,CACN,OAAO,CACT,CACF,CAKA,SAAgB,EACd,EACA,EACM,CACF,MAAsB,CAAc,EAGxC,GAAI,CACF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IAElD,EAAW,CAAE,GADE,EAAqB,CACpB,EAAc,GAAG,CAAQ,EAC/C,aAAa,QAAQ,EAAK,KAAK,UAAU,CAAQ,CAAC,EAC9C,OAAO,OAAW,KACpB,OAAO,cACL,IAAI,YACF,EACA,CAAE,OAAQ,CAAE,gBAAe,CAAE,CAC/B,CACF,CAEJ,OAAS,EAAK,CACZ,QAAQ,KAAK,0CAA2C,CAAG,CAC7D,CACF,CAEA,SAAS,EAAuB,EAAwB,CACtD,MAAO,GAAG,EAAmB,mBAAmB,GAAG,GACrD,CAEA,SAAgB,EACd,EACA,EACM,CACD,KACL,GAAI,CACF,aAAa,QAAQ,EAAuB,CAAM,EAAG,CAAY,CACnE,OAAS,EAAK,CACZ,QAAQ,KAAK,qCAAsC,CAAG,CACxD,CACF,CAEA,SAAgB,EACd,EACe,CACf,GAAI,CAAC,EAAQ,OAAO,KACpB,GAAI,CACF,IAAM,EAAM,EAAuB,CAAM,EACnC,EAAQ,aAAa,QAAQ,CAAG,EAEtC,OADA,aAAa,WAAW,CAAG,EACpB,CACT,OAAS,EAAK,CAEZ,OADA,QAAQ,KAAK,uCAAwC,CAAG,EACjD,IACT,CACF,CAEA,SAAgB,EAA8B,EAAwB,CACpE,GAAI,CACF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IACxD,aAAa,WAAW,CAAG,EACvB,OAAO,OAAW,KACpB,OAAO,cACL,IAAI,YACF,EACA,CAAE,OAAQ,CAAE,gBAAe,CAAE,CAC/B,CACF,CAEJ,OAAS,EAAK,CACZ,QAAQ,KACN,4CACA,EACA,CACF,CACF,CACF,CASA,SAAgB,EAAiC,EAgB/C,CACA,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,cACZ,EAAqB,CAAc,CACrC,GAEA,EAAA,EAAA,eAAgB,CACd,GAAI,OAAO,OAAW,IACpB,OAGF,IAAM,EAAM,GAAG,EAAmB,mBAAmB,GAAG,IAElD,MAAkB,CACtB,EAAS,EAAqB,CAAc,CAAC,CAC/C,EAEM,EAAiB,GAAwB,CACzC,EAAM,MAAQ,GAChB,EAAU,CAEd,EAEM,EAAkC,GAAiB,CAEnD,EAAY,QAAQ,iBAAmB,GACzC,EAAU,CAEd,EAWA,OARA,EAAU,EAEV,OAAO,iBAAiB,UAAW,CAAa,EAChD,OAAO,iBACL,EACA,CACF,MAEa,CACX,OAAO,oBAAoB,UAAW,CAAa,EACnD,OAAO,oBACL,EACA,CACF,CACF,CACF,EAAG,CAAC,CAAc,CAAC,EAEnB,IAAM,EAAe,GAAwC,CAC3D,GAAI,EAAsB,CAAc,EAAG,CAKzC,EAAU,IAAU,CAAE,GAAG,EAAM,GAAG,CAAQ,EAAE,EAC5C,MACF,CACA,EAAqB,EAAgB,CAAO,CAC9C,EAEA,MAAO,CACL,QACA,eAAiB,GAAQ,EAAY,CAAE,YAAa,CAAI,CAAC,EACzD,gBAAkB,GAAS,EAAY,CAAE,aAAc,CAAK,CAAC,EAC7D,4BAA8B,GAC5B,EAAY,CAAE,yBAA0B,CAAS,CAAC,EACpD,4BAA8B,GAC5B,EAAY,CAAE,yBAA0B,CAAM,CAAC,EACjD,oBAAsB,GAAS,EAAY,CAAE,iBAAkB,CAAK,CAAC,EACrE,gBAAkB,GAAY,EAAY,CAAE,aAAc,CAAQ,CAAC,EACnE,mBAAqB,GAAU,EAAY,CAAE,gBAAiB,CAAM,CAAC,EACrE,oBAAsB,GACpB,EAAY,CAAE,iBAAkB,CAAS,CAAC,EAC5C,2BAA6B,GAC3B,EAAY,CAAE,wBAAyB,CAAK,CAAC,EAC/C,uBAAyB,GACvB,EAAY,CAAE,oBAAqB,CAAQ,CAAC,EAC9C,sBAAuB,EAAW,IAChC,EAAY,CACV,kBAAmB,EACnB,qBAAsB,CACxB,CAAC,CACL,CACF"}
|
|
@@ -19,18 +19,26 @@ export declare const LOCAL_STORAGE_KEYS: {
|
|
|
19
19
|
export interface ConversationState {
|
|
20
20
|
selectedTab: ConversationTab | null;
|
|
21
21
|
unpinnedTabs: string[];
|
|
22
|
+
unpinnedOverviewSections?: string[];
|
|
23
|
+
unpinnedOverviewGitParts?: string[];
|
|
22
24
|
conversationMode: ConversationMode;
|
|
23
25
|
subConversationTaskId: string | null;
|
|
24
26
|
draftMessage: string | null;
|
|
27
|
+
rightPanelShown?: boolean;
|
|
25
28
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* otherwise).
|
|
29
|
+
* Legacy Files-tab Diff/Files toggle preference. Kept for blob
|
|
30
|
+
* compatibility; the Files surface no longer hosts Diff/Commits
|
|
31
|
+
* (those live in the sibling Commits conversation tab).
|
|
30
32
|
*/
|
|
31
33
|
filesTabDiffView: boolean | null;
|
|
32
34
|
/** User's persisted choice for the Files tab Rich/Plain content toggle. */
|
|
33
35
|
filesTabContentViewMode: ViewMode;
|
|
36
|
+
/** Whether the left-hand file tree is visible in the Files tab. */
|
|
37
|
+
filesTabTreeVisible?: boolean;
|
|
38
|
+
/** Open file tabs in the Files quick-row (basenames, closable). */
|
|
39
|
+
filesTabOpenPaths?: string[];
|
|
40
|
+
/** Currently selected path among `filesTabOpenPaths`, if any. */
|
|
41
|
+
filesTabSelectedPath?: string | null;
|
|
34
42
|
}
|
|
35
43
|
/**
|
|
36
44
|
* Check if a conversation ID is a temporary task ID that should not be persisted.
|
|
@@ -59,8 +67,13 @@ export declare function useConversationLocalStorageState(conversationId: string)
|
|
|
59
67
|
state: ConversationState;
|
|
60
68
|
setSelectedTab: (tab: ConversationTab | null) => void;
|
|
61
69
|
setUnpinnedTabs: (tabs: string[]) => void;
|
|
70
|
+
setUnpinnedOverviewSections?: (sections: string[]) => void;
|
|
71
|
+
setUnpinnedOverviewGitParts?: (parts: string[]) => void;
|
|
62
72
|
setConversationMode: (mode: ConversationMode) => void;
|
|
63
73
|
setDraftMessage: (message: string | null) => void;
|
|
74
|
+
setRightPanelShown?: (shown: boolean) => void;
|
|
64
75
|
setFilesTabDiffView: (diffView: boolean | null) => void;
|
|
65
76
|
setFilesTabContentViewMode: (mode: ViewMode) => void;
|
|
77
|
+
setFilesTabTreeVisible?: (visible: boolean) => void;
|
|
78
|
+
setFilesTabOpenState?: (openPaths: string[], selectedPath: string | null) => void;
|
|
66
79
|
};
|