@openhands/agent-canvas 1.0.0-beta.5 → 1.0.0-beta.7

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 (879) hide show
  1. package/README.md +24 -7
  2. package/README.windows.md +27 -0
  3. package/bin/agent-canvas.mjs +26 -3
  4. package/build/assets/{QueryClientProvider-CkGuhXg-.js → QueryClientProvider-Cnr-Yl3j.js} +1 -1
  5. package/build/assets/{Trans-Cvm_-SMi.js → Trans-4jmk54WC.js} +1 -1
  6. package/build/assets/acp-providers-CPdgcp13.js +1 -0
  7. package/build/assets/{acp-route-guard-B2yoBZ_4.js → acp-route-guard-BoVmCn0e.js} +1 -1
  8. package/build/assets/active-backend-context-Beu-LZL-.js +1 -0
  9. package/build/assets/add-backend-modal-BheqYXHK.js +1 -0
  10. package/build/assets/agent-server-client-options-HEOwGVIU.js +1 -0
  11. package/build/assets/agent-server-compatibility-CdI3N7dr.js +1 -0
  12. package/build/assets/agent-server-conversation-service.api-CORdqJZg.js +5 -0
  13. package/build/assets/{agent-settings-CnGSCmK8.js → agent-settings-UFvcGjoI.js} +1 -1
  14. package/build/assets/{alert-banner-DtzAX654.js → alert-banner-DFnn_lC6.js} +1 -1
  15. package/build/assets/{analytics-consent-form-modal-CHZ3I37v.js → analytics-consent-form-modal-CVNugqzu.js} +1 -1
  16. package/build/assets/api-key-entry-screen-M6su2VSf.js +1 -0
  17. package/build/assets/{app-settings-Db9ITeJH.js → app-settings-BlvBhBdc.js} +1 -1
  18. package/build/assets/automation-detail-BWrQk4Oa.js +1 -0
  19. package/build/assets/automations-list-ux9KvYsU.js +1 -0
  20. package/build/assets/back-nav-button-7dQJ2k3O.js +1 -0
  21. package/build/assets/backend-form-modal-CDnEYjaU.js +1 -0
  22. package/build/assets/{backend-synced-settings-badge-Dc6c7GT4.js → backend-synced-settings-badge-BTIj-Ffq.js} +1 -1
  23. package/build/assets/base-modal-C2oy2EBG.js +1 -0
  24. package/build/assets/brand-button-DJ_S16rO.js +1 -0
  25. package/build/assets/{browser-D810xUYt.js → browser-CGM-k-sH.js} +2 -2
  26. package/build/assets/browser-store-DAsixKdU.js +1 -0
  27. package/build/assets/{browser-tab-B-aIqXRl.js → browser-tab-dvSPdvkm.js} +1 -1
  28. package/build/assets/{checkmark-DL7acQA7.js → checkmark-Dus0b6jt.js} +1 -1
  29. package/build/assets/{chevron-left-small-CVWf8TI6.js → chevron-left-small-_uvG7RVM.js} +1 -1
  30. package/build/assets/{circle-plus-check-toggle-P7ZZToV4.js → circle-plus-check-toggle-DKS8MAVV.js} +1 -1
  31. package/build/assets/{close-B5LROHR3.js → close-BU5iTc66.js} +1 -1
  32. package/build/assets/code-tag-BzyqOtPD.js +1 -0
  33. package/build/assets/combobox-caret-BJC7XJsz.js +1 -0
  34. package/build/assets/{command-store-DFN_17p1.js → command-store-CE1weJy8.js} +1 -1
  35. package/build/assets/{condenser-settings-wnEKhBof.js → condenser-settings-BolbDvm5.js} +1 -1
  36. package/build/assets/{confirmation-modal-Dau3w_sa.js → confirmation-modal-B5Ca6qFE.js} +1 -1
  37. package/build/assets/context-menu-list-item-7tAcm2c3.js +1 -0
  38. package/build/assets/conversation-D0N4dw_p.js +19 -0
  39. package/build/assets/conversation-DhRJuZLG.js +1 -0
  40. package/build/assets/conversation-panel-CNqHbS_Z.js +1 -0
  41. package/build/assets/conversation-service.api-BsJy6uuL.js +1 -0
  42. package/build/assets/conversation-state-store-D-w0uurj.js +1 -0
  43. package/build/assets/conversation-store-CC-isCnP.js +1 -0
  44. package/build/assets/{conversation-tab-empty-state-DyssnnWa.js → conversation-tab-empty-state-CStQLPVW.js} +1 -1
  45. package/build/assets/conversation-websocket-context-DvHgx_FE.js +3 -0
  46. package/build/assets/{copy-DYgmUdIw.js → copy-Chg-sFu3.js} +1 -1
  47. package/build/assets/{custom-toast-handlers-C-SZFmto.js → custom-toast-handlers-ufGJ6_Rc.js} +1 -1
  48. package/build/assets/declaration-CR6HMp29.js +1 -0
  49. package/build/assets/{device-verify-DqDlphsG.js → device-verify-C6mj28zv.js} +1 -1
  50. package/build/assets/dist-DNeWJ2bh.js +1 -0
  51. package/build/assets/dropdown-classes-BsVmxlNG.js +1 -0
  52. package/build/assets/edit-automation-modal-BpX-t-HD.js +1 -0
  53. package/build/assets/ellipsis-button-Vh5MvRZa.js +1 -0
  54. package/build/assets/entry.client-Ck9rQCg-.js +2 -0
  55. package/build/assets/enum-filter-dropdown-5JeF2RLb.js +1 -0
  56. package/build/assets/{environment-switch-overlay-XL8yCGP6.js → environment-switch-overlay-Tf_BIfeR.js} +1 -1
  57. package/build/assets/extensions-hub-CE9QOb5n.js +1 -0
  58. package/build/assets/{extensions-navigation-BYR8Giqq.js → extensions-navigation-DSLGNGbS.js} +1 -1
  59. package/build/assets/file-BTY6Gyy9.js +1 -0
  60. package/build/assets/files-tab-cL668j1I.js +1 -0
  61. package/build/assets/files-tab-store-m0ARqX_E.js +1 -0
  62. package/build/assets/{folder-ZZJVGgd7.js → folder-D1T2W1cj.js} +1 -1
  63. package/build/assets/git-control-bar-branch-button-DtIrOrie.js +27 -0
  64. package/build/assets/git-provider-icon-CHdGBdU2.js +1 -0
  65. package/build/assets/globe-Bzj_0oXT.js +1 -0
  66. package/build/assets/home-Cz2Veg56.js +1 -0
  67. package/build/assets/{i18n-CTohRuoO.js → i18n-DET2iOyh.js} +1 -1
  68. package/build/assets/install-server-modal-B9nXCS3u.js +1 -0
  69. package/build/assets/launch-CWz0dm4o.js +1 -0
  70. package/build/assets/{lesson-plan-dH5Bj0pN.js → lesson-plan-duSsqWVs.js} +1 -1
  71. package/build/assets/link-external-DGxVm4Ps.js +1 -0
  72. package/build/assets/{llm-client-DaH1TuyR.js → llm-client-CYEaUjGx.js} +1 -1
  73. package/build/assets/llm-settings-DFkXHuvT.js +1 -0
  74. package/build/assets/llm-settings-DhrdCXqX.js +1 -0
  75. package/build/assets/{loading-spinner-BPtYORNK.js → loading-spinner-5GT9q1xy.js} +1 -1
  76. package/build/assets/manage-backends-modal-DpBD_vR9.js +1 -0
  77. package/build/assets/manage-workspaces-modal-CtRbxREx.js +1 -0
  78. package/build/assets/manifest-eed90ff5.js +1 -0
  79. package/build/assets/{markdown-renderer-DMzf2i4x.js → markdown-renderer-B3IAVfv4.js} +1 -1
  80. package/build/assets/mcp-BUe7kiYM.js +9 -0
  81. package/build/assets/messages-dqp_KYyl.js +36 -0
  82. package/build/assets/{modal-backdrop-BAbgYsqB.js → modal-backdrop-RfNCrSpK.js} +1 -1
  83. package/build/assets/{modal-body-BI6Ru2Qr.js → modal-body-aoa2fx5W.js} +1 -1
  84. package/build/assets/modal-classes-6YqcqA6y.js +1 -0
  85. package/build/assets/{modal-close-button-t1Gh3qmL.js → modal-close-button-CtWOUMmw.js} +1 -1
  86. package/build/assets/{model-selector-SM9IUz-q.js → model-selector-BvSTrkhT.js} +1 -1
  87. package/build/assets/{navigation-context-D0YWpT8d.js → navigation-context-BdKYH32C.js} +1 -1
  88. package/build/assets/{navigation-link-Cn7KP3c5.js → navigation-link-U4vY9i_C.js} +1 -1
  89. package/build/assets/{openhands-logo-CnrF6LKb.js → openhands-logo-CCo0wJZX.js} +1 -1
  90. package/build/assets/{option-service.api-KvY_mZMY.js → option-service.api-DmNVxAvS.js} +1 -1
  91. package/build/assets/{organization-service.api-DzYTHTYC.js → organization-service.api-DbnougaQ.js} +1 -1
  92. package/build/assets/{path-utils-C3bQf6lJ.js → path-utils-onx24uF5.js} +1 -1
  93. package/build/assets/{plan-components-atxXCF0R.js → plan-components-CRDMQzsS.js} +1 -1
  94. package/build/assets/{planner-tab-BlrCpv-7.js → planner-tab-CmIjLz7q.js} +1 -1
  95. package/build/assets/{profiles-client-D6IkTJof.js → profiles-client-fEmgWkCW.js} +1 -1
  96. package/build/assets/{providers-Bx6EfrzZ.js → providers-CbD7fiic.js} +1 -1
  97. package/build/assets/proxy-BAdHH8QB.js +1 -0
  98. package/build/assets/{query-client-config-B7u9asM0.js → query-client-config-CRnGSujB.js} +1 -1
  99. package/build/assets/{recommended-automations-launcher-BQChv2rc.js → recommended-automations-launcher-uTyODuzB.js} +3 -3
  100. package/build/assets/{root-BgEbw3S0.js → root-DmjpFpTu.js} +2 -2
  101. package/build/assets/root-Z2VHU4R3.css +1 -0
  102. package/build/assets/root-layout-DejMsKhy.js +2 -0
  103. package/build/assets/{sdk-section-page-DOIKvwSL.js → sdk-section-page-BgDlMhcq.js} +1 -1
  104. package/build/assets/{sdk-settings-schema-DsUf9wu1.js → sdk-settings-schema-CLmJ9sho.js} +1 -1
  105. package/build/assets/{search-27Owlc3A.js → search-SuJctqNJ.js} +1 -1
  106. package/build/assets/secrets-service-B7CxNinp.js +1 -0
  107. package/build/assets/secrets-settings-yK7CqIpm.js +1 -0
  108. package/build/assets/{server-client-DyAQ3NZ_.js → server-client-Kh4QSwDJ.js} +1 -1
  109. package/build/assets/{settings-BYkVX7vW.js → settings-DN5PpgRD.js} +1 -1
  110. package/build/assets/{settings-dropdown-input-BJYvGdg-.js → settings-dropdown-input-BtoovFre.js} +1 -1
  111. package/build/assets/{settings-gear-C77PgE_O.js → settings-gear-Dd8K2_8B.js} +1 -1
  112. package/build/assets/settings-index-DKC8IY1P.js +1 -0
  113. package/build/assets/{settings-input-Bn7F5C75.js → settings-input-CehsXnb3.js} +1 -1
  114. package/build/assets/settings-list-classes-E3v_f6QG.js +1 -0
  115. package/build/assets/settings-modal-DJ4kGzUx.js +1 -0
  116. package/build/assets/{settings-section-header-context-BgZe5YkE.js → settings-section-header-context-DewwJ0-F.js} +1 -1
  117. package/build/assets/settings-service.api-C3rxTtPj.js +1 -0
  118. package/build/assets/{settings-switch-BeIKrWms.js → settings-switch-BiBuS3xa.js} +1 -1
  119. package/build/assets/{settings-utils-B6Nl07io.js → settings-utils-DY04tWG1.js} +1 -1
  120. package/build/assets/{shared-conversation-AMyqXvpk.js → shared-conversation-h9YnBtCU.js} +1 -1
  121. package/build/assets/sidebar-mobile-menu-toggle-D0-AvsnT.js +1 -0
  122. package/build/assets/{sidebar-nav-link-BGjiJq-4.js → sidebar-nav-link-OhIeFyna.js} +1 -1
  123. package/build/assets/{sidebar-store-Uy3v0AOV.js → sidebar-store-DnQAJAE5.js} +1 -1
  124. package/build/assets/{skill-card-pill-row-DF1axQCG.js → skill-card-pill-row-BW9qvhoK.js} +1 -1
  125. package/build/assets/{skills-ChIKZPK4.js → skills-0GRKX5Xj.js} +1 -1
  126. package/build/assets/{skills-plugins-CcI_19lM.js → skills-plugins-DNcsNF88.js} +1 -1
  127. package/build/assets/skills-settings-7liFiSY6.js +2 -0
  128. package/build/assets/{styled-tooltip-CBzrri6o.js → styled-tooltip-hdfMXPQC.js} +1 -1
  129. package/build/assets/{switch-skeleton-DnC9wLp7.js → switch-skeleton-DSKqSx2A.js} +1 -1
  130. package/build/assets/{task-list-tab-DUJn1sgz.js → task-list-tab-DT6_zfUs.js} +1 -1
  131. package/build/assets/{terminal-DgQk1Ay6.js → terminal-CDhQGDua.js} +2 -2
  132. package/build/assets/{terminal-RmuaSdhJ.js → terminal-CPYWdo4j.js} +1 -1
  133. package/build/assets/{toggle-switch-Pvyp2RAN.js → toggle-switch-T2v6sJ6l.js} +1 -1
  134. package/build/assets/{typography-gpuWmrQO.js → typography-BDgnT7Yp.js} +1 -1
  135. package/build/assets/{u-check-circle-IUIfACQQ.js → u-check-circle-DOauqQKb.js} +1 -1
  136. package/build/assets/{u-check-circle-half-C1YxB6py.js → u-check-circle-half-steSK_JB.js} +1 -1
  137. package/build/assets/{u-circuit-BmVikJHu.js → u-circuit-x3ExjBbU.js} +1 -1
  138. package/build/assets/{u-edit-CFvXHqZk.js → u-edit-BbrptMCa.js} +1 -1
  139. package/build/assets/{use-active-conversation-BEFNwnFk.js → use-active-conversation-DHGcmjCK.js} +1 -1
  140. package/build/assets/use-agent-settings-schema-CLoTOSJI.js +1 -0
  141. package/build/assets/{use-agent-state-Bkrd1FZq.js → use-agent-state-PKrUPMJ3.js} +1 -1
  142. package/build/assets/{use-cloud-current-user-id-CvkXFnTT.js → use-cloud-current-user-id-Ddr75hEz.js} +1 -1
  143. package/build/assets/{use-config-Co1O8-Ey.js → use-config-OIMQLQ2s.js} +1 -1
  144. package/build/assets/{use-create-conversation-CEgXpkfH.js → use-create-conversation-Bszyp13O.js} +1 -1
  145. package/build/assets/{use-event-store-BT_gV3ut.js → use-event-store-BomO7ywK.js} +1 -1
  146. package/build/assets/{use-get-secrets-DuhdIA59.js → use-get-secrets-8Jby8ele.js} +1 -1
  147. package/build/assets/{use-handle-plan-click-Ckkm5eIY.js → use-handle-plan-click-CohJPvvW.js} +1 -1
  148. package/build/assets/use-is-authed-dw2026rR.js +1 -0
  149. package/build/assets/{use-is-creating-conversation-BZ5hB_Bg.js → use-is-creating-conversation-DX2qSlfL.js} +1 -1
  150. package/build/assets/{use-launch-skill-in-chat-fNN_xGZG.js → use-launch-skill-in-chat-sQNEOLGD.js} +1 -1
  151. package/build/assets/use-llm-profiles-C861aFAq.js +1 -0
  152. package/build/assets/use-runtime-is-ready-Do2h_hRl.js +1 -0
  153. package/build/assets/{use-save-settings-VUrj_QNG.js → use-save-settings-DkAOEfD9.js} +1 -1
  154. package/build/assets/use-settings-D5hbTS9t.js +1 -0
  155. package/build/assets/{use-settings-nav-items-1ZvovKSr.js → use-settings-nav-items-BcSbo02d.js} +1 -1
  156. package/build/assets/{use-skills-DAMLFjKU.js → use-skills-D7PS0fH0.js} +1 -1
  157. package/build/assets/{use-task-list-CLJbuJgM.js → use-task-list-CsT10CBb.js} +1 -1
  158. package/build/assets/{use-unified-vscode-url-DdSRw-6P.js → use-unified-vscode-url-DEoe-NRI.js} +1 -1
  159. package/build/assets/use-user-conversation-Cs5H1pUF.js +1 -0
  160. package/build/assets/{useMutation-DqrumCWD.js → useMutation-GSSKKebK.js} +1 -1
  161. package/build/assets/{useTranslation-DCOdSSMl.js → useTranslation-B6voJV4y.js} +1 -1
  162. package/build/assets/utils-DCVfKFRt.js +1 -0
  163. package/build/assets/{vendor~browser-BNjNhjFU.js → vendor~browser-BrOJLj3y.js} +1 -1
  164. package/build/assets/vendor~conversation-panel~conversation-C9o-K1hW.js +1 -0
  165. package/build/assets/vendor~conversation-panel~conversation~index-RXYdJYxU.js +1 -0
  166. package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-VnmIZrq3.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-DJS-rJdI.js} +1 -1
  167. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DpAdkv8m.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-6ByzelMS.js} +1 -1
  168. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B92czPCF.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BED5W_c4.js} +1 -1
  169. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-By5W2oHN.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CCbqAFiI.js} +1 -1
  170. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BbFOrAjI.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CG96FCly.js} +1 -1
  171. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-smY2r837.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-E4d6IEfI.js} +1 -1
  172. package/build/assets/vendor~home~mcp~automations-list-CZSK-lT2.js +1 -0
  173. package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-Z3nsiNNq.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-CjJdFLoM.js} +1 -1
  174. package/build/assets/{vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-DbfELDJu.js → vendor~home~mcp~llm-settings~agent-settings~condenser-settings~verification-settings~app-se~ocm3mykx-m8dOii0J.js} +2 -2
  175. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation-DjAjXS5J.js → vendor~root-layout~home~conversation-panel~conversation-B5WNMnt4.js} +1 -1
  176. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-CbAhtEMv.js +1 -0
  177. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-6Rm8U_Sr.js +9 -0
  178. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-BkQGKpye.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-tTR8C6m0.js} +1 -1
  179. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-Bbs7UJ5U.js → vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~k776hupu-BJbu9kpL.js} +2 -2
  180. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-DTwbEEcX.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-hTzSytKK.js} +1 -1
  181. package/build/assets/{vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-CDXvdvb2.js → vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-DYXOLEck.js} +1 -1
  182. package/build/assets/{verification-settings-CsbvQcYS.js → verification-settings-Dlt8pINd.js} +1 -1
  183. package/build/assets/{vscode-tab-DjNArCgY.js → vscode-tab-DgepcYtF.js} +1 -1
  184. package/build/assets/{waiting-for-runtime-message-CntjExbU.js → waiting-for-runtime-message-CdK3btDZ.js} +1 -1
  185. package/build/assets/{x-mark-CrpjscNc.js → x-mark-BrkSPIiT.js} +1 -1
  186. package/build/index.html +4 -4
  187. package/build/locales/ar/openhands.json +20 -2
  188. package/build/locales/ca/openhands.json +20 -2
  189. package/build/locales/de/openhands.json +20 -2
  190. package/build/locales/en/openhands.json +20 -2
  191. package/build/locales/es/openhands.json +20 -2
  192. package/build/locales/fr/openhands.json +20 -2
  193. package/build/locales/it/openhands.json +20 -2
  194. package/build/locales/ja/openhands.json +20 -2
  195. package/build/locales/ko-KR/openhands.json +20 -2
  196. package/build/locales/no/openhands.json +20 -2
  197. package/build/locales/pt/openhands.json +20 -2
  198. package/build/locales/tr/openhands.json +20 -2
  199. package/build/locales/uk/openhands.json +20 -2
  200. package/build/locales/zh-CN/openhands.json +20 -2
  201. package/build/locales/zh-TW/openhands.json +20 -2
  202. package/dist/api/acp-service/acp-service.api.d.ts +18 -0
  203. package/dist/api/agent-server-adapter.cjs +3 -3
  204. package/dist/api/agent-server-adapter.cjs.map +1 -1
  205. package/dist/api/agent-server-adapter.js +54 -55
  206. package/dist/api/agent-server-adapter.js.map +1 -1
  207. package/dist/api/agent-server-client-options.cjs +1 -1
  208. package/dist/api/agent-server-client-options.cjs.map +1 -1
  209. package/dist/api/agent-server-client-options.d.ts +4 -0
  210. package/dist/api/agent-server-client-options.js +18 -12
  211. package/dist/api/agent-server-client-options.js.map +1 -1
  212. package/dist/api/agent-server-compatibility.cjs +1 -1
  213. package/dist/api/agent-server-compatibility.cjs.map +1 -1
  214. package/dist/api/agent-server-compatibility.d.ts +1 -1
  215. package/dist/api/agent-server-compatibility.js +30 -25
  216. package/dist/api/agent-server-compatibility.js.map +1 -1
  217. package/dist/api/agent-server-config.cjs +1 -1
  218. package/dist/api/agent-server-config.cjs.map +1 -1
  219. package/dist/api/agent-server-config.d.ts +1 -51
  220. package/dist/api/agent-server-config.js +20 -70
  221. package/dist/api/agent-server-config.js.map +1 -1
  222. package/dist/api/backend-registry/active-store.cjs +1 -1
  223. package/dist/api/backend-registry/active-store.cjs.map +1 -1
  224. package/dist/api/backend-registry/active-store.d.ts +11 -5
  225. package/dist/api/backend-registry/active-store.js +36 -27
  226. package/dist/api/backend-registry/active-store.js.map +1 -1
  227. package/dist/api/backend-registry/auth.cjs +1 -1
  228. package/dist/api/backend-registry/auth.cjs.map +1 -1
  229. package/dist/api/backend-registry/auth.js +3 -9
  230. package/dist/api/backend-registry/auth.js.map +1 -1
  231. package/dist/api/backend-registry/default-backend.cjs +1 -1
  232. package/dist/api/backend-registry/default-backend.cjs.map +1 -1
  233. package/dist/api/backend-registry/default-backend.d.ts +9 -16
  234. package/dist/api/backend-registry/default-backend.js +5 -4
  235. package/dist/api/backend-registry/default-backend.js.map +1 -1
  236. package/dist/api/backend-registry/storage.cjs +1 -1
  237. package/dist/api/backend-registry/storage.cjs.map +1 -1
  238. package/dist/api/backend-registry/storage.js +67 -34
  239. package/dist/api/backend-registry/storage.js.map +1 -1
  240. package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
  241. package/dist/api/cloud/conversation-service.api.d.ts +8 -13
  242. package/dist/api/cloud/conversation-service.api.js.map +1 -1
  243. package/dist/api/cloud/organization-service.api.cjs.map +1 -1
  244. package/dist/api/cloud/organization-service.api.d.ts +1 -2
  245. package/dist/api/cloud/organization-service.api.js.map +1 -1
  246. package/dist/api/cloud/proxy.cjs +1 -1
  247. package/dist/api/cloud/proxy.cjs.map +1 -1
  248. package/dist/api/cloud/proxy.d.ts +6 -6
  249. package/dist/api/cloud/proxy.js +33 -24
  250. package/dist/api/cloud/proxy.js.map +1 -1
  251. package/dist/api/cloud/sandbox-service.api.cjs.map +1 -1
  252. package/dist/api/cloud/sandbox-service.api.d.ts +3 -3
  253. package/dist/api/cloud/sandbox-service.api.js.map +1 -1
  254. package/dist/api/cloud/secrets-service.api.cjs.map +1 -1
  255. package/dist/api/cloud/secrets-service.api.d.ts +3 -4
  256. package/dist/api/cloud/secrets-service.api.js.map +1 -1
  257. package/dist/api/cloud/settings-service.api.cjs +1 -1
  258. package/dist/api/cloud/settings-service.api.cjs.map +1 -1
  259. package/dist/api/cloud/settings-service.api.js +5 -1
  260. package/dist/api/cloud/settings-service.api.js.map +1 -1
  261. package/dist/api/cloud/skills-service.api.cjs.map +1 -1
  262. package/dist/api/cloud/skills-service.api.d.ts +5 -5
  263. package/dist/api/cloud/skills-service.api.js.map +1 -1
  264. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  265. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  266. package/dist/api/conversation-service/agent-server-conversation-service.api.js +115 -108
  267. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  268. package/dist/api/device-flow-client.cjs +1 -1
  269. package/dist/api/device-flow-client.cjs.map +1 -1
  270. package/dist/api/device-flow-client.d.ts +3 -5
  271. package/dist/api/device-flow-client.js +55 -66
  272. package/dist/api/device-flow-client.js.map +1 -1
  273. package/dist/api/event-service/event-service.api.cjs +1 -1
  274. package/dist/api/event-service/event-service.api.cjs.map +1 -1
  275. package/dist/api/event-service/event-service.api.d.ts +3 -3
  276. package/dist/api/event-service/event-service.api.js +17 -17
  277. package/dist/api/event-service/event-service.api.js.map +1 -1
  278. package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
  279. package/dist/api/git-service/agent-server-git-service.api.js +11 -11
  280. package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
  281. package/dist/api/runtime-service/agent-server-runtime-service.js +6 -6
  282. package/dist/components/conversation-events/chat/event-content-helpers/get-action-content.cjs +2 -2
  283. package/dist/components/conversation-events/chat/event-content-helpers/get-action-content.js +10 -10
  284. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.cjs.map +1 -1
  285. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.d.ts +5 -5
  286. package/dist/components/conversation-events/chat/event-content-helpers/get-observation-result.js.map +1 -1
  287. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs +1 -1
  288. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs.map +1 -1
  289. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js +1 -1
  290. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js.map +1 -1
  291. package/dist/components/features/automations/automation-action-button-classes.d.ts +2 -2
  292. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  293. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  294. package/dist/components/features/backends/backend-form-modal.d.ts +1 -0
  295. package/dist/components/features/backends/backend-form-modal.js +203 -140
  296. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  297. package/dist/components/features/backends/backend-selector.cjs +1 -1
  298. package/dist/components/features/backends/backend-selector.cjs.map +1 -1
  299. package/dist/components/features/backends/backend-selector.js +117 -105
  300. package/dist/components/features/backends/backend-selector.js.map +1 -1
  301. package/dist/components/features/backends/backend-status-dot.cjs +1 -1
  302. package/dist/components/features/backends/backend-status-dot.cjs.map +1 -1
  303. package/dist/components/features/backends/backend-status-dot.d.ts +1 -1
  304. package/dist/components/features/backends/backend-status-dot.js +1 -1
  305. package/dist/components/features/backends/backend-status-dot.js.map +1 -1
  306. package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
  307. package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
  308. package/dist/components/features/backends/manage-backends-modal.js +81 -70
  309. package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
  310. package/dist/components/features/chat/change-agent-button.cjs +1 -1
  311. package/dist/components/features/chat/change-agent-button.cjs.map +1 -1
  312. package/dist/components/features/chat/change-agent-button.js +59 -57
  313. package/dist/components/features/chat/change-agent-button.js.map +1 -1
  314. package/dist/components/features/chat/change-agent-context-menu.cjs +1 -1
  315. package/dist/components/features/chat/change-agent-context-menu.cjs.map +1 -1
  316. package/dist/components/features/chat/change-agent-context-menu.d.ts +3 -1
  317. package/dist/components/features/chat/change-agent-context-menu.js +30 -25
  318. package/dist/components/features/chat/change-agent-context-menu.js.map +1 -1
  319. package/dist/components/features/chat/chat-add-file-button.cjs +1 -1
  320. package/dist/components/features/chat/chat-add-file-button.cjs.map +1 -1
  321. package/dist/components/features/chat/chat-add-file-button.js +39 -38
  322. package/dist/components/features/chat/chat-add-file-button.js.map +1 -1
  323. package/dist/components/features/chat/chat-message.cjs +1 -1
  324. package/dist/components/features/chat/chat-message.cjs.map +1 -1
  325. package/dist/components/features/chat/chat-message.d.ts +2 -1
  326. package/dist/components/features/chat/chat-message.js +185 -57
  327. package/dist/components/features/chat/chat-message.js.map +1 -1
  328. package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
  329. package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
  330. package/dist/components/features/chat/components/chat-input-actions.js +113 -113
  331. package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
  332. package/dist/components/features/chat/components/chat-input-model.cjs +1 -1
  333. package/dist/components/features/chat/components/chat-input-model.cjs.map +1 -1
  334. package/dist/components/features/chat/components/chat-input-model.js +52 -51
  335. package/dist/components/features/chat/components/chat-input-model.js.map +1 -1
  336. package/dist/components/features/chat/components/slash-command-menu.cjs +2 -2
  337. package/dist/components/features/chat/components/slash-command-menu.cjs.map +1 -1
  338. package/dist/components/features/chat/components/slash-command-menu.js +38 -34
  339. package/dist/components/features/chat/components/slash-command-menu.js.map +1 -1
  340. package/dist/components/features/chat/git-control-bar-pr-button.cjs +1 -1
  341. package/dist/components/features/chat/git-control-bar-pr-button.cjs.map +1 -1
  342. package/dist/components/features/chat/git-control-bar-pr-button.js +16 -15
  343. package/dist/components/features/chat/git-control-bar-pr-button.js.map +1 -1
  344. package/dist/components/features/chat/git-control-bar-pull-button.cjs +1 -1
  345. package/dist/components/features/chat/git-control-bar-pull-button.cjs.map +1 -1
  346. package/dist/components/features/chat/git-control-bar-pull-button.js +16 -15
  347. package/dist/components/features/chat/git-control-bar-pull-button.js.map +1 -1
  348. package/dist/components/features/chat/git-control-bar-push-button.cjs +1 -1
  349. package/dist/components/features/chat/git-control-bar-push-button.cjs.map +1 -1
  350. package/dist/components/features/chat/git-control-bar-push-button.js +16 -15
  351. package/dist/components/features/chat/git-control-bar-push-button.js.map +1 -1
  352. package/dist/components/features/chat/git-control-bar.cjs +1 -1
  353. package/dist/components/features/chat/git-control-bar.cjs.map +1 -1
  354. package/dist/components/features/chat/git-control-bar.js +63 -62
  355. package/dist/components/features/chat/git-control-bar.js.map +1 -1
  356. package/dist/components/features/chat/pending-user-messages.cjs +1 -1
  357. package/dist/components/features/chat/pending-user-messages.cjs.map +1 -1
  358. package/dist/components/features/chat/pending-user-messages.js +27 -23
  359. package/dist/components/features/chat/pending-user-messages.js.map +1 -1
  360. package/dist/components/features/chat/switch-profile-button.cjs +1 -1
  361. package/dist/components/features/chat/switch-profile-button.cjs.map +1 -1
  362. package/dist/components/features/chat/switch-profile-button.js +26 -25
  363. package/dist/components/features/chat/switch-profile-button.js.map +1 -1
  364. package/dist/components/features/chat/switch-profile-context-menu.cjs +1 -1
  365. package/dist/components/features/chat/switch-profile-context-menu.cjs.map +1 -1
  366. package/dist/components/features/chat/switch-profile-context-menu.js +77 -67
  367. package/dist/components/features/chat/switch-profile-context-menu.js.map +1 -1
  368. package/dist/components/features/context-menu/context-menu-icon-text-with-description.cjs +1 -1
  369. package/dist/components/features/context-menu/context-menu-icon-text-with-description.cjs.map +1 -1
  370. package/dist/components/features/context-menu/context-menu-icon-text-with-description.d.ts +2 -1
  371. package/dist/components/features/context-menu/context-menu-icon-text-with-description.js +3 -2
  372. package/dist/components/features/context-menu/context-menu-icon-text-with-description.js.map +1 -1
  373. package/dist/components/features/context-menu/context-menu-icon-text.cjs +1 -1
  374. package/dist/components/features/context-menu/context-menu-icon-text.cjs.map +1 -1
  375. package/dist/components/features/context-menu/context-menu-icon-text.d.ts +2 -1
  376. package/dist/components/features/context-menu/context-menu-icon-text.js +20 -10
  377. package/dist/components/features/context-menu/context-menu-icon-text.js.map +1 -1
  378. package/dist/components/features/context-menu/context-menu-list-item.cjs +1 -1
  379. package/dist/components/features/context-menu/context-menu-list-item.cjs.map +1 -1
  380. package/dist/components/features/context-menu/context-menu-list-item.js +10 -9
  381. package/dist/components/features/context-menu/context-menu-list-item.js.map +1 -1
  382. package/dist/components/features/controls/agent-status.cjs +1 -1
  383. package/dist/components/features/controls/agent-status.js +12 -12
  384. package/dist/components/features/controls/git-tools-submenu.cjs +1 -1
  385. package/dist/components/features/controls/git-tools-submenu.cjs.map +1 -1
  386. package/dist/components/features/controls/git-tools-submenu.js +1 -1
  387. package/dist/components/features/controls/git-tools-submenu.js.map +1 -1
  388. package/dist/components/features/controls/macros-submenu.cjs +1 -1
  389. package/dist/components/features/controls/macros-submenu.cjs.map +1 -1
  390. package/dist/components/features/controls/macros-submenu.js +1 -1
  391. package/dist/components/features/controls/macros-submenu.js.map +1 -1
  392. package/dist/components/features/controls/server-status-context-menu-icon-text.cjs +1 -1
  393. package/dist/components/features/controls/server-status-context-menu-icon-text.cjs.map +1 -1
  394. package/dist/components/features/controls/server-status-context-menu-icon-text.js +14 -15
  395. package/dist/components/features/controls/server-status-context-menu-icon-text.js.map +1 -1
  396. package/dist/components/features/controls/server-status-context-menu.cjs +1 -1
  397. package/dist/components/features/controls/server-status-context-menu.js +4 -4
  398. package/dist/components/features/controls/server-status.cjs +1 -1
  399. package/dist/components/features/controls/server-status.js +7 -7
  400. package/dist/components/features/controls/tools-context-menu-icon-text.cjs +1 -1
  401. package/dist/components/features/controls/tools-context-menu-icon-text.cjs.map +1 -1
  402. package/dist/components/features/controls/tools-context-menu-icon-text.js +16 -16
  403. package/dist/components/features/controls/tools-context-menu-icon-text.js.map +1 -1
  404. package/dist/components/features/conversation/conversation-name-context-menu-icon-text.cjs +1 -1
  405. package/dist/components/features/conversation/conversation-name-context-menu-icon-text.cjs.map +1 -1
  406. package/dist/components/features/conversation/conversation-name-context-menu-icon-text.js +11 -11
  407. package/dist/components/features/conversation/conversation-name-context-menu-icon-text.js.map +1 -1
  408. package/dist/components/features/conversation/conversation-name-with-status.cjs +1 -1
  409. package/dist/components/features/conversation/conversation-name-with-status.js +11 -11
  410. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
  411. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
  412. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +60 -47
  413. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
  414. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs +1 -1
  415. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs.map +1 -1
  416. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js +86 -82
  417. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js.map +1 -1
  418. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs +1 -1
  419. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js +4 -4
  420. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
  421. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +9 -9
  422. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs +1 -1
  423. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs.map +1 -1
  424. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js +93 -93
  425. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js.map +1 -1
  426. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  427. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  428. package/dist/components/features/conversation-panel/conversation-panel.js +177 -177
  429. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  430. package/dist/components/features/conversation-panel/ellipsis-button.cjs +1 -1
  431. package/dist/components/features/conversation-panel/ellipsis-button.cjs.map +1 -1
  432. package/dist/components/features/conversation-panel/ellipsis-button.js +13 -13
  433. package/dist/components/features/conversation-panel/ellipsis-button.js.map +1 -1
  434. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
  435. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
  436. package/dist/components/features/conversation-panel/local-new-conversation-menu.js +57 -53
  437. package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
  438. package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.cjs +1 -1
  439. package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.cjs.map +1 -1
  440. package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.js +3 -2
  441. package/dist/components/features/conversation-panel/new-conversation-dropdown-styles.js.map +1 -1
  442. package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.cjs +1 -1
  443. package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.cjs.map +1 -1
  444. package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.js +11 -8
  445. package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.js.map +1 -1
  446. package/dist/components/features/conversation-panel/system-message-modal/tab-content.cjs.map +1 -1
  447. package/dist/components/features/conversation-panel/system-message-modal/tab-content.d.ts +2 -5
  448. package/dist/components/features/conversation-panel/system-message-modal/tab-content.js.map +1 -1
  449. package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
  450. package/dist/components/features/files-tab/file-content-viewer.cjs.map +1 -1
  451. package/dist/components/features/files-tab/file-content-viewer.js +45 -42
  452. package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
  453. package/dist/components/features/home/llm-not-configured-banner.d.ts +11 -0
  454. package/dist/components/features/home/shared/dropdown-item.cjs +1 -1
  455. package/dist/components/features/home/shared/dropdown-item.cjs.map +1 -1
  456. package/dist/components/features/home/shared/dropdown-item.js +20 -16
  457. package/dist/components/features/home/shared/dropdown-item.js.map +1 -1
  458. package/dist/components/features/home/shared/generic-dropdown-menu.cjs +1 -1
  459. package/dist/components/features/home/shared/generic-dropdown-menu.cjs.map +1 -1
  460. package/dist/components/features/home/shared/generic-dropdown-menu.js +23 -22
  461. package/dist/components/features/home/shared/generic-dropdown-menu.js.map +1 -1
  462. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs +1 -1
  463. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs.map +1 -1
  464. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js +103 -102
  465. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js.map +1 -1
  466. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
  467. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs.map +1 -1
  468. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +68 -67
  469. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js.map +1 -1
  470. package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
  471. package/dist/components/features/mcp-page/custom-server-editor.cjs.map +1 -1
  472. package/dist/components/features/mcp-page/custom-server-editor.js +62 -60
  473. package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
  474. package/dist/components/features/mcp-page/index.cjs +1 -1
  475. package/dist/components/features/mcp-page/index.d.ts +1 -0
  476. package/dist/components/features/mcp-page/index.js +1 -0
  477. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  478. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  479. package/dist/components/features/mcp-page/install-server-modal.js +150 -119
  480. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  481. package/dist/components/features/mcp-page/save-as-secret-toggle.cjs +2 -0
  482. package/dist/components/features/mcp-page/save-as-secret-toggle.cjs.map +1 -0
  483. package/dist/components/features/mcp-page/save-as-secret-toggle.d.ts +7 -0
  484. package/dist/components/features/mcp-page/save-as-secret-toggle.js +50 -0
  485. package/dist/components/features/mcp-page/save-as-secret-toggle.js.map +1 -0
  486. package/dist/components/features/onboarding/onboarding-modal.d.ts +2 -2
  487. package/dist/components/features/onboarding/steps/check-backend-step.d.ts +1 -1
  488. package/dist/components/features/onboarding/steps/choose-agent-step.d.ts +2 -1
  489. package/dist/components/features/onboarding/steps/setup-acp-secrets-step.d.ts +19 -10
  490. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  491. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.d.ts +5 -0
  492. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -0
  493. package/dist/components/features/settings/llm-profiles/profile-actions-menu.cjs +1 -1
  494. package/dist/components/features/settings/llm-profiles/profile-actions-menu.js +1 -0
  495. package/dist/components/features/skills/extensions-navigation.cjs +1 -1
  496. package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
  497. package/dist/components/features/skills/extensions-navigation.js +1 -1
  498. package/dist/components/features/skills/extensions-navigation.js.map +1 -1
  499. package/dist/components/shared/buttons/back-nav-button.cjs +2 -0
  500. package/dist/components/shared/buttons/back-nav-button.cjs.map +1 -0
  501. package/dist/components/shared/buttons/back-nav-button.d.ts +17 -0
  502. package/dist/components/shared/buttons/back-nav-button.js +33 -0
  503. package/dist/components/shared/buttons/back-nav-button.js.map +1 -0
  504. package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs +1 -1
  505. package/dist/components/shared/buttons/conversation-confirmation-buttons.js +5 -5
  506. package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
  507. package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
  508. package/dist/components/shared/filters/enum-filter-dropdown.js +32 -31
  509. package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
  510. package/dist/components/shared/modals/confirmation-modals/base-modal.cjs +1 -1
  511. package/dist/components/shared/modals/confirmation-modals/base-modal.cjs.map +1 -1
  512. package/dist/components/shared/modals/confirmation-modals/base-modal.js +14 -13
  513. package/dist/components/shared/modals/confirmation-modals/base-modal.js.map +1 -1
  514. package/dist/components/shared/modals/settings/settings-modal.cjs +1 -1
  515. package/dist/components/shared/modals/settings/settings-modal.cjs.map +1 -1
  516. package/dist/components/shared/modals/settings/settings-modal.js +17 -16
  517. package/dist/components/shared/modals/settings/settings-modal.js.map +1 -1
  518. package/dist/components/shared/text-shimmer.cjs +2 -0
  519. package/dist/components/shared/text-shimmer.cjs.map +1 -0
  520. package/dist/components/shared/text-shimmer.d.ts +11 -0
  521. package/dist/components/shared/text-shimmer.js +43 -0
  522. package/dist/components/shared/text-shimmer.js.map +1 -0
  523. package/dist/constants/acp-providers.cjs +1 -1
  524. package/dist/constants/acp-providers.cjs.map +1 -1
  525. package/dist/constants/acp-providers.d.ts +16 -3
  526. package/dist/constants/acp-providers.js +0 -1
  527. package/dist/constants/acp-providers.js.map +1 -1
  528. package/dist/contexts/active-backend-context.cjs +1 -1
  529. package/dist/contexts/active-backend-context.cjs.map +1 -1
  530. package/dist/contexts/active-backend-context.js +32 -32
  531. package/dist/contexts/active-backend-context.js.map +1 -1
  532. package/dist/hooks/chat/use-chat-input-logic.cjs +1 -1
  533. package/dist/hooks/chat/use-chat-input-logic.cjs.map +1 -1
  534. package/dist/hooks/chat/use-chat-input-logic.js +13 -6
  535. package/dist/hooks/chat/use-chat-input-logic.js.map +1 -1
  536. package/dist/hooks/mutation/use-save-fields-as-secrets.cjs +2 -0
  537. package/dist/hooks/mutation/use-save-fields-as-secrets.cjs.map +1 -0
  538. package/dist/hooks/mutation/use-save-fields-as-secrets.d.ts +9 -0
  539. package/dist/hooks/mutation/use-save-fields-as-secrets.js +24 -0
  540. package/dist/hooks/mutation/use-save-fields-as-secrets.js.map +1 -0
  541. package/dist/hooks/mutation/use-unified-start-conversation.cjs +1 -1
  542. package/dist/hooks/mutation/use-unified-start-conversation.js +8 -8
  543. package/dist/hooks/mutation/use-unified-stop-conversation.cjs +1 -1
  544. package/dist/hooks/mutation/use-unified-stop-conversation.js +15 -15
  545. package/dist/hooks/query/use-acp-auth-status.d.ts +36 -0
  546. package/dist/hooks/query/use-agent-settings-schema.cjs +1 -1
  547. package/dist/hooks/query/use-agent-settings-schema.cjs.map +1 -1
  548. package/dist/hooks/query/use-agent-settings-schema.js +26 -16
  549. package/dist/hooks/query/use-agent-settings-schema.js.map +1 -1
  550. package/dist/hooks/query/use-backends-health.cjs +1 -1
  551. package/dist/hooks/query/use-backends-health.cjs.map +1 -1
  552. package/dist/hooks/query/use-backends-health.d.ts +2 -0
  553. package/dist/hooks/query/use-backends-health.js +31 -21
  554. package/dist/hooks/query/use-backends-health.js.map +1 -1
  555. package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
  556. package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
  557. package/dist/hooks/query/use-paginated-conversations.js +15 -14
  558. package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
  559. package/dist/hooks/query/use-settings.cjs +1 -1
  560. package/dist/hooks/query/use-settings.cjs.map +1 -1
  561. package/dist/hooks/query/use-settings.js +65 -52
  562. package/dist/hooks/query/use-settings.js.map +1 -1
  563. package/dist/hooks/query/use-user-conversation.cjs +1 -1
  564. package/dist/hooks/query/use-user-conversation.cjs.map +1 -1
  565. package/dist/hooks/query/use-user-conversation.js +20 -11
  566. package/dist/hooks/query/use-user-conversation.js.map +1 -1
  567. package/dist/hooks/use-agent-state.cjs +1 -1
  568. package/dist/hooks/use-agent-state.js +13 -13
  569. package/dist/hooks/use-conversation-name-context-menu.cjs +1 -1
  570. package/dist/hooks/use-conversation-name-context-menu.js +10 -10
  571. package/dist/hooks/use-conversation-name-context-menu.js.map +1 -1
  572. package/dist/hooks/use-llm-configured.d.ts +25 -0
  573. package/dist/hooks/use-runtime-is-ready.cjs +1 -1
  574. package/dist/hooks/use-runtime-is-ready.js +5 -5
  575. package/dist/i18n/declaration.cjs +1 -1
  576. package/dist/i18n/declaration.cjs.map +1 -1
  577. package/dist/i18n/declaration.d.ts +19 -1
  578. package/dist/i18n/declaration.js +1 -1
  579. package/dist/i18n/declaration.js.map +1 -1
  580. package/dist/i18n/translation.cjs +3 -3
  581. package/dist/i18n/translation.cjs.map +1 -1
  582. package/dist/i18n/translation.js +321 -15
  583. package/dist/i18n/translation.js.map +1 -1
  584. package/dist/icons/stop-circle.cjs +1 -1
  585. package/dist/icons/stop-circle.cjs.map +1 -1
  586. package/dist/icons/stop-circle.js +7 -10
  587. package/dist/icons/stop-circle.js.map +1 -1
  588. package/dist/locales/ar/openhands.json +20 -2
  589. package/dist/locales/ca/openhands.json +20 -2
  590. package/dist/locales/de/openhands.json +20 -2
  591. package/dist/locales/en/openhands.json +20 -2
  592. package/dist/locales/es/openhands.json +20 -2
  593. package/dist/locales/fr/openhands.json +20 -2
  594. package/dist/locales/it/openhands.json +20 -2
  595. package/dist/locales/ja/openhands.json +20 -2
  596. package/dist/locales/ko-KR/openhands.json +20 -2
  597. package/dist/locales/no/openhands.json +20 -2
  598. package/dist/locales/pt/openhands.json +20 -2
  599. package/dist/locales/tr/openhands.json +20 -2
  600. package/dist/locales/uk/openhands.json +20 -2
  601. package/dist/locales/zh-CN/openhands.json +20 -2
  602. package/dist/locales/zh-TW/openhands.json +20 -2
  603. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs +1 -1
  604. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs.map +1 -1
  605. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js +3 -1
  606. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js.map +1 -1
  607. package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.cjs +1 -1
  608. package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.cjs.map +1 -1
  609. package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.js +3 -1
  610. package/dist/node_modules/@openhands/extensions/integrations/catalog/apify.js.map +1 -1
  611. package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.cjs +1 -1
  612. package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.cjs.map +1 -1
  613. package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.js +3 -1
  614. package/dist/node_modules/@openhands/extensions/integrations/catalog/brave-search.js.map +1 -1
  615. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.cjs +1 -1
  616. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.cjs.map +1 -1
  617. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.js +3 -1
  618. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickhouse.js.map +1 -1
  619. package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.cjs +1 -1
  620. package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.cjs.map +1 -1
  621. package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.js +3 -1
  622. package/dist/node_modules/@openhands/extensions/integrations/catalog/elevenlabs.js.map +1 -1
  623. package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.cjs +1 -1
  624. package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.cjs.map +1 -1
  625. package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.js +3 -1
  626. package/dist/node_modules/@openhands/extensions/integrations/catalog/exa.js.map +1 -1
  627. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs +1 -1
  628. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs.map +1 -1
  629. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js +3 -1
  630. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js.map +1 -1
  631. package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.cjs +1 -1
  632. package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.cjs.map +1 -1
  633. package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.js +3 -1
  634. package/dist/node_modules/@openhands/extensions/integrations/catalog/firecrawl.js.map +1 -1
  635. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs +1 -1
  636. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs.map +1 -1
  637. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js +3 -1
  638. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js.map +1 -1
  639. package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.cjs +1 -1
  640. package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.cjs.map +1 -1
  641. package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.js +3 -1
  642. package/dist/node_modules/@openhands/extensions/integrations/catalog/kagi.js.map +1 -1
  643. package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.cjs +1 -1
  644. package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.cjs.map +1 -1
  645. package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.js +3 -1
  646. package/dist/node_modules/@openhands/extensions/integrations/catalog/mongodb.js.map +1 -1
  647. package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.cjs +1 -1
  648. package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.cjs.map +1 -1
  649. package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.js +3 -1
  650. package/dist/node_modules/@openhands/extensions/integrations/catalog/neon.js.map +1 -1
  651. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
  652. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
  653. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +3 -1
  654. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
  655. package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.cjs +1 -1
  656. package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.cjs.map +1 -1
  657. package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.js +2 -1
  658. package/dist/node_modules/@openhands/extensions/integrations/catalog/obsidian.js.map +1 -1
  659. package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.cjs +1 -1
  660. package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.cjs.map +1 -1
  661. package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.js +2 -1
  662. package/dist/node_modules/@openhands/extensions/integrations/catalog/redis.js.map +1 -1
  663. package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.cjs +1 -1
  664. package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.cjs.map +1 -1
  665. package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.js +3 -1
  666. package/dist/node_modules/@openhands/extensions/integrations/catalog/resend.js.map +1 -1
  667. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs +1 -1
  668. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs.map +1 -1
  669. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js +8 -7
  670. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js.map +1 -1
  671. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs +1 -1
  672. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs.map +1 -1
  673. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js +2 -1
  674. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js.map +1 -1
  675. package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.cjs +1 -1
  676. package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.cjs.map +1 -1
  677. package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.js +4 -2
  678. package/dist/node_modules/@openhands/extensions/integrations/catalog/tavily.js.map +1 -1
  679. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.cjs +2 -0
  680. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.cjs.map +1 -0
  681. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js +15 -0
  682. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js.map +1 -0
  683. package/dist/package.cjs +1 -1
  684. package/dist/package.cjs.map +1 -1
  685. package/dist/package.js +2 -2
  686. package/dist/package.js.map +1 -1
  687. package/dist/routes/conversation.cjs +1 -1
  688. package/dist/routes/conversation.cjs.map +1 -1
  689. package/dist/routes/conversation.js +1 -1
  690. package/dist/routes/conversation.js.map +1 -1
  691. package/dist/routes/llm-settings.cjs +1 -1
  692. package/dist/routes/llm-settings.cjs.map +1 -1
  693. package/dist/routes/llm-settings.js +55 -54
  694. package/dist/routes/llm-settings.js.map +1 -1
  695. package/dist/routes/secrets-settings.cjs +1 -1
  696. package/dist/routes/secrets-settings.cjs.map +1 -1
  697. package/dist/routes/secrets-settings.js +19 -27
  698. package/dist/routes/secrets-settings.js.map +1 -1
  699. package/dist/stores/conversation-store.cjs +1 -1
  700. package/dist/stores/conversation-store.cjs.map +1 -1
  701. package/dist/stores/conversation-store.d.ts +4 -0
  702. package/dist/stores/conversation-store.js +6 -0
  703. package/dist/stores/conversation-store.js.map +1 -1
  704. package/dist/types/agent-server/core/events/acp-tool-call-event.d.ts +6 -4
  705. package/dist/types/agent-server/core/events/system-event.d.ts +5 -0
  706. package/dist/types/automation.d.ts +15 -0
  707. package/dist/types/settings.d.ts +3 -1
  708. package/dist/ui/combobox-caret.cjs +1 -1
  709. package/dist/ui/combobox-caret.cjs.map +1 -1
  710. package/dist/ui/combobox-caret.d.ts +1 -1
  711. package/dist/ui/combobox-caret.js +9 -8
  712. package/dist/ui/combobox-caret.js.map +1 -1
  713. package/dist/ui/context-menu.cjs +1 -1
  714. package/dist/ui/context-menu.cjs.map +1 -1
  715. package/dist/ui/context-menu.js +9 -8
  716. package/dist/ui/context-menu.js.map +1 -1
  717. package/dist/ui/dropdown/dropdown-menu.cjs +1 -1
  718. package/dist/ui/dropdown/dropdown-menu.cjs.map +1 -1
  719. package/dist/ui/dropdown/dropdown-menu.js +21 -17
  720. package/dist/ui/dropdown/dropdown-menu.js.map +1 -1
  721. package/dist/ui/dropdown/dropdown.cjs +1 -1
  722. package/dist/ui/dropdown/dropdown.cjs.map +1 -1
  723. package/dist/ui/dropdown/dropdown.js +2 -2
  724. package/dist/ui/dropdown/dropdown.js.map +1 -1
  725. package/dist/utils/automation-schedule.d.ts +1 -0
  726. package/dist/utils/dropdown-classes.cjs +2 -0
  727. package/dist/utils/dropdown-classes.cjs.map +1 -0
  728. package/dist/utils/dropdown-classes.d.ts +32 -0
  729. package/dist/utils/dropdown-classes.js +8 -0
  730. package/dist/utils/dropdown-classes.js.map +1 -0
  731. package/dist/utils/form-control-classes.cjs +1 -1
  732. package/dist/utils/form-control-classes.cjs.map +1 -1
  733. package/dist/utils/form-control-classes.d.ts +18 -2
  734. package/dist/utils/form-control-classes.js +4 -3
  735. package/dist/utils/form-control-classes.js.map +1 -1
  736. package/dist/utils/git-control-bar-classes.cjs +2 -0
  737. package/dist/utils/git-control-bar-classes.cjs.map +1 -0
  738. package/dist/utils/git-control-bar-classes.d.ts +4 -0
  739. package/dist/utils/git-control-bar-classes.js +14 -0
  740. package/dist/utils/git-control-bar-classes.js.map +1 -0
  741. package/dist/utils/handle-event-for-ui.cjs.map +1 -1
  742. package/dist/utils/handle-event-for-ui.d.ts +6 -3
  743. package/dist/utils/handle-event-for-ui.js.map +1 -1
  744. package/dist/utils/mobile-top-bar-icon-button-classes.cjs +1 -1
  745. package/dist/utils/mobile-top-bar-icon-button-classes.cjs.map +1 -1
  746. package/dist/utils/mobile-top-bar-icon-button-classes.js +3 -3
  747. package/dist/utils/mobile-top-bar-icon-button-classes.js.map +1 -1
  748. package/dist/utils/modal-classes.cjs +2 -0
  749. package/dist/utils/modal-classes.cjs.map +1 -0
  750. package/dist/utils/modal-classes.d.ts +8 -0
  751. package/dist/utils/modal-classes.js +7 -0
  752. package/dist/utils/modal-classes.js.map +1 -0
  753. package/dist/utils/openhands-llm.cjs +2 -0
  754. package/dist/utils/openhands-llm.cjs.map +1 -0
  755. package/dist/utils/openhands-llm.d.ts +2 -0
  756. package/dist/utils/openhands-llm.js +9 -0
  757. package/dist/utils/openhands-llm.js.map +1 -0
  758. package/dist/utils/redact-custom-secrets.cjs +2 -0
  759. package/dist/utils/redact-custom-secrets.cjs.map +1 -0
  760. package/dist/utils/redact-custom-secrets.d.ts +6 -0
  761. package/dist/utils/redact-custom-secrets.js +10 -0
  762. package/dist/utils/redact-custom-secrets.js.map +1 -0
  763. package/dist/utils/status.cjs +1 -1
  764. package/dist/utils/status.cjs.map +1 -1
  765. package/dist/utils/status.d.ts +2 -1
  766. package/dist/utils/status.js +9 -8
  767. package/dist/utils/status.js.map +1 -1
  768. package/dist/utils/system-message-adapter.cjs +1 -1
  769. package/dist/utils/system-message-adapter.cjs.map +1 -1
  770. package/dist/utils/system-message-adapter.js +10 -7
  771. package/dist/utils/system-message-adapter.js.map +1 -1
  772. package/dist/utils/utils.cjs +1 -1
  773. package/dist/utils/utils.cjs.map +1 -1
  774. package/dist/utils/utils.d.ts +2 -1
  775. package/dist/utils/utils.js +21 -20
  776. package/dist/utils/utils.js.map +1 -1
  777. package/package.json +2 -2
  778. package/scripts/dev-safe.mjs +3 -1
  779. package/scripts/dev-static.mjs +2 -2
  780. package/scripts/dev-with-automation.mjs +283 -108
  781. package/scripts/static-build.mjs +20 -19
  782. package/scripts/static-server.mjs +50 -3
  783. package/build/assets/acp-providers-CbiRekh9.js +0 -1
  784. package/build/assets/active-backend-context-cCM1vYYZ.js +0 -1
  785. package/build/assets/add-backend-modal-DIUQzMPa.js +0 -1
  786. package/build/assets/agent-server-client-options-Bc5ZorQZ.js +0 -1
  787. package/build/assets/agent-server-compatibility-BlkUsrX2.js +0 -1
  788. package/build/assets/agent-server-conversation-service.api-C2V5SlHu.js +0 -5
  789. package/build/assets/api-key-entry-screen-B2gynaCp.js +0 -1
  790. package/build/assets/automation-detail-DJvbVSYK.js +0 -1
  791. package/build/assets/automations-list-rMki-8au.js +0 -1
  792. package/build/assets/backend-form-modal-Dnk33xA_.js +0 -1
  793. package/build/assets/base-modal-_dYTw1ri.js +0 -1
  794. package/build/assets/brand-button-Br7f0kZJ.js +0 -1
  795. package/build/assets/browser-store-Couc4S5D.js +0 -1
  796. package/build/assets/clock-BRjCgHTc.js +0 -1
  797. package/build/assets/combobox-caret-to1O8irE.js +0 -1
  798. package/build/assets/context-menu-list-item-CWNFpuiC.js +0 -1
  799. package/build/assets/conversation-DVrKU0oz.js +0 -19
  800. package/build/assets/conversation-Dlys-D5A.js +0 -1
  801. package/build/assets/conversation-panel-iF09WjZ4.js +0 -1
  802. package/build/assets/conversation-service.api-CCfztilW.js +0 -1
  803. package/build/assets/conversation-state-store-u5jepov0.js +0 -1
  804. package/build/assets/conversation-store-Z5iMCRpc.js +0 -1
  805. package/build/assets/conversation-websocket-context-DhJhqUna.js +0 -3
  806. package/build/assets/declaration-BNMqORFE.js +0 -1
  807. package/build/assets/dist-BxBP7tFD.js +0 -1
  808. package/build/assets/edit-automation-modal-BGzR3nfZ.js +0 -1
  809. package/build/assets/ellipsis-button-ZyLMPURn.js +0 -1
  810. package/build/assets/entry.client-1VMHpktY.js +0 -2
  811. package/build/assets/enum-filter-dropdown-CEgCdu4A.js +0 -1
  812. package/build/assets/extensions-hub-C651jsVh.js +0 -1
  813. package/build/assets/files-tab-R5z0lLdY.js +0 -1
  814. package/build/assets/files-tab-store-CDyVTXNT.js +0 -1
  815. package/build/assets/git-control-bar-branch-button-COdRAYHb.js +0 -27
  816. package/build/assets/git-provider-icon-BzLbc0yC.js +0 -1
  817. package/build/assets/home-XxBpNOVq.js +0 -1
  818. package/build/assets/install-server-modal-f31_CLrW.js +0 -1
  819. package/build/assets/launch-CshDse3e.js +0 -1
  820. package/build/assets/link-external-D2POYx4c.js +0 -1
  821. package/build/assets/llm-settings-Bql-vydt.js +0 -1
  822. package/build/assets/llm-settings-C_tal6Ds.js +0 -1
  823. package/build/assets/manage-backends-modal-l7RkKfwX.js +0 -1
  824. package/build/assets/manage-workspaces-modal-DhKF_8z3.js +0 -1
  825. package/build/assets/manifest-d9077852.js +0 -1
  826. package/build/assets/mcp-D2onbwVk.js +0 -9
  827. package/build/assets/messages-D0rWot7s.js +0 -36
  828. package/build/assets/proxy-CxydCnis.js +0 -1
  829. package/build/assets/root-DHeCXo9N.css +0 -1
  830. package/build/assets/root-layout-Czo9Ma6Q.js +0 -2
  831. package/build/assets/secrets-service-BsnKFc2x.js +0 -1
  832. package/build/assets/secrets-settings-Bz_UohPJ.js +0 -1
  833. package/build/assets/settings-client-C73C7IgV.js +0 -1
  834. package/build/assets/settings-index-Dz0BmdJD.js +0 -1
  835. package/build/assets/settings-list-classes-Bf80tWtc.js +0 -1
  836. package/build/assets/settings-modal-Brzgh5Yw.js +0 -1
  837. package/build/assets/settings-service.api-CZ3uWx4v.js +0 -1
  838. package/build/assets/sidebar-mobile-menu-toggle-Do_aA9Zm.js +0 -1
  839. package/build/assets/skills-settings-DlA5hlXw.js +0 -2
  840. package/build/assets/status-hp6M6E7E.js +0 -1
  841. package/build/assets/use-agent-settings-schema-33Un7UF2.js +0 -1
  842. package/build/assets/use-is-authed-BggE5wPj.js +0 -1
  843. package/build/assets/use-llm-profiles-DDOol3gK.js +0 -1
  844. package/build/assets/use-runtime-is-ready-B7EF4BKU.js +0 -1
  845. package/build/assets/use-settings-DQIZmIov.js +0 -1
  846. package/build/assets/use-user-conversation-C6hrMMtn.js +0 -1
  847. package/build/assets/utils-i18rdUj2.js +0 -1
  848. package/build/assets/vendor~conversation-panel~conversation-a9SyrrhV.js +0 -1
  849. package/build/assets/vendor~conversation-panel~conversation~index-C23ZXO4R.js +0 -1
  850. package/build/assets/vendor~home~mcp~automations-list-Ccy2I0KU.js +0 -1
  851. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~i4kjfqhl-BebWhFNT.js +0 -1
  852. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~skil~iguv7bgw-DzIXV3Ui.js +0 -9
  853. /package/build/assets/{automation-IdgZq6ZK.js → automation-XDPAjiZi.js} +0 -0
  854. /package/build/assets/{color-themes-DSaoIL6A.js → color-themes-B9pm9c-R.js} +0 -0
  855. /package/build/assets/{common-DR1t-EeP.js → common-DqjLSBOt.js} +0 -0
  856. /package/build/assets/{conversation-local-storage-UYl-SX-r.js → conversation-local-storage-YmOVXxxW.js} +0 -0
  857. /package/build/assets/{dist-C6t0EXL7.js → dist-C3NfioQC.js} +0 -0
  858. /package/build/assets/{environment-switch-store-C4ulFJKp.js → environment-switch-store-CiurvTtK.js} +0 -0
  859. /package/build/assets/{health-store-BDC2rM-X.js → health-store-B5f0S2FY.js} +0 -0
  860. /package/build/assets/{map-provider-COBVzZYo.js → map-provider-BJ_8KZKU.js} +0 -0
  861. /package/build/assets/{middleware-BC9EwbB9.js → middleware-CfatjPYZ.js} +0 -0
  862. /package/build/assets/{objectWithoutPropertiesLoose-Du6eBn-V.js → objectWithoutPropertiesLoose-DSQKyRhw.js} +0 -0
  863. /package/build/assets/{react-Do0CT17Y.js → react-Dy05vyj5.js} +0 -0
  864. /package/build/assets/{sdk-settings-field-metadata-CBPmeqYa.js → sdk-settings-field-metadata-DQiaIBie.js} +0 -0
  865. /package/build/assets/{settings-D_H-qsRm.js → settings-DGY6n4J2.js} +0 -0
  866. /package/build/assets/{settings-like-page-layout-classes-I0BDBEoq.js → settings-like-page-layout-classes-D7YjdTd0.js} +0 -0
  867. /package/build/assets/{use-breakpoint-DbJ6FkQ-.js → use-breakpoint-DF_RiQ6s.js} +0 -0
  868. /package/build/assets/{use-click-outside-element-DffgWWoZ.js → use-click-outside-element-DhxCUyWl.js} +0 -0
  869. /package/build/assets/{v4-CNn21NXa.js → v4-khGvL7i2.js} +0 -0
  870. /package/build/assets/{vendor~browser-DDiZgqD3.js → vendor~browser-DisFGEp9.js} +0 -0
  871. /package/build/assets/{vendor~browser-tab-BgwV1mxF.js → vendor~browser-tab-BxhTtM9_.js} +0 -0
  872. /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-DbvX3OcM.js → vendor~conversation-panel~conversation~alert-banner-w-I2sY6c.js} +0 -0
  873. /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-iOsylxCS.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~zm51vy4j-BClAMeFe.js} +0 -0
  874. /package/build/assets/{vendor~files-tab-BGKayPiK.js → vendor~files-tab-BtkpAiMX.js} +0 -0
  875. /package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BW6261Sb.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CyZ-3lDQ.js} +0 -0
  876. /package/build/assets/{vendor~home~mcp~automations-list-DoPfwaXj.js → vendor~home~mcp~automations-list-BgV86Sti.js} +0 -0
  877. /package/build/assets/{vendor~launch-vdeRTWFu.js → vendor~launch-BXgl67Re.js} +0 -0
  878. /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-D9P8e98a.js → vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~ninslayh-CLlsvdNP.js} +0 -0
  879. /package/build/assets/{vendor~terminal-DUrOWGFE.js → vendor~terminal-DZaJIY8A.js} +0 -0
@@ -0,0 +1,27 @@
1
+ import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./react-dom-hVBnwgwZ.js";import{t as r}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-DYXOLEck.js";import{d as i,i as a,o,s,u as c}from"./path-utils-onx24uF5.js";import{t as l}from"./useMutation-GSSKKebK.js";import{o as u,t as d}from"./declaration-CR6HMp29.js";import{n as f}from"./QueryClientProvider-Cnr-Yl3j.js";import{t as p}from"./useTranslation-B6voJV4y.js";import{a as m,n as h,s as g}from"./i18n-DET2iOyh.js";import{a as _,c as v,i as y,n as b,o as x,r as S,s as C,t as w}from"./vendor~home~conversation-panel~conversation-PK1-gtXU.js";import{t as T}from"./check-CYxAHs85.js";import{t as E}from"./chevron-down-Bnmd5iG-.js";import{n as D,r as O}from"./custom-toast-handlers-ufGJ6_Rc.js";import{c as k,d as A,i as j,m as M,n as ee,r as te,u as N}from"./conversation-websocket-context-DvHgx_FE.js";import{t as ne}from"./plus-DT-M0FA1.js";import{D as re,E as ie,S as P,_ as ae,a as F,c as I,f as L,h as R,j as z,k as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as B,y as me}from"./utils-DCVfKFRt.js";import{D as he}from"./agent-server-client-options-HEOwGVIU.js";import{n as ge}from"./active-backend-context-Beu-LZL-.js";import{t as V}from"./agent-server-conversation-service.api-CORdqJZg.js";import{a as _e,n as ve}from"./query-keys-tAsQcc_9.js";import{t as ye}from"./modal-backdrop-RfNCrSpK.js";import{n as be}from"./modal-body-aoa2fx5W.js";import{r as xe}from"./base-modal-C2oy2EBG.js";import{g as Se,n as Ce,o as we,r as Te}from"./brand-button-DJ_S16rO.js";import{t as Ee}from"./loading-spinner-5GT9q1xy.js";import{n as De}from"./navigation-context-BdKYH32C.js";import{t as Oe}from"./navigation-link-U4vY9i_C.js";import{t as ke}from"./vendor~root-layout~home~conversation-panel~conversation-B5WNMnt4.js";import{t as Ae}from"./styled-tooltip-hdfMXPQC.js";import{c as je,i as Me,p as Ne,r as Pe,u as Fe}from"./dropdown-classes-BsVmxlNG.js";import{n as Ie,r as Le,t as Re}from"./combobox-caret-BJC7XJsz.js";import{t as ze}from"./dist-C3NfioQC.js";import{_ as Be,a as Ve,c as He,d as Ue,g as We,h as Ge,i as Ke,l as qe,m as Je,n as Ye,o as Xe,p as Ze,r as Qe,s as $e,t as et,u as tt}from"./git-provider-icon-CHdGBdU2.js";import{t as nt}from"./react-Dy05vyj5.js";import{a as rt,n as it,r as at,s as ot}from"./conversation-local-storage-YmOVXxxW.js";import{t as H}from"./conversation-store-CC-isCnP.js";import{t as st}from"./modal-close-button-CtWOUMmw.js";import{a as ct,c as lt,u as ut}from"./acp-providers-CPdgcp13.js";import{t as dt}from"./settings-service.api-C3rxTtPj.js";import{t as ft}from"./use-click-outside-element-DhxCUyWl.js";import{r as pt}from"./use-settings-D5hbTS9t.js";import{n as mt,r as ht}from"./conversation-service.api-BsJy6uuL.js";import{n as U,t as W}from"./context-menu-list-item-7tAcm2c3.js";import{n as gt}from"./ellipsis-button-Vh5MvRZa.js";import{t as _t}from"./skills-0GRKX5Xj.js";import{n as vt,r as G,t as K}from"./use-active-conversation-DHGcmjCK.js";import{t as yt}from"./use-skills-D7PS0fH0.js";import{n as bt,t as xt}from"./use-llm-profiles-C861aFAq.js";import{t as St}from"./file-BTY6Gyy9.js";import{t as Ct}from"./use-agent-state-PKrUPMJ3.js";import{S as wt,t as Tt}from"./use-event-store-BomO7ywK.js";import{n as Et,r as q}from"./typography-BDgnT7Yp.js";import{t as Dt}from"./lesson-plan-duSsqWVs.js";import{t as Ot}from"./code-tag-BzyqOtPD.js";import{t as kt}from"./checkmark-Dus0b6jt.js";import{t as At}from"./use-handle-plan-click-CohJPvvW.js";import{t as jt}from"./settings-gear-Dd8K2_8B.js";import{t as Mt}from"./u-circuit-x3ExjBbU.js";import{t as Nt}from"./markdown-renderer-B3IAVfv4.js";import{t as Pt}from"./link-external-DGxVm4Ps.js";var J=e(t(),1),Ft={"image/png":`png`,"image/jpeg":`jpg`,"image/jpg":`jpg`,"image/gif":`gif`,"image/webp":`webp`,"image/bmp":`bmp`};function It(e){if(e.name.trim())return e;let t=Ft[e.type]??(e.type.startsWith(`image/`)?`png`:`bin`);return new File([e],`pasted-image-${Date.now()}.${t}`,{type:e.type,lastModified:e.lastModified})}function Lt(e,t){let n=new Set(t),r=[],i=[];for(let t of e)n.has(t.name)?i.push(t):r.push(t);return{imagesToEmbed:r,imagesAsFiles:i}}function Rt(e){let t=Array.from(e.files);if(t.length>0)return t.map(It);let n=[];for(let t=0;t<e.items.length;t+=1){let r=e.items[t];if(r.kind!==`file`)continue;let i=r.getAsFile();i&&n.push(It(i))}return n}var zt=e=>e?(e.innerText||e.textContent||``).trim()===``:!0,Bt=e=>{e&&zt(e)&&(e.innerHTML=``,e.textContent=``)},Y=e=>e?.innerText||``,Vt=e=>{e&&(e.textContent=``)},Ht=e=>{e&&(e.value=``)},Ut=e=>{if(!e)return;let t=window.getSelection();if(!t||t.rangeCount===0)return;let n=t.getRangeAt(0);if(!n.getBoundingClientRect||!e.getBoundingClientRect)return;let r=n.getBoundingClientRect(),i=e.getBoundingClientRect();r.bottom>i.bottom&&(e.scrollTop=e.scrollHeight-e.clientHeight)},Wt=e=>{if(!e)return;e.focus();let t=window.getSelection();if(!t)return;let n=document.createRange();n.selectNodeContents(e),n.collapse(!1),t.removeAllRanges(),t.addRange(n),Ut(e)},Gt=e=>e.startsWith(`task-`),Kt=500,X=`oh:home-prompt-draft`,qt=(e,t)=>{let{state:n,setDraftMessage:r}=ot(e??``),i=(0,J.useRef)(null),a=(0,J.useRef)(!1),[o,s]=(0,J.useState)(!1),c=(0,J.useRef)(e),l=(0,J.useRef)(!0),u=(0,J.useRef)(``);(0,J.useEffect)(()=>{if(!e)return;let n=c.current,r=l.current;c.current=e,l.current=!1,i.current&&=(clearTimeout(i.current),null);let o=t.current;if(!r&&n&&n!==e){let t=Gt(n),r=!Gt(e);if(t&&r&&o){let t=Y(o).trim();if(t){rt(e,{draftMessage:t}),a.current=!0,s(!0);return}}}o&&(o.textContent=``),a.current=!1,s(!1)},[e,t]),(0,J.useEffect)(()=>{if(a.current)return;let n=t.current;if(!n)return;if(!e){try{let e=sessionStorage.getItem(X);if(e&&Y(n).trim()===``){n.textContent=e;let t=window.getSelection(),r=document.createRange();r.selectNodeContents(n),r.collapse(!1),t?.removeAllRanges(),t?.addRange(r),u.current=e}}catch{}a.current=!0,s(!0);return}let{draftMessage:r}=at(e);r&&Y(n).trim()===``&&(n.textContent=r,Wt(n)),a.current=!0,s(!0)},[t,e]);let d=(0,J.useCallback)(()=>{if(i.current&&clearTimeout(i.current),!e){let e=t.current;if(e){let t=Y(e).trim();u.current=t;try{t?sessionStorage.setItem(X,t):sessionStorage.removeItem(X)}catch{}}return}let a=e;i.current=setTimeout(()=>{if(a!==c.current)return;let e=t.current;if(!e)return;let i=Y(e).trim();i!==(n.draftMessage||``)&&r(i||null)},Kt)},[t,n.draftMessage,r,e]),f=(0,J.useCallback)(()=>{if(i.current&&=(clearTimeout(i.current),null),!e){try{sessionStorage.removeItem(X)}catch{}return}r(null)},[e,r]);return(0,J.useEffect)(()=>()=>{if(i.current&&clearTimeout(i.current),!c.current){let e=u.current;try{e?sessionStorage.getItem(`oh:home-prompt-draft`)!==null&&sessionStorage.setItem(X,e):sessionStorage.removeItem(X)}catch{}}},[]),{saveDraft:d,clearDraft:f,isRestored:o,hasDraft:!!n.draftMessage}},Jt=()=>{let e=(0,J.useRef)(null),{conversationId:t}=G(),{messageToSend:n,messageRestoreIfEmpty:r,hasRightPanelToggled:i,setMessageToSend:a,clearMessageRestoreIfEmpty:o,setIsRightPanelShown:s}=H(),{saveDraft:c,clearDraft:l}=qt(t,e),u=t?n:null;return(0,J.useEffect)(()=>{!t||!r||(Y(e.current).trim().length===0&&a(r.text),o())},[t,r,a,o]),(0,J.useEffect)(()=>{t&&e.current&&(a(Y(e.current)),s(i))},[t,i,a,s]),{chatInputRef:e,messageToSend:u,checkIsContentEmpty:(0,J.useCallback)(()=>zt(e.current),[]),clearEmptyContentHandler:(0,J.useCallback)(()=>{Bt(e.current)},[]),getCurrentMessage:(0,J.useCallback)(()=>Y(e.current),[]),saveDraft:c,clearDraft:l}},Yt=e=>{let t=(0,J.useRef)(null),n=(0,J.useRef)(null),[r,i]=(0,J.useState)(!1),a=(0,J.useCallback)((t,n)=>{e&&t.length>0&&e(t,n)},[e]);return(0,J.useEffect)(()=>{let e=e=>{let t=e.detail.files;t&&t.length>0&&a(t,{fromPaste:!0})};return document.addEventListener(`pasteFiles`,e),()=>{document.removeEventListener(`pasteFiles`,e)}},[a]),{fileInputRef:t,chatContainerRef:n,isDragOver:r,handleFileIconClick:(0,J.useCallback)(e=>{!e&&t.current&&t.current.click()},[]),handleFileInputChange:(0,J.useCallback)(e=>{a(Array.from(e.target.files||[]))},[a]),handleDragOver:(0,J.useCallback)((e,t)=>{t||(e.preventDefault(),i(!0))},[]),handleDragLeave:(0,J.useCallback)((e,t)=>{t||n.current?.contains(e.relatedTarget)||(e.preventDefault(),i(!1))},[]),handleDrop:(0,J.useCallback)((e,t)=>{t||(e.preventDefault(),i(!1),a(Array.from(e.dataTransfer.files)))},[a])}},Xt=2,Zt=({elementRef:e,minHeight:t,maxHeight:n,onGripDragStart:r,onGripDragEnd:i,onHeightChange:a,onReachedMinHeight:o})=>{let s=e=>`touches`in e&&e.touches.length>0?e.touches[0].clientY:e.clientY,c=(e,t)=>{let n=document.getElementById(`resize-grip`);n&&(n.addEventListener(`touchmove`,e,{passive:!1,capture:!0}),n.addEventListener(`touchend`,t,{capture:!0}))},l=(e,t)=>{document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t)},u=u=>{let d=de(),f=e.current?.offsetHeight||t,p=!1,m=i=>{if(i.preventDefault(),!p){let e=s(i);if(Math.abs(e-u)<Xt)return;p=!0,r?.()}let c=s(i)-u,l=Math.max(t,Math.min(n,f-c)),d=e.current;if(!d)return;d.style.height=`${l}px`;let m=d.scrollHeight>l||l>=n;d.style.overflowY=m?`auto`:`hidden`,a&&a(l),o&&Math.abs(l-t)<=1.5&&o()},h=()=>{if(p&&i?.(),d){let e=document.getElementById(`resize-grip`);if(!e)return;e.removeEventListener(`mousemove`,m),e.removeEventListener(`mouseup`,h),e.removeEventListener(`touchmove`,m),e.removeEventListener(`touchend`,h)}else document.removeEventListener(`mousemove`,m),document.removeEventListener(`mouseup`,h),document.removeEventListener(`touchmove`,m),document.removeEventListener(`touchend`,h)};d?c(m,h):l(m,h)};return{handleGripMouseDown:e=>{e.preventDefault(),u(e.clientY)},handleGripTouchStart:e=>{e.preventDefault(),u(e.touches[0].clientY)}}},Qt=20,$t=120,en=20,tn=50,nn=()=>({hasUserResizedRef:(0,J.useRef)(!1),manualHeightRef:(0,J.useRef)(null)}),rn=(e,t,n)=>{let{minHeight:r,maxHeight:i}=n,a=Math.max(r,Math.min(t,i));return e.style.setProperty(`height`,`${a}px`),e.style.setProperty(`overflow-y`,a>=i?`auto`:`hidden`),a},an=(e,t,n=tn)=>e>t+n,on=(e,t)=>{let n=L(e,t),r=n;e.style.setProperty(`height`,`auto`);let i=e.scrollHeight;return R(e,n),{currentHeight:r,currentStyleHeight:n,contentHeight:i}},sn=(e,t)=>{let{finalHeight:n,overflowY:r}=t,i=e;i.style.height=`${n}px`,i.style.overflowY=r},Z=(e,t)=>{t&&t(e)},cn=(e,t={})=>{let n=(0,J.useRef)(null),{minHeight:r=Qt,maxHeight:i=$t,enableManualResize:a=!1,value:o,onGripDragStart:s,onGripDragEnd:c,onHeightChange:l}=t,u={minHeight:r,maxHeight:i},{hasUserResizedRef:d,manualHeightRef:f}=nn(),p=()=>{d.current=!1,f.current=null},m=(0,J.useCallback)(e=>{l?.(e),d.current&&(f.current=e)},[l]),h=(0,J.useCallback)(()=>{d.current=!0,s?.()},[s]),g=(0,J.useCallback)(()=>{let t=e.current;if(t){let e=L(t,r);Math.abs(e-r)<=1.5&&(d.current=!1,f.current=null)}c?.()},[r,c]),{handleGripMouseDown:_,handleGripTouchStart:v}=Zt({elementRef:e,minHeight:r,maxHeight:i,onGripDragStart:a?h:void 0,onGripDragEnd:a?g:void 0,onHeightChange:m}),y=(0,J.useCallback)((e,t,n)=>{if(d.current&&t>r){sn(e,{finalHeight:t,overflowY:`hidden`}),Z(t,l);return}let i=Math.max(n,r);sn(e,{finalHeight:i,overflowY:`hidden`}),Z(i,l)},[r,l]),b=(0,J.useCallback)((e,t,n)=>{if(!an(t,n)){let t=Math.max(n,r);sn(e,{finalHeight:t,overflowY:`hidden`}),Z(t,l);return}sn(e,{finalHeight:t,overflowY:`auto`}),Z(t,l)},[r,l]),x=(0,J.useCallback)(e=>{sn(e,{finalHeight:i,overflowY:`auto`}),Z(i,l)},[i,l]),S=(0,J.useCallback)(()=>{let t=e.current;if(!t)return;if((t.textContent??``).trim().length===0&&d.current&&f.current&&f.current>r+1.5){R(t,f.current),t.style.overflowY=`hidden`,Z(f.current,l);return}let{currentHeight:n,contentHeight:a}=on(t,r);if(a<=n){y(t,n,a);return}if(a<=i){b(t,n,a);return}x(t)},[e,r,i,l,y,b,x]),C=(0,J.useCallback)(()=>{n.current&&cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{n.current=null,S()})},[S]);return(0,J.useEffect)(()=>{if(o===void 0)return;let t=0,n=()=>{let t=e.current;return t?(t.textContent=o.text,C(),Wt(t),!0):!1};return n()||(t=requestAnimationFrame(()=>{n()})),()=>{t&&cancelAnimationFrame(t)}},[o,C]),(0,J.useEffect)(()=>{C()},[C]),{smartResize:C,handleGripMouseDown:_,handleGripTouchStart:v,increaseHeightForEmptyContent:()=>{let t=e.current;if(!t)return;let n=L(t,r),a=Math.min(n+en,i);if(a>n){let e=rn(t,a,u);Z(e,l),d.current=!0,f.current=e}},resetManualResize:p}},ln=(e,t)=>{let[n,r]=(0,J.useState)(!1),[i,a]=(0,J.useState)(!1),{setShouldHideSuggestions:o}=H(),s=(0,J.useRef)(null),c=(0,J.useRef)(!1),l=(0,J.useCallback)(()=>{a(!0)},[]),u=(0,J.useCallback)(()=>{a(!1),c.current=!0},[]),d=(0,J.useCallback)(e=>{if(c.current){c.current=!1,e.preventDefault(),e.stopPropagation();return}e.stopPropagation(),r(e=>!e)},[]),{smartResize:f,handleGripMouseDown:p,handleGripTouchStart:m,increaseHeightForEmptyContent:h,resetManualResize:g}=cn(e,{minHeight:20,maxHeight:400,onHeightChange:(0,J.useCallback)(e=>{o(e>re.HEIGHT_THRESHOLD)},[o]),onGripDragStart:l,onGripDragEnd:u,value:t??void 0,enableManualResize:!0});return{gripRef:s,isGripVisible:n,isGripDragging:i,handleTopEdgeClick:d,smartResize:f,handleGripMouseDown:p,handleGripTouchStart:m,increaseHeightForEmptyContent:h,resetManualResize:g}},un=(e,t,n,r,i,a,o)=>({handleInput:(0,J.useCallback)(()=>{t(),e.current&&Bt(e.current),Ut(e.current)},[t,e]),handlePaste:(0,J.useCallback)(e=>{e.preventDefault();let n=Rt(e.clipboardData);if(n.length>0){let e=new CustomEvent(`pasteFiles`,{detail:{files:n}});document.dispatchEvent(e);return}let r=e.clipboardData.getData(`text/plain`);r&&(document.execCommand(`insertText`,!1,r),setTimeout(t,0))},[t]),handleKeyDown:(0,J.useCallback)((e,t,i)=>{if(e.key===`Enter`&&!e.nativeEvent.isComposing){if(r()){e.preventDefault(),n();return}!de()&&!e.shiftKey&&!t&&(e.preventDefault(),i())}},[r,n]),handleBlur:(0,J.useCallback)(()=>{e.current&&Bt(e.current),o&&o()},[e,o]),handleFocus:(0,J.useCallback)(()=>{a&&a()},[a])}),dn=(e,t,n,r,i)=>({handleSubmit:(0,J.useCallback)(()=>{let a=e.current?.innerText||``,o=a.trim(),{images:s,files:c}=H.getState(),l=s.length>0||c.length>0;!o&&!l||(r(a),Vt(e.current),Ht(t.current),n(),i?.())},[e,t,n,r,i]),handleStop:(0,J.useCallback)(e=>{e&&e()},[])}),fn=()=>yt(K().data?.selected_workspace??void 0);function pn(e){let t=window.getSelection();if(!t||t.rangeCount===0)return-1;let n=t.getRangeAt(0),r=n.cloneRange();return r.selectNodeContents(e),r.setEnd(n.startContainer,n.startOffset),r.toString().length}var mn=e=>{let{data:t,isLoading:n}=fn(),r=ge().backend.kind===`cloud`,{data:i,isLoading:a}=xt({enabled:!r}),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(`command`),[f,p]=(0,J.useState)(0),m=(0,J.useMemo)(()=>{let e=ie.filter(e=>e.command===`/new`?r:e.command===`/model`?!r:!0);return n||!t||t.forEach(t=>{let n=(t.triggers||[]).filter(e=>e.startsWith(`/`));n.length>0?n.forEach(n=>{e.push({skill:t,command:n})}):t.type===`agentskills`&&e.push({skill:t,command:`/${t.name}`})}),e},[t,n,r]),h=(0,J.useMemo)(()=>r?[]:(i?.profiles??[]).map(e=>{let t=`${z} ${e.name}`;return{command:t,skill:{name:e.name,type:`agentskills`,content:e.model?`Switch to ${e.model}`:`Switch to this LLM profile`,triggers:[t]}}}),[i?.profiles,r]),g=(0,J.useMemo)(()=>{let e=u===`model-profile`?h:m;if(!c)return e;let t=c.toLowerCase();return e.filter(e=>e.command.toLowerCase().includes(t)||e.skill.name.toLowerCase().includes(t)||e.skill.content?.toLowerCase().includes(t))},[u,h,m,c]),_=(0,J.useRef)(o);_.current=o;let v=(0,J.useRef)(g);v.current=g;let y=(0,J.useRef)(f);y.current=f,(0,J.useEffect)(()=>{p(0)},[c]);let b=(0,J.useRef)(null),x=(0,J.useCallback)(()=>{let t=e.current;if(!t)return null;let n=(t.innerText||``).replace(/[\n\r]+$/,``),r=pn(t);if(r<0)return null;let i=n.slice(0,r),a=i.match(/(^|\s)(\/model(?:\s+\S*)?)$/);if(a){let e=a[2],t=i.length-e.length,o=n.slice(r).match(/^\S*/),s=r+(o?o[0].length:0);return{kind:`model-profile`,text:e.replace(/^\/model(?:\s+)?/,``),start:t,end:s}}let o=i.match(/(^|\s)(\/\S*)$/);if(!o)return null;let s=o[2],c=i.length-s.length,l=n.slice(r).match(/^\S*/),u=r+(l?l[0].length:0);return{kind:`command`,text:s.slice(1),start:c,end:u}},[e]),S=(0,J.useCallback)(()=>{let e=x(),t=e?.kind===`model-profile`?h.length>0||a:m.length>0;e!==null&&t?(d(e.kind),l(e.text),b.current={start:e.start,end:e.end},s(!0)):(s(!1),l(``),d(`command`),b.current=null)},[x,a,h.length,m.length]),C=(0,J.useCallback)(t=>{let n=e.current;if(!n)return;let r=b.current,i=(n.innerText||``).replace(/[\n\r]+$/,``),a=`${t.command} `;if(r){n.textContent=i.slice(0,r.start)+a+i.slice(r.end);let e=r.start+a.length,t=n.firstChild;if(t){let n=document.createRange(),r=window.getSelection(),i=Math.min(e,t.textContent.length);n.setStart(t,i),n.collapse(!0),r?.removeAllRanges(),r?.addRange(n)}}else{n.textContent=a;let e=document.createRange(),t=window.getSelection();e.selectNodeContents(n),e.collapse(!1),t?.removeAllRanges(),t?.addRange(e)}s(!1),l(``),d(`command`),p(0),b.current=null,n.dispatchEvent(new InputEvent(`input`,{bubbles:!0})),n.focus()},[e]);return{isMenuOpen:o,filteredItems:g,selectedIndex:f,updateSlashMenu:S,selectItem:C,handleSlashKeyDown:(0,J.useCallback)(e=>{let t=v.current;if(!_.current||t.length===0)return!1;switch(e.key){case`ArrowDown`:return e.preventDefault(),p(e=>e<t.length-1?e+1:0),!0;case`ArrowUp`:return e.preventDefault(),p(e=>e>0?e-1:t.length-1),!0;case`Enter`:case`Tab`:{let n=t[y.current];return n?(e.preventDefault(),C(n),!0):!1}case`Escape`:return e.preventDefault(),s(!1),!0;case`ArrowLeft`:case`ArrowRight`:case`Home`:case`End`:return s(!1),!1;default:return!1}},[C]),closeMenu:(0,J.useCallback)(()=>s(!1),[])}},Q=u();function hn({gripRef:e,isGripVisible:t,isGripDragging:n,handleTopEdgeClick:r,handleGripMouseDown:i,handleGripTouchStart:a}){return(0,Q.jsxs)(`div`,{className:`absolute top-0 left-0 w-full h-3 z-20 group`,id:`resize-grip`,onClick:r,children:[(0,Q.jsx)(`div`,{className:`absolute inset-0 z-[1] cursor-ns-resize select-none`,onMouseDown:i,onTouchStart:a,"aria-hidden":!0}),(0,Q.jsx)(`div`,{ref:e,className:B(`pointer-events-none absolute top-0 left-0 w-full h-px bg-white z-[2] transition-opacity duration-200`,t||n?`opacity-100`:`opacity-0 group-hover:opacity-100`)})]})}var gn=e=>(0,Q.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:[(0,Q.jsx)(`path`,{d:`M15.5 10C16.3284 10 17 9.32843 17 8.5C17 7.67157 16.3284 7 15.5 7C14.6716 7 14 7.67157 14 8.5C14 9.32843 14.6716 10 15.5 10Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M3 5C3 3.89543 3.89543 3 5 3H19C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5ZM19 5H5V12.9194L8.37534 10.2191C8.74056 9.92696 9.25951 9.92696 9.62473 10.2191L13.9258 13.66L15.2929 12.2929C15.6835 11.9024 16.3166 11.9024 16.7071 12.2929L19 14.5857V5ZM5 19H19V17.4142L16 14.4142L14.7071 15.7071C14.3468 16.0674 13.7732 16.0992 13.3753 15.7809L9.00004 12.2806L5 15.4807V19Z`,fill:`currentColor`})]}),_n=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:17,height:17,viewBox:`0 0 17 17`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{d:`M14.2541 0.99075C15.0629 0.811957 15.8642 1.32275 16.0432 2.13138C16.222 2.94015 15.7113 3.74145 14.9026 3.92044C10.5163 4.8902 8.31751 8.22203 8.09593 11.8745L10.343 9.62942C10.863 9.10947 11.7057 9.10867 12.2258 9.62845C12.7459 10.1486 12.7459 10.9921 12.2258 11.5122L7.52073 16.2173C7.03316 16.7049 6.26163 16.7357 5.73851 16.3091L5.63694 16.2173L0.93089 11.5122C0.411068 10.9922 0.411047 10.1485 0.93089 9.62845C1.45095 9.10851 2.29457 9.10859 2.81468 9.62845L5.09691 11.9107C5.32362 7.06867 8.20704 2.32786 14.2541 0.99075Z`,fill:`currentColor`})});function vn(){let{t:e}=p(`openhands`);return(0,Q.jsx)(`div`,{className:`drag-over`,children:(0,Q.jsxs)(`div`,{className:`drag-over-content-wrapper`,children:[(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(gn,{width:36,height:36,className:`rotate-[-27deg] absolute top-[-40px] left-[-10px]`}),(0,Q.jsx)(_n,{width:16,height:16,className:`absolute top-[-16px] left-[-20px]`})]}),(0,Q.jsx)(`div`,{className:`drag-over-content`,children:(0,Q.jsx)(`p`,{children:e(d.COMMON$DROP_YOUR_FILES_HERE)})})]})})}function yn({onClick:e}){return(0,Q.jsx)(`button`,{type:`button`,onClick:e,className:B(`z-10 flex w-4 h-4 rounded-full items-center justify-center bg-[var(--oh-surface)] hover:bg-[var(--oh-muted)] cursor-pointer absolute top-1 right-1 opacity-0 group-hover:opacity-100 transition-opacity duration-200`,de()&&`opacity-100`),children:(0,Q.jsx)(Ze,{width:10,height:10,color:`#ffffff`})})}function bn({file:e,onRemove:t,isLoading:n=!1}){let r=pe(e.name);return(0,Q.jsxs)(`div`,{className:`group flex gap-2 rounded-lg bg-[var(--oh-interactive-hover)] max-w-[160px] px-3 py-1 relative`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col justify-center gap-0.25`,children:[(0,Q.jsx)(yn,{onClick:t}),(0,Q.jsx)(`div`,{className:`flex items-center gap-2 w-full`,children:(0,Q.jsx)(`span`,{className:B(`text-sm font-normal leading-5 flex-1 max-w-[136px] truncate`,n?`max-w-[108px] text-[var(--oh-muted)]`:`text-white`),children:e.name})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(St,{width:12,height:12,color:`var(--oh-muted)`}),(0,Q.jsx)(`span`,{className:`text-[9px] font-normal leading-5 text-[var(--oh-muted)]`,children:r})]})]}),n&&(0,Q.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,Q.jsx)(M,{className:`animate-spin w-5 h-5`,color:`white`})})]})}function xn({active:e,onToggle:t}){let{t:n}=p(`openhands`),r=n(d.CHAT_INTERFACE$UPLOAD_IMAGES_AS_FILES),i=n(d.CHAT_INTERFACE$DO_NOT_UPLOAD_AS_FILE),a=e?i:r;return(0,Q.jsx)(`div`,{className:`absolute bottom-2 left-1 z-10 h-4 w-4`,children:(0,Q.jsx)(Ae,{content:a,placement:`bottom`,offset:10,shouldFlip:!1,tooltipClassName:`bg-white text-black text-xs font-medium leading-5`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":a,"aria-pressed":e,onClick:e=>{e.stopPropagation(),t()},className:B(`flex h-4 w-4 items-center justify-center rounded-full bg-[var(--oh-surface)] text-[var(--oh-foreground)] transition-colors cursor-pointer hover:bg-[var(--oh-muted)]`),children:e?(0,Q.jsx)(T,{width:10,height:10,strokeWidth:2.5,"aria-hidden":!0}):(0,Q.jsx)(_,{width:10,height:10,strokeWidth:2.5,"aria-hidden":!0})})})})}function Sn({image:e,onRemove:t,isLoading:n=!1,showUploadAsFileToggle:r=!1,uploadAsFileActive:i=!1,onToggleUploadAsFile:a}){let[o,s]=J.useState(``);return J.useEffect(()=>{let t=URL.createObjectURL(e);return s(t),()=>{URL.revokeObjectURL(t)}},[e]),(0,Q.jsxs)(`div`,{className:`group relative flex h-[49px] w-[51px] min-h-[49px] min-w-[51px] items-center justify-center rounded-lg bg-[var(--oh-interactive-hover)]`,children:[n?(0,Q.jsx)(M,{className:`animate-spin w-5 h-5`,color:`white`}):o&&(0,Q.jsx)(`img`,{src:o,alt:e.name,className:`h-full w-full rounded-lg object-cover`}),(0,Q.jsx)(yn,{onClick:t}),r&&a&&(0,Q.jsx)(xn,{active:i,onToggle:a})]})}function Cn(){let{images:e,files:t,loadingFiles:n,loadingImages:r,imagesMarkedUploadAsFile:i,removeFile:a,removeImage:o,toggleImageUploadAsFile:s}=H(),c=e=>{a(e)},l=e=>{o(e)};return e.length===0&&t.length===0&&n.length===0&&r.length===0?null:(0,Q.jsx)(`div`,{className:`flex w-full flex-col gap-2 pb-4`,children:(0,Q.jsxs)(`div`,{className:`flex w-full items-center gap-4 overflow-x-auto custom-scrollbar`,children:[t.map((e,t)=>(0,Q.jsx)(bn,{file:e,onRemove:()=>c(t),isLoading:n.includes(e.name)},`file-${t}-${e.name}`)),n.map((e,t)=>(0,Q.jsx)(bn,{file:new File([],e),onRemove:()=>{},isLoading:!0},`loading-file-${t}-${e}`)),e.map((e,t)=>(0,Q.jsx)(Sn,{image:e,onRemove:()=>l(t),isLoading:r.includes(e.name),showUploadAsFileToggle:!0,uploadAsFileActive:i.includes(e.name),onToggleUploadAsFile:()=>s(e.name)},`image-${t}-${e.name}`)),r.map((e,t)=>(0,Q.jsx)(Sn,{image:new File([],e),onRemove:()=>{},isLoading:!0,showUploadAsFileToggle:!0,uploadAsFileActive:i.includes(e),onToggleUploadAsFile:()=>s(e)},`loading-image-${t}-${e}`))]})})}function wn({chatInputRef:e,disabled:t=!1,onInput:n,onPaste:r,onKeyDown:i,onFocus:a,onBlur:o}){let{t:s}=p(`openhands`),c=H(e=>e.conversationMode)===`plan`;return J.useEffect(()=>{t||Wt(e.current)},[]),(0,Q.jsx)(`div`,{className:`box-border content-stretch flex flex-row items-center justify-start min-h-6 p-0 relative shrink-0 flex-1`,"data-name":`Text & caret`,children:(0,Q.jsx)(`div`,{className:`basis-0 flex flex-col font-normal grow justify-center leading-[0] min-h-px min-w-px overflow-ellipsis overflow-hidden relative shrink-0 text-[var(--oh-text-tertiary)] text-[16px] text-left`,children:(0,Q.jsx)(`div`,{ref:e,className:B(`chat-input bg-transparent text-white text-[16px] font-normal leading-[20px] outline-none resize-none custom-scrollbar min-h-[20px] max-h-[400px] [text-overflow:inherit] [text-wrap-mode:inherit] [white-space-collapse:inherit] block whitespace-pre-wrap`,t&&`cursor-not-allowed opacity-50`),contentEditable:!t,"data-placeholder":s(c?d.COMMON$LET_S_WORK_ON_A_PLAN:d.SUGGESTIONS$WHAT_TO_BUILD),"data-testid":`chat-input`,onInput:n,onPaste:r,onKeyDown:i,onFocus:a,onBlur:o})})})}function Tn({chatInputRef:e,isNewConversationPending:t=!1,onInput:n,onPaste:r,onKeyDown:i,onFocus:a,onBlur:o}){return(0,Q.jsx)(`div`,{className:`box-border content-stretch flex flex-row items-end justify-between p-0 relative shrink-0 w-full pb-[18px] gap-2`,children:(0,Q.jsx)(`div`,{className:`basis-0 box-border content-stretch flex flex-row gap-4 grow items-end justify-start min-h-px min-w-px p-0 relative shrink-0`,children:(0,Q.jsx)(wn,{chatInputRef:e,disabled:t,onInput:n,onPaste:r,onKeyDown:i,onFocus:a,onBlur:o})})})}var En=e(n(),1),Dn=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{d:`M9 6C9.55228 6 10 6.44772 10 7V17C10 17.5523 9.55228 18 9 18C8.44772 18 8 17.5523 8 17V7C8 6.44772 8.44772 6 9 6ZM15 6C15.5523 6 16 6.44772 16 7V17C16 17.5523 15.5523 18 15 18C14.4477 18 14 17.5523 14 17V7C14 6.44772 14.4477 6 15 6Z`,fill:`currentColor`})});function On({handleStop:e}){return(0,Q.jsx)(`button`,{type:`button`,onClick:e,"data-testid":`stop-button`,className:`cursor-pointer`,children:(0,Q.jsx)(Dn,{className:`block max-w-none w-4 h-4 text-current`})})}var kn=e=>(0,Q.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Q.jsx)(`path`,{d:`M15 11H13V7C13 6.73478 12.8946 6.48043 12.7071 6.29289C12.5196 6.10536 12.2652 6 12 6C11.7348 6 11.4804 6.10536 11.2929 6.29289C11.1054 6.48043 11 6.73478 11 7V12C11 12.2652 11.1054 12.5196 11.2929 12.7071C11.4804 12.8946 11.7348 13 12 13H15C15.2652 13 15.5196 12.8946 15.7071 12.7071C15.8946 12.5196 16 12.2652 16 12C16 11.7348 15.8946 11.4804 15.7071 11.2929C15.5196 11.1054 15.2652 11 15 11ZM12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z`,fill:`currentColor`})}),An=e=>(0,Q.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Q.jsx)(`path`,{d:`M8 8.37911C8 7.31633 9.15785 6.65415 10.0798 7.18966L16.3139 10.8105C17.2287 11.3419 17.2287 12.6581 16.3139 13.1895L10.0798 16.8103C9.15785 17.3459 8 16.6837 8 15.6209V8.37911Z`,fill:`currentColor`})});function jn({onAgentResumed:e,disabled:t=!1}){return(0,Q.jsx)(`button`,{type:`button`,onClick:e,"data-testid":`play-button`,disabled:t,className:B(`cursor-pointer`,t&&`cursor-not-allowed`),children:(0,Q.jsx)(An,{className:`block max-w-none w-4 h-4 text-current`})})}function Mn(){return(0,Q.jsx)(`div`,{"data-testid":`agent-loading-spinner`,children:(0,Q.jsx)(M,{className:`animate-spin w-4 h-4 text-current`})})}function Nn(){let e=ee();return e?e.connectionState:`CLOSED`}var Pn=nt()((e,t)=>({byTaskId:{},setPendingTaskAttachments:(t,n)=>e(e=>({byTaskId:{...e.byTaskId,[t]:n}})),consumePendingTaskAttachments:n=>{let r=t().byTaskId[n];return r?(e(e=>{let{[n]:t,...r}=e.byTaskId;return{byTaskId:r}}),r):null}}));function Fn(e,t){Pn.getState().setPendingTaskAttachments(e,t)}function In(e){return Pn.getState().consumePendingTaskAttachments(e)}var Ln=e=>new Promise((t,n)=>{let r=new FileReader;r.onloadend=()=>{t(r.result)},r.onerror=n,r.readAsDataURL(e)}),Rn=3*1024*1024;function zn(e){let t=e.filter(e=>e.size>Rn);if(t.length>0){let e=t.map(e=>e.name);return{isValid:!1,errorMessage:`Files exceeding 3MB are not allowed: ${e.join(`, `)}`,oversizedFiles:e}}return{isValid:!0}}function Bn(e,t=[]){let n=t.reduce((e,t)=>e+t.size,0)+e.reduce((e,t)=>e+t.size,0);return n>3145728?{isValid:!1,errorMessage:`Total file size would be ${(n/(1024*1024)).toFixed(1)}MB, exceeding the 3MB limit. Please select fewer or smaller files.`}:{isValid:!0}}function Vn(e,t=[]){let n=zn(e);return n.isValid?Bn(e,t):n}async function Hn(e){let{conversationId:t,content:n,images:r,files:i,imagesMarkedUploadAsFile:a,t:o}=e,{imagesToEmbed:s,imagesAsFiles:c}=Lt(r,a),l=[...i,...c],u=Vn([...s,...l]);if(!u.isValid)throw Error(u.errorMessage??`Invalid attachments`);let d=await Promise.all(s.map(e=>Ln(e))),f=await mt(t),{skipped_files:p,uploaded_files:m}=l.length>0?await ht(t,l):{skipped_files:[],uploaded_files:[]};p.forEach(e=>D(e.reason));let h=`${o(`CHAT_INTERFACE$AUGMENTED_PROMPT_FILES_TITLE`)}: ${m.join(`
2
+
3
+ `)}`,g=m.length>0?`${n}\n\n${h}`:n,_=new Date().toISOString(),v={role:`user`,content:[{type:`text`,text:g}]};return d.length>0&&v.content.push({type:`image`,image_urls:d}),await V.sendMessage(t,v,f),{text:n,content:g,imageUrls:d,fileUrls:m,timestamp:_}}async function Un(e,t){let n=In(e);if(n)try{await g(),await Hn({conversationId:t,content:n.content,images:n.images,files:n.files,imagesMarkedUploadAsFile:n.imagesMarkedUploadAsFile,t:m.getFixedT(null,h)})}catch(e){throw D(e instanceof Error?e.message:null),e}}var Wn=new Map,Gn=null;function Kn(e,t){Wn.set(e,t)}function qn(e){Wn.delete(e)}function Jn(e,t){Gn={fromConversationId:e,toConversationId:t}}function Yn(e){if(Gn?.toConversationId!==e)return null;let t=Gn;return Gn=null,t}function Xn(e,t){return t===e?!0:Wn.get(e)===t}var Zn=()=>{let{conversationId:e}=G(),{navigate:t}=De(),n=!!e&&e.startsWith(`task-`),i=n?e.replace(`task-`,``):null,a=r({queryKey:[`start-task`,i],queryFn:async()=>i?V.getStartTask(i):null,enabled:!!i,refetchInterval:e=>{let t=e.state.data;return!t||t.status===`READY`||t.status===`ERROR`?!1:3e3},retry:!1}),o=(0,J.useRef)(null);return(0,J.useLayoutEffect)(()=>{if(!e)return;let t=Yn(e);t&&(A.getState().reassignPendingMessages(t.fromConversationId,t.toConversationId),qn(t.toConversationId))},[e]),(0,J.useEffect)(()=>{let e=a.data;!i||e?.status!==`READY`||!e.app_conversation_id||o.current===i||(o.current=i,(async()=>{await Un(i,e.app_conversation_id);let n=`task-${i}`;Kn(e.app_conversation_id,n),Jn(n,e.app_conversation_id);let r=it(i);r&&rt(e.app_conversation_id,{draftMessage:r}),t(`/conversations/${e.app_conversation_id}`,{replace:!0})})())},[a.data,t,i]),(0,J.useEffect)(()=>{o.current=null},[i]),{isTask:n,taskId:i,conversationId:n?null:e??null,task:a.data,taskStatus:a.data?.status,taskDetail:a.data?.detail,taskError:a.error,isLoadingTask:a.isLoading,repositoryInfo:{selectedRepository:a.data?.request?.selected_repository,selectedBranch:a.data?.request?.selected_branch,gitProvider:a.data?.request?.git_provider}}},Qn=(e,t)=>{let n=r({queryKey:[`sub-conversation-task`,e],queryFn:async()=>e?V.getStartTask(e):null,enabled:!!e&&!!t,refetchInterval:e=>{let t=e.state.data;return!t||t.status===`READY`||t.status===`ERROR`?!1:3e3},retry:!1});return{task:n.data,taskStatus:n.data?.status,taskDetail:n.data?.detail,taskError:n.error,isLoadingTask:n.isLoading,subConversationId:n.data?.app_conversation_id}},$n=`/assets/notification-Cyeyy5ud.mp3`,er=[P.AWAITING_USER_INPUT,P.FINISHED,P.AWAITING_USER_CONFIRMATION];function tr(e){let{data:t}=pt(),n=(0,J.useRef)(void 0),r=(0,J.useRef)(void 0);(0,J.useEffect)(()=>{typeof window<`u`&&!n.current&&(n.current=new Audio($n),n.current.volume=.5)},[]);let i=t?.enable_sound_notifications??!1;(0,J.useEffect)(()=>{r.current!==e&&(r.current=e,er.includes(e)&&i&&n.current&&(n.current.currentTime=0,n.current.play().catch(()=>{})))},[e,i])}function nr({className:e=``,handleStop:t,handleResumeAgent:n,disabled:r=!1,isPausing:i=!1}){let{t:a}=p(`openhands`),{setShouldShownAgentLoading:o}=H(),{curAgentState:s,executionStatus:c}=Ct();tr(s);let l=Nn(),{data:u}=K(),{taskStatus:f}=Zn(),{subConversationTaskId:m}=H(),{taskStatus:h}=Qn(m,u?.id||null),g=ae(l,c??null,f,h),_=s===P.INIT||s===P.LOADING||l===`CONNECTING`&&f!==`ERROR`||ce(f)||ce(h),v=_||i,y=s===P.ERROR||s===P.RATE_LIMITED||l===`CLOSED`||f===`ERROR`,b=!y&&s===P.RUNNING,x=!y&&(s===P.STOPPED||s===P.PAUSED),S=!v&&(b||x),w=g===d.CHAT_INTERFACE$AGENT_FINISHED_MESSAGE,T=g===d.AGENT_STATUS$WAITING_FOR_TASK,E=w||T,[D,O]=(0,J.useState)(!0),[k,A]=(0,J.useState)(!1);return(0,J.useEffect)(()=>{o(!!_)},[_,o]),(0,J.useEffect)(()=>{if(!E){O(!0),A(!1);return}O(!0),A(!1);let e=window.setTimeout(()=>{A(!0)},1e3),t=window.setTimeout(()=>{O(!1)},1500);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[E]),E&&!D?null:(0,Q.jsxs)(`div`,{className:B(`flex items-center gap-1 min-w-0`,E&&`transition-opacity duration-500`,k&&`opacity-0`,e),children:[(0,Q.jsx)(`span`,{className:`text-[11px] text-[var(--oh-muted)] font-normal leading-5 min-w-0 max-w-full truncate`,title:a(g),children:a(g)}),(0,Q.jsxs)(`div`,{className:B(`box-border content-stretch flex flex-row gap-[3px] items-center justify-center overflow-clip px-0.5 py-1 relative rounded-[100px] shrink-0 size-6 transition-all duration-200 active:scale-95 bg-transparent text-[var(--oh-muted)] hover:bg-white/10 hover:text-white`,S?`cursor-pointer`:`cursor-default`),children:[v&&(0,Q.jsx)(Mn,{}),!v&&b&&(0,Q.jsx)(On,{handleStop:t}),!v&&x&&(0,Q.jsx)(jn,{onAgentResumed:n,disabled:r}),!v&&y&&(0,Q.jsx)(tt,{className:`w-4 h-4 text-current`,"data-testid":`circle-error-icon`}),!v&&!b&&!x&&!y&&(E?(0,Q.jsx)(C,{className:`w-4 h-4 text-current`}):(0,Q.jsx)(kn,{className:`w-4 h-4 text-current`}))]})]})}function rr(e){return(0,Q.jsx)(`svg`,{viewBox:`0 0 257 183`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,...e,children:(0,Q.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M151.663 5.36257C158.763 -1.73743 170.363 -1.83743 177.563 5.36257L250.663 78.4626C257.763 85.5626 257.863 97.1626 250.663 104.363L177.563 177.463C170.363 184.563 158.863 184.563 151.663 177.463C144.563 170.263 144.563 158.763 151.663 151.563L211.863 91.3626L151.663 31.1626C144.563 24.1626 144.563 12.5626 151.663 5.36257ZM104.463 5.36257C97.3626 -1.73743 85.7626 -1.83743 78.5626 5.36257L5.36257 78.4626C-1.73743 85.5626 -1.83743 97.1626 5.36257 104.363L78.4626 177.463C85.6626 184.563 97.1626 184.563 104.363 177.463C111.463 170.263 111.463 158.763 104.363 151.563L44.1626 91.4626L104.363 31.2626C111.563 24.1626 111.563 12.5626 104.463 5.36257Z`,fill:`currentColor`})})}function ir({icon:e,text:t,className:n,iconClassName:r,isActive:i=!1}){return(0,Q.jsxs)(`div`,{className:B(`flex min-w-0 items-center`,je,n),children:[(0,Q.jsx)(e,{className:B(`h-4 w-4`,Fe,r)}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 leading-5`,children:t}),i&&(0,Q.jsx)(kt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]})}function ar({icon:e,title:t,description:n,className:r,iconClassName:i,isActive:a=!1}){return(0,Q.jsxs)(`div`,{className:B(`flex min-w-0 w-full flex-col justify-center gap-1`,r),children:[(0,Q.jsx)(ir,{icon:e,text:t,className:`px-0`,iconClassName:i,isActive:a}),(0,Q.jsx)(q.Text,{className:`text-[var(--oh-muted)] text-[10px] font-normal whitespace-pre-wrap break-words`,children:n})]})}function or({activeMode:e,onClose:t,onCodeClick:n,onPlanClick:r}){let{t:i}=p(`openhands`),a=ft(t);return(0,Q.jsxs)(U,{ref:a,testId:`change-agent-context-menu`,position:`top`,alignment:`left`,className:`min-h-fit mb-2 min-w-[195px] max-w-[195px]`,children:[(0,Q.jsx)(W,{testId:`code-option`,onClick:e=>{e.preventDefault(),e.stopPropagation(),n?.(e),t()},className:B(e===`code`&&`bg-[var(--oh-interactive-hover)]`),children:(0,Q.jsx)(ar,{icon:Ot,title:i(d.COMMON$CODE),description:i(d.COMMON$CODE_AGENT_DESCRIPTION),isActive:e===`code`})}),(0,Q.jsx)(W,{testId:`plan-option`,onClick:e=>{e.preventDefault(),e.stopPropagation(),r?.(e),t()},className:B(e===`plan`&&`bg-[var(--oh-interactive-hover)]`),children:(0,Q.jsx)(ar,{icon:Dt,title:i(d.COMMON$PLAN),description:i(d.COMMON$PLAN_AGENT_DESCRIPTION),isActive:e===`plan`})})]})}function sr(){let[e,t]=(0,J.useState)(!1),{conversationMode:n,setConversationMode:r,subConversationTaskId:i}=H(),{conversationId:a}=G(),o=!a,s=Nn()===`OPEN`,{curAgentState:c}=Ct(),{t:l}=p(`openhands`),u=c===P.RUNNING,{data:m}=K(),h=f(),g=(0,J.useRef)(null),{taskStatus:_,subConversationId:v}=Qn(i,m?.id||null);(0,J.useEffect)(()=>{_===`READY`&&v&&m?.id&&i&&g.current!==i&&(g.current=i,h.invalidateQueries({queryKey:[`user`,`conversation`,m.id]}))},[_,v,m?.id,i,h]);let{handlePlanClick:y,isCreatingConversation:b}=At();(0,J.useEffect)(()=>{(u||!s)&&e&&t(!1)},[u,e,s]);let x=o||u||b||!s;(0,J.useEffect)(()=>{if(x)return;let e=e=>{if(e.shiftKey&&e.key===`Tab`){e.preventDefault(),e.stopPropagation();let t=n===`code`?`plan`:`code`;t===`plan`?y(e):r(t)}};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[x,n,r,y]);let S=n=>{n.preventDefault(),n.stopPropagation(),t(!e)},C=e=>{e.preventDefault(),e.stopPropagation(),r(`code`)},w=n===`code`,T=(0,J.useMemo)(()=>l(w?d.COMMON$CODE:d.COMMON$PLAN),[w,l]),E=(0,J.useMemo)(()=>w?(0,Q.jsx)(rr,{className:`h-[11px] w-[11px] shrink-0`}):(0,Q.jsx)(Dt,{width:18,height:18,color:`currentColor`}),[w]),D=(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:S,disabled:x,className:B(`flex items-center rounded-[100px]`,Se,w?`border border-transparent text-[var(--oh-muted)]`:`border border-[#597FF4] bg-[#4A67BD]`,!x&&w&&B(`cursor-pointer`,`hover:text-white hover:bg-white/10`),!x&&!w&&`cursor-pointer text-white hover:bg-[#597FF4]`,x&&B(`opacity-50 cursor-not-allowed`,w&&`border-transparent`)),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 pl-1.5`,children:[E,(0,Q.jsx)(q.Text,{className:`text-2.75 not-italic font-normal leading-5`,children:T})]}),(0,Q.jsx)(Ie,{isOpen:e})]}),e&&(0,Q.jsx)(or,{activeMode:n,onClose:()=>t(!1),onCodeClick:C,onPlanClick:y})]});return o?(0,Q.jsx)(Ae,{content:l(d.CHANGE_AGENT$SWITCH_AFTER_CONVERSATION),placement:`top`,children:D}):D}function cr(){let{t:e}=p(`openhands`),{backend:t}=ge(),{data:n}=K(),{data:r}=pt(),i=n?.agent_kind===`acp`,a=!n&&r?.agent_settings?.agent_kind===`acp`,o=i||a;return{isActiveAcpConversation:i,isHomeAcp:a,isAcpContext:o,destinationPath:o?`/settings/agent`:`/settings`,destinationLabel:e(o?d.SETTINGS$NAV_AGENT:t.kind===`cloud`?d.SETTINGS$LLM_SETTINGS:d.SETTINGS$LLM_PROFILES)}}function lr(){let{data:e}=K(),{data:t}=pt(),{backend:n}=ge(),{conversationId:r}=G(),{isActiveAcpConversation:i,isHomeAcp:a,isAcpContext:o,destinationPath:s,destinationLabel:c}=cr(),l=i?e?.acp_server:a&&typeof t?.agent_settings?.acp_server==`string`?t.agent_settings.acp_server:null,u=o?ct(l):void 0,d=null;d=i?e?.llm_model??null:a?ut({configured:typeof t?.agent_settings?.acp_model==`string`?t.agent_settings.acp_model:null,providerDefault:u?.default_model}):e?.llm_model??t?.llm_model??null;let f=d&&o?lt(l,d)??d:d,p=u?.available_models??[],m=o&&n.kind!==`cloud`&&p.length>0;return{isAcpContext:o,displayModel:f,currentModelId:d,availableAcpModels:p,showAcpPicker:m,switchConversationId:i?r??null:null,destinationPath:s,destinationLabel:c}}var ur=()=>{let e=f();return l({mutationFn:async({conversationId:e,model:t})=>{if(e){await V.switchAcpModel(e,t);return}await dt.saveSettings({agent_settings_diff:{acp_model:t}})},onSuccess:(t,{conversationId:n})=>{n?a(e,n):(dt.invalidateCache(),e.invalidateQueries({queryKey:_e.personal()}))}})},dr=10,fr=22;function pr(e,t=dr){return e.length<=t?e:`${e.slice(0,t)}…`}function mr({model:e,onClose:t,dividerInset:n,settingsLinkClassName:r,settingsIconClassName:i}){let{t:a}=p(`openhands`),o=ur(),s=e.showAcpPicker||!!e.displayModel,c=n=>{n!==e.currentModelId&&o.mutate({conversationId:e.switchConversationId,model:n}),t()};return(0,Q.jsxs)(Q.Fragment,{children:[e.showAcpPicker?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`li`,{role:`presentation`,className:`px-2 pt-1 pb-0.5`,children:(0,Q.jsx)(q.Text,{className:`text-[11px] font-medium text-[var(--oh-text-dim)] uppercase tracking-wide leading-4`,children:a(d.MODEL$AVAILABLE_MODELS)})}),e.availableAcpModels.map(t=>{let n=t.id===e.currentModelId;return(0,Q.jsxs)(W,{testId:`chat-input-acp-model-option-${t.id}`,onClick:e=>{e.preventDefault(),e.stopPropagation(),c(t.id)},className:B(`flex items-center gap-2`,n&&`bg-[var(--oh-interactive-hover)]`),children:[(0,Q.jsx)(`span`,{className:`flex-1 truncate text-sm leading-5`,title:t.label,children:t.label}),n&&(0,Q.jsx)(kt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]},t.id)})]}):e.displayModel?(0,Q.jsx)(`li`,{className:`text-sm`,children:(0,Q.jsx)(`div`,{className:`p-2 leading-5 text-[var(--oh-foreground)] break-all`,children:e.displayModel})}):null,s&&(0,Q.jsx)(Be,{inset:n}),(0,Q.jsx)(`li`,{className:`text-sm`,children:(0,Q.jsxs)(Oe,{to:e.destinationPath,onClick:t,className:B(`flex h-[30px] items-center gap-2 rounded p-2 leading-5 text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)] transition-colors`,r),children:[(0,Q.jsx)(jt,{width:16,height:16,className:B(`shrink-0`,i),"aria-hidden":!0}),(0,Q.jsx)(`span`,{children:e.destinationLabel})]})})]})}function hr(){let e=lr(),[t,n]=J.useState(!1),r=J.useRef(null),i=ft(()=>n(!1),r);if(!e.displayModel)return null;let a=pr(e.displayModel,e.isAcpContext?fr:dr);return(0,Q.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,Q.jsxs)(`button`,{ref:r,type:`button`,className:Te,title:e.displayModel,"data-testid":`chat-input-llm-model`,"aria-expanded":t,"aria-haspopup":`dialog`,onClick:e=>{e.preventDefault(),e.stopPropagation(),n(e=>!e)},children:[(0,Q.jsx)(`span`,{children:a}),(0,Q.jsx)(Ie,{isOpen:t})]}),t&&(0,Q.jsx)(U,{ref:i,testId:`chat-input-llm-model-popover`,position:`top`,alignment:`left`,spacing:`none`,className:`z-[60] mb-2 min-w-[200px] max-w-[320px] max-h-[60vh] overflow-y-auto`,children:(0,Q.jsx)(mr,{model:e,onClose:()=>n(!1)})})]})}var gr=()=>{let e=f();return l({mutationFn:({conversationId:e,profileName:t})=>V.switchProfile(e,t),onSuccess:(t,{conversationId:n})=>{e.invalidateQueries({queryKey:ve.all}),n?a(e,n):(dt.invalidateCache(),e.invalidateQueries({queryKey:_e.personal()}))},meta:{disableToast:!0}})};function _r(){let{mutate:e,isPending:t}=gr(),{t:n}=p();return{switchAndLog:(0,J.useCallback)((t,r)=>{let i=j();e({conversationId:t,profileName:r},{onSuccess:()=>{t&&te(t,r,i)},onError:e=>{let t=n(d.MODEL$SWITCH_FAILED,{name:r});D(e instanceof Error&&e.message?e.message:t)}})},[e,n]),isPending:t}}var vr=e=>(0,Q.jsxs)(`svg`,{width:29,height:28,viewBox:`0 0 29 28`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,Q.jsx)(`path`,{d:`M14.5 18.375C12.085 18.375 10.125 16.415 10.125 14C10.125 11.585 12.085 9.625 14.5 9.625C16.915 9.625 18.875 11.585 18.875 14C18.875 16.415 16.915 18.375 14.5 18.375ZM14.5 11.375C13.0533 11.375 11.875 12.5533 11.875 14C11.875 15.4467 13.0533 16.625 14.5 16.625C15.9467 16.625 17.125 15.4467 17.125 14C17.125 12.5533 15.9467 11.375 14.5 11.375Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M18.245 25.8883C18 25.8883 17.755 25.8533 17.51 25.795C16.7867 25.5967 16.18 25.1417 15.795 24.5L15.655 24.2667C14.9667 23.0767 14.0217 23.0767 13.3333 24.2667L13.205 24.4883C12.82 25.1417 12.2133 25.6083 11.49 25.795C10.755 25.9933 9.99668 25.8883 9.35501 25.5033L7.34834 24.3483C6.63668 23.94 6.12334 23.275 5.90168 22.47C5.69168 21.665 5.79668 20.8367 6.20501 20.125C6.54334 19.53 6.63668 18.9933 6.43834 18.655C6.24001 18.3167 5.73834 18.1183 5.05001 18.1183C3.34668 18.1183 1.95834 16.73 1.95834 15.0267V12.9733C1.95834 11.27 3.34668 9.88168 5.05001 9.88168C5.73834 9.88168 6.24001 9.68334 6.43834 9.34501C6.63668 9.00668 6.55501 8.47001 6.20501 7.87501C5.79668 7.16334 5.69168 6.32334 5.90168 5.53001C6.11168 4.72501 6.62501 4.06001 7.34834 3.65168L9.36668 2.49668C10.685 1.71501 12.4233 2.17001 13.2167 3.51168L13.3567 3.74501C14.045 4.93501 14.99 4.93501 15.6783 3.74501L15.8067 3.52334C16.6 2.17001 18.3383 1.71501 19.6683 2.50834L21.675 3.66334C22.3867 4.07168 22.9 4.73668 23.1217 5.54168C23.3317 6.34668 23.2267 7.17501 22.8183 7.88668C22.48 8.48168 22.3867 9.01834 22.585 9.35668C22.7833 9.69501 23.285 9.89334 23.9733 9.89334C25.6767 9.89334 27.065 11.2817 27.065 12.985V15.0383C27.065 16.7417 25.6767 18.13 23.9733 18.13C23.285 18.13 22.7833 18.3283 22.585 18.6667C22.3867 19.005 22.4683 19.5417 22.8183 20.1367C23.2267 20.8483 23.3433 21.6883 23.1217 22.4817C22.9117 23.2867 22.3983 23.9517 21.675 24.36L19.6567 25.515C19.2133 25.76 18.735 25.8883 18.245 25.8883ZM14.5 21.5717C15.5383 21.5717 16.5067 22.225 17.1717 23.38L17.3 23.6017C17.44 23.8467 17.6733 24.0217 17.9533 24.0917C18.2333 24.1617 18.5133 24.1267 18.7467 23.9867L20.765 22.82C21.0683 22.645 21.3017 22.3533 21.395 22.0033C21.4883 21.6533 21.4417 21.2917 21.2667 20.9883C20.6017 19.845 20.52 18.6667 21.0333 17.7683C21.5467 16.87 22.6083 16.3567 23.9383 16.3567C24.685 16.3567 25.28 15.7617 25.28 15.015V12.9617C25.28 12.2267 24.685 11.62 23.9383 11.62C22.6083 11.62 21.5467 11.1067 21.0333 10.2083C20.52 9.31001 20.6017 8.13168 21.2667 6.98834C21.4417 6.68501 21.4883 6.32334 21.395 5.97334C21.3017 5.62334 21.08 5.34334 20.7767 5.15668L18.7583 4.00168C18.2567 3.69834 17.5917 3.87334 17.2883 4.38668L17.16 4.60834C16.495 5.76334 15.5267 6.41668 14.4883 6.41668C13.45 6.41668 12.4817 5.76334 11.8167 4.60834L11.6883 4.37501C11.3967 3.88501 10.7433 3.71001 10.2417 4.00168L8.22334 5.16834C7.92001 5.34334 7.68668 5.63501 7.59334 5.98501C7.50001 6.33501 7.54668 6.69668 7.72168 7.00001C8.38668 8.14334 8.46834 9.32168 7.95501 10.22C7.44168 11.1183 6.38001 11.6317 5.05001 11.6317C4.30334 11.6317 3.70834 12.2267 3.70834 12.9733V15.0267C3.70834 15.7617 4.30334 16.3683 5.05001 16.3683C6.38001 16.3683 7.44168 16.8817 7.95501 17.78C8.46834 18.6783 8.38668 19.8567 7.72168 21C7.54668 21.3033 7.50001 21.665 7.59334 22.015C7.68668 22.365 7.90834 22.645 8.21168 22.8317L10.23 23.9867C10.475 24.1383 10.7667 24.1733 11.035 24.1033C11.315 24.0333 11.5483 23.8467 11.7 23.6017L11.8283 23.38C12.4933 22.2367 13.4617 21.5717 14.5 21.5717Z`,fill:`currentColor`})]}),yr=B(B(`w-full flex flex-col gap-0.5 p-2 rounded`,`text-start hover:bg-[var(--oh-interactive-hover)] cursor-pointer text-nowrap`),`h-auto items-stretch`),br=B(`group w-full flex items-center p-2 rounded`,je,`text-start hover:bg-[var(--oh-interactive-hover)] cursor-pointer text-nowrap`);function xr({profiles:e,activeProfileName:t,onSelect:n,onClose:r}){let{t:i}=p(`openhands`),a=ft(r);J.useEffect(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]);let o=(e,t)=>{e.preventDefault(),e.stopPropagation(),n(t),r()};return(0,Q.jsxs)(U,{ref:a,testId:`switch-profile-context-menu`,position:`top`,alignment:`left`,className:`z-[60] left-0 mb-2 bottom-full min-w-[280px] pt-0`,children:[(0,Q.jsx)(`div`,{className:`px-2 pb-0.5`,children:(0,Q.jsx)(q.Text,{className:`text-[11px] font-medium text-[var(--oh-text-dim)] uppercase tracking-wide leading-4`,children:i(d.SETTINGS$AVAILABLE_PROFILES)})}),(0,Q.jsx)(`div`,{"data-testid":`switch-profile-options-list`,className:Ne,children:e.map(e=>{let n=e.name===t;return(0,Q.jsxs)(W,{testId:`switch-profile-option-${e.name}`,onClick:t=>o(t,e.name),className:B(yr,n&&`bg-[var(--oh-interactive-hover)]`),children:[(0,Q.jsxs)(`span`,{className:B(`flex items-center min-w-0`,je),title:e.model??void 0,children:[(0,Q.jsx)(`span`,{className:Fe,"aria-hidden":!0,children:(0,Q.jsx)(Mt,{width:16,height:16})}),(0,Q.jsx)(`span`,{className:`flex-1 truncate text-sm leading-5`,children:e.name}),n&&(0,Q.jsx)(kt,{width:14,height:14,className:`shrink-0`,"aria-hidden":!0})]}),e.model&&(0,Q.jsx)(`span`,{className:`block truncate text-xs leading-4 text-[var(--oh-muted)] pl-6`,children:e.model})]},e.name)})}),(0,Q.jsx)(Be,{}),(0,Q.jsxs)(Oe,{to:`/settings`,onClick:r,"data-testid":`switch-profile-open-settings`,className:br,children:[(0,Q.jsx)(`span`,{className:Fe,"aria-hidden":!0,children:(0,Q.jsx)(vr,{width:16,height:16})}),(0,Q.jsx)(`span`,{className:`text-sm leading-5`,children:i(d.MODEL$OPEN_SETTINGS)})]})]})}function Sr(){let{t:e}=p(`openhands`),[t,n]=J.useState(!1),{conversationId:r}=G(),{data:i}=xt(),{data:a}=K(),{data:o}=pt(),{switchAndLog:s,isPending:c}=_r(),l=N(e=>r?e.activeProfileByConversation[r]:void 0),u=i?.profiles??[],f=a?.llm_model??null,m=a?.agent_kind===`acp`||!a&&o?.agent_settings?.agent_kind===`acp`,h=l??(f?u.find(e=>e.model===f)?.name??null:i?.active_profile??null),g=u.find(e=>e.name===h)?.model??f??null;return u.length===0||m?null:(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),n(e=>!e)},disabled:c,"data-testid":`switch-profile-button`,title:g??void 0,"aria-haspopup":`menu`,"aria-expanded":t,className:B(Te,`max-w-[200px]`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:[(0,Q.jsx)(`span`,{className:`truncate`,children:h??e(d.LLM$SELECT_MODEL_PLACEHOLDER)}),(0,Q.jsx)(Ie,{isOpen:t})]}),t&&(0,Q.jsx)(xr,{profiles:u,activeProfileName:h,onSelect:e=>{e!==h&&s(r,e)},onClose:()=>n(!1)})]})}var Cr=()=>{let e=f(),{t}=p();return l({mutationFn:e=>V.updateConversationPublicFlag(e.conversationId,e.isPublic),onMutate:async t=>{let n=[`user`,`conversation`,t.conversationId];await e.cancelQueries({queryKey:n});let r=e.getQueriesData({queryKey:n});return e.setQueriesData({queryKey:n},e=>e&&typeof e==`object`?{...e,public:t.isPublic}:e),{previousEntries:r}},onError:(n,r,i)=>{i?.previousEntries?.forEach(([t,n])=>{e.setQueryData(t,n)}),D(t(d.CONVERSATION$FAILED_TO_UPDATE_PUBLIC_SHARING))},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]}),e.invalidateQueries({queryKey:[`user`,`conversations`]})}})},wr=`<secret-hidden>`;function Tr(e){let t=/(<CUSTOM_SECRETS>)([\s\S]*?)(<\/CUSTOM_SECRETS>|$)/gi,n=/^(\s*[^=:\n]+?\s*[:=]\s*)(.+?)\s*$/gm;return e.replace(t,(e,t,r,i)=>`${t}${r.replace(n,(e,t,n)=>n===wr?e:`${t}${wr}`)}${i}`)}function Er(e){let t=e.find(wt);if(!t)return null;let n=t.dynamic_context?.text;return{content:n?`${t.system_prompt.text.trimEnd()}\n\n${Tr(n)}`:t.system_prompt.text,tools:t.tools??null,openhands_version:null,agent_class:null}}function Dr({conversationId:e,executionStatus:t,showOptions:n=!1,onContextMenuToggle:r}){let{t:i}=p(),{conversationId:a,navigate:o}=De(),{backend:s}=ge(),c=Tt(e=>e.events),{mutate:l}=We(),{mutate:u}=Ge(),{mutate:f}=Cr(),{data:m}=K(),h=k(),[g,_]=J.useState(!1),[v,y]=J.useState(!1),[b,x]=J.useState(!1),[S,C]=J.useState(!1),[w,T]=J.useState(!1),[E,D]=J.useState(!1),{mutateAsync:A}=qe(),j=Er(c),M=e=>{e.preventDefault(),e.stopPropagation(),T(!0),r?.(!1)},ee=e=>{e.preventDefault(),e.stopPropagation(),D(!0),r?.(!1)},te=()=>{e&&l({conversationId:e},{onSuccess:()=>{e===a&&o(`/conversations`)}}),T(!1)},N=()=>{e&&u({conversationId:e}),D(!1)},ne=e=>{e.preventDefault(),e.stopPropagation(),r?.(!1)},re=async t=>{t.preventDefault(),t.stopPropagation(),e&&await A(e),r?.(!1)},ie=e=>{e.stopPropagation(),_(!0),r?.(!1)},P=e=>{e.stopPropagation(),y(!0),r?.(!1)},ae=e=>{e.stopPropagation(),x(!0),r?.(!1)},F=e=>{e.stopPropagation(),C(!0),r?.(!1)},I=t=>{e&&m&&f({conversationId:e,isPublic:t??!m.public})},L=J.useMemo(()=>e?`${s.kind===`cloud`?s.host.replace(/\/+$/,``):window.location.origin}/shared/conversations/${e}`:``,[e,s.kind,s.host]);return{handleDelete:M,handleStop:ee,handleEdit:ne,handleDownloadConversation:re,handleDisplayCost:ie,handleShowAgentTools:P,handleShowSkills:ae,handleShowHooks:F,handleTogglePublic:I,handleCopyShareLink:e=>{if(e.preventDefault(),e.stopPropagation(),!L){r?.(!1);return}navigator.clipboard.writeText(L),O(i(d.CONVERSATION$LINK_COPIED))},shareUrl:L,handleConfirmDelete:te,handleConfirmStop:N,metricsModalVisible:g,setMetricsModalVisible:_,systemModalVisible:v,setSystemModalVisible:y,skillsModalVisible:b,setSkillsModalVisible:x,hooksModalVisible:S,setHooksModalVisible:C,confirmDeleteModalVisible:w,setConfirmDeleteModalVisible:T,confirmStopModalVisible:E,setConfirmStopModalVisible:D,metrics:h,systemMessage:j,shouldShowStop:me(t),shouldShowDownloadConversation:!!(e&&n),shouldShowDisplayCost:n,shouldShowAgentTools:!!(n&&j),shouldShowSkills:!!(n&&e),shouldShowHooks:!!(n&&e&&me(t))}}var Or=e=>(0,Q.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Q.jsx)(`path`,{d:`M17 6.05994C16.3065 6.0604 15.6345 6.30114 15.0985 6.74118C14.5625 7.18123 14.1954 7.7934 14.0599 8.47355C13.9243 9.1537 14.0286 9.85981 14.355 10.4717C14.6813 11.0837 15.2097 11.5636 15.85 11.8299C15.6978 12.1949 15.4408 12.5065 15.1115 12.7254C14.7822 12.9444 14.3954 13.0608 14 13.0599H10C9.29505 13.0629 8.604 13.2564 8.00001 13.6199V7.87994C8.66722 7.64405 9.22956 7.17987 9.58764 6.56946C9.94571 5.95905 10.0765 5.2417 9.9568 4.54421C9.83713 3.84671 9.47473 3.21398 8.93367 2.75784C8.3926 2.30169 7.70769 2.05151 7.00001 2.05151C6.29232 2.05151 5.60741 2.30169 5.06635 2.75784C4.52528 3.21398 4.16288 3.84671 4.04321 4.54421C3.92354 5.2417 4.0543 5.95905 4.41237 6.56946C4.77045 7.17987 5.33279 7.64405 6.00001 7.87994V16.2399C5.34099 16.4769 4.78566 16.937 4.43026 17.5405C4.07485 18.1439 3.94176 18.8527 4.05406 19.544C4.16635 20.2352 4.51695 20.8654 5.0451 21.3254C5.57325 21.7853 6.24567 22.0459 6.94581 22.0621C7.64596 22.0783 8.32971 21.8491 8.87857 21.4141C9.42744 20.9791 9.80683 20.3658 9.95099 19.6805C10.0952 18.9951 9.995 18.281 9.6679 17.6617C9.34079 17.0425 8.80735 16.5572 8.16001 16.2899C8.31158 15.9266 8.56704 15.616 8.89436 15.3972C9.22168 15.1784 9.60629 15.0611 10 15.0599H14C14.9148 15.0598 15.802 14.746 16.5135 14.171C17.225 13.5959 17.7179 12.7944 17.91 11.8999C18.5786 11.6728 19.1456 11.217 19.5113 10.613C19.8769 10.0089 20.0178 9.29524 19.9091 8.59754C19.8004 7.89984 19.449 7.26285 18.9169 6.79869C18.3848 6.33452 17.706 6.07292 17 6.05994ZM7.00001 4.05994C7.19779 4.05994 7.39113 4.11859 7.55558 4.22847C7.72003 4.33835 7.8482 4.49453 7.92389 4.67726C7.99957 4.85998 8.01938 5.06105 7.98079 5.25503C7.94221 5.44901 7.84697 5.6272 7.70711 5.76705C7.56726 5.9069 7.38908 6.00214 7.1951 6.04073C7.00112 6.07931 6.80005 6.05951 6.61732 5.98382C6.4346 5.90813 6.27842 5.77996 6.16854 5.61551C6.05866 5.45106 6.00001 5.25772 6.00001 5.05994C6.00001 4.79472 6.10536 4.54037 6.2929 4.35283C6.48044 4.1653 6.73479 4.05994 7.00001 4.05994ZM7.00001 20.0599C6.80222 20.0599 6.60889 20.0013 6.44444 19.8914C6.27999 19.7815 6.15181 19.6254 6.07613 19.4426C6.00044 19.2599 5.98064 19.0588 6.01922 18.8649C6.05781 18.6709 6.15305 18.4927 6.2929 18.3528C6.43275 18.213 6.61093 18.1177 6.80492 18.0792C6.9989 18.0406 7.19996 18.0604 7.38269 18.1361C7.56542 18.2117 7.72159 18.3399 7.83148 18.5044C7.94136 18.6688 8.00001 18.8622 8.00001 19.0599C8.00001 19.3252 7.89465 19.5795 7.70711 19.767C7.51958 19.9546 7.26522 20.0599 7.00001 20.0599ZM17 10.0599C16.8022 10.0599 16.6089 10.0013 16.4444 9.89141C16.28 9.78153 16.1518 9.62535 16.0761 9.44262C16.0004 9.2599 15.9806 9.05883 16.0192 8.86485C16.0578 8.67087 16.153 8.49269 16.2929 8.35283C16.4328 8.21298 16.6109 8.11774 16.8049 8.07916C16.9989 8.04057 17.2 8.06037 17.3827 8.13606C17.5654 8.21175 17.7216 8.33992 17.8315 8.50437C17.9414 8.66882 18 8.86216 18 9.05994C18 9.32516 17.8947 9.57951 17.7071 9.76705C17.5196 9.95458 17.2652 10.0599 17 10.0599Z`,fill:`currentColor`})}),kr=e=>(0,Q.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[(0,Q.jsx)(`path`,{d:`m17.586 11.414-5.93 5.93a1 1 0 0 1-8-8l3.137-3.137a.707.707 0 0 1 1.207.5V10`}),(0,Q.jsx)(`path`,{d:`M20.414 8.586 22 7`}),(0,Q.jsx)(`circle`,{cx:19,cy:10,r:2})]}),Ar=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{d:`M18.2099 13.1289L9.98776 20.3232C9.01788 21.1719 7.5 20.4831 7.5 19.1943L7.5 4.80565C7.5 3.51691 9.01788 2.82815 9.98775 3.67678L18.2099 10.8711C18.8929 11.4688 18.8929 12.5312 18.2099 13.1289Z`,fill:`currentColor`})});function $({icon:e,text:t,rightIcon:n,className:r}){return(0,Q.jsxs)(`div`,{className:B(`flex min-w-0 w-full items-center justify-between`,je,r),children:[(0,Q.jsxs)(`div`,{className:B(`flex min-w-0 items-center`,je),children:[(0,Q.jsx)(`span`,{className:Fe,"aria-hidden":!0,children:e}),(0,Q.jsx)(`span`,{className:`text-sm font-normal leading-5`,children:t})]}),n?(0,Q.jsx)(`span`,{className:Fe,"aria-hidden":!0,children:n}):null]})}var jr=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M20.781 10.5L13.281 3H12.2205L4.72049 10.5L5.78099 11.5605L12 5.3415V21H13.5V5.34L19.719 11.5605L20.781 10.5Z`,fill:`currentColor`})}),Mr=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M4.72049 13.5L12.2205 21H13.281L20.781 13.5L19.7205 12.4395L13.5 18.6585V3H12V18.66L5.78099 12.438L4.72049 13.5Z`,fill:`currentcolor`})}),Nr=e=>(0,Q.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 12 14`,fill:`none`,...e,children:[(0,Q.jsx)(`path`,{d:`M9.79249 10.1936C10.2876 10.1936 10.6902 10.5962 10.6902 11.0913C10.6902 11.5864 10.2876 11.989 9.79249 11.989C9.29739 11.989 8.89478 11.5864 8.89478 11.0913C8.89478 10.5962 9.29739 10.1936 9.79249 10.1936ZM9.79249 9.10547C8.69891 9.10547 7.80664 9.99774 7.80664 11.0913C7.80664 12.1849 8.69891 13.0772 9.79249 13.0772C10.8861 13.0772 11.7783 12.1849 11.7783 11.0913C11.7783 9.99774 10.8861 9.10547 9.79249 9.10547Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M2.23585 10.1936C2.73095 10.1936 3.13356 10.5962 3.13356 11.0913C3.13356 11.5864 2.73095 11.989 2.23585 11.989C1.74075 11.989 1.33814 11.5864 1.33814 11.0913C1.33814 10.5962 1.74075 10.1936 2.23585 10.1936ZM2.23585 9.10547C1.14227 9.10547 0.25 9.99774 0.25 11.0913C0.25 12.1849 1.14227 13.0772 2.23585 13.0772C3.32943 13.0772 4.2217 12.1849 4.2217 11.0913C4.2217 9.99774 3.32943 9.10547 2.23585 9.10547Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M2.23585 2.16846C2.73095 2.16846 3.13356 2.57107 3.13356 3.06617C3.13356 3.56128 2.73095 3.96389 2.23585 3.96389C1.74075 3.96389 1.33814 3.56128 1.33814 3.06617C1.33814 2.57107 1.74075 2.16846 2.23585 2.16846ZM2.23585 1.08032C1.14227 1.08032 0.25 1.97259 0.25 3.06617C0.25 4.15975 1.14227 5.05202 2.23585 5.05202C3.32943 5.05202 4.2217 4.15975 4.2217 3.06617C4.2217 1.97259 3.32943 1.08032 2.23585 1.08032Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M2.23633 9.17627V4.55713`,stroke:`currentColor`,strokeMiterlimit:10}),(0,Q.jsx)(`path`,{d:`M9.79304 9.17605V4.33928C9.79304 3.63743 9.22176 3.06616 8.51992 3.06616H7.38281`,stroke:`currentColor`,strokeMiterlimit:10}),(0,Q.jsx)(`path`,{d:`M7.38191 5.21531L5.23828 3.06624L7.38191 0.922607V5.21531Z`,fill:`currentColor`})]}),Pr=`!w-auto whitespace-nowrap`;function Fr({onClose:e}){let{t}=p(`openhands`),{setMessageToSend:n}=H(),{data:r}=K(),i=r?.git_provider;return(0,Q.jsxs)(U,{testId:`git-tools-submenu`,className:`w-max`,children:[(0,Q.jsx)(W,{testId:`git-pull-button`,onClick:()=>{n(I()),e()},className:Pr,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Mr,{width:16,height:16}),text:t(d.COMMON$GIT_PULL)})}),(0,Q.jsx)(W,{testId:`git-push-button`,onClick:()=>{n(se(i)),e()},className:Pr,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(jr,{width:16,height:16}),text:t(d.COMMON$GIT_PUSH)})}),(0,Q.jsx)(W,{testId:`create-pr-button`,onClick:()=>{n(ue(i)),e()},className:Pr,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Nr,{width:16,height:16}),text:t(d.COMMON$CREATE_PR)})}),(0,Q.jsx)(W,{testId:`create-new-branch-button`,onClick:()=>{n(F()),e()},className:Pr,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Or,{width:16,height:16}),text:t(d.COMMON$CREATE_NEW_BRANCH)})})]})}var Ir=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:25,viewBox:`0 0 24 25`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{d:`M15.29 10.79L12.51 13.57C12.3436 13.5257 12.1723 13.5022 12 13.5C11.4696 13.5 10.9609 13.7107 10.5858 14.0858C10.2107 14.4609 10 14.9696 10 15.5C10.0023 15.6722 10.0258 15.8435 10.07 16.01L9.29003 16.79C9.1963 16.883 9.12191 16.9936 9.07114 17.1154C9.02037 17.2373 8.99423 17.368 8.99423 17.5C8.99423 17.632 9.02037 17.7627 9.07114 17.8846C9.12191 18.0064 9.1963 18.117 9.29003 18.21C9.38299 18.3037 9.49359 18.3781 9.61545 18.4289C9.73731 18.4797 9.86802 18.5058 10 18.5058C10.132 18.5058 10.2627 18.4797 10.3846 18.4289C10.5065 18.3781 10.6171 18.3037 10.71 18.21L11.49 17.43C11.6565 17.4743 11.8278 17.4978 12 17.5C12.5305 17.5 13.0392 17.2893 13.4142 16.9142C13.7893 16.5391 14 16.0304 14 15.5C13.9978 15.3278 13.9743 15.1565 13.93 14.99L16.71 12.21C16.8983 12.0217 17.0041 11.7663 17.0041 11.5C17.0041 11.2337 16.8983 10.9783 16.71 10.79C16.5217 10.6017 16.2663 10.4959 16 10.4959C15.7337 10.4959 15.4783 10.6017 15.29 10.79ZM12 4.5C10.6868 4.5 9.38645 4.75866 8.1732 5.2612C6.95994 5.76375 5.85755 6.50035 4.92896 7.42893C3.0536 9.3043 2.00003 11.8478 2.00003 14.5C1.99511 16.4806 2.58375 18.4172 3.69003 20.06C3.83855 20.2801 4.06844 20.4322 4.32911 20.4829C4.58979 20.5335 4.8599 20.4785 5.08003 20.33C5.30016 20.1815 5.45227 19.9516 5.50291 19.6909C5.55354 19.4302 5.49855 19.1601 5.35003 18.94C4.54455 17.7355 4.08131 16.3349 4.00978 14.8877C3.93826 13.4405 4.26113 12.001 4.94392 10.723C5.62671 9.44501 6.64378 8.37643 7.88653 7.63139C9.12928 6.88634 10.5511 6.49281 12 6.49281C13.449 6.49281 14.8708 6.88634 16.1135 7.63139C17.3563 8.37643 18.3734 9.44501 19.0561 10.723C19.7389 12.001 20.0618 13.4405 19.9903 14.8877C19.9188 16.3349 19.4555 17.7355 18.65 18.94C18.5763 19.0489 18.5248 19.1714 18.4985 19.3002C18.4722 19.4291 18.4716 19.5619 18.4966 19.691C18.5217 19.8201 18.572 19.943 18.6447 20.0527C18.7173 20.1623 18.8109 20.2566 18.92 20.33C19.0856 20.4412 19.2806 20.5004 19.48 20.5C19.6438 20.5002 19.8052 20.4603 19.9499 20.3835C20.0946 20.3068 20.2183 20.1957 20.31 20.06C21.4163 18.4172 22.005 16.4806 22 14.5C22 11.8478 20.9465 9.3043 19.0711 7.42893C17.1957 5.55357 14.6522 4.5 12 4.5Z`,fill:`currentColor`})}),Lr=e=>(0,Q.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 20 21`,fill:`none`,...e,children:[(0,Q.jsx)(`path`,{d:`M15.9532 15.8037C16.7679 15.8037 17.4304 16.4662 17.4304 17.2809C17.4304 18.0955 16.7679 18.758 15.9532 18.758C15.1385 18.758 14.4761 18.0955 14.4761 17.2809C14.4761 16.4662 15.1385 15.8037 15.9532 15.8037ZM15.9532 14.0132C14.1538 14.0132 12.6855 15.4814 12.6855 17.2809C12.6855 19.0803 14.1538 20.5485 15.9532 20.5485C17.7527 20.5485 19.2209 19.0803 19.2209 17.2809C19.2209 15.4814 17.7527 14.0132 15.9532 14.0132Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M3.51768 15.8037C4.33236 15.8037 4.99485 16.4662 4.99485 17.2809C4.99485 18.0955 4.33236 18.758 3.51768 18.758C2.703 18.758 2.04051 18.0955 2.04051 17.2809C2.04051 16.4662 2.703 15.8037 3.51768 15.8037ZM3.51768 14.0132C1.71822 14.0132 0.25 15.4814 0.25 17.2809C0.25 19.0803 1.71822 20.5485 3.51768 20.5485C5.31714 20.5485 6.78536 19.0803 6.78536 17.2809C6.78536 15.4814 5.31714 14.0132 3.51768 14.0132Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M3.51768 2.59862C4.33236 2.59862 4.99485 3.2611 4.99485 4.07579C4.99485 4.89047 4.33236 5.55296 3.51768 5.55296C2.703 5.55296 2.04051 4.89047 2.04051 4.07579C2.04051 3.2611 2.703 2.59862 3.51768 2.59862ZM3.51768 0.808105C1.71822 0.808105 0.25 2.27632 0.25 4.07579C0.25 5.87525 1.71822 7.34347 3.51768 7.34347C5.31714 7.34347 6.78536 5.87525 6.78536 4.07579C6.78536 2.27632 5.31714 0.808105 3.51768 0.808105Z`,fill:`currentColor`}),(0,Q.jsx)(`path`,{d:`M3.51758 14.1295V6.52881`,stroke:`currentColor`,strokeWidth:2,strokeMiterlimit:10}),(0,Q.jsx)(`path`,{d:`M15.9523 14.1294V6.17058C15.9523 5.0157 15.0123 4.07568 13.8574 4.07568H11.9863`,stroke:`currentColor`,strokeWidth:2,strokeMiterlimit:10}),(0,Q.jsx)(`path`,{d:`M11.9863 7.6119L8.45898 4.07565L11.9863 0.54834V7.6119Z`,fill:`currentColor`})]}),Rr=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,Q.jsx)(`path`,{d:`M4 4C4 2.89543 4.89543 2 6 2H14C14.2652 2 14.5196 2.10536 14.7071 2.29289L19.7071 7.29289C19.8946 7.48043 20 7.73478 20 8V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20V4ZM17.5858 8L14 4.41421V8H17.5858ZM12 4L6 4V20H18V10H13C12.4477 10 12 9.55228 12 9V4ZM8 13C8 12.4477 8.44772 12 9 12H15C15.5523 12 16 12.4477 16 13C16 13.5523 15.5523 14 15 14H9C8.44772 14 8 13.5523 8 13ZM8 17C8 16.4477 8.44772 16 9 16H15C15.5523 16 16 16.4477 16 17C16 17.5523 15.5523 18 15 18H9C8.44772 18 8 17.5523 8 17Z`,fill:`currentColor`})}),zr=e=>(0,Q.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,Q.jsx)(`path`,{d:`M2.71996 7.64998C2.91552 7.7074 3.10351 7.78797 3.27996 7.88998C3.89978 8.25991 4.60814 8.45523 5.32996 8.45523C6.05178 8.45523 6.76015 8.25991 7.37996 7.88998C7.77042 7.66914 8.21137 7.55307 8.65996 7.55307C9.10855 7.55307 9.5495 7.66914 9.93996 7.88998C10.5673 8.24867 11.2773 8.43735 12 8.43735C12.7226 8.43735 13.4327 8.24867 14.06 7.88998C14.4504 7.66914 14.8914 7.55307 15.34 7.55307C15.7885 7.55307 16.2295 7.66914 16.62 7.88998C17.2537 8.25217 17.97 8.44503 18.7 8.44998C19.4051 8.44852 20.0966 8.25492 20.7 7.88998C20.8764 7.78797 21.0644 7.7074 21.26 7.64998C21.5146 7.57572 21.7292 7.40336 21.8568 7.17081C21.9843 6.93827 22.0142 6.66459 21.94 6.40998C21.8657 6.15537 21.6933 5.94069 21.4608 5.81317C21.2282 5.68564 20.9546 5.65572 20.7 5.72998C20.3494 5.83818 20.0135 5.98932 19.7 6.17998C19.3814 6.36627 19.019 6.46446 18.65 6.46446C18.2809 6.46446 17.9185 6.36627 17.6 6.17998C16.9066 5.79105 16.1249 5.58679 15.33 5.58679C14.535 5.58679 13.7533 5.79105 13.06 6.17998C12.738 6.36703 12.3723 6.46556 12 6.46556C11.6276 6.46556 11.2619 6.36703 10.94 6.17998C10.2466 5.79105 9.46495 5.58679 8.66996 5.58679C7.87497 5.58679 7.09332 5.79105 6.39996 6.17998C6.08139 6.36627 5.719 6.46446 5.34996 6.46446C4.98092 6.46446 4.61853 6.36627 4.29996 6.17998C3.98645 5.98932 3.65057 5.83818 3.29996 5.72998C3.04535 5.65572 2.77167 5.68564 2.53913 5.81317C2.30658 5.94069 2.13422 6.15537 2.05996 6.40998C1.9857 6.66459 2.01562 6.93827 2.14315 7.17081C2.27067 7.40336 2.48535 7.57572 2.73996 7.64998H2.71996ZM20.72 15.73C20.3694 15.8382 20.0335 15.9893 19.72 16.18C19.4014 16.3663 19.039 16.4645 18.67 16.4645C18.3009 16.4645 17.9385 16.3663 17.62 16.18C16.9266 15.7911 16.1449 15.5868 15.35 15.5868C14.555 15.5868 13.7733 15.7911 13.08 16.18C12.758 16.367 12.3923 16.4656 12.02 16.4656C11.6476 16.4656 11.2819 16.367 10.96 16.18C10.2666 15.7911 9.48495 15.5868 8.68996 15.5868C7.89497 15.5868 7.11332 15.7911 6.41996 16.18C6.10139 16.3663 5.739 16.4645 5.36996 16.4645C5.00092 16.4645 4.63853 16.3663 4.31996 16.18C4.00645 15.9893 3.67057 15.8382 3.31996 15.73C3.19389 15.6932 3.06182 15.6816 2.93127 15.6959C2.80073 15.7102 2.67427 15.75 2.55913 15.8132C2.44398 15.8763 2.3424 15.9615 2.26019 16.0639C2.17797 16.1663 2.11673 16.2839 2.07996 16.41C2.04319 16.536 2.03161 16.6681 2.04589 16.7987C2.06016 16.9292 2.1 17.0557 2.16315 17.1708C2.22629 17.286 2.3115 17.3875 2.4139 17.4698C2.5163 17.552 2.63389 17.6132 2.75996 17.65C2.95552 17.7074 3.14351 17.788 3.31996 17.89C3.93978 18.2599 4.64814 18.4552 5.36996 18.4552C6.09178 18.4552 6.80015 18.2599 7.41996 17.89C7.81042 17.6691 8.25137 17.5531 8.69996 17.5531C9.14855 17.5531 9.5895 17.6691 9.97996 17.89C10.6073 18.2487 11.3173 18.4374 12.04 18.4374C12.7626 18.4374 13.4727 18.2487 14.1 17.89C14.4904 17.6691 14.9314 17.5531 15.38 17.5531C15.8285 17.5531 16.2695 17.6691 16.66 17.89C17.2937 18.2522 18.01 18.445 18.74 18.45C19.4451 18.4485 20.1366 18.2549 20.74 17.89C20.9164 17.788 21.1044 17.7074 21.3 17.65C21.5546 17.5757 21.7692 17.4034 21.8968 17.1708C22.0243 16.9383 22.0542 16.6646 21.98 16.41C21.9057 16.1554 21.7333 15.9407 21.5008 15.8132C21.2682 15.6856 20.9946 15.6557 20.74 15.73H20.72ZM20.72 10.73C20.3694 10.8382 20.0335 10.9893 19.72 11.18C19.4014 11.3663 19.039 11.4645 18.67 11.4645C18.3009 11.4645 17.9385 11.3663 17.62 11.18C16.9266 10.7911 16.1449 10.5868 15.35 10.5868C14.555 10.5868 13.7733 10.7911 13.08 11.18C12.758 11.367 12.3923 11.4656 12.02 11.4656C11.6476 11.4656 11.2819 11.367 10.96 11.18C10.2666 10.7911 9.48495 10.5868 8.68996 10.5868C7.89497 10.5868 7.11332 10.7911 6.41996 11.18C6.10139 11.3663 5.739 11.4645 5.36996 11.4645C5.00092 11.4645 4.63853 11.3663 4.31996 11.18C4.00645 10.9893 3.67057 10.8382 3.31996 10.73C3.18902 10.6805 3.04917 10.6591 2.90944 10.6672C2.76971 10.6752 2.63322 10.7125 2.5088 10.7766C2.38438 10.8406 2.2748 10.9301 2.18715 11.0393C2.0995 11.1484 2.03573 11.2747 1.99996 11.41C1.96319 11.536 1.95161 11.6681 1.96589 11.7987C1.98016 11.9292 2.02 12.0557 2.08315 12.1708C2.14629 12.286 2.2315 12.3875 2.3339 12.4698C2.4363 12.552 2.55389 12.6132 2.67996 12.65C2.87552 12.7074 3.06351 12.788 3.23996 12.89C3.85978 13.2599 4.56814 13.4552 5.28996 13.4552C6.01178 13.4552 6.72015 13.2599 7.33996 12.89C7.73042 12.6691 8.17137 12.5531 8.61996 12.5531C9.06855 12.5531 9.5095 12.6691 9.89996 12.89C10.5273 13.2487 11.2373 13.4374 11.96 13.4374C12.6826 13.4374 13.3927 13.2487 14.02 12.89C14.4104 12.6691 14.8514 12.5531 15.3 12.5531C15.7485 12.5531 16.1895 12.6691 16.58 12.89C17.2137 13.2522 17.93 13.445 18.66 13.45C19.3651 13.4485 20.0566 13.2549 20.66 12.89C20.8364 12.788 21.0244 12.7074 21.22 12.65C21.4746 12.5757 21.6892 12.4034 21.8168 12.1708C21.9443 11.9383 21.9742 11.6646 21.9 11.41C21.8257 11.1554 21.6533 10.9407 21.4208 10.8132C21.1882 10.6856 20.9146 10.6557 20.66 10.73H20.72Z`,fill:`currentColor`})}),Br=`INCREASE_TEST_COVERAGE`,Vr=`I want to increase the test coverage of the repository in the current directory.
4
+
5
+ Please investigate the repo to figure out what language is being used, and where tests are located, if there are any.
6
+
7
+ If there are no tests already in the repo, add a very basic test, using typical testing strategies for the language involved.
8
+
9
+ If there are existing tests, find a function or method which lacks adequate unit tests, and add unit tests for it. Be sure to respect the projects existing test structures.
10
+
11
+ Make sure the tests pass before you finish.`,Hr=`AUTO_MERGE_PRS`,Ur=`Please add a GitHub action to this repository which automatically merges pull requests from Dependabot so long as the tests are passing.`,Wr=`FIX_README`,Gr=`Please look at the README and make the following improvements, if they make sense:
12
+ * correct any typos that you find
13
+ * add missing language annotations on codeblocks
14
+ * if there are references to other files or other sections of the README, turn them into links
15
+ * make sure the readme has an h1 title towards the top
16
+ * make sure any existing sections in the readme are appropriately separated with headings
17
+
18
+ If there are no obvious ways to improve the README, make at least one small change to make the wording clearer or friendlier`,Kr=`CLEAN_DEPENDENCIES`,qr=`Examine the dependencies of the current codebase. Make sure you can run the code and any tests.
19
+
20
+ Then run any commands necessary to update all dependencies to the latest versions, and make sure the code continues to run correctly and the tests pass. If changes need to be made to the codebase, go ahead and make those changes. You can look up documentation for new versions using the browser if you need to.
21
+
22
+ If a particular dependency update is causing trouble (e.g. breaking changes that you can't fix), you can revert it and send a message to the user explaining why.
23
+
24
+ Additionally, if you're able to prune any dependencies that are obviously unused, please do so. You may use third party tools to check for unused dependencies.`,Jr=`ADD_DOCS`,Yr=`Investigate the documentation in the root of the current repo. Please add a CODE_OF_CONDUCT.md and CONTRIBUTORS.md with good defaults if they are not present. Use information in the README to inform the CONTRIBUTORS doc. If there is no LICENSE currently in the repo, please add the Apache 2.0 license. Add links to all these documents into the README`,Xr=`ADD_DOCKERFILE`,Zr=`Investigate the current repo to understand the installation instructions. Then create a Dockerfile that runs the application, using best practices like arguments and multi-stage builds wherever appropriate.
25
+
26
+ If there is an existing Dockerfile, and there are ways to improve it according to best practices, do so.`,Qr={[Br]:Vr,[Hr]:Ur,[Wr]:Gr,[Kr]:qr,[Jr]:Yr,[Xr]:Zr},$r=`!w-auto whitespace-nowrap`;function ei({onClose:e}){let{t}=p(`openhands`),{setMessageToSend:n}=H();return(0,Q.jsxs)(U,{testId:`macros-submenu`,className:`overflow-visible`,children:[(0,Q.jsx)(W,{testId:`increase-test-coverage-button`,onClick:()=>{n(Qr.INCREASE_TEST_COVERAGE),e()},className:$r,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Ir,{width:16,height:16}),text:t(d.INCREASE_TEST_COVERAGE)})}),(0,Q.jsx)(W,{testId:`fix-readme-button`,onClick:()=>{n(Qr.FIX_README),e()},className:$r,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Rr,{width:16,height:16}),text:t(d.FIX_README)})}),(0,Q.jsx)(W,{testId:`auto-merge-prs-button`,onClick:()=>{n(Qr.AUTO_MERGE_PRS),e()},className:$r,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Lr,{width:16,height:16}),text:t(d.AUTO_MERGE_PRS)})}),(0,Q.jsx)(W,{testId:`clean-dependencies-button`,onClick:()=>{n(Qr.CLEAN_DEPENDENCIES),e()},className:$r,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(zr,{width:16,height:16}),text:t(d.CLEAN_DEPENDENCIES)})})]})}function ti({onClose:e,onShowSkills:t,onShowHooks:n,onShowAgentTools:r,shouldShowAgentTools:i=!0,shouldShowHooks:a=!1,footerAction:o}){let{t:s}=p(`openhands`),{data:c}=K(),{providers:l}=$e(),[u,f]=(0,J.useState)(null),m=!!c?.selected_repository,h=l.length>0,g=m&&h,_=e=>{f(u===e?null:e)},v=()=>{f(null),e()};return(0,Q.jsxs)(U,{ref:ft(v),testId:`tools-context-menu`,position:`top`,alignment:`left`,className:`left-[-16px] mb-2 bottom-full overflow-visible min-w-[200px]`,children:[g&&(0,Q.jsxs)(`div`,{className:`relative group/git`,children:[(0,Q.jsx)(W,{testId:`git-tools-button`,onClick:()=>_(`git`),children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Or,{width:16,height:16}),text:s(d.COMMON$GIT_TOOLS),rightIcon:(0,Q.jsx)(Ar,{width:10,height:10})})}),(0,Q.jsx)(`div`,{className:B(`absolute left-full top-[-6px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/git:opacity-100 group-hover/git:visible group-hover/git:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,u===`git`&&`opacity-100 visible pointer-events-auto`),children:(0,Q.jsx)(Fr,{onClose:v})})]}),(0,Q.jsxs)(`div`,{className:`relative group/macros`,children:[(0,Q.jsx)(W,{testId:`macros-button`,onClick:()=>_(`macros`),children:(0,Q.jsx)($,{icon:(0,Q.jsx)(vr,{width:16,height:16}),text:s(d.COMMON$MACROS),rightIcon:(0,Q.jsx)(Ar,{width:10,height:10})})}),(0,Q.jsx)(`div`,{className:B(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/macros:opacity-100 group-hover/macros:visible group-hover/macros:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,u===`macros`&&`opacity-100 visible pointer-events-auto`),children:(0,Q.jsx)(ei,{onClose:v})})]}),i&&(0,Q.jsx)(Be,{inset:`menu`}),(0,Q.jsx)(W,{testId:`show-skills-button`,onClick:t,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(_t,{width:16,height:16,className:`stroke-[1.75]`,"aria-hidden":!0}),text:s(d.CONVERSATION$SHOW_SKILLS)})}),a&&(0,Q.jsx)(W,{testId:`show-hooks-button`,onClick:n,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(kr,{width:16,height:16,"aria-hidden":!0}),text:s(d.CONVERSATION$SHOW_HOOKS)})}),i&&(0,Q.jsx)(W,{testId:`show-agent-tools-button`,onClick:r,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Je,{width:16,height:16}),text:s(d.BUTTON$SHOW_AGENT_TOOLS_AND_METADATA)})}),o&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Be,{}),(0,Q.jsx)(W,{testId:o.testId,onClick:e=>{e.preventDefault(),e.stopPropagation(),o.onClick(),v()},children:(0,Q.jsx)($,{icon:o.icon,text:o.label})})]})]})}function ni({agentClass:e,openhandsVersion:t,onClose:n}){let{t:r}=p(`openhands`);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(st,{onClose:n,testId:`close-system-message-modal`}),(0,Q.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 pr-6`,children:[(0,Q.jsx)(xe,{title:r(d.SYSTEM_MESSAGE_MODAL$TITLE)}),(e||t)&&(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e&&(0,Q.jsxs)(`div`,{className:`text-sm`,children:[(0,Q.jsx)(q.Text,{className:`font-semibold text-[var(--oh-text-tertiary)]`,children:r(d.SYSTEM_MESSAGE_MODAL$AGENT_CLASS)}),` `,(0,Q.jsx)(q.Text,{className:`font-medium text-content-2`,children:e})]}),t&&(0,Q.jsxs)(`div`,{className:`text-sm`,children:[(0,Q.jsx)(q.Text,{className:`font-semibold text-[var(--oh-text-tertiary)]`,children:r(d.SYSTEM_MESSAGE_MODAL$OPENHANDS_VERSION)}),` `,(0,Q.jsx)(q.Text,{className:`text-content-2`,children:t})]})]})]})]})}function ri({isActive:e,children:t,onClick:n,className:r,disabled:i=!1}){return(0,Q.jsx)(`button`,{type:`button`,disabled:i,className:B(`px-4 py-2 font-normal border-b-2 transition-colors`,e?`border-foreground text-foreground`:`border-transparent text-[var(--oh-muted)] hover:text-[var(--oh-foreground)]`,i&&`opacity-50 cursor-not-allowed`,r),onClick:n,"aria-selected":e,role:`tab`,children:t})}function ii({activeTab:e,onTabChange:t,hasTools:n}){let{t:r}=p(`openhands`);return(0,Q.jsxs)(`div`,{className:`mb-2 flex border-b border-[var(--oh-border)]`,role:`tablist`,children:[(0,Q.jsx)(ri,{isActive:e===`system`,onClick:()=>t(`system`),children:r(`SYSTEM_MESSAGE_MODAL$SYSTEM_MESSAGE_TAB`)}),n&&(0,Q.jsx)(ri,{isActive:e===`tools`,onClick:()=>t(`tools`),children:r(`SYSTEM_MESSAGE_MODAL$TOOLS_TAB`)})]})}var ai=ze(`whitespace-pre-wrap`,{variants:{size:{default:`text-sm`,small:`text-xs`},font:{default:``,mono:`font-mono`},lineHeight:{default:``,relaxed:`leading-relaxed`},background:{default:``,dark:`bg-base`},textColor:{default:``,light:`text-[var(--oh-text-tertiary)]`},padding:{default:``,medium:`p-3`,large:`px-5`},borderRadius:{default:``,medium:`rounded-md`},shadow:{default:``,inner:`shadow-inner`},maxHeight:{default:``,small:`max-h-[400px]`,large:`max-h-[60vh]`},overflow:{default:``,auto:`overflow-auto`}},defaultVariants:{size:`default`,font:`default`,lineHeight:`default`,background:`default`,textColor:`default`,padding:`default`,borderRadius:`default`,shadow:`default`,maxHeight:`default`,overflow:`default`}});function oi({size:e,font:t,lineHeight:n,background:r,textColor:i,padding:a,borderRadius:o,shadow:s,maxHeight:c,overflow:l,className:u,testId:d,children:f}){return(0,Q.jsx)(`pre`,{"data-testid":d,className:B(ai({size:e,font:t,lineHeight:n,background:r,textColor:i,padding:a,borderRadius:o,shadow:s,maxHeight:c,overflow:l}),u),children:f})}function si({content:e}){return(0,Q.jsx)(oi,{size:`small`,font:`mono`,lineHeight:`relaxed`,padding:`medium`,className:`text-[var(--oh-text-tertiary)]`,children:e})}function ci({parameters:e}){let{t}=p(`openhands`);return(0,Q.jsxs)(`div`,{className:`mt-2`,"data-testid":`tool-parameters`,children:[(0,Q.jsx)(q.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)]`,children:t(`SYSTEM_MESSAGE_MODAL$PARAMETERS`)}),(0,Q.jsx)(`div`,{className:`text-sm mt-2 p-3 bg-base rounded-md overflow-auto text-[var(--oh-text-tertiary)] max-h-[400px] border border-[var(--oh-border)]`,children:(0,Q.jsx)(w,{name:!1,src:e,theme:oe})})]})}function li({title:e,isExpanded:t,onClick:n,className:r}){return(0,Q.jsxs)(`button`,{type:`button`,"data-testid":`toggle-button`,onClick:n,className:B(`w-full py-3 px-3 text-left flex items-center justify-between hover:bg-tertiary transition-colors`,r),children:[(0,Q.jsx)(`div`,{className:`flex items-center`,children:(0,Q.jsx)(q.Text,{className:`font-bold text-content-2`,children:e})}),(0,Q.jsx)(q.Text,{className:`text-[var(--oh-text-tertiary)]`,children:t?(0,Q.jsx)(E,{size:18}):(0,Q.jsx)(c,{size:18})})]})}function ui({tool:e,index:t,isExpanded:n,onToggle:r}){let i=e,a=i.function||i,o=i.title||i.annotations?.title||a.name||i.type===`function`&&i.function?.name||``,s=i.description||a.description||i.type===`function`&&i.function?.description||``,c=a.parameters||i.type===`function`&&i.function?.parameters||i.parameters||null;return(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(li,{title:String(o),isExpanded:n,onClick:()=>r(t)}),n&&(0,Q.jsxs)(`div`,{className:`px-3 pb-3 pt-1 border-t border-[var(--oh-border)]`,children:[(0,Q.jsx)(`div`,{className:`mt-2 mb-3 text-sm text-[var(--oh-text-tertiary)] leading-relaxed`,children:(0,Q.jsx)(Nt,{children:String(s)})}),c&&(0,Q.jsx)(ci,{parameters:c})]})]})}function di({tools:e,expandedTools:t,onToggleTool:n}){return(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:e.map((e,r)=>(0,Q.jsx)(ui,{tool:e,index:r,isExpanded:t[r]||!1,onToggle:n},r))})}function fi(){let{t:e}=p(`openhands`);return(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,Q.jsx)(q.Text,{className:`text-[var(--oh-muted)]`,children:e(`SYSTEM_MESSAGE_MODAL$NO_TOOLS`)})})}function pi({activeTab:e,systemMessage:t,expandedTools:n,onToggleTool:r}){return e===`system`?(0,Q.jsx)(si,{content:t.content}):e===`tools`?t.tools&&t.tools.length>0?(0,Q.jsx)(di,{tools:t.tools,expandedTools:n,onToggleTool:r}):(0,Q.jsx)(fi,{}):null}function mi({isOpen:e,onClose:t,systemMessage:n}){let[r,i]=(0,J.useState)(`system`),[a,o]=(0,J.useState)({});return n?e&&(0,Q.jsx)(ye,{onClose:t,children:(0,Q.jsxs)(be,{width:`lg`,className:`relative max-h-[80vh] flex flex-col items-start border border-[var(--oh-border)]`,testID:`system-message-modal`,children:[(0,Q.jsx)(ni,{agentClass:n.agent_class,openhandsVersion:n.openhands_version,onClose:t}),(0,Q.jsxs)(`div`,{className:`w-full`,children:[(0,Q.jsx)(ii,{activeTab:r,onTabChange:i,hasTools:!!(n.tools&&n.tools.length>0)}),(0,Q.jsx)(`div`,{className:`h-[60vh] overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:(0,Q.jsx)(pi,{activeTab:r,systemMessage:n,expandedTools:a,onToggleTool:e=>{o(t=>({...t,[e]:!t[e]}))}})})]})]})}):null}var hi=[`project`,`personal`,`public`],gi=[`/.agents/skills/`,`/.openhands/skills/`,`/.openhands/microagents/`];function _i(e){return e.replace(/\\/g,`/`)}function vi(e){let t=_i(e).toLowerCase();return t===`public`?!0:t.includes(`public-skills`)||t.includes(`/.openhands/cache/skills/`)}function yi(e){let t=_i(e);return/^\/Users\/[^/]+\/\.(agents|openhands)\//.test(t)||/^\/home\/[^/]+\/\.(agents|openhands)\//.test(t)?!0:gi.some(e=>{let n=t.indexOf(e);if(n===-1)return!1;let r=t.slice(0,n);return/^\/Users\/[^/]+$/.test(r)||/^\/home\/[^/]+$/.test(r)})}function bi(e,t){let n=_i(e);if(!gi.some(e=>n.includes(e))||yi(e))return!1;if(t){let e=_i(t).replace(/\/$/,``);if(n.startsWith(e))return!0}return!0}function xi(e,t){let n=e.source?.trim();if(!n)return e.type===`repo`?`project`:`public`;let r=n.toLowerCase();return vi(n)?`public`:r===`user`||r===`global`?`personal`:r===`project`||r===`repo`||r===`sandbox`?`project`:yi(n)?`personal`:bi(n,t)?`project`:`public`}function Si(e,t){let n={project:[],personal:[],public:[]};for(let r of e)n[xi(r,t)].push(r);for(let e of hi)n[e].sort((e,t)=>e.name.localeCompare(t.name));return n}var Ci=`rounded-md p-1 text-white hover:bg-tertiary cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed`;function wi({isLoading:e,isRefetching:t,onRefresh:n,onClose:r}){let{t:i}=p(`openhands`),a=i(d.BUTTON$REFRESH);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(st,{onClose:r,testId:`close-skills-modal`}),(0,Q.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4 pr-10`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Q.jsx)(xe,{title:i(d.SKILLS_MODAL$TITLE)}),(0,Q.jsx)(q.Text,{className:`text-sm text-[var(--oh-muted)]`,children:i(d.SKILLS_MODAL$WARNING)})]}),(0,Q.jsx)(Ae,{content:a,placement:`bottom`,children:(0,Q.jsx)(`button`,{type:`button`,"data-testid":`refresh-skills`,onClick:n,disabled:e||t,"aria-label":a,className:Ci,children:(0,Q.jsx)(b,{size:18,className:B(t&&`animate-spin`),"aria-hidden":!0})})})]})]})}function Ti({title:e,count:t,children:n}){return(0,Q.jsxs)(`section`,{className:`w-full`,children:[(0,Q.jsx)(`div`,{className:`sticky top-0 z-10 border-b border-[var(--oh-border)] bg-surface-raised px-3 py-2`,children:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(q.Text,{className:`text-xs font-medium tracking-[0.01em] text-tertiary-light`,children:e}),(0,Q.jsx)(`span`,{className:`inline-flex shrink-0 items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`,children:t})]})}),(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:n})]})}function Ei(){let{t:e}=p(`openhands`);return(0,Q.jsxs)(`div`,{"data-testid":`skills-runtime-waiting`,className:`flex h-full w-full flex-col items-center justify-center gap-3 py-8 text-center`,children:[(0,Q.jsx)(Ee,{size:`small`}),(0,Q.jsx)(q.Text,{className:`text-sm text-[var(--oh-muted)]`,children:e(d.DIFF_VIEWER$WAITING_FOR_RUNTIME)})]})}function Di(){return(0,Q.jsx)(`div`,{className:`flex justify-center items-center py-8`,children:(0,Q.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-white`})})}function Oi({isError:e}){let{t}=p(`openhands`);return(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,Q.jsx)(q.Text,{className:`text-[var(--oh-muted)]`,children:t(e?d.COMMON$FETCH_ERROR:d.CONVERSATION$NO_SKILLS)})})}function ki({triggers:e}){let{t}=p(`openhands`);return!e||e.length===0?null:(0,Q.jsxs)(`div`,{className:`mt-2 mb-3`,children:[(0,Q.jsx)(q.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)] mb-2`,children:t(d.COMMON$TRIGGERS)}),(0,Q.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:e.map(e=>(0,Q.jsx)(`span`,{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`,children:e},e))})]})}function Ai({content:e}){let{t}=p(`openhands`);return(0,Q.jsxs)(`div`,{className:`mt-2`,children:[(0,Q.jsx)(q.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)] mb-2`,children:t(d.COMMON$CONTENT)}),(0,Q.jsx)(oi,{size:`small`,font:`mono`,lineHeight:`relaxed`,padding:`medium`,borderRadius:`medium`,maxHeight:`small`,overflow:`auto`,className:`mt-2 border border-[var(--oh-border)] bg-base text-[var(--oh-text-tertiary)]`,children:e||t(d.SKILLS_MODAL$NO_CONTENT)})]})}var ji={knowledge:`Knowledge`,repo:`Repository`,agentskills:`AgentSkills`},Mi=`inline-flex shrink-0 items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`;function Ni({skill:e,isExpanded:t,onToggle:n}){return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>n(e.name),className:`w-full py-3 px-3 text-left flex items-center justify-between hover:bg-tertiary transition-colors`,children:[(0,Q.jsx)(`div`,{className:`flex items-center`,children:(0,Q.jsx)(q.Text,{className:`font-bold text-content-2`,children:e.name})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:Mi,children:ji[e.type]}),(0,Q.jsx)(q.Text,{className:`text-[var(--oh-text-tertiary)]`,children:t?(0,Q.jsx)(E,{size:18}):(0,Q.jsx)(c,{size:18})})]})]}),t&&(0,Q.jsxs)(`div`,{className:`px-3 pb-3 pt-1 border-t border-[var(--oh-border)]`,children:[(0,Q.jsx)(ki,{triggers:e.triggers??[]}),(0,Q.jsx)(Ai,{content:e.content??``})]})]})}var Pi={project:d.SKILLS_MODAL$SECTION_PROJECT,personal:d.SKILLS_MODAL$SECTION_USER,public:d.SKILLS_MODAL$SECTION_PUBLIC};function Fi({onClose:e}){let{t}=p(`openhands`),{curAgentState:n}=Ct(),r=he(),[i,a]=(0,J.useState)({}),{data:o,isLoading:s,isError:c,refetch:l,isRefetching:u}=fn(),d=(0,J.useMemo)(()=>o?Si(o,r):null,[o,r]),f=e=>{a(t=>({...t,[e]:!t[e]}))},m=![P.LOADING,P.INIT].includes(n);return(0,Q.jsx)(ye,{onClose:e,children:(0,Q.jsxs)(be,{width:`lg`,className:`relative max-h-[80vh] flex flex-col items-start border border-[var(--oh-border)]`,testID:`skills-modal`,children:[(0,Q.jsx)(wi,{isLoading:s,isRefetching:u,onRefresh:l,onClose:e}),(0,Q.jsx)(`div`,{className:`w-full h-[60vh] overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:m?s?(0,Q.jsx)(Di,{}):c||!o||o.length===0?(0,Q.jsx)(Oi,{isError:c}):d&&(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:hi.map(e=>{let n=d[e];return n.length===0?null:(0,Q.jsx)(Ti,{title:t(Pi[e]),count:n.length,children:n.map(t=>(0,Q.jsx)(Ni,{skill:t,isExpanded:i[t.name]||!1,onToggle:f},`${e}-${t.name}`))},e)})}):(0,Q.jsx)(Ei,{})})]})})}var Ii=()=>{let{conversationId:e}=vt(),{curAgentState:t}=Ct();return r({queryKey:[`conversation`,e,`hooks`],queryFn:async()=>{if(!e)throw Error(`No conversation ID provided`);let{hooks:t}=await V.getHooks(e);return t},enabled:!!e&&t!==P.LOADING&&t!==P.INIT,staleTime:1e3*60*5,gcTime:1e3*60*15})},Li=`rounded-md p-1 text-white hover:bg-tertiary cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed`;function Ri({isLoading:e,isRefetching:t,onRefresh:n,onClose:r}){let{t:i}=p(`openhands`),a=i(d.BUTTON$REFRESH);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(st,{onClose:r,testId:`close-hooks-modal`}),(0,Q.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4 pr-10`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Q.jsx)(xe,{title:i(d.HOOKS_MODAL$TITLE)}),(0,Q.jsx)(q.Text,{className:`text-sm text-[var(--oh-muted)]`,children:i(d.HOOKS_MODAL$WARNING)})]}),(0,Q.jsx)(Ae,{content:a,placement:`bottom`,children:(0,Q.jsx)(`button`,{type:`button`,"data-testid":`refresh-hooks`,onClick:n,disabled:e||t,"aria-label":a,className:Li,children:(0,Q.jsx)(b,{size:18,className:B(t&&`animate-spin`),"aria-hidden":!0})})})]})]})}function zi(){return(0,Q.jsx)(`div`,{className:`flex justify-center items-center py-8`,children:(0,Q.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-white`})})}function Bi({isError:e}){let{t}=p(`openhands`);return(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full p-4`,children:(0,Q.jsx)(q.Text,{className:`text-[var(--oh-muted)]`,children:t(e?d.COMMON$FETCH_ERROR:d.CONVERSATION$NO_HOOKS)})})}var Vi=`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`;function Hi({matcher:e}){let{t}=p(`openhands`);return(0,Q.jsxs)(`div`,{className:`py-3`,children:[(0,Q.jsxs)(`div`,{className:`mb-2`,children:[(0,Q.jsx)(q.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)]`,children:t(d.HOOKS_MODAL$MATCHER)}),(0,Q.jsx)(`span`,{className:`ml-2 ${Vi}`,children:e.matcher})]}),(0,Q.jsxs)(`div`,{className:`mt-2`,children:[(0,Q.jsx)(q.Text,{className:`text-sm font-semibold text-[var(--oh-text-tertiary)] mb-2`,children:t(d.HOOKS_MODAL$COMMANDS)}),(e.hooks??[]).map((e,n)=>(0,Q.jsxs)(`div`,{className:`mt-2`,children:[(0,Q.jsx)(oi,{size:`small`,font:`mono`,lineHeight:`relaxed`,padding:`medium`,borderRadius:`medium`,maxHeight:`small`,overflow:`auto`,className:`border border-[var(--oh-border)] bg-base text-[var(--oh-text-tertiary)]`,children:e.command}),(0,Q.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2 text-xs text-[var(--oh-muted)]`,children:[(0,Q.jsx)(`span`,{className:Vi,children:t(d.HOOKS_MODAL$TYPE,{type:e.type})}),(0,Q.jsx)(`span`,{className:Vi,children:t(d.HOOKS_MODAL$TIMEOUT,{timeout:e.timeout})}),e.async?(0,Q.jsx)(`span`,{className:Vi,children:t(d.HOOKS_MODAL$ASYNC)}):null]})]},`${e.command}-${n}`))]})]})}var Ui={pre_tool_use:d.HOOKS_MODAL$EVENT_PRE_TOOL_USE,post_tool_use:d.HOOKS_MODAL$EVENT_POST_TOOL_USE,user_prompt_submit:d.HOOKS_MODAL$EVENT_USER_PROMPT_SUBMIT,session_start:d.HOOKS_MODAL$EVENT_SESSION_START,session_end:d.HOOKS_MODAL$EVENT_SESSION_END,stop:d.HOOKS_MODAL$EVENT_STOP},Wi=`inline-flex shrink-0 items-center rounded-full px-2 py-0.5 text-[11px] font-medium leading-4 border border-[var(--oh-border)] bg-[var(--oh-surface)] text-tertiary-light`,Gi=`HOOKS_MODAL$HOOK_COUNT`;function Ki({hookEvent:e,isExpanded:t,onToggle:n}){let{t:r}=p(`openhands`),i=Ui[e.event_type],a=i?r(i):e.event_type,o=e.matchers.reduce((e,t)=>e+(t.hooks??[]).length,0);return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>n(e.event_type),className:`w-full py-3 px-3 text-left flex items-center justify-between hover:bg-tertiary transition-colors`,children:[(0,Q.jsx)(`div`,{className:`flex items-center`,children:(0,Q.jsx)(q.Text,{className:`font-bold text-content-2`,children:a})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:Wi,children:r(Gi,{count:o})}),(0,Q.jsx)(q.Text,{className:`text-[var(--oh-text-tertiary)]`,children:t?(0,Q.jsx)(E,{size:18}):(0,Q.jsx)(c,{size:18})})]})]}),t&&(0,Q.jsx)(`div`,{className:`border-t border-[var(--oh-border)] px-3 pt-3 pb-3`,children:(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:e.matchers.map((t,n)=>(0,Q.jsx)(Hi,{matcher:t},`${e.event_type}-${t.matcher}-${n}`))})})]})}function qi({testId:e=`runtime-waiting`}){let{t}=p(`openhands`);return(0,Q.jsxs)(`div`,{"data-testid":e,className:`flex h-full w-full flex-col items-center justify-center gap-3 py-8 text-center`,children:[(0,Q.jsx)(Ee,{size:`small`}),(0,Q.jsx)(q.Text,{className:`text-sm text-[var(--oh-muted)]`,children:t(d.DIFF_VIEWER$WAITING_FOR_RUNTIME)})]})}function Ji({onClose:e}){let{curAgentState:t}=Ct(),[n,r]=(0,J.useState)({}),{data:i,isLoading:a,isError:o,refetch:s,isRefetching:c}=Ii(),l=e=>{r(t=>({...t,[e]:!t[e]}))},u=![P.LOADING,P.INIT].includes(t);return(0,Q.jsx)(ye,{onClose:e,children:(0,Q.jsxs)(be,{width:`lg`,className:`relative max-h-[80vh] flex flex-col items-start border border-[var(--oh-border)]`,testID:`hooks-modal`,children:[(0,Q.jsx)(Ri,{isLoading:a,isRefetching:c,onRefresh:s,onClose:e}),(0,Q.jsx)(`div`,{className:`w-full h-[60vh] overflow-auto rounded-md border border-[var(--oh-border)] bg-surface-raised custom-scrollbar-always`,children:u?a?(0,Q.jsx)(zi,{}):o||!i||i.length===0?(0,Q.jsx)(Bi,{isError:o}):(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--oh-border)]`,children:i.map(e=>(0,Q.jsx)(Ki,{hookEvent:e,isExpanded:n[e.event_type]||!1,onToggle:l},e.event_type))}):(0,Q.jsx)(qi,{testId:`hooks-runtime-waiting`})})]})})}function Yi({handleFileIconClick:e,disabled:t=!1}){let{t:n}=p(`openhands`),{conversationId:r}=G(),{data:i}=K(),[a,o]=J.useState(!1),{handleShowAgentTools:s,handleShowSkills:c,handleShowHooks:l,systemModalVisible:u,setSystemModalVisible:f,skillsModalVisible:m,setSkillsModalVisible:h,hooksModalVisible:g,setHooksModalVisible:_,systemMessage:v,shouldShowAgentTools:y,shouldShowHooks:b}=Dr({conversationId:r??void 0,executionStatus:i?.execution_status,showOptions:!0,onContextMenuToggle:o});return(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(`button`,{type:`button`,className:B(Ce,`relative shrink-0 size-6`,t?`cursor-not-allowed text-[var(--oh-text-subtle)]`:void 0,a&&!t&&`text-white bg-white/10`),"aria-label":n(d.CHAT_INTERFACE$PLUS_MENU),"aria-expanded":a,"aria-haspopup":`menu`,"data-testid":`chat-plus-button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),!t&&o(e=>!e)},disabled:t,children:(0,Q.jsx)(`span`,{className:`flex h-full w-full items-center justify-center`,children:(0,Q.jsx)(ne,{className:`h-[13px] w-[13px] shrink-0`,strokeWidth:2})})}),a&&(0,Q.jsx)(ti,{onClose:()=>o(!1),onShowSkills:c,onShowHooks:l,onShowAgentTools:s,shouldShowAgentTools:y,shouldShowHooks:b,footerAction:{testId:`add-files-and-images-button`,icon:(0,Q.jsx)(S,{className:`h-4 w-4 shrink-0`,strokeWidth:2,"aria-hidden":!0}),label:n(d.CHAT_INTERFACE$ADD_FILES_AND_IMAGES),onClick:e}}),(0,Q.jsx)(mi,{isOpen:u,onClose:()=>f(!1),systemMessage:v||null}),m&&(0,Q.jsx)(Fi,{onClose:()=>h(!1)}),g&&(0,Q.jsx)(Ji,{onClose:()=>_(!1)})]})}function Xi({buttonClassName:e,handleSubmit:t,disabled:n}){return(0,Q.jsx)(`button`,{type:`button`,className:B(`flex items-center justify-center rounded-full border border-white size-8`,n?`cursor-not-allowed border-[var(--oh-muted)]`:`cursor-pointer hover:bg-white/10`,e),"data-name":`arrow-up-circle-fill`,"data-testid":`submit-button`,onClick:t,disabled:n,children:(0,Q.jsx)(v,{className:`w-4 h-4`,color:n?`var(--oh-muted)`:`white`})})}var Zi=()=>{let e=f();return l({mutationFn:e=>o(e.conversationId),onMutate:async()=>(await e.cancelQueries({queryKey:[`user`,`conversations`]}),{previousConversations:e.getQueryData([`user`,`conversations`])}),onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]}),e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`v1-batch-get-app-conversations`]})}})},Qi=()=>{let e=f();return l({mutationFn:e=>s(e.conversationId),onMutate:async()=>(await e.cancelQueries({queryKey:[`user`,`conversations`]}),{previousConversations:e.getQueryData([`user`,`conversations`])}),onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]}),e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`v1-batch-get-app-conversations`]}),e.invalidateQueries({queryKey:[`unified`,`vscode_url`]})}})};function $i({disabled:e,canSubmit:t=!0,onAddFileClick:n=()=>{},showButton:r=!0,buttonClassName:i=``,handleSubmit:a=()=>{}}){let{t:o}=p(`openhands`),s=Ge(),c=Zi(),l=Qi(),{conversationId:u}=G(),{backend:f}=ge(),m=f.kind===`cloud`,h=lr(),g=m,_=Nn(),{curAgentState:v}=Ct(),{conversationMode:y,setConversationMode:b}=H(),{handlePlanClick:S,isCreatingConversation:C}=At(),w=J.useRef(null),T=J.useRef(null),E=J.useRef(null),D=J.useRef(null),O=J.useRef(null),k=J.useRef(null),[A,j]=J.useState(1/0),[M,ee]=J.useState(0),[te,N]=J.useState(32),[ne,re]=J.useState(96),[ie,ae]=J.useState(120),[F,I]=J.useState(!1),[L,R]=J.useState(null),[z,oe]=J.useState();J.useEffect(()=>{let e=w.current,t=T.current,n=E.current,r=D.current,i=O.current;if(!e||!t||!n||!i||g&&!r||typeof ResizeObserver>`u`)return;let a=()=>{let a=e.getBoundingClientRect().width,o=t.getBoundingClientRect().width,s=n.getBoundingClientRect().width,c=i.getBoundingClientRect().width;if(a>0&&j(a),o>0&&ee(o),s>0&&N(s),c>0&&ae(c),r){let e=r.getBoundingClientRect().width;e>0&&re(e)}},o=new ResizeObserver(()=>{a()});return o.observe(e),o.observe(t),o.observe(n),o.observe(i),r&&o.observe(r),a(),()=>o.disconnect()},[g]);let se=()=>{u&&c.mutate({conversationId:u})},ce=()=>{u&&l.mutate({conversationId:u})},le=s.isPending||c.isPending,ue=J.useCallback(e=>{let t=e,n={showCodeInline:!1,showModelInline:!1};return g&&t>=ne&&(n.showCodeInline=!0,t-=ne+12),t>=ie&&(n.showModelInline=!0),n},[g,ne,ie]),de=A-M-8-te-12,fe=ue(de),pe=(!g||fe.showCodeInline)&&fe.showModelInline?fe:ue(de-28-12),me=g?pe.showCodeInline:!1,he=pe.showModelInline,V=A>=360,_e=g&&!me||!he;J.useEffect(()=>{_e||(I(!1),R(null))},[_e]);let ve=ft(()=>{I(!1),R(null)}),ye=v===P.RUNNING||C||_!==`OPEN`,be=()=>{R(null),I(!1)};J.useLayoutEffect(()=>{if(!F||!k.current)return;let e=k.current,t=()=>{let t=e.getBoundingClientRect();oe({position:`fixed`,top:t.top-8,left:t.left,transform:`translateY(-100%)`,zIndex:9999})};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[F]);let xe=(0,Q.jsxs)(U,{ref:ve,testId:`chat-input-overflow-menu`,position:`top`,alignment:`left`,className:`!static !top-auto !bottom-auto !left-auto !right-auto !mt-0 overflow-visible min-w-[200px]`,children:[g&&!me&&(0,Q.jsxs)(`div`,{className:`relative group/overflow-agent`,children:[(0,Q.jsx)(W,{testId:`overflow-agent-button`,onClick:()=>R(e=>e===`agent`?null:`agent`),isDisabled:ye,children:(0,Q.jsx)($,{icon:(0,Q.jsx)(rr,{className:`h-[11px] w-[11px]`}),text:o(y===`code`?d.COMMON$CODE:d.COMMON$PLAN),rightIcon:(0,Q.jsx)(Ar,{width:10,height:10})})}),!ye&&(0,Q.jsx)(`div`,{className:B(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/overflow-agent:opacity-100 group-hover/overflow-agent:visible group-hover/overflow-agent:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,L===`agent`&&`opacity-100 visible pointer-events-auto`),children:(0,Q.jsxs)(U,{testId:`overflow-agent-submenu`,className:`overflow-visible min-w-[195px]`,children:[(0,Q.jsx)(W,{testId:`overflow-agent-code`,onClick:e=>{e.preventDefault(),e.stopPropagation(),b(`code`),be()},children:(0,Q.jsx)($,{icon:(0,Q.jsx)(rr,{className:`h-[11px] w-[11px]`}),text:o(d.COMMON$CODE)})}),(0,Q.jsx)(W,{testId:`overflow-agent-plan`,onClick:e=>{S(e),be()},children:(0,Q.jsx)($,{icon:(0,Q.jsx)(Dt,{width:16,height:16,color:`currentColor`}),text:o(d.COMMON$PLAN)})})]})})]}),!he&&(0,Q.jsxs)(`div`,{className:`relative group/overflow-model`,children:[(0,Q.jsx)(W,{testId:`overflow-model-button`,onClick:()=>R(e=>e===`model`?null:`model`),children:(0,Q.jsx)($,{icon:(0,Q.jsx)(x,{width:16,height:16,strokeWidth:2,"aria-hidden":!0}),text:`Model`,rightIcon:(0,Q.jsx)(Ar,{width:10,height:10})})}),(0,Q.jsx)(`div`,{className:B(`absolute left-full top-[-4px] z-60 opacity-0 invisible pointer-events-none transition-all duration-200 ml-[1px]`,`group-hover/overflow-model:opacity-100 group-hover/overflow-model:visible group-hover/overflow-model:pointer-events-auto`,`hover:opacity-100 hover:visible hover:pointer-events-auto`,L===`model`&&`opacity-100 visible pointer-events-auto`),children:(0,Q.jsx)(U,{testId:`overflow-model-submenu`,className:`min-w-[220px] max-w-[320px] max-h-[60vh] overflow-y-auto gap-0`,children:(0,Q.jsx)(mr,{model:h,onClose:be,dividerInset:`menu`,settingsLinkClassName:B(`group`,Se),settingsIconClassName:B(`text-[var(--oh-muted)] group-hover:text-[var(--oh-foreground)]`,Se)})})})]})]});return(0,Q.jsxs)(`div`,{ref:w,className:`w-full min-w-0 flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`div`,{className:`flex min-w-0 items-center gap-1`,children:(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Q.jsx)(`div`,{ref:E,className:B(!1),children:(0,Q.jsx)(Yi,{disabled:e,handleFileIconClick:n})}),g&&(0,Q.jsx)(`div`,{ref:D,className:B(!me&&`hidden`),children:(0,Q.jsx)(sr,{})}),(0,Q.jsx)(`div`,{ref:O,className:B(!he&&`hidden`),children:m||h.isAcpContext?(0,Q.jsx)(hr,{}):(0,Q.jsx)(Sr,{})}),_e&&(0,Q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Q.jsx)(`button`,{ref:k,type:`button`,className:B(Ce,`size-6`),"aria-label":`More input actions`,"aria-expanded":F,"aria-haspopup":`menu`,onClick:e=>{e.preventDefault(),e.stopPropagation(),I(e=>!e)},children:(0,Q.jsx)(gt,{width:16,height:16,color:`currentColor`})}),F&&typeof document<`u`&&z&&En.createPortal((0,Q.jsx)(`div`,{style:z,children:xe}),document.body)]})]})}),(0,Q.jsxs)(`div`,{ref:T,className:`ml-auto flex shrink-0 items-center gap-2`,children:[V&&u&&(0,Q.jsx)(nr,{handleStop:se,handleResumeAgent:ce,disabled:e,isPausing:le}),r&&(0,Q.jsx)(Xi,{buttonClassName:i,handleSubmit:a,disabled:e||!t})]})]})}function ea(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\*{3}(.+?)\*{3}/g,`$1`).replace(/\*{2}(.+?)\*{2}/g,`$1`).replace(/\*(.+?)\*/g,`$1`).replace(/_{3}(.+?)_{3}/g,`$1`).replace(/_{2}(.+?)_{2}/g,`$1`).replace(/_(.+?)_/g,`$1`).replace(/`(.+?)`/g,`$1`).replace(/~~(.+?)~~/g,`$1`)}function ta(e){let t=e,n=e.match(/^---\s*\n([\s\S]*?)\n---/);if(n){let r=n[1].match(/^description:\s*(.+)$/m);if(r){let e=r[1].trim();return(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))&&(e=e.slice(1,-1)),ea(e)}t=e.slice(n[0].length)}let r=t.split(`
27
+ `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith(`#`)&&e!==`---`);if(!r)return null;let i=ea(r);return i.match(/^[^.!?\n]*[.!?]/)?.[0]||i}function na({item:e,isSelected:t,onSelect:n,ref:r}){let i=(0,J.useMemo)(()=>`description`in e.skill&&e.skill.description?ea(e.skill.description):`content`in e.skill&&e.skill.content?ta(e.skill.content):null,[e.skill]);return(0,Q.jsxs)(`button`,{role:`option`,"aria-selected":t,ref:r,type:`button`,className:B(`w-full px-3 py-2.5 text-left`,Pe,t?`bg-tertiary`:`hover:bg-[var(--oh-surface-raised)]`),onMouseDown:t=>{t.preventDefault(),n(e)},children:[(0,Q.jsx)(Et,{className:`font-normal`,children:e.command}),i&&(0,Q.jsx)(Et,{className:`text-xs text-[var(--oh-muted)] mt-0.5 truncate block`,children:i})]})}function ra({items:e,selectedIndex:t,onSelect:n}){let{t:r}=p(`openhands`),i=(0,J.useRef)([]);return(0,J.useEffect)(()=>{i.current=i.current.slice(0,e.length)},[e.length]),(0,J.useEffect)(()=>{let e=i.current[t];e&&e.scrollIntoView({block:`nearest`})},[t]),e.length===0?null:(0,Q.jsxs)(`div`,{role:`listbox`,"aria-label":r(`CHAT_INTERFACE$COMMANDS`),className:`absolute bottom-full left-0 w-full mb-1 bg-[var(--oh-surface)] border border-[var(--oh-border-subtle)] rounded-lg shadow-lg max-h-[300px] overflow-y-auto custom-scrollbar z-50`,"data-testid":`slash-command-menu`,children:[(0,Q.jsx)(`div`,{className:`px-3 py-2 text-xs text-[var(--oh-muted)] border-b border-[var(--oh-border-subtle)]`,children:r(`CHAT_INTERFACE$COMMANDS`)}),(0,Q.jsx)(`div`,{className:Me,children:e.map((e,r)=>(0,Q.jsx)(na,{item:e,isSelected:r===t,onSelect:n,ref:e=>{i.current[r]=e}},e.command))})]})}function ia({chatContainerRef:e,isDragOver:t,disabled:n,canSubmit:r,isNewConversationPending:i=!1,showButton:a,buttonClassName:o,chatInputRef:s,handleFileIconClick:c,handleSubmit:l,onDragOver:u,onDragLeave:d,onDrop:f,onInput:p,onPaste:m,onKeyDown:h,onFocus:g,onBlur:_,isSlashMenuOpen:v=!1,slashItems:y=[],slashSelectedIndex:b=0,onSlashSelect:x}){return(0,Q.jsxs)(`div`,{ref:e,className:B(`bg-[var(--oh-surface)] box-border content-stretch flex flex-col items-start justify-center p-4 relative rounded-[15px] w-full`,H(e=>e.conversationMode)===`plan`&&`border border-[#597FF4]`),onDragOver:e=>u(e,n),onDragLeave:e=>d(e,n),onDrop:e=>f(e,n),children:[t&&(0,Q.jsx)(vn,{}),(0,Q.jsx)(Cn,{}),(0,Q.jsxs)(`div`,{className:`relative w-full`,children:[v&&x&&(0,Q.jsx)(ra,{items:y,selectedIndex:b,onSelect:x}),(0,Q.jsx)(Tn,{chatInputRef:s,isNewConversationPending:i,onInput:p,onPaste:m,onKeyDown:h,onFocus:g,onBlur:_})]}),(0,Q.jsx)($i,{disabled:n,canSubmit:r,onAddFileClick:()=>c(n),showButton:a,buttonClassName:o,handleSubmit:l})]})}function aa({fileInputRef:e,onChange:t}){return(0,Q.jsx)(`input`,{type:`file`,ref:e,multiple:!0,accept:`*/*`,className:`hidden`,onChange:t,"data-testid":`upload-image-input`})}function oa({disabled:e=!1,isNewConversationPending:t=!1,showButton:n=!0,onSubmit:r,onFocus:i,onBlur:a,onFilesPaste:o,className:s=``,buttonClassName:c=``}){let[l,u]=J.useState(!1),{submittedMessage:d,clearAllFiles:f,setShouldHideSuggestions:p,setSubmittedMessage:m,images:h,files:g}=H(),_=e,v=(0,J.useRef)(r);(0,J.useEffect)(()=>{v.current=r},[r]),(0,J.useEffect)(()=>{!d||e||(v.current(d),m(null))},[d,e,m]);let{chatInputRef:y,messageToSend:b,checkIsContentEmpty:x,clearEmptyContentHandler:S,saveDraft:C}=Jt(),w=J.useCallback(()=>{let e=y.current?.innerText??``,t=h.length>0||g.length>0;u(e.trim().length>0||t)},[y,h,g]),{fileInputRef:T,chatContainerRef:E,isDragOver:D,handleFileIconClick:O,handleFileInputChange:k,handleDragOver:A,handleDragLeave:j,handleDrop:M}=Yt(o),{gripRef:ee,isGripVisible:te,isGripDragging:N,handleTopEdgeClick:ne,smartResize:re,handleGripMouseDown:ie,handleGripTouchStart:P,increaseHeightForEmptyContent:ae,resetManualResize:F}=ln(y,b),{handleSubmit:I}=dn(y,T,re,r,F),L=J.useCallback(()=>{I(),w()},[I,w]),{handleInput:R,handlePaste:z,handleKeyDown:oe,handleBlur:se,handleFocus:ce}=un(y,re,ae,x,S,i,a),{isMenuOpen:le,filteredItems:ue,selectedIndex:de,updateSlashMenu:fe,selectItem:pe,handleSlashKeyDown:me,closeMenu:he}=mn(y);return(0,J.useEffect)(()=>()=>{p(!1),f()},[p,f]),(0,J.useEffect)(()=>{w()},[w,h.length,g.length]),(0,Q.jsxs)(`div`,{className:B(`w-full`,s),children:[(0,Q.jsx)(aa,{fileInputRef:T,onChange:k}),(0,Q.jsxs)(`div`,{className:`relative w-full`,children:[(0,Q.jsx)(hn,{gripRef:ee,isGripVisible:te,isGripDragging:N,handleTopEdgeClick:ne,handleGripMouseDown:ie,handleGripTouchStart:P}),(0,Q.jsx)(ia,{chatContainerRef:E,isDragOver:D,disabled:_,canSubmit:l,isNewConversationPending:t,showButton:n,buttonClassName:c,chatInputRef:y,handleFileIconClick:O,handleSubmit:L,onDragOver:A,onDragLeave:j,onDrop:M,onInput:()=>{R(),fe(),C(),w()},onPaste:z,onKeyDown:e=>{me(e)||oe(e,_,L)},onFocus:ce,onBlur:()=>{se(),he(),w()},isSlashMenuOpen:le,slashItems:ue,slashSelectedIndex:de,onSlashSelect:pe})]})]})}var sa=`${z} `,ca=(e,t)=>{let n=N(e=>e.show),r=f(),{switchAndLog:i}=_r(),{backend:a,orgId:o}=ge(),s=a.kind===`local`,{t:c}=p();return(0,J.useCallback)(l=>{let u=l.trim();if(!(u===`/model`||u.startsWith(sa))||!s){t(l);return}let f=u.slice(z.length).trim();if(f){i(e??null,f);return}if(!e)return;let p=j();r.fetchQuery({queryKey:[...ve.all,a.id,o],queryFn:bt.listProfiles,staleTime:0}).then(({profiles:t})=>n(e,p,t)).catch(e=>{let t=c(d.MODEL$LIST_FAILED);D(e instanceof Error&&e.message?e.message:t)})},[e,s,t,n,r,i,a.id,o,c])},la=e=>e.type.startsWith(`image/`),ua=async e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{t()},r.onerror=()=>{n(Error(`Failed to read file: ${e.name}`))},r.onabort=()=>{n(Error(`File reading was aborted: ${e.name}`))},r.readAsArrayBuffer(e)}),da=async e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{t()},r.onerror=()=>{n(Error(`Failed to read image: ${e.name}`))},r.onabort=()=>{n(Error(`Image reading was aborted: ${e.name}`))},r.readAsDataURL(e)}),fa=async e=>{let t=await Promise.allSettled(e.map(async e=>(await ua(e),e))),n=[],r=[];return t.forEach((t,i)=>{t.status===`fulfilled`?n.push(t.value):r.push({file:e[i],error:t.reason})}),{successful:n,failed:r}},pa=async e=>{let t=await Promise.allSettled(e.map(async e=>(await da(e),e))),n=[],r=[];return t.forEach((t,i)=>{t.status===`fulfilled`?n.push(t.value):r.push({file:e[i],error:t.reason})}),{successful:n,failed:r}};function ma(){let{images:e,files:t,addImages:n,addFiles:r,addFileLoading:i,removeFileLoading:a,addImageLoading:o,removeImageLoading:s,markImagesAsPasted:c}=H();return{handleUpload:(0,J.useCallback)(async(l,u)=>{let d=Vn(l,[...e,...t]);if(!d.isValid){D(`Error: ${d.errorMessage}`);return}let f=l.filter(e=>!la(e)),p=l.filter(e=>la(e));p.length>0&&c(p.map(e=>e.name)),f.forEach(e=>i(e.name)),p.forEach(e=>o(e.name));try{let[e,t]=await Promise.all([fa(f),pa(p)]);e.successful.length>0&&(r(e.successful),e.successful.forEach(e=>a(e.name))),t.successful.length>0&&(n(t.successful),t.successful.forEach(e=>s(e.name))),e.failed.forEach(({file:e,error:t})=>{a(e.name),D(`Failed to process file ${e.name}: ${t.message}`)}),t.failed.forEach(({file:e,error:t})=>{s(e.name),D(`Failed to process image ${e.name}: ${t.message}`)})}catch{f.forEach(e=>a(e.name)),p.forEach(e=>s(e.name)),D(`An unexpected error occurred while processing files`)}},[e,t,n,r,i,a,o,s,c])}}function ha({disabled:e,onClear:t,testId:n=`dropdown-clear`}){return(0,Q.jsx)(`button`,{onClick:e=>{e.stopPropagation(),t()},disabled:e,className:B(`p-1 text-[#fff]`,`cursor-pointer disabled:cursor-not-allowed disabled:opacity-60`),type:`button`,"aria-label":`Clear selection`,"data-testid":n,children:(0,Q.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Q.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})})}function ga({isOpen:e,disabled:t,getToggleButtonProps:n,iconClassName:r}){return(0,Q.jsx)(`button`,{...n({disabled:t,className:B(Le,`text-current`,e&&`rotate-180`,t&&`cursor-not-allowed opacity-60`)}),type:`button`,"aria-label":`Toggle menu`,children:(0,Q.jsx)(Re,{className:r})})}function _a({item:e,index:t,isSelected:n,getItemProps:r,getDisplayText:i,getItemKey:a,isProviderDropdown:o=!1,renderIcon:s,itemClassName:c}){return(0,Q.jsx)(`li`,{...r({index:t,item:e,className:B(o?`group px-2 py-0 cursor-pointer text-xs rounded-md mx-0 my-0 h-6 flex items-center`:`group px-2 py-2 cursor-pointer text-sm rounded-md mx-0 my-0.5`,`text-white focus:outline-none font-normal`,Pe,{"bg-[var(--oh-interactive-selected)] text-white":n,"hover:bg-[var(--oh-interactive-hover)]":!n},c)}),children:(0,Q.jsxs)(`div`,{className:B(`flex items-center`,je),children:[s?(0,Q.jsx)(`span`,{className:Fe,children:s(e)}):null,(0,Q.jsx)(`span`,{className:`font-normal`,children:i(e)})]})},a(e))}function va({inputValue:e,searchMessage:t=`No items found`,emptyMessage:n=`No items available`,testId:r=`dropdown-empty`}){return(0,Q.jsx)(`li`,{className:`px-3 py-2 text-[var(--oh-text-secondary)] text-sm rounded-lg mx-0.5 my-0.5`,"data-testid":r,children:e?t:n})}function ya({isOpen:e,filteredItems:t,inputValue:n,highlightedIndex:r,selectedItem:i,getMenuProps:a,getItemProps:o,onScroll:s,menuRef:c,renderItem:l,renderEmptyState:u,stickyTopItem:d,stickyFooterItem:f,testId:p,numberOfRecentItems:m=0,itemKey:h}){let g=!(t.length>0)&&!d&&!f;return e?(0,Q.jsx)(`div`,{className:`relative`,children:(0,Q.jsxs)(`div`,{className:B(`absolute z-10 w-full bg-tertiary border border-[var(--oh-border-input)] rounded-lg shadow-none`,`focus:outline-none mt-1 z-[9999]`,`max-h-60`),children:[(0,Q.jsx)(`ul`,{...a({ref:c,className:B(`w-full overflow-auto p-1 custom-scrollbar-always`,Me,d||f?`max-h-[calc(15rem-3rem)]`:`max-h-60`),onScroll:s,"data-testid":p}),children:g?u(n):(0,Q.jsxs)(Q.Fragment,{children:[d,t.map((e,t)=>{let n=h(e);return(0,Q.jsxs)(J.Fragment,{children:[l(e,t,r,i,o),m>0&&t===m-1&&(0,Q.jsx)(`div`,{className:`border-b border-[var(--oh-border-input)] bg-tertiary pb-1 mb-1 h-[1px]`})]},n)})]})}),f&&(0,Q.jsx)(`div`,{className:`border-t border-[var(--oh-border-input)] bg-tertiary p-1 rounded-b-lg`,children:f})]})}):(0,Q.jsx)(`div`,{className:`relative`,children:(0,Q.jsx)(`ul`,{...a({ref:c,className:`hidden`,"data-testid":p})})})}function ba({hasSelection:e,testId:t=`dropdown-loading`}){return(0,Q.jsx)(`div`,{className:B(`absolute top-1/2 transform -translate-y-1/2`,e?`right-11`:`right-6`),children:(0,Q.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-white/20 border-t-white rounded-full`,"data-testid":t})})}function xa({isError:e,message:t=`Failed to load data`,testId:n=`dropdown-error`}){return e?(0,Q.jsx)(`div`,{className:`text-red-500 text-sm mt-1`,"data-testid":n,children:t}):null}function Sa({providers:e,value:t,placeholder:n=`Select Provider`,className:r,errorMessage:i,disabled:a=!1,isLoading:o=!1,onChange:s,inputClassName:c,toggleButtonClassName:l,itemClassName:u}){let[d,f]=(0,J.useState)(``),[p,m]=(0,J.useState)(t||null),h=e=>{switch(e){case`github`:return`GitHub`;case`gitlab`:return`GitLab`;case`bitbucket`:return`Bitbucket`;case`bitbucket_data_center`:return`Bitbucket Data Center`;case`azure_devops`:return`Azure DevOps`;default:return e.charAt(0).toUpperCase()+e.slice(1)}},g=(0,J.useMemo)(()=>p&&d===h(p)||!d?.trim()?e:e.filter(e=>h(e).toLowerCase().includes(d.toLowerCase())),[e,d,p]),{isOpen:_,getToggleButtonProps:v,getMenuProps:y,getInputProps:b,highlightedIndex:x,getItemProps:S,selectedItem:C}=ke({items:g,itemToString:e=>e?h(e):``,selectedItem:p,onSelectedItemChange:({selectedItem:e})=>{m(e||null),s?.(e||null)},onInputValueChange:({inputValue:e})=>{f(e||``)},inputValue:d});(0,J.useEffect)(()=>{t!==p&&m(t||null)},[t,p]),(0,J.useEffect)(()=>{C&&!_?f(h(C)):C||f(``)},[C,_]);let w=(e,t,n,r,i)=>(0,Q.jsx)(_a,{item:e,index:t,isSelected:e===r,getItemProps:i,getDisplayText:h,getItemKey:e=>e,isProviderDropdown:!0,itemClassName:u},e),T=e=>(0,Q.jsx)(va,{inputValue:e,searchMessage:`No providers found`,emptyMessage:`No providers available`,testId:`git-provider-dropdown-empty`});return(0,Q.jsxs)(`div`,{className:B(`relative`,r),children:[(0,Q.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[C&&(0,Q.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:(0,Q.jsx)(et,{gitProvider:C,className:`min-w-[14px] min-h-[14px] w-[14px] h-[14px]`})}),(0,Q.jsx)(`input`,{...b({disabled:a,placeholder:n,readOnly:!0,className:B(`w-29.5 h-6 py-0 border border-[var(--oh-border-input)] rounded shadow-none h-6 min-h-6 max-h-6 `,`text-inherit bg-tertiary placeholder:text-[var(--oh-muted)]`,`focus:outline-none focus:ring-0 focus:border-[var(--oh-border-input)]`,`disabled:bg-tertiary disabled:cursor-not-allowed disabled:opacity-60`,`pl-1.5 pr-[1px] cursor-pointer text-xs font-normal leading-5`,C&&`pl-6`,c)}),"data-testid":`git-provider-dropdown`}),(0,Q.jsx)(`div`,{className:`absolute right-0 top-1/2 transform -translate-y-1/2 flex items-center gap-1`,children:(0,Q.jsx)(ga,{isOpen:_,disabled:a,getToggleButtonProps:v,iconClassName:l})}),o&&(0,Q.jsx)(ba,{hasSelection:!!C})]}),(0,Q.jsx)(ya,{isOpen:_,filteredItems:g,inputValue:d,highlightedIndex:x,selectedItem:C,getMenuProps:y,getItemProps:S,renderItem:w,renderEmptyState:T,itemKey:e=>e}),(0,Q.jsx)(xa,{isError:!!i,message:i})]})}var Ca=(e,t=30,n)=>i({queryKey:[`repository`,e,`branches`,`paginated`,t,n],queryFn:async({pageParam:r})=>!e||!n?{items:[],next_page_id:null}:Xe.getRepositoryBranches(e,n,``,r??void 0,t),enabled:!!e&&!!n,staleTime:1e3*60*5,getNextPageParam:e=>e.next_page_id?e.next_page_id:void 0,initialPageParam:null});function wa(e,t,n=30,i){return r({queryKey:[`repository`,e,`branches`,`search`,t,n,i],queryFn:async()=>!e||!t||!i?[]:(await Xe.searchRepositoryBranches(e,i,t,void 0,n)).items,enabled:!!e&&!!t&&!!i,staleTime:1e3*60*5,gcTime:1e3*60*15})}function Ta(e,t,n,r,i,a){let{data:o,fetchNextPage:s,hasNextPage:c,isLoading:l,isFetchingNextPage:u,isError:d}=Ca(e,30,t),{data:f,isLoading:p}=wa(e,r,30,t),m=(0,J.useMemo)(()=>o?.pages?.flatMap(e=>e.items)||[],[o]),h=(0,J.useMemo)(()=>n?m.find(e=>e.name===n):null,[m,n]),{data:g,isLoading:_}=wa(e,n&&!h&&m.length>0&&!r?n:``,30,t);return{branches:(0,J.useMemo)(()=>{let e=r&&f&&i!==a?.name,t=e?f:m;if(n){let r=e?t.find(e=>e.name===n):h;if(!r&&g&&g.length>0)r=g.find(e=>e.name===n),r&&(t=[r,...t]);else if(r){let e=t.filter(e=>e.name!==n);t=[r,...e]}}return t},[r,f,m,a,i,n,h,g]),allBranches:m,fetchNextPage:s,hasNextPage:c,isLoading:l||_,isFetchingNextPage:u,isError:d,isSearchLoading:p}}function Ea({isOpen:e,filteredBranches:t,inputValue:n,highlightedIndex:r,selectedItem:i,getMenuProps:a,getItemProps:o,onScroll:s,menuRef:c}){return(0,Q.jsx)(`div`,{"data-testid":`git-branch-dropdown-menu`,children:(0,Q.jsx)(ya,{isOpen:e,filteredItems:t,inputValue:n,highlightedIndex:r,selectedItem:i,getMenuProps:a,getItemProps:o,onScroll:s,menuRef:c,renderItem:(e,t,n,r,i)=>(0,Q.jsx)(_a,{item:e,index:t,isSelected:r?.name===e.name,getItemProps:i,getDisplayText:e=>e.name,getItemKey:e=>e.name},e.name),renderEmptyState:e=>(0,Q.jsx)(`li`,{className:`px-3 py-2`,children:(0,Q.jsx)(va,{inputValue:e,searchMessage:`No branches found`,emptyMessage:`No branches available`,testId:`git-branch-dropdown-empty`})}),itemKey:e=>e.name})})}function Da({repository:e,provider:t,selectedBranch:n,onBranchSelect:r,defaultBranch:i,placeholder:a=`Select branch...`,disabled:o=!1,className:s}){let[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(!1),f=Qe(c,300),p=(0,J.useRef)(null),m=(0,J.useMemo)(()=>f.trim().length>0?f.trim():``,[f]),{branches:h,isLoading:g,isError:_,fetchNextPage:v,hasNextPage:y,isFetchingNextPage:b,isSearchLoading:x}=Ta(e,t,i||null,m,c,n),S=_?Error(`Failed to load branches`):null,C=(0,J.useCallback)(()=>{l(``),r(null),d(!0)},[r]),w=(0,J.useCallback)(e=>{r(e),l(``)},[r]),T=(0,J.useCallback)(e=>{let{scrollTop:t,scrollHeight:n,clientHeight:r}=e.currentTarget;n-t<=r*1.5&&y&&!b&&v()},[y,b,v]),{isOpen:E,selectedItem:D,highlightedIndex:O,getInputProps:k,getItemProps:A,getMenuProps:j,getToggleButtonProps:M}=ke({items:h,selectedItem:n,itemToString:e=>e?.name||``,onSelectedItemChange:({selectedItem:e})=>{w(e||null)},inputValue:c,stateReducer:(e,t)=>t.type===ke.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes});(0,J.useEffect)(()=>{e&&(r(null),d(!1))},[e,r]),(0,J.useEffect)(()=>{if(e&&i&&!n&&!u&&h.length>0&&!g){let e=h.find(e=>e.name===i);e&&r(e)}},[e,i,n,u,h,r,g]),(0,J.useEffect)(()=>{l(``)},[e]),(0,J.useEffect)(()=>{n&&!E?l(n.name):!n&&!E&&l(``)},[n,E]);let ee=g||x||b;return(0,Q.jsxs)(`div`,{className:B(`relative`,s),children:[(0,Q.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[(0,Q.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:ee?(0,Q.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-white/20 border-t-white rounded-full`}):(0,Q.jsx)(Or,{width:16,height:16})}),(0,Q.jsx)(`input`,{...k({disabled:o||!e,placeholder:a,className:B(we,`text-inherit shadow-none pl-7 pr-16 text-sm font-normal leading-5`,`placeholder:text-[var(--oh-muted)]`,`disabled:cursor-not-allowed disabled:opacity-60`),onChange:e=>{l(e.target.value)}}),"data-testid":`git-branch-dropdown-input`}),(0,Q.jsxs)(`div`,{className:`absolute right-1 top-1/2 transform -translate-y-1/2 flex items-center`,children:[n&&(0,Q.jsx)(ha,{disabled:o,onClear:C}),(0,Q.jsx)(ga,{isOpen:E,disabled:o||!e,getToggleButtonProps:M})]})]}),(0,Q.jsx)(Ea,{isOpen:E,filteredBranches:h,inputValue:c,highlightedIndex:O,selectedItem:D,getMenuProps:j,getItemProps:A,onScroll:T,menuRef:p}),(0,Q.jsx)(xa,{isError:!!S})]})}function Oa(e,t){let[n,r]=(0,J.useState)([]),[i,a]=(0,J.useState)(!1);return(0,J.useEffect)(()=>{(async()=>{if(!t){r([]);return}if(e.startsWith(`https://`)){let n=e.match(/https:\/\/[^/]+\/([^/]+\/[^/]+)/);if(n){let e=n[1];a(!0);try{r((await Xe.searchGitRepositories(e,t,3)).items)}catch{r([])}finally{a(!1)}}}else r([])})()},[e,t]),{urlSearchResults:n,isUrlSearchLoading:i}}function ka(e,t,n,r,i,a,o){let{data:s,fetchNextPage:c,hasNextPage:l,isLoading:u,isFetchingNextPage:d,isError:f}=Ve({provider:e,enabled:!t}),{data:p,isLoading:m}=Ke(n,e,(0,J.useMemo)(()=>i===o,[o,i])),h=(0,J.useMemo)(()=>s?.pages?.flatMap(e=>e.items)||[],[s]),g=(0,J.useMemo)(()=>a&&[...h,...r,...p||[]].find(e=>e.id===a)||null,[h,r,p,a]),_=(0,J.useMemo)(()=>r.length>0?r:n&&p&&i!==g?.full_name?p:h,[r,n,p,h,g,i]);return(0,J.useEffect)(()=>{!t&&!u&&!d&&!m&&l&&!n&&r.length===0&&_.length>0&&_.length<10&&c()},[t,u,d,m,l,n,r.length,_.length,c]),{repositories:_,allRepositories:h,selectedRepository:g,fetchNextPage:c,hasNextPage:l,isLoading:u,isFetchingNextPage:d,isError:f,isSearchLoading:m}}function Aa({provider:e,value:t,repositoryName:n,placeholder:r=`Search repositories...`,className:i,disabled:a=!1,onChange:o}){let{t:s}=p(`openhands`),{recentRepositories:c}=Ye(),[l,u]=(0,J.useState)(``),[f,m]=(0,J.useState)(null),h=Qe(l,300),g=(0,J.useRef)(null),_=(0,J.useMemo)(()=>{if(h.startsWith(`https://`)){let e=h.match(/https:\/\/[^/]+\/([^/]+\/[^/]+)/);return e?e[1]:h}return h},[h]),{urlSearchResults:v,isUrlSearchLoading:y}=Oa(l,e),{repositories:b,selectedRepository:x,fetchNextPage:S,hasNextPage:C,isLoading:w,isFetchingNextPage:T,isError:E,isSearchLoading:D}=ka(e,a,_,v,l,t,n),O=x??f,k=(0,J.useMemo)(()=>{let t=c.filter(t=>t.git_provider===e);if(!l?.trim())return t;let n=l.startsWith(`https://`)?_:l;return t.filter(e=>e.full_name.toLowerCase().includes(n.toLowerCase()))},[c,e,l,_]),A=(0,J.useCallback)(e=>{let t=new Set(k.map(e=>e.id)),n=e.filter(e=>!t.has(e.id));return[...k,...n]},[k]),j=(0,J.useMemo)(()=>{let e;if(v.length>0)e=b;else if(l===x?.full_name)e=b;else if(!l?.trim())e=b;else{let t=l.startsWith(`https://`)?_:l;e=b.filter(e=>e.full_name.toLowerCase().includes(t.toLowerCase()))}return A(e)},[b,l,x,v,_,A]),M=(0,J.useCallback)(e=>{m(e),o?.(e||void 0),e&&u(e.full_name)},[o]),ee=(0,J.useCallback)(()=>{m(null),M(null),u(``)},[M]),te=(0,J.useCallback)(e=>{let{scrollTop:t,scrollHeight:n,clientHeight:r}=e.currentTarget;t+r>=n-10&&C&&!T&&S()},[C,T,S]),{isOpen:N,getToggleButtonProps:ne,getMenuProps:re,getInputProps:ie,highlightedIndex:P,getItemProps:ae,selectedItem:F}=ke({items:j,itemToString:e=>e?.full_name||``,selectedItem:f,onSelectedItemChange:({selectedItem:e})=>{M(e)},inputValue:l,stateReducer:(e,t)=>t.type===ke.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes});(0,J.useEffect)(()=>{x?m(x):t===null&&m(null)},[x,t]),(0,J.useEffect)(()=>{N||u(O?.full_name??``)},[O,N]);let I=w||D||T||y,L=(e,t,n,r,i)=>(0,Q.jsx)(_a,{item:e,index:t,isSelected:r?.id===e.id,getItemProps:i,getDisplayText:e=>e.full_name,getItemKey:e=>e.id},e.id),R=e=>(0,Q.jsx)(va,{inputValue:e,searchMessage:s(d.HOME$NO_REPOSITORY_FOUND),emptyMessage:s(d.COMMON$NO_REPOSITORY),testId:`git-repo-dropdown-empty`}),z=(0,J.useMemo)(()=>k.length===0?null:(0,Q.jsx)(`div`,{children:(0,Q.jsx)(q.Text,{className:`text-xs text-content-2 font-semibold leading-4 pl-2`,children:s(d.COMMON$MOST_RECENT)})}),[k,f,ae,s]);return(0,Q.jsxs)(`div`,{className:B(`relative`,i),children:[(0,Q.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[(0,Q.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:I?(0,Q.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-white/20 border-t-white rounded-full`}):(0,Q.jsx)(He,{width:16,height:16})}),(0,Q.jsx)(`input`,{...ie({disabled:a,placeholder:r,className:B(we,`text-inherit shadow-none pl-7 pr-16 text-sm font-normal leading-5`,`placeholder:text-[var(--oh-muted)]`,`disabled:cursor-not-allowed disabled:opacity-60`),onChange:e=>{u(e.target.value)}}),"data-testid":`git-repo-dropdown`}),(0,Q.jsxs)(`div`,{className:`absolute right-1 top-1/2 transform -translate-y-1/2 flex items-center`,children:[O&&(0,Q.jsx)(ha,{disabled:a,onClear:ee}),(0,Q.jsx)(ga,{isOpen:N,disabled:a,getToggleButtonProps:ne})]})]}),(0,Q.jsx)(ya,{isOpen:N,filteredItems:j,inputValue:l,highlightedIndex:P,selectedItem:F,getMenuProps:re,getItemProps:ae,onScroll:te,menuRef:g,renderItem:L,renderEmptyState:R,stickyTopItem:z,testId:`git-repo-dropdown-menu`,numberOfRecentItems:k.length,itemKey:e=>e.id}),(0,Q.jsx)(xa,{isError:E})]})}function ja({className:e}){return(0,Q.jsx)(`div`,{className:B(`w-3 h-3 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300 absolute right-0 top-1/2 -translate-y-1/2 h-full w-10.5 pr-2.5 justify-end git-external-link-icon`,e),children:(0,Q.jsx)(Pt,{width:12,height:12,color:`white`})})}function Ma({selectedRepository:e,gitProvider:t,workspaceName:n,emptyStateLabel:r,onClick:i,disabled:a}){let{t:o}=p(`openhands`),{data:s}=pt(),c=!!e&&!!t,l=t?s?.provider_tokens_set[t]:null,u=c?fe(t,e,l):void 0,f=!e&&!n,m=e||n||o(d.COMMON$CONNECT_REPO);return c?(0,Q.jsxs)(`a`,{href:u,target:`_blank`,rel:`noopener noreferrer`,className:B(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2.5 py-1 rounded-[100px] flex-1 truncate relative`,`border border-[var(--oh-border)] bg-transparent hover:border-[var(--oh-border-subtle)] cursor-pointer`),children:[(0,Q.jsx)(`div`,{className:`w-3 h-3 flex items-center justify-center flex-shrink-0`,children:(0,Q.jsx)(et,{gitProvider:t,className:`w-3 h-3 inline-flex`})}),(0,Q.jsx)(`div`,{className:`font-normal text-white text-sm leading-5 truncate flex-1 min-w-0`,title:m,children:m}),(0,Q.jsx)(ja,{})]}):(0,Q.jsxs)(`button`,{type:`button`,onClick:i,disabled:a,className:B(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2.5 py-1 rounded-[100px] truncate relative`,`border border-[rgba(71,74,84,0.50)] bg-transparent`,a?`cursor-not-allowed opacity-50`:`cursor-pointer hover:border-[var(--oh-border-subtle)]`),children:[(0,Q.jsx)(`div`,{className:`w-3 h-3 flex items-center justify-center flex-shrink-0 text-white`,children:f?(0,Q.jsx)(y,{className:`w-3 h-3`,strokeWidth:2,"aria-hidden":!0,"data-testid":`git-control-bar-connect-repo-icon`}):(0,Q.jsx)(Ue,{width:12,height:12,color:`white`})}),(0,Q.jsx)(`div`,{className:`font-normal text-white text-sm leading-5 truncate flex-1 min-w-0`,title:m,children:m})]})}function Na({selectedBranch:e,selectedRepository:t,gitProvider:n}){let{t:r}=p(`openhands`),{data:i}=pt(),a=n?i?.provider_tokens_set[n]:null,o=!!e&&!!t&&!!n,s=o?le(n,t,e,a):void 0,c=e||r(d.COMMON$NO_BRANCH);return(0,Q.jsxs)(`a`,{href:o?s:void 0,target:`_blank`,rel:`noopener noreferrer`,className:B(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2.5 py-1 rounded-[100px] w-fit flex-shrink-0 max-w-[200px] truncate relative`,o?`border border-[var(--oh-border)] bg-transparent hover:border-[var(--oh-border-subtle)] cursor-pointer`:`border border-[rgba(71,74,84,0.50)] bg-transparent cursor-not-allowed min-w-[108px]`),children:[(0,Q.jsx)(`div`,{className:`w-3 h-3 flex items-center justify-center flex-shrink-0`,children:(0,Q.jsx)(Or,{width:12,height:12,color:`white`})}),(0,Q.jsx)(`div`,{className:`font-normal text-white text-sm leading-5 truncate`,title:c,children:c}),o&&(0,Q.jsx)(ja,{})]})}export{Hn as A,Mr as C,Qn as D,Dr as E,X as F,Lt as I,Ln as M,Fn as N,Zn as O,Nn as P,Nr as S,kr as T,Qr as _,Sa as a,Lr as b,_a as c,ma as d,ca as f,mi as g,Fi as h,Da as i,Vn as j,Xn as k,ga as l,Ji as m,Ma as n,ya as o,oa as p,Aa as r,va as s,Na as t,ha as u,zr as v,jr as w,Ir as x,Rr as y};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-DYXOLEck.js";import{a as r,d as i,o as a}from"./path-utils-onx24uF5.js";import{t as o}from"./useMutation-GSSKKebK.js";import{o as s,t as c}from"./declaration-CR6HMp29.js";import{n as l}from"./QueryClientProvider-Cnr-Yl3j.js";import{t as u}from"./useTranslation-B6voJV4y.js";import{a as d,n as f,t as p}from"./custom-toast-handlers-ufGJ6_Rc.js";import{g as m,i as ee,t as h}from"./utils-DCVfKFRt.js";import{t as g}from"./common-DqjLSBOt.js";import{d as _,n as v}from"./agent-server-client-options-HEOwGVIU.js";import{n as y}from"./active-backend-context-Beu-LZL-.js";import{n as te}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~jfc6hidu-DJS-rJdI.js";import{r as b}from"./vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-hTzSytKK.js";import{t as x}from"./agent-server-conversation-service.api-CORdqJZg.js";import{n as ne}from"./navigation-context-BdKYH32C.js";import{t as re}from"./dist-C3NfioQC.js";import{t as S}from"./proxy-BAdHH8QB.js";import{t as C}from"./react-Dy05vyj5.js";import{r as ie,t as w}from"./middleware-CfatjPYZ.js";import{t as T}from"./conversation-local-storage-YmOVXxxW.js";import{t as E}from"./use-is-authed-dw2026rR.js";import{r as ae}from"./use-settings-D5hbTS9t.js";import{o as oe,s as se,t as D}from"./vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-d2oallMa.js";import{t as ce}from"./git-status-mapper-DnL9OC8_.js";var O=s(),k=re(`shrink-0 self-stretch min-w-full bg-[var(--oh-border)]`,{variants:{orientation:{horizontal:`h-[1px]`},color:{light:`bg-[var(--oh-border)]`},size:{thin:`h-[1px]`},inset:{none:``,menu:``}},defaultVariants:{orientation:`horizontal`,color:`light`,size:`thin`,inset:`none`}});function A({orientation:e,color:t,size:n,inset:r,className:i,testId:a}){return r===`menu`?(0,O.jsx)(`div`,{"data-testid":a,role:`separator`,className:h(`relative min-w-full shrink-0 self-stretch`,`h-3`,i),children:(0,O.jsx)(`div`,{"aria-hidden":!0,className:`absolute top-1/2 -left-1 -right-1 h-px -translate-y-1/2 bg-[var(--oh-border)]`})}):(0,O.jsx)(`div`,{"data-testid":a,role:`separator`,className:h(k({orientation:e,color:t,size:n,inset:r}),i)})}var j=()=>{let e=l();return o({mutationFn:e=>x.deleteConversation(e.conversationId),onMutate:async t=>{await e.cancelQueries({queryKey:[`user`,`conversations`]});let n=e.getQueryData([`user`,`conversations`]);return e.setQueryData([`user`,`conversations`],e=>e?.filter(e=>e.conversation_id!==t.conversationId)),{previousConversations:n}},onSuccess:(e,t)=>{T(t.conversationId)},onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:()=>{e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`start-tasks`]})}})},M=()=>{let{t:e}=u(`openhands`),t=l(),{conversationId:n,navigate:i}=ne();return o({mutationKey:[`stop-conversation`],mutationFn:async e=>a(e.conversationId),onMutate:async()=>{let n=d.loading(e(c.TOAST$STOPPING_CONVERSATION),p);return await t.cancelQueries({queryKey:[`user`,`conversations`]}),{previousConversations:t.getQueryData([`user`,`conversations`]),toastId:n}},onError:(n,r,i)=>{i?.toastId&&d.dismiss(i.toastId),f(e(c.TOAST$FAILED_TO_STOP_CONVERSATION)),i?.previousConversations&&t.setQueryData([`user`,`conversations`],i.previousConversations)},onSuccess:(a,o,s)=>{s?.toastId&&d.dismiss(s.toastId),d.success(e(c.TOAST$CONVERSATION_STOPPED),p),r(t,o.conversationId,{execution_status:g.PAUSED,sandbox_status:`PAUSED`}),n===o.conversationId&&i(`/conversations`)}})},N=e(t()),P=e=>(0,O.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,O.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M22.1595 5.22752L20.9895 4.95152L17.8275 8.09552L16.0365 6.27152L19.1205 3.03602L18.8505 1.84802C18.1988 1.62999 17.5172 1.51461 16.83 1.50602C16.0804 1.49449 15.3365 1.63746 14.6445 1.92602C13.9764 2.22843 13.3725 2.65616 12.8655 3.18602C12.3011 3.72063 11.8542 4.36683 11.553 5.08352C10.9732 6.50984 10.9732 8.10619 11.553 9.53252C8.42587 12.609 5.3391 15.7263 2.29351 18.8835C1.97851 19.296 1.82851 19.8105 1.86751 20.328C1.89825 20.8846 2.14856 21.4063 2.56351 21.7785C2.74951 21.981 2.97151 22.149 3.21901 22.2705C3.47401 22.383 3.74851 22.4475 4.02601 22.461C4.50001 22.452 4.95451 22.272 5.30701 21.9555C7.62901 19.77 12.078 15.2805 14.6055 12.6495C15.291 12.9405 16.0275 13.0905 16.7715 13.089C17.5204 13.0884 18.2616 12.9377 18.9513 12.6458C19.641 12.3539 20.2652 11.9267 20.787 11.3895C21.8588 10.2964 22.4575 8.82543 22.4535 7.29452C22.4708 6.59398 22.3715 5.89544 22.1595 5.22752ZM4.39951 20.892C4.34178 20.9433 4.27218 20.9794 4.19701 20.997C4.12306 21.0098 4.04746 21.0098 3.97351 20.997C3.89598 20.9852 3.82213 20.956 3.75751 20.9115C3.68817 20.8709 3.62955 20.8144 3.58651 20.7465C3.37651 20.532 3.18001 20.124 3.37651 19.8945C5.43151 17.709 9.66301 13.437 12.309 10.8255C12.459 11.0235 12.624 11.2125 12.801 11.3895C12.978 11.574 13.1685 11.745 13.371 11.901C10.812 14.526 6.63901 18.747 4.40101 20.892H4.39951ZM21.0765 7.29452C21.0795 8.44202 20.6325 9.54452 19.8285 10.3665C19.0262 11.1536 17.9472 11.5944 16.8233 11.5944C15.6994 11.5944 14.6203 11.1536 13.818 10.3665C13.23 9.75286 12.8283 8.98485 12.6597 8.15183C12.4911 7.31882 12.5624 6.45505 12.8655 5.66102C13.0673 5.12062 13.3802 4.62858 13.784 4.21671C14.1879 3.80485 14.6737 3.48233 15.21 3.27002C15.7192 3.05688 16.266 2.94774 16.818 2.94902H17.199L14.4735 5.75852V6.80252L17.316 9.63152H18.306L21.0765 6.90752V7.29452ZM4.86001 10.032H7.15651L8.21401 11.1075L9.23101 10.0965L8.23351 9.07952V9.01502L8.31901 6.54152L7.98901 5.88602L3.69901 3.06302L2.81251 3.16202L1.56601 4.43552L1.46701 5.33402L4.22401 9.71102L4.86001 10.0335V10.032ZM3.44251 4.58402L6.91351 6.87002L6.85501 8.55452H5.24101L3.00301 5.01152L3.44251 4.58402ZM14.1 15.024L15.111 14.0145L19.77 18.792C20.1624 19.2045 20.3813 19.752 20.3813 20.3213C20.3813 20.8906 20.1624 21.4381 19.77 21.8505C19.4749 22.1535 19.0955 22.3605 18.6811 22.4448C18.2667 22.5291 17.8365 22.4866 17.4465 22.323C17.1976 22.2126 16.9744 22.0517 16.791 21.8505L12.078 17.046L13.0965 16.029L17.7945 20.82C17.8577 20.8897 17.9363 20.9436 18.024 20.9775C18.1967 21.0476 18.3899 21.0476 18.5625 20.9775C18.6502 20.9436 18.7288 20.8897 18.792 20.82C18.8577 20.755 18.9088 20.6768 18.942 20.5905C18.9764 20.5025 18.9947 20.409 18.996 20.3145C18.9945 20.2202 18.9767 20.1268 18.9435 20.0385C18.9103 19.9523 18.8592 19.8741 18.7935 19.809L14.1 15.024Z`,fill:`currentColor`})}),F=e=>(0,O.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,O.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 13.0605L17.469 18.531L18.531 17.4705L13.0605 12L18.531 6.53099L17.4705 5.46899L12 10.9395L6.53099 5.46899L5.47049 6.53099L10.9395 12L5.47049 17.469L6.53099 18.531L12 13.0605Z`,fill:`currentColor`})}),I=e=>(0,O.jsx)(`svg`,{height:24,viewBox:`0 0 24 24`,width:24,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,O.jsx)(`path`,{fill:`currentColor`,d:`m22 18-5 4-8-3v3l-4.19-5.75 12.91 1.05v-10.96l4.28-.69zm-17.19-1.75v-7.29l12.91-2.62-7.12-4.34v2.84l-6.63 1.92-1.97 2.62v5.69z`})}),L=e=>(0,O.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,O.jsx)(`path`,{d:`M21.0004 6.00001C21.0016 5.43668 20.8441 4.88442 20.5459 4.40644C20.2478 3.92846 19.8212 3.54406 19.3148 3.29726C18.8084 3.05046 18.2428 2.95122 17.6826 3.0109C17.1224 3.07059 16.5904 3.28678 16.1474 3.63473C15.7044 3.98269 15.3683 4.44835 15.1776 4.97841C14.9869 5.50848 14.9493 6.08152 15.0691 6.63197C15.1888 7.18241 15.4612 7.688 15.8549 8.09088C16.2487 8.49375 16.7479 8.77762 17.2954 8.91001V10.5C17.2978 10.6372 17.261 10.7722 17.1892 10.8891C17.1175 11.006 17.0138 11.1 16.8904 11.16L12.7354 13.32L8.59544 11.22C8.46356 11.1544 8.35443 11.0507 8.28221 10.9223C8.21 10.7939 8.17802 10.6468 8.19044 10.5V8.91001C8.89743 8.72746 9.51358 8.29333 9.92339 7.689C10.3332 7.08467 10.5085 6.35161 10.4165 5.62725C10.3245 4.90289 9.97149 4.23695 9.42361 3.75426C8.87573 3.27157 8.17062 3.00527 7.44044 3.00527C6.71026 3.00527 6.00514 3.27157 5.45726 3.75426C4.90938 4.23695 4.55635 4.90289 4.46435 5.62725C4.37234 6.35161 4.54768 7.08467 4.95749 7.689C5.36729 8.29333 5.98344 8.72746 6.69044 8.91001V10.5C6.6913 10.9156 6.80651 11.323 7.02346 11.6776C7.24041 12.0321 7.55073 12.3201 7.92044 12.51L12.0004 14.61V16.59C11.2934 16.7726 10.6773 17.2067 10.2675 17.811C9.85768 18.4153 9.68234 19.1484 9.77435 19.8728C9.86635 20.5971 10.2194 21.2631 10.7673 21.7457C11.3151 22.2284 12.0203 22.4947 12.7504 22.4947C13.4806 22.4947 14.1857 22.2284 14.7336 21.7457C15.2815 21.2631 15.6345 20.5971 15.7265 19.8728C15.8185 19.1484 15.6432 18.4153 15.2334 17.811C14.8236 17.2067 14.2074 16.7726 13.5004 16.59V14.61L17.5504 12.57C17.9317 12.3784 18.2501 12.0816 18.468 11.7148C18.686 11.348 18.7944 10.9265 18.7804 10.5V8.88001C19.4147 8.70922 19.9755 8.33496 20.3765 7.81469C20.7776 7.29442 20.9967 6.6569 21.0004 6.00001ZM6.00044 6.00001C6.00044 5.60218 6.15847 5.22065 6.43978 4.93934C6.72108 4.65804 7.10261 4.5 7.50044 4.5C7.89826 4.5 8.27979 4.65804 8.5611 4.93934C8.8424 5.22065 9.00044 5.60218 9.00044 6.00001C9.00044 6.39783 8.8424 6.77936 8.5611 7.06067C8.27979 7.34197 7.89826 7.50001 7.50044 7.50001C7.10261 7.50001 6.72108 7.34197 6.43978 7.06067C6.15847 6.77936 6.00044 6.39783 6.00044 6.00001ZM14.2054 19.5C14.2054 19.8978 14.0474 20.2794 13.7661 20.5607C13.4848 20.842 13.1033 21 12.7054 21C12.3076 21 11.9261 20.842 11.6448 20.5607C11.3635 20.2794 11.2054 19.8978 11.2054 19.5C11.2054 19.1022 11.3635 18.7207 11.6448 18.4393C11.9261 18.158 12.3076 18 12.7054 18C13.1033 18 13.4848 18.158 13.7661 18.4393C14.0474 18.7207 14.2054 19.1022 14.2054 19.5ZM18.0004 7.50001C17.6026 7.50001 17.2211 7.34197 16.9398 7.06067C16.6585 6.77936 16.5004 6.39783 16.5004 6.00001C16.5004 5.60218 16.6585 5.22065 16.9398 4.93934C17.2211 4.65804 17.6026 4.5 18.0004 4.5C18.3983 4.5 18.7798 4.65804 19.0611 4.93934C19.3424 5.22065 19.5004 5.60218 19.5004 6.00001C19.5004 6.39783 19.3424 6.77936 19.0611 7.06067C18.7798 7.34197 18.3983 7.50001 18.0004 7.50001Z`,fill:`currentColor`})}),R=e=>(0,O.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,O.jsx)(`path`,{d:`M12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12ZM7.79289 7.79289C8.18342 7.40237 8.81658 7.40237 9.20711 7.79289L12 10.5858L14.7929 7.79289C15.1834 7.40237 15.8166 7.40237 16.2071 7.79289C16.5976 8.18342 16.5976 8.81658 16.2071 9.20711L13.4142 12L16.2071 14.7929C16.5976 15.1834 16.5976 15.8166 16.2071 16.2071C15.8166 16.5976 15.1834 16.5976 14.7929 16.2071L12 13.4142L9.20711 16.2071C8.81658 16.5976 8.18342 16.5976 7.79289 16.2071C7.40237 15.8166 7.40237 15.1834 7.79289 14.7929L10.5858 12L7.79289 9.20711C7.40237 8.81658 7.40237 8.18342 7.79289 7.79289Z`,fill:`currentColor`})}),z=()=>{let e=te(),{t}=u(`openhands`);return o({mutationKey:[`conversations`,`download`],mutationFn:async t=>{e.capture(`download_trajectory_button_clicked`),ee(await x.downloadConversation(t),`conversation_${t}.zip`)},onError:()=>{f(t(c.CONVERSATION$DOWNLOAD_ERROR))}})},B=e=>(0,O.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,O.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M21 15V2.25L20.25 1.5H5.60999C5.26596 1.50381 4.92547 1.56987 4.60499 1.695C4.28194 1.83856 3.99081 2.0452 3.74868 2.30278C3.50656 2.56036 3.31831 2.8637 3.19499 3.195C3.07229 3.49004 3.00614 3.80552 2.99999 4.125V18.375C2.99638 18.7197 3.06272 19.0616 3.19499 19.38C3.46049 20.0205 3.96749 20.532 4.60499 20.805C4.92547 20.9301 5.26596 20.9962 5.60999 21H5.99999V19.5H5.60999C5.46032 19.5005 5.31218 19.4698 5.17499 19.41C4.90342 19.2974 4.68763 19.0816 4.57499 18.81C4.52706 18.6699 4.50174 18.5231 4.49999 18.375V17.625C4.50174 17.4769 4.52706 17.3301 4.57499 17.19C4.68763 16.9184 4.90342 16.7026 5.17499 16.59C5.31033 16.531 5.45634 16.5004 5.60399 16.5H19.5V19.5H13.5V21H20.25L21 20.25V15ZM5.99999 15V3H19.5V15H5.99999ZM7.49999 4.5H8.99999V6H7.49999V4.5ZM7.49999 7.5H8.99999V9H7.49999V7.5ZM8.99999 10.5H7.49999V12H8.99999V10.5ZM9.74999 20.235L7.91999 22.5H7.49999V18H12V22.5H11.58L9.74999 20.235Z`,fill:`currentColor`})}),V=e=>{if(!e)return[];let t=[];for(let n of Object.keys(e))n&&t.push(n);return t},H=()=>{let{data:e,isLoading:t}=ae();return{providers:N.useMemo(()=>V(e?.provider_tokens_set),[e?.provider_tokens_set]),isLoadingSettings:t}};function U(){let e=_().backend;if(e.kind!==`cloud`)throw Error(`Cloud git call requires a cloud backend.`);return e}async function W(e){let t=U(),n=new URLSearchParams;n.set(`provider`,e.provider),n.set(`limit`,String(e.limit??100)),e.query&&n.set(`query`,e.query),e.pageId&&n.set(`page_id`,e.pageId),e.installationId&&n.set(`installation_id`,e.installationId);let r=await S({backend:t,method:`GET`,path:`/api/v1/git/repositories/search?${n.toString()}`});return{items:r?.items??[],next_page_id:r?.next_page_id??null}}async function G(e){let t=U(),n=new URLSearchParams;n.set(`provider`,e.provider),n.set(`limit`,String(e.limit??100)),e.pageId&&n.set(`page_id`,e.pageId);let r=await S({backend:t,method:`GET`,path:`/api/v1/git/installations/search?${n.toString()}`});return{items:r?.items??[],next_page_id:r?.next_page_id??null}}async function K(e){let t=U(),n=new URLSearchParams;n.set(`provider`,e.provider),n.set(`repository`,e.repository),n.set(`limit`,String(e.limit??30)),n.set(`query`,e.query??``),e.pageId&&n.set(`page_id`,e.pageId);let r=await S({backend:t,method:`GET`,path:`/api/v1/git/branches/search?${n.toString()}`});return{items:r?.items??[],next_page_id:r?.next_page_id??null}}var q=e=>e,J=()=>_().backend.kind===`cloud`,Y=e=>!e||e===`undefined`||e===`null`,X={items:[],next_page_id:null},Z={items:[],next_page_id:null},Q={items:[],next_page_id:null},$=class{static async searchGitRepositories(e,t,n=100,r,i){return Y(t)||!J()?X:W({provider:q(t),query:e||void 0,limit:n,pageId:r,installationId:i})}static async retrieveUserGitRepositories(e,t,n=30,r){return Y(e)||!J()?X:W({provider:q(e),limit:n,pageId:t,installationId:r})}static async retrieveInstallationRepositories(e,t,n,r,i=30){if(Y(e)||!J())return X;let a=n[t];return a?W({provider:q(e),installationId:a,limit:i,pageId:r}):X}static async getRepositoryBranches(e,t,n=``,r,i=30){return Y(t)||!J()?Z:K({provider:q(t),repository:e,query:n||void 0,pageId:r,limit:i})}static async searchRepositoryBranches(e,t,n,r,i=30){return Y(t)||!J()?Z:K({provider:q(t),repository:e,query:n,pageId:r,limit:i})}static async getUserInstallations(e,t,n=100){return Y(e)||!J()?Q:G({provider:q(e),pageId:t,limit:n})}static async getGitChanges(e){let t=await x.resolveConversationWorkingDir(e);return(await new b(v({workingDir:t})).gitChanges(t,{ref:`HEAD`})).map(e=>({path:e.path,status:ce(String(e.status))}))}static async getGitChangeDiff(e,t){let n=await new b(v()).gitDiff(t,{ref:`HEAD`});return{modified:n.modified??``,original:n.original??``}}},le=e=>{let{data:t}=E(),{providers:r}=H(),i=y();return n({queryKey:[`installations`,e,i.backend.id,i.orgId],queryFn:()=>$.getUserInstallations(e),enabled:t&&!!e&&r.length>0&&m(e,i.backend.kind),staleTime:1e3*60*5,gcTime:1e3*60*15})};function ue(e){let{provider:t,pageSize:n=30,enabled:r=!0}=e,{providers:a}=H(),{data:o}=le(t),s=o?.items,c=y(),l=t?m(t,c.backend.kind):!1,u=i({queryKey:[`repositories`,t,l,n,c.backend.id,c.orgId,...l?[s||[]]:[]],queryFn:async({pageParam:e})=>{if(!t)throw Error(`Provider is required`);if(l){if(!s)throw Error(`Missing installation list`);let r=e;return await $.retrieveInstallationRepositories(t,r.installationIndex,s,r.pageId??void 0,n)}let r=e;return await $.retrieveUserGitRepositories(t,r??void 0,n)},getNextPageParam:(e,t,n)=>{if(l&&s){let t=n;if(e.next_page_id)return{installationIndex:t.installationIndex,pageId:e.next_page_id};let r=t.installationIndex+1;return r<s.length?{installationIndex:r,pageId:null}:void 0}return e.next_page_id},initialPageParam:l?{installationIndex:0,pageId:null}:null,enabled:r&&(a||[]).length>0&&!!t&&(!l||Array.isArray(s)&&s.length>0),staleTime:1e3*60*5,gcTime:1e3*60*15,refetchOnWindowFocus:!1});return{data:u.data,isLoading:u.isLoading,isError:u.isError,hasNextPage:u.hasNextPage,isFetchingNextPage:u.isFetchingNextPage,fetchNextPage:u.fetchNextPage,onLoadMore:()=>{u.hasNextPage&&!u.isFetchingNextPage&&u.fetchNextPage()}}}function de(e,t,r,i=100){return n({queryKey:[`repositories`,`search`,e,t,i],queryFn:async()=>t?(await $.searchGitRepositories(e,t,i)).items:[],enabled:!!e&&!!t&&!r,staleTime:1e3*60*5,gcTime:1e3*60*15})}function fe(e,t){let[n,r]=(0,N.useState)(e);return(0,N.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}var pe={recentRepositories:[],lastSelectedProvider:null},me=C()(ie((e,t)=>({...pe,addRecentRepository:t=>e(e=>({recentRepositories:[t,...e.recentRepositories.filter(e=>e.id!==t.id)].slice(0,3)})),clearRecentRepositories:()=>e(()=>({recentRepositories:[]})),getRecentRepositories:()=>t().recentRepositories,setLastSelectedProvider:t=>e(()=>({lastSelectedProvider:t})),getLastSelectedProvider:()=>t().lastSelectedProvider}),{name:`home-store`,storage:w(()=>localStorage)}));function he({gitProvider:e,className:t}){return(0,O.jsxs)(O.Fragment,{children:[e===`github`&&(0,O.jsx)(oe,{size:14,className:t}),e===`gitlab`&&(0,O.jsx)(se,{size:14,className:t}),e===`bitbucket`&&(0,O.jsx)(D,{size:14,className:t}),e===`bitbucket_data_center`&&(0,O.jsx)(D,{size:14,className:t}),e===`azure_devops`&&(0,O.jsx)(I,{className:h(t,`w-[14px] h-[14px]`)})]})}export{A as _,ue as a,B as c,L as d,I as f,j as g,M as h,de as i,z as l,P as m,me as n,$ as o,F as p,fe as r,H as s,he as t,R as u};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-BFRubm34.js";import{t as e}from"./react-CM_dJw1Z.js";import{o as t}from"./declaration-CR6HMp29.js";e();var n=t(),r=e=>(0,n.jsx)(`svg`,{viewBox:`0 0 18 18`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,n.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M2.4375 9C2.4375 5.37563 5.37563 2.4375 9 2.4375C12.6244 2.4375 15.5625 5.37563 15.5625 9C15.5625 12.6244 12.6244 15.5625 9 15.5625C5.37563 15.5625 2.4375 12.6244 2.4375 9ZM4.13812 6.5625C4.81317 5.21867 6.02897 4.19333 7.49996 3.77204C7.15155 4.17641 6.85182 4.65395 6.60713 5.17892C6.40828 5.60556 6.24263 6.06975 6.11494 6.5625H4.13812ZM3.72196 7.6875C3.61778 8.10783 3.5625 8.54746 3.5625 9C3.5625 9.45254 3.61778 9.89217 3.72196 10.3125H5.89738C5.84161 9.88758 5.8125 9.44852 5.8125 8.99998C5.8125 8.55142 5.84161 8.11239 5.89737 7.6875H3.72196ZM7.0333 7.6875C6.97087 8.10689 6.9375 8.54634 6.9375 8.99998C6.9375 9.45367 6.97087 9.89313 7.0333 10.3125H10.9667C11.0291 9.89311 11.0625 9.45367 11.0625 9.00002C11.0625 8.54637 11.0291 8.1069 10.9667 7.6875H7.0333ZM12.1026 7.6875C12.1584 8.1124 12.1875 8.55145 12.1875 9.00002C12.1875 9.44858 12.1584 9.88762 12.1026 10.3125H14.278C14.3822 9.89217 14.4375 9.45254 14.4375 9C14.4375 8.54746 14.3822 8.10783 14.278 7.6875H12.1026ZM13.8619 6.5625H11.885C11.7574 6.06976 11.5917 5.6056 11.3929 5.17897C11.1482 4.65397 10.8484 4.1764 10.5 3.77203C11.971 4.19331 13.1868 5.21866 13.8619 6.5625ZM10.7171 6.5625H7.28293C7.38007 6.23971 7.49559 5.93571 7.62681 5.65419C7.99835 4.85708 8.48101 4.26914 8.99997 3.92442C9.51895 4.26913 10.0016 4.8571 10.3732 5.65424C10.5044 5.93575 10.6199 6.23973 10.7171 6.5625ZM4.13812 11.4375H6.11496C6.24963 11.9572 6.42655 12.4452 6.64015 12.8909C6.87835 13.3879 7.16685 13.8413 7.50006 14.228C6.02902 13.8067 4.81318 12.7814 4.13812 11.4375ZM10.7171 11.4375H7.28295C7.3869 11.7829 7.51191 12.1068 7.65465 12.4047C8.02305 13.1733 8.49456 13.7398 9.00007 14.0756C9.51902 13.7308 10.0017 13.1429 10.3732 12.3458C10.5044 12.0643 10.6199 11.7603 10.7171 11.4375ZM11.3929 12.8211C11.5917 12.3944 11.7574 11.9303 11.8851 11.4375H13.8619C13.1868 12.7813 11.971 13.8067 10.5 14.228C10.8485 13.8236 11.1482 13.346 11.3929 12.8211Z`,fill:`currentColor`})});export{r as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{L as n}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{t as r}from"./vendor~root~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-s~f2l2lr17-DYXOLEck.js";import{o as i,t as a}from"./declaration-CR6HMp29.js";import{n as o}from"./QueryClientProvider-Cnr-Yl3j.js";import{t as s}from"./use-is-creating-conversation-DX2qSlfL.js";import{t as c}from"./useTranslation-B6voJV4y.js";import{t as l}from"./retrieve-axios-error-message-BY-yIkIq.js";import{t as u}from"./createLucideIcon-Ddu8jDOQ.js";import{s as d}from"./vendor~home~conversation-panel~conversation-PK1-gtXU.js";import{n as f}from"./git-branch-DQS2nMK4.js";import{t as p}from"./check-CYxAHs85.js";import{a as m,n as h,r as g,t as _}from"./custom-toast-handlers-ufGJ6_Rc.js";import{d as v,m as y}from"./conversation-websocket-context-DvHgx_FE.js";import{a as b,i as x,r as S,t as C}from"./llm-settings-DFkXHuvT.js";import{t as w}from"./utils-DCVfKFRt.js";import{T,b as E,g as D,n as O}from"./agent-server-client-options-HEOwGVIU.js";import{n as k,r as A}from"./active-backend-context-Beu-LZL-.js";import{f as j}from"./vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-hTzSytKK.js";import{t as M}from"./modal-backdrop-RfNCrSpK.js";import{n as N,r as ee,t as te}from"./modal-body-aoa2fx5W.js";import{r as P}from"./base-modal-C2oy2EBG.js";import{a as ne,g as re,o as ie,p as ae,t as F}from"./brand-button-DJ_S16rO.js";import{t as oe}from"./use-config-OIMQLQ2s.js";import{n as I}from"./navigation-context-BdKYH32C.js";import{t as L}from"./vendor~root-layout~home~conversation-panel~conversation-B5WNMnt4.js";import{t as R}from"./styled-tooltip-hdfMXPQC.js";import{i as se,n as z}from"./dropdown-classes-BsVmxlNG.js";import{c as ce,d as B,n as le,s as V}from"./git-provider-icon-CHdGBdU2.js";import{a as ue,t as de}from"./backend-form-modal-CDnEYjaU.js";import{t as fe}from"./conversation-store-CC-isCnP.js";import{t as H}from"./modal-close-button-CtWOUMmw.js";import{t as pe}from"./settings-input-CehsXnb3.js";import{i as me,n as U,o as he,s as ge}from"./acp-providers-CPdgcp13.js";import{r as _e}from"./use-settings-D5hbTS9t.js";import{t as W}from"./use-create-conversation-Bszyp13O.js";import{a as G,c as ve,i as ye,l as be,n as xe,o as Se,r as K,s as Ce,t as we,u as q}from"./manage-workspaces-modal-CtRbxREx.js";import{l as Te}from"./vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-d2oallMa.js";import{t as Ee}from"./folder-D1T2W1cj.js";import{t as De}from"./use-save-settings-DkAOEfD9.js";import{A as Oe,F as ke,I as Ae,M as je,N as Me,a as Ne,c as Pe,d as Fe,f as Ie,i as Le,l as Re,n as ze,o as Be,p as Ve,r as He,s as Ue,t as We,u as Ge}from"./git-control-bar-branch-button-DtIrOrie.js";import{t as Ke}from"./use-llm-profiles-C861aFAq.js";import{r as J}from"./typography-BDgnT7Yp.js";import{r as qe}from"./settings-utils-DY04tWG1.js";import{n as Je,t as Ye}from"./use-get-secrets-8Jby8ele.js";import{t as Xe}from"./recommended-automations-launcher-uTyODuzB.js";var Ze=u(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),Qe=u(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),Y=e(t(),1);async function X(e){let{imagesToEmbed:t}=Ae(e.images,e.imagesMarkedUploadAsFile),n=await Promise.all(t.map(e=>je(e)));v.getState().enqueuePendingMessage({conversationId:e.conversationId,text:e.text,content:e.text,imageUrls:n,fileUrls:[]})}var Z=i();function $e(){let{t:e}=c(`openhands`);return(0,Z.jsx)(`div`,{className:`flex min-h-[80px] w-full items-center justify-center py-2`,children:(0,Z.jsx)(J.H1,{className:`w-full text-center leading-normal`,children:e(`HOME$LETS_START_BUILDING`)})})}function et({kind:e,onClick:t,disabled:n=!1,disabledTooltip:r}){let{t:i}=c(`openhands`),o=e===`local`,s=i(o?a.HOME$OPEN_WORKSPACE:a.COMMON$OPEN_REPOSITORY),l=(0,Z.jsxs)(`button`,{type:`button`,"data-testid":o?`open-workspace-button`:`open-repository-button`,onClick:t,disabled:n,className:w(`flex flex-row items-center gap-2 rounded-full px-2.5 py-1 text-white`,ne,ae,re,n?`cursor-not-allowed opacity-50`:`cursor-pointer hover:bg-surface-raised`),children:[(0,Z.jsx)(`span`,{className:`flex h-4 w-4 shrink-0 items-center justify-center`,children:o?(0,Z.jsx)(f,{"aria-hidden":!0,className:`h-4 w-4`,strokeWidth:2}):(0,Z.jsx)(B,{width:16,height:16,className:`shrink-0`})}),(0,Z.jsx)(`span`,{className:`text-sm font-normal leading-5`,children:s})]});return r?(0,Z.jsx)(R,{content:r,placement:`top`,children:(0,Z.jsx)(`span`,{className:`inline-flex`,children:l})}):l}function tt({workspaces:e,value:t,placeholder:n,className:r,disabled:i=!1,disabledTooltip:o,showManage:s,onChange:l,onAddClick:u,onManageClick:d}){let{t:f}=c(`openhands`),[p,m]=(0,Y.useState)(t?.name??``),h=(0,Y.useRef)(null),g=(0,Y.useMemo)(()=>{let t=p.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)):e},[e,p]),_=(0,Y.useCallback)(e=>{l(e),e&&m(e.name)},[l]),v=(0,Y.useCallback)(()=>{_(null),m(``)},[_]),{isOpen:y,getToggleButtonProps:b,getMenuProps:x,getInputProps:S,highlightedIndex:C,getItemProps:T,selectedItem:E,closeMenu:D}=L({items:g,itemToString:e=>e?.name??``,selectedItem:t,onSelectedItemChange:({selectedItem:e})=>{_(e??null)},inputValue:p,stateReducer:(e,t)=>t.type===L.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes}),O=(e,t,n,r,i)=>(0,Z.jsx)(Pe,{item:e,index:t,isSelected:r?.id===e.id,getItemProps:i,getDisplayText:e=>e.name,getItemKey:e=>e.id},e.id),k=e=>(0,Z.jsx)(Ue,{inputValue:e,searchMessage:f(a.HOME$NO_WORKSPACES),emptyMessage:f(a.HOME$NO_WORKSPACES),testId:`workspace-dropdown-empty`}),A=(0,Y.useMemo)(()=>(0,Z.jsxs)(`div`,{className:se,children:[(0,Z.jsx)(`button`,{type:`button`,"data-testid":`add-workspaces-button`,className:w(z,`cursor-pointer`),onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),D(),u()},children:f(a.HOME$ADD_WORKSPACES)}),(s??e.length>0)&&(0,Z.jsx)(`button`,{type:`button`,"data-testid":`manage-workspaces-button`,className:w(z,`cursor-pointer`),onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),D(),d()},children:f(a.HOME$MANAGE_WORKSPACES)})]}),[u,d,f,D,e.length,s]),j=(0,Z.jsxs)(`div`,{className:w(`relative`,r),children:[(0,Z.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[(0,Z.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:(0,Z.jsx)(ce,{width:16,height:16})}),(0,Z.jsx)(`input`,{...S({disabled:i,placeholder:n??f(a.HOME$WORKSPACE_PLACEHOLDER),className:w(ie,`text-inherit shadow-none pl-7 pr-16 text-sm font-normal leading-5`,`placeholder:text-[var(--oh-muted)]`,`disabled:cursor-not-allowed disabled:opacity-60`),onChange:e=>{m(e.target.value)}}),"data-testid":`workspace-dropdown`}),(0,Z.jsxs)(`div`,{className:`absolute right-1 top-1/2 transform -translate-y-1/2 flex items-center`,children:[t&&(0,Z.jsx)(Ge,{disabled:i,onClear:v}),(0,Z.jsx)(Re,{isOpen:y,disabled:i,getToggleButtonProps:b})]})]}),(0,Z.jsx)(Be,{isOpen:y,filteredItems:g,inputValue:p,highlightedIndex:C,selectedItem:E,getMenuProps:x,getItemProps:T,menuRef:h,renderItem:O,renderEmptyState:k,stickyFooterItem:A,testId:`workspace-dropdown-menu`,itemKey:e=>e.id})]});return o?(0,Z.jsx)(R,{content:o,placement:`top`,children:(0,Z.jsx)(`span`,{className:`block`,children:j})}):j}function nt({isLoadingSettings:e=!1,onConfirm:t}){let{t:n}=c(`openhands`),{navigate:r}=I(),{data:i,error:o}=G(),l=i?.workspaceParents??[],{mutate:u}=Ce(),{mutate:d}=ve(),{mutate:f}=Se(),{mutate:p}=be(),{workspaces:m,isLoading:h,isError:g,error:_}=ye(),v=K(o??_,n),[y,b]=Y.useState(null),[x,S]=Y.useState(!1),[C,w]=Y.useState(!1),{mutate:T,isPending:E,isSuccess:D}=W(),O=s(),k=E||D||O,A=l.length>0||!!v,j=null;v?j=v:h?j=n(a.HOME$LOADING):g&&(j=n(a.HOME$WORKSPACE_SCAN_ERROR));let M=!!v||e||h&&m.length===0;return(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[!t&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-[10px] pb-4`,children:[(0,Z.jsx)(Ee,{width:24,height:24}),(0,Z.jsx)(`span`,{className:`leading-5 font-bold text-base text-white`,children:n(a.HOME$WORKSPACES_TAB)})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[10px] pb-4`,children:[(0,Z.jsx)(tt,{workspaces:m,value:y,placeholder:v?n(a.HOME$WORKSPACES_UNSUPPORTED_PLACEHOLDER):M?n(a.HOME$LOADING):void 0,disabled:M,disabledTooltip:v,showManage:m.length>0||l.length>0,onChange:b,onAddClick:()=>S(!0),onManageClick:()=>w(!0),className:`max-w-auto`}),A&&j&&(0,Z.jsx)(`p`,{className:`px-1 text-xs text-[var(--oh-text-secondary)]`,"data-testid":`workspace-status-message`,children:j})]}),(0,Z.jsx)(F,{testId:`workspace-launch-button`,variant:`primary`,type:`button`,isDisabled:!y||!t&&k||e,onClick:()=>{if(y){if(t){t(y);return}T({workingDir:y.path},{onSuccess:e=>r(`/conversations/${e.conversation_id}`)})}},className:t?`w-full`:`w-auto absolute bottom-5 left-5 right-5`,children:t?n(a.BUTTON$CONFIRM):k?n(a.HOME$LOADING):`Launch`}),(0,Z.jsx)(xe,{isOpen:x,onClose:()=>S(!1),onAdd:e=>u(e),onAddParent:e=>f(e)}),(0,Z.jsx)(we,{isOpen:C,workspaces:m,workspaceParents:l,onClose:()=>w(!1),onRemove:e=>{y?.path===e&&b(null),d(e)},onRemoveParent:e=>{y?.parentPath===e&&b(null),p(e)}})]})}function rt({isOpen:e,onClose:t,onConfirm:n}){let{t:r}=c(`openhands`),{isLoadingSettings:i}=V();return e?(0,Z.jsx)(M,{onClose:t,children:(0,Z.jsxs)(N,{width:`sm`,className:`relative items-start border border-[var(--oh-border)] !gap-4`,children:[(0,Z.jsx)(H,{onClose:t,testId:`close-open-workspace-dialog`}),(0,Z.jsx)(`div`,{className:`w-full pr-6`,children:(0,Z.jsx)(P,{title:r(a.HOME$OPEN_WORKSPACE)})}),(0,Z.jsx)(`div`,{className:`w-full`,"data-testid":`open-workspace-dialog-body`,children:(0,Z.jsx)(nt,{isLoadingSettings:i,onConfirm:e=>{n(e),t()}})})]})}):null}function it({onRepoSelection:e,isLoadingSettings:t=!1,onConfirm:n}){let{navigate:r}=I(),[i,o]=Y.useState(null),[l,u]=Y.useState(null),[d,f]=Y.useState(null),{providers:p}=V(),{addRecentRepository:m,setLastSelectedProvider:h,getLastSelectedProvider:g}=le(),{mutate:_,isPending:v,isSuccess:y}=W(),b=s(),{t:x}=c(`openhands`);Y.useEffect(()=>{if(p.length!==0){if(p.length===1&&!d){f(p[0]);return}if(p.length>1&&!d){let e=g();e&&p.includes(e)&&f(e)}}},[p,d,g]);let S=v||y||b,C=t=>{t!==d&&(f(t),h(t),o(null),u(null),e?.(null))},w=Y.useCallback(e=>{u(e)},[]);return(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[!n&&(0,Z.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-[10px] pb-4`,children:[(0,Z.jsx)(B,{width:24,height:24}),(0,Z.jsx)(`span`,{className:`leading-5 font-bold text-base text-white`,children:x(a.COMMON$OPEN_REPOSITORY)})]})}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[10px] pb-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm text-white font-normal leading-[22px]`,children:x(a.HOME$SELECT_OR_INSERT_URL)}),p.length<=1?null:(0,Z.jsx)(Ne,{providers:p,value:d,placeholder:`Select Provider`,className:`max-w-[500px]`,onChange:C,disabled:t})]}),(0,Z.jsx)(He,{provider:d||p[0],value:i?.id||null,repositoryName:i?.full_name||null,placeholder:`user/repo`,disabled:!d||t,onChange:t=>{t?(e?.(t),o(t)):(e?.(null),o(null),u(null))},className:`max-w-auto`}),(()=>{let e=i?.main_branch||null;return(0,Z.jsx)(Le,{repository:i?.full_name||null,provider:d||p[0],selectedBranch:l,onBranchSelect:w,defaultBranch:e,placeholder:`Select branch...`,className:`max-w-full`,disabled:!i||t})})()]}),(0,Z.jsx)(F,{testId:`repo-launch-button`,variant:`primary`,type:`button`,isDisabled:!i||!l||!n&&S||p.length>1&&!d||t,onClick:()=>{if(!(!i||!l)){if(m(i),n){n({repository:i,branch:l,provider:d});return}_({repository:{name:i.full_name||``,gitProvider:i.git_provider||`github`,branch:l.name||`main`}},{onSuccess:e=>r(`/conversations/${e.conversation_id}`)})}},className:`w-full`,children:n?x(a.BUTTON$CONFIRM):S?x(`HOME$LOADING`):`Launch`})]})}function at({isOpen:e,onClose:t,onConfirm:n}){let{t:r}=c(`openhands`),{isLoadingSettings:i}=V();return e?(0,Z.jsx)(M,{onClose:t,children:(0,Z.jsxs)(N,{width:`sm`,className:`relative items-start border border-[var(--oh-border)] !gap-4`,children:[(0,Z.jsx)(H,{onClose:t,testId:`close-open-repository-dialog`}),(0,Z.jsx)(`div`,{className:`w-full pr-6`,children:(0,Z.jsx)(P,{title:r(a.COMMON$OPEN_REPOSITORY)})}),(0,Z.jsx)(`div`,{className:`w-full`,"data-testid":`open-repository-dialog-body`,children:(0,Z.jsx)(it,{isLoadingSettings:i,onConfirm:e=>{n(e),t()}})})]})}):null}function ot({workspace:e,repository:t,branch:n,provider:r,onRepoClick:i}){let a=e?e.path.replace(/\/+$/,``).split(`/`).pop()||e.path:null;return(0,Z.jsxs)(`div`,{className:`flex flex-row gap-2.5 items-center flex-wrap`,"data-testid":`home-git-control-bar-preview`,children:[(0,Z.jsx)(ze,{selectedRepository:t?.full_name??null,gitProvider:r??null,workspaceName:a,onClick:i}),n?(0,Z.jsx)(We,{selectedBranch:n.name,selectedRepository:t?.full_name??null,gitProvider:r??null}):null]})}function st(){let{t:e}=c(`openhands`),{backend:t}=k(),{navigate:n}=I(),r=t.kind===`local`,[i,o]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(null),[p,g]=(0,Y.useState)(null),[v,y]=(0,Y.useState)(null),{mutate:b,isPending:x}=W(),S=s(),C=x||S,{images:w,files:T,imagesMarkedUploadAsFile:E,clearAllFiles:D}=fe(),{handleUpload:O}=Fe(),{error:A}=G({enabled:r}),j=r?K(A,e):null,M=r?!!l:!!d&&!!p,N=Ie(null,t=>{let i=t.trim(),o=w.length>0||T.length>0;if(!i&&!o||C)return;let s={images:[...w],files:[...T]},c={query:o?void 0:i||void 0};r&&l?c={...c,workingDir:l.path}:!r&&d&&p&&(c={...c,repository:{name:d.full_name,gitProvider:d.git_provider,branch:p.name}});let u=m.loading(e(a.HOME$CREATING_CONVERSATION),_);b(c,{onSuccess:async t=>{m.dismiss(u);try{sessionStorage.removeItem(ke)}catch{}let a=t.conversation_id,c=a.startsWith(`task-`);if(o)if(!r||c){let e=t.task_id??(c?a.slice(5):null);if(!e){h(null);return}Me(e,{content:i,images:s.images,files:s.files,imagesMarkedUploadAsFile:[...E]}),D(),await X({conversationId:a,text:i,images:s.images,imagesMarkedUploadAsFile:E}),n(`/conversations/${a}`);return}else try{await Oe({conversationId:a,content:i,images:s.images,files:s.files,imagesMarkedUploadAsFile:E,t:e}),D()}catch(e){h(e instanceof Error?e.message:null);return}c&&i&&await X({conversationId:a,text:i,images:[],imagesMarkedUploadAsFile:[]}),n(`/conversations/${a}`)},onError:e=>{m.dismiss(u),h(e instanceof Error?e.message:null)}})});return(0,Z.jsxs)(`div`,{"data-testid":`home-chat-launcher`,className:`flex w-full max-w-[800px] flex-col gap-4 md:px-4`,children:[(0,Z.jsx)(`div`,{className:`flex w-full justify-center`,children:(0,Z.jsx)($e,{})}),(0,Z.jsx)(`div`,{className:`w-full`,children:(0,Z.jsx)(Ve,{onSubmit:N,onFilesPaste:O,disabled:C})}),(0,Z.jsx)(`div`,{className:`flex justify-start`,children:M?(0,Z.jsx)(ot,{workspace:l,repository:d,branch:p,provider:v,onRepoClick:()=>o(!0)}):(0,Z.jsx)(et,{kind:r?`local`:`cloud`,onClick:()=>o(!0),disabled:C||!!j,disabledTooltip:j})}),r?(0,Z.jsx)(rt,{isOpen:i,onClose:()=>o(!1),onConfirm:e=>{u(e),f(null),g(null),y(null)}}):(0,Z.jsx)(at,{isOpen:i,onClose:()=>o(!1),onConfirm:({repository:e,branch:t,provider:n})=>{f(e),g(t),y(n??e.git_provider),u(null)}})]})}function ct(){let{data:e,isLoading:t,isError:n}=_e(),{data:r,isLoading:i,isError:a}=oe(),{data:o,isLoading:s,isError:c}=Ke(),l=e?.agent_settings?.agent_kind===`acp`,u=e?.llm_api_key_set===!0,d=o?.profiles.find(e=>e.name===o.active_profile)?.api_key_set===!0,f=qe(`/settings/llm`,r?.feature_flags);return{isConfigured:l||u||d||f,isLoading:t||n&&!e||i||a&&!r||s||c&&!o}}function lt(){let{t:e}=c(`openhands`),{navigate:t}=I(),{isConfigured:n,isLoading:r}=ct();return r||n?null:(0,Z.jsxs)(`div`,{"data-testid":`home-llm-not-configured-banner`,role:`alert`,className:`bg-base border border-primary text-white p-4 rounded flex flex-row items-center justify-between gap-3 mt-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center`,children:[(0,Z.jsx)(`div`,{className:`flex-shrink-0`,children:(0,Z.jsx)(Te,{className:`text-primary align-middle`})}),(0,Z.jsx)(J.Text,{className:`ml-3 text-sm font-medium`,children:e(a.HOME$LLM_NOT_CONFIGURED_MESSAGE)})]}),(0,Z.jsx)(F,{testId:`home-llm-not-configured-action`,type:`button`,variant:`primary`,onClick:()=>t(`/settings/llm`),children:e(a.HOME$LLM_NOT_CONFIGURED_ACTION)})]})}function ut({currentStep:e,totalSteps:t,className:n}){return(0,Z.jsx)(`div`,{role:`progressbar`,"aria-valuemin":1,"aria-valuemax":t,"aria-valuenow":e+1,"data-testid":`onboarding-progress-bar`,className:w(`flex w-full items-center gap-2`,n),children:Array.from({length:t},(t,n)=>{let r=n<e,i=n===e;return(0,Z.jsx)(`div`,{"data-testid":`onboarding-progress-step-${n}`,"data-state":r?`completed`:i?`current`:`upcoming`,className:w(`h-1.5 flex-1 rounded-full transition-colors duration-300`,r||i?`bg-white`:`bg-white/15`)},n)})})}function dt(e){return e===`openhands`?`openhands`:U.find(({key:t})=>t===e)?.icon??`cli-generic`}function ft({id:e,muted:t}){let n=dt(e);return n===`openhands`?(0,Z.jsx)(q,{kind:`openhands`,size:16,className:w(`text-white`,t&&`opacity-55`),"data-testid":`onboarding-agent-icon-openhands`}):(0,Z.jsx)(q,{kind:n,size:18,className:t?`text-[var(--oh-muted)]`:`text-white`,"data-testid":`onboarding-agent-icon-${n}`})}function pt(){return[{id:`openhands`,label:`OpenHands`,descriptionKey:a.ONBOARDING$AGENT_OPENHANDS_DESCRIPTION},...U.map(e=>({id:e.key,label:e.display_name,descriptionKey:e.description_key}))]}function mt({selectedAgentId:e,onSelect:t,onBack:n,onNext:r}){let{t:i}=c(`openhands`),{mutate:o,isPending:s}=De();return(0,Z.jsxs)(`div`,{"data-testid":`onboarding-step-choose-agent`,className:`flex flex-col gap-6`,children:[(0,Z.jsxs)(`header`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h2`,{className:`text-2xl font-medium text-white`,children:i(a.ONBOARDING$AGENT_TITLE)}),(0,Z.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:i(a.ONBOARDING$AGENT_SUBTITLE)})]}),(0,Z.jsx)(`div`,{role:`radiogroup`,"aria-label":i(a.ONBOARDING$AGENT_TITLE),className:`flex flex-col gap-3`,children:pt().map(n=>{let r=n.id===e;return(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":r,"data-testid":`onboarding-agent-option-${n.id}`,"data-selected":r,onClick:()=>t(n.id),className:w(`flex items-start justify-between gap-4 rounded-xl border px-4 py-3 text-left transition-colors cursor-pointer`,r?`border-white/45 bg-white/[0.09] shadow-none hover:border-white/45 hover:bg-white/[0.09]`:`border-white/30 bg-white/5 hover:border-white/40 hover:bg-white/[0.08]`),children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(ft,{id:n.id,muted:!1}),(0,Z.jsx)(`span`,{className:`truncate text-base font-normal text-white`,children:n.label})]}),(0,Z.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:i(n.descriptionKey)})]}),(0,Z.jsx)(`div`,{className:`flex shrink-0 flex-col items-end gap-1`,children:r?(0,Z.jsx)(p,{width:18,height:18,className:`mt-1 shrink-0 text-white`,"aria-hidden":!0}):null})]},n.id)})}),(0,Z.jsxs)(`div`,{className:`sticky bottom-0 flex items-center justify-between gap-2 bg-base-secondary pt-4 pb-7`,children:[n?(0,Z.jsx)(F,{testId:`onboarding-agent-back`,type:`button`,variant:`secondary`,onClick:n,isDisabled:s,children:i(a.ONBOARDING$BACK)}):null,(0,Z.jsx)(F,{testId:`onboarding-agent-next`,type:`button`,variant:`primary`,isDisabled:s,onClick:()=>{let t=me(e);if(!t){r();return}o({agent_settings_diff:t},{onError:e=>{h(l(e)||i(a.ERROR$GENERIC))},onSuccess:()=>{g(i(a.SETTINGS$SAVED)),r()}})},children:i(s?a.SETTINGS$SAVING:a.ONBOARDING$NEXT)})]})]})}function ht({isConnected:e}){let{t}=c(`openhands`);return e===!0?(0,Z.jsxs)(`div`,{role:`status`,"data-testid":`onboarding-backend-connected`,className:w(`flex items-start gap-3 rounded-xl border border-green-500/40 bg-green-500/10 px-4 py-3`),children:[(0,Z.jsx)(d,{className:`mt-0.5 size-5 shrink-0 text-green-400`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium text-green-200`,children:t(a.ONBOARDING$BACKEND_CONNECTED_TITLE)}),(0,Z.jsx)(`span`,{className:`text-xs text-green-200/80`,children:t(a.ONBOARDING$BACKEND_CONNECTED_BODY)})]})]}):e===!1?(0,Z.jsxs)(`div`,{role:`alert`,"data-testid":`onboarding-backend-disconnected`,className:`flex items-start gap-3 rounded-xl border border-red-500/40 bg-red-500/10 px-4 py-3`,children:[(0,Z.jsx)(Ze,{className:`mt-0.5 size-5 shrink-0 text-red-400`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium text-red-200`,children:t(a.ONBOARDING$BACKEND_DISCONNECTED_TITLE)}),(0,Z.jsx)(`span`,{className:`text-xs text-red-200/80`,children:t(a.ONBOARDING$BACKEND_DISCONNECTED_BODY)})]})]}):(0,Z.jsxs)(`div`,{role:`status`,"data-testid":`onboarding-backend-checking`,className:`flex items-start gap-3 rounded-xl border border-white/10 bg-white/5 px-4 py-3`,children:[(0,Z.jsx)(y,{className:`mt-0.5 size-5 shrink-0 animate-spin text-[var(--oh-text-tertiary)]`}),(0,Z.jsx)(`span`,{className:`text-sm text-[var(--oh-text-tertiary)]`,children:t(a.ONBOARDING$BACKEND_CHECKING)})]})}function gt({onBack:e,onNext:t}){let{t:n}=c(`openhands`),{active:r}=A(),{backend:i}=r,o=D(i),s=Y.useMemo(()=>T(),[]),l=o?{id:`onboarding-local-backend-draft`,name:E,host:s.baseUrl,apiKey:s.sessionApiKey,kind:`local`}:i,u=ue(o?[]:[i]),d=o?!1:u[i.id]?.isConnected??null;return(0,Z.jsxs)(`div`,{"data-testid":`onboarding-step-check-backend`,className:`flex flex-col gap-6`,children:[(0,Z.jsxs)(`header`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h2`,{className:`text-2xl font-medium text-white`,children:n(a.ONBOARDING$BACKEND_TITLE)}),(0,Z.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:n(a.ONBOARDING$BACKEND_SUBTITLE)})]}),(0,Z.jsx)(ht,{isConnected:d}),(0,Z.jsx)(de,{mode:o?`add`:`edit`,backend:l,onSubmitted:()=>{},testIdRoot:`onboarding-backend`,requireApiKey:!0,renderActions:({canSubmit:r,testIdRoot:i})=>(0,Z.jsxs)(`div`,{className:`sticky bottom-0 flex items-center justify-end gap-2 mt-2 bg-base-secondary pt-4 pb-7`,children:[e?(0,Z.jsx)(F,{testId:`onboarding-backend-back`,type:`button`,variant:`secondary`,onClick:e,children:n(a.ONBOARDING$BACK)}):null,(0,Z.jsx)(F,{testId:`${i}-submit`,type:`submit`,variant:`secondary`,isDisabled:!r,children:n(a.BACKEND$SAVE)}),(0,Z.jsx)(F,{testId:`onboarding-backend-next`,type:`button`,variant:`primary`,isDisabled:d!==!0,onClick:t,children:n(a.ONBOARDING$NEXT)})]})})]})}var _t={"llm.model":`openhands/claude-opus-4-5-20251101`};function vt({onBack:e,onNext:t}){let{t:n}=c(`openhands`),{backend:r}=k(),i=r.kind===`local`,o=S(),s=x(),[l,u]=Y.useState(null),[d,f]=Y.useState(!1),p=Y.useCallback(async()=>{if(!i||!l)return;let e=l.values,t=typeof e[`llm.model`]==`string`?e[`llm.model`]:``;if(!t)return;let n=typeof e[`llm.api_key`]==`string`?e[`llm.api_key`]:``,r=typeof e[`llm.base_url`]==`string`?e[`llm.base_url`]:``,a=b(t),c={model:t};n&&(c.api_key=n),r&&(c.base_url=r);try{await o.mutateAsync({name:a,request:{llm:c,include_secrets:!0}}),await s.mutateAsync(a)}catch(e){console.error(`Failed to persist onboarding LLM as profile:`,e)}},[i,l,o,s]),m=Y.useCallback(async()=>{f(!0);try{await p()}finally{f(!1),t()}},[p,t]);return(0,Z.jsxs)(`div`,{"data-testid":`onboarding-step-setup-llm`,className:`flex flex-col gap-6 max-h-[calc(90vh-7rem)]`,children:[(0,Z.jsxs)(`header`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h2`,{className:`text-2xl font-medium text-white`,children:n(a.ONBOARDING$LLM_TITLE)}),(0,Z.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:n(a.ONBOARDING$LLM_SUBTITLE)})]}),(0,Z.jsx)(`div`,{"data-testid":`onboarding-llm-settings`,className:`flex min-h-0 flex-1 flex-col overflow-y-auto custom-scrollbar-always`,children:(0,Z.jsx)(C,{embedded:!0,hideSaveButton:!0,initialValueOverrides:_t,onSaveSuccess:m,onSaveControlChange:u})}),(0,Z.jsxs)(`div`,{className:`sticky bottom-0 flex items-center justify-end gap-2 bg-base-secondary pt-4 pb-7`,children:[(0,Z.jsx)(F,{testId:`onboarding-llm-back`,type:`button`,variant:`secondary`,onClick:e,children:n(a.ONBOARDING$BACK)}),(0,Z.jsx)(F,{testId:`onboarding-llm-next`,type:`button`,variant:`primary`,isDisabled:(l?.isSaving??!1)||d,onClick:()=>{if(l?.isDirty){l.save();return}t()},children:n(a.ONBOARDING$NEXT)})]})]})}var yt=10;function bt(e){return`${e.stdout??``}\n${e.stderr??``}`}function xt(e){let t;try{t=JSON.parse((e.stdout??``).trim())}catch{return`unknown`}let n=t?.loggedIn;return typeof n==`boolean`?n?`authenticated`:`unauthenticated`:`unknown`}function St(e){let t=bt(e).toLowerCase();return t.includes(`not logged in`)?`unauthenticated`:t.includes(`logged in`)?`authenticated`:`unknown`}function Ct(e){let t=(e.stdout??``).trim();return t===`present`?`authenticated`:t===`absent`?`unauthenticated`:`unknown`}var wt={"claude-code":{command:`claude auth status --json`,classify:xt},codex:{command:`codex login status`,classify:St},"gemini-cli":{command:`test -f "$HOME/.gemini/oauth_creds.json" && echo present || echo absent`,classify:Ct}},Tt=class{static async getAuthStatus(e){let t=wt[e];if(!t)return`unknown`;let n=await new j(O()).executeCommand(t.command,void 0,yt);return t.classify(n)}};async function Et(e){try{return await Tt.getAuthStatus(e)}catch{return`unknown`}}function Dt(e,t={}){let{enabled:n=!0}=t,i=k(),a=i.backend.kind===`local`,o=n&&a&&!!e,s=r({queryKey:[`acp-auth-status`,i.backend.id,e],queryFn:()=>Et(e),enabled:o,staleTime:1/0,gcTime:1e3*60*15,retry:!1,refetchOnWindowFocus:!1,refetchOnMount:!1});return{status:s.data??`unknown`,isChecking:o&&s.isFetching&&s.data===void 0,isSupported:a}}function Ot({providerKey:e,isActive:t,onBack:n,onNext:r}){let{t:i}=c(`openhands`),s=o(),{mutateAsync:u}=Je(),{data:d}=Ye(),{status:f,isChecking:m}=Dt(e,{enabled:t}),_=Y.useMemo(()=>ge(e),[e]),[v,b]=Y.useState({}),[x,S]=Y.useState(!1),C=he(e)??e,w=Y.useCallback(e=>(d??[]).some(t=>t.name===e),[d]);return(0,Z.jsxs)(`div`,{"data-testid":`onboarding-step-setup-acp-secrets`,className:`flex flex-col gap-6`,children:[(0,Z.jsxs)(`header`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h2`,{className:`text-2xl font-medium text-white`,children:i(a.ONBOARDING$ACP_SECRETS_TITLE)}),(0,Z.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:i(a.ONBOARDING$ACP_SECRETS_SUBTITLE,{provider:C})}),f!==`authenticated`&&(0,Z.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:i(a.ONBOARDING$ACP_SECRETS_SUBSCRIPTION_NOTE)})]}),f===`authenticated`?(0,Z.jsxs)(`div`,{"data-testid":`onboarding-acp-auth-detected`,className:`flex items-start gap-2 rounded-xl border border-green-500/40 bg-green-500/10 px-4 py-3 text-sm text-green-200`,children:[(0,Z.jsx)(p,{className:`mt-0.5 size-4 shrink-0 text-green-400`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:i(a.ONBOARDING$ACP_AUTH_DETECTED,{provider:C})})]}):m?(0,Z.jsxs)(`div`,{"data-testid":`onboarding-acp-auth-checking`,className:`flex items-center gap-2 text-sm text-[var(--oh-muted)]`,children:[(0,Z.jsx)(y,{className:`size-4 shrink-0 animate-spin`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:i(a.ONBOARDING$ACP_AUTH_CHECKING,{provider:C})})]}):null,(0,Z.jsx)(`div`,{className:`flex flex-col gap-5`,children:_.map(e=>{let t=w(e.name);return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(pe,{testId:`onboarding-acp-secret-${e.name}`,name:e.name,label:e.name,labelClassName:`font-mono`,type:e.secret?`password`:`text`,value:v[e.name]??``,onChange:t=>b(n=>({...n,[e.name]:t})),showOptionalTag:!0,placeholder:t?i(a.ONBOARDING$ACP_SECRET_ALREADY_SET):``}),(0,Z.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:i(e.hint_key)})]},e.name)})}),(0,Z.jsxs)(`div`,{className:`sticky bottom-0 flex items-center justify-between gap-2 bg-base-secondary pt-4 pb-7`,children:[(0,Z.jsx)(F,{testId:`onboarding-acp-secrets-back`,type:`button`,variant:`secondary`,onClick:n,isDisabled:x,children:i(a.ONBOARDING$BACK)}),(0,Z.jsx)(F,{testId:`onboarding-acp-secrets-next`,type:`button`,variant:`primary`,isDisabled:x,onClick:async()=>{let e=_.map(e=>({name:e.name,value:v[e.name]?.trim()})).filter(e=>!!e.value);if(e.length===0){r();return}S(!0);try{for(let{name:t,value:n}of e)await u({name:t,value:n});await s.invalidateQueries({queryKey:[`secrets-search`]}),await s.invalidateQueries({queryKey:[`secrets`]}),g(i(a.SETTINGS$SAVED)),r()}catch(e){h(l(e)||i(a.ERROR$GENERIC))}finally{S(!1)}},children:i(x?a.SETTINGS$SAVING:a.ONBOARDING$NEXT)})]})]})}function kt({onBack:e,onLaunched:t}){let{t:n}=c(`openhands`),{navigate:r}=I(),i=n(a.ONBOARDING$HELLO_DEFAULT_MESSAGE),[o,l]=Y.useState(i),{mutate:u,isPending:d,isSuccess:f}=W(),p=s(),m=d||f||p,h=Y.useRef(!1),g=o.trim().length>0&&!m&&!h.current,_=()=>{!g||h.current||(h.current=!0,u({query:o.trim()},{onSuccess:e=>{t(),r(`/conversations/${e.conversation_id}`)},onError:()=>{h.current=!1}}))};return(0,Z.jsxs)(`div`,{"data-testid":`onboarding-step-say-hello`,className:`flex flex-col gap-6`,children:[(0,Z.jsxs)(`header`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h2`,{className:`text-2xl font-medium text-white`,children:n(a.ONBOARDING$HELLO_TITLE)}),(0,Z.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:n(a.ONBOARDING$HELLO_SUBTITLE)})]}),(0,Z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),_()},className:`contents`,children:(0,Z.jsx)(`input`,{"data-testid":`onboarding-hello-input`,"aria-label":n(a.ONBOARDING$HELLO_TITLE),type:`text`,value:o,onChange:e=>l(e.target.value),placeholder:i,disabled:m,className:`w-full rounded-xl border border-white/10 bg-base-secondary px-4 py-3 text-base text-white placeholder:text-[var(--oh-text-subtle)] focus:border-primary focus:outline-none disabled:opacity-60`})}),(0,Z.jsx)(`div`,{"data-testid":`onboarding-recommended-automations`,children:(0,Z.jsx)(Xe,{onLaunched:t})}),(0,Z.jsxs)(`div`,{className:`sticky bottom-0 flex items-center justify-between gap-2 bg-base-secondary pt-4 pb-7`,children:[(0,Z.jsx)(F,{testId:`onboarding-hello-back`,type:`button`,variant:`secondary`,onClick:e,isDisabled:m,children:n(a.ONBOARDING$BACK)}),(0,Z.jsx)(F,{testId:`onboarding-hello-launch`,type:`button`,variant:`primary`,isDisabled:!g,onClick:_,startContent:(0,Z.jsx)(Qe,{className:`size-4`,"aria-hidden":!0}),children:n(m?a.ONBOARDING$HELLO_LAUNCHING:a.ONBOARDING$HELLO_LAUNCH)})]})]})}var Q=4,At=2;function $({index:e,currentStep:t,children:n}){let r=e===t,i=(e-t)*100;return(0,Z.jsx)(`div`,{"data-testid":`onboarding-slide-${e}`,"data-active":r,"aria-hidden":!r,style:{transform:`translateX(${i}%)`},className:w(`w-full transition-transform duration-300 ease-out`,!r&&`pointer-events-none absolute inset-0`),children:n})}function jt({onClose:e}){let{t}=c(`openhands`),[n,r]=Y.useState(0),[i,o]=Y.useState(`openhands`),s=i===`openhands`,l=Y.useCallback(()=>r(e=>Math.min(e+1,Q-1)),[]),u=Y.useCallback(()=>r(e=>Math.max(e-1,0)),[]);return(0,Z.jsx)(M,{onClose:e,closeOnEscape:!1,"aria-label":t(a.ONBOARDING$TITLE),children:(0,Z.jsxs)(`div`,{className:`relative flex flex-col items-center gap-4`,children:[(0,Z.jsxs)(`section`,{"data-testid":`onboarding-modal`,"data-current-step":n,className:w(`flex flex-col gap-6 overflow-hidden rounded-2xl border border-white/10 bg-base-secondary shadow-2xl`,ee(`lg`),te,`max-h-[90vh]`),children:[(0,Z.jsx)(`header`,{className:`flex flex-col gap-3 px-7 pt-7 shrink-0`,children:(0,Z.jsx)(ut,{currentStep:n,totalSteps:Q})}),(0,Z.jsx)(`div`,{"data-testid":`onboarding-scroll-area`,className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar-always px-7`,children:(0,Z.jsxs)(`div`,{"data-testid":`onboarding-slide-rail`,"data-current-step":n,className:`relative overflow-clip`,children:[(0,Z.jsx)($,{index:0,currentStep:n,children:(0,Z.jsx)(gt,{onNext:l})}),(0,Z.jsx)($,{index:1,currentStep:n,children:(0,Z.jsx)(mt,{selectedAgentId:i,onSelect:o,onNext:l,onBack:u})}),(0,Z.jsx)($,{index:At,currentStep:n,children:s?(0,Z.jsx)(vt,{onBack:u,onNext:l}):(0,Z.jsx)(Ot,{providerKey:i,isActive:n===At,onBack:u,onNext:l})}),(0,Z.jsx)($,{index:3,currentStep:n,children:(0,Z.jsx)(kt,{onBack:u,onLaunched:e})})]})})]}),(0,Z.jsx)(`button`,{type:`button`,"data-testid":`onboarding-skip`,onClick:e,className:`rounded-md px-3 py-2 text-sm text-[var(--oh-muted)] transition-colors hover:bg-white/5 hover:text-white cursor-pointer`,children:t(a.ONBOARDING$SKIP)})]})})}var Mt=`openhands-onboarded`;function Nt(){if(typeof window>`u`)return!0;try{return window.localStorage.getItem(Mt)!==null}catch{return!0}}function Pt(){let[e,t]=Y.useState(()=>Nt());return Y.useEffect(()=>{let e=e=>{e.key===`openhands-onboarded`&&t(Nt())};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),{isCompleted:e,markCompleted:Y.useCallback(()=>{try{window.localStorage.setItem(Mt,`1`)}catch{}t(!0)},[])}}function Ft(){let{isCompleted:e,markCompleted:t}=Pt();return e?null:(0,Z.jsx)(jt,{onClose:t})}function It(){return(0,Z.jsxs)(`div`,{"data-testid":`home-screen`,className:`custom-scrollbar-always flex h-full flex-col overflow-y-auto rounded-xl bg-transparent px-4 md:px-0 lg:px-[42px]`,children:[(0,Z.jsx)(lt,{}),(0,Z.jsx)(`div`,{className:`flex flex-1 min-h-0 flex-col items-center justify-center`,children:(0,Z.jsx)(st,{})}),(0,Z.jsx)(Ft,{})]})}var Lt=n(It);export{Lt as default};
@@ -1 +1 @@
1
- import{n as e}from"./declaration-BNMqORFE.js";import{n as t,r as n,t as r}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~skills-settings~m~o9nrx3fm-D44TR8hL.js";var i=`openhands`,a=[{label:`English`,value:`en`},{label:`日本語`,value:`ja`},{label:`简体中文`,value:`zh-CN`},{label:`繁體中文`,value:`zh-TW`},{label:`한국어`,value:`ko-KR`},{label:`Norsk`,value:`no`},{label:`Arabic`,value:`ar`},{label:`Deutsch`,value:`de`},{label:`Français`,value:`fr`},{label:`Italiano`,value:`it`},{label:`Português`,value:`pt`},{label:`Español`,value:`es`},{label:`Català`,value:`ca`},{label:`Türkçe`,value:`tr`},{label:`Українська`,value:`uk`}],o=new WeakMap,s=n=>{if(!o.has(n)){let s=n.use(t).use(r).use(e).init({fallbackLng:`en`,debug:!1,supportedLngs:a.map(e=>e.value),nonExplicitSupportedLngs:!1,ns:[i],defaultNS:i,fallbackNS:i,backend:{loadPath:`/locales/{{lng}}/{{ns}}.json`}});o.set(n,s)}return n},c=()=>s(n()),l=null,u=null,d=()=>(l||=c(),l),f=()=>u??d(),p=e=>(u=e??d(),u),m=async(e=d())=>(await o.get(e),e),h=e=>e?typeof e==`object`&&!Array.isArray(e)?{ns:i,...e}:e:{ns:i},g=new Proxy({},{get:(e,t)=>{let n=f();if(t===`t`)return(e,t)=>n.t(e,h(t));if(t===`exists`)return(e,t)=>n.exists(e,h(t));let r=Reflect.get(n,t,n);return typeof r==`function`?r.bind(n):r},set:(e,t,n)=>{let r=f();return Reflect.set(r,t,n,r)}});export{g as a,f as i,i as n,p as o,d as r,m as s,a as t};
1
+ import{n as e}from"./declaration-CR6HMp29.js";import{n as t,r as n,t as r}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~skills-settings~m~o9nrx3fm-D44TR8hL.js";var i=`openhands`,a=[{label:`English`,value:`en`},{label:`日本語`,value:`ja`},{label:`简体中文`,value:`zh-CN`},{label:`繁體中文`,value:`zh-TW`},{label:`한국어`,value:`ko-KR`},{label:`Norsk`,value:`no`},{label:`Arabic`,value:`ar`},{label:`Deutsch`,value:`de`},{label:`Français`,value:`fr`},{label:`Italiano`,value:`it`},{label:`Português`,value:`pt`},{label:`Español`,value:`es`},{label:`Català`,value:`ca`},{label:`Türkçe`,value:`tr`},{label:`Українська`,value:`uk`}],o=new WeakMap,s=n=>{if(!o.has(n)){let s=n.use(t).use(r).use(e).init({fallbackLng:`en`,debug:!1,supportedLngs:a.map(e=>e.value),nonExplicitSupportedLngs:!1,ns:[i],defaultNS:i,fallbackNS:i,backend:{loadPath:`/locales/{{lng}}/{{ns}}.json`}});o.set(n,s)}return n},c=()=>s(n()),l=null,u=null,d=()=>(l||=c(),l),f=()=>u??d(),p=e=>(u=e??d(),u),m=async(e=d())=>(await o.get(e),e),h=e=>e?typeof e==`object`&&!Array.isArray(e)?{ns:i,...e}:e:{ns:i},g=new Proxy({},{get:(e,t)=>{let n=f();if(t===`t`)return(e,t)=>n.t(e,h(t));if(t===`exists`)return(e,t)=>n.exists(e,h(t));let r=Reflect.get(n,t,n);return typeof r==`function`?r.bind(n):r},set:(e,t,n)=>{let r=f();return Reflect.set(r,t,n,r)}});export{g as a,f as i,i as n,p as o,d as r,m as s,a as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{t as n}from"./useMutation-GSSKKebK.js";import{o as r,t as i}from"./declaration-CR6HMp29.js";import{n as a}from"./QueryClientProvider-Cnr-Yl3j.js";import{t as o}from"./useTranslation-B6voJV4y.js";import{t as s}from"./retrieve-axios-error-message-BY-yIkIq.js";import{n as c,t as l}from"./vendor~home~mcp~automations-list-CZSK-lT2.js";import{n as u,r as d}from"./custom-toast-handlers-ufGJ6_Rc.js";import{t as f}from"./utils-DCVfKFRt.js";import{n as p}from"./agent-server-client-options-HEOwGVIU.js";import{l as m}from"./vendor~root-layout~home~conversation-panel~conversation~launch~extensions-hub~skills-settin~dp08i1qy-hTzSytKK.js";import{a as h}from"./query-keys-tAsQcc_9.js";import{t as ee}from"./modal-backdrop-RfNCrSpK.js";import{n as g}from"./modal-classes-6YqcqA6y.js";import{t as _}from"./brand-button-DJ_S16rO.js";import{t as v}from"./styled-tooltip-hdfMXPQC.js";import{t as te}from"./modal-close-button-CtWOUMmw.js";import{t as y}from"./settings-input-CehsXnb3.js";import{t as b}from"./v4-khGvL7i2.js";import{t as x}from"./settings-service.api-C3rxTtPj.js";import{a as S,i as C,r as w}from"./use-settings-D5hbTS9t.js";import{t as T}from"./secrets-service-B7CxNinp.js";function E(e){return[...e.sse_servers.map((e,t)=>({id:`sse-${t}`,type:`sse`,url:typeof e==`string`?e:e.url,api_key:typeof e==`object`?e.api_key:void 0})),...e.stdio_servers.map((e,t)=>({id:`stdio-${t}`,type:`stdio`,name:e.name,command:e.command,args:e.args,env:e.env})),...e.shttp_servers.map((e,t)=>({id:`shttp-${t}`,type:`shttp`,url:typeof e==`string`?e:e.url,api_key:typeof e==`object`?e.api_key:void 0,timeout:typeof e==`object`?e.timeout:void 0}))]}var D=e(t(),1),O=r();function k(e){return e.connectionOptions.filter(e=>e.provider===`mcp`&&!!e.transport)}function A(e){let t=k(e);return t.find(t=>t.id===e.defaultConnectionOptionId)??t[0]}function j(e){return e.auth.strategy!==`oauth2`}function M(e){let t=k(e),n=t.find(t=>t.id===e.defaultConnectionOptionId);return n&&j(n)?n:t.find(j)}function N(e){return A(e)?.transport}function ne(e){return e.filter(e=>!!A(e))}var P=e=>{try{return new URL(e)}catch{return null}};function F(e,t){let n=typeof e==`string`?e:``,r=typeof t==`string`?t:``;if(!n||!r)return!1;let i=P(n),a=P(r);return!i||!a?n.replace(/\/+$/,``)===r.replace(/\/+$/,``):i.protocol===a.protocol&&i.host===a.host&&i.pathname.replace(/\/+$/,``)===a.pathname.replace(/\/+$/,``)}function I(e,t){return t.find(t=>L(e,t))??null}function re(e,t){for(let n of k(e)){let e=I(n.transport,t);if(e)return e}return null}function L(e,t){if(e.kind===`shttp`){let n=e.url;return t.type===`shttp`&&!!t.url&&F(t.url,n)}if(e.kind===`sse`){let n=e.url;return t.type===`sse`&&!!t.url&&F(t.url,n)}return t.type===`stdio`&&t.name===e.serverName}function ie(e,t){return!e.runtimeAvailability||e.runtimeAvailability===`all`?!0:e.runtimeAvailability===t}function R(e){return e.trim().toLowerCase()}function z(e){return e.map((e,t)=>({entry:e,index:t})).sort((e,t)=>(t.entry.popularityRank??0)-(e.entry.popularityRank??0)||e.index-t.index).map(({entry:e})=>e)}function B(e,t){return t.find(t=>t.id===e)}function V(e,t){let n=R(t);return n?[e.name,e.description,e.id,...e.keywords??[]].join(` `).toLowerCase().includes(n):!0}function H(e,t,n){let r=R(n);return r?[e.type,`name`in e?e.name:void 0,`command`in e?e.command:void 0,`args`in e?e.args?.join(` `):void 0,`url`in e?e.url:void 0,t?.name,t?.description,t?.id,...t?.keywords??[]].filter(Boolean).join(` `).toLowerCase().includes(r):!0}function U(e,t){return t.find(t=>k(t).some(t=>L(t.transport,e)))}function W({fieldKey:e,checked:t,onToggle:n}){let{t:r}=o(`openhands`);return(0,O.jsxs)(`label`,{"data-testid":`mcp-install-save-secret-${e}`,className:f(`flex items-center gap-2 px-3 py-2 mt-0.5 rounded-lg border cursor-pointer transition-colors`,t?`border-green-500/35 bg-green-500/10`:`border-[var(--oh-border)] bg-transparent hover:bg-white/[0.03]`),children:[(0,O.jsx)(`input`,{className:`sr-only`,id:`mcp-save-secret-checkbox-${e}`,type:`checkbox`,checked:t,onChange:e=>n(e.target.checked)}),(0,O.jsx)(`span`,{"aria-hidden":`true`,className:f(`relative inline-flex h-[22px] w-[40px] shrink-0 items-center rounded-full border transition-colors duration-200`,t?`border-green-500 bg-green-500`:`border-[var(--oh-border)] bg-surface-raised`),children:(0,O.jsx)(`span`,{className:f(`inline-block size-4 rounded-full transition-transform duration-200`,t?`translate-x-[21px] bg-white`:`translate-x-[2px] bg-[var(--oh-muted)]`)})}),(0,O.jsx)(`span`,{className:`text-sm`,children:r(i.MCP$ALSO_SAVE_AS_SECRET)}),(0,O.jsx)(`code`,{className:f(`ml-auto text-[11px] font-mono tracking-tight border rounded px-1.5 py-0.5`,t?`text-green-500 border-green-500/35 bg-white/[0.04]`:`text-tertiary-alt border-[var(--oh-border)]`),children:e}),(0,O.jsx)(v,{content:r(i.MCP$SAVE_AS_SECRET_TOOLTIP),placement:`top`,children:(0,O.jsx)(`button`,{type:`button`,"aria-label":r(i.MCP$SAVE_AS_SECRET_TOOLTIP),className:`flex items-center justify-center size-[15px] shrink-0 rounded-full border border-[var(--oh-muted)] text-tertiary-alt text-[9px] font-bold cursor-help`,onClick:e=>e.preventDefault(),children:`?`})})]})}var G={xs:`h-4 w-4 rounded [&>svg]:h-2.5 [&>svg]:w-2.5`,sm:`h-5 w-5 rounded-md [&>svg]:h-3 [&>svg]:w-3`,md:`h-10 w-10 rounded-lg [&>svg]:h-5 [&>svg]:w-5`};function K({entry:e,size:t=`md`,className:n,fallback:r,testId:i}){return(0,O.jsx)(`span`,{"aria-hidden":`true`,title:e?.name,"data-testid":i,className:f(`inline-flex shrink-0 items-center justify-center overflow-hidden`,`border border-white/10 shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]`,G[t],n),style:{backgroundColor:e?.iconBg??`var(--oh-color-tertiary)`,color:e?.iconColor??`#FFFFFF`},children:e?c[e.id]??r??l:r??l})}function q(){let e=a(),{data:t}=w();return n({mutationFn:async e=>{if(!t)return;let n=C(t.agent_settings?.mcp_config),r={sse_servers:[...n.sse_servers],stdio_servers:[...n.stdio_servers],shttp_servers:[...n.shttp_servers]};if(e.type===`sse`){let t={url:e.url,...e.api_key&&{api_key:e.api_key}};r.sse_servers.push(t)}else if(e.type===`stdio`){let t={name:e.name,command:e.command,...e.args&&{args:e.args},...e.env&&{env:e.env}};r.stdio_servers.push(t)}else if(e.type===`shttp`){let t={url:e.url,...e.api_key&&{api_key:e.api_key},...e.timeout!==void 0&&{timeout:e.timeout}};r.shttp_servers.push(t)}await x.saveSettings({agent_settings_diff:{mcp_config:S(r)}})},onSuccess:()=>{e.invalidateQueries({queryKey:h.personal()})}})}function J(e){return e.type===`stdio`?{type:`stdio`,command:e.command,...e.args?.length&&{args:e.args},...e.env&&Object.keys(e.env).length>0&&{env:e.env}}:{type:e.type,url:e.url,...e.api_key?{api_key:e.api_key}:{}}}var ae=class{static async testServer(e){let{host:t,apiKey:n}=p(),r=new m({host:t,...n?{apiKey:n}:{}});try{return await r.testServer({server:J(e),...e.name?{name:e.name}:{},...e.timeout?{timeout:e.timeout}:{}})}finally{r.close()}}};function Y(){return n({mutationFn:e=>ae.testServer(e)})}function X(e){return e.length<=3?e.join(`, `):`${e.slice(0,3).join(`, `)} … (+${e.length-3})`}function oe(){let{t:e}=o(`openhands`),t=a();return(0,D.useCallback)((n,r,a)=>{let o=n.filter(e=>a[e.key]&&(r[e.key]??``).trim());o.length!==0&&Promise.allSettled(o.map(e=>T.createSecret(e.key,r[e.key].trim(),e.label))).then(n=>{let r=o.filter((e,t)=>n[t].status===`fulfilled`).map(e=>e.key),a=o.filter((e,t)=>n[t].status===`rejected`).map(e=>e.key);r.length>0&&(t.invalidateQueries({queryKey:[`secrets-search`]}),t.invalidateQueries({queryKey:[`secrets`]}),d(e(i.MCP$SECRETS_SAVED,{keys:X(r)}))),a.length>0&&u(e(i.MCP$SECRETS_SAVE_FAILED,{keys:X(a)}))})},[e,t])}function Z(e){let t=/\[([^\]]+)\]\(([^)]+)\)/g,n=[],r=0;for(let i of e.matchAll(t))i.index>r&&n.push(e.slice(r,i.index)),n.push((0,O.jsx)(`a`,{href:/^https?:\/\//i.test(i[2])?i[2]:`#`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-white transition-colors`,children:i[1]},i.index)),r=i.index+i[0].length;return r<e.length&&n.push(e.slice(r)),n}function Q(e){return e?.transport.kind!==`shttp`&&e?.transport.kind!==`sse`?!1:[`api_key`,`bearer`,`basic`].includes(e.auth.strategy)}function $(e){return e.transport.kind===`stdio`?e.auth.apiKeyOptional??!1:e.auth.apiKeyOptional??e.transport.apiKeyOptional??!1}function se(e){let t={},n={},r=M(e),i=r?.transport;if(i?.kind===`stdio`){for(let e of i.envFields??[])t[e.key]=``,n[e.key]=e.type===`password`;for(let e of i.argFields??[])t[e.key]=``}else Q(r)&&(t.api_key=``);return{values:t,errors:{},savedAsSecret:n}}function ce({entry:e,onClose:t,onSuccess:n}){let{t:r}=o(`openhands`),{mutate:a,isPending:c}=q(),{mutate:l,isPending:u}=Y(),f=oe(),[p,m]=D.useState(()=>se(e)),h=D.useRef(p);h.current=p;let[v,x]=D.useState(null),S=M(e),C=S?.transport,w=u||c,T=(e,t)=>{m(n=>({...n,values:{...n.values,[e]:t},errors:{...n.errors,[e]:null}})),x(null)},E=(e,t)=>{m(n=>({...n,savedAsSecret:{...n.savedAsSecret,[e]:t}}))},k=e=>{switch(e.error_kind){case`timeout`:return r(i.MCP$TEST_ERROR_TIMEOUT);case`connection`:return r(i.MCP$TEST_ERROR_CONNECTION);default:return r(i.MCP$TEST_ERROR_UNKNOWN,{error:e.error})}},A=o=>{l(o,{onSuccess:c=>{if(!c.ok){x(k(c));return}a(o,{onSuccess:()=>{d(r(i.MCP$INSTALL_SUCCESS)),n?.(e),t(),C?.kind===`stdio`&&f(C.envFields??[],h.current.values,h.current.savedAsSecret)},onError:e=>{x(s(e)||r(i.ERROR$GENERIC))}})},onError:e=>{x(s(e)||r(i.ERROR$GENERIC))}})},j=()=>{if(C?.kind!==`shttp`&&C?.kind!==`sse`||!S)return;let e=p.values.api_key?.trim()??``,t=Q(S);if(t&&!$(S)&&!e){m(e=>({...e,errors:{api_key:r(i.MCP$ERROR_FIELD_REQUIRED)}}));return}A({id:`${C.kind}-${b()}`,type:C.kind,url:C.url,...t&&e&&{api_key:e}})},N=()=>{if(C?.kind!==`stdio`)return;let e=C,t={};for(let n of e.envFields??[])n.required&&!(p.values[n.key]??``).trim()&&(t[n.key]=r(i.MCP$ERROR_FIELD_REQUIRED));for(let n of e.argFields??[])n.required&&!(p.values[n.key]??``).trim()&&(t[n.key]=r(i.MCP$ERROR_FIELD_REQUIRED));if(Object.values(t).some(Boolean)){m(e=>({...e,errors:t}));return}let n={};for(let t of e.envFields??[]){let e=p.values[t.key]?.trim();e&&(n[t.key]=e)}let a=[];for(let t of e.argFields??[]){let e=p.values[t.key]?.trim();if(e)for(let t of e.split(/\s+/))t&&a.push(t)}A({id:`stdio-${b()}`,type:`stdio`,name:e.serverName,command:e.command,args:[...e.args,...a],...Object.keys(n).length>0&&{env:n}})};return(0,O.jsx)(ee,{onClose:t,"aria-label":e.name,children:(0,O.jsxs)(`form`,{"data-testid":`mcp-install-modal`,"data-marketplace-id":e.id,onSubmit:e=>(e.preventDefault(),x(null),C?.kind===`shttp`||C?.kind===`sse`?j():N()),className:`relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)] w-[520px] max-w-[90vw] max-h-[85vh] overflow-y-auto custom-scrollbar`,children:[(0,O.jsx)(te,{onClose:t,testId:`mcp-install-modal-close`,disabled:w}),(0,O.jsxs)(`div`,{className:`flex items-start gap-3 pr-6`,children:[(0,O.jsx)(K,{entry:e}),(0,O.jsxs)(`div`,{className:`flex flex-col flex-1`,children:[(0,O.jsx)(`h2`,{className:g,children:e.name}),(0,O.jsx)(`p`,{className:`text-xs text-tertiary-light`,children:e.description})]})]}),e.installHint&&(0,O.jsx)(`p`,{className:`text-xs text-tertiary-light`,children:e.installHint}),e.docsUrl&&(0,O.jsx)(`a`,{href:e.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-xs text-[var(--oh-muted)] hover:text-white hover:underline self-start transition-colors`,children:r(i.MCP$VIEW_DOCS)}),(0,O.jsx)(`div`,{className:`flex flex-col gap-3`,children:(()=>{if(C?.kind===`shttp`||C?.kind===`sse`){let e=Q(S),t=S?$(S):!1;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(y,{testId:`mcp-install-field-url`,name:`url`,type:`url`,label:r(i.SETTINGS$MCP_URL),value:C.url,onChange:()=>{},isDisabled:!0,className:`w-full`}),e?(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(y,{testId:`mcp-install-field-api_key`,name:`api_key`,type:`password`,label:r(i.SETTINGS$MCP_API_KEY),value:p.values.api_key??``,onChange:e=>T(`api_key`,e),placeholder:r(i.SETTINGS$MCP_API_KEY_PLACEHOLDER),showOptionalTag:t,required:!t,className:`w-full`}),p.errors.api_key&&(0,O.jsx)(`p`,{className:`text-xs text-red-500`,children:p.errors.api_key})]}):null]})}if(C?.kind!==`stdio`)return null;let e=C;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(y,{testId:`mcp-install-field-command-readonly`,name:`command-readonly`,type:`text`,label:r(i.MCP$COMMAND_LABEL),value:`${e.command} ${e.args.join(` `)}`.trim(),onChange:()=>{},isDisabled:!0,className:`w-full`}),(e.envFields??[]).map(e=>(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(y,{testId:`mcp-install-field-${e.key}`,name:e.key,type:e.type===`password`?`password`:`text`,label:e.label,value:p.values[e.key]??``,onChange:t=>T(e.key,t),placeholder:e.placeholder,required:e.required,showOptionalTag:!e.required,className:`w-full`}),e.helperText&&(0,O.jsx)(`p`,{className:`text-xs text-tertiary-alt`,children:Z(e.helperText)}),p.errors[e.key]&&(0,O.jsx)(`p`,{className:`text-xs text-red-500`,children:p.errors[e.key]}),e.key in p.savedAsSecret&&(0,O.jsx)(W,{fieldKey:e.key,checked:p.savedAsSecret[e.key],onToggle:t=>E(e.key,t)})]},e.key)),(e.argFields??[]).map(e=>(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(y,{testId:`mcp-install-field-${e.key}`,name:e.key,type:e.type===`password`?`password`:`text`,label:e.label,value:p.values[e.key]??``,onChange:t=>T(e.key,t),placeholder:e.placeholder,required:e.required,showOptionalTag:!e.required,className:`w-full`}),e.helperText&&(0,O.jsx)(`p`,{className:`text-xs text-tertiary-alt`,children:Z(e.helperText)}),p.errors[e.key]&&(0,O.jsx)(`p`,{className:`text-xs text-red-500`,children:p.errors[e.key]})]},e.key))]})})()}),v&&(0,O.jsx)(`p`,{"data-testid":`mcp-install-modal-error`,className:`text-sm text-red-500 whitespace-pre-wrap`,children:v}),(0,O.jsxs)(`div`,{className:`flex justify-end gap-2 mt-2`,children:[(0,O.jsx)(_,{type:`button`,variant:`secondary`,onClick:t,testId:`mcp-install-cancel`,children:r(i.BUTTON$CANCEL)}),(0,O.jsx)(_,{type:`submit`,variant:`primary`,isDisabled:w,testId:`mcp-install-submit`,children:r(u?i.MCP$VERIFYING:c?i.SETTINGS$SAVING:i.MCP$INSTALL_BUTTON)})]})]})})}export{U as a,z as c,H as d,ie as f,K as i,B as l,E as m,Y as n,re as o,V as p,q as r,N as s,ce as t,ne as u};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-BFRubm34.js";import{t}from"./react-CM_dJw1Z.js";import{I as n,L as r,M as i}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~cnj3raoq-DTEXlLSB.js";import{o as a,t as o}from"./declaration-CR6HMp29.js";import{t as s}from"./useTranslation-B6voJV4y.js";import{t as c}from"./utils-DCVfKFRt.js";import{t as l}from"./modal-backdrop-RfNCrSpK.js";import{r as u,t as d}from"./modal-body-aoa2fx5W.js";import{t as f}from"./brand-button-DJ_S16rO.js";import{t as p}from"./modal-close-button-CtWOUMmw.js";import{t as m}from"./settings-input-CehsXnb3.js";import{t as h}from"./use-create-conversation-Bszyp13O.js";import{r as g}from"./typography-BDgnT7Yp.js";import{n as _,t as v}from"./vendor~launch-BXgl67Re.js";var y=e(t(),1),b=a();function x({pluginIndex:e,paramKey:t,paramValue:n,onParameterChange:r}){let i=`plugin-${e}-param-${t}`;return typeof n==`boolean`?(0,b.jsxs)(`label`,{htmlFor:i,className:`flex w-full cursor-pointer items-center gap-2.5`,children:[(0,b.jsx)(`input`,{id:i,"data-testid":i,type:`checkbox`,checked:n,onChange:n=>r(e,t,n.target.checked),className:`h-4 w-4 shrink-0 rounded`}),(0,b.jsx)(`span`,{className:`text-sm`,children:t})]}):typeof n==`number`?(0,b.jsx)(m,{testId:i,name:`plugin-${e}-param-${t}`,type:`number`,label:t,value:String(n),className:`w-full`,onChange:n=>r(e,t,n===``?0:parseFloat(n)||0)}):(0,b.jsx)(m,{testId:i,name:`plugin-${e}-param-${t}`,type:`text`,label:t,value:String(n??``),className:`w-full`,onChange:n=>r(e,t,n)})}function S({plugin:e,originalIndex:t,isExpanded:n,onToggle:r,getPluginDisplayName:i,onParameterChange:a}){let{t:c}=s(`openhands`);return e.parameters&&Object.keys(e.parameters).length>0?(0,b.jsxs)(`div`,{className:`rounded-lg border border-[var(--oh-border)] bg-tertiary`,children:[(0,b.jsxs)(`button`,{type:`button`,onClick:r,className:`flex w-full items-center justify-between px-4 py-3 text-left hover:bg-base-tertiary rounded-t-lg cursor-pointer`,"data-testid":`plugin-section-${t}`,children:[(0,b.jsx)(g.Text,{className:`text-base font-normal`,children:i(e)}),n?(0,b.jsx)(v,{className:`h-5 w-5 text-white`}):(0,b.jsx)(_,{className:`h-5 w-5 text-white`})]}),n&&(0,b.jsxs)(`div`,{className:`border-t border-[var(--oh-border-subtle)] px-4 pb-3`,children:[e.ref&&(0,b.jsxs)(`div`,{className:`mb-2 text-sm text-white`,children:[c(o.LAUNCH$PLUGIN_REF),` `,e.ref]}),e.repo_path&&(0,b.jsxs)(`div`,{className:`mb-2 text-sm text-white`,children:[c(o.LAUNCH$PLUGIN_PATH),` `,e.repo_path]}),(0,b.jsx)(`div`,{className:`flex flex-col gap-4`,children:Object.entries(e.parameters||{}).map(([e,n])=>(0,b.jsx)(x,{pluginIndex:t,paramKey:e,paramValue:n,onParameterChange:a},e))})]})]}):null}function C({plugins:e,message:t,isLoading:n=!1,onStartConversation:r,onClose:i}){let{t:a}=s(`openhands`),[m,h]=y.useState(e),[_,v]=y.useState(()=>{let t={};return e.forEach((e,n)=>{e.parameters&&Object.keys(e.parameters).length>0&&(t[n]=!0)}),t}),[x,C]=y.useState(!1),w=m.filter(e=>e.parameters&&Object.keys(e.parameters).length>0),T=m.filter(e=>!e.parameters||Object.keys(e.parameters).length===0),E=e=>{v(t=>({...t,[e]:!t[e]}))},D=(e,t,n)=>{h(r=>{let i=[...r],a={...i[e]};return a.parameters={...a.parameters,[t]:n},i[e]=a,i})},O=e=>{let{source:t,repo_path:n}=e;if(n){let e=n.split(`/`);return e[e.length-1]}if(t.startsWith(`github:`))return t.replace(`github:`,``);if(t.includes(`/`)){let e=t.split(`/`);return e[e.length-1].replace(`.git`,``)}return t},k=e=>{let{source:t}=e;return t.startsWith(`github:`)?t.replace(`github:`,``):t.includes(`github.com/`)&&t.split(`github.com/`)[1]?.replace(`.git`,``)||t},A=()=>{let e=m.map(e=>k(e));return[...new Set(e)]},j=()=>{r(m,t)},M=m.length===1?O(m[0]):a(o.LAUNCH$MODAL_TITLE_GENERIC);return(0,b.jsx)(l,{onClose:i,children:(0,b.jsxs)(`div`,{"data-testid":`plugin-launch-modal`,className:c(`relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)] max-h-[80vh]`,u(`md`),d),children:[(0,b.jsx)(p,{onClose:i,testId:`close-button`}),(0,b.jsxs)(g.H2,{className:`pr-6`,children:[a(o.LAUNCH$MODAL_TITLE),` `,M]}),t&&(0,b.jsx)(`p`,{className:`text-sm text-white`,children:t}),(0,b.jsxs)(`div`,{className:`flex-1 overflow-y-auto custom-scrollbar`,children:[w.length>0&&(0,b.jsx)(`div`,{className:`space-y-3`,children:m.map((e,t)=>(0,b.jsx)(S,{plugin:e,originalIndex:t,isExpanded:!!_[t],onToggle:()=>E(t),getPluginDisplayName:O,onParameterChange:D},`plugin-${t}`))}),T.length>0&&(0,b.jsxs)(`div`,{className:c(w.length>0&&`mt-4`),children:[(0,b.jsx)(g.H3,{className:`mb-2 text-white`,children:w.length>0?a(o.LAUNCH$ADDITIONAL_PLUGINS):a(o.LAUNCH$PLUGINS)}),(0,b.jsx)(`div`,{className:`space-y-2`,children:T.map((e,t)=>(0,b.jsxs)(`div`,{className:`rounded-md bg-tertiary px-3 py-2 text-sm`,children:[(0,b.jsx)(`div`,{className:`font-medium`,children:O(e)}),(0,b.jsxs)(`div`,{className:`text-xs text-white mt-1`,children:[k(e),e.repo_path&&(0,b.jsxs)(`span`,{className:`ml-1`,children:[`/ `,e.repo_path]}),e.ref&&(0,b.jsxs)(`span`,{className:`ml-2`,children:[`@ `,e.ref]})]})]},`simple-plugin-${t}`))})]})]}),(0,b.jsxs)(`div`,{className:`pt-4 border-t border-[var(--oh-border-subtle)]`,children:[(0,b.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,b.jsx)(`input`,{id:`trust-checkbox`,"data-testid":`trust-checkbox`,type:`checkbox`,checked:x,onChange:e=>C(e.target.checked),className:`mt-1 h-4 w-4 flex-shrink-0`}),(0,b.jsx)(`label`,{htmlFor:`trust-checkbox`,className:`text-sm text-white`,children:a(o.LAUNCH$TRUST_SKILL_CHECKBOX,{sources:A().join(`, `),interpolation:{escapeValue:!1}})})]}),(0,b.jsx)(`div`,{className:`flex w-full justify-end mt-8`,children:(0,b.jsx)(f,{testId:`start-conversation-button`,type:`button`,variant:`primary`,onClick:j,isDisabled:n||!x,className:`px-4`,children:a(n?o.LAUNCH$STARTING:o.LAUNCH$START_CONVERSATION)})})]})]})})}function w(e){if(e)return e.replace(/<[^>]*>/g,``).slice(0,500)||void 0}function T(e){let t=e.get(`plugins`);if(t)try{let n=atob(t),r=JSON.parse(n);if(!Array.isArray(r))return{plugins:[],error:`invalid_format`};let i=[];for(let e of r){if(typeof e!=`object`||!e||typeof e.source!=`string`)return{plugins:[],error:`invalid_format`};i.push({source:e.source,ref:e.ref??null,repo_path:e.repo_path??null,parameters:e.parameters??null})}return i.length===0?{plugins:[],error:`no_plugins`}:{plugins:i,message:w(e.get(`message`))}}catch{return{plugins:[],error:`invalid_format`}}let n=e.get(`plugin_source`);return n?{plugins:[{source:n,ref:e.get(`plugin_ref`)??null,repo_path:e.get(`plugin_repo_path`)??null,parameters:null}],message:w(e.get(`message`))}:{plugins:[],error:`no_plugins`}}function E({errorType:e,onGoHome:t,onTryAgain:n}){let{t:r}=s(`openhands`),i={no_plugins:r(o.LAUNCH$ERROR_NO_PLUGINS),invalid_format:r(o.LAUNCH$ERROR_INVALID_FORMAT),creation_failed:r(o.LAUNCH$ERROR_CREATION_FAILED)};return(0,b.jsx)(`div`,{className:`flex h-full items-center justify-center`,"data-testid":`launch-error`,children:(0,b.jsxs)(`div`,{className:`max-w-md rounded-lg bg-[var(--oh-surface)] p-6 text-center`,children:[(0,b.jsx)(`h2`,{className:`mb-4 text-xl font-medium text-red-400`,children:r(o.LAUNCH$ERROR_TITLE)}),(0,b.jsx)(`p`,{className:`mb-6 text-[var(--oh-text-tertiary)]`,children:i[e]}),(0,b.jsxs)(`div`,{className:`flex justify-center gap-3`,children:[(0,b.jsx)(`button`,{type:`button`,onClick:t,className:`rounded-md bg-tertiary px-4 py-2 text-sm text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)]`,"data-testid":`go-home-button`,children:r(o.LAUNCH$GO_HOME)}),n&&(0,b.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-md bg-blue-600 px-4 py-2 text-sm text-white hover:bg-blue-700`,"data-testid":`try-again-button`,children:r(o.LAUNCH$TRY_AGAIN)})]})]})})}var D=r(function(){let[e]=n(),t=i(),{t:r}=s(`openhands`),a=h(),[c,l]=y.useState(null),u=y.useMemo(()=>T(e),[e]),d=async(e,n)=>{l(null);try{t(`/conversations/${(await a.mutateAsync({plugins:e,query:n})).conversation_id}`)}catch{l(r(o.LAUNCH$ERROR_CREATION_UNKNOWN))}},f=()=>{t(`/conversations`)};return u.error?(0,b.jsx)(E,{errorType:u.error,onGoHome:f}):c?(0,b.jsx)(E,{errorType:`creation_failed`,onGoHome:f,onTryAgain:()=>{l(null),window.location.reload()}}):(0,b.jsx)(`div`,{className:`h-full`,"data-testid":`launch-route`,children:(0,b.jsx)(C,{plugins:u.plugins,message:u.message,isLoading:a.isPending,onStartConversation:d,onClose:f})})});export{D as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-BFRubm34.js";import{t as e}from"./react-CM_dJw1Z.js";import{o as t}from"./declaration-BNMqORFE.js";e();var n=t(),r=e=>(0,n.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:109,height:109,viewBox:`0 0 109 109`,fill:`none`,...e,children:[(0,n.jsx)(`path`,{d:`M40.1979 21.8969L34.7311 17.832L25.2691 30.5574L20.2094 26.784L16.1367 32.2451L26.6653 40.0969L40.1979 21.8969Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M90.8342 35.1983H50.4639V28.3858H90.8342V35.1983Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M90.8342 57.9067H50.4638V51.0942H90.8342V57.9067Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M27.2508 63.5837C32.2674 63.5837 36.3342 59.517 36.3342 54.5004C36.3342 49.4838 32.2674 45.4171 27.2508 45.4171C22.2342 45.4171 18.1675 49.4838 18.1675 54.5004C18.1675 59.517 22.2342 63.5837 27.2508 63.5837ZM27.2508 59.0421C29.7591 59.0421 31.7925 57.0087 31.7925 54.5004C31.7925 51.9921 29.7591 49.9587 27.2508 49.9587C24.7425 49.9587 22.7092 51.9921 22.7092 54.5004C22.7092 57.0087 24.7425 59.0421 27.2508 59.0421Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M36.3342 77.2087C36.3342 82.2253 32.2674 86.2921 27.2508 86.2921C22.2342 86.2921 18.1675 82.2253 18.1675 77.2087C18.1675 72.1922 22.2342 68.1254 27.2508 68.1254C32.2674 68.1254 36.3342 72.1922 36.3342 77.2087ZM31.7925 77.2087C31.7925 79.717 29.7591 81.7504 27.2508 81.7504C24.7425 81.7504 22.7092 79.717 22.7092 77.2087C22.7092 74.7005 24.7425 72.6671 27.2508 72.6671C29.7591 72.6671 31.7925 74.7005 31.7925 77.2087Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M50.4637 80.615H90.834V73.8025H50.4637V80.615Z`,fill:`currentColor`})]});export{r as t};
1
+ import"./rolldown-runtime-BFRubm34.js";import{t as e}from"./react-CM_dJw1Z.js";import{o as t}from"./declaration-CR6HMp29.js";e();var n=t(),r=e=>(0,n.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:109,height:109,viewBox:`0 0 109 109`,fill:`none`,...e,children:[(0,n.jsx)(`path`,{d:`M40.1979 21.8969L34.7311 17.832L25.2691 30.5574L20.2094 26.784L16.1367 32.2451L26.6653 40.0969L40.1979 21.8969Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M90.8342 35.1983H50.4639V28.3858H90.8342V35.1983Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M90.8342 57.9067H50.4638V51.0942H90.8342V57.9067Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M27.2508 63.5837C32.2674 63.5837 36.3342 59.517 36.3342 54.5004C36.3342 49.4838 32.2674 45.4171 27.2508 45.4171C22.2342 45.4171 18.1675 49.4838 18.1675 54.5004C18.1675 59.517 22.2342 63.5837 27.2508 63.5837ZM27.2508 59.0421C29.7591 59.0421 31.7925 57.0087 31.7925 54.5004C31.7925 51.9921 29.7591 49.9587 27.2508 49.9587C24.7425 49.9587 22.7092 51.9921 22.7092 54.5004C22.7092 57.0087 24.7425 59.0421 27.2508 59.0421Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M36.3342 77.2087C36.3342 82.2253 32.2674 86.2921 27.2508 86.2921C22.2342 86.2921 18.1675 82.2253 18.1675 77.2087C18.1675 72.1922 22.2342 68.1254 27.2508 68.1254C32.2674 68.1254 36.3342 72.1922 36.3342 77.2087ZM31.7925 77.2087C31.7925 79.717 29.7591 81.7504 27.2508 81.7504C24.7425 81.7504 22.7092 79.717 22.7092 77.2087C22.7092 74.7005 24.7425 72.6671 27.2508 72.6671C29.7591 72.6671 31.7925 74.7005 31.7925 77.2087Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M50.4637 80.615H90.834V73.8025H50.4637V80.615Z`,fill:`currentColor`})]});export{r as t};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-BFRubm34.js";import{t as e}from"./react-CM_dJw1Z.js";import{o as t}from"./declaration-CR6HMp29.js";e();var n=t(),r=e=>(0,n.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:[(0,n.jsx)(`path`,{d:`M2.25 1.5H9V3H3V21H21V15H22.5V21.75L21.75 22.5H2.25L1.5 21.75V2.25L2.25 1.5Z`,fill:`currentColor`}),(0,n.jsx)(`path`,{d:`M22.5 2.25V12H21V4.0605L10.8645 14.1975L9.80402 13.1355L19.9395 3H12V1.5H21.75L22.5 2.25Z`,fill:`currentColor`})]});export{r as t};
@@ -1 +1 @@
1
- import{o as e}from"./agent-server-client-options-Bc5ZorQZ.js";var t=class{constructor(t){this.host=t.host.replace(/\/$/,``),this.apiKey=t.apiKey,this.client=new e({baseUrl:this.host,apiKey:this.apiKey,timeout:t.timeout||6e4})}async getProviders(){return(await this.client.get(`/api/llm/providers`)).data.providers}async getModels(e){return(await this.client.get(`/api/llm/models`,{params:e?{provider:e}:void 0})).data.models}async getVerifiedModels(){return(await this.client.get(`/api/llm/models/verified`)).data.models}close(){this.client.close()}};export{t};
1
+ import{c as e}from"./agent-server-client-options-HEOwGVIU.js";var t=class{constructor(t){this.host=t.host.replace(/\/$/,``),this.apiKey=t.apiKey,this.client=new e({baseUrl:this.host,apiKey:this.apiKey,timeout:t.timeout||6e4})}async getProviders(){return(await this.client.get(`/api/llm/providers`)).data.providers}async getModels(e){return(await this.client.get(`/api/llm/models`,{params:e?{provider:e}:void 0})).data.models}async getVerifiedModels(){return(await this.client.get(`/api/llm/models/verified`)).data.models}close(){this.client.close()}};export{t};