@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
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"ONBOARDING$ACP_SECRETS_SUBSCRIPTION_NOTE": "Zaten bir abonelik veya hesapla oturum açtınız mı? Bu alanları boş bırakın — API anahtarı gerekmez.",
|
|
16
16
|
"ONBOARDING$ACP_AUTH_DETECTED": "{{provider}} hesabınızda zaten oturum açtınız — aşağıdaki alanları boş bırakabilirsiniz.",
|
|
17
17
|
"ONBOARDING$ACP_AUTH_CHECKING": "Mevcut bir {{provider}} oturumu denetleniyor…",
|
|
18
|
+
"ONBOARDING$ACP_CREDENTIALS_CONFIGURED": "{{provider}} kimlik bilgileri yapılandırıldı — aşağıdaki alanları boş bırakabilirsiniz.",
|
|
18
19
|
"MAINTENANCE$SCHEDULED_MESSAGE": "Planlı bakım {{time}} tarihinde başlayacak",
|
|
19
20
|
"ALERT$FAULTY_MODELS_MESSAGE": "Aşağıdaki modeller şu anda hata bildiriyor:",
|
|
20
21
|
"AZURE_DEVOPS$CONNECT_ACCOUNT": "Azure DevOps hesabını bağla",
|
|
@@ -141,6 +142,8 @@
|
|
|
141
142
|
"SCHEMA$AGENT$LABEL": "Ajan",
|
|
142
143
|
"SCHEMA$ENABLE_SUB_AGENTS$DESCRIPTION": "TaskToolSet aracılığıyla alt ajanlara yetki devrini etkinleştirin.",
|
|
143
144
|
"SCHEMA$ENABLE_SUB_AGENTS$LABEL": "Alt ajanları etkinleştir",
|
|
145
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$DESCRIPTION": "Aracının bu konuşmayı kendi kendine kayıtlı başka bir LLM profiline taşımasına izin ver. Bu aracı kaldırmak için devre dışı bırak.",
|
|
146
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$LABEL": "Aracının LLM profilleri arasında geçiş yapmasına izin ver",
|
|
144
147
|
"SCHEMA$AGENT_CONTEXT$SECTION_LABEL": "Ajan Bağlamı",
|
|
145
148
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$LABEL": "Kalıcı Ajan Belleği",
|
|
146
149
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$DESCRIPTION": "Ajan, .openhands/memory/ altında notlar tutar ve her yeni konuşmanın başında bunları yükler; zamanla kod tabanınızı ve tercihlerinizi öğrenir.",
|
|
@@ -277,7 +280,7 @@
|
|
|
277
280
|
"SCHEMA$VERIFICATION$CONFIRMATION_MODE$LABEL": "Onay modu",
|
|
278
281
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$DESCRIPTION": "Eleştirmenin LLM'sini çağırmak için kullandığı isteğe bağlı API anahtarı. Boş bırakılırsa eleştirmen LLM API anahtarını yeniden kullanır.",
|
|
279
282
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_TEXT": "Etkin LLM sağlayıcısı olarak OpenHands seçiliyse burayı boş bırakın; Critic API Key, OpenHands Provider LLM Key ile aynı anahtardır ve",
|
|
280
|
-
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "
|
|
283
|
+
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "bölümünde bulabilirsiniz; aksi takdirde o sayfadan bir Critic API Key girin.",
|
|
281
284
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$LABEL": "Eleştirmen API Anahtarı",
|
|
282
285
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$DESCRIPTION": "Ajan için eleştiri değerlendirmesini etkinleştir.",
|
|
283
286
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$LABEL": "Eleştiriyi etkinleştir",
|
|
@@ -690,9 +693,10 @@
|
|
|
690
693
|
"SETTINGS$RESET": "Ayarlar sıfırlandı",
|
|
691
694
|
"SETTINGS$API_KEYS": "API Anahtarları",
|
|
692
695
|
"SETTINGS$API_KEYS_DESCRIPTION": "API anahtarları, OpenHands API ile programlı olarak kimlik doğrulamanıza olanak tanır. API anahtarlarınızı güvende tutun; API anahtarınıza sahip olan herkes hesabınıza erişebilir. API'nin nasıl kullanılacağı hakkında daha fazla bilgi için <a>API belgelerimize</a> bakın.",
|
|
693
|
-
"SETTINGS$OPENHANDS_API_KEY_HELP": "OpenHands Provider LLM Key'inizi OpenHands Cloud'un <a>API Anahtarları</a> sekmesinde bulabilirsiniz.",
|
|
694
696
|
"SETTINGS$OPENHANDS_API_KEY_HELP_TEXT": "OpenHands Provider LLM Key'inizi",
|
|
695
|
-
"SETTINGS$
|
|
697
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_LINK": "OpenHands LLM Key",
|
|
698
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_SUFFIX": "OpenHands Cloud'un bölümünde bulabilirsiniz -",
|
|
699
|
+
"SETTINGS$SEE_HERE_FOR_MORE_DETAILS": "daha fazla bilgi için bkz.",
|
|
696
700
|
"SETTINGS$CREATE_API_KEY": "API Anahtarı Oluştur",
|
|
697
701
|
"SETTINGS$CREATE_API_KEY_DESCRIPTION": "API anahtarınıza, daha sonra tanımlamanıza yardımcı olacak açıklayıcı bir isim verin.",
|
|
698
702
|
"SETTINGS$DELETE_API_KEY": "API Anahtarını Sil",
|
|
@@ -813,6 +817,13 @@
|
|
|
813
817
|
"AUTOMATIONS$DETAIL$RUNNING": "Çalışıyor",
|
|
814
818
|
"AUTOMATIONS$DETAIL$CANCELLED": "İptal edildi",
|
|
815
819
|
"AUTOMATIONS$DETAIL$SKIPPED": "Atlandı",
|
|
820
|
+
"AUTOMATIONS$DETAIL$PHASE": "Aşama",
|
|
821
|
+
"AUTOMATIONS$DETAIL$PHASE_QUEUED": "Sırada",
|
|
822
|
+
"AUTOMATIONS$DETAIL$PHASE_SANDBOX_PROVISIONING": "Sandbox hazırlanıyor",
|
|
823
|
+
"AUTOMATIONS$DETAIL$PHASE_BUNDLE_UPLOAD": "Paket yükleniyor",
|
|
824
|
+
"AUTOMATIONS$DETAIL$PHASE_ENTRYPOINT_START": "Başlatılıyor",
|
|
825
|
+
"AUTOMATIONS$DETAIL$PHASE_PREPARING": "Hazırlanıyor",
|
|
826
|
+
"AUTOMATIONS$DETAIL$PHASE_RUNNING_AGENT": "Ajan çalışıyor",
|
|
816
827
|
"AUTOMATIONS$DETAIL$INACTIVE": "Pasif",
|
|
817
828
|
"AUTOMATIONS$DETAIL$LAST_RUN": "Son çalıştırma",
|
|
818
829
|
"AUTOMATIONS$DETAIL$LOAD_MORE_RUNS": "Daha fazla yükle",
|
|
@@ -1182,7 +1193,6 @@
|
|
|
1182
1193
|
"TOS$ACCEPT_TERMS_DESCRIPTION": "Devam etmeden önce lütfen hizmet şartlarımızı gözden geçirin ve kabul edin",
|
|
1183
1194
|
"TOS$CONTINUE": "Devam Et",
|
|
1184
1195
|
"TOS$ERROR_ACCEPTING": "Hizmet Şartlarını kabul ederken hata oluştu",
|
|
1185
|
-
"TIPS$CUSTOMIZE_MICROAGENT": "Kullanılabilir bir mikro ajan kullanarak OpenHands'i deponuz için özelleştirebilirsiniz. OpenHands'ten deponun açıklamasını, kodun nasıl çalıştırılacağı dahil, .openhands/microagents/repo.md dosyasına koymasını isteyin.",
|
|
1186
1196
|
"CONVERSATION$NO_SKILLS": "Bu sohbet için kullanılabilir yetenek bulunamadı.",
|
|
1187
1197
|
"CONVERSATION$NO_HOOKS": "Bu sohbet için yapılandırılmış kanca yok.",
|
|
1188
1198
|
"CONVERSATION$SHOW_HOOKS": "Kullanılabilir kancaları göster",
|
|
@@ -1197,17 +1207,6 @@
|
|
|
1197
1207
|
"COMMON$CONTENT": "İçerik",
|
|
1198
1208
|
"SKILLS_MODAL$NO_CONTENT": "Beceride içerik yok",
|
|
1199
1209
|
"COMMON$FETCH_ERROR": "Beceriler alınamadı. Lütfen daha sonra tekrar deneyin.",
|
|
1200
|
-
"TIPS$SETUP_SCRIPT": "OpenHands konuşması başlattığınız her seferinde otomatik olarak bir kurulum betiği çalıştırmak için deponuza .openhands/setup.sh ekleyebilirsiniz.",
|
|
1201
|
-
"TIPS$VSCODE_INSTANCE": "Her OpenHands konuşması, geliştirme ortamıyla etkileşimde bulunabileceğiniz bir VS Code örneği ile birlikte gelir.",
|
|
1202
|
-
"TIPS$SAVE_WORK": "GitHub'a göndererek veya VS Code aracılığıyla dosyalarınızı indirerek çalışmalarınızı düzenli olarak kaydettiğinizden emin olun.",
|
|
1203
|
-
"TIPS$SPECIFY_FILES": "Mümkün olduğunda, OpenHands'in odaklanması gereken dosya veya fonksiyon isimlerini dahil edin. Bu, OpenHands'in daha hızlı çalışmasına, para tasarrufu sağlamasına ve doğruluğu artırmasına yardımcı olabilir.",
|
|
1204
|
-
"TIPS$HEADLESS_MODE": "OpenHands'i başsız modda çalıştırarak, 500 hatalarına otomatik olarak düzeltme oluşturarak yanıt vermek gibi otomasyonlar oluşturabilirsiniz.",
|
|
1205
|
-
"TIPS$CLI_MODE": "OpenHands'i Claude Code'a benzer şekilde bir CLI olarak çalıştırabilirsiniz.",
|
|
1206
|
-
"TIPS$GITHUB_HOOK": "OpenHands Cloud, GitHub kancası sunar, böylece GitHub arayüzünde doğrudan \"@openhands birleştirme çakışmalarını düzelt\" veya \"@openhands bu PR'daki geri bildirimi düzelt\" diyebilirsiniz.",
|
|
1207
|
-
"TIPS$BLOG_SIGNUP": "Yeni özellikler ve en son sürümler hakkında bilgi almak için OpenHands Blog'a kaydolun.",
|
|
1208
|
-
"TIPS$API_USAGE": "OpenHands'in bir API'si var! Basit bir cURL komutuyla OpenHands konuşmaları oluşturun.",
|
|
1209
|
-
"TIPS$LEARN_MORE": "Daha fazla bilgi",
|
|
1210
|
-
"TIPS$PROTIP": "Uzman ipucu",
|
|
1211
1210
|
"FEEDBACK$SUBMITTING_LABEL": "Gönderiliyor...",
|
|
1212
1211
|
"FEEDBACK$SUBMITTING_MESSAGE": "Geri bildirim gönderiliyor, lütfen bekleyin...",
|
|
1213
1212
|
"SETTINGS$NAV_ADD_TEAM_MEMBERS": "Takım üyeleri ekle",
|
|
@@ -1799,7 +1798,7 @@
|
|
|
1799
1798
|
"ONBOARDING$BACKEND_STATUS_DISCONNECTED": "Bağlantı yok",
|
|
1800
1799
|
"ONBOARDING$BACKEND_STATUS_CHECKING": "Kontrol ediliyor…",
|
|
1801
1800
|
"ONBOARDING$LLM_TITLE": "LLM'inizi yapılandırın",
|
|
1802
|
-
"ONBOARDING$LLM_SUBTITLE": "Bir sağlayıcı ve model seçin.
|
|
1801
|
+
"ONBOARDING$LLM_SUBTITLE": "Bir sağlayıcı ve model seçin. OpenAI GPT-5.6 Sol'i önceden seçtik.",
|
|
1803
1802
|
"ONBOARDING$HELLO_TITLE": "Selam ver 👋",
|
|
1804
1803
|
"ONBOARDING$HELLO_SUBTITLE": "OpenHands'e ilk mesajınızı gönderin. Çalışma alanı olmadan yeni bir sohbet başlatacağız.",
|
|
1805
1804
|
"ONBOARDING$HELLO_DEFAULT_MESSAGE": "OpenHands'in neler yapabileceğini anlatan basit bir web sayfası oluştur.",
|
|
@@ -1908,6 +1907,17 @@
|
|
|
1908
1907
|
"SETTINGS$PLUGINS_UNINSTALL_SUCCESS": "Eklenti kaldırıldı.",
|
|
1909
1908
|
"SETTINGS$PLUGINS_REFRESH_SUCCESS": "Eklenti güncellendi.",
|
|
1910
1909
|
"SETTINGS$PLUGINS_SKILLS_IN_BUNDLE": "Bu eklenti paketindeki yetenekler",
|
|
1910
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_DESCRIPTION": "Bu arka uç için Canvas içinde çalışan güvenilir bir arayüz kurun. Kurulan uzantılar siz burada etkinleştirene kadar kapalı kalır.",
|
|
1911
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_BUTTON": "Uzantı ekle",
|
|
1912
|
+
"SETTINGS$CANVAS_EXTENSIONS_EMPTY": "Bu arka uçta kurulu Canvas Uzantısı yok.",
|
|
1913
|
+
"SETTINGS$CANVAS_EXTENSIONS_TRUST_NOTICE": "Etkin uzantılar, bu Canvas oturumuna tam erişimi olan güvenilir kodlardır.",
|
|
1914
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_MODAL_INTRO": "Bir Git kaynağından veya etkin Agent Server üzerindeki bir yoldan kurun. Uzantı devre dışı olarak kurulacaktır.",
|
|
1915
|
+
"SETTINGS$CANVAS_EXTENSIONS_INSTALL_SUCCESS": "Uzantı kuruldu. Burada inceleyin ve hazır olduğunuzda etkinleştirin.",
|
|
1916
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_SUCCESS": "Uzantı kaldırıldı.",
|
|
1917
|
+
"SETTINGS$CANVAS_EXTENSIONS_ENABLE_CONFIRM": "Etkin uzantılar, bu Canvas oturumuna tam erişimi olan güvenilir kodlardır. {{name}} etkinleştirilsin mi?",
|
|
1918
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_CONFIRM": "{{name}} bu arka uçtan kaldırılsın mı?",
|
|
1919
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGES": "Sayfalar",
|
|
1920
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_UNAVAILABLE": "Bu uzantı devre dışı, eksik veya bu sayfayı sağlamıyor.",
|
|
1911
1921
|
"SETTINGS$SKILLS_PAGE_DESCRIPTION": "Çalışma alanınıza eklenecek yetenekleri keşfedin. İstemler, curl ve yükleme akışları için bir kart açın. Listeyi filtrelemek için kenar çubuğundan arama yapın. Varsayılan yetenekleri etkinleştirin veya devre dışı bırakın. Devre dışı bırakılan yetenekler ajan bağlamına yüklenmez.",
|
|
1912
1922
|
"SETTINGS$SKILLS_ADD_BUTTON": "Yetenek ekle",
|
|
1913
1923
|
"SETTINGS$SKILLS_USE_SKILL_BUTTON": "Yeteneği kullan",
|
|
@@ -1940,6 +1950,10 @@
|
|
|
1940
1950
|
"SETTINGS$SKILLS_FACET_SOURCE": "Kaynak",
|
|
1941
1951
|
"SETTINGS$SKILLS_FACET_CATEGORY": "Kategori",
|
|
1942
1952
|
"SETTINGS$SKILLS_FACET_TYPE": "Tür",
|
|
1953
|
+
"SETTINGS$SKILLS_FACET_RECOMMENDATION": "Öneri",
|
|
1954
|
+
"SETTINGS$SKILLS_RECOMMENDED": "Önerilen",
|
|
1955
|
+
"SETTINGS$SKILLS_RECOMMENDATION_OTHER": "Diğer",
|
|
1956
|
+
"SETTINGS$SKILLS_NEW_CONVERSATION_NOTICE": "Yetenek değişiklikleri yalnızca yeni sohbetlere uygulanır.",
|
|
1943
1957
|
"SETTINGS$SKILLS_SOURCE_PROJECT": "Bu proje",
|
|
1944
1958
|
"SETTINGS$SKILLS_SOURCE_PERSONAL": "Kişisel",
|
|
1945
1959
|
"SETTINGS$SKILLS_SOURCE_PUBLIC": "Yerleşik",
|
|
@@ -2098,6 +2112,8 @@
|
|
|
2098
2112
|
"COMMON$FAILED_TO_LOAD": "Yüklenemedi",
|
|
2099
2113
|
"SETTINGS$TOGGLE_SETTINGS_MENU": "Ayarlar menüsünü aç/kapat",
|
|
2100
2114
|
"SIDEBAR$NEW_CHAT": "Yeni sohbet",
|
|
2115
|
+
"SIDEBAR$PIN_AS_HOME": "Pin as home page",
|
|
2116
|
+
"SIDEBAR$UNPIN_AS_HOME": "Unpin as home page",
|
|
2101
2117
|
"SETTINGS$SECRET_NAME_PATTERN_TITLE": "Bir harfle başlamalı, yalnızca harf/rakam/alt çizgi içermeli ve 1-64 karakter olmalıdır",
|
|
2102
2118
|
"PLUGINS$PICKER_TRIGGER": "Eklentiler",
|
|
2103
2119
|
"CONVERSATION$SHOW_PLUGINS": "Eklentileri göster",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"ONBOARDING$ACP_SECRETS_SUBSCRIPTION_NOTE": "Уже ввійшли за підпискою чи обліковим записом? Залиште ці поля порожніми — ключ API не потрібен.",
|
|
16
16
|
"ONBOARDING$ACP_AUTH_DETECTED": "Ви вже ввійшли до {{provider}} — поля нижче можна залишити порожніми.",
|
|
17
17
|
"ONBOARDING$ACP_AUTH_CHECKING": "Перевірка наявного входу до {{provider}}…",
|
|
18
|
+
"ONBOARDING$ACP_CREDENTIALS_CONFIGURED": "Облікові дані для {{provider}} налаштовано — поля нижче можна залишити порожніми.",
|
|
18
19
|
"MAINTENANCE$SCHEDULED_MESSAGE": "Планове технічне обслуговування розпочнеться о {{time}}",
|
|
19
20
|
"ALERT$FAULTY_MODELS_MESSAGE": "Наступні моделі наразі повідомляють про помилки:",
|
|
20
21
|
"AZURE_DEVOPS$CONNECT_ACCOUNT": "Підключити обліковий запис Azure DevOps",
|
|
@@ -141,6 +142,8 @@
|
|
|
141
142
|
"SCHEMA$AGENT$LABEL": "Агент",
|
|
142
143
|
"SCHEMA$ENABLE_SUB_AGENTS$DESCRIPTION": "Увімкніть делегування субагентам через TaskToolSet.",
|
|
143
144
|
"SCHEMA$ENABLE_SUB_AGENTS$LABEL": "Увімкнути субагентів",
|
|
145
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$DESCRIPTION": "Дозволити агенту самостійно переносити цю розмову до іншого збереженого профілю LLM. Вимкніть, щоб прибрати цей інструмент.",
|
|
146
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$LABEL": "Дозволити агенту перемикати профілі LLM",
|
|
144
147
|
"SCHEMA$AGENT_CONTEXT$SECTION_LABEL": "Контекст агента",
|
|
145
148
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$LABEL": "Постійна пам'ять агента",
|
|
146
149
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$DESCRIPTION": "Агент зберігає нотатки в .openhands/memory/ і завантажує їх на початку кожної нової розмови, з часом вивчаючи вашу кодову базу та вподобання.",
|
|
@@ -277,7 +280,7 @@
|
|
|
277
280
|
"SCHEMA$VERIFICATION$CONFIRMATION_MODE$LABEL": "Режим підтвердження",
|
|
278
281
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$DESCRIPTION": "Необов'язковий ключ API, який критик використовує для виклику свого LLM. Якщо залишити поле порожнім, критик повторно використає ключ API LLM.",
|
|
279
282
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_TEXT": "Якщо OpenHands вибрано як активного постачальника LLM, залиште це поле порожнім, оскільки Critic API Key є тим самим ключем, що й OpenHands Provider LLM Key, який можна знайти у",
|
|
280
|
-
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "
|
|
283
|
+
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "розділі OpenHands Cloud; інакше введіть Critic API Key з цієї сторінки.",
|
|
281
284
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$LABEL": "Ключ API критика",
|
|
282
285
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$DESCRIPTION": "Увімкнути критичну оцінку для агента.",
|
|
283
286
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$LABEL": "Увімкнути критика",
|
|
@@ -690,9 +693,10 @@
|
|
|
690
693
|
"SETTINGS$RESET": "Скидання налаштувань",
|
|
691
694
|
"SETTINGS$API_KEYS": "API ключі",
|
|
692
695
|
"SETTINGS$API_KEYS_DESCRIPTION": "Ключі API дозволяють вам програмно автентифікуватися за допомогою API OpenHands. Зберігайте свої ключі API в безпеці; будь-хто, хто має ваш ключ API, може отримати доступ до вашого облікового запису. Для отримання додаткової інформації про використання API, перегляньте нашу <a>документацію API</a>.",
|
|
693
|
-
"SETTINGS$OPENHANDS_API_KEY_HELP": "Ви можете знайти свій OpenHands Provider LLM Key у вкладці <a>Ключі API</a> OpenHands Cloud.",
|
|
694
696
|
"SETTINGS$OPENHANDS_API_KEY_HELP_TEXT": "Ви можете знайти свій OpenHands Provider LLM Key у",
|
|
695
|
-
"SETTINGS$
|
|
697
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_LINK": "OpenHands LLM Key",
|
|
698
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_SUFFIX": "розділі OpenHands Cloud -",
|
|
699
|
+
"SETTINGS$SEE_HERE_FOR_MORE_DETAILS": "дивіться тут для отримання більш детальної інформації",
|
|
696
700
|
"SETTINGS$CREATE_API_KEY": "Створити API ключ",
|
|
697
701
|
"SETTINGS$CREATE_API_KEY_DESCRIPTION": "Дайте своєму ключу API змістовну назву, щоб ви могли його пізніше ідентифікувати.",
|
|
698
702
|
"SETTINGS$DELETE_API_KEY": "Видалити API ключ",
|
|
@@ -813,6 +817,13 @@
|
|
|
813
817
|
"AUTOMATIONS$DETAIL$RUNNING": "Виконується",
|
|
814
818
|
"AUTOMATIONS$DETAIL$CANCELLED": "Скасовано",
|
|
815
819
|
"AUTOMATIONS$DETAIL$SKIPPED": "Пропущено",
|
|
820
|
+
"AUTOMATIONS$DETAIL$PHASE": "Етап",
|
|
821
|
+
"AUTOMATIONS$DETAIL$PHASE_QUEUED": "У черзі",
|
|
822
|
+
"AUTOMATIONS$DETAIL$PHASE_SANDBOX_PROVISIONING": "Налаштування пісочниці",
|
|
823
|
+
"AUTOMATIONS$DETAIL$PHASE_BUNDLE_UPLOAD": "Завантаження пакета",
|
|
824
|
+
"AUTOMATIONS$DETAIL$PHASE_ENTRYPOINT_START": "Запуск",
|
|
825
|
+
"AUTOMATIONS$DETAIL$PHASE_PREPARING": "Підготовка",
|
|
826
|
+
"AUTOMATIONS$DETAIL$PHASE_RUNNING_AGENT": "Агент виконується",
|
|
816
827
|
"AUTOMATIONS$DETAIL$INACTIVE": "Неактивний",
|
|
817
828
|
"AUTOMATIONS$DETAIL$LAST_RUN": "Останнє виконання",
|
|
818
829
|
"AUTOMATIONS$DETAIL$LOAD_MORE_RUNS": "Завантажити більше",
|
|
@@ -1182,7 +1193,6 @@
|
|
|
1182
1193
|
"TOS$ACCEPT_TERMS_DESCRIPTION": "Будь ласка, ознайомтеся та прийміть наші умови надання послуг, перш ніж продовжити",
|
|
1183
1194
|
"TOS$CONTINUE": "Продовжити",
|
|
1184
1195
|
"TOS$ERROR_ACCEPTING": "Помилка прийняття Умов обслуговування",
|
|
1185
|
-
"TIPS$CUSTOMIZE_MICROAGENT": "Ви можете налаштувати OpenHands для свого репозиторію за допомогою доступного мікроагента. Попросіть OpenHands розмістити опис репозиторію, включаючи інформацію про те, як запустити код, у файлі .openhands/microagents/repo.md.",
|
|
1186
1196
|
"CONVERSATION$NO_SKILLS": "У цій розмові не знайдено доступних навичок.",
|
|
1187
1197
|
"CONVERSATION$NO_HOOKS": "Для цієї розмови не налаштовано хуків.",
|
|
1188
1198
|
"CONVERSATION$SHOW_HOOKS": "Показати доступні хуки",
|
|
@@ -1197,17 +1207,6 @@
|
|
|
1197
1207
|
"COMMON$CONTENT": "Вміст",
|
|
1198
1208
|
"SKILLS_MODAL$NO_CONTENT": "У навички немає вмісту",
|
|
1199
1209
|
"COMMON$FETCH_ERROR": "Не вдалося отримати навички. Будь ласка, спробуйте пізніше.",
|
|
1200
|
-
"TIPS$SETUP_SCRIPT": "Ви можете додати .openhands/setup.sh до свого репозиторію, щоб автоматично запускати скрипт налаштування щоразу, коли ви починаєте розмову OpenHands.",
|
|
1201
|
-
"TIPS$VSCODE_INSTANCE": "Кожна розмова OpenHands постачається з екземпляром VS Code, де ви можете взаємодіяти із середовищем розробки.",
|
|
1202
|
-
"TIPS$SAVE_WORK": "Обов’язково регулярно зберігайте свою роботу, або завантажуючи її на GitHub, або завантажуючи файли через VS Code.",
|
|
1203
|
-
"TIPS$SPECIFY_FILES": "Коли це можливо, вказуйте назви файлів або функцій, на яких має зосередитися OpenHands. Це може допомогти OpenHands працювати швидше, заощадити гроші та підвищити точність.",
|
|
1204
|
-
"TIPS$HEADLESS_MODE": "Ви можете запускати OpenHands в headless режимі для створення автоматизації, наприклад, реагування на 500 помилок шляхом автоматичного створення виправлення.",
|
|
1205
|
-
"TIPS$CLI_MODE": "Ви можете запускати OpenHands як CLI, подібно до Claude Code.",
|
|
1206
|
-
"TIPS$GITHUB_HOOK": "OpenHands Cloud пропонує хук GitHub, тож ви можете сказати «@openhands виправити конфлікти злиття» або «@openhands виправити відгук про цей PR» прямо в інтерфейсі GitHub.",
|
|
1207
|
-
"TIPS$BLOG_SIGNUP": "Підпишіться на блог OpenHands, щоб дізнаватися про нові функції та останні релізи.",
|
|
1208
|
-
"TIPS$API_USAGE": "OpenHands має API! Створюйте розмови OpenHands за допомогою простої команди cURL.",
|
|
1209
|
-
"TIPS$LEARN_MORE": "Дізнатися більше",
|
|
1210
|
-
"TIPS$PROTIP": "Порада професіонала",
|
|
1211
1210
|
"FEEDBACK$SUBMITTING_LABEL": "Відправляємо...",
|
|
1212
1211
|
"FEEDBACK$SUBMITTING_MESSAGE": "Відправляємо відгук, будь ласка, почекайте...",
|
|
1213
1212
|
"SETTINGS$NAV_ADD_TEAM_MEMBERS": "Додати учасників команди",
|
|
@@ -1799,7 +1798,7 @@
|
|
|
1799
1798
|
"ONBOARDING$BACKEND_STATUS_DISCONNECTED": "Не з'єднано",
|
|
1800
1799
|
"ONBOARDING$BACKEND_STATUS_CHECKING": "Перевіряємо…",
|
|
1801
1800
|
"ONBOARDING$LLM_TITLE": "Налаштуйте свій LLM",
|
|
1802
|
-
"ONBOARDING$LLM_SUBTITLE": "Виберіть провайдера та модель.
|
|
1801
|
+
"ONBOARDING$LLM_SUBTITLE": "Виберіть провайдера та модель. OpenAI GPT-5.6 Sol уже обрано.",
|
|
1803
1802
|
"ONBOARDING$HELLO_TITLE": "Привітайтеся 👋",
|
|
1804
1803
|
"ONBOARDING$HELLO_SUBTITLE": "Надішліть перше повідомлення до OpenHands. Почнемо нову розмову без робочого простору.",
|
|
1805
1804
|
"ONBOARDING$HELLO_DEFAULT_MESSAGE": "Створи просту вебсторінку, що пояснює, на що здатний OpenHands.",
|
|
@@ -1908,6 +1907,17 @@
|
|
|
1908
1907
|
"SETTINGS$PLUGINS_UNINSTALL_SUCCESS": "Плагін видалено.",
|
|
1909
1908
|
"SETTINGS$PLUGINS_REFRESH_SUCCESS": "Плагін оновлено.",
|
|
1910
1909
|
"SETTINGS$PLUGINS_SKILLS_IN_BUNDLE": "Навички в цьому пакеті плагіна",
|
|
1910
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_DESCRIPTION": "Установлюйте довірений інтерфейс, що працює всередині Canvas для цього бекенда. Установлені розширення залишаються вимкненими, доки ви не ввімкнете їх тут.",
|
|
1911
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_BUTTON": "Додати розширення",
|
|
1912
|
+
"SETTINGS$CANVAS_EXTENSIONS_EMPTY": "На цьому бекенді не встановлено жодного розширення Canvas.",
|
|
1913
|
+
"SETTINGS$CANVAS_EXTENSIONS_TRUST_NOTICE": "Увімкнені розширення є довіреним кодом із повним доступом до цього сеансу Canvas.",
|
|
1914
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_MODAL_INTRO": "Установіть із джерела Git або шляху на активному Agent Server. Розширення буде встановлено вимкненим.",
|
|
1915
|
+
"SETTINGS$CANVAS_EXTENSIONS_INSTALL_SUCCESS": "Розширення встановлено. Перегляньте його тут і ввімкніть, коли будете готові.",
|
|
1916
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_SUCCESS": "Розширення видалено.",
|
|
1917
|
+
"SETTINGS$CANVAS_EXTENSIONS_ENABLE_CONFIRM": "Увімкнені розширення є довіреним кодом із повним доступом до цього сеансу Canvas. Увімкнути {{name}}?",
|
|
1918
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_CONFIRM": "Видалити {{name}} із цього бекенда?",
|
|
1919
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGES": "Сторінки",
|
|
1920
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_UNAVAILABLE": "Це розширення вимкнене, відсутнє або не надає цю сторінку.",
|
|
1911
1921
|
"SETTINGS$SKILLS_PAGE_DESCRIPTION": "Відкривайте навички для додавання до вашого робочого простору. Відкрийте картку для запитів, curl та процесів встановлення. Шукайте на бічній панелі, щоб фільтрувати список. Увімкніть або вимкніть навички за замовчуванням. Вимкнені навички не завантажуватимуться в контекст агента.",
|
|
1912
1922
|
"SETTINGS$SKILLS_ADD_BUTTON": "Додати навичку",
|
|
1913
1923
|
"SETTINGS$SKILLS_USE_SKILL_BUTTON": "Використати навичку",
|
|
@@ -1940,6 +1950,10 @@
|
|
|
1940
1950
|
"SETTINGS$SKILLS_FACET_SOURCE": "Джерело",
|
|
1941
1951
|
"SETTINGS$SKILLS_FACET_CATEGORY": "Категорія",
|
|
1942
1952
|
"SETTINGS$SKILLS_FACET_TYPE": "Тип",
|
|
1953
|
+
"SETTINGS$SKILLS_FACET_RECOMMENDATION": "Рекомендація",
|
|
1954
|
+
"SETTINGS$SKILLS_RECOMMENDED": "Рекомендовано",
|
|
1955
|
+
"SETTINGS$SKILLS_RECOMMENDATION_OTHER": "Інші",
|
|
1956
|
+
"SETTINGS$SKILLS_NEW_CONVERSATION_NOTICE": "Зміни навичок застосовуються лише до нових розмов.",
|
|
1943
1957
|
"SETTINGS$SKILLS_SOURCE_PROJECT": "Цей проєкт",
|
|
1944
1958
|
"SETTINGS$SKILLS_SOURCE_PERSONAL": "Особисті",
|
|
1945
1959
|
"SETTINGS$SKILLS_SOURCE_PUBLIC": "Вбудовані",
|
|
@@ -2098,6 +2112,8 @@
|
|
|
2098
2112
|
"COMMON$FAILED_TO_LOAD": "Не вдалося завантажити",
|
|
2099
2113
|
"SETTINGS$TOGGLE_SETTINGS_MENU": "Перемкнути меню налаштувань",
|
|
2100
2114
|
"SIDEBAR$NEW_CHAT": "Новий чат",
|
|
2115
|
+
"SIDEBAR$PIN_AS_HOME": "Pin as home page",
|
|
2116
|
+
"SIDEBAR$UNPIN_AS_HOME": "Unpin as home page",
|
|
2101
2117
|
"SETTINGS$SECRET_NAME_PATTERN_TITLE": "Має починатися з літери, містити лише літери/цифри/підкреслення та мати від 1 до 64 символів",
|
|
2102
2118
|
"PLUGINS$PICKER_TRIGGER": "Плагіни",
|
|
2103
2119
|
"CONVERSATION$SHOW_PLUGINS": "Показати плагіни",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"ONBOARDING$ACP_SECRETS_SUBSCRIPTION_NOTE": "已通过订阅或登录账号登录?请将这些字段留空 — 无需 API 密钥。",
|
|
16
16
|
"ONBOARDING$ACP_AUTH_DETECTED": "您已登录 {{provider}} — 下面的字段可以留空。",
|
|
17
17
|
"ONBOARDING$ACP_AUTH_CHECKING": "正在检查现有的 {{provider}} 登录…",
|
|
18
|
+
"ONBOARDING$ACP_CREDENTIALS_CONFIGURED": "{{provider}} 的凭据已配置 — 下面的字段可以留空。",
|
|
18
19
|
"MAINTENANCE$SCHEDULED_MESSAGE": "计划维护将于{{time}}开始",
|
|
19
20
|
"ALERT$FAULTY_MODELS_MESSAGE": "以下模型当前报告错误:",
|
|
20
21
|
"AZURE_DEVOPS$CONNECT_ACCOUNT": "连接 Azure DevOps 账户",
|
|
@@ -141,6 +142,8 @@
|
|
|
141
142
|
"SCHEMA$AGENT$LABEL": "代理",
|
|
142
143
|
"SCHEMA$ENABLE_SUB_AGENTS$DESCRIPTION": "通过 TaskToolSet 启用子智能体委派。",
|
|
143
144
|
"SCHEMA$ENABLE_SUB_AGENTS$LABEL": "启用子智能体",
|
|
145
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$DESCRIPTION": "允许智能体自行将当前对话切换到另一个已保存的 LLM 配置。禁用后将移除该工具。",
|
|
146
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$LABEL": "允许智能体切换 LLM 配置",
|
|
144
147
|
"SCHEMA$AGENT_CONTEXT$SECTION_LABEL": "代理上下文",
|
|
145
148
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$LABEL": "持久代理记忆",
|
|
146
149
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$DESCRIPTION": "代理会在 .openhands/memory/ 下保存笔记,并在每次新会话开始时加载它们,随着时间推移学习您的代码库和偏好。",
|
|
@@ -277,7 +280,7 @@
|
|
|
277
280
|
"SCHEMA$VERIFICATION$CONFIRMATION_MODE$LABEL": "确认模式",
|
|
278
281
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$DESCRIPTION": "批评器调用其 LLM 所使用的可选 API 密钥。留空时,批评器会复用 LLM API 密钥。",
|
|
279
282
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_TEXT": "如果已选择 OpenHands 作为当前使用的 LLM 提供商,请将此处留空,因为 Critic API Key 和 OpenHands Provider LLM Key 是同一个密钥,可在",
|
|
280
|
-
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "
|
|
283
|
+
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "部分中找到;否则,请从该页面输入 Critic API Key。",
|
|
281
284
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$LABEL": "批评器 API 密钥",
|
|
282
285
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$DESCRIPTION": "为代理启用批评评估。",
|
|
283
286
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$LABEL": "启用批评",
|
|
@@ -690,9 +693,10 @@
|
|
|
690
693
|
"SETTINGS$RESET": "设置已重置",
|
|
691
694
|
"SETTINGS$API_KEYS": "API密钥",
|
|
692
695
|
"SETTINGS$API_KEYS_DESCRIPTION": "API密钥允许您以编程方式验证OpenHands API。请确保您的API密钥安全;任何拥有您API密钥的人都可以访问您的账户。有关如何使用API的更多信息,请参阅我们的<a>API文档</a>。",
|
|
693
|
-
"SETTINGS$OPENHANDS_API_KEY_HELP": "您可以在OpenHands Cloud的<a>API密钥</a>标签页中找到您的 OpenHands Provider LLM Key。",
|
|
694
696
|
"SETTINGS$OPENHANDS_API_KEY_HELP_TEXT": "您可以在",
|
|
695
|
-
"SETTINGS$
|
|
697
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_LINK": "OpenHands LLM Key",
|
|
698
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_SUFFIX": "部分中找到您的 OpenHands Provider LLM Key -",
|
|
699
|
+
"SETTINGS$SEE_HERE_FOR_MORE_DETAILS": "点击此处查看更多详情",
|
|
696
700
|
"SETTINGS$CREATE_API_KEY": "创建API密钥",
|
|
697
701
|
"SETTINGS$CREATE_API_KEY_DESCRIPTION": "为您的API密钥提供一个描述性名称,以便您以后能够识别它。",
|
|
698
702
|
"SETTINGS$DELETE_API_KEY": "删除API密钥",
|
|
@@ -813,6 +817,13 @@
|
|
|
813
817
|
"AUTOMATIONS$DETAIL$RUNNING": "运行中",
|
|
814
818
|
"AUTOMATIONS$DETAIL$CANCELLED": "已取消",
|
|
815
819
|
"AUTOMATIONS$DETAIL$SKIPPED": "已跳过",
|
|
820
|
+
"AUTOMATIONS$DETAIL$PHASE": "阶段",
|
|
821
|
+
"AUTOMATIONS$DETAIL$PHASE_QUEUED": "排队中",
|
|
822
|
+
"AUTOMATIONS$DETAIL$PHASE_SANDBOX_PROVISIONING": "正在配置沙盒",
|
|
823
|
+
"AUTOMATIONS$DETAIL$PHASE_BUNDLE_UPLOAD": "正在上传软件包",
|
|
824
|
+
"AUTOMATIONS$DETAIL$PHASE_ENTRYPOINT_START": "正在启动",
|
|
825
|
+
"AUTOMATIONS$DETAIL$PHASE_PREPARING": "正在准备",
|
|
826
|
+
"AUTOMATIONS$DETAIL$PHASE_RUNNING_AGENT": "代理运行中",
|
|
816
827
|
"AUTOMATIONS$DETAIL$INACTIVE": "非活动",
|
|
817
828
|
"AUTOMATIONS$DETAIL$LAST_RUN": "上次运行",
|
|
818
829
|
"AUTOMATIONS$DETAIL$LOAD_MORE_RUNS": "加载更多",
|
|
@@ -1182,7 +1193,6 @@
|
|
|
1182
1193
|
"TOS$ACCEPT_TERMS_DESCRIPTION": "请在继续之前查看并接受我们的服务条款",
|
|
1183
1194
|
"TOS$CONTINUE": "继续",
|
|
1184
1195
|
"TOS$ERROR_ACCEPTING": "接受服务条款时出错",
|
|
1185
|
-
"TIPS$CUSTOMIZE_MICROAGENT": "您可以使用可用微代理为您的仓库自定义OpenHands。请OpenHands将仓库的描述(包括如何运行代码)放入.openhands/microagents/repo.md。",
|
|
1186
1196
|
"CONVERSATION$NO_SKILLS": "本会话未找到可用技能。",
|
|
1187
1197
|
"CONVERSATION$NO_HOOKS": "此会话未配置钩子。",
|
|
1188
1198
|
"CONVERSATION$SHOW_HOOKS": "显示可用钩子",
|
|
@@ -1197,17 +1207,6 @@
|
|
|
1197
1207
|
"COMMON$CONTENT": "内容",
|
|
1198
1208
|
"SKILLS_MODAL$NO_CONTENT": "技能没有内容",
|
|
1199
1209
|
"COMMON$FETCH_ERROR": "获取技能失败。请稍后再试。",
|
|
1200
|
-
"TIPS$SETUP_SCRIPT": "您可以将.openhands/setup.sh添加到您的仓库中,以便在每次启动OpenHands对话时自动运行设置脚本。",
|
|
1201
|
-
"TIPS$VSCODE_INSTANCE": "每个OpenHands对话都配有VS Code实例,您可以在其中与开发环境交互。",
|
|
1202
|
-
"TIPS$SAVE_WORK": "请确保定期保存您的工作,可以通过推送到GitHub或通过VS Code下载文件来实现。",
|
|
1203
|
-
"TIPS$SPECIFY_FILES": "如果可能,请包含OpenHands应该关注的文件或函数的名称。这可以帮助OpenHands更快地工作,节省成本,并提高准确性。",
|
|
1204
|
-
"TIPS$HEADLESS_MODE": "您可以在无头模式下运行OpenHands来创建自动化,例如通过自动创建修复来响应500错误。",
|
|
1205
|
-
"TIPS$CLI_MODE": "您可以将OpenHands作为CLI运行,类似于Claude Code。",
|
|
1206
|
-
"TIPS$GITHUB_HOOK": "OpenHands Cloud提供GitHub钩子,因此您可以在GitHub UI中直接说\"@openhands 修复合并冲突\"或\"@openhands 修复此PR上的反馈\"。",
|
|
1207
|
-
"TIPS$BLOG_SIGNUP": "注册OpenHands博客,了解新功能和最新版本。",
|
|
1208
|
-
"TIPS$API_USAGE": "OpenHands有API!使用简单的cURL命令创建OpenHands对话。",
|
|
1209
|
-
"TIPS$LEARN_MORE": "了解更多",
|
|
1210
|
-
"TIPS$PROTIP": "专业提示",
|
|
1211
1210
|
"FEEDBACK$SUBMITTING_LABEL": "提交中...",
|
|
1212
1211
|
"FEEDBACK$SUBMITTING_MESSAGE": "正在提交反馈,请稍候...",
|
|
1213
1212
|
"SETTINGS$NAV_ADD_TEAM_MEMBERS": "添加团队成员",
|
|
@@ -1799,7 +1798,7 @@
|
|
|
1799
1798
|
"ONBOARDING$BACKEND_STATUS_DISCONNECTED": "未连接",
|
|
1800
1799
|
"ONBOARDING$BACKEND_STATUS_CHECKING": "正在检查…",
|
|
1801
1800
|
"ONBOARDING$LLM_TITLE": "设置你的 LLM",
|
|
1802
|
-
"ONBOARDING$LLM_SUBTITLE": "选择提供商和模型。我们已为你预先选择
|
|
1801
|
+
"ONBOARDING$LLM_SUBTITLE": "选择提供商和模型。我们已为你预先选择 OpenAI GPT-5.6 Sol。",
|
|
1803
1802
|
"ONBOARDING$HELLO_TITLE": "打个招呼 👋",
|
|
1804
1803
|
"ONBOARDING$HELLO_SUBTITLE": "向 OpenHands 发送你的第一条消息。我们将启动一个无工作区的新对话。",
|
|
1805
1804
|
"ONBOARDING$HELLO_DEFAULT_MESSAGE": "创建一个简单的网页,说明 OpenHands 能做什么。",
|
|
@@ -1908,6 +1907,17 @@
|
|
|
1908
1907
|
"SETTINGS$PLUGINS_UNINSTALL_SUCCESS": "插件已卸载。",
|
|
1909
1908
|
"SETTINGS$PLUGINS_REFRESH_SUCCESS": "插件已更新。",
|
|
1910
1909
|
"SETTINGS$PLUGINS_SKILLS_IN_BUNDLE": "此插件包中的技能",
|
|
1910
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_DESCRIPTION": "为此后端安装在 Canvas 内运行的受信任 UI。已安装的扩展在您于此处启用前将保持关闭。",
|
|
1911
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_BUTTON": "添加扩展",
|
|
1912
|
+
"SETTINGS$CANVAS_EXTENSIONS_EMPTY": "此后端未安装任何 Canvas 扩展。",
|
|
1913
|
+
"SETTINGS$CANVAS_EXTENSIONS_TRUST_NOTICE": "已启用的扩展是受信任代码,可完全访问此 Canvas 会话。",
|
|
1914
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_MODAL_INTRO": "从 Git 来源或活动 Agent Server 上的路径安装。扩展安装后将处于禁用状态。",
|
|
1915
|
+
"SETTINGS$CANVAS_EXTENSIONS_INSTALL_SUCCESS": "扩展已安装。请在此处查看,并在准备好后启用。",
|
|
1916
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_SUCCESS": "扩展已卸载。",
|
|
1917
|
+
"SETTINGS$CANVAS_EXTENSIONS_ENABLE_CONFIRM": "已启用的扩展是受信任代码,可完全访问此 Canvas 会话。要启用 {{name}} 吗?",
|
|
1918
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_CONFIRM": "要从此后端卸载 {{name}} 吗?",
|
|
1919
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGES": "页面",
|
|
1920
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_UNAVAILABLE": "此扩展已禁用、缺失或未提供此页面。",
|
|
1911
1921
|
"SETTINGS$SKILLS_PAGE_DESCRIPTION": "发现要添加到工作区的技能。打开卡片以查看提示、curl 和安装流程。从侧边栏搜索以过滤列表。启用或禁用默认技能。禁用的技能不会加载到代理上下文中。",
|
|
1912
1922
|
"SETTINGS$SKILLS_ADD_BUTTON": "添加技能",
|
|
1913
1923
|
"SETTINGS$SKILLS_USE_SKILL_BUTTON": "使用技能",
|
|
@@ -1940,6 +1950,10 @@
|
|
|
1940
1950
|
"SETTINGS$SKILLS_FACET_SOURCE": "来源",
|
|
1941
1951
|
"SETTINGS$SKILLS_FACET_CATEGORY": "类别",
|
|
1942
1952
|
"SETTINGS$SKILLS_FACET_TYPE": "类型",
|
|
1953
|
+
"SETTINGS$SKILLS_FACET_RECOMMENDATION": "推荐情况",
|
|
1954
|
+
"SETTINGS$SKILLS_RECOMMENDED": "推荐",
|
|
1955
|
+
"SETTINGS$SKILLS_RECOMMENDATION_OTHER": "其他",
|
|
1956
|
+
"SETTINGS$SKILLS_NEW_CONVERSATION_NOTICE": "技能更改仅对新会话生效。",
|
|
1943
1957
|
"SETTINGS$SKILLS_SOURCE_PROJECT": "此项目",
|
|
1944
1958
|
"SETTINGS$SKILLS_SOURCE_PERSONAL": "个人",
|
|
1945
1959
|
"SETTINGS$SKILLS_SOURCE_PUBLIC": "内置",
|
|
@@ -2098,6 +2112,8 @@
|
|
|
2098
2112
|
"COMMON$FAILED_TO_LOAD": "加载失败",
|
|
2099
2113
|
"SETTINGS$TOGGLE_SETTINGS_MENU": "切换设置菜单",
|
|
2100
2114
|
"SIDEBAR$NEW_CHAT": "新建对话",
|
|
2115
|
+
"SIDEBAR$PIN_AS_HOME": "固定为主页",
|
|
2116
|
+
"SIDEBAR$UNPIN_AS_HOME": "取消固定为主页",
|
|
2101
2117
|
"SETTINGS$SECRET_NAME_PATTERN_TITLE": "必须以字母开头,只能包含字母/数字/下划线,且长度为 1-64 个字符",
|
|
2102
2118
|
"PLUGINS$PICKER_TRIGGER": "插件",
|
|
2103
2119
|
"CONVERSATION$SHOW_PLUGINS": "显示插件",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"ONBOARDING$ACP_SECRETS_SUBSCRIPTION_NOTE": "已透過訂閱或登入帳號登入?請將這些欄位留空 — 不需要 API 金鑰。",
|
|
16
16
|
"ONBOARDING$ACP_AUTH_DETECTED": "您已登入 {{provider}} — 下方欄位可以留空。",
|
|
17
17
|
"ONBOARDING$ACP_AUTH_CHECKING": "正在檢查現有的 {{provider}} 登入…",
|
|
18
|
+
"ONBOARDING$ACP_CREDENTIALS_CONFIGURED": "{{provider}} 的憑證已設定 — 下方欄位可以留空。",
|
|
18
19
|
"MAINTENANCE$SCHEDULED_MESSAGE": "計劃維護將於{{time}}開始",
|
|
19
20
|
"ALERT$FAULTY_MODELS_MESSAGE": "以下模型目前報告錯誤:",
|
|
20
21
|
"AZURE_DEVOPS$CONNECT_ACCOUNT": "連接 Azure DevOps 帳戶",
|
|
@@ -141,6 +142,8 @@
|
|
|
141
142
|
"SCHEMA$AGENT$LABEL": "代理",
|
|
142
143
|
"SCHEMA$ENABLE_SUB_AGENTS$DESCRIPTION": "透過 TaskToolSet 啟用子智能體委派。",
|
|
143
144
|
"SCHEMA$ENABLE_SUB_AGENTS$LABEL": "啟用子智能體",
|
|
145
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$DESCRIPTION": "允許代理自行將目前對話切換到另一個已儲存的 LLM 設定檔。停用後將移除該工具。",
|
|
146
|
+
"SCHEMA$ENABLE_SWITCH_LLM_TOOL$LABEL": "允許代理切換 LLM 設定檔",
|
|
144
147
|
"SCHEMA$AGENT_CONTEXT$SECTION_LABEL": "代理上下文",
|
|
145
148
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$LABEL": "持久代理記憶",
|
|
146
149
|
"SCHEMA$AGENT_CONTEXT$LOAD_MEMORY$DESCRIPTION": "代理會在 .openhands/memory/ 下保存筆記,並在每次新會話開始時載入它們,隨著時間推移學習您的程式碼庫和偏好。",
|
|
@@ -277,7 +280,7 @@
|
|
|
277
280
|
"SCHEMA$VERIFICATION$CONFIRMATION_MODE$LABEL": "確認模式",
|
|
278
281
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$DESCRIPTION": "批評器呼叫其 LLM 所使用的選用 API 金鑰。留空時,批評器會重用 LLM API 金鑰。",
|
|
279
282
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_TEXT": "如果已選擇 OpenHands 作為目前使用的 LLM 提供者,請將此處留空,因為 Critic API Key 和 OpenHands Provider LLM Key 是同一個金鑰,可在",
|
|
280
|
-
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "
|
|
283
|
+
"SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX": "區塊中找到;否則,請從該頁面輸入 Critic API Key。",
|
|
281
284
|
"SCHEMA$VERIFICATION$CRITIC_API_KEY$LABEL": "批評器 API 金鑰",
|
|
282
285
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$DESCRIPTION": "為代理啟用批評評估。",
|
|
283
286
|
"SCHEMA$VERIFICATION$CRITIC_ENABLED$LABEL": "啟用批評",
|
|
@@ -690,9 +693,10 @@
|
|
|
690
693
|
"SETTINGS$RESET": "設置已重置",
|
|
691
694
|
"SETTINGS$API_KEYS": "API金鑰",
|
|
692
695
|
"SETTINGS$API_KEYS_DESCRIPTION": "API密鑰允許您以編程方式驗證OpenHands API。請確保您的API密鑰安全;任何擁有您API密鑰的人都可以訪問您的賬戶。有關如何使用API的更多信息,請參閱我們的<a>API文檔</a>。",
|
|
693
|
-
"SETTINGS$OPENHANDS_API_KEY_HELP": "您可以在OpenHands Cloud的<a>API密鑰</a>標籤頁中找到您的 OpenHands Provider LLM Key。",
|
|
694
696
|
"SETTINGS$OPENHANDS_API_KEY_HELP_TEXT": "您可以在",
|
|
695
|
-
"SETTINGS$
|
|
697
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_LINK": "OpenHands LLM Key",
|
|
698
|
+
"SETTINGS$OPENHANDS_API_KEY_HELP_SUFFIX": "區塊中找到您的 OpenHands Provider LLM Key -",
|
|
699
|
+
"SETTINGS$SEE_HERE_FOR_MORE_DETAILS": "點擊此處查看更多詳情",
|
|
696
700
|
"SETTINGS$CREATE_API_KEY": "創建API金鑰",
|
|
697
701
|
"SETTINGS$CREATE_API_KEY_DESCRIPTION": "為您的API金鑰提供一個描述性名稱,以便您以後能夠識別它。",
|
|
698
702
|
"SETTINGS$DELETE_API_KEY": "刪除API金鑰",
|
|
@@ -813,6 +817,13 @@
|
|
|
813
817
|
"AUTOMATIONS$DETAIL$RUNNING": "執行中",
|
|
814
818
|
"AUTOMATIONS$DETAIL$CANCELLED": "已取消",
|
|
815
819
|
"AUTOMATIONS$DETAIL$SKIPPED": "已略過",
|
|
820
|
+
"AUTOMATIONS$DETAIL$PHASE": "階段",
|
|
821
|
+
"AUTOMATIONS$DETAIL$PHASE_QUEUED": "排隊中",
|
|
822
|
+
"AUTOMATIONS$DETAIL$PHASE_SANDBOX_PROVISIONING": "正在設定沙盒",
|
|
823
|
+
"AUTOMATIONS$DETAIL$PHASE_BUNDLE_UPLOAD": "正在上傳套件",
|
|
824
|
+
"AUTOMATIONS$DETAIL$PHASE_ENTRYPOINT_START": "正在啟動",
|
|
825
|
+
"AUTOMATIONS$DETAIL$PHASE_PREPARING": "正在準備",
|
|
826
|
+
"AUTOMATIONS$DETAIL$PHASE_RUNNING_AGENT": "代理執行中",
|
|
816
827
|
"AUTOMATIONS$DETAIL$INACTIVE": "非作用中",
|
|
817
828
|
"AUTOMATIONS$DETAIL$LAST_RUN": "上次執行",
|
|
818
829
|
"AUTOMATIONS$DETAIL$LOAD_MORE_RUNS": "載入更多",
|
|
@@ -1182,7 +1193,6 @@
|
|
|
1182
1193
|
"TOS$ACCEPT_TERMS_DESCRIPTION": "請在繼續之前查看並接受我們的服務條款",
|
|
1183
1194
|
"TOS$CONTINUE": "繼續",
|
|
1184
1195
|
"TOS$ERROR_ACCEPTING": "接受服務條款時出錯",
|
|
1185
|
-
"TIPS$CUSTOMIZE_MICROAGENT": "您可以使用可用微代理為您的倉庫自定義OpenHands。請OpenHands將倉庫的描述(包括如何運行代碼)放入.openhands/microagents/repo.md。",
|
|
1186
1196
|
"CONVERSATION$NO_SKILLS": "此對話中未找到可用技能。",
|
|
1187
1197
|
"CONVERSATION$NO_HOOKS": "此對話未配置鉤子。",
|
|
1188
1198
|
"CONVERSATION$SHOW_HOOKS": "顯示可用鉤子",
|
|
@@ -1197,17 +1207,6 @@
|
|
|
1197
1207
|
"COMMON$CONTENT": "內容",
|
|
1198
1208
|
"SKILLS_MODAL$NO_CONTENT": "技能沒有內容",
|
|
1199
1209
|
"COMMON$FETCH_ERROR": "取得技能失敗。請稍後再試。",
|
|
1200
|
-
"TIPS$SETUP_SCRIPT": "您可以將.openhands/setup.sh添加到您的倉庫中,以便在每次啟動OpenHands對話時自動運行設置腳本。",
|
|
1201
|
-
"TIPS$VSCODE_INSTANCE": "每個OpenHands對話都配有VS Code實例,您可以在其中與開發環境交互。",
|
|
1202
|
-
"TIPS$SAVE_WORK": "請確保定期保存您的工作,可以通過推送到GitHub或通過VS Code下載文件來實現。",
|
|
1203
|
-
"TIPS$SPECIFY_FILES": "如果可能,請包含OpenHands應該關注的文件或函數的名稱。這可以幫助OpenHands更快地工作,節省成本,並提高準確性。",
|
|
1204
|
-
"TIPS$HEADLESS_MODE": "您可以在無頭模式下運行OpenHands來創建自動化,例如通過自動創建修復來響應500錯誤。",
|
|
1205
|
-
"TIPS$CLI_MODE": "您可以將OpenHands作為CLI運行,類似於Claude Code。",
|
|
1206
|
-
"TIPS$GITHUB_HOOK": "OpenHands Cloud提供GitHub鉤子,因此您可以在GitHub UI中直接說\"@openhands 修復合併衝突\"或\"@openhands 修復此PR上的反饋\"。",
|
|
1207
|
-
"TIPS$BLOG_SIGNUP": "註冊OpenHands博客,了解新功能和最新版本。",
|
|
1208
|
-
"TIPS$API_USAGE": "OpenHands有API!使用簡單的cURL命令創建OpenHands對話。",
|
|
1209
|
-
"TIPS$LEARN_MORE": "了解更多",
|
|
1210
|
-
"TIPS$PROTIP": "專業提示",
|
|
1211
1210
|
"FEEDBACK$SUBMITTING_LABEL": "提交中...",
|
|
1212
1211
|
"FEEDBACK$SUBMITTING_MESSAGE": "正在提交回饋,請稍候...",
|
|
1213
1212
|
"SETTINGS$NAV_ADD_TEAM_MEMBERS": "新增團隊成員",
|
|
@@ -1799,7 +1798,7 @@
|
|
|
1799
1798
|
"ONBOARDING$BACKEND_STATUS_DISCONNECTED": "未連線",
|
|
1800
1799
|
"ONBOARDING$BACKEND_STATUS_CHECKING": "檢查中…",
|
|
1801
1800
|
"ONBOARDING$LLM_TITLE": "設定你的 LLM",
|
|
1802
|
-
"ONBOARDING$LLM_SUBTITLE": "選擇供應商與模型。我們已預先選好
|
|
1801
|
+
"ONBOARDING$LLM_SUBTITLE": "選擇供應商與模型。我們已預先選好 OpenAI GPT-5.6 Sol。",
|
|
1803
1802
|
"ONBOARDING$HELLO_TITLE": "打個招呼 👋",
|
|
1804
1803
|
"ONBOARDING$HELLO_SUBTITLE": "向 OpenHands 傳送第一則訊息。我們會開始一個沒有工作區的新對話。",
|
|
1805
1804
|
"ONBOARDING$HELLO_DEFAULT_MESSAGE": "建立一個簡單的網頁,說明 OpenHands 能做什麼。",
|
|
@@ -1908,6 +1907,17 @@
|
|
|
1908
1907
|
"SETTINGS$PLUGINS_UNINSTALL_SUCCESS": "外掛程式已解除安裝。",
|
|
1909
1908
|
"SETTINGS$PLUGINS_REFRESH_SUCCESS": "外掛程式已更新。",
|
|
1910
1909
|
"SETTINGS$PLUGINS_SKILLS_IN_BUNDLE": "此外掛程式套件中的技能",
|
|
1910
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_DESCRIPTION": "為此後端安裝在 Canvas 內執行的受信任 UI。已安裝的擴充功能在您於此處啟用前將保持關閉。",
|
|
1911
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_BUTTON": "新增擴充功能",
|
|
1912
|
+
"SETTINGS$CANVAS_EXTENSIONS_EMPTY": "此後端未安裝任何 Canvas 擴充功能。",
|
|
1913
|
+
"SETTINGS$CANVAS_EXTENSIONS_TRUST_NOTICE": "已啟用的擴充功能是受信任程式碼,可完整存取此 Canvas 工作階段。",
|
|
1914
|
+
"SETTINGS$CANVAS_EXTENSIONS_ADD_MODAL_INTRO": "從 Git 來源或作用中 Agent Server 上的路徑安裝。擴充功能安裝後將處於停用狀態。",
|
|
1915
|
+
"SETTINGS$CANVAS_EXTENSIONS_INSTALL_SUCCESS": "擴充功能已安裝。請在此處檢視,並在準備好後啟用。",
|
|
1916
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_SUCCESS": "擴充功能已解除安裝。",
|
|
1917
|
+
"SETTINGS$CANVAS_EXTENSIONS_ENABLE_CONFIRM": "已啟用的擴充功能是受信任程式碼,可完整存取此 Canvas 工作階段。要啟用 {{name}} 嗎?",
|
|
1918
|
+
"SETTINGS$CANVAS_EXTENSIONS_UNINSTALL_CONFIRM": "要從此後端解除安裝 {{name}} 嗎?",
|
|
1919
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGES": "頁面",
|
|
1920
|
+
"SETTINGS$CANVAS_EXTENSIONS_PAGE_UNAVAILABLE": "此擴充功能已停用、遺失或未提供此頁面。",
|
|
1911
1921
|
"SETTINGS$SKILLS_PAGE_DESCRIPTION": "探索要加入工作區的技能。開啟卡片以查看提示、curl 和安裝流程。從側邊欄搜尋以篩選清單。啟用或停用預設技能。停用的技能不會載入到代理上下文中。",
|
|
1912
1922
|
"SETTINGS$SKILLS_ADD_BUTTON": "新增技能",
|
|
1913
1923
|
"SETTINGS$SKILLS_USE_SKILL_BUTTON": "使用技能",
|
|
@@ -1940,6 +1950,10 @@
|
|
|
1940
1950
|
"SETTINGS$SKILLS_FACET_SOURCE": "來源",
|
|
1941
1951
|
"SETTINGS$SKILLS_FACET_CATEGORY": "類別",
|
|
1942
1952
|
"SETTINGS$SKILLS_FACET_TYPE": "類型",
|
|
1953
|
+
"SETTINGS$SKILLS_FACET_RECOMMENDATION": "推薦狀態",
|
|
1954
|
+
"SETTINGS$SKILLS_RECOMMENDED": "建議",
|
|
1955
|
+
"SETTINGS$SKILLS_RECOMMENDATION_OTHER": "其他",
|
|
1956
|
+
"SETTINGS$SKILLS_NEW_CONVERSATION_NOTICE": "技能變更僅對新對話生效。",
|
|
1943
1957
|
"SETTINGS$SKILLS_SOURCE_PROJECT": "此專案",
|
|
1944
1958
|
"SETTINGS$SKILLS_SOURCE_PERSONAL": "個人",
|
|
1945
1959
|
"SETTINGS$SKILLS_SOURCE_PUBLIC": "內建",
|
|
@@ -2098,6 +2112,8 @@
|
|
|
2098
2112
|
"COMMON$FAILED_TO_LOAD": "載入失敗",
|
|
2099
2113
|
"SETTINGS$TOGGLE_SETTINGS_MENU": "切換設定選單",
|
|
2100
2114
|
"SIDEBAR$NEW_CHAT": "新增對話",
|
|
2115
|
+
"SIDEBAR$PIN_AS_HOME": "釘選為首頁",
|
|
2116
|
+
"SIDEBAR$UNPIN_AS_HOME": "取消釘選為首頁",
|
|
2101
2117
|
"SETTINGS$SECRET_NAME_PATTERN_TITLE": "必須以字母開頭,只能包含字母/數字/底線,且長度為 1-64 個字元",
|
|
2102
2118
|
"PLUGINS$PICKER_TRIGGER": "外掛",
|
|
2103
2119
|
"CONVERSATION$SHOW_PLUGINS": "顯示外掛",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/extensions/automations/index.cjs"),t=require("./interface-validation.cjs"),n=require("./manifest-sources.cjs");var r={list:`/automations`,setup:`/automations/new/:automationId`,detail:`/automations/:automationId`,templates:`/automations/templates`};function i(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function a(){return new Set(e.default.flatMap(e=>i(e)&&typeof e.id==`string`?[e.id]:[]))}function o(e){if(e===void 0)return null;let n=t.validateInterfaceManifest(e,{catalogIds:a(),mountedRoutes:r});return n.valid?e:(console.warn(`Rejected the automation interface manifest:`,n.errors.join(`; `)),null)}var s=o(n.AUTOMATION_INTERFACE_CANDIDATE);function c(){return s!==null}function l(){if(!s)throw Error(`No automation interface manifest is admitted, so this surface should not have rendered.`);return s}function u(e,t){return e.replace(`:automationId`,encodeURIComponent(t))}function d(){return r.list}function f(e){return u(r.setup,e)}function p(e){return l().endpoints[e]??``}function
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/extensions/automations/index.cjs"),t=require("./interface-validation.cjs"),n=require("./manifest-sources.cjs");var r={list:`/automations`,setup:`/automations/new/:automationId`,detail:`/automations/:automationId`,templates:`/automations/templates`};function i(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function a(){return new Set(e.default.flatMap(e=>i(e)&&typeof e.id==`string`?[e.id]:[]))}function o(e){if(e===void 0)return null;let n=t.validateInterfaceManifest(e,{catalogIds:a(),mountedRoutes:r});return n.valid?e:(console.warn(`Rejected the automation interface manifest:`,n.errors.join(`; `)),null)}var s=o(n.AUTOMATION_INTERFACE_CANDIDATE);function c(){return s!==null}function l(){if(!s)throw Error(`No automation interface manifest is admitted, so this surface should not have rendered.`);return s}function u(e,t){return e.replace(`:automationId`,encodeURIComponent(t))}function d(){return r.list}function f(e){return u(r.setup,e)}function p(e){return e===r.list||e.startsWith(`${r.list}/`)}function m(e){return l().endpoints[e]??``}function h(e,t){return m(e).replace(`{id}`,encodeURIComponent(t))}function g(){let e=l();return{sidebarLabel:e.navigation.sidebar.label,commandMenuTitle:e.navigation.commandMenu.title,commandMenuDescription:e.navigation.commandMenu.description,commandMenuKeywords:e.navigation.commandMenu.keywords,listTitle:e.pages.list.title,listSubtitle:e.pages.list.subtitle,detailBackLabel:e.pages.detail.backLabel,editTitle:e.pages.edit.title}}function _(){return l().importExport}function v(){return l().docsUrl}function y(){return l().featuredAutomationIds}function b(){return l().responderIntegrationIds}exports.automationListPath=d,exports.automationSetupPath=f,exports.getAutomationEndpoint=m,exports.getAutomationIdEndpoint=h,exports.getAutomationsDocsUrl=v,exports.getFeaturedAutomationIds=y,exports.getImportExportSpec=_,exports.getInterfaceCopy=g,exports.getResponderIntegrationIds=b,exports.hasAutomationInterface=c,exports.isAutomationsRoute=p;
|
|
2
2
|
//# sourceMappingURL=automation-interface.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-interface.cjs","names":[],"sources":["../../src/manifests/automation-interface.ts"],"sourcesContent":["/**\n * The automation interface seam.\n *\n * Every automation-specific datum the host's surfaces render — navigation and\n * page copy, the settable attributes, the import/export envelope, endpoint\n * paths, the featured and responder id lists, the sub-page surface — is served\n * from the interface manifest the pinned `@openhands/extensions` publishes.\n * The host holds none of it. When the package publishes no manifest, or the\n * published one fails admission, there is nothing to serve: the nav entries do\n * not render and the routes 404. `hasAutomationInterface()` is that gate, and\n * every accessor that needs the manifest is reachable only from behind it.\n *\n * Routes are the exception, and they are not a definition: `src/routes.ts`\n * mounts them, so the host states them here and admission checks a manifest's\n * routes against them. That check is what keeps a published deep link\n * resolving to the page it named.\n */\n\nimport { AUTOMATION_CATALOG } from \"@openhands/extensions/automations\";\nimport { validateInterfaceManifest } from \"./interface-validation\";\nimport { AUTOMATION_INTERFACE_CANDIDATE } from \"./manifest-sources\";\nimport type {\n AutomationAttributeName,\n InterfaceDashboardFilter,\n InterfaceDashboardSort,\n InterfaceEndpointName,\n InterfaceIconSlug,\n InterfaceImportExport,\n InterfaceListInsights,\n InterfaceManifest,\n InterfaceOverview,\n InterfaceRoutes,\n InterfaceSubPageId,\n InterfaceTemplatesPage,\n} from \"./types\";\n\n/** The routes this host has registrations for, in `src/routes.ts`. */\nconst MOUNTED_ROUTES = {\n list: \"/automations\",\n setup: \"/automations/new/:automationId\",\n detail: \"/automations/:automationId\",\n templates: \"/automations/templates\",\n} satisfies InterfaceRoutes;\n\n/**\n * File-format section for portable `.automation.json` export/import. A docs\n * pointer for the host's import picker, not interface data — the manifest's\n * `importExport` block has no docs field.\n */\nexport const AUTOMATION_FILE_FORMAT_DOCS_URL =\n \"https://docs.openhands.dev/openhands/usage/agent-canvas/managing-automations#exported-file-format\";\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getCatalogIds(): ReadonlySet<string> {\n return new Set(\n (AUTOMATION_CATALOG as readonly unknown[]).flatMap((entry) =>\n isRecord(entry) && typeof entry.id === \"string\" ? [entry.id] : [],\n ),\n );\n}\n\nfunction admitInterfaceManifest(candidate: unknown): InterfaceManifest | null {\n if (candidate === undefined) return null;\n\n const result = validateInterfaceManifest(candidate, {\n catalogIds: getCatalogIds(),\n mountedRoutes: MOUNTED_ROUTES,\n });\n if (!result.valid) {\n // Mirrors the setup registry: a rejected manifest is skipped loudly, and\n // the surfaces it would have described stay unrendered.\n console.warn(\n \"Rejected the automation interface manifest:\",\n result.errors.join(\"; \"),\n );\n return null;\n }\n return candidate as InterfaceManifest;\n}\n\nconst ADMITTED = admitInterfaceManifest(AUTOMATION_INTERFACE_CANDIDATE);\n\n/**\n * Whether this deployment has an automation interface at all. The nav entries\n * and the route loaders ask before rendering; nothing else has to.\n */\nexport function hasAutomationInterface(): boolean {\n return ADMITTED !== null;\n}\n\n/**\n * The admitted manifest, for the accessors that cannot answer without one.\n * Reaching one of those without a manifest means a surface rendered past its\n * gate — a wiring mistake, not a state to render.\n */\nfunction requireInterface(): InterfaceManifest {\n if (!ADMITTED) {\n throw new Error(\n \"No automation interface manifest is admitted, so this surface should not have rendered.\",\n );\n }\n return ADMITTED;\n}\n\nfunction substituteRouteParam(pattern: string, id: string): string {\n return pattern.replace(\":automationId\", encodeURIComponent(id));\n}\n\nexport function automationListPath(): string {\n return MOUNTED_ROUTES.list;\n}\n\nexport function automationSetupPath(id: string): string {\n return substituteRouteParam(MOUNTED_ROUTES.setup, id);\n}\n\nexport function automationDetailPath(id: string): string {\n return substituteRouteParam(MOUNTED_ROUTES.detail, id);\n}\n\nexport function automationTemplatesPath(): string {\n return MOUNTED_ROUTES.templates;\n}\n\n/**\n * A declared endpoint path. Empty for one the manifest may omit - the two a\n * bundle needs were added after the block shipped - so a caller that needs one\n * says so rather than reading a host-held default that does not exist.\n */\nexport function getAutomationEndpoint(name: InterfaceEndpointName): string {\n return requireInterface().endpoints[name] ?? \"\";\n}\n\n/** An id-parameterized endpoint with `{id}` substituted, encoded. */\nexport function getAutomationIdEndpoint(\n name: \"detail\" | \"dispatch\" | \"runs\" | \"tarball\",\n id: string,\n): string {\n return getAutomationEndpoint(name).replace(\"{id}\", encodeURIComponent(id));\n}\n\nexport interface InterfaceCopy {\n sidebarLabel: string;\n commandMenuTitle: string;\n commandMenuDescription: string;\n commandMenuKeywords: string;\n listTitle: string;\n listSubtitle: string;\n detailBackLabel: string;\n editTitle: string;\n}\n\nexport function getInterfaceCopy(): InterfaceCopy {\n const manifest = requireInterface();\n return {\n sidebarLabel: manifest.navigation.sidebar.label,\n commandMenuTitle: manifest.navigation.commandMenu.title,\n commandMenuDescription: manifest.navigation.commandMenu.description,\n commandMenuKeywords: manifest.navigation.commandMenu.keywords,\n listTitle: manifest.pages.list.title,\n listSubtitle: manifest.pages.list.subtitle,\n detailBackLabel: manifest.pages.detail.backLabel,\n editTitle: manifest.pages.edit.title,\n };\n}\n\nexport interface AttributeSpec {\n present: boolean;\n label: string;\n /** Null when the manifest states no help text for the attribute. */\n help: string | null;\n required: boolean;\n min: number | null;\n max: number | null;\n}\n\n/** An attribute the manifest does not declare is not offered at all. */\nconst ABSENT_ATTRIBUTE: AttributeSpec = {\n present: false,\n label: \"\",\n help: null,\n required: false,\n min: null,\n max: null,\n};\n\nexport function getAttributeSpec(name: AutomationAttributeName): AttributeSpec {\n const attribute = requireInterface().attributes[name];\n if (!attribute) return ABSENT_ATTRIBUTE;\n return {\n present: true,\n label: attribute.label,\n help: attribute.help ?? null,\n required: attribute.required,\n min: attribute.constraints?.min ?? null,\n max: attribute.constraints?.max ?? null,\n };\n}\n\nexport function getImportExportSpec(): InterfaceImportExport {\n return requireInterface().importExport;\n}\n\nexport function getAutomationsDocsUrl(): string {\n return requireInterface().docsUrl;\n}\n\nexport function getFeaturedAutomationIds(): readonly string[] {\n return requireInterface().featuredAutomationIds;\n}\n\nexport function getResponderIntegrationIds(): readonly string[] {\n return requireInterface().responderIntegrationIds;\n}\n\nexport interface SubPageNavSpec {\n page: InterfaceSubPageId;\n /** The page's route, resolved through the host's route table. */\n to: string;\n label: string;\n icon: InterfaceIconSlug;\n}\n\n/**\n * The sub-page navigation, or null when the manifest does not declare the\n * sub-page surface.\n */\nexport function getSubPagesSpec(): SubPageNavSpec[] | null {\n const subPages = ADMITTED?.navigation.subPages;\n if (!subPages) return null;\n return subPages.map((item) => ({\n page: item.page,\n to:\n item.page === \"templates\"\n ? automationTemplatesPath()\n : automationListPath(),\n label: item.label,\n icon: item.icon,\n }));\n}\n\nexport interface DashboardSpec {\n overview: InterfaceOverview;\n filters: InterfaceDashboardFilter[];\n sort: InterfaceDashboardSort;\n insights: InterfaceListInsights;\n}\n\n/**\n * The list page's dashboard composition, or null when the manifest does not\n * declare it. Admission accepts the sub-page surface whole or not at all, so\n * these four are present together.\n */\nexport function getDashboardSpec(): DashboardSpec | null {\n const list = ADMITTED?.pages.list;\n if (!list?.overview || !list.filters || !list.sort || !list.insights) {\n return null;\n }\n return {\n overview: list.overview,\n filters: list.filters,\n sort: list.sort,\n insights: list.insights,\n };\n}\n\n/** The templates page identity, or null when the manifest does not declare it. */\nexport function getTemplatesPageSpec(): InterfaceTemplatesPage | null {\n return ADMITTED?.pages.templates ?? null;\n}\n"],"mappings":"wMAqCA,IAAM,EAAiB,CACrB,KAAM,eACN,MAAO,iCACP,OAAQ,6BACR,UAAW,wBACb,EAUA,SAAS,EAAS,EAAkD,CAClE,OAAO,OAAO,GAAU,YAAY,GAAkB,CAAC,MAAM,QAAQ,CAAK,CAC5E,CAEA,SAAS,GAAqC,CAC5C,OAAO,IAAI,IACR,EAAA,QAA0C,QAAS,GAClD,EAAS,CAAK,GAAK,OAAO,EAAM,IAAO,SAAW,CAAC,EAAM,EAAE,EAAI,CAAC,CAClE,CACF,CACF,CAEA,SAAS,EAAuB,EAA8C,CAC5E,GAAI,IAAc,IAAA,GAAW,OAAO,KAEpC,IAAM,EAAS,EAAA,0BAA0B,EAAW,CAClD,WAAY,EAAc,EAC1B,cAAe,CACjB,CAAC,EAUD,OATK,EAAO,MASL,GANL,QAAQ,KACN,8CACA,EAAO,OAAO,KAAK,IAAI,CACzB,EACO,KAGX,CAEA,IAAM,EAAW,EAAuB,EAAA,8BAA8B,EAMtE,SAAgB,GAAkC,CAChD,OAAO,IAAa,IACtB,CAOA,SAAS,GAAsC,CAC7C,GAAI,CAAC,EACH,MAAU,MACR,yFACF,EAEF,OAAO,CACT,CAEA,SAAS,EAAqB,EAAiB,EAAoB,CACjE,OAAO,EAAQ,QAAQ,gBAAiB,mBAAmB,CAAE,CAAC,CAChE,CAEA,SAAgB,GAA6B,CAC3C,OAAO,EAAe,IACxB,CAEA,SAAgB,EAAoB,EAAoB,CACtD,OAAO,EAAqB,EAAe,MAAO,CAAE,CACtD,CAeA,SAAgB,EAAsB,EAAqC,CACzE,OAAO,EAAiB,EAAE,UAAU,IAAS,EAC/C,CAGA,SAAgB,EACd,EACA,EACQ,CACR,OAAO,EAAsB,CAAI,EAAE,QAAQ,OAAQ,mBAAmB,CAAE,CAAC,CAC3E,CAaA,SAAgB,GAAkC,CAChD,IAAM,EAAW,EAAiB,EAClC,MAAO,CACL,aAAc,EAAS,WAAW,QAAQ,MAC1C,iBAAkB,EAAS,WAAW,YAAY,MAClD,uBAAwB,EAAS,WAAW,YAAY,YACxD,oBAAqB,EAAS,WAAW,YAAY,SACrD,UAAW,EAAS,MAAM,KAAK,MAC/B,aAAc,EAAS,MAAM,KAAK,SAClC,gBAAiB,EAAS,MAAM,OAAO,UACvC,UAAW,EAAS,MAAM,KAAK,KACjC,CACF,CAmCA,SAAgB,GAA6C,CAC3D,OAAO,EAAiB,EAAE,YAC5B,CAEA,SAAgB,GAAgC,CAC9C,OAAO,EAAiB,EAAE,OAC5B,CAEA,SAAgB,GAA8C,CAC5D,OAAO,EAAiB,EAAE,qBAC5B,CAEA,SAAgB,GAAgD,CAC9D,OAAO,EAAiB,EAAE,uBAC5B"}
|
|
1
|
+
{"version":3,"file":"automation-interface.cjs","names":[],"sources":["../../src/manifests/automation-interface.ts"],"sourcesContent":["/**\n * The automation interface seam.\n *\n * Every automation-specific datum the host's surfaces render — navigation and\n * page copy, the settable attributes, the import/export envelope, endpoint\n * paths, the featured and responder id lists, the sub-page surface — is served\n * from the interface manifest the pinned `@openhands/extensions` publishes.\n * The host holds none of it. When the package publishes no manifest, or the\n * published one fails admission, there is nothing to serve: the nav entries do\n * not render and the routes 404. `hasAutomationInterface()` is that gate, and\n * every accessor that needs the manifest is reachable only from behind it.\n *\n * Routes are the exception, and they are not a definition: `src/routes.ts`\n * mounts them, so the host states them here and admission checks a manifest's\n * routes against them. That check is what keeps a published deep link\n * resolving to the page it named.\n */\n\nimport { AUTOMATION_CATALOG } from \"@openhands/extensions/automations\";\nimport { validateInterfaceManifest } from \"./interface-validation\";\nimport { AUTOMATION_INTERFACE_CANDIDATE } from \"./manifest-sources\";\nimport type {\n AutomationAttributeName,\n InterfaceDashboardFilter,\n InterfaceDashboardSort,\n InterfaceEndpointName,\n InterfaceIconSlug,\n InterfaceImportExport,\n InterfaceListInsights,\n InterfaceManifest,\n InterfaceOverview,\n InterfaceRoutes,\n InterfaceSubPageId,\n InterfaceTemplatesPage,\n} from \"./types\";\n\n/** The routes this host has registrations for, in `src/routes.ts`. */\nconst MOUNTED_ROUTES = {\n list: \"/automations\",\n setup: \"/automations/new/:automationId\",\n detail: \"/automations/:automationId\",\n templates: \"/automations/templates\",\n} satisfies InterfaceRoutes;\n\n/**\n * File-format section for portable `.automation.json` export/import. A docs\n * pointer for the host's import picker, not interface data — the manifest's\n * `importExport` block has no docs field.\n */\nexport const AUTOMATION_FILE_FORMAT_DOCS_URL =\n \"https://docs.openhands.dev/openhands/usage/agent-canvas/managing-automations#exported-file-format\";\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getCatalogIds(): ReadonlySet<string> {\n return new Set(\n (AUTOMATION_CATALOG as readonly unknown[]).flatMap((entry) =>\n isRecord(entry) && typeof entry.id === \"string\" ? [entry.id] : [],\n ),\n );\n}\n\nfunction admitInterfaceManifest(candidate: unknown): InterfaceManifest | null {\n if (candidate === undefined) return null;\n\n const result = validateInterfaceManifest(candidate, {\n catalogIds: getCatalogIds(),\n mountedRoutes: MOUNTED_ROUTES,\n });\n if (!result.valid) {\n // Mirrors the setup registry: a rejected manifest is skipped loudly, and\n // the surfaces it would have described stay unrendered.\n console.warn(\n \"Rejected the automation interface manifest:\",\n result.errors.join(\"; \"),\n );\n return null;\n }\n return candidate as InterfaceManifest;\n}\n\nconst ADMITTED = admitInterfaceManifest(AUTOMATION_INTERFACE_CANDIDATE);\n\n/**\n * Whether this deployment has an automation interface at all. The nav entries\n * and the route loaders ask before rendering; nothing else has to.\n */\nexport function hasAutomationInterface(): boolean {\n return ADMITTED !== null;\n}\n\n/**\n * The admitted manifest, for the accessors that cannot answer without one.\n * Reaching one of those without a manifest means a surface rendered past its\n * gate — a wiring mistake, not a state to render.\n */\nfunction requireInterface(): InterfaceManifest {\n if (!ADMITTED) {\n throw new Error(\n \"No automation interface manifest is admitted, so this surface should not have rendered.\",\n );\n }\n return ADMITTED;\n}\n\nfunction substituteRouteParam(pattern: string, id: string): string {\n return pattern.replace(\":automationId\", encodeURIComponent(id));\n}\n\nexport function automationListPath(): string {\n return MOUNTED_ROUTES.list;\n}\n\nexport function automationSetupPath(id: string): string {\n return substituteRouteParam(MOUNTED_ROUTES.setup, id);\n}\n\nexport function automationDetailPath(id: string): string {\n return substituteRouteParam(MOUNTED_ROUTES.detail, id);\n}\n\nexport function automationTemplatesPath(): string {\n return MOUNTED_ROUTES.templates;\n}\n\n/**\n * Whether `path` (a location pathname) is inside the automation surface: the\n * list route itself or anything nested under it (detail, setup, templates,\n * git-sync). Prefix-safe: \"/automations-foo\" does not match.\n */\nexport function isAutomationsRoute(path: string): boolean {\n return (\n path === MOUNTED_ROUTES.list || path.startsWith(`${MOUNTED_ROUTES.list}/`)\n );\n}\n\n/**\n * A declared endpoint path. Empty for one the manifest may omit - the two a\n * bundle needs were added after the block shipped - so a caller that needs one\n * says so rather than reading a host-held default that does not exist.\n */\nexport function getAutomationEndpoint(name: InterfaceEndpointName): string {\n return requireInterface().endpoints[name] ?? \"\";\n}\n\n/** An id-parameterized endpoint with `{id}` substituted, encoded. */\nexport function getAutomationIdEndpoint(\n name: \"detail\" | \"dispatch\" | \"runs\" | \"tarball\",\n id: string,\n): string {\n return getAutomationEndpoint(name).replace(\"{id}\", encodeURIComponent(id));\n}\n\nexport interface InterfaceCopy {\n sidebarLabel: string;\n commandMenuTitle: string;\n commandMenuDescription: string;\n commandMenuKeywords: string;\n listTitle: string;\n listSubtitle: string;\n detailBackLabel: string;\n editTitle: string;\n}\n\nexport function getInterfaceCopy(): InterfaceCopy {\n const manifest = requireInterface();\n return {\n sidebarLabel: manifest.navigation.sidebar.label,\n commandMenuTitle: manifest.navigation.commandMenu.title,\n commandMenuDescription: manifest.navigation.commandMenu.description,\n commandMenuKeywords: manifest.navigation.commandMenu.keywords,\n listTitle: manifest.pages.list.title,\n listSubtitle: manifest.pages.list.subtitle,\n detailBackLabel: manifest.pages.detail.backLabel,\n editTitle: manifest.pages.edit.title,\n };\n}\n\nexport interface AttributeSpec {\n present: boolean;\n label: string;\n /** Null when the manifest states no help text for the attribute. */\n help: string | null;\n required: boolean;\n min: number | null;\n max: number | null;\n}\n\n/** An attribute the manifest does not declare is not offered at all. */\nconst ABSENT_ATTRIBUTE: AttributeSpec = {\n present: false,\n label: \"\",\n help: null,\n required: false,\n min: null,\n max: null,\n};\n\nexport function getAttributeSpec(name: AutomationAttributeName): AttributeSpec {\n const attribute = requireInterface().attributes[name];\n if (!attribute) return ABSENT_ATTRIBUTE;\n return {\n present: true,\n label: attribute.label,\n help: attribute.help ?? null,\n required: attribute.required,\n min: attribute.constraints?.min ?? null,\n max: attribute.constraints?.max ?? null,\n };\n}\n\nexport function getImportExportSpec(): InterfaceImportExport {\n return requireInterface().importExport;\n}\n\nexport function getAutomationsDocsUrl(): string {\n return requireInterface().docsUrl;\n}\n\nexport function getFeaturedAutomationIds(): readonly string[] {\n return requireInterface().featuredAutomationIds;\n}\n\nexport function getResponderIntegrationIds(): readonly string[] {\n return requireInterface().responderIntegrationIds;\n}\n\nexport interface SubPageNavSpec {\n page: InterfaceSubPageId;\n /** The page's route, resolved through the host's route table. */\n to: string;\n label: string;\n icon: InterfaceIconSlug;\n}\n\n/**\n * The sub-page navigation, or null when the manifest does not declare the\n * sub-page surface.\n */\nexport function getSubPagesSpec(): SubPageNavSpec[] | null {\n const subPages = ADMITTED?.navigation.subPages;\n if (!subPages) return null;\n return subPages.map((item) => ({\n page: item.page,\n to:\n item.page === \"templates\"\n ? automationTemplatesPath()\n : automationListPath(),\n label: item.label,\n icon: item.icon,\n }));\n}\n\nexport interface DashboardSpec {\n overview: InterfaceOverview;\n filters: InterfaceDashboardFilter[];\n sort: InterfaceDashboardSort;\n insights: InterfaceListInsights;\n}\n\n/**\n * The list page's dashboard composition, or null when the manifest does not\n * declare it. Admission accepts the sub-page surface whole or not at all, so\n * these four are present together.\n */\nexport function getDashboardSpec(): DashboardSpec | null {\n const list = ADMITTED?.pages.list;\n if (!list?.overview || !list.filters || !list.sort || !list.insights) {\n return null;\n }\n return {\n overview: list.overview,\n filters: list.filters,\n sort: list.sort,\n insights: list.insights,\n };\n}\n\n/** The templates page identity, or null when the manifest does not declare it. */\nexport function getTemplatesPageSpec(): InterfaceTemplatesPage | null {\n return ADMITTED?.pages.templates ?? null;\n}\n"],"mappings":"wMAqCA,IAAM,EAAiB,CACrB,KAAM,eACN,MAAO,iCACP,OAAQ,6BACR,UAAW,wBACb,EAUA,SAAS,EAAS,EAAkD,CAClE,OAAO,OAAO,GAAU,YAAY,GAAkB,CAAC,MAAM,QAAQ,CAAK,CAC5E,CAEA,SAAS,GAAqC,CAC5C,OAAO,IAAI,IACR,EAAA,QAA0C,QAAS,GAClD,EAAS,CAAK,GAAK,OAAO,EAAM,IAAO,SAAW,CAAC,EAAM,EAAE,EAAI,CAAC,CAClE,CACF,CACF,CAEA,SAAS,EAAuB,EAA8C,CAC5E,GAAI,IAAc,IAAA,GAAW,OAAO,KAEpC,IAAM,EAAS,EAAA,0BAA0B,EAAW,CAClD,WAAY,EAAc,EAC1B,cAAe,CACjB,CAAC,EAUD,OATK,EAAO,MASL,GANL,QAAQ,KACN,8CACA,EAAO,OAAO,KAAK,IAAI,CACzB,EACO,KAGX,CAEA,IAAM,EAAW,EAAuB,EAAA,8BAA8B,EAMtE,SAAgB,GAAkC,CAChD,OAAO,IAAa,IACtB,CAOA,SAAS,GAAsC,CAC7C,GAAI,CAAC,EACH,MAAU,MACR,yFACF,EAEF,OAAO,CACT,CAEA,SAAS,EAAqB,EAAiB,EAAoB,CACjE,OAAO,EAAQ,QAAQ,gBAAiB,mBAAmB,CAAE,CAAC,CAChE,CAEA,SAAgB,GAA6B,CAC3C,OAAO,EAAe,IACxB,CAEA,SAAgB,EAAoB,EAAoB,CACtD,OAAO,EAAqB,EAAe,MAAO,CAAE,CACtD,CAeA,SAAgB,EAAmB,EAAuB,CACxD,OACE,IAAS,EAAe,MAAQ,EAAK,WAAW,GAAG,EAAe,KAAK,EAAE,CAE7E,CAOA,SAAgB,EAAsB,EAAqC,CACzE,OAAO,EAAiB,EAAE,UAAU,IAAS,EAC/C,CAGA,SAAgB,EACd,EACA,EACQ,CACR,OAAO,EAAsB,CAAI,EAAE,QAAQ,OAAQ,mBAAmB,CAAE,CAAC,CAC3E,CAaA,SAAgB,GAAkC,CAChD,IAAM,EAAW,EAAiB,EAClC,MAAO,CACL,aAAc,EAAS,WAAW,QAAQ,MAC1C,iBAAkB,EAAS,WAAW,YAAY,MAClD,uBAAwB,EAAS,WAAW,YAAY,YACxD,oBAAqB,EAAS,WAAW,YAAY,SACrD,UAAW,EAAS,MAAM,KAAK,MAC/B,aAAc,EAAS,MAAM,KAAK,SAClC,gBAAiB,EAAS,MAAM,OAAO,UACvC,UAAW,EAAS,MAAM,KAAK,KACjC,CACF,CAmCA,SAAgB,GAA6C,CAC3D,OAAO,EAAiB,EAAE,YAC5B,CAEA,SAAgB,GAAgC,CAC9C,OAAO,EAAiB,EAAE,OAC5B,CAEA,SAAgB,GAA8C,CAC5D,OAAO,EAAiB,EAAE,qBAC5B,CAEA,SAAgB,GAAgD,CAC9D,OAAO,EAAiB,EAAE,uBAC5B"}
|
|
@@ -31,6 +31,12 @@ export declare function automationListPath(): string;
|
|
|
31
31
|
export declare function automationSetupPath(id: string): string;
|
|
32
32
|
export declare function automationDetailPath(id: string): string;
|
|
33
33
|
export declare function automationTemplatesPath(): string;
|
|
34
|
+
/**
|
|
35
|
+
* Whether `path` (a location pathname) is inside the automation surface: the
|
|
36
|
+
* list route itself or anything nested under it (detail, setup, templates,
|
|
37
|
+
* git-sync). Prefix-safe: "/automations-foo" does not match.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isAutomationsRoute(path: string): boolean;
|
|
34
40
|
/**
|
|
35
41
|
* A declared endpoint path. Empty for one the manifest may omit - the two a
|
|
36
42
|
* bundle needs were added after the block shipped - so a caller that needs one
|