@openhands/agent-canvas 1.0.0-alpha.8 → 1.0.0-beta.1

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.
Files changed (409) hide show
  1. package/README.md +17 -6
  2. package/bin/agent-canvas.mjs +22 -2
  3. package/build/assets/{QueryClientProvider-B7kl84Kj.js → QueryClientProvider-CkGuhXg-.js} +1 -1
  4. package/build/assets/{Trans-1j65oy9O.js → Trans-Cvm_-SMi.js} +1 -1
  5. package/build/assets/acp-providers-CbiRekh9.js +1 -0
  6. package/build/assets/{acp-route-guard-CQTmeJwM.js → acp-route-guard-B2yoBZ_4.js} +1 -1
  7. package/build/assets/{active-backend-context-TVbjnvmP.js → active-backend-context-cCM1vYYZ.js} +1 -1
  8. package/build/assets/add-backend-modal-DIUQzMPa.js +1 -0
  9. package/build/assets/agent-server-client-options-Bc5ZorQZ.js +1 -0
  10. package/build/assets/agent-server-compatibility-BlkUsrX2.js +1 -0
  11. package/build/assets/agent-server-conversation-service.api-DFvqqEDo.js +5 -0
  12. package/build/assets/{agent-settings-B247S9G3.js → agent-settings-CnGSCmK8.js} +1 -1
  13. package/build/assets/{alert-banner-BWoqueRw.js → alert-banner-DtzAX654.js} +1 -1
  14. package/build/assets/{analytics-consent-form-modal-C7sXfxRh.js → analytics-consent-form-modal-CHZ3I37v.js} +1 -1
  15. package/build/assets/api-key-entry-screen-B2gynaCp.js +1 -0
  16. package/build/assets/{app-settings-BVeSaty9.js → app-settings-Db9ITeJH.js} +1 -1
  17. package/build/assets/{automation-detail-g5-RZ0da.js → automation-detail-Di7EOIZD.js} +1 -1
  18. package/build/assets/{automations-list-DHoq_0MM.js → automations-list-IsIWdDiw.js} +1 -1
  19. package/build/assets/backend-form-modal-Dnk33xA_.js +1 -0
  20. package/build/assets/{backend-synced-settings-badge-nAfiUWvM.js → backend-synced-settings-badge-Dc6c7GT4.js} +1 -1
  21. package/build/assets/{base-modal-CQRvRHu1.js → base-modal-_dYTw1ri.js} +1 -1
  22. package/build/assets/{brand-button-C2nEKopC.js → brand-button-Br7f0kZJ.js} +1 -1
  23. package/build/assets/browser-D810xUYt.js +5 -0
  24. package/build/assets/browser-store-Couc4S5D.js +1 -0
  25. package/build/assets/browser-tab-B-aIqXRl.js +1 -0
  26. package/build/assets/{checkmark-BJJrZUF8.js → checkmark-DL7acQA7.js} +1 -1
  27. package/build/assets/{chevron-left-small-CSh-sE9L.js → chevron-left-small-CVWf8TI6.js} +1 -1
  28. package/build/assets/{circle-plus-check-toggle-qs8Va1cC.js → circle-plus-check-toggle-P7ZZToV4.js} +1 -1
  29. package/build/assets/{clock-ZR4Kn-_Y.js → clock-BRjCgHTc.js} +1 -1
  30. package/build/assets/{close-BdmyeRqS.js → close-B5LROHR3.js} +1 -1
  31. package/build/assets/{combobox-caret-B53O9Hsq.js → combobox-caret-to1O8irE.js} +1 -1
  32. package/build/assets/{condenser-settings-A35V3yng.js → condenser-settings-wnEKhBof.js} +1 -1
  33. package/build/assets/{confirmation-modal-C9-La0h3.js → confirmation-modal-Dau3w_sa.js} +1 -1
  34. package/build/assets/{context-menu-list-item-Buu9nc0q.js → context-menu-list-item-CWNFpuiC.js} +1 -1
  35. package/build/assets/conversation-HlncOV7n.js +19 -0
  36. package/build/assets/conversation-MtnkpqA9.js +1 -0
  37. package/build/assets/conversation-panel-DxnM6tRe.js +1 -0
  38. package/build/assets/{conversation-service.api-C8pYCyV6.js → conversation-service.api-nb5W1PqR.js} +1 -1
  39. package/build/assets/{conversation-tab-empty-state-D8dNvo-V.js → conversation-tab-empty-state-DyssnnWa.js} +1 -1
  40. package/build/assets/conversation-websocket-context-C8_PkGLi.js +3 -0
  41. package/build/assets/{copy-C7Ti2d8C.js → copy-DYgmUdIw.js} +1 -1
  42. package/build/assets/{custom-toast-handlers-BOc3qeQ7.js → custom-toast-handlers-C-SZFmto.js} +1 -1
  43. package/build/assets/declaration-BNMqORFE.js +1 -0
  44. package/build/assets/{device-verify-CMusn8nX.js → device-verify-DqDlphsG.js} +1 -1
  45. package/build/assets/{dist-DZHSA2e6.js → dist-C6t0EXL7.js} +1 -1
  46. package/build/assets/{edit-automation-modal-Dnjxbjn7.js → edit-automation-modal-BGzR3nfZ.js} +1 -1
  47. package/build/assets/{ellipsis-button-ugUATsNo.js → ellipsis-button-ZyLMPURn.js} +1 -1
  48. package/build/assets/{entry.client-D9uR9Blz.js → entry.client-1VMHpktY.js} +2 -2
  49. package/build/assets/{enum-filter-dropdown-1vpOGySB.js → enum-filter-dropdown-CEgCdu4A.js} +1 -1
  50. package/build/assets/{environment-switch-overlay-CTCTQikP.js → environment-switch-overlay-XL8yCGP6.js} +1 -1
  51. package/build/assets/{extensions-hub-BSUseHVF.js → extensions-hub-C651jsVh.js} +1 -1
  52. package/build/assets/{extensions-navigation-CT1kc1u_.js → extensions-navigation-BYR8Giqq.js} +1 -1
  53. package/build/assets/files-tab-BhnLgimi.js +1 -0
  54. package/build/assets/{folder-0WSMImNX.js → folder-ZZJVGgd7.js} +1 -1
  55. package/build/assets/git-control-bar-branch-button-M34A5_vX.js +27 -0
  56. package/build/assets/{git-provider-icon-DYE9n7fs.js → git-provider-icon-D5dCNy-k.js} +1 -1
  57. package/build/assets/home-CYQv7yc_.js +1 -0
  58. package/build/assets/{i18n-DjAGhTis.js → i18n-CTohRuoO.js} +1 -1
  59. package/build/assets/install-server-modal-f31_CLrW.js +1 -0
  60. package/build/assets/{launch-hZ0ifhcV.js → launch-DHEUYn2A.js} +1 -1
  61. package/build/assets/{lesson-plan-DRYG5SLI.js → lesson-plan-dH5Bj0pN.js} +1 -1
  62. package/build/assets/{link-external-Df8J52xI.js → link-external-D2POYx4c.js} +1 -1
  63. package/build/assets/{llm-client-ChQzg4wX.js → llm-client-DaH1TuyR.js} +1 -1
  64. package/build/assets/llm-settings-Bql-vydt.js +1 -0
  65. package/build/assets/llm-settings-C_tal6Ds.js +1 -0
  66. package/build/assets/{loading-spinner-C04FGh14.js → loading-spinner-BPtYORNK.js} +1 -1
  67. package/build/assets/{manage-backends-modal-rYeyGx7j.js → manage-backends-modal-l7RkKfwX.js} +1 -1
  68. package/build/assets/{manage-workspaces-modal-C5EuW8m1.js → manage-workspaces-modal-DhKF_8z3.js} +1 -1
  69. package/build/assets/manifest-9fee01b9.js +1 -0
  70. package/build/assets/{markdown-renderer-CEX4Becj.js → markdown-renderer-DMzf2i4x.js} +1 -1
  71. package/build/assets/mcp-D2onbwVk.js +9 -0
  72. package/build/assets/{messages-T2ewVkbp.js → messages-BMzyOW2V.js} +1 -1
  73. package/build/assets/{modal-backdrop-DTYGVmOR.js → modal-backdrop-BAbgYsqB.js} +1 -1
  74. package/build/assets/{modal-body-YElmM1dV.js → modal-body-BI6Ru2Qr.js} +1 -1
  75. package/build/assets/{modal-close-button-C_GpQt9F.js → modal-close-button-t1Gh3qmL.js} +1 -1
  76. package/build/assets/{model-selector-DeMmw-Xa.js → model-selector-SM9IUz-q.js} +1 -1
  77. package/build/assets/{mutation-Cz7N4XAo.js → mutation-D0OogFCz.js} +1 -1
  78. package/build/assets/{navigation-context-DeIPtGPp.js → navigation-context-D0YWpT8d.js} +1 -1
  79. package/build/assets/{navigation-link-C9JD4PYD.js → navigation-link-Cn7KP3c5.js} +1 -1
  80. package/build/assets/{openhands-logo-CI5Fhn1W.js → openhands-logo-CnrF6LKb.js} +1 -1
  81. package/build/assets/{option-service.api-DsI1UW7N.js → option-service.api-KvY_mZMY.js} +1 -1
  82. package/build/assets/{organization-service.api-COwMPFg5.js → organization-service.api-DzYTHTYC.js} +1 -1
  83. package/build/assets/{path-utils-CqJboYxo.js → path-utils-YohAYyMv.js} +1 -1
  84. package/build/assets/{plan-components-DEjMuDDG.js → plan-components-atxXCF0R.js} +1 -1
  85. package/build/assets/{planner-tab-BrntFmb1.js → planner-tab-CFc-hV07.js} +1 -1
  86. package/build/assets/{profiles-client-BGkKEV9j.js → profiles-client-D6IkTJof.js} +1 -1
  87. package/build/assets/{providers-DXvCAN_u.js → providers-Bx6EfrzZ.js} +1 -1
  88. package/build/assets/{proxy-CurRmrqf.js → proxy-CxydCnis.js} +1 -1
  89. package/build/assets/{query-client-config-Ba7qAAoO.js → query-client-config-B7u9asM0.js} +1 -1
  90. package/build/assets/{recommended-automations-launcher-BI9NhG8Y.js → recommended-automations-launcher-sgvfU62c.js} +3 -3
  91. package/build/assets/root-BXWU99D-.js +2 -0
  92. package/build/assets/{root-layout-BLjAEgle.js → root-layout-DVepR4To.js} +2 -2
  93. package/build/assets/sdk-section-page-DOIKvwSL.js +1 -0
  94. package/build/assets/{sdk-settings-schema-QBYH-ONX.js → sdk-settings-schema-DsUf9wu1.js} +1 -1
  95. package/build/assets/{search-Cq_cFrDt.js → search-27Owlc3A.js} +1 -1
  96. package/build/assets/{secrets-service-Bwd5DeUs.js → secrets-service-BsnKFc2x.js} +1 -1
  97. package/build/assets/secrets-settings-Bz_UohPJ.js +1 -0
  98. package/build/assets/{server-client-C3mC8Hl3.js → server-client-DyAQ3NZ_.js} +1 -1
  99. package/build/assets/{settings-D7E2U5tK.js → settings-BYkVX7vW.js} +1 -1
  100. package/build/assets/{settings-client-CwjfwoiB.js → settings-client-C73C7IgV.js} +1 -1
  101. package/build/assets/{settings-dropdown-input-VwAXNrOb.js → settings-dropdown-input-BJYvGdg-.js} +1 -1
  102. package/build/assets/{settings-gear-BJwWR1ej.js → settings-gear-C77PgE_O.js} +1 -1
  103. package/build/assets/{settings-index-J-3BNR0W.js → settings-index-Dz0BmdJD.js} +1 -1
  104. package/build/assets/{settings-input-DBywAnA7.js → settings-input-Bn7F5C75.js} +1 -1
  105. package/build/assets/{settings-list-classes-BOS092DR.js → settings-list-classes-Bf80tWtc.js} +1 -1
  106. package/build/assets/{settings-modal-B8vgWDTe.js → settings-modal-Brzgh5Yw.js} +1 -1
  107. package/build/assets/{settings-section-header-context-32x6WTyL.js → settings-section-header-context-BgZe5YkE.js} +1 -1
  108. package/build/assets/{settings-service.api-FvJGK45W.js → settings-service.api-CZ3uWx4v.js} +1 -1
  109. package/build/assets/{settings-switch-DTKmHC8F.js → settings-switch-BeIKrWms.js} +1 -1
  110. package/build/assets/{shared-conversation-a0QV8o99.js → shared-conversation-DChOdb0t.js} +1 -1
  111. package/build/assets/{sidebar-mobile-menu-toggle-DTUNI1WQ.js → sidebar-mobile-menu-toggle-BWuf4PRH.js} +1 -1
  112. package/build/assets/{sidebar-nav-link-CnWoZcwc.js → sidebar-nav-link-BGjiJq-4.js} +1 -1
  113. package/build/assets/{skill-card-pill-row-tZ599jli.js → skill-card-pill-row-DF1axQCG.js} +1 -1
  114. package/build/assets/{skills-ZyAO5dyK.js → skills-ChIKZPK4.js} +1 -1
  115. package/build/assets/{skills-plugins-BSRz041I.js → skills-plugins-CcI_19lM.js} +1 -1
  116. package/build/assets/{skills-settings-DOnMn9q1.js → skills-settings-DlA5hlXw.js} +1 -1
  117. package/build/assets/{status-CsatcFbK.js → status-hp6M6E7E.js} +1 -1
  118. package/build/assets/{styled-tooltip-CS3mB_1X.js → styled-tooltip-CBzrri6o.js} +1 -1
  119. package/build/assets/{switch-skeleton-C-CfhYYV.js → switch-skeleton-DnC9wLp7.js} +1 -1
  120. package/build/assets/{task-list-tab-Day9nhRT.js → task-list-tab-DUJn1sgz.js} +1 -1
  121. package/build/assets/{terminal-ro4SNjUU.js → terminal-CRf9S0Z2.js} +1 -1
  122. package/build/assets/{terminal-LNa-iU5c.js → terminal-RmuaSdhJ.js} +1 -1
  123. package/build/assets/{toggle-switch-k-IZCDbt.js → toggle-switch-Pvyp2RAN.js} +1 -1
  124. package/build/assets/{typography-vVUMoNUg.js → typography-gpuWmrQO.js} +1 -1
  125. package/build/assets/{u-check-circle-DplbarS5.js → u-check-circle-IUIfACQQ.js} +1 -1
  126. package/build/assets/{u-check-circle-half-yDuiSZHC.js → u-check-circle-half-C1YxB6py.js} +1 -1
  127. package/build/assets/{u-circuit-C9tYkpeK.js → u-circuit-BmVikJHu.js} +1 -1
  128. package/build/assets/{u-edit-KAUlufD8.js → u-edit-CFvXHqZk.js} +1 -1
  129. package/build/assets/use-active-conversation-Db3IWSPK.js +1 -0
  130. package/build/assets/{use-agent-settings-schema-Bvp5UzV8.js → use-agent-settings-schema-33Un7UF2.js} +1 -1
  131. package/build/assets/{use-agent-state-DE5dlEXJ.js → use-agent-state-Bn8vS5sY.js} +1 -1
  132. package/build/assets/{use-cloud-current-user-id-DWVar4st.js → use-cloud-current-user-id-CvkXFnTT.js} +1 -1
  133. package/build/assets/use-config-Co1O8-Ey.js +1 -0
  134. package/build/assets/{use-create-conversation-DW7AGgLA.js → use-create-conversation-CKS3EAHu.js} +1 -1
  135. package/build/assets/{use-event-store-CQZCcVz-.js → use-event-store-BT_gV3ut.js} +1 -1
  136. package/build/assets/use-get-secrets-DuhdIA59.js +1 -0
  137. package/build/assets/{use-handle-plan-click-DpgEQDAV.js → use-handle-plan-click-C9zJpK8A.js} +1 -1
  138. package/build/assets/use-is-authed-BggE5wPj.js +1 -0
  139. package/build/assets/{use-is-creating-conversation-DhDeeWfA.js → use-is-creating-conversation-BZ5hB_Bg.js} +1 -1
  140. package/build/assets/{use-launch-skill-in-chat-DVGPFrbI.js → use-launch-skill-in-chat-fNN_xGZG.js} +1 -1
  141. package/build/assets/{use-llm-profiles-D3-KXwQ0.js → use-llm-profiles-DDOol3gK.js} +1 -1
  142. package/build/assets/use-runtime-is-ready-CQCE3xZC.js +1 -0
  143. package/build/assets/{use-save-settings-CEEKSTWG.js → use-save-settings-VUrj_QNG.js} +1 -1
  144. package/build/assets/{use-settings-DQ7Oo1Hj.js → use-settings-DQIZmIov.js} +1 -1
  145. package/build/assets/{use-settings-nav-items-YmrXrjn9.js → use-settings-nav-items-1ZvovKSr.js} +1 -1
  146. package/build/assets/use-skills-DAMLFjKU.js +1 -0
  147. package/build/assets/{use-task-list-Bs90uF2N.js → use-task-list-CLJbuJgM.js} +1 -1
  148. package/build/assets/use-unified-vscode-url-sZt29HrC.js +1 -0
  149. package/build/assets/use-user-conversation-DfgEB6RW.js +1 -0
  150. package/build/assets/{useMutation-B4OUESdw.js → useMutation-DqrumCWD.js} +1 -1
  151. package/build/assets/{useTranslation-CpIcQBq6.js → useTranslation-DCOdSSMl.js} +1 -1
  152. package/build/assets/{utils-D-HX7JCe.js → utils-i18rdUj2.js} +1 -1
  153. package/build/assets/v4-CNn21NXa.js +1 -0
  154. package/build/assets/{vendor~browser-Dr71AdrG.js → vendor~browser-BNjNhjFU.js} +1 -1
  155. package/build/assets/{vendor~browser-tab-BiVxfjJo.js → vendor~browser-tab-BgwV1mxF.js} +1 -1
  156. package/build/assets/{vendor~conversation-panel~conversation-BlCIz9XQ.js → vendor~conversation-panel~conversation-a9SyrrhV.js} +1 -1
  157. package/build/assets/{vendor~files-tab-DtLR-QD9.js → vendor~files-tab-BGKayPiK.js} +1 -1
  158. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Ds9quNZ9.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-smY2r837.js} +1 -1
  159. package/build/assets/{vendor~home~mcp~automations-list-C5PoHCy6.js → vendor~home~mcp~automations-list-Ccy2I0KU.js} +1 -1
  160. package/build/assets/{vendor~home~mcp~automations-list-BUBGGGYz.js → vendor~home~mcp~automations-list-DoPfwaXj.js} +1 -1
  161. package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CGlZoBKa.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DbfELDJu.js} +2 -2
  162. package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DE11mPxp.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-Z3nsiNNq.js} +1 -1
  163. package/build/assets/{vendor~launch-Dg--Ssk6.js → vendor~launch-vdeRTWFu.js} +1 -1
  164. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-DrXgiSCq.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-DW31UyBp.js} +1 -1
  165. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-8b8V5bfO.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BkQGKpye.js} +1 -1
  166. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-Dy7L6fMG.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js} +1 -1
  167. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-D40EXhZx.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-Bbs7UJ5U.js} +2 -2
  168. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-CHrEOFl6.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-DTwbEEcX.js} +1 -1
  169. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-BP1SKG0F.js → vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-d2oallMa.js} +1 -1
  170. package/build/assets/{vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~kyz9p27j-CyUbhpbm.js → vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js} +1 -1
  171. package/build/assets/{verification-settings-BtlTiHP8.js → verification-settings-CsbvQcYS.js} +1 -1
  172. package/build/assets/{vscode-tab-C0ShhiSU.js → vscode-tab-Zb-QbTuV.js} +1 -1
  173. package/build/assets/{waiting-for-runtime-message-DWPl_Yby.js → waiting-for-runtime-message-CntjExbU.js} +1 -1
  174. package/build/assets/{x-mark-CWI0f9yI.js → x-mark-CrpjscNc.js} +1 -1
  175. package/build/index.html +4 -4
  176. package/build/locales/ar/openhands.json +7 -0
  177. package/build/locales/ca/openhands.json +7 -0
  178. package/build/locales/de/openhands.json +7 -0
  179. package/build/locales/en/openhands.json +7 -0
  180. package/build/locales/es/openhands.json +7 -0
  181. package/build/locales/fr/openhands.json +7 -0
  182. package/build/locales/it/openhands.json +7 -0
  183. package/build/locales/ja/openhands.json +7 -0
  184. package/build/locales/ko-KR/openhands.json +7 -0
  185. package/build/locales/no/openhands.json +7 -0
  186. package/build/locales/pt/openhands.json +7 -0
  187. package/build/locales/tr/openhands.json +7 -0
  188. package/build/locales/uk/openhands.json +7 -0
  189. package/build/locales/zh-CN/openhands.json +7 -0
  190. package/build/locales/zh-TW/openhands.json +7 -0
  191. package/config/defaults.json +0 -4
  192. package/dist/api/agent-server-adapter.cjs +1 -1
  193. package/dist/api/agent-server-adapter.cjs.map +1 -1
  194. package/dist/api/agent-server-adapter.js +2 -1
  195. package/dist/api/agent-server-adapter.js.map +1 -1
  196. package/dist/api/agent-server-compatibility.cjs +1 -1
  197. package/dist/api/agent-server-compatibility.cjs.map +1 -1
  198. package/dist/api/agent-server-compatibility.d.ts +16 -0
  199. package/dist/api/agent-server-compatibility.js +31 -20
  200. package/dist/api/agent-server-compatibility.js.map +1 -1
  201. package/dist/api/agent-server-config.cjs +1 -1
  202. package/dist/api/agent-server-config.cjs.map +1 -1
  203. package/dist/api/agent-server-config.d.ts +45 -0
  204. package/dist/api/agent-server-config.js +49 -21
  205. package/dist/api/agent-server-config.js.map +1 -1
  206. package/dist/api/backend-registry/storage.cjs +1 -1
  207. package/dist/api/backend-registry/storage.cjs.map +1 -1
  208. package/dist/api/backend-registry/storage.js +34 -32
  209. package/dist/api/backend-registry/storage.js.map +1 -1
  210. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  211. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  212. package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +5 -4
  213. package/dist/api/conversation-service/agent-server-conversation-service.api.js +70 -76
  214. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  215. package/dist/api/skills-service.cjs +1 -1
  216. package/dist/api/skills-service.cjs.map +1 -1
  217. package/dist/api/skills-service.d.ts +1 -1
  218. package/dist/api/skills-service.js +2 -2
  219. package/dist/api/skills-service.js.map +1 -1
  220. package/dist/components/features/backends/api-key-entry-screen.d.ts +10 -0
  221. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  222. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  223. package/dist/components/features/backends/backend-form-modal.d.ts +23 -2
  224. package/dist/components/features/backends/backend-form-modal.js +185 -173
  225. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  226. package/dist/components/features/browser/browser.cjs +1 -1
  227. package/dist/components/features/browser/browser.cjs.map +1 -1
  228. package/dist/components/features/browser/browser.js +10 -16
  229. package/dist/components/features/browser/browser.js.map +1 -1
  230. package/dist/components/features/conversation-panel/skills-modal.cjs +1 -1
  231. package/dist/components/features/conversation-panel/skills-modal.cjs.map +1 -1
  232. package/dist/components/features/conversation-panel/skills-modal.js +1 -1
  233. package/dist/components/features/conversation-panel/skills-modal.js.map +1 -1
  234. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  235. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  236. package/dist/components/features/mcp-page/install-server-modal.js +123 -116
  237. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  238. package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
  239. package/dist/components/features/mcp-page/installed-server-card.cjs.map +1 -1
  240. package/dist/components/features/mcp-page/installed-server-card.js +40 -40
  241. package/dist/components/features/mcp-page/installed-server-card.js.map +1 -1
  242. package/dist/components/features/mcp-page/marketplace-card.cjs +1 -1
  243. package/dist/components/features/mcp-page/marketplace-card.cjs.map +1 -1
  244. package/dist/components/features/mcp-page/marketplace-card.js +2 -3
  245. package/dist/components/features/mcp-page/marketplace-card.js.map +1 -1
  246. package/dist/components/features/mcp-page/marketplace-section.cjs +1 -1
  247. package/dist/components/features/mcp-page/marketplace-section.cjs.map +1 -1
  248. package/dist/components/features/mcp-page/marketplace-section.js +21 -21
  249. package/dist/components/features/mcp-page/marketplace-section.js.map +1 -1
  250. package/dist/components/features/onboarding/steps/setup-acp-secrets-step.d.ts +27 -0
  251. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  252. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -0
  253. package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
  254. package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs.map +1 -1
  255. package/dist/components/features/settings/sdk-settings/sdk-section-page.d.ts +10 -1
  256. package/dist/components/features/settings/sdk-settings/sdk-section-page.js +87 -84
  257. package/dist/components/features/settings/sdk-settings/sdk-section-page.js.map +1 -1
  258. package/dist/constants/acp-providers.cjs +1 -1
  259. package/dist/constants/acp-providers.cjs.map +1 -1
  260. package/dist/constants/acp-providers.d.ts +25 -0
  261. package/dist/constants/acp-providers.js +1 -0
  262. package/dist/constants/acp-providers.js.map +1 -1
  263. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  264. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  265. package/dist/contexts/conversation-websocket-context.js +177 -165
  266. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  267. package/dist/hooks/chat/use-model-interceptor.cjs.map +1 -1
  268. package/dist/hooks/chat/use-model-interceptor.js.map +1 -1
  269. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  270. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  271. package/dist/hooks/chat/use-slash-command.js +1 -1
  272. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  273. package/dist/hooks/mutation/use-switch-llm-profile.cjs.map +1 -1
  274. package/dist/hooks/mutation/use-switch-llm-profile.d.ts +1 -1
  275. package/dist/hooks/mutation/use-switch-llm-profile.js.map +1 -1
  276. package/dist/hooks/query/use-config.cjs +1 -1
  277. package/dist/hooks/query/use-config.cjs.map +1 -1
  278. package/dist/hooks/query/use-config.js +10 -10
  279. package/dist/hooks/query/use-config.js.map +1 -1
  280. package/dist/hooks/query/use-conversation-skills.cjs +2 -0
  281. package/dist/hooks/query/use-conversation-skills.cjs.map +1 -0
  282. package/dist/hooks/query/use-conversation-skills.d.ts +7 -0
  283. package/dist/hooks/query/use-conversation-skills.js +8 -0
  284. package/dist/hooks/query/use-conversation-skills.js.map +1 -0
  285. package/dist/hooks/query/use-local-git-info.cjs +3 -3
  286. package/dist/hooks/query/use-local-git-info.cjs.map +1 -1
  287. package/dist/hooks/query/use-local-git-info.js +24 -25
  288. package/dist/hooks/query/use-local-git-info.js.map +1 -1
  289. package/dist/hooks/query/use-skills.cjs +1 -1
  290. package/dist/hooks/query/use-skills.cjs.map +1 -1
  291. package/dist/hooks/query/use-skills.d.ts +6 -1
  292. package/dist/hooks/query/use-skills.js +3 -3
  293. package/dist/hooks/query/use-skills.js.map +1 -1
  294. package/dist/i18n/declaration.cjs +1 -1
  295. package/dist/i18n/declaration.cjs.map +1 -1
  296. package/dist/i18n/declaration.d.ts +7 -0
  297. package/dist/i18n/declaration.js +1 -1
  298. package/dist/i18n/declaration.js.map +1 -1
  299. package/dist/i18n/translation.cjs +2 -2
  300. package/dist/i18n/translation.cjs.map +1 -1
  301. package/dist/i18n/translation.js +119 -0
  302. package/dist/i18n/translation.js.map +1 -1
  303. package/dist/locales/ar/openhands.json +7 -0
  304. package/dist/locales/ca/openhands.json +7 -0
  305. package/dist/locales/de/openhands.json +7 -0
  306. package/dist/locales/en/openhands.json +7 -0
  307. package/dist/locales/es/openhands.json +7 -0
  308. package/dist/locales/fr/openhands.json +7 -0
  309. package/dist/locales/it/openhands.json +7 -0
  310. package/dist/locales/ja/openhands.json +7 -0
  311. package/dist/locales/ko-KR/openhands.json +7 -0
  312. package/dist/locales/no/openhands.json +7 -0
  313. package/dist/locales/pt/openhands.json +7 -0
  314. package/dist/locales/tr/openhands.json +7 -0
  315. package/dist/locales/uk/openhands.json +7 -0
  316. package/dist/locales/zh-CN/openhands.json +7 -0
  317. package/dist/locales/zh-TW/openhands.json +7 -0
  318. package/dist/package.cjs +1 -1
  319. package/dist/package.cjs.map +1 -1
  320. package/dist/package.js +3 -3
  321. package/dist/package.js.map +1 -1
  322. package/dist/routes/conversation.cjs +1 -1
  323. package/dist/routes/conversation.cjs.map +1 -1
  324. package/dist/routes/conversation.js +61 -63
  325. package/dist/routes/conversation.js.map +1 -1
  326. package/dist/routes/mcp.cjs +1 -1
  327. package/dist/routes/mcp.cjs.map +1 -1
  328. package/dist/routes/mcp.js +64 -64
  329. package/dist/routes/mcp.js.map +1 -1
  330. package/dist/stores/browser-store.cjs +1 -1
  331. package/dist/stores/browser-store.cjs.map +1 -1
  332. package/dist/stores/browser-store.js +1 -1
  333. package/dist/stores/browser-store.js.map +1 -1
  334. package/dist/stores/use-event-store.cjs +1 -1
  335. package/dist/stores/use-event-store.cjs.map +1 -1
  336. package/dist/stores/use-event-store.d.ts +22 -0
  337. package/dist/stores/use-event-store.js +9 -1
  338. package/dist/stores/use-event-store.js.map +1 -1
  339. package/dist/ui/context-menu.d.ts +1 -1
  340. package/dist/ui/help-link.d.ts +1 -1
  341. package/dist/utils/mcp-marketplace-utils.cjs +1 -1
  342. package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
  343. package/dist/utils/mcp-marketplace-utils.d.ts +13 -22
  344. package/dist/utils/mcp-marketplace-utils.js +46 -28
  345. package/dist/utils/mcp-marketplace-utils.js.map +1 -1
  346. package/dist/utils/sdk-settings-schema.cjs +1 -1
  347. package/dist/utils/sdk-settings-schema.cjs.map +1 -1
  348. package/dist/utils/sdk-settings-schema.d.ts +1 -0
  349. package/dist/utils/sdk-settings-schema.js +1 -1
  350. package/dist/utils/sdk-settings-schema.js.map +1 -1
  351. package/package.json +3 -3
  352. package/scripts/dev-safe.mjs +94 -57
  353. package/scripts/dev-static.mjs +2 -3
  354. package/scripts/dev-with-automation.mjs +98 -67
  355. package/scripts/static-server.mjs +77 -35
  356. package/tools/canvas_ui_tool.py +4 -0
  357. package/build/assets/acp-providers-DauuOsW9.js +0 -1
  358. package/build/assets/add-backend-modal-KMmPQNZU.js +0 -1
  359. package/build/assets/agent-server-client-options-DT2GP6VJ.js +0 -1
  360. package/build/assets/agent-server-compatibility-2aOx5iWd.js +0 -1
  361. package/build/assets/agent-server-conversation-service.api-DSl9G5UR.js +0 -5
  362. package/build/assets/backend-form-modal-K6IMCr3p.js +0 -1
  363. package/build/assets/browser-DKG63inJ.js +0 -5
  364. package/build/assets/browser-store-C3AqxAO7.js +0 -1
  365. package/build/assets/browser-tab-B_BuTvrO.js +0 -1
  366. package/build/assets/conversation-BD5WemJI.js +0 -19
  367. package/build/assets/conversation-C47K62n8.js +0 -1
  368. package/build/assets/conversation-panel-Dn-S56Gk.js +0 -1
  369. package/build/assets/conversation-websocket-context-Ywrxd_9p.js +0 -3
  370. package/build/assets/declaration-D378OjpZ.js +0 -1
  371. package/build/assets/files-tab-B3A1NDlZ.js +0 -1
  372. package/build/assets/git-control-bar-branch-button-CcIpmyfM.js +0 -27
  373. package/build/assets/home-dIzxi5Dd.js +0 -1
  374. package/build/assets/install-server-modal-z5VaHeXd.js +0 -1
  375. package/build/assets/llm-settings-2036m7Wt.js +0 -1
  376. package/build/assets/llm-settings-CcHqGOYL.js +0 -1
  377. package/build/assets/manifest-97e839da.js +0 -1
  378. package/build/assets/mcp-C06YssEI.js +0 -9
  379. package/build/assets/root-BS1Td78t.js +0 -2
  380. package/build/assets/sdk-section-page-CJW0G04-.js +0 -1
  381. package/build/assets/secrets-settings-MLXqOtX2.js +0 -1
  382. package/build/assets/use-active-conversation-D15D9GgR.js +0 -1
  383. package/build/assets/use-config-BSu_53GL.js +0 -1
  384. package/build/assets/use-conversation-id-DajhCn2A.js +0 -1
  385. package/build/assets/use-is-authed-hXC8vxgT.js +0 -1
  386. package/build/assets/use-runtime-is-ready-XFbT16BD.js +0 -1
  387. package/build/assets/use-skills-Xe0vjPMt.js +0 -1
  388. package/build/assets/use-unified-vscode-url-BOsIOd-b.js +0 -1
  389. package/build/assets/use-user-conversation-Mc0mQgkl.js +0 -1
  390. /package/build/assets/{automation-XLxhq3I8.js → automation-IdgZq6ZK.js} +0 -0
  391. /package/build/assets/{common-SMkEaBSr.js → common-DR1t-EeP.js} +0 -0
  392. /package/build/assets/{conversation-state-store-Bc0slAjL.js → conversation-state-store-u5jepov0.js} +0 -0
  393. /package/build/assets/{dist-yMQV8IUk.js → dist-BxBP7tFD.js} +0 -0
  394. /package/build/assets/{git-status-mapper-BI8FyUVp.js → git-status-mapper-DnL9OC8_.js} +0 -0
  395. /package/build/assets/{handle-capture-consent-BfZATzpI.js → handle-capture-consent-3XrjZ8wi.js} +0 -0
  396. /package/build/assets/{iconBase-C7N9pPOs.js → iconBase-DE30Zj_-.js} +0 -0
  397. /package/build/assets/{settings-D5am1n6X.js → settings-D_H-qsRm.js} +0 -0
  398. /package/build/assets/{settings-like-page-layout-classes-Bn-M9oOa.js → settings-like-page-layout-classes-I0BDBEoq.js} +0 -0
  399. /package/build/assets/{settings-utils-BsvSU3OM.js → settings-utils-B6Nl07io.js} +0 -0
  400. /package/build/assets/{sidebar-store-cOeaKmIm.js → sidebar-store-Uy3v0AOV.js} +0 -0
  401. /package/build/assets/{use-breakpoint-B86yKT9n.js → use-breakpoint-DbJ6FkQ-.js} +0 -0
  402. /package/build/assets/{use-click-outside-element-835W9pC6.js → use-click-outside-element-DffgWWoZ.js} +0 -0
  403. /package/build/assets/{vendor~browser-BpdPBhgZ.js → vendor~browser-DDiZgqD3.js} +0 -0
  404. /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-Df7_G0zR.js → vendor~conversation-panel~conversation~alert-banner-DbvX3OcM.js} +0 -0
  405. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~b4cctr4k-B7YVdv1X.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~g56ukk6u-DsSvIDZQ.js} +0 -0
  406. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i9dbt75i-CI82Did1.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~hkqzh1hb-BZ0HXuHD.js} +0 -0
  407. /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~pfbaerbd-zhv9fooy.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-D9P8e98a.js} +0 -0
  408. /package/build/assets/{vendor~terminal-BUxzHKcC.js → vendor~terminal-DUrOWGFE.js} +0 -0
  409. /package/build/assets/{vscode-url-helper-jesbpos5.js → vscode-url-helper-Cwy1A62q.js} +0 -0
