@openhands/agent-canvas 1.13.0 → 1.14.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 (437) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/{acp-providers-D1PORKc0.js → acp-providers-CYy8qA2z.js} +1 -1
  4. package/build/assets/active-backend-context-BZDG15C0.js +2 -0
  5. package/build/assets/{agent-context-settings-DMrObcIS.js → agent-context-settings-DGWBBbcp.js} +1 -1
  6. package/build/assets/{agent-profiles-settings-DororXN5.js → agent-profiles-settings-DrkGdf4_.js} +1 -1
  7. package/build/assets/{agent-server-conversation-service.api-DWBe0rbX.js → agent-server-conversation-service.api-DK56YPTs.js} +7 -7
  8. package/build/assets/{agent-settings-BJVk92PU.js → agent-settings-DfcSgkLD.js} +2 -2
  9. package/build/assets/agent-settings-Lrc5-twS.js +1 -0
  10. package/build/assets/{alert-banner-CzZsm7ms.js → alert-banner-BgDHhL7b.js} +1 -1
  11. package/build/assets/api-error-message-BEIE_yD1.js +1 -0
  12. package/build/assets/{api-key-entry-screen-D8Fade_-.js → api-key-entry-screen-DaZnOlVo.js} +1 -1
  13. package/build/assets/{app-settings-CpyGB3AT.js → app-settings-BG5NAUbC.js} +1 -1
  14. package/build/assets/automation-detail-D4Hs831Z.js +3 -0
  15. package/build/assets/automation-export-n0X6FB0C.js +2 -0
  16. package/build/assets/automation-git-sync-CDrm8WV7.js +1 -0
  17. package/build/assets/automation-setup-route-CZCl4ONs.js +1 -0
  18. package/build/assets/{automation-templates-DgpCGOJV.js → automation-templates-DFF96AdL.js} +1 -1
  19. package/build/assets/automations-list-Bl-oGOrV.js +1 -0
  20. package/build/assets/{back-nav-button-HHEneWMw.js → back-nav-button-H_ThtDA0.js} +1 -1
  21. package/build/assets/{backend-form-modal-DiVrD4Cm.js → backend-form-modal-CbCemvHt.js} +1 -1
  22. package/build/assets/backend-not-configured-DP8KLNq_.js +1 -0
  23. package/build/assets/{backend-synced-settings-badge-7MIjpr8M.js → backend-synced-settings-badge-BBASWqsb.js} +1 -1
  24. package/build/assets/{badge-CpYmcVZV.js → badge-B-51h-SW.js} +1 -1
  25. package/build/assets/{base-modal-Fnh6Uln9.js → base-modal-BbjycA8X.js} +1 -1
  26. package/build/assets/{bot-BQZx8e2i.js → bot-CGPCg03p.js} +1 -1
  27. package/build/assets/{brand-button-swT1RyO0.js → brand-button-Blxv5nww.js} +1 -1
  28. package/build/assets/browser-CuW0nWvh.js +7 -0
  29. package/build/assets/{browser-tab-zAY12m_i.js → browser-tab-D5G0ORwt.js} +1 -1
  30. package/build/assets/{chat-send-button-DsJtivmL.js → chat-send-button-BD2tii1r.js} +1 -1
  31. package/build/assets/check-DSuS-lyr.js +1 -0
  32. package/build/assets/chevron-down-CgGcmtE2.js +1 -0
  33. package/build/assets/circle-check-CG5-NPw7.js +1 -0
  34. package/build/assets/{circle-plus-check-toggle-Cuzx55bo.js → circle-plus-check-toggle-ASbpB8vN.js} +1 -1
  35. package/build/assets/{cloud-funnel-analytics-86CwNdSh.js → cloud-funnel-analytics-GlCUG0gk.js} +1 -1
  36. package/build/assets/cog-CZiR80uT.js +1 -0
  37. package/build/assets/{combobox-caret-D0fRotFi.js → combobox-caret-DvpEsh2O.js} +1 -1
  38. package/build/assets/{command-menu-BXy03FBl.js → command-menu-DwUQzjYP.js} +1 -1
  39. package/build/assets/{condenser-settings-BmZa0ui_.js → condenser-settings-BptcoiLA.js} +1 -1
  40. package/build/assets/{confirmation-modal-BgoN6lbN.js → confirmation-modal-CiEwxZAA.js} +1 -1
  41. package/build/assets/{context-menu-list-item-Bq02tc-P.js → context-menu-list-item-CdcamfM1.js} +1 -1
  42. package/build/assets/conversation-DREHj4nT.js +1 -0
  43. package/build/assets/conversation-DotRfiDz.js +90 -0
  44. package/build/assets/conversation-panel-DREHj4nT.js +1 -0
  45. package/build/assets/conversation-state-store-DMLtlHbE.js +1 -0
  46. package/build/assets/{conversation-tab-empty-state-CMqo_0Bd.js → conversation-tab-empty-state-D-puECpY.js} +1 -1
  47. package/build/assets/{copy-to-clipboard-button-Cg1pF0xn.js → copy-to-clipboard-button-BGxcUbgy.js} +1 -1
  48. package/build/assets/{device-verify-BfQLgNyq.js → device-verify-CZJfWaJf.js} +1 -1
  49. package/build/assets/{dropdown-classes-BIqQr5mx.js → dropdown-classes-tLhpwtxS.js} +1 -1
  50. package/build/assets/{entry.client-CxFjRYqH.js → entry.client-D8GnI6GZ.js} +2 -2
  51. package/build/assets/{enum-filter-dropdown-C_yV4_bo.js → enum-filter-dropdown-Fk8k60nk.js} +1 -1
  52. package/build/assets/{environment-switch-overlay-Bi4qbh2g.js → environment-switch-overlay-DeztVYuL.js} +1 -1
  53. package/build/assets/{extensions-hub-BqUINAhp.js → extensions-hub-Cd6GCYzq.js} +1 -1
  54. package/build/assets/{extensions-navigation-lraj88Wk.js → extensions-navigation-C4sgZg-y.js} +1 -1
  55. package/build/assets/{external-link-CgtpA_a1.js → external-link-C0UpBgsE.js} +1 -1
  56. package/build/assets/{file-text-DEK4LSVw.js → file-text-C6WYtNdV.js} +1 -1
  57. package/build/assets/files-tab-BW_qzyAm.js +1 -0
  58. package/build/assets/{form-control-classes-7yFSQJq_.js → form-control-classes-CGXBLcn1.js} +1 -1
  59. package/build/assets/format-model-name-BNPKVsIq.js +1 -0
  60. package/build/assets/format-relative-time-ZhQD4rsl.js +1 -0
  61. package/build/assets/git-provider-icon-CaQ1yLPi.js +1 -0
  62. package/build/assets/{git-repo-dropdown-ByMzpNko.js → git-repo-dropdown-CgXR6M_E.js} +1 -1
  63. package/build/assets/git-repo-dropdown-D2Uei3CO.js +1 -0
  64. package/build/assets/{highlighted-source-view-C_sfncLZ.js → highlighted-source-view-C_YOp8Fo.js} +1 -1
  65. package/build/assets/home-DNzzJcMP.js +1 -0
  66. package/build/assets/home-aCos-5vc.js +1 -0
  67. package/build/assets/{home-store-CxqsY9Fi.js → home-store-DgzViC3f.js} +1 -1
  68. package/build/assets/index-home-DNzzJcMP.js +1 -0
  69. package/build/assets/info-CLoC1LRo.js +1 -0
  70. package/build/assets/install-server-modal-D7zIqNKz.js +1 -0
  71. package/build/assets/kebab-menu-item-content-DERMdnDv.js +1 -0
  72. package/build/assets/{launch-CkqiSCqi.js → launch-5PjKeLak.js} +1 -1
  73. package/build/assets/{list-todo-DNWlzfaM.js → list-todo-BF049YaY.js} +1 -1
  74. package/build/assets/llm-not-configured-banner-BK9z5eS0.js +27 -0
  75. package/build/assets/llm-settings-BLAMK2tR.js +1 -0
  76. package/build/assets/llm-settings-BWsbarGM.js +1 -0
  77. package/build/assets/{llm-subscription-service-BAdOl5Xx.js → llm-subscription-service-SfnEV9Uc.js} +1 -1
  78. package/build/assets/loader-circle-D7IagAyF.js +1 -0
  79. package/build/assets/{loading-spinner-xhnrGP4Y.js → loading-spinner-DBgXgra0.js} +1 -1
  80. package/build/assets/{manage-backends-modal-DhGk5mJt.js → manage-backends-modal-BTqNPhzc.js} +1 -1
  81. package/build/assets/manifest-abebca3c.js +1 -0
  82. package/build/assets/manifest-subpage-layout-Rn-glaxV.js +1 -0
  83. package/build/assets/{map-provider-Mx8mZuE-.js → map-provider-BK4HnqYz.js} +1 -1
  84. package/build/assets/markdown-renderer-Cp6DlHQN.js +8 -0
  85. package/build/assets/{mcp-DCkvl6K0.js → mcp-BC-Ixn4T.js} +2 -2
  86. package/build/assets/{mcp-marketplace-utils-DEbMXlQr.js → mcp-marketplace-utils-BJWJgbB6.js} +1 -1
  87. package/build/assets/{messages-DSXvyc21.js → messages-CzFKrzPG.js} +5 -5
  88. package/build/assets/{modal-body-gIe21fDv.js → modal-body-BdKfD3Hl.js} +1 -1
  89. package/build/assets/{modal-classes-D66dlgZ7.js → modal-classes-D5_b5vMi.js} +1 -1
  90. package/build/assets/{modal-close-button-B6iOGYpI.js → modal-close-button-objukxk_.js} +1 -1
  91. package/build/assets/{mouse-pointer-click-BYX1Pw5W.js → mouse-pointer-click-C_gXyLyD.js} +1 -1
  92. package/build/assets/{npm-DLckoeJc.js → npm-CHVHV1MC.js} +1 -1
  93. package/build/assets/{onboarding-D7WDG66N.js → onboarding-Diw0V51A.js} +1 -1
  94. package/build/assets/onboarding-modal-Da4yHzsA.js +1 -0
  95. package/build/assets/{organization-service.api-D-s9z18a.js → organization-service.api-BztSy69u.js} +1 -1
  96. package/build/assets/parse-git-remote-url-BkXN9jzl.js +1 -0
  97. package/build/assets/{pencil-BGOCPRyu.js → pencil-49avMHlD.js} +1 -1
  98. package/build/assets/{planner-tab-AKaXIIfg.js → planner-tab-CJiSpNax.js} +1 -1
  99. package/build/assets/{plugins-management-service-wtmY4QQw.js → plugins-management-service-lHdNKWNU.js} +1 -1
  100. package/build/assets/plus-C0BagBpV.js +1 -0
  101. package/build/assets/profiles-service.api-BLr7FXec.js +1 -0
  102. package/build/assets/providers-CWXnb7S3.js +1 -0
  103. package/build/assets/{proxy-9Z_WZggZ.js → proxy-DYDXxtje.js} +1 -1
  104. package/build/assets/{puzzle-BWLmN8z4.js → puzzle-Bt2B1rzf.js} +1 -1
  105. package/build/assets/recommended-automations-launcher-CcFMfJRR.js +1 -0
  106. package/build/assets/{refresh-cw-CXtFWpwv.js → refresh-cw-nmcesifB.js} +1 -1
  107. package/build/assets/root-CT4t7apy.css +1 -0
  108. package/build/assets/root-DnRgLKpU.js +2 -0
  109. package/build/assets/root-layout-2L9tr-BN.js +2 -0
  110. package/build/assets/{schema-field-OnM5Uob_.js → schema-field-C59lVZTA.js} +1 -1
  111. package/build/assets/{sdk-section-page-m5WQm2sy.js → sdk-section-page-BbBEQQjq.js} +1 -1
  112. package/build/assets/search-CYSDBczG.js +1 -0
  113. package/build/assets/secrets-service-BtsgYSlj.js +1 -0
  114. package/build/assets/secrets-settings-DJ0OKa4_.js +1 -0
  115. package/build/assets/{segmented-toggle-DCspm2U5.js → segmented-toggle-DiVfTZuN.js} +1 -1
  116. package/build/assets/{settings-BJQI_iBM.js → settings-CDqL_Uqh.js} +1 -1
  117. package/build/assets/{settings-CWFxymAf.js → settings-DcNPxz0v.js} +1 -1
  118. package/build/assets/{settings-dropdown-input-BI8V_Nov.js → settings-dropdown-input-Ba1UN5Du.js} +1 -1
  119. package/build/assets/{settings-index-BiTqJoH7.js → settings-index-Cz2cKt2K.js} +1 -1
  120. package/build/assets/{settings-input-Cz62hWVW.js → settings-input-CWUEHHvS.js} +1 -1
  121. package/build/assets/{settings-list-classes-z_3FW5H3.js → settings-list-classes-DdcLXDGn.js} +1 -1
  122. package/build/assets/{settings-modal-BIrIVn97.js → settings-modal-nEEK1Kh1.js} +1 -1
  123. package/build/assets/{settings-service.api--rJmnuLa.js → settings-service.api-3yAUFcaP.js} +1 -1
  124. package/build/assets/{settings-switch-BRsSI8Vs.js → settings-switch-Dk9hChx1.js} +1 -1
  125. package/build/assets/{settings-utils-Ba7vel6T.js → settings-utils-CxjtCSB3.js} +1 -1
  126. package/build/assets/{shared-conversation-CQK_PqHx.js → shared-conversation-DbAcrx3s.js} +1 -1
  127. package/build/assets/{shield-check-T3JsDJiM.js → shield-check-CiOTXxV2.js} +1 -1
  128. package/build/assets/{sidebar-layout-Bhi3hVcu.js → sidebar-layout-lrfPooIB.js} +1 -1
  129. package/build/assets/{sidebar-mobile-menu-toggle-YWJNRN4p.js → sidebar-mobile-menu-toggle-KERXfNu1.js} +1 -1
  130. package/build/assets/{sidebar-nav-link-BSUlY5Ml.js → sidebar-nav-link-B8lFD6Cb.js} +1 -1
  131. package/build/assets/{sidebar-store-Cl1cUv_F.js → sidebar-store-u6pUpxJ7.js} +1 -1
  132. package/build/assets/{skill-card-pill-row-BXz8L8Rn.js → skill-card-pill-row-dGIUzr_b.js} +1 -1
  133. package/build/assets/{skill-icon-badge-QgfKv31M.js → skill-icon-badge-kkOWZ89w.js} +1 -1
  134. package/build/assets/{skill-scope-Dc3JPW-8.js → skill-scope-DWN1PBPH.js} +1 -1
  135. package/build/assets/{skills-plugins-CpTV27n3.js → skills-plugins-DFjH2Nq6.js} +1 -1
  136. package/build/assets/{skills-settings-CSW__IW4.js → skills-settings-DIHpl3ol.js} +2 -2
  137. package/build/assets/{sparkles-TJ0mdECe.js → sparkles-ntyMLnbj.js} +1 -1
  138. package/build/assets/{styled-tooltip-BUMSbgrF.js → styled-tooltip-B6JXcsmL.js} +1 -1
  139. package/build/assets/{task-list-tab-mAHMOkUz.js → task-list-tab-aEJzEcHD.js} +1 -1
  140. package/build/assets/{terminal-BzxBaHx2.js → terminal-Dch7Ty5K.js} +1 -1
  141. package/build/assets/{toggle-switch-O5v1FgxW.js → toggle-switch-B2MLKsgt.js} +1 -1
  142. package/build/assets/{trash-2-C0xNVp9c.js → trash-2-yZnDM4Ji.js} +1 -1
  143. package/build/assets/{typography-NOKSk9_R.js → typography-DB5HoCk0.js} +1 -1
  144. package/build/assets/usage-tab-DrEtBmBT.js +1 -0
  145. package/build/assets/use-acp-credential-form-c8KXAa8A.js +1 -0
  146. package/build/assets/{use-activate-agent-profile-D9YRQPTF.js → use-activate-agent-profile-B0p34N3q.js} +1 -1
  147. package/build/assets/use-agent-profiles-CPIc6wLH.js +1 -0
  148. package/build/assets/{use-can-manage-org-profiles-Dxzq2AEd.js → use-can-manage-org-profiles-Dz_8Eqkv.js} +1 -1
  149. package/build/assets/{use-cloud-current-user-id-Co2eJk2A.js → use-cloud-current-user-id-DvUVqCle.js} +1 -1
  150. package/build/assets/use-config-C3PO4TBw.js +1 -0
  151. package/build/assets/{use-create-conversation-CoHTiCbI.js → use-create-conversation-DVrA_uLD.js} +1 -1
  152. package/build/assets/use-create-secret-DbBIpaCR.js +1 -0
  153. package/build/assets/use-get-secrets-6PBitf54.js +1 -0
  154. package/build/assets/use-has-permission-CQ31Cl8j.js +1 -0
  155. package/build/assets/use-is-authed-2UrDIziV.js +1 -0
  156. package/build/assets/use-is-creating-conversation-BvYpmb3v.js +1 -0
  157. package/build/assets/use-llm-profiles-diZS4FiN.js +1 -0
  158. package/build/assets/use-manifest-capabilities-HIWCtIUm.js +1 -0
  159. package/build/assets/{use-onboarding-completion-CCE8OQgV.js → use-onboarding-completion-Bs8PcXik.js} +1 -1
  160. package/build/assets/{use-plugins-marketplace-CEiak69h.js → use-plugins-marketplace-BCuNLFsr.js} +1 -1
  161. package/build/assets/use-save-agent-profile-BaMNSpBV.js +1 -0
  162. package/build/assets/{use-save-settings-DNmnbG6f.js → use-save-settings-BahvC2Gw.js} +1 -1
  163. package/build/assets/{use-settings-wCwPaSIv.js → use-settings-C6ZxpBDX.js} +1 -1
  164. package/build/assets/{use-settings-nav-items-BlFL7YhM.js → use-settings-nav-items-Bqn69Ggw.js} +2 -2
  165. package/build/assets/use-tracking-Bhu7gk2y.js +3 -0
  166. package/build/assets/{use-user-conversation-DVtfg0B_.js → use-user-conversation-BkNXpXrd.js} +1 -1
  167. package/build/assets/{useInfiniteQuery-p1xq35r2.js → useInfiniteQuery-c_OmS3lK.js} +1 -1
  168. package/build/assets/{useMutation-BFDQmgk9.js → useMutation-6ZsQCqAn.js} +1 -1
  169. package/build/assets/{useQueries-DF1NAAeC.js → useQueries-xDrGlTO_.js} +1 -1
  170. package/build/assets/{useQuery-DRv--6bK.js → useQuery-Bs5NFz2s.js} +1 -1
  171. package/build/assets/{utils-zxEjKE70.js → utils-DUD5ScdA.js} +1 -1
  172. package/build/assets/{vendor~entry.client-CgNUwtQL.js → vendor~entry.client-BFE7Llz9.js} +1 -1
  173. package/build/assets/{vendor~entry.client-zSIea5EO.js → vendor~entry.client-BaKt_PIp.js} +1 -1
  174. package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-B8i84bh4.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js} +1 -1
  175. package/build/assets/{vendor~files-tab-D9wR9yM2.js → vendor~files-tab-B6POTS66.js} +1 -1
  176. package/build/assets/{vendor~index-home~home~conversation-panel~conversation-Ipoe6hvY.js → vendor~index-home~home~conversation-panel~conversation-53Q_U6uP.js} +1 -1
  177. package/build/assets/{vendor~root-layout-C-IgVx6e.js → vendor~root-layout-DeQACFVA.js} +1 -1
  178. package/build/assets/{vendor~root-layout~conversation-panel~conversation-Dhd_I4H4.js → vendor~root-layout~conversation-panel~conversation-bv7ooVgH.js} +1 -1
  179. package/build/assets/{vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-Cc0f9kPP.js → vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-e8pX05xf.js} +1 -1
  180. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-d7svw-BB.js → vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-BvS6PCK2.js} +1 -1
  181. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-4WsUP-tz.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-DOPLJMH9.js} +1 -1
  182. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-D5DWZVc7.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js} +1 -1
  183. package/build/assets/{verification-settings-B8UMQ7MG.js → verification-settings-COueVXmM.js} +1 -1
  184. package/build/assets/{wrench-DIka3hCq.js → wrench-C95ujnYo.js} +1 -1
  185. package/build/assets/x-86ZCfxKY.js +1 -0
  186. package/build/assets/{zap-DHddTPc0.js → zap-DRa-r-Tf.js} +1 -1
  187. package/build/index.html +4 -4
  188. package/build/locales/ar/openhands.json +60 -2
  189. package/build/locales/ca/openhands.json +60 -2
  190. package/build/locales/de/openhands.json +60 -2
  191. package/build/locales/en/openhands.json +60 -2
  192. package/build/locales/es/openhands.json +60 -2
  193. package/build/locales/fr/openhands.json +60 -2
  194. package/build/locales/it/openhands.json +60 -2
  195. package/build/locales/ja/openhands.json +60 -2
  196. package/build/locales/ko-KR/openhands.json +60 -2
  197. package/build/locales/no/openhands.json +60 -2
  198. package/build/locales/pt/openhands.json +60 -2
  199. package/build/locales/tr/openhands.json +60 -2
  200. package/build/locales/uk/openhands.json +60 -2
  201. package/build/locales/zh-CN/openhands.json +60 -2
  202. package/build/locales/zh-TW/openhands.json +60 -2
  203. package/config/defaults.json +1 -1
  204. package/dist/api/automation-service/automation-service.api.cjs +1 -1
  205. package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
  206. package/dist/api/automation-service/automation-service.api.d.ts +10 -0
  207. package/dist/api/automation-service/automation-service.api.js +42 -0
  208. package/dist/api/automation-service/automation-service.api.js.map +1 -1
  209. package/dist/api/cloud/conversation-service.api.cjs +1 -1
  210. package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
  211. package/dist/api/cloud/conversation-service.api.d.ts +9 -0
  212. package/dist/api/cloud/conversation-service.api.js +11 -1
  213. package/dist/api/cloud/conversation-service.api.js.map +1 -1
  214. package/dist/api/profiles-service/profiles-service.api.cjs +1 -1
  215. package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
  216. package/dist/api/profiles-service/profiles-service.api.d.ts +15 -2
  217. package/dist/api/profiles-service/profiles-service.api.js +25 -2
  218. package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
  219. package/dist/api/secrets-service.cjs +1 -1
  220. package/dist/api/secrets-service.cjs.map +1 -1
  221. package/dist/api/secrets-service.d.ts +5 -0
  222. package/dist/api/secrets-service.js +12 -6
  223. package/dist/api/secrets-service.js.map +1 -1
  224. package/dist/components/conversation-events/chat/event-message-components/index.d.ts +0 -1
  225. package/dist/components/features/automations/git-sync/git-sync-activity-row.d.ts +15 -0
  226. package/dist/components/features/automations/git-sync/git-sync-config-form.d.ts +13 -0
  227. package/dist/components/features/automations/git-sync/git-sync-error-banner.d.ts +6 -0
  228. package/dist/components/features/automations/git-sync/git-sync-not-local-state.d.ts +1 -0
  229. package/dist/components/features/automations/git-sync/git-sync-overview-section.d.ts +12 -0
  230. package/dist/components/features/automations/git-sync/git-sync-skeleton.d.ts +1 -0
  231. package/dist/components/features/automations/git-sync/git-sync-status-pill.d.ts +7 -0
  232. package/dist/components/features/automations/git-sync/git-sync-unsupported-state.d.ts +7 -0
  233. package/dist/components/features/automations/responder-deployment-modal.d.ts +2 -1
  234. package/dist/components/features/chat/chat-interface.cjs +2 -2
  235. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  236. package/dist/components/features/chat/chat-interface.js +177 -176
  237. package/dist/components/features/chat/chat-interface.js.map +1 -1
  238. package/dist/components/features/chat/error-message-banner.cjs +1 -1
  239. package/dist/components/features/chat/error-message-banner.cjs.map +1 -1
  240. package/dist/components/features/chat/error-message-banner.d.ts +3 -1
  241. package/dist/components/features/chat/error-message-banner.js +64 -58
  242. package/dist/components/features/chat/error-message-banner.js.map +1 -1
  243. package/dist/components/features/conversation-panel/compact-conversation-row.cjs +1 -1
  244. package/dist/components/features/conversation-panel/compact-conversation-row.js +6 -6
  245. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  246. package/dist/components/features/conversation-panel/conversation-panel.js +19 -19
  247. package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +10 -7
  248. package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs +1 -1
  249. package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs.map +1 -1
  250. package/dist/components/shared/buttons/conversation-confirmation-buttons.js +1 -1
  251. package/dist/components/shared/buttons/conversation-confirmation-buttons.js.map +1 -1
  252. package/dist/config/defaults.cjs +1 -1
  253. package/dist/config/defaults.cjs.map +1 -1
  254. package/dist/config/defaults.js +1 -1
  255. package/dist/config/defaults.js.map +1 -1
  256. package/dist/contexts/conversation-websocket-context.cjs +2 -2
  257. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  258. package/dist/contexts/conversation-websocket-context.js +12 -12
  259. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  260. package/dist/hooks/query/use-commit-changes.cjs +1 -1
  261. package/dist/hooks/query/use-commit-changes.js +4 -4
  262. package/dist/hooks/query/use-git-sync.d.ts +19 -0
  263. package/dist/hooks/query/use-task-polling.cjs +1 -1
  264. package/dist/hooks/query/use-task-polling.cjs.map +1 -1
  265. package/dist/hooks/query/use-task-polling.js +12 -10
  266. package/dist/hooks/query/use-task-polling.js.map +1 -1
  267. package/dist/hooks/query/use-unified-get-git-changes.cjs +1 -1
  268. package/dist/hooks/query/use-unified-get-git-changes.js +4 -4
  269. package/dist/hooks/query/use-unified-git-commits.cjs +1 -1
  270. package/dist/hooks/query/use-unified-git-commits.js +4 -4
  271. package/dist/hooks/query/use-unified-git-diff.cjs +1 -1
  272. package/dist/hooks/query/use-unified-git-diff.js +4 -4
  273. package/dist/hooks/query/use-workspace-files.cjs +1 -1
  274. package/dist/hooks/query/use-workspace-files.cjs.map +1 -1
  275. package/dist/hooks/query/use-workspace-files.d.ts +14 -4
  276. package/dist/hooks/query/use-workspace-files.js +45 -32
  277. package/dist/hooks/query/use-workspace-files.js.map +1 -1
  278. package/dist/hooks/use-responder-url-secret.d.ts +5 -0
  279. package/dist/hooks/use-tracking.cjs +1 -1
  280. package/dist/hooks/use-tracking.cjs.map +1 -1
  281. package/dist/hooks/use-tracking.d.ts +6 -0
  282. package/dist/hooks/use-tracking.js +6 -0
  283. package/dist/hooks/use-tracking.js.map +1 -1
  284. package/dist/i18n/declaration.cjs +1 -1
  285. package/dist/i18n/declaration.cjs.map +1 -1
  286. package/dist/i18n/declaration.d.ts +59 -1
  287. package/dist/i18n/declaration.js +1 -1
  288. package/dist/i18n/declaration.js.map +1 -1
  289. package/dist/i18n/translation.cjs +1 -1
  290. package/dist/i18n/translation.cjs.map +1 -1
  291. package/dist/i18n/translation.js +1001 -15
  292. package/dist/i18n/translation.js.map +1 -1
  293. package/dist/locales/ar/openhands.json +60 -2
  294. package/dist/locales/ca/openhands.json +60 -2
  295. package/dist/locales/de/openhands.json +60 -2
  296. package/dist/locales/en/openhands.json +60 -2
  297. package/dist/locales/es/openhands.json +60 -2
  298. package/dist/locales/fr/openhands.json +60 -2
  299. package/dist/locales/it/openhands.json +60 -2
  300. package/dist/locales/ja/openhands.json +60 -2
  301. package/dist/locales/ko-KR/openhands.json +60 -2
  302. package/dist/locales/no/openhands.json +60 -2
  303. package/dist/locales/pt/openhands.json +60 -2
  304. package/dist/locales/tr/openhands.json +60 -2
  305. package/dist/locales/uk/openhands.json +60 -2
  306. package/dist/locales/zh-CN/openhands.json +60 -2
  307. package/dist/locales/zh-TW/openhands.json +60 -2
  308. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs +2 -0
  309. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs.map +1 -0
  310. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js +27 -0
  311. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js.map +1 -0
  312. package/dist/package.cjs +1 -1
  313. package/dist/package.cjs.map +1 -1
  314. package/dist/package.js +1 -1
  315. package/dist/package.js.map +1 -1
  316. package/dist/routes/files-tab.cjs +1 -1
  317. package/dist/routes/files-tab.js +11 -11
  318. package/dist/routes/files-tab.js.map +1 -1
  319. package/dist/services/settings.cjs +1 -1
  320. package/dist/services/settings.cjs.map +1 -1
  321. package/dist/services/settings.js +2 -2
  322. package/dist/services/settings.js.map +1 -1
  323. package/dist/services/telemetry.cjs +1 -1
  324. package/dist/services/telemetry.cjs.map +1 -1
  325. package/dist/services/telemetry.js +47 -51
  326. package/dist/services/telemetry.js.map +1 -1
  327. package/dist/stores/error-message-store.cjs +1 -1
  328. package/dist/stores/error-message-store.cjs.map +1 -1
  329. package/dist/stores/error-message-store.d.ts +3 -1
  330. package/dist/stores/error-message-store.js +5 -3
  331. package/dist/stores/error-message-store.js.map +1 -1
  332. package/dist/types/git-sync.d.ts +51 -0
  333. package/dist/utils/error-handler.cjs +1 -1
  334. package/dist/utils/error-handler.cjs.map +1 -1
  335. package/dist/utils/error-handler.d.ts +3 -2
  336. package/dist/utils/error-handler.js +18 -5
  337. package/dist/utils/error-handler.js.map +1 -1
  338. package/dist/utils/format-model-name.cjs +1 -1
  339. package/dist/utils/format-model-name.cjs.map +1 -1
  340. package/dist/utils/format-model-name.d.ts +1 -0
  341. package/dist/utils/format-model-name.js +1 -0
  342. package/dist/utils/format-model-name.js.map +1 -1
  343. package/dist/utils/transcript-export/load-complete-events.cjs +1 -1
  344. package/dist/utils/transcript-export/load-complete-events.cjs.map +1 -1
  345. package/dist/utils/transcript-export/load-complete-events.js +24 -16
  346. package/dist/utils/transcript-export/load-complete-events.js.map +1 -1
  347. package/package.json +1 -1
  348. package/scripts/check-translation-completeness.cjs +3 -0
  349. package/scripts/dev-with-automation.mjs +98 -9
  350. package/build/assets/active-backend-context-IqOjobNK.js +0 -2
  351. package/build/assets/agent-settings-COfJsQ1d.js +0 -1
  352. package/build/assets/automation-detail-B-jQ39Mm.js +0 -3
  353. package/build/assets/automation-export-B1dywoqk.js +0 -2
  354. package/build/assets/automation-setup-route-C-bWUZBi.js +0 -1
  355. package/build/assets/automations-list-DnMxlxsL.js +0 -1
  356. package/build/assets/browser-B9AbV6kG.js +0 -7
  357. package/build/assets/check-WAFXrrs_.js +0 -1
  358. package/build/assets/chevron-down-CifNWzme.js +0 -1
  359. package/build/assets/circle-check-CtnimJa8.js +0 -1
  360. package/build/assets/conversation-BPo8SvLN.js +0 -1
  361. package/build/assets/conversation-CPCVsCUY.js +0 -90
  362. package/build/assets/conversation-panel-BPo8SvLN.js +0 -1
  363. package/build/assets/conversation-state-store-C5YpjMNy.js +0 -1
  364. package/build/assets/files-tab-DV0L-lFE.js +0 -1
  365. package/build/assets/format-model-name-BN_rx1Y3.js +0 -1
  366. package/build/assets/format-relative-time-DSErAuVr.js +0 -1
  367. package/build/assets/git-provider-icon-BvlLAche.js +0 -1
  368. package/build/assets/git-repo-dropdown-C6R7hgM8.js +0 -1
  369. package/build/assets/home-BOrlwLqG.js +0 -1
  370. package/build/assets/home-BvMNC6E-.js +0 -1
  371. package/build/assets/index-home-BvMNC6E-.js +0 -1
  372. package/build/assets/info-BRVcJAUg.js +0 -1
  373. package/build/assets/install-server-modal-Bl4G1zF4.js +0 -1
  374. package/build/assets/kebab-menu-item-content-BGoGFEAg.js +0 -1
  375. package/build/assets/llm-not-configured-banner-DLw_tu-G.js +0 -27
  376. package/build/assets/llm-settings-B-pkVCrt.js +0 -1
  377. package/build/assets/llm-settings-DSC0-IQ7.js +0 -1
  378. package/build/assets/loader-circle-B47W9XqT.js +0 -1
  379. package/build/assets/manifest-653b89aa.js +0 -1
  380. package/build/assets/manifest-subpage-layout-CKWvL2ig.js +0 -1
  381. package/build/assets/markdown-renderer-DUmk7pFc.js +0 -8
  382. package/build/assets/onboarding-modal-C_xVrFNv.js +0 -1
  383. package/build/assets/plus-zNEL8rcX.js +0 -1
  384. package/build/assets/profiles-service.api-DCMYxHMi.js +0 -1
  385. package/build/assets/providers-BjrtjX4L.js +0 -1
  386. package/build/assets/recommended-automations-launcher-CFlzhu1o.js +0 -1
  387. package/build/assets/root-CanxKlNV.css +0 -1
  388. package/build/assets/root-DkfG_UWR.js +0 -2
  389. package/build/assets/root-layout-D75LHYhh.js +0 -2
  390. package/build/assets/search-CycosyjN.js +0 -1
  391. package/build/assets/secrets-service-B26R61C1.js +0 -1
  392. package/build/assets/secrets-settings-CbLYCKOX.js +0 -1
  393. package/build/assets/usage-tab-tEmVN0KD.js +0 -1
  394. package/build/assets/use-acp-credential-form-BPNi0Zbm.js +0 -1
  395. package/build/assets/use-agent-profiles-Cb2zUW3l.js +0 -1
  396. package/build/assets/use-config-DKAMiI5R.js +0 -1
  397. package/build/assets/use-create-secret-2zBlCDsF.js +0 -1
  398. package/build/assets/use-is-authed-C52-ivnB.js +0 -1
  399. package/build/assets/use-is-creating-conversation-DdaAE6jV.js +0 -1
  400. package/build/assets/use-llm-profiles-C_BHue65.js +0 -1
  401. package/build/assets/use-manifest-capabilities-DPrQsaPP.js +0 -1
  402. package/build/assets/use-save-agent-profile-DK9idD6a.js +0 -1
  403. package/build/assets/use-tracking-CVwPmhlX.js +0 -3
  404. package/build/assets/x-BWKA2Ver.js +0 -1
  405. package/dist/api/cloud/suggestions-service.api.d.ts +0 -8
  406. package/dist/api/suggestions-service/suggestions-service.api.d.ts +0 -11
  407. package/dist/components/conversation-events/chat/event-message-components/observation-pair-event-message.d.ts +0 -7
  408. package/dist/components/conversation-events/index.d.ts +0 -1
  409. package/dist/components/features/automations/metadata-chip.d.ts +0 -6
  410. package/dist/components/features/chat/task-tracking/status-badge.d.ts +0 -5
  411. package/dist/components/features/chat/task-tracking/status-icon.d.ts +0 -5
  412. package/dist/components/features/chat/task-tracking/task-list-section.d.ts +0 -10
  413. package/dist/components/features/controls/tools.d.ts +0 -2
  414. package/dist/components/features/conversation-panel/new-conversation-button.d.ts +0 -23
  415. package/dist/components/features/home/home-header/guide-message.d.ts +0 -1
  416. package/dist/components/features/home/home-header/home-header.d.ts +0 -1
  417. package/dist/components/features/home/new-conversation/create-conversation-button.d.ts +0 -1
  418. package/dist/components/features/home/new-conversation/new-conversation.d.ts +0 -1
  419. package/dist/components/features/home/new-conversation.d.ts +0 -1
  420. package/dist/components/features/home/tasks/task-card.d.ts +0 -6
  421. package/dist/components/features/home/tasks/task-group.d.ts +0 -7
  422. package/dist/components/features/home/tasks/task-issue-number.d.ts +0 -6
  423. package/dist/components/features/home/tasks/task-item-title.d.ts +0 -1
  424. package/dist/components/features/home/tasks/task-suggestions-skeleton.d.ts +0 -1
  425. package/dist/components/features/home/tasks/task-suggestions.d.ts +0 -6
  426. package/dist/components/features/settings/agent-server-onboarding.d.ts +0 -10
  427. package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +0 -6
  428. package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +0 -8
  429. package/dist/hooks/query/use-suggested-tasks.d.ts +0 -1
  430. package/dist/hooks/use-should-show-user-features.d.ts +0 -1
  431. package/dist/ui/card-title.d.ts +0 -16
  432. package/dist/ui/card.d.ts +0 -14
  433. package/dist/utils/group-suggested-tasks.d.ts +0 -7
  434. /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dh9v73sa-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js} +0 -0
  435. /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js} +0 -0
  436. /package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~9pstowjp-BOVIFA_g.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BOVIFA_g.js} +0 -0
  437. /package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js} +0 -0
