@openhands/agent-canvas 1.18.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.windows.md +2 -2
- package/build/assets/acp-providers-DOKcGeaV.js +1 -0
- package/build/assets/active-backend-context-BETEdaJl.js +2 -0
- package/build/assets/{agent-context-settings-D3peZkjX.js → agent-context-settings-Dir0loAn.js} +1 -1
- package/build/assets/{agent-profiles-service.api-DkeZaqIl.js → agent-profiles-service.api-CiMVQAIT.js} +1 -1
- package/build/assets/{agent-profiles-settings-7yMWYjGF.js → agent-profiles-settings-CT5owzRT.js} +1 -1
- package/build/assets/agent-server-conversation-service.api-BtOlitCD.js +88 -0
- package/build/assets/agent-settings-BnzyTgCb.js +2 -0
- package/build/assets/agent-settings-CeXj3xK-.js +1 -0
- package/build/assets/{alert-banner-eYyqvHL3.js → alert-banner-Ccx1Du6n.js} +1 -1
- package/build/assets/{api-key-entry-screen-CCBvBD8u.js → api-key-entry-screen-DXIuzBjY.js} +1 -1
- package/build/assets/{app-settings-BtYDs-Be.js → app-settings-DkIJVTKL.js} +1 -1
- package/build/assets/automation-detail-CF2SweVs.js +3 -0
- package/build/assets/automation-disabled-reason-QFtMrdOr.js +1 -0
- package/build/assets/{automation-export-BJsfi7n2.js → automation-export-CkvehhPF.js} +1 -1
- package/build/assets/{automation-git-sync-B7o_Nbl-.js → automation-git-sync-di4tBAyZ.js} +1 -1
- package/build/assets/automation-setup-route-FERj7WEe.js +3 -0
- package/build/assets/{automation-templates-Bb98r-kx.js → automation-templates-DlaCRvD-.js} +1 -1
- package/build/assets/automations-list-yK7ETmYP.js +1 -0
- package/build/assets/{back-nav-button-B2yBiVMB.js → back-nav-button-oDvIxpQ5.js} +1 -1
- package/build/assets/backend-form-modal-DzYf_arO.js +1 -0
- package/build/assets/{backend-synced-settings-badge-DLEp6cq7.js → backend-synced-settings-badge-DXDDHWX4.js} +1 -1
- package/build/assets/{badge-ehL-kgeO.js → badge-CDHZEVeN.js} +1 -1
- package/build/assets/{base-modal-C1a0TsSx.js → base-modal-CZq4kB_H.js} +1 -1
- package/build/assets/{brand-button-CUMfjb99.js → brand-button-CGUwj6zK.js} +1 -1
- package/build/assets/{browser-SE24Tk8g.js → browser-kY6jN61T.js} +2 -2
- package/build/assets/{browser-tab-HjJxHA0V.js → browser-tab-DFyZXsnB.js} +1 -1
- package/build/assets/{canvas-extension-page-BsUGBb1T.js → canvas-extension-page-DsGq1DtT.js} +1 -1
- package/build/assets/{canvas-extensions-C9Tm6s_E.js → canvas-extensions-Cb2Z0Hdc.js} +1 -1
- package/build/assets/{canvas-extensions-runtime-B8kxM4rO.js → canvas-extensions-runtime-DS6eT4nK.js} +1 -1
- package/build/assets/{chat-send-button-CGvc2wpE.js → chat-send-button-B6aVaD9V.js} +1 -1
- package/build/assets/{circle-plus-check-toggle-BDX_ctNs.js → circle-plus-check-toggle-ZOXpJ3I2.js} +1 -1
- package/build/assets/{cloud-funnel-analytics-D5uJ_4JE.js → cloud-funnel-analytics-BH_zxjiO.js} +1 -1
- package/build/assets/{cog-CAEugqtV.js → cog-DVZT1f0s.js} +1 -1
- package/build/assets/{command-menu-CQxs4mtX.js → command-menu-ImeHQ6c2.js} +1 -1
- package/build/assets/{commits-tab-D0xgjipP.js → commits-tab-B5SUF66c.js} +1 -1
- package/build/assets/{condenser-settings-D63NJRBT.js → condenser-settings-BlGOXEXM.js} +1 -1
- package/build/assets/{confirmation-modal-78sd9Vny.js → confirmation-modal-oN1EId79.js} +1 -1
- package/build/assets/{context-menu-list-item-Cm7-7Y-7.js → context-menu-list-item-DIm5xQg6.js} +1 -1
- package/build/assets/{conversation-B_nweu5p.js → conversation-9a53tdbO.js} +4 -4
- package/build/assets/conversation-XRsI28ZM.js +1 -0
- package/build/assets/conversation-panel-XRsI28ZM.js +1 -0
- package/build/assets/{conversation-state-store-9D_3P7q4.js → conversation-state-store-Br-eE-gg.js} +1 -1
- package/build/assets/{conversation-tab-empty-state-B3dpJXX0.js → conversation-tab-empty-state-BT1GrnKP.js} +1 -1
- package/build/assets/{copy-to-clipboard-button-B1ljgNxO.js → copy-to-clipboard-button-CvTHqY13.js} +1 -1
- package/build/assets/{device-verify-D5QRIS_x.js → device-verify-DX0xdNjo.js} +1 -1
- package/build/assets/{dropdown-classes-BGvOvW2_.js → dropdown-classes-DyyMaaXl.js} +1 -1
- package/build/assets/edit-automation-modal-bfD-5NIc.js +1 -0
- package/build/assets/empty-state-B5advKVW.js +1 -0
- package/build/assets/{entry.client-BMafTpjO.js → entry.client-D_2gnSyB.js} +2 -2
- package/build/assets/{enum-filter-dropdown-UNaom12H.js → enum-filter-dropdown-VAJp5mqh.js} +1 -1
- package/build/assets/{environment-switch-overlay-COibRUA-.js → environment-switch-overlay-C7x_yhEs.js} +1 -1
- package/build/assets/{error-state-Cf8LRuuY.js → error-state-BgYl7YeB.js} +1 -1
- package/build/assets/{extensions-hub-C_6ahIua.js → extensions-hub-DjhOed1I.js} +1 -1
- package/build/assets/{extensions-navigation-C5GfpzFe.js → extensions-navigation-Di-J2KUR.js} +1 -1
- package/build/assets/{files-tab-D5PPIWI1.js → files-tab-BNDp3e_x.js} +1 -1
- package/build/assets/{form-control-classes-Dbq-7YP_.js → form-control-classes-BVI_szaj.js} +1 -1
- package/build/assets/{get-git-path-jU2zjqIB.js → get-git-path-DOe6PM_a.js} +1 -1
- package/build/assets/git-repo-dropdown-1fZGYtYm.js +1 -0
- package/build/assets/{git-repo-dropdown-uxlFw2gn.js → git-repo-dropdown-DNlinQ7r.js} +1 -1
- package/build/assets/{highlighted-source-view-C7pAXrT0.js → highlighted-source-view-DPerL6tF.js} +1 -1
- package/build/assets/home-4lyLzYjG.js +1 -0
- package/build/assets/home-BGaB0EeK.js +1 -0
- package/build/assets/home-automation-run-tooltip-v5n7zXR0.js +1 -0
- package/build/assets/{home-store-DCbei3DX.js → home-store-roz1x6D5.js} +1 -1
- package/build/assets/{hooks-service-Dnmhqc0Z.js → hooks-service-tzRqtAlm.js} +1 -1
- package/build/assets/index-home-6Y_Y7kOo.js +1 -0
- package/build/assets/{install-server-modal-B81I-5OE.js → install-server-modal-DkMCfj0J.js} +1 -1
- package/build/assets/{key-O84CMFHb.js → key-DpfBWQbk.js} +1 -1
- package/build/assets/{launch-ZLxI4opd.js → launch-TrnYlJe6.js} +1 -1
- package/build/assets/link-external-B4gx3EeM.js +1 -0
- package/build/assets/llm-not-configured-banner-BdjItKQR.js +27 -0
- package/build/assets/{llm-settings-CODhjQzy.js → llm-settings-CUgt39uu.js} +1 -1
- package/build/assets/llm-settings-DEfw-fUJ.js +1 -0
- package/build/assets/{llm-subscription-service-CgIDc38n.js → llm-subscription-service-LGYVzyAc.js} +1 -1
- package/build/assets/{loading-spinner-BeLV0IXf.js → loading-spinner-BJc2J0Dw.js} +1 -1
- package/build/assets/{manage-backends-modal-cMXqCb-B.js → manage-backends-modal-CIjk0B2H.js} +1 -1
- package/build/assets/manifest-23d79467.js +1 -0
- package/build/assets/{manifest-subpage-layout-CVZgVKoY.js → manifest-subpage-layout-DGYRoP_8.js} +1 -1
- package/build/assets/{markdown-renderer-DyFl9-mL.js → markdown-renderer-DRpwRlNm.js} +1 -1
- package/build/assets/mcp-CoUOIGBF.js +1 -0
- package/build/assets/mcp-installed-servers-BW51n6PC.js +1 -0
- package/build/assets/mcp-marketplace-utils-BwEnDYqm.js +1 -0
- package/build/assets/mcp-page-hZ4aJjj_.js +9 -0
- package/build/assets/{messages-Bk1xhbU2.js → messages-WUb9Yh-p.js} +4 -4
- package/build/assets/{modal-body-C24WsdFb.js → modal-body-B_95ci1c.js} +1 -1
- package/build/assets/{modal-classes-B0b9eiL8.js → modal-classes-BPcBCWVj.js} +1 -1
- package/build/assets/{modal-close-button-DfqfB2Nj.js → modal-close-button-Cq3dma5u.js} +1 -1
- package/build/assets/onboarding-Cc4Av7bi.js +1 -0
- package/build/assets/{onboarding-modal-BT3Gx_sZ.js → onboarding-modal-DCFD4Dsa.js} +1 -1
- package/build/assets/{organization-service.api-B5CvmnYQ.js → organization-service.api-zhHpQU0t.js} +1 -1
- package/build/assets/parse-git-remote-url-BG8pcKL8.js +1 -0
- package/build/assets/{planner-tab-CstoOlAB.js → planner-tab-yISBVUKu.js} +1 -1
- package/build/assets/{plugins-management-service-5rqVPEGN.js → plugins-management-service-2oP6_tWr.js} +1 -1
- package/build/assets/{profiles-service.api-D1XKMgr0.js → profiles-service.api-B5thiTI3.js} +1 -1
- package/build/assets/{providers-XmZ9HM4Q.js → providers-Co9PsD0s.js} +1 -1
- package/build/assets/{proxy-XP6U1Dhv.js → proxy-BCCQUna8.js} +1 -1
- package/build/assets/recommended-automations-launcher-D1Do753p.js +1 -0
- package/build/assets/root-D1y82Lhg.js +2 -0
- package/build/assets/{root-layout-DUquNZTU.js → root-layout-cQTYEG2w.js} +2 -2
- package/build/assets/root-sEWn3ha1.css +1 -0
- package/build/assets/{schema-field-Y3F8JvXd.js → schema-field-DSi0d7a8.js} +1 -1
- package/build/assets/{sdk-section-page-CNZTLwH9.js → sdk-section-page-DCoI2dtd.js} +1 -1
- package/build/assets/{secret-form-9-BoGA40.js → secret-form-BDvzojzN.js} +1 -1
- package/build/assets/{secrets-service-BOIsfD9j.js → secrets-service-C3CNNEpY.js} +1 -1
- package/build/assets/{secrets-settings-CBJgFr42.js → secrets-settings-BKqfYQt5.js} +1 -1
- package/build/assets/{settings-D4hdToD4.js → settings-C8ZLONyx.js} +1 -1
- package/build/assets/{settings-dropdown-input-DBvsZ7-Q.js → settings-dropdown-input-Df_HXRk4.js} +1 -1
- package/build/assets/{settings-index-DeQphyBK.js → settings-index-BWvlGHg3.js} +1 -1
- package/build/assets/{settings-input-dVuzapBA.js → settings-input-B3i5U9GL.js} +1 -1
- package/build/assets/{settings-list-classes-DhAPuXm6.js → settings-list-classes-DbqcSiVW.js} +1 -1
- package/build/assets/{settings-modal-tHiJ8iYV.js → settings-modal-DHKJSBPL.js} +1 -1
- package/build/assets/{settings-nav-GAQjW1a-.js → settings-nav-BThjwLWD.js} +1 -1
- package/build/assets/{settings-service.api-C1vZH9Vh.js → settings-service.api-CYBTLGOd.js} +1 -1
- package/build/assets/{settings-switch-DDd1cQ8t.js → settings-switch-CI93Iozg.js} +1 -1
- package/build/assets/{shared-conversation-Cyg7m7ns.js → shared-conversation-C7OILS-U.js} +1 -1
- package/build/assets/{sidebar-layout-DH0E-5KW.js → sidebar-layout-Csb6Geq0.js} +1 -1
- package/build/assets/{sidebar-mobile-menu-toggle-CQ4iky__.js → sidebar-mobile-menu-toggle-B2xwXm4s.js} +1 -1
- package/build/assets/{sidebar-nav-link-oLQiKUBu.js → sidebar-nav-link-Xv7QEMVS.js} +1 -1
- package/build/assets/{sidebar-onboarding-checklist-storage-TfvNNnnr.js → sidebar-onboarding-checklist-storage-_zxMqHS0.js} +1 -1
- package/build/assets/{skill-card-pill-row-DfjIfj0K.js → skill-card-pill-row-CxOFySng.js} +1 -1
- package/build/assets/{skill-enablement-DXeaImBz.js → skill-enablement-BBKya60C.js} +1 -1
- package/build/assets/{skill-filter-DsNLmn76.js → skill-filter-BvtbD--b.js} +1 -1
- package/build/assets/{skill-icon-badge-0MK_68Nc.js → skill-icon-badge-CVxE42yg.js} +1 -1
- package/build/assets/{skill-scope-BE-H9TSZ.js → skill-scope-C0NxJnpT.js} +1 -1
- package/build/assets/{skills-plugins-vzSdxSk_.js → skills-plugins-BGjX4jve.js} +1 -1
- package/build/assets/{skills-settings-BiPOH9H9.js → skills-settings-d3ZwIjSP.js} +1 -1
- package/build/assets/{styled-tooltip-CejG0rqv.js → styled-tooltip-CknPQH4Y.js} +1 -1
- package/build/assets/{task-list-tab-OkZSqnTp.js → task-list-tab-CQisRcPh.js} +1 -1
- package/build/assets/{terminal-Dph60VFZ.js → terminal-Bs50gJPC.js} +1 -1
- package/build/assets/{toggle-switch-B2uXaAUS.js → toggle-switch-D3TBxlsc.js} +1 -1
- package/build/assets/trash-D1QMHInX.js +1 -0
- package/build/assets/{typography-DgcLGdHk.js → typography-BdAApXGl.js} +1 -1
- package/build/assets/{usage-tab-MCmNRAnR.js → usage-tab-ClVHAFJy.js} +1 -1
- package/build/assets/{use-acp-credential-form-ychoGqjC.js → use-acp-credential-form-GfqcTJl5.js} +1 -1
- package/build/assets/{use-activate-agent-profile-8L8Xdghy.js → use-activate-agent-profile-DO6SNPkK.js} +1 -1
- package/build/assets/{use-agent-profiles-Bi8hSkze.js → use-agent-profiles-YsBlt3tT.js} +1 -1
- package/build/assets/{use-automation-health-U99vvHxx.js → use-automation-health-CbQ9n-k7.js} +1 -1
- package/build/assets/{use-automation-permissions-Buus0R6h.js → use-automation-permissions-gFy-2VD0.js} +1 -1
- package/build/assets/{use-automations-Bq5hVuv0.js → use-automations-7_XBXHQK.js} +1 -1
- package/build/assets/{use-can-manage-org-profiles-MzIeEV8F.js → use-can-manage-org-profiles-Dt4YkPO7.js} +1 -1
- package/build/assets/{use-canvas-extensions-Ca9KoVEm.js → use-canvas-extensions-BhYQrtMK.js} +1 -1
- package/build/assets/{use-cloud-current-user-id-B4ZLUZSa.js → use-cloud-current-user-id-Dqw6qQUg.js} +1 -1
- package/build/assets/{use-config-l5tkDHyD.js → use-config-BJ_FJCjV.js} +1 -1
- package/build/assets/use-create-conversation-D15Px574.js +1 -0
- package/build/assets/use-create-secret-D_qPU88t.js +1 -0
- package/build/assets/{use-free-models-gCsJ5BV0.js → use-free-models-FAk2nngq.js} +1 -1
- package/build/assets/{use-get-secrets-CMTuWEp_.js → use-get-secrets-Pbo9jh2A.js} +1 -1
- package/build/assets/{use-llm-configured-Dl4zg8ht.js → use-llm-configured-DF9BYmIe.js} +1 -1
- package/build/assets/{use-llm-profiles-SWsuFmFu.js → use-llm-profiles-U4u1gzuk.js} +1 -1
- package/build/assets/use-manifest-capabilities-D81_YdAF.js +1 -0
- package/build/assets/{use-onboarding-completion-Xl63ZvzQ.js → use-onboarding-completion-C4W-m2Jk.js} +1 -1
- package/build/assets/{use-pinned-home-route-BXDIUaxQ.js → use-pinned-home-route-DByWTojw.js} +1 -1
- package/build/assets/{use-plugins-marketplace-BIIaPiaB.js → use-plugins-marketplace-CTRoukH0.js} +1 -1
- package/build/assets/{use-save-agent-profile-D-ZHHE94.js → use-save-agent-profile-xpHBxMZM.js} +1 -1
- package/build/assets/{use-save-settings-Dapkf4cC.js → use-save-settings-CmX41wlf.js} +1 -1
- package/build/assets/{use-settings-C2KKQKVC.js → use-settings-D69cw06D.js} +1 -1
- package/build/assets/{use-settings-nav-items-TOc0Rsfd.js → use-settings-nav-items-CVz0SnDr.js} +1 -1
- package/build/assets/use-tracking-BAFpgpgq.js +3 -0
- package/build/assets/{use-user-conversation-5UFqMoO4.js → use-user-conversation-BBDXUbOc.js} +1 -1
- package/build/assets/utils-CbjwNcR-.js +1 -0
- package/build/assets/{vendor~browser-hbU4u2Ag.js → vendor~browser-BZ-zIfb6.js} +1 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-DvZtOcoT.js +2 -0
- package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-CxhwKuAd.js → vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-BIjRfQ4u.js} +1 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-BBfdJIV9.js +48 -0
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-3eJ4ExtV.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-fgzdgvrL.js} +3579 -165
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C7HiY4Ae.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-BqdU447s.js} +794 -227
- package/build/assets/{verification-settings-DdBpaVPz.js → verification-settings-BXspn27q.js} +1 -1
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +18 -1
- package/build/locales/ca/openhands.json +18 -1
- package/build/locales/de/openhands.json +18 -1
- package/build/locales/en/openhands.json +18 -1
- package/build/locales/es/openhands.json +18 -1
- package/build/locales/fr/openhands.json +18 -1
- package/build/locales/it/openhands.json +18 -1
- package/build/locales/ja/openhands.json +18 -1
- package/build/locales/ko-KR/openhands.json +18 -1
- package/build/locales/no/openhands.json +18 -1
- package/build/locales/pt/openhands.json +18 -1
- package/build/locales/tr/openhands.json +18 -1
- package/build/locales/uk/openhands.json +18 -1
- package/build/locales/zh-CN/openhands.json +18 -1
- package/build/locales/zh-TW/openhands.json +18 -1
- package/config/defaults.json +3 -3
- package/dist/api/agent-profiles-service/profile-field-support.d.ts +2 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.cjs +3 -3
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.js +12 -16
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.js.map +1 -1
- package/dist/components/features/automations/agent-profile-selector.d.ts +7 -0
- package/dist/components/features/automations/detail/disabled-reason-banner.d.ts +16 -0
- 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 +38 -29
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -1
- package/dist/components/features/settings/agent-profiles/profile-scope-list.d.ts +20 -0
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +3 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants/acp-providers.cjs +1 -1
- package/dist/constants/acp-providers.cjs.map +1 -1
- package/dist/constants/acp-providers.d.ts +0 -5
- package/dist/constants/acp-providers.js +20 -16
- package/dist/constants/acp-providers.js.map +1 -1
- package/dist/constants/profile-scope.d.ts +21 -0
- package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.js +30 -19
- package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.cjs +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
- package/dist/hooks/mutation/use-switch-acp-model.js +11 -12
- package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +1 -0
- package/dist/hooks/query/query-keys.js +10 -1
- package/dist/hooks/query/query-keys.js.map +1 -1
- package/dist/hooks/query/use-active-acp-profile-detail.cjs +1 -1
- package/dist/hooks/query/use-active-acp-profile-detail.cjs.map +1 -1
- package/dist/hooks/query/use-active-acp-profile-detail.d.ts +0 -9
- package/dist/hooks/query/use-active-acp-profile-detail.js +4 -13
- package/dist/hooks/query/use-active-acp-profile-detail.js.map +1 -1
- package/dist/hooks/query/use-automation-sdk-version.cjs +1 -1
- package/dist/hooks/query/use-automation-sdk-version.cjs.map +1 -1
- package/dist/hooks/query/use-automation-sdk-version.js +3 -1
- package/dist/hooks/query/use-automation-sdk-version.js.map +1 -1
- package/dist/hooks/use-drag-resize.cjs +1 -1
- package/dist/hooks/use-drag-resize.cjs.map +1 -1
- package/dist/hooks/use-drag-resize.js +8 -9
- package/dist/hooks/use-drag-resize.js.map +1 -1
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +18 -1
- 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 +289 -0
- package/dist/i18n/translation.js.map +1 -1
- package/dist/locales/ar/openhands.json +18 -1
- package/dist/locales/ca/openhands.json +18 -1
- package/dist/locales/de/openhands.json +18 -1
- package/dist/locales/en/openhands.json +18 -1
- package/dist/locales/es/openhands.json +18 -1
- package/dist/locales/fr/openhands.json +18 -1
- package/dist/locales/it/openhands.json +18 -1
- package/dist/locales/ja/openhands.json +18 -1
- package/dist/locales/ko-KR/openhands.json +18 -1
- package/dist/locales/no/openhands.json +18 -1
- package/dist/locales/pt/openhands.json +18 -1
- package/dist/locales/tr/openhands.json +18 -1
- package/dist/locales/uk/openhands.json +18 -1
- package/dist/locales/zh-CN/openhands.json +18 -1
- package/dist/locales/zh-TW/openhands.json +18 -1
- package/dist/manifests/automation-setup.cjs.map +1 -1
- package/dist/manifests/automation-setup.js.map +1 -1
- package/dist/manifests/manifest-local-validation.cjs.map +1 -1
- package/dist/manifests/manifest-local-validation.js.map +1 -1
- package/dist/manifests/manifest-validation.cjs +1 -1
- package/dist/manifests/manifest-validation.cjs.map +1 -1
- package/dist/manifests/manifest-validation.js +2 -2
- package/dist/manifests/manifest-validation.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +3670 -247
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +26 -3
- 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 +4 -1
- 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-delivery-watchdog/manifest.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-delivery-watchdog/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-delivery-watchdog/manifest.js +79 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-delivery-watchdog/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +1 -11
- 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 +25 -11
- 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-issue-triage/manifest.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-triage/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-triage/manifest.js +72 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-triage/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +1 -10
- 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 +24 -11
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/automations/catalog/gitlab-issue-to-mr/manifest.cjs +12 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/gitlab-issue-to-mr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/gitlab-issue-to-mr/manifest.js +115 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/gitlab-issue-to-mr/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 +20 -14
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/reportportal.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/reportportal.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/reportportal.js +73 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/reportportal.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +9 -7
- package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +794 -227
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +46 -6
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js +15 -8
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js +11 -13
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +6 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.js +9 -12
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.js +9 -10
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.js +41 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.js +2 -2
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.js +3 -6
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/clients.js +1 -2
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.js +0 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js +199 -61
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.js +9 -8
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.js.map +1 -1
- 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 +11 -0
- package/dist/types/automation.cjs.map +1 -1
- package/dist/types/automation.d.ts +26 -2
- package/dist/types/automation.js.map +1 -1
- package/dist/utils/automation-disabled-reason.cjs +2 -0
- package/dist/utils/automation-disabled-reason.cjs.map +1 -0
- package/dist/utils/automation-disabled-reason.d.ts +32 -0
- package/dist/utils/automation-disabled-reason.js +19 -0
- package/dist/utils/automation-disabled-reason.js.map +1 -0
- package/dist/utils/parse-git-remote-url.cjs +1 -1
- package/dist/utils/parse-git-remote-url.cjs.map +1 -1
- package/dist/utils/parse-git-remote-url.d.ts +5 -1
- package/dist/utils/parse-git-remote-url.js +20 -13
- package/dist/utils/parse-git-remote-url.js.map +1 -1
- package/package.json +3 -3
- package/scripts/check-sdk-version-sync.mjs +79 -8
- package/scripts/dev-safe.mjs +14 -1
- package/scripts/docker-build.mjs +3 -0
- package/scripts/static-server.mjs +24 -7
- package/build/assets/acp-providers-DcY_mKYa.js +0 -1
- package/build/assets/active-backend-context-BnH4-L8h.js +0 -2
- package/build/assets/agent-server-conversation-service.api-jiCopc2E.js +0 -88
- package/build/assets/agent-settings-BF8hM6wb.js +0 -2
- package/build/assets/agent-settings-YPutBAeR.js +0 -1
- package/build/assets/automation-detail-BxXhb_m2.js +0 -3
- package/build/assets/automation-setup-route-qaJ6lLCf.js +0 -3
- package/build/assets/automations-list-DEPVNud3.js +0 -1
- package/build/assets/backend-form-modal-DxisQV_6.js +0 -1
- package/build/assets/conversation-edjzrv5w.js +0 -1
- package/build/assets/conversation-panel-edjzrv5w.js +0 -1
- package/build/assets/edit-automation-modal-D_JWSmxT.js +0 -1
- package/build/assets/empty-state-FK_s1B60.js +0 -1
- package/build/assets/git-repo-dropdown-BoDDWXfX.js +0 -1
- package/build/assets/home-BM5_Wz_R.js +0 -1
- package/build/assets/home-Ivfm7KC4.js +0 -1
- package/build/assets/home-automation-run-tooltip-B1N2uO9p.js +0 -1
- package/build/assets/index-home-td9BN2T3.js +0 -1
- package/build/assets/kebab-menu-item-content-SCJBwZnp.js +0 -1
- package/build/assets/link-external-BNZzCM1I.js +0 -1
- package/build/assets/llm-not-configured-banner-Dh_ajcM8.js +0 -27
- package/build/assets/llm-settings-CZaXYgtw.js +0 -1
- package/build/assets/manifest-bfeccb98.js +0 -1
- package/build/assets/mcp-CraxoXQv.js +0 -1
- package/build/assets/mcp-marketplace-utils-C7PYr293.js +0 -1
- package/build/assets/mcp-page-CteH_K0N.js +0 -9
- package/build/assets/onboarding-DXFBRqEy.js +0 -1
- package/build/assets/parse-git-remote-url-DpDM9bK6.js +0 -1
- package/build/assets/recommended-automations-launcher-DEHRKIAg.js +0 -1
- package/build/assets/root-CM6IZHlg.css +0 -1
- package/build/assets/root-DdFkodKW.js +0 -2
- package/build/assets/trash-Ckh7yCaB.js +0 -1
- package/build/assets/use-create-conversation-i_PdFdIs.js +0 -1
- package/build/assets/use-create-secret-CjWq0J4O.js +0 -1
- package/build/assets/use-manifest-capabilities-CdqYfUAC.js +0 -1
- package/build/assets/use-tracking-j4uo9VEW.js +0 -3
- package/build/assets/utils-BgLSZdyy.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js +0 -2
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js +0 -48
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs +0 -2
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs.map +0 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js +0 -21
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/__vite-browser-external-NEUUz2mh.js","assets/rolldown-runtime-Cyuzqnbw.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{xt as t}from"./vendor-styling-Ck5D_A2Q.js";var n=class extends Error{constructor(e,t,n,r){super(r||`HTTP ${e}: ${t}`),this.status=e,this.statusText=t,this.response=n,this.name=`HttpError`}},r=class{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,``),this.apiKey=e.apiKey,this.timeout=e.timeout||6e4}buildUrl(e,t){let n=e.startsWith(`/`)?e.slice(1):e,r=new URL(n,this.baseUrl+`/`);return t&&Object.entries(t).forEach(([e,t])=>{t!=null&&(Array.isArray(t)?t.forEach(t=>r.searchParams.append(e,String(t))):r.searchParams.append(e,String(t)))}),r}async request(e){if(e.method===`GET`&&e.data!==void 0&&e.data!==null)return this.requestWithBodyOnGet(e);let t=this.buildUrl(e.url,e.params),r={"Content-Type":`application/json`,...e.headers};this.apiKey&&(r[`X-Session-API-Key`]=this.apiKey);let i={method:e.method,headers:r,signal:AbortSignal.timeout(e.timeout||this.timeout)};e.credentials&&(i.credentials=e.credentials),e.data&&e.method!==`GET`&&(e.data instanceof FormData?(delete r[`Content-Type`],i.body=e.data):i.body=JSON.stringify(e.data));try{let r=await fetch(t.toString(),i);if(!(e.acceptableStatusCodes?.has(r.status)||!e.acceptableStatusCodes&&r.ok)){let e;try{e=r.headers.get(`content-type`)?.includes(`application/json`)?await r.json():await r.text()}catch{e=null}throw new n(r.status,r.statusText,e,`HTTP request failed (${r.status} ${r.statusText}): ${JSON.stringify(e)}`)}let a=await this.parseResponse(r,e.responseType||`auto`),o={};return r.headers.forEach((e,t)=>{o[t]=e}),{data:a,status:r.status,statusText:r.statusText,headers:o}}catch(t){throw t instanceof n?t:t instanceof Error?t.name===`AbortError`?Error(`Request timeout after ${e.timeout||this.timeout}ms`,{cause:t}):Error(`Request failed: ${t.message}`,{cause:t}):Error(`Unknown request error`,{cause:t})}}async requestWithBodyOnGet(r){let i=this.buildUrl(r.url,r.params),a=typeof r.data==`string`?r.data:JSON.stringify(r.data),o={"Content-Type":`application/json`,...r.headers,"Content-Length":String(Buffer.byteLength(a))};this.apiKey&&(o[`X-Session-API-Key`]=this.apiKey);let s=(i.protocol,await t(()=>import(`./__vite-browser-external-NEUUz2mh.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1]))),c=r.timeout||this.timeout;return new Promise((e,t)=>{let l=s.request(i,{method:r.method,headers:o},i=>{let a=[];i.on(`data`,e=>a.push(e)),i.on(`end`,()=>{try{let o=i.statusCode??0,s=i.statusMessage??``,c={};for(let[e,t]of Object.entries(i.headers))t!==void 0&&(c[e]=Array.isArray(t)?t.join(`, `):t);let l=Buffer.concat(a),u=c[`content-type`];if(!(r.acceptableStatusCodes?.has(o)||!r.acceptableStatusCodes&&o>=200&&o<300)){let e=l.toString(`utf-8`),r;try{r=u?.includes(`application/json`)?JSON.parse(e):e}catch{r=e||null}t(new n(o,s,r,`HTTP request failed (${o} ${s}): ${JSON.stringify(r)}`));return}e({data:this.parseNodeResponse(l,u,r.responseType||`auto`),status:o,statusText:s,headers:c})}catch(e){t(e)}})});l.on(`error`,e=>{t(Error(`Request failed: ${e.message}`,{cause:e}))}),l.setTimeout(c,()=>{l.destroy(Error(`Request timeout after ${c}ms`))}),l.end(a)})}parseNodeResponse(e,t,n){if(n===`blob`)return new Blob([new Uint8Array(e)]);if(n===`arrayBuffer`)return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);let r=e.toString(`utf-8`);return n===`text`?r:n===`json`||t?.includes(`application/json`)?r?JSON.parse(r):void 0:r}async parseResponse(e,t){return t===`json`?await e.json():t===`text`?await e.text():t===`blob`?await e.blob():t===`arrayBuffer`?await e.arrayBuffer():e.headers.get(`content-type`)?.includes(`application/json`)?await e.json():await e.text()}async get(e,t){return this.request({method:`GET`,url:e,...t})}async post(e,t,n){return this.request({method:`POST`,url:e,data:t,...n})}async put(e,t,n){return this.request({method:`PUT`,url:e,data:t,...n})}async patch(e,t,n){return this.request({method:`PATCH`,url:e,data:t,...n})}async delete(e,t){return this.request({method:`DELETE`,url:e,...t})}close(){}},i=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout??6e4})}async listAgentProfiles(){return(await this.client.get(`/api/agent-profiles`)).data}async getAgentProfile(e,t={}){let n={};return t.exposeSecrets&&(n[`X-Expose-Secrets`]=t.exposeSecrets),(await this.client.get(`/api/agent-profiles/${encodeURIComponent(e)}`,{headers:n})).data}async saveAgentProfile(e,t){return(await this.client.post(`/api/agent-profiles/${encodeURIComponent(e)}`,t)).data}async deleteAgentProfile(e){return(await this.client.delete(`/api/agent-profiles/${encodeURIComponent(e)}`)).data}async renameAgentProfile(e,t){return(await this.client.post(`/api/agent-profiles/${encodeURIComponent(e)}/rename`,{new_name:t})).data}async activateAgentProfile(e){return(await this.client.post(`/api/agent-profiles/${encodeURIComponent(e)}/activate`,{})).data}async materializeAgentProfile(e){return(await this.client.post(`/api/agent-profiles/${encodeURIComponent(e)}/materialize`,{})).data}close(){this.client.close()}},a=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getRoot(){return(await this.client.get(`/`)).data}async getAlive(){return(await this.client.get(`/alive`)).data}async getHealth(){return(await this.client.get(`/health`)).data}async getReady(){return(await this.client.get(`/ready`,{acceptableStatusCodes:new Set([200,503])})).data}async getServerInfo(){return(await this.client.get(`/server_info`)).data}close(){this.client.close()}},o=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async searchEvents(e={}){return(await this.client.get(`/api/bash/bash_events/search`,{params:e})).data}async getEvent(e){return(await this.client.get(`/api/bash/bash_events/${e}`)).data}async getEvents(e){return Promise.all(e.map(async e=>{try{return await this.getEvent(e)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async batchGetEvents(e){return(await this.client.get(`/api/bash/bash_events/`,{data:e})).data}async startCommand(e,t,n){let r=this.normalizeRequest(e,t,n);return(await this.client.post(`/api/bash/start_bash_command`,r)).data}async executeCommand(e,t,n){let r=this.normalizeRequest(e,t,n);return(await this.client.post(`/api/bash/execute_bash_command`,r,{timeout:((r.timeout||30)+10)*1e3})).data}async clearEvents(){return(await this.client.delete(`/api/bash/bash_events`)).data}close(){this.client.close()}normalizeRequest(e,t,n){return typeof e==`string`?{command:e,...t?{cwd:t}:{},...n===void 0?{}:{timeout:Math.floor(n)}}:{...e,...e.timeout===void 0?{}:{timeout:Math.floor(e.timeout)}}}},s=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async createConversation(e){return(await this.client.post(`/api/conversations`,e)).data}async searchConversations(e={}){return(await this.client.get(`/api/conversations/search`,{params:e})).data}async countConversations(e={}){return(await this.client.get(`/api/conversations/count`,{params:e})).data}async getConversations(e){return(await this.client.get(`/api/conversations`,{params:{ids:e}})).data}async getConversation(e){return(await this.client.get(`/api/conversations/${e}`)).data}async searchEvents(e,t={}){return(await this.client.get(`/api/conversations/${e}/events/search`,{params:t})).data}async getEvent(e,t){return(await this.client.get(`/api/conversations/${e}/events/${t}`)).data}async getEvents(e,t){return Promise.all(t.map(async t=>{try{return await this.getEvent(e,t)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async sendEvent(e,t,n={}){await this.client.post(`/api/conversations/${e}/events`,{...t,...n.run===void 0?{}:{run:n.run}})}async pauseConversation(e){return(await this.client.post(`/api/conversations/${e}/pause`,{})).data}async interruptConversation(e){return(await this.client.post(`/api/conversations/${e}/interrupt`,{})).data}async runConversation(e){return(await this.client.post(`/api/conversations/${e}/run`,{})).data}async startGoal(e,t){return(await this.client.post(`/api/conversations/${e}/goal`,t)).data}async stopGoal(e){return(await this.client.post(`/api/conversations/${e}/goal/stop`,{})).data}async resumeGoal(e){return(await this.client.post(`/api/conversations/${e}/goal/resume`,{})).data}async askAgent(e,t){return(await this.client.post(`/api/conversations/${e}/ask_agent`,{question:t})).data}async getEventCount(e,t={}){return(await this.client.get(`/api/conversations/${e}/events/count`,{params:t})).data}async respondToConfirmation(e,t){return(await this.client.post(`/api/conversations/${e}/events/respond_to_confirmation`,t)).data}async getAgentFinalResponse(e){return(await this.client.get(`/api/conversations/${e}/agent_final_response`)).data}async setConfirmationPolicy(e,t){let n=`policy`in t?t:{policy:t};return(await this.client.post(`/api/conversations/${e}/confirmation_policy`,n)).data}async condenseConversation(e){return(await this.client.post(`/api/conversations/${e}/condense`,{})).data}async setSecurityAnalyzer(e,t){let n=c(t)?t:{security_analyzer:t};return(await this.client.post(`/api/conversations/${e}/security_analyzer`,n)).data}async updateSecrets(e,t){return(await this.client.post(`/api/conversations/${e}/secrets`,t)).data}async forkConversation(e,t={},n={}){return(await this.client.post(`/api/conversations/${e}/fork`,t,{params:n.includeSkills===void 0?void 0:{include_skills:n.includeSkills}})).data}async navigateConversation(e,t={},n={}){return(await this.client.post(`/api/conversations/${e}/navigate`,t,{params:n.includeSkills===void 0?void 0:{include_skills:n.includeSkills}})).data}async switchProfile(e,t){await this.client.post(`/api/conversations/${e}/switch_profile`,{profile_name:t})}async switchLLM(e,t){await this.client.post(`/api/conversations/${e}/switch_llm`,{llm:t})}async switchAcpModel(e,t){await this.client.post(`/api/conversations/${e}/switch_acp_model`,{model:t})}async deleteConversation(e){await this.client.delete(`/api/conversations/${e}`)}async updateConversation(e,t){return(await this.client.patch(`/api/conversations/${e}`,t)).data}close(){this.client.close()}};function c(e){return typeof e==`object`&&!!e&&`security_analyzer`in e}var l=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async searchSubdirectories(e,t={}){return(await this.client.get(`/api/file/search_subdirs`,{params:{path:e,page_id:t.pageId,limit:t.limit,include_hidden:t.includeHidden||void 0}})).data}async getHome(e={}){return(await this.client.get(`/api/file/home`,{params:{include_hidden:e.includeHidden||void 0}})).data}async downloadFile(e){return(await this.client.get(`/api/file/download`,{params:{path:e},responseType:`arrayBuffer`})).data}async downloadTextFile(e){return new TextDecoder().decode(await this.downloadFile(e))}async uploadFile(e,t,n){let r=new FormData,i=typeof File>`u`?void 0:File;return i&&e instanceof i?r.append(`file`,e,n||e.name):e instanceof Blob?r.append(`file`,e,n||`blob-file`):r.append(`file`,new Blob([e],{type:`text/plain`}),n||`text-file.txt`),(await this.client.post(`/api/file/upload`,r,{params:{path:t}})).data}async uploadTextFile(e,t,n){return this.uploadFile(e,t,n)}async downloadTrajectory(e){return(await this.client.get(`/api/file/download-trajectory/${encodeURIComponent(e)}`,{responseType:`blob`})).data}close(){this.client.close()}},u=`AGENT_SERVER_VERSION_TOO_OLD`,d={workspaces:{feature:`workspaces`,displayName:`Workspaces`,minVersion:`1.23.0`},hooks:{feature:`hooks`,displayName:`Hooks API`,minVersion:`1.23.0`},mcpTest:{feature:`mcp-test`,displayName:`MCP test API`,minVersion:`1.23.0`},mcpOAuth:{feature:`mcp-oauth`,displayName:`MCP OAuth API`,minVersion:`1.31.0`}},f=class e extends Error{constructor({requirement:t,actualVersion:n}){super(`${t.displayName} requires agent-server ${t.minVersion} or newer; this backend is running ${n}. Please upgrade your agent-server backend.`),this.code=u,this.name=`AgentServerVersionError`,this.feature=t.feature,this.displayName=t.displayName,this.requiredVersion=t.minVersion,this.actualVersion=n,Object.setPrototypeOf(this,e.prototype)}},p=new WeakMap;function m(e){return e instanceof f||typeof e==`object`&&!!e&&`code`in e&&e.code===`AGENT_SERVER_VERSION_TOO_OLD`}async function h(e){let t=p.get(e);if(t)return t;let n=e.get(`/server_info`).then(e=>e.data);return p.set(e,n),n}async function g(e,t){let n=await h(e),r=typeof n.version==`string`&&n.version.trim()?n.version.trim():`unknown`,i=_(r,t.minVersion);if(i===null||i<0)throw new f({requirement:t,actualVersion:r});return n}function _(e,t){let n=v(e),r=v(t);if(!n||!r)return null;for(let e of[`major`,`minor`,`patch`]){if(n[e]>r[e])return 1;if(n[e]<r[e])return-1}return n.prerelease&&!r.prerelease?-1:!n.prerelease&&r.prerelease?1:n.prerelease&&r.prerelease?n.prerelease.localeCompare(r.prerelease):0}function v(e){let[t]=e.trim().replace(/^v/,``).split(`+`),[n,r]=t.split(`-`,2),i=n.split(`.`);if(i.length!==3)return null;let[a,o,s]=i.map(e=>Number(e));return[a,o,s].every(e=>Number.isInteger(e)&&e>=0)?{major:a,minor:o,patch:s,prerelease:r}:null}var y=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async loadHooks(e={}){return await g(this.client,d.hooks),(await this.client.post(`/api/hooks`,e)).data}close(){this.client.close()}},b=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getProviders(){return(await this.client.get(`/api/llm/providers`)).data.providers}async getModels(e){return(await this.client.get(`/api/llm/models`,{params:e?{provider:e}:void 0})).data.models}async getVerifiedModels(){return(await this.client.get(`/api/llm/models/verified`)).data.models}async getOpenAISubscriptionModels(){return(await this.client.get(`/api/llm/subscription/openai/models`)).data.models}async getOpenAISubscriptionStatus(){return(await this.client.get(`/api/llm/subscription/openai/status`)).data}async startOpenAISubscriptionDeviceLogin(){return(await this.client.post(`/api/llm/subscription/openai/device/start`)).data}async pollOpenAISubscriptionDeviceLogin(e){let t={device_code:e};return(await this.client.post(`/api/llm/subscription/openai/device/poll`,t)).data}async logoutOpenAISubscription(){return(await this.client.post(`/api/llm/subscription/openai/logout`)).data}close(){this.client.close()}},x=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async testServer(e){return await g(this.client,d.mcpTest),(await this.client.post(`/api/mcp/test`,e,{timeout:(e.timeout??15)*1e3+5e3})).data}async startOAuth(e){return await g(this.client,d.mcpOAuth),(await this.client.post(`/api/mcp/oauth/start`,e,{timeout:(e.timeout??15)*1e3+5e3})).data}async getOAuthStatus(e){return await g(this.client,d.mcpOAuth),(await this.client.get(`/api/mcp/oauth/status/${encodeURIComponent(e)}`)).data}async submitOAuthCallback(e,t){return await g(this.client,d.mcpOAuth),(await this.client.post(`/api/mcp/oauth/callback/${encodeURIComponent(e)}`,t)).data}close(){this.client.close()}},S=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async listProfiles(){return(await this.client.get(`/api/profiles`)).data}async getProfile(e,t={}){let n={};return t.exposeSecrets&&(n[`X-Expose-Secrets`]=t.exposeSecrets),(await this.client.get(`/api/profiles/${encodeURIComponent(e)}`,{headers:n})).data}async saveProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}`,t)).data}async deleteProfile(e){return(await this.client.delete(`/api/profiles/${encodeURIComponent(e)}`)).data}async renameProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}/rename`,{new_name:t})).data}async activateProfile(e){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}/activate`,{})).data}async validateProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}/validate`,t)).data}close(){this.client.close()}},C=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async listMetaProfiles(){return(await this.client.get(`/api/meta-profiles`)).data}async getMetaProfile(e){return(await this.client.get(`/api/meta-profiles/${encodeURIComponent(e)}`)).data}async saveMetaProfile(e,t){return(await this.client.post(`/api/meta-profiles/${encodeURIComponent(e)}`,t)).data}async deleteMetaProfile(e){return(await this.client.delete(`/api/meta-profiles/${encodeURIComponent(e)}`)).data}async activateMetaProfile(e){return(await this.client.post(`/api/meta-profiles/${encodeURIComponent(e)}/activate`,{})).data}close(){this.client.close()}},w=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getAgentSchema(){return(await this.client.get(`/api/settings/agent-schema`)).data}async getSettings(e={}){return(await this.client.get(`/api/settings`,{headers:e.exposeSecrets?{"X-Expose-Secrets":e.exposeSecrets}:void 0})).data}async updateSettings(e){return(await this.client.patch(`/api/settings`,e)).data}async createMcpServer(e,t){return(await this.client.post(`/api/settings/mcp/${encodeURIComponent(e)}`,t)).data}async patchMcpServer(e,t){return(await this.client.patch(`/api/settings/mcp/${encodeURIComponent(e)}`,t)).data}async deleteMcpServer(e){return(await this.client.delete(`/api/settings/mcp/${encodeURIComponent(e)}`)).data}async listSecrets(){return(await this.client.get(`/api/settings/secrets`)).data}async upsertSecret(e){return(await this.client.put(`/api/settings/secrets`,e)).data}async getSecret(e){return(await this.client.get(`/api/settings/secrets/${encodeURIComponent(e)}`,{responseType:`text`})).data}async deleteSecret(e){return(await this.client.delete(`/api/settings/secrets/${encodeURIComponent(e)}`)).data}async getConversationSchema(){return(await this.client.get(`/api/settings/conversation-schema`)).data}async listProfiles(){return(await this.client.get(`/api/profiles`)).data}async getProfile(e,t={}){return(await this.client.get(`/api/profiles/${encodeURIComponent(e)}`,{headers:t.exposeSecrets?{"X-Expose-Secrets":t.exposeSecrets}:void 0})).data}async saveProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}`,t)).data}async deleteProfile(e){return(await this.client.delete(`/api/profiles/${encodeURIComponent(e)}`)).data}async renameProfile(e,t){return(await this.client.post(`/api/profiles/${encodeURIComponent(e)}/rename`,{new_name:t})).data}close(){this.client.close()}},T=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getSkills(e={}){return(await this.client.post(`/api/skills`,e)).data}async syncSkills(){return(await this.client.post(`/api/skills/sync`,{})).data}async installSkill(e){return(await this.client.post(`/api/skills/install`,e)).data}async listInstalledSkills(){return(await this.client.get(`/api/skills/installed`)).data}async getInstalledSkill(e){return(await this.client.get(`/api/skills/installed/${encodeURIComponent(e)}`)).data}async toggleSkill(e,t){return(await this.client.patch(`/api/skills/installed/${encodeURIComponent(e)}`,{enabled:t})).data}async uninstallSkill(e){return(await this.client.delete(`/api/skills/installed/${encodeURIComponent(e)}`)).data}async refreshSkill(e){return(await this.client.post(`/api/skills/installed/${encodeURIComponent(e)}/refresh`)).data}async getMarketplace(){return(await this.client.get(`/api/skills/marketplace`)).data}close(){this.client.close()}},E=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getSubAgents(e={}){return(await this.client.post(`/api/sub-agents`,e)).data}close(){this.client.close()}},D=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getPlugins(e={}){return(await this.client.post(`/api/plugins`,e)).data}async getPluginsMarketplace(){return(await this.client.get(`/api/plugins/marketplace`)).data}async installPlugin(e){return(await this.client.post(`/api/plugins/install`,e)).data}async listInstalledPlugins(){return(await this.client.get(`/api/plugins/installed`)).data}async getInstalledPlugin(e){return(await this.client.get(`/api/plugins/installed/${encodeURIComponent(e)}`)).data}async setPluginEnabled(e,t){return(await this.client.patch(`/api/plugins/installed/${encodeURIComponent(e)}`,{enabled:t})).data}async uninstallPlugin(e){return(await this.client.delete(`/api/plugins/installed/${encodeURIComponent(e)}`)).data}async refreshPlugin(e){return(await this.client.post(`/api/plugins/installed/${encodeURIComponent(e)}/refresh`)).data}close(){this.client.close()}},O=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async listTools(){return(await this.client.get(`/api/tools/`)).data}close(){this.client.close()}},k=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getUrl(e={}){return(await this.client.get(`/api/vscode/url`,{params:{...e.baseUrl?{base_url:e.baseUrl}:{},...e.workspaceDir?{workspace_dir:e.workspaceDir}:{}}})).data.url}async getStatus(){return(await this.client.get(`/api/vscode/status`)).data}close(){this.client.close()}},A=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getUrl(e){return(await this.client.get(`/api/desktop/url`,{params:e?{base_url:e}:void 0})).data.url}close(){this.client.close()}},j=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async getSharedConversations(e){return(await this.client.get(`/api/shared-conversations`,{params:{ids:e}})).data}async getSharedConversation(e){return(await this.getSharedConversations([e]))[0]??null}async searchSharedEvents(e){return(await this.client.get(`/api/shared-events/search`,{params:{conversation_id:e.conversationId,limit:e.limit,page_id:e.pageId}})).data}close(){this.client.close()}},M=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async listWorkspaces(){return await this.ensureWorkspacesSupported(),(await this.client.get(`/api/workspaces`)).data}async addWorkspaces(e){return await this.ensureWorkspacesSupported(),(await this.client.post(`/api/workspaces`,{workspaces:e})).data}async deleteWorkspace(e){return await this.ensureWorkspacesSupported(),(await this.client.delete(`/api/workspaces`,{params:{path:e}})).data}async addWorkspaceParents(e){return await this.ensureWorkspacesSupported(),(await this.client.post(`/api/workspaces/parents`,{parents:e})).data}async deleteWorkspaceParent(e){return await this.ensureWorkspacesSupported(),(await this.client.delete(`/api/workspaces/parents`,{params:{path:e}})).data}close(){this.client.close()}async ensureWorkspacesSupported(){await g(this.client,d.workspaces)}},N=class{constructor(e){this.host=e.host.replace(/\/+$/,``),this.apiKey=e.apiKey,this.timeout=e.timeout||6e4}get(e,t={}){return this.request({...t,method:`GET`,path:e})}post(e,t,n={}){return this.request({...n,method:`POST`,path:e,body:t})}patch(e,t,n={}){return this.request({...n,method:`PATCH`,path:e,body:t})}put(e,t,n={}){return this.request({...n,method:`PUT`,path:e,body:t})}delete(e,t={}){return this.request({...t,method:`DELETE`,path:e})}close(){}},P=class extends N{constructor(e){super(e),this.kind=`agent-server`;let t={host:this.host,apiKey:this.apiKey,timeout:this.timeout};this.client=new r({baseUrl:this.host,apiKey:this.apiKey,timeout:this.timeout}),this.server=new a(t),this.conversations=new s(t),this.files=new l(t),this.bash=new o(t),this.settings=new w(t),this.profiles=new S(t),this.agentProfiles=new i(t),this.metaProfiles=new C(t),this.skills=new T(t),this.subAgents=new E(t),this.hooks=new y(t),this.mcp=new x(t),this.plugins=new D(t),this.tools=new O(t),this.vscode=new k(t),this.desktop=new A(t),this.shared=new j(t),this.llm=new b(t),this.workspaces=new M(t)}async request(e){let t=e.hostOverride?.replace(/\/+$/,``)??this.host,n=e.authMode===`none`?void 0:e.authMode===`session-api-key`?e.sessionApiKey??void 0:this.apiKey;return(await(t===this.host&&n===this.apiKey?this.client:new r({baseUrl:t,apiKey:n,timeout:this.timeout})).request({method:e.method,url:e.path,params:e.params,data:e.body,headers:e.headers,timeout:e.timeoutSeconds?e.timeoutSeconds*1e3:this.timeout,acceptableStatusCodes:e.acceptableStatusCodes,responseType:e.responseType})).data}close(){this.client.close()}},F=class e extends Error{constructor(t,n){super(t),this.code=n,this.name=`DeviceFlowError`,Object.setPrototypeOf(this,e.prototype)}},I=6e5,L=3e4;function R(e){try{let t=e.trim().toLowerCase(),n=/^https?:\/\//i.test(t)?t:`https://${t}`,r=new URL(n).hostname;return r.endsWith(`.all-hands.dev`)||r===`all-hands.dev`||r.endsWith(`.openhands.dev`)||r===`openhands.dev`}catch{return!1}}function z(e){return e.replace(/\/+$/,``)}async function B(e,t,n,r,i,a){let o=typeof n==`string`||n instanceof Blob||n instanceof FormData||n instanceof URLSearchParams?n:JSON.stringify(n),s=new Headers(a);return s.set(`Content-Type`,r),fetch(`${z(e)}${t}`,{method:`POST`,headers:s,body:o,signal:i})}async function V(e,t={}){try{let n=await B(e,`/oauth/device/authorize`,{},`application/json`,void 0,t.headers);if(!n.ok)throw new F(`Failed to start device flow: Server returned ${n.status}`);let r=await n.json();if(!r.device_code||!r.user_code||!r.verification_uri)throw new F(`Invalid response from device authorization endpoint: missing required fields`);return{device_code:r.device_code,user_code:r.user_code,verification_uri:r.verification_uri,verification_uri_complete:r.verification_uri_complete??`${r.verification_uri}?user_code=${encodeURIComponent(r.user_code)}`,expires_in:r.expires_in??600,interval:r.interval??5}}catch(e){throw e instanceof F?e:new F(`Failed to start device flow: ${e instanceof Error?e.message:String(e)}`)}}async function H(e,t,n){let r=n.timeout??I,i=Math.max(1,n.interval)*1e3,a=Date.now();for(;Date.now()-a<r;){if(n.signal?.aborted)throw new F(`Authorization cancelled`,`cancelled`);try{let r=await B(e,`/oauth/device/token`,new URLSearchParams({grant_type:`urn:ietf:params:oauth:grant-type:device_code`,device_code:t}),`application/x-www-form-urlencoded`,n.signal,n.headers);if(r.ok){let e=await r.json();if(!e.access_token)throw new F(`Invalid token response: missing access_token`);return{access_token:e.access_token,token_type:e.token_type??`Bearer`,expires_in:e.expires_in}}let a;try{a=await r.json()}catch{throw new F(`Unexpected response from server: ${r.status}`)}switch(a.error){case`authorization_pending`:break;case`slow_down`:i=typeof a.interval==`number`&&Number.isFinite(a.interval)&&a.interval>0?Math.max(1,Math.min(a.interval,30))*1e3:Math.min(i+5e3,L);break;case`expired_token`:throw new F(`Device code has expired. Please try again.`,`expired_token`);case`access_denied`:throw new F(`Authorization request was denied.`,`access_denied`);default:throw new F(`Authorization error: ${a.error}${a.error_description?` - ${a.error_description}`:``}`,a.error)}}catch(e){if(e instanceof F)throw e;if(e instanceof DOMException&&e.name===`AbortError`)throw new F(`Authorization cancelled`,`cancelled`);console.warn(`Network error during polling, retrying:`,e)}try{await U(i,n.signal)}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?new F(`Authorization cancelled`,`cancelled`):e}}throw new F(`Timeout waiting for authorization. Please try again.`,`timeout`)}function U(e,t){return new Promise((n,r)=>{if(t?.aborted){r(new DOMException(`Aborted`,`AbortError`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))},{once:!0})})}var W=`/api/v1/settings/profiles`,G=100,K=class extends N{constructor(e){super(e),this.kind=`cloud`,this.orgId=e.orgId??null,this.proxy=e.proxy?{...e.proxy,host:e.proxy.host.replace(/\/+$/,``),path:e.proxy.path??`/api/cloud-proxy`}:void 0}async request(e){return e.hostOverride?this.requestThroughProxy(e):this.requestDirect(e)}startDeviceFlow(e={}){return V(this.host,e)}pollForToken(e,t){return H(this.host,e,t)}async getOrganizations(){let e=await this.get(`/api/organizations`);return{items:e?.items??[],currentOrgId:e?.current_org_id??null}}getCurrentApiKey(){return this.get(`/api/keys/current`)}async getOrganizationMe(e){let t=await this.get(`/api/organizations/${encodeURIComponent(e)}/me`);return{orgId:t?.org_id??e,userId:t?.user_id??``,role:t?.role??null,permissions:Array.isArray(t?.permissions)?t.permissions:null}}getSettings(){return this.get(`/api/v1/settings`)}async getSettingsWithDerivedFields(){let e=await this.getSettings();return{...e,agent_settings:$(e),conversation_settings:ee(e),llm_api_key_set:!!e.llm_api_key_set,search_api_key_set:!!e.search_api_key_set,provider_tokens_set:e.provider_tokens_set}}async saveSettings(e){let t={};if(e.agent_settings_diff){let n={...e.agent_settings_diff};n.agent_context===null&&delete n.agent_context,Object.keys(n).length>0&&(t.agent_settings_diff=n)}if(e.conversation_settings_diff&&Object.keys(e.conversation_settings_diff).length>0&&(t.conversation_settings_diff=e.conversation_settings_diff),e.app_preferences)for(let[n,r]of Object.entries(e.app_preferences))r!==void 0&&(t[n]=r);await this.post(`/api/v1/settings`,t)}getSettingsSchema(){return this.get(`/api/v1/settings/agent-schema`)}getConversationSettingsSchema(){return this.get(`/api/v1/settings/conversation-schema`)}listProfiles(){return this.get(this.profileBasePath())}async getProfile(e){let t=await this.get(`${this.profileBasePath()}/${encodeURIComponent(e)}`);return{name:t.name,config:t.config??t.llm??{},api_key_set:t.api_key_set??!1}}saveProfile(e,t){return this.post(`${this.profileBasePath()}/${encodeURIComponent(e)}`,t)}deleteProfile(e){return this.delete(`${this.profileBasePath()}/${encodeURIComponent(e)}`)}renameProfile(e,t){return this.post(`${this.profileBasePath()}/${encodeURIComponent(e)}/rename`,{new_name:t})}async activateProfile(e){let t=await this.post(`${this.profileBasePath()}/${encodeURIComponent(e)}/activate`,{});return{name:t.name,message:t.message,llm_applied:t.model!=null||t.llm!=null}}async listSecrets(){let e=[],t=null;do{let n=new URLSearchParams({limit:String(G)});t&&n.set(`page_id`,t);let r=await this.get(`/api/v1/secrets/search?${n.toString()}`);e.push(...r.items??[]),t=r.next_page_id}while(t);return e}async createSecret(e,t,n){await this.post(`/api/v1/secrets`,{name:e,value:t,description:n})}async updateSecret(e,t,n){await this.put(`/api/v1/secrets/${encodeURIComponent(e)}`,{name:t,description:n})}async deleteSecret(e){await this.delete(`/api/v1/secrets/${encodeURIComponent(e)}`)}async listSkills(){let e=[],t=null;do{let n=new URLSearchParams({limit:String(G)});t&&n.set(`page_id`,t);let r=await this.get(`/api/v1/skills/search?${n.toString()}`);e.push(...r.items??[]),t=r.next_page_id}while(t);return e}searchRepositories(e){let t=new URLSearchParams;return t.set(`provider`,e.provider),t.set(`limit`,String(e.limit??100)),e.query&&t.set(`query`,e.query),e.pageId&&t.set(`page_id`,e.pageId),e.installationId&&t.set(`installation_id`,e.installationId),this.get(`/api/v1/git/repositories/search?${t.toString()}`)}getInstallations(e){let t=new URLSearchParams;return t.set(`provider`,e.provider),t.set(`limit`,String(e.limit??100)),e.pageId&&t.set(`page_id`,e.pageId),this.get(`/api/v1/git/installations/search?${t.toString()}`)}getRepositoryBranches(e){let t=new URLSearchParams;return t.set(`provider`,e.provider),t.set(`repository`,e.repository),t.set(`limit`,String(e.limit??30)),t.set(`query`,e.query??``),e.pageId&&t.set(`page_id`,e.pageId),this.get(`/api/v1/git/branches/search?${t.toString()}`)}getSuggestedTasks(e={}){let t=new URLSearchParams;return t.set(`limit`,String(e.limit??30)),e.pageId&&t.set(`page_id`,e.pageId),this.get(`/api/v1/git/suggested-tasks/search?${t.toString()}`)}searchModels(e){return this.get(`/api/v1/config/models/search${Z(e)}`)}searchProviders(e){return this.get(`/api/v1/config/providers/search${Z(e)}`)}searchConversations(e=20,t){let n=new URLSearchParams;return n.set(`limit`,String(e)),t&&n.set(`page_id`,t),n.set(`sort_order`,`UPDATED_AT_DESC`),this.get(`/api/v1/app-conversations/search?${n.toString()}`)}getConversations(e){if(e.length===0)return Promise.resolve([]);let t=new URLSearchParams;for(let n of e)t.append(`ids`,n);return this.get(`/api/v1/app-conversations?${t}`)}createConversation(e){return this.post(`/api/v1/app-conversations`,e)}downloadConversation(e){return this.get(`/api/v1/app-conversations/${e}/download`,{responseType:`blob`})}async deleteConversation(e){await this.delete(`/api/v1/app-conversations/${e}`)}updateConversationPublicFlag(e,t){return this.patch(`/api/v1/app-conversations/${e}`,{public:t})}async pauseSandbox(e){await this.post(`/api/v1/sandboxes/${e}/pause`,{})}async resumeSandbox(e){await this.post(`/api/v1/sandboxes/${e}/resume`,{})}getSandboxes(e){if(e.length===0)return Promise.resolve([]);let t=new URLSearchParams;for(let n of e)t.append(`id`,n);return this.get(`/api/v1/sandboxes?${t}`)}readConversationFile(e,t){let n=new URLSearchParams({file_path:t});return this.get(`/api/v1/app-conversations/${e}/file?${n}`,{responseType:`text`})}async getConversationStartTask(e){let t=new URLSearchParams;return t.append(`ids`,e),(await this.get(`/api/v1/app-conversations/start-tasks?${t}`))?.[0]??null}async switchConversationProfile(e,t){await this.post(`/api/v1/app-conversations/${e}/switch_profile`,{profile_name:t})}async switchConversationAcpModel(e,t){await this.post(`/api/v1/app-conversations/${e}/switch_acp_model`,{model:t})}async listAutomations(e=50,t=0){return this.get(`/api/automation/v1?${Q(e,t)}`)}getAutomation(e){return this.get(`/api/automation/v1/${encodeURIComponent(e)}`)}updateAutomation(e,t){return this.patch(`/api/automation/v1/${encodeURIComponent(e)}`,t)}async deleteAutomation(e){await this.delete(`/api/automation/v1/${encodeURIComponent(e)}`)}dispatchAutomation(e){return this.post(`/api/automation/v1/${encodeURIComponent(e)}/dispatch`)}listAutomationRuns(e,t=50,n=0){return this.get(`/api/automation/v1/${encodeURIComponent(e)}/runs?${Q(t,n)}`)}downloadAutomationTarball(e){return this.get(`/api/automation/v1/${encodeURIComponent(e)}/tarball`,{responseType:`blob`})}getAutomationHealth(){return this.get(`/api/automation/health`,{timeoutSeconds:5})}profileBasePath(){return this.orgId?`/api/organizations/${encodeURIComponent(this.orgId)}/profiles`:W}buildUpstreamAuthHeaders(e){let t=e.authMode??`bearer`;return t===`none`?{}:t===`session-api-key`?e.sessionApiKey?{"X-Session-API-Key":e.sessionApiKey}:{}:this.apiKey?{Authorization:`Bearer ${this.apiKey}`}:{}}async requestDirect(e){let t={...this.buildUpstreamAuthHeaders(e),...this.orgId?{"X-Org-Id":this.orgId}:{},...e.headers??{}};return q({host:this.host,method:e.method,path:e.path,params:e.params,body:e.body,headers:t,timeoutMs:e.timeoutSeconds?e.timeoutSeconds*1e3:this.timeout,acceptableStatusCodes:e.acceptableStatusCodes,responseType:e.responseType})}async requestThroughProxy(e){if(!this.proxy)throw Error(`CloudClient proxy options are required for hostOverride requests`);let t={...this.buildUpstreamAuthHeaders(e),...this.orgId?{"X-Org-Id":this.orgId}:{},...e.headers??{}},n={"Content-Type":`application/json`,...this.proxy.apiKey?{"X-Session-API-Key":this.proxy.apiKey}:{},...this.proxy.headers??{}},r=this.proxy.path??`/api/cloud-proxy`;return q({host:this.proxy.host,method:`POST`,path:r,body:{host:e.hostOverride,method:e.method,path:X(e.path,e.params),headers:t,body:e.body??null,...e.timeoutSeconds?{timeout_seconds:e.timeoutSeconds}:{}},headers:n,timeoutMs:this.timeout,acceptableStatusCodes:e.acceptableStatusCodes,responseType:e.responseType})}};async function q(e){let t=`${e.host.replace(/\/+$/,``)}${X(e.path,e.params)}`,n={...e.body instanceof FormData?{}:{"Content-Type":`application/json`},...e.headers??{}},r={method:e.method,headers:n,signal:AbortSignal.timeout(e.timeoutMs)};e.body!==void 0&&e.method!==`GET`&&(r.body=e.body instanceof FormData?e.body:JSON.stringify(e.body));let i;try{i=await fetch(t,r)}catch(t){throw t instanceof Error&&(t.name===`TimeoutError`||t.name===`AbortError`)?Error(`Request timeout after ${e.timeoutMs}ms`,{cause:t}):t}if(!(e.acceptableStatusCodes?.has(i.status)||!e.acceptableStatusCodes&&i.ok))throw await J(i);return Y(i,e.responseType??`auto`)}async function J(e){let t;try{t=e.headers.get(`content-type`)?.includes(`application/json`)?await e.json():await e.text()}catch{t=null}return new n(e.status,e.statusText,t,`HTTP request failed (${e.status} ${e.statusText}): ${JSON.stringify(t)}`)}async function Y(e,t){if(e.status===204)return;if(t===`blob`)return await e.blob();if(t===`arrayBuffer`)return await e.arrayBuffer();if(t===`text`)return await e.text();let n=e.headers.get(`content-type`);return t===`json`||n?.includes(`application/json`)?await e.json():await e.text()}function X(e,t){if(!t)return e;let[n,r=``]=e.split(`?`),i=new URLSearchParams(r);for(let[e,n]of Object.entries(t))n!=null&&(Array.isArray(n)?n.forEach(t=>i.append(e,String(t))):i.append(e,String(n)));let a=i.toString();return a?`${n}?${a}`:n}function Z(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}function Q(e,t){let n=new URLSearchParams;return n.set(`limit`,String(e)),n.set(`offset`,String(t)),n.toString()}function $(e){if(e.agent_settings&&Object.keys(e.agent_settings).length>0)return e.agent_settings;let t={},n={};typeof e.llm_model==`string`&&(n.model=e.llm_model),typeof e.llm_base_url==`string`&&(n.base_url=e.llm_base_url),typeof e.llm_api_key==`string`&&(n.api_key=e.llm_api_key),Object.keys(n).length>0&&(t.llm=n);let r={};return typeof e.enable_default_condenser==`boolean`&&(r.enabled=e.enable_default_condenser),typeof e.condenser_max_size==`number`&&(r.max_size=e.condenser_max_size),Object.keys(r).length>0&&(t.condenser=r),typeof e.agent==`string`&&(t.agent=e.agent),e.mcp_config&&Object.keys(e.mcp_config).length>0&&(t.mcp_config=e.mcp_config),t}function ee(e){if(e.conversation_settings&&Object.keys(e.conversation_settings).length>0)return e.conversation_settings;let t={};return typeof e.confirmation_mode==`boolean`&&(t.confirmation_mode=e.confirmation_mode),(typeof e.security_analyzer==`string`||e.security_analyzer===null)&&(t.security_analyzer=e.security_analyzer),typeof e.max_iterations==`number`&&(t.max_iterations=e.max_iterations),t}export{r as C,i as S,m as _,V as a,o as b,j as c,T as d,w as f,y as g,b as h,H as i,k as l,x as m,F as n,P as o,S as p,R as r,M as s,K as t,D as u,l as v,n as w,a as x,s as y};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-Cyuzqnbw.js";import{C as t,b as n,w as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js";var i=e(((e,t)=>{t.exports=function(){throw Error(`ws does not work in the browser. Browser clients must use the native WebSocket object`)}}));if(typeof window<`u`&&window.WebSocket)window.WebSocket;else try{i()}catch{}var a=class{constructor(e,n){this.cachedEvents=[],this.cachedEventIds=new Set,this.client=e instanceof t?e:new t(e),this.conversationId=n}async search(e={}){let t={limit:e.limit??100};return e.page_id&&(t.page_id=e.page_id),e.kind&&(t.kind=e.kind),e.source&&(t.source=e.source),e.body&&(t.body=e.body),e.sort_order&&(t.sort_order=e.sort_order),e.timestamp__gte&&(t.timestamp__gte=e.timestamp__gte),e.timestamp__lt&&(t.timestamp__lt=e.timestamp__lt),(await this.client.get(`/api/conversations/${this.conversationId}/events/search`,{params:t})).data}async count(e={}){let t={};return e.kind&&(t.kind=e.kind),e.source&&(t.source=e.source),e.body&&(t.body=e.body),e.timestamp__gte&&(t.timestamp__gte=e.timestamp__gte),e.timestamp__lt&&(t.timestamp__lt=e.timestamp__lt),(await this.client.get(`/api/conversations/${this.conversationId}/events/count`,{params:t})).data}async getEventById(e){return(await this.client.get(`/api/conversations/${this.conversationId}/events/${e}`)).data}async getEventsById(e){return Promise.all(e.map(async e=>{try{return await this.getEventById(e)}catch(e){if(e instanceof r&&e.status===404)return null;throw e}}))}async addEvent(e){this.cachedEventIds.has(e.id)||(this.cachedEvents.push(e),this.cachedEventIds.add(e.id))}async append(e){await this.addEvent(e)}createDefaultCallback(e){return t=>{this.addEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error adding event to cache: ${t}`))})}}async length(){return this.cachedEvents.length}async getEvent(e){return this.cachedEvents[e]}async getEvents(e,t){let n=[],r;for(;;){let e={limit:100};r&&(e.page_id=r);let t=(await this.client.get(`/api/conversations/${this.conversationId}/events/search`,{params:e})).data;if(n.push(...t.items),!t.next_page_id)break;r=t.next_page_id}let i=new Set(n.map(e=>e.id)),a=[...n,...this.cachedEvents.filter(e=>!i.has(e.id))];return e===void 0&&t===void 0?a:a.slice(e,t)}async*[Symbol.asyncIterator](){let e=await this.getEvents();for(let t of e)yield t}},o=`__full_state__`,s=e=>typeof e==`object`&&!!e&&!Array.isArray(e),c=class e{constructor(e,t){this.cachedState=null,this.cachedAt=0,this.lock=new l,this.client=e,this.conversationId=t,this._events=new a(e,t)}async getConversationInfo(){return await this.lock.acquire(async()=>{if(this.cachedState!==null&&Date.now()-this.cachedAt<e.CACHE_TTL_MS)return this.normalizeFullState(this.cachedState);let t=await this.client.get(`/api/conversations/${this.conversationId}`),n=this.normalizeFullState(t.data);return this.cachedState=n,this.cachedAt=Date.now(),n})}normalizeFullState(e){return e.full_state??e}async refresh(){return this.cachedState=null,this.getConversationInfo()}async updateStateFromEvent(e){await this.lock.acquire(async()=>{if(e.key===o){this.cachedState===null&&(this.cachedState={});let t=s(e.value)&&s(e.value.full_state)?e.value.full_state:e.value;if(!s(t))throw Error(`Full conversation state update must contain an object value.`);Object.assign(this.cachedState,t)}else this.cachedState===null&&(this.cachedState={}),this.cachedState[e.key]=e.value;this.cachedAt=Date.now()})}createStateUpdateCallback(e){return t=>{t.kind===`ConversationStateUpdateEvent`&&this.updateStateFromEvent(t).catch(t=>{e&&e(t instanceof Error?t:Error(`Error updating state from event: ${t}`))})}}get events(){return this._events}get id(){return this.conversationId}async getExecutionStatus(){let e=await this.getConversationInfo(),t=e.execution_status??e.agent_status;if(t==null)throw Error(`execution_status missing in conversation info: ${JSON.stringify(e)}`);return t}async getAgentStatus(){return this.getExecutionStatus()}async setAgentStatus(e){throw Error(`Setting execution_status on RemoteState has no effect. Remote execution status is managed server-side. Attempted to set: ${e}`)}async getConfirmationPolicy(){let e=await this.getConversationInfo(),t=e.confirmation_policy;if(t==null)throw Error(`confirmation_policy missing in conversation info: ${JSON.stringify(e)}`);return t}async getActivatedKnowledgeSkills(){return(await this.getConversationInfo()).activated_knowledge_skills||[]}async getAgent(){let e=await this.getConversationInfo(),t=e.agent;if(t==null)throw Error(`agent missing in conversation info: ${JSON.stringify(e)}`);return t}async getWorkspace(){let e=await this.getConversationInfo(),t=e.workspace;if(t==null)throw Error(`workspace missing in conversation info: ${JSON.stringify(e)}`);return t}async getPersistenceDir(){let e=await this.getConversationInfo(),t=e.persistence_dir;if(t==null)throw Error(`persistence_dir missing in conversation info: ${JSON.stringify(e)}`);return t}async modelDump(){return await this.getConversationInfo()}async modelDumpJson(){let e=await this.modelDump();return JSON.stringify(e)}};c.CACHE_TTL_MS=2e3;var l=class{constructor(){this.locked=!1,this.queue=[]}async acquire(e){return new Promise((t,n)=>{let r=async()=>{try{t(await e())}catch(e){n(e)}finally{this.locked=!1;let e=this.queue.shift();e&&e()}};this.locked?this.queue.push(r):(this.locked=!0,r())})}},u=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.workingDir=e.workingDir,this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:6e4}),this.bash=new n({host:this.host,...this.apiKey?{apiKey:this.apiKey}:{}})}async startWorkspaceSession(e){return await this.client.post(`/api/auth/workspace-session`,void 0,{credentials:`include`}),`${this.host}/api/conversations/${e}/workspace/`}async deleteWorkspaceSession(){await this.client.delete(`/api/auth/workspace-session`,{credentials:`include`,acceptableStatusCodes:new Set([204])})}async executeCommand(e,t,n=30){let r={command:e,timeout:Math.floor(n)};t&&(r.cwd=t);let i=(await this.client.post(`/api/bash/execute_bash_command`,r,{timeout:(n+10)*1e3})).data;return{command:e,exit_code:i.exit_code??0,stdout:i.stdout||``,stderr:i.stderr||``,timeout_occurred:!1}}async fileUpload(e,t,n){let r=new FormData,i,a;e instanceof File?(i=e,a=n||e.name):e instanceof Blob?(i=e,a=n||`blob-file`):(i=new Blob([e],{type:`text/plain`}),a=n||`text-file.txt`),r.append(`file`,i,a);let o=(await this.client.request({method:`POST`,url:`/api/file/upload`,params:{path:t},data:r,timeout:6e4})).data;return{success:o.success??!0,source_path:a,destination_path:t,file_size:o.file_size,error:o.error}}async fileDownload(e){let t=await this.client.get(`/api/file/download`,{params:{path:e},timeout:6e4}),n,r;if(typeof t.data==`string`)n=t.data,r=new Blob([t.data]).size;else if(t.data instanceof ArrayBuffer)n=new Blob([t.data]),r=t.data.byteLength;else if(t.data instanceof Blob)n=t.data,r=t.data.size;else{let e=JSON.stringify(t.data);n=e,r=new Blob([e]).size}return{success:!0,source_path:e,content:n,file_size:r}}async gitChanges(e,t={}){let n={path:e};t.ref!==void 0&&(n.ref=t.ref);try{return(await this.client.get(`/api/git/changes`,{params:n})).data}catch(e){throw Error(`Failed to get git changes: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async gitDiff(e,t={}){let n={path:e};t.ref!==void 0&&(n.ref=t.ref);try{return(await this.client.get(`/api/git/diff`,{params:n})).data}catch(e){throw Error(`Failed to get git diff: ${e instanceof Error?e.message:String(e)}`,{cause:e})}}async uploadText(e,t,n){return this.fileUpload(e,t,n)}async uploadFileObject(e,t){return this.fileUpload(e,t)}async downloadAsText(e){let t=await this.fileDownload(e);if(!t.success)throw Error(t.error||`Download failed`);return typeof t.content==`string`?t.content:t.content instanceof Blob?await t.content.text():``}async downloadAsBlob(e){let t=await this.fileDownload(e);if(!t.success)throw Error(t.error||`Download failed`);return t.content instanceof Blob?t.content:typeof t.content==`string`?new Blob([t.content],{type:`text/plain`}):new Blob}async downloadAndSave(e,t){let n=await this.downloadAsBlob(e),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t||e.split(`/`).pop()||`download`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}close(){this.bash.close(),this.client.close()}},d={execute_command:`Execute a bash command in the terminal within a persistent shell session.
|
|
2
|
-
|
|
3
|
-
### Command Execution
|
|
4
|
-
* One command at a time: You can only execute one bash command at a time. If you need to run multiple commands sequentially, use \`&&\` or \`;\` to chain them together.
|
|
5
|
-
* Persistent session: Commands execute in a persistent shell session where environment variables, virtual environments, and working directory persist between commands.
|
|
6
|
-
|
|
7
|
-
### Best Practices
|
|
8
|
-
* Directory verification: Before creating new directories or files, first verify the parent directory exists and is the correct location.
|
|
9
|
-
* Directory management: Try to maintain working directory by using absolute paths and avoiding excessive use of \`cd\`.
|
|
10
|
-
|
|
11
|
-
### Output Handling
|
|
12
|
-
* Output truncation: If the output exceeds a maximum length, it will be truncated before being returned.`,read_file:`Read the contents of a file from the workspace.
|
|
13
|
-
|
|
14
|
-
Custom editing tool for viewing, creating and editing files in plain-text format.
|
|
15
|
-
* If \`path\` is a text file, returns the file contents with line numbers
|
|
16
|
-
* If \`path\` is a directory, lists non-hidden files and directories up to 2 levels deep
|
|
17
|
-
|
|
18
|
-
Best practices:
|
|
19
|
-
* Use this tool to understand the file's contents and context before making edits
|
|
20
|
-
* Verify the directory path is correct when working with files`,write_file:`Write content to a file in the workspace. Creates the file if it does not exist.
|
|
21
|
-
|
|
22
|
-
When making edits:
|
|
23
|
-
* Ensure the edit results in idiomatic, correct code
|
|
24
|
-
* Do not leave the code in a broken state
|
|
25
|
-
* Always use absolute file paths (starting with /)
|
|
26
|
-
|
|
27
|
-
CRITICAL REQUIREMENTS:
|
|
28
|
-
* The content should be the complete file content, not a diff or patch
|
|
29
|
-
* Ensure proper formatting and indentation`,think:`Use the tool to think about something. It will not obtain new information or make any changes to the repository, but just log the thought. Use it when complex reasoning or brainstorming is needed.
|
|
30
|
-
|
|
31
|
-
Common use cases:
|
|
32
|
-
1. When exploring a repository and discovering the source of a bug, call this tool to brainstorm several unique ways of fixing the bug, and assess which change(s) are likely to be simplest and most effective.
|
|
33
|
-
2. After receiving test results, use this tool to brainstorm ways to fix failing tests.
|
|
34
|
-
3. When planning a complex refactoring, use this tool to outline different approaches and their tradeoffs.
|
|
35
|
-
4. When designing a new feature, use this tool to think through architecture decisions and implementation details.
|
|
36
|
-
5. When debugging a complex issue, use this tool to organize your thoughts and hypotheses.
|
|
37
|
-
|
|
38
|
-
The tool simply logs your thought process for better transparency and does not execute any code or make changes.`,finish:`Signals the completion of the current task or conversation.
|
|
39
|
-
|
|
40
|
-
Use this tool when:
|
|
41
|
-
- You have successfully completed the user's requested task
|
|
42
|
-
- You cannot proceed further due to technical limitations or missing information
|
|
43
|
-
|
|
44
|
-
The message should include:
|
|
45
|
-
- A clear summary of actions taken and their results
|
|
46
|
-
- Any next steps for the user
|
|
47
|
-
- Explanation if you're unable to complete the task
|
|
48
|
-
- Any follow-up questions if more information is needed`};d.execute_command,d.read_file,d.write_file,d.think,d.finish;var f;(function(e){e.PRE_TOOL_USE=`PreToolUse`,e.POST_TOOL_USE=`PostToolUse`,e.USER_PROMPT_SUBMIT=`UserPromptSubmit`,e.SESSION_START=`SessionStart`,e.SESSION_END=`SessionEnd`,e.STOP=`Stop`})(f||={});var p;(function(e){e.COMMAND=`command`,e.PROMPT=`prompt`})(p||={});var m;if((function(e){e.ALLOW=`allow`,e.DENY=`deny`})(m||={}),new Set(`|.*+?[]()^$\\`.split(``)),typeof window<`u`&&window.WebSocket)window.WebSocket;else try{i()}catch{}var h;(function(e){e.TIMESTAMP=`TIMESTAMP`,e.TIMESTAMP_DESC=`TIMESTAMP_DESC`})(h||={}),(function(e){e.REVERSE_TIMESTAMP=`TIMESTAMP_DESC`})(h||={});var g;(function(e){e.IDLE=`idle`,e.RUNNING=`running`,e.PAUSED=`paused`,e.WAITING_FOR_CONFIRMATION=`waiting_for_confirmation`,e.FINISHED=`finished`,e.ERROR=`error`,e.STUCK=`stuck`,e.DELETING=`deleting`})(g||={});var _;(function(e){e.CREATED_AT=`CREATED_AT`,e.UPDATED_AT=`UPDATED_AT`,e.CREATED_AT_DESC=`CREATED_AT_DESC`,e.UPDATED_AT_DESC=`UPDATED_AT_DESC`})(_||={});var v={"claude-code":{key:`claude-code`,display_name:`Claude Code`,default_command:[`npx`,`-y`,`@agentclientprotocol/claude-agent-acp@0.63.0`],api_key_env_var:`ANTHROPIC_API_KEY`,base_url_env_var:`ANTHROPIC_BASE_URL`,default_session_mode:`bypassPermissions`,agent_name_patterns:[`claude-agent`],supports_set_session_model:!0,session_meta_key:`claudeCode`,available_models:[{id:`default`,label:`Default (recommended)`},{id:`opus[1m]`,label:`Claude Opus (1M)`},{id:`claude-opus-5`,label:`Claude Opus 5`},{id:`sonnet`,label:`Claude Sonnet`},{id:`haiku`,label:`Claude Haiku`}],default_model:`opus[1m]`,supports_runtime_model_switch:!0,file_secrets:[],binary_name:`claude-agent-acp`,data_dir_env_var:`CLAUDE_CONFIG_DIR`},codex:{key:`codex`,display_name:`Codex`,default_command:[`npx`,`-y`,`@agentclientprotocol/codex-acp@1.1.7`],api_key_env_var:`OPENAI_API_KEY`,base_url_env_var:`OPENAI_BASE_URL`,default_session_mode:`agent-full-access`,agent_name_patterns:[`codex-acp`],supports_set_session_model:!0,session_meta_key:null,available_models:[{id:`gpt-5.6`,label:`GPT-5.6`},{id:`gpt-5.6-sol`,label:`GPT-5.6 Sol`},{id:`gpt-5.6-terra`,label:`GPT-5.6 Terra`},{id:`gpt-5.6-luna`,label:`GPT-5.6 Luna`},{id:`gpt-5.5`,label:`GPT-5.5`},{id:`gpt-5.4`,label:`GPT-5.4`},{id:`gpt-5.4-mini`,label:`GPT-5.4 Mini`}],default_model:`gpt-5.5`,supports_runtime_model_switch:!0,file_secrets:[{secret_name:`CODEX_AUTH_JSON`,filename:`auth.json`,env_var:`CODEX_HOME`,subdir:`codex`,env_points_to:`dir`,warn_if_unset:[]}],binary_name:`codex-acp`,data_dir_env_var:`CODEX_HOME`},"gemini-cli":{key:`gemini-cli`,display_name:`Gemini CLI`,default_command:[`npx`,`-y`,`@google/gemini-cli@0.46.0`,`--acp`],api_key_env_var:`GEMINI_API_KEY`,base_url_env_var:`GEMINI_BASE_URL`,default_session_mode:`default`,agent_name_patterns:[`gemini-cli`],supports_set_session_model:!0,session_meta_key:null,available_models:[{id:`auto`,label:`Auto`},{id:`gemini-3.1-pro-preview`,label:`Gemini 3.1 Pro (preview)`},{id:`gemini-3-pro-preview`,label:`Gemini 3 Pro (preview)`},{id:`gemini-3-flash-preview`,label:`Gemini 3 Flash (preview)`},{id:`gemini-3.1-flash-lite`,label:`Gemini 3.1 Flash Lite`},{id:`gemini-2.5-pro`,label:`Gemini 2.5 Pro`},{id:`gemini-2.5-flash`,label:`Gemini 2.5 Flash`}],default_model:`auto`,supports_runtime_model_switch:!0,file_secrets:[{secret_name:`GOOGLE_APPLICATION_CREDENTIALS_JSON`,filename:`gcloud-credentials.json`,env_var:`GOOGLE_APPLICATION_CREDENTIALS`,subdir:`gemini-cli`,env_points_to:`file`,warn_if_unset:[`GOOGLE_CLOUD_PROJECT`,`GOOGLE_CLOUD_LOCATION`]}],binary_name:`gemini`,data_dir_env_var:`HOME`}};function y(e){return e?v[e]??null:null}var b=[`acp_command`,`acp_args`,`acp_env`,`acp_model`,`acp_session_mode`,`acp_prompt_timeout`,`acp_server`];export{a,u as i,y as n,_ as r,b as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require("./http-client.cjs");var t=class{constructor(t){this.host=t.host.replace(/\/$/,``),this.apiKey=t.apiKey,this.client=new e.HttpClient({baseUrl:this.host,apiKey:this.apiKey,timeout:t.timeout||6e4})}async getUrl(e){return(await this.client.get(`/api/desktop/url`,{params:e?{base_url:e}:void 0})).data.url}close(){this.client.close()}};exports.DesktopClient=t;
|
|
2
|
-
//# sourceMappingURL=desktop-client.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-client.cjs","names":["HttpClient"],"sources":["../../../../../../node_modules/@openhands/typescript-client/dist/client/desktop-client.js"],"sourcesContent":["import { HttpClient } from './http-client.js';\nexport class DesktopClient {\n constructor(options) {\n this.host = options.host.replace(/\\/$/, '');\n this.apiKey = options.apiKey;\n this.client = new HttpClient({\n baseUrl: this.host,\n apiKey: this.apiKey,\n timeout: options.timeout || 60000,\n });\n }\n async getUrl(baseUrl) {\n const response = await this.client.get('/api/desktop/url', {\n params: baseUrl ? { base_url: baseUrl } : undefined,\n });\n return response.data.url;\n }\n close() {\n this.client.close();\n }\n}\n//# sourceMappingURL=desktop-client.js.map"],"x_google_ignoreList":[0],"mappings":"8FACA,IAAa,EAAb,KAA2B,CACvB,YAAY,EAAS,CACjB,KAAK,KAAO,EAAQ,KAAK,QAAQ,MAAO,EAAE,EAC1C,KAAK,OAAS,EAAQ,OACtB,KAAK,OAAS,IAAIA,EAAAA,WAAW,CACzB,QAAS,KAAK,KACd,OAAQ,KAAK,OACb,QAAS,EAAQ,SAAW,GAChC,CAAC,CACL,CACA,MAAM,OAAO,EAAS,CAIlB,OAAO,MAHgB,KAAK,OAAO,IAAI,mBAAoB,CACvD,OAAQ,EAAU,CAAE,SAAU,CAAQ,EAAI,IAAA,EAC9C,CAAC,GACe,KAAK,GACzB,CACA,OAAQ,CACJ,KAAK,OAAO,MAAM,CACtB,CACJ"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { HttpClient as e } from "./http-client.js";
|
|
2
|
-
//#region node_modules/@openhands/typescript-client/dist/client/desktop-client.js
|
|
3
|
-
var t = class {
|
|
4
|
-
constructor(t) {
|
|
5
|
-
this.host = t.host.replace(/\/$/, ""), this.apiKey = t.apiKey, this.client = new e({
|
|
6
|
-
baseUrl: this.host,
|
|
7
|
-
apiKey: this.apiKey,
|
|
8
|
-
timeout: t.timeout || 6e4
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
async getUrl(e) {
|
|
12
|
-
return (await this.client.get("/api/desktop/url", { params: e ? { base_url: e } : void 0 })).data.url;
|
|
13
|
-
}
|
|
14
|
-
close() {
|
|
15
|
-
this.client.close();
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
export { t as DesktopClient };
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=desktop-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-client.js","names":[],"sources":["../../../../../../node_modules/@openhands/typescript-client/dist/client/desktop-client.js"],"sourcesContent":["import { HttpClient } from './http-client.js';\nexport class DesktopClient {\n constructor(options) {\n this.host = options.host.replace(/\\/$/, '');\n this.apiKey = options.apiKey;\n this.client = new HttpClient({\n baseUrl: this.host,\n apiKey: this.apiKey,\n timeout: options.timeout || 60000,\n });\n }\n async getUrl(baseUrl) {\n const response = await this.client.get('/api/desktop/url', {\n params: baseUrl ? { base_url: baseUrl } : undefined,\n });\n return response.data.url;\n }\n close() {\n this.client.close();\n }\n}\n//# sourceMappingURL=desktop-client.js.map"],"x_google_ignoreList":[0],"mappings":";;AACA,IAAa,IAAb,MAA2B;CACvB,YAAY,GAAS;EAGjB,AAFA,KAAK,OAAO,EAAQ,KAAK,QAAQ,OAAO,EAAE,GAC1C,KAAK,SAAS,EAAQ,QACtB,KAAK,SAAS,IAAI,EAAW;GACzB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,SAAS,EAAQ,WAAW;EAChC,CAAC;CACL;CACA,MAAM,OAAO,GAAS;EAIlB,QAAO,MAHgB,KAAK,OAAO,IAAI,oBAAoB,EACvD,QAAQ,IAAU,EAAE,UAAU,EAAQ,IAAI,KAAA,EAC9C,CAAC,GACe,KAAK;CACzB;CACA,QAAQ;EACJ,KAAK,OAAO,MAAM;CACtB;AACJ"}
|