@openhands/agent-canvas 1.3.0 → 1.5.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.
Files changed (674) hide show
  1. package/README.md +11 -12
  2. package/README.windows.md +4 -2
  3. package/build/assets/{Trans-DY6toRDu.js → Trans-DqF_OEZB.js} +1 -1
  4. package/build/assets/{acp-providers-Djl6vNn-.js → acp-providers-BQwoUBpe.js} +1 -1
  5. package/build/assets/active-backend-context-BCXRv5pm.js +1 -0
  6. package/build/assets/{add-backend-modal-DljoP9lc.js → add-backend-modal-BKHzq5no.js} +1 -1
  7. package/build/assets/{agent-profiles-settings-BJMmTZgv.js → agent-profiles-settings-CEp5CIz8.js} +1 -1
  8. package/build/assets/agent-server-compatibility-D6DSanlx.js +1 -0
  9. package/build/assets/agent-server-conversation-service.api-cylugfDz.js +41 -0
  10. package/build/assets/{agent-settings-lUknCeaF.js → agent-settings-C-tann3x.js} +2 -2
  11. package/build/assets/agent-settings-DGUKNSnU.js +1 -0
  12. package/build/assets/{alert-banner-Bpf2NQJq.js → alert-banner-Dd4woGbm.js} +1 -1
  13. package/build/assets/api-key-entry-screen-Bll_CkuQ.js +1 -0
  14. package/build/assets/app-settings-BpViWwpC.js +1 -0
  15. package/build/assets/automation-detail-Z9dN2f5l.js +2 -0
  16. package/build/assets/automation-export-D5uL0Tf8.js +2 -0
  17. package/build/assets/automations-list-BMOWcqzZ.js +1 -0
  18. package/build/assets/{back-nav-button-CUS2mi-U.js → back-nav-button-ZUDTMOTB.js} +1 -1
  19. package/build/assets/backend-form-modal-DhBT8P4g.js +1 -0
  20. package/build/assets/{backend-synced-settings-badge-CanzmG12.js → backend-synced-settings-badge-Db_REKVw.js} +1 -1
  21. package/build/assets/{base-modal-BuF2f0YL.js → base-modal-Cb0C6m0Q.js} +1 -1
  22. package/build/assets/{bot-D7eUAuSB.js → bot-C-EA6685.js} +1 -1
  23. package/build/assets/{brand-button-vMVuyDXu.js → brand-button-2Tp3aXk1.js} +1 -1
  24. package/build/assets/{browser-BifzWIBd.js → browser-QYLVr1kS.js} +2 -2
  25. package/build/assets/browser-store-BGXOGo-R.js +1 -0
  26. package/build/assets/{browser-tab-CkkqJnqw.js → browser-tab-BTTP1OE2.js} +1 -1
  27. package/build/assets/canvas-ui-BhxjoA1f.js +1 -0
  28. package/build/assets/{chat-send-button-B_jc5z5C.js → chat-send-button-BZHG2hAW.js} +1 -1
  29. package/build/assets/check-TbOEtHKj.js +1 -0
  30. package/build/assets/{chevron-down-CI8A6tet.js → chevron-down-D7IvFMBM.js} +1 -1
  31. package/build/assets/{circle-plus-check-toggle-C5YxjxvI.js → circle-plus-check-toggle-QQJKUnF6.js} +1 -1
  32. package/build/assets/client-source-Biqarhgr.js +1 -0
  33. package/build/assets/cloud-funnel-analytics-D-27T5Ao.js +1 -0
  34. package/build/assets/{combobox-caret-DoObzqf4.js → combobox-caret-A5jMVHgE.js} +1 -1
  35. package/build/assets/{command-menu-D-JV3Wqm.js → command-menu-BMVEme4H.js} +1 -1
  36. package/build/assets/{command-store-D8J5LMW1.js → command-store-jrWX_CcW.js} +1 -1
  37. package/build/assets/condenser-settings-CIa6eyB4.js +1 -0
  38. package/build/assets/{confirmation-modal-BGLu6XJN.js → confirmation-modal-4n_944zq.js} +1 -1
  39. package/build/assets/{context-menu-list-item-BD5_EaKN.js → context-menu-list-item-DvfFic5I.js} +1 -1
  40. package/build/assets/conversation-CHnEXGRM.js +1 -0
  41. package/build/assets/conversation-D4o4dG2t.js +89 -0
  42. package/build/assets/conversation-panel-11FjLCId.js +1 -0
  43. package/build/assets/conversation-service.api-0JG_fF9d.js +1 -0
  44. package/build/assets/conversation-state-store-JiUQp02U.js +1 -0
  45. package/build/assets/{conversation-store-LptbOvKa.js → conversation-store-BCSpLuEf.js} +1 -1
  46. package/build/assets/{conversation-tab-empty-state-B2dDYEwf.js → conversation-tab-empty-state-BUhKVwoi.js} +1 -1
  47. package/build/assets/{copy-3JCw_XFB.js → copy-D1YGjP-C.js} +1 -1
  48. package/build/assets/{copy-to-clipboard-button-CaR52OnA.js → copy-to-clipboard-button-Dp4Q_hXi.js} +1 -1
  49. package/build/assets/declaration-BGsHjPEW.js +1 -0
  50. package/build/assets/{device-verify-BsznkV-a.js → device-verify-CM086oKs.js} +1 -1
  51. package/build/assets/{dropdown-classes-DJSXeLqc.js → dropdown-classes-DZq0BQjb.js} +1 -1
  52. package/build/assets/{ellipsis-button-C5Z-tPFp.js → ellipsis-button-TPJdyxnK.js} +1 -1
  53. package/build/assets/{entry.client-JixNvFrr.js → entry.client-DypYHsYm.js} +2 -2
  54. package/build/assets/{enum-filter-dropdown-DXbVwiNZ.js → enum-filter-dropdown-CW_mBg0e.js} +1 -1
  55. package/build/assets/{environment-switch-overlay-DZQfRGTx.js → environment-switch-overlay-6laJch-9.js} +1 -1
  56. package/build/assets/{extensions-hub-DfvgqzTc.js → extensions-hub-BJFbFfKS.js} +1 -1
  57. package/build/assets/{extensions-navigation-D9i0DL62.js → extensions-navigation-DqSl7CJw.js} +1 -1
  58. package/build/assets/{external-link-D2zJjE9G.js → external-link-lhdITPqq.js} +1 -1
  59. package/build/assets/files-tab-c316dKAq.js +1 -0
  60. package/build/assets/{files-tab-store-DJsPxYdg.js → files-tab-store-tfCav6bB.js} +1 -1
  61. package/build/assets/{form-control-classes-ChpNBe9n.js → form-control-classes-CvUaw8_L.js} +1 -1
  62. package/build/assets/format-time-delta-DhDbkD7V.js +1 -0
  63. package/build/assets/git-provider-icon-DUb2pEos.js +1 -0
  64. package/build/assets/home-BQ-DC06B.js +1 -0
  65. package/build/assets/home-D7ds4Jyw.js +1 -0
  66. package/build/assets/index-home-BRFDWs_4.js +1 -0
  67. package/build/assets/install-server-modal-CvHvzZj3.js +1 -0
  68. package/build/assets/{launch-BgIlZLSX.js → launch-A47TK2Me.js} +1 -1
  69. package/build/assets/lesson-plan-DSf95kQ2.js +4 -0
  70. package/build/assets/{list-todo-BfH6yYUK.js → list-todo-CAtvkzcy.js} +1 -1
  71. package/build/assets/llm-not-configured-banner-B7DR8SPs.js +27 -0
  72. package/build/assets/llm-settings-Ch4ZbW3c.js +1 -0
  73. package/build/assets/llm-settings-Cvi7q4ox.js +1 -0
  74. package/build/assets/llm-subscription-service-Cz1yBBvE.js +1 -0
  75. package/build/assets/loader-circle-CsAsfLIs.js +1 -0
  76. package/build/assets/{loading-spinner-BLdswi6q.js → loading-spinner-Txxx1I1p.js} +1 -1
  77. package/build/assets/manage-backends-modal-DAVhNUCe.js +1 -0
  78. package/build/assets/manifest-958c741a.js +1 -0
  79. package/build/assets/{markdown-renderer-DMT7Zkpd.js → markdown-renderer-B6cJJ_MN.js} +1 -1
  80. package/build/assets/{mcp-CHkklDMv.js → mcp-BwssgMpg.js} +2 -2
  81. package/build/assets/{messages-B3RugH7P.js → messages-D8MeG2ZQ.js} +26 -26
  82. package/build/assets/{modal-body-DouOE5KH.js → modal-body-CDZdZ-eT.js} +1 -1
  83. package/build/assets/{modal-classes-Cf-4tbHz.js → modal-classes-B4oit_4c.js} +1 -1
  84. package/build/assets/{modal-close-button-B6CfxxJj.js → modal-close-button-DQElFMPo.js} +1 -1
  85. package/build/assets/model-selector-BxTbbKub.js +1 -0
  86. package/build/assets/{navigation-link-D8hfwvxI.js → navigation-link-imH6S7h2.js} +1 -1
  87. package/build/assets/onboarding-CyicadGt.js +1 -0
  88. package/build/assets/onboarding-modal-DQwihcTz.js +1 -0
  89. package/build/assets/option-service.api-DAkg_F7p.js +1 -0
  90. package/build/assets/organization-service.api-QknzKDh3.js +1 -0
  91. package/build/assets/package-Dk_VtWJ4.js +1 -0
  92. package/build/assets/path-utils-BECGet7G.js +1 -0
  93. package/build/assets/{pencil-Dj2XjKmI.js → pencil-CWhApFIT.js} +1 -1
  94. package/build/assets/{plan-components-CcCBmCzW.js → plan-components-CgPHWz3E.js} +1 -1
  95. package/build/assets/{planner-tab-CCqdXxkL.js → planner-tab-DPKHmMAX.js} +1 -1
  96. package/build/assets/plugins-management-service-DuTTxquo.js +1 -0
  97. package/build/assets/profiles-service.api-D6jvZOWu.js +1 -0
  98. package/build/assets/providers-B8pxQK8x.js +1 -0
  99. package/build/assets/proxy-CuhhyjdX.js +1 -0
  100. package/build/assets/{recommended-automations-launcher-CVEF_1pc.js → recommended-automations-launcher-DA6DWS7V.js} +1 -1
  101. package/build/assets/{refresh-cw-DM82EIyx.js → refresh-cw-B9B7-vsy.js} +1 -1
  102. package/build/assets/root-BhP6bTBB.js +2 -0
  103. package/build/assets/root-CYWeTrWE.css +1 -0
  104. package/build/assets/root-layout-oBaHHW4s.js +2 -0
  105. package/build/assets/{runtime-waiting-state-BsXLElvN.js → runtime-waiting-state-DeD9G7yJ.js} +1 -1
  106. package/build/assets/schema-field-BOLdL_U7.js +1 -0
  107. package/build/assets/sdk-section-page-ZIltERxf.js +1 -0
  108. package/build/assets/{sdk-settings-schema-Cv7M9eSe.js → sdk-settings-schema-Ba_Pa9uf.js} +1 -1
  109. package/build/assets/search-dIQ09UY2.js +1 -0
  110. package/build/assets/secrets-service-50DElFny.js +1 -0
  111. package/build/assets/{secrets-settings-DxTx9HgU.js → secrets-settings-Digl7JLe.js} +1 -1
  112. package/build/assets/{segmented-toggle-DyQqPhoD.js → segmented-toggle-C1-ZVyr5.js} +1 -1
  113. package/build/assets/settings-BfgLHsgd.js +1 -0
  114. package/build/assets/{settings-dropdown-input-BjunGXJb.js → settings-dropdown-input-BD5C9fBn.js} +1 -1
  115. package/build/assets/{settings-index-BjeuYFFa.js → settings-index-CODBijya.js} +1 -1
  116. package/build/assets/{settings-input-bD6npsDm.js → settings-input-CzNOq-Pj.js} +1 -1
  117. package/build/assets/{settings-list-classes-Dp_OgzN0.js → settings-list-classes-CuxH9ZoR.js} +1 -1
  118. package/build/assets/settings-modal-BcSWpKI0.js +1 -0
  119. package/build/assets/settings-service.api-Bsu1PvYO.js +1 -0
  120. package/build/assets/{settings-switch-5cuxl8Dc.js → settings-switch-DqmHAfWJ.js} +1 -1
  121. package/build/assets/{settings-utils-BMdG65By.js → settings-utils-B1lBErvV.js} +1 -1
  122. package/build/assets/shared-conversation-CDskdmrb.js +1 -0
  123. package/build/assets/{sidebar-layout-DuzJMMw-.js → sidebar-layout-Cn6eQaEI.js} +1 -1
  124. package/build/assets/{sidebar-mobile-menu-toggle-CMmAYkh8.js → sidebar-mobile-menu-toggle-DmCmZgq1.js} +1 -1
  125. package/build/assets/{sidebar-nav-link-5AlTT5-j.js → sidebar-nav-link-DMc8AIe7.js} +1 -1
  126. package/build/assets/{sidebar-store-CZuE8AH5.js → sidebar-store-DXWSCFpa.js} +1 -1
  127. package/build/assets/{skill-card-pill-row-eTIkE4nz.js → skill-card-pill-row-DOIWjiMF.js} +1 -1
  128. package/build/assets/skills-plugins-DLgINYuY.js +1 -0
  129. package/build/assets/{skills-settings-BYn4-AQQ.js → skills-settings-DPiCWalR.js} +2 -2
  130. package/build/assets/{square-chevron-right-Czw3FFWc.js → square-chevron-right-DE-JN-2Z.js} +1 -1
  131. package/build/assets/{styled-tooltip-CgX2oRaK.js → styled-tooltip-CvsjHuIf.js} +1 -1
  132. package/build/assets/{suspense-X5dBsJzn.js → suspense-DmZ3MSSh.js} +1 -1
  133. package/build/assets/{task-list-tab-0k9PhuqO.js → task-list-tab-CuhcDycu.js} +1 -1
  134. package/build/assets/telemetry-DHiTRl5_.js +2 -0
  135. package/build/assets/{terminal-BsGcSpRS.js → terminal-CVqF-tCD.js} +1 -1
  136. package/build/assets/{toggle-switch-2j5wwR85.js → toggle-switch-CS0ClOy2.js} +1 -1
  137. package/build/assets/{trash-2-Be_7y3Mn.js → trash-2-BU6BlW4i.js} +1 -1
  138. package/build/assets/{typography-D8mHDeNG.js → typography-CQn9wyEX.js} +1 -1
  139. package/build/assets/use-acp-credential-form-LlfZO_DD.js +1 -0
  140. package/build/assets/{use-activate-agent-profile-WaAZYz4E.js → use-activate-agent-profile-DpQjsXM0.js} +1 -1
  141. package/build/assets/{use-active-agent-profile-CYY3vGar.js → use-active-agent-profile-Gw_uJujV.js} +1 -1
  142. package/build/assets/{use-active-conversation-D-r929nx.js → use-active-conversation-B0sttISF.js} +1 -1
  143. package/build/assets/use-agent-profiles-LHZEK0Gg.js +1 -0
  144. package/build/assets/{use-agent-state-DijdVAQ0.js → use-agent-state-C5uA0bRj.js} +1 -1
  145. package/build/assets/use-backends-health-DKt1SmiU.js +1 -0
  146. package/build/assets/{use-can-manage-org-profiles-BEo0peGn.js → use-can-manage-org-profiles-BAtqsbCi.js} +1 -1
  147. package/build/assets/use-cloud-current-user-id-C8m1oBy4.js +1 -0
  148. package/build/assets/use-config-CXy4vD0H.js +1 -0
  149. package/build/assets/use-create-conversation-CWQGNQ9J.js +1 -0
  150. package/build/assets/{use-create-secret-D5O5qdWC.js → use-create-secret-BIrsX3OB.js} +1 -1
  151. package/build/assets/{use-event-store-DjgU4wfO.js → use-event-store-CsD17BKu.js} +1 -1
  152. package/build/assets/{use-handle-plan-click-Mn_SNTCh.js → use-handle-plan-click-DEuO7Byo.js} +1 -1
  153. package/build/assets/use-is-authed-Dvbpiu3B.js +1 -0
  154. package/build/assets/{use-launch-skill-in-chat-BnoDgvAy.js → use-launch-skill-in-chat-CdHOoQGM.js} +1 -1
  155. package/build/assets/use-llm-profiles-DQpQxVOD.js +1 -0
  156. package/build/assets/use-plugins-marketplace-Bkk07W_M.js +1 -0
  157. package/build/assets/use-runtime-is-ready-D4pkGT6E.js +1 -0
  158. package/build/assets/use-save-agent-profile-BxEsjnW0.js +1 -0
  159. package/build/assets/{use-save-settings-D1HoCDbn.js → use-save-settings-ioSUMqbE.js} +1 -1
  160. package/build/assets/use-settings-DNJC4gqu.js +1 -0
  161. package/build/assets/use-settings-nav-items-BUsrDbVR.js +16 -0
  162. package/build/assets/use-skills-BsmKm23M.js +1 -0
  163. package/build/assets/{use-task-list-AVBLbbcR.js → use-task-list-rs7Xbzl8.js} +1 -1
  164. package/build/assets/{use-tracking-2ZwQwpg_.js → use-tracking-poxQHMwR.js} +1 -1
  165. package/build/assets/{use-user-conversation-OAfenBRG.js → use-user-conversation-B337kUKB.js} +1 -1
  166. package/build/assets/{useMutation-DCE9RcgK.js → useMutation-u8UgRgDK.js} +1 -1
  167. package/build/assets/{useMutationState-BUab8Kxr.js → useMutationState-OnAsCLA_.js} +1 -1
  168. package/build/assets/{useQueries-CRzaAqzH.js → useQueries-BpIlT8Mt.js} +1 -1
  169. package/build/assets/{useQuery-CpjHYtZc.js → useQuery-D5pEZbY0.js} +1 -1
  170. package/build/assets/{useTranslation-CDRCKC9-.js → useTranslation-Cbf5AGg_.js} +1 -1
  171. package/build/assets/{utils-D3U3rlqr.js → utils-DB9LsAzA.js} +1 -1
  172. package/build/assets/{vendor~browser-Cvg7jXCP.js → vendor~browser-5Njjw1Cl.js} +1 -1
  173. package/build/assets/{vendor~browser-tab-Di0kh5Zw.js → vendor~browser-tab-Xn94EtUo.js} +1 -1
  174. package/build/assets/{vendor~entry.client-9tWQ_Ugw.js → vendor~entry.client-DDuH4--y.js} +1 -1
  175. package/build/assets/{vendor~entry.client-D6BtSOtn.js → vendor~entry.client-DQGrNspu.js} +1 -1
  176. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dhilvkxv-BIieS_OD.js +2 -0
  177. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~iztiaf2o-rqo6vRFz.js +185 -0
  178. package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ljq5gbus-B2XD4bi2.js} +1 -1
  179. package/build/assets/{vendor~files-tab-B02k3xvx.js → vendor~files-tab-CiC3-lGh.js} +1 -1
  180. package/build/assets/{vendor~home~conversation-panel~conversation-CYMF9JYB.js → vendor~index-home~home~conversation-panel~conversation-ChmYLVgz.js} +1 -1
  181. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-9UMeuPV6.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B8XNNEQZ.js} +1 -1
  182. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-d8aETPbZ.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CnJRLn5s.js} +1 -1
  183. package/build/assets/vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DWteoTyr.js +2 -0
  184. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-D7EUmQ8Y.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Dc5nKwLO.js} +1 -1
  185. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BD0GaRGa.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-tlf6AnDe.js} +1 -1
  186. package/build/assets/{vendor~launch-CHXA9cJu.js → vendor~launch-28DK5Rsl.js} +1 -1
  187. package/build/assets/{vendor~root-layout~conversation-panel~conversation-CpiTHpHl.js → vendor~root-layout~conversation-panel~conversation-8tIsyrPj.js} +1 -1
  188. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-_TdZcNMD.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-lYNG9C1U.js} +1 -1
  189. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation-Cn2jwSga.js → vendor~root-layout~index-home~home~conversation-panel~conversation-Zhq6xAxR.js} +1 -1
  190. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js → vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation~aler~gfu7qdtz-B81b08bw.js} +1 -1
  191. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~enjl5xdm-mMKDm94D.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~ftka0fnu-jpyLM1Nn.js} +2 -2
  192. package/build/assets/{verification-settings-DnXS6VWv.js → verification-settings-HRgEM-_3.js} +1 -1
  193. package/build/assets/x-ZE4iplpF.js +1 -0
  194. package/build/index.html +4 -4
  195. package/build/locales/ar/openhands.json +9 -0
  196. package/build/locales/ca/openhands.json +9 -0
  197. package/build/locales/de/openhands.json +9 -0
  198. package/build/locales/en/openhands.json +10 -1
  199. package/build/locales/es/openhands.json +9 -0
  200. package/build/locales/fr/openhands.json +9 -0
  201. package/build/locales/it/openhands.json +9 -0
  202. package/build/locales/ja/openhands.json +9 -0
  203. package/build/locales/ko-KR/openhands.json +9 -0
  204. package/build/locales/no/openhands.json +9 -0
  205. package/build/locales/pt/openhands.json +9 -0
  206. package/build/locales/tr/openhands.json +9 -0
  207. package/build/locales/uk/openhands.json +9 -0
  208. package/build/locales/zh-CN/openhands.json +9 -0
  209. package/build/locales/zh-TW/openhands.json +9 -0
  210. package/config/defaults.json +5 -4
  211. package/dist/api/agent-server-adapter.cjs +3 -3
  212. package/dist/api/agent-server-adapter.cjs.map +1 -1
  213. package/dist/api/agent-server-adapter.d.ts +9 -1
  214. package/dist/api/agent-server-adapter.js +105 -102
  215. package/dist/api/agent-server-adapter.js.map +1 -1
  216. package/dist/api/agent-server-config.cjs +1 -1
  217. package/dist/api/agent-server-config.cjs.map +1 -1
  218. package/dist/api/agent-server-config.d.ts +3 -0
  219. package/dist/api/agent-server-config.js +45 -23
  220. package/dist/api/agent-server-config.js.map +1 -1
  221. package/dist/api/backend-registry/auth.cjs +1 -1
  222. package/dist/api/backend-registry/auth.cjs.map +1 -1
  223. package/dist/api/backend-registry/auth.js +1 -1
  224. package/dist/api/backend-registry/auth.js.map +1 -1
  225. package/dist/api/backend-registry/default-backend.cjs +1 -1
  226. package/dist/api/backend-registry/default-backend.cjs.map +1 -1
  227. package/dist/api/backend-registry/default-backend.d.ts +3 -0
  228. package/dist/api/backend-registry/default-backend.js +22 -10
  229. package/dist/api/backend-registry/default-backend.js.map +1 -1
  230. package/dist/api/backend-registry/storage.cjs +1 -1
  231. package/dist/api/backend-registry/storage.cjs.map +1 -1
  232. package/dist/api/backend-registry/storage.js +38 -33
  233. package/dist/api/backend-registry/storage.js.map +1 -1
  234. package/dist/api/backend-registry/types.d.ts +2 -0
  235. package/dist/api/canvas-ui-client-tool.cjs +38 -0
  236. package/dist/api/canvas-ui-client-tool.cjs.map +1 -0
  237. package/dist/api/canvas-ui-client-tool.d.ts +14 -0
  238. package/dist/api/canvas-ui-client-tool.js +47 -0
  239. package/dist/api/canvas-ui-client-tool.js.map +1 -0
  240. package/dist/api/client-source.cjs +2 -0
  241. package/dist/api/client-source.cjs.map +1 -0
  242. package/dist/api/client-source.d.ts +9 -0
  243. package/dist/api/client-source.js +10 -0
  244. package/dist/api/client-source.js.map +1 -0
  245. package/dist/api/cloud/client.cjs +2 -0
  246. package/dist/api/cloud/client.cjs.map +1 -0
  247. package/dist/api/cloud/client.d.ts +4 -0
  248. package/dist/api/cloud/client.js +38 -0
  249. package/dist/api/cloud/client.js.map +1 -0
  250. package/dist/api/cloud/conversation-service.api.cjs +1 -1
  251. package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
  252. package/dist/api/cloud/conversation-service.api.js +33 -31
  253. package/dist/api/cloud/conversation-service.api.js.map +1 -1
  254. package/dist/api/cloud/organization-service.api.cjs +1 -1
  255. package/dist/api/cloud/organization-service.api.cjs.map +1 -1
  256. package/dist/api/cloud/organization-service.api.js +11 -10
  257. package/dist/api/cloud/organization-service.api.js.map +1 -1
  258. package/dist/api/cloud/proxy.cjs +1 -1
  259. package/dist/api/cloud/proxy.cjs.map +1 -1
  260. package/dist/api/cloud/proxy.d.ts +2 -40
  261. package/dist/api/cloud/proxy.js +14 -39
  262. package/dist/api/cloud/proxy.js.map +1 -1
  263. package/dist/api/conversation-metadata-store.cjs +1 -1
  264. package/dist/api/conversation-metadata-store.cjs.map +1 -1
  265. package/dist/api/conversation-metadata-store.d.ts +2 -9
  266. package/dist/api/conversation-metadata-store.js +13 -9
  267. package/dist/api/conversation-metadata-store.js.map +1 -1
  268. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  269. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  270. package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +2 -1
  271. package/dist/api/conversation-service/agent-server-conversation-service.api.js +98 -88
  272. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  273. package/dist/api/conversation-service/agent-server-conversation-service.types.d.ts +5 -0
  274. package/dist/api/device-flow-client.cjs +1 -1
  275. package/dist/api/device-flow-client.cjs.map +1 -1
  276. package/dist/api/device-flow-client.d.ts +4 -58
  277. package/dist/api/device-flow-client.js +8 -98
  278. package/dist/api/device-flow-client.js.map +1 -1
  279. package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
  280. package/dist/api/git-service/agent-server-git-service.api.cjs.map +1 -1
  281. package/dist/api/git-service/agent-server-git-service.api.d.ts +10 -2
  282. package/dist/api/git-service/agent-server-git-service.api.js +107 -40
  283. package/dist/api/git-service/agent-server-git-service.api.js.map +1 -1
  284. package/dist/api/open-hands.types.d.ts +11 -0
  285. package/dist/api/secrets-service.cjs +1 -1
  286. package/dist/api/secrets-service.cjs.map +1 -1
  287. package/dist/api/secrets-service.js +15 -14
  288. package/dist/api/secrets-service.js.map +1 -1
  289. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs +1 -1
  290. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs.map +1 -1
  291. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js +73 -64
  292. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js.map +1 -1
  293. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.cjs +2 -2
  294. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.cjs.map +1 -1
  295. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.js +2 -0
  296. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.js.map +1 -1
  297. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  298. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  299. package/dist/components/features/backends/backend-form-modal.d.ts +7 -3
  300. package/dist/components/features/backends/backend-form-modal.js +216 -201
  301. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  302. package/dist/components/features/backends/backend-row.cjs +1 -1
  303. package/dist/components/features/backends/backend-row.cjs.map +1 -1
  304. package/dist/components/features/backends/backend-row.js +2 -1
  305. package/dist/components/features/backends/backend-row.js.map +1 -1
  306. package/dist/components/features/backends/backend-selector.cjs +1 -1
  307. package/dist/components/features/backends/backend-selector.cjs.map +1 -1
  308. package/dist/components/features/backends/backend-selector.js +51 -51
  309. package/dist/components/features/backends/backend-selector.js.map +1 -1
  310. package/dist/components/features/backends/device-flow-auth.cjs +1 -1
  311. package/dist/components/features/backends/device-flow-auth.cjs.map +1 -1
  312. package/dist/components/features/backends/device-flow-auth.d.ts +4 -1
  313. package/dist/components/features/backends/device-flow-auth.js +38 -38
  314. package/dist/components/features/backends/device-flow-auth.js.map +1 -1
  315. package/dist/components/features/chat/chat-interface.cjs +2 -2
  316. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  317. package/dist/components/features/chat/chat-interface.js +173 -165
  318. package/dist/components/features/chat/chat-interface.js.map +1 -1
  319. package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
  320. package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
  321. package/dist/components/features/chat/components/chat-input-actions.d.ts +2 -1
  322. package/dist/components/features/chat/components/chat-input-actions.js +44 -43
  323. package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
  324. package/dist/components/features/chat/components/chat-input-container.cjs +1 -1
  325. package/dist/components/features/chat/components/chat-input-container.cjs.map +1 -1
  326. package/dist/components/features/chat/components/chat-input-container.d.ts +2 -1
  327. package/dist/components/features/chat/components/chat-input-container.js +20 -19
  328. package/dist/components/features/chat/components/chat-input-container.js.map +1 -1
  329. package/dist/components/features/chat/components/chat-input-profile-picker.cjs +1 -1
  330. package/dist/components/features/chat/components/chat-input-profile-picker.cjs.map +1 -1
  331. package/dist/components/features/chat/components/chat-input-profile-picker.js +44 -32
  332. package/dist/components/features/chat/components/chat-input-profile-picker.js.map +1 -1
  333. package/dist/components/features/chat/components/resolve-picker-kind.cjs +1 -1
  334. package/dist/components/features/chat/components/resolve-picker-kind.cjs.map +1 -1
  335. package/dist/components/features/chat/components/resolve-picker-kind.d.ts +10 -22
  336. package/dist/components/features/chat/components/resolve-picker-kind.js +6 -3
  337. package/dist/components/features/chat/components/resolve-picker-kind.js.map +1 -1
  338. package/dist/components/features/chat/custom-chat-input.cjs +1 -1
  339. package/dist/components/features/chat/custom-chat-input.cjs.map +1 -1
  340. package/dist/components/features/chat/custom-chat-input.d.ts +2 -1
  341. package/dist/components/features/chat/custom-chat-input.js +52 -51
  342. package/dist/components/features/chat/custom-chat-input.js.map +1 -1
  343. package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
  344. package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
  345. package/dist/components/features/chat/interactive-chat-box.d.ts +2 -1
  346. package/dist/components/features/chat/interactive-chat-box.js +9 -8
  347. package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
  348. package/dist/components/features/diff-viewer/commit-list.cjs +2 -0
  349. package/dist/components/features/diff-viewer/commit-list.cjs.map +1 -0
  350. package/dist/components/features/diff-viewer/commit-list.d.ts +13 -0
  351. package/dist/components/features/diff-viewer/commit-list.js +27 -0
  352. package/dist/components/features/diff-viewer/commit-list.js.map +1 -0
  353. package/dist/components/features/diff-viewer/commit-row.cjs +2 -0
  354. package/dist/components/features/diff-viewer/commit-row.cjs.map +1 -0
  355. package/dist/components/features/diff-viewer/commit-row.d.ts +14 -0
  356. package/dist/components/features/diff-viewer/commit-row.js +59 -0
  357. package/dist/components/features/diff-viewer/commit-row.js.map +1 -0
  358. package/dist/components/features/diff-viewer/file-diff-viewer.cjs +1 -1
  359. package/dist/components/features/diff-viewer/file-diff-viewer.cjs.map +1 -1
  360. package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +7 -1
  361. package/dist/components/features/diff-viewer/file-diff-viewer.js +40 -39
  362. package/dist/components/features/diff-viewer/file-diff-viewer.js.map +1 -1
  363. package/dist/components/features/plugins/plugin-detail-modal.d.ts +2 -1
  364. package/dist/components/shared/modals/settings/settings-modal.cjs +1 -1
  365. package/dist/components/shared/modals/settings/settings-modal.cjs.map +1 -1
  366. package/dist/components/shared/modals/settings/settings-modal.js +23 -22
  367. package/dist/components/shared/modals/settings/settings-modal.js.map +1 -1
  368. package/dist/config/defaults.cjs +1 -1
  369. package/dist/config/defaults.cjs.map +1 -1
  370. package/dist/config/defaults.js +5 -4
  371. package/dist/config/defaults.js.map +1 -1
  372. package/dist/constants/acp-providers.cjs.map +1 -1
  373. package/dist/constants/acp-providers.d.ts +1 -1
  374. package/dist/constants/acp-providers.js.map +1 -1
  375. package/dist/constants/canvas-ui.cjs +2 -0
  376. package/dist/constants/canvas-ui.cjs.map +1 -0
  377. package/dist/constants/canvas-ui.d.ts +8 -0
  378. package/dist/constants/canvas-ui.js +6 -0
  379. package/dist/constants/canvas-ui.js.map +1 -0
  380. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  381. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  382. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  383. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  384. package/dist/hooks/mutation/use-create-conversation.d.ts +2 -1
  385. package/dist/hooks/mutation/use-create-conversation.js +52 -52
  386. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  387. package/dist/hooks/query/query-keys.cjs +1 -1
  388. package/dist/hooks/query/query-keys.cjs.map +1 -1
  389. package/dist/hooks/query/query-keys.d.ts +2 -0
  390. package/dist/hooks/query/query-keys.js +4 -1
  391. package/dist/hooks/query/query-keys.js.map +1 -1
  392. package/dist/hooks/query/use-backends-health.cjs +1 -1
  393. package/dist/hooks/query/use-backends-health.cjs.map +1 -1
  394. package/dist/hooks/query/use-backends-health.js +50 -48
  395. package/dist/hooks/query/use-backends-health.js.map +1 -1
  396. package/dist/hooks/query/use-cloud-organizations.cjs +1 -1
  397. package/dist/hooks/query/use-cloud-organizations.cjs.map +1 -1
  398. package/dist/hooks/query/use-cloud-organizations.d.ts +1 -0
  399. package/dist/hooks/query/use-cloud-organizations.js +5 -2
  400. package/dist/hooks/query/use-cloud-organizations.js.map +1 -1
  401. package/dist/hooks/query/use-commit-changes.cjs +2 -0
  402. package/dist/hooks/query/use-commit-changes.cjs.map +1 -0
  403. package/dist/hooks/query/use-commit-changes.d.ts +5 -0
  404. package/dist/hooks/query/use-commit-changes.js +34 -0
  405. package/dist/hooks/query/use-commit-changes.js.map +1 -0
  406. package/dist/hooks/query/use-task-polling.cjs +1 -1
  407. package/dist/hooks/query/use-task-polling.cjs.map +1 -1
  408. package/dist/hooks/query/use-task-polling.d.ts +3 -2
  409. package/dist/hooks/query/use-task-polling.js +53 -40
  410. package/dist/hooks/query/use-task-polling.js.map +1 -1
  411. package/dist/hooks/query/use-unified-git-commits.cjs +2 -0
  412. package/dist/hooks/query/use-unified-git-commits.cjs.map +1 -0
  413. package/dist/hooks/query/use-unified-git-commits.d.ts +10 -0
  414. package/dist/hooks/query/use-unified-git-commits.js +41 -0
  415. package/dist/hooks/query/use-unified-git-commits.js.map +1 -0
  416. package/dist/hooks/query/use-unified-git-diff.cjs +1 -1
  417. package/dist/hooks/query/use-unified-git-diff.cjs.map +1 -1
  418. package/dist/hooks/query/use-unified-git-diff.d.ts +5 -0
  419. package/dist/hooks/query/use-unified-git-diff.js +11 -4
  420. package/dist/hooks/query/use-unified-git-diff.js.map +1 -1
  421. package/dist/hooks/use-acp-model-context.cjs +1 -1
  422. package/dist/hooks/use-acp-model-context.cjs.map +1 -1
  423. package/dist/hooks/use-acp-model-context.d.ts +4 -1
  424. package/dist/hooks/use-acp-model-context.js +9 -8
  425. package/dist/hooks/use-acp-model-context.js.map +1 -1
  426. package/dist/hooks/use-auto-refresh-files-on-edit.cjs +1 -1
  427. package/dist/hooks/use-auto-refresh-files-on-edit.cjs.map +1 -1
  428. package/dist/hooks/use-auto-refresh-files-on-edit.js +1 -1
  429. package/dist/hooks/use-auto-refresh-files-on-edit.js.map +1 -1
  430. package/dist/hooks/use-chat-input-model-state.cjs.map +1 -1
  431. package/dist/hooks/use-chat-input-model-state.d.ts +2 -1
  432. package/dist/hooks/use-chat-input-model-state.js.map +1 -1
  433. package/dist/hooks/use-chat-input-profile-state.cjs +1 -1
  434. package/dist/hooks/use-chat-input-profile-state.cjs.map +1 -1
  435. package/dist/hooks/use-chat-input-profile-state.d.ts +1 -10
  436. package/dist/hooks/use-chat-input-profile-state.js +42 -15
  437. package/dist/hooks/use-chat-input-profile-state.js.map +1 -1
  438. package/dist/hooks/use-device-flow.cjs +1 -1
  439. package/dist/hooks/use-device-flow.cjs.map +1 -1
  440. package/dist/hooks/use-device-flow.d.ts +4 -1
  441. package/dist/hooks/use-device-flow.js +42 -40
  442. package/dist/hooks/use-device-flow.js.map +1 -1
  443. package/dist/hooks/use-tracking.cjs.map +1 -1
  444. package/dist/hooks/use-tracking.d.ts +2 -1
  445. package/dist/hooks/use-tracking.js.map +1 -1
  446. package/dist/i18n/declaration.cjs +1 -1
  447. package/dist/i18n/declaration.cjs.map +1 -1
  448. package/dist/i18n/declaration.d.ts +9 -0
  449. package/dist/i18n/declaration.js +1 -1
  450. package/dist/i18n/declaration.js.map +1 -1
  451. package/dist/i18n/index.cjs +1 -1
  452. package/dist/i18n/index.cjs.map +1 -1
  453. package/dist/i18n/index.js +19 -18
  454. package/dist/i18n/index.js.map +1 -1
  455. package/dist/i18n/translation.cjs +3 -3
  456. package/dist/i18n/translation.cjs.map +1 -1
  457. package/dist/i18n/translation.js +154 -1
  458. package/dist/i18n/translation.js.map +1 -1
  459. package/dist/index.cjs +1 -1
  460. package/dist/index.js +32 -32
  461. package/dist/lib/index.cjs +1 -1
  462. package/dist/lib/index.js +1 -1
  463. package/dist/locales/ar/openhands.json +9 -0
  464. package/dist/locales/ca/openhands.json +9 -0
  465. package/dist/locales/de/openhands.json +9 -0
  466. package/dist/locales/en/openhands.json +10 -1
  467. package/dist/locales/es/openhands.json +9 -0
  468. package/dist/locales/fr/openhands.json +9 -0
  469. package/dist/locales/it/openhands.json +9 -0
  470. package/dist/locales/ja/openhands.json +9 -0
  471. package/dist/locales/ko-KR/openhands.json +9 -0
  472. package/dist/locales/no/openhands.json +9 -0
  473. package/dist/locales/pt/openhands.json +9 -0
  474. package/dist/locales/tr/openhands.json +9 -0
  475. package/dist/locales/uk/openhands.json +9 -0
  476. package/dist/locales/zh-CN/openhands.json +9 -0
  477. package/dist/locales/zh-TW/openhands.json +9 -0
  478. package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.cjs +2 -0
  479. package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.cjs.map +1 -0
  480. package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.js +351 -0
  481. package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.js.map +1 -0
  482. package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.cjs +2 -0
  483. package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.cjs.map +1 -0
  484. package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.js +106 -0
  485. package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.js.map +1 -0
  486. package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs +2 -0
  487. package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs.map +1 -0
  488. package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.js +69 -0
  489. package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.js.map +1 -0
  490. package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -1
  491. package/dist/node_modules/@openhands/typescript-client/dist/clients.js +3 -0
  492. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs +1 -1
  493. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs.map +1 -1
  494. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js +18 -2
  495. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js.map +1 -1
  496. package/dist/node_modules/@openhands/typescript-client/dist/models/acp.cjs.map +1 -1
  497. package/dist/node_modules/@openhands/typescript-client/dist/models/acp.js.map +1 -1
  498. package/dist/node_modules/axios/index.cjs +1 -1
  499. package/dist/node_modules/axios/index.js +1 -1
  500. package/dist/package.cjs +1 -1
  501. package/dist/package.cjs.map +1 -1
  502. package/dist/package.js +2 -2
  503. package/dist/package.js.map +1 -1
  504. package/dist/routes/app-settings.cjs +1 -1
  505. package/dist/routes/app-settings.cjs.map +1 -1
  506. package/dist/routes/app-settings.js +67 -66
  507. package/dist/routes/app-settings.js.map +1 -1
  508. package/dist/routes/commits-tab.cjs +2 -0
  509. package/dist/routes/commits-tab.cjs.map +1 -0
  510. package/dist/routes/commits-tab.d.ts +8 -0
  511. package/dist/routes/commits-tab.js +45 -0
  512. package/dist/routes/commits-tab.js.map +1 -0
  513. package/dist/routes/files-tab.cjs +1 -1
  514. package/dist/routes/files-tab.cjs.map +1 -1
  515. package/dist/routes/files-tab.js +148 -127
  516. package/dist/routes/files-tab.js.map +1 -1
  517. package/dist/services/cloud-funnel-analytics.cjs +2 -0
  518. package/dist/services/cloud-funnel-analytics.cjs.map +1 -0
  519. package/dist/services/cloud-funnel-analytics.d.ts +12 -0
  520. package/dist/services/cloud-funnel-analytics.js +53 -0
  521. package/dist/services/cloud-funnel-analytics.js.map +1 -0
  522. package/dist/services/telemetry.cjs +1 -1
  523. package/dist/services/telemetry.cjs.map +1 -1
  524. package/dist/services/telemetry.js +49 -47
  525. package/dist/services/telemetry.js.map +1 -1
  526. package/dist/types/agent-server/core/base/action.d.ts +5 -4
  527. package/dist/types/agent-server/core/base/base.d.ts +3 -2
  528. package/dist/types/agent-server/core/base/observation.d.ts +1 -1
  529. package/dist/types/agent-server/type-guards.cjs +1 -1
  530. package/dist/types/agent-server/type-guards.cjs.map +1 -1
  531. package/dist/types/agent-server/type-guards.d.ts +3 -5
  532. package/dist/types/agent-server/type-guards.js +2 -1
  533. package/dist/types/agent-server/type-guards.js.map +1 -1
  534. package/dist/types/automation.d.ts +5 -0
  535. package/dist/utils/api-error-message.d.ts +11 -0
  536. package/dist/utils/automation-timeout.d.ts +19 -0
  537. package/dist/utils/base-path.cjs +2 -0
  538. package/dist/utils/base-path.cjs.map +1 -0
  539. package/dist/utils/base-path.d.ts +2 -0
  540. package/dist/utils/base-path.js +23 -0
  541. package/dist/utils/base-path.js.map +1 -0
  542. package/package.json +2 -2
  543. package/scripts/check-sdk-version-sync.mjs +6 -6
  544. package/scripts/dev-safe.mjs +7 -8
  545. package/scripts/dev-static.mjs +3 -0
  546. package/scripts/dev-with-automation.mjs +3 -0
  547. package/scripts/docker-build.mjs +4 -0
  548. package/scripts/static-server.mjs +93 -7
  549. package/tools/canvas_ui_tool.py +14 -8
  550. package/build/assets/active-backend-context-B3umL5R-.js +0 -1
  551. package/build/assets/agent-server-client-options-DVLRd9sw.js +0 -1
  552. package/build/assets/agent-server-conversation-service.api-D_ZvtJjG.js +0 -5
  553. package/build/assets/agent-settings-BVVFzBWS.js +0 -1
  554. package/build/assets/api-key-entry-screen-CWEHcPJA.js +0 -1
  555. package/build/assets/app-settings-Dj90qosy.js +0 -1
  556. package/build/assets/automation-detail-CXJU0_gF.js +0 -2
  557. package/build/assets/automation-export-FWY9LPsG.js +0 -2
  558. package/build/assets/automations-list-DDGBkWLC.js +0 -1
  559. package/build/assets/backend-form-modal-DSbrafX2.js +0 -1
  560. package/build/assets/browser-store-BI6uklCG.js +0 -1
  561. package/build/assets/check-Bvi71siz.js +0 -1
  562. package/build/assets/condenser-settings-30cX9SK6.js +0 -1
  563. package/build/assets/conversation-BltULtFA.js +0 -89
  564. package/build/assets/conversation-e0a0_X4S.js +0 -1
  565. package/build/assets/conversation-panel-Cr9_ZGI-.js +0 -1
  566. package/build/assets/conversation-service.api-DQaKzIRj.js +0 -1
  567. package/build/assets/conversation-state-store-B2Bp32XI.js +0 -1
  568. package/build/assets/declaration-gq8V5eTU.js +0 -1
  569. package/build/assets/files-tab-DDtEJcGE.js +0 -1
  570. package/build/assets/git-provider-icon-BjkecAuV.js +0 -1
  571. package/build/assets/home-BCKWpKpf.js +0 -1
  572. package/build/assets/index-redirect-CUUJiNki.js +0 -1
  573. package/build/assets/install-server-modal-BIugLhVB.js +0 -1
  574. package/build/assets/lesson-plan-DgpP80mJ.js +0 -4
  575. package/build/assets/llm-not-configured-banner-BlX8NifC.js +0 -27
  576. package/build/assets/llm-settings-DJmbryaE.js +0 -1
  577. package/build/assets/llm-settings-kU5v0H1Z.js +0 -1
  578. package/build/assets/llm-subscription-service-CKyaV24y.js +0 -1
  579. package/build/assets/loader-circle-BEykUKYG.js +0 -1
  580. package/build/assets/manage-backends-modal-C8FJQIZR.js +0 -1
  581. package/build/assets/manifest-56d40d7c.js +0 -1
  582. package/build/assets/model-selector-BOj1wBlq.js +0 -1
  583. package/build/assets/mouse-pointer-click-PdEQPL6v.js +0 -1
  584. package/build/assets/onboarding-DYhDxmI9.js +0 -1
  585. package/build/assets/onboarding-modal-CP_WxDC9.js +0 -1
  586. package/build/assets/option-service.api-C0tYT4-r.js +0 -1
  587. package/build/assets/organization-service.api-CnynNoT-.js +0 -1
  588. package/build/assets/path-utils-DWcgCGen.js +0 -1
  589. package/build/assets/plugins-management-service-BAp70KN7.js +0 -1
  590. package/build/assets/profiles-service.api-CeYEmSM3.js +0 -1
  591. package/build/assets/providers-BxCuC9bZ.js +0 -1
  592. package/build/assets/proxy-CHmFkV16.js +0 -1
  593. package/build/assets/root-V8fkplMy.css +0 -1
  594. package/build/assets/root-layout-CttG_lQi.js +0 -2
  595. package/build/assets/root-uJ2t9rCQ.js +0 -2
  596. package/build/assets/schema-field-xUr6rDd6.js +0 -1
  597. package/build/assets/sdk-section-page-CbLrVUa3.js +0 -1
  598. package/build/assets/search-4DHskuhE.js +0 -1
  599. package/build/assets/secrets-service-CZYjNxFw.js +0 -1
  600. package/build/assets/settings-DnlfS09K.js +0 -1
  601. package/build/assets/settings-modal-DfTcL-mV.js +0 -1
  602. package/build/assets/settings-service.api-K4ncGlBv.js +0 -1
  603. package/build/assets/shared-conversation-DWtBkJv7.js +0 -1
  604. package/build/assets/skills-plugins-BJ040luO.js +0 -1
  605. package/build/assets/use-acp-credential-form-EtnbtYt0.js +0 -1
  606. package/build/assets/use-agent-profiles-DEAMFp-W.js +0 -1
  607. package/build/assets/use-backends-health-DkC7tKkC.js +0 -1
  608. package/build/assets/use-cloud-current-user-id-Dm99wXp2.js +0 -1
  609. package/build/assets/use-config-CHzNIHpv.js +0 -1
  610. package/build/assets/use-create-conversation-CTsvZ96U.js +0 -1
  611. package/build/assets/use-is-authed-_dhQ2Xuj.js +0 -1
  612. package/build/assets/use-llm-profiles-BMhPDlwQ.js +0 -1
  613. package/build/assets/use-plugins-marketplace-BGb-KgfD.js +0 -1
  614. package/build/assets/use-runtime-is-ready-CC-KrLKe.js +0 -1
  615. package/build/assets/use-save-agent-profile-CLMmbx_X.js +0 -1
  616. package/build/assets/use-settings-BReAMxCG.js +0 -1
  617. package/build/assets/use-settings-nav-items-xe1YgLnE.js +0 -16
  618. package/build/assets/use-skills-Dqo-pDDx.js +0 -1
  619. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js +0 -177
  620. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js +0 -10
  621. package/build/assets/vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CqXiHwjU.js +0 -2
  622. package/build/assets/x-Cb0WAtak.js +0 -1
  623. /package/build/assets/{__vite-browser-external-4xJsU2-u.js → __vite-browser-external-DU-Cb_sT.js} +0 -0
  624. /package/build/assets/{automation-BU8zu-FP.js → automation-BVEmGghX.js} +0 -0
  625. /package/build/assets/{checkmark-h7udgXMM.js → checkmark-DhcMGwtO.js} +0 -0
  626. /package/build/assets/{close-p3Op5lxI.js → close-DO5Rq_CS.js} +0 -0
  627. /package/build/assets/{code-tag-DYlAhEQY.js → code-tag-BvjtzUsr.js} +0 -0
  628. /package/build/assets/{color-themes-DPBzNtVg.js → color-themes-bVMmJJG6.js} +0 -0
  629. /package/build/assets/{common-Dh7OqABE.js → common-CxbUL3nR.js} +0 -0
  630. /package/build/assets/{conversation-local-storage-F6zVMM--.js → conversation-local-storage-B31voBg7.js} +0 -0
  631. /package/build/assets/{copy-BLmGeJcd.js → copy-DLUw2us-.js} +0 -0
  632. /package/build/assets/{createLucideIcon-CVAsW2Yo.js → createLucideIcon-D4Tak8A1.js} +0 -0
  633. /package/build/assets/{dist-CodhvuAP.js → dist-Dj01FXbZ.js} +0 -0
  634. /package/build/assets/{environment-switch-store-DkjlKWzN.js → environment-switch-store-D9hB9PvY.js} +0 -0
  635. /package/build/assets/{extension-module-card-classes-9V3J9J_b.js → extension-module-card-classes-BlO4w702.js} +0 -0
  636. /package/build/assets/{folder-mMWFvaw0.js → folder-ynxP2EIL.js} +0 -0
  637. /package/build/assets/{get-language-from-path-CPNnuVhI.js → get-language-from-path-rWEQrOGU.js} +0 -0
  638. /package/build/assets/{git-status-mapper-BI8FyUVp.js → git-status-mapper-C3rfzUex.js} +0 -0
  639. /package/build/assets/{handle-capture-consent-CPMXU29K.js → handle-capture-consent-DDnXMC9Y.js} +0 -0
  640. /package/build/assets/{iconBase-DaTRRUjy.js → iconBase-CuvxAQZ5.js} +0 -0
  641. /package/build/assets/{link-external-DfKQroKX.js → link-external-BVDiJfZt.js} +0 -0
  642. /package/build/assets/{llm-subscription-DtsX5Lhg.js → llm-subscription-BkdHwtQe.js} +0 -0
  643. /package/build/assets/{map-provider-BM2SJarp.js → map-provider-XSFHmdDs.js} +0 -0
  644. /package/build/assets/{middleware-DYHYNAnP.js → middleware-CWYDMVuG.js} +0 -0
  645. /package/build/assets/{modal-backdrop-zVwfOJZr.js → modal-backdrop-Dsmzgr5s.js} +0 -0
  646. /package/build/assets/{navigation-context-DPs2G0X8.js → navigation-context-SjzfpygH.js} +0 -0
  647. /package/build/assets/{objectWithoutPropertiesLoose-BgYIAs2y.js → objectWithoutPropertiesLoose-CQwg6tC0.js} +0 -0
  648. /package/build/assets/{openhands-logo-bcNw5bkY.js → openhands-logo-C-gDp1wr.js} +0 -0
  649. /package/build/assets/{react-DPDgL6du.js → react-ao3tWj6K.js} +0 -0
  650. /package/build/assets/{search-BsjCEFNf.js → search-pb4UKTfK.js} +0 -0
  651. /package/build/assets/{settings-mQUckT0g.js → settings-DksoDv5z.js} +0 -0
  652. /package/build/assets/{settings-gear-MXCyZW0x.js → settings-gear-D_HVvE5L.js} +0 -0
  653. /package/build/assets/{settings-like-page-layout-classes-DENKlZpD.js → settings-like-page-layout-classes-DLrsPCaI.js} +0 -0
  654. /package/build/assets/{settings-section-header-context-COMOIaxV.js → settings-section-header-context-C2MUIG88.js} +0 -0
  655. /package/build/assets/{skills-9cDZONKh.js → skills-CH4xgIh-.js} +0 -0
  656. /package/build/assets/{switch-skeleton-DqQwalyu.js → switch-skeleton-BpSOvZ-n.js} +0 -0
  657. /package/build/assets/{terminal-BuLtIrb9.js → terminal-Dokfkxn0.js} +0 -0
  658. /package/build/assets/{u-check-circle-BqoIxNz_.js → u-check-circle-DPWVO-9N.js} +0 -0
  659. /package/build/assets/{u-check-circle-half-LiwZkuFe.js → u-check-circle-half-BGNAAjOW.js} +0 -0
  660. /package/build/assets/{u-edit-DJ90xc8Z.js → u-edit-BIskOoEG.js} +0 -0
  661. /package/build/assets/{use-breakpoint-B-O0lQ84.js → use-breakpoint-OjLm94cF.js} +0 -0
  662. /package/build/assets/{use-click-outside-element-Bf4Omzot.js → use-click-outside-element-Jpt2WWd7.js} +0 -0
  663. /package/build/assets/{use-onboarding-completion-C_Swglzp.js → use-onboarding-completion-DkRpDTsD.js} +0 -0
  664. /package/build/assets/{v4-DbCkTSoU.js → v4-DPgam_jW.js} +0 -0
  665. /package/build/assets/{vendor~browser-Dqd33JyP.js → vendor~browser-BvEKaLBz.js} +0 -0
  666. /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-DHDkknt5.js → vendor~conversation-panel~conversation~alert-banner-CznX01nZ.js} +0 -0
  667. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~e0djk9ee-Cw6LUe8p.js} +0 -0
  668. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~g9hift2g-DmmpG9SI.js} +0 -0
  669. /package/build/assets/{vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~jkpzbynd-CkpBIhVe.js} +0 -0
  670. /package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DTzw2x50.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BuL5kjfS.js} +0 -0
  671. /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-rV6d1Iv_.js → vendor~root-layout~index-home~home~conversation-panel~conversation~launch~skills-settings~a~j2jlu22h-DUYl8gbZ.js} +0 -0
  672. /package/build/assets/{vendor~root-layout~home~mcp~automations-list~onboarding-modal-CXyYYvYh.js → vendor~root-layout~index-home~home~mcp~automations-list~onboarding-modal-pIgQDxTc.js} +0 -0
  673. /package/build/assets/{vendor~terminal-aeP3PnKf.js → vendor~terminal-jAaNQWS9.js} +0 -0
  674. /package/build/assets/{x-mark-Batp6gXa.js → x-mark-C5przfXl.js} +0 -0