@@ -6,280 +6,281 @@ import { useOptionalConversationId as a } from "../../../hooks/use-conversation-
6
6
  import { useConversationStore as o } from "../../../stores/conversation-store.js";
7
7
  import { displayErrorToast as s } from "../../../utils/custom-toast-handlers.js";
8
8
  import "../../../constants/server-connection-error.js";
9
- import { useErrorMessageStore as c } from "../../../stores/error-message-store.js";
10
- import { useOptimisticUserMessageStore as l } from "../../../stores/optimistic-user-message-store.js";
11
- import { useGoalStore as u } from "../../../stores/goal-store.js";
12
- import { useModelStore as d } from "../../../stores/model-store.js";
13
- import { useConversationWebSocket as f } from "../../../contexts/conversation-websocket-context.js";
14
- import { useSendMessage as p } from "../../../hooks/use-send-message.js";
15
- import { useActiveConversation as m } from "../../../hooks/query/use-active-conversation.js";
16
- import { useAgentState as h } from "../../../hooks/use-agent-state.js";
17
- import { convertImageToBase64 as ee } from "../../../utils/convert-image-to-base-64.js";
18
- import { validateFiles as te } from "../../../utils/file-validation.js";
19
- import { matchesPendingConversationId as ne } from "../../../utils/pending-task-message-link.js";
20
- import { useTaskPolling as re } from "../../../hooks/query/use-task-polling.js";
21
- import { useTracking as ie } from "../../../hooks/use-tracking.js";
22
- import { isAcpAuthErrorCode as ae } from "../../../utils/acp-error-codes.js";
23
- import { createChatMessage as oe } from "../../../services/chat-service.js";
24
- import { BtwMessages as se } from "./btw-messages.js";
25
- import { GoalStatusBanner as ce } from "./goal-status-banner.js";
26
- import { ModelMessages as le } from "./model-messages.js";
27
- import { hasConversationStarted as ue } from "./components/resolve-picker-kind.js";
28
- import { useIsArchivedConversation as de } from "../../../hooks/use-is-archived-conversation.js";
29
- import { LoadingSpinner as g } from "../../shared/loading-spinner.js";
30
- import { useScrollToBottom as fe } from "../../../hooks/use-scroll-to-bottom.js";
31
- import { ScrollProvider as pe } from "../../../context/scroll-context.js";
32
- import { InteractiveChatBox as me } from "./interactive-chat-box.js";
33
- import { useFilteredEvents as he } from "../../../hooks/use-filtered-events.js";
34
- import { useLoadOlderEvents as ge } from "../../../hooks/use-load-older-events.js";
35
- import { TypingIndicator as _e } from "./typing-indicator.js";
36
- import { ChatSuggestions as ve } from "./chat-suggestions.js";
37
- import { useInitialQueryStore as ye } from "../../../stores/initial-query-store.js";
38
- import { useHandleBuildPlanClick as be } from "../../../hooks/use-handle-build-plan-click.js";
39
- import { ScrollToBottomButton as xe } from "../../shared/buttons/scroll-to-bottom-button.js";
40
- import { ChatMessagesSkeleton as Se } from "./chat-messages-skeleton.js";
41
- import { ErrorMessageBanner as Ce } from "./error-message-banner.js";
42
- import { SkillInstallRestartBanner as we } from "./skill-install-restart-banner.js";
43
- import { useLlmConfigured as Te } from "../../../hooks/use-llm-configured.js";
44
- import { LlmNotConfiguredBanner as Ee } from "../home/llm-not-configured-banner.js";
45
- import { Messages as De } from "../../conversation-events/chat/messages.js";
46
- import { PendingUserMessages as Oe } from "./pending-user-messages.js";
47
- import { useUnifiedUploadFiles as ke } from "../../../hooks/mutation/use-unified-upload-files.js";
48
- import Ae from "./confirmation-mode-enabled.js";
49
- import je from "./chat-status-indicator.js";
50
- import { useNewConversationCommand as Me } from "../../../hooks/mutation/use-new-conversation-command.js";
51
- import _ from "react";
52
- import { jsx as v, jsxs as y } from "react/jsx-runtime";
53
- import { useNavigate as Ne } from "react-router";
9
+ import { useErrorMessageStore as ee } from "../../../stores/error-message-store.js";
10
+ import { useOptimisticUserMessageStore as c } from "../../../stores/optimistic-user-message-store.js";
11
+ import { useGoalStore as l } from "../../../stores/goal-store.js";
12
+ import { useModelStore as u } from "../../../stores/model-store.js";
13
+ import { useConversationWebSocket as d } from "../../../contexts/conversation-websocket-context.js";
14
+ import { useSendMessage as te } from "../../../hooks/use-send-message.js";
15
+ import { useActiveConversation as f } from "../../../hooks/query/use-active-conversation.js";
16
+ import { useAgentState as p } from "../../../hooks/use-agent-state.js";
17
+ import { convertImageToBase64 as ne } from "../../../utils/convert-image-to-base-64.js";
18
+ import { validateFiles as re } from "../../../utils/file-validation.js";
19
+ import { matchesPendingConversationId as ie } from "../../../utils/pending-task-message-link.js";
20
+ import { useTaskPolling as ae } from "../../../hooks/query/use-task-polling.js";
21
+ import { useTracking as oe } from "../../../hooks/use-tracking.js";
22
+ import { isAcpAuthErrorCode as se } from "../../../utils/acp-error-codes.js";
23
+ import { createChatMessage as ce } from "../../../services/chat-service.js";
24
+ import { BtwMessages as le } from "./btw-messages.js";
25
+ import { GoalStatusBanner as ue } from "./goal-status-banner.js";
26
+ import { ModelMessages as de } from "./model-messages.js";
27
+ import { hasConversationStarted as fe } from "./components/resolve-picker-kind.js";
28
+ import { useIsArchivedConversation as pe } from "../../../hooks/use-is-archived-conversation.js";
29
+ import { LoadingSpinner as m } from "../../shared/loading-spinner.js";
30
+ import { useScrollToBottom as me } from "../../../hooks/use-scroll-to-bottom.js";
31
+ import { ScrollProvider as he } from "../../../context/scroll-context.js";
32
+ import { InteractiveChatBox as ge } from "./interactive-chat-box.js";
33
+ import { useFilteredEvents as _e } from "../../../hooks/use-filtered-events.js";
34
+ import { useLoadOlderEvents as ve } from "../../../hooks/use-load-older-events.js";
35
+ import { TypingIndicator as ye } from "./typing-indicator.js";
36
+ import { ChatSuggestions as be } from "./chat-suggestions.js";
37
+ import { useInitialQueryStore as xe } from "../../../stores/initial-query-store.js";
38
+ import { useHandleBuildPlanClick as Se } from "../../../hooks/use-handle-build-plan-click.js";
39
+ import { ScrollToBottomButton as Ce } from "../../shared/buttons/scroll-to-bottom-button.js";
40
+ import { ChatMessagesSkeleton as we } from "./chat-messages-skeleton.js";
41
+ import { ErrorMessageBanner as Te } from "./error-message-banner.js";
42
+ import { SkillInstallRestartBanner as Ee } from "./skill-install-restart-banner.js";
43
+ import { useLlmConfigured as De } from "../../../hooks/use-llm-configured.js";
44
+ import { LlmNotConfiguredBanner as Oe } from "../home/llm-not-configured-banner.js";
45
+ import { Messages as ke } from "../../conversation-events/chat/messages.js";
46
+ import { PendingUserMessages as Ae } from "./pending-user-messages.js";
47
+ import { useUnifiedUploadFiles as je } from "../../../hooks/mutation/use-unified-upload-files.js";
48
+ import Me from "./confirmation-mode-enabled.js";
49
+ import Ne from "./chat-status-indicator.js";
50
+ import { useNewConversationCommand as Pe } from "../../../hooks/mutation/use-new-conversation-command.js";
51
+ import h from "react";
52
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
53
+ import { useNavigate as Fe } from "react-router";
54
54
  //#region src/components/features/chat/chat-interface.tsx