@@ -3,37 +3,37 @@ import { useCommandStore as t } from "../stores/command-store.js";
3
3
  import { setConversationState as n } from "../utils/conversation-local-storage.js";
4
4
  import { useConversationStore as r } from "../stores/conversation-store.js";
5
5
  import { useConversationStateStore as ee } from "../stores/conversation-state-store.js";
6
- import { isActionEvent as te, isAgentErrorEvent as ne, isAgentServerEvent as re, isAgentStatusConversationStateUpdateEvent as ie, isBrowserNavigateActionEvent as ae, isBrowserObservationEvent as oe, isCanvasUIActionEvent as se, isConversationStateUpdateEvent as i, isDisplayableErrorEvent as a, isExecuteBashActionEvent as o, isExecuteBashObservationEvent as s, isFullStateConversationStateUpdateEvent as ce, isPlanningFileEditorObservationEvent as le, isStatsConversationStateUpdateEvent as ue, isSwitchLLMObservationEvent as de, isUserMessageEvent as fe } from "../types/agent-server/type-guards.js";
7
- import { useEventStore as c } from "../stores/use-event-store.js";
8
- import { ConversationClient as pe } from "../node_modules/@openhands/typescript-client/dist/client/conversation-client.js";
9
- import { useQueryClient as me } from "../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js";
10
- import { usePostHog as he } from "../node_modules/posthog-js/react/dist/esm/index.js";
11
- import { useWebSocket as ge } from "../hooks/use-websocket.js";
12
- import { SERVER_CONNECTION_ERROR_MESSAGE as _e } from "../constants/server-connection-error.js";
13
- import { useErrorMessageStore as ve } from "../stores/error-message-store.js";
14
- import { useOptimisticUserMessageStore as ye } from "../stores/optimistic-user-message-store.js";
15
- import { handleCanvasUIAction as be } from "../services/canvas-ui.js";
16
- import { handleActionEventCacheInvalidation as xe } from "../utils/cache-utils.js";
17
- import { buildWebSocketUrl as Se } from "../utils/websocket-url.js";
18
- import { getAgentServerClientOptions as Ce } from "../api/agent-server-client-options.js";
19
- import we from "../api/event-service/event-service.api.js";
20
- import { trackError as l } from "../utils/error-handler.js";
21
- import { useReadConversationFile as Te } from "../hooks/mutation/use-read-conversation-file.js";
22
- import Ee from "../stores/metrics-store.js";
23
- import { useConversationHistory as De } from "../hooks/query/use-conversation-history.js";
24
- import { recordModelSwitchMessage as Oe } from "../hooks/chat/record-model-switch-message.js";
25
- import { invalidateConversationQueries as ke, updateConversationLlmModelInCache as Ae } from "../hooks/mutation/conversation-mutation-utils.js";
26
- import je, { createContext as Me, useCallback as u, useContext as d, useEffect as f, useLayoutEffect as Ne, useMemo as p, useRef as m, useState as h } from "react";
6
+ import { isActionEvent as te, isAgentErrorEvent as ne, isAgentServerEvent as re, isAgentStatusConversationStateUpdateEvent as ie, isBrowserNavigateActionEvent as ae, isBrowserObservationEvent as oe, isCanvasUIActionEvent as se, isConversationStateUpdateEvent as i, isDisplayableErrorEvent as a, isExecuteBashActionEvent as o, isExecuteBashObservationEvent as s, isFullStateConversationStateUpdateEvent as ce, isPlanningFileEditorObservationEvent as le, isStatsConversationStateUpdateEvent as ue, isSwitchLLMObservationEvent as de, isUserMessageEvent as c } from "../types/agent-server/type-guards.js";
7
+ import { useEventStore as l } from "../stores/use-event-store.js";
8
+ import { ConversationClient as fe } from "../node_modules/@openhands/typescript-client/dist/client/conversation-client.js";
9
+ import { useQueryClient as pe } from "../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js";
10
+ import { usePostHog as me } from "../node_modules/posthog-js/react/dist/esm/index.js";
11
+ import { useWebSocket as he } from "../hooks/use-websocket.js";
12
+ import { SERVER_CONNECTION_ERROR_MESSAGE as ge } from "../constants/server-connection-error.js";
13
+ import { useErrorMessageStore as _e } from "../stores/error-message-store.js";
14
+ import { useOptimisticUserMessageStore as ve } from "../stores/optimistic-user-message-store.js";
15
+ import { handleCanvasUIAction as ye } from "../services/canvas-ui.js";
16
+ import { handleActionEventCacheInvalidation as be } from "../utils/cache-utils.js";
17
+ import { buildWebSocketUrl as xe } from "../utils/websocket-url.js";
18
+ import { getAgentServerClientOptions as Se } from "../api/agent-server-client-options.js";
19
+ import Ce from "../api/event-service/event-service.api.js";
20
+ import { trackError as u } from "../utils/error-handler.js";
21
+ import { useReadConversationFile as we } from "../hooks/mutation/use-read-conversation-file.js";
22
+ import Te from "../stores/metrics-store.js";
23
+ import { useConversationHistory as Ee } from "../hooks/query/use-conversation-history.js";
24
+ import { recordModelSwitchMessage as De } from "../hooks/chat/record-model-switch-message.js";
25
+ import { invalidateConversationQueries as Oe, updateConversationLlmModelInCache as ke } from "../hooks/mutation/conversation-mutation-utils.js";
26
+ import Ae, { createContext as je, useCallback as d, useContext as f, useEffect as p, useLayoutEffect as Me, useMemo as m, useRef as Ne, useState as h } from "react";
27
27
  import { jsx as Pe } from "react/jsx-runtime";
