@openhands/agent-canvas 1.15.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-BKvmTf82.js → acp-providers-CX3Lh9gj.js} +1 -1
- package/build/assets/active-backend-context-CrHTlgvN.js +2 -0
- package/build/assets/{agent-context-settings-D3PjSTU1.js → agent-context-settings-DSZlXrLj.js} +1 -1
- package/build/assets/{agent-profiles-settings-D4cY5U2T.js → agent-profiles-settings-Dzgb7G9z.js} +1 -1
- 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-BJyfWp6p.js → api-error-message-B-XdSk3b.js} +1 -1
- package/build/assets/api-key-entry-screen-qTzrmJcr.js +1 -0
- package/build/assets/{app-settings-CbHqzQus.js → app-settings-dbnneVaV.js} +1 -1
- package/build/assets/automation-detail-BmwlCUAB.js +3 -0
- package/build/assets/{automation-export-BRopEHMu.js → automation-export-D3a3of4G.js} +1 -1
- package/build/assets/{automation-git-sync-CzyS4cn1.js → automation-git-sync-CprN5DcU.js} +1 -1
- package/build/assets/automation-setup-route-C40kXjMY.js +1 -0
- package/build/assets/{automation-templates-C_0FZgLG.js → automation-templates-BRppNh99.js} +1 -1
- package/build/assets/automations-list-DuNcRawl.js +1 -0
- package/build/assets/{back-nav-button-Dm9tIjVf.js → back-nav-button-Cjl_hoxq.js} +1 -1
- package/build/assets/backend-form-modal-lhGwzXFI.js +1 -0
- package/build/assets/{backend-synced-settings-badge-3fOwg6Bd.js → backend-synced-settings-badge-DPkz30BE.js} +1 -1
- package/build/assets/{badge-D4SqUCsR.js → badge-BU3S0VtE.js} +1 -1
- package/build/assets/{base-modal-C7_BDl_U.js → base-modal-D_L0oEbG.js} +1 -1
- package/build/assets/{bot-C-0Wu7vQ.js → bot-dMYHVfYM.js} +1 -1
- package/build/assets/{brand-button-Dxv6PDeN.js → brand-button-BAfk4wGP.js} +1 -1
- package/build/assets/browser-DSAo0tz1.js +46 -0
- package/build/assets/{browser-tab-BAl4ckJE.js → browser-tab-C9vy56R5.js} +1 -1
- 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-DWwR2cgI.js → chat-send-button-MUQqCZCS.js} +1 -1
- 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-CBh_qomE.js → circle-plus-check-toggle-BO_kFZt3.js} +1 -1
- package/build/assets/{cloud-funnel-analytics-287iIERo.js → cloud-funnel-analytics-CztBCCPp.js} +1 -1
- package/build/assets/{cog-C4rrw-ZK.js → cog-D-MPQW6G.js} +1 -1
- package/build/assets/command-menu--UIlGL72.js +1 -0
- package/build/assets/{commits-tab-DZtJgaDM.js → commits-tab-AnZwLvh-.js} +1 -1
- package/build/assets/{condenser-settings-BcNmYR4s.js → condenser-settings-DmEOje-7.js} +1 -1
- package/build/assets/{confirmation-modal-Bk4JRcCM.js → confirmation-modal-Dv1ktp8K.js} +1 -1
- package/build/assets/{context-menu-list-item-lVYETtY5.js → context-menu-list-item-I86vKcmM.js} +1 -1
- 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-tab-empty-state-HJtkmHZj.js → conversation-tab-empty-state-FIbh_lc8.js} +1 -1
- package/build/assets/{copy-to-clipboard-button-Cjkswvnj.js → copy-to-clipboard-button-Ca8iSkkA.js} +1 -1
- package/build/assets/{device-verify-EZhHhBT7.js → device-verify-Bhn2e_Ye.js} +1 -1
- package/build/assets/{dropdown-classes-DJe-E6MC.js → dropdown-classes-Bc1djN0-.js} +1 -1
- package/build/assets/{edit-automation-modal-D-urtv8n.js → edit-automation-modal-DadGbJ2u.js} +1 -1
- package/build/assets/empty-state-BoGVDecT.js +1 -0
- package/build/assets/{entry.client-C7Bi2tkU.js → entry.client-CqyPPjOq.js} +2 -2
- package/build/assets/{enum-filter-dropdown-DliX_Lo0.js → enum-filter-dropdown-Bgca129f.js} +1 -1
- package/build/assets/{environment-switch-overlay-CEKrFiMw.js → environment-switch-overlay-BmBRT7gv.js} +1 -1
- package/build/assets/{error-state-BALXiBNy.js → error-state-Body8Ngd.js} +1 -1
- package/build/assets/extensions-hub-CcDqq_vR.js +1 -0
- package/build/assets/extensions-navigation-Cr4yzYk4.js +1 -0
- package/build/assets/{external-link-DFpYunfj.js → external-link-DKUlnCQV.js} +1 -1
- package/build/assets/files-tab-D4o2VyE_.js +1 -0
- package/build/assets/{form-control-classes-CGw40z5h.js → form-control-classes-Bkh5FGrD.js} +1 -1
- 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-ai8qaNkD.js → git-repo-dropdown-4ROKl2cB.js} +1 -1
- package/build/assets/git-repo-dropdown-BkqzkMmM.js +1 -0
- package/build/assets/{highlighted-source-view-C3sxykQi.js → highlighted-source-view-BFRxGT_Q.js} +1 -1
- 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-Cn5za3rg.js → key-BmVyxs-2.js} +1 -1
- package/build/assets/{launch-C1ieiOGe.js → launch-IrTDEFCs.js} +1 -1
- package/build/assets/list-filter-DsEK7NFC.js +1 -0
- package/build/assets/{list-todo-Cuu-STFc.js → list-todo-apgLVjMw.js} +1 -1
- 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-0L3ZTToZ.js → loading-spinner-BY9N3pOe.js} +1 -1
- package/build/assets/manage-backends-modal-BrPV3oB-.js +1 -0
- package/build/assets/manifest-80fb1c29.js +1 -0
- package/build/assets/{manifest-subpage-layout-BGhiUQbA.js → manifest-subpage-layout-CAOYzrYp.js} +1 -1
- package/build/assets/{map-provider-B9LTm23I.js → map-provider-Cu3Zgumb.js} +1 -1
- package/build/assets/markdown-renderer-BzTlxI8x.js +8 -0
- package/build/assets/{mcp-CKbR4Vft.js → mcp-BTs_SXfZ.js} +1 -1
- package/build/assets/{mcp-marketplace-utils-C13fFccR.js → mcp-marketplace-utils-AIBzzHTO.js} +1 -1
- package/build/assets/{mcp-page-Bm4K2NQq.js → mcp-page-BEBYqH_K.js} +2 -2
- package/build/assets/messages-DKV9cRc2.js +41 -0
- package/build/assets/{modal-body-CMOc2tLl.js → modal-body-BxZjsju9.js} +1 -1
- package/build/assets/{modal-classes-BAb4Y_BG.js → modal-classes-C8eycCwG.js} +1 -1
- package/build/assets/{modal-close-button-CkJ0Ktjj.js → modal-close-button-DDzdRvCs.js} +1 -1
- package/build/assets/{mouse-pointer-click-CsgRs_-r.js → mouse-pointer-click-Co2uyaPA.js} +1 -1
- package/build/assets/onboarding-DV_OXoeP.js +1 -0
- package/build/assets/onboarding-modal-rkyBYkeQ.js +1 -0
- package/build/assets/{organization-service.api-C8XpQ0pM.js → organization-service.api-DrYNkEN_.js} +1 -1
- package/build/assets/{pencil-Clh1Wjvh.js → pencil-47jAZH_V.js} +1 -1
- package/build/assets/pin-By41Vl5J.js +1 -0
- package/build/assets/{planner-tab-DQvDU3ap.js → planner-tab-C9uZmhme.js} +1 -1
- package/build/assets/{plug-BuQhHSSG.js → plug-CG5HFcNG.js} +1 -1
- 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-A9pGxxai.js → puzzle-JM_QaRm0.js} +1 -1
- package/build/assets/recommended-automations-launcher-6ABrI9Cy.js +1 -0
- package/build/assets/{refresh-cw-Bh69DyYO.js → refresh-cw-3q3Frrii.js} +1 -1
- 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/{sdk-section-page-HTffvm7Q.js → sdk-section-page-BlFiizlG.js} +1 -1
- package/build/assets/{secret-form-HTUbYw5o.js → secret-form-BB7the8W.js} +1 -1
- package/build/assets/secrets-service-ByZVENbp.js +1 -0
- package/build/assets/{secrets-settings-BizaTEr1.js → secrets-settings-B_GpxKW2.js} +1 -1
- package/build/assets/{settings-BlmrkwRi.js → settings-C0EWuBtA.js} +1 -1
- package/build/assets/settings-CKqk8ZnH.js +1 -0
- package/build/assets/{settings-dropdown-input-tM0A0ipy.js → settings-dropdown-input-BcwylHs2.js} +1 -1
- package/build/assets/{settings-index-CKq0b0Vg.js → settings-index-5w5UW2K3.js} +1 -1
- package/build/assets/{settings-input-C03KUoSC.js → settings-input-Db-1g8Ql.js} +1 -1
- package/build/assets/{settings-list-classes-BJ0g8rWj.js → settings-list-classes-BzeSZbF2.js} +1 -1
- package/build/assets/{settings-modal-AzEF1QPP.js → settings-modal-DfJ3tcJQ.js} +1 -1
- package/build/assets/settings-service.api-DJ1r62Zr.js +1 -0
- package/build/assets/{settings-switch-CQE0EGC-.js → settings-switch-CS-dJDmA.js} +1 -1
- package/build/assets/{settings-utils-ClYOkbbI.js → settings-utils-UYpEdPuD.js} +1 -1
- package/build/assets/shared-conversation-CA5ISEDy.js +1 -0
- package/build/assets/{shield-check-CFDViW82.js → shield-check-D2aCRd16.js} +1 -1
- package/build/assets/{sidebar-layout-D3hE08wK.js → sidebar-layout-D6fS8-Gl.js} +1 -1
- package/build/assets/{sidebar-mobile-menu-toggle-BOtyJHwE.js → sidebar-mobile-menu-toggle-C_fb0Jki.js} +1 -1
- package/build/assets/sidebar-nav-link-DQQcMf1A.js +1 -0
- package/build/assets/{sidebar-onboarding-checklist-storage-3qYflszY.js → sidebar-onboarding-checklist-storage-BBkeI6Bp.js} +1 -1
- package/build/assets/sidebar-store-DGqHkVLw.js +1 -0
- package/build/assets/{skill-card-pill-row-CFxjoqxn.js → skill-card-pill-row-B27-xyig.js} +1 -1
- 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-CPQJ6A-I.js → skill-icon-badge-RQkq8wvl.js} +1 -1
- 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-Dl06rkpY.js → styled-tooltip-C4jf5Fv9.js} +1 -1
- package/build/assets/{task-list-tab-04GNQuii.js → task-list-tab-C5zcaktH.js} +1 -1
- package/build/assets/{terminal-Cj0iHIW7.js → terminal-CNElN42a.js} +2 -2
- package/build/assets/{toggle-switch-Fd_QGz0r.js → toggle-switch-ChOLXv2n.js} +1 -1
- package/build/assets/{trash-2-Dl8_RGz0.js → trash-2-D7K26eDO.js} +1 -1
- package/build/assets/{trash-_RMt7Ayc.js → trash-D-HYiVYM.js} +1 -1
- package/build/assets/{triangle-alert-SM-q4NU_.js → triangle-alert-CtdXWHUI.js} +1 -1
- package/build/assets/{typography-SgFy466J.js → typography-v1KN0tzi.js} +1 -1
- 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-B2NS8nA5.js → use-activate-agent-profile-BLfmvDiG.js} +1 -1
- package/build/assets/use-agent-profiles-Bd9Bvvp1.js +1 -0
- package/build/assets/{use-automation-health-BxXdzZMP.js → use-automation-health-E6NZi9rb.js} +1 -1
- package/build/assets/{use-automations-zYb0dUny.js → use-automations-xijQKIl9.js} +1 -1
- package/build/assets/{use-can-manage-org-profiles-BWMahtUh.js → use-can-manage-org-profiles-CrJP5262.js} +1 -1
- package/build/assets/use-canvas-extensions-Bi693ujJ.js +1 -0
- package/build/assets/{use-cloud-current-user-id-CPHMDG-C.js → use-cloud-current-user-id-CDfAHpPX.js} +1 -1
- package/build/assets/use-config-A9QovgXO.js +1 -0
- package/build/assets/{use-create-conversation-DwN5vv2f.js → use-create-conversation-Dx3l7mFZ.js} +1 -1
- package/build/assets/use-create-secret-B9cUFWRG.js +1 -0
- package/build/assets/{use-get-secrets-BT4ihRwj.js → use-get-secrets-K3jmk-LH.js} +1 -1
- package/build/assets/use-is-authed-nTBcM7dE.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-CUZW6yXP.js → use-save-settings-DYqkKv7T.js} +1 -1
- package/build/assets/{use-settings-C5VhGpqd.js → use-settings-DSXLbvBl.js} +1 -1
- package/build/assets/{use-settings-nav-items-DHaUu1Dg.js → use-settings-nav-items-CwRw-CmX.js} +1 -1
- package/build/assets/use-tracking-D53y3TH9.js +3 -0
- package/build/assets/{use-user-conversation-DT0_QCnL.js → use-user-conversation-B9Gebw_g.js} +1 -1
- package/build/assets/{useInfiniteQuery-CgeUQPfs.js → useInfiniteQuery-C926xzY4.js} +1 -1
- package/build/assets/{useMutation-DFnzkf6f.js → useMutation-B-qc391N.js} +1 -1
- package/build/assets/{useQueries-BhbrGEf1.js → useQueries-DlbhlH9I.js} +1 -1
- package/build/assets/{useQuery-BXWbZBZl.js → useQuery-BSTgq1rl.js} +1 -1
- package/build/assets/utils-CN5ZfZy1.js +1 -0
- package/build/assets/{vendor~conversation-panel~conversation-CTvDDiXg.js → vendor~conversation-panel~conversation-C8Fn4XOf.js} +1 -1
- package/build/assets/{vendor~entry.client-BFE7Llz9.js → vendor~entry.client-CoCfUXUF.js} +1 -1
- package/build/assets/{vendor~entry.client-BaKt_PIp.js → vendor~entry.client-DA2izTjq.js} +1 -1
- package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-DqZDXfg2.js} +1 -1
- package/build/assets/{vendor~index-home~home~conversation-panel~conversation-BTyukeM-.js → vendor~index-home~home~conversation-panel~conversation-hWywRBaR.js} +1 -1
- package/build/assets/{vendor~root-layout-BlUaZ18v.js → vendor~root-layout-C9Ju9DQg.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation-BYAWJwQX.js → vendor~root-layout~conversation-panel~conversation-BMbMgaGu.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-CHaLEBVR.js → vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BWir3rJs.js} +1 -1
- 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~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iyia17eu-Chf7vmKB.js} +1 -1
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-Dtu7BpYk.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~nj1hli3r-DP9wmsjo.js} +2 -2
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-DonTKfQD.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-CUmIwQCN.js} +117 -13
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-BgxDvUcf.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C7HiY4Ae.js} +42 -3
- package/build/assets/{verification-settings-Bj6bo097.js → verification-settings-gw_q6vkL.js} +1 -1
- package/build/assets/{wrench-hi7Q13dF.js → wrench-CUEI1krB.js} +1 -1
- package/build/assets/{x-DkgltWa0.js → x-DJdhbdmt.js} +1 -1
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +32 -16
- package/build/locales/ca/openhands.json +32 -16
- package/build/locales/de/openhands.json +32 -16
- package/build/locales/en/openhands.json +32 -16
- package/build/locales/es/openhands.json +32 -16
- package/build/locales/fr/openhands.json +32 -16
- package/build/locales/it/openhands.json +32 -16
- package/build/locales/ja/openhands.json +32 -16
- package/build/locales/ko-KR/openhands.json +32 -16
- package/build/locales/no/openhands.json +32 -16
- package/build/locales/pt/openhands.json +32 -16
- package/build/locales/tr/openhands.json +32 -16
- package/build/locales/uk/openhands.json +32 -16
- package/build/locales/zh-CN/openhands.json +32 -16
- package/build/locales/zh-TW/openhands.json +32 -16
- 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.js +118 -116
- 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/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 +129 -118
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/event-service/event-service.api.cjs +1 -1
- package/dist/api/event-service/event-service.api.js +12 -12
- package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
- package/dist/api/git-service/agent-server-git-service.api.js +8 -8
- package/dist/api/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-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/features/automations/automation-card.cjs +1 -1
- package/dist/components/features/automations/automation-card.cjs.map +1 -1
- package/dist/components/features/automations/automation-card.js +114 -104
- package/dist/components/features/automations/automation-card.js.map +1 -1
- package/dist/components/features/automations/detail/run-phase.cjs +2 -0
- package/dist/components/features/automations/detail/run-phase.cjs.map +1 -0
- package/dist/components/features/automations/detail/run-phase.d.ts +89 -0
- package/dist/components/features/automations/detail/run-phase.js +72 -0
- package/dist/components/features/automations/detail/run-phase.js.map +1 -0
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
- package/dist/components/features/backends/backend-form-modal.js +5 -11
- package/dist/components/features/backends/backend-form-modal.js.map +1 -1
- package/dist/components/features/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 +171 -168
- 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/conversation/conversation-overview-skills-panel.cjs +1 -1
- package/dist/components/features/conversation/conversation-overview-skills-panel.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-overview-skills-panel.js +63 -81
- package/dist/components/features/conversation/conversation-overview-skills-panel.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.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 +50 -50
- package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs.map +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.d.ts +1 -1
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js +3 -3
- package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js.map +1 -1
- package/dist/components/features/conversation-panel/skills-modal.cjs +1 -1
- package/dist/components/features/conversation-panel/skills-modal.cjs.map +1 -1
- package/dist/components/features/conversation-panel/skills-modal.js +29 -28
- package/dist/components/features/conversation-panel/skills-modal.js.map +1 -1
- package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
- package/dist/components/features/files-tab/file-content-viewer.js +5 -5
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +51 -29
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -1
- package/dist/components/features/onboarding/onboarding-host.d.ts +3 -4
- package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +5 -9
- package/dist/components/features/settings/acp-auth-status-banner.d.ts +23 -6
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +1 -0
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/provider-connection-modal.js +3 -0
- package/dist/components/features/settings/sdk-settings/field-help.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.cjs.map +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.d.ts +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.js +1 -1
- package/dist/components/features/settings/sdk-settings/field-help.js.map +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
- package/dist/components/features/settings/sdk-settings/sdk-section-page.js +6 -6
- package/dist/components/features/settings/sdk-settings/sdk-section-page.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-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 +143 -120
- 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/skills/build-skill-pills.cjs +1 -1
- package/dist/components/features/skills/build-skill-pills.cjs.map +1 -1
- package/dist/components/features/skills/build-skill-pills.js +60 -52
- package/dist/components/features/skills/build-skill-pills.js.map +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs +1 -1
- package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
- package/dist/components/features/skills/extensions-navigation.js +54 -43
- package/dist/components/features/skills/extensions-navigation.js.map +1 -1
- package/dist/components/features/skills/skill-filter.cjs +1 -1
- package/dist/components/features/skills/skill-filter.cjs.map +1 -1
- package/dist/components/features/skills/skill-filter.d.ts +8 -3
- package/dist/components/features/skills/skill-filter.js +69 -52
- package/dist/components/features/skills/skill-filter.js.map +1 -1
- package/dist/components/shared/modals/settings/settings-form.cjs +1 -1
- package/dist/components/shared/modals/settings/settings-form.js +8 -8
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +9 -5
- package/dist/config/defaults.js.map +1 -1
- package/dist/contexts/conversation-websocket-context.cjs +3 -3
- package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
- package/dist/contexts/conversation-websocket-context.js +5 -5
- package/dist/extensions/canvas-extension-module-loader.d.ts +11 -0
- package/dist/hooks/mutation/use-manage-canvas-extensions.d.ts +12 -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.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +4 -0
- 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-automations.cjs.map +1 -1
- package/dist/hooks/query/use-automations.js.map +1 -1
- package/dist/hooks/query/use-backends-health.cjs +1 -1
- package/dist/hooks/query/use-backends-health.cjs.map +1 -1
- package/dist/hooks/query/use-backends-health.d.ts +1 -1
- package/dist/hooks/query/use-backends-health.js +50 -64
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-canvas-extensions.cjs +1 -0
- package/dist/hooks/query/use-canvas-extensions.d.ts +5 -0
- package/dist/hooks/query/use-canvas-extensions.js +3 -0
- package/dist/hooks/query/use-commit-changes.cjs +1 -1
- package/dist/hooks/query/use-commit-changes.js +4 -4
- package/dist/hooks/query/use-latest-automation-runs.cjs +1 -1
- package/dist/hooks/query/use-latest-automation-runs.js +1 -0
- package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
- package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
- package/dist/hooks/query/use-paginated-conversations.js +19 -16
- package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
- package/dist/hooks/query/use-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-get-git-changes.cjs +1 -1
- package/dist/hooks/query/use-unified-get-git-changes.js +4 -4
- package/dist/hooks/query/use-unified-git-commits.cjs +1 -1
- package/dist/hooks/query/use-unified-git-commits.js +4 -4
- package/dist/hooks/query/use-unified-git-diff.cjs +1 -1
- package/dist/hooks/query/use-unified-git-diff.js +4 -4
- package/dist/hooks/query/use-unified-vscode-url.cjs +1 -1
- package/dist/hooks/query/use-unified-vscode-url.cjs.map +1 -1
- package/dist/hooks/query/use-unified-vscode-url.d.ts +1 -0
- package/dist/hooks/query/use-unified-vscode-url.js +40 -26
- package/dist/hooks/query/use-unified-vscode-url.js.map +1 -1
- package/dist/hooks/query/use-workspace-file-content.cjs +1 -1
- package/dist/hooks/query/use-workspace-file-content.js +5 -5
- package/dist/hooks/query/use-workspace-files.cjs +1 -1
- package/dist/hooks/query/use-workspace-files.js +6 -6
- package/dist/hooks/use-acp-credential-form.d.ts +6 -0
- package/dist/hooks/use-conversation-overview-git-diff-stats.cjs +1 -1
- package/dist/hooks/use-conversation-overview-git-diff-stats.js +4 -4
- package/dist/hooks/use-pinned-home-route.cjs +2 -0
- package/dist/hooks/use-pinned-home-route.cjs.map +1 -0
- package/dist/hooks/use-pinned-home-route.d.ts +33 -0
- package/dist/hooks/use-pinned-home-route.js +34 -0
- package/dist/hooks/use-pinned-home-route.js.map +1 -0
- package/dist/hooks/use-skill-enablement.cjs +2 -0
- package/dist/hooks/use-skill-enablement.cjs.map +1 -0
- package/dist/hooks/use-skill-enablement.d.ts +14 -0
- package/dist/hooks/use-skill-enablement.js +80 -0
- package/dist/hooks/use-skill-enablement.js.map +1 -0
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +29 -13
- 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 +538 -266
- package/dist/i18n/translation.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -14
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +1 -0
- package/dist/locales/ar/openhands.json +32 -16
- package/dist/locales/ca/openhands.json +32 -16
- package/dist/locales/de/openhands.json +32 -16
- package/dist/locales/en/openhands.json +32 -16
- package/dist/locales/es/openhands.json +32 -16
- package/dist/locales/fr/openhands.json +32 -16
- package/dist/locales/it/openhands.json +32 -16
- package/dist/locales/ja/openhands.json +32 -16
- package/dist/locales/ko-KR/openhands.json +32 -16
- package/dist/locales/no/openhands.json +32 -16
- package/dist/locales/pt/openhands.json +32 -16
- package/dist/locales/tr/openhands.json +32 -16
- package/dist/locales/uk/openhands.json +32 -16
- package/dist/locales/zh-CN/openhands.json +32 -16
- package/dist/locales/zh-TW/openhands.json +32 -16
- package/dist/manifests/automation-interface.cjs +1 -1
- package/dist/manifests/automation-interface.cjs.map +1 -1
- package/dist/manifests/automation-interface.d.ts +6 -0
- package/dist/manifests/automation-interface.js +11 -8
- package/dist/manifests/automation-interface.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +45 -4
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +1 -1
- 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 +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js +21 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js +5 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs +30 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js +65 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +21 -9
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.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-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +74 -72
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +42 -3
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +22 -3
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.js +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js +8 -7
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/index.js +2 -2
- package/dist/node_modules/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/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/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 +7 -7
- package/dist/routes/files-tab.cjs +1 -1
- package/dist/routes/files-tab.cjs.map +1 -1
- package/dist/routes/files-tab.js +14 -14
- package/dist/routes/files-tab.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.js +122 -114
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/services/canvas-ui.cjs +1 -1
- package/dist/services/canvas-ui.cjs.map +1 -1
- package/dist/services/canvas-ui.d.ts +5 -0
- package/dist/services/canvas-ui.js +24 -10
- package/dist/services/canvas-ui.js.map +1 -1
- package/dist/services/settings.cjs +1 -1
- package/dist/services/settings.cjs.map +1 -1
- package/dist/services/settings.js +3 -2
- package/dist/services/settings.js.map +1 -1
- package/dist/types/automation.cjs.map +1 -1
- package/dist/types/automation.d.ts +20 -0
- package/dist/types/automation.js.map +1 -1
- package/dist/types/canvas-extension.cjs +2 -0
- package/dist/types/canvas-extension.cjs.map +1 -0
- package/dist/types/canvas-extension.d.ts +77 -0
- package/dist/types/canvas-extension.js +6 -0
- package/dist/types/canvas-extension.js.map +1 -0
- package/dist/types/settings.d.ts +7 -0
- package/dist/ui/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/cache-utils.cjs +1 -1
- package/dist/utils/cache-utils.js +5 -5
- package/dist/utils/format-model-name.cjs +1 -1
- package/dist/utils/format-model-name.cjs.map +1 -1
- package/dist/utils/format-model-name.d.ts +7 -3
- package/dist/utils/format-model-name.js +6 -11
- package/dist/utils/format-model-name.js.map +1 -1
- package/dist/utils/format-relative-time.cjs +1 -1
- package/dist/utils/format-relative-time.cjs.map +1 -1
- package/dist/utils/format-relative-time.d.ts +7 -0
- package/dist/utils/format-relative-time.js +7 -2
- package/dist/utils/format-relative-time.js.map +1 -1
- package/dist/utils/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/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/vscode-origin.cjs +2 -0
- package/dist/utils/vscode-origin.cjs.map +1 -0
- package/dist/utils/vscode-origin.d.ts +55 -0
- package/dist/utils/vscode-origin.js +27 -0
- package/dist/utils/vscode-origin.js.map +1 -0
- package/dist/utils/workspace-mode.d.ts +4 -0
- package/package.json +3 -3
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/check-translation-completeness.cjs +1 -0
- package/scripts/dev-extra-backend.mjs +28 -9
- package/scripts/dev-safe.mjs +81 -8
- package/scripts/dev-static.mjs +35 -37
- package/scripts/dev-with-automation.mjs +82 -1
- package/scripts/ingress.mjs +27 -1
- package/scripts/static-server.mjs +74 -1
- package/tools/canvas_ui_tool.py +19 -0
- package/build/assets/active-backend-context-DKFSMbn3.js +0 -2
- package/build/assets/agent-server-conversation-service.api-DozDKIW_.js +0 -86
- package/build/assets/agent-settings-351vXWc9.js +0 -2
- package/build/assets/agent-settings-Ce7BDZ6I.js +0 -1
- package/build/assets/alert-banner-Kyy1YWZU.js +0 -1
- package/build/assets/api-key-entry-screen-INIxqAMs.js +0 -1
- package/build/assets/automation-detail-DXDhUwPq.js +0 -3
- package/build/assets/automation-setup-route-FRr05f_g.js +0 -1
- package/build/assets/automations-list-CERuQWE6.js +0 -1
- package/build/assets/backend-form-modal-DK78-jn1.js +0 -1
- package/build/assets/browser-11etCQ04.js +0 -7
- package/build/assets/check-Cf2YoT90.js +0 -1
- package/build/assets/chevron-down-C3OQ-ehx.js +0 -1
- package/build/assets/chevron-right-CN1uUiJ1.js +0 -1
- package/build/assets/circle-check-g5yeGMd-.js +0 -1
- package/build/assets/command-menu-BZQ8S3Ke.js +0 -1
- package/build/assets/conversation-CchMzpGl.js +0 -1
- package/build/assets/conversation-Dpzftz57.js +0 -93
- package/build/assets/conversation-panel-CchMzpGl.js +0 -1
- package/build/assets/conversation-state-store-a9d2fxRc.js +0 -1
- package/build/assets/empty-state-CvaVahVr.js +0 -1
- package/build/assets/extensions-hub-CFduxBnk.js +0 -1
- package/build/assets/extensions-navigation-BeC224yX.js +0 -1
- package/build/assets/files-tab-CL3J9b3p.js +0 -1
- package/build/assets/format-model-name-BNPKVsIq.js +0 -1
- package/build/assets/get-git-path-DlAJa_i6.js +0 -1
- package/build/assets/git-repo-dropdown-DGMEhz7d.js +0 -1
- package/build/assets/home-BCGlNJCA.js +0 -1
- package/build/assets/home-DB1pRqTC.js +0 -1
- package/build/assets/home-automation-run-tooltip-CooFQRIG.js +0 -1
- package/build/assets/home-store-Dl1dPE58.js +0 -1
- package/build/assets/index-home-DB1pRqTC.js +0 -1
- package/build/assets/info-uYSVzX86.js +0 -1
- package/build/assets/install-server-modal-BbJdhzet.js +0 -1
- package/build/assets/kebab-menu-item-content-BYokkRHi.js +0 -1
- package/build/assets/list-filter-OFkpRrmi.js +0 -1
- package/build/assets/llm-not-configured-banner-BqqYnJ1t.js +0 -27
- package/build/assets/llm-settings-CnDbbmVW.js +0 -1
- package/build/assets/llm-settings-S8Yjg__1.js +0 -1
- package/build/assets/llm-subscription-service-BpPfzW4x.js +0 -1
- package/build/assets/loader-circle-nvrwthvj.js +0 -1
- package/build/assets/manage-backends-modal-BCUPswyl.js +0 -1
- package/build/assets/manifest-58597dde.js +0 -1
- package/build/assets/markdown-renderer-Cb2sBWtV.js +0 -8
- package/build/assets/messages-BTN5thLe.js +0 -40
- package/build/assets/onboarding-Cx_kaiD1.js +0 -1
- package/build/assets/onboarding-modal-vMwn7ihv.js +0 -1
- package/build/assets/plugins-management-service-BjYeF0b0.js +0 -1
- package/build/assets/plus-CEKne-Yp.js +0 -1
- package/build/assets/profiles-service.api-QB-T_u-g.js +0 -1
- package/build/assets/providers-FfSZ5TXP.js +0 -1
- package/build/assets/proxy-tcFL2yTQ.js +0 -1
- package/build/assets/recommended-automations-launcher-Bw8uC4V6.js +0 -1
- package/build/assets/root-BLeQfBEq.css +0 -1
- package/build/assets/root-ZKKYPR1Z.js +0 -2
- package/build/assets/root-layout-luJoE9IG.js +0 -2
- package/build/assets/schema-field-Csw5fhtN.js +0 -1
- package/build/assets/secrets-service-BTor9uAU.js +0 -1
- package/build/assets/settings-DcNPxz0v.js +0 -1
- package/build/assets/settings-service.api-B2agVfjL.js +0 -1
- package/build/assets/shared-conversation-B55pCyBG.js +0 -1
- package/build/assets/sidebar-nav-link-CPzhyHQg.js +0 -1
- package/build/assets/sidebar-store-DtpU7zaI.js +0 -1
- package/build/assets/skill-filter-CWZ5kjcg.js +0 -2
- package/build/assets/skill-scope-CV1dkAbW.js +0 -1
- package/build/assets/skills-plugins-DGHULTq6.js +0 -1
- package/build/assets/skills-settings-CM1lFv3e.js +0 -1
- package/build/assets/usage-tab-BcfWV6db.js +0 -1
- package/build/assets/use-acp-credential-form-BsSW5NHG.js +0 -1
- package/build/assets/use-agent-profiles-DWBPC0Si.js +0 -1
- package/build/assets/use-config-Bft35DOK.js +0 -1
- package/build/assets/use-create-secret-BSxJMxHp.js +0 -1
- package/build/assets/use-is-authed-CFGkY3-Z.js +0 -1
- package/build/assets/use-llm-configured-BI6obxsc.js +0 -1
- package/build/assets/use-llm-profiles-djGAhTWL.js +0 -1
- package/build/assets/use-manifest-capabilities-3z0-1G59.js +0 -1
- package/build/assets/use-onboarding-completion-BXpyUSsJ.js +0 -1
- package/build/assets/use-plugins-marketplace-DI4_pK56.js +0 -1
- package/build/assets/use-save-agent-profile-DdBSTdpN.js +0 -1
- package/build/assets/use-tracking-D5t9otIF.js +0 -3
- package/build/assets/utils-DaCIEEQP.js +0 -1
- package/build/assets/vendor~index-home~home~conversation-panel~conversation~alert-banner-B3qC_oj8.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-B2OLKL7N.js +0 -1
- package/dist/components/features/tips/random-tip.d.ts +0 -2
- package/dist/utils/tips.d.ts +0 -7
- package/dist/utils/workspace-relative-path.cjs +0 -2
- package/dist/utils/workspace-relative-path.cjs.map +0 -1
- package/dist/utils/workspace-relative-path.d.ts +0 -10
- package/dist/utils/workspace-relative-path.js +0 -22
- package/dist/utils/workspace-relative-path.js.map +0 -1
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-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
package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require("../../../../../_virtual/_rolldown/runtime.cjs"),require("../client/http-client.cjs"),require("../
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs"),require("../client/http-client.cjs"),require("../workspace/remote-workspace.cjs"),require("../events/websocket-client.cjs"),require("./remote-state.cjs");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require("../events/remote-events-list.cjs");var t=`__full_state__`,n=class
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require("../events/remote-events-list.cjs");var t=`__full_state__`,n=e=>typeof e==`object`&&!!e&&!Array.isArray(e),r=class r{constructor(t,n){this.cachedState=null,this.cachedAt=0,this.lock=new i,this.client=t,this.conversationId=n,this._events=new e.RemoteEventsList(t,n)}async getConversationInfo(){return await this.lock.acquire(async()=>{if(this.cachedState!==null&&Date.now()-this.cachedAt<r.CACHE_TTL_MS)return this.normalizeFullState(this.cachedState);let e=await this.client.get(`/api/conversations/${this.conversationId}`),t=this.normalizeFullState(e.data);return this.cachedState=t,this.cachedAt=Date.now(),t})}normalizeFullState(e){return e.full_state??e}async refresh(){return this.cachedState=null,this.getConversationInfo()}async updateStateFromEvent(e){await this.lock.acquire(async()=>{if(e.key===t){this.cachedState===null&&(this.cachedState={});let t=n(e.value)&&n(e.value.full_state)?e.value.full_state:e.value;if(!n(t))throw Error(`Full conversation state update must contain an object value.`);Object.assign(this.cachedState,t)}else this.cachedState===null&&(this.cachedState={}),this.cachedState[e.key]=e.value;this.cachedAt=Date.now()})}createStateUpdateCallback(e){return t=>{t.kind===`ConversationStateUpdateEvent`&&this.updateStateFromEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error updating state from event: ${t}`))})}}get events(){return this._events}get id(){return this.conversationId}async getExecutionStatus(){let e=await this.getConversationInfo(),t=e.execution_status??e.agent_status;if(t==null)throw Error(`execution_status missing in conversation info: ${JSON.stringify(e)}`);return t}async getAgentStatus(){return this.getExecutionStatus()}async setAgentStatus(e){throw Error(`Setting execution_status on RemoteState has no effect. Remote execution status is managed server-side. Attempted to set: ${e}`)}async getConfirmationPolicy(){let e=await this.getConversationInfo(),t=e.confirmation_policy;if(t==null)throw Error(`confirmation_policy missing in conversation info: ${JSON.stringify(e)}`);return t}async getActivatedKnowledgeSkills(){return(await this.getConversationInfo()).activated_knowledge_skills||[]}async getAgent(){let e=await this.getConversationInfo(),t=e.agent;if(t==null)throw Error(`agent missing in conversation info: ${JSON.stringify(e)}`);return t}async getWorkspace(){let e=await this.getConversationInfo(),t=e.workspace;if(t==null)throw Error(`workspace missing in conversation info: ${JSON.stringify(e)}`);return t}async getPersistenceDir(){let e=await this.getConversationInfo(),t=e.persistence_dir;if(t==null)throw Error(`persistence_dir missing in conversation info: ${JSON.stringify(e)}`);return t}async modelDump(){return await this.getConversationInfo()}async modelDumpJson(){let e=await this.modelDump();return JSON.stringify(e)}};r.CACHE_TTL_MS=2e3;var i=class{constructor(){this.locked=!1,this.queue=[]}async acquire(e){return new Promise((t,n)=>{let r=async()=>{try{t(await e())}catch(e){n(e)}finally{this.locked=!1;let e=this.queue.shift();e&&e()}};this.locked?this.queue.push(r):(this.locked=!0,r())})}};exports.RemoteState=r;
|
|
2
2
|
//# sourceMappingURL=remote-state.cjs.map
|
package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-state.cjs","names":["RemoteEventsList"],"sources":["../../../../../../node_modules/@openhands/typescript-client/dist/conversation/remote-state.js"],"sourcesContent":["/**\n * Remote conversation state management\n */\nimport { RemoteEventsList } from '../events/remote-events-list.js';\nconst FULL_STATE_KEY = '__full_state__';\nexport class RemoteState {\n constructor(client, conversationId) {\n this.cachedState = null;\n this.cachedAt = 0;\n this.lock = new AsyncLock();\n this.client = client;\n this.conversationId = conversationId;\n this._events = new RemoteEventsList(client, conversationId);\n }\n async getConversationInfo() {\n return await this.lock.acquire(async () => {\n // Return cached state if available and fresh. The cache can be populated\n // by state-update events that still carry the `full_state` wrapper, so\n // normalize on the way out here too — this is the single unwrap point.\n if (this.cachedState !== null && Date.now() - this.cachedAt < RemoteState.CACHE_TTL_MS) {\n return this.normalizeFullState(this.cachedState);\n }\n // Fetch from REST API and normalize the `full_state` wrapper once.\n const response = await this.client.get(`/api/conversations/${this.conversationId}`);\n const conversationInfo = this.normalizeFullState(response.data);\n this.cachedState = conversationInfo;\n this.cachedAt = Date.now();\n return conversationInfo;\n });\n }\n /**\n * Unwrap the API's `full_state` wrapper so every accessor receives a flat\n * ConversationInfo. Centralizing this here means accessors never have to\n * unwrap themselves.\n */\n normalizeFullState(info) {\n return (info.full_state ?? info);\n }\n /**\n * Force a fresh fetch from the server, ignoring the cache.\n */\n async refresh() {\n this.cachedState = null;\n return this.getConversationInfo();\n }\n async updateStateFromEvent(event) {\n await this.lock.acquire(async () => {\n // Handle full state snapshot\n if (event.key === FULL_STATE_KEY) {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n const stateValue = event.value?.full_state ?? event.value;\n Object.assign(this.cachedState, stateValue);\n }\n else {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n this.cachedState[event.key] = event.value;\n }\n this.cachedAt = Date.now();\n });\n }\n createStateUpdateCallback(onError) {\n return (event) => {\n if (event.kind === 'ConversationStateUpdateEvent') {\n this.updateStateFromEvent(event).catch((error) => {\n if (onError) {\n onError(error instanceof Error\n ? error\n : new Error(`Error updating state from event: ${error}`));\n }\n });\n }\n };\n }\n get events() {\n return this._events;\n }\n get id() {\n return this.conversationId;\n }\n /**\n * Get the current execution status of the conversation.\n * This method handles both the new `execution_status` field and the legacy `agent_status` field.\n */\n async getExecutionStatus() {\n const info = await this.getConversationInfo();\n // Try new field first, fall back to legacy field\n const statusStr = info.execution_status ?? info.agent_status;\n if (statusStr === undefined || statusStr === null) {\n throw new Error(`execution_status missing in conversation info: ${JSON.stringify(info)}`);\n }\n return statusStr;\n }\n /**\n * @deprecated Use getExecutionStatus() instead. This method is kept for backward compatibility.\n */\n async getAgentStatus() {\n return this.getExecutionStatus();\n }\n async setAgentStatus(value) {\n throw new Error(`Setting execution_status on RemoteState has no effect. ` +\n `Remote execution status is managed server-side. Attempted to set: ${value}`);\n }\n async getConfirmationPolicy() {\n const info = await this.getConversationInfo();\n const policyData = info.confirmation_policy;\n if (policyData === undefined || policyData === null) {\n throw new Error(`confirmation_policy missing in conversation info: ${JSON.stringify(info)}`);\n }\n return policyData;\n }\n async getActivatedKnowledgeSkills() {\n const info = await this.getConversationInfo();\n return info.activated_knowledge_skills || [];\n }\n async getAgent() {\n const info = await this.getConversationInfo();\n const agentData = info.agent;\n if (agentData === undefined || agentData === null) {\n throw new Error(`agent missing in conversation info: ${JSON.stringify(info)}`);\n }\n return agentData;\n }\n async getWorkspace() {\n const info = await this.getConversationInfo();\n const workspace = info.workspace;\n if (workspace === undefined || workspace === null) {\n throw new Error(`workspace missing in conversation info: ${JSON.stringify(info)}`);\n }\n return workspace;\n }\n async getPersistenceDir() {\n const info = await this.getConversationInfo();\n const persistenceDir = info.persistence_dir;\n if (persistenceDir === undefined || persistenceDir === null) {\n throw new Error(`persistence_dir missing in conversation info: ${JSON.stringify(info)}`);\n }\n return persistenceDir;\n }\n async modelDump() {\n const info = await this.getConversationInfo();\n return info;\n }\n async modelDumpJson() {\n const data = await this.modelDump();\n return JSON.stringify(data);\n }\n}\n/** Cache TTL in milliseconds. Cached state older than this triggers a re-fetch. */\nRemoteState.CACHE_TTL_MS = 2000;\n// Simple async lock for serializing state access\nclass AsyncLock {\n constructor() {\n this.locked = false;\n this.queue = [];\n }\n async acquire(fn) {\n return new Promise((resolve, reject) => {\n const execute = async () => {\n try {\n const result = await fn();\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n finally {\n this.locked = false;\n const next = this.queue.shift();\n if (next) {\n next();\n }\n }\n };\n if (this.locked) {\n this.queue.push(execute);\n }\n else {\n this.locked = true;\n execute();\n }\n });\n }\n}\n//# sourceMappingURL=remote-state.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote-state.cjs","names":["RemoteEventsList","wrapped"],"sources":["../../../../../../node_modules/@openhands/typescript-client/dist/conversation/remote-state.js"],"sourcesContent":["/**\n * Remote conversation state management\n */\nimport { RemoteEventsList } from '../events/remote-events-list.js';\nconst FULL_STATE_KEY = '__full_state__';\nconst isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);\nexport class RemoteState {\n constructor(client, conversationId) {\n this.cachedState = null;\n this.cachedAt = 0;\n this.lock = new AsyncLock();\n this.client = client;\n this.conversationId = conversationId;\n this._events = new RemoteEventsList(client, conversationId);\n }\n async getConversationInfo() {\n return await this.lock.acquire(async () => {\n // Return cached state if available and fresh. The cache can be populated\n // by state-update events that still carry the `full_state` wrapper, so\n // normalize on the way out here too — this is the single unwrap point.\n if (this.cachedState !== null && Date.now() - this.cachedAt < RemoteState.CACHE_TTL_MS) {\n return this.normalizeFullState(this.cachedState);\n }\n // Fetch from REST API and normalize the `full_state` wrapper once.\n const response = await this.client.get(`/api/conversations/${this.conversationId}`);\n const conversationInfo = this.normalizeFullState(response.data);\n this.cachedState = conversationInfo;\n this.cachedAt = Date.now();\n return conversationInfo;\n });\n }\n /**\n * Unwrap the API's `full_state` wrapper so every accessor receives a flat\n * ConversationInfo. Centralizing this here means accessors never have to\n * unwrap themselves.\n */\n normalizeFullState(info) {\n const wrapped = info;\n return wrapped.full_state ?? info;\n }\n /**\n * Force a fresh fetch from the server, ignoring the cache.\n */\n async refresh() {\n this.cachedState = null;\n return this.getConversationInfo();\n }\n async updateStateFromEvent(event) {\n await this.lock.acquire(async () => {\n // Handle full state snapshot\n if (event.key === FULL_STATE_KEY) {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n const stateValue = isRecord(event.value) && isRecord(event.value.full_state)\n ? event.value.full_state\n : event.value;\n if (!isRecord(stateValue)) {\n throw new Error('Full conversation state update must contain an object value.');\n }\n Object.assign(this.cachedState, stateValue);\n }\n else {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n this.cachedState[event.key] = event.value;\n }\n this.cachedAt = Date.now();\n });\n }\n createStateUpdateCallback(onError) {\n return (event) => {\n if (event.kind === 'ConversationStateUpdateEvent') {\n this.updateStateFromEvent(event).catch((error) => {\n if (onError) {\n onError(error instanceof Error\n ? error\n : new Error(`Error updating state from event: ${error}`));\n }\n });\n }\n };\n }\n get events() {\n return this._events;\n }\n get id() {\n return this.conversationId;\n }\n /**\n * Get the current execution status of the conversation.\n * This method handles both the new `execution_status` field and the legacy `agent_status` field.\n */\n async getExecutionStatus() {\n const info = await this.getConversationInfo();\n // Try new field first, fall back to legacy field\n const statusStr = info.execution_status ?? info.agent_status;\n if (statusStr === undefined || statusStr === null) {\n throw new Error(`execution_status missing in conversation info: ${JSON.stringify(info)}`);\n }\n return statusStr;\n }\n /**\n * @deprecated Use getExecutionStatus() instead. This method is kept for backward compatibility.\n */\n async getAgentStatus() {\n return this.getExecutionStatus();\n }\n async setAgentStatus(value) {\n throw new Error(`Setting execution_status on RemoteState has no effect. ` +\n `Remote execution status is managed server-side. Attempted to set: ${value}`);\n }\n async getConfirmationPolicy() {\n const info = await this.getConversationInfo();\n const policyData = info.confirmation_policy;\n if (policyData === undefined || policyData === null) {\n throw new Error(`confirmation_policy missing in conversation info: ${JSON.stringify(info)}`);\n }\n return policyData;\n }\n async getActivatedKnowledgeSkills() {\n const info = await this.getConversationInfo();\n return info.activated_knowledge_skills || [];\n }\n async getAgent() {\n const info = await this.getConversationInfo();\n const agentData = info.agent;\n if (agentData === undefined || agentData === null) {\n throw new Error(`agent missing in conversation info: ${JSON.stringify(info)}`);\n }\n return agentData;\n }\n async getWorkspace() {\n const info = await this.getConversationInfo();\n const workspace = info.workspace;\n if (workspace === undefined || workspace === null) {\n throw new Error(`workspace missing in conversation info: ${JSON.stringify(info)}`);\n }\n return workspace;\n }\n async getPersistenceDir() {\n const info = await this.getConversationInfo();\n const persistenceDir = info.persistence_dir;\n if (persistenceDir === undefined || persistenceDir === null) {\n throw new Error(`persistence_dir missing in conversation info: ${JSON.stringify(info)}`);\n }\n return persistenceDir;\n }\n async modelDump() {\n const info = await this.getConversationInfo();\n return info;\n }\n async modelDumpJson() {\n const data = await this.modelDump();\n return JSON.stringify(data);\n }\n}\n/** Cache TTL in milliseconds. Cached state older than this triggers a re-fetch. */\nRemoteState.CACHE_TTL_MS = 2000;\n// Simple async lock for serializing state access\nclass AsyncLock {\n constructor() {\n this.locked = false;\n this.queue = [];\n }\n async acquire(fn) {\n return new Promise((resolve, reject) => {\n const execute = async () => {\n try {\n const result = await fn();\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n finally {\n this.locked = false;\n const next = this.queue.shift();\n if (next) {\n next();\n }\n }\n };\n if (this.locked) {\n this.queue.push(execute);\n }\n else {\n this.locked = true;\n execute();\n }\n });\n }\n}\n//# sourceMappingURL=remote-state.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { RemoteEventsList as e } from "../events/remote-events-list.js";
|
|
2
2
|
//#region node_modules/@openhands/typescript-client/dist/conversation/remote-state.js
|
|
3
|
-
var t = "__full_state__", n = class
|
|
3
|
+
var t = "__full_state__", n = (e) => typeof e == "object" && !!e && !Array.isArray(e), r = class r {
|
|
4
4
|
constructor(t, n) {
|
|
5
|
-
this.cachedState = null, this.cachedAt = 0, this.lock = new
|
|
5
|
+
this.cachedState = null, this.cachedAt = 0, this.lock = new i(), this.client = t, this.conversationId = n, this._events = new e(t, n);
|
|
6
6
|
}
|
|
7
7
|
async getConversationInfo() {
|
|
8
8
|
return await this.lock.acquire(async () => {
|
|
9
|
-
if (this.cachedState !== null && Date.now() - this.cachedAt <
|
|
9
|
+
if (this.cachedState !== null && Date.now() - this.cachedAt < r.CACHE_TTL_MS) return this.normalizeFullState(this.cachedState);
|
|
10
10
|
let e = await this.client.get(`/api/conversations/${this.conversationId}`), t = this.normalizeFullState(e.data);
|
|
11
11
|
return this.cachedState = t, this.cachedAt = Date.now(), t;
|
|
12
12
|
});
|
|
@@ -21,7 +21,8 @@ var t = "__full_state__", n = class n {
|
|
|
21
21
|
await this.lock.acquire(async () => {
|
|
22
22
|
if (e.key === t) {
|
|
23
23
|
this.cachedState === null && (this.cachedState = {});
|
|
24
|
-
let t = e.value
|
|
24
|
+
let t = n(e.value) && n(e.value.full_state) ? e.value.full_state : e.value;
|
|
25
|
+
if (!n(t)) throw Error("Full conversation state update must contain an object value.");
|
|
25
26
|
Object.assign(this.cachedState, t);
|
|
26
27
|
} else this.cachedState === null && (this.cachedState = {}), this.cachedState[e.key] = e.value;
|
|
27
28
|
this.cachedAt = Date.now();
|
|
@@ -82,8 +83,8 @@ var t = "__full_state__", n = class n {
|
|
|
82
83
|
return JSON.stringify(e);
|
|
83
84
|
}
|
|
84
85
|
};
|
|
85
|
-
|
|
86
|
-
var
|
|
86
|
+
r.CACHE_TTL_MS = 2e3;
|
|
87
|
+
var i = class {
|
|
87
88
|
constructor() {
|
|
88
89
|
this.locked = !1, this.queue = [];
|
|
89
90
|
}
|
|
@@ -105,6 +106,6 @@ var r = class {
|
|
|
105
106
|
}
|
|
106
107
|
};
|
|
107
108
|
//#endregion
|
|
108
|
-
export {
|
|
109
|
+
export { r as RemoteState };
|
|
109
110
|
|
|
110
111
|
//# sourceMappingURL=remote-state.js.map
|
package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-state.js","names":[],"sources":["../../../../../../node_modules/@openhands/typescript-client/dist/conversation/remote-state.js"],"sourcesContent":["/**\n * Remote conversation state management\n */\nimport { RemoteEventsList } from '../events/remote-events-list.js';\nconst FULL_STATE_KEY = '__full_state__';\nexport class RemoteState {\n constructor(client, conversationId) {\n this.cachedState = null;\n this.cachedAt = 0;\n this.lock = new AsyncLock();\n this.client = client;\n this.conversationId = conversationId;\n this._events = new RemoteEventsList(client, conversationId);\n }\n async getConversationInfo() {\n return await this.lock.acquire(async () => {\n // Return cached state if available and fresh. The cache can be populated\n // by state-update events that still carry the `full_state` wrapper, so\n // normalize on the way out here too — this is the single unwrap point.\n if (this.cachedState !== null && Date.now() - this.cachedAt < RemoteState.CACHE_TTL_MS) {\n return this.normalizeFullState(this.cachedState);\n }\n // Fetch from REST API and normalize the `full_state` wrapper once.\n const response = await this.client.get(`/api/conversations/${this.conversationId}`);\n const conversationInfo = this.normalizeFullState(response.data);\n this.cachedState = conversationInfo;\n this.cachedAt = Date.now();\n return conversationInfo;\n });\n }\n /**\n * Unwrap the API's `full_state` wrapper so every accessor receives a flat\n * ConversationInfo. Centralizing this here means accessors never have to\n * unwrap themselves.\n */\n normalizeFullState(info) {\n return (info.full_state ?? info);\n }\n /**\n * Force a fresh fetch from the server, ignoring the cache.\n */\n async refresh() {\n this.cachedState = null;\n return this.getConversationInfo();\n }\n async updateStateFromEvent(event) {\n await this.lock.acquire(async () => {\n // Handle full state snapshot\n if (event.key === FULL_STATE_KEY) {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n const stateValue = event.value?.full_state ?? event.value;\n Object.assign(this.cachedState, stateValue);\n }\n else {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n this.cachedState[event.key] = event.value;\n }\n this.cachedAt = Date.now();\n });\n }\n createStateUpdateCallback(onError) {\n return (event) => {\n if (event.kind === 'ConversationStateUpdateEvent') {\n this.updateStateFromEvent(event).catch((error) => {\n if (onError) {\n onError(error instanceof Error\n ? error\n : new Error(`Error updating state from event: ${error}`));\n }\n });\n }\n };\n }\n get events() {\n return this._events;\n }\n get id() {\n return this.conversationId;\n }\n /**\n * Get the current execution status of the conversation.\n * This method handles both the new `execution_status` field and the legacy `agent_status` field.\n */\n async getExecutionStatus() {\n const info = await this.getConversationInfo();\n // Try new field first, fall back to legacy field\n const statusStr = info.execution_status ?? info.agent_status;\n if (statusStr === undefined || statusStr === null) {\n throw new Error(`execution_status missing in conversation info: ${JSON.stringify(info)}`);\n }\n return statusStr;\n }\n /**\n * @deprecated Use getExecutionStatus() instead. This method is kept for backward compatibility.\n */\n async getAgentStatus() {\n return this.getExecutionStatus();\n }\n async setAgentStatus(value) {\n throw new Error(`Setting execution_status on RemoteState has no effect. ` +\n `Remote execution status is managed server-side. Attempted to set: ${value}`);\n }\n async getConfirmationPolicy() {\n const info = await this.getConversationInfo();\n const policyData = info.confirmation_policy;\n if (policyData === undefined || policyData === null) {\n throw new Error(`confirmation_policy missing in conversation info: ${JSON.stringify(info)}`);\n }\n return policyData;\n }\n async getActivatedKnowledgeSkills() {\n const info = await this.getConversationInfo();\n return info.activated_knowledge_skills || [];\n }\n async getAgent() {\n const info = await this.getConversationInfo();\n const agentData = info.agent;\n if (agentData === undefined || agentData === null) {\n throw new Error(`agent missing in conversation info: ${JSON.stringify(info)}`);\n }\n return agentData;\n }\n async getWorkspace() {\n const info = await this.getConversationInfo();\n const workspace = info.workspace;\n if (workspace === undefined || workspace === null) {\n throw new Error(`workspace missing in conversation info: ${JSON.stringify(info)}`);\n }\n return workspace;\n }\n async getPersistenceDir() {\n const info = await this.getConversationInfo();\n const persistenceDir = info.persistence_dir;\n if (persistenceDir === undefined || persistenceDir === null) {\n throw new Error(`persistence_dir missing in conversation info: ${JSON.stringify(info)}`);\n }\n return persistenceDir;\n }\n async modelDump() {\n const info = await this.getConversationInfo();\n return info;\n }\n async modelDumpJson() {\n const data = await this.modelDump();\n return JSON.stringify(data);\n }\n}\n/** Cache TTL in milliseconds. Cached state older than this triggers a re-fetch. */\nRemoteState.CACHE_TTL_MS = 2000;\n// Simple async lock for serializing state access\nclass AsyncLock {\n constructor() {\n this.locked = false;\n this.queue = [];\n }\n async acquire(fn) {\n return new Promise((resolve, reject) => {\n const execute = async () => {\n try {\n const result = await fn();\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n finally {\n this.locked = false;\n const next = this.queue.shift();\n if (next) {\n next();\n }\n }\n };\n if (this.locked) {\n this.queue.push(execute);\n }\n else {\n this.locked = true;\n execute();\n }\n });\n }\n}\n//# sourceMappingURL=remote-state.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote-state.js","names":["wrapped"],"sources":["../../../../../../node_modules/@openhands/typescript-client/dist/conversation/remote-state.js"],"sourcesContent":["/**\n * Remote conversation state management\n */\nimport { RemoteEventsList } from '../events/remote-events-list.js';\nconst FULL_STATE_KEY = '__full_state__';\nconst isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);\nexport class RemoteState {\n constructor(client, conversationId) {\n this.cachedState = null;\n this.cachedAt = 0;\n this.lock = new AsyncLock();\n this.client = client;\n this.conversationId = conversationId;\n this._events = new RemoteEventsList(client, conversationId);\n }\n async getConversationInfo() {\n return await this.lock.acquire(async () => {\n // Return cached state if available and fresh. The cache can be populated\n // by state-update events that still carry the `full_state` wrapper, so\n // normalize on the way out here too — this is the single unwrap point.\n if (this.cachedState !== null && Date.now() - this.cachedAt < RemoteState.CACHE_TTL_MS) {\n return this.normalizeFullState(this.cachedState);\n }\n // Fetch from REST API and normalize the `full_state` wrapper once.\n const response = await this.client.get(`/api/conversations/${this.conversationId}`);\n const conversationInfo = this.normalizeFullState(response.data);\n this.cachedState = conversationInfo;\n this.cachedAt = Date.now();\n return conversationInfo;\n });\n }\n /**\n * Unwrap the API's `full_state` wrapper so every accessor receives a flat\n * ConversationInfo. Centralizing this here means accessors never have to\n * unwrap themselves.\n */\n normalizeFullState(info) {\n const wrapped = info;\n return wrapped.full_state ?? info;\n }\n /**\n * Force a fresh fetch from the server, ignoring the cache.\n */\n async refresh() {\n this.cachedState = null;\n return this.getConversationInfo();\n }\n async updateStateFromEvent(event) {\n await this.lock.acquire(async () => {\n // Handle full state snapshot\n if (event.key === FULL_STATE_KEY) {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n const stateValue = isRecord(event.value) && isRecord(event.value.full_state)\n ? event.value.full_state\n : event.value;\n if (!isRecord(stateValue)) {\n throw new Error('Full conversation state update must contain an object value.');\n }\n Object.assign(this.cachedState, stateValue);\n }\n else {\n if (this.cachedState === null) {\n this.cachedState = {};\n }\n this.cachedState[event.key] = event.value;\n }\n this.cachedAt = Date.now();\n });\n }\n createStateUpdateCallback(onError) {\n return (event) => {\n if (event.kind === 'ConversationStateUpdateEvent') {\n this.updateStateFromEvent(event).catch((error) => {\n if (onError) {\n onError(error instanceof Error\n ? error\n : new Error(`Error updating state from event: ${error}`));\n }\n });\n }\n };\n }\n get events() {\n return this._events;\n }\n get id() {\n return this.conversationId;\n }\n /**\n * Get the current execution status of the conversation.\n * This method handles both the new `execution_status` field and the legacy `agent_status` field.\n */\n async getExecutionStatus() {\n const info = await this.getConversationInfo();\n // Try new field first, fall back to legacy field\n const statusStr = info.execution_status ?? info.agent_status;\n if (statusStr === undefined || statusStr === null) {\n throw new Error(`execution_status missing in conversation info: ${JSON.stringify(info)}`);\n }\n return statusStr;\n }\n /**\n * @deprecated Use getExecutionStatus() instead. This method is kept for backward compatibility.\n */\n async getAgentStatus() {\n return this.getExecutionStatus();\n }\n async setAgentStatus(value) {\n throw new Error(`Setting execution_status on RemoteState has no effect. ` +\n `Remote execution status is managed server-side. Attempted to set: ${value}`);\n }\n async getConfirmationPolicy() {\n const info = await this.getConversationInfo();\n const policyData = info.confirmation_policy;\n if (policyData === undefined || policyData === null) {\n throw new Error(`confirmation_policy missing in conversation info: ${JSON.stringify(info)}`);\n }\n return policyData;\n }\n async getActivatedKnowledgeSkills() {\n const info = await this.getConversationInfo();\n return info.activated_knowledge_skills || [];\n }\n async getAgent() {\n const info = await this.getConversationInfo();\n const agentData = info.agent;\n if (agentData === undefined || agentData === null) {\n throw new Error(`agent missing in conversation info: ${JSON.stringify(info)}`);\n }\n return agentData;\n }\n async getWorkspace() {\n const info = await this.getConversationInfo();\n const workspace = info.workspace;\n if (workspace === undefined || workspace === null) {\n throw new Error(`workspace missing in conversation info: ${JSON.stringify(info)}`);\n }\n return workspace;\n }\n async getPersistenceDir() {\n const info = await this.getConversationInfo();\n const persistenceDir = info.persistence_dir;\n if (persistenceDir === undefined || persistenceDir === null) {\n throw new Error(`persistence_dir missing in conversation info: ${JSON.stringify(info)}`);\n }\n return persistenceDir;\n }\n async modelDump() {\n const info = await this.getConversationInfo();\n return info;\n }\n async modelDumpJson() {\n const data = await this.modelDump();\n return JSON.stringify(data);\n }\n}\n/** Cache TTL in milliseconds. Cached state older than this triggers a re-fetch. */\nRemoteState.CACHE_TTL_MS = 2000;\n// Simple async lock for serializing state access\nclass AsyncLock {\n constructor() {\n this.locked = false;\n this.queue = [];\n }\n async acquire(fn) {\n return new Promise((resolve, reject) => {\n const execute = async () => {\n try {\n const result = await fn();\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n finally {\n this.locked = false;\n const next = this.queue.shift();\n if (next) {\n next();\n }\n }\n };\n if (this.locked) {\n this.queue.push(execute);\n }\n else {\n this.locked = true;\n execute();\n }\n });\n }\n}\n//# sourceMappingURL=remote-state.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("../../../../_virtual/_rolldown/runtime.cjs"),require("./client/http-client.cjs"),require("./client/agent-profiles-client.cjs"),require("./client/agent-server-compatibility.cjs"),require("./client/hooks-client.cjs"),require("./client/mcp-client.cjs"),require("./client/workspaces-client.cjs"),require("./events/
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs"),require("./client/http-client.cjs"),require("./client/agent-profiles-client.cjs"),require("./client/agent-server-compatibility.cjs"),require("./client/hooks-client.cjs"),require("./client/mcp-client.cjs"),require("./client/workspaces-client.cjs"),require("./events/remote-events-list.cjs"),require("./workspace/remote-workspace.cjs"),require("./events/websocket-client.cjs"),require("./conversation/remote-state.cjs"),require("./conversation/remote-conversation.cjs"),require("./prompts/system-prompt.cjs"),require("./conversation/local-conversation.cjs"),require("./conversation/conversation.cjs"),require("./conversation/conversation-manager.cjs"),require("./workspace/workspace.cjs"),require("./hooks/types.cjs"),require("./hooks/index.cjs"),require("./events/bash-websocket-client.cjs"),require("./types/base.cjs"),require("./models/conversation.cjs"),require("./models/acp.cjs");
|
|
@@ -4,10 +4,10 @@ import "./client/agent-server-compatibility.js";
|
|
|
4
4
|
import "./client/hooks-client.js";
|
|
5
5
|
import "./client/mcp-client.js";
|
|
6
6
|
import "./client/workspaces-client.js";
|
|
7
|
-
import "./events/websocket-client.js";
|
|
8
7
|
import "./events/remote-events-list.js";
|
|
9
|
-
import "./conversation/remote-state.js";
|
|
10
8
|
import "./workspace/remote-workspace.js";
|
|
9
|
+
import "./events/websocket-client.js";
|
|
10
|
+
import "./conversation/remote-state.js";
|
|
11
11
|
import "./conversation/remote-conversation.js";
|
|
12
12
|
import "./prompts/system-prompt.js";
|
|
13
13
|
import "./conversation/local-conversation.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");var e=require("../createLucideIcon.cjs").createLucideIcon(`blocks`,[[`path`,{d:`M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2`,key:`1ah6g2`}],[`rect`,{x:`14`,y:`2`,width:`8`,height:`8`,rx:`1`,key:`88lufb`}]]);exports.Blocks=e;
|
|
2
|
+
//# sourceMappingURL=blocks.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.cjs","names":["createLucideIcon"],"sources":["../../../../../../node_modules/lucide-react/dist/esm/icons/blocks.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\",\n key: \"1ah6g2\"\n }\n ],\n [\"rect\", { x: \"14\", y: \"2\", width: \"8\", height: \"8\", rx: \"1\", key: \"88lufb\" }]\n];\nconst Blocks = createLucideIcon(\"blocks\", __iconNode);\n\nexport { __iconNode, Blocks as default };\n//# sourceMappingURL=blocks.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"yDAmBA,IAAM,mCAASA,EAAAA,iBAAiB,SAAU,CATxC,CACE,OACA,CACE,EAAG,8FACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,KAAM,EAAG,IAAK,MAAO,IAAK,OAAQ,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,CAErC,CAAU"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createLucideIcon as e } from "../createLucideIcon.js";
|
|
2
|
+
var t = e("blocks", [["path", {
|
|
3
|
+
d: "M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2",
|
|
4
|
+
key: "1ah6g2"
|
|
5
|
+
}], ["rect", {
|
|
6
|
+
x: "14",
|
|
7
|
+
y: "2",
|
|
8
|
+
width: "8",
|
|
9
|
+
height: "8",
|
|
10
|
+
rx: "1",
|
|
11
|
+
key: "88lufb"
|
|
12
|
+
}]]);
|
|
13
|
+
//#endregion
|
|
14
|
+
export { t as Blocks };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.js","names":[],"sources":["../../../../../../node_modules/lucide-react/dist/esm/icons/blocks.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\",\n key: \"1ah6g2\"\n }\n ],\n [\"rect\", { x: \"14\", y: \"2\", width: \"8\", height: \"8\", rx: \"1\", key: \"88lufb\" }]\n];\nconst Blocks = createLucideIcon(\"blocks\", __iconNode);\n\nexport { __iconNode, Blocks as default };\n//# sourceMappingURL=blocks.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";AAmBA,IAAM,IAAS,EAAiB,UAAU,CATxC,CACE,QACA;CACE,GAAG;CACH,KAAK;AACP,CACF,GACA,CAAC,QAAQ;CAAE,GAAG;CAAM,GAAG;CAAK,OAAO;CAAK,QAAQ;CAAK,IAAI;CAAK,KAAK;AAAS,CAAC,CAErC,CAAU"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");var e=require("../createLucideIcon.cjs").createLucideIcon(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]);exports.PanelsTopLeft=e;
|
|
2
|
+
//# sourceMappingURL=panels-top-left.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panels-top-left.cjs","names":["createLucideIcon"],"sources":["../../../../../../node_modules/lucide-react/dist/esm/icons/panels-top-left.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M3 9h18\", key: \"1pudct\" }],\n [\"path\", { d: \"M9 21V9\", key: \"1oto5p\" }]\n];\nconst PanelsTopLeft = createLucideIcon(\"panels-top-left\", __iconNode);\n\nexport { __iconNode, PanelsTopLeft as default };\n//# sourceMappingURL=panels-top-left.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"yDAcA,IAAM,mCAAgBA,EAAAA,iBAAiB,kBAAmB,CAJxD,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EAC9E,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,CAEgB,CAAU"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createLucideIcon as e } from "../createLucideIcon.js";
|
|
2
|
+
var t = e("panels-top-left", [
|
|
3
|
+
["rect", {
|
|
4
|
+
width: "18",
|
|
5
|
+
height: "18",
|
|
6
|
+
x: "3",
|
|
7
|
+
y: "3",
|
|
8
|
+
rx: "2",
|
|
9
|
+
key: "afitv7"
|
|
10
|
+
}],
|
|
11
|
+
["path", {
|
|
12
|
+
d: "M3 9h18",
|
|
13
|
+
key: "1pudct"
|
|
14
|
+
}],
|
|
15
|
+
["path", {
|
|
16
|
+
d: "M9 21V9",
|
|
17
|
+
key: "1oto5p"
|
|
18
|
+
}]
|
|
19
|
+
]);
|
|
20
|
+
//#endregion
|
|
21
|
+
export { t as PanelsTopLeft };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=panels-top-left.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panels-top-left.js","names":[],"sources":["../../../../../../node_modules/lucide-react/dist/esm/icons/panels-top-left.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M3 9h18\", key: \"1pudct\" }],\n [\"path\", { d: \"M9 21V9\", key: \"1oto5p\" }]\n];\nconst PanelsTopLeft = createLucideIcon(\"panels-top-left\", __iconNode);\n\nexport { __iconNode, PanelsTopLeft as default };\n//# sourceMappingURL=panels-top-left.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";AAcA,IAAM,IAAgB,EAAiB,mBAAmB;CAJxD,CAAC,QAAQ;EAAE,OAAO;EAAM,QAAQ;EAAM,GAAG;EAAK,GAAG;EAAK,IAAI;EAAK,KAAK;CAAS,CAAC;CAC9E,CAAC,QAAQ;EAAE,GAAG;EAAW,KAAK;CAAS,CAAC;CACxC,CAAC,QAAQ;EAAE,GAAG;EAAW,KAAK;CAAS,CAAC;AAEgB,CAAU"}
|
package/dist/package.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("./_virtual/_rolldown/runtime.cjs");var e={name:`@openhands/agent-canvas`,version:`1.
|
|
1
|
+
require("./_virtual/_rolldown/runtime.cjs");var e={name:`@openhands/agent-canvas`,version:`1.16.0`,description:`Agent Canvas UI for OpenHands - run AI coding agents with a visual interface`,license:`MIT`,private:!1,type:`module`,repository:{type:`git`,url:`https://github.com/OpenHands/OpenHands`},homepage:`https://github.com/OpenHands/OpenHands#readme`,bugs:{url:`https://github.com/OpenHands/OpenHands/issues`},bin:{"agent-canvas":`bin/agent-canvas.mjs`},engines:{node:`>=22.12.0`},dependencies:{"@heroui/react":`2.8.10`,"@microlink/react-json-view":`1.31.25`,"@monaco-editor/react":`4.7.0`,"@openhands/extensions":`0.19.0`,"@openhands/typescript-client":`1.39.0`,"@react-router/node":`7.18.2`,"@react-router/serve":`7.18.2`,"@tailwindcss/vite":`4.3.3`,"@tanstack/react-query":`5.101.4`,"@types/shell-quote":`1.7.5`,"@uidotdev/usehooks":`2.4.1`,"@xterm/addon-fit":`0.11.0`,"@xterm/xterm":`6.0.0`,axios:`1.18.0`,"class-variance-authority":`0.7.1`,clsx:`2.1.1`,downshift:`9.3.2`,"framer-motion":`12.38.0`,httpxy:`0.5.3`,i18next:`26.3.6`,"i18next-browser-languagedetector":`8.2.1`,"i18next-http-backend":`4.0.1`,isbot:`5.1.39`,"lucide-react":`1.25.0`,"monaco-editor":`0.56.0`,"posthog-js":`1.380.0`,react:`19.2.8`,"react-dom":`19.2.8`,"react-hot-toast":`2.6.0`,"react-i18next":`17.0.11`,"react-icons":`5.6.0`,"react-markdown":`10.1.0`,"react-router":`7.18.2`,"react-syntax-highlighter":`16.1.1`,"rehype-raw":`7.0.0`,"rehype-sanitize":`6.0.0`,"remark-breaks":`4.0.0`,"remark-gfm":`4.0.1`,"shell-quote":`1.9.0`,sirv:`3.0.2`,"sirv-cli":`3.0.1`,"socket.io-client":`4.8.3`,"tailwind-merge":`3.6.0`,"tailwind-scrollbar":`4.0.2`,"unist-util-visit":`5.1.0`,uuid:`14.0.0`,vite:`8.0.16`,winston:`3.19.0`,"winston-daily-rotate-file":`5.0.0`,zustand:`5.0.14`},scripts:{dev:`node --env-file-if-exists=.env scripts/dev-with-automation.mjs`,"dev:static":`node --env-file-if-exists=.env scripts/dev-static.mjs`,"dev:extra-backend":`node --env-file-if-exists=.env scripts/dev-extra-backend.mjs`,"dev:minimal":`node --env-file-if-exists=.env scripts/dev-safe.mjs`,"dev:frontend":`npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev`,"dev:mock":`npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev`,build:`npm run build:app`,"build:mock":`npm run make-i18n && cross-env VITE_MOCK_API=true react-router build`,start:`npx sirv-cli build/ --single`,test:`npm run make-i18n && vitest run`,"test:e2e":`playwright test --pass-with-no-tests`,"test:e2e:live":`node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs`,"test:e2e:mock-llm":`playwright test --config=playwright.mock-llm.config.ts`,"test:e2e:mock-llm:docker":`playwright test --config=playwright.mock-llm-docker.config.ts`,"test:coverage":`npm run make-i18n && vitest run --coverage`,"test:mutation":`npm run make-i18n && stryker run`,"test:mutation:diff":`npm run make-i18n && node scripts/stryker-diff.mjs`,"test:mutation:incremental":`npm run make-i18n && stryker run --incremental`,dev_wsl:`VITE_WATCH_USE_POLLING=true vite`,preview:`vite preview`,"make-i18n":`node scripts/make-i18n-translations.cjs`,prelint:`npm run make-i18n`,lint:`npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}`,"lint:fix":`eslint src --fix && prettier --write src/**/*.{ts,tsx}`,postinstall:`node -e "if (process.env.npm_config_global === 'true') { console.log('\\n\\x1b[32m\\x1b[1m\\u2713 @openhands/agent-canvas installed!\\x1b[0m\\n\\nTo start Agent Canvas, run:\\n\\n \\x1b[36m\\x1b[1magent-canvas\\x1b[0m\\n\\nThis launches the full stack at \\x1b[36mhttp://localhost:8000\\x1b[0m.\\n\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\n') }"`,prepare:`husky`,typecheck:`react-router typegen && tsc`,"typecheck:staged":`react-router typegen && npx tsc --noEmit --skipLibCheck`,"check-translation-completeness":`node scripts/check-translation-completeness.cjs`,"build:app":`npm run make-i18n && react-router build`,"build:lib":`npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json`,"build:docker":`node scripts/docker-build.mjs`,"example:acp-docker:env":`node scripts/gen-acp-docker-env.mjs`,predesktop:`node scripts/brand-dev-electron.mjs`,desktop:`npm run build:app && electron electron`,"build:desktop":`npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never`,"build:desktop:universal":`npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never`,"download-uv":`node scripts/download-uv.mjs`,"download-node":`node scripts/download-node.mjs`,"generate-icons":`node scripts/generate-icons.mjs`},"lint-staged":{"src/**/*.{ts,tsx,js}":[`eslint --fix`,`prettier --write`],"src/**/*.{ts,tsx}":[`node scripts/run-staged-typecheck.mjs`],"src/**/*":[`npm run check-translation-completeness`]},devDependencies:{"@eslint/eslintrc":`3.3.6`,"@eslint/js":`9.39.4`,"@mswjs/socket.io-binding":`0.2.0`,"@playwright/test":`1.62.1`,"@react-router/dev":`7.18.2`,"@stryker-mutator/core":`9.6.1`,"@stryker-mutator/vitest-runner":`9.6.1`,"@tailwindcss/typography":`0.5.20`,"@tanstack/eslint-plugin-query":`5.101.4`,"@testing-library/dom":`10.4.1`,"@testing-library/jest-dom":`7.0.0`,"@testing-library/react":`16.3.2`,"@testing-library/user-event":`14.6.1`,"@types/mdast":`4.0.4`,"@types/node":`26.1.2`,"@types/react":`19.2.18`,"@types/react-dom":`19.2.4`,"@types/react-syntax-highlighter":`15.5.13`,"@typescript-eslint/eslint-plugin":`8.65.0`,"@typescript-eslint/parser":`8.65.0`,"@vercel/react-router":`1.3.0`,"@vitest/coverage-v8":`4.1.10`,"cross-env":`10.1.0`,electron:`42.3.3`,"electron-builder":`26.15.3`,eslint:`9.39.5`,"eslint-config-prettier":`10.1.8`,"eslint-import-resolver-typescript":`4.4.5`,"eslint-plugin-i18next":`6.1.5`,"eslint-plugin-import-x":`4.17.1`,"eslint-plugin-jsx-a11y":`6.10.2`,"eslint-plugin-prettier":`5.5.6`,"eslint-plugin-react":`7.37.5`,"eslint-plugin-react-hooks":`7.1.1`,"eslint-plugin-unused-imports":`4.4.1`,globals:`16.5.0`,husky:`9.1.7`,jsdom:`30.0.1`,"lint-staged":`17.3.0`,msw:`2.15.0`,png2icons:`2.0.1`,"postcss-prefix-selector":`2.1.1`,prettier:`3.8.3`,tailwindcss:`4.3.3`,typescript:`6.0.3`,"vite-plugin-svgr":`5.2.0`,vitest:`4.1.10`},packageManager:`npm@10.5.0`,volta:{node:`22.12.0`},msw:{workerDirectory:[`public`]},overrides:{"@vercel/static-config":{ajv:`8.20.0`},dompurify:`3.4.12`,"typed-rest-client":{qs:`6.15.3`}},main:`./dist/index.cjs`,module:`./dist/index.js`,types:`./dist/index.d.ts`,files:[`dist`,`bin`,`build`,`config`,`scripts`,`tools`],exports:{".":{types:`./dist/index.d.ts`,import:`./dist/index.js`,require:`./dist/index.cjs`},"./browser":{types:`./dist/components/browser/index.d.ts`,import:`./dist/components/browser/index.js`,require:`./dist/components/browser/index.cjs`},"./conversation":{types:`./dist/components/conversation/index.d.ts`,import:`./dist/components/conversation/index.js`,require:`./dist/components/conversation/index.cjs`},"./files":{types:`./dist/components/files/index.d.ts`,import:`./dist/components/files/index.js`,require:`./dist/components/files/index.cjs`},"./settings":{types:`./dist/components/settings/index.d.ts`,import:`./dist/components/settings/index.js`,require:`./dist/components/settings/index.cjs`},"./sidebar":{types:`./dist/components/sidebar/index.d.ts`,import:`./dist/components/sidebar/index.js`,require:`./dist/components/sidebar/index.cjs`},"./terminal":{types:`./dist/components/terminal/index.d.ts`,import:`./dist/components/terminal/index.js`,require:`./dist/components/terminal/index.cjs`},"./i18n":{types:`./dist/i18n/index.d.ts`,import:`./dist/i18n/index.js`,require:`./dist/i18n/index.cjs`},"./package.json":`./package.json`},peerDependencies:{react:`19.2.8`,"react-dom":`19.2.8`,"react-router":`7.18.2`}};exports.default=e;
|
|
2
2
|
//# sourceMappingURL=package.cjs.map
|
package/dist/package.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.cjs","names":[],"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@openhands/agent-canvas\",\n \"version\": \"1.15.0\",\n \"description\": \"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface\",\n \"license\": \"MIT\",\n \"private\": false,\n \"type\": \"module\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/OpenHands/OpenHands\"\n },\n \"homepage\": \"https://github.com/OpenHands/OpenHands#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/OpenHands/OpenHands/issues\"\n },\n \"bin\": {\n \"agent-canvas\": \"bin/agent-canvas.mjs\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"dependencies\": {\n \"@heroui/react\": \"2.8.10\",\n \"@microlink/react-json-view\": \"1.31.25\",\n \"@monaco-editor/react\": \"4.7.0\",\n \"@openhands/extensions\": \"0.18.0\",\n \"@openhands/typescript-client\": \"1.38.1\",\n \"@react-router/node\": \"7.18.2\",\n \"@react-router/serve\": \"7.18.2\",\n \"@tailwindcss/vite\": \"4.3.3\",\n \"@tanstack/react-query\": \"5.101.4\",\n \"@types/shell-quote\": \"1.7.5\",\n \"@uidotdev/usehooks\": \"2.4.1\",\n \"@xterm/addon-fit\": \"0.11.0\",\n \"@xterm/xterm\": \"6.0.0\",\n \"axios\": \"1.18.0\",\n \"class-variance-authority\": \"0.7.1\",\n \"clsx\": \"2.1.1\",\n \"downshift\": \"9.3.2\",\n \"framer-motion\": \"12.38.0\",\n \"httpxy\": \"0.5.3\",\n \"i18next\": \"26.3.6\",\n \"i18next-browser-languagedetector\": \"8.2.1\",\n \"i18next-http-backend\": \"4.0.1\",\n \"isbot\": \"5.1.39\",\n \"lucide-react\": \"1.25.0\",\n \"monaco-editor\": \"0.56.0\",\n \"posthog-js\": \"1.380.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-hot-toast\": \"2.6.0\",\n \"react-i18next\": \"17.0.11\",\n \"react-icons\": \"5.6.0\",\n \"react-markdown\": \"10.1.0\",\n \"react-router\": \"7.18.2\",\n \"react-syntax-highlighter\": \"16.1.1\",\n \"rehype-raw\": \"7.0.0\",\n \"rehype-sanitize\": \"6.0.0\",\n \"remark-breaks\": \"4.0.0\",\n \"remark-gfm\": \"4.0.1\",\n \"shell-quote\": \"1.9.0\",\n \"sirv\": \"3.0.2\",\n \"sirv-cli\": \"3.0.1\",\n \"socket.io-client\": \"4.8.3\",\n \"tailwind-merge\": \"3.6.0\",\n \"tailwind-scrollbar\": \"4.0.2\",\n \"unist-util-visit\": \"5.1.0\",\n \"uuid\": \"14.0.0\",\n \"vite\": \"8.0.16\",\n \"winston\": \"3.19.0\",\n \"winston-daily-rotate-file\": \"5.0.0\",\n \"zustand\": \"5.0.14\"\n },\n \"scripts\": {\n \"dev\": \"node --env-file-if-exists=.env scripts/dev-with-automation.mjs\",\n \"dev:static\": \"node --env-file-if-exists=.env scripts/dev-static.mjs\",\n \"dev:extra-backend\": \"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs\",\n \"dev:minimal\": \"node --env-file-if-exists=.env scripts/dev-safe.mjs\",\n \"dev:frontend\": \"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev\",\n \"dev:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev\",\n \"build\": \"npm run build:app\",\n \"build:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build\",\n \"start\": \"npx sirv-cli build/ --single\",\n \"test\": \"npm run make-i18n && vitest run\",\n \"test:e2e\": \"playwright test --pass-with-no-tests\",\n \"test:e2e:live\": \"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs\",\n \"test:e2e:mock-llm\": \"playwright test --config=playwright.mock-llm.config.ts\",\n \"test:e2e:mock-llm:docker\": \"playwright test --config=playwright.mock-llm-docker.config.ts\",\n \"test:coverage\": \"npm run make-i18n && vitest run --coverage\",\n \"test:mutation\": \"npm run make-i18n && stryker run\",\n \"test:mutation:diff\": \"npm run make-i18n && node scripts/stryker-diff.mjs\",\n \"test:mutation:incremental\": \"npm run make-i18n && stryker run --incremental\",\n \"dev_wsl\": \"VITE_WATCH_USE_POLLING=true vite\",\n \"preview\": \"vite preview\",\n \"make-i18n\": \"node scripts/make-i18n-translations.cjs\",\n \"prelint\": \"npm run make-i18n\",\n \"lint\": \"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}\",\n \"lint:fix\": \"eslint src --fix && prettier --write src/**/*.{ts,tsx}\",\n \"postinstall\": \"node -e \\\"if (process.env.npm_config_global === 'true') { console.log('\\\\n\\\\x1b[32m\\\\x1b[1m\\\\u2713 @openhands/agent-canvas installed!\\\\x1b[0m\\\\n\\\\nTo start Agent Canvas, run:\\\\n\\\\n \\\\x1b[36m\\\\x1b[1magent-canvas\\\\x1b[0m\\\\n\\\\nThis launches the full stack at \\\\x1b[36mhttp://localhost:8000\\\\x1b[0m.\\\\n\\\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\\\n') }\\\"\",\n \"prepare\": \"husky\",\n \"typecheck\": \"react-router typegen && tsc\",\n \"typecheck:staged\": \"react-router typegen && npx tsc --noEmit --skipLibCheck\",\n \"check-translation-completeness\": \"node scripts/check-translation-completeness.cjs\",\n \"build:app\": \"npm run make-i18n && react-router build\",\n \"build:lib\": \"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json\",\n \"build:docker\": \"node scripts/docker-build.mjs\",\n \"example:acp-docker:env\": \"node scripts/gen-acp-docker-env.mjs\",\n \"predesktop\": \"node scripts/brand-dev-electron.mjs\",\n \"desktop\": \"npm run build:app && electron electron\",\n \"build:desktop\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never\",\n \"build:desktop:universal\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never\",\n \"download-uv\": \"node scripts/download-uv.mjs\",\n \"download-node\": \"node scripts/download-node.mjs\",\n \"generate-icons\": \"node scripts/generate-icons.mjs\"\n },\n \"lint-staged\": {\n \"src/**/*.{ts,tsx,js}\": [\n \"eslint --fix\",\n \"prettier --write\"\n ],\n \"src/**/*.{ts,tsx}\": [\n \"node scripts/run-staged-typecheck.mjs\"\n ],\n \"src/**/*\": [\n \"npm run check-translation-completeness\"\n ]\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"3.3.6\",\n \"@eslint/js\": \"9.39.4\",\n \"@mswjs/socket.io-binding\": \"0.2.0\",\n \"@playwright/test\": \"1.62.1\",\n \"@react-router/dev\": \"7.18.2\",\n \"@stryker-mutator/core\": \"9.6.1\",\n \"@stryker-mutator/vitest-runner\": \"9.6.1\",\n \"@tailwindcss/typography\": \"0.5.20\",\n \"@tanstack/eslint-plugin-query\": \"5.101.4\",\n \"@testing-library/dom\": \"10.4.1\",\n \"@testing-library/jest-dom\": \"7.0.0\",\n \"@testing-library/react\": \"16.3.2\",\n \"@testing-library/user-event\": \"14.6.1\",\n \"@types/mdast\": \"4.0.4\",\n \"@types/node\": \"26.1.2\",\n \"@types/react\": \"19.2.18\",\n \"@types/react-dom\": \"19.2.4\",\n \"@types/react-syntax-highlighter\": \"15.5.13\",\n \"@typescript-eslint/eslint-plugin\": \"8.65.0\",\n \"@typescript-eslint/parser\": \"8.65.0\",\n \"@vercel/react-router\": \"1.3.0\",\n \"@vitest/coverage-v8\": \"4.1.10\",\n \"cross-env\": \"10.1.0\",\n \"electron\": \"42.3.3\",\n \"electron-builder\": \"26.15.3\",\n \"eslint\": \"9.39.5\",\n \"eslint-config-prettier\": \"10.1.8\",\n \"eslint-import-resolver-typescript\": \"4.4.5\",\n \"eslint-plugin-i18next\": \"6.1.5\",\n \"eslint-plugin-import-x\": \"4.17.1\",\n \"eslint-plugin-jsx-a11y\": \"6.10.2\",\n \"eslint-plugin-prettier\": \"5.5.6\",\n \"eslint-plugin-react\": \"7.37.5\",\n \"eslint-plugin-react-hooks\": \"7.1.1\",\n \"eslint-plugin-unused-imports\": \"4.4.1\",\n \"globals\": \"16.5.0\",\n \"husky\": \"9.1.7\",\n \"jsdom\": \"30.0.1\",\n \"lint-staged\": \"17.3.0\",\n \"msw\": \"2.15.0\",\n \"png2icons\": \"2.0.1\",\n \"postcss-prefix-selector\": \"2.1.1\",\n \"prettier\": \"3.8.3\",\n \"tailwindcss\": \"4.3.3\",\n \"typescript\": \"6.0.3\",\n \"vite-plugin-svgr\": \"5.2.0\",\n \"vitest\": \"4.1.10\"\n },\n \"packageManager\": \"npm@10.5.0\",\n \"volta\": {\n \"node\": \"22.12.0\"\n },\n \"msw\": {\n \"workerDirectory\": [\n \"public\"\n ]\n },\n \"overrides\": {\n \"@vercel/static-config\": {\n \"ajv\": \"8.20.0\"\n },\n \"dompurify\": \"3.4.12\",\n \"typed-rest-client\": {\n \"qs\": \"6.15.3\"\n }\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"bin\",\n \"build\",\n \"config\",\n \"scripts\",\n \"tools\"\n ],\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./browser\": {\n \"types\": \"./dist/components/browser/index.d.ts\",\n \"import\": \"./dist/components/browser/index.js\",\n \"require\": \"./dist/components/browser/index.cjs\"\n },\n \"./conversation\": {\n \"types\": \"./dist/components/conversation/index.d.ts\",\n \"import\": \"./dist/components/conversation/index.js\",\n \"require\": \"./dist/components/conversation/index.cjs\"\n },\n \"./files\": {\n \"types\": \"./dist/components/files/index.d.ts\",\n \"import\": \"./dist/components/files/index.js\",\n \"require\": \"./dist/components/files/index.cjs\"\n },\n \"./settings\": {\n \"types\": \"./dist/components/settings/index.d.ts\",\n \"import\": \"./dist/components/settings/index.js\",\n \"require\": \"./dist/components/settings/index.cjs\"\n },\n \"./sidebar\": {\n \"types\": \"./dist/components/sidebar/index.d.ts\",\n \"import\": \"./dist/components/sidebar/index.js\",\n \"require\": \"./dist/components/sidebar/index.cjs\"\n },\n \"./terminal\": {\n \"types\": \"./dist/components/terminal/index.d.ts\",\n \"import\": \"./dist/components/terminal/index.js\",\n \"require\": \"./dist/components/terminal/index.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.js\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"peerDependencies\": {\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-router\": \"7.18.2\"\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"package.cjs","names":[],"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@openhands/agent-canvas\",\n \"version\": \"1.16.0\",\n \"description\": \"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface\",\n \"license\": \"MIT\",\n \"private\": false,\n \"type\": \"module\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/OpenHands/OpenHands\"\n },\n \"homepage\": \"https://github.com/OpenHands/OpenHands#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/OpenHands/OpenHands/issues\"\n },\n \"bin\": {\n \"agent-canvas\": \"bin/agent-canvas.mjs\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"dependencies\": {\n \"@heroui/react\": \"2.8.10\",\n \"@microlink/react-json-view\": \"1.31.25\",\n \"@monaco-editor/react\": \"4.7.0\",\n \"@openhands/extensions\": \"0.19.0\",\n \"@openhands/typescript-client\": \"1.39.0\",\n \"@react-router/node\": \"7.18.2\",\n \"@react-router/serve\": \"7.18.2\",\n \"@tailwindcss/vite\": \"4.3.3\",\n \"@tanstack/react-query\": \"5.101.4\",\n \"@types/shell-quote\": \"1.7.5\",\n \"@uidotdev/usehooks\": \"2.4.1\",\n \"@xterm/addon-fit\": \"0.11.0\",\n \"@xterm/xterm\": \"6.0.0\",\n \"axios\": \"1.18.0\",\n \"class-variance-authority\": \"0.7.1\",\n \"clsx\": \"2.1.1\",\n \"downshift\": \"9.3.2\",\n \"framer-motion\": \"12.38.0\",\n \"httpxy\": \"0.5.3\",\n \"i18next\": \"26.3.6\",\n \"i18next-browser-languagedetector\": \"8.2.1\",\n \"i18next-http-backend\": \"4.0.1\",\n \"isbot\": \"5.1.39\",\n \"lucide-react\": \"1.25.0\",\n \"monaco-editor\": \"0.56.0\",\n \"posthog-js\": \"1.380.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-hot-toast\": \"2.6.0\",\n \"react-i18next\": \"17.0.11\",\n \"react-icons\": \"5.6.0\",\n \"react-markdown\": \"10.1.0\",\n \"react-router\": \"7.18.2\",\n \"react-syntax-highlighter\": \"16.1.1\",\n \"rehype-raw\": \"7.0.0\",\n \"rehype-sanitize\": \"6.0.0\",\n \"remark-breaks\": \"4.0.0\",\n \"remark-gfm\": \"4.0.1\",\n \"shell-quote\": \"1.9.0\",\n \"sirv\": \"3.0.2\",\n \"sirv-cli\": \"3.0.1\",\n \"socket.io-client\": \"4.8.3\",\n \"tailwind-merge\": \"3.6.0\",\n \"tailwind-scrollbar\": \"4.0.2\",\n \"unist-util-visit\": \"5.1.0\",\n \"uuid\": \"14.0.0\",\n \"vite\": \"8.0.16\",\n \"winston\": \"3.19.0\",\n \"winston-daily-rotate-file\": \"5.0.0\",\n \"zustand\": \"5.0.14\"\n },\n \"scripts\": {\n \"dev\": \"node --env-file-if-exists=.env scripts/dev-with-automation.mjs\",\n \"dev:static\": \"node --env-file-if-exists=.env scripts/dev-static.mjs\",\n \"dev:extra-backend\": \"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs\",\n \"dev:minimal\": \"node --env-file-if-exists=.env scripts/dev-safe.mjs\",\n \"dev:frontend\": \"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev\",\n \"dev:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev\",\n \"build\": \"npm run build:app\",\n \"build:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build\",\n \"start\": \"npx sirv-cli build/ --single\",\n \"test\": \"npm run make-i18n && vitest run\",\n \"test:e2e\": \"playwright test --pass-with-no-tests\",\n \"test:e2e:live\": \"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs\",\n \"test:e2e:mock-llm\": \"playwright test --config=playwright.mock-llm.config.ts\",\n \"test:e2e:mock-llm:docker\": \"playwright test --config=playwright.mock-llm-docker.config.ts\",\n \"test:coverage\": \"npm run make-i18n && vitest run --coverage\",\n \"test:mutation\": \"npm run make-i18n && stryker run\",\n \"test:mutation:diff\": \"npm run make-i18n && node scripts/stryker-diff.mjs\",\n \"test:mutation:incremental\": \"npm run make-i18n && stryker run --incremental\",\n \"dev_wsl\": \"VITE_WATCH_USE_POLLING=true vite\",\n \"preview\": \"vite preview\",\n \"make-i18n\": \"node scripts/make-i18n-translations.cjs\",\n \"prelint\": \"npm run make-i18n\",\n \"lint\": \"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}\",\n \"lint:fix\": \"eslint src --fix && prettier --write src/**/*.{ts,tsx}\",\n \"postinstall\": \"node -e \\\"if (process.env.npm_config_global === 'true') { console.log('\\\\n\\\\x1b[32m\\\\x1b[1m\\\\u2713 @openhands/agent-canvas installed!\\\\x1b[0m\\\\n\\\\nTo start Agent Canvas, run:\\\\n\\\\n \\\\x1b[36m\\\\x1b[1magent-canvas\\\\x1b[0m\\\\n\\\\nThis launches the full stack at \\\\x1b[36mhttp://localhost:8000\\\\x1b[0m.\\\\n\\\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\\\n') }\\\"\",\n \"prepare\": \"husky\",\n \"typecheck\": \"react-router typegen && tsc\",\n \"typecheck:staged\": \"react-router typegen && npx tsc --noEmit --skipLibCheck\",\n \"check-translation-completeness\": \"node scripts/check-translation-completeness.cjs\",\n \"build:app\": \"npm run make-i18n && react-router build\",\n \"build:lib\": \"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json\",\n \"build:docker\": \"node scripts/docker-build.mjs\",\n \"example:acp-docker:env\": \"node scripts/gen-acp-docker-env.mjs\",\n \"predesktop\": \"node scripts/brand-dev-electron.mjs\",\n \"desktop\": \"npm run build:app && electron electron\",\n \"build:desktop\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never\",\n \"build:desktop:universal\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never\",\n \"download-uv\": \"node scripts/download-uv.mjs\",\n \"download-node\": \"node scripts/download-node.mjs\",\n \"generate-icons\": \"node scripts/generate-icons.mjs\"\n },\n \"lint-staged\": {\n \"src/**/*.{ts,tsx,js}\": [\n \"eslint --fix\",\n \"prettier --write\"\n ],\n \"src/**/*.{ts,tsx}\": [\n \"node scripts/run-staged-typecheck.mjs\"\n ],\n \"src/**/*\": [\n \"npm run check-translation-completeness\"\n ]\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"3.3.6\",\n \"@eslint/js\": \"9.39.4\",\n \"@mswjs/socket.io-binding\": \"0.2.0\",\n \"@playwright/test\": \"1.62.1\",\n \"@react-router/dev\": \"7.18.2\",\n \"@stryker-mutator/core\": \"9.6.1\",\n \"@stryker-mutator/vitest-runner\": \"9.6.1\",\n \"@tailwindcss/typography\": \"0.5.20\",\n \"@tanstack/eslint-plugin-query\": \"5.101.4\",\n \"@testing-library/dom\": \"10.4.1\",\n \"@testing-library/jest-dom\": \"7.0.0\",\n \"@testing-library/react\": \"16.3.2\",\n \"@testing-library/user-event\": \"14.6.1\",\n \"@types/mdast\": \"4.0.4\",\n \"@types/node\": \"26.1.2\",\n \"@types/react\": \"19.2.18\",\n \"@types/react-dom\": \"19.2.4\",\n \"@types/react-syntax-highlighter\": \"15.5.13\",\n \"@typescript-eslint/eslint-plugin\": \"8.65.0\",\n \"@typescript-eslint/parser\": \"8.65.0\",\n \"@vercel/react-router\": \"1.3.0\",\n \"@vitest/coverage-v8\": \"4.1.10\",\n \"cross-env\": \"10.1.0\",\n \"electron\": \"42.3.3\",\n \"electron-builder\": \"26.15.3\",\n \"eslint\": \"9.39.5\",\n \"eslint-config-prettier\": \"10.1.8\",\n \"eslint-import-resolver-typescript\": \"4.4.5\",\n \"eslint-plugin-i18next\": \"6.1.5\",\n \"eslint-plugin-import-x\": \"4.17.1\",\n \"eslint-plugin-jsx-a11y\": \"6.10.2\",\n \"eslint-plugin-prettier\": \"5.5.6\",\n \"eslint-plugin-react\": \"7.37.5\",\n \"eslint-plugin-react-hooks\": \"7.1.1\",\n \"eslint-plugin-unused-imports\": \"4.4.1\",\n \"globals\": \"16.5.0\",\n \"husky\": \"9.1.7\",\n \"jsdom\": \"30.0.1\",\n \"lint-staged\": \"17.3.0\",\n \"msw\": \"2.15.0\",\n \"png2icons\": \"2.0.1\",\n \"postcss-prefix-selector\": \"2.1.1\",\n \"prettier\": \"3.8.3\",\n \"tailwindcss\": \"4.3.3\",\n \"typescript\": \"6.0.3\",\n \"vite-plugin-svgr\": \"5.2.0\",\n \"vitest\": \"4.1.10\"\n },\n \"packageManager\": \"npm@10.5.0\",\n \"volta\": {\n \"node\": \"22.12.0\"\n },\n \"msw\": {\n \"workerDirectory\": [\n \"public\"\n ]\n },\n \"overrides\": {\n \"@vercel/static-config\": {\n \"ajv\": \"8.20.0\"\n },\n \"dompurify\": \"3.4.12\",\n \"typed-rest-client\": {\n \"qs\": \"6.15.3\"\n }\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"bin\",\n \"build\",\n \"config\",\n \"scripts\",\n \"tools\"\n ],\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./browser\": {\n \"types\": \"./dist/components/browser/index.d.ts\",\n \"import\": \"./dist/components/browser/index.js\",\n \"require\": \"./dist/components/browser/index.cjs\"\n },\n \"./conversation\": {\n \"types\": \"./dist/components/conversation/index.d.ts\",\n \"import\": \"./dist/components/conversation/index.js\",\n \"require\": \"./dist/components/conversation/index.cjs\"\n },\n \"./files\": {\n \"types\": \"./dist/components/files/index.d.ts\",\n \"import\": \"./dist/components/files/index.js\",\n \"require\": \"./dist/components/files/index.cjs\"\n },\n \"./settings\": {\n \"types\": \"./dist/components/settings/index.d.ts\",\n \"import\": \"./dist/components/settings/index.js\",\n \"require\": \"./dist/components/settings/index.cjs\"\n },\n \"./sidebar\": {\n \"types\": \"./dist/components/sidebar/index.d.ts\",\n \"import\": \"./dist/components/sidebar/index.js\",\n \"require\": \"./dist/components/sidebar/index.cjs\"\n },\n \"./terminal\": {\n \"types\": \"./dist/components/terminal/index.d.ts\",\n \"import\": \"./dist/components/terminal/index.js\",\n \"require\": \"./dist/components/terminal/index.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.js\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"peerDependencies\": {\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-router\": \"7.18.2\"\n }\n}\n"],"mappings":""}
|
package/dist/package.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var e = {
|
|
2
2
|
name: "@openhands/agent-canvas",
|
|
3
|
-
version: "1.
|
|
3
|
+
version: "1.16.0",
|
|
4
4
|
description: "Agent Canvas UI for OpenHands - run AI coding agents with a visual interface",
|
|
5
5
|
license: "MIT",
|
|
6
6
|
private: !1,
|
|
@@ -17,8 +17,8 @@ var e = {
|
|
|
17
17
|
"@heroui/react": "2.8.10",
|
|
18
18
|
"@microlink/react-json-view": "1.31.25",
|
|
19
19
|
"@monaco-editor/react": "4.7.0",
|
|
20
|
-
"@openhands/extensions": "0.
|
|
21
|
-
"@openhands/typescript-client": "1.
|
|
20
|
+
"@openhands/extensions": "0.19.0",
|
|
21
|
+
"@openhands/typescript-client": "1.39.0",
|
|
22
22
|
"@react-router/node": "7.18.2",
|
|
23
23
|
"@react-router/serve": "7.18.2",
|
|
24
24
|
"@tailwindcss/vite": "4.3.3",
|
package/dist/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","names":[],"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@openhands/agent-canvas\",\n \"version\": \"1.15.0\",\n \"description\": \"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface\",\n \"license\": \"MIT\",\n \"private\": false,\n \"type\": \"module\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/OpenHands/OpenHands\"\n },\n \"homepage\": \"https://github.com/OpenHands/OpenHands#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/OpenHands/OpenHands/issues\"\n },\n \"bin\": {\n \"agent-canvas\": \"bin/agent-canvas.mjs\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"dependencies\": {\n \"@heroui/react\": \"2.8.10\",\n \"@microlink/react-json-view\": \"1.31.25\",\n \"@monaco-editor/react\": \"4.7.0\",\n \"@openhands/extensions\": \"0.18.0\",\n \"@openhands/typescript-client\": \"1.38.1\",\n \"@react-router/node\": \"7.18.2\",\n \"@react-router/serve\": \"7.18.2\",\n \"@tailwindcss/vite\": \"4.3.3\",\n \"@tanstack/react-query\": \"5.101.4\",\n \"@types/shell-quote\": \"1.7.5\",\n \"@uidotdev/usehooks\": \"2.4.1\",\n \"@xterm/addon-fit\": \"0.11.0\",\n \"@xterm/xterm\": \"6.0.0\",\n \"axios\": \"1.18.0\",\n \"class-variance-authority\": \"0.7.1\",\n \"clsx\": \"2.1.1\",\n \"downshift\": \"9.3.2\",\n \"framer-motion\": \"12.38.0\",\n \"httpxy\": \"0.5.3\",\n \"i18next\": \"26.3.6\",\n \"i18next-browser-languagedetector\": \"8.2.1\",\n \"i18next-http-backend\": \"4.0.1\",\n \"isbot\": \"5.1.39\",\n \"lucide-react\": \"1.25.0\",\n \"monaco-editor\": \"0.56.0\",\n \"posthog-js\": \"1.380.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-hot-toast\": \"2.6.0\",\n \"react-i18next\": \"17.0.11\",\n \"react-icons\": \"5.6.0\",\n \"react-markdown\": \"10.1.0\",\n \"react-router\": \"7.18.2\",\n \"react-syntax-highlighter\": \"16.1.1\",\n \"rehype-raw\": \"7.0.0\",\n \"rehype-sanitize\": \"6.0.0\",\n \"remark-breaks\": \"4.0.0\",\n \"remark-gfm\": \"4.0.1\",\n \"shell-quote\": \"1.9.0\",\n \"sirv\": \"3.0.2\",\n \"sirv-cli\": \"3.0.1\",\n \"socket.io-client\": \"4.8.3\",\n \"tailwind-merge\": \"3.6.0\",\n \"tailwind-scrollbar\": \"4.0.2\",\n \"unist-util-visit\": \"5.1.0\",\n \"uuid\": \"14.0.0\",\n \"vite\": \"8.0.16\",\n \"winston\": \"3.19.0\",\n \"winston-daily-rotate-file\": \"5.0.0\",\n \"zustand\": \"5.0.14\"\n },\n \"scripts\": {\n \"dev\": \"node --env-file-if-exists=.env scripts/dev-with-automation.mjs\",\n \"dev:static\": \"node --env-file-if-exists=.env scripts/dev-static.mjs\",\n \"dev:extra-backend\": \"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs\",\n \"dev:minimal\": \"node --env-file-if-exists=.env scripts/dev-safe.mjs\",\n \"dev:frontend\": \"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev\",\n \"dev:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev\",\n \"build\": \"npm run build:app\",\n \"build:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build\",\n \"start\": \"npx sirv-cli build/ --single\",\n \"test\": \"npm run make-i18n && vitest run\",\n \"test:e2e\": \"playwright test --pass-with-no-tests\",\n \"test:e2e:live\": \"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs\",\n \"test:e2e:mock-llm\": \"playwright test --config=playwright.mock-llm.config.ts\",\n \"test:e2e:mock-llm:docker\": \"playwright test --config=playwright.mock-llm-docker.config.ts\",\n \"test:coverage\": \"npm run make-i18n && vitest run --coverage\",\n \"test:mutation\": \"npm run make-i18n && stryker run\",\n \"test:mutation:diff\": \"npm run make-i18n && node scripts/stryker-diff.mjs\",\n \"test:mutation:incremental\": \"npm run make-i18n && stryker run --incremental\",\n \"dev_wsl\": \"VITE_WATCH_USE_POLLING=true vite\",\n \"preview\": \"vite preview\",\n \"make-i18n\": \"node scripts/make-i18n-translations.cjs\",\n \"prelint\": \"npm run make-i18n\",\n \"lint\": \"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}\",\n \"lint:fix\": \"eslint src --fix && prettier --write src/**/*.{ts,tsx}\",\n \"postinstall\": \"node -e \\\"if (process.env.npm_config_global === 'true') { console.log('\\\\n\\\\x1b[32m\\\\x1b[1m\\\\u2713 @openhands/agent-canvas installed!\\\\x1b[0m\\\\n\\\\nTo start Agent Canvas, run:\\\\n\\\\n \\\\x1b[36m\\\\x1b[1magent-canvas\\\\x1b[0m\\\\n\\\\nThis launches the full stack at \\\\x1b[36mhttp://localhost:8000\\\\x1b[0m.\\\\n\\\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\\\n') }\\\"\",\n \"prepare\": \"husky\",\n \"typecheck\": \"react-router typegen && tsc\",\n \"typecheck:staged\": \"react-router typegen && npx tsc --noEmit --skipLibCheck\",\n \"check-translation-completeness\": \"node scripts/check-translation-completeness.cjs\",\n \"build:app\": \"npm run make-i18n && react-router build\",\n \"build:lib\": \"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json\",\n \"build:docker\": \"node scripts/docker-build.mjs\",\n \"example:acp-docker:env\": \"node scripts/gen-acp-docker-env.mjs\",\n \"predesktop\": \"node scripts/brand-dev-electron.mjs\",\n \"desktop\": \"npm run build:app && electron electron\",\n \"build:desktop\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never\",\n \"build:desktop:universal\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never\",\n \"download-uv\": \"node scripts/download-uv.mjs\",\n \"download-node\": \"node scripts/download-node.mjs\",\n \"generate-icons\": \"node scripts/generate-icons.mjs\"\n },\n \"lint-staged\": {\n \"src/**/*.{ts,tsx,js}\": [\n \"eslint --fix\",\n \"prettier --write\"\n ],\n \"src/**/*.{ts,tsx}\": [\n \"node scripts/run-staged-typecheck.mjs\"\n ],\n \"src/**/*\": [\n \"npm run check-translation-completeness\"\n ]\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"3.3.6\",\n \"@eslint/js\": \"9.39.4\",\n \"@mswjs/socket.io-binding\": \"0.2.0\",\n \"@playwright/test\": \"1.62.1\",\n \"@react-router/dev\": \"7.18.2\",\n \"@stryker-mutator/core\": \"9.6.1\",\n \"@stryker-mutator/vitest-runner\": \"9.6.1\",\n \"@tailwindcss/typography\": \"0.5.20\",\n \"@tanstack/eslint-plugin-query\": \"5.101.4\",\n \"@testing-library/dom\": \"10.4.1\",\n \"@testing-library/jest-dom\": \"7.0.0\",\n \"@testing-library/react\": \"16.3.2\",\n \"@testing-library/user-event\": \"14.6.1\",\n \"@types/mdast\": \"4.0.4\",\n \"@types/node\": \"26.1.2\",\n \"@types/react\": \"19.2.18\",\n \"@types/react-dom\": \"19.2.4\",\n \"@types/react-syntax-highlighter\": \"15.5.13\",\n \"@typescript-eslint/eslint-plugin\": \"8.65.0\",\n \"@typescript-eslint/parser\": \"8.65.0\",\n \"@vercel/react-router\": \"1.3.0\",\n \"@vitest/coverage-v8\": \"4.1.10\",\n \"cross-env\": \"10.1.0\",\n \"electron\": \"42.3.3\",\n \"electron-builder\": \"26.15.3\",\n \"eslint\": \"9.39.5\",\n \"eslint-config-prettier\": \"10.1.8\",\n \"eslint-import-resolver-typescript\": \"4.4.5\",\n \"eslint-plugin-i18next\": \"6.1.5\",\n \"eslint-plugin-import-x\": \"4.17.1\",\n \"eslint-plugin-jsx-a11y\": \"6.10.2\",\n \"eslint-plugin-prettier\": \"5.5.6\",\n \"eslint-plugin-react\": \"7.37.5\",\n \"eslint-plugin-react-hooks\": \"7.1.1\",\n \"eslint-plugin-unused-imports\": \"4.4.1\",\n \"globals\": \"16.5.0\",\n \"husky\": \"9.1.7\",\n \"jsdom\": \"30.0.1\",\n \"lint-staged\": \"17.3.0\",\n \"msw\": \"2.15.0\",\n \"png2icons\": \"2.0.1\",\n \"postcss-prefix-selector\": \"2.1.1\",\n \"prettier\": \"3.8.3\",\n \"tailwindcss\": \"4.3.3\",\n \"typescript\": \"6.0.3\",\n \"vite-plugin-svgr\": \"5.2.0\",\n \"vitest\": \"4.1.10\"\n },\n \"packageManager\": \"npm@10.5.0\",\n \"volta\": {\n \"node\": \"22.12.0\"\n },\n \"msw\": {\n \"workerDirectory\": [\n \"public\"\n ]\n },\n \"overrides\": {\n \"@vercel/static-config\": {\n \"ajv\": \"8.20.0\"\n },\n \"dompurify\": \"3.4.12\",\n \"typed-rest-client\": {\n \"qs\": \"6.15.3\"\n }\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"bin\",\n \"build\",\n \"config\",\n \"scripts\",\n \"tools\"\n ],\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./browser\": {\n \"types\": \"./dist/components/browser/index.d.ts\",\n \"import\": \"./dist/components/browser/index.js\",\n \"require\": \"./dist/components/browser/index.cjs\"\n },\n \"./conversation\": {\n \"types\": \"./dist/components/conversation/index.d.ts\",\n \"import\": \"./dist/components/conversation/index.js\",\n \"require\": \"./dist/components/conversation/index.cjs\"\n },\n \"./files\": {\n \"types\": \"./dist/components/files/index.d.ts\",\n \"import\": \"./dist/components/files/index.js\",\n \"require\": \"./dist/components/files/index.cjs\"\n },\n \"./settings\": {\n \"types\": \"./dist/components/settings/index.d.ts\",\n \"import\": \"./dist/components/settings/index.js\",\n \"require\": \"./dist/components/settings/index.cjs\"\n },\n \"./sidebar\": {\n \"types\": \"./dist/components/sidebar/index.d.ts\",\n \"import\": \"./dist/components/sidebar/index.js\",\n \"require\": \"./dist/components/sidebar/index.cjs\"\n },\n \"./terminal\": {\n \"types\": \"./dist/components/terminal/index.d.ts\",\n \"import\": \"./dist/components/terminal/index.js\",\n \"require\": \"./dist/components/terminal/index.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.js\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"peerDependencies\": {\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-router\": \"7.18.2\"\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"package.js","names":[],"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@openhands/agent-canvas\",\n \"version\": \"1.16.0\",\n \"description\": \"Agent Canvas UI for OpenHands - run AI coding agents with a visual interface\",\n \"license\": \"MIT\",\n \"private\": false,\n \"type\": \"module\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/OpenHands/OpenHands\"\n },\n \"homepage\": \"https://github.com/OpenHands/OpenHands#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/OpenHands/OpenHands/issues\"\n },\n \"bin\": {\n \"agent-canvas\": \"bin/agent-canvas.mjs\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"dependencies\": {\n \"@heroui/react\": \"2.8.10\",\n \"@microlink/react-json-view\": \"1.31.25\",\n \"@monaco-editor/react\": \"4.7.0\",\n \"@openhands/extensions\": \"0.19.0\",\n \"@openhands/typescript-client\": \"1.39.0\",\n \"@react-router/node\": \"7.18.2\",\n \"@react-router/serve\": \"7.18.2\",\n \"@tailwindcss/vite\": \"4.3.3\",\n \"@tanstack/react-query\": \"5.101.4\",\n \"@types/shell-quote\": \"1.7.5\",\n \"@uidotdev/usehooks\": \"2.4.1\",\n \"@xterm/addon-fit\": \"0.11.0\",\n \"@xterm/xterm\": \"6.0.0\",\n \"axios\": \"1.18.0\",\n \"class-variance-authority\": \"0.7.1\",\n \"clsx\": \"2.1.1\",\n \"downshift\": \"9.3.2\",\n \"framer-motion\": \"12.38.0\",\n \"httpxy\": \"0.5.3\",\n \"i18next\": \"26.3.6\",\n \"i18next-browser-languagedetector\": \"8.2.1\",\n \"i18next-http-backend\": \"4.0.1\",\n \"isbot\": \"5.1.39\",\n \"lucide-react\": \"1.25.0\",\n \"monaco-editor\": \"0.56.0\",\n \"posthog-js\": \"1.380.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-hot-toast\": \"2.6.0\",\n \"react-i18next\": \"17.0.11\",\n \"react-icons\": \"5.6.0\",\n \"react-markdown\": \"10.1.0\",\n \"react-router\": \"7.18.2\",\n \"react-syntax-highlighter\": \"16.1.1\",\n \"rehype-raw\": \"7.0.0\",\n \"rehype-sanitize\": \"6.0.0\",\n \"remark-breaks\": \"4.0.0\",\n \"remark-gfm\": \"4.0.1\",\n \"shell-quote\": \"1.9.0\",\n \"sirv\": \"3.0.2\",\n \"sirv-cli\": \"3.0.1\",\n \"socket.io-client\": \"4.8.3\",\n \"tailwind-merge\": \"3.6.0\",\n \"tailwind-scrollbar\": \"4.0.2\",\n \"unist-util-visit\": \"5.1.0\",\n \"uuid\": \"14.0.0\",\n \"vite\": \"8.0.16\",\n \"winston\": \"3.19.0\",\n \"winston-daily-rotate-file\": \"5.0.0\",\n \"zustand\": \"5.0.14\"\n },\n \"scripts\": {\n \"dev\": \"node --env-file-if-exists=.env scripts/dev-with-automation.mjs\",\n \"dev:static\": \"node --env-file-if-exists=.env scripts/dev-static.mjs\",\n \"dev:extra-backend\": \"node --env-file-if-exists=.env scripts/dev-extra-backend.mjs\",\n \"dev:minimal\": \"node --env-file-if-exists=.env scripts/dev-safe.mjs\",\n \"dev:frontend\": \"npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev\",\n \"dev:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev\",\n \"build\": \"npm run build:app\",\n \"build:mock\": \"npm run make-i18n && cross-env VITE_MOCK_API=true react-router build\",\n \"start\": \"npx sirv-cli build/ --single\",\n \"test\": \"npm run make-i18n && vitest run\",\n \"test:e2e\": \"playwright test --pass-with-no-tests\",\n \"test:e2e:live\": \"node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs\",\n \"test:e2e:mock-llm\": \"playwright test --config=playwright.mock-llm.config.ts\",\n \"test:e2e:mock-llm:docker\": \"playwright test --config=playwright.mock-llm-docker.config.ts\",\n \"test:coverage\": \"npm run make-i18n && vitest run --coverage\",\n \"test:mutation\": \"npm run make-i18n && stryker run\",\n \"test:mutation:diff\": \"npm run make-i18n && node scripts/stryker-diff.mjs\",\n \"test:mutation:incremental\": \"npm run make-i18n && stryker run --incremental\",\n \"dev_wsl\": \"VITE_WATCH_USE_POLLING=true vite\",\n \"preview\": \"vite preview\",\n \"make-i18n\": \"node scripts/make-i18n-translations.cjs\",\n \"prelint\": \"npm run make-i18n\",\n \"lint\": \"npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}\",\n \"lint:fix\": \"eslint src --fix && prettier --write src/**/*.{ts,tsx}\",\n \"postinstall\": \"node -e \\\"if (process.env.npm_config_global === 'true') { console.log('\\\\n\\\\x1b[32m\\\\x1b[1m\\\\u2713 @openhands/agent-canvas installed!\\\\x1b[0m\\\\n\\\\nTo start Agent Canvas, run:\\\\n\\\\n \\\\x1b[36m\\\\x1b[1magent-canvas\\\\x1b[0m\\\\n\\\\nThis launches the full stack at \\\\x1b[36mhttp://localhost:8000\\\\x1b[0m.\\\\n\\\\nDocs: https://docs.openhands.dev/openhands/usage/agent-canvas/setup\\\\n') }\\\"\",\n \"prepare\": \"husky\",\n \"typecheck\": \"react-router typegen && tsc\",\n \"typecheck:staged\": \"react-router typegen && npx tsc --noEmit --skipLibCheck\",\n \"check-translation-completeness\": \"node scripts/check-translation-completeness.cjs\",\n \"build:app\": \"npm run make-i18n && react-router build\",\n \"build:lib\": \"npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true vite build && tsc -p tsconfig.lib.json\",\n \"build:docker\": \"node scripts/docker-build.mjs\",\n \"example:acp-docker:env\": \"node scripts/gen-acp-docker-env.mjs\",\n \"predesktop\": \"node scripts/brand-dev-electron.mjs\",\n \"desktop\": \"npm run build:app && electron electron\",\n \"build:desktop\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && electron-builder --config electron-builder.config.mjs --publish never\",\n \"build:desktop:universal\": \"npm run build:app && node scripts/download-uv.mjs && node scripts/download-node.mjs && cross-env ELECTRON_ARCH=universal electron-builder --config electron-builder.config.mjs --publish never\",\n \"download-uv\": \"node scripts/download-uv.mjs\",\n \"download-node\": \"node scripts/download-node.mjs\",\n \"generate-icons\": \"node scripts/generate-icons.mjs\"\n },\n \"lint-staged\": {\n \"src/**/*.{ts,tsx,js}\": [\n \"eslint --fix\",\n \"prettier --write\"\n ],\n \"src/**/*.{ts,tsx}\": [\n \"node scripts/run-staged-typecheck.mjs\"\n ],\n \"src/**/*\": [\n \"npm run check-translation-completeness\"\n ]\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"3.3.6\",\n \"@eslint/js\": \"9.39.4\",\n \"@mswjs/socket.io-binding\": \"0.2.0\",\n \"@playwright/test\": \"1.62.1\",\n \"@react-router/dev\": \"7.18.2\",\n \"@stryker-mutator/core\": \"9.6.1\",\n \"@stryker-mutator/vitest-runner\": \"9.6.1\",\n \"@tailwindcss/typography\": \"0.5.20\",\n \"@tanstack/eslint-plugin-query\": \"5.101.4\",\n \"@testing-library/dom\": \"10.4.1\",\n \"@testing-library/jest-dom\": \"7.0.0\",\n \"@testing-library/react\": \"16.3.2\",\n \"@testing-library/user-event\": \"14.6.1\",\n \"@types/mdast\": \"4.0.4\",\n \"@types/node\": \"26.1.2\",\n \"@types/react\": \"19.2.18\",\n \"@types/react-dom\": \"19.2.4\",\n \"@types/react-syntax-highlighter\": \"15.5.13\",\n \"@typescript-eslint/eslint-plugin\": \"8.65.0\",\n \"@typescript-eslint/parser\": \"8.65.0\",\n \"@vercel/react-router\": \"1.3.0\",\n \"@vitest/coverage-v8\": \"4.1.10\",\n \"cross-env\": \"10.1.0\",\n \"electron\": \"42.3.3\",\n \"electron-builder\": \"26.15.3\",\n \"eslint\": \"9.39.5\",\n \"eslint-config-prettier\": \"10.1.8\",\n \"eslint-import-resolver-typescript\": \"4.4.5\",\n \"eslint-plugin-i18next\": \"6.1.5\",\n \"eslint-plugin-import-x\": \"4.17.1\",\n \"eslint-plugin-jsx-a11y\": \"6.10.2\",\n \"eslint-plugin-prettier\": \"5.5.6\",\n \"eslint-plugin-react\": \"7.37.5\",\n \"eslint-plugin-react-hooks\": \"7.1.1\",\n \"eslint-plugin-unused-imports\": \"4.4.1\",\n \"globals\": \"16.5.0\",\n \"husky\": \"9.1.7\",\n \"jsdom\": \"30.0.1\",\n \"lint-staged\": \"17.3.0\",\n \"msw\": \"2.15.0\",\n \"png2icons\": \"2.0.1\",\n \"postcss-prefix-selector\": \"2.1.1\",\n \"prettier\": \"3.8.3\",\n \"tailwindcss\": \"4.3.3\",\n \"typescript\": \"6.0.3\",\n \"vite-plugin-svgr\": \"5.2.0\",\n \"vitest\": \"4.1.10\"\n },\n \"packageManager\": \"npm@10.5.0\",\n \"volta\": {\n \"node\": \"22.12.0\"\n },\n \"msw\": {\n \"workerDirectory\": [\n \"public\"\n ]\n },\n \"overrides\": {\n \"@vercel/static-config\": {\n \"ajv\": \"8.20.0\"\n },\n \"dompurify\": \"3.4.12\",\n \"typed-rest-client\": {\n \"qs\": \"6.15.3\"\n }\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"bin\",\n \"build\",\n \"config\",\n \"scripts\",\n \"tools\"\n ],\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./browser\": {\n \"types\": \"./dist/components/browser/index.d.ts\",\n \"import\": \"./dist/components/browser/index.js\",\n \"require\": \"./dist/components/browser/index.cjs\"\n },\n \"./conversation\": {\n \"types\": \"./dist/components/conversation/index.d.ts\",\n \"import\": \"./dist/components/conversation/index.js\",\n \"require\": \"./dist/components/conversation/index.cjs\"\n },\n \"./files\": {\n \"types\": \"./dist/components/files/index.d.ts\",\n \"import\": \"./dist/components/files/index.js\",\n \"require\": \"./dist/components/files/index.cjs\"\n },\n \"./settings\": {\n \"types\": \"./dist/components/settings/index.d.ts\",\n \"import\": \"./dist/components/settings/index.js\",\n \"require\": \"./dist/components/settings/index.cjs\"\n },\n \"./sidebar\": {\n \"types\": \"./dist/components/sidebar/index.d.ts\",\n \"import\": \"./dist/components/sidebar/index.js\",\n \"require\": \"./dist/components/sidebar/index.cjs\"\n },\n \"./terminal\": {\n \"types\": \"./dist/components/terminal/index.d.ts\",\n \"import\": \"./dist/components/terminal/index.js\",\n \"require\": \"./dist/components/terminal/index.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.js\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"peerDependencies\": {\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"react-router\": \"7.18.2\"\n }\n}\n"],"mappings":""}
|
|
@@ -11,6 +11,7 @@ type AgentType = "openhands" | "acp";
|
|
|
11
11
|
export type AgentProfileFieldsDraft = {
|
|
12
12
|
agent_kind: "openhands";
|
|
13
13
|
enable_sub_agents: boolean;
|
|
14
|
+
enable_switch_llm_tool?: boolean;
|
|
14
15
|
tool_concurrency_limit?: number;
|
|
15
16
|
} | {
|
|
16
17
|
agent_kind: "acp";
|
|
@@ -29,6 +30,15 @@ export interface AgentProfileFieldsInput {
|
|
|
29
30
|
commandTokens: string[];
|
|
30
31
|
acpModel: string;
|
|
31
32
|
subAgentsEnabled: boolean;
|
|
33
|
+
switchLlmToolField?: SettingsFieldSchema;
|
|
34
|
+
switchLlmToolEnabled: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the backend's *profile* model accepts `enable_switch_llm_tool`.
|
|
37
|
+
* Tracked apart from {@link switchLlmToolField} because the settings schema
|
|
38
|
+
* and the profile model gained the field in different releases — see
|
|
39
|
+
* {@link agentProfileSupportsSwitchLlmTool}.
|
|
40
|
+
*/
|
|
41
|
+
switchLlmToolSupportedOnProfile: boolean;
|
|
32
42
|
toolConcurrencyField?: SettingsFieldSchema;
|
|
33
43
|
toolConcurrency: string | boolean;
|
|
34
44
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../node_modules/react-i18next/dist/es/useTranslation.cjs"),n=require("../i18n/declaration.cjs"),r=require("../i18n/index.cjs"),
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../node_modules/react-i18next/dist/es/useTranslation.cjs"),n=require("../i18n/declaration.cjs"),r=require("../i18n/index.cjs"),i=require("../utils/retrieve-axios-error-message.cjs"),a=require("../utils/custom-toast-handlers.cjs"),o=require("../services/telemetry.cjs"),s=require("../contexts/active-backend-context.cjs"),c=require("../services/settings.cjs"),l=require("../utils/format-model-name.cjs"),u=require("../hooks/query/use-llm-profiles.cjs"),d=require("../hooks/query/use-settings.cjs"),f=require("../components/shared/navigation-link.cjs"),p=require("../hooks/mutation/use-save-settings.cjs"),m=require("../components/features/settings/brand-button.cjs"),h=require("../components/features/settings/settings-input.cjs"),g=require("../components/features/settings/settings-switch.cjs"),_=require("../components/features/settings/settings-dropdown-input.cjs"),v=require("../components/features/settings/app-settings/language-input.cjs"),y=require("../components/features/settings/app-settings/theme-input.cjs"),b=require("../components/features/settings/app-settings/getting-started-checklist-switch.cjs"),x=require("../components/features/settings/app-settings/app-settings-inputs-skeleton.cjs");let S=require("react");S=e.__toESM(S,1);let C=require("react/jsx-runtime");var w=`__automatic__`;function T(){let{t:e}=t.useTranslation(`openhands`),{mutate:T,isPending:E}=p.useSaveSettings(),{data:D,isLoading:O}=d.useSettings(),k=s.useActiveBackend().backend.kind===`cloud`,{data:A,isLoading:j}=u.useLlmProfiles(),[ee,M]=S.default.useState(!1),[N,P]=S.default.useState(!1),[F,I]=S.default.useState(!1),[L,R]=S.default.useState(!1),[z,B]=S.default.useState(!1),[V,H]=S.default.useState(void 0),U=S.default.useMemo(()=>{let e=D?.title_llm_profile??null;return!e||!A||A.profiles.some(t=>t.name===e)?e:null},[A,D?.title_llm_profile]),W=V===void 0?U:V,G=S.default.useMemo(()=>[{key:w,label:e(n.I18nKey.SETTINGS$TITLE_GENERATION_AUTOMATIC)},...A?.profiles.map(t=>({key:t.name,label:t.model?e(n.I18nKey.SETTINGS$TITLE_GENERATION_PROFILE_OPTION,{name:t.name,model:l.formatModelNameForDisplay(t.model)??t.model}):t.name}))??[]],[A?.profiles,e]),K=t=>{let s=t.get(`language-input`)?.toString(),l=r.AvailableLanguages.find(({label:e})=>e===s)?.value||c.DEFAULT_SETTINGS.language,u=k?!0:t.get(`enable-analytics-switch`)?.toString()===`on`,d=t.get(`enable-sound-notifications-switch`)?.toString()===`on`,f=t.get(`git-user-name-input`)?.toString()||c.DEFAULT_SETTINGS.git_user_name,p=t.get(`git-user-email-input`)?.toString()||c.DEFAULT_SETTINGS.git_user_email;T({language:l,...!k&&{user_consents_to_analytics:u},enable_sound_notifications:d,git_user_name:f,git_user_email:p,title_llm_profile:W},{onSuccess:()=>{o.setTelemetryConsent(u?`granted`:`denied`),a.displaySuccessToast(e(n.I18nKey.SETTINGS$SAVED))},onError:t=>{a.displayErrorToast(i.retrieveAxiosErrorMessage(t)||e(n.I18nKey.ERROR$GENERIC))},onSettled:()=>{M(!1),P(!1),I(!1),R(!1),B(!1),H(void 0)}})},q=e=>{let t=r.AvailableLanguages.find(({label:t})=>t===e)?.label,n=r.AvailableLanguages.find(({value:e})=>e===D?.language)?.label;M(t!==n)},J=e=>{P(e!==(D?.user_consents_to_analytics??!0))},Y=e=>{I(e!==!!D?.enable_sound_notifications)},X=e=>{let t=D?.git_user_name;R(e!==t)},Z=e=>{let t=D?.git_user_email;B(e!==t)},Q=!ee&&!N&&!F&&W===U&&!L&&!z,$=!D||O||j||E;return(0,C.jsxs)(`form`,{"data-testid":`app-settings-screen`,action:K,className:`flex flex-col gap-6`,children:[$&&(0,C.jsx)(x.AppSettingsInputsSkeleton,{}),!$&&(0,C.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,C.jsx)(v.LanguageInput,{name:`language-input`,defaultKey:D.language,onChange:q}),(0,C.jsx)(y.ThemeInput,{}),(0,C.jsx)(g.SettingsSwitch,{testId:`enable-analytics-switch`,name:k?void 0:`enable-analytics-switch`,defaultIsToggled:k?!0:D.user_consents_to_analytics??!0,isToggled:k?!0:void 0,isDisabled:k,onToggle:k?void 0:J,children:e(n.I18nKey.ANALYTICS$SEND_ANONYMOUS_DATA)}),(0,C.jsx)(g.SettingsSwitch,{testId:`enable-sound-notifications-switch`,name:`enable-sound-notifications-switch`,defaultIsToggled:!!D.enable_sound_notifications,onToggle:Y,children:e(n.I18nKey.SETTINGS$SOUND_NOTIFICATIONS)}),(0,C.jsx)(b.GettingStartedChecklistSwitch,{}),(0,C.jsxs)(`div`,{className:`border-t border-[var(--oh-border)] pt-6 mt-2`,children:[(0,C.jsx)(`h3`,{className:`text-lg font-medium mb-2`,children:e(n.I18nKey.SETTINGS$CONVERSATION_TITLES)}),(0,C.jsx)(`p`,{className:`mb-4 text-sm leading-5 text-tertiary-light`,children:e(n.I18nKey.SETTINGS$TITLE_GENERATION_DESCRIPTION)}),(0,C.jsx)(_.SettingsDropdownInput,{testId:`title-llm-profile-input`,name:`title-llm-profile-input`,label:e(n.I18nKey.SETTINGS$TITLE_GENERATION_MODEL),items:G,selectedKey:W??w,onSelectionChange:e=>{let t=e?.toString();H(!t||t===w?null:t)}}),(0,C.jsx)(f.NavigationLink,{to:`/settings/llm`,className:`mt-3 inline-block text-sm text-primary hover:underline`,children:e(n.I18nKey.SETTINGS$MANAGE_LLM_PROFILES)})]}),(0,C.jsxs)(`div`,{className:`border-t border-[var(--oh-border)] pt-6 mt-2`,children:[(0,C.jsx)(`h3`,{className:`text-lg font-medium mb-2`,children:e(n.I18nKey.SETTINGS$GIT_SETTINGS)}),(0,C.jsx)(`p`,{className:`mb-4 text-sm leading-5 text-tertiary-light`,children:e(n.I18nKey.SETTINGS$GIT_SETTINGS_DESCRIPTION)}),(0,C.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,C.jsx)(h.SettingsInput,{testId:`git-user-name-input`,name:`git-user-name-input`,type:`text`,label:e(n.I18nKey.SETTINGS$GIT_USERNAME),defaultValue:D.git_user_name||``,onChange:X,placeholder:e(n.I18nKey.SETTINGS$GIT_USERNAME_PLACEHOLDER),className:`w-full min-w-0`}),(0,C.jsx)(h.SettingsInput,{testId:`git-user-email-input`,name:`git-user-email-input`,type:`email`,label:e(n.I18nKey.SETTINGS$GIT_EMAIL),defaultValue:D.git_user_email||``,onChange:Z,placeholder:e(n.I18nKey.SETTINGS$GIT_EMAIL_PLACEHOLDER),className:`w-full min-w-0`})]}),(0,C.jsx)(`div`,{className:`flex justify-start pt-4`,children:(0,C.jsxs)(m.BrandButton,{testId:`submit-button`,variant:`primary`,type:`submit`,isDisabled:E||Q,children:[!E&&e(n.I18nKey.SETTINGS$SAVE_CHANGES),E&&e(n.I18nKey.SETTINGS$SAVING)]})})]})]})]})}exports.default=T;
|
|
2
2
|
//# sourceMappingURL=app-settings.cjs.map
|