@openhands/agent-canvas 1.14.0 → 1.16.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 (1855) hide show
  1. package/README.md +15 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/acp-providers-CX3Lh9gj.js +1 -0
  4. package/build/assets/active-backend-context-CrHTlgvN.js +2 -0
  5. package/build/assets/agent-context-settings-DSZlXrLj.js +1 -0
  6. package/build/assets/agent-profiles-settings-Dzgb7G9z.js +1 -0
  7. package/build/assets/agent-server-conversation-service.api-tnqNjbpE.js +86 -0
  8. package/build/assets/agent-settings-DLtsqaOs.js +2 -0
  9. package/build/assets/agent-settings-fFvR-XC2.js +1 -0
  10. package/build/assets/alert-banner-HP6mX-Vr.js +1 -0
  11. package/build/assets/api-error-message-B-XdSk3b.js +1 -0
  12. package/build/assets/api-key-entry-screen-qTzrmJcr.js +1 -0
  13. package/build/assets/app-settings-dbnneVaV.js +1 -0
  14. package/build/assets/automation-detail-BmwlCUAB.js +3 -0
  15. package/build/assets/automation-export-D3a3of4G.js +2 -0
  16. package/build/assets/automation-git-sync-CprN5DcU.js +1 -0
  17. package/build/assets/automation-setup-route-C40kXjMY.js +1 -0
  18. package/build/assets/automation-templates-BRppNh99.js +1 -0
  19. package/build/assets/automations-list-DuNcRawl.js +1 -0
  20. package/build/assets/back-nav-button-Cjl_hoxq.js +1 -0
  21. package/build/assets/backend-form-modal-lhGwzXFI.js +1 -0
  22. package/build/assets/backend-synced-settings-badge-DPkz30BE.js +1 -0
  23. package/build/assets/badge-BU3S0VtE.js +1 -0
  24. package/build/assets/base-modal-D_L0oEbG.js +1 -0
  25. package/build/assets/bot-dMYHVfYM.js +1 -0
  26. package/build/assets/brand-button-BAfk4wGP.js +1 -0
  27. package/build/assets/browser-DSAo0tz1.js +46 -0
  28. package/build/assets/browser-tab-C9vy56R5.js +1 -0
  29. package/build/assets/canvas-extension-page-dx1gFrfW.js +1 -0
  30. package/build/assets/canvas-extensions-8A-XhpgP.js +1 -0
  31. package/build/assets/canvas-extensions-runtime-2_x5Ezmi.js +1 -0
  32. package/build/assets/chat-send-button-MUQqCZCS.js +1 -0
  33. package/build/assets/check-CS0vmpQQ.js +1 -0
  34. package/build/assets/chevron-down-e1QBpjVy.js +1 -0
  35. package/build/assets/chevron-right-ZG4R5G4Q.js +1 -0
  36. package/build/assets/circle-check-DzWLNsbE.js +1 -0
  37. package/build/assets/circle-plus-check-toggle-BO_kFZt3.js +1 -0
  38. package/build/assets/cloud-funnel-analytics-CztBCCPp.js +1 -0
  39. package/build/assets/cog-D-MPQW6G.js +1 -0
  40. package/build/assets/command-menu--UIlGL72.js +1 -0
  41. package/build/assets/commits-tab-AnZwLvh-.js +1 -0
  42. package/build/assets/condenser-settings-DmEOje-7.js +1 -0
  43. package/build/assets/confirmation-modal-Dv1ktp8K.js +1 -0
  44. package/build/assets/context-menu-list-item-I86vKcmM.js +1 -0
  45. package/build/assets/conversation-BbGrAO4Z.js +93 -0
  46. package/build/assets/conversation-mYT6NAoj.js +1 -0
  47. package/build/assets/conversation-panel-mYT6NAoj.js +1 -0
  48. package/build/assets/conversation-state-store-B0ImPLHO.js +1 -0
  49. package/build/assets/conversation-store-Ca3ghXap.js +6 -0
  50. package/build/assets/conversation-tab-empty-state-FIbh_lc8.js +1 -0
  51. package/build/assets/copy-to-clipboard-button-Ca8iSkkA.js +1 -0
  52. package/build/assets/device-verify-Bhn2e_Ye.js +1 -0
  53. package/build/assets/dropdown-classes-Bc1djN0-.js +1 -0
  54. package/build/assets/edit-automation-modal-DadGbJ2u.js +1 -0
  55. package/build/assets/empty-state-BoGVDecT.js +1 -0
  56. package/build/assets/entry.client-CqyPPjOq.js +2 -0
  57. package/build/assets/enum-filter-dropdown-Bgca129f.js +1 -0
  58. package/build/assets/environment-switch-overlay-BmBRT7gv.js +1 -0
  59. package/build/assets/error-state-Body8Ngd.js +1 -0
  60. package/build/assets/extension-module-card-classes-DpeaYhYo.js +1 -0
  61. package/build/assets/extensions-hub-CcDqq_vR.js +1 -0
  62. package/build/assets/extensions-navigation-Cr4yzYk4.js +1 -0
  63. package/build/assets/external-link-DKUlnCQV.js +1 -0
  64. package/build/assets/files-tab-D4o2VyE_.js +1 -0
  65. package/build/assets/form-control-classes-Bkh5FGrD.js +1 -0
  66. package/build/assets/format-model-name-CasAP3nd.js +1 -0
  67. package/build/assets/get-git-path-ChKDVHZp.js +1 -0
  68. package/build/assets/git-repo-dropdown-4ROKl2cB.js +1 -0
  69. package/build/assets/git-repo-dropdown-BkqzkMmM.js +1 -0
  70. package/build/assets/highlighted-source-view-BFRxGT_Q.js +1 -0
  71. package/build/assets/home-ChpSuepX.js +1 -0
  72. package/build/assets/home-DIsB440S.js +1 -0
  73. package/build/assets/home-automation-run-tooltip-BVNDWjAH.js +1 -0
  74. package/build/assets/home-store-CY9Ej0ux.js +1 -0
  75. package/build/assets/index-home-BdlrFIif.js +1 -0
  76. package/build/assets/info-B6RQawoW.js +1 -0
  77. package/build/assets/install-server-modal-Dpy89p4g.js +1 -0
  78. package/build/assets/kebab-menu-item-content-D8hSNGmm.js +1 -0
  79. package/build/assets/key-BmVyxs-2.js +1 -0
  80. package/build/assets/launch-IrTDEFCs.js +1 -0
  81. package/build/assets/list-filter-DsEK7NFC.js +1 -0
  82. package/build/assets/list-todo-apgLVjMw.js +1 -0
  83. package/build/assets/llm-not-configured-banner-CIFABh3K.js +27 -0
  84. package/build/assets/llm-settings-B9juXhIa.js +1 -0
  85. package/build/assets/llm-settings-De1d5dfr.js +1 -0
  86. package/build/assets/llm-subscription-service-BpJ0ouQo.js +1 -0
  87. package/build/assets/loader-circle-CC1au6hc.js +1 -0
  88. package/build/assets/loading-spinner-BY9N3pOe.js +1 -0
  89. package/build/assets/manage-backends-modal-BrPV3oB-.js +1 -0
  90. package/build/assets/manifest-80fb1c29.js +1 -0
  91. package/build/assets/manifest-subpage-layout-CAOYzrYp.js +1 -0
  92. package/build/assets/map-provider-Cu3Zgumb.js +1 -0
  93. package/build/assets/markdown-renderer-BzTlxI8x.js +8 -0
  94. package/build/assets/mcp-BTs_SXfZ.js +1 -0
  95. package/build/assets/mcp-marketplace-utils-AIBzzHTO.js +1 -0
  96. package/build/assets/mcp-page-BEBYqH_K.js +9 -0
  97. package/build/assets/messages-DKV9cRc2.js +41 -0
  98. package/build/assets/modal-body-BxZjsju9.js +1 -0
  99. package/build/assets/modal-classes-C8eycCwG.js +1 -0
  100. package/build/assets/modal-close-button-DDzdRvCs.js +1 -0
  101. package/build/assets/mouse-pointer-click-Co2uyaPA.js +1 -0
  102. package/build/assets/onboarding-DV_OXoeP.js +1 -0
  103. package/build/assets/onboarding-modal-rkyBYkeQ.js +1 -0
  104. package/build/assets/organization-service.api-DrYNkEN_.js +1 -0
  105. package/build/assets/parse-git-remote-url-DpDM9bK6.js +1 -0
  106. package/build/assets/pencil-47jAZH_V.js +1 -0
  107. package/build/assets/pin-By41Vl5J.js +1 -0
  108. package/build/assets/planner-tab-C9uZmhme.js +1 -0
  109. package/build/assets/plug-CG5HFcNG.js +1 -0
  110. package/build/assets/plugins-management-service-BMJgC3Ga.js +1 -0
  111. package/build/assets/plus-C7Slq-0I.js +1 -0
  112. package/build/assets/profiles-service.api-ChoKrL0l.js +1 -0
  113. package/build/assets/providers-BhMcY5nv.js +1 -0
  114. package/build/assets/proxy-9Fe1v5na.js +1 -0
  115. package/build/assets/puzzle-JM_QaRm0.js +1 -0
  116. package/build/assets/recommended-automations-launcher-6ABrI9Cy.js +1 -0
  117. package/build/assets/refresh-cw-3q3Frrii.js +1 -0
  118. package/build/assets/root-Dc8YmC9F.js +2 -0
  119. package/build/assets/root-VDaypvK4.css +1 -0
  120. package/build/assets/root-layout-CXkhSPYh.js +2 -0
  121. package/build/assets/schema-field-D-y9-LDb.js +1 -0
  122. package/build/assets/scroll-fade-state-Dw-i4SGq.js +1 -0
  123. package/build/assets/sdk-section-page-BlFiizlG.js +1 -0
  124. package/build/assets/secret-form-BB7the8W.js +1 -0
  125. package/build/assets/secrets-service-ByZVENbp.js +1 -0
  126. package/build/assets/secrets-settings-B_GpxKW2.js +1 -0
  127. package/build/assets/server-process-C9RKzd1x.js +1 -0
  128. package/build/assets/settings-C0EWuBtA.js +1 -0
  129. package/build/assets/settings-CKqk8ZnH.js +1 -0
  130. package/build/assets/settings-dropdown-input-BcwylHs2.js +1 -0
  131. package/build/assets/settings-index-5w5UW2K3.js +1 -0
  132. package/build/assets/settings-input-Db-1g8Ql.js +1 -0
  133. package/build/assets/settings-list-classes-BzeSZbF2.js +1 -0
  134. package/build/assets/settings-modal-DfJ3tcJQ.js +1 -0
  135. package/build/assets/settings-service.api-DJ1r62Zr.js +1 -0
  136. package/build/assets/settings-switch-CS-dJDmA.js +1 -0
  137. package/build/assets/settings-utils-UYpEdPuD.js +1 -0
  138. package/build/assets/shared-conversation-CA5ISEDy.js +1 -0
  139. package/build/assets/shield-check-D2aCRd16.js +1 -0
  140. package/build/assets/sidebar-layout-D6fS8-Gl.js +1 -0
  141. package/build/assets/sidebar-mobile-menu-toggle-C_fb0Jki.js +1 -0
  142. package/build/assets/sidebar-nav-link-DQQcMf1A.js +1 -0
  143. package/build/assets/sidebar-onboarding-checklist-storage-BBkeI6Bp.js +1 -0
  144. package/build/assets/sidebar-store-DGqHkVLw.js +1 -0
  145. package/build/assets/skill-card-pill-row-B27-xyig.js +1 -0
  146. package/build/assets/skill-enablement-DXeaImBz.js +1 -0
  147. package/build/assets/skill-filter-w__3UCEE.js +2 -0
  148. package/build/assets/skill-icon-badge-RQkq8wvl.js +1 -0
  149. package/build/assets/skill-scope-B42H-XOc.js +1 -0
  150. package/build/assets/skills-plugins-tgF8EiXC.js +1 -0
  151. package/build/assets/skills-settings-BgJ9PaOe.js +1 -0
  152. package/build/assets/styled-tooltip-C4jf5Fv9.js +1 -0
  153. package/build/assets/task-list-tab-C5zcaktH.js +1 -0
  154. package/build/assets/terminal-CNElN42a.js +3 -0
  155. package/build/assets/toggle-switch-ChOLXv2n.js +1 -0
  156. package/build/assets/trash-2-D7K26eDO.js +1 -0
  157. package/build/assets/trash-D-HYiVYM.js +1 -0
  158. package/build/assets/triangle-alert-CtdXWHUI.js +1 -0
  159. package/build/assets/typography-v1KN0tzi.js +1 -0
  160. package/build/assets/usage-tab-CVDffLPt.js +1 -0
  161. package/build/assets/use-acp-credential-form-XIQmpX6M.js +1 -0
  162. package/build/assets/use-activate-agent-profile-BLfmvDiG.js +1 -0
  163. package/build/assets/use-agent-profiles-Bd9Bvvp1.js +1 -0
  164. package/build/assets/use-automation-health-E6NZi9rb.js +1 -0
  165. package/build/assets/use-automations-xijQKIl9.js +1 -0
  166. package/build/assets/use-can-manage-org-profiles-CrJP5262.js +1 -0
  167. package/build/assets/use-canvas-extensions-Bi693ujJ.js +1 -0
  168. package/build/assets/use-cloud-current-user-id-CDfAHpPX.js +1 -0
  169. package/build/assets/use-config-A9QovgXO.js +1 -0
  170. package/build/assets/use-create-conversation-Dx3l7mFZ.js +1 -0
  171. package/build/assets/use-create-secret-B9cUFWRG.js +1 -0
  172. package/build/assets/use-get-secrets-K3jmk-LH.js +1 -0
  173. package/build/assets/use-has-permission-B3C8rQmR.js +1 -0
  174. package/build/assets/use-is-authed-nTBcM7dE.js +1 -0
  175. package/build/assets/use-launch-skill-in-chat-BYjYihBP.js +1 -0
  176. package/build/assets/use-llm-configured-BV9nZ1_j.js +1 -0
  177. package/build/assets/use-llm-profiles-BO-P4Oyo.js +1 -0
  178. package/build/assets/use-manifest-capabilities-Cw_flwEz.js +1 -0
  179. package/build/assets/use-onboarding-completion-D8U7k4Qb.js +1 -0
  180. package/build/assets/use-pinned-home-route-CckOZrmb.js +1 -0
  181. package/build/assets/use-plugins-marketplace-7i94Zu3Z.js +1 -0
  182. package/build/assets/use-save-agent-profile-BUjSsDXK.js +1 -0
  183. package/build/assets/use-save-settings-DYqkKv7T.js +1 -0
  184. package/build/assets/use-settings-DSXLbvBl.js +1 -0
  185. package/build/assets/use-settings-nav-items-CwRw-CmX.js +16 -0
  186. package/build/assets/use-tracking-D53y3TH9.js +3 -0
  187. package/build/assets/use-user-conversation-B9Gebw_g.js +1 -0
  188. package/build/assets/useInfiniteQuery-C926xzY4.js +1 -0
  189. package/build/assets/useMutation-B-qc391N.js +1 -0
  190. package/build/assets/useQueries-DlbhlH9I.js +1 -0
  191. package/build/assets/useQuery-BSTgq1rl.js +1 -0
  192. package/build/assets/utils-CN5ZfZy1.js +1 -0
  193. package/build/assets/vendor~browser-hbU4u2Ag.js +47 -0
  194. package/build/assets/vendor~commits-tab-BaO2Ce3e.js +11 -0
  195. package/build/assets/vendor~conversation-panel~conversation-C8Fn4XOf.js +1 -0
  196. package/build/assets/vendor~entry.client-CoCfUXUF.js +1 -0
  197. package/build/assets/vendor~entry.client-DA2izTjq.js +9 -0
  198. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-DqZDXfg2.js +186 -0
  199. package/build/assets/vendor~index-home~home~conversation-panel~conversation-hWywRBaR.js +13 -0
  200. package/build/assets/vendor~root-layout-C9Ju9DQg.js +1 -0
  201. package/build/assets/vendor~root-layout~conversation-panel~conversation-BMbMgaGu.js +1 -0
  202. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BWir3rJs.js +1 -0
  203. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation-j5MFqfSy.js +1 -0
  204. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-cDuKr-WD.js +1 -0
  205. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-DXqM7vqB.js +1 -0
  206. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iyia17eu-Chf7vmKB.js +1 -0
  207. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~nj1hli3r-DP9wmsjo.js +48 -0
  208. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-CUmIwQCN.js +5053 -0
  209. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C7HiY4Ae.js +8459 -0
  210. package/build/assets/verification-settings-gw_q6vkL.js +1 -0
  211. package/build/assets/wrench-CUEI1krB.js +1 -0
  212. package/build/assets/x-DJdhbdmt.js +1 -0
  213. package/build/index.html +4 -4
  214. package/build/locales/ar/openhands.json +156 -59
  215. package/build/locales/ca/openhands.json +156 -59
  216. package/build/locales/de/openhands.json +156 -59
  217. package/build/locales/en/openhands.json +156 -59
  218. package/build/locales/es/openhands.json +156 -59
  219. package/build/locales/fr/openhands.json +156 -59
  220. package/build/locales/it/openhands.json +156 -59
  221. package/build/locales/ja/openhands.json +156 -59
  222. package/build/locales/ko-KR/openhands.json +156 -59
  223. package/build/locales/no/openhands.json +156 -59
  224. package/build/locales/pt/openhands.json +156 -59
  225. package/build/locales/tr/openhands.json +156 -59
  226. package/build/locales/uk/openhands.json +156 -59
  227. package/build/locales/zh-CN/openhands.json +156 -59
  228. package/build/locales/zh-TW/openhands.json +156 -59
  229. package/config/defaults.json +9 -5
  230. package/dist/api/agent-profiles-service/profile-field-support.d.ts +26 -0
  231. package/dist/api/agent-server-adapter.cjs +3 -3
  232. package/dist/api/agent-server-adapter.cjs.map +1 -1
  233. package/dist/api/agent-server-adapter.d.ts +10 -1
  234. package/dist/api/agent-server-adapter.js +139 -132
  235. package/dist/api/agent-server-adapter.js.map +1 -1
  236. package/dist/api/agent-server-compatibility.cjs +1 -1
  237. package/dist/api/agent-server-compatibility.cjs.map +1 -1
  238. package/dist/api/agent-server-compatibility.d.ts +21 -0
  239. package/dist/api/agent-server-compatibility.js +52 -38
  240. package/dist/api/agent-server-compatibility.js.map +1 -1
  241. package/dist/api/agent-server-config.cjs +1 -1
  242. package/dist/api/agent-server-config.cjs.map +1 -1
  243. package/dist/api/agent-server-config.d.ts +26 -0
  244. package/dist/api/agent-server-config.js +18 -5
  245. package/dist/api/agent-server-config.js.map +1 -1
  246. package/dist/api/automation-service/automation-service.api.cjs +1 -1
  247. package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
  248. package/dist/api/automation-service/automation-service.api.d.ts +13 -2
  249. package/dist/api/automation-service/automation-service.api.js +99 -84
  250. package/dist/api/automation-service/automation-service.api.js.map +1 -1
  251. package/dist/api/backend-registry/url-selection.cjs +1 -1
  252. package/dist/api/backend-registry/url-selection.cjs.map +1 -1
  253. package/dist/api/backend-registry/url-selection.d.ts +2 -1
  254. package/dist/api/backend-registry/url-selection.js +2 -2
  255. package/dist/api/backend-registry/url-selection.js.map +1 -1
  256. package/dist/api/canvas-extensions-service.cjs +1 -0
  257. package/dist/api/canvas-extensions-service.d.ts +22 -0
  258. package/dist/api/canvas-extensions-service.js +4 -0
  259. package/dist/api/cloud/conversation-service.api.cjs +1 -1
  260. package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
  261. package/dist/api/cloud/conversation-service.api.d.ts +6 -0
  262. package/dist/api/cloud/conversation-service.api.js +14 -6
  263. package/dist/api/cloud/conversation-service.api.js.map +1 -1
  264. package/dist/api/conversation-file-upload.api.cjs +1 -1
  265. package/dist/api/conversation-file-upload.api.js +10 -10
  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 +11 -0
  269. package/dist/api/conversation-service/agent-server-conversation-service.api.js +138 -122
  270. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  271. package/dist/api/event-service/event-service.api.cjs +1 -1
  272. package/dist/api/event-service/event-service.api.js +12 -12
  273. package/dist/api/git-provider-items-service.cjs +2 -0
  274. package/dist/api/git-provider-items-service.cjs.map +1 -0
  275. package/dist/api/git-provider-items-service.d.ts +25 -0
  276. package/dist/api/git-provider-items-service.js +127 -0
  277. package/dist/api/git-provider-items-service.js.map +1 -0
  278. package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
  279. package/dist/api/git-service/agent-server-git-service.api.js +8 -8
  280. package/dist/api/mcp-health/probe-mcp-server-health.cjs +1 -1
  281. package/dist/api/mcp-health/probe-mcp-server-health.js +31 -31
  282. package/dist/api/open-hands.types.d.ts +0 -19
  283. package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
  284. package/dist/api/profiles-service/profiles-service.api.d.ts +16 -2
  285. package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
  286. package/dist/api/provider-connections-service/provider-connections-service.api.cjs +2 -0
  287. package/dist/api/provider-connections-service/provider-connections-service.api.cjs.map +1 -0
  288. package/dist/api/provider-connections-service/provider-connections-service.api.d.ts +34 -0
  289. package/dist/api/provider-connections-service/provider-connections-service.api.js +50 -0
  290. package/dist/api/provider-connections-service/provider-connections-service.api.js.map +1 -0
  291. package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
  292. package/dist/api/runtime-service/agent-server-runtime-service.js +8 -8
  293. package/dist/api/settings-service/settings-service.api.cjs +1 -1
  294. package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
  295. package/dist/api/settings-service/settings-service.api.d.ts +3 -2
  296. package/dist/api/settings-service/settings-service.api.js +2 -1
  297. package/dist/api/settings-service/settings-service.api.js.map +1 -1
  298. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs +1 -1
  299. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs.map +1 -1
  300. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js +1 -1
  301. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js.map +1 -1
  302. package/dist/components/conversation-events/chat/event-message-components/event-group.cjs +1 -1
  303. package/dist/components/conversation-events/chat/event-message-components/event-group.cjs.map +1 -1
  304. package/dist/components/conversation-events/chat/event-message-components/event-group.js +40 -36
  305. package/dist/components/conversation-events/chat/event-message-components/event-group.js.map +1 -1
  306. package/dist/components/conversation-events/chat/event-message.cjs +1 -1
  307. package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
  308. package/dist/components/conversation-events/chat/event-message.js +1 -1
  309. package/dist/components/conversation-events/chat/event-message.js.map +1 -1
  310. package/dist/components/conversation-events/chat/messages.cjs.map +1 -1
  311. package/dist/components/conversation-events/chat/messages.js.map +1 -1
  312. package/dist/components/features/automations/add-automation-menu.d.ts +7 -0
  313. package/dist/components/features/automations/add-automation-modal.cjs +2 -0
  314. package/dist/components/features/automations/add-automation-modal.cjs.map +1 -0
  315. package/dist/components/features/automations/add-automation-modal.js +42 -0
  316. package/dist/components/features/automations/add-automation-modal.js.map +1 -0
  317. package/dist/components/features/automations/automation-action-button-classes.cjs +2 -0
  318. package/dist/components/features/automations/automation-action-button-classes.cjs.map +1 -0
  319. package/dist/components/features/automations/automation-action-button-classes.d.ts +0 -2
  320. package/dist/components/features/automations/automation-action-button-classes.js +8 -0
  321. package/dist/components/features/automations/automation-action-button-classes.js.map +1 -0
  322. package/dist/components/features/automations/automation-card-skeleton.cjs +2 -0
  323. package/dist/components/features/automations/automation-card-skeleton.cjs.map +1 -0
  324. package/dist/components/features/automations/automation-card-skeleton.js +33 -0
  325. package/dist/components/features/automations/automation-card-skeleton.js.map +1 -0
  326. package/dist/components/features/automations/automation-card.cjs +2 -0
  327. package/dist/components/features/automations/automation-card.cjs.map +1 -0
  328. package/dist/components/features/automations/automation-card.d.ts +1 -1
  329. package/dist/components/features/automations/automation-card.js +170 -0
  330. package/dist/components/features/automations/automation-card.js.map +1 -0
  331. package/dist/components/features/automations/automation-group.cjs +2 -0
  332. package/dist/components/features/automations/automation-group.cjs.map +1 -0
  333. package/dist/components/features/automations/automation-group.js +54 -0
  334. package/dist/components/features/automations/automation-group.js.map +1 -0
  335. package/dist/components/features/automations/automation-list-row.cjs +2 -0
  336. package/dist/components/features/automations/automation-list-row.cjs.map +1 -0
  337. package/dist/components/features/automations/automation-list-row.js +152 -0
  338. package/dist/components/features/automations/automation-list-row.js.map +1 -0
  339. package/dist/components/features/automations/automation-run-insights.cjs +2 -0
  340. package/dist/components/features/automations/automation-run-insights.cjs.map +1 -0
  341. package/dist/components/features/automations/automation-run-insights.js +46 -0
  342. package/dist/components/features/automations/automation-run-insights.js.map +1 -0
  343. package/dist/components/features/automations/automation-view-mode.cjs +2 -0
  344. package/dist/components/features/automations/automation-view-mode.cjs.map +1 -0
  345. package/dist/components/features/automations/automation-view-mode.d.ts +5 -1
  346. package/dist/components/features/automations/automation-view-mode.js +6 -0
  347. package/dist/components/features/automations/automation-view-mode.js.map +1 -0
  348. package/dist/components/features/automations/backend-not-configured.cjs +2 -0
  349. package/dist/components/features/automations/backend-not-configured.cjs.map +1 -0
  350. package/dist/components/features/automations/backend-not-configured.js +34 -0
  351. package/dist/components/features/automations/backend-not-configured.js.map +1 -0
  352. package/dist/components/features/automations/build-automation-menu-items.cjs +2 -0
  353. package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -0
  354. package/dist/components/features/automations/build-automation-menu-items.js +53 -0
  355. package/dist/components/features/automations/build-automation-menu-items.js.map +1 -0
  356. package/dist/components/features/automations/build-automation-pills.cjs +2 -0
  357. package/dist/components/features/automations/build-automation-pills.cjs.map +1 -0
  358. package/dist/components/features/automations/build-automation-pills.js +71 -0
  359. package/dist/components/features/automations/build-automation-pills.js.map +1 -0
  360. package/dist/components/features/automations/create-instructions.cjs +2 -0
  361. package/dist/components/features/automations/create-instructions.cjs.map +1 -0
  362. package/dist/components/features/automations/create-instructions.js +102 -0
  363. package/dist/components/features/automations/create-instructions.js.map +1 -0
  364. package/dist/components/features/automations/dashboard/automations-dashboard-controls.d.ts +4 -3
  365. package/dist/components/features/automations/detail/run-phase.cjs +2 -0
  366. package/dist/components/features/automations/detail/run-phase.cjs.map +1 -0
  367. package/dist/components/features/automations/detail/run-phase.d.ts +89 -0
  368. package/dist/components/features/automations/detail/run-phase.js +72 -0
  369. package/dist/components/features/automations/detail/run-phase.js.map +1 -0
  370. package/dist/components/features/automations/detail/run-status-badge.cjs +2 -0
  371. package/dist/components/features/automations/detail/run-status-badge.cjs.map +1 -0
  372. package/dist/components/features/automations/detail/run-status-badge.js +102 -0
  373. package/dist/components/features/automations/detail/run-status-badge.js.map +1 -0
  374. package/dist/components/features/automations/empty-state.cjs +2 -0
  375. package/dist/components/features/automations/empty-state.cjs.map +1 -0
  376. package/dist/components/features/automations/empty-state.js +35 -0
  377. package/dist/components/features/automations/empty-state.js.map +1 -0
  378. package/dist/components/features/automations/error-state.cjs +2 -0
  379. package/dist/components/features/automations/error-state.cjs.map +1 -0
  380. package/dist/components/features/automations/error-state.js +28 -0
  381. package/dist/components/features/automations/error-state.js.map +1 -0
  382. package/dist/components/features/automations/import-automation-modal.d.ts +2 -1
  383. package/dist/components/features/automations/kebab-menu-item-content.cjs +2 -0
  384. package/dist/components/features/automations/kebab-menu-item-content.cjs.map +1 -0
  385. package/dist/components/features/automations/kebab-menu-item-content.js +21 -0
  386. package/dist/components/features/automations/kebab-menu-item-content.js.map +1 -0
  387. package/dist/components/features/automations/kebab-menu.cjs +2 -0
  388. package/dist/components/features/automations/kebab-menu.cjs.map +1 -0
  389. package/dist/components/features/automations/kebab-menu.d.ts +2 -1
  390. package/dist/components/features/automations/kebab-menu.js +76 -0
  391. package/dist/components/features/automations/kebab-menu.js.map +1 -0
  392. package/dist/components/features/automations/recommended-automations-launcher.cjs +2 -0
  393. package/dist/components/features/automations/recommended-automations-launcher.cjs.map +1 -0
  394. package/dist/components/features/automations/recommended-automations-launcher.d.ts +7 -1
  395. package/dist/components/features/automations/recommended-automations-launcher.js +134 -0
  396. package/dist/components/features/automations/recommended-automations-launcher.js.map +1 -0
  397. package/dist/components/features/automations/recommended-automations-rail.cjs +2 -0
  398. package/dist/components/features/automations/recommended-automations-rail.cjs.map +1 -0
  399. package/dist/components/features/automations/recommended-automations-rail.d.ts +9 -0
  400. package/dist/components/features/automations/recommended-automations-rail.js +127 -0
  401. package/dist/components/features/automations/recommended-automations-rail.js.map +1 -0
  402. package/dist/components/features/automations/recommended-automations-section.cjs +2 -0
  403. package/dist/components/features/automations/recommended-automations-section.cjs.map +1 -0
  404. package/dist/components/features/automations/recommended-automations-section.d.ts +2 -2
  405. package/dist/components/features/automations/recommended-automations-section.js +198 -0
  406. package/dist/components/features/automations/recommended-automations-section.js.map +1 -0
  407. package/dist/components/features/automations/responder-deployment-modal.cjs +2 -0
  408. package/dist/components/features/automations/responder-deployment-modal.cjs.map +1 -0
  409. package/dist/components/features/automations/responder-deployment-modal.js +75 -0
  410. package/dist/components/features/automations/responder-deployment-modal.js.map +1 -0
  411. package/dist/components/features/automations/status-badge.cjs +2 -0
  412. package/dist/components/features/automations/status-badge.cjs.map +1 -0
  413. package/dist/components/features/automations/status-badge.js +12 -0
  414. package/dist/components/features/automations/status-badge.js.map +1 -0
  415. package/dist/components/features/automations/to-latest-run-state.cjs +2 -0
  416. package/dist/components/features/automations/to-latest-run-state.cjs.map +1 -0
  417. package/dist/components/features/automations/to-latest-run-state.d.ts +6 -0
  418. package/dist/components/features/automations/to-latest-run-state.js +21 -0
  419. package/dist/components/features/automations/to-latest-run-state.js.map +1 -0
  420. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  421. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  422. package/dist/components/features/backends/backend-form-modal.js +15 -21
  423. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  424. package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
  425. package/dist/components/features/backends/manage-backends-modal.js +5 -5
  426. package/dist/components/features/canvas-extensions/add-canvas-extension-modal.d.ts +6 -0
  427. package/dist/components/features/canvas-extensions/canvas-extension-card.d.ts +9 -0
  428. package/dist/components/features/canvas-extensions/canvas-extensions-runtime.cjs +2 -0
  429. package/dist/components/features/canvas-extensions/canvas-extensions-runtime.cjs.map +1 -0
  430. package/dist/components/features/canvas-extensions/canvas-extensions-runtime.d.ts +23 -0
  431. package/dist/components/features/canvas-extensions/canvas-extensions-runtime.js +19 -0
  432. package/dist/components/features/canvas-extensions/canvas-extensions-runtime.js.map +1 -0
  433. package/dist/components/features/chat/chat-interface.cjs +2 -2
  434. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  435. package/dist/components/features/chat/chat-interface.js +138 -133
  436. package/dist/components/features/chat/chat-interface.js.map +1 -1
  437. package/dist/components/features/chat/chat-markdown-path-code.cjs +3 -0
  438. package/dist/components/features/chat/chat-markdown-path-code.cjs.map +1 -0
  439. package/dist/components/features/chat/chat-markdown-path-code.d.ts +27 -0
  440. package/dist/components/features/chat/chat-markdown-path-code.js +72 -0
  441. package/dist/components/features/chat/chat-markdown-path-code.js.map +1 -0
  442. package/dist/components/features/chat/path-component.cjs +1 -1
  443. package/dist/components/features/chat/path-component.cjs.map +1 -1
  444. package/dist/components/features/chat/path-component.d.ts +8 -2
  445. package/dist/components/features/chat/path-component.js +33 -21
  446. package/dist/components/features/chat/path-component.js.map +1 -1
  447. package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.cjs +1 -1
  448. package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.cjs.map +1 -1
  449. package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.js +38 -43
  450. package/dist/components/features/chat/tool-visualizers/file-editor/file-editor.js.map +1 -1
  451. package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.cjs +1 -1
  452. package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.cjs.map +1 -1
  453. package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.d.ts +8 -5
  454. package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.js +22 -16
  455. package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.js.map +1 -1
  456. package/dist/components/features/chat/user-message-body.cjs +1 -1
  457. package/dist/components/features/chat/user-message-body.cjs.map +1 -1
  458. package/dist/components/features/chat/user-message-body.d.ts +4 -0
  459. package/dist/components/features/chat/user-message-body.js +30 -24
  460. package/dist/components/features/chat/user-message-body.js.map +1 -1
  461. package/dist/components/features/command-menu/command-menu-items.d.ts +10 -4
  462. package/dist/components/features/conversation/conversation-git-actions-menu.cjs +2 -0
  463. package/dist/components/features/conversation/conversation-git-actions-menu.cjs.map +1 -0
  464. package/dist/components/features/conversation/conversation-git-actions-menu.d.ts +15 -0
  465. package/dist/components/features/conversation/conversation-git-actions-menu.js +123 -0
  466. package/dist/components/features/conversation/conversation-git-actions-menu.js.map +1 -0
  467. package/dist/components/features/conversation/conversation-git-actions-toggle.cjs +2 -0
  468. package/dist/components/features/conversation/conversation-git-actions-toggle.cjs.map +1 -0
  469. package/dist/components/features/conversation/conversation-git-actions-toggle.d.ts +10 -0
  470. package/dist/components/features/conversation/conversation-git-actions-toggle.js +60 -0
  471. package/dist/components/features/conversation/conversation-git-actions-toggle.js.map +1 -0
  472. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs +1 -1
  473. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs.map +1 -1
  474. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js +46 -10
  475. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js.map +1 -1
  476. package/dist/components/features/conversation/conversation-main/conversation-main.cjs +1 -1
  477. package/dist/components/features/conversation/conversation-main/conversation-main.cjs.map +1 -1
  478. package/dist/components/features/conversation/conversation-main/conversation-main.js +49 -43
  479. package/dist/components/features/conversation/conversation-main/conversation-main.js.map +1 -1
  480. package/dist/components/features/conversation/conversation-name-with-status.cjs +1 -1
  481. package/dist/components/features/conversation/conversation-name-with-status.cjs.map +1 -1
  482. package/dist/components/features/conversation/conversation-name-with-status.js +49 -40
  483. package/dist/components/features/conversation/conversation-name-with-status.js.map +1 -1
  484. package/dist/components/features/conversation/conversation-name.cjs +1 -1
  485. package/dist/components/features/conversation/conversation-name.js +4 -4
  486. package/dist/components/features/conversation/conversation-overview-automations-panel.cjs +2 -0
  487. package/dist/components/features/conversation/conversation-overview-automations-panel.cjs.map +1 -0
  488. package/dist/components/features/conversation/conversation-overview-automations-panel.d.ts +6 -0
  489. package/dist/components/features/conversation/conversation-overview-automations-panel.js +48 -0
  490. package/dist/components/features/conversation/conversation-overview-automations-panel.js.map +1 -0
  491. package/dist/components/features/conversation/conversation-overview-context-menu.cjs +2 -0
  492. package/dist/components/features/conversation/conversation-overview-context-menu.cjs.map +1 -0
  493. package/dist/components/features/conversation/conversation-overview-context-menu.d.ts +10 -0
  494. package/dist/components/features/conversation/conversation-overview-context-menu.js +221 -0
  495. package/dist/components/features/conversation/conversation-overview-context-menu.js.map +1 -0
  496. package/dist/components/features/conversation/conversation-overview-diffs-row.cjs +2 -0
  497. package/dist/components/features/conversation/conversation-overview-diffs-row.cjs.map +1 -0
  498. package/dist/components/features/conversation/conversation-overview-diffs-row.d.ts +2 -0
  499. package/dist/components/features/conversation/conversation-overview-diffs-row.js +88 -0
  500. package/dist/components/features/conversation/conversation-overview-diffs-row.js.map +1 -0
  501. package/dist/components/features/conversation/conversation-overview-drawer-content.cjs +2 -0
  502. package/dist/components/features/conversation/conversation-overview-drawer-content.cjs.map +1 -0
  503. package/dist/components/features/conversation/conversation-overview-drawer-content.d.ts +6 -0
  504. package/dist/components/features/conversation/conversation-overview-drawer-content.js +138 -0
  505. package/dist/components/features/conversation/conversation-overview-drawer-content.js.map +1 -0
  506. package/dist/components/features/conversation/conversation-overview-drawer-context.cjs +2 -0
  507. package/dist/components/features/conversation/conversation-overview-drawer-context.cjs.map +1 -0
  508. package/dist/components/features/conversation/conversation-overview-drawer-context.d.ts +17 -0
  509. package/dist/components/features/conversation/conversation-overview-drawer-context.js +43 -0
  510. package/dist/components/features/conversation/conversation-overview-drawer-context.js.map +1 -0
  511. package/dist/components/features/conversation/conversation-overview-drawer.cjs +2 -0
  512. package/dist/components/features/conversation/conversation-overview-drawer.cjs.map +1 -0
  513. package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs +2 -0
  514. package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs.map +1 -0
  515. package/dist/components/features/conversation/conversation-overview-drawer.constants.d.ts +6 -0
  516. package/dist/components/features/conversation/conversation-overview-drawer.constants.js +6 -0
  517. package/dist/components/features/conversation/conversation-overview-drawer.constants.js.map +1 -0
  518. package/dist/components/features/conversation/conversation-overview-drawer.d.ts +7 -0
  519. package/dist/components/features/conversation/conversation-overview-drawer.js +45 -0
  520. package/dist/components/features/conversation/conversation-overview-drawer.js.map +1 -0
  521. package/dist/components/features/conversation/conversation-overview-drawer.types.cjs +2 -0
  522. package/dist/components/features/conversation/conversation-overview-drawer.types.cjs.map +1 -0
  523. package/dist/components/features/conversation/conversation-overview-drawer.types.d.ts +12 -0
  524. package/dist/components/features/conversation/conversation-overview-drawer.types.js +13 -0
  525. package/dist/components/features/conversation/conversation-overview-drawer.types.js.map +1 -0
  526. package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs +2 -0
  527. package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs.map +1 -0
  528. package/dist/components/features/conversation/conversation-overview-git-items-panel.d.ts +7 -0
  529. package/dist/components/features/conversation/conversation-overview-git-items-panel.js +81 -0
  530. package/dist/components/features/conversation/conversation-overview-git-items-panel.js.map +1 -0
  531. package/dist/components/features/conversation/conversation-overview-git-section.cjs +2 -0
  532. package/dist/components/features/conversation/conversation-overview-git-section.cjs.map +1 -0
  533. package/dist/components/features/conversation/conversation-overview-git-section.d.ts +6 -0
  534. package/dist/components/features/conversation/conversation-overview-git-section.js +143 -0
  535. package/dist/components/features/conversation/conversation-overview-git-section.js.map +1 -0
  536. package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs +2 -0
  537. package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs.map +1 -0
  538. package/dist/components/features/conversation/conversation-overview-mcp-panel.d.ts +6 -0
  539. package/dist/components/features/conversation/conversation-overview-mcp-panel.js +108 -0
  540. package/dist/components/features/conversation/conversation-overview-mcp-panel.js.map +1 -0
  541. package/dist/components/features/conversation/conversation-overview-panel.cjs +2 -0
  542. package/dist/components/features/conversation/conversation-overview-panel.cjs.map +1 -0
  543. package/dist/components/features/conversation/conversation-overview-panel.constants.cjs +2 -0
  544. package/dist/components/features/conversation/conversation-overview-panel.constants.cjs.map +1 -0
  545. package/dist/components/features/conversation/conversation-overview-panel.constants.d.ts +24 -0
  546. package/dist/components/features/conversation/conversation-overview-panel.constants.js +12 -0
  547. package/dist/components/features/conversation/conversation-overview-panel.constants.js.map +1 -0
  548. package/dist/components/features/conversation/conversation-overview-panel.d.ts +2 -0
  549. package/dist/components/features/conversation/conversation-overview-panel.js +102 -0
  550. package/dist/components/features/conversation/conversation-overview-panel.js.map +1 -0
  551. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs +2 -0
  552. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs.map +1 -0
  553. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.d.ts +8 -0
  554. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js +29 -0
  555. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js.map +1 -0
  556. package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs +2 -0
  557. package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs.map +1 -0
  558. package/dist/components/features/conversation/conversation-overview-secrets-panel.d.ts +6 -0
  559. package/dist/components/features/conversation/conversation-overview-secrets-panel.js +89 -0
  560. package/dist/components/features/conversation/conversation-overview-secrets-panel.js.map +1 -0
  561. package/dist/components/features/conversation/conversation-overview-sections.cjs +2 -0
  562. package/dist/components/features/conversation/conversation-overview-sections.cjs.map +1 -0
  563. package/dist/components/features/conversation/conversation-overview-sections.d.ts +43 -0
  564. package/dist/components/features/conversation/conversation-overview-sections.js +27 -0
  565. package/dist/components/features/conversation/conversation-overview-sections.js.map +1 -0
  566. package/dist/components/features/conversation/conversation-overview-skills-panel.cjs +2 -0
  567. package/dist/components/features/conversation/conversation-overview-skills-panel.cjs.map +1 -0
  568. package/dist/components/features/conversation/conversation-overview-skills-panel.d.ts +6 -0
  569. package/dist/components/features/conversation/conversation-overview-skills-panel.js +120 -0
  570. package/dist/components/features/conversation/conversation-overview-skills-panel.js.map +1 -0
  571. package/dist/components/features/conversation/conversation-overview-toggle.cjs +2 -0
  572. package/dist/components/features/conversation/conversation-overview-toggle.cjs.map +1 -0
  573. package/dist/components/features/conversation/conversation-overview-toggle.d.ts +11 -0
  574. package/dist/components/features/conversation/conversation-overview-toggle.js +99 -0
  575. package/dist/components/features/conversation/conversation-overview-toggle.js.map +1 -0
  576. package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs +2 -0
  577. package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs.map +1 -0
  578. package/dist/components/features/conversation/conversation-secondary-drawer.classes.d.ts +4 -0
  579. package/dist/components/features/conversation/conversation-secondary-drawer.classes.js +7 -0
  580. package/dist/components/features/conversation/conversation-secondary-drawer.classes.js.map +1 -0
  581. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs +1 -1
  582. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs.map +1 -1
  583. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js +10 -9
  584. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js.map +1 -1
  585. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
  586. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
  587. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +68 -62
  588. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
  589. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
  590. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
  591. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +89 -79
  592. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
  593. package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs +1 -1
  594. package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.cjs.map +1 -1
  595. package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.d.ts +1 -1
  596. package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js +3 -3
  597. package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.js.map +1 -1
  598. package/dist/components/features/conversation/right-panel-toggle.cjs +1 -1
  599. package/dist/components/features/conversation/right-panel-toggle.cjs.map +1 -1
  600. package/dist/components/features/conversation/right-panel-toggle.d.ts +3 -2
  601. package/dist/components/features/conversation/right-panel-toggle.js +34 -33
  602. package/dist/components/features/conversation/right-panel-toggle.js.map +1 -1
  603. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs +1 -1
  604. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs.map +1 -1
  605. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.d.ts +2 -1
  606. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js +14 -7
  607. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js.map +1 -1
  608. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  609. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  610. package/dist/components/features/conversation-panel/conversation-panel.js +252 -225
  611. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  612. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
  613. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
  614. package/dist/components/features/conversation-panel/local-new-conversation-menu.js +4 -4
  615. package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
  616. package/dist/components/features/conversation-panel/skills-modal.cjs +1 -1
  617. package/dist/components/features/conversation-panel/skills-modal.cjs.map +1 -1
  618. package/dist/components/features/conversation-panel/skills-modal.js +29 -28
  619. package/dist/components/features/conversation-panel/skills-modal.js.map +1 -1
  620. package/dist/components/features/diff-viewer/accordion-panel.cjs +2 -0
  621. package/dist/components/features/diff-viewer/accordion-panel.cjs.map +1 -0
  622. package/dist/components/features/diff-viewer/accordion-panel.d.ts +13 -0
  623. package/dist/components/features/diff-viewer/accordion-panel.js +41 -0
  624. package/dist/components/features/diff-viewer/accordion-panel.js.map +1 -0
  625. package/dist/components/features/diff-viewer/commit-list.cjs +1 -1
  626. package/dist/components/features/diff-viewer/commit-list.cjs.map +1 -1
  627. package/dist/components/features/diff-viewer/commit-list.d.ts +5 -1
  628. package/dist/components/features/diff-viewer/commit-list.js +30 -16
  629. package/dist/components/features/diff-viewer/commit-list.js.map +1 -1
  630. package/dist/components/features/diff-viewer/commit-row.cjs +1 -1
  631. package/dist/components/features/diff-viewer/commit-row.cjs.map +1 -1
  632. package/dist/components/features/diff-viewer/commit-row.d.ts +1 -2
  633. package/dist/components/features/diff-viewer/commit-row.js +38 -34
  634. package/dist/components/features/diff-viewer/commit-row.js.map +1 -1
  635. package/dist/components/features/diff-viewer/diff-change-list.cjs +2 -0
  636. package/dist/components/features/diff-viewer/diff-change-list.cjs.map +1 -0
  637. package/dist/components/features/diff-viewer/diff-change-list.d.ts +18 -0
  638. package/dist/components/features/diff-viewer/diff-change-list.js +22 -0
  639. package/dist/components/features/diff-viewer/diff-change-list.js.map +1 -0
  640. package/dist/components/features/diff-viewer/editor-container.cjs +1 -1
  641. package/dist/components/features/diff-viewer/editor-container.cjs.map +1 -1
  642. package/dist/components/features/diff-viewer/editor-container.d.ts +2 -1
  643. package/dist/components/features/diff-viewer/editor-container.js +8 -7
  644. package/dist/components/features/diff-viewer/editor-container.js.map +1 -1
  645. package/dist/components/features/diff-viewer/file-diff-viewer.cjs +1 -1
  646. package/dist/components/features/diff-viewer/file-diff-viewer.cjs.map +1 -1
  647. package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +10 -1
  648. package/dist/components/features/diff-viewer/file-diff-viewer.js +138 -112
  649. package/dist/components/features/diff-viewer/file-diff-viewer.js.map +1 -1
  650. package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs +2 -0
  651. package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs.map +1 -0
  652. package/dist/components/features/diff-viewer/uncommitted-changes-row.d.ts +12 -0
  653. package/dist/components/features/diff-viewer/uncommitted-changes-row.js +51 -0
  654. package/dist/components/features/diff-viewer/uncommitted-changes-row.js.map +1 -0
  655. package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
  656. package/dist/components/features/files-tab/file-content-viewer.cjs.map +1 -1
  657. package/dist/components/features/files-tab/file-content-viewer.js +5 -6
  658. package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
  659. package/dist/components/features/files-tab/file-quick-row.cjs +1 -1
  660. package/dist/components/features/files-tab/file-quick-row.cjs.map +1 -1
  661. package/dist/components/features/files-tab/file-quick-row.d.ts +9 -7
  662. package/dist/components/features/files-tab/file-quick-row.js +63 -34
  663. package/dist/components/features/files-tab/file-quick-row.js.map +1 -1
  664. package/dist/components/features/files-tab/files-tab-tree.constants.cjs +2 -0
  665. package/dist/components/features/files-tab/files-tab-tree.constants.cjs.map +1 -0
  666. package/dist/components/features/files-tab/files-tab-tree.constants.d.ts +7 -0
  667. package/dist/components/features/files-tab/files-tab-tree.constants.js +6 -0
  668. package/dist/components/features/files-tab/files-tab-tree.constants.js.map +1 -0
  669. package/dist/components/features/files-tab/segmented-toggle.cjs +1 -1
  670. package/dist/components/features/files-tab/segmented-toggle.cjs.map +1 -1
  671. package/dist/components/features/files-tab/segmented-toggle.d.ts +5 -3
  672. package/dist/components/features/files-tab/segmented-toggle.js +10 -13
  673. package/dist/components/features/files-tab/segmented-toggle.js.map +1 -1
  674. package/dist/components/features/files-tab/tree-node.cjs +1 -1
  675. package/dist/components/features/files-tab/tree-node.cjs.map +1 -1
  676. package/dist/components/features/files-tab/tree-node.js +34 -32
  677. package/dist/components/features/files-tab/tree-node.js.map +1 -1
  678. package/dist/components/features/files-tab/workspace-path.cjs +2 -0
  679. package/dist/components/features/files-tab/workspace-path.cjs.map +1 -0
  680. package/dist/components/features/files-tab/workspace-path.d.ts +6 -0
  681. package/dist/components/features/files-tab/workspace-path.js +41 -0
  682. package/dist/components/features/files-tab/workspace-path.js.map +1 -0
  683. package/dist/components/features/home/featured-automations/automation-health-indicator.cjs +2 -0
  684. package/dist/components/features/home/featured-automations/automation-health-indicator.cjs.map +1 -0
  685. package/dist/components/features/home/featured-automations/automation-health-indicator.js +22 -0
  686. package/dist/components/features/home/featured-automations/automation-health-indicator.js.map +1 -0
  687. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs +2 -0
  688. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs.map +1 -0
  689. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js +45 -0
  690. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js.map +1 -0
  691. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs +2 -0
  692. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs.map +1 -0
  693. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js +108 -0
  694. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js.map +1 -0
  695. package/dist/components/features/home/featured-automations/automation-run-health.cjs +2 -0
  696. package/dist/components/features/home/featured-automations/automation-run-health.cjs.map +1 -0
  697. package/dist/components/features/home/featured-automations/automation-run-health.js +75 -0
  698. package/dist/components/features/home/featured-automations/automation-run-health.js.map +1 -0
  699. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +2 -0
  700. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -0
  701. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +96 -0
  702. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -0
  703. package/dist/components/features/home/featured-automations/pinned-automation-card.d.ts +3 -3
  704. package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs +1 -1
  705. package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs.map +1 -1
  706. package/dist/components/features/home/git-repo-dropdown/use-url-search.js +1 -1
  707. package/dist/components/features/home/git-repo-dropdown/use-url-search.js.map +1 -1
  708. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs +1 -1
  709. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js +6 -6
  710. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
  711. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +6 -6
  712. package/dist/components/features/manifest/manifest-form-field.d.ts +4 -3
  713. package/dist/components/features/manifest/manifest-icons.cjs +2 -0
  714. package/dist/components/features/manifest/manifest-icons.cjs.map +1 -0
  715. package/dist/components/features/manifest/manifest-icons.d.ts +1 -0
  716. package/dist/components/features/manifest/manifest-icons.js +21 -0
  717. package/dist/components/features/manifest/manifest-icons.js.map +1 -0
  718. package/dist/components/features/manifest/manifest-repository-list.d.ts +25 -0
  719. package/dist/components/features/markdown/markdown-table-scroll.cjs +1 -1
  720. package/dist/components/features/markdown/markdown-table-scroll.cjs.map +1 -1
  721. package/dist/components/features/markdown/markdown-table-scroll.d.ts +2 -6
  722. package/dist/components/features/markdown/markdown-table-scroll.js +15 -21
  723. package/dist/components/features/markdown/markdown-table-scroll.js.map +1 -1
  724. package/dist/components/features/mcp-logo-badge.cjs +1 -1
  725. package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
  726. package/dist/components/features/mcp-logo-badge.d.ts +1 -1
  727. package/dist/components/features/mcp-logo-badge.js +1 -0
  728. package/dist/components/features/mcp-logo-badge.js.map +1 -1
  729. package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
  730. package/dist/components/features/mcp-page/custom-server-editor.js +16 -16
  731. package/dist/components/features/mcp-page/index.cjs +1 -1
  732. package/dist/components/features/mcp-page/index.js +2 -2
  733. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  734. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  735. package/dist/components/features/mcp-page/install-server-modal.js +25 -25
  736. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  737. package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
  738. package/dist/components/features/mcp-page/installed-server-card.js +5 -5
  739. package/dist/components/features/mcp-page/marketplace-card.cjs +1 -1
  740. package/dist/components/features/mcp-page/marketplace-card.js +4 -4
  741. package/dist/components/features/mcp-page/marketplace-section.cjs +1 -1
  742. package/dist/components/features/mcp-page/marketplace-section.js +3 -3
  743. package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs +2 -0
  744. package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs.map +1 -0
  745. package/dist/components/features/mcp-page/mcp-logo-stack-badge.js +60 -0
  746. package/dist/components/features/mcp-page/mcp-logo-stack-badge.js.map +1 -0
  747. package/dist/components/features/mcp-page/mcp-server-health.cjs +1 -1
  748. package/dist/components/features/mcp-page/mcp-server-health.js +18 -18
  749. package/dist/components/features/onboarding/onboarding-host.d.ts +3 -4
  750. package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +5 -9
  751. package/dist/components/features/onboarding/use-onboarding-completion.cjs +2 -0
  752. package/dist/components/features/onboarding/use-onboarding-completion.cjs.map +1 -0
  753. package/dist/components/features/onboarding/use-onboarding-completion.js +32 -0
  754. package/dist/components/features/onboarding/use-onboarding-completion.js.map +1 -0
  755. package/dist/components/features/settings/acp-auth-status-banner.d.ts +23 -6
  756. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs +2 -0
  757. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs.map +1 -0
  758. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.d.ts +1 -0
  759. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js +22 -0
  760. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js.map +1 -0
  761. package/dist/components/features/settings/brand-button.cjs +1 -1
  762. package/dist/components/features/settings/brand-button.cjs.map +1 -1
  763. package/dist/components/features/settings/brand-button.d.ts +2 -0
  764. package/dist/components/features/settings/brand-button.js +4 -2
  765. package/dist/components/features/settings/brand-button.js.map +1 -1
  766. package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.cjs +1 -0
  767. package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.d.ts +7 -0
  768. package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.js +7 -0
  769. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.cjs +1 -1
  770. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.js +3 -0
  771. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  772. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -0
  773. package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +20 -1
  774. package/dist/components/features/settings/llm-profiles/provider-connection-modal.cjs +1 -0
  775. package/dist/components/features/settings/llm-profiles/provider-connection-modal.d.ts +19 -0
  776. package/dist/components/features/settings/llm-profiles/provider-connection-modal.js +13 -0
  777. package/dist/components/features/settings/llm-profiles/provider-connection-row.cjs +1 -0
  778. package/dist/components/features/settings/llm-profiles/provider-connection-row.d.ts +10 -0
  779. package/dist/components/features/settings/llm-profiles/provider-connection-row.js +6 -0
  780. package/dist/components/features/settings/llm-profiles/provider-connections-manager.cjs +1 -0
  781. package/dist/components/features/settings/llm-profiles/provider-connections-manager.d.ts +15 -0
  782. package/dist/components/features/settings/llm-profiles/provider-connections-manager.js +8 -0
  783. package/dist/components/features/settings/sdk-settings/field-help.cjs +1 -1
  784. package/dist/components/features/settings/sdk-settings/field-help.cjs.map +1 -1
  785. package/dist/components/features/settings/sdk-settings/field-help.d.ts +1 -1
  786. package/dist/components/features/settings/sdk-settings/field-help.js +1 -1
  787. package/dist/components/features/settings/sdk-settings/field-help.js.map +1 -1
  788. package/dist/components/features/settings/sdk-settings/schema-field.cjs +1 -1
  789. package/dist/components/features/settings/sdk-settings/schema-field.js +6 -6
  790. package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
  791. package/dist/components/features/settings/sdk-settings/sdk-section-page.js +9 -9
  792. package/dist/components/features/settings/secrets-settings/secret-form.cjs +1 -1
  793. package/dist/components/features/settings/secrets-settings/secret-form.js +7 -7
  794. package/dist/components/features/settings/settings-input.cjs +1 -1
  795. package/dist/components/features/settings/settings-input.cjs.map +1 -1
  796. package/dist/components/features/settings/settings-input.d.ts +6 -0
  797. package/dist/components/features/settings/settings-input.js +14 -13
  798. package/dist/components/features/settings/settings-input.js.map +1 -1
  799. package/dist/components/features/sidebar/sidebar-nav-link.cjs +1 -1
  800. package/dist/components/features/sidebar/sidebar-nav-link.cjs.map +1 -1
  801. package/dist/components/features/sidebar/sidebar-nav-link.d.ts +10 -1
  802. package/dist/components/features/sidebar/sidebar-nav-link.js +54 -36
  803. package/dist/components/features/sidebar/sidebar-nav-link.js.map +1 -1
  804. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs +2 -0
  805. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs.map +1 -0
  806. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.d.ts +7 -0
  807. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js +102 -0
  808. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js.map +1 -0
  809. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs +2 -0
  810. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs.map +1 -0
  811. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.d.ts +8 -0
  812. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js +66 -0
  813. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js.map +1 -0
  814. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs +2 -0
  815. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs.map +1 -0
  816. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.d.ts +3 -0
  817. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js +15 -0
  818. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js.map +1 -0
  819. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs +2 -0
  820. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs.map +1 -0
  821. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.d.ts +10 -0
  822. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js +39 -0
  823. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js.map +1 -0
  824. package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs +2 -0
  825. package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs.map +1 -0
  826. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs +2 -0
  827. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs.map +1 -0
  828. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.d.ts +26 -0
  829. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js +78 -0
  830. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js.map +1 -0
  831. package/dist/components/features/sidebar/sidebar-onboarding-checklist.d.ts +5 -0
  832. package/dist/components/features/sidebar/sidebar-onboarding-checklist.js +127 -0
  833. package/dist/components/features/sidebar/sidebar-onboarding-checklist.js.map +1 -0
  834. package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
  835. package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
  836. package/dist/components/features/sidebar/sidebar-rail-body.js +137 -110
  837. package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
  838. package/dist/components/features/sidebar/sidebar.cjs +1 -1
  839. package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
  840. package/dist/components/features/sidebar/sidebar.js +1 -1
  841. package/dist/components/features/sidebar/sidebar.js.map +1 -1
  842. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs +2 -0
  843. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs.map +1 -0
  844. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.d.ts +1 -0
  845. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js +10 -0
  846. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js.map +1 -0
  847. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs +2 -0
  848. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs.map +1 -0
  849. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.d.ts +15 -0
  850. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js +75 -0
  851. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js.map +1 -0
  852. package/dist/components/features/skills/add-skill-modal.cjs +2 -0
  853. package/dist/components/features/skills/add-skill-modal.cjs.map +1 -0
  854. package/dist/components/features/skills/add-skill-modal.js +164 -0
  855. package/dist/components/features/skills/add-skill-modal.js.map +1 -0
  856. package/dist/components/features/skills/build-skill-pills.cjs +2 -0
  857. package/dist/components/features/skills/build-skill-pills.cjs.map +1 -0
  858. package/dist/components/features/skills/build-skill-pills.js +96 -0
  859. package/dist/components/features/skills/build-skill-pills.js.map +1 -0
  860. package/dist/components/features/skills/extensions-navigation.cjs +1 -1
  861. package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
  862. package/dist/components/features/skills/extensions-navigation.js +54 -43
  863. package/dist/components/features/skills/extensions-navigation.js.map +1 -1
  864. package/dist/components/features/skills/get-skill-card-description.cjs +2 -0
  865. package/dist/components/features/skills/get-skill-card-description.cjs.map +1 -0
  866. package/dist/components/features/skills/get-skill-card-description.js +34 -0
  867. package/dist/components/features/skills/get-skill-card-description.js.map +1 -0
  868. package/dist/components/features/skills/get-skill-chat-launch-message.cjs +2 -0
  869. package/dist/components/features/skills/get-skill-chat-launch-message.cjs.map +1 -0
  870. package/dist/components/features/skills/get-skill-chat-launch-message.js +9 -0
  871. package/dist/components/features/skills/get-skill-chat-launch-message.js.map +1 -0
  872. package/dist/components/features/skills/is-copyable-skill-source.cjs +2 -0
  873. package/dist/components/features/skills/is-copyable-skill-source.cjs.map +1 -0
  874. package/dist/components/features/skills/is-copyable-skill-source.js +9 -0
  875. package/dist/components/features/skills/is-copyable-skill-source.js.map +1 -0
  876. package/dist/components/features/skills/skill-card-pill-row.cjs +2 -0
  877. package/dist/components/features/skills/skill-card-pill-row.cjs.map +1 -0
  878. package/dist/components/features/skills/skill-card-pill-row.d.ts +1 -1
  879. package/dist/components/features/skills/skill-card-pill-row.js +137 -0
  880. package/dist/components/features/skills/skill-card-pill-row.js.map +1 -0
  881. package/dist/components/features/skills/skill-card.cjs +2 -0
  882. package/dist/components/features/skills/skill-card.cjs.map +1 -0
  883. package/dist/components/features/skills/skill-card.js +93 -0
  884. package/dist/components/features/skills/skill-card.js.map +1 -0
  885. package/dist/components/features/skills/skill-detail-modal.cjs +3 -0
  886. package/dist/components/features/skills/skill-detail-modal.cjs.map +1 -0
  887. package/dist/components/features/skills/skill-detail-modal.js +150 -0
  888. package/dist/components/features/skills/skill-detail-modal.js.map +1 -0
  889. package/dist/components/features/skills/skill-facet-rail.cjs +2 -0
  890. package/dist/components/features/skills/skill-facet-rail.cjs.map +1 -0
  891. package/dist/components/features/skills/skill-facet-rail.js +42 -0
  892. package/dist/components/features/skills/skill-facet-rail.js.map +1 -0
  893. package/dist/components/features/skills/skill-facet-row.cjs +2 -0
  894. package/dist/components/features/skills/skill-facet-row.cjs.map +1 -0
  895. package/dist/components/features/skills/skill-facet-row.js +44 -0
  896. package/dist/components/features/skills/skill-facet-row.js.map +1 -0
  897. package/dist/components/features/skills/skill-filter.cjs +2 -0
  898. package/dist/components/features/skills/skill-filter.cjs.map +1 -0
  899. package/dist/components/features/skills/skill-filter.d.ts +8 -3
  900. package/dist/components/features/skills/skill-filter.js +183 -0
  901. package/dist/components/features/skills/skill-filter.js.map +1 -0
  902. package/dist/components/features/skills/skill-filters-modal.cjs +2 -0
  903. package/dist/components/features/skills/skill-filters-modal.cjs.map +1 -0
  904. package/dist/components/features/skills/skill-filters-modal.js +53 -0
  905. package/dist/components/features/skills/skill-filters-modal.js.map +1 -0
  906. package/dist/components/features/skills/skill-icon-badge.cjs +2 -0
  907. package/dist/components/features/skills/skill-icon-badge.cjs.map +1 -0
  908. package/dist/components/features/skills/skill-icon-badge.js +17 -0
  909. package/dist/components/features/skills/skill-icon-badge.js.map +1 -0
  910. package/dist/components/features/skills/skill-type-badge.cjs +2 -0
  911. package/dist/components/features/skills/skill-type-badge.cjs.map +1 -0
  912. package/dist/components/features/skills/skill-type-badge.js +21 -0
  913. package/dist/components/features/skills/skill-type-badge.js.map +1 -0
  914. package/dist/components/features/skills/skills-toolbar.cjs +2 -0
  915. package/dist/components/features/skills/skills-toolbar.cjs.map +1 -0
  916. package/dist/components/features/skills/skills-toolbar.js +63 -0
  917. package/dist/components/features/skills/skills-toolbar.js.map +1 -0
  918. package/dist/components/shared/buttons/circle-plus-check-toggle.cjs +1 -1
  919. package/dist/components/shared/buttons/circle-plus-check-toggle.cjs.map +1 -1
  920. package/dist/components/shared/buttons/circle-plus-check-toggle.js +19 -6
  921. package/dist/components/shared/buttons/circle-plus-check-toggle.js.map +1 -1
  922. package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
  923. package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
  924. package/dist/components/shared/filters/enum-filter-dropdown.d.ts +4 -1
  925. package/dist/components/shared/filters/enum-filter-dropdown.js +14 -14
  926. package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
  927. package/dist/components/shared/modals/settings/settings-form.cjs +1 -1
  928. package/dist/components/shared/modals/settings/settings-form.js +6 -6
  929. package/dist/components/ui/resize-handle.cjs +1 -1
  930. package/dist/components/ui/resize-handle.cjs.map +1 -1
  931. package/dist/components/ui/resize-handle.d.ts +2 -1
  932. package/dist/components/ui/resize-handle.js +6 -5
  933. package/dist/components/ui/resize-handle.js.map +1 -1
  934. package/dist/config/defaults.cjs +1 -1
  935. package/dist/config/defaults.cjs.map +1 -1
  936. package/dist/config/defaults.js +9 -5
  937. package/dist/config/defaults.js.map +1 -1
  938. package/dist/constants/skills-docs.cjs +2 -0
  939. package/dist/constants/skills-docs.cjs.map +1 -0
  940. package/dist/constants/skills-docs.js +6 -0
  941. package/dist/constants/skills-docs.js.map +1 -0
  942. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  943. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  944. package/dist/contexts/conversation-websocket-context.js +174 -149
  945. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  946. package/dist/extensions/canvas-extension-module-loader.d.ts +11 -0
  947. package/dist/fixtures/home-automations-demo.cjs +2 -0
  948. package/dist/fixtures/home-automations-demo.cjs.map +1 -0
  949. package/dist/fixtures/home-automations-demo.d.ts +1 -3
  950. package/dist/fixtures/home-automations-demo.js +384 -0
  951. package/dist/fixtures/home-automations-demo.js.map +1 -0
  952. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  953. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  954. package/dist/hooks/chat/use-slash-command.d.ts +1 -2
  955. package/dist/hooks/chat/use-slash-command.js +1 -0
  956. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  957. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  958. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  959. package/dist/hooks/mutation/use-create-conversation.js +27 -30
  960. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  961. package/dist/hooks/mutation/use-create-provider-connection.cjs +1 -0
  962. package/dist/hooks/mutation/use-create-provider-connection.d.ts +2 -0
  963. package/dist/hooks/mutation/use-create-provider-connection.js +1 -0
  964. package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
  965. package/dist/hooks/mutation/use-delete-mcp-server.js +3 -3
  966. package/dist/hooks/mutation/use-delete-provider-connection.cjs +1 -0
  967. package/dist/hooks/mutation/use-delete-provider-connection.d.ts +1 -0
  968. package/dist/hooks/mutation/use-delete-provider-connection.js +1 -0
  969. package/dist/hooks/mutation/use-manage-canvas-extensions.d.ts +12 -0
  970. package/dist/hooks/mutation/use-switch-acp-model.cjs +1 -1
  971. package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
  972. package/dist/hooks/mutation/use-switch-acp-model.d.ts +5 -3
  973. package/dist/hooks/mutation/use-switch-acp-model.js +9 -13
  974. package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
  975. package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
  976. package/dist/hooks/mutation/use-update-mcp-server.js +6 -6
  977. package/dist/hooks/mutation/use-update-provider-connection.cjs +1 -0
  978. package/dist/hooks/mutation/use-update-provider-connection.d.ts +7 -0
  979. package/dist/hooks/mutation/use-update-provider-connection.js +1 -0
  980. package/dist/hooks/query/concurrency-limiter.cjs +2 -0
  981. package/dist/hooks/query/concurrency-limiter.cjs.map +1 -0
  982. package/dist/hooks/query/concurrency-limiter.d.ts +22 -0
  983. package/dist/hooks/query/concurrency-limiter.js +29 -0
  984. package/dist/hooks/query/concurrency-limiter.js.map +1 -0
  985. package/dist/hooks/query/query-keys.cjs +1 -1
  986. package/dist/hooks/query/query-keys.cjs.map +1 -1
  987. package/dist/hooks/query/query-keys.d.ts +7 -0
  988. package/dist/hooks/query/query-keys.js +4 -4
  989. package/dist/hooks/query/query-keys.js.map +1 -1
  990. package/dist/hooks/query/use-active-conversation.cjs +1 -1
  991. package/dist/hooks/query/use-active-conversation.js +4 -4
  992. package/dist/hooks/query/use-automation-detail.cjs +1 -0
  993. package/dist/hooks/query/use-automation-detail.js +2 -0
  994. package/dist/hooks/query/use-automation-health.cjs +2 -0
  995. package/dist/hooks/query/use-automation-health.cjs.map +1 -0
  996. package/dist/hooks/query/use-automation-health.js +22 -0
  997. package/dist/hooks/query/use-automation-health.js.map +1 -0
  998. package/dist/hooks/query/use-automations.cjs +2 -0
  999. package/dist/hooks/query/use-automations.cjs.map +1 -0
  1000. package/dist/hooks/query/use-automations.js +28 -0
  1001. package/dist/hooks/query/use-automations.js.map +1 -0
  1002. package/dist/hooks/query/use-backends-health.cjs +1 -1
  1003. package/dist/hooks/query/use-backends-health.cjs.map +1 -1
  1004. package/dist/hooks/query/use-backends-health.d.ts +1 -1
  1005. package/dist/hooks/query/use-backends-health.js +50 -64
  1006. package/dist/hooks/query/use-backends-health.js.map +1 -1
  1007. package/dist/hooks/query/use-canvas-extensions.cjs +1 -0
  1008. package/dist/hooks/query/use-canvas-extensions.d.ts +5 -0
  1009. package/dist/hooks/query/use-canvas-extensions.js +3 -0
  1010. package/dist/hooks/query/use-conversation-history.cjs +1 -1
  1011. package/dist/hooks/query/use-conversation-history.cjs.map +1 -1
  1012. package/dist/hooks/query/use-conversation-history.js +3 -1
  1013. package/dist/hooks/query/use-conversation-history.js.map +1 -1
  1014. package/dist/hooks/query/use-conversation-metrics.cjs +1 -1
  1015. package/dist/hooks/query/use-conversation-metrics.js +3 -3
  1016. package/dist/hooks/query/use-latest-automation-runs.cjs +1 -0
  1017. package/dist/hooks/query/use-latest-automation-runs.d.ts +2 -0
  1018. package/dist/hooks/query/use-latest-automation-runs.js +4 -0
  1019. package/dist/hooks/query/use-llm-profiles.d.ts +1 -1
  1020. package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
  1021. package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
  1022. package/dist/hooks/query/use-paginated-conversations.js +19 -16
  1023. package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
  1024. package/dist/hooks/query/use-provider-connections.cjs +2 -0
  1025. package/dist/hooks/query/use-provider-connections.cjs.map +1 -0
  1026. package/dist/hooks/query/use-provider-connections.d.ts +8 -0
  1027. package/dist/hooks/query/use-provider-connections.js +19 -0
  1028. package/dist/hooks/query/use-provider-connections.js.map +1 -0
  1029. package/dist/hooks/query/use-repository-git-items.cjs +2 -0
  1030. package/dist/hooks/query/use-repository-git-items.cjs.map +1 -0
  1031. package/dist/hooks/query/use-repository-git-items.d.ts +3 -0
  1032. package/dist/hooks/query/use-repository-git-items.js +33 -0
  1033. package/dist/hooks/query/use-repository-git-items.js.map +1 -0
  1034. package/dist/hooks/query/use-search-providers.cjs +1 -1
  1035. package/dist/hooks/query/use-search-providers.cjs.map +1 -1
  1036. package/dist/hooks/query/use-search-providers.js +17 -10
  1037. package/dist/hooks/query/use-search-providers.js.map +1 -1
  1038. package/dist/hooks/query/use-unified-vscode-url.cjs +1 -1
  1039. package/dist/hooks/query/use-unified-vscode-url.cjs.map +1 -1
  1040. package/dist/hooks/query/use-unified-vscode-url.d.ts +1 -0
  1041. package/dist/hooks/query/use-unified-vscode-url.js +40 -26
  1042. package/dist/hooks/query/use-unified-vscode-url.js.map +1 -1
  1043. package/dist/hooks/query/use-workspace-file-content.cjs +1 -1
  1044. package/dist/hooks/query/use-workspace-file-content.js +5 -5
  1045. package/dist/hooks/use-acp-credential-form.d.ts +6 -0
  1046. package/dist/hooks/use-bash-command-runner.cjs +1 -1
  1047. package/dist/hooks/use-bash-command-runner.cjs.map +1 -1
  1048. package/dist/hooks/use-bash-command-runner.js +45 -42
  1049. package/dist/hooks/use-bash-command-runner.js.map +1 -1
  1050. package/dist/hooks/use-conversation-overview-column-space.cjs +2 -0
  1051. package/dist/hooks/use-conversation-overview-column-space.cjs.map +1 -0
  1052. package/dist/hooks/use-conversation-overview-column-space.d.ts +2 -0
  1053. package/dist/hooks/use-conversation-overview-column-space.js +25 -0
  1054. package/dist/hooks/use-conversation-overview-column-space.js.map +1 -0
  1055. package/dist/hooks/use-conversation-overview-git-diff-stats.cjs +2 -0
  1056. package/dist/hooks/use-conversation-overview-git-diff-stats.cjs.map +1 -0
  1057. package/dist/hooks/use-conversation-overview-git-diff-stats.d.ts +7 -0
  1058. package/dist/hooks/use-conversation-overview-git-diff-stats.js +37 -0
  1059. package/dist/hooks/use-conversation-overview-git-diff-stats.js.map +1 -0
  1060. package/dist/hooks/use-conversation-overview-panel-peek.cjs +2 -0
  1061. package/dist/hooks/use-conversation-overview-panel-peek.cjs.map +1 -0
  1062. package/dist/hooks/use-conversation-overview-panel-peek.d.ts +9 -0
  1063. package/dist/hooks/use-conversation-overview-panel-peek.js +32 -0
  1064. package/dist/hooks/use-conversation-overview-panel-peek.js.map +1 -0
  1065. package/dist/hooks/use-conversation-overview-stats.cjs +2 -0
  1066. package/dist/hooks/use-conversation-overview-stats.cjs.map +1 -0
  1067. package/dist/hooks/use-conversation-overview-stats.d.ts +4 -0
  1068. package/dist/hooks/use-conversation-overview-stats.js +15 -0
  1069. package/dist/hooks/use-conversation-overview-stats.js.map +1 -0
  1070. package/dist/hooks/use-conversation-primary-repository.cjs +2 -0
  1071. package/dist/hooks/use-conversation-primary-repository.cjs.map +1 -0
  1072. package/dist/hooks/use-conversation-primary-repository.d.ts +11 -0
  1073. package/dist/hooks/use-conversation-primary-repository.js +17 -0
  1074. package/dist/hooks/use-conversation-primary-repository.js.map +1 -0
  1075. package/dist/hooks/use-drag-scroll.cjs +2 -0
  1076. package/dist/hooks/use-drag-scroll.cjs.map +1 -0
  1077. package/dist/hooks/use-drag-scroll.d.ts +12 -0
  1078. package/dist/hooks/use-drag-scroll.js +41 -0
  1079. package/dist/hooks/use-drag-scroll.js.map +1 -0
  1080. package/dist/hooks/use-has-permission.cjs +2 -0
  1081. package/dist/hooks/use-has-permission.cjs.map +1 -0
  1082. package/dist/hooks/use-has-permission.js +8 -0
  1083. package/dist/hooks/use-has-permission.js.map +1 -0
  1084. package/dist/hooks/use-home-automation-actions.cjs +2 -0
  1085. package/dist/hooks/use-home-automation-actions.cjs.map +1 -0
  1086. package/dist/hooks/use-home-automation-actions.js +15 -0
  1087. package/dist/hooks/use-home-automation-actions.js.map +1 -0
  1088. package/dist/hooks/use-launch-skill-in-chat.cjs +2 -0
  1089. package/dist/hooks/use-launch-skill-in-chat.cjs.map +1 -0
  1090. package/dist/hooks/use-launch-skill-in-chat.js +16 -0
  1091. package/dist/hooks/use-launch-skill-in-chat.js.map +1 -0
  1092. package/dist/hooks/use-mcp-server-health.cjs +1 -1
  1093. package/dist/hooks/use-mcp-server-health.js +3 -3
  1094. package/dist/hooks/use-pinned-home-route.cjs +2 -0
  1095. package/dist/hooks/use-pinned-home-route.cjs.map +1 -0
  1096. package/dist/hooks/use-pinned-home-route.d.ts +33 -0
  1097. package/dist/hooks/use-pinned-home-route.js +34 -0
  1098. package/dist/hooks/use-pinned-home-route.js.map +1 -0
  1099. package/dist/hooks/use-resizable-drawer-width.cjs +2 -0
  1100. package/dist/hooks/use-resizable-drawer-width.cjs.map +1 -0
  1101. package/dist/hooks/use-resizable-drawer-width.d.ts +22 -0
  1102. package/dist/hooks/use-resizable-drawer-width.js +46 -0
  1103. package/dist/hooks/use-resizable-drawer-width.js.map +1 -0
  1104. package/dist/hooks/use-responder-url-secret.cjs +2 -0
  1105. package/dist/hooks/use-responder-url-secret.cjs.map +1 -0
  1106. package/dist/hooks/use-responder-url-secret.js +51 -0
  1107. package/dist/hooks/use-responder-url-secret.js.map +1 -0
  1108. package/dist/hooks/use-select-conversation-tab.cjs +1 -1
  1109. package/dist/hooks/use-select-conversation-tab.cjs.map +1 -1
  1110. package/dist/hooks/use-select-conversation-tab.d.ts +2 -0
  1111. package/dist/hooks/use-select-conversation-tab.js +15 -7
  1112. package/dist/hooks/use-select-conversation-tab.js.map +1 -1
  1113. package/dist/hooks/use-skill-enablement.cjs +2 -0
  1114. package/dist/hooks/use-skill-enablement.cjs.map +1 -0
  1115. package/dist/hooks/use-skill-enablement.d.ts +14 -0
  1116. package/dist/hooks/use-skill-enablement.js +80 -0
  1117. package/dist/hooks/use-skill-enablement.js.map +1 -0
  1118. package/dist/hooks/use-tracking.cjs +1 -1
  1119. package/dist/hooks/use-tracking.cjs.map +1 -1
  1120. package/dist/hooks/use-tracking.d.ts +17 -0
  1121. package/dist/hooks/use-tracking.js +10 -0
  1122. package/dist/hooks/use-tracking.js.map +1 -1
  1123. package/dist/hooks/use-websocket.cjs +1 -1
  1124. package/dist/hooks/use-websocket.cjs.map +1 -1
  1125. package/dist/hooks/use-websocket.d.ts +1 -2
  1126. package/dist/hooks/use-websocket.js +58 -51
  1127. package/dist/hooks/use-websocket.js.map +1 -1
  1128. package/dist/i18n/declaration.cjs +1 -1
  1129. package/dist/i18n/declaration.cjs.map +1 -1
  1130. package/dist/i18n/declaration.d.ts +153 -56
  1131. package/dist/i18n/declaration.js +1 -1
  1132. package/dist/i18n/declaration.js.map +1 -1
  1133. package/dist/i18n/translation.cjs +3 -3
  1134. package/dist/i18n/translation.cjs.map +1 -1
  1135. package/dist/i18n/translation.js +2629 -980
  1136. package/dist/i18n/translation.js.map +1 -1
  1137. package/dist/icons/check-circle.cjs +2 -0
  1138. package/dist/icons/check-circle.cjs.map +1 -0
  1139. package/dist/icons/check-circle.js +20 -0
  1140. package/dist/icons/check-circle.js.map +1 -0
  1141. package/dist/icons/chevron-down.cjs +2 -0
  1142. package/dist/icons/chevron-down.cjs.map +1 -0
  1143. package/dist/icons/chevron-down.js +20 -0
  1144. package/dist/icons/chevron-down.js.map +1 -0
  1145. package/dist/icons/clock.cjs +2 -0
  1146. package/dist/icons/clock.cjs.map +1 -0
  1147. package/dist/icons/clock.js +20 -0
  1148. package/dist/icons/clock.js.map +1 -0
  1149. package/dist/icons/exclamation-circle.cjs +2 -0
  1150. package/dist/icons/exclamation-circle.cjs.map +1 -0
  1151. package/dist/icons/exclamation-circle.js +20 -0
  1152. package/dist/icons/exclamation-circle.js.map +1 -0
  1153. package/dist/icons/kebab-vertical.cjs +2 -0
  1154. package/dist/icons/kebab-vertical.cjs.map +1 -0
  1155. package/dist/icons/kebab-vertical.js +14 -0
  1156. package/dist/icons/kebab-vertical.js.map +1 -0
  1157. package/dist/icons/key.cjs +2 -0
  1158. package/dist/icons/key.cjs.map +1 -0
  1159. package/dist/icons/key.js +21 -0
  1160. package/dist/icons/key.js.map +1 -0
  1161. package/dist/icons/message-square-share.cjs +2 -0
  1162. package/dist/icons/message-square-share.cjs.map +1 -0
  1163. package/dist/icons/message-square-share.js +22 -0
  1164. package/dist/icons/message-square-share.js.map +1 -0
  1165. package/dist/icons/play.cjs +2 -0
  1166. package/dist/icons/play.cjs.map +1 -0
  1167. package/dist/icons/play.js +19 -0
  1168. package/dist/icons/play.js.map +1 -0
  1169. package/dist/icons/power.cjs +2 -0
  1170. package/dist/icons/power.cjs.map +1 -0
  1171. package/dist/icons/power.js +20 -0
  1172. package/dist/icons/power.js.map +1 -0
  1173. package/dist/icons/sparkle.cjs +2 -0
  1174. package/dist/icons/sparkle.cjs.map +1 -0
  1175. package/dist/icons/sparkle.js +20 -0
  1176. package/dist/icons/sparkle.js.map +1 -0
  1177. package/dist/icons/trash.cjs +2 -0
  1178. package/dist/icons/trash.cjs.map +1 -0
  1179. package/dist/icons/trash.js +20 -0
  1180. package/dist/icons/trash.js.map +1 -0
  1181. package/dist/icons/x-circle.cjs +2 -0
  1182. package/dist/icons/x-circle.cjs.map +1 -0
  1183. package/dist/icons/x-circle.js +20 -0
  1184. package/dist/icons/x-circle.js.map +1 -0
  1185. package/dist/index.cjs +1 -1
  1186. package/dist/index.js +15 -14
  1187. package/dist/lib/index.cjs +1 -1
  1188. package/dist/lib/index.d.ts +1 -0
  1189. package/dist/lib/index.js +1 -0
  1190. package/dist/locales/ar/openhands.json +156 -59
  1191. package/dist/locales/ca/openhands.json +156 -59
  1192. package/dist/locales/de/openhands.json +156 -59
  1193. package/dist/locales/en/openhands.json +156 -59
  1194. package/dist/locales/es/openhands.json +156 -59
  1195. package/dist/locales/fr/openhands.json +156 -59
  1196. package/dist/locales/it/openhands.json +156 -59
  1197. package/dist/locales/ja/openhands.json +156 -59
  1198. package/dist/locales/ko-KR/openhands.json +156 -59
  1199. package/dist/locales/no/openhands.json +156 -59
  1200. package/dist/locales/pt/openhands.json +156 -59
  1201. package/dist/locales/tr/openhands.json +156 -59
  1202. package/dist/locales/uk/openhands.json +156 -59
  1203. package/dist/locales/zh-CN/openhands.json +156 -59
  1204. package/dist/locales/zh-TW/openhands.json +156 -59
  1205. package/dist/manifests/automation-insights.cjs +2 -0
  1206. package/dist/manifests/automation-insights.cjs.map +1 -0
  1207. package/dist/manifests/automation-insights.d.ts +2 -0
  1208. package/dist/manifests/automation-insights.js +9 -0
  1209. package/dist/manifests/automation-insights.js.map +1 -0
  1210. package/dist/manifests/automation-interface.cjs +1 -1
  1211. package/dist/manifests/automation-interface.cjs.map +1 -1
  1212. package/dist/manifests/automation-interface.d.ts +53 -31
  1213. package/dist/manifests/automation-interface.js +56 -59
  1214. package/dist/manifests/automation-interface.js.map +1 -1
  1215. package/dist/manifests/automation-setup.cjs +1 -1
  1216. package/dist/manifests/automation-setup.cjs.map +1 -1
  1217. package/dist/manifests/automation-setup.d.ts +37 -3
  1218. package/dist/manifests/automation-setup.js +16 -2
  1219. package/dist/manifests/automation-setup.js.map +1 -1
  1220. package/dist/manifests/interface-validation.cjs +1 -1
  1221. package/dist/manifests/interface-validation.cjs.map +1 -1
  1222. package/dist/manifests/interface-validation.js +56 -52
  1223. package/dist/manifests/interface-validation.js.map +1 -1
  1224. package/dist/manifests/manifest-actions.d.ts +5 -0
  1225. package/dist/manifests/manifest-bundle.d.ts +30 -0
  1226. package/dist/manifests/manifest-local-validation.d.ts +10 -1
  1227. package/dist/manifests/manifest-sources.cjs +1 -1
  1228. package/dist/manifests/manifest-sources.cjs.map +1 -1
  1229. package/dist/manifests/manifest-sources.js +3 -3
  1230. package/dist/manifests/manifest-sources.js.map +1 -1
  1231. package/dist/manifests/manifest-template.d.ts +14 -0
  1232. package/dist/manifests/manifest-validation.cjs +1 -1
  1233. package/dist/manifests/manifest-validation.cjs.map +1 -1
  1234. package/dist/manifests/manifest-validation.js +78 -45
  1235. package/dist/manifests/manifest-validation.js.map +1 -1
  1236. package/dist/manifests/types.cjs +1 -1
  1237. package/dist/manifests/types.cjs.map +1 -1
  1238. package/dist/manifests/types.d.ts +64 -3
  1239. package/dist/manifests/types.js +7 -6
  1240. package/dist/manifests/types.js.map +1 -1
  1241. package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.cjs +1 -1
  1242. package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.js +10 -10
  1243. package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.cjs +1 -1
  1244. package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.js +8 -8
  1245. package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.cjs +1 -1
  1246. package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.js +9 -9
  1247. package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +4884 -0
  1248. package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -0
  1249. package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +11 -0
  1250. package/dist/node_modules/@openhands/extensions/automations/bundle-index.js.map +1 -0
  1251. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs +13 -0
  1252. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs.map +1 -0
  1253. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js +92 -0
  1254. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js.map +1 -0
  1255. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +12 -0
  1256. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -0
  1257. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +103 -0
  1258. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -0
  1259. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +9 -7
  1260. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -1
  1261. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +37 -13
  1262. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
  1263. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +2 -2
  1264. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -1
  1265. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +34 -34
  1266. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -1
  1267. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs +9 -0
  1268. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
  1269. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js +21 -0
  1270. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-bitbucket-pr/manifest.js.map +1 -0
  1271. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs +9 -0
  1272. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.cjs.map +1 -0
  1273. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js +21 -0
  1274. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-gitlab-mr/manifest.js.map +1 -0
  1275. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs +3 -3
  1276. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs.map +1 -1
  1277. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js +2 -2
  1278. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js.map +1 -1
  1279. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs +9 -0
  1280. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.cjs.map +1 -0
  1281. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js +21 -0
  1282. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-bitbucket-pr/manifest.js.map +1 -0
  1283. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs +9 -0
  1284. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.cjs.map +1 -0
  1285. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js +21 -0
  1286. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-github-pr/manifest.js.map +1 -0
  1287. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs +9 -0
  1288. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.cjs.map +1 -0
  1289. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js +21 -0
  1290. package/dist/node_modules/@openhands/extensions/automations/catalog/linear-issue-to-gitlab-mr/manifest.js.map +1 -0
  1291. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +14 -0
  1292. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs.map +1 -0
  1293. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js +77 -0
  1294. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -0
  1295. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs +30 -0
  1296. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.cjs.map +1 -0
  1297. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js +65 -0
  1298. package/dist/node_modules/@openhands/extensions/automations/catalog/qa-changes/manifest.js.map +1 -0
  1299. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
  1300. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
  1301. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +28 -10
  1302. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
  1303. package/dist/node_modules/@openhands/extensions/automations/index.cjs +1 -1
  1304. package/dist/node_modules/@openhands/extensions/automations/index.cjs.map +1 -1
  1305. package/dist/node_modules/@openhands/extensions/automations/index.js +18 -13
  1306. package/dist/node_modules/@openhands/extensions/automations/index.js.map +1 -1
  1307. package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
  1308. package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
  1309. package/dist/node_modules/@openhands/extensions/automations/interface.js +6 -2
  1310. package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
  1311. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs +1 -1
  1312. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
  1313. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +2 -2
  1314. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
  1315. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +2 -0
  1316. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +1 -0
  1317. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +40 -0
  1318. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +1 -0
  1319. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
  1320. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
  1321. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +1 -1
  1322. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
  1323. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs +1 -1
  1324. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs.map +1 -1
  1325. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js +36 -3
  1326. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
  1327. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs +2 -0
  1328. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs.map +1 -0
  1329. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js +75 -0
  1330. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js.map +1 -0
  1331. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
  1332. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
  1333. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +75 -71
  1334. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
  1335. package/dist/node_modules/@openhands/extensions/skills/index.cjs +1043 -49
  1336. package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
  1337. package/dist/node_modules/@openhands/extensions/skills/index.js +78 -17
  1338. package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
  1339. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs +1 -1
  1340. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.js +1 -1
  1341. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs +1 -1
  1342. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map +1 -1
  1343. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js +8 -7
  1344. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map +1 -1
  1345. package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
  1346. package/dist/node_modules/@openhands/typescript-client/dist/index.js +2 -2
  1347. package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs +2 -0
  1348. package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs.map +1 -0
  1349. package/dist/node_modules/lucide-react/dist/esm/icons/activity.js +9 -0
  1350. package/dist/node_modules/lucide-react/dist/esm/icons/activity.js.map +1 -0
  1351. package/dist/node_modules/lucide-react/dist/esm/icons/blocks.cjs +2 -0
  1352. package/dist/node_modules/lucide-react/dist/esm/icons/blocks.cjs.map +1 -0
  1353. package/dist/node_modules/lucide-react/dist/esm/icons/blocks.js +16 -0
  1354. package/dist/node_modules/lucide-react/dist/esm/icons/blocks.js.map +1 -0
  1355. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs +2 -0
  1356. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs.map +1 -0
  1357. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js +12 -0
  1358. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js.map +1 -0
  1359. package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs +2 -0
  1360. package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs.map +1 -0
  1361. package/dist/node_modules/lucide-react/dist/esm/icons/download.js +19 -0
  1362. package/dist/node_modules/lucide-react/dist/esm/icons/download.js.map +1 -0
  1363. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs +2 -0
  1364. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs.map +1 -0
  1365. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +27 -0
  1366. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +1 -0
  1367. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs +2 -0
  1368. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs.map +1 -0
  1369. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js +27 -0
  1370. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js.map +1 -0
  1371. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs +2 -0
  1372. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs.map +1 -0
  1373. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js +12 -0
  1374. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js.map +1 -0
  1375. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs +2 -0
  1376. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs.map +1 -0
  1377. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js +39 -0
  1378. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js.map +1 -0
  1379. package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs +2 -0
  1380. package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs.map +1 -0
  1381. package/dist/node_modules/lucide-react/dist/esm/icons/library.js +23 -0
  1382. package/dist/node_modules/lucide-react/dist/esm/icons/library.js.map +1 -0
  1383. package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs +2 -0
  1384. package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs.map +1 -0
  1385. package/dist/node_modules/lucide-react/dist/esm/icons/package.js +23 -0
  1386. package/dist/node_modules/lucide-react/dist/esm/icons/package.js.map +1 -0
  1387. package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs +2 -0
  1388. package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs.map +1 -0
  1389. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js +39 -0
  1390. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js.map +1 -0
  1391. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs +2 -0
  1392. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs.map +1 -0
  1393. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +23 -0
  1394. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +1 -0
  1395. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs +2 -0
  1396. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs.map +1 -0
  1397. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js +12 -0
  1398. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js.map +1 -0
  1399. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs +2 -0
  1400. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs.map +1 -0
  1401. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js +12 -0
  1402. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js.map +1 -0
  1403. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs +2 -0
  1404. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs.map +1 -0
  1405. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js +25 -0
  1406. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js.map +1 -0
  1407. package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs +2 -0
  1408. package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs.map +1 -0
  1409. package/dist/node_modules/lucide-react/dist/esm/icons/timer.js +27 -0
  1410. package/dist/node_modules/lucide-react/dist/esm/icons/timer.js.map +1 -0
  1411. package/dist/package.cjs +1 -1
  1412. package/dist/package.cjs.map +1 -1
  1413. package/dist/package.js +3 -3
  1414. package/dist/package.js.map +1 -1
  1415. package/dist/routes/agent-settings.d.ts +10 -0
  1416. package/dist/routes/app-settings.cjs +1 -1
  1417. package/dist/routes/app-settings.cjs.map +1 -1
  1418. package/dist/routes/app-settings.js +88 -86
  1419. package/dist/routes/app-settings.js.map +1 -1
  1420. package/dist/routes/commits-tab.cjs +1 -1
  1421. package/dist/routes/commits-tab.cjs.map +1 -1
  1422. package/dist/routes/commits-tab.js +27 -21
  1423. package/dist/routes/commits-tab.js.map +1 -1
  1424. package/dist/routes/conversation.cjs +1 -1
  1425. package/dist/routes/conversation.cjs.map +1 -1
  1426. package/dist/routes/conversation.js +56 -55
  1427. package/dist/routes/conversation.js.map +1 -1
  1428. package/dist/routes/files-tab.cjs +1 -1
  1429. package/dist/routes/files-tab.cjs.map +1 -1
  1430. package/dist/routes/files-tab.d.ts +4 -0
  1431. package/dist/routes/files-tab.js +119 -149
  1432. package/dist/routes/files-tab.js.map +1 -1
  1433. package/dist/routes/llm-settings.cjs +1 -1
  1434. package/dist/routes/llm-settings.cjs.map +1 -1
  1435. package/dist/routes/llm-settings.d.ts +9 -1
  1436. package/dist/routes/llm-settings.js +141 -103
  1437. package/dist/routes/llm-settings.js.map +1 -1
  1438. package/dist/routes/mcp.cjs +1 -1
  1439. package/dist/routes/mcp.cjs.map +1 -1
  1440. package/dist/routes/mcp.js +20 -20
  1441. package/dist/routes/secrets-settings.cjs +1 -1
  1442. package/dist/routes/secrets-settings.js +15 -15
  1443. package/dist/services/canvas-ui.cjs +1 -1
  1444. package/dist/services/canvas-ui.cjs.map +1 -1
  1445. package/dist/services/canvas-ui.d.ts +5 -0
  1446. package/dist/services/canvas-ui.js +24 -10
  1447. package/dist/services/canvas-ui.js.map +1 -1
  1448. package/dist/services/settings.cjs +1 -1
  1449. package/dist/services/settings.cjs.map +1 -1
  1450. package/dist/services/settings.js +3 -2
  1451. package/dist/services/settings.js.map +1 -1
  1452. package/dist/stores/conversation-store.cjs +1 -1
  1453. package/dist/stores/conversation-store.cjs.map +1 -1
  1454. package/dist/stores/conversation-store.d.ts +8 -1
  1455. package/dist/stores/conversation-store.js +9 -0
  1456. package/dist/stores/conversation-store.js.map +1 -1
  1457. package/dist/stores/files-tab-store.cjs +1 -1
  1458. package/dist/stores/files-tab-store.cjs.map +1 -1
  1459. package/dist/stores/files-tab-store.d.ts +13 -0
  1460. package/dist/stores/files-tab-store.js +49 -5
  1461. package/dist/stores/files-tab-store.js.map +1 -1
  1462. package/dist/stores/use-event-store.cjs +1 -1
  1463. package/dist/stores/use-event-store.cjs.map +1 -1
  1464. package/dist/stores/use-event-store.js +11 -11
  1465. package/dist/stores/use-event-store.js.map +1 -1
  1466. package/dist/types/agent-server/core/events/message-event.d.ts +2 -2
  1467. package/dist/types/automation.cjs +2 -0
  1468. package/dist/types/automation.cjs.map +1 -0
  1469. package/dist/types/automation.d.ts +20 -0
  1470. package/dist/types/automation.js +8 -0
  1471. package/dist/types/automation.js.map +1 -0
  1472. package/dist/types/canvas-extension.cjs +2 -0
  1473. package/dist/types/canvas-extension.cjs.map +1 -0
  1474. package/dist/types/canvas-extension.d.ts +77 -0
  1475. package/dist/types/canvas-extension.js +6 -0
  1476. package/dist/types/canvas-extension.js.map +1 -0
  1477. package/dist/types/settings.d.ts +7 -0
  1478. package/dist/ui/help-link.cjs +1 -1
  1479. package/dist/ui/help-link.cjs.map +1 -1
  1480. package/dist/ui/help-link.d.ts +6 -1
  1481. package/dist/ui/help-link.js +32 -18
  1482. package/dist/ui/help-link.js.map +1 -1
  1483. package/dist/utils/acp-auth-display.d.ts +35 -0
  1484. package/dist/utils/automation-catalog.cjs +1 -1
  1485. package/dist/utils/automation-catalog.cjs.map +1 -1
  1486. package/dist/utils/automation-catalog.d.ts +12 -0
  1487. package/dist/utils/automation-catalog.js +20 -1
  1488. package/dist/utils/automation-catalog.js.map +1 -1
  1489. package/dist/utils/automation-schedule.cjs +2 -0
  1490. package/dist/utils/automation-schedule.cjs.map +1 -0
  1491. package/dist/utils/automation-schedule.js +8 -0
  1492. package/dist/utils/automation-schedule.js.map +1 -0
  1493. package/dist/utils/automation-stack-section.cjs +2 -0
  1494. package/dist/utils/automation-stack-section.cjs.map +1 -0
  1495. package/dist/utils/automation-stack-section.d.ts +2 -0
  1496. package/dist/utils/automation-stack-section.js +6 -0
  1497. package/dist/utils/automation-stack-section.js.map +1 -0
  1498. package/dist/utils/cache-utils.cjs +1 -1
  1499. package/dist/utils/cache-utils.js +5 -5
  1500. package/dist/utils/constants.cjs +1 -1
  1501. package/dist/utils/constants.cjs.map +1 -1
  1502. package/dist/utils/constants.js +4 -0
  1503. package/dist/utils/constants.js.map +1 -1
  1504. package/dist/utils/conversation-local-storage.cjs +1 -1
  1505. package/dist/utils/conversation-local-storage.cjs.map +1 -1
  1506. package/dist/utils/conversation-local-storage.d.ts +17 -4
  1507. package/dist/utils/conversation-local-storage.js +111 -63
  1508. package/dist/utils/conversation-local-storage.js.map +1 -1
  1509. package/dist/utils/conversation-metrics.cjs +1 -1
  1510. package/dist/utils/conversation-metrics.cjs.map +1 -1
  1511. package/dist/utils/conversation-metrics.d.ts +3 -2
  1512. package/dist/utils/conversation-metrics.js +16 -14
  1513. package/dist/utils/conversation-metrics.js.map +1 -1
  1514. package/dist/utils/conversation-overview-project-scope.cjs +2 -0
  1515. package/dist/utils/conversation-overview-project-scope.cjs.map +1 -0
  1516. package/dist/utils/conversation-overview-project-scope.d.ts +16 -0
  1517. package/dist/utils/conversation-overview-project-scope.js +22 -0
  1518. package/dist/utils/conversation-overview-project-scope.js.map +1 -0
  1519. package/dist/utils/extension-module-card-classes.cjs +1 -1
  1520. package/dist/utils/extension-module-card-classes.cjs.map +1 -1
  1521. package/dist/utils/extension-module-card-classes.d.ts +1 -1
  1522. package/dist/utils/extension-module-card-classes.js +2 -2
  1523. package/dist/utils/extension-module-card-classes.js.map +1 -1
  1524. package/dist/utils/format-model-name.cjs +1 -1
  1525. package/dist/utils/format-model-name.cjs.map +1 -1
  1526. package/dist/utils/format-model-name.d.ts +7 -3
  1527. package/dist/utils/format-model-name.js +6 -11
  1528. package/dist/utils/format-model-name.js.map +1 -1
  1529. package/dist/utils/format-relative-time.cjs +2 -0
  1530. package/dist/utils/format-relative-time.cjs.map +1 -0
  1531. package/dist/utils/format-relative-time.d.ts +7 -0
  1532. package/dist/utils/format-relative-time.js +22 -0
  1533. package/dist/utils/format-relative-time.js.map +1 -0
  1534. package/dist/utils/git-diff-stats.cjs +5 -0
  1535. package/dist/utils/git-diff-stats.cjs.map +1 -0
  1536. package/dist/utils/git-diff-stats.d.ts +9 -0
  1537. package/dist/utils/git-diff-stats.js +53 -0
  1538. package/dist/utils/git-diff-stats.js.map +1 -0
  1539. package/dist/utils/handle-event-for-ui.cjs +1 -1
  1540. package/dist/utils/handle-event-for-ui.cjs.map +1 -1
  1541. package/dist/utils/handle-event-for-ui.js +13 -11
  1542. package/dist/utils/handle-event-for-ui.js.map +1 -1
  1543. package/dist/utils/mcp-credential-validation.cjs +1 -1
  1544. package/dist/utils/mcp-credential-validation.js +3 -3
  1545. package/dist/utils/mcp-marketplace-utils.cjs +1 -1
  1546. package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
  1547. package/dist/utils/mcp-marketplace-utils.js +22 -9
  1548. package/dist/utils/mcp-marketplace-utils.js.map +1 -1
  1549. package/dist/utils/parse-git-remote-url.cjs +1 -1
  1550. package/dist/utils/parse-git-remote-url.cjs.map +1 -1
  1551. package/dist/utils/parse-git-remote-url.js +6 -7
  1552. package/dist/utils/parse-git-remote-url.js.map +1 -1
  1553. package/dist/utils/path-utils.cjs +1 -1
  1554. package/dist/utils/path-utils.cjs.map +1 -1
  1555. package/dist/utils/path-utils.d.ts +15 -3
  1556. package/dist/utils/path-utils.js +29 -3
  1557. package/dist/utils/path-utils.js.map +1 -1
  1558. package/dist/utils/recommended-automation-rail.cjs +2 -0
  1559. package/dist/utils/recommended-automation-rail.cjs.map +1 -0
  1560. package/dist/utils/recommended-automation-rail.d.ts +22 -0
  1561. package/dist/utils/recommended-automation-rail.js +44 -0
  1562. package/dist/utils/recommended-automation-rail.js.map +1 -0
  1563. package/dist/utils/responder-deployment.cjs +2 -0
  1564. package/dist/utils/responder-deployment.cjs.map +1 -0
  1565. package/dist/utils/responder-deployment.js +42 -0
  1566. package/dist/utils/responder-deployment.js.map +1 -0
  1567. package/dist/utils/scroll-fade-state.cjs +2 -0
  1568. package/dist/utils/scroll-fade-state.cjs.map +1 -0
  1569. package/dist/utils/scroll-fade-state.d.ts +6 -0
  1570. package/dist/utils/scroll-fade-state.js +13 -0
  1571. package/dist/utils/scroll-fade-state.js.map +1 -0
  1572. package/dist/utils/skill-category.cjs +2 -0
  1573. package/dist/utils/skill-category.cjs.map +1 -0
  1574. package/dist/utils/skill-category.js +51 -0
  1575. package/dist/utils/skill-category.js.map +1 -0
  1576. package/dist/utils/skill-enablement.cjs +2 -0
  1577. package/dist/utils/skill-enablement.cjs.map +1 -0
  1578. package/dist/utils/skill-enablement.d.ts +51 -0
  1579. package/dist/utils/skill-enablement.js +31 -0
  1580. package/dist/utils/skill-enablement.js.map +1 -0
  1581. package/dist/utils/skill-scope.cjs +1 -1
  1582. package/dist/utils/skill-scope.cjs.map +1 -1
  1583. package/dist/utils/skill-scope.js +1 -1
  1584. package/dist/utils/skill-scope.js.map +1 -1
  1585. package/dist/utils/streaming-delta-batcher.cjs +2 -0
  1586. package/dist/utils/streaming-delta-batcher.cjs.map +1 -0
  1587. package/dist/utils/streaming-delta-batcher.d.ts +21 -0
  1588. package/dist/utils/streaming-delta-batcher.js +31 -0
  1589. package/dist/utils/streaming-delta-batcher.js.map +1 -0
  1590. package/dist/utils/tar-gzip.d.ts +26 -0
  1591. package/dist/utils/utils.cjs +1 -1
  1592. package/dist/utils/utils.cjs.map +1 -1
  1593. package/dist/utils/utils.d.ts +1 -41
  1594. package/dist/utils/utils.js +27 -6
  1595. package/dist/utils/utils.js.map +1 -1
  1596. package/dist/utils/vscode-origin.cjs +2 -0
  1597. package/dist/utils/vscode-origin.cjs.map +1 -0
  1598. package/dist/utils/vscode-origin.d.ts +55 -0
  1599. package/dist/utils/vscode-origin.js +27 -0
  1600. package/dist/utils/vscode-origin.js.map +1 -0
  1601. package/dist/utils/websocket-handshake.cjs +2 -0
  1602. package/dist/utils/websocket-handshake.cjs.map +1 -0
  1603. package/dist/utils/websocket-handshake.d.ts +11 -0
  1604. package/dist/utils/websocket-handshake.js +12 -0
  1605. package/dist/utils/websocket-handshake.js.map +1 -0
  1606. package/dist/utils/workspace-mode.d.ts +4 -0
  1607. package/package.json +3 -3
  1608. package/scripts/check-sdk-version-sync.mjs +6 -6
  1609. package/scripts/check-translation-completeness.cjs +5 -0
  1610. package/scripts/dev-extra-backend.mjs +28 -9
  1611. package/scripts/dev-safe.mjs +81 -8
  1612. package/scripts/dev-static.mjs +48 -44
  1613. package/scripts/dev-with-automation.mjs +95 -6
  1614. package/scripts/ingress.mjs +27 -1
  1615. package/scripts/seed-automation-ux-data.mjs +810 -0
  1616. package/scripts/static-server.mjs +74 -1
  1617. package/tools/canvas_ui_tool.py +19 -0
  1618. package/build/assets/acp-providers-CYy8qA2z.js +0 -1
  1619. package/build/assets/active-backend-context-BZDG15C0.js +0 -2
  1620. package/build/assets/agent-context-settings-DGWBBbcp.js +0 -1
  1621. package/build/assets/agent-profiles-settings-DrkGdf4_.js +0 -1
  1622. package/build/assets/agent-server-conversation-service.api-DK56YPTs.js +0 -86
  1623. package/build/assets/agent-settings-DfcSgkLD.js +0 -2
  1624. package/build/assets/agent-settings-Lrc5-twS.js +0 -1
  1625. package/build/assets/alert-banner-BgDHhL7b.js +0 -1
  1626. package/build/assets/api-error-message-BEIE_yD1.js +0 -1
  1627. package/build/assets/api-key-entry-screen-DaZnOlVo.js +0 -1
  1628. package/build/assets/app-settings-BG5NAUbC.js +0 -1
  1629. package/build/assets/automation-detail-D4Hs831Z.js +0 -3
  1630. package/build/assets/automation-export-n0X6FB0C.js +0 -2
  1631. package/build/assets/automation-git-sync-CDrm8WV7.js +0 -1
  1632. package/build/assets/automation-setup-route-CZCl4ONs.js +0 -1
  1633. package/build/assets/automation-templates-DFF96AdL.js +0 -1
  1634. package/build/assets/automations-list-Bl-oGOrV.js +0 -1
  1635. package/build/assets/back-nav-button-H_ThtDA0.js +0 -1
  1636. package/build/assets/backend-form-modal-CbCemvHt.js +0 -1
  1637. package/build/assets/backend-not-configured-DP8KLNq_.js +0 -1
  1638. package/build/assets/backend-synced-settings-badge-BBASWqsb.js +0 -1
  1639. package/build/assets/badge-B-51h-SW.js +0 -1
  1640. package/build/assets/base-modal-BbjycA8X.js +0 -1
  1641. package/build/assets/bot-CGPCg03p.js +0 -1
  1642. package/build/assets/brand-button-Blxv5nww.js +0 -1
  1643. package/build/assets/browser-CuW0nWvh.js +0 -7
  1644. package/build/assets/browser-tab-D5G0ORwt.js +0 -1
  1645. package/build/assets/chat-send-button-BD2tii1r.js +0 -1
  1646. package/build/assets/check-DSuS-lyr.js +0 -1
  1647. package/build/assets/chevron-down-CgGcmtE2.js +0 -1
  1648. package/build/assets/circle-check-CG5-NPw7.js +0 -1
  1649. package/build/assets/circle-plus-check-toggle-ASbpB8vN.js +0 -1
  1650. package/build/assets/cloud-funnel-analytics-GlCUG0gk.js +0 -1
  1651. package/build/assets/cog-CZiR80uT.js +0 -1
  1652. package/build/assets/combobox-caret-DvpEsh2O.js +0 -1
  1653. package/build/assets/command-menu-DwUQzjYP.js +0 -1
  1654. package/build/assets/condenser-settings-BptcoiLA.js +0 -1
  1655. package/build/assets/confirmation-modal-CiEwxZAA.js +0 -1
  1656. package/build/assets/context-menu-list-item-CdcamfM1.js +0 -1
  1657. package/build/assets/conversation-DREHj4nT.js +0 -1
  1658. package/build/assets/conversation-DotRfiDz.js +0 -90
  1659. package/build/assets/conversation-panel-DREHj4nT.js +0 -1
  1660. package/build/assets/conversation-state-store-DMLtlHbE.js +0 -1
  1661. package/build/assets/conversation-store-Blc5xysY.js +0 -6
  1662. package/build/assets/conversation-tab-empty-state-D-puECpY.js +0 -1
  1663. package/build/assets/copy-to-clipboard-button-BGxcUbgy.js +0 -1
  1664. package/build/assets/device-verify-CZJfWaJf.js +0 -1
  1665. package/build/assets/dropdown-classes-tLhpwtxS.js +0 -1
  1666. package/build/assets/entry.client-D8GnI6GZ.js +0 -2
  1667. package/build/assets/enum-filter-dropdown-Fk8k60nk.js +0 -1
  1668. package/build/assets/environment-switch-overlay-DeztVYuL.js +0 -1
  1669. package/build/assets/extension-module-card-classes-Bo43vY5V.js +0 -1
  1670. package/build/assets/extensions-hub-Cd6GCYzq.js +0 -1
  1671. package/build/assets/extensions-navigation-C4sgZg-y.js +0 -1
  1672. package/build/assets/external-link-C0UpBgsE.js +0 -1
  1673. package/build/assets/file-text-C6WYtNdV.js +0 -1
  1674. package/build/assets/files-tab-BW_qzyAm.js +0 -1
  1675. package/build/assets/form-control-classes-CGXBLcn1.js +0 -1
  1676. package/build/assets/format-model-name-BNPKVsIq.js +0 -1
  1677. package/build/assets/format-relative-time-ZhQD4rsl.js +0 -1
  1678. package/build/assets/git-provider-icon-CaQ1yLPi.js +0 -1
  1679. package/build/assets/git-repo-dropdown-CgXR6M_E.js +0 -1
  1680. package/build/assets/git-repo-dropdown-D2Uei3CO.js +0 -1
  1681. package/build/assets/highlighted-source-view-C_YOp8Fo.js +0 -1
  1682. package/build/assets/home-DNzzJcMP.js +0 -1
  1683. package/build/assets/home-aCos-5vc.js +0 -1
  1684. package/build/assets/home-store-DgzViC3f.js +0 -1
  1685. package/build/assets/index-home-DNzzJcMP.js +0 -1
  1686. package/build/assets/info-CLoC1LRo.js +0 -1
  1687. package/build/assets/install-server-modal-D7zIqNKz.js +0 -1
  1688. package/build/assets/kebab-menu-item-content-DERMdnDv.js +0 -1
  1689. package/build/assets/launch-5PjKeLak.js +0 -1
  1690. package/build/assets/list-todo-BF049YaY.js +0 -1
  1691. package/build/assets/llm-not-configured-banner-BK9z5eS0.js +0 -27
  1692. package/build/assets/llm-settings-BLAMK2tR.js +0 -1
  1693. package/build/assets/llm-settings-BWsbarGM.js +0 -1
  1694. package/build/assets/llm-subscription-service-SfnEV9Uc.js +0 -1
  1695. package/build/assets/loader-circle-D7IagAyF.js +0 -1
  1696. package/build/assets/loading-spinner-DBgXgra0.js +0 -1
  1697. package/build/assets/manage-backends-modal-BTqNPhzc.js +0 -1
  1698. package/build/assets/manifest-abebca3c.js +0 -1
  1699. package/build/assets/manifest-subpage-layout-Rn-glaxV.js +0 -1
  1700. package/build/assets/map-provider-BK4HnqYz.js +0 -1
  1701. package/build/assets/markdown-renderer-Cp6DlHQN.js +0 -8
  1702. package/build/assets/mcp-BC-Ixn4T.js +0 -9
  1703. package/build/assets/mcp-marketplace-utils-BJWJgbB6.js +0 -1
  1704. package/build/assets/messages-CzFKrzPG.js +0 -40
  1705. package/build/assets/modal-body-BdKfD3Hl.js +0 -1
  1706. package/build/assets/modal-classes-D5_b5vMi.js +0 -1
  1707. package/build/assets/modal-close-button-objukxk_.js +0 -1
  1708. package/build/assets/mouse-pointer-click-C_gXyLyD.js +0 -1
  1709. package/build/assets/npm-CHVHV1MC.js +0 -1
  1710. package/build/assets/onboarding-Diw0V51A.js +0 -1
  1711. package/build/assets/onboarding-modal-Da4yHzsA.js +0 -1
  1712. package/build/assets/organization-service.api-BztSy69u.js +0 -1
  1713. package/build/assets/parse-git-remote-url-BkXN9jzl.js +0 -1
  1714. package/build/assets/pencil-49avMHlD.js +0 -1
  1715. package/build/assets/planner-tab-CJiSpNax.js +0 -1
  1716. package/build/assets/plugins-management-service-lHdNKWNU.js +0 -1
  1717. package/build/assets/plus-C0BagBpV.js +0 -1
  1718. package/build/assets/profiles-service.api-BLr7FXec.js +0 -1
  1719. package/build/assets/providers-CWXnb7S3.js +0 -1
  1720. package/build/assets/proxy-DYDXxtje.js +0 -1
  1721. package/build/assets/puzzle-Bt2B1rzf.js +0 -1
  1722. package/build/assets/recommended-automations-launcher-CcFMfJRR.js +0 -1
  1723. package/build/assets/refresh-cw-nmcesifB.js +0 -1
  1724. package/build/assets/root-CT4t7apy.css +0 -1
  1725. package/build/assets/root-DnRgLKpU.js +0 -2
  1726. package/build/assets/root-layout-2L9tr-BN.js +0 -2
  1727. package/build/assets/schema-field-C59lVZTA.js +0 -1
  1728. package/build/assets/sdk-section-page-BbBEQQjq.js +0 -1
  1729. package/build/assets/search-CYSDBczG.js +0 -1
  1730. package/build/assets/secrets-service-BtsgYSlj.js +0 -1
  1731. package/build/assets/secrets-settings-DJ0OKa4_.js +0 -1
  1732. package/build/assets/segmented-toggle-DiVfTZuN.js +0 -1
  1733. package/build/assets/settings-CDqL_Uqh.js +0 -1
  1734. package/build/assets/settings-DcNPxz0v.js +0 -1
  1735. package/build/assets/settings-dropdown-input-Ba1UN5Du.js +0 -1
  1736. package/build/assets/settings-index-Cz2cKt2K.js +0 -1
  1737. package/build/assets/settings-input-CWUEHHvS.js +0 -1
  1738. package/build/assets/settings-list-classes-DdcLXDGn.js +0 -1
  1739. package/build/assets/settings-modal-nEEK1Kh1.js +0 -1
  1740. package/build/assets/settings-service.api-3yAUFcaP.js +0 -1
  1741. package/build/assets/settings-switch-Dk9hChx1.js +0 -1
  1742. package/build/assets/settings-utils-CxjtCSB3.js +0 -1
  1743. package/build/assets/shared-conversation-DbAcrx3s.js +0 -1
  1744. package/build/assets/shield-check-CiOTXxV2.js +0 -1
  1745. package/build/assets/sidebar-layout-lrfPooIB.js +0 -1
  1746. package/build/assets/sidebar-mobile-menu-toggle-KERXfNu1.js +0 -1
  1747. package/build/assets/sidebar-nav-link-B8lFD6Cb.js +0 -1
  1748. package/build/assets/sidebar-store-u6pUpxJ7.js +0 -1
  1749. package/build/assets/skill-card-pill-row-dGIUzr_b.js +0 -1
  1750. package/build/assets/skill-icon-badge-kkOWZ89w.js +0 -1
  1751. package/build/assets/skill-scope-DWN1PBPH.js +0 -1
  1752. package/build/assets/skills-plugins-DFjH2Nq6.js +0 -1
  1753. package/build/assets/skills-settings-DIHpl3ol.js +0 -2
  1754. package/build/assets/sparkles-ntyMLnbj.js +0 -1
  1755. package/build/assets/styled-tooltip-B6JXcsmL.js +0 -1
  1756. package/build/assets/task-list-tab-aEJzEcHD.js +0 -1
  1757. package/build/assets/terminal-Dch7Ty5K.js +0 -3
  1758. package/build/assets/toggle-switch-B2MLKsgt.js +0 -1
  1759. package/build/assets/trash-2-yZnDM4Ji.js +0 -1
  1760. package/build/assets/typography-DB5HoCk0.js +0 -1
  1761. package/build/assets/usage-tab-DrEtBmBT.js +0 -1
  1762. package/build/assets/use-acp-credential-form-c8KXAa8A.js +0 -1
  1763. package/build/assets/use-activate-agent-profile-B0p34N3q.js +0 -1
  1764. package/build/assets/use-agent-profiles-CPIc6wLH.js +0 -1
  1765. package/build/assets/use-can-manage-org-profiles-Dz_8Eqkv.js +0 -1
  1766. package/build/assets/use-cloud-current-user-id-DvUVqCle.js +0 -1
  1767. package/build/assets/use-config-C3PO4TBw.js +0 -1
  1768. package/build/assets/use-create-conversation-DVrA_uLD.js +0 -1
  1769. package/build/assets/use-create-secret-DbBIpaCR.js +0 -1
  1770. package/build/assets/use-get-secrets-6PBitf54.js +0 -1
  1771. package/build/assets/use-has-permission-CQ31Cl8j.js +0 -1
  1772. package/build/assets/use-is-authed-2UrDIziV.js +0 -1
  1773. package/build/assets/use-is-creating-conversation-BvYpmb3v.js +0 -1
  1774. package/build/assets/use-launch-skill-in-chat-COnDpxCQ.js +0 -1
  1775. package/build/assets/use-llm-profiles-diZS4FiN.js +0 -1
  1776. package/build/assets/use-manifest-capabilities-HIWCtIUm.js +0 -1
  1777. package/build/assets/use-onboarding-completion-Bs8PcXik.js +0 -1
  1778. package/build/assets/use-plugins-marketplace-BCuNLFsr.js +0 -1
  1779. package/build/assets/use-save-agent-profile-BaMNSpBV.js +0 -1
  1780. package/build/assets/use-save-settings-BahvC2Gw.js +0 -1
  1781. package/build/assets/use-settings-C6ZxpBDX.js +0 -1
  1782. package/build/assets/use-settings-nav-items-Bqn69Ggw.js +0 -16
  1783. package/build/assets/use-tracking-Bhu7gk2y.js +0 -3
  1784. package/build/assets/use-user-conversation-BkNXpXrd.js +0 -1
  1785. package/build/assets/useInfiniteQuery-c_OmS3lK.js +0 -1
  1786. package/build/assets/useMutation-6ZsQCqAn.js +0 -1
  1787. package/build/assets/useQueries-xDrGlTO_.js +0 -1
  1788. package/build/assets/useQuery-Bs5NFz2s.js +0 -1
  1789. package/build/assets/utils-DUD5ScdA.js +0 -1
  1790. package/build/assets/vendor~browser-B-fae1JU.js +0 -47
  1791. package/build/assets/vendor~entry.client-BFE7Llz9.js +0 -1
  1792. package/build/assets/vendor~entry.client-BaKt_PIp.js +0 -9
  1793. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js +0 -186
  1794. package/build/assets/vendor~files-tab-B6POTS66.js +0 -11
  1795. package/build/assets/vendor~index-home~home~conversation-panel~conversation-53Q_U6uP.js +0 -13
  1796. package/build/assets/vendor~index-home~home~conversation-panel~conversation~alert-banner-B3qC_oj8.js +0 -1
  1797. package/build/assets/vendor~root-layout-DeQACFVA.js +0 -1
  1798. package/build/assets/vendor~root-layout~conversation-panel~conversation-bv7ooVgH.js +0 -1
  1799. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-e8pX05xf.js +0 -1
  1800. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-BvS6PCK2.js +0 -1
  1801. package/build/assets/vendor~root-layout~index-home~home~mcp~automations-list~automation-templates~automation-set~bxsimjx0-D7IDevqN.js +0 -1
  1802. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-DOPLJMH9.js +0 -48
  1803. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js +0 -1
  1804. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BOVIFA_g.js +0 -73
  1805. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js +0 -7465
  1806. package/build/assets/verification-settings-COueVXmM.js +0 -1
  1807. package/build/assets/wrench-C95ujnYo.js +0 -1
  1808. package/build/assets/x-86ZCfxKY.js +0 -1
  1809. package/build/assets/zap-DRa-r-Tf.js +0 -1
  1810. package/dist/components/features/diff-viewer/empty-changes-message.cjs +0 -2
  1811. package/dist/components/features/diff-viewer/empty-changes-message.cjs.map +0 -1
  1812. package/dist/components/features/diff-viewer/empty-changes-message.js +0 -17
  1813. package/dist/components/features/diff-viewer/empty-changes-message.js.map +0 -1
  1814. package/dist/components/features/tips/random-tip.cjs +0 -2
  1815. package/dist/components/features/tips/random-tip.cjs.map +0 -1
  1816. package/dist/components/features/tips/random-tip.d.ts +0 -2
  1817. package/dist/components/features/tips/random-tip.js +0 -41
  1818. package/dist/components/features/tips/random-tip.js.map +0 -1
  1819. package/dist/hooks/query/use-has-git-commits.cjs +0 -2
  1820. package/dist/hooks/query/use-has-git-commits.cjs.map +0 -1
  1821. package/dist/hooks/query/use-has-git-commits.d.ts +0 -25
  1822. package/dist/hooks/query/use-has-git-commits.js +0 -31
  1823. package/dist/hooks/query/use-has-git-commits.js.map +0 -1
  1824. package/dist/hooks/use-has-attached-source.cjs +0 -2
  1825. package/dist/hooks/use-has-attached-source.cjs.map +0 -1
  1826. package/dist/hooks/use-has-attached-source.d.ts +0 -18
  1827. package/dist/hooks/use-has-attached-source.js +0 -14
  1828. package/dist/hooks/use-has-attached-source.js.map +0 -1
  1829. package/dist/icons/chveron-up.cjs +0 -2
  1830. package/dist/icons/chveron-up.cjs.map +0 -1
  1831. package/dist/icons/chveron-up.js +0 -21
  1832. package/dist/icons/chveron-up.js.map +0 -1
  1833. package/dist/routes/changes-tab.cjs +0 -2
  1834. package/dist/routes/changes-tab.cjs.map +0 -1
  1835. package/dist/routes/changes-tab.d.ts +0 -3
  1836. package/dist/routes/changes-tab.js +0 -64
  1837. package/dist/routes/changes-tab.js.map +0 -1
  1838. package/dist/utils/file-priority.cjs +0 -2
  1839. package/dist/utils/file-priority.cjs.map +0 -1
  1840. package/dist/utils/file-priority.d.ts +0 -27
  1841. package/dist/utils/file-priority.js +0 -61
  1842. package/dist/utils/file-priority.js.map +0 -1
  1843. package/dist/utils/table-row-classes.d.ts +0 -9
  1844. package/dist/utils/tips.cjs +0 -2
  1845. package/dist/utils/tips.cjs.map +0 -1
  1846. package/dist/utils/tips.d.ts +0 -7
  1847. package/dist/utils/tips.js +0 -45
  1848. package/dist/utils/tips.js.map +0 -1
  1849. package/dist/utils/workspace-relative-path.cjs +0 -2
  1850. package/dist/utils/workspace-relative-path.cjs.map +0 -1
  1851. package/dist/utils/workspace-relative-path.d.ts +0 -10
  1852. package/dist/utils/workspace-relative-path.js +0 -22
  1853. package/dist/utils/workspace-relative-path.js.map +0 -1
  1854. /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-rfV8mQ9m.js} +0 -0
  1855. /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~i58xkef6-cHFhpUBq.js} +0 -0