28
28
  //#region src/contexts/conversation-websocket-context.tsx
29
- var g = Me(void 0);
29
+ var g = je(void 0);
30
30
  function _(e) {
31
31
  return e.llm_message.content.filter((e) => e.type === "text").map((e) => e.text).join("");
32
32
  }
33
- function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey: y, subConversations: b, subConversationIds: x }) {
34
- let [S, C] = h("CONNECTING"), [w, T] = h("CONNECTING"), E = je.useRef(!1), D = je.useRef(!1), O = he(), k = me(), A = c((e) => e.addEvent), Fe = c((e) => e.addEvents), { setErrorMessage: j, removeErrorMessage: Ie, clearConnectionError: M } = ve(), N = ye((e) => e.consumeMatchingPendingMessage), { setExecutionStatus: P } = ee(), { appendInput: F, appendOutput: I } = t(), [L, R] = h(!0), [z, Le] = h(null), { setPlanContent: B } = r(), { mutate: V } = Te(), H = m(0), U = m(null), Re = (e) => e?.toUpperCase().endsWith("PLAN.MD") ?? !1, W = u(() => {
35
- M();
36
- }, [M]), G = u((e) => {
33
+ function v({ children: je, conversationId: f, conversationUrl: v, sessionApiKey: y, subConversations: b, subConversationIds: Fe }) {
34
+ let [x, S] = h("CONNECTING"), [C, w] = h("CONNECTING"), T = Ae.useRef(!1), E = Ae.useRef(!1), D = me(), O = pe(), k = l((e) => e.addEvent), Ie = l((e) => e.addEvents), Le = l((e) => e.clearEventsForConversation), { setErrorMessage: A, removeErrorMessage: Re, clearConnectionError: j } = _e(), M = ve((e) => e.consumeMatchingPendingMessage), { setExecutionStatus: N } = ee(), { appendInput: P, appendOutput: F } = t(), ze = e((e) => e.reset), [I, L] = h(!0), [R, Be] = h(null), { setPlanContent: z } = r(), { mutate: B } = we(), V = Ne(0), H = Ne(null), Ve = (e) => e?.toUpperCase().endsWith("PLAN.MD") ?? !1, U = d(() => {
35
+ j();
36
+ }, [j]), W = d((e) => {
37
37
  if (e.value.usage_to_metrics?.agent) {
38
38
  let t = e.value.usage_to_metrics.agent, n = {
39
39
  cost: t.accumulated_cost,
@@ -47,78 +47,90 @@ function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey:
47
47
  per_turn_token: t.accumulated_token_usage.per_turn_token
48
48
  } : null
49
49
  };
50
- Ee.getState().setMetrics(n);
50
+ Te.getState().setMetrics(n);
51
51
  }
52
- }, []), { data: K, isPending: q, isError: ze } = De(d), Be = !!d && q;
53
- Ne(() => {
54
- !K || K.events.length === 0 || Fe(K.events);
55
- }, [K, Fe]);
56
- let J = p(() => {
57
- if (q) return null;
58
- let e = K?.events ?? [], t = e[e.length - 1];
52
+ }, []), { data: G, isPending: K, isError: He } = Ee(f), Ue = !!f && K;
53
+ Me(() => {
54
+ let e = f ?? null;
55
+ l.getState().loadedConversationId !== e && (Le(e), ze());
56
+ }, [
57
+ f,
58
+ Le,
59
+ ze
60
+ ]), Me(() => {
61
+ if (!(!G || G.events.length === 0) && (Ie(G.events), f)) for (let e of G.events) c(e) && M(f, _(e));
62
+ }, [
63
+ G,
64
+ Ie,
65
+ f,
66
+ M
67
+ ]);
68
+ let q = m(() => {
69
+ if (K) return null;
70
+ let e = G?.events ?? [], t = e[e.length - 1];
59
71
  return !t || !("timestamp" in t) || !t.timestamp ? null : t.timestamp;
60
- }, [K, q]), Y = p(() => !d || !v || q && !ze ? null : Se(d, v), [
61
- d,
72
+ }, [G, K]), J = m(() => !f || !v || K && !He ? null : xe(f, v), [
73
+ f,
62
74
  v,
63
- q,
64
- ze
65
- ]), X = p(() => {
75
+ K,
76
+ He
77
+ ]), Y = m(() => {
66
78
  if (!b?.length) return null;
67
79
  let e = b[0];
68
- return !e?.id || !e.conversation_url ? null : Se(e.id, e.conversation_url);
69
- }, [b]), Ve = p(() => X ? S === "CONNECTING" || w === "CONNECTING" ? "CONNECTING" : S === "OPEN" && w === "OPEN" ? "OPEN" : S === "CLOSED" && w === "CLOSED" ? "CLOSED" : S === "CLOSING" || w === "CLOSING" ? "CLOSING" : "CLOSED" : S, [
70
- S,
71
- w,
72
- X
80
+ return !e?.id || !e.conversation_url ? null : xe(e.id, e.conversation_url);
81
+ }, [b]), We = m(() => Y ? x === "CONNECTING" || C === "CONNECTING" ? "CONNECTING" : x === "OPEN" && C === "OPEN" ? "OPEN" : x === "CLOSED" && C === "CLOSED" ? "CLOSED" : x === "CLOSING" || C === "CLOSING" ? "CLOSING" : "CLOSED" : x, [
82
+ x,
83
+ C,
84
+ Y
73
85
  ]);
74
- f(() => {
75
- z !== null && H.current >= z && L && R(!1);
86
+ p(() => {
87
+ R !== null && V.current >= R && I && L(!1);
76
88
  }, [
77
- z,
78
- L,
79
- H
80
- ]), f(() => {
81
- if (!L && U.current) {
82
- let { path: e, conversationId: t } = U.current;
83
- V({
89
+ R,
90
+ I,
91
+ V
92
+ ]), p(() => {
93
+ if (!I && H.current) {
94
+ let { path: e, conversationId: t } = H.current;
95
+ B({
84
96
  conversationId: t,
85
97
  filePath: e
86
98
  }, {
87
99
  onSuccess: (e) => {
88
- B(e);
100
+ z(e);
89
101
  },
90
102
  onError: (e) => {
91
103
  console.warn("Failed to read conversation file:", e);
92
104
  }
93
- }), U.current = null;
105
+ }), H.current = null;
94
106
  }
95
107
  }, [
96
- L,
97
- V,
98
- B
99
- ]), f(() => {
100
- E.current = !1, R(!!x?.length), Le(null), H.current = 0, U.current = null;
101
- }, [x]), f(() => {
102
- E.current = !1, D.current = !1, U.current = null;
103
- }, [d]);
104
- let He = p(() => Be || L, [Be, L]), Ue = u((t) => {
108
+ I,
109
+ B,
110
+ z
111
+ ]), p(() => {
112
+ T.current = !1, L(!!Fe?.length), Be(null), V.current = 0, H.current = null;
113
+ }, [Fe]), p(() => {
114
+ T.current = !1, E.current = !1, H.current = null;
115
+ }, [f]);
116
+ let X = m(() => Ue || I, [Ue, I]), Ge = d((t) => {
105
117
  try {
106
118
  let r = JSON.parse(t.data);
107
119
  if (re(r)) {
108
- let t = !c.getState().eventIds.has(r.id) && de(r) ? r : null;
109
- if (A(r), a(r)) {
120
+ let t = !l.getState().eventIds.has(r.id) && de(r) ? r : null;
121
+ if (k(r), a(r)) {
110
122
  let e = r;
111
- l({
123
+ u({
112
124
  message: e.detail,
113
125
  source: "conversation",
114
126
  metadata: {
115
127
  eventId: e.id,
116
128
  errorCode: e.code
117
129
  },
118
- posthog: O
119
- }), j(e.detail);
120
- } else W();
121
- if (ne(r) && l({
130
+ posthog: D
131
+ }), A(e.detail);
132
+ } else U();
133
+ if (ne(r) && u({
122
134
  message: r.error,
123
135
  source: "agent",
124
136
  metadata: {
@@ -126,51 +138,51 @@ function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey:
126
138
  toolName: r.tool_name,
127
139
  toolCallId: r.tool_call_id
128
140
  },
129
- posthog: O
130
- }), fe(r) && d && (N(d, _(r)), n(d, { draftMessage: null })), te(r) && xe(r, d || "test-conversation-id", k), i(r) && (ce(r) && P(r.value.execution_status), ie(r) && P(r.value), ue(r) && G(r)), o(r) && F(r.action.command), s(r) && I(r.observation.content.filter((e) => e.type === "text").map((e) => e.text).join("\n")), oe(r)) {
141
+ posthog: D
142
+ }), c(r) && f && (M(f, _(r)), n(f, { draftMessage: null })), te(r) && be(r, f || "test-conversation-id", O), i(r) && (ce(r) && N(r.value.execution_status), ie(r) && N(r.value), ue(r) && W(r)), o(r) && P(r.action.command), s(r) && F(r.observation.content.filter((e) => e.type === "text").map((e) => e.text).join("\n")), oe(r)) {
131
143
  let { screenshot_data: t } = r.observation;
132
144
  if (t) {
133
145
  let n = t.startsWith("data:") ? t : `data:image/png;base64,${t}`;
134
146
  e.getState().setScreenshotSrc(n);
135
147
  }
136
148
  }
137
- ae(r) && e.getState().setUrl(r.action.url), d && t && !t.observation.is_error && (Oe(d, t.observation.profile_name), t.observation.active_model && Ae(k, d, t.observation.active_model), ke(k, d)), se(r) && be(r.action);
149
+ ae(r) && e.getState().setUrl(r.action.url), f && t && !t.observation.is_error && (De(f, t.observation.profile_name), t.observation.active_model && ke(O, f, t.observation.active_model), Oe(O, f)), se(r) && ye(r.action);
138
150
  }
139
151
  } catch (e) {
140
152
  console.warn("Failed to parse WebSocket message as JSON:", e);
141
153
  }
142
154
  }, [
155
+ k,
143
156
  A,
144
- j,
157
+ M,
158
+ O,
159
+ f,
145
160
  N,
146
- k,
147
- d,
148
161
  P,
149
162
  F,
150
- I,
151
- G,
152
163
  W,
153
- O
154
- ]), We = u((e) => {
164
+ U,
165
+ D
166
+ ]), Ke = d((e) => {
155
167
  try {
156
168
  let t = JSON.parse(e.data);
157
- if (L && (H.current += 1, z !== null && H.current >= z && R(!1)), re(t)) {
158
- if (A({
169
+ if (I && (V.current += 1, R !== null && V.current >= R && L(!1)), re(t)) {
170
+ if (k({
159
171
  ...t,
160
172
  isFromPlanningAgent: !0
161
173
  }), a(t)) {
162
174
  let e = t;
163
- l({
175
+ u({
164
176
  message: e.detail,
165
177
  source: "planning_conversation",
166
178
  metadata: {
167
179
  eventId: e.id,
168
180
  errorCode: e.code
169
181
  },
170
- posthog: O
171
- }), j(e.detail);
172
- } else W();
173
- if (ne(t) && l({
182
+ posthog: D
183
+ }), A(e.detail);
184
+ } else U();
185
+ if (ne(t) && u({
174
186
  message: t.error,
175
187
  source: "planning_agent",
176
188
  metadata: {
@@ -178,20 +190,20 @@ function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey:
178
190
  toolName: t.tool_name,
179
191
  toolCallId: t.tool_call_id
180
192
  },
181
- posthog: O
182
- }), fe(t) && d && (N(d, _(t)), n(d, { draftMessage: null })), te(t) && xe(t, b?.[0]?.id || "test-conversation-id", k), i(t) && (ce(t) && P(t.value.execution_status), ie(t) && P(t.value), ue(t) && G(t)), o(t) && F(t.action.command), s(t) && I(t.observation.content.filter((e) => e.type === "text").map((e) => e.text).join("\n")), le(t)) {
193
+ posthog: D
194
+ }), c(t) && f && (M(f, _(t)), n(f, { draftMessage: null })), te(t) && be(t, b?.[0]?.id || "test-conversation-id", O), i(t) && (ce(t) && N(t.value.execution_status), ie(t) && N(t.value), ue(t) && W(t)), o(t) && P(t.action.command), s(t) && F(t.observation.content.filter((e) => e.type === "text").map((e) => e.text).join("\n")), le(t)) {
183
195
  let { path: e } = t.observation;
184
- if (Re(e)) {
196
+ if (Ve(e)) {
185
197
  let t = b?.[0]?.id;
186
- t && e && (L ? U.current = {
198
+ t && e && (I ? H.current = {
187
199
  path: e,
188
200
  conversationId: t
189
- } : V({
201
+ } : B({
190
202
  conversationId: t,
191
203
  filePath: e
192
204
  }, {
193
205
  onSuccess: (e) => {
194
- B(e);
206
+ z(e);
195
207
  },
196
208
  onError: (e) => {
197
209
  console.warn("Failed to read conversation file:", e);
@@ -204,48 +216,48 @@ function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey:
204
216
  console.warn("Failed to parse WebSocket message as JSON:", e);
205
217
  }
206
218
  }, [
207
- A,
208
- L,
209
- z,
210
- j,
211
- N,
212
219
  k,
220
+ I,
221
+ R,
222
+ A,
223
+ M,
224
+ O,
213
225
  b,
214
- d,
226
+ f,
227
+ N,
215
228
  P,
216
229
  F,
217
- I,
218
- V,
219
230
  B,
220
- G,
231
+ z,
221
232
  W,
222
- O
223
- ]), Ge = p(() => {
224
- let e = J ? {
233
+ U,
234
+ D
235
+ ]), qe = m(() => {
236
+ let e = q ? {
225
237
  resend_mode: "since",
226
- after_timestamp: J
238
+ after_timestamp: q
227
239
  } : { resend_mode: "all" };
228
240
  return y && (e.session_api_key = y), {
229
241
  queryParams: e,
230
242
  reconnect: { enabled: !0 },
231
243
  onOpen: () => {
232
- C("OPEN"), E.current = !0, M();
244
+ S("OPEN"), T.current = !0, j();
233
245
  },
234
246
  onClose: () => {
235
- C("CLOSED");
247
+ S("CLOSED");
236
248
  },
237
249
  onError: () => {
238
- C("CLOSED"), E.current && j(_e, "connection");
250
+ S("CLOSED"), T.current && A(ge, "connection");
239
251
  },
240
- onMessage: Ue
252
+ onMessage: Ge
241
253
  };
242
254
  }, [
243
- Ue,
255
+ Ge,
256
+ A,
244
257
  j,
245
- M,
246
258
  y,
247
- J
248
- ]), Ke = p(() => {
259
+ q
260
+ ]), Je = m(() => {
249
261
  let e = { resend_all: !0 };
250
262
  y && (e.session_api_key = y);
251
263
  let t = b?.[0];
@@ -253,52 +265,52 @@ function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey:
253
265
  queryParams: e,
254
266
  reconnect: { enabled: !0 },
255
267
  onOpen: async () => {
256
- if (T("OPEN"), D.current = !0, M(), t?.id && t.conversation_url) try {
257
- let e = await we.getEventCount(t.id, t.conversation_url, t.session_api_key);
258
- Le(e), e === 0 && R(!1);
268
+ if (w("OPEN"), E.current = !0, j(), t?.id && t.conversation_url) try {
269
+ let e = await Ce.getEventCount(t.id, t.conversation_url, t.session_api_key);
270
+ Be(e), e === 0 && L(!1);
259
271
  } catch {
260
- R(!1);
272
+ L(!1);
261
273
  }
262
274
  },
263
275
  onClose: () => {
264
- T("CLOSED");
276
+ w("CLOSED");
265
277
  },
266
278
  onError: () => {
267
- T("CLOSED"), D.current && j(_e, "connection");
279
+ w("CLOSED"), E.current && A(ge, "connection");
268
280
  },
269
- onMessage: We
281
+ onMessage: Ke
270
282
  };
271
283
  }, [
272
- We,
284
+ Ke,
285
+ A,
273
286
  j,
274
- M,
275
287
  y,
276
288
  b
277
- ]), { socket: Z, reconnect: qe } = ge(Y || "", Ge), { socket: Q, reconnect: Je } = ge(X || "", Ke), Ye = u(() => {
278
- if (Ie(), r.getState().conversationMode === "plan" && X) {
279
- Je();
289
+ ]), { socket: Z, reconnect: Ye } = he(J || "", qe), { socket: Q, reconnect: Xe } = he(Y || "", Je), Ze = d(() => {
290
+ if (Re(), r.getState().conversationMode === "plan" && Y) {
291
+ Xe();
280
292
  return;
281
293
  }
282
- qe();
294
+ Ye();
283
295
  }, [
284
- X,
285
- qe,
286
- Je,
287
- Ie
288
- ]), $ = u(async (e) => {
296
+ Y,
297
+ Ye,
298
+ Xe,
299
+ Re
300
+ ]), $ = d(async (e) => {
289
301
  let t = r.getState().conversationMode === "plan" ? Q : Z;
290
302
  if (t?.readyState !== WebSocket.OPEN) {
291
- if (!d) {
303
+ if (!f) {
292
304
  let e = /* @__PURE__ */ Error("No conversation ID available");
293
- throw j(e.message), e;
305
+ throw A(e.message), e;
294
306
  }
295
307
  try {
296
- return await new pe(Ce()).sendEvent(d, {
308
+ return await new fe(Se()).sendEvent(f, {
297
309
  role: "user",
298
310
  content: e.content
299
311
  }, { run: !0 }), { queued: !0 };
300
312
  } catch (e) {
301
- throw j(e instanceof Error ? e.message : "Failed to queue message for delivery"), e;
313
+ throw A(e instanceof Error ? e.message : "Failed to queue message for delivery"), e;
302
314
  }
303
315
  }
304
316
  try {
@@ -307,72 +319,72 @@ function v({ children: Me, conversationId: d, conversationUrl: v, sessionApiKey:
307
319
  run: !0
308
320
  })), { queued: !1 };
309
321
  } catch (e) {
310
- throw j(e instanceof Error ? e.message : "Failed to send message"), e;
322
+ throw A(e instanceof Error ? e.message : "Failed to send message"), e;
311
323
  }
312
324
  }, [
313
325
  Z,
314
326
  Q,
315
- j,
316
- d
327
+ A,
328
+ f
317
329
  ]);
318
- f(() => {
319
- Z && Y && (() => {
330
+ p(() => {
331
+ Z && J && (() => {
320
332
  switch (Z.readyState) {
321
333
  case WebSocket.CONNECTING:
322
- C("CONNECTING");
334
+ S("CONNECTING");
323
335
  break;
324
336
  case WebSocket.OPEN:
325
- C("OPEN");
337
+ S("OPEN");
326
338
  break;
327
339
  case WebSocket.CLOSING:
328
- C("CLOSING");
340
+ S("CLOSING");
329
341
  break;
330
342
  case WebSocket.CLOSED:
331
- C("CLOSED");
343
+ S("CLOSED");
332
344
  break;
333
345
  default:
334
- C("CLOSED");
346
+ S("CLOSED");
335
347
  break;
336
348
  }
337
349
  })();
338
- }, [Z, Y]), f(() => {
339
- Q && X && (() => {
350
+ }, [Z, J]), p(() => {
351
+ Q && Y && (() => {
340
352
  switch (Q.readyState) {
341
353
  case WebSocket.CONNECTING:
342
- T("CONNECTING");
354
+ w("CONNECTING");
343
355
  break;
344
356
  case WebSocket.OPEN:
345
- T("OPEN");
357
+ w("OPEN");
346
358
  break;
347
359
  case WebSocket.CLOSING:
348
- T("CLOSING");
360
+ w("CLOSING");
349
361
  break;
350
362
  case WebSocket.CLOSED:
351
- T("CLOSED");
363
+ w("CLOSED");
352
364
  break;
353
365
  default:
354
- T("CLOSED");
366
+ w("CLOSED");
355
367
  break;
356
368
  }
357
369
  })();
358
- }, [Q, X]);
359
- let Xe = p(() => ({
360
- connectionState: Ve,
370
+ }, [Q, Y]);
371
+ let Qe = m(() => ({
372
+ connectionState: We,
361
373
  sendMessage: $,
362
- isLoadingHistory: He,
363
- reconnect: Ye
374
+ isLoadingHistory: X,
375
+ reconnect: Ze
364
376
  }), [
365
- Ve,
377
+ We,
366
378
  $,
367
- He,
368
- Ye
379
+ X,
380
+ Ze
369
381
  ]);
370
382
  return /* @__PURE__ */ Pe(g.Provider, {
371
- value: Xe,
372
- children: Me
383
+ value: Qe,
384
+ children: je
373
385
  });
374
386
  }
375
- var y = () => d(g) || null;
387
+ var y = () => f(g) || null;
376
388
  //#endregion
377
389
  export { v as ConversationWebSocketProvider, y as useConversationWebSocket };
378
390