@openhands/agent-canvas 1.16.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1093) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/{acp-providers-CX3Lh9gj.js → acp-providers-DcY_mKYa.js} +1 -1
  4. package/build/assets/active-backend-context-BnH4-L8h.js +2 -0
  5. package/build/assets/{agent-context-settings-DSZlXrLj.js → agent-context-settings-D3peZkjX.js} +1 -1
  6. package/build/assets/agent-profiles-service.api-DkeZaqIl.js +1 -0
  7. package/build/assets/agent-profiles-settings-7yMWYjGF.js +1 -0
  8. package/build/assets/agent-server-client-options-EHB23gyx.js +1 -0
  9. package/build/assets/agent-server-config-C_x8Otd9.js +1 -0
  10. package/build/assets/agent-server-conversation-service.api-jiCopc2E.js +88 -0
  11. package/build/assets/agent-settings-BF8hM6wb.js +2 -0
  12. package/build/assets/agent-settings-YPutBAeR.js +1 -0
  13. package/build/assets/alert-banner-eYyqvHL3.js +1 -0
  14. package/build/assets/{api-error-message-B-XdSk3b.js → api-error-message-BXo0lCI5.js} +1 -1
  15. package/build/assets/api-key-entry-screen-CCBvBD8u.js +1 -0
  16. package/build/assets/app-settings-BtYDs-Be.js +1 -0
  17. package/build/assets/automation-detail-BxXhb_m2.js +3 -0
  18. package/build/assets/{automation-export-D3a3of4G.js → automation-export-BJsfi7n2.js} +1 -1
  19. package/build/assets/automation-git-sync-B7o_Nbl-.js +1 -0
  20. package/build/assets/automation-setup-route-qaJ6lLCf.js +3 -0
  21. package/build/assets/{automation-templates-BRppNh99.js → automation-templates-Bb98r-kx.js} +1 -1
  22. package/build/assets/automations-list-DEPVNud3.js +1 -0
  23. package/build/assets/{back-nav-button-Cjl_hoxq.js → back-nav-button-B2yBiVMB.js} +1 -1
  24. package/build/assets/backend-form-modal-DxisQV_6.js +1 -0
  25. package/build/assets/backend-synced-settings-badge-DLEp6cq7.js +1 -0
  26. package/build/assets/badge-ehL-kgeO.js +1 -0
  27. package/build/assets/{base-modal-D_L0oEbG.js → base-modal-C1a0TsSx.js} +1 -1
  28. package/build/assets/bot-ByolqPEr.js +1 -0
  29. package/build/assets/{brand-button-BAfk4wGP.js → brand-button-CUMfjb99.js} +1 -1
  30. package/build/assets/browser-SE24Tk8g.js +46 -0
  31. package/build/assets/browser-tab-HjJxHA0V.js +1 -0
  32. package/build/assets/canvas-extension-page-BsUGBb1T.js +1 -0
  33. package/build/assets/canvas-extensions-C9Tm6s_E.js +1 -0
  34. package/build/assets/{canvas-extensions-runtime-2_x5Ezmi.js → canvas-extensions-runtime-B8kxM4rO.js} +1 -1
  35. package/build/assets/{chat-send-button-MUQqCZCS.js → chat-send-button-CGvc2wpE.js} +1 -1
  36. package/build/assets/check-Bo8s5Ylg.js +1 -0
  37. package/build/assets/chevron-down-Cr6Fn_wS.js +1 -0
  38. package/build/assets/chevron-right-CfdfRn-8.js +1 -0
  39. package/build/assets/circle-check-5pH3qCji.js +1 -0
  40. package/build/assets/circle-plus-check-toggle-BDX_ctNs.js +1 -0
  41. package/build/assets/{cloud-funnel-analytics-CztBCCPp.js → cloud-funnel-analytics-D5uJ_4JE.js} +1 -1
  42. package/build/assets/{cog-D-MPQW6G.js → cog-CAEugqtV.js} +1 -1
  43. package/build/assets/command-menu-CQxs4mtX.js +1 -0
  44. package/build/assets/commits-tab-D0xgjipP.js +1 -0
  45. package/build/assets/{condenser-settings-DmEOje-7.js → condenser-settings-D63NJRBT.js} +1 -1
  46. package/build/assets/confirmation-modal-78sd9Vny.js +1 -0
  47. package/build/assets/{context-menu-list-item-I86vKcmM.js → context-menu-list-item-Cm7-7Y-7.js} +1 -1
  48. package/build/assets/conversation-B_nweu5p.js +93 -0
  49. package/build/assets/conversation-edjzrv5w.js +1 -0
  50. package/build/assets/conversation-panel-edjzrv5w.js +1 -0
  51. package/build/assets/conversation-state-store-9D_3P7q4.js +1 -0
  52. package/build/assets/conversation-store-DC-JlJuq.js +6 -0
  53. package/build/assets/{conversation-tab-empty-state-FIbh_lc8.js → conversation-tab-empty-state-B3dpJXX0.js} +1 -1
  54. package/build/assets/copy-to-clipboard-button-B1ljgNxO.js +1 -0
  55. package/build/assets/device-verify-D5QRIS_x.js +1 -0
  56. package/build/assets/{dropdown-classes-Bc1djN0-.js → dropdown-classes-BGvOvW2_.js} +1 -1
  57. package/build/assets/edit-automation-modal-D_JWSmxT.js +1 -0
  58. package/build/assets/empty-state-FK_s1B60.js +1 -0
  59. package/build/assets/{entry.client-CqyPPjOq.js → entry.client-BMafTpjO.js} +2 -2
  60. package/build/assets/enum-filter-dropdown-UNaom12H.js +1 -0
  61. package/build/assets/environment-switch-overlay-COibRUA-.js +1 -0
  62. package/build/assets/error-state-Cf8LRuuY.js +1 -0
  63. package/build/assets/extensions-hub-C_6ahIua.js +1 -0
  64. package/build/assets/extensions-navigation-C5GfpzFe.js +1 -0
  65. package/build/assets/external-link-Bd7Tga-1.js +1 -0
  66. package/build/assets/files-tab-D5PPIWI1.js +1 -0
  67. package/build/assets/{form-control-classes-Bkh5FGrD.js → form-control-classes-Dbq-7YP_.js} +1 -1
  68. package/build/assets/format-model-name-Dfh9Udrx.js +1 -0
  69. package/build/assets/get-git-path-jU2zjqIB.js +1 -0
  70. package/build/assets/git-repo-dropdown-BoDDWXfX.js +1 -0
  71. package/build/assets/git-repo-dropdown-uxlFw2gn.js +1 -0
  72. package/build/assets/highlighted-source-view-C7pAXrT0.js +1 -0
  73. package/build/assets/home-BM5_Wz_R.js +1 -0
  74. package/build/assets/home-Ivfm7KC4.js +1 -0
  75. package/build/assets/home-automation-run-tooltip-B1N2uO9p.js +1 -0
  76. package/build/assets/home-store-DCbei3DX.js +1 -0
  77. package/build/assets/hooks-service-Dnmhqc0Z.js +1 -0
  78. package/build/assets/index-home-td9BN2T3.js +1 -0
  79. package/build/assets/info-BcajzHn1.js +1 -0
  80. package/build/assets/install-server-modal-B81I-5OE.js +1 -0
  81. package/build/assets/kebab-menu-item-content-SCJBwZnp.js +1 -0
  82. package/build/assets/{key-BmVyxs-2.js → key-O84CMFHb.js} +1 -1
  83. package/build/assets/launch-ZLxI4opd.js +1 -0
  84. package/build/assets/list-filter-B8PQk3RA.js +1 -0
  85. package/build/assets/{list-todo-apgLVjMw.js → list-todo-Caa8E1X_.js} +1 -1
  86. package/build/assets/llm-not-configured-banner-Dh_ajcM8.js +27 -0
  87. package/build/assets/llm-settings-CODhjQzy.js +1 -0
  88. package/build/assets/llm-settings-CZaXYgtw.js +1 -0
  89. package/build/assets/llm-subscription-service-CgIDc38n.js +1 -0
  90. package/build/assets/loader-circle-BxJgk73D.js +1 -0
  91. package/build/assets/{loading-spinner-BY9N3pOe.js → loading-spinner-BeLV0IXf.js} +1 -1
  92. package/build/assets/manage-backends-modal-cMXqCb-B.js +1 -0
  93. package/build/assets/manifest-bfeccb98.js +1 -0
  94. package/build/assets/manifest-subpage-layout-CVZgVKoY.js +1 -0
  95. package/build/assets/{map-provider-Cu3Zgumb.js → map-provider-iRs80q_6.js} +1 -1
  96. package/build/assets/markdown-renderer-DyFl9-mL.js +8 -0
  97. package/build/assets/mcp-CraxoXQv.js +1 -0
  98. package/build/assets/{mcp-marketplace-utils-AIBzzHTO.js → mcp-marketplace-utils-C7PYr293.js} +1 -1
  99. package/build/assets/mcp-page-CteH_K0N.js +9 -0
  100. package/build/assets/messages-Bk1xhbU2.js +41 -0
  101. package/build/assets/{modal-body-BxZjsju9.js → modal-body-C24WsdFb.js} +1 -1
  102. package/build/assets/{modal-classes-C8eycCwG.js → modal-classes-B0b9eiL8.js} +1 -1
  103. package/build/assets/modal-close-button-DfqfB2Nj.js +1 -0
  104. package/build/assets/{mouse-pointer-click-Co2uyaPA.js → mouse-pointer-click-BXlRN92t.js} +1 -1
  105. package/build/assets/onboarding-DXFBRqEy.js +1 -0
  106. package/build/assets/onboarding-modal-BT3Gx_sZ.js +1 -0
  107. package/build/assets/organization-service.api-B5CvmnYQ.js +1 -0
  108. package/build/assets/pencil-q-ihqDYv.js +1 -0
  109. package/build/assets/pin-BdroVQdN.js +1 -0
  110. package/build/assets/planner-tab-CstoOlAB.js +1 -0
  111. package/build/assets/plug-7ACOEbMs.js +1 -0
  112. package/build/assets/plugins-management-service-5rqVPEGN.js +1 -0
  113. package/build/assets/plus-C2e21TFC.js +1 -0
  114. package/build/assets/profiles-service.api-D1XKMgr0.js +1 -0
  115. package/build/assets/providers-XmZ9HM4Q.js +1 -0
  116. package/build/assets/proxy-XP6U1Dhv.js +1 -0
  117. package/build/assets/{puzzle-JM_QaRm0.js → puzzle-LJYnuxKe.js} +1 -1
  118. package/build/assets/react-BX7IV650.js +1 -0
  119. package/build/assets/recommended-automations-launcher-DEHRKIAg.js +1 -0
  120. package/build/assets/refresh-cw-BtdC3T8P.js +1 -0
  121. package/build/assets/root-CM6IZHlg.css +1 -0
  122. package/build/assets/root-DdFkodKW.js +2 -0
  123. package/build/assets/root-layout-DUquNZTU.js +2 -0
  124. package/build/assets/schema-field-Y3F8JvXd.js +1 -0
  125. package/build/assets/scroll-fade-state-Dt_fx2kf.js +1 -0
  126. package/build/assets/sdk-section-page-CNZTLwH9.js +1 -0
  127. package/build/assets/secret-form-9-BoGA40.js +1 -0
  128. package/build/assets/secrets-service-BOIsfD9j.js +1 -0
  129. package/build/assets/secrets-settings-CBJgFr42.js +1 -0
  130. package/build/assets/settings-D4hdToD4.js +1 -0
  131. package/build/assets/settings-dropdown-input-DBvsZ7-Q.js +1 -0
  132. package/build/assets/settings-index-DeQphyBK.js +1 -0
  133. package/build/assets/settings-input-dVuzapBA.js +1 -0
  134. package/build/assets/{settings-list-classes-BzeSZbF2.js → settings-list-classes-DhAPuXm6.js} +1 -1
  135. package/build/assets/settings-modal-tHiJ8iYV.js +1 -0
  136. package/build/assets/settings-nav-GAQjW1a-.js +16 -0
  137. package/build/assets/settings-service.api-C1vZH9Vh.js +1 -0
  138. package/build/assets/settings-switch-DDd1cQ8t.js +1 -0
  139. package/build/assets/{settings-utils-UYpEdPuD.js → settings-utils-BTaaRhLZ.js} +1 -1
  140. package/build/assets/shared-conversation-Cyg7m7ns.js +1 -0
  141. package/build/assets/shield-check-C3Rl0NF8.js +1 -0
  142. package/build/assets/{sidebar-layout-D6fS8-Gl.js → sidebar-layout-DH0E-5KW.js} +1 -1
  143. package/build/assets/sidebar-mobile-menu-toggle-CQ4iky__.js +1 -0
  144. package/build/assets/{sidebar-nav-link-DQQcMf1A.js → sidebar-nav-link-oLQiKUBu.js} +1 -1
  145. package/build/assets/{sidebar-onboarding-checklist-storage-BBkeI6Bp.js → sidebar-onboarding-checklist-storage-TfvNNnnr.js} +1 -1
  146. package/build/assets/sidebar-store-DAZVH-DR.js +1 -0
  147. package/build/assets/skill-card-pill-row-DfjIfj0K.js +1 -0
  148. package/build/assets/{skill-filter-w__3UCEE.js → skill-filter-DsNLmn76.js} +2 -2
  149. package/build/assets/{skill-icon-badge-RQkq8wvl.js → skill-icon-badge-0MK_68Nc.js} +1 -1
  150. package/build/assets/skill-scope-BE-H9TSZ.js +1 -0
  151. package/build/assets/skills-plugins-vzSdxSk_.js +1 -0
  152. package/build/assets/skills-settings-BiPOH9H9.js +1 -0
  153. package/build/assets/styled-tooltip-CejG0rqv.js +1 -0
  154. package/build/assets/task-list-tab-OkZSqnTp.js +1 -0
  155. package/build/assets/{terminal-CNElN42a.js → terminal-Dph60VFZ.js} +2 -2
  156. package/build/assets/toggle-switch-B2uXaAUS.js +1 -0
  157. package/build/assets/trash-2-Bb40zQzs.js +1 -0
  158. package/build/assets/trash-Ckh7yCaB.js +1 -0
  159. package/build/assets/triangle-alert-DEdu-b_L.js +1 -0
  160. package/build/assets/{typography-v1KN0tzi.js → typography-DgcLGdHk.js} +1 -1
  161. package/build/assets/usage-tab-MCmNRAnR.js +1 -0
  162. package/build/assets/use-acp-credential-form-ychoGqjC.js +1 -0
  163. package/build/assets/use-activate-agent-profile-8L8Xdghy.js +1 -0
  164. package/build/assets/use-agent-profiles-Bi8hSkze.js +1 -0
  165. package/build/assets/{use-automation-health-E6NZi9rb.js → use-automation-health-U99vvHxx.js} +1 -1
  166. package/build/assets/use-automation-permissions-Buus0R6h.js +1 -0
  167. package/build/assets/{use-automations-xijQKIl9.js → use-automations-Bq5hVuv0.js} +1 -1
  168. package/build/assets/{use-can-manage-org-profiles-CrJP5262.js → use-can-manage-org-profiles-MzIeEV8F.js} +1 -1
  169. package/build/assets/use-canvas-extensions-Ca9KoVEm.js +1 -0
  170. package/build/assets/{use-cloud-current-user-id-CDfAHpPX.js → use-cloud-current-user-id-B4ZLUZSa.js} +1 -1
  171. package/build/assets/use-config-l5tkDHyD.js +1 -0
  172. package/build/assets/use-create-conversation-i_PdFdIs.js +1 -0
  173. package/build/assets/use-create-secret-CjWq0J4O.js +1 -0
  174. package/build/assets/use-free-models-gCsJ5BV0.js +1 -0
  175. package/build/assets/{use-get-secrets-K3jmk-LH.js → use-get-secrets-CMTuWEp_.js} +1 -1
  176. package/build/assets/use-is-authed-A2Yinlt0.js +1 -0
  177. package/build/assets/{use-launch-skill-in-chat-BYjYihBP.js → use-launch-skill-in-chat-QbXDhiHr.js} +1 -1
  178. package/build/assets/use-llm-configured-Dl4zg8ht.js +1 -0
  179. package/build/assets/use-llm-profiles-SWsuFmFu.js +1 -0
  180. package/build/assets/use-manifest-capabilities-CdqYfUAC.js +1 -0
  181. package/build/assets/use-onboarding-completion-Xl63ZvzQ.js +1 -0
  182. package/build/assets/use-pinned-home-route-BXDIUaxQ.js +1 -0
  183. package/build/assets/use-plugins-marketplace-BIIaPiaB.js +1 -0
  184. package/build/assets/use-save-agent-profile-D-ZHHE94.js +1 -0
  185. package/build/assets/{use-save-settings-DYqkKv7T.js → use-save-settings-Dapkf4cC.js} +1 -1
  186. package/build/assets/use-settings-C2KKQKVC.js +1 -0
  187. package/build/assets/use-settings-nav-items-TOc0Rsfd.js +1 -0
  188. package/build/assets/use-tracking-j4uo9VEW.js +3 -0
  189. package/build/assets/{use-user-conversation-B9Gebw_g.js → use-user-conversation-5UFqMoO4.js} +1 -1
  190. package/build/assets/{useInfiniteQuery-C926xzY4.js → useInfiniteQuery-CtSRG7uW.js} +1 -1
  191. package/build/assets/{useMutation-B-qc391N.js → useMutation-Cszf8mKy.js} +1 -1
  192. package/build/assets/useQueries-pUohFMSP.js +1 -0
  193. package/build/assets/useQuery-DAAacS7O.js +1 -0
  194. package/build/assets/useTranslation-CCgUjPJF.js +1 -0
  195. package/build/assets/utils-BgLSZdyy.js +1 -0
  196. package/build/assets/{vendor~conversation-panel~conversation-C8Fn4XOf.js → vendor~conversation-panel~conversation-C22sJuWZ.js} +1 -1
  197. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js +2 -0
  198. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js +185 -0
  199. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-40UR63Gt.js +1 -0
  200. package/build/assets/{vendor~index-home~home~conversation-panel~conversation-hWywRBaR.js → vendor~index-home~home~conversation-panel~conversation-UTl7gUo9.js} +1 -1
  201. package/build/assets/vendor~root-layout-CcdIqs-C.js +1 -0
  202. package/build/assets/{vendor~root-layout~conversation-panel~conversation-BMbMgaGu.js → vendor~root-layout~conversation-panel~conversation-C3EBV3kp.js} +1 -1
  203. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BCe0JJVy.js +1 -0
  204. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation-j5MFqfSy.js → vendor~root-layout~index-home~home~conversation-panel~conversation-BGGbPcYh.js} +1 -1
  205. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-CxhwKuAd.js +1 -0
  206. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~nj1hli3r-DP9wmsjo.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js} +1 -1
  207. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-CUmIwQCN.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-3eJ4ExtV.js} +12 -6
  208. package/build/assets/{verification-settings-gw_q6vkL.js → verification-settings-DdBpaVPz.js} +1 -1
  209. package/build/assets/{wrench-CUEI1krB.js → wrench-B8Wg_nbp.js} +1 -1
  210. package/build/assets/x-CX8lVGwm.js +1 -0
  211. package/build/index.html +4 -4
  212. package/build/locales/ar/openhands.json +79 -22
  213. package/build/locales/ca/openhands.json +79 -22
  214. package/build/locales/de/openhands.json +79 -22
  215. package/build/locales/en/openhands.json +79 -22
  216. package/build/locales/es/openhands.json +79 -22
  217. package/build/locales/fr/openhands.json +79 -22
  218. package/build/locales/it/openhands.json +79 -22
  219. package/build/locales/ja/openhands.json +79 -22
  220. package/build/locales/ko-KR/openhands.json +79 -22
  221. package/build/locales/no/openhands.json +79 -22
  222. package/build/locales/pt/openhands.json +79 -22
  223. package/build/locales/tr/openhands.json +79 -22
  224. package/build/locales/uk/openhands.json +79 -22
  225. package/build/locales/zh-CN/openhands.json +79 -22
  226. package/build/locales/zh-TW/openhands.json +79 -22
  227. package/config/defaults.json +3 -3
  228. package/dist/api/agent-server-adapter.cjs +3 -3
  229. package/dist/api/agent-server-adapter.cjs.map +1 -1
  230. package/dist/api/agent-server-adapter.d.ts +72 -12
  231. package/dist/api/agent-server-adapter.js +234 -132
  232. package/dist/api/agent-server-adapter.js.map +1 -1
  233. package/dist/api/agent-server-config.cjs +1 -1
  234. package/dist/api/agent-server-config.cjs.map +1 -1
  235. package/dist/api/agent-server-config.d.ts +6 -0
  236. package/dist/api/agent-server-config.js +6 -3
  237. package/dist/api/agent-server-config.js.map +1 -1
  238. package/dist/api/automation-service/automation-service.api.cjs +1 -1
  239. package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
  240. package/dist/api/automation-service/automation-service.api.d.ts +2 -2
  241. package/dist/api/automation-service/automation-service.api.js +7 -7
  242. package/dist/api/automation-service/automation-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 +9 -1
  245. package/dist/api/cloud/organization-service.api.js.map +1 -1
  246. package/dist/api/cloud/provider-connections-service.api.cjs +2 -0
  247. package/dist/api/cloud/provider-connections-service.api.cjs.map +1 -0
  248. package/dist/api/cloud/provider-connections-service.api.d.ts +5 -0
  249. package/dist/api/cloud/provider-connections-service.api.js +50 -0
  250. package/dist/api/cloud/provider-connections-service.api.js.map +1 -0
  251. package/dist/api/cloud/skills-service.api.cjs +1 -1
  252. package/dist/api/cloud/skills-service.api.cjs.map +1 -1
  253. package/dist/api/cloud/skills-service.api.d.ts +10 -0
  254. package/dist/api/cloud/skills-service.api.js +11 -1
  255. package/dist/api/cloud/skills-service.api.js.map +1 -1
  256. package/dist/api/config-service/config-service.api.cjs +1 -1
  257. package/dist/api/config-service/config-service.api.cjs.map +1 -1
  258. package/dist/api/config-service/config-service.api.js +6 -2
  259. package/dist/api/config-service/config-service.api.js.map +1 -1
  260. package/dist/api/config-service/config-service.types.d.ts +13 -0
  261. package/dist/api/conversation-metadata-store.cjs +1 -1
  262. package/dist/api/conversation-metadata-store.cjs.map +1 -1
  263. package/dist/api/conversation-metadata-store.d.ts +24 -0
  264. package/dist/api/conversation-metadata-store.js +10 -2
  265. package/dist/api/conversation-metadata-store.js.map +1 -1
  266. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  267. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  268. package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +20 -0
  269. package/dist/api/conversation-service/agent-server-conversation-service.api.js +126 -77
  270. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  271. package/dist/api/hooks-service.cjs +2 -0
  272. package/dist/api/hooks-service.cjs.map +1 -0
  273. package/dist/api/hooks-service.d.ts +13 -0
  274. package/dist/api/hooks-service.js +20 -0
  275. package/dist/api/hooks-service.js.map +1 -0
  276. package/dist/api/provider-connections-service/provider-connections-service.api.cjs +1 -1
  277. package/dist/api/provider-connections-service/provider-connections-service.api.cjs.map +1 -1
  278. package/dist/api/provider-connections-service/provider-connections-service.api.js +25 -16
  279. package/dist/api/provider-connections-service/provider-connections-service.api.js.map +1 -1
  280. package/dist/api/settings-service/settings-service.api.cjs +1 -1
  281. package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
  282. package/dist/api/settings-service/settings-service.api.d.ts +2 -0
  283. package/dist/api/settings-service/settings-service.api.js +18 -10
  284. package/dist/api/settings-service/settings-service.api.js.map +1 -1
  285. package/dist/api/skills-service.cjs +1 -1
  286. package/dist/api/skills-service.cjs.map +1 -1
  287. package/dist/api/skills-service.d.ts +7 -0
  288. package/dist/api/skills-service.js +11 -8
  289. package/dist/api/skills-service.js.map +1 -1
  290. package/dist/components/conversation-events/chat/event-message-components/critic-result-display.cjs +1 -1
  291. package/dist/components/conversation-events/chat/event-message-components/critic-result-display.js +5 -5
  292. package/dist/components/conversation-events/chat/event-message-components/finish-event-message.cjs +1 -1
  293. package/dist/components/conversation-events/chat/event-message-components/finish-event-message.cjs.map +1 -1
  294. package/dist/components/conversation-events/chat/event-message-components/finish-event-message.js +2 -1
  295. package/dist/components/conversation-events/chat/event-message-components/finish-event-message.js.map +1 -1
  296. package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.cjs +1 -1
  297. package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.cjs.map +1 -1
  298. package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.d.ts +1 -1
  299. package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.js +28 -28
  300. package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.js.map +1 -1
  301. package/dist/components/conversation-events/chat/event-message-components/thought-event-message.cjs +1 -1
  302. package/dist/components/conversation-events/chat/event-message-components/thought-event-message.cjs.map +1 -1
  303. package/dist/components/conversation-events/chat/event-message-components/thought-event-message.js +2 -1
  304. package/dist/components/conversation-events/chat/event-message-components/thought-event-message.js.map +1 -1
  305. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs +1 -1
  306. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs.map +1 -1
  307. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.d.ts +1 -1
  308. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js +37 -37
  309. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js.map +1 -1
  310. package/dist/components/conversation-events/chat/event-message.cjs +2 -2
  311. package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
  312. package/dist/components/conversation-events/chat/event-message.js +79 -70
  313. package/dist/components/conversation-events/chat/event-message.js.map +1 -1
  314. package/dist/components/conversation-events/chat/messages.cjs +1 -1
  315. package/dist/components/conversation-events/chat/messages.cjs.map +1 -1
  316. package/dist/components/conversation-events/chat/messages.js +28 -27
  317. package/dist/components/conversation-events/chat/messages.js.map +1 -1
  318. package/dist/components/features/automations/automation-card.cjs +1 -1
  319. package/dist/components/features/automations/automation-card.cjs.map +1 -1
  320. package/dist/components/features/automations/automation-card.js +104 -97
  321. package/dist/components/features/automations/automation-card.js.map +1 -1
  322. package/dist/components/features/automations/automation-list-row.cjs +1 -1
  323. package/dist/components/features/automations/automation-list-row.cjs.map +1 -1
  324. package/dist/components/features/automations/automation-list-row.js +89 -77
  325. package/dist/components/features/automations/automation-list-row.js.map +1 -1
  326. package/dist/components/features/automations/build-automation-menu-items.cjs +1 -1
  327. package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -1
  328. package/dist/components/features/automations/build-automation-menu-items.d.ts +3 -1
  329. package/dist/components/features/automations/build-automation-menu-items.js +12 -11
  330. package/dist/components/features/automations/build-automation-menu-items.js.map +1 -1
  331. package/dist/components/features/automations/detail/configuration-section.d.ts +7 -1
  332. package/dist/components/features/automations/detail/detail-header.d.ts +10 -5
  333. package/dist/components/features/automations/detail/run-status-badge.cjs +1 -1
  334. package/dist/components/features/automations/detail/run-status-badge.cjs.map +1 -1
  335. package/dist/components/features/automations/detail/run-status-badge.d.ts +2 -2
  336. package/dist/components/features/automations/detail/run-status-badge.js +82 -53
  337. package/dist/components/features/automations/detail/run-status-badge.js.map +1 -1
  338. package/dist/components/features/automations/kebab-menu.cjs +1 -1
  339. package/dist/components/features/automations/kebab-menu.cjs.map +1 -1
  340. package/dist/components/features/automations/kebab-menu.js +9 -5
  341. package/dist/components/features/automations/kebab-menu.js.map +1 -1
  342. package/dist/components/features/automations/recommended-automations-launcher.cjs +1 -1
  343. package/dist/components/features/automations/recommended-automations-launcher.cjs.map +1 -1
  344. package/dist/components/features/automations/recommended-automations-launcher.js +12 -12
  345. package/dist/components/features/automations/recommended-automations-launcher.js.map +1 -1
  346. package/dist/components/features/automations/recommended-automations-section.cjs +1 -1
  347. package/dist/components/features/automations/recommended-automations-section.js +9 -9
  348. package/dist/components/features/backends/backend-selector.cjs +1 -1
  349. package/dist/components/features/backends/backend-selector.cjs.map +1 -1
  350. package/dist/components/features/backends/backend-selector.js +123 -112
  351. package/dist/components/features/backends/backend-selector.js.map +1 -1
  352. package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
  353. package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
  354. package/dist/components/features/backends/manage-backends-modal.js +29 -29
  355. package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
  356. package/dist/components/features/chat/change-agent-button.cjs +1 -1
  357. package/dist/components/features/chat/change-agent-button.js +4 -4
  358. package/dist/components/features/chat/chat-interface.cjs +2 -2
  359. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  360. package/dist/components/features/chat/chat-interface.js +137 -137
  361. package/dist/components/features/chat/chat-interface.js.map +1 -1
  362. package/dist/components/features/chat/chat-message.cjs +1 -1
  363. package/dist/components/features/chat/chat-message.cjs.map +1 -1
  364. package/dist/components/features/chat/chat-message.d.ts +2 -1
  365. package/dist/components/features/chat/chat-message.js +88 -79
  366. package/dist/components/features/chat/chat-message.js.map +1 -1
  367. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +1 -1
  368. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -1
  369. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +62 -61
  370. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -1
  371. package/dist/components/features/chat/components/context-window-meter.cjs +1 -1
  372. package/dist/components/features/chat/components/context-window-meter.js +4 -4
  373. package/dist/components/features/chat/confirmation-mode-enabled.cjs +1 -1
  374. package/dist/components/features/chat/confirmation-mode-enabled.js +4 -4
  375. package/dist/components/features/chat/generic-event-message.cjs +1 -1
  376. package/dist/components/features/chat/generic-event-message.cjs.map +1 -1
  377. package/dist/components/features/chat/generic-event-message.d.ts +2 -1
  378. package/dist/components/features/chat/generic-event-message.js +41 -22
  379. package/dist/components/features/chat/generic-event-message.js.map +1 -1
  380. package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
  381. package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
  382. package/dist/components/features/chat/interactive-chat-box.js +20 -19
  383. package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
  384. package/dist/components/features/chat/model-messages.cjs +1 -1
  385. package/dist/components/features/chat/model-messages.cjs.map +1 -1
  386. package/dist/components/features/chat/model-messages.js +27 -26
  387. package/dist/components/features/chat/model-messages.js.map +1 -1
  388. package/dist/components/features/conversation/conversation-overview-git-section.cjs +1 -1
  389. package/dist/components/features/conversation/conversation-overview-git-section.js +4 -4
  390. package/dist/components/features/conversation/conversation-overview-skills-panel.cjs +1 -1
  391. package/dist/components/features/conversation/conversation-overview-skills-panel.js +4 -4
  392. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
  393. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
  394. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +77 -78
  395. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
  396. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
  397. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
  398. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +88 -88
  399. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
  400. package/dist/components/features/conversation-panel/advanced-conversation-options-modal.cjs +2 -0
  401. package/dist/components/features/conversation-panel/advanced-conversation-options-modal.cjs.map +1 -0
  402. package/dist/components/features/conversation-panel/advanced-conversation-options-modal.d.ts +21 -0
  403. package/dist/components/features/conversation-panel/advanced-conversation-options-modal.js +239 -0
  404. package/dist/components/features/conversation-panel/advanced-conversation-options-modal.js.map +1 -0
  405. package/dist/components/features/conversation-panel/budget-display.cjs +1 -1
  406. package/dist/components/features/conversation-panel/budget-display.cjs.map +1 -1
  407. package/dist/components/features/conversation-panel/budget-display.d.ts +1 -2
  408. package/dist/components/features/conversation-panel/budget-display.js +12 -19
  409. package/dist/components/features/conversation-panel/budget-display.js.map +1 -1
  410. package/dist/components/features/conversation-panel/conversation-active-tag-filters.cjs +2 -0
  411. package/dist/components/features/conversation-panel/conversation-active-tag-filters.cjs.map +1 -0
  412. package/dist/components/features/conversation-panel/conversation-active-tag-filters.d.ts +28 -0
  413. package/dist/components/features/conversation-panel/conversation-active-tag-filters.js +69 -0
  414. package/dist/components/features/conversation-panel/conversation-active-tag-filters.js.map +1 -0
  415. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs +1 -1
  416. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.cjs.map +1 -1
  417. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.d.ts +2 -1
  418. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js +19 -18
  419. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.js.map +1 -1
  420. package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.cjs +1 -1
  421. package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.cjs.map +1 -1
  422. package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.d.ts +2 -1
  423. package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.js +91 -80
  424. package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.js.map +1 -1
  425. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
  426. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs.map +1 -1
  427. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +45 -44
  428. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js.map +1 -1
  429. package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.cjs +1 -1
  430. package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.cjs.map +1 -1
  431. package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.js +1 -1
  432. package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.js.map +1 -1
  433. package/dist/components/features/conversation-panel/conversation-card/conversation-card.cjs +1 -1
  434. package/dist/components/features/conversation-panel/conversation-card/conversation-card.cjs.map +1 -1
  435. package/dist/components/features/conversation-panel/conversation-card/conversation-card.d.ts +7 -1
  436. package/dist/components/features/conversation-panel/conversation-card/conversation-card.js +87 -81
  437. package/dist/components/features/conversation-panel/conversation-card/conversation-card.js.map +1 -1
  438. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.cjs +1 -1
  439. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.cjs.map +1 -1
  440. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.d.ts +2 -1
  441. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.js +1 -1
  442. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-chips.js.map +1 -1
  443. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.cjs +1 -1
  444. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.cjs.map +1 -1
  445. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.d.ts +2 -1
  446. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.js +2 -1
  447. package/dist/components/features/conversation-panel/conversation-card/conversation-tag-display.js.map +1 -1
  448. package/dist/components/features/conversation-panel/conversation-layouts-menu.cjs +2 -0
  449. package/dist/components/features/conversation-panel/conversation-layouts-menu.cjs.map +1 -0
  450. package/dist/components/features/conversation-panel/conversation-layouts-menu.d.ts +29 -0
  451. package/dist/components/features/conversation-panel/conversation-layouts-menu.js +177 -0
  452. package/dist/components/features/conversation-panel/conversation-layouts-menu.js.map +1 -0
  453. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs +1 -1
  454. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs.map +1 -1
  455. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.d.ts +37 -0
  456. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js +85 -45
  457. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js.map +1 -1
  458. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  459. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  460. package/dist/components/features/conversation-panel/conversation-panel.js +296 -290
  461. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  462. package/dist/components/features/conversation-panel/edit-conversation-tags-modal.cjs +2 -0
  463. package/dist/components/features/conversation-panel/edit-conversation-tags-modal.cjs.map +1 -0
  464. package/dist/components/features/conversation-panel/edit-conversation-tags-modal.d.ts +22 -0
  465. package/dist/components/features/conversation-panel/edit-conversation-tags-modal.js +153 -0
  466. package/dist/components/features/conversation-panel/edit-conversation-tags-modal.js.map +1 -0
  467. package/dist/components/features/conversation-panel/hide-older-conversations-row.cjs +2 -0
  468. package/dist/components/features/conversation-panel/hide-older-conversations-row.cjs.map +1 -0
  469. package/dist/components/features/conversation-panel/hide-older-conversations-row.d.ts +6 -0
  470. package/dist/components/features/conversation-panel/hide-older-conversations-row.js +65 -0
  471. package/dist/components/features/conversation-panel/hide-older-conversations-row.js.map +1 -0
  472. package/dist/components/features/conversation-panel/menu-row.cjs +1 -1
  473. package/dist/components/features/conversation-panel/menu-row.cjs.map +1 -1
  474. package/dist/components/features/conversation-panel/menu-row.d.ts +11 -1
  475. package/dist/components/features/conversation-panel/menu-row.js +27 -16
  476. package/dist/components/features/conversation-panel/menu-row.js.map +1 -1
  477. package/dist/components/features/home/featured-automations/automation-health-indicator.cjs +1 -1
  478. package/dist/components/features/home/featured-automations/automation-health-indicator.cjs.map +1 -1
  479. package/dist/components/features/home/featured-automations/automation-health-indicator.js +1 -1
  480. package/dist/components/features/home/featured-automations/automation-health-indicator.js.map +1 -1
  481. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs +1 -1
  482. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs.map +1 -1
  483. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.d.ts +4 -3
  484. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js +22 -25
  485. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js.map +1 -1
  486. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs +1 -1
  487. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs.map +1 -1
  488. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.d.ts +1 -1
  489. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js +15 -15
  490. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js.map +1 -1
  491. package/dist/components/features/home/featured-automations/automation-run-health.cjs +1 -1
  492. package/dist/components/features/home/featured-automations/automation-run-health.cjs.map +1 -1
  493. package/dist/components/features/home/featured-automations/automation-run-health.d.ts +5 -3
  494. package/dist/components/features/home/featured-automations/automation-run-health.js +30 -23
  495. package/dist/components/features/home/featured-automations/automation-run-health.js.map +1 -1
  496. package/dist/components/features/home/featured-automations/build-home-automation-menu-items.d.ts +1 -2
  497. package/dist/components/features/home/featured-automations/build-pinned-automation-menu-items.d.ts +0 -1
  498. package/dist/components/features/home/featured-automations/home-automation-activity.d.ts +3 -2
  499. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +1 -1
  500. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -1
  501. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.d.ts +1 -1
  502. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +42 -42
  503. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -1
  504. package/dist/components/features/images/image-lightbox.cjs +2 -0
  505. package/dist/components/features/images/image-lightbox.cjs.map +1 -0
  506. package/dist/components/features/images/image-lightbox.d.ts +11 -0
  507. package/dist/components/features/images/image-lightbox.js +37 -0
  508. package/dist/components/features/images/image-lightbox.js.map +1 -0
  509. package/dist/components/features/images/image-preview.cjs +1 -1
  510. package/dist/components/features/images/image-preview.cjs.map +1 -1
  511. package/dist/components/features/images/image-preview.d.ts +2 -1
  512. package/dist/components/features/images/image-preview.js +33 -13
  513. package/dist/components/features/images/image-preview.js.map +1 -1
  514. package/dist/components/features/manifest/manifest-form-field.d.ts +3 -1
  515. package/dist/components/features/manifest/manifest-review-step.d.ts +3 -1
  516. package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +3 -4
  517. package/dist/components/features/settings/cloud-settings-link.cjs +1 -1
  518. package/dist/components/features/settings/cloud-settings-link.cjs.map +1 -1
  519. package/dist/components/features/settings/cloud-settings-link.d.ts +3 -1
  520. package/dist/components/features/settings/cloud-settings-link.js +22 -19
  521. package/dist/components/features/settings/cloud-settings-link.js.map +1 -1
  522. package/dist/components/features/settings/integrations-settings-link.cjs +1 -1
  523. package/dist/components/features/settings/integrations-settings-link.cjs.map +1 -1
  524. package/dist/components/features/settings/integrations-settings-link.d.ts +3 -1
  525. package/dist/components/features/settings/integrations-settings-link.js +20 -17
  526. package/dist/components/features/settings/integrations-settings-link.js.map +1 -1
  527. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  528. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +3 -2
  529. package/dist/components/features/settings/llm-profiles/profile-row.cjs +1 -1
  530. package/dist/components/features/settings/llm-profiles/profile-row.js +1 -1
  531. package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +2 -2
  532. package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
  533. package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs.map +1 -1
  534. package/dist/components/features/settings/sdk-settings/sdk-section-page.d.ts +8 -7
  535. package/dist/components/features/settings/sdk-settings/sdk-section-page.js +172 -142
  536. package/dist/components/features/settings/sdk-settings/sdk-section-page.js.map +1 -1
  537. package/dist/components/features/settings/secrets-settings/secret-form.cjs +1 -1
  538. package/dist/components/features/settings/secrets-settings/secret-form.cjs.map +1 -1
  539. package/dist/components/features/settings/secrets-settings/secret-form.js +38 -25
  540. package/dist/components/features/settings/secrets-settings/secret-form.js.map +1 -1
  541. package/dist/components/features/settings/settings-dropdown-input.cjs +1 -1
  542. package/dist/components/features/settings/settings-dropdown-input.js +6 -6
  543. package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
  544. package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
  545. package/dist/components/features/sidebar/sidebar-rail-body.d.ts +4 -1
  546. package/dist/components/features/sidebar/sidebar-rail-body.js +157 -139
  547. package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
  548. package/dist/components/features/sidebar/sidebar.cjs +1 -1
  549. package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
  550. package/dist/components/features/sidebar/sidebar.js +28 -26
  551. package/dist/components/features/sidebar/sidebar.js.map +1 -1
  552. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs +1 -1
  553. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js +3 -3
  554. package/dist/components/features/skills/extensions-navigation.cjs +1 -1
  555. package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
  556. package/dist/components/features/skills/extensions-navigation.js +3 -3
  557. package/dist/components/features/skills/extensions-navigation.js.map +1 -1
  558. package/dist/components/providers/agent-server-ui-providers.cjs +1 -1
  559. package/dist/components/providers/agent-server-ui-providers.cjs.map +1 -1
  560. package/dist/components/providers/agent-server-ui-providers.js +33 -29
  561. package/dist/components/providers/agent-server-ui-providers.js.map +1 -1
  562. package/dist/components/shared/buttons/remove-button.cjs +1 -1
  563. package/dist/components/shared/buttons/remove-button.cjs.map +1 -1
  564. package/dist/components/shared/buttons/remove-button.d.ts +2 -1
  565. package/dist/components/shared/buttons/remove-button.js +2 -1
  566. package/dist/components/shared/buttons/remove-button.js.map +1 -1
  567. package/dist/components/shared/buttons/styled-tooltip.cjs +1 -1
  568. package/dist/components/shared/buttons/styled-tooltip.cjs.map +1 -1
  569. package/dist/components/shared/buttons/styled-tooltip.d.ts +2 -1
  570. package/dist/components/shared/buttons/styled-tooltip.js +2 -1
  571. package/dist/components/shared/buttons/styled-tooltip.js.map +1 -1
  572. package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
  573. package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
  574. package/dist/components/shared/filters/enum-filter-dropdown.d.ts +5 -1
  575. package/dist/components/shared/filters/enum-filter-dropdown.js +14 -14
  576. package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
  577. package/dist/components/shared/free-models-note.cjs +2 -0
  578. package/dist/components/shared/free-models-note.cjs.map +1 -0
  579. package/dist/components/shared/free-models-note.d.ts +3 -0
  580. package/dist/components/shared/free-models-note.js +20 -0
  581. package/dist/components/shared/free-models-note.js.map +1 -0
  582. package/dist/components/shared/modals/confirmation-modal.cjs +1 -1
  583. package/dist/components/shared/modals/confirmation-modal.cjs.map +1 -1
  584. package/dist/components/shared/modals/confirmation-modal.d.ts +2 -1
  585. package/dist/components/shared/modals/confirmation-modal.js +8 -8
  586. package/dist/components/shared/modals/confirmation-modal.js.map +1 -1
  587. package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
  588. package/dist/components/shared/modals/settings/model-selector.cjs.map +1 -1
  589. package/dist/components/shared/modals/settings/model-selector.js +102 -112
  590. package/dist/components/shared/modals/settings/model-selector.js.map +1 -1
  591. package/dist/config/defaults.cjs +1 -1
  592. package/dist/config/defaults.cjs.map +1 -1
  593. package/dist/config/defaults.js +3 -3
  594. package/dist/config/defaults.js.map +1 -1
  595. package/dist/constants/acp-providers.cjs.map +1 -1
  596. package/dist/constants/acp-providers.d.ts +12 -0
  597. package/dist/constants/acp-providers.js.map +1 -1
  598. package/dist/constants/settings-nav.d.ts +8 -0
  599. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  600. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  601. package/dist/contexts/conversation-websocket-context.d.ts +5 -0
  602. package/dist/contexts/conversation-websocket-context.js +194 -198
  603. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  604. package/dist/contexts/websocket-provider-wrapper.cjs +1 -1
  605. package/dist/contexts/websocket-provider-wrapper.cjs.map +1 -1
  606. package/dist/contexts/websocket-provider-wrapper.js +31 -15
  607. package/dist/contexts/websocket-provider-wrapper.js.map +1 -1
  608. package/dist/hooks/chat/record-model-switch-message.cjs +1 -1
  609. package/dist/hooks/chat/record-model-switch-message.cjs.map +1 -1
  610. package/dist/hooks/chat/record-model-switch-message.d.ts +31 -0
  611. package/dist/hooks/chat/record-model-switch-message.js +25 -12
  612. package/dist/hooks/chat/record-model-switch-message.js.map +1 -1
  613. package/dist/hooks/chat/use-plan-mode-interceptor.cjs +2 -0
  614. package/dist/hooks/chat/use-plan-mode-interceptor.cjs.map +1 -0
  615. package/dist/hooks/chat/use-plan-mode-interceptor.d.ts +16 -0
  616. package/dist/hooks/chat/use-plan-mode-interceptor.js +43 -0
  617. package/dist/hooks/chat/use-plan-mode-interceptor.js.map +1 -0
  618. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  619. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  620. package/dist/hooks/chat/use-slash-command.js +63 -62
  621. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  622. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  623. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  624. package/dist/hooks/mutation/use-create-conversation.js +5 -1
  625. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  626. package/dist/hooks/mutation/use-read-conversation-file.cjs +1 -1
  627. package/dist/hooks/mutation/use-read-conversation-file.cjs.map +1 -1
  628. package/dist/hooks/mutation/use-read-conversation-file.js +11 -4
  629. package/dist/hooks/mutation/use-read-conversation-file.js.map +1 -1
  630. package/dist/hooks/mutation/use-save-settings.cjs +1 -1
  631. package/dist/hooks/mutation/use-save-settings.js +3 -3
  632. package/dist/hooks/mutation/use-switch-llm-profile.cjs +1 -1
  633. package/dist/hooks/mutation/use-switch-llm-profile.cjs.map +1 -1
  634. package/dist/hooks/mutation/use-switch-llm-profile.js +13 -25
  635. package/dist/hooks/mutation/use-switch-llm-profile.js.map +1 -1
  636. package/dist/hooks/mutation/use-update-conversation-tags.cjs +2 -0
  637. package/dist/hooks/mutation/use-update-conversation-tags.cjs.map +1 -0
  638. package/dist/hooks/mutation/use-update-conversation-tags.d.ts +8 -0
  639. package/dist/hooks/mutation/use-update-conversation-tags.js +45 -0
  640. package/dist/hooks/mutation/use-update-conversation-tags.js.map +1 -0
  641. package/dist/hooks/query/query-keys.cjs +1 -1
  642. package/dist/hooks/query/query-keys.cjs.map +1 -1
  643. package/dist/hooks/query/query-keys.d.ts +6 -0
  644. package/dist/hooks/query/query-keys.js +2 -2
  645. package/dist/hooks/query/query-keys.js.map +1 -1
  646. package/dist/hooks/query/use-automation-sdk-version.cjs +1 -1
  647. package/dist/hooks/query/use-automation-sdk-version.cjs.map +1 -1
  648. package/dist/hooks/query/use-automation-sdk-version.d.ts +0 -1
  649. package/dist/hooks/query/use-automation-sdk-version.js +30 -55
  650. package/dist/hooks/query/use-automation-sdk-version.js.map +1 -1
  651. package/dist/hooks/query/use-conversation-skills.cjs +1 -1
  652. package/dist/hooks/query/use-conversation-skills.cjs.map +1 -1
  653. package/dist/hooks/query/use-conversation-skills.d.ts +14 -5
  654. package/dist/hooks/query/use-conversation-skills.js +20 -4
  655. package/dist/hooks/query/use-conversation-skills.js.map +1 -1
  656. package/dist/hooks/query/use-free-models.cjs +2 -0
  657. package/dist/hooks/query/use-free-models.cjs.map +1 -0
  658. package/dist/hooks/query/use-free-models.d.ts +23 -0
  659. package/dist/hooks/query/use-free-models.js +67 -0
  660. package/dist/hooks/query/use-free-models.js.map +1 -0
  661. package/dist/hooks/query/use-local-git-info.cjs.map +1 -1
  662. package/dist/hooks/query/use-local-git-info.js.map +1 -1
  663. package/dist/hooks/query/use-provider-connections.cjs +1 -1
  664. package/dist/hooks/query/use-provider-connections.cjs.map +1 -1
  665. package/dist/hooks/query/use-provider-connections.d.ts +6 -3
  666. package/dist/hooks/query/use-provider-connections.js +7 -3
  667. package/dist/hooks/query/use-provider-connections.js.map +1 -1
  668. package/dist/hooks/query/use-provider-models.cjs +1 -1
  669. package/dist/hooks/query/use-provider-models.cjs.map +1 -1
  670. package/dist/hooks/query/use-provider-models.js +34 -25
  671. package/dist/hooks/query/use-provider-models.js.map +1 -1
  672. package/dist/hooks/query/use-search-providers.cjs +1 -1
  673. package/dist/hooks/query/use-search-providers.cjs.map +1 -1
  674. package/dist/hooks/query/use-search-providers.js +31 -19
  675. package/dist/hooks/query/use-search-providers.js.map +1 -1
  676. package/dist/hooks/query/use-sub-conversations.cjs +1 -1
  677. package/dist/hooks/query/use-sub-conversations.cjs.map +1 -1
  678. package/dist/hooks/query/use-sub-conversations.js +16 -16
  679. package/dist/hooks/query/use-sub-conversations.js.map +1 -1
  680. package/dist/hooks/use-acp-model-context.cjs +1 -1
  681. package/dist/hooks/use-acp-model-context.js +3 -3
  682. package/dist/hooks/use-agent-state.cjs +1 -1
  683. package/dist/hooks/use-agent-state.cjs.map +1 -1
  684. package/dist/hooks/use-agent-state.d.ts +17 -1
  685. package/dist/hooks/use-agent-state.js +19 -9
  686. package/dist/hooks/use-agent-state.js.map +1 -1
  687. package/dist/hooks/use-automation-permissions.cjs +2 -0
  688. package/dist/hooks/use-automation-permissions.cjs.map +1 -0
  689. package/dist/hooks/use-automation-permissions.d.ts +43 -0
  690. package/dist/hooks/use-automation-permissions.js +52 -0
  691. package/dist/hooks/use-automation-permissions.js.map +1 -0
  692. package/dist/hooks/use-chat-input-model-state.cjs +1 -1
  693. package/dist/hooks/use-chat-input-model-state.js +3 -3
  694. package/dist/hooks/use-handle-plan-click.cjs +1 -1
  695. package/dist/hooks/use-handle-plan-click.cjs.map +1 -1
  696. package/dist/hooks/use-handle-plan-click.d.ts +3 -1
  697. package/dist/hooks/use-handle-plan-click.js +85 -26
  698. package/dist/hooks/use-handle-plan-click.js.map +1 -1
  699. package/dist/hooks/use-home-automation-actions.cjs +1 -1
  700. package/dist/hooks/use-home-automation-actions.cjs.map +1 -1
  701. package/dist/hooks/use-home-automation-actions.d.ts +1 -2
  702. package/dist/hooks/use-home-automation-actions.js +1 -1
  703. package/dist/hooks/use-home-automation-actions.js.map +1 -1
  704. package/dist/hooks/use-llm-configured.cjs +1 -1
  705. package/dist/hooks/use-llm-configured.js +3 -3
  706. package/dist/hooks/use-manifest-preflight.d.ts +1 -1
  707. package/dist/hooks/use-unified-websocket-status.cjs +1 -1
  708. package/dist/hooks/use-unified-websocket-status.cjs.map +1 -1
  709. package/dist/hooks/use-unified-websocket-status.d.ts +7 -0
  710. package/dist/hooks/use-unified-websocket-status.js +5 -1
  711. package/dist/hooks/use-unified-websocket-status.js.map +1 -1
  712. package/dist/i18n/declaration.cjs +1 -1
  713. package/dist/i18n/declaration.cjs.map +1 -1
  714. package/dist/i18n/declaration.d.ts +71 -14
  715. package/dist/i18n/declaration.js +1 -1
  716. package/dist/i18n/declaration.js.map +1 -1
  717. package/dist/i18n/translation.cjs +2 -2
  718. package/dist/i18n/translation.cjs.map +1 -1
  719. package/dist/i18n/translation.js +1281 -312
  720. package/dist/i18n/translation.js.map +1 -1
  721. package/dist/locales/ar/openhands.json +79 -22
  722. package/dist/locales/ca/openhands.json +79 -22
  723. package/dist/locales/de/openhands.json +79 -22
  724. package/dist/locales/en/openhands.json +79 -22
  725. package/dist/locales/es/openhands.json +79 -22
  726. package/dist/locales/fr/openhands.json +79 -22
  727. package/dist/locales/it/openhands.json +79 -22
  728. package/dist/locales/ja/openhands.json +79 -22
  729. package/dist/locales/ko-KR/openhands.json +79 -22
  730. package/dist/locales/no/openhands.json +79 -22
  731. package/dist/locales/pt/openhands.json +79 -22
  732. package/dist/locales/tr/openhands.json +79 -22
  733. package/dist/locales/uk/openhands.json +79 -22
  734. package/dist/locales/zh-CN/openhands.json +79 -22
  735. package/dist/locales/zh-TW/openhands.json +79 -22
  736. package/dist/manifests/automation-insights.cjs.map +1 -1
  737. package/dist/manifests/automation-insights.d.ts +10 -2
  738. package/dist/manifests/automation-insights.js.map +1 -1
  739. package/dist/manifests/automation-setup.cjs +1 -1
  740. package/dist/manifests/automation-setup.cjs.map +1 -1
  741. package/dist/manifests/automation-setup.d.ts +9 -16
  742. package/dist/manifests/automation-setup.js +17 -7
  743. package/dist/manifests/automation-setup.js.map +1 -1
  744. package/dist/manifests/manifest-actions.d.ts +1 -1
  745. package/dist/manifests/manifest-capabilities.d.ts +3 -1
  746. package/dist/manifests/manifest-local-validation.cjs +2 -0
  747. package/dist/manifests/manifest-local-validation.cjs.map +1 -0
  748. package/dist/manifests/manifest-local-validation.d.ts +15 -11
  749. package/dist/manifests/manifest-local-validation.js +8 -0
  750. package/dist/manifests/manifest-local-validation.js.map +1 -0
  751. package/dist/manifests/manifest-template.cjs +2 -0
  752. package/dist/manifests/manifest-template.cjs.map +1 -0
  753. package/dist/manifests/manifest-template.d.ts +4 -4
  754. package/dist/manifests/manifest-template.js +12 -0
  755. package/dist/manifests/manifest-template.js.map +1 -0
  756. package/dist/manifests/manifest-validation.cjs +1 -1
  757. package/dist/manifests/manifest-validation.cjs.map +1 -1
  758. package/dist/manifests/manifest-validation.js +106 -28
  759. package/dist/manifests/manifest-validation.js.map +1 -1
  760. package/dist/manifests/types.cjs.map +1 -1
  761. package/dist/manifests/types.d.ts +39 -4
  762. package/dist/manifests/types.js.map +1 -1
  763. package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.cjs +8 -0
  764. package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.cjs.map +1 -0
  765. package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.js +221 -0
  766. package/dist/node_modules/@openhands/extensions/automations/catalog/custom-automation/manifest.js.map +1 -0
  767. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +1 -1
  768. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -1
  769. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +1 -1
  770. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -1
  771. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +1 -1
  772. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -1
  773. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +1 -1
  774. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
  775. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs +1 -1
  776. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs.map +1 -1
  777. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js +1 -1
  778. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js.map +1 -1
  779. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
  780. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
  781. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +22 -20
  782. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
  783. package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
  784. package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
  785. package/dist/node_modules/@openhands/extensions/automations/interface.js +2 -1
  786. package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
  787. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +1 -1
  788. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +1 -1
  789. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +24 -5
  790. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +1 -1
  791. package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.cjs +1 -1
  792. package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js +1 -1
  793. package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.cjs +2 -0
  794. package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.cjs.map +1 -0
  795. package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.js +21 -0
  796. package/dist/node_modules/lucide-react/dist/esm/icons/circle-question-mark.js.map +1 -0
  797. package/dist/node_modules/lucide-react/dist/esm/icons/shrink.cjs +2 -0
  798. package/dist/node_modules/lucide-react/dist/esm/icons/shrink.cjs.map +1 -0
  799. package/dist/node_modules/lucide-react/dist/esm/icons/shrink.js +23 -0
  800. package/dist/node_modules/lucide-react/dist/esm/icons/shrink.js.map +1 -0
  801. package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.cjs +2 -0
  802. package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.cjs.map +1 -0
  803. package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js +43 -0
  804. package/dist/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js.map +1 -0
  805. package/dist/node_modules/lucide-react/dist/esm/icons/tags.cjs +2 -0
  806. package/dist/node_modules/lucide-react/dist/esm/icons/tags.cjs.map +1 -0
  807. package/dist/node_modules/lucide-react/dist/esm/icons/tags.js +22 -0
  808. package/dist/node_modules/lucide-react/dist/esm/icons/tags.js.map +1 -0
  809. package/dist/package.cjs +1 -1
  810. package/dist/package.cjs.map +1 -1
  811. package/dist/package.js +4 -4
  812. package/dist/package.js.map +1 -1
  813. package/dist/routes/agent-settings.d.ts +2 -0
  814. package/dist/routes/app-settings.cjs +1 -1
  815. package/dist/routes/app-settings.cjs.map +1 -1
  816. package/dist/routes/app-settings.js +53 -48
  817. package/dist/routes/app-settings.js.map +1 -1
  818. package/dist/routes/llm-settings.cjs +1 -1
  819. package/dist/routes/llm-settings.cjs.map +1 -1
  820. package/dist/routes/llm-settings.d.ts +3 -1
  821. package/dist/routes/llm-settings.js +120 -127
  822. package/dist/routes/llm-settings.js.map +1 -1
  823. package/dist/routes/planner-tab.cjs +1 -1
  824. package/dist/routes/planner-tab.cjs.map +1 -1
  825. package/dist/routes/planner-tab.js +44 -28
  826. package/dist/routes/planner-tab.js.map +1 -1
  827. package/dist/services/telemetry.cjs +1 -1
  828. package/dist/services/telemetry.cjs.map +1 -1
  829. package/dist/services/telemetry.d.ts +5 -0
  830. package/dist/services/telemetry.js +122 -115
  831. package/dist/services/telemetry.js.map +1 -1
  832. package/dist/stores/conversation-panel-preferences-store.cjs +1 -1
  833. package/dist/stores/conversation-panel-preferences-store.cjs.map +1 -1
  834. package/dist/stores/conversation-panel-preferences-store.d.ts +32 -5
  835. package/dist/stores/conversation-panel-preferences-store.js +29 -12
  836. package/dist/stores/conversation-panel-preferences-store.js.map +1 -1
  837. package/dist/stores/conversation-state-store.cjs +1 -1
  838. package/dist/stores/conversation-state-store.cjs.map +1 -1
  839. package/dist/stores/conversation-state-store.d.ts +9 -3
  840. package/dist/stores/conversation-state-store.js +6 -3
  841. package/dist/stores/conversation-state-store.js.map +1 -1
  842. package/dist/stores/conversation-store.cjs +1 -1
  843. package/dist/stores/conversation-store.cjs.map +1 -1
  844. package/dist/stores/conversation-store.d.ts +2 -0
  845. package/dist/stores/conversation-store.js +3 -0
  846. package/dist/stores/conversation-store.js.map +1 -1
  847. package/dist/stores/free-models-store.cjs +2 -0
  848. package/dist/stores/free-models-store.cjs.map +1 -0
  849. package/dist/stores/free-models-store.d.ts +30 -0
  850. package/dist/stores/free-models-store.js +22 -0
  851. package/dist/stores/free-models-store.js.map +1 -0
  852. package/dist/stores/model-store.cjs +1 -1
  853. package/dist/stores/model-store.cjs.map +1 -1
  854. package/dist/stores/model-store.d.ts +7 -0
  855. package/dist/stores/model-store.js +4 -0
  856. package/dist/stores/model-store.js.map +1 -1
  857. package/dist/types/automation.cjs.map +1 -1
  858. package/dist/types/automation.d.ts +46 -1
  859. package/dist/types/automation.js.map +1 -1
  860. package/dist/ui/context-menu.d.ts +1 -1
  861. package/dist/ui/toggle-switch.cjs +1 -1
  862. package/dist/ui/toggle-switch.cjs.map +1 -1
  863. package/dist/ui/toggle-switch.d.ts +4 -1
  864. package/dist/ui/toggle-switch.js +4 -3
  865. package/dist/ui/toggle-switch.js.map +1 -1
  866. package/dist/utils/automation-catalog.cjs +1 -1
  867. package/dist/utils/automation-catalog.cjs.map +1 -1
  868. package/dist/utils/automation-catalog.d.ts +12 -1
  869. package/dist/utils/automation-catalog.js +42 -12
  870. package/dist/utils/automation-catalog.js.map +1 -1
  871. package/dist/utils/automation-run-display.cjs +2 -0
  872. package/dist/utils/automation-run-display.cjs.map +1 -0
  873. package/dist/utils/automation-run-display.d.ts +20 -0
  874. package/dist/utils/automation-run-display.js +85 -0
  875. package/dist/utils/automation-run-display.js.map +1 -0
  876. package/dist/utils/automation-schedule.cjs +1 -1
  877. package/dist/utils/automation-schedule.cjs.map +1 -1
  878. package/dist/utils/automation-schedule.d.ts +16 -0
  879. package/dist/utils/automation-schedule.js +2 -0
  880. package/dist/utils/automation-schedule.js.map +1 -1
  881. package/dist/utils/constants.cjs +1 -1
  882. package/dist/utils/constants.cjs.map +1 -1
  883. package/dist/utils/constants.d.ts +4 -0
  884. package/dist/utils/constants.js +23 -3
  885. package/dist/utils/constants.js.map +1 -1
  886. package/dist/utils/format-event-timestamp.cjs +2 -0
  887. package/dist/utils/format-event-timestamp.cjs.map +1 -0
  888. package/dist/utils/format-event-timestamp.d.ts +1 -0
  889. package/dist/utils/format-event-timestamp.js +13 -0
  890. package/dist/utils/format-event-timestamp.js.map +1 -0
  891. package/dist/utils/format-model-name.cjs +1 -1
  892. package/dist/utils/format-model-name.cjs.map +1 -1
  893. package/dist/utils/format-model-name.d.ts +27 -6
  894. package/dist/utils/format-model-name.js +14 -6
  895. package/dist/utils/format-model-name.js.map +1 -1
  896. package/dist/utils/git-diff-stats.cjs +2 -2
  897. package/dist/utils/git-diff-stats.cjs.map +1 -1
  898. package/dist/utils/git-diff-stats.d.ts +4 -0
  899. package/dist/utils/git-diff-stats.js +12 -2
  900. package/dist/utils/git-diff-stats.js.map +1 -1
  901. package/dist/utils/plan-file.cjs +4 -0
  902. package/dist/utils/plan-file.cjs.map +1 -0
  903. package/dist/utils/plan-file.d.ts +18 -0
  904. package/dist/utils/plan-file.js +58 -0
  905. package/dist/utils/plan-file.js.map +1 -0
  906. package/dist/utils/recommended-automation-rail.cjs +1 -1
  907. package/dist/utils/recommended-automation-rail.cjs.map +1 -1
  908. package/dist/utils/recommended-automation-rail.js +1 -0
  909. package/dist/utils/recommended-automation-rail.js.map +1 -1
  910. package/dist/utils/scroll-fade-state.cjs +1 -1
  911. package/dist/utils/scroll-fade-state.cjs.map +1 -1
  912. package/dist/utils/scroll-fade-state.d.ts +6 -0
  913. package/dist/utils/scroll-fade-state.js +8 -1
  914. package/dist/utils/scroll-fade-state.js.map +1 -1
  915. package/dist/utils/sdk-settings-schema.cjs +1 -1
  916. package/dist/utils/sdk-settings-schema.cjs.map +1 -1
  917. package/dist/utils/sdk-settings-schema.d.ts +1 -0
  918. package/dist/utils/sdk-settings-schema.js +25 -22
  919. package/dist/utils/sdk-settings-schema.js.map +1 -1
  920. package/dist/utils/utils.cjs +1 -1
  921. package/dist/utils/utils.cjs.map +1 -1
  922. package/dist/utils/utils.js +11 -11
  923. package/dist/utils/utils.js.map +1 -1
  924. package/package.json +4 -4
  925. package/scripts/check-sdk-version-sync.mjs +6 -6
  926. package/scripts/dev-safe.mjs +1 -1
  927. package/scripts/dev-with-automation.mjs +1 -1
  928. package/scripts/static-server.mjs +33 -1
  929. package/build/assets/active-backend-context-CrHTlgvN.js +0 -2
  930. package/build/assets/agent-profiles-settings-Dzgb7G9z.js +0 -1
  931. package/build/assets/agent-server-conversation-service.api-tnqNjbpE.js +0 -86
  932. package/build/assets/agent-settings-DLtsqaOs.js +0 -2
  933. package/build/assets/agent-settings-fFvR-XC2.js +0 -1
  934. package/build/assets/alert-banner-HP6mX-Vr.js +0 -1
  935. package/build/assets/api-key-entry-screen-qTzrmJcr.js +0 -1
  936. package/build/assets/app-settings-dbnneVaV.js +0 -1
  937. package/build/assets/automation-detail-BmwlCUAB.js +0 -3
  938. package/build/assets/automation-git-sync-CprN5DcU.js +0 -1
  939. package/build/assets/automation-setup-route-C40kXjMY.js +0 -1
  940. package/build/assets/automations-list-DuNcRawl.js +0 -1
  941. package/build/assets/backend-form-modal-lhGwzXFI.js +0 -1
  942. package/build/assets/backend-synced-settings-badge-DPkz30BE.js +0 -1
  943. package/build/assets/badge-BU3S0VtE.js +0 -1
  944. package/build/assets/bot-dMYHVfYM.js +0 -1
  945. package/build/assets/browser-DSAo0tz1.js +0 -46
  946. package/build/assets/browser-tab-C9vy56R5.js +0 -1
  947. package/build/assets/canvas-extension-page-dx1gFrfW.js +0 -1
  948. package/build/assets/canvas-extensions-8A-XhpgP.js +0 -1
  949. package/build/assets/check-CS0vmpQQ.js +0 -1
  950. package/build/assets/chevron-down-e1QBpjVy.js +0 -1
  951. package/build/assets/chevron-right-ZG4R5G4Q.js +0 -1
  952. package/build/assets/circle-check-DzWLNsbE.js +0 -1
  953. package/build/assets/circle-plus-check-toggle-BO_kFZt3.js +0 -1
  954. package/build/assets/command-menu--UIlGL72.js +0 -1
  955. package/build/assets/commits-tab-AnZwLvh-.js +0 -1
  956. package/build/assets/confirmation-modal-Dv1ktp8K.js +0 -1
  957. package/build/assets/conversation-BbGrAO4Z.js +0 -93
  958. package/build/assets/conversation-mYT6NAoj.js +0 -1
  959. package/build/assets/conversation-panel-mYT6NAoj.js +0 -1
  960. package/build/assets/conversation-state-store-B0ImPLHO.js +0 -1
  961. package/build/assets/conversation-store-Ca3ghXap.js +0 -6
  962. package/build/assets/copy-to-clipboard-button-Ca8iSkkA.js +0 -1
  963. package/build/assets/device-verify-Bhn2e_Ye.js +0 -1
  964. package/build/assets/edit-automation-modal-DadGbJ2u.js +0 -1
  965. package/build/assets/empty-state-BoGVDecT.js +0 -1
  966. package/build/assets/enum-filter-dropdown-Bgca129f.js +0 -1
  967. package/build/assets/environment-switch-overlay-BmBRT7gv.js +0 -1
  968. package/build/assets/error-state-Body8Ngd.js +0 -1
  969. package/build/assets/extensions-hub-CcDqq_vR.js +0 -1
  970. package/build/assets/extensions-navigation-Cr4yzYk4.js +0 -1
  971. package/build/assets/external-link-DKUlnCQV.js +0 -1
  972. package/build/assets/files-tab-D4o2VyE_.js +0 -1
  973. package/build/assets/format-model-name-CasAP3nd.js +0 -1
  974. package/build/assets/get-git-path-ChKDVHZp.js +0 -1
  975. package/build/assets/git-repo-dropdown-4ROKl2cB.js +0 -1
  976. package/build/assets/git-repo-dropdown-BkqzkMmM.js +0 -1
  977. package/build/assets/highlighted-source-view-BFRxGT_Q.js +0 -1
  978. package/build/assets/home-ChpSuepX.js +0 -1
  979. package/build/assets/home-DIsB440S.js +0 -1
  980. package/build/assets/home-automation-run-tooltip-BVNDWjAH.js +0 -1
  981. package/build/assets/home-store-CY9Ej0ux.js +0 -1
  982. package/build/assets/index-home-BdlrFIif.js +0 -1
  983. package/build/assets/info-B6RQawoW.js +0 -1
  984. package/build/assets/install-server-modal-Dpy89p4g.js +0 -1
  985. package/build/assets/kebab-menu-item-content-D8hSNGmm.js +0 -1
  986. package/build/assets/launch-IrTDEFCs.js +0 -1
  987. package/build/assets/list-filter-DsEK7NFC.js +0 -1
  988. package/build/assets/llm-not-configured-banner-CIFABh3K.js +0 -27
  989. package/build/assets/llm-settings-B9juXhIa.js +0 -1
  990. package/build/assets/llm-settings-De1d5dfr.js +0 -1
  991. package/build/assets/llm-subscription-service-BpJ0ouQo.js +0 -1
  992. package/build/assets/loader-circle-CC1au6hc.js +0 -1
  993. package/build/assets/manage-backends-modal-BrPV3oB-.js +0 -1
  994. package/build/assets/manifest-80fb1c29.js +0 -1
  995. package/build/assets/manifest-subpage-layout-CAOYzrYp.js +0 -1
  996. package/build/assets/markdown-renderer-BzTlxI8x.js +0 -8
  997. package/build/assets/mcp-BTs_SXfZ.js +0 -1
  998. package/build/assets/mcp-page-BEBYqH_K.js +0 -9
  999. package/build/assets/messages-DKV9cRc2.js +0 -41
  1000. package/build/assets/modal-close-button-DDzdRvCs.js +0 -1
  1001. package/build/assets/onboarding-DV_OXoeP.js +0 -1
  1002. package/build/assets/onboarding-modal-rkyBYkeQ.js +0 -1
  1003. package/build/assets/organization-service.api-DrYNkEN_.js +0 -1
  1004. package/build/assets/pencil-47jAZH_V.js +0 -1
  1005. package/build/assets/pin-By41Vl5J.js +0 -1
  1006. package/build/assets/planner-tab-C9uZmhme.js +0 -1
  1007. package/build/assets/plug-CG5HFcNG.js +0 -1
  1008. package/build/assets/plugins-management-service-BMJgC3Ga.js +0 -1
  1009. package/build/assets/plus-C7Slq-0I.js +0 -1
  1010. package/build/assets/profiles-service.api-ChoKrL0l.js +0 -1
  1011. package/build/assets/providers-BhMcY5nv.js +0 -1
  1012. package/build/assets/proxy-9Fe1v5na.js +0 -1
  1013. package/build/assets/recommended-automations-launcher-6ABrI9Cy.js +0 -1
  1014. package/build/assets/refresh-cw-3q3Frrii.js +0 -1
  1015. package/build/assets/root-Dc8YmC9F.js +0 -2
  1016. package/build/assets/root-VDaypvK4.css +0 -1
  1017. package/build/assets/root-layout-CXkhSPYh.js +0 -2
  1018. package/build/assets/schema-field-D-y9-LDb.js +0 -1
  1019. package/build/assets/scroll-fade-state-Dw-i4SGq.js +0 -1
  1020. package/build/assets/sdk-section-page-BlFiizlG.js +0 -1
  1021. package/build/assets/secret-form-BB7the8W.js +0 -1
  1022. package/build/assets/secrets-service-ByZVENbp.js +0 -1
  1023. package/build/assets/secrets-settings-B_GpxKW2.js +0 -1
  1024. package/build/assets/settings-C0EWuBtA.js +0 -1
  1025. package/build/assets/settings-dropdown-input-BcwylHs2.js +0 -1
  1026. package/build/assets/settings-index-5w5UW2K3.js +0 -1
  1027. package/build/assets/settings-input-Db-1g8Ql.js +0 -1
  1028. package/build/assets/settings-modal-DfJ3tcJQ.js +0 -1
  1029. package/build/assets/settings-service.api-DJ1r62Zr.js +0 -1
  1030. package/build/assets/settings-switch-CS-dJDmA.js +0 -1
  1031. package/build/assets/shared-conversation-CA5ISEDy.js +0 -1
  1032. package/build/assets/shield-check-D2aCRd16.js +0 -1
  1033. package/build/assets/sidebar-mobile-menu-toggle-C_fb0Jki.js +0 -1
  1034. package/build/assets/sidebar-store-DGqHkVLw.js +0 -1
  1035. package/build/assets/skill-card-pill-row-B27-xyig.js +0 -1
  1036. package/build/assets/skill-scope-B42H-XOc.js +0 -1
  1037. package/build/assets/skills-plugins-tgF8EiXC.js +0 -1
  1038. package/build/assets/skills-settings-BgJ9PaOe.js +0 -1
  1039. package/build/assets/styled-tooltip-C4jf5Fv9.js +0 -1
  1040. package/build/assets/task-list-tab-C5zcaktH.js +0 -1
  1041. package/build/assets/toggle-switch-ChOLXv2n.js +0 -1
  1042. package/build/assets/trash-2-D7K26eDO.js +0 -1
  1043. package/build/assets/trash-D-HYiVYM.js +0 -1
  1044. package/build/assets/triangle-alert-CtdXWHUI.js +0 -1
  1045. package/build/assets/usage-tab-CVDffLPt.js +0 -1
  1046. package/build/assets/use-acp-credential-form-XIQmpX6M.js +0 -1
  1047. package/build/assets/use-activate-agent-profile-BLfmvDiG.js +0 -1
  1048. package/build/assets/use-agent-profiles-Bd9Bvvp1.js +0 -1
  1049. package/build/assets/use-canvas-extensions-Bi693ujJ.js +0 -1
  1050. package/build/assets/use-config-A9QovgXO.js +0 -1
  1051. package/build/assets/use-create-conversation-Dx3l7mFZ.js +0 -1
  1052. package/build/assets/use-create-secret-B9cUFWRG.js +0 -1
  1053. package/build/assets/use-has-permission-B3C8rQmR.js +0 -1
  1054. package/build/assets/use-is-authed-nTBcM7dE.js +0 -1
  1055. package/build/assets/use-llm-configured-BV9nZ1_j.js +0 -1
  1056. package/build/assets/use-llm-profiles-BO-P4Oyo.js +0 -1
  1057. package/build/assets/use-manifest-capabilities-Cw_flwEz.js +0 -1
  1058. package/build/assets/use-onboarding-completion-D8U7k4Qb.js +0 -1
  1059. package/build/assets/use-pinned-home-route-CckOZrmb.js +0 -1
  1060. package/build/assets/use-plugins-marketplace-7i94Zu3Z.js +0 -1
  1061. package/build/assets/use-save-agent-profile-BUjSsDXK.js +0 -1
  1062. package/build/assets/use-settings-DSXLbvBl.js +0 -1
  1063. package/build/assets/use-settings-nav-items-CwRw-CmX.js +0 -16
  1064. package/build/assets/use-tracking-D53y3TH9.js +0 -3
  1065. package/build/assets/useQueries-DlbhlH9I.js +0 -1
  1066. package/build/assets/useQuery-BSTgq1rl.js +0 -1
  1067. package/build/assets/utils-CN5ZfZy1.js +0 -1
  1068. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-DqZDXfg2.js +0 -186
  1069. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-rfV8mQ9m.js +0 -1
  1070. package/build/assets/vendor~root-layout-C9Ju9DQg.js +0 -1
  1071. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BWir3rJs.js +0 -1
  1072. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-cDuKr-WD.js +0 -1
  1073. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iyia17eu-Chf7vmKB.js +0 -1
  1074. package/build/assets/x-DJdhbdmt.js +0 -1
  1075. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs +0 -2
  1076. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.cjs.map +0 -1
  1077. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.d.ts +0 -35
  1078. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js +0 -247
  1079. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.js.map +0 -1
  1080. package/dist/hooks/query/use-skills.cjs +0 -2
  1081. package/dist/hooks/query/use-skills.cjs.map +0 -1
  1082. package/dist/hooks/query/use-skills.d.ts +0 -7
  1083. package/dist/hooks/query/use-skills.js +0 -13
  1084. package/dist/hooks/query/use-skills.js.map +0 -1
  1085. package/dist/hooks/use-has-permission.cjs +0 -2
  1086. package/dist/hooks/use-has-permission.cjs.map +0 -1
  1087. package/dist/hooks/use-has-permission.d.ts +0 -1
  1088. package/dist/hooks/use-has-permission.js +0 -8
  1089. package/dist/hooks/use-has-permission.js.map +0 -1
  1090. package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs +0 -2
  1091. package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs.map +0 -1
  1092. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +0 -14
  1093. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +0 -1
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-Cyuzqnbw.js";import{St as e,yt as t}from"./vendor-styling-Ck5D_A2Q.js";import{c as n,n as r,r as i}from"./agent-server-client-options-EHB23gyx.js";import{s as a,t as o}from"./agent-server-config-C_x8Otd9.js";import{l as s,y as c}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js";import{t as l}from"./react-BX7IV650.js";import{a as u,i as d}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js";import{A as f,E as p,S as m,t as h,v as g}from"./agent-server-conversation-service.api-jiCopc2E.js";var _=async e=>{let t=(await h.batchGetAppConversations([e]))[0];if(!t)throw Error(`V1 conversation not found: ${e}`);return{conversationUrl:t.conversation_url,sessionApiKey:t.session_api_key,sandboxId:t.sandbox_id}},v=async e=>{let{conversationUrl:t,sessionApiKey:i,sandboxId:a}=await _(e);if(n().backend.kind===`cloud`){if(!a)throw Error(`Cannot stop runtime: cloud conversation ${e} has no sandbox_id.`);return await m(a),{success:!0}}return new c(r({conversationUrl:t,sessionApiKey:i})).interruptConversation(e)},y=async(e,t)=>{let{conversationUrl:n,sessionApiKey:i}=await _(e);return new c(r({conversationUrl:n,sessionApiKey:i})).askAgent(e,t)},b=async(e,t)=>{let{conversationUrl:n,sessionApiKey:i}=await _(e);await new c(r({conversationUrl:n,sessionApiKey:i})).startGoal(e,t)},x=async e=>{let{conversationUrl:t,sessionApiKey:n}=await _(e);await new c(r({conversationUrl:t,sessionApiKey:n})).stopGoal(e)},S=async e=>{let{conversationUrl:t,sessionApiKey:n}=await _(e);await new c(r({conversationUrl:t,sessionApiKey:n})).resumeGoal(e)},C=async e=>{let{conversationUrl:t,sessionApiKey:n}=await _(e);return new c(r({conversationUrl:t,sessionApiKey:n})).runConversation(e)},w=(e,t,n)=>{e.setQueriesData({queryKey:[`user`,`conversation`,t]},e=>e&&{...e,...n}),e.setQueriesData({queryKey:[`user`,`conversations`]},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t?{...e,...n}:e)}))})},T=(e,t,n)=>w(e,t,{execution_status:n}),E=(e,t,n)=>w(e,t,{llm_model:n}),D=(e,t)=>{e.invalidateQueries({queryKey:[`user`,`conversation`,t]}),e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`v1-batch-get-app-conversations`]}),e.invalidateQueries({queryKey:[`unified`,`vscode_url`]})},O=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function k(e){let t=e.split(/[\\/]+/).filter(Boolean),n=t[t.length-1];if(!n||n===`.`||n===`..`)throw Error(`Invalid file name`);return n}async function A(e,t={}){return f(e,t)}async function j(e,t,n={}){let r=k(e);return`${(await A(t,n)).replace(/[/\\]+$/,``)}/${r}`}async function M(e,t){if(t?.id===e&&t.workspace?.working_dir?.trim())return t.workspace.working_dir.trim();let n=p(e);return n?.selected_workspace?.trim()?n.selected_workspace.trim():O.test(e)?h.resolveConversationWorkingDir(e):a()}var N=5;async function P(e,t){if(t?.id===e&&t.conversation_url?.trim()&&t.session_api_key?.trim())return{conversationUrl:t.conversation_url.trim(),sessionApiKey:t.session_api_key.trim()};if(n().backend.kind===`cloud`){let[t]=await g([e]);return{conversationUrl:t?.conversation_url?.trim()??null,sessionApiKey:t?.session_api_key?.trim()??null}}return{conversationUrl:null,sessionApiKey:null}}function F(e){if(!e.conversationUrl||!e.sessionApiKey)throw Error(`Conversation sandbox is still starting. Wait for it to finish, then try again.`);return{conversationUrl:e.conversationUrl,sessionApiKey:e.sessionApiKey}}async function I(e,t,r){let i=await M(e,r),a=await P(e,r),o=n().backend.kind===`cloud`,s=r?.id===e?r.session_api_key??a.sessionApiKey:a.sessionApiKey,c=r?.id===e?r.conversation_url??a.conversationUrl:a.conversationUrl;if(o){let e=F({conversationUrl:c,sessionApiKey:s});return L({files:t,workingDir:i,conversationUrl:e.conversationUrl,sessionApiKey:e.sessionApiKey})}return L({files:t,workingDir:i,conversationUrl:c,sessionApiKey:s})}async function L(e){let{files:t,workingDir:n,conversationUrl:i,sessionApiKey:a}=e,o=new d(r({conversationUrl:i,sessionApiKey:a,workingDir:n})),s=async e=>{try{let t=k(e.name),r=await j(e.name,n,{conversationUrl:i,sessionApiKey:a});return await o.fileUpload(e,r),{uploadedFile:t,skippedFile:null}}catch(t){return{uploadedFile:null,skippedFile:{name:e.name,reason:t instanceof Error?t.message:`Upload failed`}}}},c=[];for(let e=0;e<t.length;e+=N){let n=t.slice(e,e+N);c.push(...await Promise.all(n.map(s)))}return{uploaded_files:c.flatMap(e=>e.uploadedFile?[e.uploadedFile]:[]),skipped_files:c.flatMap(e=>e.skippedFile?[e.skippedFile]:[])}}var R=class{static currentConversation=null;static setCurrentConversation(e){this.currentConversation=e}static getCurrentConversation(){return this.currentConversation}static getClientOverrides(){return{sessionApiKey:this.currentConversation?.session_api_key}}static async getVSCodeUrl(e){let t=this.currentConversation?.id===e?this.currentConversation?.workspace?.working_dir??a():a();return{vscode_url:await new s(r(this.getClientOverrides())).getUrl({baseUrl:typeof window<`u`?window.location.origin:void 0,workspaceDir:t})}}static async getTrajectory(e){return{trajectory:(await new u(i(this.getClientOverrides()),e).search({limit:1e4})).items??[]}}static async uploadFiles(e,t){return I(e,t,this.currentConversation)}};e();var z=t(),B=e=>(0,z.jsx)(`svg`,{width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,z.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`})}),V=e=>{let t=e.match(/^\/workspace\/[^/]+\/(.*)$/);return t?t[1]:e};function H(e){let t=e.trim().replace(/\\/g,`/`).replace(/\/+$/,``);return t?t.startsWith(`/`)||/^[A-Za-z]:(\/|$)/.test(t)?t:`/${t}`:``}var U=(e,t)=>{let n=e.trim().replace(/\\/g,`/`);if(!n)return``;n=n.replace(/:(\d+)(-\d+)?$/,``);let r=[t,o].filter(e=>!!e?.trim());for(let e of r){let t=H(e);if(t){if(n===t)return``;if(n.startsWith(`${t}/`))return n.slice(t.length+1)}}return n.startsWith(`/`)?V(n).replace(/^\.\//,``):n.replace(/^\.\//,``)},W=/\.(md|txt|ts|tsx|js|jsx|mjs|cjs|py|json|html?|css|scss|ya?ml|toml|rs|go|java|kt|swift|c|cc|cpp|h|hpp|sh|bash|zsh|sql|xml|svg|pdf|env|rb|php|vue|svelte|lock|ini|cfg|docx?|xlsx?|pptx?|odt|rtf)$/i,G=e=>{let t=e.trim();if(!t||/\s/.test(t)||/^https?:\/\//i.test(t))return!1;let n=t.replace(/\\/g,`/`).replace(/^\.\//,``);if(n=n.replace(/:(\d+)(-\d+)?$/,``),/^(application|audio|image|text|video|font|multipart|message|model)\/[\w.+-]+$/i.test(n)||/^v?\d+(\.\d+){1,3}([-+][\w.]+)?$/i.test(n))return!1;let r=n.includes(`/`)?n.split(`/`).pop()??``:n;return W.test(r)},K=e=>{let t=e.trim();if(!t)return``;let n=t.replace(/[\\/]+$/,``);if(!n||/^[A-Za-z]:$/.test(n))return``;let r=Math.max(n.lastIndexOf(`/`),n.lastIndexOf(`\\`));return r>=0?n.slice(r+1):n},q=l(e=>({executionStatusByConversation:{},setExecutionStatus:(t,n)=>e(e=>({executionStatusByConversation:{...e.executionStatusByConversation,[t]:n}})),reset:()=>e({executionStatusByConversation:{}})}));export{x as _,U as a,P as c,D as d,w as f,b as g,S as h,V as i,I as l,C as m,K as n,B as o,v as p,G as r,R as s,q as t,y as u,T as v,E as y};
@@ -0,0 +1,6 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{t as n}from"./react-BX7IV650.js";var r=e=>!!e.dispatchFromDevtools&&typeof e.dispatch==`function`,i=new Map,a=e=>{let t=i.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},o=(e,t,n)=>{if(e===void 0)return{type:`untracked`,connection:t.connect(n)};let r=i.get(n.name);if(r)return{type:`tracked`,store:e,...r};let a={connection:t.connect(n),stores:{}};return i.set(n.name,a),{type:`tracked`,store:e,...a}},s=(e,t)=>{if(t===void 0)return;let n=i.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&i.delete(e))},c=/.+ (.+) .+/,l=/^([^@]+)@/;function u(e){if(!e)return;let t=e.split(`
2
+ `),n=t.findIndex(e=>e.includes(`api.setState`));if(n<0)return;let r=t[n+1]?.trim()||``;return c.exec(r)?.[1]||l.exec(r)?.[1]}var d=(e,t={})=>(n,i,c)=>{let{enabled:l,anonymousActionType:d,store:p,...m}=t,h;try{h=(l??!1)&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!h)return e(n,i,c);let{connection:g,..._}=o(p,h,m),v=!0;c.setState=((e,t,r)=>{let o=n(e,t);if(!v)return o;let s=r===void 0?{type:d||u(Error().stack)||`anonymous`}:typeof r==`string`?{type:r}:r;return p===void 0?(g?.send(s,i()),o):(g?.send({...s,type:`${p}/${s.type}`},{...a(m.name),[p]:c.getState()}),o)}),c.devtools={cleanup:()=>{g&&typeof g.unsubscribe==`function`&&g.unsubscribe(),s(m.name,p)}};let y=(...e)=>{let t=v;v=!1,n(...e),v=t},b=e(c.setState,i,c);if(_.type===`untracked`?g?.init(b):(_.stores[_.store]=c,g?.init(Object.fromEntries(Object.entries(_.stores).map(([e,t])=>[e,e===_.store?b:t.getState()])))),r(c)){let e=c.dispatch;c.dispatch=(...t)=>{e(...t)}}return g.subscribe(e=>{switch(e.type){case`ACTION`:if(typeof e.payload!=`string`){console.error(`[zustand devtools middleware] Unsupported action format`);return}return f(e.payload,e=>{if(e.type===`__setState`){if(p===void 0){y(e.state);return}Object.keys(e.state).length!==1&&console.error(`
3
+ [zustand devtools middleware] Unsupported __setState action format.
4
+ When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
5
+ and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
6
+ `);let t=e.state[p];if(t==null)return;JSON.stringify(c.getState())!==JSON.stringify(t)&&y(t);return}r(c)&&c.dispatch(e)});case`DISPATCH`:switch(e.payload.type){case`RESET`:return y(b),p===void 0?g?.init(c.getState()):g?.init(a(m.name));case`COMMIT`:if(p===void 0){g?.init(c.getState());return}return g?.init(a(m.name));case`ROLLBACK`:return f(e.state,e=>{if(p===void 0){y(e),g?.init(c.getState());return}y(e[p]),g?.init(a(m.name))});case`JUMP_TO_STATE`:case`JUMP_TO_ACTION`:return f(e.state,e=>{if(p===void 0){y(e);return}JSON.stringify(c.getState())!==JSON.stringify(e[p])&&y(e[p])});case`IMPORT_STATE`:{let{nextLiftedState:t}=e.payload,n=t.computedStates.slice(-1)[0]?.state;if(!n)return;y(p===void 0?n:n[p]),g?.send(null,t);return}case`PAUSE_RECORDING`:return v=!v}return}}),b},f=(e,t)=>{let n;try{n=JSON.parse(e)}catch(e){console.error(`[zustand devtools middleware] Could not parse the received json`,e)}n!==void 0&&t(n)};function p(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var m=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return m(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return m(t)(e)}}}},h=(e,t)=>(n,r,i)=>{let a={storage:p(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let h=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>h;let g,_=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??h));let t=a.onRehydrateStorage?.call(a,r()??h)||void 0;return m(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(g=a.merge(o,r()??h),n(g,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),g=r(),o=!0,l.forEach(e=>e(g)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>_(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||_(),g||h},g=e(t(),1),_={workspace:`workspace`,git:`git`},v=[_.workspace,_.git],y=new Set(v),b={changes:`changes`,repository:`repository`,branch:`branch`,commits:`commits`,pull_requests:`pull_requests`},x=[b.changes,b.repository,b.branch,b.commits,b.pull_requests],S=new Set(x),C=[],w=[],T=[{sections:[_.workspace]}];function E(e,t){return!t.includes(e)}function D(e,t){return!t.includes(e)}var O={CONVERSATION_STATE:`conversation-state`,PENDING_TASK_DRAFT:`pending-task-draft`},k=`conversation-state-updated`,A={selectedTab:`files`,unpinnedTabs:[],unpinnedOverviewSections:[...C],unpinnedOverviewGitParts:[...w],conversationMode:`code`,subConversationTaskId:null,draftMessage:null,rightPanelShown:!1,filesTabDiffView:null,filesTabContentViewMode:`rich`,filesTabTreeVisible:!0,filesTabOpenPaths:[],filesTabSelectedPath:null},j=new Set([`files`,`commits`,`browser`,`terminal`,`planner`,`tasklist`,`usage`]),M=new Set([`editor`,`served`,`app`,`vscode`]),N=new Set([`rich`,`plain`]);function P(e){let t=e;if(t.selectedTab!=null&&(M.has(t.selectedTab)||t.selectedTab===`changes`||!j.has(t.selectedTab))){let e=t.selectedTab;t={...t},e===`changes`?t.selectedTab=`commits`:delete t.selectedTab}if(t.unpinnedTabs){let e=t.unpinnedTabs.filter(e=>e!==`changes`&&!M.has(e));e.length!==t.unpinnedTabs.length&&(t={...t,unpinnedTabs:e})}if(t.unpinnedOverviewSections){let e=t.unpinnedOverviewSections.filter(e=>y.has(e));e.length!==t.unpinnedOverviewSections.length&&(t={...t,unpinnedOverviewSections:e})}if(t.unpinnedOverviewGitParts){let e=t.unpinnedOverviewGitParts.filter(e=>S.has(e));e.length!==t.unpinnedOverviewGitParts.length&&(t={...t,unpinnedOverviewGitParts:e})}if(t.filesTabContentViewMode!=null&&!N.has(t.filesTabContentViewMode)&&(t={...t},delete t.filesTabContentViewMode),t.rightPanelShown!=null&&typeof t.rightPanelShown!=`boolean`&&(t={...t},delete t.rightPanelShown),t.filesTabTreeVisible!=null&&typeof t.filesTabTreeVisible!=`boolean`&&(t={...t},delete t.filesTabTreeVisible),t.filesTabOpenPaths!=null)if(!Array.isArray(t.filesTabOpenPaths))t={...t},delete t.filesTabOpenPaths;else{let e=t.filesTabOpenPaths.filter(e=>typeof e==`string`&&e.length>0);e.length!==t.filesTabOpenPaths.length&&(t={...t,filesTabOpenPaths:e})}return t.filesTabSelectedPath!=null&&typeof t.filesTabSelectedPath!=`string`&&(t={...t},delete t.filesTabSelectedPath),t}function F(e){return e.startsWith(`task-`)}function I(e){return e===``||F(e)}function L(e){if(I(e))return A;try{let t=`${O.CONVERSATION_STATE}-${e}`,n=localStorage.getItem(t);return n===null?A:{...A,...P(JSON.parse(n))}}catch{return A}}function R(e,t){if(!I(e))try{let n=`${O.CONVERSATION_STATE}-${e}`,r={...L(e),...t};localStorage.setItem(n,JSON.stringify(r)),typeof window<`u`&&window.dispatchEvent(new CustomEvent(k,{detail:{conversationId:e}}))}catch(e){console.warn(`Failed to set conversation localStorage`,e)}}function z(e){return`${O.PENDING_TASK_DRAFT}-${e}`}function B(e,t){if(e)try{localStorage.setItem(z(e),t)}catch(e){console.warn(`Failed to store pending task draft`,e)}}function V(e){if(!e)return null;try{let t=z(e),n=localStorage.getItem(t);return localStorage.removeItem(t),n}catch(e){return console.warn(`Failed to consume pending task draft`,e),null}}function H(e){try{let t=`${O.CONVERSATION_STATE}-${e}`;localStorage.removeItem(t),typeof window<`u`&&window.dispatchEvent(new CustomEvent(k,{detail:{conversationId:e}}))}catch(t){console.warn(`Failed to clear conversation localStorage`,e,t)}}function U(e){let[t,n]=(0,g.useState)(()=>L(e));(0,g.useEffect)(()=>{if(typeof window>`u`)return;let t=`${O.CONVERSATION_STATE}-${e}`,r=()=>{n(L(e))},i=e=>{e.key===t&&r()},a=t=>{t.detail?.conversationId===e&&r()};return r(),window.addEventListener(`storage`,i),window.addEventListener(k,a),()=>{window.removeEventListener(`storage`,i),window.removeEventListener(k,a)}},[e]);let r=t=>{if(I(e)){n(e=>({...e,...t}));return}R(e,t)};return{state:t,setSelectedTab:e=>r({selectedTab:e}),setUnpinnedTabs:e=>r({unpinnedTabs:e}),setUnpinnedOverviewSections:e=>r({unpinnedOverviewSections:e}),setUnpinnedOverviewGitParts:e=>r({unpinnedOverviewGitParts:e}),setConversationMode:e=>r({conversationMode:e}),setDraftMessage:e=>r({draftMessage:e}),setRightPanelShown:e=>r({rightPanelShown:e}),setFilesTabDiffView:e=>r({filesTabDiffView:e}),setFilesTabContentViewMode:e=>r({filesTabContentViewMode:e}),setFilesTabTreeVisible:e=>r({filesTabTreeVisible:e}),setFilesTabOpenState:(e,t)=>r({filesTabOpenPaths:e,filesTabSelectedPath:t})}}var W=()=>{if(typeof window>`u`)return null;let e=window.location.pathname.match(/\/conversations\/([^/]+)/);return e?e[1]:null},G=()=>{if(typeof window>`u`)return`code`;let e=W();return e?L(e).conversationMode:`code`},K=n()(d(e=>({isRightPanelShown:!1,isOverviewPanelShown:!1,isOverviewPanelPeeked:!1,selectedTab:`files`,commitsAutoExpandSection:null,images:[],files:[],imagesMarkedUploadAsFile:[],pastedImageNames:[],loadingFiles:[],loadingImages:[],messageToSend:null,messageRestoreIfEmpty:null,shouldShownAgentLoading:!1,submittedMessage:null,shouldHideSuggestions:!1,hasRightPanelToggled:!1,planContent:null,conversationMode:G(),subConversationTaskId:null,localPlanningConversationId:null,setIsRightPanelShown:t=>e({isRightPanelShown:t},!1,`setIsRightPanelShown`),setIsOverviewPanelShown:t=>e({isOverviewPanelShown:t,isOverviewPanelPeeked:!1},!1,`setIsOverviewPanelShown`),setIsOverviewPanelPeeked:t=>e({isOverviewPanelPeeked:t},!1,`setIsOverviewPanelPeeked`),setSelectedTab:t=>e({selectedTab:t},!1,`setSelectedTab`),setCommitsAutoExpandSection:t=>e({commitsAutoExpandSection:t},!1,`setCommitsAutoExpandSection`),setShouldShownAgentLoading:t=>e({shouldShownAgentLoading:t},!1,`setShouldShownAgentLoading`),setShouldHideSuggestions:t=>e({shouldHideSuggestions:t},!1,`setShouldHideSuggestions`),addImages:t=>e(e=>({images:[...e.images,...t]}),!1,`addImages`),addFiles:t=>e(e=>({files:[...e.files,...t]}),!1,`addFiles`),toggleImageUploadAsFile:t=>e(e=>{let n=new Set(e.imagesMarkedUploadAsFile);return n.has(t)?n.delete(t):n.add(t),{imagesMarkedUploadAsFile:[...n]}},!1,`toggleImageUploadAsFile`),markImagesAsPasted:t=>e(e=>({pastedImageNames:[...new Set([...e.pastedImageNames,...t])]}),!1,`markImagesAsPasted`),removeImage:t=>e(e=>{let n=e.images[t],r=[...e.images];return r.splice(t,1),{images:r,imagesMarkedUploadAsFile:n?e.imagesMarkedUploadAsFile.filter(e=>e!==n.name):e.imagesMarkedUploadAsFile,pastedImageNames:n?e.pastedImageNames.filter(e=>e!==n.name):e.pastedImageNames}},!1,`removeImage`),removeFile:t=>e(e=>{let n=[...e.files];return n.splice(t,1),{files:n}},!1,`removeFile`),clearImages:()=>e({images:[]},!1,`clearImages`),clearFiles:()=>e({files:[]},!1,`clearFiles`),clearAllFiles:()=>e({images:[],files:[],imagesMarkedUploadAsFile:[],pastedImageNames:[],loadingFiles:[],loadingImages:[]},!1,`clearAllFiles`),addFileLoading:t=>e(e=>e.loadingFiles.includes(t)?e:{loadingFiles:[...e.loadingFiles,t]},!1,`addFileLoading`),removeFileLoading:t=>e(e=>({loadingFiles:e.loadingFiles.filter(e=>e!==t)}),!1,`removeFileLoading`),addImageLoading:t=>e(e=>e.loadingImages.includes(t)?e:{loadingImages:[...e.loadingImages,t]},!1,`addImageLoading`),removeImageLoading:t=>e(e=>({loadingImages:e.loadingImages.filter(e=>e!==t)}),!1,`removeImageLoading`),clearAllLoading:()=>e({loadingFiles:[],loadingImages:[]},!1,`clearAllLoading`),setMessageToSend:t=>e({messageToSend:{text:t,timestamp:Date.now()}},!1,`setMessageToSend`),clearMessageToSend:()=>e({messageToSend:null},!1,`clearMessageToSend`),restoreMessageToInputIfEmpty:t=>e({messageRestoreIfEmpty:{text:t,timestamp:Date.now()}},!1,`restoreMessageToInputIfEmpty`),clearMessageRestoreIfEmpty:()=>e({messageRestoreIfEmpty:null},!1,`clearMessageRestoreIfEmpty`),setSubmittedMessage:t=>e({submittedMessage:t},!1,`setSubmittedMessage`),resetConversationState:()=>e({shouldHideSuggestions:!1,conversationMode:G(),subConversationTaskId:null,localPlanningConversationId:null,planContent:null},!1,`resetConversationState`),setHasRightPanelToggled:t=>e({hasRightPanelToggled:t},!1,`setHasRightPanelToggled`),setConversationMode:t=>{let n=W();n&&R(n,{conversationMode:t}),e({conversationMode:t},!1,`setConversationMode`)},setSubConversationTaskId:t=>e({subConversationTaskId:t},!1,`setSubConversationTaskId`),setLocalPlanningConversationId:t=>e({localPlanningConversationId:t},!1,`setLocalPlanningConversationId`),setPlanContent:t=>e({planContent:t},!1,`setPlanContent`)}),{name:`conversation-store`}));export{F as a,U as c,T as d,D as f,h as g,d as h,L as i,b as l,p as m,H as n,R as o,E as p,V as r,B as s,K as t,_ as u};
@@ -1 +1 @@
1
- import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{t}from"./utils-CN5ZfZy1.js";var n=e();function r({icon:e,children:r,action:i,className:a}){return(0,n.jsxs)(`div`,{className:t(`flex flex-col items-center justify-center w-full h-full p-10 gap-4 text-center`,a),children:[(0,n.jsx)(`div`,{className:`shrink-0 text-[var(--oh-muted)] [&_svg]:size-10 [&_svg]:max-h-10 [&_svg]:max-w-10 [&_svg]:shrink-0`,"aria-hidden":!0,children:e}),(0,n.jsx)(`p`,{className:`max-w-sm text-center text-sm font-normal leading-5 text-[var(--oh-muted)]`,children:r}),i?(0,n.jsx)(`div`,{className:`flex justify-center pt-1`,children:i}):null]})}export{r as t};
1
+ import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{t}from"./utils-BgLSZdyy.js";var n=e();function r({icon:e,children:r,action:i,className:a}){return(0,n.jsxs)(`div`,{className:t(`flex flex-col items-center justify-center w-full h-full p-10 gap-4 text-center`,a),children:[(0,n.jsx)(`div`,{className:`shrink-0 text-[var(--oh-muted)] [&_svg]:size-10 [&_svg]:max-h-10 [&_svg]:max-w-10 [&_svg]:shrink-0`,"aria-hidden":!0,children:e}),(0,n.jsx)(`p`,{className:`max-w-sm text-center text-sm font-normal leading-5 text-[var(--oh-muted)]`,children:r}),i?(0,n.jsx)(`div`,{className:`flex justify-center pt-1`,children:i}):null]})}export{r as t};
@@ -0,0 +1 @@
1
+ import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{t}from"./useTranslation-CCgUjPJF.js";import{K as n}from"./utils-BgLSZdyy.js";import{t as r}from"./checkmark-XZyokq_Y.js";import{t as i}from"./copy-Drmhc2jD.js";var a=e();function o({isHidden:e,isDisabled:o,onClick:s,mode:c}){let{t:l}=t(`openhands`);return(0,a.jsxs)(`button`,{hidden:e,disabled:o,"data-testid":`copy-to-clipboard`,type:`button`,onClick:s,"aria-label":l(c===`copy`?n.BUTTON$COPY:n.BUTTON$COPIED),className:`button-base p-1 cursor-pointer`,children:[c===`copy`&&(0,a.jsx)(i,{width:15,height:15}),c===`copied`&&(0,a.jsx)(r,{width:15,height:15})]})}export{o as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{H as r,U as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js";import{t as a}from"./useTranslation-CCgUjPJF.js";import{K as o,t as s}from"./utils-BgLSZdyy.js";import{t as c}from"./use-is-authed-A2Yinlt0.js";import{t as l}from"./typography-DgcLGdHk.js";var u=e(t(),1),d=n(),f=i(function(){let{t:e}=a(`openhands`),[t]=r(),{data:n,isLoading:i}=c(),[f,p]=(0,u.useState)(null),[m,h]=(0,u.useState)(!1),g=t.get(`user_code`),_=async e=>{try{h(!0),(await fetch(`/oauth/device/verify-authenticated`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:`user_code=${encodeURIComponent(e)}`,credentials:`include`})).ok?p({success:!0,messageKey:o.DEVICE$SUCCESS_MESSAGE}):p({success:!1,messageKey:o.DEVICE$ERROR_FAILED})}catch{p({success:!1,messageKey:o.DEVICE$ERROR_OCCURRED})}finally{h(!1)}};return f?(0,d.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-background`,children:(0,d.jsx)(`div`,{className:`max-w-md w-full mx-auto p-6 bg-card rounded-lg shadow-lg`,children:(0,d.jsxs)(`div`,{className:`text-center`,children:[(0,d.jsx)(`div`,{className:s(`mb-4`,f.success?`text-green-600`:`text-red-600`),children:f.success?(0,d.jsx)(`svg`,{className:`w-12 h-12 mx-auto`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,d.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M5 13l4 4L19 7`})}):(0,d.jsx)(`svg`,{className:`w-12 h-12 mx-auto`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,d.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})}),(0,d.jsx)(`h2`,{className:`text-xl font-medium mb-2`,children:f.success?e(o.DEVICE$SUCCESS_TITLE):e(o.DEVICE$ERROR_TITLE)}),(0,d.jsx)(`p`,{className:`text-muted-foreground mb-4`,children:e(f.messageKey)}),!f.success&&(0,d.jsx)(`button`,{type:`button`,onClick:()=>window.location.reload(),className:`px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90`,children:e(o.DEVICE$TRY_AGAIN)})]})})}):m?(0,d.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-background`,children:(0,d.jsx)(`div`,{className:`max-w-md w-full mx-auto p-6 bg-card rounded-lg shadow-lg`,children:(0,d.jsxs)(`div`,{className:`text-center`,children:[(0,d.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-b-2 border-white mx-auto mb-4`}),(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:e(o.DEVICE$PROCESSING)})]})})}):n&&g?(0,d.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-background p-4`,children:(0,d.jsx)(`div`,{className:`flex flex-col items-center gap-6 w-full max-w-md`,children:(0,d.jsxs)(`div`,{className:`flex-1 min-w-0 max-w-md w-full mx-auto p-6 bg-card rounded-2xl shadow-lg border border-[var(--oh-border-subtle)]`,children:[(0,d.jsx)(l,{className:`text-2xl mb-4 text-center`,children:e(o.DEVICE$AUTHORIZATION_REQUEST)}),(0,d.jsxs)(`div`,{className:`mb-6 p-4 bg-base rounded-lg border border-[var(--oh-border-subtle)]`,children:[(0,d.jsx)(`p`,{className:`text-xs text-[var(--oh-text-subtle)] mb-2 text-center uppercase tracking-wider`,children:e(o.DEVICE$CODE_LABEL)}),(0,d.jsx)(`p`,{className:`text-xl font-mono font-semibold text-center tracking-[0.3em]`,children:g})]}),(0,d.jsxs)(`div`,{className:`mb-6 p-4 bg-amber-950/50 border-l-2 border-amber-500 rounded-r-lg`,children:[(0,d.jsx)(`p`,{className:`text-sm font-medium text-amber-500 mb-1`,children:e(o.DEVICE$SECURITY_NOTICE)}),(0,d.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:e(o.DEVICE$SECURITY_WARNING)})]}),(0,d.jsx)(`p`,{className:`text-muted-foreground mb-6 text-center`,children:e(o.DEVICE$CONFIRM_PROMPT)}),(0,d.jsxs)(`div`,{className:`flex gap-3`,children:[(0,d.jsx)(`button`,{type:`button`,onClick:()=>window.close(),className:`flex-1 px-4 py-2 border border-[var(--oh-border)] rounded-md hover:bg-muted text-[var(--oh-text-tertiary)]`,children:e(o.DEVICE$CANCEL)}),(0,d.jsx)(`button`,{type:`button`,onClick:()=>_(g),className:`flex-1 px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700`,children:e(o.DEVICE$AUTHORIZE)})]})]})})}):n&&!g?(0,d.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-background`,children:(0,d.jsxs)(`div`,{className:`max-w-md w-full mx-auto p-6 bg-card rounded-lg shadow-lg`,children:[(0,d.jsx)(l,{className:`text-2xl mb-4 text-center`,children:e(o.DEVICE$AUTHORIZATION_TITLE)}),(0,d.jsx)(`p`,{className:`text-muted-foreground mb-6 text-center`,children:e(o.DEVICE$ENTER_CODE_PROMPT)}),(0,d.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=new FormData(e.currentTarget).get(`user_code`);t&&n&&_(t)},children:[(0,d.jsxs)(`div`,{className:`mb-4`,children:[(0,d.jsx)(`label`,{htmlFor:`user_code`,className:`block text-sm font-medium mb-2`,children:e(o.DEVICE$CODE_INPUT_LABEL)}),(0,d.jsx)(`input`,{type:`text`,id:`user_code`,name:`user_code`,required:!0,className:`w-full px-3 py-2 border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring`,placeholder:e(o.DEVICE$CODE_PLACEHOLDER)})]}),(0,d.jsx)(`button`,{type:`submit`,className:`w-full px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90`,children:e(o.DEVICE$CONTINUE)})]})]})}):i?(0,d.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-background`,children:(0,d.jsxs)(`div`,{className:`text-center`,children:[(0,d.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-b-2 border-white mx-auto mb-4`}),(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:e(o.DEVICE$PROCESSING)})]})}):(0,d.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-background`,children:(0,d.jsxs)(`div`,{className:`max-w-md w-full mx-auto p-6 bg-card rounded-lg shadow-lg text-center`,children:[(0,d.jsx)(l,{className:`text-2xl mb-4`,children:e(o.DEVICE$AUTH_REQUIRED)}),(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:e(o.DEVICE$SIGN_IN_PROMPT)})]})})});export{f as default};
@@ -1 +1 @@
1
- import{t as e}from"./utils-CN5ZfZy1.js";import{p as t}from"./form-control-classes-Bkh5FGrD.js";var n=`transition-none`,r=`gap-0.5`,i=`gap-2`,a=e(`flex flex-col`,r),o=e(`bg-tertiary border border-[var(--oh-border-input)] rounded p-2`,`flex items-center gap-2`,t,n,`group w-full gap-2 px-3 text-[var(--oh-muted)] hover:text-white`),s=e(`group flex w-full cursor-pointer items-center rounded px-2 py-2 text-left text-sm font-normal text-white`,i,`hover:bg-[var(--oh-interactive-hover)] disabled:cursor-not-allowed disabled:opacity-60`,n),c=e(`group flex w-full cursor-pointer items-center rounded px-2 py-2 text-start text-sm font-normal`,i,`text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)]`,`disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent`,n),l=e(`shrink-0 text-[var(--oh-muted)] group-hover:text-white group-focus-visible:text-white`,n),u=e(`flex size-4 shrink-0 items-center justify-center [&_svg]:text-current`,l),d=e(`inline-flex cursor-pointer items-center gap-1.5 rounded-lg border px-3 py-2 text-sm font-medium`,`border-[var(--oh-border)] bg-base-secondary text-white`,`focus-visible:border-white/40 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-white/20`,n);e(a,`overflow-y-auto custom-scrollbar-always`,`max-h-[13.875rem]`);var f=e(`overflow-y-auto custom-scrollbar`,`max-h-[min(60vh,calc(100dvh-5rem))]`),p=e(`group flex w-full items-center rounded-md px-2 py-2 text-sm font-normal text-white`,i,`hover:bg-[var(--oh-interactive-hover)]`,n);export{r as a,i as c,f as d,o as f,a as i,l,p as n,s as o,n as r,c as s,d as t,u};
1
+ import{t as e}from"./utils-BgLSZdyy.js";import{p as t}from"./form-control-classes-Dbq-7YP_.js";var n=`transition-none`,r=`gap-0.5`,i=`gap-2`,a=e(`flex flex-col`,r),o=e(`bg-tertiary border border-[var(--oh-border-input)] rounded p-2`,`flex items-center gap-2`,t,n,`group w-full gap-2 px-3 text-[var(--oh-muted)] hover:text-white`),s=e(`group flex w-full cursor-pointer items-center rounded px-2 py-2 text-left text-sm font-normal text-white`,i,`hover:bg-[var(--oh-interactive-hover)] disabled:cursor-not-allowed disabled:opacity-60`,n),c=e(`group flex w-full cursor-pointer items-center rounded px-2 py-2 text-start text-sm font-normal`,i,`text-[var(--oh-foreground)] hover:bg-[var(--oh-interactive-hover)]`,`disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent`,n),l=e(`shrink-0 text-[var(--oh-muted)] group-hover:text-white group-focus-visible:text-white`,n),u=e(`flex size-4 shrink-0 items-center justify-center [&_svg]:text-current`,l),d=e(`inline-flex cursor-pointer items-center gap-1.5 rounded-lg border px-3 py-2 text-sm font-medium`,`border-[var(--oh-border)] bg-base-secondary text-white`,`focus-visible:border-white/40 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-white/20`,n);e(a,`overflow-y-auto custom-scrollbar-always`,`max-h-[13.875rem]`);var f=e(`overflow-y-auto custom-scrollbar`,`max-h-[min(60vh,calc(100dvh-5rem))]`),p=e(`group flex w-full items-center rounded-md px-2 py-2 text-sm font-normal text-white`,i,`hover:bg-[var(--oh-interactive-hover)]`,n);export{r as a,i as c,f as d,o as f,a as i,l,p as n,s as o,n as r,c as s,d as t,u};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useTranslation-CCgUjPJF.js";import{ct as i,st as a}from"./active-backend-context-BnH4-L8h.js";import{K as o,t as s}from"./utils-BgLSZdyy.js";import{_ as c,g as l,h as u,m as d,p as f,v as p}from"./kebab-menu-item-content-SCJBwZnp.js";import{A as m,T as h}from"./use-tracking-j4uo9VEW.js";import{r as g}from"./modal-classes-B0b9eiL8.js";import{f as ee,l as _}from"./form-control-classes-Dbq-7YP_.js";import{t as v}from"./brand-button-CUMfjb99.js";import{t as y}from"./settings-dropdown-input-DBvsZ7-Q.js";import{t as b}from"./settings-input-dVuzapBA.js";import{t as x}from"./use-llm-profiles-SWsuFmFu.js";import{s as S}from"./use-automations-Bq5hVuv0.js";import{n as C}from"./api-error-message-BXo0lCI5.js";import{t as w}from"./x-mark-BopmFoBq.js";import{t as T}from"./use-manifest-capabilities-CdqYfUAC.js";var E=e(t(),1);function D(e,t){let n=e.trim();if(!n)return{value:null};let r=Number(n);return Number.isInteger(r)?r<=0?{errorKey:o.AUTOMATIONS$ERROR_TIMEOUT_POSITIVE}:t!==void 0&&r>t?{errorKey:o.AUTOMATIONS$ERROR_TIMEOUT_MAX_EXCEEDED}:{value:r}:{errorKey:o.AUTOMATIONS$ERROR_TIMEOUT_INVALID_NUMBER}}var O=n(),k=`__active__`,A=[o.AUTOMATIONS$WEEKDAY_SUN,o.AUTOMATIONS$WEEKDAY_MON,o.AUTOMATIONS$WEEKDAY_TUE,o.AUTOMATIONS$WEEKDAY_WED,o.AUTOMATIONS$WEEKDAY_THU,o.AUTOMATIONS$WEEKDAY_FRI,o.AUTOMATIONS$WEEKDAY_SAT];function j(e){let t=e.timeout==null?``:String(e.timeout);if(e.trigger.type===`event`)return{name:e.name,prompt:e.prompt??``,model:e.model??``,frequency:`custom`,weekday:1,timeOfDay:``,isCustomSchedule:!0,rawSchedule:``,timeout:t};let n=l(e.trigger.schedule);return n.kind===`custom`?{name:e.name,prompt:e.prompt??``,model:e.model??``,frequency:`custom`,weekday:1,timeOfDay:n.hour!==void 0&&n.minute!==void 0?u(n.hour,n.minute):``,isCustomSchedule:!0,rawSchedule:n.raw,timeout:t}:{name:e.name,prompt:e.prompt??``,model:e.model??``,frequency:n.kind,weekday:n.kind===`weekly`?n.weekday??1:1,timeOfDay:u(n.hour,n.minute),isCustomSchedule:!1,rawSchedule:e.trigger.schedule??``,timeout:t}}function M({automation:e,isOpen:t,onClose:n}){let{t:l}=r(`openhands`),u=S(),M=m().editTitle,N=h(`name`),P=h(`prompt`),F=h(`model`),I=h(`timeout`),L=h(`schedule`),{data:R}=T(),z=R?.maxAutomationTimeoutSeconds,B=z===void 0?void 0:Math.min(z,I.max??z),{data:V,isLoading:H}=x(),U=V?.profiles??[],W=[{key:k,label:l(o.COMMON$ACTIVE_PROFILE)},...U.map(e=>({key:e.name,label:e.name}))],G=(0,E.useMemo)(()=>j(e),[e]),[K,q]=(0,E.useState)(G),[J,Y]=(0,E.useState)(null),[X,Z]=(0,E.useState)(null),[Q,$]=(0,E.useState)(null);if((0,E.useEffect)(()=>{t&&(q(G),Y(null),Z(null),$(null))},[t,G]),!t)return null;let te=[{key:`daily`,label:l(o.AUTOMATIONS$FREQUENCY_DAILY)},{key:`weekdays`,label:l(o.AUTOMATIONS$FREQUENCY_WEEKDAYS)},{key:`weekly`,label:l(o.AUTOMATIONS$FREQUENCY_WEEKLY)},...K.isCustomSchedule?[{key:`custom`,label:l(o.AUTOMATIONS$FREQUENCY_CUSTOM)}]:[]],ne=A.map((e,t)=>({key:String(t),label:l(e)}));return(0,O.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,O.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:n,onKeyDown:e=>{e.key===`Escape`&&n()},role:`presentation`}),(0,O.jsxs)(`div`,{className:`relative w-full max-w-md rounded-xl border border-[var(--oh-border)] bg-[var(--oh-surface)] p-6`,children:[(0,O.jsx)(`button`,{type:`button`,onClick:n,className:`absolute right-4 top-4 text-muted hover:text-foreground`,"aria-label":l(o.AUTOMATIONS$CANCEL),children:(0,O.jsx)(w,{className:`size-5`})}),(0,O.jsx)(`h2`,{className:g,children:M}),(0,O.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let r=K.name.trim();if(!r){Y(l(o.AUTOMATIONS$NAME_REQUIRED));return}Y(null);let s=D(K.timeout,B);if(`errorKey`in s){Z(l(s.errorKey,{max:B}));return}Z(null);let d={};r!==e.name&&(d.name=r);let m=K.prompt.trim();m!==(e.prompt??``).trim()&&(d.prompt=m.length===0?null:m);let h=K.model.trim();if(h!==(e.model??``)&&(d.model=h===``?null:h),(s.value??null)!==(e.timeout??null)&&(d.timeout=s.value),e.trigger.type!==`event`&&K.isCustomSchedule){if(K.rawSchedule.trim()!==(e.trigger.schedule??``).trim()){let t=p(K.rawSchedule);if(`errorKey`in t){$(l(t.errorKey));return}d.trigger={...e.trigger,schedule:t.schedule}}$(null)}else if(!K.isCustomSchedule&&K.frequency!==`custom`){let t=c(K.timeOfDay);if(t){let n=f({kind:K.frequency,hour:t.hour,minute:t.minute,weekday:K.frequency===`weekly`?K.weekday:void 0});n!==e.trigger.schedule&&(d.trigger={...e.trigger,schedule:n})}}if(Object.keys(d).length===0){n();return}u.mutate({id:e.id,body:d},{onSuccess:()=>{i(l(o.AUTOMATIONS$EDIT_SUCCESS)),n()},onError:e=>{a(C(e,l(o.AUTOMATIONS$EDIT_ERROR)))}})},noValidate:!0,className:`mt-4 flex flex-col gap-4`,"aria-label":M,children:[N.present&&(0,O.jsx)(b,{testId:`edit-automation-name`,name:`name`,type:`text`,label:N.label,value:K.name,onChange:e=>q(t=>({...t,name:e})),error:J??void 0,showRequiredTag:N.required}),P.present&&(0,O.jsxs)(`label`,{className:`flex flex-col gap-2.5 w-full min-w-0`,children:[(0,O.jsx)(`span`,{className:`text-sm`,children:P.label}),(0,O.jsx)(`textarea`,{"data-testid":`edit-automation-prompt`,name:`prompt`,value:K.prompt,onChange:e=>q(t=>({...t,prompt:e.target.value})),rows:4,className:s(_,`placeholder:italic`)}),P.help!==null&&(0,O.jsx)(`span`,{className:`text-xs text-muted`,children:P.help})]}),F.present&&(H||U.length>0)&&(0,O.jsx)(y,{testId:`edit-automation-model`,name:`model`,label:F.label,items:W,selectedKey:K.model||k,isLoading:H,placeholder:l(o.COMMON$ACTIVE_PROFILE),onSelectionChange:e=>q(t=>({...t,model:e&&e!==k?String(e):``}))}),I.present&&(0,O.jsxs)(`div`,{className:`flex flex-col gap-2.5 w-full min-w-0`,children:[(0,O.jsx)(b,{testId:`edit-automation-timeout`,name:`timeout`,type:`number`,label:I.label,value:K.timeout,onChange:e=>q(t=>({...t,timeout:e})),error:X??void 0,showOptionalTag:!0,min:I.min??1,max:B,step:1,placeholder:`600`}),I.help!==null&&(0,O.jsx)(`span`,{"data-testid":`edit-automation-timeout-hint`,className:`text-xs text-muted`,children:I.help})]}),e.trigger.type===`event`?(0,O.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg bg-[var(--oh-surface-raised)] p-3`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`span`,{className:`text-xs font-medium text-muted`,children:l(o.AUTOMATIONS$DETAIL$TRIGGER)}),(0,O.jsx)(`span`,{className:`text-sm text-content`,children:l(o.AUTOMATIONS$DETAIL$TRIGGER_EVENT)})]}),e.trigger.source&&(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`span`,{className:`text-xs font-medium text-muted`,children:l(o.AUTOMATIONS$DETAIL$EVENT_SOURCE)}),(0,O.jsx)(`span`,{className:`text-sm text-content`,children:e.trigger.source})]}),e.trigger.on&&(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`span`,{className:`text-xs font-medium text-muted`,children:l(o.AUTOMATIONS$DETAIL$EVENT_TYPE)}),(0,O.jsx)(`code`,{className:`text-xs font-mono text-content`,children:d(e.trigger.on)})]}),e.trigger.filter&&(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(`span`,{className:`text-xs font-medium text-muted`,children:l(o.AUTOMATIONS$DETAIL$EVENT_FILTER)}),(0,O.jsx)(`code`,{className:`text-xs font-mono text-content break-all`,children:e.trigger.filter})]})]}):L.present?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(y,{testId:`edit-automation-frequency`,name:`frequency`,label:L.label,items:te,selectedKey:K.frequency,isDisabled:K.isCustomSchedule,onSelectionChange:e=>{!e||K.isCustomSchedule||q(t=>({...t,frequency:e}))}}),K.frequency===`weekly`&&!K.isCustomSchedule&&(0,O.jsx)(y,{testId:`edit-automation-weekday`,name:`weekday`,label:l(o.AUTOMATIONS$WEEKDAY),items:ne,selectedKey:String(K.weekday),onSelectionChange:e=>{e!==null&&q(t=>({...t,weekday:Number(e)}))}}),(0,O.jsxs)(`label`,{className:`flex flex-col gap-2.5 w-full min-w-0`,children:[(0,O.jsx)(`span`,{className:`text-sm`,children:l(o.AUTOMATIONS$TIME_OF_DAY)}),(0,O.jsx)(`input`,{"data-testid":`edit-automation-time`,name:`timeOfDay`,type:`time`,value:K.timeOfDay,onChange:e=>q(t=>({...t,timeOfDay:e.target.value})),disabled:K.isCustomSchedule,className:s(ee,`disabled:bg-[var(--oh-surface-raised)]`)}),e.timezone&&(0,O.jsxs)(`span`,{className:`text-xs text-muted`,children:[l(o.AUTOMATIONS$TIMEZONE),`: `,e.timezone]})]}),K.isCustomSchedule&&(0,O.jsx)(b,{testId:`edit-automation-cron`,name:`cron`,type:`text`,label:l(o.AUTOMATIONS$CRON_EXPRESSION),value:K.rawSchedule,onChange:e=>q(t=>({...t,rawSchedule:e})),error:Q??void 0,placeholder:`*/10 * * * *`})]}):null,(0,O.jsxs)(`div`,{className:`mt-2 flex justify-end gap-3`,children:[(0,O.jsx)(v,{testId:`edit-automation-cancel`,type:`button`,variant:`secondary`,onClick:n,isDisabled:u.isPending,children:l(o.AUTOMATIONS$CANCEL)}),(0,O.jsx)(v,{testId:`edit-automation-save`,type:`submit`,variant:`primary`,isDisabled:u.isPending,"aria-busy":u.isPending,children:u.isPending?l(o.AUTOMATIONS$SAVING):l(o.AUTOMATIONS$SAVE)})]})]})]})]})}export{M as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,i as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";import{n as a,t as o}from"./recommended-automations-launcher-DEHRKIAg.js";import{t as s}from"./vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BCe0JJVy.js";import{t as c}from"./useTranslation-CCgUjPJF.js";import{n as l}from"./active-backend-context-BnH4-L8h.js";import{K as u,t as d}from"./utils-BgLSZdyy.js";import{b as f,i as p,n as m,o as h,r as g,s as _,u as v}from"./kebab-menu-item-content-SCJBwZnp.js";import{C as y,D as b,E as x,F as S,S as C,a as w,b as T,d as ee,i as te,n as ne,o as E,p as D,r as O,s as k,t as A,v as j,w as M,x as N,y as P}from"./home-automation-run-tooltip-B1N2uO9p.js";import{r as F}from"./context-menu-list-item-Cm7-7Y-7.js";import{E as I,U as re,t as L}from"./use-tracking-j4uo9VEW.js";import{t as R}from"./modal-backdrop-BSzNhM4r.js";import{n as z}from"./modal-classes-B0b9eiL8.js";import{t as B}from"./brand-button-CUMfjb99.js";import{n as V}from"./navigation-context-CQZwH_tC.js";import{t as H}from"./navigation-link-Bxo3-4vo.js";import{t as U}from"./styled-tooltip-CejG0rqv.js";import{t as W}from"./modal-close-button-DfqfB2Nj.js";import{t as G}from"./u-edit-DAkcF52u.js";import{n as K}from"./use-automation-health-U99vvHxx.js";import{a as q,i as J,n as Y,o as X,r as ie,t as Z}from"./extension-module-card-classes-DpeaYhYo.js";import{n as ae}from"./skill-card-pill-row-DfjIfj0K.js";import{n as oe,t as se}from"./use-automation-permissions-Buus0R6h.js";import{n as ce,r as le,t as ue}from"./trash-Ckh7yCaB.js";import{n as de,t as fe}from"./use-launch-skill-in-chat-QbXDhiHr.js";var pe=i(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),Q=r();function me(){return(0,Q.jsxs)(`div`,{"data-testid":`automation-card-skeleton`,className:`${q} border border-transparent p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,Q.jsx)(`div`,{className:`h-5 w-40 animate-pulse rounded bg-surface-raised`}),(0,Q.jsx)(`div`,{className:`size-8 animate-pulse rounded-md bg-surface-raised`})]}),(0,Q.jsx)(`div`,{className:`mt-2 h-4 w-72 animate-pulse rounded bg-surface-raised`}),(0,Q.jsxs)(`div`,{className:`mt-3 flex gap-2`,children:[(0,Q.jsx)(`div`,{className:`h-5 w-20 animate-pulse rounded-full bg-surface-raised`}),(0,Q.jsx)(`div`,{className:`h-5 w-24 animate-pulse rounded bg-surface-raised`})]}),(0,Q.jsxs)(`div`,{className:`mt-3 flex gap-2`,children:[(0,Q.jsx)(`div`,{className:`h-7 w-32 animate-pulse rounded-full bg-surface-raised`}),(0,Q.jsx)(`div`,{className:`h-7 w-28 animate-pulse rounded-full bg-surface-raised`}),(0,Q.jsx)(`div`,{className:`h-7 w-24 animate-pulse rounded-full bg-surface-raised`})]}),(0,Q.jsx)(`div`,{className:`mt-3 h-9 animate-pulse rounded-md bg-surface-raised`})]})}var he=e(t(),1);function ge({automation:e,t,canManage:n,canToggle:r,onRunNow:i,isRunPending:a,onView:o,onExport:s,onEdit:c,onToggle:l,onDelete:d}){return[...n?[{label:t(u.AUTOMATIONS$RUN_NOW),icon:(0,Q.jsx)(g,{className:`size-4`}),onClick:()=>i(e.id),disabled:a||!e.enabled}]:[],{label:t(u.COMMON$VIEW),icon:(0,Q.jsx)(S,{className:`size-4`,"aria-hidden":!0}),onClick:o},{label:t(u.AUTOMATIONS$EXPORT),icon:(0,Q.jsx)(pe,{className:`size-4`,"aria-hidden":!0}),onClick:()=>s(e)},...n&&c?[{label:t(u.AUTOMATIONS$EDIT),icon:(0,Q.jsx)(G,{className:`size-4`}),onClick:()=>c(e.id)}]:[],...r?[{label:e.enabled?t(u.AUTOMATIONS$TURN_OFF):t(u.AUTOMATIONS$TURN_ON),icon:(0,Q.jsx)(m,{className:`size-4`}),onClick:()=>l(e.id,e.enabled)}]:[],...n?[{label:t(u.AUTOMATIONS$DELETE),icon:(0,Q.jsx)(ue,{className:`size-4`}),onClick:()=>d(e.id)}]:[]]}function _e({automation:e,onToggle:t,onRunNow:r,isRunPending:i=!1,onDelete:a,onExport:o,onEdit:s,insights:l}){let{navigate:m}=V(),{t:y,i18n:S}=c(`openhands`),{canManage:C}=se(),w=oe(e),T=C||w,ne=e.enabled?T:w,E=e.trigger.schedule_human||e.trigger.type,O=(0,he.useMemo)(()=>j(e,E),[e,E]),A=()=>{m?.(`/automations/${e.id}`)},M=ge({automation:e,t:y,canManage:T,canToggle:ne,onRunNow:r,isRunPending:i,onView:A,onExport:o,onEdit:s,onToggle:t,onDelete:a}),P=ee(l?.state),F=re(e,l?.state?.summary?.completedTotal??null),{latestRun:I,recentRuns:L,isLoading:R,isError:z}=P,B=I?N(I):null,H=I?f(I):null,W=H?.summary??null,G=W?x(W):null,K=W!=null&&G!=null&&b(W,G),J=_(I?.status);return(0,Q.jsxs)(`div`,{role:`link`,tabIndex:0,"data-testid":`automation-card-${e.id}`,onClick:A,onKeyDown:e=>{e.key===`Enter`&&A()},className:d(`group relative flex min-w-0 flex-col overflow-hidden p-4 text-left`,q,ie),children:[(0,Q.jsxs)(`header`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex h-8 items-center justify-between gap-3`,children:[(0,Q.jsx)(`h3`,{className:`min-w-0 flex-1 truncate text-sm font-semibold leading-none text-[var(--oh-foreground)]`,children:e.name}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[T?(0,Q.jsx)(U,{content:y(u.AUTOMATIONS$RUN_NOW),placement:`top`,children:(0,Q.jsx)(`button`,{type:`button`,"data-testid":`automation-run-now-${e.id}`,"aria-label":y(u.AUTOMATIONS$RUN_NOW),"aria-busy":i,disabled:i||!e.enabled,onClick:t=>{t.stopPropagation(),r(e.id)},className:le,children:(0,Q.jsx)(g,{className:`size-4 shrink-0`,"aria-hidden":!0})})}):null,(0,Q.jsx)(ce,{items:M,triggerClassName:`opacity-70 group-hover:opacity-100`})]})]}),e.prompt?(0,Q.jsx)(`p`,{className:`line-clamp-2 text-xs leading-relaxed text-[var(--oh-text-secondary)]`,children:e.prompt}):null]}),O.length>0||L.length>0?(0,Q.jsxs)(`div`,{className:d(`mt-3 flex items-center gap-3`,O.length>0?`justify-between`:`justify-end`),children:[O.length>0?(0,Q.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,Q.jsx)(ae,{pills:O,testId:`automation-pills-${e.id}`})}):null,L.length>0?(0,Q.jsx)(te,{automationId:e.id,runs:L,testId:`automation-activity-${e.id}`}):null]}):null,l?(0,Q.jsxs)(`div`,{className:k,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 overflow-hidden`,children:[R?(0,Q.jsx)(`div`,{className:`h-3.5 w-3/4 animate-pulse rounded bg-surface-raised motion-reduce:animate-none`,"aria-hidden":`true`}):null,!R&&z?(0,Q.jsx)(`p`,{className:`truncate text-[var(--oh-text-secondary)]`,children:y(u.FEATURED_AUTOMATIONS$STATUS_UNAVAILABLE)}):null,!R&&!z&&!I?(0,Q.jsx)(`p`,{className:`truncate text-[var(--oh-text-secondary)]`,children:y(u.AUTOMATIONS$DETAIL$NO_RUNS)}):null,I?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(p,{status:H?.badgeStatus??I.status,iconOnly:!0,showLabel:!0}),J?(0,Q.jsx)(h,{status:I.status,code:I.phase_code,label:I.phase_label,updatedAt:I.phase_updated_at}):null,G?K&&W?(0,Q.jsx)(n,{content:(0,Q.jsx)(`p`,{className:`max-w-xs whitespace-pre-wrap break-words p-2 text-xs`,children:W}),placement:`top`,closeDelay:100,disableAnimation:!1,className:`rounded-xl border border-[var(--oh-border)] bg-base-secondary p-0 text-white shadow-xl`,children:(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 cursor-default truncate text-[var(--oh-text-secondary)]`,children:G})}):(0,Q.jsx)(`p`,{className:`min-w-0 flex-1 truncate text-[var(--oh-text-secondary)]`,children:G}):null]}):null]}),B?(0,Q.jsx)(`span`,{"data-testid":`automation-last-run-${e.id}`,className:`shrink-0 text-[var(--oh-text-secondary)]`,children:v(B,S.language,y)}):null]}):null,F?(0,Q.jsx)(`p`,{"data-testid":`automation-impact-${e.id}`,className:`mt-3 truncate text-xs text-[var(--oh-text-secondary)]`,children:F}):null,l?(0,Q.jsx)(`div`,{className:`mt-3`,children:(0,Q.jsx)(D,{state:l.state,copy:l.spec.stats})}):null]})}function ve({automation:e,onToggle:t,onRunNow:r,isRunPending:i=!1,onDelete:a,onExport:o,onEdit:s,insights:l}){let{navigate:m}=V(),{t:h,i18n:_}=c(`openhands`),{canManage:b}=se(),x=oe(e),S=b||x,w=ge({automation:e,t:h,canManage:S,canToggle:e.enabled?S:x,onRunNow:r,isRunPending:i,onView:()=>{m?.(`/automations/${e.id}`)},onExport:o,onEdit:s,onToggle:t,onDelete:a}),D=e.trigger.type===`event`?F:K,k=C(e),j=y(e),I=M(e),L=!!(k||j||I),R=ee(l?.state),z=P(R),B=re(e,l?.state?.summary?.completedTotal??null),W=R.latestRun,G=W?f(W):null,q=W?N(W):e.last_triggered_at,Y=q?v(q,_.language,h):null,X=L||!!Y||!!W?.status,ie=`/automations/${encodeURIComponent(e.id)}`,Z=ne(R);return(0,Q.jsxs)(`li`,{"data-testid":`automation-list-row-${e.id}`,className:E,children:[(0,Q.jsx)(n,{content:(0,Q.jsx)(A,{automation:e,runState:R}),placement:`top-start`,closeDelay:100,disableAnimation:!1,className:`rounded-xl border border-[var(--oh-border)] bg-base-secondary p-0 text-white shadow-xl`,children:(0,Q.jsx)(H,{to:ie,"aria-label":`${e.name} ${h(Z)}`,className:`flex min-w-0 flex-1 items-center justify-between gap-3 px-3 py-2.5 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--oh-focus)]`,children:(0,Q.jsxs)(`div`,{className:`grid min-w-0 flex-1 grid-cols-[auto_minmax(0,1fr)] gap-x-2`,children:[(0,Q.jsx)(`span`,{"data-testid":`automation-health-${e.id}`,className:`inline-flex h-5 w-2.5 shrink-0 items-center justify-center`,children:(0,Q.jsx)(O,{health:z})}),(0,Q.jsx)(`span`,{className:`truncate text-sm font-medium leading-5 text-[var(--oh-foreground)]`,children:e.name}),X?(0,Q.jsxs)(`span`,{className:`col-start-2 mt-0.5 flex min-w-0 items-center gap-1.5 text-xs leading-4 text-[var(--oh-text-secondary)]`,children:[(0,Q.jsx)(D,{className:`size-3 shrink-0`,"aria-hidden":`true`}),k?(0,Q.jsx)(`span`,{className:`truncate`,children:k}):null,j?(0,Q.jsx)(`span`,{className:`truncate`,children:j}):null,I?(0,Q.jsx)(`span`,{className:d(J,`shrink-0 px-1.5 py-0 text-[var(--oh-text-secondary)]`),children:T(I)}):null,Y?(0,Q.jsxs)(Q.Fragment,{children:[L?(0,Q.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:`·`}):null,(0,Q.jsx)(`span`,{"data-testid":`automation-last-run-${e.id}`,className:`truncate`,children:Y})]}):null,W?(0,Q.jsxs)(Q.Fragment,{children:[L||Y?(0,Q.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:`·`}):null,(0,Q.jsx)(p,{status:G?.badgeStatus??W.status,compact:!0})]}):null,B?(0,Q.jsxs)(Q.Fragment,{children:[L||Y||W?(0,Q.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:`·`}):null,(0,Q.jsx)(`span`,{"data-testid":`automation-impact-${e.id}`,className:`truncate`,children:B})]}):null]}):null,(0,Q.jsx)(`span`,{className:`sr-only`,children:h(Z)})]})})}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 pr-1.5`,children:[l?(0,Q.jsx)(te,{automationId:e.id,runs:R.recentRuns,testId:`automation-activity-${e.id}`}):null,S?(0,Q.jsx)(U,{content:h(u.AUTOMATIONS$RUN_NOW),placement:`top`,children:(0,Q.jsx)(`button`,{type:`button`,"data-testid":`automation-run-now-${e.id}`,"aria-label":h(u.AUTOMATIONS$RUN_NOW),"aria-busy":i,disabled:i||!e.enabled,onClick:t=>{t.stopPropagation(),r(e.id)},className:le,children:(0,Q.jsx)(g,{className:`size-4 shrink-0`,"aria-hidden":!0})})}):null,(0,Q.jsx)(ce,{items:w,triggerClassName:`opacity-70 group-hover:opacity-100`})]})]})}function ye({title:e,count:t,automations:n,view:r,onToggle:i,onRunNow:o,runPendingId:s=null,onDelete:c,onExport:l,onEdit:u,insights:f}){return n.length===0?null:(0,Q.jsxs)(`section`,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center`,children:[(0,Q.jsx)(`h2`,{className:`text-base font-semibold text-foreground`,children:e}),(0,Q.jsx)(a,{count:t})]}),r===`grid`?(0,Q.jsx)(`div`,{className:d(`mt-3`,Y),children:(0,Q.jsx)(`div`,{className:Z,children:n.map(e=>(0,Q.jsx)(_e,{automation:e,onToggle:i,onRunNow:o,isRunPending:s===e.id,onDelete:c,onExport:l,onEdit:u,insights:f&&{spec:f.spec,state:f.byId.get(e.id)}},e.id))})}):(0,Q.jsx)(`ul`,{className:d(w,`mt-3`),children:n.map(e=>(0,Q.jsx)(ve,{automation:e,onToggle:i,onRunNow:o,isRunPending:s===e.id,onDelete:c,onExport:l,onEdit:u,insights:f&&{spec:f.spec,state:f.byId.get(e.id)}},e.id))})]})}var be=e=>(0,Q.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,strokeWidth:2,stroke:`currentColor`,...e,children:(0,Q.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`m19.5 8.25-7.5 7.5-7.5-7.5`})});function xe({children:e}){return(0,Q.jsx)(`span`,{className:`whitespace-nowrap`,children:e})}function Se({children:e}){return(0,Q.jsx)(`code`,{"data-testid":`automations-create-instructions-example`,className:d(`mx-0.5 inline-block rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] px-1.5 py-0.5 align-baseline font-mono text-[11px] text-white`),children:e})}function Ce({children:e}){return(0,Q.jsx)(Q.Fragment,{children:e})}var we={example:(0,Q.jsx)(xe,{}),cmd:(0,Q.jsx)(Se,{}),punct:(0,Q.jsx)(Ce,{})};function $({onLaunch:e}={}){let{t}=c(`openhands`),n=fe(),r=l(),{trackAutomationCreatedButton:i}=L();return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,Q.jsxs)(`p`,{className:`text-sm leading-relaxed text-tertiary-light`,children:[(0,Q.jsx)(s,{ns:`openhands`,i18nKey:u.AUTOMATIONS$EMPTY_OPTION_CONVERSATION_DESC,components:we}),` `,t(u.AUTOMATIONS$CREATE_INSTRUCTIONS_GUIDANCE),` `,(0,Q.jsx)(`a`,{href:I(),target:`_blank`,rel:`noopener noreferrer`,className:`text-muted underline transition-colors hover:text-foreground`,children:t(u.AUTOMATIONS$EMPTY_LEARN_MORE)})]}),(0,Q.jsx)(`div`,{className:`flex justify-center`,children:(0,Q.jsx)(B,{type:`button`,variant:`primary`,testId:`automations-create-automation`,onClick:()=>{i({backendKind:r.backend.kind}),n(t(u.AUTOMATIONS$CREATE_AUTOMATION_PROMPT),e)},startContent:(0,Q.jsx)(de,{className:`size-4`,"aria-hidden":!0}),children:t(u.AUTOMATIONS$CREATE_AUTOMATION_BUTTON)})})]})}function Te({collapsible:e=!1}){let{t}=c(`openhands`),[n,r]=(0,he.useState)(!e);return e?(0,Q.jsxs)(`div`,{className:`w-full rounded-lg border border-[var(--oh-border)] bg-[var(--oh-surface)]`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>r(!n),"aria-expanded":n,className:`flex w-full items-center justify-between rounded-lg p-4 text-left transition-colors hover:bg-surface-raised`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-normal text-content`,children:t(u.AUTOMATIONS$EMPTY_HOW_TO_CREATE_TITLE)}),(0,Q.jsx)(be,{className:d(`size-5 text-muted transition-transform`,n&&`rotate-180`)})]}),n?(0,Q.jsx)(`div`,{className:`px-4 pb-4`,children:(0,Q.jsx)($,{})}):null]}):(0,Q.jsx)(`div`,{className:`w-full max-w-2xl`,children:(0,Q.jsx)($,{})})}function Ee({isOpen:e,onClose:t}){let{t:n}=c(`openhands`);return e?(0,Q.jsx)(R,{onClose:t,"aria-label":n(u.AUTOMATIONS$EMPTY_HOW_TO_CREATE_TITLE),children:(0,Q.jsxs)(`div`,{"data-testid":`add-automation-modal`,className:`relative flex w-full max-w-lg flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,Q.jsx)(W,{onClose:t,testId:`add-automation-modal-close`}),(0,Q.jsx)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:(0,Q.jsx)(`h2`,{id:`add-automation-modal-title`,className:d(`pr-6`,z),children:n(u.AUTOMATIONS$EMPTY_HOW_TO_CREATE_TITLE)})}),(0,Q.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Q.jsx)($,{onLaunch:t})})]})}):null}function De(){let{t:e}=c(`openhands`);return(0,Q.jsxs)(`div`,{"data-testid":`automations-empty`,className:X,children:[(0,Q.jsx)(`p`,{className:`text-sm text-white`,children:e(u.AUTOMATIONS$EMPTY)}),(0,Q.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,Q.jsx)(Te,{})}),(0,Q.jsx)(`div`,{className:`mt-8 w-full text-left`,children:(0,Q.jsx)(o,{className:`pb-0`,variant:`rail`})})]})}export{me as i,Ee as n,ye as r,De as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/browser-DSAo0tz1.js","assets/vendor~browser-hbU4u2Ag.js","assets/vendor~browser-C6uXH-dw.js","assets/llm-subscription-DTqtBCWz.js","assets/utils-CN5ZfZy1.js","assets/vendor-styling-Ck5D_A2Q.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/settings-CKqk8ZnH.js","assets/automation-C_eCrGyP.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,xt as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{n as i}from"./vendor~entry.client-CoCfUXUF.js";import{t as a}from"./vendor~entry.client-DA2izTjq.js";import{n as o,t as s}from"./providers-BhMcY5nv.js";import{Xt as c}from"./active-backend-context-CrHTlgvN.js";var l=e(t(),1),u=a();function d({mockApi:e=void 0,hasWindow:t=typeof window<`u`}={}){return t&&e===`true`}var f=r();async function p(){if(await c(),d()){let{worker:e}=await n(async()=>{let{worker:e}=await import(`./browser-DSAo0tz1.js`);return{worker:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]));await e.start({onUnhandledRequest:`bypass`})}}p().then(()=>(0,l.startTransition)(()=>{(0,u.hydrateRoot)(document,(0,f.jsx)(l.StrictMode,{children:(0,f.jsx)(s,{analytics:o,withStyleRoot:!1,children:(0,f.jsx)(i,{})})}))}));
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/browser-SE24Tk8g.js","assets/vendor~browser-hbU4u2Ag.js","assets/vendor~browser-C6uXH-dw.js","assets/llm-subscription-DTqtBCWz.js","assets/utils-BgLSZdyy.js","assets/vendor-styling-Ck5D_A2Q.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/settings-CKqk8ZnH.js","assets/automation-C_eCrGyP.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,xt as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{n as i}from"./vendor~entry.client-CoCfUXUF.js";import{t as a}from"./vendor~entry.client-DA2izTjq.js";import{n as o,t as s}from"./providers-XmZ9HM4Q.js";import{vt as c}from"./active-backend-context-BnH4-L8h.js";var l=e(t(),1),u=a();function d({mockApi:e=void 0,hasWindow:t=typeof window<`u`}={}){return t&&e===`true`}var f=r();async function p(){if(await c(),d()){let{worker:e}=await n(async()=>{let{worker:e}=await import(`./browser-SE24Tk8g.js`);return{worker:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]));await e.start({onUnhandledRequest:`bypass`})}}p().then(()=>(0,l.startTransition)(()=>{(0,u.hydrateRoot)(document,(0,f.jsx)(l.StrictMode,{children:(0,f.jsx)(s,{analytics:o,withStyleRoot:!1,children:(0,f.jsx)(i,{})})}))}));
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useTranslation-CCgUjPJF.js";import{K as i,t as a}from"./utils-BgLSZdyy.js";import{t as o}from"./check-Bo8s5Ylg.js";import{t as s}from"./chevron-down-Cr6Fn_wS.js";import{i as c,o as l,t as u}from"./dropdown-classes-BGvOvW2_.js";import{t as d}from"./use-click-outside-element-W6Os4Nlb.js";var f=e(t(),1),p=n();function m({testId:e,value:t,onChange:n,options:m,labelKeyByValue:h,labelByValue:g,ariaLabel:_,className:v,triggerClassName:y,fullWidth:b=!1,emphasizeNonDefault:x=!0}){let{t:S}=r(`openhands`),[C,w]=f.useState(!1),T=d(()=>w(!1)),E=e=>g?.[e]??(h?S(h[e]):e),D=_??S(i.CONVERSATION_PANEL$FILTER_LABEL),O=m[0],k=E(t);return(0,p.jsxs)(`div`,{ref:T,className:a(`relative shrink-0`,b?`w-full`:`w-auto`,v),"data-testid":e,children:[(0,p.jsxs)(`button`,{type:`button`,"data-testid":`dropdown-trigger`,"aria-haspopup":`menu`,"aria-expanded":C,"aria-label":D,onClick:()=>w(e=>!e),className:a(u,b&&`w-full justify-between`,x&&O&&t!==O&&`border-white/60 bg-white/10`,y),children:[(0,p.jsx)(`span`,{className:`whitespace-nowrap`,children:k}),(0,p.jsx)(s,{className:a(`h-4 w-4 shrink-0 text-tertiary-alt transition-transform`,C&&`rotate-180`),"aria-hidden":!0})]}),C?(0,p.jsx)(`div`,{role:`menu`,"data-testid":`${e}-menu`,"aria-label":D,className:a(`absolute right-0 top-full z-50 mt-1 min-w-full w-max`,`max-h-60 overflow-auto rounded-[6px] bg-tertiary p-1 context-menu-box-shadow`,c),children:m.map(r=>{let i=r===t;return(0,p.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":i,"data-testid":`${e}-${r}`,onClick:()=>{n(r),w(!1)},className:a(l,i&&`bg-[var(--oh-interactive-selected)]`),children:[(0,p.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:E(r)}),i?(0,p.jsx)(o,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}):null]},r)})}):null]})}export{m as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,bt as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{t as i}from"./useTranslation-CCgUjPJF.js";import{K as a}from"./utils-BgLSZdyy.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./environment-switch-store-DVQZLFbj.js";var p=e(t(),1),m=e(n(),1),h=r();function g({className:e}){return(0,h.jsxs)(`svg`,{viewBox:`0 0 74.17 22`,xmlns:`http://www.w3.org/2000/svg`,className:e,"aria-hidden":!0,children:[(0,h.jsxs)(`g`,{children:[(0,h.jsx)(`rect`,{x:`1`,y:`1`,width:`20`,height:`8`,rx:`2`,ry:`2`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,h.jsx)(`rect`,{x:`1`,y:`13`,width:`20`,height:`8`,rx:`2`,ry:`2`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,h.jsx)(`line`,{x1:`5`,y1:`5`,x2:`5.01`,y2:`5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,h.jsx)(`line`,{x1:`5`,y1:`17`,x2:`5.01`,y2:`17`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]}),(0,h.jsxs)(`g`,{children:[(0,h.jsx)(`rect`,{x:`53.17`,y:`1`,width:`20`,height:`8`,rx:`2`,ry:`2`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,h.jsx)(`rect`,{x:`53.17`,y:`13`,width:`20`,height:`8`,rx:`2`,ry:`2`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,h.jsx)(`line`,{x1:`57.17`,y1:`5`,x2:`57.18`,y2:`5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,h.jsx)(`line`,{x1:`57.17`,y1:`17`,x2:`57.18`,y2:`17`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]}),(0,h.jsxs)(`g`,{children:[(0,h.jsx)(`path`,{d:`M43.09,7l4,4-4,4`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,h.jsx)(`path`,{d:`M27.09,11h20`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,h.jsx)(`path`,{d:`M31.09,7l-4,4,4,4`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})]})]})}function _(){let{t:e}=i(`openhands`),{visible:t,target:n}=p.useSyncExternalStore(l,o,o);return!t||typeof document>`u`?null:(0,m.createPortal)((0,h.jsx)(`div`,{"data-testid":`environment-switch-overlay`,"data-target":n,className:`environment-switch-overlay pointer-events-none fixed inset-0 z-[2147483646] flex items-center justify-center`,"aria-live":`polite`,"aria-atomic":`true`,children:(0,h.jsxs)(`div`,{className:`pointer-events-none flex min-w-[280px] max-w-[420px] flex-col items-center gap-2 rounded-xl border border-[var(--oh-border)] bg-[var(--oh-surface)] px-5 py-4 text-[var(--oh-foreground)] shadow-2xl`,children:[(0,h.jsx)(g,{className:`mb-2 h-6 w-20 shrink-0 text-[var(--oh-foreground)]`}),(0,h.jsx)(`p`,{className:`text-center text-sm font-medium`,children:e(a.BACKEND$SWITCHING_TO,{environment:n})})]})}),document.body)}export{f as ENVIRONMENT_SWITCH_DURATION_MS,c as ENVIRONMENT_SWITCH_SETACTIVE_DELAY_MS,_ as EnvironmentSwitchOverlay,_ as default,u as __resetEnvironmentSwitchOverlayForTests,s as dismissEnvironmentSwitch,d as triggerEnvironmentSwitch};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-Cyuzqnbw.js";import{St as e,yt as t}from"./vendor-styling-Ck5D_A2Q.js";import{t as n}from"./useTranslation-CCgUjPJF.js";import{K as r}from"./utils-BgLSZdyy.js";import{t as i}from"./brand-button-CUMfjb99.js";e();var a=t(),o=e=>(0,a.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:1.5,...e,children:(0,a.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z`})});function s({onRetry:e}){let{t}=n(`openhands`);return(0,a.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-20 px-4`,children:[(0,a.jsx)(o,{className:`size-12 text-[var(--oh-warning)]`}),(0,a.jsx)(`h2`,{className:`mt-4 text-lg font-medium text-content`,children:t(r.AUTOMATIONS$BACKEND_UNAVAILABLE_TITLE)}),(0,a.jsx)(`p`,{className:`mt-2 text-sm text-muted text-center max-w-md`,children:t(r.AUTOMATIONS$BACKEND_UNAVAILABLE_MESSAGE)}),(0,a.jsx)(i,{type:`button`,variant:`secondary`,className:`mt-6`,onClick:e,children:t(r.AUTOMATIONS$BACKEND_UNAVAILABLE_RETRY)})]})}function c({onRetry:e}){let{t}=n(`openhands`);return(0,a.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-20`,children:[(0,a.jsx)(o,{className:`size-12 text-danger`}),(0,a.jsx)(`p`,{className:`mt-4 text-sm text-muted`,children:t(r.AUTOMATIONS$ERROR_TITLE)}),(0,a.jsx)(`button`,{type:`button`,onClick:e,className:`mt-4 rounded-lg border border-[var(--oh-border)] px-4 py-2 text-sm text-white hover:bg-surface-raised`,children:t(r.AUTOMATIONS$ERROR_RETRY)})]})}export{s as n,o as r,c as t};
@@ -0,0 +1 @@
1
+ import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{U as t,f as n}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js";import{t as r}from"./useTranslation-CCgUjPJF.js";import{r as i}from"./active-backend-context-BnH4-L8h.js";import{K as a,t as o}from"./utils-BgLSZdyy.js";import{p as s}from"./agent-server-client-options-EHB23gyx.js";import{t as c}from"./extensions-navigation-C5GfpzFe.js";import{t as l}from"./external-link-Bd7Tga-1.js";import{a as u,f as d,o as f,u as p}from"./sidebar-layout-DH0E-5KW.js";import{t as m}from"./sidebar-nav-link-oLQiKUBu.js";import{r as h}from"./typography-DgcLGdHk.js";import{t as g}from"./use-breakpoint-DWtihr9g.js";import{t as _}from"./backend-synced-settings-badge-DLEp6cq7.js";var v=e(),y=`/skills`,b=new Set([`/plugins`,`/apps`]);function x(){let{t:e}=r(`openhands`),{active:t}=i(),{backend:n}=t,g=!s(n)&&n.kind===`cloud`;return(0,v.jsxs)(`div`,{"data-testid":`extensions-mobile-hub`,className:`flex flex-col gap-4 px-4 py-2 md:hidden`,children:[(0,v.jsx)(h.H2,{children:e(a.NAV$CUSTOMIZE)}),(0,v.jsx)(`nav`,{className:`flex flex-col gap-0.5`,children:c.filter(e=>!(b.has(e.to)&&g)).map(t=>{if(t.to===y&&g){let r=`${n.host.replace(/\/+$/,``)}/settings/skills`;return(0,v.jsxs)(`a`,{"data-testid":`sidebar-extensions-${t.to}`,href:r,target:`_blank`,rel:`noopener noreferrer`,className:o(d({collapsed:!1}),f.idle),children:[(0,v.jsx)(`span`,{className:u,children:t.icon}),(0,v.jsx)(`span`,{className:o(p(!1),`flex-1`),children:e(a.SIDEBAR$SKILLS_AND_PLUGINS_CLOUD_LINK)}),(0,v.jsx)(l,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]},t.to)}return(0,v.jsx)(m,{to:t.to,label:t.label,end:t.end,testId:`sidebar-extensions-${t.to}`,icon:t.icon,disabled:t.comingSoon},t.to)})}),(0,v.jsx)(`div`,{className:`pt-1`,children:(0,v.jsx)(_,{})})]})}var S=t(function(){return g(768)?(0,v.jsx)(x,{}):(0,v.jsx)(n,{to:`/mcp`,replace:!0})});export{S as default};
@@ -0,0 +1 @@
1
+ import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{i as t}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";import{t as n}from"./useTranslation-CCgUjPJF.js";import{r}from"./active-backend-context-BnH4-L8h.js";import{K as i,t as a}from"./utils-BgLSZdyy.js";import{p as o}from"./agent-server-client-options-EHB23gyx.js";import{t as s}from"./external-link-Bd7Tga-1.js";import{t as c}from"./navigation-link-Bxo3-4vo.js";import{f as l,o as u}from"./sidebar-layout-DH0E-5KW.js";import{t as d}from"./skills-B0IliMxw.js";import{t as f}from"./server-process-C9RKzd1x.js";import{t as p}from"./backend-synced-settings-badge-DLEp6cq7.js";var m=t(`blocks`,[[`path`,{d:`M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2`,key:`1ah6g2`}],[`rect`,{x:`14`,y:`2`,width:`8`,height:`8`,rx:`1`,key:`88lufb`}]]),h=e(),g=`/skills`,_=new Set([`/plugins`,`/apps`]),v=[{to:`/mcp`,label:`MCP Servers`,icon:(0,h.jsx)(f,{width:16,height:16}),end:!0},{to:`/skills`,label:`Skills`,icon:(0,h.jsx)(d,{width:16,height:16,"aria-hidden":`true`}),end:!0},{to:`/plugins`,label:`Plugins`,icon:(0,h.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,width:16,height:16,"aria-hidden":`true`,children:[(0,h.jsx)(`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}),(0,h.jsx)(`path`,{d:`m3.3 7 8.7 5 8.7-5`}),(0,h.jsx)(`path`,{d:`M12 22V12`})]}),end:!0},{to:`/apps`,label:`Apps`,icon:(0,h.jsx)(m,{width:16,height:16,"aria-hidden":`true`}),end:!0}];function y(){let{t:e}=n(`openhands`),{active:t}=r(),{backend:d}=t,f=!o(d)&&d.kind===`cloud`;return(0,h.jsxs)(`aside`,{"data-testid":`extensions-navbar-desktop`,className:`hidden md:flex md:w-[260px] md:shrink-0 md:flex-col md:gap-2 md:sticky md:top-8 md:self-start`,children:[(0,h.jsx)(`span`,{className:`px-2 text-sm font-normal text-white`,children:e(i.NAV$CUSTOMIZE)}),(0,h.jsx)(`div`,{className:`flex flex-col gap-0.5 pt-0.5`,children:v.filter(e=>!(_.has(e.to)&&f)).map(t=>{let n=t.to===g&&f,r=(0,h.jsx)(`span`,{className:`shrink-0 flex items-center justify-center`,children:t.icon}),o=(0,h.jsx)(`span`,{className:`truncate`,children:n?e(i.SIDEBAR$SKILLS_AND_PLUGINS_CLOUD_LINK):t.label}),p=t.comingSoon&&(0,h.jsx)(`span`,{className:`ml-auto shrink-0 rounded-full border border-white/20 bg-white/5 px-1.5 py-0.5 text-[10px] font-medium text-[var(--oh-text-dim)]`,children:e(i.NAV$COMING_SOON)});if(n){let e=`${d.host.replace(/\/+$/,``)}/settings/skills`;return(0,h.jsxs)(`a`,{"data-testid":`sidebar-extensions-${t.to}`,href:e,target:`_blank`,rel:`noopener noreferrer`,className:a(l(),`truncate`,u.idle),children:[r,o,(0,h.jsx)(s,{className:`ml-auto size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]},t.to)}return(0,h.jsxs)(c,{to:t.to,end:t.end,"data-testid":`sidebar-extensions-${t.to}`,className:({isActive:e})=>a(l(),`truncate`,e?u.active:u.idle),children:[r,o,p]},t.to)})}),(0,h.jsx)(`div`,{className:`px-2 pt-3`,children:(0,h.jsx)(p,{})})]})}export{y as n,v as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";var t=e(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{f as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-40UR63Gt.js";import{i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";import{t as a}from"./useQuery-DAAacS7O.js";import{t as o}from"./useTranslation-CCgUjPJF.js";import{K as s,t as c}from"./utils-BgLSZdyy.js";import{c as l,n as u}from"./agent-server-client-options-EHB23gyx.js";import{C as d,r as f}from"./messages-Bk1xhbU2.js";import{i as p}from"./cloud-funnel-analytics-D5uJ_4JE.js";import{t as m}from"./mouse-pointer-click-BXlRN92t.js";import{i as h}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js";import{c as g}from"./use-llm-configured-Dl4zg8ht.js";import{c as ee,i as _}from"./conversation-store-DC-JlJuq.js";import{w as v}from"./agent-server-conversation-service.api-jiCopc2E.js";import{t as y}from"./copy-to-clipboard-button-B1ljgNxO.js";import{rt as b,t as x,tt as S,x as C}from"./markdown-renderer-DyFl9-mL.js";import{t as w}from"./link-external-BNZzCM1I.js";import{c as T,l as E,n as D,r as O,u as k}from"./conversation-B_nweu5p.js";import{n as A,t as j}from"./get-git-path-jU2zjqIB.js";import{n as te,t as M}from"./highlighted-source-view-C7pAXrT0.js";import{t as N}from"./conversation-tab-empty-state-B3dpJXX0.js";var P=i(`list-tree`,[[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`M3 10a2 2 0 0 0 2 2h3`,key:`1npucw`}],[`path`,{d:`M3 5v12a2 2 0 0 0 2 2h3`,key:`x1gjn2`}]]),F=e(t(),1),I=n();function L(){let{t:e}=o(`openhands`);return(0,I.jsx)(N,{className:`h-full`,icon:(0,I.jsx)(m,{"aria-hidden":!0,strokeWidth:2,className:`size-full`}),children:e(s.FILES$NO_FILE_SELECTED)})}function R(){let{data:e}=S(),t=A(),n=e?.id,r=e?.conversation_url,i=e?.session_api_key,o=l().backend.kind===`local`,s=a({queryKey:[`workspace-session`,n,r,i],queryFn:async()=>({baseUrl:await new h(u({conversationUrl:r,sessionApiKey:i})).startWorkspaceSession(n)}),enabled:t&&!!n&&o,staleTime:1/0,gcTime:1/0,retry:!1});return{data:s.data??null,isLoading:s.isLoading,isError:s.isError,error:s.error??null}}function z(e,t){let n=(t??``).replace(/^\/+/,``);return n?`${e}${n.split(`/`).map(e=>encodeURIComponent(e)).join(`/`)}`:e}var B=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`ico`,`svg`,`avif`]),V=new Set([`pdf`]);function H(e){let t=e.lastIndexOf(`.`);return t===-1?``:e.slice(t+1).toLowerCase()}function U(e){switch(H(e)){case`html`:case`htm`:return`text/html`;case`css`:return`text/css`;case`js`:case`mjs`:case`cjs`:return`text/javascript`;case`json`:return`application/json`;case`md`:case`markdown`:return`text/markdown`;case`svg`:return`image/svg+xml`;case`png`:return`image/png`;case`jpg`:case`jpeg`:return`image/jpeg`;case`gif`:return`image/gif`;case`webp`:return`image/webp`;case`bmp`:return`image/bmp`;case`ico`:return`image/x-icon`;case`avif`:return`image/avif`;case`pdf`:return`application/pdf`;default:return`text/plain`}}function W(e){let t=H(e);return B.has(t)?`image`:V.has(t)?`pdf`:`text`}function G(e){let t=new Uint8Array(e,0,Math.min(e.byteLength,8e3));for(let e=0;e<t.length;e+=1)if(t[e]===0)return!0;return!1}function K(e){let t=new Uint8Array(e),n=32768,r=``;for(let e=0;e<t.length;e+=n)r+=String.fromCharCode.apply(null,t.subarray(e,e+n));return btoa(r)}function q(e){let{data:t}=S(),n=A(),{data:r}=R(),i=E(e=>e.count),o=t?.id,s=t?.conversation_url,c=t?.session_api_key,u=t?.selected_repository,d=t?.workspace?.working_dir?.trim(),f=r?.baseUrl,p=l().backend.kind===`cloud`,m=j(u,d),h=m.startsWith(`/`)?m:`/${m}`,g=e?`${h}/${e}`:null;return a({queryKey:[`workspace-file-content`,o,s,c,p?`cloud`:f,e,g,i],queryFn:async()=>{if(!e)throw Error(`No path`);let t=W(e),n=U(e);if(p){let r=await v(o,g);if(t===`text`){let t=new TextEncoder().encode(r);return G(t.buffer)?{path:e,kind:`binary`,text:null,staticUrl:`data:application/octet-stream;base64,${K(t.buffer)}`,mimeType:`application/octet-stream`}:{path:e,kind:`text`,text:r,staticUrl:`data:${n};charset=utf-8;base64,${K(t.buffer)}`,mimeType:n}}return{path:e,kind:t,text:null,staticUrl:`data:${n};base64,${K(new TextEncoder().encode(r).buffer)}`,mimeType:n}}if(!f)throw Error(`No workspace session`);let r=z(f,e);if(t!==`text`)return{path:e,kind:t,text:null,staticUrl:r,mimeType:n};let i=await fetch(r,{credentials:`include`});if(!i.ok)throw Error(`Failed to read ${e}: ${i.status}`);let a=await i.arrayBuffer();return G(a)?{path:e,kind:`binary`,text:null,staticUrl:r,mimeType:`application/octet-stream`}:{path:e,kind:`text`,text:new TextDecoder(`utf-8`,{fatal:!1}).decode(a),staticUrl:r,mimeType:n}},enabled:n&&!!o&&!!e&&(p||!!f),retry:!1,staleTime:1e3*5,gcTime:1e3*60,meta:{disableToast:!0}})}var J=`[scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`;function Y({openPaths:e,selectedPath:t,onSelectFile:n,onCloseFile:r,isTreeVisible:i,onToggleTree:a,actions:l}){let{t:u}=o(`openhands`);return(0,I.jsxs)(`div`,{className:`flex h-[34px] shrink-0 items-stretch gap-1.5 overflow-y-hidden border-b border-[var(--oh-border)] px-2`,"data-testid":`file-quick-row`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:a,"data-testid":`file-quick-row-tree-toggle`,"aria-pressed":i,"aria-label":u(i?s.FILES$HIDE_FILE_TREE:s.FILES$SHOW_FILE_TREE),title:u(i?s.FILES$HIDE_FILE_TREE:s.FILES$SHOW_FILE_TREE),className:c(`shrink-0 self-center inline-flex items-center justify-center w-6 h-6 rounded-md cursor-pointer`,`text-[var(--oh-text-tertiary)] hover:bg-tertiary`,i&&`bg-[var(--oh-surface-raised)]`),children:(0,I.jsx)(P,{className:`w-3 h-3`,"aria-hidden":!0,strokeWidth:2})}),e.length>0?(0,I.jsx)(`div`,{role:`tablist`,"aria-label":u(s.COMMON$FILES),className:c(`flex min-h-0 min-w-0 flex-1 flex-nowrap items-stretch overflow-x-auto overflow-y-hidden overscroll-y-none`,J),children:e.map((e,i)=>{let a=t===e,o=e.split(`/`).pop()||e;return(0,I.jsxs)(`div`,{className:c(`group/file-tab relative flex shrink-0 items-stretch`,`border-r border-r-[var(--oh-border)]`,i===0&&`border-l border-l-[var(--oh-border)]`,`border-b-2 -mb-px transition-colors`,a?`border-b-white text-white`:`border-b-transparent text-[var(--oh-muted)] hover:text-white hover:border-b-white/25`),children:[(0,I.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":a,onClick:()=>n(e),title:e,"data-testid":`file-quick-row-item-${e}`,className:`flex min-w-0 max-w-[160px] items-center pl-2.5 pr-1 text-xs cursor-pointer text-inherit`,children:(0,I.jsx)(`span`,{className:`truncate`,children:o})}),(0,I.jsx)(`button`,{type:`button`,"data-testid":`file-quick-row-close-${e}`,"aria-label":u(s.FILES$CLOSE_TAB,{path:e}),title:u(s.FILES$CLOSE_TAB,{path:e}),className:c(`inline-flex items-center justify-center size-5 self-center mr-1 rounded-sm shrink-0 cursor-pointer`,`text-inherit hover:bg-white/10`,`opacity-100 transition-opacity`,`md:opacity-0 md:group-hover/file-tab:opacity-100 md:group-focus-within/file-tab:opacity-100`),onClick:()=>r(e),children:(0,I.jsx)(g,{width:10,height:10,"aria-hidden":!0})})]},e)})}):(0,I.jsx)(`div`,{className:`flex-1 min-w-0`}),l?(0,I.jsx)(`div`,{className:`ml-auto shrink-0 self-center flex items-center gap-1`,children:l}):null]})}var X=new Set([`html`,`htm`,`svg`]),Z={pptx:`PowerPoint`,ppt:`PowerPoint`,docx:`Word`,doc:`Word`,xlsx:`Excel`,xls:`Excel`};function Q(e){let t=e.lastIndexOf(`.`);return t===-1?``:e.slice(t+1).toLowerCase()}function $({path:e}){let{t}=o(`openhands`),n=Z[Q(e)];return(0,I.jsx)(`div`,{className:`flex h-full w-full items-center justify-center text-sm text-[var(--oh-muted)]`,"data-testid":n?`file-content-viewer-unsupported-document`:`file-content-viewer-binary-fallback`,children:n?t(s.FILES$UNSUPPORTED_DOCUMENT,{type:n}):t(s.FILES$BINARY_FALLBACK)})}function ne({path:e,viewMode:t}){let{t:n}=o(`openhands`),r=q(e),i=E(e=>e.count);if(r.isLoading)return(0,I.jsx)(`div`,{className:`flex h-full w-full items-center justify-center text-sm text-[var(--oh-muted)]`,children:n(s.FILES$LOADING_FILES)});if(r.isError||!r.data)return(0,I.jsx)(`div`,{className:`flex h-full w-full items-center justify-center text-sm text-[var(--oh-muted)]`,"data-testid":`file-content-viewer-error`,children:r.error?.message??n(s.FILES$LOAD_ERROR)});let{kind:a,text:c,staticUrl:l,mimeType:u}=r.data,d=k(l,i);return t===`plain`?a===`text`&&c!==null?(0,I.jsx)(M,{path:e,text:c,mimeType:u??void 0}):(0,I.jsx)($,{path:e}):a===`image`?(0,I.jsx)(`div`,{className:`flex h-full w-full items-center justify-center bg-[var(--oh-surface)] p-4`,"data-testid":`file-content-viewer-image`,children:(0,I.jsx)(`img`,{src:d,alt:e,className:`max-h-full max-w-full object-contain`})}):a===`pdf`?(0,I.jsx)(`iframe`,{title:e,src:d,"data-testid":`file-content-viewer-iframe`,className:`h-full w-full bg-white`}):a===`binary`?(0,I.jsx)($,{path:e}):u===`text/html`||X.has(Q(e))?(0,I.jsx)(`iframe`,{title:e,src:d,sandbox:`allow-same-origin`,"data-testid":`file-content-viewer-iframe`,className:`h-full w-full bg-white`}):a===`text`&&f(e)?(0,I.jsx)(`div`,{"data-testid":`file-content-viewer-markdown`,className:`h-full w-full overflow-auto bg-[var(--oh-surface)] text-white custom-scrollbar-always [--oh-scroll-fade-from:var(--oh-surface)]`,children:(0,I.jsx)(`div`,{className:`prose prose-sm prose-invert max-w-none p-6 [--tw-prose-body:#fff] [--tw-prose-bold:#fff] [--tw-prose-headings:#fff] [--tw-prose-lead:#fff] [--tw-prose-counters:#fff] [--tw-prose-quotes:#fff] [--tw-prose-quote-borders:var(--oh-border-subtle)] [--tw-prose-bullets:var(--oh-muted)] [--tw-prose-hr:var(--oh-border-subtle)] [--tw-prose-captions:var(--oh-muted)] [--tw-prose-kbd:#fff]`,children:(0,I.jsx)(x,{content:c??``,includeStandard:!0,includeHeadings:!0})})}):a===`text`&&c!==null?(0,I.jsx)(M,{path:e,text:c,mimeType:u??void 0}):(0,I.jsx)($,{path:e})}function re({path:e}){let{t}=o(`openhands`),[n,r]=F.useState(!1),i=e?.trim();return F.useEffect(()=>{if(!n)return;let e=window.setTimeout(()=>r(!1),2e3);return()=>window.clearTimeout(e)},[n]),i?(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 border-b border-[var(--oh-border)] px-3 py-1.5 text-xs`,"data-testid":`files-tab-workspace-path`,children:[(0,I.jsxs)(`span`,{className:`shrink-0 text-[var(--oh-muted)]`,children:[t(s.WORKSPACE$TITLE),`:`]}),(0,I.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono`,"data-testid":`files-tab-workspace-path-value`,title:i,children:i}),(0,I.jsx)(y,{isHidden:!1,isDisabled:n,onClick:async()=>{await navigator.clipboard.writeText(i),r(!0)},mode:n?`copied`:`copy`})]}):null}var ie=`files-tab-tree-width`,ae=e=>(0,I.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 13 15`,fill:`none`,...e,children:(0,I.jsx)(`path`,{d:`M6.59467 0.21967C6.88756 -0.0732233 7.36244 -0.0732233 7.65533 0.21967L9.90533 2.46967C10.1982 2.76256 10.1982 3.23744 9.90533 3.53033L7.65533 5.78033C7.36244 6.07322 6.88756 6.07322 6.59467 5.78033C6.30178 5.48744 6.30178 5.01256 6.59467 4.71967L7.56434 3.75H6.375C3.71421 3.75 1.5 5.96421 1.5 8.625C1.5 11.2858 3.71421 13.5 6.375 13.5C9.03579 13.5 11.25 11.2858 11.25 8.625C11.25 8.21079 11.5858 7.875 12 7.875C12.4142 7.875 12.75 8.21079 12.75 8.625C12.75 12.1142 9.86421 15 6.375 15C2.88579 15 0 12.1142 0 8.625C0 5.13579 2.88579 2.25 6.375 2.25H7.56434L6.59467 1.28033C6.30178 0.987437 6.30178 0.512563 6.59467 0.21967Z`,fill:`currentColor`})});function oe(){let{t:e}=o(`openhands`);T();let{data:t}=S(),n=t?.workspace?.working_dir,{conversationId:i}=b(),{state:a,setFilesTabContentViewMode:c,setFilesTabTreeVisible:l}=ee(i??``),u=a.filesTabContentViewMode,f=a.filesTabTreeVisible??!0,m=(0,F.useCallback)(()=>{l?.(!f)},[f,l]),h=(0,F.useRef)(null),{drawerWidth:g,isDragging:v,handleMouseDown:y}=D({containerRef:h,defaultWidth:224,minWidth:160,maxWidth:480,storageKey:ie,enabled:f,edge:`left`}),x=d(),A=(0,F.useMemo)(()=>x.data??[],[x.data]),j=C(e=>e.selectedPath),M=C(e=>e.selectedConversationId),N=C(e=>e.openPaths),P=C(e=>e.setSelectedPath),R=C(e=>e.closeOpenPath),z=C(e=>e.hydrateForConversation),B=M===i?j:null,V=M===i?N:[],H=(0,F.useCallback)(e=>P(e,i),[i,P]),U=q(B),W=E(e=>e.count),G=k(U.data?.staticUrl??null,W);(0,F.useEffect)(()=>{if(!i||M===i)return;let e=_(i);z(i,e.filesTabOpenPaths??[],e.filesTabSelectedPath??null)},[i,M,z]);let K=r(),[J,X]=(0,F.useState)(!1),Z=(0,I.jsx)(`button`,{type:`button`,onClick:async()=>{X(!0);try{await Promise.all([K.invalidateQueries({queryKey:[`workspace-files`]}),K.invalidateQueries({queryKey:[`workspace-file-content`]})])}finally{X(!1)}},disabled:J,"aria-label":e(s.FILES$REFRESH),title:e(s.FILES$REFRESH),"data-testid":`files-tab-refresh`,className:`flex items-center justify-center w-[26px] py-1 rounded-[7px] hover:enabled:bg-[var(--oh-interactive-hover)] cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed`,children:(0,I.jsx)(ae,{width:12.75,height:15,color:`#ffffff`,className:J?`animate-spin`:``})});return(0,I.jsxs)(`main`,{className:`h-full w-full flex flex-col items-stretch`,"data-testid":`files-tab`,children:[(0,I.jsx)(re,{path:n}),x.isLoading?(0,I.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-[var(--oh-muted)]`,children:e(s.FILES$LOADING_FILES)}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Y,{openPaths:V,selectedPath:B,onSelectFile:H,onCloseFile:R,isTreeVisible:f,onToggleTree:m,actions:Z}),(0,I.jsxs)(`div`,{ref:h,className:`flex h-full min-h-0 flex-1`,children:[f&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`aside`,{className:`shrink-0 border-r border-[var(--oh-border)] overflow-y-auto custom-scrollbar-always`,"data-testid":`files-tab-tree`,style:{width:`${g}px`},children:(0,I.jsx)(te,{paths:A,selectedPath:B,onSelectFile:H})}),(0,I.jsx)(O,{testId:`files-tab-tree-resize-handle`,onMouseDown:y,isDragging:v})]}),(0,I.jsx)(`section`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col`,"data-testid":`files-tab-content`,children:B?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-1.5 border-b border-[var(--oh-border)]`,children:[(0,I.jsx)(p,{ariaLabel:e(s.FILES$RICH),testId:`files-tab-content-mode-toggle`,value:u,options:[{value:`rich`,label:e(s.FILES$RICH)},{value:`plain`,label:e(s.FILES$PLAIN)}],onChange:c}),G?(0,I.jsx)(`a`,{href:G,target:`_blank`,rel:`noopener noreferrer`,"aria-label":e(s.FILES$OPEN_IN_NEW_WINDOW),title:e(s.FILES$OPEN_IN_NEW_WINDOW),"data-testid":`files-tab-open-in-new-window`,className:`ml-auto flex items-center justify-center w-[26px] py-1 rounded-[7px] hover:bg-[var(--oh-interactive-hover)] cursor-pointer text-white`,children:(0,I.jsx)(w,{width:14,height:14})}):null]}),(0,I.jsx)(ne,{path:B,viewMode:u})]}):(0,I.jsx)(L,{})})]})]})]})}export{oe as default};
@@ -1 +1 @@
1
- import{t as e}from"./utils-CN5ZfZy1.js";var t=`h-9 min-h-9`,n=`rounded-lg`,r=`border border-[var(--oh-border)]`,i=`bg-base-secondary`,a=`duration-75`,o=`!duration-75`,s=`motion-reduce:transition-none`,c=e(`transition-[background-color,border-color,box-shadow,opacity]`,a,s),l=e(`!transition-[background-color,border-color,box-shadow,opacity]`,o,s),u=e(`transition-[transform] ease`,a,s),d=`hover:text-white hover:bg-white/10`,f=e(`inline-flex items-center gap-1 rounded-[100px] border border-transparent px-1.5`,`text-sm font-normal leading-5 text-[var(--oh-muted)] whitespace-nowrap min-w-0 cursor-pointer`,c,d),p=e(`flex items-center justify-center rounded-full text-[var(--oh-muted)] cursor-pointer`,c,d),m=`focus:border-white/40 focus:ring-1 focus:ring-white/20 focus:outline-none`,h=`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,g=`disabled:cursor-not-allowed disabled:opacity-60`,_=e(t,n,r,i,c,m,g,`w-full min-w-0 px-3 text-sm text-white placeholder:text-tertiary-alt`),v=e(_,`placeholder:italic`,l),y=e(n,r,i,c,m,g,`w-full min-w-0 px-3 py-2 text-sm text-white placeholder:text-tertiary-alt`),b=e(t,`relative flex min-w-0 items-center`,n,r,i,c,h),x=e(`min-w-0 flex-1 border-0 bg-transparent px-3 text-sm outline-none`,`placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`),S=e(t,`inline-flex w-fit cursor-pointer items-center justify-center gap-2 px-3`,n,c,`text-sm font-normal disabled:cursor-not-allowed disabled:opacity-30`),C=`pl-12`;e(S,r,i,`shrink-0 text-white`);var w=e(`inline-flex items-center gap-2 self-start rounded-lg p-2`,`text-sm font-normal leading-5 text-[var(--oh-muted)] cursor-pointer`,c,`hover:bg-tertiary hover:text-white`);export{c as _,S as a,x as c,n as d,v as f,u as g,C as h,r as i,y as l,i as m,f as n,g as o,b as p,w as r,_ as s,p as t,d as u};
1
+ import{t as e}from"./utils-BgLSZdyy.js";var t=`h-9 min-h-9`,n=`rounded-lg`,r=`border border-[var(--oh-border)]`,i=`bg-base-secondary`,a=`duration-75`,o=`!duration-75`,s=`motion-reduce:transition-none`,c=e(`transition-[background-color,border-color,box-shadow,opacity]`,a,s),l=e(`!transition-[background-color,border-color,box-shadow,opacity]`,o,s),u=e(`transition-[transform] ease`,a,s),d=`hover:text-white hover:bg-white/10`,f=e(`inline-flex items-center gap-1 rounded-[100px] border border-transparent px-1.5`,`text-sm font-normal leading-5 text-[var(--oh-muted)] whitespace-nowrap min-w-0 cursor-pointer`,c,d),p=e(`flex items-center justify-center rounded-full text-[var(--oh-muted)] cursor-pointer`,c,d),m=`focus:border-white/40 focus:ring-1 focus:ring-white/20 focus:outline-none`,h=`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,g=`disabled:cursor-not-allowed disabled:opacity-60`,_=e(t,n,r,i,c,m,g,`w-full min-w-0 px-3 text-sm text-white placeholder:text-tertiary-alt`),v=e(_,`placeholder:italic`,l),y=e(n,r,i,c,m,g,`w-full min-w-0 px-3 py-2 text-sm text-white placeholder:text-tertiary-alt`),b=e(t,`relative flex min-w-0 items-center`,n,r,i,c,h),x=e(`min-w-0 flex-1 border-0 bg-transparent px-3 text-sm outline-none`,`placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`),S=e(t,`inline-flex w-fit cursor-pointer items-center justify-center gap-2 px-3`,n,c,`text-sm font-normal disabled:cursor-not-allowed disabled:opacity-30`),C=`pl-12`;e(S,r,i,`shrink-0 text-white`);var w=e(`inline-flex items-center gap-2 self-start rounded-lg p-2`,`text-sm font-normal leading-5 text-[var(--oh-muted)] cursor-pointer`,c,`hover:bg-tertiary hover:text-white`);export{c as _,S as a,x as c,n as d,v as f,u as g,C as h,r as i,y as l,i as m,f as n,g as o,b as p,w as r,_ as s,p as t,d as u};
@@ -0,0 +1 @@
1
+ var e=`Free`,t=` (free)`,n={"openhands/deepseek-v4-flash":`OpenHands DeepSeek V4 Flash`},r=new Set,i=e=>!!e?.startsWith(`openhands/`),a=(e,t=r)=>!!(e&&t.has(e));function o(e,n){return n?`${e}${t}`:e}function s(e,t=r){return e?o(e,a(e,t)):null}function c(e,t=r){if(!e)return null;let n=a(e,t);return o(e.split(`/`).pop()||e,n)}function l(e,t=r){return e?o(e in n?n[e]:e,a(e,t)):null}export{a,c as i,s as n,i as o,l as r,e as t};
@@ -0,0 +1 @@
1
+ import{A as e,j as t,w as n}from"./utils-BgLSZdyy.js";import{t as r}from"./agent-server-config-C_x8Otd9.js";import{$ as i,tt as a}from"./markdown-renderer-DyFl9-mL.js";var o=({allowAgentError:r=!1}={})=>{let{data:o}=a(),{curAgentState:s}=i(),c=r?t:e;return n(o?.execution_status)&&!c.includes(s)};function s(e,t){let n=t?.trim();if(n)return n;if(!e)return r;let i=e.split(`/`);return`${r}/${i[i.length-1]}`}export{o as n,s as t};
@@ -0,0 +1 @@
1
+ import"./git-repo-dropdown-uxlFw2gn.js";
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useTranslation-CCgUjPJF.js";import{K as i,t as a}from"./utils-BgLSZdyy.js";import{s as o}from"./form-control-classes-Dbq-7YP_.js";import{t as s}from"./vendor~root-layout~index-home~home~conversation-panel~conversation~automation-setup-route-CjECvSl5.js";import{c,i as l,r as u,u as d}from"./dropdown-classes-BGvOvW2_.js";import{i as f,n as p}from"./settings-dropdown-input-DBvsZ7-Q.js";import{a as m,c as h,i as g,n as _,r as v,t as y}from"./home-store-DCbei3DX.js";import{r as b}from"./typography-DgcLGdHk.js";var x=e(t(),1),S=n();function C({disabled:e,onClear:t,testId:n=`dropdown-clear`}){let{t:o}=r(`openhands`);return(0,S.jsx)(`button`,{onClick:e=>{e.stopPropagation(),t()},disabled:e,className:a(`p-1 text-[#fff]`,`cursor-pointer disabled:cursor-not-allowed disabled:opacity-60`),type:`button`,"aria-label":o(i.COMMON$CLEAR_SELECTION),"data-testid":n,children:(0,S.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,S.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})})}function w({isOpen:e,disabled:t,getToggleButtonProps:n,iconClassName:o}){let{t:s}=r(`openhands`);return(0,S.jsx)(`button`,{...n({disabled:t,className:a(f,`text-current`,e&&`rotate-180`,t&&`cursor-not-allowed opacity-60`)}),type:`button`,"aria-label":s(i.COMMON$TOGGLE_MENU),children:(0,S.jsx)(p,{className:o})})}function T({item:e,index:t,isSelected:n,getItemProps:r,getDisplayText:i,getItemKey:o,isProviderDropdown:s=!1,renderIcon:l,itemClassName:f,ariaLabel:p}){return(0,S.jsx)(`li`,{...r({index:t,item:e,...p?{"aria-label":p}:{},className:a(s?`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`,u,{"bg-[var(--oh-interactive-selected)] text-white":n,"hover:bg-[var(--oh-interactive-hover)]":!n},f)}),children:(0,S.jsxs)(`div`,{className:a(`flex items-center`,c),children:[l?(0,S.jsx)(`span`,{className:d,children:l(e)}):null,(0,S.jsx)(`span`,{className:`font-normal`,children:i(e)})]})},o(e))}function E({inputValue:e,searchMessage:t=`No items found`,emptyMessage:n=`No items available`,testId:r=`dropdown-empty`}){return(0,S.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 D({isOpen:e,filteredItems:t,inputValue:n,highlightedIndex:r,selectedItem:i,getMenuProps:o,getItemProps:s,onScroll:c,menuRef:u,renderItem:d,renderItemPrefix:f,renderEmptyState:p,stickyTopItem:m,stickyFooterItem:h,testId:g,numberOfRecentItems:_=0,itemKey:v}){let y=!(t.length>0)&&!m&&!h;return e?(0,S.jsx)(`div`,{className:`relative`,children:(0,S.jsxs)(`div`,{className:a(`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,S.jsx)(`ul`,{...o({ref:u,className:a(`w-full overflow-auto p-1 custom-scrollbar-always`,l,m||h?`max-h-[calc(15rem-3rem)]`:`max-h-60`),onScroll:c,"data-testid":g}),children:y?p(n):(0,S.jsxs)(S.Fragment,{children:[m,t.map((e,t)=>{let n=v(e);return(0,S.jsxs)(x.Fragment,{children:[f?.(e,t),d(e,t,r,i,s),_>0&&t===_-1&&(0,S.jsx)(`li`,{role:`presentation`,"aria-hidden":`true`,className:`border-b border-[var(--oh-border-input)] bg-tertiary pb-1 mb-1 h-[1px]`})]},n)})]})}),h&&(0,S.jsx)(`div`,{className:`border-t border-[var(--oh-border-input)] bg-tertiary p-1 rounded-b-lg`,children:h})]})}):(0,S.jsx)(`div`,{className:`relative`,children:(0,S.jsx)(`ul`,{...o({ref:u,className:`hidden`,"data-testid":g})})})}function O({isError:e,message:t=`Failed to load data`,testId:n=`dropdown-error`}){return e?(0,S.jsx)(`div`,{className:`text-red-500 text-sm mt-1`,"data-testid":n,children:t}):null}function k(e,t){let[n,r]=(0,x.useState)([]),[i,a]=(0,x.useState)(!1);return(0,x.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 m.searchGitRepositories(e,t,3)).items)}catch{r([])}finally{a(!1)}}else r([])}else r([])})()},[e,t]),{urlSearchResults:n,isUrlSearchLoading:i}}function ee(e,t,n,r,i,a,o){let{data:s,fetchNextPage:c,hasNextPage:l,isLoading:u,isFetchingNextPage:d,isError:f}=g({provider:e,enabled:!t}),{data:p,isLoading:m}=v(n,e,(0,x.useMemo)(()=>i===o,[o,i])),h=(0,x.useMemo)(()=>s?.pages?.flatMap(e=>e.items)||[],[s]),_=(0,x.useMemo)(()=>a&&[...h,...r,...p||[]].find(e=>e.id===a)||null,[h,r,p,a]),y=(0,x.useMemo)(()=>r.length>0?r:n&&p&&i!==_?.full_name?p:h,[r,n,p,h,_,i]);return(0,x.useEffect)(()=>{!t&&!u&&!d&&!m&&l&&!n&&r.length===0&&y.length>0&&y.length<10&&c()},[t,u,d,m,l,n,r.length,y.length,c]),{repositories:y,allRepositories:h,selectedRepository:_,fetchNextPage:c,hasNextPage:l,isLoading:u,isFetchingNextPage:d,isError:f,isSearchLoading:m}}function A({provider:e,value:t,repositoryName:n,placeholder:c,className:l,disabled:u=!1,onChange:d}){let{t:f}=r(`openhands`),{recentRepositories:p}=y(),[m,g]=(0,x.useState)(``),[v,A]=(0,x.useState)(null),j=_(m,300),M=(0,x.useRef)(null),N=(0,x.useMemo)(()=>{if(j.startsWith(`https://`)){let e=j.match(/https:\/\/[^/]+\/([^/]+\/[^/]+)/);return e?e[1]:j}return j},[j]),{urlSearchResults:P,isUrlSearchLoading:te}=k(m,e),{repositories:F,selectedRepository:I,fetchNextPage:L,hasNextPage:R,isLoading:z,isFetchingNextPage:B,isError:V,isSearchLoading:H}=ee(e,u,N,P,m,t,n),U=I??v,W=(0,x.useMemo)(()=>{let t=p.filter(t=>t.git_provider===e);if(!m?.trim())return t;let n=m.startsWith(`https://`)?N:m;return t.filter(e=>e.full_name.toLowerCase().includes(n.toLowerCase()))},[p,e,m,N]),G=(0,x.useCallback)(e=>{let t=new Set(W.map(e=>e.id)),n=e.filter(e=>!t.has(e.id));return[...W,...n]},[W]),K=(0,x.useMemo)(()=>{let e;if(P.length>0)e=F;else if(m===I?.full_name)e=F;else if(!m?.trim())e=F;else{let t=m.startsWith(`https://`)?N:m;e=F.filter(e=>e.full_name.toLowerCase().includes(t.toLowerCase()))}return G(e)},[F,m,I,P,N,G]),q=(0,x.useCallback)(e=>{A(e),d?.(e||void 0),e&&g(e.full_name)},[d]),J=(0,x.useCallback)(()=>{A(null),q(null),g(``)},[q]),Y=(0,x.useCallback)(e=>{let{scrollTop:t,scrollHeight:n,clientHeight:r}=e.currentTarget;t+r>=n-10&&R&&!B&&L()},[R,B,L]),{isOpen:X,getToggleButtonProps:Z,getMenuProps:ne,getInputProps:re,highlightedIndex:ie,getItemProps:Q,selectedItem:$}=s({items:K,itemToString:e=>e?.full_name||``,selectedItem:v,onSelectedItemChange:({selectedItem:e})=>{q(e)},inputValue:m,stateReducer:(e,t)=>t.type===s.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes});(0,x.useEffect)(()=>{I?A(I):t===null&&A(null)},[I,t]),(0,x.useEffect)(()=>{X||g(U?.full_name??``)},[U,X]);let ae=z||H||B||te,oe=(e,t,n,r,i)=>(0,S.jsx)(T,{item:e,index:t,isSelected:r?.id===e.id,getItemProps:i,getDisplayText:e=>e.full_name,getItemKey:e=>e.id},e.id),se=e=>(0,S.jsx)(E,{inputValue:e,searchMessage:f(i.HOME$NO_REPOSITORY_FOUND),emptyMessage:f(i.COMMON$NO_REPOSITORY),testId:`git-repo-dropdown-empty`}),ce=(0,x.useMemo)(()=>W.length===0?null:(0,S.jsx)(`div`,{children:(0,S.jsx)(b.Text,{className:`text-xs text-content-2 font-semibold leading-4 pl-2`,children:f(i.COMMON$MOST_RECENT)})}),[W,v,Q,f]);return(0,S.jsxs)(`div`,{className:a(`relative`,l),children:[(0,S.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[(0,S.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:ae?(0,S.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-transparent border-t-white rounded-full`}):(0,S.jsx)(h,{width:16,height:16})}),(0,S.jsx)(`input`,{...re({disabled:u,placeholder:c??f(i.COMMON$SEARCH_REPOSITORIES_PLACEHOLDER),className:a(o,`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=>{g(e.target.value)}}),"data-testid":`git-repo-dropdown`}),(0,S.jsxs)(`div`,{className:`absolute right-1 top-1/2 transform -translate-y-1/2 flex items-center`,children:[U&&(0,S.jsx)(C,{disabled:u,onClear:J}),(0,S.jsx)(w,{isOpen:X,disabled:u,getToggleButtonProps:Z})]})]}),(0,S.jsx)(D,{isOpen:X,filteredItems:K,inputValue:m,highlightedIndex:ie,selectedItem:$,getMenuProps:ne,getItemProps:Q,onScroll:Y,menuRef:M,renderItem:oe,renderEmptyState:se,stickyTopItem:ce,testId:`git-repo-dropdown-menu`,numberOfRecentItems:W.length,itemKey:e=>e.id}),(0,S.jsx)(O,{isError:V})]})}export{T as a,E as i,O as n,w as o,D as r,C as s,A as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useTranslation-CCgUjPJF.js";import{K as i,t as a}from"./utils-BgLSZdyy.js";import{t as o}from"./chevron-down-Cr6Fn_wS.js";import{t as s}from"./chevron-right-CfdfRn-8.js";import{ot as c,st as l}from"./vendor-markdown-j0kYzV48.js";import{t as u}from"./folder-C1ou4_DT.js";import{t as d}from"./syntax-highlighter-BGDg_7w9.js";var f=e(t(),1);function p(e){e.children.sort((e,t)=>e.isDirectory===t.isDirectory?e.name.localeCompare(t.name):e.isDirectory?-1:1);for(let t of e.children)t.isDirectory&&p(t)}function m(e,t,n,r,i){let a=t.get(e);a||(a=new Map,t.set(e,a));let o=a.get(n);if(o)return!i&&!o.isDirectory&&(o.isDirectory=!0),o;let s={name:n,path:r,isDirectory:!i,children:[]};return e.children.push(s),a.set(n,s),s}function h(e){let t={name:``,path:``,isDirectory:!0,children:[]},n=new Map;for(let r of e){let e=r.split(`/`).filter(Boolean);if(e.length>0){let r=t,i=``;for(let t=0;t<e.length;t+=1){let a=e[t];i=i?`${i}/${a}`:a;let o=t===e.length-1;r=m(r,n,a,i,o)}}}return p(t),t}var g=n();function _({node:e,depth:t,selectedPath:n,onSelectFile:r}){let[i,c]=(0,f.useState)(!1),l=8+t*12;if(e.isDirectory)return(0,g.jsxs)(`li`,{children:[(0,g.jsxs)(`button`,{type:`button`,onClick:()=>c(e=>!e),"aria-expanded":i,"data-testid":`file-tree-dir-${e.path}`,className:a(`flex w-full items-center gap-1.5 py-1 pr-2 text-left text-sm text-white`,`hover:bg-tertiary cursor-pointer`),style:{paddingLeft:`${l}px`},children:[(0,g.jsx)(`span`,{"aria-hidden":!0,className:`inline-flex w-3.5 shrink-0 items-center justify-center text-[var(--oh-muted)]`,children:i?(0,g.jsx)(o,{className:`w-3.5 h-3.5`}):(0,g.jsx)(s,{className:`w-3.5 h-3.5`})}),(0,g.jsx)(u,{className:`w-3.5 h-3.5 shrink-0`}),(0,g.jsx)(`span`,{className:`truncate`,children:e.name})]}),i&&e.children.length>0&&(0,g.jsx)(`ul`,{children:e.children.map(e=>(0,g.jsx)(_,{node:e,depth:t+1,selectedPath:n,onSelectFile:r},e.path))})]});let p=n===e.path;return(0,g.jsx)(`li`,{children:(0,g.jsxs)(`button`,{type:`button`,onClick:()=>r(e.path),"data-testid":`file-tree-file-${e.path}`,className:a(`flex w-full items-center gap-1.5 py-1 pr-2 text-left text-sm`,`hover:bg-tertiary cursor-pointer`,p?`bg-[var(--oh-interactive-hover)] text-white`:`text-[var(--oh-text-tertiary)]`),style:{paddingLeft:`${l+16}px`},children:[(0,g.jsx)(d,{className:`w-3.5 h-3.5 shrink-0`}),(0,g.jsx)(`span`,{className:`truncate`,children:e.name})]})})}function v({paths:e,selectedPath:t,onSelectFile:n}){let{t:a}=r(`openhands`),o=(0,f.useMemo)(()=>h(e),[e]);return o.children.length===0?(0,g.jsx)(`div`,{className:`px-3 py-4 text-sm text-[var(--oh-muted)]`,children:a(i.FILES$NO_FILES)}):(0,g.jsx)(`ul`,{className:`py-1 custom-scrollbar-always`,"data-testid":`file-tree-view`,children:o.children.map(e=>(0,g.jsx)(_,{node:e,depth:0,selectedPath:t,onSelectFile:n},e.path))})}var y={js:`javascript`,jsx:`jsx`,mjs:`javascript`,cjs:`javascript`,ts:`typescript`,tsx:`tsx`,py:`python`,pyi:`python`,pyw:`python`,html:`markup`,htm:`markup`,svg:`markup`,xml:`markup`,css:`css`,scss:`scss`,sass:`sass`,less:`less`,json:`json`,json5:`json5`,yaml:`yaml`,yml:`yaml`,toml:`toml`,ini:`ini`,cfg:`ini`,properties:`properties`,conf:`ini`,env:`bash`,md:`markdown`,markdown:`markdown`,mdx:`markdown`,sh:`bash`,bash:`bash`,zsh:`bash`,fish:`bash`,bat:`batch`,cmd:`batch`,ps1:`powershell`,ps:`powershell`,c:`c`,h:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,hpp:`cpp`,hh:`cpp`,cs:`csharp`,java:`java`,kt:`kotlin`,kts:`kotlin`,scala:`scala`,rs:`rust`,go:`go`,rb:`ruby`,php:`php`,swift:`swift`,m:`objectivec`,mm:`objectivec`,hs:`haskell`,ex:`elixir`,exs:`elixir`,erl:`erlang`,fs:`fsharp`,fsx:`fsharp`,ml:`ocaml`,mli:`ocaml`,clj:`clojure`,cljs:`clojure`,cljc:`clojure`,lua:`lua`,pl:`perl`,pm:`perl`,r:`r`,jl:`julia`,dart:`dart`,groovy:`groovy`,gradle:`groovy`,tf:`hcl`,hcl:`hcl`,dockerfile:`docker`,sql:`sql`,graphql:`graphql`,gql:`graphql`,proto:`protobuf`,diff:`diff`,patch:`diff`,nix:`nix`,sol:`solidity`},b={dockerfile:`docker`,makefile:`makefile`,gnumakefile:`makefile`,".bashrc":`bash`,".zshrc":`bash`,".profile":`bash`,".env":`bash`,".gitignore":`bash`,".dockerignore":`bash`};function x(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`)),n=e.slice(t+1),r=n.lastIndexOf(`.`);return r<=0?``:n.slice(r+1).toLowerCase()}function S(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return e.slice(t+1).toLowerCase()}function C(e,t){let n=b[S(e)];if(n)return n;let r=x(e);if(r&&y[r])return y[r];if(t){if(t===`text/html`)return`markup`;if(t===`text/css`)return`css`;if(t===`application/json`)return`json`;if(t===`text/markdown`)return`markdown`;if(t===`application/javascript`||t===`text/javascript`)return`javascript`;if(t===`application/x-yaml`||t===`text/yaml`)return`yaml`}return null}function w({path:e,text:t,mimeType:n}){let r=C(e,n);return r?(0,g.jsx)(`div`,{"data-testid":`file-content-viewer-highlighted`,"data-language":r,className:`h-full w-full overflow-auto bg-[var(--oh-surface)] custom-scrollbar-always`,children:(0,g.jsx)(c,{language:r,style:l,showLineNumbers:!0,wrapLongLines:!1,customStyle:{margin:0,padding:`1rem`,background:`transparent`,fontSize:`0.75rem`,lineHeight:`1.25rem`,minHeight:`100%`},codeTagProps:{style:{background:`transparent`,fontFamily:`inherit`}},lineNumberStyle:{color:`var(--oh-border)`,minWidth:`2.5em`,paddingRight:`1em`,userSelect:`none`},children:t})}):(0,g.jsx)(`pre`,{"data-testid":`file-content-viewer-plain`,className:`h-full w-full overflow-auto whitespace-pre-wrap break-words bg-[var(--oh-surface)] p-4 text-xs leading-5 text-white custom-scrollbar-always`,children:t})}export{v as n,w as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./home-Ivfm7KC4.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,bt as n,i as r,yt as i}from"./vendor-styling-Ck5D_A2Q.js";import{F as a,U as o}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js";import{i as s,n as c}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";import{i as l,r as u,t as d}from"./recommended-automations-launcher-DEHRKIAg.js";import{t as f}from"./useTranslation-CCgUjPJF.js";import{n as p,ot as m,st as h}from"./active-backend-context-BnH4-L8h.js";import{K as g,t as _}from"./utils-BgLSZdyy.js";import{t as v}from"./chevron-down-Cr6Fn_wS.js";import{b as y,i as b,n as x,o as S,r as C,s as w,t as T,u as E}from"./kebab-menu-item-content-SCJBwZnp.js";import{t as D}from"./external-link-Bd7Tga-1.js";import{A as O,C as k,D as A,E as j,F as M,M as N,N as P,O as F,S as I,T as L,a as R,b as z,f as B,i as V,j as ee,k as H,n as te,o as U,p as ne,r as W,s as re,t as ie,u as ae,v as oe,w as se,x as ce,y as le}from"./home-automation-run-tooltip-B1N2uO9p.js";import{n as ue,t as de}from"./vendor~root-layout~index-home~home~conversation-panel~conversation-BGGbPcYh.js";import{a as fe,c as pe,d as me,f as he,i as ge,l as _e,n as ve,o as ye,p as be,r as xe,s as Se,t as Ce,u as we}from"./onboarding-DXFBRqEy.js";import{t as Te}from"./pin-BdroVQdN.js";import{t as Ee}from"./plus-C2e21TFC.js";import{n as De,t as Oe}from"./x-CX8lVGwm.js";import{n as ke,r as Ae,t as je}from"./context-menu-list-item-Cm7-7Y-7.js";import{D as Me}from"./use-tracking-j4uo9VEW.js";import{t as Ne}from"./modal-backdrop-BSzNhM4r.js";import{n as Pe,r as Fe,t as Ie}from"./modal-body-C24WsdFb.js";import{r as Le}from"./base-modal-C1a0TsSx.js";import{r as Re}from"./modal-classes-B0b9eiL8.js";import{_ as ze,i as Be,m as Ve,s as He}from"./form-control-classes-Dbq-7YP_.js";import{t as Ue}from"./brand-button-CUMfjb99.js";import{n as We}from"./navigation-context-CQZwH_tC.js";import{t as G}from"./navigation-link-Bxo3-4vo.js";import{t as Ge}from"./vendor~root-layout~index-home~home~conversation-panel~conversation~automation-setup-route-CjECvSl5.js";import{t as Ke}from"./styled-tooltip-CejG0rqv.js";import{i as qe,n as Je,o as Ye,u as Xe}from"./dropdown-classes-BGvOvW2_.js";import{t as Ze}from"./use-llm-configured-Dl4zg8ht.js";import{t as Qe}from"./conversation-store-DC-JlJuq.js";import{t as $e}from"./modal-close-button-DfqfB2Nj.js";import{o as et}from"./conversation-state-store-9D_3P7q4.js";import{t as tt}from"./use-click-outside-element-W6Os4Nlb.js";import{n as nt}from"./use-create-conversation-i_PdFdIs.js";import{n as rt}from"./use-can-manage-org-profiles-MzIeEV8F.js";import{t as it}from"./u-edit-DAkcF52u.js";import{c as at,s as ot,t as st}from"./home-store-DCbei3DX.js";import{t as ct}from"./folder-C1ou4_DT.js";import{n as lt,t as ut}from"./use-automation-health-U99vvHxx.js";import{t as K}from"./automation-C_eCrGyP.js";import{t as dt}from"./use-automations-Bq5hVuv0.js";import{t as ft}from"./use-user-conversation-5UFqMoO4.js";import{r as q}from"./typography-DgcLGdHk.js";import{a as pt,i as mt,n as ht,r as gt,t as _t}from"./extension-module-card-classes-DpeaYhYo.js";import{n as vt}from"./skill-card-pill-row-DfjIfj0K.js";import{n as yt}from"./circle-plus-check-toggle-BDX_ctNs.js";import{t as bt}from"./x-mark-BopmFoBq.js";import{H as xt,K as St,V as Ct,a as wt,c as Tt,i as Et,k as Dt,n as Ot,o as kt,q as At,r as jt,s as Mt,t as Nt,z as Pt}from"./llm-not-configured-banner-Dh_ajcM8.js";import{T as Ft}from"./markdown-renderer-DyFl9-mL.js";import{t as It}from"./use-plugins-marketplace-BIIaPiaB.js";import{t as Lt}from"./edit-automation-modal-D_JWSmxT.js";import{a as Rt,i as zt,o as Bt,r as Vt,s as Ht,t as Ut}from"./git-repo-dropdown-uxlFw2gn.js";import"./git-repo-dropdown-BoDDWXfX.js";var Wt=s(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),J=e(t(),1);async function Gt(e){let{imagesToEmbed:t}=At(e.images,e.imagesMarkedUploadAsFile),n=await Promise.all(t.map(e=>Ct(e)));Ft.getState().enqueuePendingMessage({conversationId:e.conversationId,text:e.text,content:e.text,imageUrls:n,fileUrls:[]})}var Kt=`local_repo`,qt=`openhands-last-local-workspace-mode`;function Jt(e){return e===`local_repo`||e===`new_worktree`}function Yt(){if(typeof window>`u`)return Kt;try{let e=window.localStorage.getItem(qt);return Jt(e)?e:Kt}catch{return Kt}}function Xt(e){if(!(typeof window>`u`))try{window.localStorage.setItem(qt,e)}catch{}}function Zt(e,t){return e===`new_worktree`?g.COMMON$WORKSPACE_MODE_NEW_WORKTREE:t===`cloud`?g.COMMON$WORKSPACE_MODE_CLOUD_REPO:g.COMMON$WORKSPACE_MODE_LOCAL_REPO}var Y=i();function Qt({plugin:e,isSelected:t,isDisabled:n=!1,onToggle:r}){return(0,Y.jsxs)(`div`,{"data-testid":`plugin-picker-card-${e.name}`,className:_(`flex min-w-0 items-start justify-between gap-3 rounded-lg bg-tertiary p-4`),children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`h3`,{"data-testid":`plugin-picker-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),(0,Y.jsx)(`p`,{className:`mt-0.5 min-w-0 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),e.description?(0,Y.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs text-tertiary-light`,children:e.description}):null,e.repo_path||e.ref?(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[e.repo_path?(0,Y.jsx)(`span`,{className:mt,children:e.repo_path}):null,e.ref?(0,Y.jsxs)(`span`,{className:mt,children:[`@`,e.ref]}):null]}):null]}),(0,Y.jsx)(yt,{testId:`plugin-picker-toggle-${e.name}`,isSelected:t,isDisabled:n,onToggle:r,enableLabelKey:g.BUTTON$ADD,disableLabelKey:g.COMMON$REMOVE,enableTooltipKey:g.BUTTON$ADD,disableTooltipKey:g.COMMON$REMOVE})]})}function X(e){return[e.source,e.ref??``,e.repo_path??``].join(`\0`)}function $t(e){return{source:e.source,ref:e.ref??null,repo_path:e.repo_path??null}}function en(e,t){let n=X(t);return e.some(e=>X(e)===n)}function tn(e,t){let n=X(t);return e.some(e=>X(e)===n)?e.filter(e=>X(e)!==n):[...e,$t(t)]}function nn(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description,e.source,e.repo_path,e.ref].filter(e=>typeof e==`string`&&e.length>0).some(e=>e.toLowerCase().includes(n)):!0}function rn({selected:e,onChange:t,disabled:n=!1}){let{t:r}=f(`openhands`),{data:i,isLoading:a,isError:o}=It(),[s,c]=(0,J.useState)(``),l=(i??[]).filter(e=>nn(e,s));return(0,Y.jsxs)(`div`,{"data-testid":`plugin-picker`,className:`flex w-full flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:_(`relative flex min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`transition-colors focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`),children:[(0,Y.jsx)(De,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{"data-testid":`plugin-picker-search-input`,type:`search`,value:s,onChange:e=>c(e.target.value),placeholder:r(g.PLUGINS$PICKER_SEARCH_PLACEHOLDER),"aria-label":r(g.PLUGINS$PICKER_SEARCH_PLACEHOLDER),className:_(`min-w-0 flex-1 border-0 bg-transparent outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),s?(0,Y.jsx)(`button`,{type:`button`,onClick:()=>c(``),"aria-label":r(g.MCP$SEARCH_CLEAR),className:`mr-2 cursor-pointer rounded p-1 text-tertiary-alt hover:text-white`,children:(0,Y.jsx)(Oe,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),a?(0,Y.jsx)(`p`,{"data-testid":`plugin-picker-loading`,className:`py-8 text-center text-sm text-tertiary-light`,children:r(g.PLUGINS$PICKER_LOADING)}):o?(0,Y.jsx)(`p`,{"data-testid":`plugin-picker-error`,className:`py-8 text-center text-sm text-tertiary-light`,children:r(g.PLUGINS$PICKER_ERROR)}):l.length===0?(0,Y.jsx)(`p`,{"data-testid":`plugin-picker-empty`,className:`py-8 text-center text-sm text-tertiary-light`,children:r(g.PLUGINS$PICKER_EMPTY)}):(0,Y.jsx)(`div`,{className:ht,children:(0,Y.jsx)(`div`,{className:_t,children:l.map(r=>(0,Y.jsx)(Qt,{plugin:r,isSelected:en(e,r),isDisabled:n,onToggle:()=>t(tn(e,r))},`${r.source} ${r.ref??``} ${r.repo_path??``} ${r.name}`))})})]})}function an({selected:e,onChange:t,onClose:n}){let{t:r}=f(`openhands`);return(0,Y.jsx)(Ne,{onClose:n,children:(0,Y.jsxs)(`div`,{"data-testid":`plugin-picker-modal`,className:_(`relative flex max-h-[80vh] flex-col gap-4 rounded-xl border border-[var(--oh-border)] bg-base-secondary p-6`,Fe(`lg`),Ie),children:[(0,Y.jsx)($e,{onClose:n,testId:`plugin-picker-close`}),(0,Y.jsxs)(`div`,{className:`pr-6`,children:[(0,Y.jsx)(q.H2,{children:r(g.PLUGINS$PICKER_TITLE)}),(0,Y.jsx)(q.Text,{className:`mt-1 block text-sm text-tertiary-light`,children:r(g.PLUGINS$PICKER_SUBTITLE)})]}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-y-auto custom-scrollbar`,children:(0,Y.jsx)(rn,{selected:e,onChange:t})}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-t border-[var(--oh-border-subtle)] pt-4`,children:[(0,Y.jsx)(q.Text,{className:`text-sm text-tertiary-light`,children:r(g.PLUGINS$PICKER_SELECTED_COUNT,{count:e.length})}),(0,Y.jsx)(Ue,{testId:`plugin-picker-done`,type:`button`,variant:`primary`,onClick:n,className:`px-4`,children:r(g.PLUGINS$PICKER_DONE)})]})]})})}function on({count:e,onClick:t,disabled:n=!1}){let{t:r}=f(`openhands`);return(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`open-plugin-picker`,onClick:t,disabled:n,className:_(`flex flex-row items-center gap-2 rounded-full px-2.5 py-1 text-white`,Be,Ve,ze,n?`cursor-not-allowed opacity-50`:`cursor-pointer hover:bg-surface-raised`),children:[(0,Y.jsx)(`span`,{className:`flex h-4 w-4 shrink-0 items-center justify-center`,children:(0,Y.jsx)(Dt,{width:16,height:16,className:`shrink-0`,"aria-hidden":!0})}),(0,Y.jsx)(`span`,{className:`text-sm font-normal leading-5`,children:r(g.PLUGINS$PICKER_TRIGGER)}),e>0?(0,Y.jsx)(`span`,{"data-testid":`plugin-picker-count`,className:`inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-white px-1 text-[11px] font-semibold leading-none text-black`,children:e}):null]})}var sn={latestRun:null,recentRuns:[],isLoading:!0,isError:!1};function cn(){let e=N(),{data:t,isLoading:n}=ut(),r=t?.status===`ok`,{data:i,isError:a,isLoading:o}=dt({limit:50,offset:0,enabled:!e&&r}),s=e?F:i?.automations??[],c=s.filter(e=>e.enabled).slice(0,20),l=new Set(s.map(e=>e.id)),u=e?!0:i!=null&&s.length>=i.total,d=P(e?[]:c),f=e?O:d;return e?{isBackendHealthy:!0,isHealthLoading:!1,isError:!1,isAutomationsLoading:!1,enabledAutomations:c,knownAutomationIds:l,isAutomationListComplete:u,runStates:f}:{isBackendHealthy:r,isHealthLoading:n,isError:a,isAutomationsLoading:o,enabledAutomations:c,knownAutomationIds:l,isAutomationListComplete:u,runStates:f}}var ln=`oh:home-pinned-automations`;function un(e,t){return`${ln}:${e}:${t??`-`}`}function Z(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e)typeof r!=`string`||!r||t.has(r)||(t.add(r),n.push(r));return n}function Q(e,t){let n=new Set(e),r=[];for(let e of t)n.has(e)&&(r.push(e),n.delete(e));for(let t of e)n.has(t)&&r.push(t);return r}function dn(e,t,n,r=`after`){if(t===n)return[...e];let i=e.indexOf(t),a=e.indexOf(n);if(i<0||a<0)return[...e];let o=[...e];o.splice(i,1);let s=o.indexOf(n),c=r===`before`?s:s+1;return o.splice(c,0,t),o}function fn(){let e=N(),t=p(),[n,r]=de(un(t.backend.id,t.orgId),[]),[i,a]=(0,J.useState)(null),o=(0,J.useMemo)(()=>e?i?Q(H,i):[...H]:Z(n),[e,i,n]),s=(0,J.useCallback)(e=>o.includes(e),[o]),c=(0,J.useCallback)(t=>{if(e){a(e=>{let n=e?Q(H,e):[...H];return n.includes(t)?n:[...n,t]});return}r(e=>{let n=Z(e);return n.includes(t)?n:[...n,t]})},[e,r]),l=(0,J.useCallback)(t=>{if(e){a(e=>(e?Q(H,e):[...H]).filter(e=>e!==t));return}r(e=>Z(e).filter(e=>e!==t))},[e,r]);return{pinnedIds:o,isPinned:s,pin:c,unpin:l,togglePin:(0,J.useCallback)(e=>{if(s(e)){l(e);return}c(e)},[s,c,l]),reorder:(0,J.useCallback)((t,n,i=`after`)=>{if(e){a(e=>dn(e?Q(H,e):[...H],t,n,i));return}r(e=>dn(Z(e),t,n,i))},[e,r]),pruneMissing:(0,J.useCallback)(t=>{e||r(e=>{let n=Z(e),r=n.filter(e=>t.has(e));return r.length===n.length&&r.every((e,t)=>e===n[t])?n:r})},[e,r])}}function pn({automationName:e,isOpen:t,onConfirm:n,onCancel:r}){let{t:i}=f(`openhands`);return t?(0,Y.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,Y.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:r,onKeyDown:e=>{e.key===`Escape`&&r()},role:`presentation`}),(0,Y.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`turn-off-automation-title`,className:`relative w-full max-w-sm rounded-xl border border-[var(--oh-border)] bg-[var(--oh-surface)] p-6`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:r,className:`absolute right-4 top-4 text-muted hover:text-foreground`,"aria-label":i(g.BUTTON$CLOSE),children:(0,Y.jsx)(bt,{className:`size-5`})}),(0,Y.jsx)(`h2`,{id:`turn-off-automation-title`,className:Re,children:i(g.AUTOMATIONS$TURN_OFF_CONFIRM_TITLE)}),(0,Y.jsx)(`p`,{className:`mt-2 text-sm text-muted`,children:i(g.AUTOMATIONS$TURN_OFF_CONFIRM_MESSAGE,{name:e})}),(0,Y.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:r,className:`rounded-lg border border-[var(--oh-border)] px-4 py-2 text-sm text-white hover:bg-surface-raised`,children:i(g.AUTOMATIONS$CANCEL)}),(0,Y.jsx)(`button`,{type:`button`,"data-testid":`turn-off-automation-confirm`,onClick:n,className:`rounded-lg bg-danger px-4 py-2 text-sm text-white hover:bg-danger/80`,children:i(g.AUTOMATIONS$TURN_OFF)})]})]})]}):null}function mn({automation:e,t,canManage:n,isRunPending:r,isCancelPending:i,canCancel:a,testIdPrefix:o,pinTestId:s,isPinned:c,onRunNow:l,onCancelRun:u,onView:d,onEdit:f,onTurnOff:p,onTogglePin:m}){let h=[];return n&&h.push({kind:`item`,key:`run-now`,label:t(g.AUTOMATIONS$RUN_NOW),icon:(0,Y.jsx)(C,{className:`size-4`}),onClick:l,disabled:r||!e.enabled||a,testId:`${o}-run-${e.id}`}),n&&a&&h.push({kind:`item`,key:`cancel-run`,label:t(g.AUTOMATIONS$CANCEL_RUN),icon:(0,Y.jsx)(Wt,{className:`size-3.5 fill-current`,"aria-hidden":!0}),onClick:u,disabled:i,testId:`${o}-cancel-${e.id}`}),h.push({kind:`item`,key:`view`,label:t(g.COMMON$VIEW),icon:(0,Y.jsx)(M,{className:`size-4`,"aria-hidden":!0}),onClick:d,testId:`${o}-view-${e.id}`}),n&&f&&h.push({kind:`item`,key:`edit`,label:t(g.AUTOMATIONS$EDIT),icon:(0,Y.jsx)(it,{className:`size-4`}),onClick:f,testId:`${o}-edit-${e.id}`}),n&&h.push({kind:`item`,key:`turn-off`,label:t(g.AUTOMATIONS$TURN_OFF),icon:(0,Y.jsx)(x,{className:`size-4`}),onClick:p,testId:`${o}-turn-off-${e.id}`}),h.push({kind:`separator`,key:`pin-separator`},{kind:`item`,key:`pin`,label:t(c?g.FEATURED_AUTOMATIONS$UNPIN:g.FEATURED_AUTOMATIONS$PIN),icon:(0,Y.jsx)(Te,{className:c?`size-3.5 fill-current`:`size-3.5`,"aria-hidden":`true`}),onClick:m,testId:s}),h}function hn({onUnpin:e,automation:t,...n}){return mn({...n,automation:t,testIdPrefix:`pinned-automation`,pinTestId:`unpin-automation-${t.id}`,isPinned:!0,onTogglePin:e})}var gn=e(n(),1);function _n({testId:e,panelTestId:t,ariaLabel:n,items:r,triggerClassName:i}){let[a,o]=(0,J.useState)(!1),[s,c]=(0,J.useState)(0),l=(0,J.useRef)(null),u=(0,J.useRef)([]),[,d]=(0,J.useReducer)(e=>e+1,0),f=()=>{o(!1),queueMicrotask(()=>l.current?.focus())},p=tt(f,l),m=r.map((e,t)=>e.kind===`item`&&!e.disabled?t:-1).filter(e=>e>=0);(0,J.useLayoutEffect)(()=>{if(!a)return;d(),c(m[0]??0);let e=0,t=()=>{e||=window.requestAnimationFrame(()=>{e=0,d()})};return window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0),e&&window.cancelAnimationFrame(e)}},[a]),(0,J.useEffect)(()=>{a&&u.current[s]?.focus()},[s,a]);let h=(()=>{if(!a||!l.current)return;let e=l.current.getBoundingClientRect(),t=window.innerWidth,n=window.innerHeight,i=r.reduce((e,t)=>e+(t.kind===`separator`?9:36),10),o=p.current?.getBoundingClientRect().height??i;return{position:`fixed`,...e.bottom+4+o+8>n?{bottom:n-e.top+4}:{top:e.bottom+4},right:Math.max(8,t-e.right),zIndex:1e5}})(),g=typeof document<`u`?document.body:null,_=e=>{m.length!==0&&c(m[(m.indexOf(s)+e+m.length)%m.length]??m[0])};return(0,Y.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Y.jsx)(rt,{ref:l,testId:e,ariaLabel:n,className:i,onClick:e=>{e.preventDefault(),e.stopPropagation(),o(e=>!e)}}),a&&h&&g?(0,gn.createPortal)((0,Y.jsx)(ke,{ref:p,testId:t,theme:`popover`,position:`none`,alignment:`none`,spacing:`none`,style:h,className:`min-w-40`,onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),f();return}if(e.key===`ArrowDown`){e.preventDefault(),_(1);return}e.key===`ArrowUp`&&(e.preventDefault(),_(-1))},children:r.map((e,t)=>e.kind===`separator`?(0,Y.jsx)(we,{},e.key):(0,Y.jsx)(`li`,{children:(0,Y.jsx)(je,{ref:e=>{u.current[t]=e},testId:e.testId,isDisabled:e.disabled,className:`group`,onClick:t=>{t.preventDefault(),t.stopPropagation(),!e.disabled&&(e.onClick(),f())},children:(0,Y.jsx)(T,{icon:e.icon,label:e.label})})},e.key))}),g):null]})}function vn({automation:e,runState:t,onUnpin:n,onDragStart:i,onDragOver:a,onDrop:o,onDragEnd:s,isDropTarget:c,dropPosition:l,isDragging:u}){let{t:d,i18n:p}=f(`openhands`),{latestRun:m,recentRuns:h,isLoading:v,isError:x}=t,C=ae(e,m),T=m?.conversation_id??null,O=T?ee(T):void 0,{data:k}=ft(O===void 0?T:null),M=O===void 0?k?.title??null:O,N=m?ce(m):null,P=m?.status===K.COMPLETED||m?.status===K.FAILED,F=e.trigger.schedule_human||e.trigger.type,I=(0,J.useMemo)(()=>oe(e,F),[e,F]),L=w(m?.status),R=m?y(m):null,z=R?.summary??null,H=z?j(z):null,te=z!=null&&H!=null&&A(z,H),U=(0,J.useRef)(null),W=Me()?.insights,ie=hn({automation:e,t:d,canManage:C.canManage,isRunPending:C.isRunPending,isCancelPending:C.isCancelPending,canCancel:C.canCancel,onRunNow:C.runNow,onCancelRun:C.cancelRun,onView:C.viewDetails,onEdit:C.openEdit,onTurnOff:C.requestTurnOff,onUnpin:()=>n(e.id)});return(0,Y.jsxs)(`article`,{ref:U,role:`listitem`,"data-testid":`pinned-automation-card-${e.id}`,onDragOver:t=>{t.preventDefault();let{dataTransfer:n}=t;n.dropEffect=`move`;let r=t.currentTarget.getBoundingClientRect(),i=(t.clientX-r.left)/r.width,o=(t.clientY-r.top)/r.height,s=i<.3||i>.7?i<.5?`before`:`after`:o<.5?`before`:`after`;a(e.id,s)},onDrop:t=>{t.preventDefault(),o(e.id)},onDragEnd:s,className:_(`group relative flex min-w-0 flex-col overflow-hidden p-4 text-left`,pt,gt,u&&`opacity-50`,c&&l===`before`&&`shadow-[inset_0_2px_0_0_var(--oh-focus)]`,c&&l===`after`&&`shadow-[inset_0_-2px_0_0_var(--oh-focus)]`),children:[(0,Y.jsxs)(`header`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{draggable:!0,"data-testid":`pinned-automation-drag-${e.id}`,"aria-label":d(g.FEATURED_AUTOMATIONS$REORDER_HANDLE,{name:e.name}),className:`-mx-4 -mt-4 flex cursor-grab items-center justify-between gap-3 px-4 pt-4 active:cursor-grabbing`,onDragStart:t=>{if(t.target?.closest(`[data-no-drag]`)){t.preventDefault();return}let{dataTransfer:n}=t;n.effectAllowed=`move`,n.setData(`text/plain`,e.id),U.current&&n.setDragImage(U.current,24,24),i(e.id)},onDragEnd:s,children:[(0,Y.jsx)(`span`,{role:`link`,tabIndex:0,title:d(g.FEATURED_AUTOMATIONS$VIEW_DETAILS),className:`h-8 min-w-0 flex-1 cursor-pointer truncate text-sm font-semibold leading-8 text-[var(--oh-foreground)] hover:underline focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--oh-focus)]`,onClick:()=>C.viewDetails(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),C.viewDetails())},children:e.name}),(0,Y.jsx)(`div`,{"data-no-drag":!0,className:`flex h-8 shrink-0 items-center`,children:(0,Y.jsx)(_n,{testId:`pinned-automation-menu-${e.id}`,panelTestId:`pinned-automation-menu-panel-${e.id}`,ariaLabel:d(g.FEATURED_AUTOMATIONS$ROW_MENU_LABEL,{name:e.name}),triggerClassName:`opacity-70 group-hover:opacity-100`,items:ie})})]}),e.prompt?(0,Y.jsx)(`p`,{className:`line-clamp-2 text-xs leading-relaxed text-[var(--oh-text-secondary)]`,children:e.prompt}):null]}),I.length>0||h.length>0?(0,Y.jsxs)(`div`,{className:_(`mt-3 flex items-center gap-3`,I.length>0?`justify-between`:`justify-end`),children:[I.length>0?(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(vt,{pills:I,testId:`pinned-automation-pills-${e.id}`})}):null,h.length>0?(0,Y.jsx)(V,{automationId:e.id,runs:h,testId:`pinned-automation-activity-${e.id}`}):null]}):null,(0,Y.jsxs)(`div`,{className:re,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 overflow-hidden`,children:[v?(0,Y.jsx)(`div`,{className:`h-3.5 w-3/4 animate-pulse rounded bg-surface-raised motion-reduce:animate-none`,"aria-hidden":`true`}):null,!v&&x?(0,Y.jsx)(`p`,{className:`truncate text-[var(--oh-text-secondary)]`,children:d(g.FEATURED_AUTOMATIONS$STATUS_UNAVAILABLE)}):null,!v&&!x&&!m?(0,Y.jsx)(`p`,{className:`truncate text-[var(--oh-text-secondary)]`,children:d(g.AUTOMATIONS$DETAIL$NO_RUNS)}):null,m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(b,{status:R?.badgeStatus??m.status,iconOnly:!0,showLabel:m.status===K.PENDING||m.status===K.RUNNING&&!M}),L?(0,Y.jsx)(S,{status:m.status,code:m.phase_code,label:m.phase_label,updatedAt:m.phase_updated_at}):null,H?te&&z?(0,Y.jsx)(r,{content:(0,Y.jsx)(`p`,{className:`max-w-xs whitespace-pre-wrap break-words p-2 text-xs`,children:z}),placement:`top`,closeDelay:100,disableAnimation:!1,className:`rounded-xl border border-[var(--oh-border)] bg-base-secondary p-0 text-white shadow-xl`,children:(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 cursor-default truncate text-[var(--oh-text-secondary)]`,children:H})}):(0,Y.jsx)(`p`,{className:`min-w-0 flex-1 truncate text-[var(--oh-text-secondary)]`,children:H}):null,T&&M?(0,Y.jsxs)(G,{to:`/conversations/${T}`,"aria-label":M,title:M,className:`group/conversation inline-flex min-w-0 items-center gap-1 text-[var(--oh-foreground)] hover:text-[var(--oh-text-secondary)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--oh-focus)]`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:M}),(0,Y.jsx)(D,{className:`size-3 shrink-0 opacity-0 transition-opacity group-hover/conversation:opacity-100 group-focus-visible/conversation:opacity-100`,"aria-hidden":`true`})]}):null,!T&&P?(0,Y.jsx)(`p`,{className:`min-w-0 truncate text-[var(--oh-text-secondary)]`,children:d(g.AUTOMATIONS$DETAIL$NO_CONVERSATION)}):null]}):null]}),N?(0,Y.jsx)(`span`,{className:`shrink-0 text-[var(--oh-text-secondary)]`,children:E(N,p.language,d)}):null]}),W?(0,Y.jsx)(`div`,{className:`mt-3`,children:(0,Y.jsx)(ne,{state:B(t),copy:W.stats})}):null,C.editOpen?(0,Y.jsx)(Lt,{automation:e,isOpen:C.editOpen,onClose:()=>C.setEditOpen(!1)}):null,(0,Y.jsx)(pn,{automationName:e.name,isOpen:C.turnOffConfirmOpen,onConfirm:C.confirmTurnOff,onCancel:C.cancelTurnOff})]})}function yn(){let{t:e}=f(`openhands`),{pinnedIds:t,unpin:n,reorder:r,pruneMissing:i}=fn(),{isBackendHealthy:a,isHealthLoading:o,isError:s,enabledAutomations:c,knownAutomationIds:l,isAutomationListComplete:d,runStates:p}=cn(),[m,h]=(0,J.useState)(!1),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null);(0,J.useEffect)(()=>{!d||l.size===0||i(l)},[d,l,i]);let w=new Map(c.map(e=>[e.id,e])),T=t.map(e=>w.get(e)).filter(e=>!!e);if(o||!a||s||T.length===0)return null;let E=m||T.length<=6?T:T.slice(0,6),D=T.length>6;return(0,Y.jsxs)(`section`,{"data-testid":`pinned-automations-dashboard`,"aria-label":e(g.FEATURED_AUTOMATIONS$PINNED_DASHBOARD_LABEL),className:_(`w-full`,u),children:[(0,Y.jsx)(`h2`,{className:`mb-2 text-sm font-medium text-[var(--oh-foreground)]`,children:e(g.FEATURED_AUTOMATIONS$PINNED_TITLE)}),(0,Y.jsx)(`div`,{role:`list`,className:`grid grid-cols-1 gap-3 sm:grid-cols-2`,children:E.map(e=>(0,Y.jsx)(vn,{automation:e,runState:p.get(e.id)??sn,onUnpin:n,onDragStart:y,onDragOver:(e,t)=>{x(e),C(t)},onDrop:e=>{v&&S&&r(v,e,S),y(null),x(null),C(null)},onDragEnd:()=>{y(null),x(null),C(null)},isDropTarget:b===e.id,dropPosition:b===e.id?S:null,isDragging:v===e.id},e.id))}),D?(0,Y.jsx)(`div`,{className:`mt-2 flex justify-start`,children:(0,Y.jsx)(`button`,{type:`button`,"data-testid":`pinned-automations-view-more`,onClick:()=>h(e=>!e),className:`text-xs text-[var(--oh-text-secondary)] hover:text-[var(--oh-foreground)]`,children:e(m?g.COMMON$VIEW_LESS:g.COMMON$VIEW_MORE)})}):null]})}function bn(e,t,n,r){let{latestRun:i}=t,a=i?ce(i):null,o=i?y(i):null;return{id:e.id,name:e.name,triggerSummary:L(e),status:o?.badgeStatus??null,whenLabel:a?E(a,n,r):null,conversationId:i?.conversation_id??null}}function xn(e,t){let n=t.get(e),r=n?.latestRun?.status;if(r===K.PENDING||r===K.RUNNING)return 2**53-1;let i=n?.latestRun?ce(n.latestRun):null;return i?new Date(i).getTime():0}function Sn(e,t,n,r,i){return[...e].map(e=>bn(e,t.get(e.id)??i,n,r)).sort((e,n)=>xn(n.id,t)-xn(e.id,t))}function Cn(e){return e.conversationId?`/conversations/${e.conversationId}`:`/automations/${e.id}`}function wn({item:e,automation:t,runState:n}){let{t:i}=f(`openhands`),{isPinned:a,togglePin:o}=fn(),s=ae(t,n.latestRun),c=a(e.id),l=t.trigger.type===`event`?Ae:lt,u=I(t),d=k(t),p=se(t),m=!!(u||d||p),h=m||!!e.whenLabel||!!e.status,v=le(n),y=te(n),x=mn({automation:t,t:i,canManage:s.canManage,isRunPending:s.isRunPending,isCancelPending:s.isCancelPending,canCancel:s.canCancel,testIdPrefix:`running-automation`,pinTestId:`running-automation-pin-${e.id}`,isPinned:c,onRunNow:s.runNow,onCancelRun:s.cancelRun,onView:s.viewDetails,onEdit:s.openEdit,onTurnOff:s.requestTurnOff,onTogglePin:()=>o(e.id)});return(0,Y.jsxs)(`li`,{"data-testid":`running-automation-row-${e.id}`,className:U,children:[(0,Y.jsx)(r,{content:(0,Y.jsx)(ie,{automation:t,runState:n}),placement:`top-start`,closeDelay:100,disableAnimation:!1,className:`rounded-xl border border-[var(--oh-border)] bg-base-secondary p-0 text-white shadow-xl`,children:(0,Y.jsx)(G,{to:Cn(e),"aria-label":`${e.name} ${i(y)}`,className:`flex min-w-0 flex-1 items-center justify-between gap-3 px-3 py-2.5 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--oh-focus)]`,children:(0,Y.jsxs)(`div`,{className:`grid min-w-0 flex-1 grid-cols-[auto_minmax(0,1fr)] gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`inline-flex h-5 w-2.5 shrink-0 items-center justify-center`,children:(0,Y.jsx)(W,{health:v})}),(0,Y.jsx)(`span`,{className:`truncate text-sm font-medium leading-5 text-[var(--oh-foreground)]`,children:e.name}),h?(0,Y.jsxs)(`span`,{className:`col-start-2 mt-0.5 flex min-w-0 items-center gap-1.5 text-xs leading-4 text-[var(--oh-text-secondary)]`,children:[(0,Y.jsx)(l,{className:`size-3 shrink-0`,"aria-hidden":`true`}),u?(0,Y.jsx)(`span`,{className:`truncate`,children:u}):null,d?(0,Y.jsx)(`span`,{className:`truncate`,children:d}):null,p?(0,Y.jsx)(`span`,{className:_(mt,`shrink-0 px-1.5 py-0 text-[var(--oh-text-secondary)]`),children:z(p)}):null,e.whenLabel?(0,Y.jsxs)(Y.Fragment,{children:[m?(0,Y.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:`·`}):null,(0,Y.jsx)(`span`,{className:`truncate`,children:e.whenLabel})]}):null,e.status?(0,Y.jsxs)(Y.Fragment,{children:[m||e.whenLabel?(0,Y.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:`·`}):null,(0,Y.jsx)(b,{status:e.status,compact:!0})]}):null]}):null,(0,Y.jsx)(`span`,{className:`sr-only`,children:i(y)})]})})}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 pr-1.5`,children:[(0,Y.jsx)(V,{automationId:t.id,runs:n.recentRuns,testId:`running-automation-activity-${e.id}`}),(0,Y.jsx)(_n,{testId:`running-automation-menu-${e.id}`,panelTestId:`running-automation-menu-panel-${e.id}`,ariaLabel:i(g.FEATURED_AUTOMATIONS$ROW_MENU_LABEL,{name:e.name}),triggerClassName:`opacity-70 group-hover:opacity-100`,items:x})]}),s.editOpen?(0,Y.jsx)(Lt,{automation:t,isOpen:s.editOpen,onClose:()=>s.setEditOpen(!1)}):null,(0,Y.jsx)(pn,{automationName:t.name,isOpen:s.turnOffConfirmOpen,onConfirm:s.confirmTurnOff,onCancel:s.cancelTurnOff})]})}function Tn(){let{t:e,i18n:t}=f(`openhands`),[n,r]=(0,J.useState)(!1),{isBackendHealthy:i,isHealthLoading:a,isError:o,isAutomationsLoading:s,enabledAutomations:c,runStates:l}=cn(),u=t?.language??`en`,d=(0,J.useMemo)(()=>Sn(c,l,u,e,sn),[c,l,u,e]),p=(0,J.useMemo)(()=>new Map(c.map(e=>[e.id,e])),[c]),m=n?20:10,h=d.slice(0,m),_=!n&&d.length>10,v=n&&d.length>=20;if(a||!i||o||s)return null;let y=d.length===0;return(0,Y.jsxs)(`section`,{"aria-labelledby":`running-automations-heading`,"data-testid":`running-automations-list`,className:`w-full`,children:[(0,Y.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,Y.jsx)(`h2`,{id:`running-automations-heading`,className:`text-sm font-medium text-[var(--oh-foreground)]`,children:e(g.FEATURED_AUTOMATIONS$SECTION_TITLE)}),(0,Y.jsx)(Ke,{content:e(g.FEATURED_AUTOMATIONS$MANAGE),placement:`bottom`,children:(0,Y.jsxs)(G,{to:`/automations`,"data-testid":`home-automations-manage`,"aria-label":e(g.FEATURED_AUTOMATIONS$MANAGE),className:`inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 text-xs font-medium text-[var(--oh-text-secondary)] transition-colors hover:bg-[var(--oh-interactive-hover)] hover:text-[var(--oh-foreground)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--oh-focus)]`,children:[(0,Y.jsx)(Ee,{className:`size-3`,"aria-hidden":`true`}),e(g.BUTTON$ADD)]})})]}),y?(0,Y.jsx)(`p`,{"data-testid":`running-automations-empty-hint`,className:`rounded-xl border border-[var(--oh-border-subtle)] bg-[var(--oh-surface)] px-4 py-3 text-xs text-[var(--oh-text-secondary)]`,children:e(g.FEATURED_AUTOMATIONS$EMPTY_HINT)}):(0,Y.jsx)(`ul`,{"aria-label":e(g.FEATURED_AUTOMATIONS$RECENT_GROUP_LABEL),className:R,children:h.map(e=>{let t=p.get(e.id);return t?(0,Y.jsx)(wn,{item:e,automation:t,runState:l.get(e.id)??sn},e.id):null})}),_?(0,Y.jsx)(`div`,{className:`mt-2 flex justify-start`,children:(0,Y.jsx)(`button`,{type:`button`,"data-testid":`home-automations-view-more`,onClick:()=>r(!0),className:`rounded-md px-1.5 py-0.5 text-xs font-medium text-[var(--oh-text-secondary)] transition-colors hover:bg-[var(--oh-interactive-hover)] hover:text-[var(--oh-foreground)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--oh-focus)]`,children:e(g.COMMON$VIEW_MORE)})}):null,v?(0,Y.jsx)(`div`,{className:`mt-2 flex justify-start`,children:(0,Y.jsx)(G,{to:`/automations`,"data-testid":`home-automations-view-all`,className:`rounded-md px-1.5 py-0.5 text-xs font-medium text-[var(--oh-text-secondary)] transition-colors hover:bg-[var(--oh-interactive-hover)] hover:text-[var(--oh-foreground)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--oh-focus)]`,children:e(g.FEATURED_AUTOMATIONS$VIEW_ALL)})}):null]})}function En(){let{t:e}=f(`openhands`);return(0,Y.jsx)(`div`,{className:`flex w-full items-center justify-center py-2`,children:(0,Y.jsx)(q.H1,{className:`w-full text-center leading-normal`,children:e(g.HOME$LETS_START_BUILDING)})})}function Dn({kind:e,onClick:t,disabled:n=!1,disabledTooltip:r}){let{t:i}=f(`openhands`),a=e===`local`,o=i(a?g.HOME$OPEN_WORKSPACE:g.COMMON$OPEN_REPOSITORY),s=(0,Y.jsxs)(`button`,{type:`button`,"data-testid":a?`open-workspace-button`:`open-repository-button`,onClick:t,disabled:n,className:_(`flex flex-row items-center gap-2 rounded-full px-2.5 py-1 text-white`,Be,Ve,ze,n?`cursor-not-allowed opacity-50`:`cursor-pointer hover:bg-surface-raised`),children:[(0,Y.jsx)(`span`,{className:`flex h-4 w-4 shrink-0 items-center justify-center`,children:a?(0,Y.jsx)(be,{"aria-hidden":!0,className:`h-4 w-4`,strokeWidth:2}):(0,Y.jsx)(et,{width:16,height:16,className:`shrink-0`})}),(0,Y.jsx)(`span`,{className:`text-sm font-normal leading-5`,children:o})]});return r?(0,Y.jsx)(Ke,{content:r,placement:`top`,children:(0,Y.jsx)(`span`,{className:`inline-flex`,children:s})}):s}var $=`__ungrouped__`;function On({workspaces:e,parents:t=[],value:n,placeholder:r,className:i,disabled:a=!1,disabledTooltip:o,showManage:s,onChange:c,onAddClick:l,onManageClick:u}){let{t:d}=f(`openhands`),[p,m]=(0,J.useState)(n?.name??``),h=(0,J.useRef)(null),v=(0,J.useMemo)(()=>{let t=p.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)):e},[e,p]),y=(0,J.useCallback)(e=>e.parentPath??$,[]),b=(0,J.useMemo)(()=>{let e=new Map;return t.forEach(t=>e.set(t.path,t.name)),e},[t]),{groupedWorkspaces:x,isGrouped:S,headerByFirstIndex:C,groupLabelByIndex:w}=(0,J.useMemo)(()=>{let e=[],t=new Map;v.forEach(n=>{let r=y(n);t.has(r)||(t.set(r,[]),e.push(r)),t.get(r)?.push(n)}),e.sort((e,t)=>e===$?1:t===$?-1:0);let n=e.length>1,r=[],i=new Map,a=new Map;return e.forEach(e=>{let o=e===$?d(g.HOME$WORKSPACE_GROUP_OTHER):b.get(e)||e.split(`/`).filter(Boolean).pop()||e;n&&i.set(r.length,o),(t.get(e)??[]).forEach(e=>{a.set(r.length,o),r.push(e)})}),{groupedWorkspaces:r,isGrouped:n,headerByFirstIndex:i,groupLabelByIndex:a}},[v,y,b,d]),T=(0,J.useCallback)(e=>{c(e),e&&m(e.name)},[c]),E=(0,J.useCallback)(()=>{T(null),m(``)},[T]),{isOpen:D,getToggleButtonProps:O,getMenuProps:k,getInputProps:A,highlightedIndex:j,getItemProps:M,selectedItem:N,closeMenu:P}=Ge({items:x,itemToString:e=>e?.name??``,selectedItem:n,onSelectedItemChange:({selectedItem:e})=>{T(e??null)},inputValue:p,onIsOpenChange:({isOpen:e,selectedItem:t})=>{m(e?``:t?.name??``)},stateReducer:(e,t)=>t.type===Ge.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes}),F=(e,t,n,r,i)=>(0,Y.jsx)(Rt,{item:e,index:t,isSelected:r?.id===e.id,getItemProps:i,getDisplayText:e=>e.name,getItemKey:e=>e.id,ariaLabel:S?`${w.get(t)??``}, ${e.name}`.trim():void 0},e.id),I=e=>(0,Y.jsx)(zt,{inputValue:e,searchMessage:d(g.HOME$NO_WORKSPACES),emptyMessage:d(g.HOME$NO_WORKSPACES),testId:`workspace-dropdown-empty`}),L=(0,J.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),R=(0,J.useCallback)(e=>{L(e),P(),l()},[P,l,L]),z=(0,J.useCallback)(e=>{L(e),P(),l()},[P,l,L]),B=(0,J.useCallback)(e=>{L(e),P(),u()},[P,u,L]),V=(0,J.useCallback)(e=>{L(e),P(),u()},[P,u,L]),ee=(0,J.useMemo)(()=>(0,Y.jsxs)(`div`,{className:qe,children:[(0,Y.jsx)(`button`,{type:`button`,"data-testid":`add-workspaces-button`,className:_(Je,`cursor-pointer`),onMouseDown:L,onTouchStart:L,onTouchEnd:z,onClick:R,children:d(g.HOME$ADD_WORKSPACES)}),(s??e.length>0)&&(0,Y.jsx)(`button`,{type:`button`,"data-testid":`manage-workspaces-button`,className:_(Je,`cursor-pointer`),onMouseDown:L,onTouchStart:L,onTouchEnd:V,onClick:B,children:d(g.HOME$MANAGE_WORKSPACES)})]}),[R,z,B,V,L,d,e.length,s]),H=(0,Y.jsxs)(`div`,{className:_(`relative`,i),children:[(0,Y.jsxs)(`div`,{className:`group relative text-[var(--oh-muted)] hover:text-white`,children:[(0,Y.jsx)(`div`,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 z-10`,children:(0,Y.jsx)(at,{width:16,height:16})}),(0,Y.jsx)(`input`,{...A({disabled:a,placeholder:D&&n?n.name:r??d(g.HOME$WORKSPACE_PLACEHOLDER),className:_(He,`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,Y.jsxs)(`div`,{className:`absolute right-1 top-1/2 transform -translate-y-1/2 flex items-center`,children:[n&&(0,Y.jsx)(Ht,{disabled:a,onClear:E}),(0,Y.jsx)(Bt,{isOpen:D,disabled:a,getToggleButtonProps:O})]})]}),(0,Y.jsx)(Vt,{isOpen:D,filteredItems:x,inputValue:p,highlightedIndex:j,selectedItem:N,getMenuProps:k,getItemProps:M,menuRef:h,renderItem:F,renderItemPrefix:S?(e,t)=>{let n=C.get(t);return n?(0,Y.jsx)(`li`,{role:`presentation`,"aria-hidden":`true`,"data-testid":`workspace-group-header`,className:`px-2 pt-2 pb-1 text-xs font-medium text-[var(--oh-muted)] select-none`,children:n}):null}:void 0,renderEmptyState:I,stickyFooterItem:ee,testId:`workspace-dropdown-menu`,itemKey:e=>e.id})]});return o?(0,Y.jsx)(Ke,{content:o,placement:`top`,children:(0,Y.jsx)(`span`,{className:`block`,children:H})}):H}var kn=`oh:home-selected-workspace-path`;function An(){if(typeof window>`u`)return null;try{let e=window.sessionStorage.getItem(kn);return e&&e.length>0?e:null}catch{return null}}function jn(e){if(!(typeof window>`u`))try{e?window.sessionStorage.setItem(kn,e):window.sessionStorage.removeItem(kn)}catch{}}function Mn({isLoadingSettings:e=!1,onConfirm:t}){let{t:n}=f(`openhands`),{navigate:r}=We(),{data:i,error:a}=he(),o=i?.workspaceParents??[],{mutate:s}=Se(),{mutate:c}=pe(),{mutate:u}=ye(),{mutate:d}=_e(),{workspaces:p,parents:m,isLoading:h,isError:_,error:v}=me(),y=fe(a??v,n),[b,x]=J.useState(null),[S,C]=J.useState(!1),[w,T]=J.useState(!1),{mutate:E,isPending:D,isSuccess:O}=nt(),k=l(),A=D||O||k,j=J.useCallback(e=>{x(e),jn(e?.path??null)},[]);J.useEffect(()=>{let e=An();if(!e)return;let t=p.find(t=>t.path===e);if(t){x(e=>e?.path===t.path?e:t);return}!h&&!_&&!y&&(jn(null),x(t=>t?.path===e?null:t))},[_,h,p,y]);let M=o.length>0||!!y,N=null;y?N=y:h?N=n(g.HOME$LOADING):_&&(N=n(g.HOME$WORKSPACE_SCAN_ERROR));let P=!!y||e||h&&p.length===0;return(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[!t&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-[10px] pb-4`,children:[(0,Y.jsx)(ct,{width:24,height:24}),(0,Y.jsx)(`span`,{className:`leading-5 font-bold text-base text-white`,children:n(g.HOME$WORKSPACES_TAB)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[10px] pb-4`,children:[(0,Y.jsx)(On,{workspaces:p,parents:m,value:b,placeholder:y?n(g.HOME$WORKSPACES_UNSUPPORTED_PLACEHOLDER):P?n(g.HOME$LOADING):void 0,disabled:P,disabledTooltip:y,showManage:p.length>0||o.length>0,onChange:j,onAddClick:()=>C(!0),onManageClick:()=>T(!0),className:`max-w-auto`},b?.path??`empty-workspace-selection`),M&&N&&(0,Y.jsx)(`p`,{className:`px-1 text-xs text-[var(--oh-text-secondary)]`,"data-testid":`workspace-status-message`,children:N})]}),(0,Y.jsx)(Ue,{testId:`workspace-launch-button`,variant:`primary`,type:`button`,isDisabled:!b||!t&&A||e,onClick:()=>{if(b){if(t){t(b);return}E({workingDir:b.path,entryPoint:`home_workspace_form`},{onSuccess:e=>r(`/conversations/${e.conversation_id}`)})}},className:t?`w-full`:`w-auto absolute bottom-5 left-5 right-5`,children:n(t?g.BUTTON$CONFIRM:A?g.HOME$LOADING:g.BUTTON$LAUNCH)}),(0,Y.jsx)(ge,{isOpen:S,onClose:()=>C(!1),onAdd:e=>{let t=e[e.length-1];s(e,{onSuccess:()=>{t&&j(t)}})},onAddParent:e=>u(e)}),(0,Y.jsx)(xe,{isOpen:w,workspaces:p,workspaceParents:o,onClose:()=>T(!1),onRemove:e=>{b?.path===e&&j(null),c(e)},onRemoveParent:e=>{b?.parentPath===e&&j(null),d(e)}})]})}function Nn({isOpen:e,onClose:t,onConfirm:n}){let{t:r}=f(`openhands`),{isLoadingSettings:i}=ot();return e?(0,Y.jsx)(Ne,{onClose:t,children:(0,Y.jsxs)(Pe,{width:`sm`,className:`relative items-start border border-[var(--oh-border)] !gap-4`,children:[(0,Y.jsx)($e,{onClose:t,testId:`close-open-workspace-dialog`}),(0,Y.jsx)(`div`,{className:`w-full pr-6`,children:(0,Y.jsx)(Le,{title:r(g.HOME$OPEN_WORKSPACE)})}),(0,Y.jsx)(`div`,{className:`w-full`,"data-testid":`open-workspace-dialog-body`,children:(0,Y.jsx)(Mn,{isLoadingSettings:i,onConfirm:e=>{n(e),t()}})})]})}):null}function Pn({onRepoSelection:e,isLoadingSettings:t=!1,onConfirm:n}){let{navigate:r}=We(),[i,a]=J.useState(null),[o,s]=J.useState(null),[c,u]=J.useState(null),{providers:d}=ot(),{addRecentRepository:p,setLastSelectedProvider:m,getLastSelectedProvider:h}=st(),{mutate:_,isPending:v,isSuccess:y}=nt(),b=l(),{t:x}=f(`openhands`);J.useEffect(()=>{if(d.length!==0){if(d.length===1&&!c){u(d[0]);return}if(d.length>1&&!c){let e=h();e&&d.includes(e)&&u(e)}}},[d,c,h]);let S=v||y||b,C=t=>{t!==c&&(u(t),m(t),a(null),s(null),e?.(null))},w=J.useCallback(e=>{s(e)},[]);return(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[!n&&(0,Y.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-[10px] pb-4`,children:[(0,Y.jsx)(et,{width:24,height:24}),(0,Y.jsx)(`span`,{className:`leading-5 font-bold text-base text-white`,children:x(g.COMMON$OPEN_REPOSITORY)})]})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[10px] pb-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-sm text-white font-normal leading-[22px]`,children:x(g.HOME$SELECT_OR_INSERT_URL)}),d.length<=1?null:(0,Y.jsx)(wt,{providers:d,value:c,className:`max-w-[500px]`,onChange:C,disabled:t})]}),(0,Y.jsx)(Ut,{provider:c||d[0],value:i?.id||null,repositoryName:i?.full_name||null,placeholder:`user/repo`,disabled:!c||t,onChange:t=>{t?(e?.(t),a(t)):(e?.(null),a(null),s(null))},className:`max-w-auto`}),(()=>{let e=i?.main_branch||null;return(0,Y.jsx)(Et,{repository:i?.full_name||null,provider:c||d[0],selectedBranch:o,onBranchSelect:w,defaultBranch:e,className:`max-w-full`,disabled:!i||t})})()]}),(0,Y.jsx)(Ue,{testId:`repo-launch-button`,variant:`primary`,type:`button`,isDisabled:!i||!o||!n&&S||d.length>1&&!c||t,onClick:()=>{if(!(!i||!o)){if(p(i),n){n({repository:i,branch:o,provider:c});return}_({repository:{name:i.full_name||``,gitProvider:i.git_provider||`github`,branch:o.name||`main`},entryPoint:`home_repo_form`},{onSuccess:e=>r(`/conversations/${e.conversation_id}`)})}},className:`w-full`,children:x(n?g.BUTTON$CONFIRM:S?g.HOME$LOADING:g.BUTTON$LAUNCH)})]})}function Fn({isOpen:e,onClose:t,onConfirm:n}){let{t:r}=f(`openhands`),{isLoadingSettings:i}=ot();return e?(0,Y.jsx)(Ne,{onClose:t,children:(0,Y.jsxs)(Pe,{width:`sm`,className:`relative items-start border border-[var(--oh-border)] !gap-4`,children:[(0,Y.jsx)($e,{onClose:t,testId:`close-open-repository-dialog`}),(0,Y.jsx)(`div`,{className:`w-full pr-6`,children:(0,Y.jsx)(Le,{title:r(g.COMMON$OPEN_REPOSITORY)})}),(0,Y.jsx)(`div`,{className:`w-full`,"data-testid":`open-repository-dialog-body`,children:(0,Y.jsx)(Pn,{isLoadingSettings:i,onConfirm:e=>{n(e),t()}})})]})}):null}function In({mode:e}){return e===`new_worktree`?(0,Y.jsx)(ue,{className:`size-3`,strokeWidth:2,"aria-hidden":!0}):(0,Y.jsx)(et,{width:12,height:12,color:`white`,"aria-hidden":!0})}var Ln=[`local_repo`,`new_worktree`];function Rn({value:e,backendKind:t,onChange:n,disabled:r=!1,testId:i=`workspace-mode-selector`}){let{t:a}=f(`openhands`),[o,s]=(0,J.useState)(!1),c=(0,J.useRef)(null),l=a(Zt(e,t));return(0,J.useEffect)(()=>{if(!o)return;let e=e=>{c.current&&!c.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[o]),(0,J.useEffect)(()=>{if(!o)return;let e=e=>{e.key===`Escape`&&s(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]),(0,Y.jsxs)(`div`,{ref:c,className:`relative inline-flex`,children:[(0,Y.jsxs)(`button`,{type:`button`,"data-testid":i,"aria-haspopup":`menu`,"aria-expanded":o,"aria-label":l,disabled:r,onClick:()=>s(e=>!e),className:_(`group flex flex-row items-center justify-between gap-2 pl-2.5 pr-2 py-1 rounded-[100px] truncate relative`,`border border-[rgba(71,74,84,0.50)] bg-transparent text-white`,r?`cursor-not-allowed opacity-50`:`cursor-pointer hover:border-[var(--oh-border-subtle)]`),children:[(0,Y.jsx)(`span`,{className:`flex size-3 shrink-0 items-center justify-center`,children:(0,Y.jsx)(In,{mode:e})}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm font-normal leading-5`,children:l}),(0,Y.jsx)(v,{className:`size-3 shrink-0 text-white`,"aria-hidden":!0})]}),o?(0,Y.jsx)(`div`,{role:`menu`,"data-testid":`${i}-menu`,className:_(`absolute left-0 top-full z-50 mt-1 min-w-[180px] rounded-lg border border-[var(--oh-border)] bg-[var(--oh-surface)] p-1 shadow-lg`,qe),children:Ln.map(r=>{let o=a(Zt(r,t));return(0,Y.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":r===e,"data-testid":`${i}-option-${r}`,onClick:()=>{n(r),s(!1)},className:Ye,children:[(0,Y.jsx)(`span`,{className:Xe,children:(0,Y.jsx)(In,{mode:r})}),(0,Y.jsx)(`span`,{className:`truncate`,children:o})]},r)})}):null]})}function zn({workspace:e,repository:t,branch:n,provider:r,workspaceMode:i,backendKind:a,onRepoClick:o,onWorkspaceModeChange:s}){let c=e?e.path.replace(/\/+$/,``).split(`/`).pop()||e.path:null;return(0,Y.jsxs)(`div`,{className:`flex flex-row gap-2.5 items-center flex-wrap`,"data-testid":`home-git-control-bar-preview`,children:[(0,Y.jsx)(jt,{selectedRepository:t?.full_name??null,gitProvider:r??null,workspaceName:c,onClick:o}),e?(0,Y.jsx)(Rn,{value:i,backendKind:a,onChange:s}):null,n?(0,Y.jsx)(Ot,{selectedBranch:n.name,selectedRepository:t?.full_name??null,gitProvider:r??null}):null]})}function Bn(){let{t:e}=f(`openhands`),{backend:t}=p(),{navigate:n}=We(),r=t.kind===`local`,[i,a]=(0,J.useState)(!1),[o,s]=(0,J.useState)(null),[u,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(()=>Yt()),[w,T]=(0,J.useState)([]),[E,D]=(0,J.useState)(!1),{mutateAsync:O,isPending:k}=nt(),A=l(),j=k||A,{isConfigured:M,isLoading:N}=Ze(),P=!N&&!M,{images:F,files:I,imagesMarkedUploadAsFile:L,clearAllFiles:R}=Qe(),{handleUpload:z}=kt(),{error:B}=he({enabled:r}),V=r?fe(B,e):null,ee=e=>{C(e),r&&Xt(e)},H=r?!!o:!!u&&!!v,te=Mt(null,t=>{let i=t.trim(),a=F.length>0||I.length>0;if(!i&&!a||j||P)return;let s={images:[...F],files:[...I]},l={query:a?void 0:i||void 0,entryPoint:`home_chat_launcher`};r&&o?l={...l,workingDir:o.path,workspaceMode:S}:!r&&u&&v&&(l={...l,repository:{name:u.full_name,gitProvider:u.git_provider,branch:v.name}}),w.length>0&&(l={...l,plugins:w});let d=c.loading(e(g.HOME$CREATING_CONVERSATION),m);(async()=>{try{let t=await O(l);c.dismiss(d);try{sessionStorage.removeItem(St)}catch{}let o=t.conversation_id,u=o.startsWith(`task-`);if(a)if(!r||u){let e=t.task_id??(u?o.slice(5):null);if(!e){h(null);return}xt(e,{content:i,images:s.images,files:s.files,imagesMarkedUploadAsFile:[...L]}),R(),await Gt({conversationId:o,text:i,images:s.images,imagesMarkedUploadAsFile:L}),n(`/conversations/${o}`);return}else try{await Pt({conversationId:o,content:i,images:s.images,files:s.files,imagesMarkedUploadAsFile:L,t:e}),R()}catch(e){h(e instanceof Error?e.message:null);return}u&&i&&await Gt({conversationId:o,text:i,images:[],imagesMarkedUploadAsFile:[]}),n(`/conversations/${o}`)}catch(e){c.dismiss(d),h(e instanceof Error?e.message:null)}})()});return(0,Y.jsxs)(`div`,{"data-testid":`home-chat-launcher`,className:`flex w-full flex-col items-center pt-[max(4rem,28vh)] pb-10`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full max-w-[800px] flex-col gap-4 md:px-4`,children:[(0,Y.jsx)(`div`,{className:`flex w-full justify-center`,children:(0,Y.jsx)(En,{})}),(0,Y.jsx)(`div`,{className:`w-full`,children:(0,Y.jsx)(Tt,{onSubmit:te,onFilesPaste:z,disabled:j||P})}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-start gap-2`,children:[H?(0,Y.jsx)(zn,{workspace:o,repository:u,branch:v,provider:b,workspaceMode:S,backendKind:t.kind,onRepoClick:()=>a(!0),onWorkspaceModeChange:ee}):(0,Y.jsx)(Dn,{kind:r?`local`:`cloud`,onClick:()=>a(!0),disabled:j||!!V,disabledTooltip:V}),(0,Y.jsx)(on,{count:w.length,onClick:()=>D(!0),disabled:j})]}),(0,Y.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-8`,children:[(0,Y.jsx)(d,{variant:`rail`}),(0,Y.jsx)(yn,{}),(0,Y.jsx)(Tn,{})]})]}),r?(0,Y.jsx)(Nn,{isOpen:i,onClose:()=>a(!1),onConfirm:e=>{s(e),_(null),y(null),x(null)}}):(0,Y.jsx)(Fn,{isOpen:i,onClose:()=>a(!1),onConfirm:({repository:e,branch:t,provider:n})=>{_(e),y(t),x(n??e.git_provider),s(null),C(`local_repo`)}}),E&&(0,Y.jsx)(an,{selected:w,onChange:T,onClose:()=>D(!1)})]})}function Vn(){let e=ve(a().search);return(0,Y.jsxs)(`div`,{"data-testid":`home-screen`,className:`custom-scrollbar-always h-full overflow-y-auto rounded-xl bg-transparent px-4 md:px-0 lg:px-[42px]`,children:[(0,Y.jsx)(`div`,{className:`md:px-4 lg:px-0`,children:(0,Y.jsx)(Nt,{})}),(0,Y.jsx)(Bn,{}),e?null:(0,Y.jsx)(Ce,{})]})}var Hn=o(Vn);export{Hn as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,i as n,yt as r}from"./vendor-styling-Ck5D_A2Q.js";import{i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";import{t as a}from"./useQueries-pUohFMSP.js";import{t as o}from"./useTranslation-CCgUjPJF.js";import{ct as s,n as c,st as l}from"./active-backend-context-BnH4-L8h.js";import{K as u,t as d}from"./utils-BgLSZdyy.js";import{b as f,c as p,m,s as h,u as g,x as _,y as v}from"./kebab-menu-item-content-SCJBwZnp.js";import{t as ee}from"./plug-7ACOEbMs.js";import{r as y}from"./context-menu-list-item-Cm7-7Y-7.js";import{n as te}from"./use-tracking-j4uo9VEW.js";import{n as ne}from"./navigation-context-CQZwH_tC.js";import{t as re}from"./navigation-link-Bxo3-4vo.js";import{p as ie}from"./install-server-modal-B81I-5OE.js";import{t as ae}from"./folder-C1ou4_DT.js";import{n as b}from"./use-automation-health-U99vvHxx.js";import{t as x}from"./automation-C_eCrGyP.js";import{c as oe,i as se,n as ce,o as le}from"./use-automations-Bq5hVuv0.js";import{i as S}from"./extension-module-card-classes-DpeaYhYo.js";import{n as C}from"./api-error-message-BXo0lCI5.js";import{o as ue}from"./mcp-marketplace-utils-C7PYr293.js";import{t as de}from"./vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-CxhwKuAd.js";import{n as fe,t as pe}from"./use-automation-permissions-Buus0R6h.js";var me=i(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),w=e(t(),1),T=r(),he=new class{limit;active=0;queue=[];constructor(e){this.limit=e}async run(e,t){await this.acquire();try{if(t?.aborted)throw t.reason??new DOMException(`Aborted`,`AbortError`);return await e()}finally{this.release()}}acquire(){return this.active<this.limit?(this.active+=1,Promise.resolve()):new Promise(e=>{this.queue.push(e)})}release(){let e=this.queue.shift();e?e():--this.active}}(3),ge=15e3;function _e(e){let t=c(),n=a({queries:e.map(e=>({queryKey:[...oe,e.id,{limit:12,offset:0},t.backend.id,t.orgId],queryFn:({signal:t})=>he.run(()=>te.getAutomationRuns(e.id,12,0),t),staleTime:60*1e3,retry:!1,refetchOnWindowFocus:!1,refetchInterval:e=>{let t=e.state.data?.runs[0];return t?.status===x.PENDING||t?.status===x.RUNNING?ge:!1}}))}),r=new Map;return e.forEach((e,t)=>{let i=n[t],a=i?.data?.runs??[];r.set(e.id,{latestRun:a[0]??null,recentRuns:a,total:i?.data?.total,isLoading:i?.isPending??!0,isError:i?.isError??!1})}),r}var ve=20,ye=[x.COMPLETED,x.COMPLETED,x.FAILED,x.COMPLETED,x.CANCELLED,x.COMPLETED,x.COMPLETED,x.FAILED,x.COMPLETED,x.SKIPPED,x.COMPLETED];function E(){return!1}var D={"demo-conv-titled":`Fix flaky CI on main`,"demo-conv-untitled":`Summarize open pull requests`};function be(e){if(e in D)return D[e]}function O(e){return new Date(Date.now()-e*36e5).toISOString()}function k(e,t,n){return{id:e,name:t,trigger:n,enabled:!0,created_at:O(720),updated_at:O(24),prompt:`demo`}}function A(e,t,n={}){let r=n.startedHoursAgo??2,i=n.completedHoursAgo===void 0?1:n.completedHoursAgo;return{id:e,status:t,conversation_id:n.conversationId===void 0?null:n.conversationId,bash_command_id:null,error_detail:n.errorDetail===void 0?null:n.errorDetail,started_at:O(r),completed_at:i===null?null:O(i)}}function xe(e){if(!e)return[];let t=[2,8,45,3,15,1,25,90,5,12,6];return[e,...ye.slice(0,11).map((n,r)=>{let i=24+r*6,a=(t[r]??5)/60;return A(`${e.id}-hist-${r}`,n,{startedHoursAgo:i,completedHoursAgo:i-a,conversationId:null,errorDetail:n===x.FAILED?`Prior failure`:null})})]}function Se(e){return{...e,recentRuns:e.recentRuns??xe(e.latestRun)}}var j=[{pin:!0,automation:k(`demo-pin-loading`,`Card: loading skeleton`,{type:`cron`,schedule:`0 * * * *`,schedule_human:`Every hour`}),runState:{latestRun:null,isLoading:!0,isError:!1}},{pin:!0,automation:k(`demo-pin-error`,`Card: status unavailable`,{type:`cron`,schedule:`0 9 * * *`,schedule_human:`Daily at 9am`}),runState:{latestRun:null,isLoading:!1,isError:!0}},{pin:!0,automation:k(`demo-pin-no-runs`,`Card: no runs yet`,{type:`event`,source:`github`,on:`pull_request.opened`}),runState:{latestRun:null,isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-failed-detail`,`Card: failed with error detail`,{type:`cron`,schedule:`*/15 * * * *`,schedule_human:`Every 15 min`}),runState:{latestRun:A(`run-failed-detail`,x.FAILED,{errorDetail:`Sandbox provisioning timed out after 120s while waiting for the runtime to become ready.`,startedHoursAgo:3,completedHoursAgo:2.5}),isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-completed-title`,`Card: completed + conversation title`,{type:`event`,source:`github`,on:`push`}),runState:{latestRun:A(`run-completed-title`,x.COMPLETED,{conversationId:`demo-conv-titled`,startedHoursAgo:5,completedHoursAgo:4}),isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-completed-untitled`,`Card: completed + conversation title`,{type:`cron`,schedule:`0 0 * * 1`,schedule_human:`Mondays at midnight`}),runState:{latestRun:A(`run-completed-untitled`,x.COMPLETED,{conversationId:`demo-conv-untitled`,startedHoursAgo:8,completedHoursAgo:7}),isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-completed-no-conv`,`Card: completed, no conversation`,{type:`cron`,schedule:`0 12 * * *`,schedule_human:`Daily at noon`}),runState:{latestRun:A(`run-completed-no-conv`,x.COMPLETED,{conversationId:null,startedHoursAgo:10,completedHoursAgo:9}),isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-failed-no-conv`,`Card: failed, no conversation`,{type:`event`,source:`slack`,on:`message`}),runState:{latestRun:A(`run-failed-no-conv`,x.FAILED,{conversationId:null,errorDetail:null,startedHoursAgo:12,completedHoursAgo:11}),isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-pending`,`Card: pending (empty result panel)`,{type:`cron`,schedule:`0 */6 * * *`,schedule_human:`Every 6 hours`}),runState:{latestRun:A(`run-pending`,x.PENDING,{conversationId:null,startedHoursAgo:.1,completedHoursAgo:null}),isLoading:!1,isError:!1}},{pin:!0,automation:k(`demo-pin-running`,`Card: running (empty result panel)`,{type:`event`,source:`github`,on:`issues.opened`}),runState:{latestRun:A(`run-running`,x.RUNNING,{conversationId:null,startedHoursAgo:.25,completedHoursAgo:null}),isLoading:!1,isError:!1}},{automation:k(`demo-list-cancelled`,`List: cancelled run`,{type:`cron`,schedule:`30 2 * * *`,schedule_human:`Daily at 2:30am`}),runState:{latestRun:A(`run-cancelled`,x.CANCELLED,{startedHoursAgo:14,completedHoursAgo:13}),isLoading:!1,isError:!1}},{automation:k(`demo-list-skipped`,`List: skipped run`,{type:`event`,source:`github`,on:`pull_request.synchronize`}),runState:{latestRun:A(`run-skipped`,x.SKIPPED,{startedHoursAgo:16,completedHoursAgo:16}),isLoading:!1,isError:!1}},{automation:k(`demo-list-running-2`,`List: second in-flight run`,{type:`cron`,schedule:`*/5 * * * *`,schedule_human:`Every 5 min`}),runState:{latestRun:A(`run-running-2`,x.RUNNING,{conversationId:null,startedHoursAgo:.5,completedHoursAgo:null}),isLoading:!1,isError:!1}},{automation:k(`demo-list-success-old`,`List: older success`,{type:`cron`,schedule:`0 8 * * 1-5`,schedule_human:`Weekdays at 8am`}),runState:{latestRun:A(`run-success-old`,x.COMPLETED,{conversationId:`demo-conv-titled`,startedHoursAgo:48,completedHoursAgo:47}),isLoading:!1,isError:!1}},{automation:k(`demo-list-failed-old`,`List: older failure`,{type:`event`,source:`github`,on:`release.published`}),runState:{latestRun:A(`run-failed-old`,x.FAILED,{errorDetail:`Model returned an empty completion.`,startedHoursAgo:72,completedHoursAgo:71}),isLoading:!1,isError:!1}},{automation:k(`demo-list-no-runs-2`,`List: never ran`,{type:`cron`,schedule:`0 0 1 * *`,schedule_human:`Monthly on the 1st`}),runState:{latestRun:null,isLoading:!1,isError:!1}},{automation:k(`demo-list-loading-2`,`List: loading status`,{type:`event`,source:`linear`,on:`Issue.create`}),runState:{latestRun:null,isLoading:!0,isError:!1}},{automation:k(`demo-list-error-2`,`List: fetch error`,{type:`cron`,schedule:`15 * * * *`,schedule_human:`Hourly at :15`}),runState:{latestRun:null,isLoading:!1,isError:!0}},{automation:k(`demo-list-pending-2`,`List: pending, long name that should truncate in the activity row when the viewport is narrow`,{type:`cron`,schedule:`0 3 * * 0`,schedule_human:`Sundays at 3am`}),runState:{latestRun:A(`run-pending-2`,x.PENDING,{startedHoursAgo:.05,completedHoursAgo:null}),isLoading:!1,isError:!1}},{automation:k(`demo-list-completed-fallback`,`List: completed with conversation`,{type:`event`,source:`github`,on:`workflow_run.completed`}),runState:{latestRun:A(`run-completed-fallback`,x.COMPLETED,{conversationId:`demo-conv-untitled`,startedHoursAgo:20,completedHoursAgo:19}),isLoading:!1,isError:!1}}];if(j.length!==ve)throw Error(`home-automations-demo: expected ${ve} specs, got ${j.length}`);var Ce=j.filter(e=>e.pin).map(e=>e.automation.id),we=j.map(e=>e.automation),Te=new Map(j.map(e=>[e.automation.id,Se(e.runState)]));function M(e){if(e.isLoading||e.isError)return`unknown`;if(!e.latestRun)return`none`;switch(f(e.latestRun).badgeStatus){case x.COMPLETED:case`success`:return`success`;case x.FAILED:case`failed`:return`failed`;case`blocked`:case`partial_success`:case`unknown`:return`warning`;case x.PENDING:case x.RUNNING:return`in_progress`;default:return`unknown`}}function Ee(e){switch(e){case`success`:return u.FEATURED_AUTOMATIONS$LAST_RUN_SUCCEEDED;case`failed`:return u.FEATURED_AUTOMATIONS$LAST_RUN_FAILED;case`warning`:return u.AUTOMATIONS$DETAIL$NEEDS_REVIEW;case`in_progress`:return u.FEATURED_AUTOMATIONS$RUN_IN_PROGRESS;case`none`:return u.AUTOMATIONS$DETAIL$NO_RUNS;default:return u.FEATURED_AUTOMATIONS$STATUS_UNKNOWN}}var De={github:`GitHub`,gitlab:`GitLab`,slack:`Slack`,linear:`Linear`,jira:`Jira`};function N(e){let t=e.trim().toLowerCase();return t?De[t]??t.replace(/\b\w/g,e=>e.toUpperCase()):e}function P(e){let{trigger:t}=e;return t.type===`event`&&t.on?m(t.on):null}function F(e){let{trigger:t}=e;return t.type===`event`&&t.source?.trim()||null}function I(e){let{trigger:t}=e;return t.type===`event`?null:t.schedule_human||t.schedule||t.type||null}function L(e){let{trigger:t}=e;if(t.type===`event`){let t=F(e);return[P(e)??``,t?`(${N(t)})`:``].filter(Boolean).join(` `)}return I(e)??t.type}var R=48;function z(e){let t=e.trim().replace(/\s+/g,` `);if(!t)return t;let n=t.match(/^.*?[.!?](?=\s|$)/)?.[0]??t;return n.length<=R?n:`${n.slice(0,R-1).trimEnd()}…`}function Oe(e,t=z(e)){return e.trim().replace(/\s+/g,` `)!==t}function B(e){let t=e.completed_at??e.started_at;if(!t)return null;let n=new Date(t).getTime();return Number.isNaN(n)||n===0?null:t}function ke(e,t){let n=[];if(e.repository&&n.push({id:`repository`,node:(0,T.jsxs)(`span`,{className:d(S,`gap-1`),children:[(0,T.jsx)(ae,{className:`size-3 shrink-0`}),e.repository]})}),e.trigger.type===`event`){let t=P(e);t&&n.push({id:`event-trigger`,node:(0,T.jsxs)(`span`,{className:d(S,`gap-1`),children:[(0,T.jsx)(y,{className:`size-3 shrink-0`,"aria-hidden":`true`}),t]})});let r=F(e);if(r){let e=ue(r.toLowerCase(),de);n.push({id:`event-source`,node:(0,T.jsxs)(`span`,{className:d(S,`gap-1`),children:[e?(0,T.jsx)(ie,{entry:e,size:`xs`,testId:`automation-source-logo`}):(0,T.jsx)(ee,{className:`size-3 shrink-0`,"aria-hidden":`true`,"data-testid":`automation-source-logo`}),N(r)]})})}}else n.push({id:`schedule`,node:(0,T.jsxs)(`span`,{className:d(S,`gap-1`),children:[(0,T.jsx)(b,{className:`size-3 shrink-0`}),t]})});return e.model&&n.push({id:`model`,node:(0,T.jsxs)(`span`,{className:d(S,`gap-1`),children:[(0,T.jsx)(_,{className:`size-3 shrink-0`}),e.model]})}),n}var Ae=new Set([x.COMPLETED,x.FAILED]);function V(e){let{badgeStatus:t}=f(e);return t===x.COMPLETED||t===`success`}function je(e){let{badgeStatus:t}=f(e);return t===x.FAILED||t===`failed`||t===`blocked`}function H(e){let t=e.runs.filter(e=>Ae.has(e.status)),n=t.filter(V).length,r;r=e.status_counts?e.status_counts[x.COMPLETED]??0:e.total<=e.runs.length?n:null;let i=t.flatMap(e=>{if(!e.completed_at)return[];let t=new Date(e.completed_at).getTime()-new Date(e.started_at).getTime();return Number.isFinite(t)&&t>=0?[t]:[]});return{total:e.total,completedTotal:r,latestRun:e.runs[0]??null,recentRuns:e.runs,recentSuccessRate:t.length===0?null:n/t.length,averageDurationMs:i.length===0?null:i.reduce((e,t)=>e+t,0)/i.length}}function U(e,t){if(!e.enabled)return`disabled`;if(!t||t.isError||t.isLoading||!t.summary)return`unknown`;let n=t.summary.latestRun;return n?je(n)?`failing`:n.status===x.PENDING||n.status===x.RUNNING?`running`:V(n)?`healthy`:`unknown`:`never-run`}function W(e){return e===null||!Number.isFinite(e)?`—`:e<6e4?`${Math.max(1,Math.round(e/1e3))}s`:e<36e5?`${Math.max(1,Math.round(e/6e4))}m`:`${(e/36e5).toFixed(1)}h`}function G(e,t){let n=t.toLowerCase();return n?e.name.toLowerCase().includes(n)||(e.prompt??``).toLowerCase().includes(n)||e.repository?.toLowerCase().includes(n)===!0||e.model?.toLowerCase().includes(n)===!0:!0}var Me={active:e=>e.enabled,failing:(e,t)=>t===`failing`,disabled:e=>!e.enabled},Ne={event:e=>e.trigger.type===`event`,schedule:e=>e.trigger.type!==`event`};function K(e,t){return t.get(e.id)?.summary?.total??0}function q(e,t){let n=t.get(e.id)?.summary?.latestRun?.started_at??e.last_triggered_at;if(!n)return 0;let r=new Date(n).getTime();return Number.isFinite(r)?r:0}var Pe={"last-run":(e,t,n)=>q(t,n)-q(e,n),runs:(e,t,n)=>K(t,n)-K(e,n),name:(e,t)=>e.name.localeCompare(t.name)};function Fe(e,t,n){return e.filter(e=>!(!G(e,t.search)||t.status!==`all`&&!Me[t.status](e,U(e,n.get(e.id)))||t.trigger!==`all`&&!Ne[t.trigger](e))).sort((e,r)=>Pe[t.sort](e,r,n))}function J(e,t){return e.flatMap(e=>{let n=t.get(e.id);return n?.summary&&!n.isLoading&&!n.isError?[n.summary]:[]})}var Ie={automations:e=>({display:e.length.toLocaleString(),isZero:e.length===0,placeholderValues:{active:e.filter(e=>e.enabled).length}}),"needs-attention":(e,t)=>{let n=e.filter(e=>U(e,t.get(e.id))===`failing`).length;return{display:n.toLocaleString(),isZero:n===0,placeholderValues:{}}},"total-runs":(e,t)=>{let n=J(e,t);if(n.length===0&&e.length>0)return{display:`—`,isZero:!1,placeholderValues:{}};let r=n.reduce((e,t)=>e+t.total,0);return{display:r.toLocaleString(),isZero:r===0,placeholderValues:{}}},"average-duration":(e,t)=>{let n=J(e,t).flatMap(e=>e.averageDurationMs===null?[]:[e.averageDurationMs]);return{display:W(n.length===0?null:n.reduce((e,t)=>e+t,0)/n.length),isZero:!1,placeholderValues:{}}}};function Le(e,t,n){return Ie[e](t,n)}function Re(e){return e?.summary?e.summary.total.toLocaleString():!e||e.isLoading?`…`:`—`}function ze(e){let t=e?.summary?.recentSuccessRate;return t==null?`—`:`${Math.round(t*100)}%`}function Be(e){return W(e?.summary?.averageDurationMs??null)}function Ve({state:e,copy:t}){return(0,T.jsx)(`dl`,{"data-testid":`automation-run-stats`,className:`grid grid-cols-3 gap-2 text-xs`,children:[{label:t.runs,value:Re(e)},{label:t.recentSuccess,value:ze(e)},{label:t.averageDuration,value:Be(e)}].map(e=>(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsx)(`dt`,{className:`truncate text-muted`,children:e.label}),(0,T.jsx)(`dd`,{className:`mt-0.5 truncate font-medium text-content`,children:e.value})]},e.label))})}var He={latestRun:null,recentRuns:[],isLoading:!1,isError:!1};function Ue(e){return e?{latestRun:e.summary?.latestRun??null,recentRuns:e.summary?.recentRuns??[],total:e.summary?.total,isLoading:e.isLoading,isError:e.isError}:He}function We(e){return e.recentRuns.length===0&&(e.isLoading||e.isError)?{summary:null,isLoading:e.isLoading,isError:e.isError}:{summary:H({runs:e.recentRuns,total:e.total??e.recentRuns.length}),isLoading:e.isLoading,isError:e.isError}}function Y(e){return e?.status===x.PENDING||e?.status===x.RUNNING}function Ge(e,t){let{t:n}=o(`openhands`),{navigate:r}=ne(),{canManage:i}=pe(),a=fe(e),c=i||a,d=E(),f=se(),p=le(),m=ce(),[h,g]=(0,w.useState)(!1),[_,v]=(0,w.useState)(!1);return{canManage:c,isRunPending:f.isPending&&f.variables===e.id,isCancelPending:m.isPending&&m.variables?.runId===t?.id,canCancel:c&&Y(t),editOpen:h,setEditOpen:g,turnOffConfirmOpen:_,runNow:(0,w.useCallback)(()=>{if(d){s(n(u.AUTOMATIONS$RUN_NOW_SUCCESS));return}f.mutate(e.id,{onSuccess:()=>{s(n(u.AUTOMATIONS$RUN_NOW_SUCCESS))},onError:e=>{l(C(e,n(u.AUTOMATIONS$RUN_NOW_ERROR)))}})},[e.id,f,d,n]),viewDetails:(0,w.useCallback)(()=>{r?.(`/automations/${e.id}`)},[e.id,r]),openEdit:(0,w.useCallback)(()=>{g(!0)},[]),requestTurnOff:(0,w.useCallback)(()=>{v(!0)},[]),confirmTurnOff:(0,w.useCallback)(()=>{v(!1),!d&&p.mutate({id:e.id,enabled:!1},{onError:e=>{l(C(e,n(u.AUTOMATIONS$TURN_OFF_ERROR)))}})},[e.id,d,n,p]),cancelTurnOff:(0,w.useCallback)(()=>{v(!1)},[]),cancelRun:(0,w.useCallback)(()=>{if(!(!t||!Y(t))){if(d){s(n(u.AUTOMATIONS$CANCEL_RUN_SUCCESS));return}m.mutate({automationId:e.id,runId:t.id},{onSuccess:()=>{s(n(u.AUTOMATIONS$CANCEL_RUN_SUCCESS))},onError:e=>{l(C(e,n(u.AUTOMATIONS$CANCEL_RUN_ERROR)))}})}},[e.id,m,d,t,n])}}var Ke=`openhands-automations-view`;function qe(){return typeof window>`u`?`grid`:window.localStorage.getItem(`openhands-automations-view`)===`list`?`list`:`grid`}function Je(e){window.localStorage.setItem(Ke,e)}var Ye=`divide-y divide-[var(--oh-border-subtle)] overflow-hidden rounded-xl border border-[var(--oh-border-subtle)] bg-[var(--oh-surface)]`,Xe=`group relative flex items-stretch transition-colors hover:bg-surface-raised has-[:focus-visible]:bg-surface-raised`,Ze=`mt-3 flex min-h-9 items-center justify-between gap-2 overflow-hidden rounded-md border border-[var(--oh-border-subtle)] bg-[var(--oh-surface)] px-3 py-2 text-xs`,X=1e3,Z=30*6e4;function Q(e,t=Date.now()){let n=e.started_at?new Date(e.started_at).getTime():NaN;if(Number.isNaN(n)||n<=0)return null;if(e.completed_at){let t=new Date(e.completed_at).getTime();return Number.isNaN(t)||t<n?null:t-n}return e.status===x.PENDING||e.status===x.RUNNING?Math.max(0,t-n):null}function Qe(e){if(e==null||e<=0)return 11;let t=Math.log(Math.min(Z,Math.max(X,e))/X)/Math.log(Z/X);return Math.round(6+t*9)}function $e(e){switch(e){case x.COMPLETED:case`success`:return`bg-[var(--oh-status-success)]`;case x.FAILED:case`failed`:return`bg-[var(--oh-status-error)]`;case`blocked`:case`partial_success`:case`unknown`:return`bg-[var(--oh-warning)]`;case x.RUNNING:return`bg-[var(--oh-status-success)] animate-pulse motion-reduce:animate-none`;case x.PENDING:return`bg-[repeating-linear-gradient(-45deg,var(--oh-muted)_0_1.5px,var(--oh-border)_1.5px_3px)]`;case x.CANCELLED:return`bg-[var(--oh-muted)]`;default:return`bg-[var(--oh-border)]`}}function et(e){return v(e)}function tt(e){return e==null||e<=0?null:e<6e4?`${Math.max(1,Math.round(e/1e3))}s`:e<36e5?`${Math.round(e/6e4)}m`:`${(e/36e5).toFixed(1)}h`}function nt({label:e,children:t}){return(0,T.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,T.jsx)(`span`,{className:`w-16 shrink-0 text-[var(--oh-muted)]`,children:e}),(0,T.jsx)(`span`,{className:`min-w-0 flex-1 break-words text-white`,children:t})]})}function rt({run:e,nowMs:t}){let{t:n,i18n:r}=o(`openhands`),i=B(e),a=i?g(i,r.language,n):null,s=tt(Q(e,t)),c=f(e),l=n(et(c.badgeStatus));return(0,T.jsxs)(`div`,{className:`flex w-[220px] flex-col gap-2 p-3`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{"aria-hidden":`true`,className:d(`h-3 w-1.5 shrink-0 rounded-[1px]`,$e(c.badgeStatus))}),(0,T.jsx)(`span`,{className:`text-sm font-medium text-white`,children:l})]}),(0,T.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[a?(0,T.jsx)(nt,{label:n(u.AUTOMATIONS$DETAIL$LAST_RUN),children:a}):null,s?(0,T.jsx)(nt,{label:n(u.FEATURED_AUTOMATIONS$RUN_DURATION),children:s}):null]}),c.summary?(0,T.jsx)(`p`,{className:`line-clamp-3 text-xs text-[var(--oh-text-secondary)]`,children:c.summary}):null]})}function it({automationId:e,run:t,nowMs:r}){let{t:i}=o(`openhands`),a=Q(t,r),s=f(t),c=i(et(s.badgeStatus)),l=`/automations/${encodeURIComponent(e)}?run=${encodeURIComponent(t.id)}`;return(0,T.jsx)(n,{content:(0,T.jsx)(rt,{run:t,nowMs:r}),placement:`top`,closeDelay:80,delay:200,disableAnimation:!1,className:`rounded-xl border border-[var(--oh-border)] bg-base-secondary p-0 text-white shadow-xl`,children:(0,T.jsx)(re,{to:l,"aria-label":c,className:`group/spark-bar inline-flex h-full cursor-pointer items-end px-[2px] focus:outline-none focus-visible:ring-1 focus-visible:ring-[var(--oh-focus)]`,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,T.jsx)(`span`,{className:d(`w-1 shrink-0 origin-bottom rounded-[1px]`,`transition-transform duration-100 ease-out motion-reduce:transition-none`,`group-hover/spark-bar:scale-x-[1.4] group-hover/spark-bar:scale-y-[1.15]`,`group-focus-visible/spark-bar:scale-x-[1.4] group-focus-visible/spark-bar:scale-y-[1.15]`,$e(s.badgeStatus)),style:{height:Qe(a)}})})})}function at({automationId:e,runs:t,testId:n}){let{t:r}=o(`openhands`),i=t.some(e=>Y(e)),[a,s]=(0,w.useState)(()=>Date.now());if((0,w.useEffect)(()=>{if(!i)return;let e=window.setInterval(()=>s(Date.now()),1e3);return()=>window.clearInterval(e)},[i]),t.length===0)return null;let c=[...t].reverse().slice(-12);return(0,T.jsx)(`span`,{"data-testid":n,"aria-label":r(u.FEATURED_AUTOMATIONS$RUN_ACTIVITY_LABEL,{count:c.length}),className:`inline-flex shrink-0 items-end`,style:{height:18},onMouseDown:e=>e.preventDefault(),children:c.map((t,n)=>(0,T.jsx)(it,{automationId:e,run:t,nowMs:a},`${t.id}-${n}`))})}function ot({health:e}){return e===`success`?(0,T.jsx)(`svg`,{viewBox:`0 0 12 12`,className:`h-2.5 w-2.5 shrink-0 stroke-[var(--oh-status-success)]`,fill:`none`,strokeWidth:2.25,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,T.jsx)(`path`,{d:`M2.5 6.5 5 9l4.5-5.5`})}):(0,T.jsx)(`span`,{"aria-hidden":`true`,className:d(`h-1.5 w-1.5 shrink-0 rounded-full`,e===`failed`&&`bg-[var(--oh-status-error)]`,e===`warning`&&`bg-[var(--oh-warning)]`,e===`in_progress`&&`animate-pulse bg-[var(--oh-status-success)] motion-reduce:animate-none`,(e===`none`||e===`unknown`)&&`bg-[var(--oh-border)]`)})}function st(e){return e.isError?u.FEATURED_AUTOMATIONS$STATUS_UNAVAILABLE:e.latestRun?v(f(e.latestRun).badgeStatus):Ee(M(e))}function $({label:e,children:t}){return(0,T.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,T.jsx)(`span`,{className:`w-20 shrink-0 text-[var(--oh-muted)]`,children:e}),(0,T.jsx)(`span`,{className:`min-w-0 flex-1 break-words text-[var(--oh-foreground)]`,children:t})]})}function ct({run:e}){let{t}=o(`openhands`),n=p({status:e?.status,code:e?.phase_code,label:e?.phase_label,updatedAt:e?.phase_updated_at});if(!e||!h(e.status)||!n)return null;let{text:r,age:i}=n;return(0,T.jsx)($,{label:t(u.AUTOMATIONS$DETAIL$PHASE),children:(0,T.jsxs)(`span`,{"data-testid":`run-phase-row`,children:[r,i?(0,T.jsxs)(`span`,{className:`text-muted`,children:[` · `,i]}):null]})})}function lt({automation:e,runState:t}){let{t:n,i18n:r}=o(`openhands`),{latestRun:i}=t,a=i?B(i):null,s=e.trigger.type===`event`?y:b,c=M(t),l=i?f(i):null;return(0,T.jsxs)(`div`,{className:`flex w-[280px] flex-col gap-3 p-3`,children:[(0,T.jsx)(`span`,{className:`break-words text-sm font-medium text-white`,children:e.name}),(0,T.jsxs)(`dl`,{className:`flex flex-col gap-1.5`,children:[(0,T.jsx)($,{label:n(u.AUTOMATIONS$DETAIL$TRIGGER),children:(0,T.jsxs)(`span`,{className:`inline-flex min-w-0 items-start gap-1.5`,children:[(0,T.jsx)(s,{className:`mt-0.5 size-3 shrink-0`,"aria-hidden":`true`}),(0,T.jsx)(`span`,{className:`break-all`,children:L(e)})]})}),(0,T.jsx)($,{label:n(u.COMMON$STATUS),children:(0,T.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[(0,T.jsx)(ot,{health:c}),(0,T.jsx)(`span`,{children:n(st(t))})]})}),(0,T.jsx)(ct,{run:i}),a?(0,T.jsx)($,{label:n(u.AUTOMATIONS$DETAIL$LAST_RUN),children:g(a,r.language,n)}):null,l?.summary?(0,T.jsx)($,{label:n(u.AUTOMATIONS$DETAIL$TASK_LABEL),children:(0,T.jsx)(`span`,{className:`line-clamp-3 text-[var(--oh-text-secondary)]`,children:l.summary})}):null]})]})}export{Te as A,I as C,Oe as D,z as E,me as F,E as M,_e as N,we as O,he as P,P as S,L as T,H as _,Ye as a,N as b,qe as c,Ue as d,We as f,G as g,Le as h,at as i,be as j,Ce as k,Je as l,Fe as m,st as n,Xe as o,Ve as p,ot as r,Ze as s,lt as t,Ge as u,ke as v,F as w,B as x,M as y};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useInfiniteQuery-CtSRG7uW.js";import{t as i}from"./useQuery-DAAacS7O.js";import{n as a}from"./active-backend-context-BnH4-L8h.js";import{x as o}from"./utils-BgLSZdyy.js";import{c as s,n as c}from"./agent-server-client-options-EHB23gyx.js";import{t as l}from"./proxy-XP6U1Dhv.js";import{t as u}from"./react-BX7IV650.js";import{i as d}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js";import{n as f}from"./use-settings-C2KKQKVC.js";import{g as p,m}from"./conversation-store-DC-JlJuq.js";import{t as h}from"./agent-server-conversation-service.api-jiCopc2E.js";import{t as g}from"./use-is-authed-A2Yinlt0.js";var _=e(t()),v=n(),y=e=>(0,v.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,v.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`})}),b=e=>{if(!e)return[];let t=[];for(let n of Object.keys(e))n&&t.push(n);return t},x=()=>{let{data:e,isLoading:t}=f();return{providers:_.useMemo(()=>b(e?.provider_tokens_set),[e?.provider_tokens_set]),isLoadingSettings:t}};function S(e){switch(e){case`ADDED`:case`added`:return`A`;case`DELETED`:case`deleted`:return`D`;case`UPDATED`:case`modified`:return`M`;case`MOVED`:case`renamed`:return`R`;default:return`M`}}function C(){let e=s().backend;if(e.kind!==`cloud`)throw Error(`Cloud git call requires a cloud backend.`);return e}async function w(e){let t=C(),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 l({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 T(e){let t=C(),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 l({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 E(e){let t=C(),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 l({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 D=e=>e,O=()=>s().backend.kind===`cloud`,k=e=>!e||e===`undefined`||e===`null`,A={items:[],next_page_id:null},j={items:[],next_page_id:null},M={items:[],next_page_id:null},N=class{static async searchGitRepositories(e,t,n=100,r,i){return k(t)||!O()?A:w({provider:D(t),query:e||void 0,limit:n,pageId:r,installationId:i})}static async retrieveUserGitRepositories(e,t,n=30,r){return k(e)||!O()?A:w({provider:D(e),limit:n,pageId:t,installationId:r})}static async retrieveInstallationRepositories(e,t,n,r,i=30){if(k(e)||!O())return A;let a=n[t];return a?w({provider:D(e),installationId:a,limit:i,pageId:r}):A}static async getRepositoryBranches(e,t,n=``,r,i=30){return k(t)||!O()?j:E({provider:D(t),repository:e,query:n||void 0,pageId:r,limit:i})}static async searchRepositoryBranches(e,t,n,r,i=30){return k(t)||!O()?j:E({provider:D(t),repository:e,query:n,pageId:r,limit:i})}static async getUserInstallations(e,t,n=100){return k(e)||!O()?M:T({provider:D(e),pageId:t,limit:n})}static async getGitChanges(e){let t=await h.resolveConversationWorkingDir(e);return(await new d(c({workingDir:t})).gitChanges(t)).map(e=>({path:e.path,status:S(String(e.status))}))}static async getGitChangeDiff(e,t){let n=await new d(c()).gitDiff(t);return{modified:n.modified??``,original:n.original??``}}},P=e=>{let{data:t}=g(),{providers:n}=x(),r=a();return i({queryKey:[`installations`,e,r.backend.id,r.orgId],queryFn:()=>N.getUserInstallations(e),enabled:t&&!!e&&n.length>0&&o(e,r.backend.kind),staleTime:1e3*60*5,gcTime:1e3*60*15})};function F(e){let{provider:t,pageSize:n=30,enabled:i=!0}=e,{providers:s}=x(),{data:c}=P(t),l=c?.items,u=a(),d=t?o(t,u.backend.kind):!1,f=r({queryKey:[`repositories`,t,d,n,u.backend.id,u.orgId,...d?[l||[]]:[]],queryFn:async({pageParam:e})=>{if(!t)throw Error(`Provider is required`);if(d){if(!l)throw Error(`Missing installation list`);let r=e;return await N.retrieveInstallationRepositories(t,r.installationIndex,l,r.pageId??void 0,n)}let r=e;return await N.retrieveUserGitRepositories(t,r??void 0,n)},getNextPageParam:(e,t,n)=>{if(d&&l){let t=n;if(e.next_page_id)return{installationIndex:t.installationIndex,pageId:e.next_page_id};let r=t.installationIndex+1;return r<l.length?{installationIndex:r,pageId:null}:void 0}return e.next_page_id},initialPageParam:d?{installationIndex:0,pageId:null}:null,enabled:i&&(s||[]).length>0&&!!t&&(!d||Array.isArray(l)&&l.length>0),staleTime:1e3*60*5,gcTime:1e3*60*15,refetchOnWindowFocus:!1});return{data:f.data,isLoading:f.isLoading,isError:f.isError,hasNextPage:f.hasNextPage,isFetchingNextPage:f.isFetchingNextPage,fetchNextPage:f.fetchNextPage,onLoadMore:()=>{f.hasNextPage&&!f.isFetchingNextPage&&f.fetchNextPage()}}}function I(e,t,n,r=100){return i({queryKey:[`repositories`,`search`,e,t,r],queryFn:async()=>t?(await N.searchGitRepositories(e,t,r)).items:[],enabled:!!e&&!!t&&!n,staleTime:1e3*60*5,gcTime:1e3*60*15})}function L(e,t){let[n,r]=(0,_.useState)(e);return(0,_.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}var R={recentRepositories:[],lastSelectedProvider:null},z=u()(p((e,t)=>({...R,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:m(()=>localStorage)}));export{N as a,y as c,F as i,L as n,S as o,I as r,x as s,z as t};
@@ -0,0 +1 @@
1
+ import{n as e,u as t}from"./agent-server-client-options-EHB23gyx.js";import{s as n}from"./agent-server-config-C_x8Otd9.js";import{g as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js";var i=5e3,a=class{static async loadWorkspaceHooks(a){if(!t())return null;try{return(await new r(e({timeout:i})).loadHooks({project_dir:a??n()}))?.hook_config??null}catch(e){return console.warn(`Failed to load workspace hooks, continuing without:`,e),null}}};export{a as default};
@@ -0,0 +1 @@
1
+ import{j as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js";import{t}from"./home-Ivfm7KC4.js";import{n}from"./use-pinned-home-route-BXDIUaxQ.js";var r=()=>{let t=n();return t?e(t):null};export{r as clientLoader,t as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js";var t=e(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]);export{t};