@@ -3,49 +3,51 @@ import { I18nKey as t } from "../../../i18n/declaration.js";
3
3
  import { cn as n } from "../../../utils/utils.js";
4
4
  import { useNavigation as r } from "../../../context/navigation-context.js";
5
5
  import { ServerClient as i } from "../../../node_modules/@openhands/typescript-client/dist/client/server-client.js";
6
+ import { isOpenHandsCloudHost as a } from "../../../node_modules/@openhands/typescript-client/dist/client/device-flow-client.js";
6
7
  import "../../../node_modules/@openhands/typescript-client/dist/clients.js";
7
- import { getLockedCloudHost as a } from "../../../api/agent-server-config.js";
8
- import { getAgentServerClientOptions as o } from "../../../api/agent-server-client-options.js";
9
- import { assertAgentServerVersionIsSupported as s, getDisplayAgentServerVersion as c } from "../../../api/agent-server-compatibility.js";
10
- import { getUserFacingConnectionErrorMessage as l } from "../../../utils/user-facing-error.js";
11
- import { useQuery as u } from "../../../node_modules/@tanstack/react-query/build/modern/useQuery.js";
12
- import { useActiveBackendContext as d } from "../../../contexts/active-backend-context.js";
13
- import { useTracking as f } from "../../../hooks/use-tracking.js";
14
- import { ModalBackdrop as p } from "../../shared/modals/modal-backdrop.js";
15
- import { MODAL_MAX_WIDTH_VIEWPORT as m, modalWidthClassName as h } from "../../shared/modals/modal-body.js";
16
- import { modalTitleLgClassName as g, modalTitleLgMediumClassName as _ } from "../../../utils/modal-classes.js";
17
- import { ModalCloseButton as v } from "../../shared/modals/modal-close-button.js";
18
- import { BrandButton as y } from "../settings/brand-button.js";
19
- import { SettingsInput as b } from "../settings/settings-input.js";
20
- import { useBackendsHealth as x } from "../../../hooks/query/use-backends-health.js";
21
- import S from "../../../assets/branding/openhands-logo-white.js";
22
- import { SegmentedToggle as C } from "../files-tab/segmented-toggle.js";
23
- import { isOpenHandsCloudHost as w } from "../../../api/device-flow-client.js";
24
- import T from "../../../icons/chevron-down-small.js";
25
- import { getBackendStatusLabel as E } from "./backend-status-label.js";
26
- import { BackendStatusDot as D } from "./backend-status-dot.js";
27
- import { DeviceFlowAuth as O } from "./device-flow-auth.js";
28
- import k from "react";
29
- import { jsx as A, jsxs as j } from "react/jsx-runtime";
8
+ import { getLockedCloudHost as o } from "../../../api/agent-server-config.js";
9
+ import { getAgentServerClientOptions as s } from "../../../api/agent-server-client-options.js";
10
+ import { assertAgentServerVersionIsSupported as c, getDisplayAgentServerVersion as l } from "../../../api/agent-server-compatibility.js";
11
+ import { getUserFacingConnectionErrorMessage as u } from "../../../utils/user-facing-error.js";
12
+ import { useQuery as d } from "../../../node_modules/@tanstack/react-query/build/modern/useQuery.js";
13
+ import { useActiveBackendContext as f } from "../../../contexts/active-backend-context.js";
14
+ import "../../../api/device-flow-client.js";
15
+ import { trackCanvasBackendAdded as p } from "../../../services/cloud-funnel-analytics.js";
16
+ import { useTracking as m } from "../../../hooks/use-tracking.js";
17
+ import { ModalBackdrop as h } from "../../shared/modals/modal-backdrop.js";
18
+ import { MODAL_MAX_WIDTH_VIEWPORT as g, modalWidthClassName as _ } from "../../shared/modals/modal-body.js";
19
+ import { modalTitleLgClassName as v, modalTitleLgMediumClassName as y } from "../../../utils/modal-classes.js";
20
+ import { ModalCloseButton as b } from "../../shared/modals/modal-close-button.js";
21
+ import { BrandButton as x } from "../settings/brand-button.js";
22
+ import { SettingsInput as S } from "../settings/settings-input.js";
23
+ import { useBackendsHealth as C } from "../../../hooks/query/use-backends-health.js";
24
+ import w from "../../../assets/branding/openhands-logo-white.js";
25
+ import { SegmentedToggle as T } from "../files-tab/segmented-toggle.js";
26
+ import E from "../../../icons/chevron-down-small.js";
27
+ import { getBackendStatusLabel as D } from "./backend-status-label.js";
28
+ import { BackendStatusDot as O } from "./backend-status-dot.js";
29
+ import { DeviceFlowAuth as k } from "./device-flow-auth.js";
30
+ import A from "react";
31
+ import { jsx as j, jsxs as M } from "react/jsx-runtime";
30
32
  //#region src/components/features/backends/backend-form-modal.tsx