@@ -1 +0,0 @@
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"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{t as i,z as a}from"./utils-DUD5ScdA.js";import{i as o}from"./extension-module-card-classes-Bo43vY5V.js";var s=e(t(),1),c=n(),l=o,u=6;function d(e,t){if(e.length===0||t<=0)return 0;let n=0;for(let r=0;r<e.length;r+=1){let i=e[r],a=r>0?u:0,o=e.length-r-1>0?46:0;if(n+a+i+o>t)return Math.max(1,r);n+=a+i}return e.length}function f({pills:e,testId:t}){let{t:n}=r(`openhands`),l=s.useRef(null),u=s.useRef(null),[f,p]=s.useState(e.length),m=s.useCallback(()=>{let e=l.current,t=u.current;!e||!t||p(d(Array.from(t.children).map(e=>e.offsetWidth),e.clientWidth))},[]);if(s.useLayoutEffect(()=>{m()},[e,m]),s.useEffect(()=>{let e=l.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(()=>m());return t.observe(e),()=>t.disconnect()},[m]),e.length===0)return null;let h=Math.max(0,e.length-f);return(0,c.jsxs)(`div`,{className:`min-w-0 overflow-hidden`,children:[(0,c.jsx)(`div`,{ref:u,"aria-hidden":!0,className:`pointer-events-none fixed top-0 -left-[10000px] z-[-1] flex flex-nowrap items-center gap-1.5 opacity-0`,children:e.map(e=>(0,c.jsx)(`span`,{className:`inline-flex shrink-0`,children:e.node},e.id))}),(0,c.jsxs)(`div`,{ref:l,"data-testid":t,className:`flex w-full min-w-0 max-w-full flex-nowrap items-center gap-1.5 overflow-hidden`,children:[e.slice(0,f).map(e=>(0,c.jsx)(`span`,{className:`inline-flex shrink-0`,children:e.node},e.id)),h>0?(0,c.jsx)(`span`,{"data-testid":`${t}-overflow`,className:i(o,`font-medium text-tertiary-alt`),title:e.slice(f).map(e=>e.id).join(`, `),children:n(a.SETTINGS$SKILLS_PILLS_MORE,{count:h})}):null]})]})}export{f as n,l as t};
@@ -1 +0,0 @@
1
- import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{t}from"./utils-DUD5ScdA.js";import{t as n}from"./skills-B0IliMxw.js";var r=e();function i({skillName:e,className:i}){return(0,r.jsx)(`span`,{"aria-hidden":`true`,title:e,"data-testid":`skill-icon-${e}`,className:t(`inline-flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden`,`rounded-lg border border-white/10 bg-surface-raised text-white`,`shadow-[inset_0_1px_0_rgba(255,255,255,0.18)]`,`[&>svg]:h-5 [&>svg]:w-5`,i),children:(0,r.jsx)(n,{})})}export{i as t};
@@ -1 +0,0 @@
1
- import{d as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t}from"./useQuery-Bs5NFz2s.js";import{Q as n,bt as r,st as i}from"./active-backend-context-BZDG15C0.js";import{t as a}from"./proxy-DYDXxtje.js";import{t as o}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js";var s=100;function c(){let e=i().backend;if(e.kind!==`cloud`)throw Error(`Cloud skills call requires a cloud backend.`);return e}async function l(){let e=c(),t=[],n=null;do{let r=new URLSearchParams({limit:String(s)});n&&r.set(`page_id`,n);let i=await a({backend:e,method:`GET`,path:`/api/v1/skills/search?${r.toString()}`});t.push(...i.items??[]),n=i.next_page_id}while(n);return t}function u(e){return{name:e.name,type:`knowledge`,source:`public`,description:e.description,triggers:e.triggers,category:e.category,content:e.content,license:e.license??null,compatibility:e.compatibility??null}}var d=o.map(u),f=class{static async getSkills(t){if(i().backend.kind===`cloud`)return l();let a=[];try{a=(await new e(n()).getSkills({load_public:!1,load_user:!0,load_project:!0,load_org:!1,project_dir:t??r()})).skills??[]}catch{}return[...a,...d]}},p=e=>t({queryKey:[`skills`,e??null],queryFn:()=>f.getSkills(e),staleTime:1e3*60*10,refetchOnWindowFocus:!1}),m=[`project`,`personal`,`public`],h=[`/.agents/skills/`,`/.openhands/skills/`,`/.openhands/microagents/`];function g(e){return e.replace(/\\/g,`/`)}function _(e){let t=g(e).toLowerCase();return t===`public`?!0:t.includes(`public-skills`)||t.includes(`/.openhands/cache/skills/`)}function v(e){let t=g(e);return/^\/Users\/[^/]+\/\.(agents|openhands)\//.test(t)||/^\/home\/[^/]+\/\.(agents|openhands)\//.test(t)?!0:h.some(e=>{let n=t.indexOf(e);if(n===-1)return!1;let r=t.slice(0,n);return/^\/Users\/[^/]+$/.test(r)||/^\/home\/[^/]+$/.test(r)})}function y(e,t){let n=g(e);if(!h.some(e=>n.includes(e))||v(e))return!1;if(t){let e=g(t).replace(/\/$/,``);if(n.startsWith(e))return!0}return!0}function b(e,t){let n=e.source?.trim();if(!n)return e.type===`repo`?`project`:`public`;let r=n.toLowerCase();return _(n)?`public`:r===`user`||r===`global`?`personal`:r===`project`||r===`repo`||r===`sandbox`?`project`:v(n)?`personal`:y(n,t)?`project`:`public`}function x(e,t){let n={project:[],personal:[],public:[]};for(let r of e)n[b(r,t)].push(r);for(let e of m)n[e].sort((e,t)=>e.name.localeCompare(t.name));return n}export{p as i,b as n,x as r,m as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{U as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js";import{n as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{t as o}from"./useMutation-6ZsQCqAn.js";import{t as s}from"./useQuery-Bs5NFz2s.js";import{F as c,Ft as l,Mt as u,jt as d,n as f}from"./active-backend-context-BZDG15C0.js";import{t as p,z as m}from"./utils-DUD5ScdA.js";import{t as h}from"./search-CYSDBczG.js";import{t as g}from"./x-86ZCfxKY.js";import{t as _}from"./loading-spinner-DBgXgra0.js";import{t as v}from"./modal-backdrop-BSzNhM4r.js";import{n as y}from"./modal-classes-D5_b5vMi.js";import{t as b}from"./brand-button-Blxv5nww.js";import{n as x}from"./navigation-context-CQZwH_tC.js";import{t as S}from"./modal-close-button-objukxk_.js";import{t as C}from"./settings-input-CWUEHHvS.js";import{t as w}from"./plugins-management-service-lHdNKWNU.js";import{a as T,i as E,r as D}from"./extension-module-card-classes-Bo43vY5V.js";import{t as O}from"./settings-switch-Dk9hChx1.js";import{n as k}from"./circle-plus-check-toggle-ASbpB8vN.js";import{n as A,t as ee}from"./use-plugins-marketplace-BCuNLFsr.js";import{n as j}from"./extensions-navigation-C4sgZg-y.js";import{t as M}from"./skill-icon-badge-kkOWZ89w.js";import{n as N}from"./settings-like-page-layout-classes-Cw4Yzv_P.js";import{n as P,t as F}from"./highlighted-source-view-C_YOp8Fo.js";var I=e(t(),1),L=n();function R({plugin:e,isBusy:t=!1,isDisabled:n=!1,onOpen:r,onInstall:i,onToggle:o}){let{t:s}=a(`openhands`);return(0,L.jsxs)(`div`,{"data-testid":`plugin-card-${e.name}`,role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:p(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,T,D),children:[(0,L.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`h3`,{"data-testid":`plugin-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,L.jsx)(`p`,{"data-testid":`plugin-source-${e.name}`,className:`mt-0.5 min-w-0 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}):null]}),e.installed?(0,L.jsx)(k,{testId:`plugin-toggle-${e.name}`,isSelected:e.enabled,isDisabled:n||t,onToggle:o,disableTooltipKey:m.COMMON$DISABLE}):e.isLocal?(0,L.jsx)(`span`,{"data-testid":`plugin-local-badge-${e.name}`,className:p(E,`flex-shrink-0`),children:s(m.SETTINGS$PLUGINS_FILTER_LOCAL)}):(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-install-${e.name}`,isDisabled:n||t,className:`flex-shrink-0 whitespace-nowrap`,onClick:e=>{e?.stopPropagation(),i()},children:s(t?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)})]}),e.description?(0,L.jsx)(`p`,{"data-testid":`plugin-description-${e.name}`,className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null,(e.installed||e.isLocal)&&e.version?(0,L.jsx)(`span`,{"data-testid":`plugin-version-${e.name}`,className:p(E,`self-start`),children:s(m.SETTINGS$SKILLS_VERSION,{version:e.version})}):null]})}var z=[{value:`all`,labelKey:m.SETTINGS$PLUGINS_FILTER_ALL},{value:`installed`,labelKey:m.SETTINGS$PLUGINS_FILTER_INSTALLED},{value:`available`,labelKey:m.SETTINGS$PLUGINS_FILTER_AVAILABLE},{value:`local`,labelKey:m.SETTINGS$PLUGINS_FILTER_LOCAL}];function B({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r}){let{t:i}=a(`openhands`);return(0,L.jsxs)(`div`,{"data-testid":`plugins-toolbar`,className:`flex items-stretch gap-2`,children:[(0,L.jsxs)(`div`,{className:p(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,L.jsx)(h,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,L.jsx)(`input`,{"data-testid":`plugins-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:i(m.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),"aria-label":i(m.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),className:p(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),e?(0,L.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":i(m.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,L.jsx)(g,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,L.jsx)(`div`,{"data-testid":`plugins-status-filter`,className:`flex shrink-0 items-center gap-1 rounded-lg border border-[var(--oh-border)] bg-base-secondary p-1`,children:z.map(e=>(0,L.jsx)(`button`,{type:`button`,"data-testid":`plugins-filter-${e.value}`,"aria-pressed":n===e.value,onClick:()=>r(e.value),className:p(`cursor-pointer rounded-md px-3 py-1 text-xs transition-colors`,n===e.value?`bg-surface-raised text-white`:`text-tertiary-alt hover:text-white`),children:i(e.labelKey)},e.value))})]})}var V=(e,t)=>s({queryKey:[`plugin-file-content`,e,t],queryFn:()=>{if(!e||!t)throw Error(`No file selected`);return A.getPluginFileContent(e,t)},enabled:!!(e&&t),retry:!1,staleTime:1e3*60*10,refetchOnWindowFocus:!1});function H({basePath:e,files:t}){let{t:n}=a(`openhands`),[r,i]=I.useState(null),o=r&&t.includes(r)?r:null,{data:s,isLoading:c,isError:l}=V(o?e:null,o);return(0,L.jsxs)(`section`,{"data-testid":`plugin-files-section`,className:`flex min-w-0 flex-col gap-2`,children:[(0,L.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:n(m.COMMON$FILES)}),(0,L.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)]`,children:[(0,L.jsx)(`div`,{className:`max-h-48 overflow-y-auto custom-scrollbar`,children:(0,L.jsx)(P,{paths:t,selectedPath:o,onSelectFile:e=>i(t=>t===e?null:e)})}),o?(0,L.jsxs)(`div`,{"data-testid":`plugin-file-content`,className:`flex h-60 min-w-0 flex-col border-t border-[var(--oh-border)]`,children:[(0,L.jsx)(`p`,{className:`truncate px-3 py-2 text-xs text-tertiary-alt`,title:o,children:o}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:c?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,L.jsx)(_,{size:`small`})}):l?(0,L.jsx)(`p`,{className:`px-3 py-2 text-xs text-tertiary-light`,children:n(m.FILES$LOAD_ERROR)}):s?.kind===`binary`?(0,L.jsx)(`p`,{className:`px-3 py-2 text-xs text-tertiary-light`,children:n(m.FILES$BINARY_FALLBACK)}):(0,L.jsx)(F,{path:o,text:s?.text??``})})]}):null]})]})}function U({plugin:e,isBusy:t=!1,isDisabled:n=!1,onToggle:r,onInstall:i,onUninstall:o,onRefresh:s,onClose:c,onStartConversation:l}){let{t:u}=a(`openhands`),d=n||t;return(0,L.jsx)(v,{onClose:c,"aria-label":e.name,children:(0,L.jsxs)(`div`,{"data-testid":`plugin-detail-modal`,"data-plugin-name":e.name,className:`relative flex w-[640px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,L.jsx)(S,{onClose:c,testId:`plugin-detail-modal-close`}),(0,L.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,L.jsx)(`h2`,{className:p(`pr-6`,y),children:e.name}),e.source?(0,L.jsx)(`p`,{className:`mt-1 break-all text-xs text-tertiary-alt`,children:e.source}):null]}),(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[e.description?(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-tertiary-light`,children:e.description}):null,(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.isLocal?(0,L.jsx)(`span`,{className:E,children:u(m.SETTINGS$PLUGINS_FILTER_LOCAL)}):null,e.version?(0,L.jsx)(`span`,{className:E,children:u(m.SETTINGS$SKILLS_VERSION,{version:e.version})}):null,e.ref?(0,L.jsxs)(`span`,{className:E,children:[u(m.SETTINGS$PLUGINS_REF_LABEL),` `,e.ref]}):null,e.repoPath?(0,L.jsxs)(`span`,{className:E,children:[u(m.SETTINGS$PLUGINS_REPO_PATH_LABEL),` `,e.repoPath]}):null]}),e.installed?(0,L.jsx)(O,{testId:`plugin-modal-toggle-${e.name}`,isToggled:e.enabled,onToggle:r,isDisabled:d,togglePosition:`right`,children:u(e.enabled?m.SETTINGS$SKILLS_ENABLED:m.SETTINGS$SKILLS_DISABLED)}):null,e.skills?.length?(0,L.jsxs)(`section`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,L.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:u(m.SETTINGS$PLUGINS_SKILLS_IN_BUNDLE)}),(0,L.jsx)(`ul`,{className:`flex min-w-0 flex-col gap-2`,children:e.skills.map(e=>(0,L.jsxs)(`li`,{"data-testid":`plugin-bundled-skill-${e.name}`,className:`flex items-start gap-3 rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)] px-3 py-2.5`,children:[(0,L.jsx)(M,{skillName:e.name}),(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`p`,{className:`truncate text-sm font-semibold text-white`,children:e.name}),e.description?(0,L.jsx)(`p`,{className:`mt-0.5 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null]})]},e.name))})]}):null,e.path&&e.files?.length?(0,L.jsx)(H,{basePath:e.path,files:e.files}):null]}),(0,L.jsxs)(`footer`,{className:`flex flex-shrink-0 flex-wrap justify-end gap-2 px-6 pb-6 pt-4`,children:[e.installed?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-refresh-${e.name}`,isDisabled:d,onClick:s,children:u(m.SETTINGS$PLUGINS_REFRESH)}),(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-uninstall-${e.name}`,isDisabled:d,onClick:o,children:u(m.SETTINGS$PLUGINS_UNINSTALL)})]}):e.isLocal?null:(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-install-${e.name}`,isDisabled:d,onClick:i,children:u(t?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)}),e.source&&l?(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-start-conversation-${e.name}`,onClick:l,children:u(m.COMMON$START_CONVERSATION)}):null,(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-modal-dismiss`,onClick:c,children:u(m.BUTTON$CLOSE)})]})]})})}function W(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.installPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:c.installed}),e.invalidateQueries({queryKey:c.marketplace}),u(t(m.SETTINGS$PLUGINS_INSTALL_SUCCESS))},onError:e=>{d(l(e)||t(m.ERROR$GENERIC))}})}function G({onClose:e,onInstalled:t}){let{t:n}=a(`openhands`),r=W(),[i,o]=I.useState(``),[s,c]=I.useState(``),[l,u]=I.useState(``),d=i.trim(),f=d.length>0&&!r.isPending;return(0,L.jsx)(v,{onClose:e,"aria-label":n(m.SETTINGS$PLUGINS_ADD_MODAL_TITLE),children:(0,L.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),f&&r.mutate({source:d,ref:s.trim()||null,repo_path:l.trim()||null},{onSuccess:()=>{t?.(),e()}})},"data-testid":`add-plugin-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,L.jsx)(S,{onClose:e,testId:`add-plugin-modal-close`}),(0,L.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,L.jsx)(`h2`,{className:p(`pr-6`,y),children:n(m.SETTINGS$PLUGINS_ADD_MODAL_TITLE)}),(0,L.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:n(m.SETTINGS$PLUGINS_ADD_MODAL_INTRO)})]}),(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,L.jsx)(C,{testId:`add-plugin-source-input`,label:n(m.SETTINGS$PLUGINS_SOURCE_LABEL),type:`text`,value:i,onChange:o,placeholder:n(m.SETTINGS$PLUGINS_SOURCE_PLACEHOLDER),showRequiredTag:!0}),(0,L.jsx)(C,{testId:`add-plugin-ref-input`,label:n(m.SETTINGS$PLUGINS_REF_LABEL),type:`text`,value:s,onChange:c,showOptionalTag:!0}),(0,L.jsx)(C,{testId:`add-plugin-repo-path-input`,label:n(m.SETTINGS$PLUGINS_REPO_PATH_LABEL),type:`text`,value:l,onChange:u,showOptionalTag:!0})]}),(0,L.jsxs)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:[(0,L.jsx)(b,{type:`button`,variant:`secondary`,onClick:e,testId:`add-plugin-modal-dismiss`,children:n(m.BUTTON$CLOSE)}),(0,L.jsx)(b,{type:`submit`,variant:`primary`,testId:`add-plugin-submit`,isDisabled:!f,children:n(r.isPending?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)})]})]})})}function K(e,t,n=void 0){let r=new Map;for(let t of e??[])r.set(t.name,{name:t.name,description:t.description,source:t.source,ref:t.ref??null,repoPath:t.repo_path??null,installed:t.installed,enabled:!1,version:null,inCatalog:!0,isLocal:!1,path:t.path??null,skills:t.skills??null,files:t.files??null});for(let e of t??[]){let t=r.get(e.name),n=e.skills!=null||e.files!=null;r.set(e.name,{name:e.name,description:t?.description??e.description??null,source:e.source??t?.source??null,ref:e.resolved_ref??t?.ref??null,repoPath:e.repo_path??t?.repoPath??null,installed:!0,enabled:e.enabled,version:e.version??null,inCatalog:t?.inCatalog??!1,isLocal:!1,path:n?e.install_path:t?.path??null,skills:n?e.skills??null:t?.skills??null,files:n?e.files??null:t?.files??null})}for(let e of n??[])r.has(e.name)||r.set(e.name,{name:e.name,description:e.description||null,source:null,ref:null,repoPath:null,installed:!1,enabled:!1,version:e.version||null,inCatalog:!1,isLocal:!0,path:e.path??null,skills:e.skills??null,files:e.files??null});let i=e=>e.installed?0:e.isLocal?1:2;return Array.from(r.values()).sort((e,t)=>{let n=i(e)-i(t);return n===0?e.name.localeCompare(t.name):n})}function q(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description??``,e.source??``,e.repoPath??``,e.ref??``].some(e=>e.toLowerCase().includes(n)):!0}function J(e,t){return t===`installed`?e.installed:t===`available`?!e.installed&&!e.isLocal:t===`local`?e.isLocal:!0}var Y=()=>s({queryKey:c.installed,queryFn:()=>w.listInstalledPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1}),X=()=>s({queryKey:c.local,queryFn:()=>A.getLocalPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});function Z(){let e=i(),{t}=a(`openhands`);return o({mutationFn:({name:e,enabled:t})=>w.setPluginEnabled(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:c.installed})},onError:e=>{d(l(e)||t(m.ERROR$GENERIC))}})}function Q(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.uninstallPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:c.installed}),e.invalidateQueries({queryKey:c.marketplace}),u(t(m.SETTINGS$PLUGINS_UNINSTALL_SUCCESS))},onError:e=>{d(l(e)||t(m.ERROR$GENERIC))}})}function te(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.refreshPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:c.installed}),u(t(m.SETTINGS$PLUGINS_REFRESH_SUCCESS))},onError:e=>{d(l(e)||t(m.ERROR$GENERIC))}})}function ne(e){let t=btoa(JSON.stringify(e));return`/launch?${new URLSearchParams({plugins:t}).toString()}`}var $=r(function(){let{t:e}=a(`openhands`),{backend:t}=f(),{navigate:n}=x(),r=t.kind===`local`,{data:i,isLoading:o}=ee(),{data:s,isLoading:c}=Y(),{data:l,isLoading:u}=X(),d=W(),h=Z(),g=Q(),_=te(),[v,y]=I.useState(``),[S,C]=I.useState(`all`),[w,T]=I.useState(null),[E,D]=I.useState(!1),O=I.useMemo(()=>K(i,s,l),[i,s,l]),k=I.useMemo(()=>O.filter(e=>J(e,S)&&q(e,v)),[O,S,v]),A=w?O.find(e=>e.name===w)??null:null,M=o||c||u,P=(h.isPending?h.variables?.name:void 0)??(g.isPending?g.variables:void 0)??(_.isPending?_.variables:void 0)??null,F=e=>P===e.name||d.isPending&&d.variables?.source===e.source,z=e=>{e.source&&d.mutate({source:e.source,ref:e.ref,repo_path:e.repoPath})},V=(e,t)=>{h.mutate({name:e.name,enabled:t})},H=e=>{g.mutate(e.name,{onSuccess:()=>T(null)})},$=e=>{_.mutate(e.name)},re=e=>{e.source&&n(ne([{source:e.source,ref:e.ref,repo_path:e.repoPath}]))};return(0,L.jsxs)(`div`,{"data-testid":`skills-plugins-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,L.jsx)(j,{}),(0,L.jsx)(`main`,{className:p(N,`h-full`),children:(0,L.jsxs)(`div`,{className:`mx-auto flex w-full min-w-0 max-w-[800px] flex-col gap-6`,children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,L.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(m.SETTINGS$PLUGINS_TITLE)}),(0,L.jsx)(`div`,{"data-testid":`plugins-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_PAGE_DESCRIPTION)})]}),(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugins-add-plugin-button`,isDisabled:!r,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>D(!0),children:e(m.SETTINGS$PLUGINS_ADD_BUTTON)})]}),M&&(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,L.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}),!M&&O.length===0&&(0,L.jsx)(`div`,{"data-testid":`plugins-empty`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,L.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_NO_PLUGINS)})}),!M&&O.length>0&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(B,{search:v,onSearchChange:y,statusFilter:S,onStatusFilterChange:C}),k.length===0?(0,L.jsx)(`div`,{"data-testid":`plugins-no-match`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,L.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_NO_MATCH)})}):(0,L.jsx)(`section`,{className:p(`flex min-w-0 flex-col gap-3`,`@container min-w-0 w-full`),children:(0,L.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-3 @min-[600px]:grid-cols-2`,children:k.map(e=>(0,L.jsx)(R,{plugin:e,isBusy:F(e),isDisabled:!r,onOpen:()=>T(e.name),onInstall:()=>z(e),onToggle:t=>V(e,t)},e.name))})})]}),A&&(0,L.jsx)(U,{plugin:A,isBusy:F(A),isDisabled:!r,onToggle:e=>V(A,e),onInstall:()=>z(A),onUninstall:()=>H(A),onRefresh:()=>$(A),onStartConversation:()=>re(A),onClose:()=>T(null)}),E&&(0,L.jsx)(G,{onClose:()=>D(!1)})]})})]})});export{$ as default};
@@ -1,2 +0,0 @@
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~ox0jfsa0-cHFhpUBq.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{D as o}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t as s}from"./vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-e8pX05xf.js";import{Ft as c,jt as l}from"./active-backend-context-BZDG15C0.js";import{t as u,z as d}from"./utils-DUD5ScdA.js";import{t as f}from"./bot-CGPCg03p.js";import{t as p}from"./check-DSuS-lyr.js";import{a as m,i as h,n as g,r as _,t as v}from"./wrench-C95ujnYo.js";import{t as y}from"./search-CYSDBczG.js";import{t as b}from"./shield-check-CiOTXxV2.js";import{t as x}from"./x-86ZCfxKY.js";import{n as S}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js";import{n as ee}from"./use-settings-C6ZxpBDX.js";import{t as te}from"./use-save-settings-BahvC2Gw.js";import{t as C}from"./modal-backdrop-BSzNhM4r.js";import{n as w,t as T}from"./modal-body-BdKfD3Hl.js";import{n as E}from"./modal-classes-D5_b5vMi.js";import{t as D}from"./brand-button-Blxv5nww.js";import{t as O}from"./modal-close-button-objukxk_.js";import{t as k}from"./checkmark-XZyokq_Y.js";import{t as A}from"./copy-Drmhc2jD.js";import{a as j,n as ne,o as re,r as M,t as ie}from"./extension-module-card-classes-Bo43vY5V.js";import{t as N}from"./settings-switch-Dk9hChx1.js";import{n as P,t as F}from"./skill-card-pill-row-dGIUzr_b.js";import{n as I}from"./circle-plus-check-toggle-ASbpB8vN.js";import{i as ae,n as L,t as oe}from"./skill-scope-DWN1PBPH.js";import{n as se}from"./extensions-navigation-C4sgZg-y.js";import{t as ce}from"./skill-icon-badge-kkOWZ89w.js";import{n as le,t as ue}from"./use-launch-skill-in-chat-COnDpxCQ.js";import{n as de}from"./settings-like-page-layout-classes-Cw4Yzv_P.js";var fe=o(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 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.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),pe=o(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),me=o(`pen-line`,[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),R=e(t(),1),he=`https://docs.openhands.dev/overview/skills/adding#adding-new-skills`,z=`/add-skill https://github.com/OpenHands/extensions/tree/main/skills/codereview`,B=n(),ge=[d.SETTINGS$SKILLS_ADD_MODAL_STEP_1,d.SETTINGS$SKILLS_ADD_MODAL_STEP_2,d.SETTINGS$SKILLS_ADD_MODAL_STEP_3,d.SETTINGS$SKILLS_ADD_MODAL_STEP_4,d.SETTINGS$SKILLS_ADD_MODAL_STEP_5],V={cmd:(0,B.jsx)(H,{}),path:(0,B.jsx)(H,{}),env:(0,B.jsx)(H,{})};function H({children:e}){return(0,B.jsx)(`code`,{className:u(`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 _e(){let{t:e}=a(`openhands`),[t,n]=R.useState(!1);return R.useEffect(()=>{if(!t)return;let e=setTimeout(()=>n(!1),2e3);return()=>clearTimeout(e)},[t]),(0,B.jsxs)(`div`,{className:`relative`,children:[(0,B.jsx)(`pre`,{"data-testid":`add-skill-modal-example`,className:u(`overflow-x-auto rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] p-2 pr-10 text-xs text-white`),children:z}),(0,B.jsx)(`button`,{type:`button`,"data-testid":`add-skill-modal-example-copy`,"aria-label":e(t?d.BUTTON$COPIED:d.BUTTON$COPY),disabled:t,onClick:async()=>{await navigator.clipboard.writeText(z),n(!0)},className:u(`absolute right-2 top-2 cursor-pointer rounded-sm border border-[var(--oh-border-subtle)]`,`bg-base-secondary p-1 text-tertiary-alt transition-colors`,`hover:bg-[var(--oh-surface)] hover:text-white disabled:cursor-default [&_path]:fill-current`),children:t?(0,B.jsx)(k,{width:14,height:14}):(0,B.jsx)(A,{width:14,height:14})})]})}function U({i18nKey:e}){return(0,B.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:(0,B.jsx)(s,{ns:`openhands`,i18nKey:e,components:V})})}function ve({onClose:e}){let{t}=a(`openhands`);return(0,B.jsx)(C,{onClose:e,"aria-label":t(d.SETTINGS$SKILLS_ADD_MODAL_TITLE),children:(0,B.jsxs)(`div`,{"data-testid":`add-skill-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,B.jsx)(O,{onClose:e,testId:`add-skill-modal-close`}),(0,B.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,B.jsx)(`h2`,{className:u(`pr-6`,E),children:t(d.SETTINGS$SKILLS_ADD_MODAL_TITLE)}),(0,B.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_INTRO)})]}),(0,B.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,B.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_CHAT_TITLE)}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_CHAT_BODY}),(0,B.jsx)(`p`,{className:`text-xs text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_EXAMPLE_LABEL)}),(0,B.jsx)(_e,{}),(0,B.jsx)(`ol`,{className:`list-decimal space-y-1 pl-4 text-xs leading-relaxed text-tertiary-light`,children:ge.map(e=>(0,B.jsx)(`li`,{children:e===d.SETTINGS$SKILLS_ADD_MODAL_STEP_3?(0,B.jsx)(s,{ns:`openhands`,i18nKey:e,components:V}):t(e)},e))})]}),(0,B.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS_TITLE)}),(0,B.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS)})]}),(0,B.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_STORAGE_TITLE)}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_STORAGE_BODY})]}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_PRIVATE_REPOS}),(0,B.jsx)(`a`,{href:he,target:`_blank`,rel:`noreferrer`,"data-testid":`add-skill-modal-docs-link`,className:`self-start text-xs text-[var(--oh-muted)] transition-colors hover:text-white hover:underline`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_VIEW_DOCS)})]}),(0,B.jsx)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:(0,B.jsx)(D,{type:`button`,variant:`secondary`,onClick:e,testId:`add-skill-modal-dismiss`,children:t(d.BUTTON$CLOSE)})})]})})}var W=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function ye(e){let t=e.match(/^description:\s*\|\s*\r?\n((?:[ \t].*(?:\r?\n|$))+)/m);if(t)return t[1].replace(/^[ \t]+/gm,``).trim();let n=e.match(/^description:\s*['"](.+?)['"]\s*$/m);if(n)return n[1].trim();let r=e.match(/^description:\s*(.+)\s*$/m);return r?r[1].trim():null}function be(e){let t=e.match(W);return t?e.slice(t[0].length).trim():e.trim()}function xe(e){let t=e.replace(/^#+\s+[^\n]+\n+/,``).trim();return t.split(/\n\s*\n/).map(e=>e.replace(/\s+/g,` `).trim()).find(e=>e.length>0)??t.replace(/\s+/g,` `).trim()}function G(e){let t=e.description?.trim();if(t)return t;let n=e.content?.trim();if(!n)return``;let r=n.match(W);if(r){let e=ye(r[1]);if(e)return e}return xe(be(n))}var Se=`inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light`,Ce={agentskills:{labelKey:d.SETTINGS$SKILLS_TYPE_AGENTSKILLS},knowledge:{labelKey:d.SETTINGS$SKILLS_TYPE_KNOWLEDGE},repo:{labelKey:d.SETTINGS$SKILLS_TYPE_REPO}};function we({type:e}){let{t}=a(`openhands`),n=Ce[e];return(0,B.jsx)(`span`,{"data-testid":`skill-type-badge-${e}`,className:Se,children:t(n.labelKey)})}var K=[`automations`,`environment`,`code-hosting`,`agent-authoring`,`code-quality`,`integrations`,`writing`,`design`,`other`],q={automations:d.SETTINGS$SKILLS_CATEGORY_AUTOMATIONS,environment:d.SETTINGS$SKILLS_CATEGORY_ENVIRONMENT,"code-hosting":d.SETTINGS$SKILLS_CATEGORY_CODE_HOSTING,"agent-authoring":d.SETTINGS$SKILLS_CATEGORY_AGENT_AUTHORING,"code-quality":d.SETTINGS$SKILLS_CATEGORY_CODE_QUALITY,integrations:d.SETTINGS$SKILLS_CATEGORY_INTEGRATIONS,writing:d.SETTINGS$SKILLS_CATEGORY_WRITING,design:d.SETTINGS$SKILLS_CATEGORY_DESIGN,other:d.SETTINGS$SKILLS_CATEGORY_OTHER},Te={automations:g,environment:v,"code-hosting":m,"agent-authoring":f,"code-quality":b,integrations:_,writing:me,design:pe,other:fe},Ee=`other`,De=new Set(S);function Oe(e){let t=e.category;return t&&De.has(t)?t:Ee}function J(e,t,n){if(e)return`${e}-${t}-${n}`}function ke(e,t,n={}){let{variant:r=`card`,testIdPrefix:i}=n,a=Oe(e),o=[{id:`type-${e.type}`,node:(0,B.jsx)(we,{type:e.type})}];if(a!==`other`&&o.push({id:`category-${a}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`category`)??`skill-category-${e.name}`,className:F,children:t(q[a])})}),e.version&&o.push({id:`version-${e.version}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`version`)??`skill-version-${e.name}`,className:F,children:t(d.SETTINGS$SKILLS_VERSION,{version:e.version})})}),r===`detail`&&e.license&&o.push({id:`license-${e.license}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`license`),className:F,children:e.license})}),r===`detail`&&e.compatibility&&o.push({id:`compatibility-${e.compatibility}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`compatibility`),className:F,children:e.compatibility})}),e.disable_model_invocation&&o.push({id:`disable-model-invocation`,node:(0,B.jsxs)(`span`,{"data-testid":J(i,e.name,`disable-model-invocation`)??`skill-disable-model-invocation-${e.name}`,className:`inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]`,children:[(0,B.jsx)(`span`,{className:`size-1.5 rounded-full bg-[#fca5a5]`}),t(d.SETTINGS$SKILLS_DISABLE_MODEL_INVOCATION)]})}),r===`detail`&&e.allowed_tools)for(let t of e.allowed_tools)o.push({id:`allowed-tool-${t}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`tool-${t}`),className:u(F,`font-mono`),children:t})});if(r===`detail`&&e.metadata)for(let[t,n]of Object.entries(e.metadata))o.push({id:`metadata-${t}`,node:(0,B.jsxs)(`span`,{"data-testid":J(i,e.name,`metadata-${t}`),className:F,children:[(0,B.jsxs)(`span`,{className:`font-mono text-[10px] text-tertiary-light`,children:[t,`:`]}),` `,n]})});for(let t of e.triggers??[])o.push({id:`trigger-${t}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`trigger-${t}`),className:F,children:t})});return o}function Ae(e){let t=e?.trim();return t?!!(/^https?:\/\//i.test(t)||t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`~`)||/^[A-Za-z]:[\\/]/.test(t)||t.includes(`/`)||t.includes(`\\`)):!1}function je({skill:e,enabled:t,onOpen:n,onToggle:r}){let{t:i}=a(`openhands`),[o,s]=R.useState(!1),c=G(e),l=R.useMemo(()=>ke(e,i),[e,i]),f=Ae(e.source);return R.useEffect(()=>{if(!o)return;let e=setTimeout(()=>s(!1),2e3);return()=>clearTimeout(e)},[o]),(0,B.jsx)(`div`,{"data-testid":`skill-card-${e.name}`,role:`button`,tabIndex:0,onClick:n,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n())},className:u(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,j,M),children:(0,B.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,B.jsx)(ce,{skillName:e.name}),(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3`,children:[(0,B.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`h3`,{"data-testid":`skill-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,B.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,B.jsx)(`p`,{"data-testid":`skill-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),f?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skill-copy-source-${e.name}`,"aria-label":i(o?d.BUTTON$COPIED:d.SETTINGS$SKILLS_COPY_PATH),disabled:o,onClick:async t=>{t.stopPropagation(),e.source&&(await navigator.clipboard.writeText(e.source),s(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:o?(0,B.jsx)(k,{width:12,height:12}):(0,B.jsx)(A,{width:12,height:12})}):null]}):null]}),(0,B.jsx)(I,{testId:`skill-toggle-${e.name}`,isSelected:t,onToggle:r,disableTooltipKey:d.COMMON$DISABLE})]}),c?(0,B.jsx)(`div`,{"data-testid":`skill-description-${e.name}`,className:`min-w-0`,children:(0,B.jsx)(`p`,{className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:c})}):null,l.length>0?(0,B.jsx)(P,{pills:l,testId:`skill-triggers-${e.name}`}):null]})]})})}function Me(e){return e.name===`add-skill`?z:`/${e.name} `}function Ne({testId:e,label:t,value:n}){return(0,B.jsxs)(`label`,{className:`flex min-w-0 w-full flex-col gap-2.5`,children:[(0,B.jsx)(`span`,{className:`text-sm`,children:t}),(0,B.jsx)(`textarea`,{"data-testid":e,readOnly:!0,value:n,rows:Math.min(12,Math.max(4,n.split(`
2
- `).length)),className:u(`bg-[var(--oh-surface-raised)] border border-[var(--oh-border-subtle)] w-full min-w-0 rounded-sm p-2 text-sm`,`cursor-not-allowed resize-none custom-scrollbar`)})]})}function Pe({skill:e,enabled:t,onToggle:n,onClose:r}){let{t:i}=a(`openhands`),o=ue(),[s,c]=R.useState(!1),l=R.useMemo(()=>Me(e),[e]),u=G(e),f=R.useMemo(()=>ke(e,i,{variant:`detail`,testIdPrefix:`skill-modal-pill`}),[e,i]),p=Ae(e.source);return R.useEffect(()=>{if(!s)return;let e=setTimeout(()=>c(!1),2e3);return()=>clearTimeout(e)},[s]),(0,B.jsx)(C,{onClose:r,"aria-label":e.name,children:(0,B.jsxs)(`div`,{"data-testid":`skill-detail-modal`,"data-skill-name":e.name,className:`relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)] w-[520px] max-w-[90vw] max-h-[85vh] overflow-y-auto custom-scrollbar`,children:[(0,B.jsx)(O,{onClose:r,testId:`skill-detail-modal-close`}),(0,B.jsxs)(`div`,{className:`flex items-start gap-3 pr-6`,children:[(0,B.jsx)(ce,{skillName:e.name}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`h2`,{"data-testid":`skill-modal-name-${e.name}`,className:E,children:e.name}),e.source?(0,B.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,B.jsx)(`p`,{"data-testid":`skill-modal-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),p?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skill-modal-copy-source-${e.name}`,"aria-label":i(s?d.BUTTON$COPIED:d.SETTINGS$SKILLS_COPY_PATH),disabled:s,onClick:async()=>{e.source&&(await navigator.clipboard.writeText(e.source),c(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:s?(0,B.jsx)(k,{width:12,height:12}):(0,B.jsx)(A,{width:12,height:12})}):null]}):null]})]}),(0,B.jsx)(`div`,{"data-testid":`skill-modal-enable-row-${e.name}`,className:`flex w-full items-center rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)] px-3 py-2.5`,children:(0,B.jsx)(N,{testId:`skill-modal-toggle-${e.name}`,isToggled:t,onToggle:n,togglePosition:`right`,children:i(t?d.SETTINGS$SKILLS_ENABLED:d.SETTINGS$SKILLS_DISABLED)})}),u?(0,B.jsx)(`p`,{"data-testid":`skill-modal-description-${e.name}`,className:`text-xs text-tertiary-light`,children:u}):null,f.length>0?(0,B.jsx)(P,{pills:f,testId:`skill-modal-pills-${e.name}`}):null,e.content?(0,B.jsx)(Ne,{testId:`skill-modal-field-content-${e.name}`,label:i(d.SETTINGS$SKILLS_CONTENT),value:e.content}):null,(0,B.jsxs)(`div`,{className:`mt-2 flex justify-end gap-2`,children:[(0,B.jsx)(D,{type:`button`,variant:`secondary`,onClick:r,testId:`skill-detail-close`,children:i(d.BUTTON$CLOSE)}),(0,B.jsx)(D,{type:`button`,variant:`primary`,isDisabled:!t,onClick:()=>o(l,r),testId:`skill-detail-use-skill-${e.name}`,startContent:(0,B.jsx)(le,{className:`size-4`,"aria-hidden":!0}),children:i(d.SETTINGS$SKILLS_USE_SKILL_BUTTON)})]})]})})}function Fe({labelKey:e,count:t,checked:n,disabled:r,icon:i,testId:o,onToggle:s}){let{t:c}=a(`openhands`),l=c(e);return(0,B.jsxs)(`button`,{type:`button`,role:`checkbox`,"aria-checked":n,"data-testid":o,disabled:r,onClick:s,className:u(`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm`,r?`cursor-default text-tertiary-alt/40`:`cursor-pointer hover:bg-[var(--oh-surface-raised)] hover:text-white`,n?`text-white`:`text-tertiary-light`),children:[(0,B.jsx)(`span`,{"aria-hidden":!0,className:u(`flex size-3.5 shrink-0 items-center justify-center rounded-[3px] border`,n?`border-white bg-white text-black`:`border-[var(--oh-border)]`),children:n?(0,B.jsx)(p,{className:`size-2.5`,strokeWidth:3}):null}),i?(0,B.jsx)(i,{className:`size-3.5 shrink-0`,"aria-hidden":!0}):null,(0,B.jsx)(`span`,{title:l,className:`min-w-0 flex-1 truncate`,children:l}),(0,B.jsx)(`span`,{className:`shrink-0 text-xs text-tertiary-alt`,children:t})]})}function Ie(e,t){if(e===`category`)return Te[t]}function Le({groups:e,onToggle:t,className:n}){let{t:r}=a(`openhands`);return e.length===0?null:(0,B.jsx)(`div`,{"data-testid":`skill-facet-rail`,className:u(`flex min-w-0 flex-col gap-5`,n),children:e.map(e=>{let n=`skill-facet-group-${e.id}-title`;return(0,B.jsxs)(`div`,{"data-testid":`skill-facet-group-${e.id}`,role:`group`,"aria-labelledby":n,className:`flex flex-col gap-1.5`,children:[(0,B.jsx)(`span`,{id:n,className:`px-1 text-[11px] font-semibold uppercase tracking-wider text-tertiary-alt`,children:r(e.labelKey)}),e.rows.map(n=>(0,B.jsx)(Fe,{testId:`skill-facet-${e.id}-${n.value}`,labelKey:n.labelKey,count:n.count,checked:n.checked,disabled:n.disabled,icon:Ie(e.id,n.value),onToggle:()=>t(e.id,n.value)},n.value))]},e.id)})})}function Re({groups:e,activeCount:t,onToggle:n,onClearAll:r,onClose:i}){let{t:o}=a(`openhands`);return(0,B.jsx)(C,{onClose:i,"aria-label":o(d.SETTINGS$SKILLS_FILTERS_MODAL_TITLE),children:(0,B.jsxs)(w,{testID:`skill-filters-modal`,className:u(`items-stretch`,T),children:[(0,B.jsx)(`h3`,{className:`text-lg font-semibold text-foreground`,children:o(d.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}),(0,B.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto custom-scrollbar-always`,children:(0,B.jsx)(Le,{groups:e,onToggle:n})}),(0,B.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[t>0?(0,B.jsx)(D,{type:`button`,variant:`secondary`,testId:`skill-filters-modal-clear`,onClick:r,children:o(d.SETTINGS$SKILLS_CLEAR_FILTERS)}):null,(0,B.jsx)(D,{type:`button`,variant:`primary`,testId:`skill-filters-modal-done`,onClick:i,children:o(d.BUTTON$CLOSE)})]})]})})}var ze=`source`,Be=`category`,Ve=`type`,He=`state`,Ue=[`enabled`,`disabled`],We=[`agentskills`,`knowledge`,`repo`],Ge={query:``,sources:new Set,categories:new Set,types:new Set,states:new Set};function Y(e,t){return e.map(e=>({value:e,labelKey:t[e]}))}function X(e,t){return new Set(e.filter(e=>t.has(e)))}var Ke={project:d.SETTINGS$SKILLS_SOURCE_PROJECT,personal:d.SETTINGS$SKILLS_SOURCE_PERSONAL,public:d.SETTINGS$SKILLS_SOURCE_PUBLIC},qe={agentskills:d.SETTINGS$SKILLS_TYPE_AGENTSKILLS,knowledge:d.SETTINGS$SKILLS_TYPE_KNOWLEDGE,repo:d.SETTINGS$SKILLS_TYPE_REPO},Je={enabled:d.SETTINGS$SKILLS_ENABLED,disabled:d.SETTINGS$SKILLS_DISABLED},Z=[{id:`state`,labelKey:d.SETTINGS$SKILLS_FACET_STATE,param:He,values:Y(Ue,Je),valueOf:(e,t)=>t.has(e.name)?`disabled`:`enabled`,selected:e=>e.states,withSelected:(e,t)=>({...e,states:X(Ue,t)})},{id:`source`,labelKey:d.SETTINGS$SKILLS_FACET_SOURCE,param:ze,values:Y(oe,Ke),valueOf:e=>L(e),selected:e=>e.sources,withSelected:(e,t)=>({...e,sources:X(oe,t)})},{id:`category`,labelKey:d.SETTINGS$SKILLS_FACET_CATEGORY,param:Be,values:Y(K,q),valueOf:e=>Oe(e),selected:e=>e.categories,withSelected:(e,t)=>({...e,categories:X(K,t)})},{id:`type`,labelKey:d.SETTINGS$SKILLS_FACET_TYPE,param:Ve,values:Y(We,qe),valueOf:e=>e.type,selected:e=>e.types,withSelected:(e,t)=>({...e,types:X(We,t)})}];function Ye(e){let t=Z.find(t=>t.id===e);if(!t)throw Error(`Unknown skill facet group: ${e}`);return t}function Xe(e,t){let n=new Set(t.values.map(({value:e})=>e));return new Set(e.map(e=>e.trim()).filter(e=>n.has(e)))}function Ze(e){return Z.reduce((t,n)=>n.withSelected(t,Xe(e.getAll(n.param),n)),{...Ge,query:e.get(`q`)??``})}function Q(e){let t=new URLSearchParams;e.query&&t.set(`q`,e.query);for(let n of Z){let r=n.selected(e);for(let{value:e}of n.values)r.has(e)&&t.append(n.param,e)}return t}function Qe(e,t){let n=t.trim();if(!n)return!0;let r=[e.name,G(e),e.description??``,e.content??``,e.license??``,e.compatibility??``,...e.triggers??[],...e.allowed_tools??[]],i=n.toLowerCase();return r.some(e=>e.toLowerCase().includes(i))}function $e(e,t,n,r){return Z.every(i=>{if(i.id===r)return!0;let a=i.selected(n);return a.size===0?!0:a.has(i.valueOf(e,t))})}function et(e,t,n){return e.filter(e=>Qe(e,n.query)&&$e(e,t,n))}function $(e,t,n){let r={};for(let i of e){let e=t.valueOf(i,n);r[e]=(r[e]??0)+1}return r}function tt(e,t,n,r,i){let a=$(t,e,r),o=e.values.filter(({value:e})=>(a[e]??0)>0),s=e.selected(i);if(o.length<2&&s.size===0)return null;let c=e.values.filter(({value:e})=>(a[e]??0)>0||s.has(e)),l=$(n.filter(t=>$e(t,r,i,e.id)),e,r);return{id:e.id,labelKey:e.labelKey,rows:c.map(({value:e,labelKey:t})=>{let n=l[e]??0,r=s.has(e);return{value:e,labelKey:t,count:n,checked:r,disabled:n===0&&!r}})}}function nt(e,t,n){let r=e.filter(e=>Qe(e,n.query));return Z.map(i=>tt(i,e,r,t,n)).filter(e=>e!==null)}function rt(e,t,n){let r=Ye(t);if(!r.values.some(e=>e.value===n))return e;let i=new Set(r.selected(e));return i.has(n)?i.delete(n):i.add(n),r.withSelected(e,i)}function it(e){return{...Ge,query:e.query}}function at(e){return Z.reduce((t,n)=>t+n.selected(e).size,0)}function ot({search:e,onSearchChange:t,activeFilterCount:n,onOpenFilters:r}){let{t:i}=a(`openhands`);return(0,B.jsxs)(`div`,{"data-testid":`skills-toolbar`,className:`flex items-stretch gap-2`,children:[(0,B.jsxs)(`div`,{className:u(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,B.jsx)(y,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,B.jsx)(`input`,{"data-testid":`skills-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:i(d.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),"aria-label":i(d.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),className:u(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),e?(0,B.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":i(d.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,B.jsx)(x,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,B.jsxs)(`button`,{type:`button`,"data-testid":`skills-filters-button`,onClick:r,className:u(`flex shrink-0 items-center gap-2 rounded-lg px-3 py-2 text-sm md:hidden`,`border border-[var(--oh-border)] bg-base-secondary text-white`,`cursor-pointer hover:bg-[var(--oh-interactive-hover)]`),children:[(0,B.jsx)(h,{className:`size-4 shrink-0`,"aria-hidden":!0}),i(d.SETTINGS$SKILLS_FILTERS_BUTTON),n>0?(0,B.jsx)(`span`,{className:`rounded-full bg-white px-1.5 text-[11px] font-medium text-black`,children:n}):null]})]})}var st=300;function ct(){let{t:e}=a(`openhands`),{mutate:t}=te(),{data:n,isLoading:i}=ee(),{data:o,isLoading:s}=ae(),[f,p]=r(),[m,h]=R.useState(()=>f.get(`q`)??``),g=R.useRef(m),[_,v]=R.useState(new Set),[y,b]=R.useState(!1),[x,S]=R.useState(null),[C,w]=R.useState(!1),[T,E]=R.useState(!1),O=i||s||!n,k=o??[],A=R.useMemo(()=>({...Ze(f),query:m}),[f,m]),j=R.useMemo(()=>nt(k,_,A),[k,_,A]),M=R.useMemo(()=>et(k,_,A),[k,_,A]),N=at(A);R.useEffect(()=>{i||!n||(v(new Set(n.disabled_skills??[])),b(!0))},[i,n?.disabled_skills]),R.useEffect(()=>{y&&t({disabled_skills:Array.from(_)},{onError:t=>{l(c(t)||e(d.ERROR$GENERIC))}})},[_,y,t,e]),R.useEffect(()=>{let e=f.get(`q`)??``;e!==g.current&&(g.current=e,h(e))},[f]),R.useEffect(()=>{if((f.get(`q`)??``)===m)return;let e=setTimeout(()=>{g.current=m,p(e=>{let t=new URLSearchParams(e);return m?t.set(`q`,m):t.delete(`q`),t},{replace:!0})},st);return()=>clearTimeout(e)},[m,f,p]);let P=e=>{e.query!==A.query&&h(e.query),Q({...e,query:``}).toString()!==Q({...A,query:``}).toString()&&p(Q(e))},F=(e,t)=>P(rt(A,e,t)),I=()=>P(it(A)),L=(e,t)=>{v(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})};return(0,B.jsxs)(`div`,{"data-testid":`skills-settings-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,B.jsx)(se,{}),(0,B.jsxs)(`main`,{className:u(de,`h-full`),children:[(0,B.jsxs)(`div`,{"data-testid":`skills-page`,className:`mx-auto flex w-full min-w-0 max-w-[1100px] flex-col gap-6`,children:[(0,B.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,B.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,B.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(d.SETTINGS$SKILLS_TITLE)}),(0,B.jsx)(`div`,{"data-testid":`skills-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(d.SETTINGS$SKILLS_PAGE_DESCRIPTION)})]}),(0,B.jsx)(D,{type:`button`,variant:`secondary`,testId:`skills-add-skill-button`,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>w(!0),children:e(d.SETTINGS$SKILLS_ADD_BUTTON)})]}),O?(0,B.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,B.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}):null,!O&&k.length===0?(0,B.jsx)(`div`,{"data-testid":`skills-empty`,className:re,children:(0,B.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(d.SETTINGS$SKILLS_NO_SKILLS)})}):null,!O&&k.length>0?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(ot,{search:A.query,onSearchChange:e=>P({...A,query:e}),activeFilterCount:N,onOpenFilters:()=>E(!0)}),(0,B.jsxs)(`div`,{className:`flex min-w-0 gap-6`,children:[(0,B.jsx)(Le,{groups:j,onToggle:F,className:`hidden w-[240px] shrink-0 self-start md:flex`}),(0,B.jsxs)(`section`,{className:`flex min-w-0 flex-1 flex-col gap-3`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-tertiary-light`,children:[(0,B.jsx)(`span`,{"data-testid":`skills-result-summary`,children:e(d.SETTINGS$SKILLS_RESULT_COUNT,{count:M.length})}),N>0?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skills-clear-filters`,onClick:I,className:`cursor-pointer underline hover:text-white`,children:e(d.SETTINGS$SKILLS_CLEAR_FILTERS)}):null]}),M.length===0?(0,B.jsx)(`div`,{"data-testid":`skills-no-match`,className:re,children:(0,B.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(d.SETTINGS$SKILLS_NO_MATCH)})}):(0,B.jsx)(`div`,{className:u(ne),children:(0,B.jsx)(`div`,{className:ie,children:M.map(e=>(0,B.jsx)(je,{skill:e,enabled:!_.has(e.name),onOpen:()=>S(e),onToggle:t=>L(e.name,t)},e.name))})})]})]}),T?(0,B.jsx)(Re,{groups:j,activeCount:N,onToggle:F,onClearAll:I,onClose:()=>E(!1)}):null]}):null]}),x&&(0,B.jsx)(Pe,{skill:x,enabled:!_.has(x.name),onToggle:e=>L(x.name,e),onClose:()=>S(null)}),C&&(0,B.jsx)(ve,{onClose:()=>w(!1)})]})]})}var lt=i(ct);export{lt as default};
@@ -1 +0,0 @@
1
- import{D as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";var t=e(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]);export{t};
@@ -1 +0,0 @@
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{t as i}from"./utils-DUD5ScdA.js";var a=e(t(),1),o=r();function s(e){return a.Children.count(e)===1&&a.isValidElement(e)?e:(0,o.jsx)(`span`,{className:`inline-flex`,children:e})}function c({children:e,content:t,tooltipClassName:r,placement:a=`right`,showArrow:c=!1,closeDelay:l=100,shouldFlip:u,offset:d=7}){return(0,o.jsx)(n,{content:t,closeDelay:l,placement:a,offset:d,shouldFlip:u,className:i(`bg-white text-black`,r),showArrow:c,disableAnimation:!1,classNames:{content:i(`z-[9999] rounded-md px-2 py-1 text-xs font-medium shadow-md`,`!bg-white !text-black`,r)},children:s(e)})}export{c as t};
@@ -1 +0,0 @@
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"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{t as i,z as a}from"./utils-DUD5ScdA.js";import{a as o,o as s}from"./messages-CzFKrzPG.js";import{n as c}from"./conversation-DotRfiDz.js";import{r as l}from"./typography-DB5HoCk0.js";import{t as u}from"./u-check-circle-BKn1spCL.js";import{t as d}from"./conversation-tab-empty-state-D-puECpY.js";var f=e(t(),1),p=n();function m({task:e}){let{t}=r(`openhands`),n=(0,f.useMemo)(()=>{switch(e.status){case`todo`:return(0,p.jsx)(s,{className:`w-4 h-4 text-[#ffffff]`});case`in_progress`:return(0,p.jsx)(o,{className:`w-4 h-4 text-[#ffffff]`});case`done`:return(0,p.jsx)(u,{className:`w-4 h-4 text-[var(--oh-muted)]`});default:return(0,p.jsx)(s,{className:`w-4 h-4 text-[#ffffff]`})}},[e.status]),c=e.status===`done`;return(0,p.jsxs)(`div`,{className:`flex gap-2 items-center w-full`,"data-name":`item`,children:[(0,p.jsx)(`div`,{className:`shrink-0`,children:n}),(0,p.jsxs)(`div`,{className:`flex flex-col items-start justify-center leading-[16px] text-nowrap whitespace-pre font-normal`,children:[(0,p.jsx)(l.Text,{className:i(`text-[12px]`,c?`text-[var(--oh-muted)]`:`text-white`),children:e.title}),e.notes&&(0,p.jsxs)(l.Text,{className:`text-[10px] text-[var(--oh-muted)]`,children:[t(a.TASK_TRACKING_OBSERVATION$TASK_NOTES),`: `,e.notes]})]})]})}function h(){let{t:e}=r(`openhands`),{taskList:t}=c();return t.length===0?(0,p.jsx)(d,{icon:(0,p.jsx)(u,{}),children:e(a.COMMON$NO_TASKS)}):(0,p.jsx)(`main`,{className:`h-full overflow-y-auto flex flex-col custom-scrollbar-always`,children:t.map(e=>(0,p.jsx)(`div`,{"data-active":e.status===`in_progress`?`true`:`false`,className:i(`px-4 py-2`,e.status===`in_progress`&&`bg-[var(--oh-surface-raised)]`),children:(0,p.jsx)(m,{task:e})},e.id))})}export{h as default};
@@ -1,3 +0,0 @@
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"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{E as i,t as a,z as o}from"./utils-DUD5ScdA.js";import{i as s}from"./conversation-DotRfiDz.js";import{h as c}from"./llm-not-configured-banner-BK9z5eS0.js";import{q as l,y as u}from"./markdown-renderer-Cp6DlHQN.js";import{n as d,t as f}from"./vendor~terminal-BVSbSr6V.js";import{t as p}from"./conversation-tab-empty-state-D-puECpY.js";var m=e(t(),1),h=`[Python Interpreter: `,g=e=>{let t=e.indexOf(h);if(t<0)return e;let n=t+21;return e.indexOf(`]`,n)<=n?e:e.substring(0,t).trim()},_=(e,t,n=!1)=>{let{content:r,type:i}=e;if(i===`input`&&n)return;let a=(r||``).replaceAll(`
2
- `,`\r
3
- `).trim();a&&t.writeln(g(a))},v=(e,t,n)=>{if(!e||!t||!n||window.getComputedStyle(n).display===`none`)return!1;let{clientWidth:r,clientHeight:i}=n;return!(r===0||i===0||!e.element)};function y(e){let t=e.ownerDocument.createElement(`span`);t.style.color=`var(--oh-surface-foreground)`,t.style.position=`absolute`,t.style.visibility=`hidden`,t.style.pointerEvents=`none`,e.appendChild(t);let n=getComputedStyle(t).color;return t.remove(),n&&n!==`rgba(0, 0, 0, 0)`?n:getComputedStyle(e).color}var b={current:0},x=()=>{let e=u(e=>e.commands),t=m.useRef(null),n=m.useRef(null),r=m.useRef(null),i=b,a=m.useRef(!1),o=e=>new f({fontFamily:`Menlo, Monaco, 'Courier New', monospace`,fontSize:14,scrollback:1e4,scrollSensitivity:1,fastScrollSensitivity:5,disableStdin:!0,allowTransparency:!0,theme:{background:`rgba(0, 0, 0, 0)`,foreground:y(e)}}),s=m.useCallback(()=>{a.current||v(t.current,n.current,r.current)&&n.current.fit()},[]),c=()=>{t.current&&(n.current&&t.current.loadAddon(n.current),r.current&&(t.current.open(r.current),t.current.write(`\x1B[?25l`),s()))};return m.useEffect(()=>{a.current=!1;let s=r.current;if(s){if(t.current=o(s),n.current=new d,r.current&&(c(),e.length>0)){for(let n=0;n<e.length;n+=1)e[n].type===`input`&&t.current.write(`$ `),_(e[n],t.current,!1);i.current=e.length}return()=>{a.current=!0,t.current?.dispose(),i.current=0}}},[]),m.useEffect(()=>{if(t.current&&e.length>0&&i.current<e.length){for(let n=i.current;n<e.length;n+=1)e[n].type===`input`&&t.current.write(`$ `),_(e[n],t.current,!1);i.current=e.length}},[e]),m.useEffect(()=>{let e=null;return e=new ResizeObserver(()=>{requestAnimationFrame(()=>{s()})}),r.current&&e.observe(r.current),()=>{e?.disconnect()}},[s]),r},S=n();function C({className:e,testId:t}){return(0,S.jsx)(c,{testId:t,className:e})}function w(){let{t:e}=r(`openhands`);return(0,S.jsx)(p,{className:`h-full`,icon:(0,S.jsx)(s,{"aria-hidden":!0,strokeWidth:2,className:`size-full`}),children:e(o.TERMINAL$NO_OUTPUT)})}function T(){let{curAgentState:e}=l(),t=u(e=>e.commands),n=i.includes(e),r=t.length>0,o=n||!r,s=x();return(0,S.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[n&&(0,S.jsx)(C,{className:`pt-16`}),!n&&!r&&(0,S.jsx)(w,{}),(0,S.jsx)(`div`,{className:a(`flex-1 min-h-0 p-4`,o&&`pointer-events-none absolute inset-0 h-0 w-0 overflow-hidden p-0 opacity-0`),children:(0,S.jsx)(`div`,{ref:s,className:`h-full w-full`})})]})}export{T as default};
@@ -1 +0,0 @@
1
- import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{t}from"./utils-DUD5ScdA.js";var n=e();function r({enabled:e,className:r}){return(0,n.jsx)(`span`,{"aria-hidden":`true`,className:t(`relative inline-flex h-[22px] w-[40px] shrink-0 items-center rounded-full border`,`transition-colors duration-200 ease-in-out motion-reduce:transition-none`,e?`border-white bg-white`:`border-[var(--oh-border)] bg-surface-raised`,r),children:(0,n.jsx)(`span`,{className:t(`inline-block size-4 rounded-full`,`transition-transform duration-200 ease-in-out motion-reduce:transition-none`,e?`translate-x-[21px] bg-base-secondary`:`translate-x-[2px] bg-[var(--oh-muted)]`)})})}function i({enabled:e,label:i,onToggle:a,className:o}){return(0,n.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":i,onClick:e=>{e.stopPropagation(),a()},className:t(`cursor-pointer`,o),children:(0,n.jsx)(r,{enabled:e})})}export{r as n,i as t};
@@ -1 +0,0 @@
1
- import{D as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
@@ -1 +0,0 @@
1
- import{yt as e}from"./vendor-styling-Ck5D_A2Q.js";import{t}from"./utils-DUD5ScdA.js";import{t as n}from"./dist-Bl64nBZL.js";var r=e(),i=n(``,{variants:{variant:{h1:`text-[32px] text-white font-medium leading-5`,h2:`text-xl font-medium leading-6 -tracking-[0.02em] text-white`,h3:`text-sm font-medium text-[var(--oh-text-tertiary)]`,span:`text-sm font-normal text-white leading-5.5`,p:`text-sm font-normal text-white leading-5.5`,codeBlock:`font-mono text-sm leading-relaxed text-[var(--oh-text-tertiary)] whitespace-pre-wrap`}},defaultVariants:{variant:`h1`}});function a({variant:e,className:n,testId:a,children:o}){return(0,r.jsx)(e,{"data-testid":a,className:t(i({variant:e}),n),children:o})}function o({className:e,testId:t,children:n}){return(0,r.jsx)(a,{variant:`h1`,className:e,testId:t,children:n})}function s({className:e,testId:t,children:n}){return(0,r.jsx)(a,{variant:`h2`,className:e,testId:t,children:n})}function c({className:e,testId:t,children:n}){return(0,r.jsx)(a,{variant:`h3`,className:e,testId:t,children:n})}function l({className:e,testId:t,children:n}){return(0,r.jsx)(a,{variant:`span`,className:e,testId:t,children:n})}function u({className:e,testId:t,children:n}){return(0,r.jsx)(a,{variant:`codeBlock`,className:e,testId:t,children:n})}function d({className:e,testId:t,children:n}){return(0,r.jsx)(a,{variant:`p`,className:e,testId:t,children:n})}a.H1=o,a.H2=s,a.H3=c,a.Text=l,a.CodeBlock=u,a.Paragraph=d;export{l as n,a as r,o as t};
@@ -1 +0,0 @@
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"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{o as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t as a}from"./useQuery-Bs5NFz2s.js";import{Q as o,n as s}from"./active-backend-context-BZDG15C0.js";import{t as c,z as l}from"./utils-DUD5ScdA.js";import{r as u}from"./vendor~index-home~home~conversation-panel~conversation-53Q_U6uP.js";import{f as d}from"./git-provider-icon-CaQ1yLPi.js";import{t as f}from"./info-CLoC1LRo.js";import{t as p}from"./loader-circle-D7IagAyF.js";import{t as m}from"./refresh-cw-nmcesifB.js";import{t as h}from"./brand-button-Blxv5nww.js";import{t as g}from"./styled-tooltip-B6JXcsmL.js";import{d as _,f as v,p as y,u as b}from"./llm-not-configured-banner-BK9z5eS0.js";import{J as x,p as S}from"./markdown-renderer-Cp6DlHQN.js";import{t as C}from"./conversation-tab-empty-state-D-puECpY.js";var w=e(t(),1);function T(e=!0){let t=S(e=>e.cost),n=S(e=>e.max_budget_per_task),r=S(e=>e.usage),{data:i}=x(),{data:a}=y(i?.id,i?.conversation_url,i?.session_api_key,e);return(0,w.useMemo)(()=>t!==null||r!==null?{cost:t,max_budget_per_task:n,usage:r}:a?{cost:a.accumulated_cost,max_budget_per_task:a.max_budget_per_task,usage:a.accumulated_token_usage?{prompt_tokens:a.accumulated_token_usage.prompt_tokens??0,completion_tokens:a.accumulated_token_usage.completion_tokens??0,cache_read_tokens:a.accumulated_token_usage.cache_read_tokens??0,cache_write_tokens:a.accumulated_token_usage.cache_write_tokens??0,context_window:a.accumulated_token_usage.context_window??0,per_turn_token:a.accumulated_token_usage.per_turn_token??0}:null}:{cost:null,max_budget_per_task:null,usage:null},[a,t,n,r])}var E=n();function D({currentCost:e,maxBudget:t}){let n=e/t*100;return(0,E.jsx)(`div`,{className:`relative mt-1 h-1.5 w-full rounded-full bg-tertiary`,children:(0,E.jsx)(`div`,{className:c(`absolute inset-y-0 left-0 rounded-full transition-all duration-300`,n>80?`bg-red-500`:`bg-blue-500`),style:{width:`${Math.min(100,n)}%`}})})}function O({currentCost:e,maxBudget:t}){let{t:n}=r(`openhands`),i=e/t*100;return(0,E.jsx)(`div`,{className:`flex justify-end`,children:(0,E.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:n(l.CONVERSATION$BUDGET_USAGE_FORMAT,{currentCost:`$${e.toFixed(4)}`,maxBudget:`$${t.toFixed(4)}`,usagePercentage:i.toFixed(2),used:n(l.CONVERSATION$USED)})})})}function k({cost:e,maxBudgetPerTask:t}){let{t:n}=r(`openhands`);return e===null?null:(0,E.jsx)(`div`,{children:t!==null&&t>0?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(D,{currentCost:e,maxBudget:t}),(0,E.jsx)(O,{currentCost:e,maxBudget:t})]}):(0,E.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:n(l.CONVERSATION$NO_BUDGET_LIMIT)})})}function A({cost:e,maxBudgetPerTask:t}){let{t:n}=r(`openhands`);return e===null?null:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(k,{cost:e,maxBudgetPerTask:t}),(0,E.jsxs)(`div`,{className:`flex justify-between items-center border-t border-[var(--oh-border-subtle)] pt-2`,children:[(0,E.jsx)(`span`,{className:`font-semibold`,children:n(l.CONVERSATION$TOTAL_COST)}),(0,E.jsxs)(`span`,{className:`font-semibold`,children:[`$`,e.toFixed(4)]})]})]})}function j({label:e,value:t,labelClassName:n=``,valueClassName:r=`font-semibold`,showBorder:i=!0}){return(0,E.jsxs)(`div`,{className:c(`flex justify-between items-center pb-2`,i&&`border-b border-[var(--oh-border-subtle)]`),children:[(0,E.jsx)(`span`,{className:n,children:e}),(0,E.jsx)(`span`,{className:r,children:t})]})}function M({usage:e}){let{t}=r(`openhands`);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(j,{label:t(l.CONVERSATION$INPUT),value:e.prompt_tokens.toLocaleString()}),(0,E.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 pl-4 text-sm`,children:[(0,E.jsx)(`span`,{className:`text-[var(--oh-muted)]`,children:t(l.CONVERSATION$CACHE_HIT)}),(0,E.jsx)(`span`,{className:`text-right`,children:e.cache_read_tokens.toLocaleString()}),(0,E.jsx)(`span`,{className:`text-[var(--oh-muted)]`,children:t(l.CONVERSATION$CACHE_WRITE)}),(0,E.jsx)(`span`,{className:`text-right`,children:e.cache_write_tokens.toLocaleString()})]}),(0,E.jsx)(j,{label:t(l.CONVERSATION$OUTPUT),value:e.completion_tokens.toLocaleString()}),(0,E.jsx)(j,{label:t(l.CONVERSATION$TOTAL),value:(e.prompt_tokens+e.completion_tokens).toLocaleString(),labelClassName:`font-semibold`,valueClassName:`font-bold`,showBorder:!1})]})}function N({fillPercent:e,perTurnToken:t=0}){let{t:n}=r(`openhands`),{handleCompact:i,isCompacting:a,isDisabled:o,description:s}=_(t),c=e>70;return(0,E.jsxs)(`div`,{"data-testid":`compact-context-section`,className:`flex flex-col gap-2 border-t border-[var(--oh-border-subtle)] pt-3`,children:[c&&(0,E.jsx)(`span`,{className:`text-xs text-amber-500`,children:n(l.CONVERSATION$CONTEXT_FILLING_UP)}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(h,{testId:`compact-context-button`,type:`button`,variant:c?`primary`:`secondary`,isDisabled:o,"aria-busy":a,onClick:i,startContent:a?(0,E.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):(0,E.jsx)(u,{className:`h-4 w-4`,"aria-hidden":!0}),className:`w-fit`,children:n(l.CONVERSATION$COMPACT_CONTEXT)}),(0,E.jsx)(g,{content:s,placement:`top`,tooltipClassName:`max-w-[220px] text-xs font-normal leading-relaxed whitespace-normal`,children:(0,E.jsx)(`button`,{type:`button`,"data-testid":`compact-context-info`,"aria-label":s,className:`flex size-5 shrink-0 items-center justify-center rounded-full text-[var(--oh-muted)] hover:text-[var(--oh-foreground)] transition-colors cursor-help`,children:(0,E.jsx)(f,{className:`size-3.5`,"aria-hidden":!0})})})]})]})}var P=`/api/llm/balance`,F=1e4;function I(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function L(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function R(e){return I(e)&&(e.name===`TimeoutError`||e.name===`AbortError`)}function z(e){return!I(e)||typeof e.provider!=`string`?null:{provider:e.provider,limit:L(e.limit),limitRemaining:L(e.limit_remaining),usage:L(e.usage)??0,usageDaily:L(e.usage_daily),usageWeekly:L(e.usage_weekly),usageMonthly:L(e.usage_monthly),isFreeTier:e.is_free_tier===!0}}var B=class{static async getBalance(){let{host:e,apiKey:t}=o(),n=new i({host:e,apiKey:t,timeout:F});try{return z(await n.get(P,{acceptableStatusCodes:new Set([200]),responseType:`json`,timeoutSeconds:Math.floor(F/1e3)}))}catch(e){if(e instanceof Error&&`status`in e&&e.status===404)return null;if(R(e))throw Error(`Balance request timed out after ${F}ms`);let t=e instanceof Error&&`status`in e&&e.status;throw Error(t?`Balance request failed with ${t}`:`Balance request failed: ${e instanceof Error?e.message:String(e)}`)}finally{n.close()}}},V=e=>{let{backend:t}=s();return a({queryKey:[`llm-balance`,t.id,e],queryFn:()=>B.getBalance(),enabled:t.kind!==`cloud`&&!!e,staleTime:1/0,gcTime:1e3*60*5,retry:!1,refetchOnWindowFocus:!1})};function H(e){return`$${e.toFixed(2)}`}function U(){let{t:e}=r(`openhands`),{data:t}=x(),{data:n,isError:i,isFetching:a,refetch:o}=V(t?.id);if(!n||i)return null;let s=n.limit!==null&&n.limitRemaining!==null;return(0,E.jsxs)(`div`,{"data-testid":`provider-balance-card`,className:`rounded-md border border-[var(--oh-border)] bg-surface-raised p-3`,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between pb-2`,children:[(0,E.jsx)(`span`,{className:`font-semibold`,children:e(l.CONVERSATION$PROVIDER_BALANCE)}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsxs)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:[n.provider,n.isFreeTier?` · ${e(l.CONVERSATION$FREE_TIER)}`:null]}),(0,E.jsx)(`button`,{type:`button`,"data-testid":`provider-balance-refresh`,"aria-label":e(l.BUTTON$REFRESH),disabled:a,onClick:()=>o(),className:`cursor-pointer text-[var(--oh-muted)] hover:text-[var(--oh-foreground)] disabled:cursor-default`,children:(0,E.jsx)(m,{className:c(`h-3.5 w-3.5`,a&&`animate-spin`)})})]})]}),(0,E.jsxs)(`div`,{className:`grid gap-3`,children:[s?(0,E.jsx)(j,{label:e(l.CONVERSATION$CREDITS_REMAINING),value:H(n.limitRemaining??0)}):null,(0,E.jsx)(j,{label:e(l.CONVERSATION$CREDITS_USED),value:H(n.usage),valueClassName:s?``:`font-semibold`,labelClassName:s?`text-[var(--oh-muted)]`:``})]})]})}function W(){let{t:e}=r(`openhands`),t=T(),{data:n}=x(),i=n?.agent_kind===`acp`,{usage:a}=t;return t.cost!==null||a!==null?(0,E.jsxs)(`main`,{"data-testid":`usage-panel`,className:`h-full overflow-y-auto custom-scrollbar-always flex flex-col gap-3 p-3`,children:[a!==null&&(0,E.jsx)(`div`,{className:`rounded-md border border-[var(--oh-border)] bg-surface-raised p-3`,children:(0,E.jsxs)(`div`,{className:`grid gap-3`,children:[(0,E.jsx)(b,{perTurnToken:a.per_turn_token,contextWindow:a.context_window}),(0,E.jsx)(N,{fillPercent:v(a.per_turn_token,a.context_window),perTurnToken:a.per_turn_token})]})}),(0,E.jsx)(`div`,{className:`rounded-md border border-[var(--oh-border)] bg-surface-raised p-3`,children:(0,E.jsxs)(`div`,{className:`grid gap-3`,children:[(0,E.jsx)(`div`,{className:`flex justify-between items-center pb-2`,children:(0,E.jsx)(`span`,{className:`text-lg font-semibold`,children:e(l.CONVERSATION$TOKEN_USAGE)})}),i&&(0,E.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:e(l.CONVERSATION$PLAN_USAGE_NOTE)}),a!==null&&(0,E.jsx)(M,{usage:a}),(0,E.jsx)(A,{cost:t.cost,maxBudgetPerTask:t.max_budget_per_task})]})}),(0,E.jsx)(U,{})]}):(0,E.jsx)(C,{icon:(0,E.jsx)(d,{}),children:e(l.CONVERSATION$NO_METRICS)})}function G(){return(0,E.jsx)(W,{})}export{G as default};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{n as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{t as i}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{y as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t as o}from"./useQuery-Bs5NFz2s.js";import{Ft as s,Mt as c,Pt as l,Q as u,jt as d,n as f}from"./active-backend-context-BZDG15C0.js";import{t as p,z as m}from"./utils-DUD5ScdA.js";import{t as h}from"./check-DSuS-lyr.js";import{t as g}from"./loader-circle-D7IagAyF.js";import{l as _}from"./form-control-classes-CGXBLcn1.js";import{n as v,t as y}from"./settings-input-CWUEHHvS.js";import{a as b,l as x}from"./acp-providers-CYy8qA2z.js";import{t as S}from"./use-get-secrets-6PBitf54.js";import{t as C}from"./use-create-secret-DbBIpaCR.js";var w=e(t(),1),T=n();function E({conflicts:e}){let{t}=i(`openhands`);return(0,T.jsx)(T.Fragment,{children:e.map(([e,n])=>(0,T.jsx)(`p`,{"data-testid":`acp-credential-conflict-warning`,className:`text-sm text-amber-300`,children:t(m.SETTINGS$ACP_CREDENTIAL_CONFLICT_WARNING,{credential:e,conflicting:n})},`${e}:${n}`))})}function D({status:e,isChecking:t,providerName:n,testIdPrefix:r}){let{t:a}=i(`openhands`);return e===`authenticated`?(0,T.jsxs)(`div`,{"data-testid":`${r}-detected`,className:`flex items-start gap-2 rounded-xl border border-green-500/40 bg-green-500/10 px-4 py-3 text-sm text-green-200`,children:[(0,T.jsx)(h,{className:`mt-0.5 size-4 shrink-0 text-green-400`,"aria-hidden":!0}),(0,T.jsx)(`span`,{children:a(m.ONBOARDING$ACP_AUTH_DETECTED,{provider:n})})]}):t?(0,T.jsxs)(`div`,{"data-testid":`${r}-checking`,className:`flex items-center gap-2 text-sm text-[var(--oh-muted)]`,children:[(0,T.jsx)(g,{className:`size-4 shrink-0 animate-spin`,"aria-hidden":!0}),(0,T.jsx)(`span`,{children:a(m.ONBOARDING$ACP_AUTH_CHECKING,{provider:n})})]}):null}function O({field:e,value:t,onChange:n,alreadySet:r,testId:a,showOptionalTag:o}){let{t:s}=i(`openhands`),c=r?s(m.ONBOARDING$ACP_SECRET_ALREADY_SET):``;return(0,T.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e.multiline?(0,T.jsxs)(`label`,{className:`flex flex-col gap-2.5`,children:[(0,T.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-sm font-mono text-white`,children:e.name}),o&&(0,T.jsx)(v,{})]}),(0,T.jsx)(`textarea`,{"data-testid":a,name:e.name,rows:4,spellCheck:!1,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,value:t,placeholder:c,onChange:e=>n(e.target.value),className:p(_,`font-mono text-xs`)})]}):(0,T.jsx)(y,{testId:a,name:e.name,label:e.name,labelClassName:`font-mono`,type:e.secret?`password`:`text`,value:t,onChange:n,showOptionalTag:o,placeholder:c}),(0,T.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:s(e.hint_key,e.hint_values)})]})}var k=10;function A(e){return`${e.stdout??``}\n${e.stderr??``}`}function j(e){let t;try{t=JSON.parse((e.stdout??``).trim())}catch{return`unknown`}let n=t?.loggedIn;return typeof n==`boolean`?n?`authenticated`:`unauthenticated`:`unknown`}function M(e){let t=A(e).toLowerCase();return t.includes(`not logged in`)?`unauthenticated`:t.includes(`logged in`)?`authenticated`:`unknown`}function N(e){let t=(e.stdout??``).trim();return t===`present`?`authenticated`:t===`absent`?`unauthenticated`:`unknown`}var P={"claude-code":{command:`claude auth status --json`,classify:j},codex:{command:`codex login status`,classify:M},"gemini-cli":{command:`test -f "$HOME/.gemini/oauth_creds.json" && echo present || echo absent`,classify:N}},F=class{static async getAuthStatus(e){let t=P[e];if(!t)return`unknown`;let n=await new a(u()).executeCommand(t.command,void 0,k);return t.classify(n)}};async function I(e){try{return await F.getAuthStatus(e)}catch{return`unknown`}}function L(e,t={}){let{enabled:n=!0}=t,r=f(),i=r.backend.kind===`local`,a=n&&i&&!!e,s=o({queryKey:[`acp-auth-status`,r.backend.id,e],queryFn:()=>I(e),enabled:a,staleTime:1/0,gcTime:1e3*60*15,retry:!1,refetchOnWindowFocus:!1,refetchOnMount:!1});return{status:s.data??`unknown`,isChecking:a&&s.isFetching&&s.data===void 0,isSupported:i}}function R(e,t){let{t:n}=i(`openhands`),a=r(),{mutateAsync:o}=C(),[u,f]=w.useState(!1);return{saveFilled:async(r,{silent:i=!1}={})=>{let u=e.map(e=>({field:e,value:r[e.name]?.trim()})).filter(e=>!!e.value);if(u.length===0)return!0;f(!0);try{for(let{field:e,value:t}of u)await o({name:e.name,value:t});return await a.invalidateQueries({queryKey:[`secrets-search`]}),await a.invalidateQueries({queryKey:[`secrets`]}),!t&&u.some(({field:e})=>e.multiline)?l(n(m.ONBOARDING$ACP_SECRETS_ORPHANED_WARNING)):i||c(n(m.SETTINGS$SAVED)),!0}catch(e){return d(s(e)||n(m.ERROR$GENERIC)),!1}finally{f(!1)}},isSaving:u}}function z(e){let{data:t}=S(),n=w.useMemo(()=>x(e),[e]),[r,i]=w.useState({}),{saveFilled:a,isSaving:o}=R(n,!0);w.useEffect(()=>{i({})},[e]);let s=w.useCallback(e=>(t??[]).some(t=>t.name===e),[t]),c=w.useCallback(e=>!!r[e]?.trim()||s(e),[r,s]),l=w.useCallback((e,t)=>i(n=>({...n,[e]:t})),[]),u=w.useCallback(()=>i({}),[]);return{fields:n,values:r,setValue:l,secretExists:s,hasValueFor:c,conflicts:b(e,c),consumesFileCredentials:!0,isDirty:n.some(e=>!!r[e.name]?.trim()),save:e=>a(r,e),reset:u,isSaving:o}}export{E as a,D as i,L as n,O as r,z as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{t}from"./useMutation-6ZsQCqAn.js";import{L as n,O as r}from"./active-backend-context-BZDG15C0.js";import{t as i}from"./settings-service.api-3yAUFcaP.js";import{n as a}from"./use-agent-profiles-CPIc6wLH.js";var o=[`activate-agent-profile`];function s(){let s=e();return t({mutationKey:o,mutationFn:e=>a.activateProfile(e),onMutate:async e=>{await s.cancelQueries({queryKey:r.all});let t=s.getQueriesData({queryKey:r.all});return s.setQueriesData({queryKey:r.all},t=>t&&{...t,active_agent_profile_id:e}),{snapshots:t}},onError:(e,t,n)=>{n?.snapshots?.forEach(([e,t])=>{s.setQueryData(e,t)})},onSuccess:async()=>{i.invalidateCache(),await s.invalidateQueries({queryKey:r.all}),await s.invalidateQueries({queryKey:n.personal()})}})}export{s as n,o as t};
@@ -1 +0,0 @@
1
- import{x as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t}from"./useQuery-Bs5NFz2s.js";import{O as n,Q as r,j as i,k as a,n as o,st as s}from"./active-backend-context-BZDG15C0.js";import{t as c}from"./proxy-DYDXxtje.js";var l=`/api/agent-profiles`;function u(){let e=s().backend;if(e.kind!==`cloud`)throw Error(`Cloud agent-profile call requires a cloud backend.`);return e}async function d(){return c({backend:u(),method:`GET`,path:l})}async function f(e){return c({backend:u(),method:`GET`,path:`${l}/${encodeURIComponent(e)}`})}async function p(e,t){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}`,body:t})}async function m(e){return c({backend:u(),method:`DELETE`,path:`${l}/${encodeURIComponent(e)}`})}async function h(e,t){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}/rename`,body:{new_name:t}})}async function g(e){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}/activate`,body:{}})}function _(){return s().backend.kind===`cloud`}var v=`default`,y=class{static async listProfiles(){return _()?d():new e(r()).listAgentProfiles()}static async getProfile(t,n){if(_())return f(t);let i=n?{exposeSecrets:n}:{};return new e(r()).getAgentProfile(t,i)}static async saveProfile(t,n){return _()?p(t,n):new e(r()).saveAgentProfile(t,n)}static async deleteProfile(t){return _()?m(t):new e(r()).deleteAgentProfile(t)}static async renameProfile(t,n){return _()?h(t,n):new e(r()).renameAgentProfile(t,n)}static async activateProfile(t){return _()?g(t):new e(r()).activateAgentProfile(t)}};function b(e={}){let{backend:r,orgId:s}=o();return t({queryKey:[...n.all,r.id,s],queryFn:y.listProfiles,...i,...a,enabled:e.enabled??!0,meta:{disableToast:!0}})}export{y as n,v as r,b as t};
@@ -1 +0,0 @@
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"./useQuery-Bs5NFz2s.js";import{n as i}from"./active-backend-context-BZDG15C0.js";import{t as a}from"./utils-DUD5ScdA.js";import{t as o}from"./organization-service.api-BztSy69u.js";import{_ as s,u as c}from"./form-control-classes-CGXBLcn1.js";import{c as l,u}from"./dropdown-classes-tLhpwtxS.js";var d=n();function f({icon:e,text:t,className:n}){return(0,d.jsxs)(`div`,{className:a(`flex min-w-0 w-full items-center`,l,n),children:[(0,d.jsx)(`span`,{className:u,"aria-hidden":!0,children:e}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}var p=e(t()),m=e=>(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,d.jsx)(`path`,{d:`M7 4C7 2.89543 7.89543 2 9 2H15C16.1046 2 17 2.89543 17 4V6H18.9897C18.9959 5.99994 19.0021 5.99994 19.0083 6H21C21.5523 6 22 6.44772 22 7C22 7.55228 21.5523 8 21 8H19.9311L19.0638 20.1425C18.989 21.1891 18.1182 22 17.0689 22H6.93112C5.88184 22 5.01096 21.1891 4.9362 20.1425L4.06888 8H3C2.44772 8 2 7.55228 2 7C2 6.44772 2.44772 6 3 6H4.99174C4.99795 5.99994 5.00414 5.99994 5.01032 6H7V4ZM9 6H15V4H9V6ZM6.07398 8L6.93112 20H17.0689L17.926 8H6.07398ZM10 10C10.5523 10 11 10.4477 11 11V17C11 17.5523 10.5523 18 10 18C9.44772 18 9 17.5523 9 17V11C9 10.4477 9.44772 10 10 10ZM14 10C14.5523 10 15 10.4477 15 11V17C15 17.5523 14.5523 18 14 18C13.4477 18 13 17.5523 13 17V11C13 10.4477 13.4477 10 14 10Z`,fill:`currentColor`})}),h=e=>(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,d.jsx)(`path`,{d:`M14.25 19.5C14.25 20.7426 13.2426 21.75 12 21.75C10.7574 21.75 9.75 20.7426 9.75 19.5C9.75 18.2574 10.7574 17.25 12 17.25C13.2426 17.25 14.25 18.2574 14.25 19.5ZM14.25 12C14.25 13.2426 13.2426 14.25 12 14.25C10.7574 14.25 9.75 13.2426 9.75 12C9.75 10.7574 10.7574 9.75 12 9.75C13.2426 9.75 14.25 10.7574 14.25 12ZM14.25 4.5C14.25 5.74264 13.2426 6.75 12 6.75C10.7574 6.75 9.75 5.74264 9.75 4.5C9.75 3.25736 10.7574 2.25 12 2.25C13.2426 2.25 14.25 3.25736 14.25 4.5Z`,fill:`currentColor`})}),g=p.forwardRef(function({onClick:e,className:t,iconClassName:n,ariaLabel:r,testId:i=`ellipsis-button`},o){return(0,d.jsx)(`button`,{ref:o,"data-testid":i,type:`button`,onClick:e,"aria-label":r,className:a(`p-1 rounded-md cursor-pointer`,s,`text-[var(--oh-muted)]`,c,`flex items-center justify-center`,t),children:(0,d.jsx)(h,{className:n??`w-4 h-4`})})}),_=`edit_org_settings`;function v(){let{backend:e,orgId:t}=i(),n=e.kind===`cloud`,{data:a}=r({queryKey:[`cloud-current-user`,e.id,t,e.connectionRevision??0],queryFn:()=>o(t,e),enabled:n&&!!t,staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}});return n?a?.permissions?a.permissions.includes(_):a?.role===`owner`||a?.role===`admin`:!0}export{f as a,m as i,g as n,h as r,v as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./useQueries-xDrGlTO_.js";import{n as t,r as n}from"./active-backend-context-BZDG15C0.js";import{n as r,r as i,t as a}from"./organization-service.api-BztSy69u.js";function o(){let{backends:t}=n(),a=t.filter(e=>e.kind===`cloud`),o=e({queries:a.map(e=>({queryKey:[`cloud-organizations`,e.id,e.connectionRevision??0],queryFn:async()=>{let t=await r(e);if(e.authMode===`cookie`)return t;let n=await i(e);return n.isLegacyKey||n.orgId===null?t:{...t,items:t.items.filter(e=>e.id===n.orgId)}},staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}}))}),s={};return a.forEach((e,t)=>{let n=o[t];s[e.id]={backend:e,isLoading:n.isLoading,orgs:n.data?.items??[],currentOrgId:n.data?.currentOrgId??null}}),s}function s(){let{backends:r}=n(),i=t(),s=o(),c=[];for(let e of r)if(e.kind===`cloud`){let t=s[e.id],n=e.id===i.backend.id&&i.orgId?i.orgId:t?.orgs[0]?.id??null;n&&c.push({backendId:e.id,connectionRevision:e.connectionRevision??0,orgIdForMe:n})}let l=e({queries:c.map(({backendId:e,connectionRevision:t,orgIdForMe:n})=>{let i=r.find(t=>t.id===e);return{queryKey:[`cloud-current-user`,e,n,t],queryFn:async()=>i?a(n,i):{orgId:n,userId:``},enabled:!!i,staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}}})}),u={};return c.forEach((e,t)=>{let n=l[t];u[e.backendId]={isLoading:n.isLoading,userId:n.data?.userId??null}}),u}export{o as n,s as t};
@@ -1 +0,0 @@
1
- import{h as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t}from"./useQuery-Bs5NFz2s.js";import{G as n,I as r,Q as i,X as a,j as o,q as s}from"./active-backend-context-BZDG15C0.js";var c=class{static async getModels(){let t=new e(i()),[n,r,a]=await Promise.all([t.getModels(),t.getVerifiedModels(),t.getProviders()]),o=Object.keys(r??{}).sort(),s=o.flatMap(e=>r[e]??[]);return{models:n??[],verified_models:s,verified_providers:a?.filter(e=>o.includes(e))??o,default_model:s[0]??n?.[0]??``}}static async getConfig(){return await a(),{feature_flags:{hide_llm_settings:!1,hide_users_page:!0},providers_configured:[],maintenance_start_time:null,recaptcha_site_key:null,faulty_models:[],error_message:null,updated_at:new Date().toISOString()}}},l=e=>t({queryKey:r.WEB_CLIENT_CONFIG,queryFn:c.getConfig,retry:(e,t)=>!s(t)&&!n(t)&&e<3,meta:{disableToast:!0},...o,enabled:e?.enabled});export{c as n,l as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{t}from"./useMutation-6ZsQCqAn.js";import{F as n,M as r,O as i,k as a,n as o}from"./active-backend-context-BZDG15C0.js";import{t as s}from"./use-tracking-Bhu7gk2y.js";import{C as c,S as l,t as u,w as d}from"./agent-server-conversation-service.api-DK56YPTs.js";import{t as f}from"./profiles-service.api-BLr7FXec.js";import{t as p}from"./use-llm-profiles-diZS4FiN.js";import{n as m,t as h}from"./use-agent-profiles-CPIc6wLH.js";import{t as g}from"./plugins-management-service-lHdNKWNU.js";function _(e){if(e.name)return e.name;if(e.repo_path){let t=e.repo_path.split(`/`).filter(Boolean);if(t.length>0)return t[t.length-1]}let{source:t}=e;return t.startsWith(`github:`)?t.replace(`github:`,``):t.includes(`/`)&&t.split(`/`).pop()?.replace(/\.git$/,``)||t}function v(e){let{source:t}=e;return!(t.startsWith(`github:`)||/^[a-z][a-z0-9+.-]*:\/\//i.test(t))}function y(e){let t=e.source.startsWith(`github:`)?e.source.replace(`github:`,``):e.source;return e.ref?`${t} @ ${e.ref}`:t}function b(e){return[e.source,e.ref??``,e.repo_path??``].join(` `)}var x=[`create-conversation`],S=()=>{let _=e(),{trackConversationCreated:v}=s(),{data:y}=p(),{backend:S,orgId:C}=o();return h(),t({mutationKey:x,mutationFn:async e=>{let{query:t,conversationInstructions:o,plugins:s,repository:p,workingDir:h,workspaceMode:v,parentConversationId:x,agentType:w,agentProfileId:T}=e,E;try{E=await _.ensureQueryData({queryKey:[...i.all,S.id,C],queryFn:m.listProfiles,...a})}catch{}let D=T??E?.active_agent_profile_id??void 0,O=D?E?.profiles?.find(e=>e.id===D):void 0,k=S.kind===`cloud`,A=D;if(!k&&O?.name==="default"&&O?.agent_kind===`openhands`)A=void 0;else if(O?.agent_kind===`openhands`&&O.llm_profile_ref){let e=!1;try{e=(await _.ensureQueryData({queryKey:[...r.all,S.id,C],queryFn:f.listProfiles,retry:!1})).profiles.some(e=>e.name===O.llm_profile_ref)}catch{}e||(console.warn(`Agent profile "${O.name}" references missing LLM profile "${O.llm_profile_ref}"; launching from agent_settings instead.`),A=void 0)}let j=await u.createConversation({initialUserMsg:t,conversationInstructions:o,plugins:s,metadata:p?{selected_repository:p.name,selected_branch:p.branch??null,git_provider:p.gitProvider}:null,workingDirOverride:h,workspaceMode:v,parentConversationId:x,agentType:w,...A?{agentProfileId:A,agentProfileKind:O?.agent_kind}:{}}),M=j.app_conversation_id,N=s?.map(d)??[],P=N;if(M){let e=[];try{e=await _.ensureQueryData({queryKey:n.installed,queryFn:()=>g.listInstalledPlugins()})}catch{}let t=new Set(N.map(b)),r=e.filter(e=>e.enabled).map(e=>({source:e.source,ref:e.resolved_ref??null,repo_path:e.repo_path??null,name:e.name})).filter(e=>!t.has(b(e)));P=[...N,...r]}let F=A&&O?.agent_kind===`openhands`?O.llm_profile_ref:y?.active_profile??null;if(M&&(F||P.length)){let e=l(M);c(M,{selected_repository:e?.selected_repository??null,selected_branch:e?.selected_branch??null,git_provider:e?.git_provider??null,selected_workspace:e?.selected_workspace??null,workspace_mode:e?.workspace_mode??null,active_profile:F??e?.active_profile??null,plugins:P.length?P:e?.plugins??null})}return{conversation_id:j.app_conversation_id?j.app_conversation_id:`task-${j.id}`,session_api_key:null,url:j.agent_server_url,task_id:j.id}},onSuccess:async(e,t)=>{v({conversationId:e.conversation_id,taskId:e.task_id,hasRepository:!!t.repository,gitProvider:t.repository?.gitProvider,hasWorkspace:!!t.workingDir,workspaceMode:t.workspaceMode,hasInitialQuery:!!t.query,agentType:t.agentType,hasParentConversation:!!t.parentConversationId,entryPoint:t.entryPoint}),_.invalidateQueries({queryKey:[`user`,`conversations`]}),_.invalidateQueries({queryKey:[`start-tasks`]})}})};export{v as a,y as i,S as n,b as o,_ as r,x as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./useMutation-6ZsQCqAn.js";import{t}from"./secrets-service-BtsgYSlj.js";var n=()=>e({mutationFn:({name:e,value:n,description:r})=>t.createSecret(e,n,r)});export{n as t};
@@ -1 +0,0 @@
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"./useQuery-Bs5NFz2s.js";import{n as r}from"./active-backend-context-BZDG15C0.js";import{t as i}from"./secrets-service-BtsgYSlj.js";var a=e(t(),1),o=(e={})=>{let{nameContains:t,enabled:o=!0}=e,s=r(),c=n({queryKey:[`secrets`,s.backend.id,s.orgId],queryFn:i.getSecrets,enabled:o,staleTime:1e3*60*5,gcTime:1e3*60*15});return{data:(0,a.useMemo)(()=>{if(!c.data)return[];if(!t)return c.data;let e=t.toLowerCase();return c.data.filter(t=>t.name.toLowerCase().includes(e))},[c.data,t]),isLoading:c.isLoading,isError:c.isError,hasNextPage:!1,isFetchingNextPage:!1,fetchNextPage:()=>{},onLoadMore:()=>{},refetch:c.refetch}};export{o as t};
@@ -1 +0,0 @@
1
- import"./rolldown-runtime-Cyuzqnbw.js";import{St as e,yt as t}from"./vendor-styling-Ck5D_A2Q.js";import{t as n}from"./useQuery-Bs5NFz2s.js";import{n as r}from"./active-backend-context-BZDG15C0.js";import{n as i}from"./use-tracking-Bhu7gk2y.js";var a=[`automation-health`];function o(){let e=r();return n({queryKey:[...a,e.backend.id,e.orgId],queryFn:()=>i.checkHealth(),staleTime:30*1e3,retry:!1})}e();var s=t(),c=e=>(0,s.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,...e,children:(0,s.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z`})});function l(e){return!0}export{c as n,o as r,l as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./useQuery-Bs5NFz2s.js";var t=()=>e({queryKey:[`user`,`authenticated`],queryFn:async()=>!0,staleTime:1e3*60*5,gcTime:1e3*60*15,retry:!1,meta:{disableToast:!0}});export{t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{S as n,n as r,u as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{D as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{n as o}from"./navigation-context-CQZwH_tC.js";var s=e(t(),1);function c(e,t){let n=r(t);return u({filters:{...e,status:`pending`}},n).length}function l(e,t){return e.findAll(t.filters).map(e=>t.select?t.select(e):e.state)}function u(e={},t){let a=r(t).getMutationCache(),o=s.useRef(e),c=s.useRef(null);return c.current===null&&(c.current=l(a,e)),s.useEffect(()=>{o.current=e}),s.useSyncExternalStore(s.useCallback(e=>a.subscribe(()=>{let t=n(c.current,l(a,o.current));c.current!==t&&(c.current=t,i.schedule(e))}),[a]),()=>c.current,()=>c.current)}var d=a(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),f=()=>{let e=o(),t=c({mutationKey:[`create-conversation`]}),{isNavigating:n}=e;return t>0||n};export{d as n,c as r,f as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{n as r}from"./navigation-context-CQZwH_tC.js";import{t as i}from"./conversation-store-Blc5xysY.js";var a=e(t()),o=n(),s=e=>(0,o.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,...e,children:[(0,o.jsx)(`path`,{d:`M12 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4`}),(0,o.jsx)(`path`,{d:`M16 3h6v6`}),(0,o.jsx)(`path`,{d:`m16 9 6-6`})]});function c(){let{navigate:e}=r(),t=i(e=>e.setMessageToSend);return(0,a.useCallback)((n,r)=>{r?.(),e(`/conversations`),window.setTimeout(()=>{t(n)},0)},[e,t])}export{s as n,c as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./useQuery-Bs5NFz2s.js";import{M as t,j as n,n as r}from"./active-backend-context-BZDG15C0.js";import{t as i}from"./profiles-service.api-BLr7FXec.js";function a(a={}){let{backend:o,orgId:s}=r();return e({queryKey:[...t.all,o.id,s],queryFn:i.listProfiles,...n,enabled:a.enabled??!0,meta:{disableToast:!0}})}export{a as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./useQuery-Bs5NFz2s.js";import{R as t,n}from"./active-backend-context-BZDG15C0.js";import{n as r}from"./use-tracking-Bhu7gk2y.js";function i(e,t){return t.filter(t=>!e.includes(t))}function a(e,t){if(!t.ready)return{supported:!1,unmet:[]};let n=[...i(t.features??[],e.requires.features??[]),...i(t.triggerKinds??[],Object.keys(e.setup.form.triggers??{}))];return{supported:n.length===0,unmet:n}}function o(){let{backend:i,orgId:a}=n();return e({queryKey:[...t.capabilities(),i.id,a],queryFn:()=>r.getCapabilities(),retry:!1,staleTime:1e3*60*5,meta:{disableToast:!0}})}function s(e){let t=o();if(t.isLoading)return{capabilities:null,supported:`unknown`,unmet:[],isLoading:!0};if(!t.data)return{capabilities:null,supported:`unknown`,unmet:[],isLoading:!1};let n=a(e,t.data);return{capabilities:t.data,supported:n.supported,unmet:n.unmet,isLoading:!1}}export{s as n,o as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{C as n,M as r,b as i,f as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t as o}from"./useQueries-xDrGlTO_.js";import{Dt as s,Et as c,Ot as l,Q as u,Rt as d,Y as f,kt as p,z as m,zt as h}from"./active-backend-context-BZDG15C0.js";import"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-DOPLJMH9.js";import{n as g,r as _}from"./organization-service.api-BztSy69u.js";var v=e(t(),1),y=1e4,b=4e3,x=`Invalid API key`,S=`API key required`,C=`Cloud API key or network issue`,w=`Logged out`;function T(e){return e===x}function E(e){return e===S}function D(e){return e===C}function O(e){return e.kind===`cloud`&&e.authMode!==`cookie`&&!e.apiKey.trim()}function k(e){return e===w}async function A(e){if(e.kind===`cloud`){if(e.authMode!==`cookie`&&!e.apiKey?.trim())throw Error(S);try{e.authMode===`cookie`?await g(e):await _(e)}catch(e){throw r.isAxiosError(e)&&e.response?.status===401||e instanceof n&&e.status===401?Error(w):d(e)?Error(C):e}return!0}try{let t=u({host:e.host,sessionApiKey:e.apiKey||null,timeout:b});await new a(t).getSettings(),m(await new i(t).getServerInfo())}catch(e){throw f(e,401)?Error(x):e}return!0}var j=2,M=300;function N(e){return e instanceof Error?e.message!==`Invalid API key`&&e.message!==`API key required`&&e.message!==`Logged out`:!0}async function P(e){for(let t=0;;t+=1)try{return await A(e)}catch(e){if(t>=j||!N(e))throw e;await new Promise(e=>{setTimeout(e,M)})}}function F(e,t={}){let{probeDisabledOnce:n=!1}=t,r=v.useSyncExternalStore(p,c,c),i=o({queries:e.map(e=>{let t=r[e.id],i=O(e),a=t?.disabled===!0,o=a&&e.kind===`cloud`&&h(t?.lastError),c=!i&&(!a||n||o);return{queryKey:[`backend-health`,e.id,e.kind,e.host,e.apiKey??``],queryFn:async()=>{try{let t=await P(e);return l(e.id),t}catch(t){throw s(e.id,t),t}},enabled:c,refetchInterval:a||i?!1:y,refetchIntervalInBackground:!1,refetchOnMount:a&&n?`always`:!0,refetchOnReconnect:!a&&!i,refetchOnWindowFocus:!a&&!i,retry:!1,staleTime:a?0:y,meta:{disableToast:!0}}})}),a={};return e.forEach((e,t)=>{let n=i[t],o=r[e.id],s=O(e),c=s?!1:o?.disabled===!0,l=s?0:o?.consecutiveFailures??0,u=s?S:o?.lastError??null,d;d=s||c?!1:n.isSuccess?!0:n.isError?!1:null,a[e.id]={isConnected:d,consecutiveFailures:l,lastError:u,disabled:c}}),a}var I=`openhands-onboarded`;function L(){if(typeof window>`u`)return!0;try{return window.localStorage.getItem(I)!==null}catch{return!0}}function R(){let[e,t]=v.useState(()=>L());return v.useEffect(()=>{let e=e=>{e.key===`openhands-onboarded`&&t(L())};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),{isCompleted:e,markCompleted:v.useCallback(()=>{try{window.localStorage.setItem(I,`1`)}catch{}t(!0)},[])}}export{E as a,T as i,D as n,F as o,k as r,R as t};
@@ -1 +0,0 @@
1
- import{_ as e,u as t}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t as n}from"./useQuery-Bs5NFz2s.js";import{Q as r,st as i}from"./active-backend-context-BZDG15C0.js";function a(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}var o=class{static async getPluginsMarketplace(){if(i().backend.kind===`cloud`)return[];try{return(await new t(r()).getPluginsMarketplace()).plugins??[]}catch{return[]}}static async getLocalPlugins(){if(i().backend.kind===`cloud`)return[];try{return(await new t(r()).getPlugins({load_user:!0,load_project:!1})).plugins??[]}catch{return[]}}static async getPluginFileContent(t,n){if(i().backend.kind===`cloud`)throw Error(`Reading plugin files is only available on a local backend.`);let o=await new e(r()).downloadFile(`${t}/${n}`);return a(o)?{kind:`binary`,text:null}:{kind:`text`,text:new TextDecoder(`utf-8`,{fatal:!1}).decode(o)}}},s=()=>n({queryKey:[`plugins-marketplace`],queryFn:()=>o.getPluginsMarketplace(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});export{o as n,s as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{t}from"./useMutation-6ZsQCqAn.js";import{O as n}from"./active-backend-context-BZDG15C0.js";import{n as r}from"./use-agent-profiles-CPIc6wLH.js";function i(){let i=e();return t({mutationFn:({name:e,profile:t})=>r.saveProfile(e,t),onSuccess:async()=>{await i.invalidateQueries({queryKey:n.all})},meta:{disableToast:!0}})}export{i as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{t}from"./useMutation-6ZsQCqAn.js";import{L as n}from"./active-backend-context-BZDG15C0.js";import{t as r}from"./use-tracking-Bhu7gk2y.js";import{t as i}from"./settings-service.api-3yAUFcaP.js";import{n as a}from"./use-settings-C6ZxpBDX.js";var o=async e=>{let t={...e};delete t.agent_settings_schema,delete t.conversation_settings_schema;let n={...t.conversation_settings_diff??{}};Object.keys(n).length>0?t.conversation_settings_diff=n:delete t.conversation_settings_diff,delete t.conversation_settings;let r=t.agent_settings_diff,a=r?.llm;if(a&&typeof a.api_key==`string`){let e=a.api_key.trim();a.api_key=e===``?``:e}r&&Object.keys(r).length>0?t.agent_settings_diff=r:delete t.agent_settings_diff,delete t.agent_settings,typeof t.search_api_key==`string`&&(t.search_api_key=t.search_api_key.trim()),typeof t.git_user_name==`string`&&(t.git_user_name=t.git_user_name.trim()),typeof t.git_user_email==`string`&&(t.git_user_email=t.git_user_email.trim()),await i.saveSettings(t)},s=(i=`personal`,{retry:s}={})=>{let{trackMcpConfigUpdated:c}=r(),l=e(),{data:u}=a(i);return t({...s===void 0?{}:{retry:s},mutationFn:async e=>{let t=e.mcp_config,n=u?.mcp_config;if(t&&n!==t){let e=Object.values(t);c({sseServersCount:e.filter(e=>e.transport===`sse`).length,stdioServersCount:e.filter(e=>e.transport===`stdio`).length})}await o(e)},onSuccess:async()=>{await l.invalidateQueries({queryKey:n.byScope(i)})},meta:{disableToast:!0}})};export{s as t};
@@ -1 +0,0 @@
1
- import{M as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{t}from"./useQuery-Bs5NFz2s.js";import{L as n,dt as r,n as i}from"./active-backend-context-BZDG15C0.js";import{t as a}from"./settings-DcNPxz0v.js";import{l as o,t as s}from"./settings-service.api-3yAUFcaP.js";var c=(...e)=>e.find(e=>typeof e==`boolean`),l=(...e)=>e.find(e=>typeof e==`number`),u=(...e)=>{for(let t of e){if(typeof t==`string`)return t;if(t===null)return null}},d=t=>{if(typeof t==`object`&&t&&`status`in t){let{status:e}=t;if(typeof e==`number`)return e}if(e.isAxiosError(t))return t.response?.status},f=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},p=(e,t,n,r=!1)=>{let i=f(e,t);return typeof i==`string`&&(i.length>0||r)?i:n},m=e=>{let t=e.agent_settings??{},n={...a.conversation_settings??{},...e.conversation_settings??{}},r=t.mcp_config===void 0?e.mcp_config??a.mcp_config:o(t.mcp_config);return{...a,...e,llm_model:p(t,`llm.model`,a.llm_model),llm_base_url:p(t,`llm.base_url`,a.llm_base_url,!0),agent:p(t,`agent`,a.agent),llm_api_key:e.llm_api_key??null,llm_api_key_set:e.llm_api_key_set??!1,confirmation_mode:c(n.confirmation_mode)??a.confirmation_mode,security_analyzer:u(n.security_analyzer)??a.security_analyzer,max_iterations:l(n.max_iterations)??a.max_iterations,enable_default_condenser:c(f(t,`condenser.enabled`))??a.enable_default_condenser,condenser_max_size:l(f(t,`condenser.max_size`))??a.condenser_max_size,mcp_config:r,search_api_key:e.search_api_key||``,email:e.email||``,git_user_name:e.git_user_name||a.git_user_name,git_user_email:e.git_user_email||a.git_user_email,is_new_user:!1,disabled_skills:e.disabled_skills??a.disabled_skills,agent_settings_schema:e.agent_settings_schema??null,agent_settings:e.agent_settings??a.agent_settings,conversation_settings_schema:e.conversation_settings_schema??a.conversation_settings_schema,conversation_settings:n}},h=async(e=`personal`)=>{if(e!==`personal`)throw Error(`Unsupported settings scope: ${e}`);return m(await s.getSettings())},g=(e=`personal`)=>{let o=i(),s=!r(o.backend),c=t({queryKey:[...n.byScope(e),o.backend.id,o.orgId],queryFn:()=>h(e),retry:(e,t)=>d(t)!==404,enabled:s,refetchOnWindowFocus:!1,staleTime:1e3*60*5,gcTime:1e3*60*15,meta:{disableToast:!0}});return s?d(c.error)===404?{data:a,error:c.error,isError:c.isError,isLoading:c.isLoading,isFetching:c.isFetching,isFetched:c.isFetched,isSuccess:c.isSuccess,status:c.status,fetchStatus:c.fetchStatus,refetch:c.refetch}:c:{data:a,error:null,isError:!1,isLoading:!1,isFetching:!1,isFetched:!1,isSuccess:!0,status:`success`,fetchStatus:`idle`,refetch:c.refetch}};export{g as n,d as t};
@@ -1,16 +0,0 @@
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"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{D as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{E as a,St as o,V as s,dt as c,n as l,r as u}from"./active-backend-context-BZDG15C0.js";import{t as d,z as f}from"./utils-DUD5ScdA.js";import{t as p}from"./check-DSuS-lyr.js";import{a as m,i as h,n as g,o as _,r as v,t as y}from"./npm-CHVHV1MC.js";import{t as b}from"./circle-check-CG5-NPw7.js";import{r as x}from"./map-provider-BK4HnqYz.js";import{t as S}from"./external-link-C0UpBgsE.js";import{t as C}from"./puzzle-Bt2B1rzf.js";import{t as w}from"./refresh-cw-nmcesifB.js";import{t as T}from"./use-config-C3PO4TBw.js";import{t as E}from"./modal-backdrop-BSzNhM4r.js";import{n as D}from"./modal-body-BdKfD3Hl.js";import{r as O}from"./base-modal-BbjycA8X.js";import{t as k}from"./brand-button-Blxv5nww.js";import{a as A,f as j,o as M,u as N}from"./sidebar-layout-lrfPooIB.js";import{t as P}from"./modal-close-button-objukxk_.js";import{t as F}from"./u-robot-BvAOA2ZD.js";import{r as I}from"./settings-utils-CxjtCSB3.js";var L=i(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),R=i(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),z=i(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),B=i(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),V=e(t(),1),H=n(),U=2e3,W=[`npm`,`docker`];function G(e){return e===`npm`?f.SETTINGS$VERSION_NPM_RECOMMENDED:f.SETTINGS$VERSION_DOCKER}function K({tab:e}){return e===`npm`?(0,H.jsx)(y,{className:`size-4 shrink-0`,"aria-hidden":!0}):(0,H.jsx)(g,{className:`size-5 shrink-0`,"aria-hidden":!0})}function q(){let{t:e}=r(`openhands`),[t,n]=(0,V.useState)(`npm`),[i,a]=(0,V.useState)(!1),o=(0,V.useRef)(null),s=t===`npm`?m.npm:m.docker;(0,V.useEffect)(()=>()=>{o.current!==null&&window.clearTimeout(o.current)},[]),(0,V.useEffect)(()=>{a(!1),o.current!==null&&(window.clearTimeout(o.current),o.current=null)},[t]);let c=(0,V.useCallback)(()=>{navigator.clipboard?.writeText(s),a(!0),o.current!==null&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{a(!1),o.current=null},U)},[s]);return(0,H.jsxs)(`div`,{className:`w-full`,children:[(0,H.jsx)(`div`,{className:`flex justify-center`,children:W.map(r=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>n(r),className:d(`inline-flex items-center gap-1.5 px-3 pb-2 text-sm font-medium`,t===r?`border-b border-white text-white`:`text-[var(--oh-muted)] hover:text-white`),children:[(0,H.jsx)(K,{tab:r}),e(G(r))]},r))}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--oh-border)] bg-[var(--oh-surface-deep)] px-4 py-3`,children:[(0,H.jsx)(`code`,{"data-testid":t===`npm`?`agent-canvas-update-command-npm`:`agent-canvas-update-command-docker`,className:`min-w-0 flex-1 overflow-visible whitespace-nowrap font-mono text-sm text-white`,children:s}),(0,H.jsx)(`button`,{type:`button`,"data-testid":`copy-to-clipboard`,onClick:c,"aria-label":e(i?f.BUTTON$COPIED:f.SETTINGS$VERSION_COPY_COMMAND),disabled:i,className:`shrink-0 text-[var(--oh-muted)] hover:text-white disabled:hover:text-[var(--oh-muted)]`,children:i?(0,H.jsx)(p,{className:`size-4 text-[var(--oh-status-success)]`,"aria-hidden":!0}):(0,H.jsx)(x,{className:`size-4`,"aria-hidden":!0})})]})]})}function J({onClose:e,latestVersion:t,isPending:n,isFetching:i,updateAvailable:o,upToDate:s,onCheckForUpdates:c}){let{t:l}=r(`openhands`);return(0,H.jsx)(E,{onClose:e,children:(0,H.jsxs)(D,{width:`md`,className:`relative flex max-h-[80vh] flex-col items-start overflow-auto border border-[var(--oh-border)]`,testID:`agent-canvas-update-modal`,children:[(0,H.jsx)(P,{onClose:e,testId:`close-agent-canvas-update-modal`}),(0,H.jsxs)(`div`,{className:`flex w-full flex-col gap-2 pr-10`,children:[(0,H.jsx)(O,{title:l(f.SETTINGS$APP_UPDATE_CARD_TITLE)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-[var(--oh-text-dim)]`,children:l(f.SETTINGS$APP_UPDATE_VERSION_LABEL)}),(0,H.jsx)(`span`,{className:`text-white`,children:a})]})]}),(0,H.jsxs)(`div`,{className:`flex w-full flex-col gap-3`,children:[(0,H.jsx)(k,{testId:`agent-canvas-update-check-button`,type:`button`,variant:`secondary`,className:`w-full`,isDisabled:i,"aria-busy":i,onClick:c,startContent:(0,H.jsx)(w,{className:d(`size-4`,i&&`animate-spin`),"aria-hidden":!0}),children:l(f.SETTINGS$APP_UPDATE_CHECK_BUTTON)}),(0,H.jsx)(`div`,{"data-testid":`agent-canvas-update-status`,className:`w-full`,children:n||i?(0,H.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:l(f.SETTINGS$APP_UPDATE_CHECKING)}):o?(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-[#1E3A5F] px-3 py-2 text-xs text-[#3B82F6]`,children:[(0,H.jsx)(_,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsxs)(`span`,{children:[l(f.SETTINGS$APP_UPDATE_AVAILABLE_MESSAGE,{version:t}),` `,(0,H.jsxs)(`a`,{"data-testid":`agent-canvas-update-release-notes`,href:h,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 whitespace-nowrap font-medium text-white hover:text-[var(--oh-text)]`,children:[l(f.SETTINGS$VERSION_RELEASE_NOTES),(0,H.jsx)(S,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]})]})]}):s?(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--oh-status-success)]/30 bg-[var(--oh-status-success)]/10 px-3 py-2 text-xs text-[var(--oh-status-success)]`,children:[(0,H.jsx)(b,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsxs)(`span`,{children:[l(f.SETTINGS$APP_UPDATE_LATEST_MESSAGE),` `,(0,H.jsxs)(`a`,{"data-testid":`agent-canvas-update-release-notes`,href:h,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 whitespace-nowrap font-medium text-white hover:text-[var(--oh-text)]`,children:[l(f.SETTINGS$VERSION_RELEASE_NOTES),(0,H.jsx)(S,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]})]})]}):(0,H.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:l(f.SETTINGS$APP_UPDATE_CHECK_FAILED)})}),o?(0,H.jsxs)(`div`,{className:`flex w-full flex-col border-t border-[var(--oh-border)] pt-3`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium text-white`,children:l(f.SETTINGS$APP_UPDATE_HOW_TO_UPDATE)}),(0,H.jsx)(`span`,{className:`mt-1 mb-4 text-sm text-[var(--oh-text-dim)]`,children:l(f.SETTINGS$APP_UPDATE_RUN_COMMANDS)}),(0,H.jsx)(q,{})]}):null]})]})})}function Y({hideWhenUpToDate:e=!1}){let{t}=r(`openhands`),[n,i]=(0,V.useState)(!1),c=o()!==null,l=v({enabled:!c});if(c)return null;let u=l.data,p=u===void 0?null:s(u,a),m=p===1,h=p!==null&&p<=0;return e&&!m?null:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`section`,{"data-testid":`agent-canvas-update-card`,children:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),"aria-haspopup":`dialog`,"data-testid":`agent-canvas-update-toggle`,className:`flex w-full cursor-pointer flex-col gap-1 rounded-md border border-[var(--oh-border)] bg-base-secondary px-3 py-2 text-left hover:bg-[var(--oh-surface-raised)]`,children:[(0,H.jsxs)(`span`,{className:`flex w-full items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`flex-1 truncate text-sm font-semibold leading-5 text-white`,children:t(f.SETTINGS$APP_UPDATE_CARD_TITLE)}),p!==null&&(0,H.jsxs)(`span`,{"data-testid":`agent-canvas-update-badge`,className:d(`inline-flex shrink-0 items-center gap-1 text-[10px] font-medium leading-none`,m?`rounded-full border border-transparent bg-[#1E3A5F] px-1.5 py-0.5 text-[#3B82F6]`:`text-success`),children:[m?(0,H.jsx)(_,{className:`size-3 shrink-0`,"aria-hidden":!0}):(0,H.jsx)(b,{className:`size-3 shrink-0`,"aria-hidden":!0}),t(m?f.SETTINGS$APP_UPDATE_BADGE_UPDATE_AVAILABLE:f.SETTINGS$APP_UPDATE_BADGE_UP_TO_DATE)]})]}),(0,H.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-5 text-[var(--oh-muted)]`,children:[(0,H.jsx)(`span`,{children:t(f.SETTINGS$APP_UPDATE_VERSION_LABEL)}),(0,H.jsx)(`span`,{className:`text-white`,children:a})]})]})}),n&&(0,H.jsx)(J,{onClose:()=>i(!1),latestVersion:u,isPending:l.isPending,isFetching:l.isFetching,updateAvailable:m,upToDate:h,onCheckForUpdates:()=>l.refetch()})]})}function X(){let{t:e}=r(`openhands`),{active:t}=u(),{backend:n}=t;return c(n)||n.kind!==`cloud`?null:(0,H.jsxs)(`a`,{"data-testid":`settings-cloud-link`,href:`${n.host.replace(/\/+$/,``)}/settings`,target:`_blank`,rel:`noopener noreferrer`,className:d(j({collapsed:!1}),M.idle),children:[(0,H.jsx)(`span`,{className:A,children:(0,H.jsx)(z,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,H.jsx)(`span`,{className:d(N(!1),`flex-1`),children:e(f.SETTINGS$CLOUD_SETTINGS_LINK)}),(0,H.jsx)(S,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}function Z(){let{t:e}=r(`openhands`),{active:t}=u(),{backend:n}=t;return c(n)||n.kind!==`cloud`?null:(0,H.jsxs)(`a`,{"data-testid":`settings-integrations-link`,href:`${n.host.replace(/\/+$/,``)}/settings/integrations`,target:`_blank`,rel:`noopener noreferrer`,className:d(j({collapsed:!1}),M.idle),children:[(0,H.jsx)(`span`,{className:A,children:(0,H.jsx)(C,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,H.jsx)(`span`,{className:d(N(!1),`flex-1`),children:e(f.SETTINGS$INTEGRATIONS_SETTINGS_LINK)}),(0,H.jsx)(S,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}var Q=[{icon:(0,H.jsx)(F,{width:16,height:16}),to:`/settings/agents`,text:`SETTINGS$NAV_AGENT`,subtitle:`SETTINGS$PAGE_AGENT_PROFILES_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,H.jsx)(`path`,{d:`M10 13C9.80222 13 9.60888 13.0586 9.44443 13.1685C9.27998 13.2784 9.15181 13.4346 9.07612 13.6173C9.00043 13.8 8.98063 14.0011 9.01921 14.1951C9.0578 14.3891 9.15304 14.5673 9.29289 14.7071C9.43275 14.847 9.61093 14.9422 9.80491 14.9808C9.99889 15.0194 10.2 14.9996 10.3827 14.9239C10.5654 14.8482 10.7216 14.72 10.8315 14.5556C10.9414 14.3911 11 14.1978 11 14C11 13.7348 10.8946 13.4804 10.7071 13.2929C10.5196 13.1054 10.2652 13 10 13ZM10 9C9.80222 9 9.60888 9.05865 9.44443 9.16853C9.27998 9.27841 9.15181 9.43459 9.07612 9.61732C9.00043 9.80004 8.98063 10.0011 9.01921 10.1951C9.0578 10.3891 9.15304 10.5673 9.29289 10.7071C9.43275 10.847 9.61093 10.9422 9.80491 10.9808C9.99889 11.0194 10.2 10.9996 10.3827 10.9239C10.5654 10.8482 10.7216 10.72 10.8315 10.5556C10.9414 10.3911 11 10.1978 11 10C11 9.73478 10.8946 9.48043 10.7071 9.29289C10.5196 9.10536 10.2652 9 10 9ZM14 9C13.8022 9 13.6089 9.05865 13.4444 9.16853C13.28 9.27841 13.1518 9.43459 13.0761 9.61732C13.0004 9.80004 12.9806 10.0011 13.0192 10.1951C13.0578 10.3891 13.153 10.5673 13.2929 10.7071C13.4327 10.847 13.6109 10.9422 13.8049 10.9808C13.9989 11.0194 14.2 10.9996 14.3827 10.9239C14.5654 10.8482 14.7216 10.72 14.8315 10.5556C14.9414 10.3911 15 10.1978 15 10C15 9.73478 14.8946 9.48043 14.7071 9.29289C14.5196 9.10536 14.2652 9 14 9ZM21 13C21.2652 13 21.5196 12.8946 21.7071 12.7071C21.8946 12.5196 22 12.2652 22 12C22 11.7348 21.8946 11.4804 21.7071 11.2929C21.5196 11.1054 21.2652 11 21 11H19V9H21C21.2652 9 21.5196 8.89464 21.7071 8.70711C21.8946 8.51957 22 8.26522 22 8C22 7.73478 21.8946 7.48043 21.7071 7.29289C21.5196 7.10536 21.2652 7 21 7H18.82C18.6707 6.5806 18.4299 6.19969 18.1151 5.8849C17.8003 5.57011 17.4194 5.32932 17 5.18V3C17 2.73478 16.8946 2.48043 16.7071 2.29289C16.5196 2.10536 16.2652 2 16 2C15.7348 2 15.4804 2.10536 15.2929 2.29289C15.1054 2.48043 15 2.73478 15 3V5H13V3C13 2.73478 12.8946 2.48043 12.7071 2.29289C12.5196 2.10536 12.2652 2 12 2C11.7348 2 11.4804 2.10536 11.2929 2.29289C11.1054 2.48043 11 2.73478 11 3V5H9V3C9 2.73478 8.89464 2.48043 8.70711 2.29289C8.51957 2.10536 8.26522 2 8 2C7.73478 2 7.48043 2.10536 7.29289 2.29289C7.10536 2.48043 7 2.73478 7 3V5.18C6.5806 5.32932 6.19969 5.57011 5.8849 5.8849C5.57011 6.19969 5.32932 6.5806 5.18 7H3C2.73478 7 2.48043 7.10536 2.29289 7.29289C2.10536 7.48043 2 7.73478 2 8C2 8.26522 2.10536 8.51957 2.29289 8.70711C2.48043 8.89464 2.73478 9 3 9H5V11H3C2.73478 11 2.48043 11.1054 2.29289 11.2929C2.10536 11.4804 2 11.7348 2 12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5V15H3C2.73478 15 2.48043 15.1054 2.29289 15.2929C2.10536 15.4804 2 15.7348 2 16C2 16.2652 2.10536 16.5196 2.29289 16.7071C2.48043 16.8946 2.73478 17 3 17H5.18C5.32932 17.4194 5.57011 17.8003 5.8849 18.1151C6.19969 18.4299 6.5806 18.6707 7 18.82V21C7 21.2652 7.10536 21.5196 7.29289 21.7071C7.48043 21.8946 7.73478 22 8 22C8.26522 22 8.51957 21.8946 8.70711 21.7071C8.89464 21.5196 9 21.2652 9 21V19H11V21C11 21.2652 11.1054 21.5196 11.2929 21.7071C11.4804 21.8946 11.7348 22 12 22C12.2652 22 12.5196 21.8946 12.7071 21.7071C12.8946 21.5196 13 21.2652 13 21V19H15V21C15 21.2652 15.1054 21.5196 15.2929 21.7071C15.4804 21.8946 15.7348 22 16 22C16.2652 22 16.5196 21.8946 16.7071 21.7071C16.8946 21.5196 17 21.2652 17 21V18.82C17.4194 18.6707 17.8003 18.4299 18.1151 18.1151C18.4299 17.8003 18.6707 17.4194 18.82 17H21C21.2652 17 21.5196 16.8946 21.7071 16.7071C21.8946 16.5196 22 16.2652 22 16C22 15.7348 21.8946 15.4804 21.7071 15.2929C21.5196 15.1054 21.2652 15 21 15H19V13H21ZM17 16C17 16.2652 16.8946 16.5196 16.7071 16.7071C16.5196 16.8946 16.2652 17 16 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V8C7 7.73478 7.10536 7.48043 7.29289 7.29289C7.48043 7.10536 7.73478 7 8 7H16C16.2652 7 16.5196 7.10536 16.7071 7.29289C16.8946 7.48043 17 7.73478 17 8V16ZM14 13C13.8022 13 13.6089 13.0586 13.4444 13.1685C13.28 13.2784 13.1518 13.4346 13.0761 13.6173C13.0004 13.8 12.9806 14.0011 13.0192 14.1951C13.0578 14.3891 13.153 14.5673 13.2929 14.7071C13.4327 14.847 13.6109 14.9422 13.8049 14.9808C13.9989 15.0194 14.2 14.9996 14.3827 14.9239C14.5654 14.8482 14.7216 14.72 14.8315 14.5556C14.9414 14.3911 15 14.1978 15 14C15 13.7348 14.8946 13.4804 14.7071 13.2929C14.5196 13.1054 14.2652 13 14 13Z`,fill:`currentColor`})}),{width:16,height:16}),to:`/settings/llm`,text:`SETTINGS$NAV_LLM`,subtitle:`SETTINGS$PAGE_LLM_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsxs)(`svg`,{id:`Layer_1`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 22.3 18.66`,...e,children:[(0,H.jsx)(`defs`,{children:(0,H.jsx)(`style`,{children:`
2
- .st0 {
3
- stroke-miterlimit: 10;
4
- }
5
-
6
- .st0, .st1 {
7
- fill: none;
8
- stroke: currentColor;
9
- stroke-linecap: round;
10
- stroke-width: 2px;
11
- }
12
-
13
- .st1 {
14
- stroke-linejoin: round;
15
- }
16
- `})}),(0,H.jsx)(`path`,{className:`st1`,d:`M15.15,12.54h3.26c1.58,0,2.93-1.29,2.9-2.88-.03-1.53-1.28-2.77-2.82-2.77-.04,0-.08,0-.11,0,.13-.44.16-.92.04-1.43-.27-1.17-1.27-2.05-2.46-2.17-.74-.07-1.43.14-1.97.55,0,0,0-.02,0-.03,0-1.56-1.26-2.82-2.82-2.82s-2.82,1.26-2.82,2.82c0,0,0,.02,0,.03-.54-.4-1.23-.62-1.97-.55-1.19.12-2.19,1-2.46,2.17-.12.5-.09.99.04,1.43-.04,0-.08,0-.11,0-1.56,0-2.82,1.26-2.82,2.82s1.26,2.82,2.82,2.82l1.29.03c.41,0,.74.34.74.75v1.85c0,1.38,1.12,2.5,2.5,2.5h.29c1.44,0,2.6-1.17,2.6-2.6V6.49`}),(0,H.jsx)(`polyline`,{className:`st0`,points:`7.97 9.74 11.22 6.49 14.47 9.74`})]}),{width:16,height:16}),to:`/settings/condenser`,text:`SETTINGS$NAV_CONDENSER`,subtitle:`SETTINGS$PAGE_CONDENSER_SUBLINE`},{icon:(0,H.jsx)(R,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}),to:`/settings/agent-context`,text:`SETTINGS$NAV_AGENT_CONTEXT`,subtitle:`SETTINGS$PAGE_AGENT_CONTEXT_SUBLINE`},{icon:(0,H.jsx)(B,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}),to:`/settings/verification`,text:`SETTINGS$NAV_VERIFICATION`,subtitle:`SETTINGS$PAGE_VERIFICATION_SUBLINE`},{icon:(0,H.jsx)(L,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}),to:`/settings/app`,text:`SETTINGS$NAV_APPLICATION`,subtitle:`SETTINGS$PAGE_APPLICATION_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,H.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M17.0265 1.63647C18.2362 1.88301 19.3557 2.45458 20.2649 3.28974C21.1741 4.12489 21.8384 5.19205 22.1865 6.37647C22.509 7.46247 22.557 8.61147 22.326 9.72147C21.9921 11.2422 21.1518 12.6046 19.9428 13.5856C18.7337 14.5666 17.2274 15.1081 15.6705 15.1215C15.0135 15.1215 14.3595 15.027 13.731 14.8365L12.531 16.2435L11.9625 16.506H10.5V18.756L9.75 19.506H7.5V21.756L6.75 22.506H2.25L1.5 21.756V18.2955L1.719 17.766L9.18 10.305C8.96826 9.62297 8.86698 8.91148 8.88 8.19747C8.89367 7.19853 9.12754 6.2149 9.56495 5.3167C10.0024 4.4185 10.6325 3.62786 11.4105 3.00113C12.1885 2.3744 13.0952 1.92702 14.0659 1.69088C15.0367 1.45473 16.0475 1.43565 17.0265 1.63497V1.63647ZM19.0035 12.4365C19.9458 11.6734 20.6011 10.6131 20.862 9.42897L20.868 9.43647C21.0538 8.57068 21.0204 7.67216 20.7707 6.82258C20.521 5.97299 20.063 5.19926 19.4383 4.57169C18.8135 3.94412 18.0419 3.4826 17.1934 3.22908C16.345 2.97555 15.4466 2.93804 14.58 3.11997C13.4112 3.3794 12.3627 4.0224 11.6016 4.94661C10.8405 5.87082 10.4105 7.02309 10.38 8.21997C10.365 8.90397 10.485 9.58197 10.7385 10.215L10.5735 11.0295L3 18.606V21.006H6V18.756L6.75 18.006H9V15.756L9.75 15.006H11.6175L12.9315 13.482L13.773 13.272C14.3796 13.509 15.0253 13.6301 15.6765 13.629C16.8885 13.6197 18.0615 13.1992 19.0035 12.4365ZM17.7465 8.33847C17.8648 8.17505 17.9489 7.98945 17.9937 7.79277C18.0386 7.59609 18.0434 7.39239 18.0077 7.19384C17.972 6.99528 17.8967 6.80597 17.7861 6.63721C17.6756 6.46845 17.5322 6.32373 17.3644 6.21169C17.1967 6.09965 17.008 6.0226 16.8098 5.98514C16.6116 5.94769 16.4078 5.95061 16.2108 5.99372C16.0137 6.03683 15.8273 6.11925 15.6629 6.23605C15.4984 6.35285 15.3592 6.50162 15.2535 6.67347C15.0503 7.00406 14.983 7.40054 15.066 7.77963C15.1489 8.15872 15.3755 8.49093 15.6982 8.70645C16.0209 8.92198 16.4146 9.00405 16.7966 8.93543C17.1785 8.86682 17.519 8.65285 17.7465 8.33847Z`,fill:`currentColor`})}),{width:16,height:16}),to:`/settings/secrets`,text:`SETTINGS$NAV_SECRETS`,subtitle:`SETTINGS$PAGE_SECRETS_SUBLINE`}];function $(){let{data:e}=T(),{backend:t}=l(),n=e?.feature_flags;return Q.filter(e=>!I(e.to,n)).map(e=>({type:`item`,item:e.to===`/settings`?{...e,text:t.kind===`local`?f.SETTINGS$LLM_PROFILES:e.text,subtitle:t.kind===`local`?f.SETTINGS$PAGE_LLM_PROFILES_SUBLINE:e.subtitle}:e}))}export{Y as i,Z as n,X as r,$ as t};
@@ -1,3 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{M as n}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";import{C as r,D as i,U as a,Z as o,a as s,b as c,ct as l,d as u,dt as ee,f as te,h as d,n as f,p as ne,st as p,w as re}from"./active-backend-context-BZDG15C0.js";import{t as m}from"./proxy-DYDXxtje.js";import{t as ie}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-C0JXQb_q.js";import{n as ae,t as h}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BOVIFA_g.js";var g=e(t(),1),oe=new Map(ie.map(e=>[e.name,e]));function se(e){return Object.keys(e.requires.integrations)}function ce(e){return Object.entries(e.requires.integrations).filter(([,e])=>e.required!==!1).map(([e])=>e)}function _(e){return oe.get(e.skill??e.id)?.triggers[0]??null}function le(e){return _(e)??`Set up the ${e.name} automation`}var ue=[`form`,`automation`],de=[`list`,`templates`],fe=[`layout-dashboard`,`sparkles`,`bot`,`circle-alert`,`activity`,`timer`],pe=[`automations`,`needs-attention`,`total-runs`,`average-duration`],me={automations:[`active`],"needs-attention":[],"total-runs":[],"average-duration":[]},he={status:[`all`,`active`,`failing`,`disabled`],trigger:[`all`,`schedule`,`event`]},ge=Object.keys(he),_e=[`last-run`,`runs`,`name`],ve=/<[A-Za-z/!]/,ye=/^[a-z0-9]+(-[a-z0-9]+)*$/,v=`https://docs.openhands.dev/`,be=/^[a-z][a-z-]*$/,xe=/^\.[a-z][a-z.]*json$/,Se=/^[a-z0-9][a-z0-9.-]*$/,Ce=/^\/[A-Za-z0-9/{}_-]*$/,we=/^[^{}]*\{id\}[^{}]*$/,Te=[`github`,`gitlab`,`bitbucket`],y={name:{type:`text`,required:!0},prompt:{type:`textarea`,required:!1},model:{type:`llm-profile`,required:!1},timeout:{type:`number`,required:!1},schedule:{type:`schedule`,required:!1}},Ee=Object.keys(y),b=[`list`,`health`,`capabilities`,`validate`,`createPrompt`,`createPlugin`],x=[`detail`,`dispatch`,`runs`,`tarball`];function S(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function C(e,t){return typeof e==`string`&&t.includes(e)}var De=class{errors=[];fail(e,t){return this.errors.push(`${e}: ${t}`),!1}copy(e,t){return typeof e!=`string`||e.length===0?this.fail(t,`must be a non-empty string`):ve.test(e)?this.fail(t,`must not contain markup`):!0}closed(e,t,n){Object.keys(e).filter(e=>!t.includes(e)).forEach(e=>this.fail(`${n}.${e}`,`is not allowed`))}record(e,t){return S(e)?!0:(this.fail(t,`must be an object`),!1)}};function Oe(e,t,n){e.record(t,`routes`)&&(e.closed(t,[`list`,`setup`,`detail`,`templates`],`routes`),[`list`,`setup`,`detail`].forEach(r=>{t[r]!==n[r]&&e.fail(`routes.${r}`,`must be "${n[r]}"`)}),t.templates!==void 0&&t.templates!==n.templates&&e.fail(`routes.templates`,n.templates===void 0?`is not a route this host mounts`:`must be "${n.templates}"`))}function ke(e,t){if(!Array.isArray(t)||t.length===0){e.fail(`navigation.subPages`,`must be a non-empty array`);return}let n=new Set;t.forEach((t,r)=>{let i=`navigation.subPages[${r}]`;if(!e.record(t,i))return;e.closed(t,[`page`,`label`,`icon`],i);let{page:a,label:o,icon:s}=t;C(a,de)?n.has(a)?e.fail(`${i}.page`,`repeats a page`):n.add(a):e.fail(`${i}.page`,`is not a sub-page this host serves`),e.copy(o,`${i}.label`),w(e,s,`${i}.icon`)})}function w(e,t,n){C(t,fe)||e.fail(n,`is not an icon this host ships`)}function Ae(e,t){if(e.record(t,`navigation`)){if(e.closed(t,[`sidebar`,`commandMenu`,`subPages`],`navigation`),e.record(t.sidebar,`navigation.sidebar`)&&(e.closed(t.sidebar,[`label`],`navigation.sidebar`),e.copy(t.sidebar.label,`navigation.sidebar.label`)),e.record(t.commandMenu,`navigation.commandMenu`)){let n=t.commandMenu;e.closed(n,[`title`,`description`,`keywords`],`navigation.commandMenu`),e.copy(n.title,`navigation.commandMenu.title`),e.copy(n.description,`navigation.commandMenu.description`),e.copy(n.keywords,`navigation.commandMenu.keywords`)}t.subPages!==void 0&&ke(e,t.subPages)}}function je(e,t){e.record(t,`pages`)&&(e.closed(t,[`list`,`detail`,`edit`,`templates`],`pages`),e.record(t.list,`pages.list`)&&(e.closed(t.list,[`title`,`subtitle`,`overview`,`filters`,`sort`,`insights`],`pages.list`),e.copy(t.list.title,`pages.list.title`),e.copy(t.list.subtitle,`pages.list.subtitle`),t.list.overview!==void 0&&Me(e,t.list.overview),t.list.filters!==void 0&&Fe(e,t.list.filters),t.list.sort!==void 0&&Re(e,t.list.sort),t.list.insights!==void 0&&ze(e,t.list.insights)),e.record(t.detail,`pages.detail`)&&(e.closed(t.detail,[`backLabel`],`pages.detail`),e.copy(t.detail.backLabel,`pages.detail.backLabel`)),e.record(t.edit,`pages.edit`)&&(e.closed(t.edit,[`title`],`pages.edit`),e.copy(t.edit.title,`pages.edit.title`)),t.templates!==void 0&&Be(e,t.templates))}function Me(e,t){let n=`pages.list.overview`;if(!e.record(t,n))return;e.closed(t,[`label`,`tiles`],n),e.copy(t.label,`${n}.label`);let{tiles:r}=t;if(!Array.isArray(r)||r.length===0){e.fail(`${n}.tiles`,`must be a non-empty array`);return}let i=new Set;r.forEach((t,r)=>{Ne(e,t,i,`${n}.tiles[${r}]`)})}function Ne(e,t,n,r){if(!e.record(t,r))return;e.closed(t,[`metric`,`label`,`detail`,`zeroDetail`,`icon`],r);let{metric:i,label:a,detail:o,zeroDetail:s,icon:c}=t;if(e.copy(a,`${r}.label`),w(e,c,`${r}.icon`),!C(i,pe)){e.fail(`${r}.metric`,`is not a metric this host computes`),e.copy(o,`${r}.detail`),s!==void 0&&e.copy(s,`${r}.zeroDetail`);return}n.has(i)?e.fail(`${r}.metric`,`repeats a metric`):n.add(i),Pe(e,o,i,`${r}.detail`),s!==void 0&&Pe(e,s,i,`${r}.zeroDetail`)}function Pe(e,t,n,r){if(!e.copy(t,r))return;let i=me[n];(i.length===0?/\{\{/:RegExp(`\\{\\{(?!(?:${i.join(`|`)})\\}\\})`)).test(t)&&e.fail(r,`uses a placeholder this metric does not expose`)}function Fe(e,t){let n=`pages.list.filters`;if(!Array.isArray(t)||t.length===0){e.fail(n,`must be a non-empty array`);return}let r=new Set;t.forEach((t,i)=>{Ie(e,t,r,`${n}[${i}]`)})}function Ie(e,t,n,r){if(!e.record(t,r))return;e.closed(t,[`id`,`label`,`options`],r);let{id:i,label:a,options:o}=t;if(e.copy(a,`${r}.label`),!C(i,ge)){e.fail(`${r}.id`,`is not a filter this host implements`);return}n.has(i)?e.fail(`${r}.id`,`repeats a filter`):n.add(i),Le(e,o,he[i],`${r}.options`)}function Le(e,t,n,r){if(!Array.isArray(t)||t.length<2){e.fail(r,`must offer at least two options`);return}let i=new Set;t.forEach((t,a)=>{let o=`${r}[${a}]`;if(!e.record(t,o))return;e.closed(t,[`value`,`label`],o);let{value:s,label:c}=t;C(s,n)?i.has(s)?e.fail(`${o}.value`,`repeats a value`):i.add(s):e.fail(`${o}.value`,`is not a value this host implements`),e.copy(c,`${o}.label`)}),i.has(`all`)||e.fail(r,`must offer the "all" option`)}function Re(e,t){let n=`pages.list.sort`;if(!e.record(t,n))return;e.closed(t,[`label`,`options`,`default`],n);let{label:r,options:i,default:a}=t;e.copy(r,`${n}.label`);let o=new Set;!Array.isArray(i)||i.length===0?e.fail(`${n}.options`,`must be a non-empty array`):i.forEach((t,r)=>{let i=`${n}.options[${r}]`;e.record(t,i)&&(e.closed(t,[`value`,`label`],i),C(t.value,_e)?o.has(t.value)?e.fail(`${i}.value`,`repeats a value`):o.add(t.value):e.fail(`${i}.value`,`is not a sort this host implements`),e.copy(t.label,`${i}.label`))}),(typeof a!=`string`||!o.has(a))&&e.fail(`${n}.default`,`must be one of the declared option values`)}var T={health:[`healthy`,`failing`,`running`,`disabled`,`neverRun`,`checking`],lastRun:[`label`,`never`,`justNow`],stats:[`runs`,`recentSuccess`,`averageDuration`]};function ze(e,t){let n=`pages.list.insights`;e.record(t,n)&&(e.closed(t,Object.keys(T),n),Object.keys(T).forEach(r=>{let i=`${n}.${r}`,a=t[r];if(!e.record(a,i))return;let o=T[r];e.closed(a,o,i),o.forEach(t=>{e.copy(a[t],`${i}.${t}`)})}))}function Be(e,t){let n=`pages.templates`;e.record(t,n)&&(e.closed(t,[`title`,`description`],n),e.copy(t.title,`${n}.title`),e.copy(t.description,`${n}.description`))}function Ve(e,t){let n=S(t.routes)?t.routes:{},r=S(t.navigation)?t.navigation:{},i=S(t.pages)?t.pages:{},a=S(i.list)?i.list:{},o=[[`routes.templates`,n.templates],[`navigation.subPages`,r.subPages],[`pages.templates`,i.templates],[`pages.list.overview`,a.overview],[`pages.list.filters`,a.filters],[`pages.list.sort`,a.sort],[`pages.list.insights`,a.insights]],s=o.filter(([,e])=>e===void 0).map(([e])=>e);s.length===0||s.length===o.length||e.fail(`interface`,`the sub-page surface must be declared whole; missing ${s.join(`, `)}`)}function He(e,t,n,r){if(!e.record(n,r))return;e.closed(n,[`type`,`label`,`help`,`required`,`constraints`],r);let{type:i,label:a,help:o,required:s,constraints:c}=n;if(i!==t.type&&e.fail(`${r}.type`,`must be "${t.type}", the control this host renders`),e.copy(a,`${r}.label`),o!==void 0&&e.copy(o,`${r}.help`),s!==t.required&&e.fail(`${r}.required`,`must be ${t.required}, what this host enforces`),c!==void 0){if(t.type!==`number`)e.fail(`${r}.constraints`,`is only allowed on a number attribute`);else if(e.record(c,`${r}.constraints`)){e.closed(c,[`min`,`max`],`${r}.constraints`);let{min:t,max:n}=c;t!==void 0&&t!==1&&e.fail(`${r}.constraints.min`,`must be the 1 this host enforces`),n!==void 0&&(!Number.isInteger(n)||n<1)&&e.fail(`${r}.constraints.max`,`must be a positive integer`)}}}function Ue(e,t){if(!e.record(t,`attributes`))return;let n=Object.keys(t);n.length===0&&e.fail(`attributes`,`must declare at least one attribute`),n.forEach(n=>{if(!Ee.includes(n)){e.fail(`attributes.${n}`,`is not a settable attribute`);return}He(e,y[n],t[n],`attributes.${n}`)})}function We(e,t){if(!e.record(t,`importExport`))return;e.closed(t,[`fileKind`,`fileVersion`,`filenameSuffix`,`importDefaults`],`importExport`);let{fileKind:n,fileVersion:r,filenameSuffix:i,importDefaults:a}=t;(typeof n!=`string`||!be.test(n))&&e.fail(`importExport.fileKind`,`must be a lowercase slug`),r!==1&&e.fail(`importExport.fileVersion`,`must be 1`),(typeof i!=`string`||!xe.test(i))&&e.fail(`importExport.filenameSuffix`,`must be a .json suffix`),e.record(a,`importExport.importDefaults`)&&(e.closed(a,[`repoProvider`,`placeholderEventSource`],`importExport.importDefaults`),(typeof a.repoProvider!=`string`||!Te.includes(a.repoProvider))&&e.fail(`importExport.importDefaults.repoProvider`,`is not a supported provider`),(typeof a.placeholderEventSource!=`string`||!Se.test(a.placeholderEventSource))&&e.fail(`importExport.importDefaults.placeholderEventSource`,`must be a lowercase event source`))}function Ge(e,t){if(!e.record(t,`endpoints`))return;let n=[...b,...x];e.closed(t,n,`endpoints`);let r=n=>{let r=t[n];return typeof r!=`string`||!Ce.test(r)||r.includes(`//`)?(e.fail(`endpoints.${n}`,`must be a rooted service-relative path`),null):r};b.forEach(t=>{let n=r(t);n!==null&&/[{}]/.test(n)&&e.fail(`endpoints.${t}`,`must not carry a substitution`)}),x.forEach(t=>{let n=r(t);n!==null&&!we.test(n)&&e.fail(`endpoints.${t}`,`must carry exactly one {id}`)})}function E(e,t,n){if(!Array.isArray(t)||t.length===0)return e.fail(n,`must be a non-empty array`),[];let r=t.filter(t=>typeof t==`string`&&ye.test(t)?!0:(e.fail(n,`must contain only lowercase slugs`),!1));return new Set(r).size!==r.length&&e.fail(n,`must not repeat an id`),r}var Ke=[`version`,`routes`,`navigation`,`pages`,`docsUrl`,`attributes`,`importExport`,`endpoints`,`featuredAutomationIds`,`responderIntegrationIds`];function qe(e,t){if(!S(e))return{valid:!1,errors:[`interface: must be an object`]};if(e.version!==`1.0`)return{valid:!1,errors:[`interface.version: must be "1.0"`]};let n=new De;return n.closed(e,Ke,`interface`),Oe(n,e.routes,t.mountedRoutes),Ae(n,e.navigation),je(n,e.pages),(typeof e.docsUrl!=`string`||!e.docsUrl.startsWith(v))&&n.fail(`docsUrl`,`must start with ${v}`),Ue(n,e.attributes),We(n,e.importExport),Ge(n,e.endpoints),E(n,e.featuredAutomationIds,`featuredAutomationIds`).forEach(e=>{t.catalogIds.has(e)||n.fail(`featuredAutomationIds`,`${e} is not a catalog entry`)}),E(n,e.responderIntegrationIds,`responderIntegrationIds`),Ve(n,e),{valid:n.errors.length===0,errors:n.errors}}var D=/^[a-z0-9]+(-[a-z0-9]+)*$/,Je=/^[a-z][A-Za-z0-9]*$/,Ye=/<[A-Za-z/!]/,Xe=RegExp(`\\{\\{(?!(?:${ue.join(`|`)})\\.[A-Za-z0-9_.]+\\}\\})`),Ze=[`direct`,`assisted`],Qe=[`text`,`textarea`,`select`,`cron`,`timezone`,`repo-picker`],$e=[`github`,`gitlab`,`bitbucket`],et=[`cron`,`event`],tt=[`safeExpressionLiteral`],nt=2e3;function O(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function k(e,t){return typeof e==`string`&&t.includes(e)}function rt(e,t){return typeof e==`number`&&Number.isInteger(e)&&e>=t}var it=class{errors=[];fail(e,t){return this.errors.push(`${e}: ${t}`),!1}copy(e,t){return typeof e!=`string`||e.length===0?this.fail(t,`must be a non-empty string`):Ye.test(e)?this.fail(t,`must not contain markup`):!0}placeholders(e,t){return Xe.test(e)?this.fail(t,`uses an unknown placeholder namespace`):!0}templateCopy(e,t){return this.copy(e,t)&&this.placeholders(e,t)}templateValue(e,t){return typeof e!=`string`||e.length===0?this.fail(t,`must be a non-empty string`):this.placeholders(e,t)}absent(e,t,n,r){return t in e?this.fail(`${n}.${t}`,r):!0}};function at(e,t){if(!O(t)){e.fail(`requires`,`must be an object`);return}let{integrations:n,features:r}=t;!O(n)||Object.keys(n).length===0?e.fail(`requires.integrations`,`must be a non-empty object`):Object.entries(n).forEach(([t,n])=>{let r=`requires.integrations.${t}`;if(!O(n)){e.fail(r,`must be an object`);return}e.copy(n.message,`${r}.message`),`required`in n&&n.required!==!1&&e.fail(`${r}.required`,`may only be false`);let i=[`message`,`required`];Object.keys(n).filter(e=>!i.includes(e)).forEach(t=>e.fail(`${r}.${t}`,`is not allowed`))}),r!==void 0&&(!Array.isArray(r)||r.length===0?e.fail(`requires.features`,`must be a non-empty array`):r.forEach((t,n)=>{(typeof t!=`string`||t.length===0)&&e.fail(`requires.features[${n}]`,`must be a non-empty string`)}))}function ot(e,t,n){if(!O(t)||Object.keys(t).length===0){e.fail(n,`must be a non-empty object`);return}let{minLength:r,maxLength:i,format:a}=t;r!==void 0&&!rt(r,0)&&e.fail(`${n}.minLength`,`must be a non-negative integer`),i!==void 0&&!rt(i,1)&&e.fail(`${n}.maxLength`,`must be a positive integer`),a!==void 0&&!k(a,tt)&&e.fail(`${n}.format`,`is not a supported format`)}function st(e,t,n){if(!O(t)){e.fail(n,`must be an object`);return}let{type:r,label:i,help:a,placeholder:o,required:s,provider:c,options:l}=t;k(r,Qe)||e.fail(`${n}.type`,`is not a supported field type`),e.copy(i,`${n}.label`),e.copy(a,`${n}.help`),o!==void 0&&e.copy(o,`${n}.placeholder`),t.default!==void 0&&typeof t.default!=`string`&&e.fail(`${n}.default`,`must be a string`),typeof s!=`boolean`&&e.fail(`${n}.required`,`must be a boolean`),c!==void 0&&!k(c,$e)&&e.fail(`${n}.provider`,`is not a supported provider`),r===`repo-picker`&&c===void 0&&e.fail(`${n}.provider`,`is required for a repository field`),l!==void 0&&(r===`select`?!Array.isArray(l)||l.length===0?e.fail(`${n}.options`,`must be a non-empty array`):l.forEach((t,r)=>{let i=`${n}.options[${r}]`;if(!O(t)){e.fail(i,`must be an object`);return}(typeof t.value!=`string`||t.value.length===0)&&e.fail(`${i}.value`,`must be a non-empty string`),e.copy(t.label,`${i}.label`)}):e.fail(`${n}.options`,`is only allowed on a select field`)),t.constraints!==void 0&&ot(e,t.constraints,`${n}.constraints`)}function ct(e,t,n){return!O(t)||Object.keys(t).length===0?(e.fail(n,`must be a non-empty object`),[]):Object.entries(t).map(([t,r])=>(Je.test(t)||e.fail(`${n}.${t}`,`is not a valid field name`),st(e,r,`${n}.${t}`),t))}function lt(e,t){if(!O(t))return e.fail(`setup.form`,`must be an object`),[];t.note!==void 0&&e.copy(t.note,`setup.form.note`);let n=ct(e,t.args,`setup.form.args`),r=[];t.triggers!==void 0&&(!O(t.triggers)||Object.keys(t.triggers).length===0?e.fail(`setup.form.triggers`,`must be a non-empty object`):Object.entries(t.triggers).forEach(([t,i])=>{if(!k(t,et)){e.fail(`setup.form.triggers.${t}`,`is not a trigger kind`);return}r.push(t),n.push(...ct(e,i,`setup.form.triggers.${t}`))}));let i=n.filter((e,t)=>n.indexOf(e)!==t);return Array.from(new Set(i)).forEach(t=>e.fail(`setup.form.${t}`,`is declared more than once`)),r}function ut(e){return O(e)?[e.args,...Object.values(O(e.triggers)?e.triggers:{})].some(e=>O(e)&&Object.values(e).some(e=>O(e)&&e.type===`repo-picker`)):!1}function dt(e,t){e.templateCopy(t,`setup.message`)&&t.length>nt&&e.fail(`setup.message`,`must be at most ${nt} characters`)}function ft(e,t,n){if(!k(t.mode,Ze)){e.fail(`setup.mode`,`is not a supported mode`);return}if(t.mode===`direct`){e.templateValue(t.prompt,`setup.prompt`),t.message!==void 0&&dt(e,t.message),n.length!==1&&e.fail(`setup.form.triggers`,`must declare exactly one trigger kind`),n.includes(`event`)&&!ut(t.form)&&e.fail(`setup.form`,`must declare a repository field for an event trigger`),t.filter!==void 0&&(n.includes(`event`)?e.templateValue(t.filter,`setup.filter`):e.fail(`setup.filter`,`is only allowed for an event trigger`));return}dt(e,t.message),e.absent(t,`prompt`,`setup`,`is only allowed for direct setup`),e.absent(t,`filter`,`setup`,`is only allowed for direct setup`)}function pt(e){return O(e)&&e.setup!==void 0}function mt(e){let t=new it;if(!O(e))return{valid:!1,errors:[`manifest: must be an object`]};let{setup:n}=e;return O(n)?n.version===`1.0`?((typeof e.id!=`string`||!D.test(e.id))&&t.fail(`id`,`must be a lowercase slug`),t.copy(e.name,`name`),t.copy(e.description,`description`),e.skill!==void 0&&(typeof e.skill!=`string`||!D.test(e.skill))&&t.fail(`skill`,`must be a lowercase slug`),at(t,e.requires),ft(t,n,lt(t,n.form)),{valid:t.errors.length===0,errors:t.errors}):{valid:!1,errors:[`setup.version: must be "1.0"`]}:{valid:!1,errors:[`setup: must be an object`]}}function ht(e){let t=[],n=new Map;return e.forEach(e=>{if(!pt(e))return;let{valid:r,errors:i}=mt(e);if(!r){console.warn(`Rejected a setup manifest:`,i.join(`; `));return}let a=e;if(n.has(a.id)){console.warn(`Rejected a setup manifest: id "${a.id}" is already registered`);return}t.push(a),n.set(a.id,a)}),{entries:t,findById:e=>n.get(e)??null}}var gt=ht(h),_t=ae,vt=`AUTOMATION_INTERFACE`in _t?_t.AUTOMATION_INTERFACE:void 0,A={list:`/automations`,setup:`/automations/new/:automationId`,detail:`/automations/:automationId`,templates:`/automations/templates`},yt={list:`/v1`,detail:`/v1/{id}`,dispatch:`/v1/{id}/dispatch`,runs:`/v1/{id}/runs`,tarball:`/v1/{id}/tarball`,health:`/health`,capabilities:`/v1/capabilities`,validate:`/v1/validate`,createPrompt:`/v1/preset/prompt`,createPlugin:`/v1/preset/plugin`},bt={fileKind:`automation`,fileVersion:1,filenameSuffix:`.automation.json`,importDefaults:{repoProvider:`github`,placeholderEventSource:`agent-canvas-import`}},xt=`https://docs.openhands.dev/openhands/usage/automations/overview`,St=[`github-pr-reviewer`,`github-repo-monitor`,`slack-channel-monitor`],Ct=[`github`,`slack`],wt={present:!1,label:null,help:null,required:!1,min:null,max:null},Tt={name:{present:!0,label:null,help:null,required:!0,min:null,max:null},prompt:{present:!0,label:null,help:null,required:!1,min:null,max:null},model:{present:!0,label:null,help:null,required:!1,min:null,max:null},timeout:{present:!0,label:null,help:null,required:!1,min:1,max:null},schedule:{present:!0,label:null,help:null,required:!1,min:null,max:null}};function Et(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Dt(){return new Set(h.flatMap(e=>Et(e)&&typeof e.id==`string`?[e.id]:[]))}function Ot(e){if(e===void 0)return null;let t=qe(e,{catalogIds:Dt(),mountedRoutes:A});return t.valid?e:(console.warn(`Rejected the automation interface manifest:`,t.errors.join(`; `)),null)}var j=Ot(vt);function kt(e,t){return e.replace(`:automationId`,encodeURIComponent(t))}function M(){return(j?.routes??A).list}function At(e){return kt((j?.routes??A).setup,e)}function jt(e){return kt((j?.routes??A).detail,e)}function Mt(){return j?.routes.templates??A.templates}function N(e){return(j?.endpoints??yt)[e]}function P(e,t){return N(e).replace(`{id}`,encodeURIComponent(t))}var Nt={sidebarLabel:null,commandMenuTitle:null,commandMenuDescription:null,commandMenuKeywords:null,listTitle:null,listSubtitle:null,detailBackLabel:null,editTitle:null};function Pt(){return j?{sidebarLabel:j.navigation.sidebar.label,commandMenuTitle:j.navigation.commandMenu.title,commandMenuDescription:j.navigation.commandMenu.description,commandMenuKeywords:j.navigation.commandMenu.keywords,listTitle:j.pages.list.title,listSubtitle:j.pages.list.subtitle,detailBackLabel:j.pages.detail.backLabel,editTitle:j.pages.edit.title}:Nt}function Ft(e){if(!j)return Tt[e];let t=j.attributes[e];return t?{present:!0,label:t.label,help:t.help??null,required:t.required,min:t.constraints?.min??null,max:t.constraints?.max??null}:wt}function F(){return j?.importExport??bt}function It(){return j?.docsUrl??xt}function Lt(){return j?.featuredAutomationIds??St}function Rt(){return j?.responderIntegrationIds??Ct}function zt(){let e=j?.navigation.subPages;return e?e.map(e=>({page:e.page,to:e.page===`templates`?Mt():M(),label:e.label,icon:e.icon})):null}function Bt(){let e=j?.pages.list;return!e?.overview||!e.filters||!e.sort||!e.insights?null:{overview:e.overview,filters:e.filters,sort:e.sort,insights:e.insights}}function Vt(){return j?.pages.templates??null}var Ht=/["'\\]/;function I(e){let t=Object.values(e.form.triggers??{});return Object.assign({},...t,e.form.args)}function Ut(e,t){let n=t?.triggers?.cron?.timezones;if(!n?.length)return{};let r=n.map(e=>({value:e,label:e}));return Object.fromEntries(Object.entries(I(e)).filter(([,e])=>e.type===`timezone`).map(([e])=>[e,{options:r}]))}function L(e,t,n={}){return n[e]?.options??t.options??[]}function Wt(e){return Object.fromEntries(Object.entries(I(e)).map(([e,t])=>[e,t.default??``]))}function Gt(e,t,n,r){let i=(n??``).trim();if(!i)return t.required?{code:`required`}:null;let{minLength:a,maxLength:o,format:s}=t.constraints??{};if(a!==void 0&&i.length<a)return{code:`minLength`,length:a};if(o!==void 0&&i.length>o)return{code:`maxLength`,length:o};if(s===`safeExpressionLiteral`&&Ht.test(i))return{code:`unsafeExpressionLiteral`};let c=L(e,t,r);return c.length>0&&!c.some(e=>e.value===i)?{code:`invalidOption`}:null}function Kt(e,t,n={}){return Object.entries(I(e)).reduce((e,[r,i])=>{let a=Gt(r,i,t[r],n);return a?{...e,[r]:a}:e},{})}var R=/\{\{([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)\}\}/g;function qt(e,t){return t.split(`.`).reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)}function z(e){return typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):``}function B(e,t){return e.replace(R,(e,n)=>z(qt(t,n)))}function Jt(e,t){return e.replace(R,(e,n)=>z(t[n]))}var V=N(`createPrompt`),Yt={cron:[`schedule`,`timezone`],event:[`on`]},Xt=[`ref`],Zt=/\{\{form\.([A-Za-z0-9_.]+)\}\}/g;function Qt(e){let t=Object.entries(I(e)).find(([,e])=>e.type===`repo-picker`);return t?{name:t[0],field:t[1]}:null}function $t(e){let t=Object.entries(e.form.triggers??{});if(t.length===0)return null;let[n,r]=t[0];return{kind:n,fields:r??{}}}function H(e,t){let{setup:n}=e;if(n.mode!==`direct`||!n.prompt)return null;let r={form:t,automation:e},i=Qt(n),a=i?t[i.name]:void 0,o={name:a?`${e.name} - ${a}`:e.name,prompt:B(n.prompt,r)};if(a&&i?.field.provider){let e=Xt.filter(e=>e in t);o.repos=[{url:a,...Object.fromEntries(e.map(e=>[e,t[e]])),provider:i.field.provider}]}let s=$t(n);if(s){let e=Yt[s.kind],a=Object.keys(s.fields).filter(t=>e.includes(t));o.trigger={type:s.kind,...Object.fromEntries(a.map(e=>[e,t[e]??``])),...s.kind===`event`&&{source:i?.field.provider??``,...n.filter&&{filter:B(n.filter,r)}}}}return o}function en(e,t){let n=H(e,t);return n?{automationId:e.id,endpoint:V,draft:n}:null}function tn(e,t){return[_(e),e.setup.message?B(e.setup.message,{form:t,automation:e}):``].filter(Boolean).join(`
2
-
3
- `)}function nn(e){let t=Array.from(e.matchAll(Zt),e=>e[1]);return Array.from(new Set(t))}function rn(e){let t={},n=H(e,Object.fromEntries(Object.keys(I(e.setup)).map(e=>[e,`{{form.${e}}}`])));if(!n)return t;let r=(e,n)=>{if(Array.isArray(e)){e.forEach((e,t)=>r(e,`${n}[${t}]`));return}if(typeof e==`object`&&e){Object.entries(e).forEach(([e,t])=>r(t,n?`${n}.${e}`:e));return}if(typeof e==`string`){let r=nn(e);r.length>0&&(t[n]=r)}};return r(n,``),t}var U=`/api/automation`,W=n.create();async function G(e={}){let t=await te();return{...re,...t?{[i]:t}:{},...e}}W.interceptors.request.use(async e=>{let t=await G();if(Object.entries(t).forEach(([t,n])=>{e.headers.set(t,n)}),e.baseURL)return e;let n=l();if(!n)throw new o;e.baseURL=n.host;let r=n.apiKey?.trim();return r&&e.headers.set(`X-Session-API-Key`,r),e});function K(e){return typeof e==`string`&&e.trim()||null}function an(e){return typeof e==`string`?K(e):K(e.sdk_version)??K(e.version)}function on(e,t){let n=new URLSearchParams;return n.set(`limit`,String(e)),n.set(`offset`,String(t)),n.toString()}function sn(e){return e.trigger.type===`event`?{type:`event`,source:e.trigger.source,on:e.trigger.on,...e.trigger.filter&&{filter:e.trigger.filter}}:{type:`cron`,schedule:e.trigger.schedule,timezone:e.timezone??e.trigger.timezone??`UTC`}}function cn(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`pending.${crypto.randomUUID()}`:`pending.${Date.now()}.${Math.random().toString(36).slice(2,10)}`}function ln(e){if(!e.prompt)throw Error(`An automation prompt is required for import.`);let{importDefaults:t}=F(),n=e.repository?[{url:e.repository,...e.branch&&{ref:e.branch},...!e.repository.includes(`://`)&&!e.repository.startsWith(`git@`)&&{provider:t.repoProvider}}]:void 0;return{path:`${U}${N(e.plugins?.length?`createPlugin`:`createPrompt`)}`,body:{name:e.name,prompt:e.prompt,trigger:{type:`event`,source:t.placeholderEventSource,on:cn()},...e.model&&{model:e.model},...n&&{repos:n},...e.plugins?.length&&{plugins:e.plugins.map(e=>({source:e}))},...e.timeout!=null&&{timeout:e.timeout}}}}async function q(e){let t=e.apiKey.trim();return{baseURL:e.host,headers:await G(t?{"X-Session-API-Key":t}:{})}}async function J(e){return G(e.orgId?{"X-Org-Id":e.orgId}:{})}var Y=class e{static async syncTelemetryConsent(e=u()){if(p().backend.kind!==`local`)return;let t=await ne();await W.post(`${U}/v1/telemetry/consent`,{consent_granted:e===`granted`,frontend_distinct_id:t},{timeout:5e3}),e!==`granted`&&t&&s(t)}static async getSdkVersion(){let e=p(),t=`${U}/sdk-version`;try{let n;if(e.backend.kind===`cloud`)n=await m({backend:e.backend,method:`GET`,path:t,headers:await J(e),timeoutSeconds:5});else{let{data:e}=await W.get(t,{timeout:5e3});n=e}return an(n)}catch{return null}}static async listAutomations(e={}){let{limit:t=50,offset:n=0}=e,r=p().backend;if(r.kind===`cloud`)return m({backend:r,method:`GET`,path:`${U}${N(`list`)}?${on(t,n)}`,headers:await G()});let{data:i}=await W.get(`${U}${N(`list`)}`,{params:{limit:t,offset:n}});return i}static async getAutomations(t=50,n=0){return e.listAutomations({limit:t,offset:n})}static async getAutomation(e){let t=p().backend,n=`${U}${P(`detail`,e)}`;if(t.kind===`cloud`)return m({backend:t,method:`GET`,path:n,headers:await G()});let{data:r}=await W.get(n);return r}static async createAutomation(e){let t=p(),{path:n,body:r}=ln(e),i;if(t.backend.kind===`cloud`)i=await m({backend:t.backend,method:`POST`,path:n,body:r,headers:await J(t)});else{let{data:e}=await W.post(n,r,await q(t.backend));i=e}let a=`${U}${P(`detail`,i.id)}`,o={trigger:sn(e),enabled:!1};try{if(t.backend.kind===`cloud`)return await m({backend:t.backend,method:`PATCH`,path:a,body:o,headers:await J(t)});let{data:e}=await W.patch(a,o,await q(t.backend));return e}catch(e){try{t.backend.kind===`cloud`?await m({backend:t.backend,method:`DELETE`,path:a,headers:await J(t)}):await W.delete(a,await q(t.backend))}catch(t){throw AggregateError([e,t],`Failed to disable the imported automation and clean it up.`)}throw e}}static async updateAutomation(e,t){let n=p().backend,r=`${U}${P(`detail`,e)}`;if(n.kind===`cloud`)return m({backend:n,method:`PATCH`,path:r,body:t,headers:await G()});let{data:i}=await W.patch(r,t);return i}static async deleteAutomation(e){let t=p().backend,n=`${U}${P(`detail`,e)}`;if(t.kind===`cloud`){await m({backend:t,method:`DELETE`,path:n,headers:await G()});return}await W.delete(n)}static async dispatchAutomation(e){let t=p().backend,n=`${U}${P(`dispatch`,e)}`;if(t.kind===`cloud`)return m({backend:t,method:`POST`,path:n,headers:await G()});let{data:r}=await W.post(n);return r}static async cancelAutomationRun(e){let t=p().backend,n=`${U}/v1/runs/${encodeURIComponent(e)}/cancel`;if(t.kind===`cloud`)return m({backend:t,method:`POST`,path:n,headers:await G()});let{data:r}=await W.post(n);return r}static async listAutomationRuns(e,t={}){let{limit:n=50,offset:r=0}=t,i=p().backend,a=`${U}${P(`runs`,e)}`;if(i.kind===`cloud`)return m({backend:i,method:`GET`,path:`${a}?${on(n,r)}`,headers:await G()});let{data:o}=await W.get(a,{params:{limit:n,offset:r}});return o}static async getAutomationRuns(t,n=50,r=0){return e.listAutomationRuns(t,{limit:n,offset:r})}static async toggleAutomation(t,n){return e.updateAutomation(t,{enabled:n})}static async downloadTarball(e,t){let n=p().backend,r=`${U}${P(`tarball`,e)}`,i;if(n.kind===`cloud`)i=await m({backend:n,method:`GET`,path:r,responseType:`blob`,headers:await G()});else{let{data:e}=await W.get(r,{responseType:`blob`});i=e}let a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`${t}.tar`,o.click(),URL.revokeObjectURL(a)}static async getCapabilities(){let e=p().backend,t=`${U}${N(`capabilities`)}`;if(e.kind===`cloud`)return m({backend:e,method:`GET`,path:t,headers:await G()});let{data:n}=await W.get(t);return n}static async validateDraft(e){let t=p().backend,n=`${U}${N(`validate`)}`;if(t.kind===`cloud`)return m({backend:t,method:`POST`,path:n,body:e,headers:await G()});let{data:r}=await W.post(n,e);return r}static async createAutomationDraft(e){let t=p().backend,n=`${U}${V}`;if(t.kind===`cloud`)return m({backend:t,method:`POST`,path:n,body:e,headers:await G()});let{data:r}=await W.post(n,e);return r}static async getGitSyncStatus(){let e=p().backend,t=`${U}/v1/git-sync/status`;if(e.kind===`cloud`)return m({backend:e,method:`GET`,path:t});let{data:n}=await W.get(t);return n}static async updateGitSyncConfig(e){let t=p().backend,n=`${U}/v1/git-sync/config`;if(t.kind===`cloud`)return m({backend:t,method:`PUT`,path:n,body:e});let{data:r}=await W.put(n,e);return r}static async checkGitSyncConfig(e){let t=p().backend,n=`${U}/v1/git-sync/check`;if(t.kind===`cloud`)return m({backend:t,method:`POST`,path:n,body:e});let{data:r}=await W.post(n,e);return r}static async triggerGitSync(){let e=p().backend,t=`${U}/v1/git-sync/sync`;if(e.kind===`cloud`)return m({backend:e,method:`POST`,path:t});let{data:n}=await W.post(t);return n}static async checkHealth(){let e=p().backend,t=`${U}${N(`health`)}`;try{if(e.kind===`cloud`)return await m({backend:e,method:`GET`,path:t,timeoutSeconds:5,headers:await G()});let{data:n}=await W.get(t,{timeout:5e3});return n}catch{return{status:`error`}}}},un=`automation-sdk-version`,dn=3600*1e3,fn=`\0`,X=new Map,Z=new Map;function Q(e){let t=X.get(e);if(t){if(t.expiresAt<=Date.now()){X.delete(e);return}return t.version}}function $(e,t){X.set(e,{expiresAt:Date.now()+dn,version:t})}function pn(e){let t=Q(e);if(t!==void 0)return Promise.resolve(t);let n=Z.get(e);if(n)return n;if(typeof Y.getSdkVersion!=`function`)return $(e,null),Promise.resolve(null);let r=Y.getSdkVersion().then(t=>($(e,t),t)).catch(()=>($(e,null),null)).finally(()=>{Z.delete(e)});return Z.set(e,r),r}function mn(){let e=f(),{backend:t}=e,n=[un,t.id,t.kind,t.host,e.orgId??``].join(fn),[r,i]=g.useState(()=>Q(n)??null);return g.useEffect(()=>{if(ee(t)){i(null);return}let e=Q(n);if(e!==void 0){i(e);return}let r=!0;return i(null),pn(n).then(e=>{r&&i(e)}),()=>{r=!1}},[t,n]),r}var hn=()=>{let{backend:e}=f(),t=mn(),n=g.useCallback(()=>({backendKind:e.kind,agentServerVersion:e.kind===`local`?a(e.host):null,automationSdkVersion:t??null}),[t,e.host,e.kind]);g.useEffect(()=>{d(n())},[n]);let i={current_url:window.location.href},o=(e,t={})=>{d(n()),c(e,{...i,...t})};return{trackLoginButtonClick:({provider:e})=>{o(`login_button_clicked`,{provider:e})},trackConversationCreated:({conversationId:e,taskId:t,hasRepository:n,gitProvider:r,hasWorkspace:i,workspaceMode:a,hasInitialQuery:s,agentType:c,hasParentConversation:l,entryPoint:u})=>{o(`conversation_start_requested`,{conversation_id:e,task_id:t,is_start_task:e.startsWith(`task-`),has_repository:n,git_provider:r,has_workspace:i,workspace_mode:a,has_initial_query:s,agent_type:c,has_parent_conversation:l,entry_point:u})},trackPushButtonClick:()=>{o(`push_button_clicked`)},trackPullButtonClick:()=>{o(`pull_button_clicked`)},trackCreatePrButtonClick:()=>{o(`create_pr_button_clicked`)},trackUserSignupCompleted:()=>{o(`user_signup_completed`,{signup_timestamp:new Date().toISOString()})},trackPrebuiltAutomationEnabled:({automationId:e,automationName:t,automationCategory:n})=>{o(`prebuilt_automation_enabled`,{automation_id:e,automation_name:t,automation_category:n})},trackAutomationSetupOpened:({automationId:e})=>{o(`automation_setup_opened`,{automation_id:e})},trackAutomationSetupValidated:({automationId:e})=>{o(`automation_setup_validated`,{automation_id:e})},trackAutomationSetupCreated:({automationId:e,setupMode:t})=>{o(`automation_setup_created`,{automation_id:e,setup_mode:t})},trackAutomationSetupFailed:({automationId:e,setupMode:t})=>{o(`automation_setup_failed`,{automation_id:e,setup_mode:t})},trackInitialQuerySubmitted:({entryPoint:e,queryCharacterLength:t,replayJsonSize:n})=>{o(`initial_query_submitted`,{entry_point:e,query_character_length:t,replay_json_size:n})},trackUserMessageSent:({sessionMessageCount:e,currentMessageLength:t})=>{o(`user_message_sent`,{session_message_count:e,current_message_length:t})},trackDownloadVsCodeButtonClicked:()=>{o(`download_via_vscode_button_clicked`)},trackSettingsSaved:({llmModel:e,llmApiKeySet:t,searchApiKeySet:n,remoteRuntimeResourceFactor:r})=>{o(`settings_saved`,{LLM_MODEL:e,LLM_API_KEY_SET:t,SEARCH_API_KEY_SET:n,REMOTE_RUNTIME_RESOURCE_FACTOR:r})},trackMcpConfigUpdated:({sseServersCount:e,stdioServersCount:t})=>{o(`mcp_config_updated`,{has_mcp_config:!0,sse_servers_count:e,stdio_servers_count:t})},trackDownloadTrajectoryButtonClicked:()=>{o(`download_trajectory_button_clicked`)},trackConversationExported:e=>{o(`conversation_exported`,{format:e})},trackAutomationCreatedButton:({backendKind:e})=>{o(`automation_created_button`,{backend_kind:e})},trackAutomationExecuted:({backendKind:e})=>{o(`automation_executed`,{backend_kind:e})},trackAutomationDeleted:({backendKind:e})=>{o(`automation_deleted`,{backend_kind:e})},trackAutomationDisableButton:({backendKind:e})=>{o(`automation_disable_button`,{backend_kind:e})},trackAutomationEdited:({backendKind:e})=>{o(`automation_edited`,{backend_kind:e})},trackAutomationExported:({backendKind:e})=>{o(`automation_exported`,{backend_kind:e})},trackAutomationActivityLogExported:({backendKind:e,format:t})=>{o(`automation_activity_log_exported`,{backend_kind:e,format:t})},trackAutomationImported:({backendKind:e})=>{o(`automation_imported`,{backend_kind:e})},trackGitSyncConfigUpdated:({backendKind:e})=>{o(`git_sync_config_updated`,{backend_kind:e})},trackGitSyncTriggered:({backendKind:e})=>{o(`git_sync_triggered`,{backend_kind:e})},trackBackendAdded:({backendKind:e,connectionMethod:t,hasApiKey:n,source:i,agentServerVersion:a,backendVersion:s})=>{o(`backend_added`,{...r({backendKind:e,agentServerVersion:a,backendVersion:s,connectionMethod:t}),has_api_key:n,source:i})},trackOnboardingStarted:()=>{o(`onboarding_started`)},trackOnboardingStepViewed:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{o(`onboarding_step_viewed`,{step:e,step_index:t,total_steps:n,agent:r})},trackOnboardingCompleted:({agent:e})=>{o(`onboarding_completed`,{agent:e})},trackOnboardingSkipped:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{o(`onboarding_skipped`,{step:e,step_index:t,total_steps:n,agent:r})}}};export{zt as C,le as D,_ as E,se as O,Rt as S,gt as T,It as _,en as a,F as b,I as c,Ut as d,Kt as f,Ft as g,At as h,H as i,ce as k,L as l,M as m,Y as n,rn as o,jt as p,tn as r,Jt as s,hn as t,Wt as u,Bt as v,Vt as w,Pt as x,Lt as y};
@@ -1 +0,0 @@
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"./useQuery-Bs5NFz2s.js";import{n as r}from"./active-backend-context-BZDG15C0.js";import{t as i}from"./agent-server-conversation-service.api-DK56YPTs.js";var a=e(t(),1),o=1e3*60*5,s=1e3*60*15,c=(e,t)=>{let c=r(),l=(0,a.useRef)({cid:e,backendId:c.backend.id});l.current.cid!==e&&(l.current={cid:e,backendId:c.backend.id});let u=l.current.backendId!==c.backend.id;return n({queryKey:[`user`,`conversation`,e,c.backend.id,c.orgId],queryFn:async()=>e?(await i.batchGetAppConversations([e]))[0]??null:null,enabled:!!e&&!e.startsWith(`task-`)&&!u,retry:!1,refetchInterval:t,staleTime:o,gcTime:s})};export{c as t};
@@ -1 +0,0 @@
1
- import{a as e,o as t}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{h as n}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";import{n as r}from"./useQuery-Bs5NFz2s.js";var i=class extends n{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(n,r){let{state:i}=n,a=super.createResult(n,r),{isFetching:o,isRefetching:s,isError:c,isRefetchError:l}=a,u=i.fetchMeta?.fetchMore?.direction,d=c&&u===`forward`,f=o&&u===`forward`,p=c&&u===`backward`,m=o&&u===`backward`;return{...a,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:e(r,i.data),hasPreviousPage:t(r,i.data),isFetchNextPageError:d,isFetchingNextPage:f,isFetchPreviousPageError:p,isFetchingPreviousPage:m,isRefetchError:l&&!d&&!p,isRefetching:s&&!f&&!m}}};function a(e,t){return r(e,i,t)}export{a as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{E as n,T as r,j as i,m as a,n as o,u as s,y as c}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{R as l}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-D87mAf6K.js";var u=class extends i{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),r(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&a(t.mutationKey)!==a(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??l();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){s.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},d=e(t(),1);function f(e,t){let r=o(t),[i]=d.useState(()=>new u(r,e));d.useEffect(()=>{i.setOptions(e)},[i,e]);let a=d.useSyncExternalStore(d.useCallback(e=>i.subscribe(s.batchCalls(e)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),l=d.useCallback((e,t)=>{i.mutate(e,t).catch(c)},[i]);if(a.error&&n(i.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:l,mutateAsync:a.mutate}}export{f as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{S as n,T as r,j as i,n as a,u as o,y as s}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{c,d as l,f as u,h as d,m as f,o as p,p as m,s as h,u as g}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";function _(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function v(e,t,n){let r=e.slice(0);return r[t]=n,r}var y=class extends i{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,o.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),i=n.map(e=>e.getCurrentResult()),a=e.length!==n.length,o=n.some((t,n)=>t!==e[n]),s=a||o,c=s?!0:i.some((e,t)=>{let n=this.#t[t];return!n||!r(e,n)});!s&&!c||(s&&(this.#l=t,this.#i=n),this.#t=i,this.hasListeners()&&(s&&(_(e,n).forEach(e=>{e.destroy()}),_(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,r){if(t){let i=this.#c,a=r!==void 0&&i!==void 0&&(i.length!==r.length||r.some((e,t)=>e!==i[t]));return(!this.#a||this.#t!==this.#s||a||t!==this.#o)&&(this.#o=t,this.#s=this.#t,r!==void 0&&(this.#c=r),this.#a=n(this.#a,t(e))),this.#a}return e}#f(){return this.#r?.combine!==void 0&&this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new d(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=v(this.#t,n,t),this.#h())}#h(){if(this.hasListeners()){let e=this.#u(this.#t,this.#l),t=this.#f(),n=this.#a,r=t?n:this.#d(e,this.#r?.combine);(t||n!==r)&&o.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},b=e(t(),1);function x({queries:e,...t},n){let r=a(n),i=f(),_=m(),v=b.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);v.forEach(e=>{p(e),g(e,_,r.getQueryCache().get(e.queryHash))}),u(_);let[x]=b.useState(()=>new y(r,v,t)),[S,C,w]=x.getOptimisticResult(v,t.combine),T=!i&&t.subscribed!==!1;b.useSyncExternalStore(b.useCallback(e=>T?x.subscribe(o.batchCalls(e)):s,[x,T]),()=>x.getCurrentResult(),()=>x.getCurrentResult()),b.useEffect(()=>{x.setQueries(v,t)},[v,t,x]);let E=S.some((e,t)=>c(v[t],e))?S.flatMap((e,t)=>{let n=v[t];return n&&c(n,e)?h(n,new d(r,n),_):[]}):[];if(E.length>0)throw Promise.all(E);let D=S.find((e,t)=>{let n=v[t];return n&&l({result:e,errorResetBoundary:_,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(D?.error)throw D.error;return C(w())}export{x as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{f as n,n as r,u as i,y as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dcc51rps-rfV8mQ9m.js";import{c as o,d as s,f as c,h as l,l as u,m as d,o as f,p,s as m,u as h}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz8NQve5.js";var g=e(t(),1);function _(e,t,l){let _=d(),v=p(),y=r(l),b=y.defaultQueryOptions(e);y.getDefaultOptions().queries?._experimental_beforeQuery?.(b);let x=y.getQueryCache().get(b.queryHash),S=e.subscribed!==!1;b._optimisticResults=_?`isRestoring`:S?`optimistic`:void 0,f(b),h(b,v,x),c(v);let C=!y.getQueryCache().get(b.queryHash),[w]=g.useState(()=>new t(y,b)),T=w.getOptimisticResult(b),E=!_&&S;if(g.useSyncExternalStore(g.useCallback(e=>{let t=E?w.subscribe(i.batchCalls(e)):a;return w.updateResult(),t},[w,E]),()=>w.getCurrentResult(),()=>w.getCurrentResult()),g.useEffect(()=>{w.setOptions(b)},[b,w]),o(b,T))throw m(b,w,v);if(s({result:T,errorResetBoundary:v,throwOnError:b.throwOnError,query:x,suspense:b.suspense}))throw T.error;return y.getDefaultOptions().queries?._experimental_afterQuery?.(b,T),b.experimental_prefetchInRender&&!n.isServer()&&u(T,_)&&(C?m(b,w,v):x?.promise)?.catch(a).finally(()=>{w.updateResult()}),b.notifyOnChangeProps?T:w.trackResult(T)}function v(e,t){return _(e,l,t)}export{_ as n,v as t};