55
- function Pe(e, t) {
55
+ function Ie(e, t) {
56
56
  return e ? "github" : t ? "replay" : "direct";
57
57
  }
58
- function Fe() {
59
- let { trackInitialQuerySubmitted: Fe, trackUserMessageSent: Ie } = ie(), { setMessageToSend: Le } = o(), { errorMessage: b, errorCode: x, removeErrorMessage: Re, setErrorMessage: S } = c(), ze = Ne(), { isTask: C, taskStatus: Be, taskDetail: Ve } = re(), w = C, T = f(), { send: He } = p(), { renderableEvents: E, allConversationEvents: D, totalEvents: O, hasSubstantiveAgentActions: k, userEventsExist: A } = he(), Ue = l((e) => e.enqueuePendingMessage), We = l((e) => e.markPendingMessageError), j = l((e) => e.pendingMessages), { t: M } = e("openhands"), N = _.useRef(null), { scrollDomToBottom: P, onChatBodyScroll: F, hitBottom: I, autoScroll: L, setAutoScroll: Ge, setHitBottom: Ke } = fe(N), { mutate: qe, isPending: R } = Me(), { curAgentState: z } = h(), { handleBuildPlanClick: B } = be(), { data: Je } = m(), V = Je?.sandbox_status ?? null, H = de(), { isConfigured: Ye, isLoading: Xe } = Te(), U = !Xe && !Ye, W = z === n.RUNNING || z === n.LOADING;
60
- _.useEffect(() => {
61
- if (W) return;
58
+ function Le() {
59
+ let { trackInitialQuerySubmitted: Le, trackUserMessageSent: Re } = oe(), { setMessageToSend: v } = o(), { errorMessage: y, errorCode: b, errorClassification: ze, removeErrorMessage: Be, setErrorMessage: x } = ee(), Ve = Fe(), { isTask: S, taskStatus: He, taskDetail: Ue } = ae(), C = S, w = d(), { send: We } = te(), { renderableEvents: T, allConversationEvents: E, totalEvents: D, hasSubstantiveAgentActions: O, userEventsExist: k } = _e(), Ge = c((e) => e.enqueuePendingMessage), Ke = c((e) => e.markPendingMessageError), A = c((e) => e.pendingMessages), { t: j } = e("openhands"), M = h.useRef(null), { scrollDomToBottom: N, onChatBodyScroll: P, hitBottom: F, autoScroll: I, setAutoScroll: qe, setHitBottom: Je } = me(M), { mutate: Ye, isPending: L } = Pe(), { curAgentState: R } = p(), { handleBuildPlanClick: z } = Se(), { data: Xe } = f(), B = Xe?.sandbox_status ?? null, V = pe(), { isConfigured: Ze, isLoading: Qe } = De(), H = !Qe && !Ze, U = R === n.RUNNING || R === n.LOADING;
60
+ h.useEffect(() => {
61
+ if (U) return;
62
62
  let e = (e) => {
63
- (e.metaKey || e.ctrlKey) && e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), B(e), P());
63
+ (e.metaKey || e.ctrlKey) && e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), z(e), N());
64
64
  };
65
65
  return document.addEventListener("keydown", e), () => {
66
66
  document.removeEventListener("keydown", e);
67
67
  };
68
68
  }, [
69
- W,
70
- B,
71
- P
69
+ U,
70
+ z,
71
+ N
72
72
  ]);
73
- let { selectedRepository: Ze, replayJson: Qe } = ye(), { conversationId: G } = a(), $e = u((e) => {
73
+ let { selectedRepository: $e, replayJson: W } = xe(), { conversationId: G } = a(), et = l((e) => {
74
74
  let t = G ? e.statusByConversation[G] : void 0;
75
75
  return t?.active ? `${t.iteration}:${t.status}` : null;
76
- }), { mutateAsync: et } = ke(), { isLoading: K, hasMore: q, loadOlder: tt } = ge(G), J = _.useRef(null), Y = _.useCallback((e) => {
77
- if (w || K || !q) return;
76
+ }), { mutateAsync: tt } = je(), { isLoading: K, hasMore: q, loadOlder: nt } = ve(G), J = h.useRef(null), Y = h.useCallback((e) => {
77
+ if (C || K || !q) return;
78
78
  let n = e.scrollTop <= 80, r = e.scrollHeight <= e.clientHeight + 80;
79
79
  !n && !r || (J.current = {
80
80
  scrollHeight: e.scrollHeight,
81
81
  scrollTop: e.scrollTop
82
- }, tt().catch((e) => {
83
- J.current = null, S(e instanceof Error && e.message ? e.message : M(t.ERROR$GENERIC));
82
+ }, nt().catch((e) => {
83
+ J.current = null, x(e instanceof Error && e.message ? e.message : j(t.ERROR$GENERIC));
84
84
  }));
85
85
  }, [
86
86
  q,
87
87
  K,
88
- w,
89
- tt,
90
- S,
91
- M
92
- ]), nt = _.useCallback((e) => {
88
+ C,
89
+ nt,
90
+ x,
91
+ j
92
+ ]), rt = h.useCallback((e) => {
93
93
  e.deltaY < 0 && e.currentTarget.scrollTop <= 0 && Y(e.currentTarget);
94
- }, [Y]), X = _.useMemo(() => G ? j.some((e) => ne(G, e.conversationId)) : !1, [j, G]), rt = d((e) => G ? (e.entriesByConversation[G]?.length ?? 0) > 0 : !1), it = ue({
95
- isLoadingHistory: T?.isLoadingHistory === !0,
96
- hasUserEvents: A,
94
+ }, [Y]), X = h.useMemo(() => G ? A.some((e) => ie(G, e.conversationId)) : !1, [A, G]), it = u((e) => G ? (e.entriesByConversation[G]?.length ?? 0) > 0 : !1), at = fe({
95
+ isLoadingHistory: w?.isLoadingHistory === !0,
96
+ hasUserEvents: k,
97
97
  hasPendingUserMessages: X,
98
- hasSubstantiveAgentActions: k,
99
- hasModelEntries: rt
100
- }), at = D.length > 0 || X || !T?.isLoadingHistory, ot = !!G, Z = !at && !C, st = async (e, n, r) => {
98
+ hasSubstantiveAgentActions: O,
99
+ hasModelEntries: it
100
+ }), ot = E.length > 0 || X || !w?.isLoadingHistory, st = !!G, Z = !ot && !S, ct = async (e, n, r) => {
101
101
  if (e.trim() === "/new") {
102
102
  if (!G) {
103
- s(M(t.CONVERSATION$CLEAR_NO_ID));
103
+ s(j(t.CONVERSATION$CLEAR_NO_ID));
104
104
  return;
105
105
  }
106
- if (O === 0) {
107
- s(M(t.CONVERSATION$CLEAR_EMPTY));
106
+ if (D === 0) {
107
+ s(j(t.CONVERSATION$CLEAR_EMPTY));
108
108
  return;
109
109
  }
110
- if (R) return;
111
- qe();
110
+ if (L) return;
111
+ Ye();
112
112
  return;
113
113
  }
114
114
  let i = [...n], a = [...r];
115
- O === 0 ? Fe({
116
- entryPoint: Pe(Ze !== null, Qe !== null),
115
+ D === 0 ? Le({
116
+ entryPoint: Ie($e !== null, W !== null),
117
117
  queryCharacterLength: e.length,
118
- replayJsonSize: Qe?.length
119
- }) : Ie({
120
- sessionMessageCount: O,
118
+ replayJsonSize: W?.length
119
+ }) : Re({
120
+ sessionMessageCount: D,
121
121
  currentMessageLength: e.length
122
122
  });
123
- let o = te([...i, ...a]);
123
+ let o = re([...i, ...a]);
124
124
  if (!o.isValid) {
125
125
  s(`Error: ${o.errorMessage}`);
126
126
  return;
127
127
  }
128
- let c = i.map((e) => ee(e)), l = await Promise.all(c), u = (/* @__PURE__ */ new Date()).toISOString(), { skipped_files: d, uploaded_files: f } = a.length > 0 ? await et({
128
+ let ee = i.map((e) => ne(e)), c = await Promise.all(ee), l = (/* @__PURE__ */ new Date()).toISOString(), { skipped_files: u, uploaded_files: d } = a.length > 0 ? await tt({
129
129
  conversationId: G,
130
130
  files: a
131
131
  }) : {
132
132
  skipped_files: [],
133
133
  uploaded_files: []
134
134
  };
135
- d.forEach((e) => s(e.reason));
136
- let p = `${M(t.CHAT_INTERFACE$AUGMENTED_PROMPT_FILES_TITLE)}: ${f.join("\n\n")}`, m = f.length > 0 ? `${e}\n\n${p}` : e, h = Ue({
135
+ u.forEach((e) => s(e.reason));
136
+ let te = `${j(t.CHAT_INTERFACE$AUGMENTED_PROMPT_FILES_TITLE)}: ${d.join("\n\n")}`, f = d.length > 0 ? `${e}\n\n${te}` : e, p = Ge({
137
137
  conversationId: G,
138
138
  text: e,
139
- content: m,
140
- imageUrls: l,
141
- fileUrls: f,
142
- timestamp: u
139
+ content: f,
140
+ imageUrls: c,
141
+ fileUrls: d,
142
+ timestamp: l
143
143
  });
144
- P(), Le("");
144
+ N(), v("");
145
145
  try {
146
- await He(oe(m, l, f, u));
146
+ await We(ce(f, c, d, l));
147
147
  } catch (e) {
148
- We(h, e instanceof Error ? e.message : M(t.CHAT_INTERFACE$FAILED_TO_SEND_MESSAGE));
148
+ Ke(p, e instanceof Error ? e.message : j(t.CHAT_INTERFACE$FAILED_TO_SEND_MESSAGE));
149
149
  }
150
150
  };
151
- _.useEffect(() => {
152
- if (J.current && N.current) {
153
- let { scrollHeight: e, scrollTop: t } = J.current, n = N.current, r = n.scrollHeight - e;
151
+ h.useEffect(() => {
152
+ if (J.current && M.current) {
153
+ let { scrollHeight: e, scrollTop: t } = J.current, n = M.current, r = n.scrollHeight - e;
154
154
  r > 0 && (n.scrollTop = t + r), J.current = null;
155
155
  return;
156
156
  }
157
- L && P();
157
+ I && N();
158
158
  }, [
159
- E.length,
159
+ T.length,
160
160
  X,
161
- $e,
162
- P
161
+ et,
162
+ N
163
163
  ]);
164
- let ct = _.useRef(Y);
165
- _.useEffect(() => {
166
- ct.current = Y;
167
- }), _.useEffect(() => {
168
- let e = N.current;
169
- e && ct.current(e);
170
- }, [E.length, q]);
171
- let lt = {
172
- scrollRef: N,
173
- autoScroll: L,
174
- setAutoScroll: Ge,
175
- scrollDomToBottom: P,
176
- hitBottom: I,
177
- setHitBottom: Ke,
178
- onChatBodyScroll: F
179
- }, Q = z === n.LOADING || z === n.INIT, ut = z === n.STOPPED, $ = z === n.PAUSED, dt = r({
164
+ let lt = h.useRef(Y);
165
+ h.useEffect(() => {
166
+ lt.current = Y;
167
+ }), h.useEffect(() => {
168
+ let e = M.current;
169
+ e && lt.current(e);
170
+ }, [T.length, q]);
171
+ let ut = {
172
+ scrollRef: M,
173
+ autoScroll: I,
174
+ setAutoScroll: qe,
175
+ scrollDomToBottom: N,
176
+ hitBottom: F,
177
+ setHitBottom: Je,
178
+ onChatBodyScroll: P
179
+ }, Q = R === n.LOADING || R === n.INIT, dt = R === n.STOPPED, $ = R === n.PAUSED, ft = r({
180
180
  isPausing: $,
181
- isTask: C,
182
- taskStatus: Be,
181
+ isTask: S,
182
+ taskStatus: He,
183
183
  isStartingStatus: Q,
184
- isStopStatus: ut,
185
- curAgentState: z
186
- }), ft = i({
184
+ isStopStatus: dt,
185
+ curAgentState: R
186
+ }), pt = i({
187
187
  isPausing: $,
188
- isTask: C,
189
- taskStatus: Be,
190
- taskDetail: Ve,
188
+ isTask: S,
189
+ taskStatus: He,
190
+ taskDetail: Ue,
191
191
  isStartingStatus: Q,
192
- isStopStatus: ut,
193
- curAgentState: z,
194
- errorMessage: b,
195
- t: M
192
+ isStopStatus: dt,
193
+ curAgentState: R,
194
+ errorMessage: y,
195
+ t: j
196
196
  });
197
- return /* @__PURE__ */ v(pe, {
198
- value: lt,
199
- children: /* @__PURE__ */ y("div", {
197
+ return /* @__PURE__ */ g(he, {
198
+ value: ut,
199
+ children: /* @__PURE__ */ _("div", {
200
200
  className: "relative flex h-full flex-col justify-between px-4",
201
201
  "data-testid": "chat-interface",
202
202
  children: [
203
- !k && !X && !A && !rt && !Z && !w && O === 0 && !H && !U && /* @__PURE__ */ v(ve, { onSuggestionsClick: (e) => Le(e) }),
204
- /* @__PURE__ */ y("div", {
205
- ref: N,
203
+ !O && !X && !k && !it && !Z && !C && D === 0 && !V && !H && /* @__PURE__ */ g(be, { onSuggestionsClick: (e) => v(e) }),
204
+ /* @__PURE__ */ _("div", {
205
+ ref: M,
206
206
  "data-testid": "chat-scroll-container",
207
207
  onScroll: (e) => {
208
- F(e.currentTarget), Y(e.currentTarget);
208
+ P(e.currentTarget), Y(e.currentTarget);
209
209
  },
210
- onWheel: nt,
210
+ onWheel: rt,
211
211
  className: "custom-scrollbar-always flex min-h-0 grow flex-col gap-2 overflow-x-hidden overflow-y-auto px-0 pt-4 pb-8 md:px-4",
212
212
  children: [
213
- Z && ot && /* @__PURE__ */ v(Se, {}),
214
- Z && !ot && /* @__PURE__ */ v("div", {
213
+ Z && st && /* @__PURE__ */ g(we, {}),
214
+ Z && !st && /* @__PURE__ */ g("div", {
215
215
  className: "flex justify-center",
216
216
  "data-testid": "loading-spinner",
217
- children: /* @__PURE__ */ v(g, { size: "small" })
217
+ children: /* @__PURE__ */ g(m, { size: "small" })
218
218
  }),
219
- K && /* @__PURE__ */ y("div", {
219
+ K && /* @__PURE__ */ _("div", {
220
220
  className: "flex items-center justify-center gap-2 py-3 text-sm text-neutral-400",
221
221
  "data-testid": "loading-older-events",
222
- children: [/* @__PURE__ */ v(g, { size: "small" }), /* @__PURE__ */ v("span", { children: M(t.CHAT_INTERFACE$FETCHING_OLDER_MESSAGES) })]
222
+ children: [/* @__PURE__ */ g(m, { size: "small" }), /* @__PURE__ */ g("span", { children: j(t.CHAT_INTERFACE$FETCHING_OLDER_MESSAGES) })]
223
223
  }),
224
- /* @__PURE__ */ v(le, {
224
+ /* @__PURE__ */ g(de, {
225
225
  conversationId: G,
226
226
  anchorEventId: null
227
227
  }),
228
- at && E.length > 0 && /* @__PURE__ */ v(De, {
229
- messages: E,
230
- allEvents: D
228
+ ot && T.length > 0 && /* @__PURE__ */ g(ke, {
229
+ messages: T,
230
+ allEvents: E
231
231
  }),
232
- /* @__PURE__ */ v(Oe, {}),
233
- /* @__PURE__ */ v(ce, { conversationId: G })
232
+ /* @__PURE__ */ g(Ae, {}),
233
+ /* @__PURE__ */ g(ue, { conversationId: G })
234
234
  ]
235
235
  }),
236
- /* @__PURE__ */ y("div", {
236
+ /* @__PURE__ */ _("div", {
237
237
  className: "flex shrink-0 flex-col gap-[6px] pb-4",
238
238
  children: [
239
- /* @__PURE__ */ v(we, { conversationId: G }),
240
- /* @__PURE__ */ v(se, { conversationId: G }),
241
- b && /* @__PURE__ */ v(Ce, {
242
- message: b,
243
- code: x,
244
- onDismiss: Re,
245
- onRetry: b === "Unable to connect to server" ? () => T?.reconnect() : void 0,
246
- onReauth: ae(x) ? () => ze("/settings/agents") : void 0
239
+ /* @__PURE__ */ g(Ee, { conversationId: G }),
240
+ /* @__PURE__ */ g(le, { conversationId: G }),
241
+ y && /* @__PURE__ */ g(Te, {
242
+ message: y,
243
+ code: b,
244
+ classification: ze,
245
+ onDismiss: Be,
246
+ onRetry: y === "Unable to connect to server" ? () => w?.reconnect() : void 0,
247
+ onReauth: se(b) ? () => Ve("/settings/agents") : void 0
247
248
  }),
248
- U && !H && /* @__PURE__ */ v(Ee, {}),
249
- H ? /* @__PURE__ */ y("div", {
249
+ H && !V && /* @__PURE__ */ g(Oe, {}),
250
+ V ? /* @__PURE__ */ _("div", {
250
251
  "data-testid": "archived-conversation-banner",
251
252
  className: "mx-1 px-4 py-3 rounded-lg bg-[var(--oh-surface)] border border-[var(--oh-border-subtle)]",
252
- children: [/* @__PURE__ */ v("p", {
253
+ children: [/* @__PURE__ */ g("p", {
253
254
  className: "text-xs font-semibold text-[var(--oh-foreground)]",
254
- children: M(V === "ERROR" ? t.CHAT_INTERFACE$ERROR_SANDBOX_TITLE : t.CHAT_INTERFACE$ARCHIVED_SANDBOX_TITLE)
255
- }), /* @__PURE__ */ v("p", {
255
+ children: j(B === "ERROR" ? t.CHAT_INTERFACE$ERROR_SANDBOX_TITLE : t.CHAT_INTERFACE$ARCHIVED_SANDBOX_TITLE)
256
+ }), /* @__PURE__ */ g("p", {
256
257
  className: "text-xs text-[var(--oh-muted)] mt-0.5",
257
- children: M(V === "ERROR" ? t.CHAT_INTERFACE$ERROR_SANDBOX_DESCRIPTION : t.CHAT_INTERFACE$ARCHIVED_SANDBOX_DESCRIPTION)
258
+ children: j(B === "ERROR" ? t.CHAT_INTERFACE$ERROR_SANDBOX_DESCRIPTION : t.CHAT_INTERFACE$ARCHIVED_SANDBOX_DESCRIPTION)
258
259
  })]
259
- }) : /* @__PURE__ */ y("div", {
260
+ }) : /* @__PURE__ */ _("div", {
260
261
  className: "relative",
261
- children: [/* @__PURE__ */ v("div", {
262
+ children: [/* @__PURE__ */ g("div", {
262
263
  className: "pointer-events-none absolute inset-x-0 bottom-full mb-1 z-20",
263
- children: /* @__PURE__ */ y("div", {
264
+ children: /* @__PURE__ */ _("div", {
264
265
  className: "flex justify-between relative",
265
- children: [/* @__PURE__ */ y("div", {
266
+ children: [/* @__PURE__ */ _("div", {
266
267
  className: "flex items-end gap-1 pointer-events-auto",
267
- children: [/* @__PURE__ */ v(Ae, {}), Q && /* @__PURE__ */ v(je, {
268
- statusColor: dt,
269
- status: ft
268
+ children: [/* @__PURE__ */ g(Me, {}), Q && /* @__PURE__ */ g(Ne, {
269
+ statusColor: ft,
270
+ status: pt
270
271
  })]
271
- }), I ? z === n.RUNNING && /* @__PURE__ */ v("div", {
272
+ }), F ? R === n.RUNNING && /* @__PURE__ */ g("div", {
272
273
  className: "pointer-events-none absolute inset-x-9 bottom-0 flex justify-center",
273
- children: /* @__PURE__ */ v(_e, { events: D })
274
- }) : /* @__PURE__ */ v("div", {
274
+ children: /* @__PURE__ */ g(ye, { events: E })
275
+ }) : /* @__PURE__ */ g("div", {
275
276
  className: "absolute left-1/2 transform -translate-x-1/2 bottom-0 pointer-events-auto",
276
- children: /* @__PURE__ */ v(xe, { onClick: P })
277
+ children: /* @__PURE__ */ g(Ce, { onClick: N })
277
278
  })]
278
279
  })
279
- }), /* @__PURE__ */ v(me, {
280
- onSubmit: st,
281
- disabled: R || U,
282
- hasStartedConversation: it
280
+ }), /* @__PURE__ */ g(ge, {
281
+ onSubmit: ct,
282
+ disabled: L || H,
283
+ hasStartedConversation: at
283
284
  })]
284
285
  })
285
286
  ]
@@ -289,6 +290,6 @@ function Fe() {
289
290
  });
290
291
  }
291
292
  //#endregion
292
- export { Fe as ChatInterface };
293
+ export { Le as ChatInterface };
293
294
 
294
295
  //# sourceMappingURL=chat-interface.js.map