31
- function M(e) {
32
- return w(e) ? "cloud" : "local";
33
- }
34
33
  function N(e) {
34
+ return a(e) ? "cloud" : "local";
35
+ }
36
+ function P(e) {
35
37
  let t = e.toLowerCase().replace(/^\[|\]$/g, "");
36
38
  return !!(t === "localhost" || t === "::1" || t === "::" || t === "0.0.0.0" || /^127\./.test(t) || /^::ffff:127\./i.test(t) || /^10\./.test(t) || /^192\.168\./.test(t) || /^172\.(1[6-9]|2\d|3[01])\./.test(t) || /^fe[89ab][0-9a-f]:/i.test(t) || /^f[cd][0-9a-f]{2}:/i.test(t) || t.endsWith(".local") || !t.includes(".") && !t.includes(":"));
37
39
  }
38
- function P(e) {
40
+ function F(e) {
39
41
  let t = e.trim().replace(/\/+$/, "");
40
42
  if (!t) return "";
41
43
  if (/^https?:\/\//i.test(t)) return t;
42
44
  let n = t.match(/^\[([^\]]+)\]/);
43
- return `${N(n ? n[1] : (t.match(/:/g) ?? []).length > 1 ? t : t.split(":")[0]) ? "http" : "https"}://${t}`;
45
+ return `${P(n ? n[1] : (t.match(/:/g) ?? []).length > 1 ? t : t.split(":")[0]) ? "http" : "https"}://${t}`;
44
46
  }
45
- function F(e) {
47
+ function I(e) {
46
48
  let t = e.trim();
47
49
  if (!t || /\s/.test(t)) return !1;
48
- let n = P(t);
50
+ let n = F(t);
49
51
  if (!n) return !1;
50
52
  try {
51
53
  let e = new URL(n);
@@ -54,82 +56,82 @@ function F(e) {
54
56
  return !1;
55
57
  }
56
58
  }
57
- var I = "https://app.all-hands.dev";
58
- function L(e, n) {
59
+ var L = "https://app.all-hands.dev";
60
+ function R(e, n) {
59
61
  return e(t.BACKEND$CONNECTION_TEST_FAILED, {
60
62
  host: n,
61
63
  interpolation: { escapeValue: !1 }
62
64
  });
63
65
  }
64
- function R(e) {
65
- return l(e);
66
+ function z(e) {
67
+ return u(e);
66
68
  }
67
- function z(e, t) {
68
- let n = R(t);
69
+ function B(e, t) {
70
+ let n = z(t);
69
71
  return n ? `${e}\n${n}` : e;
70
72
  }
71
- async function B(e) {
72
- e.kind === "local" && s(await new i(o({
73
+ async function V(e) {
74
+ e.kind === "local" && c(await new i(s({
73
75
  host: e.host,
74
76
  sessionApiKey: e.apiKey || null,
75
77
  timeout: 5e3
76
78
  })).getServerInfo());
77
79
  }
78
- function V({ backend: n, testIdRoot: r }) {
79
- let { t: a } = e("openhands"), s = x([n])[n.id], l = s?.isConnected ?? null, d = s?.disabled === !0, f = s?.consecutiveFailures ?? 0, p = s?.lastError ?? null, { data: m } = u({
80
+ function H({ backend: n, testIdRoot: r }) {
81
+ let { t: a } = e("openhands"), o = C([n])[n.id], c = o?.isConnected ?? null, u = o?.disabled === !0, f = o?.consecutiveFailures ?? 0, p = o?.lastError ?? null, { data: m } = d({
80
82
  queryKey: [
81
83
  "backend-version",
82
84
  n.host,
83
85
  n.apiKey
84
86
  ],
85
- queryFn: async () => c(await new i(o({
87
+ queryFn: async () => l(await new i(s({
86
88
  host: n.host,
87
89
  sessionApiKey: n.apiKey || null,
88
90
  timeout: 5e3
89
91
  })).getServerInfo()),
90
92
  retry: !1,
91
93
  staleTime: 6e4,
92
- enabled: n.kind === "local" && !d
93
- }), h = E(a, n, s), g = n.kind === "cloud" ? a(t.BACKEND$KIND_CLOUD) : a(t.BACKEND$KIND_LOCAL);
94
- return /* @__PURE__ */ j("div", {
94
+ enabled: n.kind === "local" && !u
95
+ }), h = D(a, n, o), g = n.kind === "cloud" ? a(t.BACKEND$KIND_CLOUD) : a(t.BACKEND$KIND_LOCAL);
96
+ return /* @__PURE__ */ M("div", {
95
97
  className: "flex flex-col gap-2",
96
- children: [/* @__PURE__ */ j("div", {
98
+ children: [/* @__PURE__ */ M("div", {
97
99
  "data-testid": `${r}-status`,
98
100
  className: "flex items-center gap-3 text-sm",
99
101
  children: [
100
- /* @__PURE__ */ A(D, { isConnected: l }),
101
- /* @__PURE__ */ A("span", {
102
+ /* @__PURE__ */ j(O, { isConnected: c }),
103
+ /* @__PURE__ */ j("span", {
102
104
  className: "text-white",
103
105
  "data-testid": `${r}-status-label`,
104
106
  children: h
105
107
  }),
106
- /* @__PURE__ */ A("span", {
108
+ /* @__PURE__ */ j("span", {
107
109
  className: "text-tertiary-alt",
108
110
  children: "·"
109
111
  }),
110
- /* @__PURE__ */ A("span", {
112
+ /* @__PURE__ */ j("span", {
111
113
  className: "text-[var(--oh-text-tertiary)]",
112
114
  children: g
113
115
  }),
114
- m ? /* @__PURE__ */ A("span", {
116
+ m ? /* @__PURE__ */ j("span", {
115
117
  className: "text-xs text-[var(--oh-muted)]",
116
118
  "data-testid": `${r}-version`,
117
119
  children: a(t.BACKEND$VERSION_LABEL, { version: m })
118
120
  }) : null
119
121
  ]
120
- }), d ? /* @__PURE__ */ j("div", {
122
+ }), u ? /* @__PURE__ */ M("div", {
121
123
  "data-testid": `${r}-status-error`,
122
124
  className: "flex flex-col gap-1 rounded-md border border-red-500/40 bg-red-500/10 p-3 text-sm",
123
125
  children: [
124
- /* @__PURE__ */ A("span", {
126
+ /* @__PURE__ */ j("span", {
125
127
  className: "font-semibold text-red-300",
126
128
  children: a(t.BACKEND$HEALTH_FAILED_TITLE)
127
129
  }),
128
- /* @__PURE__ */ A("span", {
130
+ /* @__PURE__ */ j("span", {
129
131
  className: "text-xs text-[var(--oh-text-tertiary)]",
130
132
  children: a(t.BACKEND$HEALTH_FAILED_DETAIL, { count: f })
131
133
  }),
132
- p ? /* @__PURE__ */ A("span", {
134
+ p ? /* @__PURE__ */ j("span", {
133
135
  "data-testid": `${r}-status-error-message`,
134
136
  className: "text-xs text-red-300 whitespace-pre-wrap break-words",
135
137
  children: p
@@ -138,8 +140,8 @@ function V({ backend: n, testIdRoot: r }) {
138
140
  }) : null]
139
141
  });
140
142
  }
141
- function H({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", onTestConnection: i, onSuccess: a, requireApiKey: o = !1, onSubmitOverride: s }) {
142
- let { t: c } = e("openhands"), [l, u] = k.useState(t), [d, f] = k.useState(n), [p, m] = k.useState(r), [h, g] = k.useState(null), [_, v] = k.useState(!1), [y, b] = k.useState(null), x = y ?? M(d), S = o || x !== "local", C = l.trim().length > 0 && F(d) && (!S || p.trim().length > 0);
143
+ function U({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", onTestConnection: i, onSuccess: a, requireApiKey: o = !1, onSubmitOverride: s }) {
144
+ let { t: c } = e("openhands"), [l, u] = A.useState(t), [d, f] = A.useState(n), [p, m] = A.useState(r), [h, g] = A.useState(null), [_, v] = A.useState(!1), [y, b] = A.useState(null), x = y ?? N(d), S = o || x !== "local", C = l.trim().length > 0 && I(d) && (!S || p.trim().length > 0);
143
145
  return {
144
146
  name: l,
145
147
  setName: u,
@@ -153,11 +155,11 @@ function H({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", on
153
155
  kind: x,
154
156
  setKind: b,
155
157
  canSubmit: C,
156
- handleSubmit: k.useCallback(async (e) => {
158
+ handleSubmit: A.useCallback(async (e) => {
157
159
  if (e.preventDefault(), !C || _) return;
158
160
  let t = {
159
161
  name: l.trim(),
160
- host: P(d),
162
+ host: F(d),
161
163
  apiKey: p.trim(),
162
164
  kind: x
163
165
  };
@@ -165,7 +167,7 @@ function H({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", on
165
167
  try {
166
168
  s ? await s(t) : (await i(t), a());
167
169
  } catch (e) {
168
- g(z(L(c, t.host), e));
170
+ g(B(R(c, t.host), e));
169
171
  } finally {
170
172
  v(!1);
171
173
  }
@@ -184,39 +186,39 @@ function H({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", on
184
186
  ])
185
187
  };
186
188
  }
187
- function U({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot: s, hostReadOnly: c, requireApiKey: l, hideConfigurationFields: u = !1, onSubmitOverride: f }) {
188
- let { t: p } = e("openhands"), { addBackend: m, updateBackend: h } = d(), g = r === "edit" && i ? i.kind : null, { name: _, setName: v, host: x, setHost: S, apiKey: C, setApiKey: w, connectionError: T, setConnectionError: E, isSubmitting: D, kind: O, handleSubmit: M } = H({
189
+ function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot: s, hostReadOnly: c, requireApiKey: l, hideConfigurationFields: u = !1, onSubmitOverride: d }) {
190
+ let { t: p } = e("openhands"), { addBackend: m, updateBackend: h } = f(), g = r === "edit" && i ? i.kind : null, { name: _, setName: v, host: y, setHost: b, apiKey: C, setApiKey: w, connectionError: T, setConnectionError: E, isSubmitting: D, kind: O, handleSubmit: k } = U({
189
191
  initialName: i?.name ?? "",
190
192
  initialHost: i?.host ?? "",
191
193
  initialApiKey: i?.apiKey ?? "",
192
- onTestConnection: B,
194
+ onTestConnection: V,
193
195
  onSuccess: async () => {
194
196
  let e = {
195
197
  name: _.trim(),
196
- host: P(x),
198
+ host: F(y),
197
199
  apiKey: C.trim(),
198
200
  kind: g ?? O
199
201
  };
200
202
  r === "edit" && i ? h(i.id, e) : m(e), a();
201
203
  },
202
204
  requireApiKey: l,
203
- onSubmitOverride: f
204
- }), [N, L] = k.useState(!1), [R, z] = k.useState(!1), U = g ?? O, W = s ?? (r === "edit" ? "edit-backend" : "add-backend"), G = l || U !== "local", K = _.trim().length > 0 && F(x) && (!G || C.trim().length > 0), q = N && !_.trim() ? p(t.BACKEND$NAME_REQUIRED) : void 0, J = R ? x.trim() ? F(x) ? void 0 : p(t.BACKEND$HOST_INVALID) : p(t.BACKEND$HOST_REQUIRED) : void 0;
205
- return /* @__PURE__ */ j("form", {
205
+ onSubmitOverride: d
206
+ }), [N, P] = A.useState(!1), [R, z] = A.useState(!1), B = g ?? O, W = s ?? (r === "edit" ? "edit-backend" : "add-backend"), G = l || B !== "local", K = _.trim().length > 0 && I(y) && (!G || C.trim().length > 0), q = N && !_.trim() ? p(t.BACKEND$NAME_REQUIRED) : void 0, J = R ? y.trim() ? I(y) ? void 0 : p(t.BACKEND$HOST_INVALID) : p(t.BACKEND$HOST_REQUIRED) : void 0;
207
+ return /* @__PURE__ */ M("form", {
206
208
  "data-testid": `${W}-form`,
207
209
  onSubmit: async (e) => {
208
210
  if (!K) {
209
- L(!0), z(!0);
211
+ P(!0), z(!0);
210
212
  return;
211
213
  }
212
- await M(e);
214
+ await k(e);
213
215
  },
214
216
  className: "flex flex-col gap-4",
215
- children: [/* @__PURE__ */ j("div", {
217
+ children: [/* @__PURE__ */ M("div", {
216
218
  "data-testid": `${W}-configuration-fields`,
217
219
  className: n("flex flex-col gap-4", u && "hidden"),
218
220
  children: [
219
- /* @__PURE__ */ A(b, {
221
+ /* @__PURE__ */ j(S, {
220
222
  testId: `${W}-name`,
221
223
  name: `${W}-name`,
222
224
  type: "text",
@@ -225,29 +227,29 @@ function U({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
225
227
  onChange: (e) => {
226
228
  v(e), E(null);
227
229
  },
228
- onBlur: () => L(!0),
230
+ onBlur: () => P(!0),
229
231
  placeholder: "Production",
230
232
  className: "w-full",
231
233
  showRequiredTag: !0,
232
234
  error: q
233
235
  }),
234
- /* @__PURE__ */ A(b, {
236
+ /* @__PURE__ */ j(S, {
235
237
  testId: `${W}-host`,
236
238
  name: `${W}-host`,
237
239
  type: "text",
238
240
  label: p(t.BACKEND$HOST_LABEL),
239
- value: x,
241
+ value: y,
240
242
  onChange: c ? void 0 : (e) => {
241
- S(e), E(null);
243
+ b(e), E(null);
242
244
  },
243
245
  onBlur: () => z(!0),
244
- placeholder: I,
246
+ placeholder: L,
245
247
  className: "w-full",
246
248
  showRequiredTag: !0,
247
249
  error: J,
248
250
  isDisabled: c
249
251
  }),
250
- /* @__PURE__ */ A(b, {
252
+ /* @__PURE__ */ j(S, {
251
253
  testId: `${W}-api-key`,
252
254
  name: `${W}-api-key`,
253
255
  type: "password",
@@ -259,13 +261,13 @@ function U({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
259
261
  placeholder: "",
260
262
  className: "w-full"
261
263
  }),
262
- T ? /* @__PURE__ */ A("div", {
264
+ T ? /* @__PURE__ */ j("div", {
263
265
  role: "alert",
264
266
  "data-testid": `${W}-error`,
265
267
  className: "rounded-md border border-red-500/40 bg-red-500/10 p-3 text-sm text-red-300 whitespace-pre-wrap break-words",
266
268
  children: T
267
269
  }) : null,
268
- r === "edit" && i && /* @__PURE__ */ A(V, {
270
+ r === "edit" && i && /* @__PURE__ */ j(H, {
269
271
  backend: i,
270
272
  testIdRoot: W
271
273
  })
@@ -274,15 +276,15 @@ function U({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
274
276
  canSubmit: K && !D,
275
277
  isSubmitting: D,
276
278
  testIdRoot: W
277
- }) : /* @__PURE__ */ j("div", {
279
+ }) : /* @__PURE__ */ M("div", {
278
280
  className: "flex justify-end gap-2 mt-2 w-full",
279
- children: [/* @__PURE__ */ A(y, {
281
+ children: [/* @__PURE__ */ j(x, {
280
282
  type: "button",
281
283
  variant: "secondary",
282
284
  onClick: a,
283
285
  testId: `${W}-cancel`,
284
286
  children: p(t.BUTTON$CANCEL)
285
- }), /* @__PURE__ */ A(y, {
287
+ }), /* @__PURE__ */ j(x, {
286
288
  type: "submit",
287
289
  variant: "primary",
288
290
  isDisabled: !K || D,
@@ -292,72 +294,74 @@ function U({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
292
294
  })]
293
295
  });
294
296
  }
295
- function W() {
297
+ function G() {
296
298
  let { currentPath: e, navigate: t } = r();
297
- return k.useCallback(() => {
299
+ return A.useCallback(() => {
298
300
  /^\/automations\/[^/]+/.test(e) ? t("/automations") : /^\/conversations\/[^/]+/.test(e) && t("/conversations");
299
301
  }, [e, t]);
300
302
  }
301
- function G({ onConnected: n, testIdRoot: r = "add-backend", initialManualBackend: i, requireManualApiKey: o = !1, manualSubmitLabel: s, manualSubmittingLabel: c, manualSubmitTestId: l }) {
302
- let { t: u } = e("openhands"), d = a();
303
- return d ? /* @__PURE__ */ A("div", {
303
+ function K({ onConnected: n, testIdRoot: r = "add-backend", initialManualBackend: i, requireManualApiKey: a = !1, manualSubmitLabel: s, manualSubmittingLabel: c, manualSubmitTestId: l, analyticsSource: u }) {
304
+ let { t: d } = e("openhands"), f = o();
305
+ return f ? /* @__PURE__ */ j("div", {
304
306
  "data-testid": `${r}-connection-options`,
305
307
  className: "flex justify-center",
306
- children: /* @__PURE__ */ A("div", {
308
+ children: /* @__PURE__ */ j("div", {
307
309
  className: "w-full",
308
- children: /* @__PURE__ */ A(q, {
310
+ children: /* @__PURE__ */ j(J, {
309
311
  onConnected: n,
310
312
  testIdRoot: r,
311
- lockedHost: d
313
+ lockedHost: f,
314
+ analyticsSource: u
312
315
  })
313
316
  })
314
- }) : /* @__PURE__ */ j("div", {
317
+ }) : /* @__PURE__ */ M("div", {
315
318
  "data-testid": `${r}-connection-options`,
316
319
  className: "flex flex-col gap-6 md:flex-row",
317
- children: [/* @__PURE__ */ A("div", {
320
+ children: [/* @__PURE__ */ j("div", {
318
321
  className: "flex-1 min-w-0",
319
- children: /* @__PURE__ */ A(K, {
322
+ children: /* @__PURE__ */ j(q, {
320
323
  onConnected: n,
321
324
  testIdRoot: r,
322
325
  initialBackend: i,
323
- requireApiKey: o,
324
- submitLabel: s ?? u(t.BACKEND$CONNECT),
325
- submittingLabel: c ?? u(t.ONBOARDING$BACKEND_STATUS_CHECKING),
326
+ requireApiKey: a,
327
+ submitLabel: s ?? d(t.BACKEND$CONNECT),
328
+ submittingLabel: c ?? d(t.ONBOARDING$BACKEND_STATUS_CHECKING),
326
329
  submitTestId: l
327
330
  })
328
- }), /* @__PURE__ */ A("div", {
331
+ }), /* @__PURE__ */ j("div", {
329
332
  className: "flex-1 min-w-0",
330
- children: /* @__PURE__ */ A(q, {
333
+ children: /* @__PURE__ */ j(J, {
331
334
  onConnected: n,
332
- testIdRoot: r
335
+ testIdRoot: r,
336
+ analyticsSource: u
333
337
  })
334
338
  })]
335
339
  });
336
340
  }
337
- function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a, submitLabel: o, submittingLabel: s, submitTestId: c }) {
338
- let { t: l } = e("openhands"), { name: u, setName: d, host: f, setHost: p, apiKey: m, setApiKey: h, connectionError: g, setConnectionError: _, isSubmitting: v, kind: x, setKind: S, canSubmit: w, handleSubmit: T } = H({
341
+ function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a, submitLabel: o, submittingLabel: s, submitTestId: c }) {
342
+ let { t: l } = e("openhands"), { name: u, setName: d, host: f, setHost: p, apiKey: m, setApiKey: h, connectionError: g, setConnectionError: _, isSubmitting: v, kind: y, setKind: b, canSubmit: C, handleSubmit: w } = U({
339
343
  initialName: i?.name ?? "",
340
344
  initialHost: i?.host ?? "",
341
345
  initialApiKey: i?.apiKey ?? "",
342
- onTestConnection: B,
346
+ onTestConnection: V,
343
347
  onSuccess: () => {
344
348
  n({
345
349
  name: u.trim(),
346
- host: P(f),
350
+ host: F(f),
347
351
  apiKey: m.trim(),
348
- kind: x
352
+ kind: y
349
353
  }, "manual");
350
354
  },
351
355
  requireApiKey: a
352
356
  });
353
- return /* @__PURE__ */ j("form", {
357
+ return /* @__PURE__ */ M("form", {
354
358
  "data-testid": `${r}-form`,
355
- onSubmit: T,
359
+ onSubmit: w,
356
360
  className: "flex flex-col gap-4 flex-1 min-w-0",
357
361
  children: [
358
- /* @__PURE__ */ j("div", {
362
+ /* @__PURE__ */ M("div", {
359
363
  className: "flex flex-col gap-1",
360
- children: [/* @__PURE__ */ A(b, {
364
+ children: [/* @__PURE__ */ j(S, {
361
365
  testId: `${r}-name`,
362
366
  name: `${r}-name`,
363
367
  type: "text",
@@ -368,14 +372,14 @@ function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
368
372
  },
369
373
  placeholder: "e.g. My Server",
370
374
  className: "w-full"
371
- }), /* @__PURE__ */ A("p", {
375
+ }), /* @__PURE__ */ j("p", {
372
376
  className: "text-xs text-[var(--oh-muted)]",
373
377
  children: l(t.BACKEND$NAME_HELPER)
374
378
  })]
375
379
  }),
376
- /* @__PURE__ */ j("div", {
380
+ /* @__PURE__ */ M("div", {
377
381
  className: "flex flex-col gap-1",
378
- children: [/* @__PURE__ */ A(b, {
382
+ children: [/* @__PURE__ */ j(S, {
379
383
  testId: `${r}-host`,
380
384
  name: `${r}-host`,
381
385
  type: "text",
@@ -386,19 +390,19 @@ function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
386
390
  },
387
391
  placeholder: "http://localhost:8000",
388
392
  className: "w-full"
389
- }), /* @__PURE__ */ A("p", {
393
+ }), /* @__PURE__ */ j("p", {
390
394
  className: "text-xs text-[var(--oh-muted)]",
391
395
  "data-testid": `${r}-host-helper`,
392
396
  children: l(t.BACKEND$HOST_HELPER)
393
397
  })]
394
398
  }),
395
- /* @__PURE__ */ j("div", {
399
+ /* @__PURE__ */ M("div", {
396
400
  className: "flex flex-col items-start gap-2.5",
397
- children: [/* @__PURE__ */ A("span", {
401
+ children: [/* @__PURE__ */ j("span", {
398
402
  className: "text-sm",
399
403
  children: l(t.BACKEND$KIND_LABEL)
400
- }), /* @__PURE__ */ A(C, {
401
- value: x,
404
+ }), /* @__PURE__ */ j(T, {
405
+ value: y,
402
406
  options: [{
403
407
  value: "local",
404
408
  label: l(t.BACKEND$KIND_LOCAL)
@@ -406,12 +410,12 @@ function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
406
410
  value: "cloud",
407
411
  label: l(t.BACKEND$KIND_CLOUD)
408
412
  }],
409
- onChange: (e) => S(e),
413
+ onChange: (e) => b(e),
410
414
  ariaLabel: l(t.BACKEND$KIND_LABEL),
411
415
  testId: `${r}-kind`
412
416
  })]
413
417
  }),
414
- /* @__PURE__ */ A(b, {
418
+ /* @__PURE__ */ j(S, {
415
419
  testId: `${r}-api-key`,
416
420
  name: `${r}-api-key`,
417
421
  type: "password",
@@ -423,16 +427,16 @@ function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
423
427
  placeholder: "sk-••••••••••",
424
428
  className: "w-full"
425
429
  }),
426
- g ? /* @__PURE__ */ A("div", {
430
+ g ? /* @__PURE__ */ j("div", {
427
431
  role: "alert",
428
432
  "data-testid": `${r}-error`,
429
433
  className: "rounded-md border border-red-500/40 bg-red-500/10 p-3 text-sm text-red-300 whitespace-pre-wrap break-words",
430
434
  children: g
431
435
  }) : null,
432
- /* @__PURE__ */ A(y, {
436
+ /* @__PURE__ */ j(x, {
433
437
  type: "submit",
434
438
  variant: "secondary",
435
- isDisabled: !w || v,
439
+ isDisabled: !C || v,
436
440
  testId: c ?? `${r}-submit`,
437
441
  className: "w-full text-center",
438
442
  children: v ? s : o
@@ -440,117 +444,128 @@ function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
440
444
  ]
441
445
  });
442
446
  }
443
- function q({ onConnected: r, testIdRoot: i, lockedHost: a }) {
444
- let { t: o } = e("openhands"), [s, c] = k.useState(!1), [l, u] = k.useState(""), d = a ?? (l.trim() || I);
445
- return /* @__PURE__ */ j("div", {
446
- className: "flex flex-1 min-w-0 flex-col items-center gap-3 pb-7",
447
+ function J({ onConnected: r, testIdRoot: i, lockedHost: a, analyticsSource: o }) {
448
+ let { t: s } = e("openhands"), [c, l] = A.useState(!1), [u, d] = A.useState(""), f = a ?? (u.trim() || L);
449
+ return /* @__PURE__ */ M("div", {
450
+ className: "flex flex-1 min-w-0 flex-col items-center gap-3 pb-8",
447
451
  children: [
448
- /* @__PURE__ */ j("div", {
452
+ /* @__PURE__ */ M("div", {
449
453
  className: "flex flex-col items-center gap-1",
450
- children: [/* @__PURE__ */ A(S, {
454
+ children: [/* @__PURE__ */ j(w, {
451
455
  width: 56,
452
456
  height: 56,
453
457
  "aria-hidden": !0
454
- }), /* @__PURE__ */ A("h4", {
455
- className: _,
458
+ }), /* @__PURE__ */ j("h4", {
459
+ className: y,
456
460
  "data-testid": `${i}-cloud-title`,
457
- children: o(t.BACKEND$CLOUD_TITLE)
461
+ children: s(t.BACKEND$CLOUD_TITLE)
458
462
  })]
459
463
  }),
460
- /* @__PURE__ */ A("p", {
464
+ /* @__PURE__ */ j("p", {
461
465
  className: "text-center text-sm leading-relaxed text-[var(--oh-muted)]",
462
- children: o(t.BACKEND$CLOUD_DESCRIPTION)
466
+ children: s(t.BACKEND$CLOUD_DESCRIPTION)
463
467
  }),
464
- /* @__PURE__ */ A(O, {
465
- host: d,
468
+ /* @__PURE__ */ j(k, {
469
+ host: f,
466
470
  onSuccess: (e) => {
467
471
  r({
468
472
  name: "OpenHands Cloud",
469
- host: P(d),
473
+ host: F(f),
470
474
  apiKey: e,
471
475
  kind: "cloud"
472
476
  }, "cloud_login");
473
477
  },
474
- testIdRoot: i
478
+ testIdRoot: i,
479
+ analyticsSource: o
475
480
  }),
476
- a ? null : /* @__PURE__ */ j("div", {
481
+ a ? null : /* @__PURE__ */ M("div", {
477
482
  className: "w-full",
478
- children: [/* @__PURE__ */ j("button", {
483
+ children: [/* @__PURE__ */ M("button", {
479
484
  type: "button",
480
- onClick: () => c((e) => !e),
481
- "aria-expanded": s,
485
+ onClick: () => l((e) => !e),
486
+ "aria-expanded": c,
482
487
  "data-testid": `${i}-advanced-toggle`,
483
488
  className: "flex w-full cursor-pointer items-center justify-center gap-1 text-center text-xs text-[var(--oh-muted)] transition-colors hover:text-content-2",
484
- children: [/* @__PURE__ */ A("span", { children: o(t.BACKEND$ADVANCED) }), /* @__PURE__ */ A(T, {
485
- className: n("h-4 w-4 shrink-0 text-muted transition-transform", s && "rotate-180"),
489
+ children: [/* @__PURE__ */ j("span", { children: s(t.BACKEND$ADVANCED) }), /* @__PURE__ */ j(E, {
490
+ className: n("h-4 w-4 shrink-0 text-muted transition-transform", c && "rotate-180"),
486
491
  "aria-hidden": !0
487
492
  })]
488
- }), /* @__PURE__ */ j("div", {
489
- className: n("pt-2", !s && "pointer-events-none invisible"),
490
- "aria-hidden": !s,
491
- children: [/* @__PURE__ */ A(b, {
493
+ }), /* @__PURE__ */ M("div", {
494
+ className: n("pt-2", !c && "pointer-events-none invisible"),
495
+ "aria-hidden": !c,
496
+ children: [/* @__PURE__ */ j(S, {
492
497
  testId: `${i}-cloud-host`,
493
498
  name: `${i}-cloud-host`,
494
499
  type: "text",
495
- label: o(t.BACKEND$HOST_LABEL),
496
- value: l,
497
- onChange: u,
498
- placeholder: I,
500
+ label: s(t.BACKEND$HOST_LABEL),
501
+ value: u,
502
+ onChange: d,
503
+ placeholder: L,
499
504
  className: "w-full"
500
- }), /* @__PURE__ */ A("p", {
505
+ }), /* @__PURE__ */ j("p", {
501
506
  className: "mt-1 text-xs text-[var(--oh-muted)]",
502
- children: o(t.BACKEND$LOGIN_CLOUD_HINT)
507
+ children: s(t.BACKEND$LOGIN_CLOUD_HINT)
503
508
  })]
504
509
  })]
505
510
  })
506
511
  ]
507
512
  });
508
513
  }
509
- function J({ onClose: e, source: t }) {
510
- let { addBackend: n } = d(), r = W(), { trackBackendAdded: i } = f();
511
- return /* @__PURE__ */ A(G, { onConnected: k.useCallback((a, o) => {
512
- n(a);
513
- let s = a.host === I;
514
- i({
515
- backendKind: a.kind,
516
- connectionMethod: o,
517
- isOpenhandsCloud: s,
518
- isCustomHost: !s,
519
- hasApiKey: !!a.apiKey,
520
- source: t
521
- }), r(), e();
522
- }, [
523
- n,
524
- r,
525
- e,
526
- i,
527
- t
528
- ]) });
514
+ function Y({ onClose: e, source: t }) {
515
+ let { addBackend: n } = f(), r = G(), { trackBackendAdded: i } = m();
516
+ return /* @__PURE__ */ j(K, {
517
+ onConnected: A.useCallback((o, s) => {
518
+ n(o);
519
+ let c = a(o.host);
520
+ p({
521
+ backendKind: o.kind,
522
+ connectionMethod: s,
523
+ host: o.host,
524
+ hasApiKey: !!o.apiKey,
525
+ source: t
526
+ }) || i({
527
+ backendKind: o.kind,
528
+ connectionMethod: s,
529
+ isOpenhandsCloud: c,
530
+ isCustomHost: !c,
531
+ hasApiKey: !!o.apiKey,
532
+ source: t
533
+ }), r(), e();
534
+ }, [
535
+ n,
536
+ r,
537
+ e,
538
+ i,
539
+ t
540
+ ]),
541
+ analyticsSource: t
542
+ });
529
543
  }
530
- function Y({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal" }) {
531
- let { t: s } = e("openhands");
532
- if (r === "add") return /* @__PURE__ */ A(p, {
533
- onClose: a,
544
+ function X({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal", hideCloseButton: s = !1 }) {
545
+ let { t: c } = e("openhands");
546
+ if (r === "add") return /* @__PURE__ */ j(h, {
547
+ onClose: s ? void 0 : a,
534
548
  closeOnEscape: !1,
535
- "aria-label": s(t.BACKEND$ADD_TITLE),
536
- children: /* @__PURE__ */ j("div", {
537
- "data-testid": "add-backend-modal",
538
- className: n("relative rounded-xl border border-[var(--oh-border)] bg-base-secondary", h("xl"), m),
549
+ closeOnBackdropClick: !s,
550
+ "aria-label": c(t.BACKEND$ADD_TITLE),
551
+ children: /* @__PURE__ */ M("div", {
552
+ "data-testid": s ? "onboarding-modal" : "add-backend-modal",
553
+ className: n("relative rounded-xl border border-[var(--oh-border)] bg-base-secondary", _("xl"), g),
539
554
  children: [
540
- /* @__PURE__ */ A(v, {
555
+ s ? null : /* @__PURE__ */ j(b, {
541
556
  onClose: a,
542
557
  testId: "add-backend-close"
543
558
  }),
544
- /* @__PURE__ */ A("div", {
559
+ s ? null : /* @__PURE__ */ j("div", {
545
560
  className: "px-6 pt-6 pb-2 pr-12",
546
- children: /* @__PURE__ */ A("h2", {
547
- className: g,
548
- children: s(t.BACKEND$ADD_TITLE)
561
+ children: /* @__PURE__ */ j("h2", {
562
+ className: v,
563
+ children: c(t.BACKEND$ADD_TITLE)
549
564
  })
550
565
  }),
551
- /* @__PURE__ */ A("div", {
552
- className: "px-6 pb-6 pt-2",
553
- children: /* @__PURE__ */ A(J, {
566
+ /* @__PURE__ */ j("div", {
567
+ className: n("px-6 pb-6", s ? "pt-6" : "pt-2"),
568
+ children: /* @__PURE__ */ j(Y, {
554
569
  onClose: a,
555
570
  source: o
556
571
  })
@@ -558,34 +573,34 @@ function Y({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal" })
558
573
  ]
559
574
  })
560
575
  });
561
- let c = "edit-backend";
562
- return /* @__PURE__ */ A(p, {
576
+ let l = "edit-backend";
577
+ return /* @__PURE__ */ j(h, {
563
578
  onClose: a,
564
579
  closeOnEscape: !1,
565
- "aria-label": s(t.BACKEND$EDIT_TITLE),
566
- children: /* @__PURE__ */ j("div", {
567
- "data-testid": `${c}-modal`,
568
- className: n("relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)]", h("md")),
580
+ "aria-label": c(t.BACKEND$EDIT_TITLE),
581
+ children: /* @__PURE__ */ M("div", {
582
+ "data-testid": `${l}-modal`,
583
+ className: n("relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)]", _("md")),
569
584
  children: [
570
- /* @__PURE__ */ A(v, {
585
+ /* @__PURE__ */ j(b, {
571
586
  onClose: a,
572
- testId: `${c}-close`
587
+ testId: `${l}-close`
573
588
  }),
574
- /* @__PURE__ */ A("h2", {
575
- className: n("pr-6", g),
576
- children: s(t.BACKEND$EDIT_TITLE)
589
+ /* @__PURE__ */ j("h2", {
590
+ className: n("pr-6", v),
591
+ children: c(t.BACKEND$EDIT_TITLE)
577
592
  }),
578
- /* @__PURE__ */ A(U, {
593
+ /* @__PURE__ */ j(W, {
579
594
  mode: "edit",
580
595
  backend: i,
581
596
  onSubmitted: a,
582
- testIdRoot: c
597
+ testIdRoot: l
583
598
  })
584
599
  ]
585
600
  })
586
601
  });
587
602
  }
588
603
  //#endregion
589
- export { Y as BackendFormModal };
604
+ export { X as BackendFormModal };
590
605
 
591
606
  //# sourceMappingURL=backend-form-modal.js.map