@openhands/agent-canvas 1.13.0 → 1.15.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 (1688) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/acp-providers-BKvmTf82.js +1 -0
  4. package/build/assets/active-backend-context-DKFSMbn3.js +2 -0
  5. package/build/assets/agent-context-settings-D3PjSTU1.js +1 -0
  6. package/build/assets/agent-profiles-settings-D4cY5U2T.js +1 -0
  7. package/build/assets/agent-server-conversation-service.api-DozDKIW_.js +86 -0
  8. package/build/assets/agent-settings-351vXWc9.js +2 -0
  9. package/build/assets/agent-settings-Ce7BDZ6I.js +1 -0
  10. package/build/assets/alert-banner-Kyy1YWZU.js +1 -0
  11. package/build/assets/api-error-message-BJyfWp6p.js +1 -0
  12. package/build/assets/api-key-entry-screen-INIxqAMs.js +1 -0
  13. package/build/assets/app-settings-CbHqzQus.js +1 -0
  14. package/build/assets/automation-detail-DXDhUwPq.js +3 -0
  15. package/build/assets/automation-export-BRopEHMu.js +2 -0
  16. package/build/assets/automation-git-sync-CzyS4cn1.js +1 -0
  17. package/build/assets/automation-setup-route-FRr05f_g.js +1 -0
  18. package/build/assets/automation-templates-C_0FZgLG.js +1 -0
  19. package/build/assets/automations-list-CERuQWE6.js +1 -0
  20. package/build/assets/back-nav-button-Dm9tIjVf.js +1 -0
  21. package/build/assets/backend-form-modal-DK78-jn1.js +1 -0
  22. package/build/assets/backend-synced-settings-badge-3fOwg6Bd.js +1 -0
  23. package/build/assets/badge-D4SqUCsR.js +1 -0
  24. package/build/assets/base-modal-C7_BDl_U.js +1 -0
  25. package/build/assets/bot-C-0Wu7vQ.js +1 -0
  26. package/build/assets/brand-button-Dxv6PDeN.js +1 -0
  27. package/build/assets/browser-11etCQ04.js +7 -0
  28. package/build/assets/browser-tab-BAl4ckJE.js +1 -0
  29. package/build/assets/chat-send-button-DWwR2cgI.js +1 -0
  30. package/build/assets/check-Cf2YoT90.js +1 -0
  31. package/build/assets/chevron-down-C3OQ-ehx.js +1 -0
  32. package/build/assets/chevron-right-CN1uUiJ1.js +1 -0
  33. package/build/assets/circle-check-g5yeGMd-.js +1 -0
  34. package/build/assets/circle-plus-check-toggle-CBh_qomE.js +1 -0
  35. package/build/assets/cloud-funnel-analytics-287iIERo.js +1 -0
  36. package/build/assets/cog-C4rrw-ZK.js +1 -0
  37. package/build/assets/command-menu-BZQ8S3Ke.js +1 -0
  38. package/build/assets/commits-tab-DZtJgaDM.js +1 -0
  39. package/build/assets/condenser-settings-BcNmYR4s.js +1 -0
  40. package/build/assets/confirmation-modal-Bk4JRcCM.js +1 -0
  41. package/build/assets/context-menu-list-item-lVYETtY5.js +1 -0
  42. package/build/assets/conversation-CchMzpGl.js +1 -0
  43. package/build/assets/conversation-Dpzftz57.js +93 -0
  44. package/build/assets/conversation-panel-CchMzpGl.js +1 -0
  45. package/build/assets/conversation-state-store-a9d2fxRc.js +1 -0
  46. package/build/assets/conversation-store-Ca3ghXap.js +6 -0
  47. package/build/assets/conversation-tab-empty-state-HJtkmHZj.js +1 -0
  48. package/build/assets/copy-to-clipboard-button-Cjkswvnj.js +1 -0
  49. package/build/assets/device-verify-EZhHhBT7.js +1 -0
  50. package/build/assets/dropdown-classes-DJe-E6MC.js +1 -0
  51. package/build/assets/edit-automation-modal-D-urtv8n.js +1 -0
  52. package/build/assets/empty-state-CvaVahVr.js +1 -0
  53. package/build/assets/entry.client-C7Bi2tkU.js +2 -0
  54. package/build/assets/enum-filter-dropdown-DliX_Lo0.js +1 -0
  55. package/build/assets/environment-switch-overlay-CEKrFiMw.js +1 -0
  56. package/build/assets/error-state-BALXiBNy.js +1 -0
  57. package/build/assets/extension-module-card-classes-DpeaYhYo.js +1 -0
  58. package/build/assets/extensions-hub-CFduxBnk.js +1 -0
  59. package/build/assets/extensions-navigation-BeC224yX.js +1 -0
  60. package/build/assets/external-link-DFpYunfj.js +1 -0
  61. package/build/assets/files-tab-CL3J9b3p.js +1 -0
  62. package/build/assets/form-control-classes-CGw40z5h.js +1 -0
  63. package/build/assets/format-model-name-BNPKVsIq.js +1 -0
  64. package/build/assets/get-git-path-DlAJa_i6.js +1 -0
  65. package/build/assets/git-repo-dropdown-DGMEhz7d.js +1 -0
  66. package/build/assets/git-repo-dropdown-ai8qaNkD.js +1 -0
  67. package/build/assets/highlighted-source-view-C3sxykQi.js +1 -0
  68. package/build/assets/home-BCGlNJCA.js +1 -0
  69. package/build/assets/home-DB1pRqTC.js +1 -0
  70. package/build/assets/home-automation-run-tooltip-CooFQRIG.js +1 -0
  71. package/build/assets/home-store-Dl1dPE58.js +1 -0
  72. package/build/assets/index-home-DB1pRqTC.js +1 -0
  73. package/build/assets/info-uYSVzX86.js +1 -0
  74. package/build/assets/install-server-modal-BbJdhzet.js +1 -0
  75. package/build/assets/kebab-menu-item-content-BYokkRHi.js +1 -0
  76. package/build/assets/key-Cn5za3rg.js +1 -0
  77. package/build/assets/launch-C1ieiOGe.js +1 -0
  78. package/build/assets/list-filter-OFkpRrmi.js +1 -0
  79. package/build/assets/list-todo-Cuu-STFc.js +1 -0
  80. package/build/assets/llm-not-configured-banner-BqqYnJ1t.js +27 -0
  81. package/build/assets/llm-settings-CnDbbmVW.js +1 -0
  82. package/build/assets/llm-settings-S8Yjg__1.js +1 -0
  83. package/build/assets/llm-subscription-service-BpPfzW4x.js +1 -0
  84. package/build/assets/loader-circle-nvrwthvj.js +1 -0
  85. package/build/assets/loading-spinner-0L3ZTToZ.js +1 -0
  86. package/build/assets/manage-backends-modal-BCUPswyl.js +1 -0
  87. package/build/assets/manifest-58597dde.js +1 -0
  88. package/build/assets/manifest-subpage-layout-BGhiUQbA.js +1 -0
  89. package/build/assets/map-provider-B9LTm23I.js +1 -0
  90. package/build/assets/markdown-renderer-Cb2sBWtV.js +8 -0
  91. package/build/assets/mcp-CKbR4Vft.js +1 -0
  92. package/build/assets/mcp-marketplace-utils-C13fFccR.js +1 -0
  93. package/build/assets/mcp-page-Bm4K2NQq.js +9 -0
  94. package/build/assets/messages-BTN5thLe.js +40 -0
  95. package/build/assets/modal-body-CMOc2tLl.js +1 -0
  96. package/build/assets/modal-classes-BAb4Y_BG.js +1 -0
  97. package/build/assets/modal-close-button-CkJ0Ktjj.js +1 -0
  98. package/build/assets/mouse-pointer-click-CsgRs_-r.js +1 -0
  99. package/build/assets/onboarding-Cx_kaiD1.js +1 -0
  100. package/build/assets/onboarding-modal-vMwn7ihv.js +1 -0
  101. package/build/assets/organization-service.api-C8XpQ0pM.js +1 -0
  102. package/build/assets/parse-git-remote-url-DpDM9bK6.js +1 -0
  103. package/build/assets/pencil-Clh1Wjvh.js +1 -0
  104. package/build/assets/planner-tab-DQvDU3ap.js +1 -0
  105. package/build/assets/plug-BuQhHSSG.js +1 -0
  106. package/build/assets/plugins-management-service-BjYeF0b0.js +1 -0
  107. package/build/assets/plus-CEKne-Yp.js +1 -0
  108. package/build/assets/profiles-service.api-QB-T_u-g.js +1 -0
  109. package/build/assets/providers-FfSZ5TXP.js +1 -0
  110. package/build/assets/proxy-tcFL2yTQ.js +1 -0
  111. package/build/assets/puzzle-A9pGxxai.js +1 -0
  112. package/build/assets/recommended-automations-launcher-Bw8uC4V6.js +1 -0
  113. package/build/assets/refresh-cw-Bh69DyYO.js +1 -0
  114. package/build/assets/root-BLeQfBEq.css +1 -0
  115. package/build/assets/root-ZKKYPR1Z.js +2 -0
  116. package/build/assets/root-layout-luJoE9IG.js +2 -0
  117. package/build/assets/schema-field-Csw5fhtN.js +1 -0
  118. package/build/assets/scroll-fade-state-Dw-i4SGq.js +1 -0
  119. package/build/assets/sdk-section-page-HTffvm7Q.js +1 -0
  120. package/build/assets/secret-form-HTUbYw5o.js +1 -0
  121. package/build/assets/secrets-service-BTor9uAU.js +1 -0
  122. package/build/assets/secrets-settings-BizaTEr1.js +1 -0
  123. package/build/assets/server-process-C9RKzd1x.js +1 -0
  124. package/build/assets/settings-BlmrkwRi.js +1 -0
  125. package/build/assets/settings-DcNPxz0v.js +1 -0
  126. package/build/assets/settings-dropdown-input-tM0A0ipy.js +1 -0
  127. package/build/assets/settings-index-CKq0b0Vg.js +1 -0
  128. package/build/assets/settings-input-C03KUoSC.js +1 -0
  129. package/build/assets/settings-list-classes-BJ0g8rWj.js +1 -0
  130. package/build/assets/settings-modal-AzEF1QPP.js +1 -0
  131. package/build/assets/settings-service.api-B2agVfjL.js +1 -0
  132. package/build/assets/settings-switch-CQE0EGC-.js +1 -0
  133. package/build/assets/settings-utils-ClYOkbbI.js +1 -0
  134. package/build/assets/shared-conversation-B55pCyBG.js +1 -0
  135. package/build/assets/shield-check-CFDViW82.js +1 -0
  136. package/build/assets/sidebar-layout-D3hE08wK.js +1 -0
  137. package/build/assets/sidebar-mobile-menu-toggle-BOtyJHwE.js +1 -0
  138. package/build/assets/sidebar-nav-link-CPzhyHQg.js +1 -0
  139. package/build/assets/sidebar-onboarding-checklist-storage-3qYflszY.js +1 -0
  140. package/build/assets/sidebar-store-DtpU7zaI.js +1 -0
  141. package/build/assets/skill-card-pill-row-CFxjoqxn.js +1 -0
  142. package/build/assets/skill-filter-CWZ5kjcg.js +2 -0
  143. package/build/assets/skill-icon-badge-CPQJ6A-I.js +1 -0
  144. package/build/assets/skill-scope-CV1dkAbW.js +1 -0
  145. package/build/assets/skills-plugins-DGHULTq6.js +1 -0
  146. package/build/assets/skills-settings-CM1lFv3e.js +1 -0
  147. package/build/assets/styled-tooltip-Dl06rkpY.js +1 -0
  148. package/build/assets/task-list-tab-04GNQuii.js +1 -0
  149. package/build/assets/terminal-Cj0iHIW7.js +3 -0
  150. package/build/assets/toggle-switch-Fd_QGz0r.js +1 -0
  151. package/build/assets/trash-2-Dl8_RGz0.js +1 -0
  152. package/build/assets/trash-_RMt7Ayc.js +1 -0
  153. package/build/assets/triangle-alert-SM-q4NU_.js +1 -0
  154. package/build/assets/typography-SgFy466J.js +1 -0
  155. package/build/assets/usage-tab-BcfWV6db.js +1 -0
  156. package/build/assets/use-acp-credential-form-BsSW5NHG.js +1 -0
  157. package/build/assets/use-activate-agent-profile-B2NS8nA5.js +1 -0
  158. package/build/assets/use-agent-profiles-DWBPC0Si.js +1 -0
  159. package/build/assets/use-automation-health-BxXdzZMP.js +1 -0
  160. package/build/assets/use-automations-zYb0dUny.js +1 -0
  161. package/build/assets/use-can-manage-org-profiles-BWMahtUh.js +1 -0
  162. package/build/assets/use-cloud-current-user-id-CPHMDG-C.js +1 -0
  163. package/build/assets/use-config-Bft35DOK.js +1 -0
  164. package/build/assets/use-create-conversation-DwN5vv2f.js +1 -0
  165. package/build/assets/use-create-secret-BSxJMxHp.js +1 -0
  166. package/build/assets/use-get-secrets-BT4ihRwj.js +1 -0
  167. package/build/assets/use-has-permission-B3C8rQmR.js +1 -0
  168. package/build/assets/use-is-authed-CFGkY3-Z.js +1 -0
  169. package/build/assets/use-launch-skill-in-chat-BYjYihBP.js +1 -0
  170. package/build/assets/use-llm-configured-BI6obxsc.js +1 -0
  171. package/build/assets/use-llm-profiles-djGAhTWL.js +1 -0
  172. package/build/assets/use-manifest-capabilities-3z0-1G59.js +1 -0
  173. package/build/assets/use-onboarding-completion-BXpyUSsJ.js +1 -0
  174. package/build/assets/use-plugins-marketplace-DI4_pK56.js +1 -0
  175. package/build/assets/use-save-agent-profile-DdBSTdpN.js +1 -0
  176. package/build/assets/use-save-settings-CUZW6yXP.js +1 -0
  177. package/build/assets/use-settings-C5VhGpqd.js +1 -0
  178. package/build/assets/use-settings-nav-items-DHaUu1Dg.js +16 -0
  179. package/build/assets/use-tracking-D5t9otIF.js +3 -0
  180. package/build/assets/use-user-conversation-DT0_QCnL.js +1 -0
  181. package/build/assets/useInfiniteQuery-CgeUQPfs.js +1 -0
  182. package/build/assets/useMutation-DFnzkf6f.js +1 -0
  183. package/build/assets/useQueries-BhbrGEf1.js +1 -0
  184. package/build/assets/useQuery-BXWbZBZl.js +1 -0
  185. package/build/assets/utils-DaCIEEQP.js +1 -0
  186. package/build/assets/vendor~browser-hbU4u2Ag.js +47 -0
  187. package/build/assets/vendor~commits-tab-BaO2Ce3e.js +11 -0
  188. package/build/assets/vendor~conversation-panel~conversation-CTvDDiXg.js +1 -0
  189. package/build/assets/vendor~entry.client-BFE7Llz9.js +1 -0
  190. package/build/assets/vendor~entry.client-BaKt_PIp.js +9 -0
  191. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kepq2zme-ZixYGy6E.js +186 -0
  192. package/build/assets/vendor~index-home~home~conversation-panel~conversation-BTyukeM-.js +13 -0
  193. package/build/assets/vendor~root-layout-BlUaZ18v.js +1 -0
  194. package/build/assets/vendor~root-layout~conversation-panel~conversation-BYAWJwQX.js +1 -0
  195. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-CHaLEBVR.js +1 -0
  196. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~mcp~automations-list~aut~ibfbmr9f-B2OLKL7N.js +1 -0
  197. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-DXqM7vqB.js +1 -0
  198. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-Dtu7BpYk.js +48 -0
  199. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iw7io29p-Dz-MAyNb.js +1 -0
  200. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-DonTKfQD.js +4949 -0
  201. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~jz4f6vo2-BgxDvUcf.js +8420 -0
  202. package/build/assets/verification-settings-Bj6bo097.js +1 -0
  203. package/build/assets/wrench-hi7Q13dF.js +1 -0
  204. package/build/assets/x-DkgltWa0.js +1 -0
  205. package/build/index.html +4 -4
  206. package/build/locales/ar/openhands.json +183 -44
  207. package/build/locales/ca/openhands.json +183 -44
  208. package/build/locales/de/openhands.json +183 -44
  209. package/build/locales/en/openhands.json +183 -44
  210. package/build/locales/es/openhands.json +183 -44
  211. package/build/locales/fr/openhands.json +183 -44
  212. package/build/locales/it/openhands.json +183 -44
  213. package/build/locales/ja/openhands.json +183 -44
  214. package/build/locales/ko-KR/openhands.json +183 -44
  215. package/build/locales/no/openhands.json +183 -44
  216. package/build/locales/pt/openhands.json +183 -44
  217. package/build/locales/tr/openhands.json +183 -44
  218. package/build/locales/uk/openhands.json +183 -44
  219. package/build/locales/zh-CN/openhands.json +183 -44
  220. package/build/locales/zh-TW/openhands.json +183 -44
  221. package/config/defaults.json +2 -2
  222. package/dist/api/agent-server-adapter.cjs +3 -3
  223. package/dist/api/agent-server-adapter.cjs.map +1 -1
  224. package/dist/api/agent-server-adapter.d.ts +10 -1
  225. package/dist/api/agent-server-adapter.js +115 -110
  226. package/dist/api/agent-server-adapter.js.map +1 -1
  227. package/dist/api/automation-service/automation-service.api.cjs +1 -1
  228. package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
  229. package/dist/api/automation-service/automation-service.api.d.ts +23 -2
  230. package/dist/api/automation-service/automation-service.api.js +130 -73
  231. package/dist/api/automation-service/automation-service.api.js.map +1 -1
  232. package/dist/api/backend-registry/url-selection.cjs +1 -1
  233. package/dist/api/backend-registry/url-selection.cjs.map +1 -1
  234. package/dist/api/backend-registry/url-selection.d.ts +2 -1
  235. package/dist/api/backend-registry/url-selection.js +2 -2
  236. package/dist/api/backend-registry/url-selection.js.map +1 -1
  237. package/dist/api/cloud/conversation-service.api.cjs +1 -1
  238. package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
  239. package/dist/api/cloud/conversation-service.api.d.ts +9 -0
  240. package/dist/api/cloud/conversation-service.api.js +11 -1
  241. package/dist/api/cloud/conversation-service.api.js.map +1 -1
  242. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  243. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  244. package/dist/api/conversation-service/agent-server-conversation-service.api.js +29 -24
  245. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  246. package/dist/api/git-provider-items-service.cjs +2 -0
  247. package/dist/api/git-provider-items-service.cjs.map +1 -0
  248. package/dist/api/git-provider-items-service.d.ts +25 -0
  249. package/dist/api/git-provider-items-service.js +127 -0
  250. package/dist/api/git-provider-items-service.js.map +1 -0
  251. package/dist/api/mcp-health/probe-mcp-server-health.cjs +1 -1
  252. package/dist/api/mcp-health/probe-mcp-server-health.js +31 -31
  253. package/dist/api/open-hands.types.d.ts +0 -19
  254. package/dist/api/profiles-service/profiles-service.api.cjs +1 -1
  255. package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
  256. package/dist/api/profiles-service/profiles-service.api.d.ts +29 -2
  257. package/dist/api/profiles-service/profiles-service.api.js +25 -2
  258. package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
  259. package/dist/api/provider-connections-service/provider-connections-service.api.cjs +2 -0
  260. package/dist/api/provider-connections-service/provider-connections-service.api.cjs.map +1 -0
  261. package/dist/api/provider-connections-service/provider-connections-service.api.d.ts +34 -0
  262. package/dist/api/provider-connections-service/provider-connections-service.api.js +50 -0
  263. package/dist/api/provider-connections-service/provider-connections-service.api.js.map +1 -0
  264. package/dist/api/secrets-service.cjs +1 -1
  265. package/dist/api/secrets-service.cjs.map +1 -1
  266. package/dist/api/secrets-service.d.ts +5 -0
  267. package/dist/api/secrets-service.js +12 -6
  268. package/dist/api/secrets-service.js.map +1 -1
  269. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs +1 -1
  270. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.cjs.map +1 -1
  271. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js +1 -1
  272. package/dist/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.js.map +1 -1
  273. package/dist/components/conversation-events/chat/event-message-components/index.d.ts +0 -1
  274. package/dist/components/conversation-events/chat/event-message.cjs +1 -1
  275. package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
  276. package/dist/components/conversation-events/chat/event-message.js +1 -1
  277. package/dist/components/conversation-events/chat/event-message.js.map +1 -1
  278. package/dist/components/conversation-events/chat/messages.cjs.map +1 -1
  279. package/dist/components/conversation-events/chat/messages.js.map +1 -1
  280. package/dist/components/features/automations/add-automation-menu.d.ts +7 -0
  281. package/dist/components/features/automations/add-automation-modal.cjs +2 -0
  282. package/dist/components/features/automations/add-automation-modal.cjs.map +1 -0
  283. package/dist/components/features/automations/add-automation-modal.js +42 -0
  284. package/dist/components/features/automations/add-automation-modal.js.map +1 -0
  285. package/dist/components/features/automations/automation-action-button-classes.cjs +2 -0
  286. package/dist/components/features/automations/automation-action-button-classes.cjs.map +1 -0
  287. package/dist/components/features/automations/automation-action-button-classes.d.ts +0 -2
  288. package/dist/components/features/automations/automation-action-button-classes.js +8 -0
  289. package/dist/components/features/automations/automation-action-button-classes.js.map +1 -0
  290. package/dist/components/features/automations/automation-card-skeleton.cjs +2 -0
  291. package/dist/components/features/automations/automation-card-skeleton.cjs.map +1 -0
  292. package/dist/components/features/automations/automation-card-skeleton.js +33 -0
  293. package/dist/components/features/automations/automation-card-skeleton.js.map +1 -0
  294. package/dist/components/features/automations/automation-card.cjs +2 -0
  295. package/dist/components/features/automations/automation-card.cjs.map +1 -0
  296. package/dist/components/features/automations/automation-card.d.ts +1 -1
  297. package/dist/components/features/automations/automation-card.js +160 -0
  298. package/dist/components/features/automations/automation-card.js.map +1 -0
  299. package/dist/components/features/automations/automation-group.cjs +2 -0
  300. package/dist/components/features/automations/automation-group.cjs.map +1 -0
  301. package/dist/components/features/automations/automation-group.js +54 -0
  302. package/dist/components/features/automations/automation-group.js.map +1 -0
  303. package/dist/components/features/automations/automation-list-row.cjs +2 -0
  304. package/dist/components/features/automations/automation-list-row.cjs.map +1 -0
  305. package/dist/components/features/automations/automation-list-row.js +152 -0
  306. package/dist/components/features/automations/automation-list-row.js.map +1 -0
  307. package/dist/components/features/automations/automation-run-insights.cjs +2 -0
  308. package/dist/components/features/automations/automation-run-insights.cjs.map +1 -0
  309. package/dist/components/features/automations/automation-run-insights.js +46 -0
  310. package/dist/components/features/automations/automation-run-insights.js.map +1 -0
  311. package/dist/components/features/automations/automation-view-mode.cjs +2 -0
  312. package/dist/components/features/automations/automation-view-mode.cjs.map +1 -0
  313. package/dist/components/features/automations/automation-view-mode.d.ts +5 -1
  314. package/dist/components/features/automations/automation-view-mode.js +6 -0
  315. package/dist/components/features/automations/automation-view-mode.js.map +1 -0
  316. package/dist/components/features/automations/backend-not-configured.cjs +2 -0
  317. package/dist/components/features/automations/backend-not-configured.cjs.map +1 -0
  318. package/dist/components/features/automations/backend-not-configured.js +34 -0
  319. package/dist/components/features/automations/backend-not-configured.js.map +1 -0
  320. package/dist/components/features/automations/build-automation-menu-items.cjs +2 -0
  321. package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -0
  322. package/dist/components/features/automations/build-automation-menu-items.js +53 -0
  323. package/dist/components/features/automations/build-automation-menu-items.js.map +1 -0
  324. package/dist/components/features/automations/build-automation-pills.cjs +2 -0
  325. package/dist/components/features/automations/build-automation-pills.cjs.map +1 -0
  326. package/dist/components/features/automations/build-automation-pills.js +71 -0
  327. package/dist/components/features/automations/build-automation-pills.js.map +1 -0
  328. package/dist/components/features/automations/create-instructions.cjs +2 -0
  329. package/dist/components/features/automations/create-instructions.cjs.map +1 -0
  330. package/dist/components/features/automations/create-instructions.js +102 -0
  331. package/dist/components/features/automations/create-instructions.js.map +1 -0
  332. package/dist/components/features/automations/dashboard/automations-dashboard-controls.d.ts +4 -3
  333. package/dist/components/features/automations/detail/run-status-badge.cjs +2 -0
  334. package/dist/components/features/automations/detail/run-status-badge.cjs.map +1 -0
  335. package/dist/components/features/automations/detail/run-status-badge.js +102 -0
  336. package/dist/components/features/automations/detail/run-status-badge.js.map +1 -0
  337. package/dist/components/features/automations/empty-state.cjs +2 -0
  338. package/dist/components/features/automations/empty-state.cjs.map +1 -0
  339. package/dist/components/features/automations/empty-state.js +35 -0
  340. package/dist/components/features/automations/empty-state.js.map +1 -0
  341. package/dist/components/features/automations/error-state.cjs +2 -0
  342. package/dist/components/features/automations/error-state.cjs.map +1 -0
  343. package/dist/components/features/automations/error-state.js +28 -0
  344. package/dist/components/features/automations/error-state.js.map +1 -0
  345. package/dist/components/features/automations/git-sync/git-sync-activity-row.d.ts +15 -0
  346. package/dist/components/features/automations/git-sync/git-sync-config-form.d.ts +13 -0
  347. package/dist/components/features/automations/git-sync/git-sync-error-banner.d.ts +6 -0
  348. package/dist/components/features/automations/git-sync/git-sync-not-local-state.d.ts +1 -0
  349. package/dist/components/features/automations/git-sync/git-sync-overview-section.d.ts +12 -0
  350. package/dist/components/features/automations/git-sync/git-sync-skeleton.d.ts +1 -0
  351. package/dist/components/features/automations/git-sync/git-sync-status-pill.d.ts +7 -0
  352. package/dist/components/features/automations/git-sync/git-sync-unsupported-state.d.ts +7 -0
  353. package/dist/components/features/automations/import-automation-modal.d.ts +2 -1
  354. package/dist/components/features/automations/kebab-menu-item-content.cjs +2 -0
  355. package/dist/components/features/automations/kebab-menu-item-content.cjs.map +1 -0
  356. package/dist/components/features/automations/kebab-menu-item-content.js +21 -0
  357. package/dist/components/features/automations/kebab-menu-item-content.js.map +1 -0
  358. package/dist/components/features/automations/kebab-menu.cjs +2 -0
  359. package/dist/components/features/automations/kebab-menu.cjs.map +1 -0
  360. package/dist/components/features/automations/kebab-menu.d.ts +2 -1
  361. package/dist/components/features/automations/kebab-menu.js +76 -0
  362. package/dist/components/features/automations/kebab-menu.js.map +1 -0
  363. package/dist/components/features/automations/recommended-automations-launcher.cjs +2 -0
  364. package/dist/components/features/automations/recommended-automations-launcher.cjs.map +1 -0
  365. package/dist/components/features/automations/recommended-automations-launcher.d.ts +7 -1
  366. package/dist/components/features/automations/recommended-automations-launcher.js +134 -0
  367. package/dist/components/features/automations/recommended-automations-launcher.js.map +1 -0
  368. package/dist/components/features/automations/recommended-automations-rail.cjs +2 -0
  369. package/dist/components/features/automations/recommended-automations-rail.cjs.map +1 -0
  370. package/dist/components/features/automations/recommended-automations-rail.d.ts +9 -0
  371. package/dist/components/features/automations/recommended-automations-rail.js +127 -0
  372. package/dist/components/features/automations/recommended-automations-rail.js.map +1 -0
  373. package/dist/components/features/automations/recommended-automations-section.cjs +2 -0
  374. package/dist/components/features/automations/recommended-automations-section.cjs.map +1 -0
  375. package/dist/components/features/automations/recommended-automations-section.d.ts +2 -2
  376. package/dist/components/features/automations/recommended-automations-section.js +198 -0
  377. package/dist/components/features/automations/recommended-automations-section.js.map +1 -0
  378. package/dist/components/features/automations/responder-deployment-modal.cjs +2 -0
  379. package/dist/components/features/automations/responder-deployment-modal.cjs.map +1 -0
  380. package/dist/components/features/automations/responder-deployment-modal.d.ts +2 -1
  381. package/dist/components/features/automations/responder-deployment-modal.js +75 -0
  382. package/dist/components/features/automations/responder-deployment-modal.js.map +1 -0
  383. package/dist/components/features/automations/status-badge.cjs +2 -0
  384. package/dist/components/features/automations/status-badge.cjs.map +1 -0
  385. package/dist/components/features/automations/status-badge.js +12 -0
  386. package/dist/components/features/automations/status-badge.js.map +1 -0
  387. package/dist/components/features/automations/to-latest-run-state.cjs +2 -0
  388. package/dist/components/features/automations/to-latest-run-state.cjs.map +1 -0
  389. package/dist/components/features/automations/to-latest-run-state.d.ts +6 -0
  390. package/dist/components/features/automations/to-latest-run-state.js +21 -0
  391. package/dist/components/features/automations/to-latest-run-state.js.map +1 -0
  392. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  393. package/dist/components/features/backends/backend-form-modal.js +10 -10
  394. package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
  395. package/dist/components/features/backends/manage-backends-modal.js +5 -5
  396. package/dist/components/features/chat/chat-interface.cjs +2 -2
  397. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  398. package/dist/components/features/chat/chat-interface.js +151 -148
  399. package/dist/components/features/chat/chat-interface.js.map +1 -1
  400. package/dist/components/features/chat/error-message-banner.cjs +1 -1
  401. package/dist/components/features/chat/error-message-banner.cjs.map +1 -1
  402. package/dist/components/features/chat/error-message-banner.d.ts +3 -1
  403. package/dist/components/features/chat/error-message-banner.js +64 -58
  404. package/dist/components/features/chat/error-message-banner.js.map +1 -1
  405. package/dist/components/features/command-menu/command-menu-items.d.ts +10 -4
  406. package/dist/components/features/conversation/conversation-git-actions-menu.cjs +2 -0
  407. package/dist/components/features/conversation/conversation-git-actions-menu.cjs.map +1 -0
  408. package/dist/components/features/conversation/conversation-git-actions-menu.d.ts +15 -0
  409. package/dist/components/features/conversation/conversation-git-actions-menu.js +123 -0
  410. package/dist/components/features/conversation/conversation-git-actions-menu.js.map +1 -0
  411. package/dist/components/features/conversation/conversation-git-actions-toggle.cjs +2 -0
  412. package/dist/components/features/conversation/conversation-git-actions-toggle.cjs.map +1 -0
  413. package/dist/components/features/conversation/conversation-git-actions-toggle.d.ts +10 -0
  414. package/dist/components/features/conversation/conversation-git-actions-toggle.js +60 -0
  415. package/dist/components/features/conversation/conversation-git-actions-toggle.js.map +1 -0
  416. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs +1 -1
  417. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.cjs.map +1 -1
  418. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js +46 -10
  419. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.js.map +1 -1
  420. package/dist/components/features/conversation/conversation-main/conversation-main.cjs +1 -1
  421. package/dist/components/features/conversation/conversation-main/conversation-main.cjs.map +1 -1
  422. package/dist/components/features/conversation/conversation-main/conversation-main.js +49 -43
  423. package/dist/components/features/conversation/conversation-main/conversation-main.js.map +1 -1
  424. package/dist/components/features/conversation/conversation-name-with-status.cjs +1 -1
  425. package/dist/components/features/conversation/conversation-name-with-status.cjs.map +1 -1
  426. package/dist/components/features/conversation/conversation-name-with-status.js +49 -40
  427. package/dist/components/features/conversation/conversation-name-with-status.js.map +1 -1
  428. package/dist/components/features/conversation/conversation-name.cjs +1 -1
  429. package/dist/components/features/conversation/conversation-name.js +4 -4
  430. package/dist/components/features/conversation/conversation-overview-automations-panel.cjs +2 -0
  431. package/dist/components/features/conversation/conversation-overview-automations-panel.cjs.map +1 -0
  432. package/dist/components/features/conversation/conversation-overview-automations-panel.d.ts +6 -0
  433. package/dist/components/features/conversation/conversation-overview-automations-panel.js +48 -0
  434. package/dist/components/features/conversation/conversation-overview-automations-panel.js.map +1 -0
  435. package/dist/components/features/conversation/conversation-overview-context-menu.cjs +2 -0
  436. package/dist/components/features/conversation/conversation-overview-context-menu.cjs.map +1 -0
  437. package/dist/components/features/conversation/conversation-overview-context-menu.d.ts +10 -0
  438. package/dist/components/features/conversation/conversation-overview-context-menu.js +221 -0
  439. package/dist/components/features/conversation/conversation-overview-context-menu.js.map +1 -0
  440. package/dist/components/features/conversation/conversation-overview-diffs-row.cjs +2 -0
  441. package/dist/components/features/conversation/conversation-overview-diffs-row.cjs.map +1 -0
  442. package/dist/components/features/conversation/conversation-overview-diffs-row.d.ts +2 -0
  443. package/dist/components/features/conversation/conversation-overview-diffs-row.js +88 -0
  444. package/dist/components/features/conversation/conversation-overview-diffs-row.js.map +1 -0
  445. package/dist/components/features/conversation/conversation-overview-drawer-content.cjs +2 -0
  446. package/dist/components/features/conversation/conversation-overview-drawer-content.cjs.map +1 -0
  447. package/dist/components/features/conversation/conversation-overview-drawer-content.d.ts +6 -0
  448. package/dist/components/features/conversation/conversation-overview-drawer-content.js +138 -0
  449. package/dist/components/features/conversation/conversation-overview-drawer-content.js.map +1 -0
  450. package/dist/components/features/conversation/conversation-overview-drawer-context.cjs +2 -0
  451. package/dist/components/features/conversation/conversation-overview-drawer-context.cjs.map +1 -0
  452. package/dist/components/features/conversation/conversation-overview-drawer-context.d.ts +17 -0
  453. package/dist/components/features/conversation/conversation-overview-drawer-context.js +43 -0
  454. package/dist/components/features/conversation/conversation-overview-drawer-context.js.map +1 -0
  455. package/dist/components/features/conversation/conversation-overview-drawer.cjs +2 -0
  456. package/dist/components/features/conversation/conversation-overview-drawer.cjs.map +1 -0
  457. package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs +2 -0
  458. package/dist/components/features/conversation/conversation-overview-drawer.constants.cjs.map +1 -0
  459. package/dist/components/features/conversation/conversation-overview-drawer.constants.d.ts +6 -0
  460. package/dist/components/features/conversation/conversation-overview-drawer.constants.js +6 -0
  461. package/dist/components/features/conversation/conversation-overview-drawer.constants.js.map +1 -0
  462. package/dist/components/features/conversation/conversation-overview-drawer.d.ts +7 -0
  463. package/dist/components/features/conversation/conversation-overview-drawer.js +45 -0
  464. package/dist/components/features/conversation/conversation-overview-drawer.js.map +1 -0
  465. package/dist/components/features/conversation/conversation-overview-drawer.types.cjs +2 -0
  466. package/dist/components/features/conversation/conversation-overview-drawer.types.cjs.map +1 -0
  467. package/dist/components/features/conversation/conversation-overview-drawer.types.d.ts +12 -0
  468. package/dist/components/features/conversation/conversation-overview-drawer.types.js +13 -0
  469. package/dist/components/features/conversation/conversation-overview-drawer.types.js.map +1 -0
  470. package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs +2 -0
  471. package/dist/components/features/conversation/conversation-overview-git-items-panel.cjs.map +1 -0
  472. package/dist/components/features/conversation/conversation-overview-git-items-panel.d.ts +7 -0
  473. package/dist/components/features/conversation/conversation-overview-git-items-panel.js +81 -0
  474. package/dist/components/features/conversation/conversation-overview-git-items-panel.js.map +1 -0
  475. package/dist/components/features/conversation/conversation-overview-git-section.cjs +2 -0
  476. package/dist/components/features/conversation/conversation-overview-git-section.cjs.map +1 -0
  477. package/dist/components/features/conversation/conversation-overview-git-section.d.ts +6 -0
  478. package/dist/components/features/conversation/conversation-overview-git-section.js +143 -0
  479. package/dist/components/features/conversation/conversation-overview-git-section.js.map +1 -0
  480. package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs +2 -0
  481. package/dist/components/features/conversation/conversation-overview-mcp-panel.cjs.map +1 -0
  482. package/dist/components/features/conversation/conversation-overview-mcp-panel.d.ts +6 -0
  483. package/dist/components/features/conversation/conversation-overview-mcp-panel.js +108 -0
  484. package/dist/components/features/conversation/conversation-overview-mcp-panel.js.map +1 -0
  485. package/dist/components/features/conversation/conversation-overview-panel.cjs +2 -0
  486. package/dist/components/features/conversation/conversation-overview-panel.cjs.map +1 -0
  487. package/dist/components/features/conversation/conversation-overview-panel.constants.cjs +2 -0
  488. package/dist/components/features/conversation/conversation-overview-panel.constants.cjs.map +1 -0
  489. package/dist/components/features/conversation/conversation-overview-panel.constants.d.ts +24 -0
  490. package/dist/components/features/conversation/conversation-overview-panel.constants.js +12 -0
  491. package/dist/components/features/conversation/conversation-overview-panel.constants.js.map +1 -0
  492. package/dist/components/features/conversation/conversation-overview-panel.d.ts +2 -0
  493. package/dist/components/features/conversation/conversation-overview-panel.js +102 -0
  494. package/dist/components/features/conversation/conversation-overview-panel.js.map +1 -0
  495. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs +2 -0
  496. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.cjs.map +1 -0
  497. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.d.ts +8 -0
  498. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js +29 -0
  499. package/dist/components/features/conversation/conversation-overview-project-scope-toggle.js.map +1 -0
  500. package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs +2 -0
  501. package/dist/components/features/conversation/conversation-overview-secrets-panel.cjs.map +1 -0
  502. package/dist/components/features/conversation/conversation-overview-secrets-panel.d.ts +6 -0
  503. package/dist/components/features/conversation/conversation-overview-secrets-panel.js +89 -0
  504. package/dist/components/features/conversation/conversation-overview-secrets-panel.js.map +1 -0
  505. package/dist/components/features/conversation/conversation-overview-sections.cjs +2 -0
  506. package/dist/components/features/conversation/conversation-overview-sections.cjs.map +1 -0
  507. package/dist/components/features/conversation/conversation-overview-sections.d.ts +43 -0
  508. package/dist/components/features/conversation/conversation-overview-sections.js +27 -0
  509. package/dist/components/features/conversation/conversation-overview-sections.js.map +1 -0
  510. package/dist/components/features/conversation/conversation-overview-skills-panel.cjs +2 -0
  511. package/dist/components/features/conversation/conversation-overview-skills-panel.cjs.map +1 -0
  512. package/dist/components/features/conversation/conversation-overview-skills-panel.d.ts +6 -0
  513. package/dist/components/features/conversation/conversation-overview-skills-panel.js +138 -0
  514. package/dist/components/features/conversation/conversation-overview-skills-panel.js.map +1 -0
  515. package/dist/components/features/conversation/conversation-overview-toggle.cjs +2 -0
  516. package/dist/components/features/conversation/conversation-overview-toggle.cjs.map +1 -0
  517. package/dist/components/features/conversation/conversation-overview-toggle.d.ts +11 -0
  518. package/dist/components/features/conversation/conversation-overview-toggle.js +99 -0
  519. package/dist/components/features/conversation/conversation-overview-toggle.js.map +1 -0
  520. package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs +2 -0
  521. package/dist/components/features/conversation/conversation-secondary-drawer.classes.cjs.map +1 -0
  522. package/dist/components/features/conversation/conversation-secondary-drawer.classes.d.ts +4 -0
  523. package/dist/components/features/conversation/conversation-secondary-drawer.classes.js +7 -0
  524. package/dist/components/features/conversation/conversation-secondary-drawer.classes.js.map +1 -0
  525. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs +1 -1
  526. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.cjs.map +1 -1
  527. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js +10 -9
  528. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.js.map +1 -1
  529. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs +1 -1
  530. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.cjs.map +1 -1
  531. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js +68 -62
  532. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.js.map +1 -1
  533. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs +1 -1
  534. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.cjs.map +1 -1
  535. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js +98 -88
  536. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.js.map +1 -1
  537. package/dist/components/features/conversation/right-panel-toggle.cjs +1 -1
  538. package/dist/components/features/conversation/right-panel-toggle.cjs.map +1 -1
  539. package/dist/components/features/conversation/right-panel-toggle.d.ts +3 -2
  540. package/dist/components/features/conversation/right-panel-toggle.js +34 -33
  541. package/dist/components/features/conversation/right-panel-toggle.js.map +1 -1
  542. package/dist/components/features/conversation-panel/compact-conversation-row.cjs +1 -1
  543. package/dist/components/features/conversation-panel/compact-conversation-row.js +6 -6
  544. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs +1 -1
  545. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.cjs.map +1 -1
  546. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.d.ts +2 -1
  547. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js +14 -7
  548. package/dist/components/features/conversation-panel/conversation-panel-list-helpers.js.map +1 -1
  549. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  550. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  551. package/dist/components/features/conversation-panel/conversation-panel.js +263 -236
  552. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  553. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
  554. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
  555. package/dist/components/features/conversation-panel/local-new-conversation-menu.js +4 -4
  556. package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
  557. package/dist/components/features/diff-viewer/accordion-panel.cjs +2 -0
  558. package/dist/components/features/diff-viewer/accordion-panel.cjs.map +1 -0
  559. package/dist/components/features/diff-viewer/accordion-panel.d.ts +13 -0
  560. package/dist/components/features/diff-viewer/accordion-panel.js +41 -0
  561. package/dist/components/features/diff-viewer/accordion-panel.js.map +1 -0
  562. package/dist/components/features/diff-viewer/commit-list.cjs +1 -1
  563. package/dist/components/features/diff-viewer/commit-list.cjs.map +1 -1
  564. package/dist/components/features/diff-viewer/commit-list.d.ts +5 -1
  565. package/dist/components/features/diff-viewer/commit-list.js +30 -16
  566. package/dist/components/features/diff-viewer/commit-list.js.map +1 -1
  567. package/dist/components/features/diff-viewer/commit-row.cjs +1 -1
  568. package/dist/components/features/diff-viewer/commit-row.cjs.map +1 -1
  569. package/dist/components/features/diff-viewer/commit-row.d.ts +1 -2
  570. package/dist/components/features/diff-viewer/commit-row.js +38 -34
  571. package/dist/components/features/diff-viewer/commit-row.js.map +1 -1
  572. package/dist/components/features/diff-viewer/diff-change-list.cjs +2 -0
  573. package/dist/components/features/diff-viewer/diff-change-list.cjs.map +1 -0
  574. package/dist/components/features/diff-viewer/diff-change-list.d.ts +18 -0
  575. package/dist/components/features/diff-viewer/diff-change-list.js +22 -0
  576. package/dist/components/features/diff-viewer/diff-change-list.js.map +1 -0
  577. package/dist/components/features/diff-viewer/editor-container.cjs +1 -1
  578. package/dist/components/features/diff-viewer/editor-container.cjs.map +1 -1
  579. package/dist/components/features/diff-viewer/editor-container.d.ts +2 -1
  580. package/dist/components/features/diff-viewer/editor-container.js +8 -7
  581. package/dist/components/features/diff-viewer/editor-container.js.map +1 -1
  582. package/dist/components/features/diff-viewer/file-diff-viewer.cjs +1 -1
  583. package/dist/components/features/diff-viewer/file-diff-viewer.cjs.map +1 -1
  584. package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +10 -1
  585. package/dist/components/features/diff-viewer/file-diff-viewer.js +138 -112
  586. package/dist/components/features/diff-viewer/file-diff-viewer.js.map +1 -1
  587. package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs +2 -0
  588. package/dist/components/features/diff-viewer/uncommitted-changes-row.cjs.map +1 -0
  589. package/dist/components/features/diff-viewer/uncommitted-changes-row.d.ts +12 -0
  590. package/dist/components/features/diff-viewer/uncommitted-changes-row.js +51 -0
  591. package/dist/components/features/diff-viewer/uncommitted-changes-row.js.map +1 -0
  592. package/dist/components/features/files-tab/file-content-viewer.cjs +1 -1
  593. package/dist/components/features/files-tab/file-content-viewer.cjs.map +1 -1
  594. package/dist/components/features/files-tab/file-content-viewer.js +0 -1
  595. package/dist/components/features/files-tab/file-content-viewer.js.map +1 -1
  596. package/dist/components/features/files-tab/file-quick-row.cjs +1 -1
  597. package/dist/components/features/files-tab/file-quick-row.cjs.map +1 -1
  598. package/dist/components/features/files-tab/file-quick-row.d.ts +9 -7
  599. package/dist/components/features/files-tab/file-quick-row.js +63 -34
  600. package/dist/components/features/files-tab/file-quick-row.js.map +1 -1
  601. package/dist/components/features/files-tab/files-tab-tree.constants.cjs +2 -0
  602. package/dist/components/features/files-tab/files-tab-tree.constants.cjs.map +1 -0
  603. package/dist/components/features/files-tab/files-tab-tree.constants.d.ts +7 -0
  604. package/dist/components/features/files-tab/files-tab-tree.constants.js +6 -0
  605. package/dist/components/features/files-tab/files-tab-tree.constants.js.map +1 -0
  606. package/dist/components/features/files-tab/segmented-toggle.cjs +1 -1
  607. package/dist/components/features/files-tab/segmented-toggle.cjs.map +1 -1
  608. package/dist/components/features/files-tab/segmented-toggle.d.ts +5 -3
  609. package/dist/components/features/files-tab/segmented-toggle.js +10 -13
  610. package/dist/components/features/files-tab/segmented-toggle.js.map +1 -1
  611. package/dist/components/features/files-tab/tree-node.cjs +1 -1
  612. package/dist/components/features/files-tab/tree-node.cjs.map +1 -1
  613. package/dist/components/features/files-tab/tree-node.js +34 -32
  614. package/dist/components/features/files-tab/tree-node.js.map +1 -1
  615. package/dist/components/features/files-tab/workspace-path.cjs +2 -0
  616. package/dist/components/features/files-tab/workspace-path.cjs.map +1 -0
  617. package/dist/components/features/files-tab/workspace-path.d.ts +6 -0
  618. package/dist/components/features/files-tab/workspace-path.js +41 -0
  619. package/dist/components/features/files-tab/workspace-path.js.map +1 -0
  620. package/dist/components/features/home/featured-automations/automation-health-indicator.cjs +2 -0
  621. package/dist/components/features/home/featured-automations/automation-health-indicator.cjs.map +1 -0
  622. package/dist/components/features/home/featured-automations/automation-health-indicator.js +22 -0
  623. package/dist/components/features/home/featured-automations/automation-health-indicator.js.map +1 -0
  624. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs +2 -0
  625. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.cjs.map +1 -0
  626. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js +45 -0
  627. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.js.map +1 -0
  628. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs +2 -0
  629. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.cjs.map +1 -0
  630. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js +108 -0
  631. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.js.map +1 -0
  632. package/dist/components/features/home/featured-automations/automation-run-health.cjs +2 -0
  633. package/dist/components/features/home/featured-automations/automation-run-health.cjs.map +1 -0
  634. package/dist/components/features/home/featured-automations/automation-run-health.js +75 -0
  635. package/dist/components/features/home/featured-automations/automation-run-health.js.map +1 -0
  636. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +2 -0
  637. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -0
  638. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +74 -0
  639. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -0
  640. package/dist/components/features/home/featured-automations/pinned-automation-card.d.ts +3 -3
  641. package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs +1 -1
  642. package/dist/components/features/home/git-repo-dropdown/use-url-search.cjs.map +1 -1
  643. package/dist/components/features/home/git-repo-dropdown/use-url-search.js +1 -1
  644. package/dist/components/features/home/git-repo-dropdown/use-url-search.js.map +1 -1
  645. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.cjs +1 -1
  646. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.js +6 -6
  647. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.cjs +1 -1
  648. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.js +6 -6
  649. package/dist/components/features/manifest/manifest-form-field.d.ts +4 -3
  650. package/dist/components/features/manifest/manifest-icons.cjs +2 -0
  651. package/dist/components/features/manifest/manifest-icons.cjs.map +1 -0
  652. package/dist/components/features/manifest/manifest-icons.d.ts +1 -0
  653. package/dist/components/features/manifest/manifest-icons.js +21 -0
  654. package/dist/components/features/manifest/manifest-icons.js.map +1 -0
  655. package/dist/components/features/manifest/manifest-repository-list.d.ts +25 -0
  656. package/dist/components/features/markdown/markdown-table-scroll.cjs +1 -1
  657. package/dist/components/features/markdown/markdown-table-scroll.cjs.map +1 -1
  658. package/dist/components/features/markdown/markdown-table-scroll.d.ts +2 -6
  659. package/dist/components/features/markdown/markdown-table-scroll.js +15 -21
  660. package/dist/components/features/markdown/markdown-table-scroll.js.map +1 -1
  661. package/dist/components/features/mcp-logo-badge.cjs +1 -1
  662. package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
  663. package/dist/components/features/mcp-logo-badge.d.ts +1 -1
  664. package/dist/components/features/mcp-logo-badge.js +1 -0
  665. package/dist/components/features/mcp-logo-badge.js.map +1 -1
  666. package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
  667. package/dist/components/features/mcp-page/custom-server-editor.js +16 -16
  668. package/dist/components/features/mcp-page/index.cjs +1 -1
  669. package/dist/components/features/mcp-page/index.js +2 -2
  670. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  671. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  672. package/dist/components/features/mcp-page/install-server-modal.js +25 -25
  673. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  674. package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
  675. package/dist/components/features/mcp-page/installed-server-card.js +5 -5
  676. package/dist/components/features/mcp-page/marketplace-card.cjs +1 -1
  677. package/dist/components/features/mcp-page/marketplace-card.js +4 -4
  678. package/dist/components/features/mcp-page/marketplace-section.cjs +1 -1
  679. package/dist/components/features/mcp-page/marketplace-section.js +3 -3
  680. package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs +2 -0
  681. package/dist/components/features/mcp-page/mcp-logo-stack-badge.cjs.map +1 -0
  682. package/dist/components/features/mcp-page/mcp-logo-stack-badge.js +60 -0
  683. package/dist/components/features/mcp-page/mcp-logo-stack-badge.js.map +1 -0
  684. package/dist/components/features/mcp-page/mcp-server-health.cjs +1 -1
  685. package/dist/components/features/mcp-page/mcp-server-health.js +18 -18
  686. package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +10 -7
  687. package/dist/components/features/onboarding/use-onboarding-completion.cjs +2 -0
  688. package/dist/components/features/onboarding/use-onboarding-completion.cjs.map +1 -0
  689. package/dist/components/features/onboarding/use-onboarding-completion.js +32 -0
  690. package/dist/components/features/onboarding/use-onboarding-completion.js.map +1 -0
  691. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs +2 -0
  692. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.cjs.map +1 -0
  693. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.d.ts +1 -0
  694. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js +22 -0
  695. package/dist/components/features/settings/app-settings/getting-started-checklist-switch.js.map +1 -0
  696. package/dist/components/features/settings/brand-button.cjs +1 -1
  697. package/dist/components/features/settings/brand-button.cjs.map +1 -1
  698. package/dist/components/features/settings/brand-button.d.ts +2 -0
  699. package/dist/components/features/settings/brand-button.js +4 -2
  700. package/dist/components/features/settings/brand-button.js.map +1 -1
  701. package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.cjs +1 -0
  702. package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.d.ts +7 -0
  703. package/dist/components/features/settings/llm-profiles/delete-provider-connection-modal.js +7 -0
  704. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.cjs +1 -1
  705. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.js +3 -0
  706. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  707. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +1 -0
  708. package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +20 -1
  709. package/dist/components/features/settings/llm-profiles/provider-connection-modal.cjs +1 -0
  710. package/dist/components/features/settings/llm-profiles/provider-connection-modal.d.ts +19 -0
  711. package/dist/components/features/settings/llm-profiles/provider-connection-modal.js +10 -0
  712. package/dist/components/features/settings/llm-profiles/provider-connection-row.cjs +1 -0
  713. package/dist/components/features/settings/llm-profiles/provider-connection-row.d.ts +10 -0
  714. package/dist/components/features/settings/llm-profiles/provider-connection-row.js +6 -0
  715. package/dist/components/features/settings/llm-profiles/provider-connections-manager.cjs +1 -0
  716. package/dist/components/features/settings/llm-profiles/provider-connections-manager.d.ts +15 -0
  717. package/dist/components/features/settings/llm-profiles/provider-connections-manager.js +8 -0
  718. package/dist/components/features/settings/sdk-settings/schema-field.cjs +1 -1
  719. package/dist/components/features/settings/sdk-settings/schema-field.js +6 -6
  720. package/dist/components/features/settings/sdk-settings/sdk-section-page.cjs +1 -1
  721. package/dist/components/features/settings/sdk-settings/sdk-section-page.js +7 -7
  722. package/dist/components/features/settings/sdk-settings/sdk-section-page.js.map +1 -1
  723. package/dist/components/features/settings/secrets-settings/secret-form.cjs +1 -1
  724. package/dist/components/features/settings/secrets-settings/secret-form.js +7 -7
  725. package/dist/components/features/settings/settings-input.cjs +1 -1
  726. package/dist/components/features/settings/settings-input.cjs.map +1 -1
  727. package/dist/components/features/settings/settings-input.d.ts +6 -0
  728. package/dist/components/features/settings/settings-input.js +14 -13
  729. package/dist/components/features/settings/settings-input.js.map +1 -1
  730. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs +2 -0
  731. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.cjs.map +1 -0
  732. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.d.ts +7 -0
  733. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js +102 -0
  734. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-icon.js.map +1 -0
  735. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs +2 -0
  736. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.cjs.map +1 -0
  737. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.d.ts +8 -0
  738. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js +66 -0
  739. package/dist/components/features/sidebar/sidebar-onboarding-checklist-item-preview.js.map +1 -0
  740. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs +2 -0
  741. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.cjs.map +1 -0
  742. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.d.ts +3 -0
  743. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js +15 -0
  744. package/dist/components/features/sidebar/sidebar-onboarding-checklist-llm-complete.js.map +1 -0
  745. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs +2 -0
  746. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.cjs.map +1 -0
  747. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.d.ts +10 -0
  748. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js +39 -0
  749. package/dist/components/features/sidebar/sidebar-onboarding-checklist-storage.js.map +1 -0
  750. package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs +2 -0
  751. package/dist/components/features/sidebar/sidebar-onboarding-checklist.cjs.map +1 -0
  752. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs +2 -0
  753. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.cjs.map +1 -0
  754. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.d.ts +26 -0
  755. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js +78 -0
  756. package/dist/components/features/sidebar/sidebar-onboarding-checklist.constants.js.map +1 -0
  757. package/dist/components/features/sidebar/sidebar-onboarding-checklist.d.ts +5 -0
  758. package/dist/components/features/sidebar/sidebar-onboarding-checklist.js +127 -0
  759. package/dist/components/features/sidebar/sidebar-onboarding-checklist.js.map +1 -0
  760. package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
  761. package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
  762. package/dist/components/features/sidebar/sidebar-rail-body.js +115 -111
  763. package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
  764. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs +2 -0
  765. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.cjs.map +1 -0
  766. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.d.ts +1 -0
  767. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js +10 -0
  768. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist-dismissed.js.map +1 -0
  769. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs +2 -0
  770. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.cjs.map +1 -0
  771. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.d.ts +15 -0
  772. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js +75 -0
  773. package/dist/components/features/sidebar/use-sidebar-onboarding-checklist.js.map +1 -0
  774. package/dist/components/features/skills/add-skill-modal.cjs +2 -0
  775. package/dist/components/features/skills/add-skill-modal.cjs.map +1 -0
  776. package/dist/components/features/skills/add-skill-modal.js +164 -0
  777. package/dist/components/features/skills/add-skill-modal.js.map +1 -0
  778. package/dist/components/features/skills/build-skill-pills.cjs +2 -0
  779. package/dist/components/features/skills/build-skill-pills.cjs.map +1 -0
  780. package/dist/components/features/skills/build-skill-pills.js +88 -0
  781. package/dist/components/features/skills/build-skill-pills.js.map +1 -0
  782. package/dist/components/features/skills/get-skill-card-description.cjs +2 -0
  783. package/dist/components/features/skills/get-skill-card-description.cjs.map +1 -0
  784. package/dist/components/features/skills/get-skill-card-description.js +34 -0
  785. package/dist/components/features/skills/get-skill-card-description.js.map +1 -0
  786. package/dist/components/features/skills/get-skill-chat-launch-message.cjs +2 -0
  787. package/dist/components/features/skills/get-skill-chat-launch-message.cjs.map +1 -0
  788. package/dist/components/features/skills/get-skill-chat-launch-message.js +9 -0
  789. package/dist/components/features/skills/get-skill-chat-launch-message.js.map +1 -0
  790. package/dist/components/features/skills/is-copyable-skill-source.cjs +2 -0
  791. package/dist/components/features/skills/is-copyable-skill-source.cjs.map +1 -0
  792. package/dist/components/features/skills/is-copyable-skill-source.js +9 -0
  793. package/dist/components/features/skills/is-copyable-skill-source.js.map +1 -0
  794. package/dist/components/features/skills/skill-card-pill-row.cjs +2 -0
  795. package/dist/components/features/skills/skill-card-pill-row.cjs.map +1 -0
  796. package/dist/components/features/skills/skill-card-pill-row.d.ts +1 -1
  797. package/dist/components/features/skills/skill-card-pill-row.js +137 -0
  798. package/dist/components/features/skills/skill-card-pill-row.js.map +1 -0
  799. package/dist/components/features/skills/skill-card.cjs +2 -0
  800. package/dist/components/features/skills/skill-card.cjs.map +1 -0
  801. package/dist/components/features/skills/skill-card.js +93 -0
  802. package/dist/components/features/skills/skill-card.js.map +1 -0
  803. package/dist/components/features/skills/skill-detail-modal.cjs +3 -0
  804. package/dist/components/features/skills/skill-detail-modal.cjs.map +1 -0
  805. package/dist/components/features/skills/skill-detail-modal.js +150 -0
  806. package/dist/components/features/skills/skill-detail-modal.js.map +1 -0
  807. package/dist/components/features/skills/skill-facet-rail.cjs +2 -0
  808. package/dist/components/features/skills/skill-facet-rail.cjs.map +1 -0
  809. package/dist/components/features/skills/skill-facet-rail.js +42 -0
  810. package/dist/components/features/skills/skill-facet-rail.js.map +1 -0
  811. package/dist/components/features/skills/skill-facet-row.cjs +2 -0
  812. package/dist/components/features/skills/skill-facet-row.cjs.map +1 -0
  813. package/dist/components/features/skills/skill-facet-row.js +44 -0
  814. package/dist/components/features/skills/skill-facet-row.js.map +1 -0
  815. package/dist/components/features/skills/skill-filter.cjs +2 -0
  816. package/dist/components/features/skills/skill-filter.cjs.map +1 -0
  817. package/dist/components/features/skills/skill-filter.js +166 -0
  818. package/dist/components/features/skills/skill-filter.js.map +1 -0
  819. package/dist/components/features/skills/skill-filters-modal.cjs +2 -0
  820. package/dist/components/features/skills/skill-filters-modal.cjs.map +1 -0
  821. package/dist/components/features/skills/skill-filters-modal.js +53 -0
  822. package/dist/components/features/skills/skill-filters-modal.js.map +1 -0
  823. package/dist/components/features/skills/skill-icon-badge.cjs +2 -0
  824. package/dist/components/features/skills/skill-icon-badge.cjs.map +1 -0
  825. package/dist/components/features/skills/skill-icon-badge.js +17 -0
  826. package/dist/components/features/skills/skill-icon-badge.js.map +1 -0
  827. package/dist/components/features/skills/skill-type-badge.cjs +2 -0
  828. package/dist/components/features/skills/skill-type-badge.cjs.map +1 -0
  829. package/dist/components/features/skills/skill-type-badge.js +21 -0
  830. package/dist/components/features/skills/skill-type-badge.js.map +1 -0
  831. package/dist/components/features/skills/skills-toolbar.cjs +2 -0
  832. package/dist/components/features/skills/skills-toolbar.cjs.map +1 -0
  833. package/dist/components/features/skills/skills-toolbar.js +63 -0
  834. package/dist/components/features/skills/skills-toolbar.js.map +1 -0
  835. package/dist/components/shared/buttons/circle-plus-check-toggle.cjs +1 -1
  836. package/dist/components/shared/buttons/circle-plus-check-toggle.cjs.map +1 -1
  837. package/dist/components/shared/buttons/circle-plus-check-toggle.js +19 -6
  838. package/dist/components/shared/buttons/circle-plus-check-toggle.js.map +1 -1
  839. package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs +1 -1
  840. package/dist/components/shared/buttons/conversation-confirmation-buttons.cjs.map +1 -1
  841. package/dist/components/shared/buttons/conversation-confirmation-buttons.js +1 -1
  842. package/dist/components/shared/buttons/conversation-confirmation-buttons.js.map +1 -1
  843. package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
  844. package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
  845. package/dist/components/shared/filters/enum-filter-dropdown.d.ts +4 -1
  846. package/dist/components/shared/filters/enum-filter-dropdown.js +14 -14
  847. package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
  848. package/dist/components/shared/modals/settings/settings-form.cjs +1 -1
  849. package/dist/components/shared/modals/settings/settings-form.js +4 -4
  850. package/dist/components/ui/resize-handle.cjs +1 -1
  851. package/dist/components/ui/resize-handle.cjs.map +1 -1
  852. package/dist/components/ui/resize-handle.d.ts +2 -1
  853. package/dist/components/ui/resize-handle.js +6 -5
  854. package/dist/components/ui/resize-handle.js.map +1 -1
  855. package/dist/config/defaults.cjs +1 -1
  856. package/dist/config/defaults.cjs.map +1 -1
  857. package/dist/config/defaults.js +2 -2
  858. package/dist/config/defaults.js.map +1 -1
  859. package/dist/constants/skills-docs.cjs +2 -0
  860. package/dist/constants/skills-docs.cjs.map +1 -0
  861. package/dist/constants/skills-docs.js +6 -0
  862. package/dist/constants/skills-docs.js.map +1 -0
  863. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  864. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  865. package/dist/contexts/conversation-websocket-context.js +184 -159
  866. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  867. package/dist/fixtures/home-automations-demo.cjs +2 -0
  868. package/dist/fixtures/home-automations-demo.cjs.map +1 -0
  869. package/dist/fixtures/home-automations-demo.d.ts +1 -3
  870. package/dist/fixtures/home-automations-demo.js +384 -0
  871. package/dist/fixtures/home-automations-demo.js.map +1 -0
  872. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  873. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  874. package/dist/hooks/chat/use-slash-command.d.ts +1 -2
  875. package/dist/hooks/chat/use-slash-command.js +1 -0
  876. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  877. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  878. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  879. package/dist/hooks/mutation/use-create-conversation.js +27 -30
  880. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  881. package/dist/hooks/mutation/use-create-provider-connection.cjs +1 -0
  882. package/dist/hooks/mutation/use-create-provider-connection.d.ts +2 -0
  883. package/dist/hooks/mutation/use-create-provider-connection.js +1 -0
  884. package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
  885. package/dist/hooks/mutation/use-delete-mcp-server.js +3 -3
  886. package/dist/hooks/mutation/use-delete-provider-connection.cjs +1 -0
  887. package/dist/hooks/mutation/use-delete-provider-connection.d.ts +1 -0
  888. package/dist/hooks/mutation/use-delete-provider-connection.js +1 -0
  889. package/dist/hooks/mutation/use-switch-acp-model.cjs +1 -1
  890. package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
  891. package/dist/hooks/mutation/use-switch-acp-model.d.ts +5 -3
  892. package/dist/hooks/mutation/use-switch-acp-model.js +9 -13
  893. package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
  894. package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
  895. package/dist/hooks/mutation/use-update-mcp-server.js +6 -6
  896. package/dist/hooks/mutation/use-update-provider-connection.cjs +1 -0
  897. package/dist/hooks/mutation/use-update-provider-connection.d.ts +7 -0
  898. package/dist/hooks/mutation/use-update-provider-connection.js +1 -0
  899. package/dist/hooks/query/query-keys.cjs +1 -1
  900. package/dist/hooks/query/query-keys.cjs.map +1 -1
  901. package/dist/hooks/query/query-keys.d.ts +3 -0
  902. package/dist/hooks/query/query-keys.js +4 -4
  903. package/dist/hooks/query/query-keys.js.map +1 -1
  904. package/dist/hooks/query/use-automation-detail.cjs +1 -0
  905. package/dist/hooks/query/use-automation-detail.js +2 -0
  906. package/dist/hooks/query/use-automation-health.cjs +2 -0
  907. package/dist/hooks/query/use-automation-health.cjs.map +1 -0
  908. package/dist/hooks/query/use-automation-health.js +22 -0
  909. package/dist/hooks/query/use-automation-health.js.map +1 -0
  910. package/dist/hooks/query/use-automations.cjs +2 -0
  911. package/dist/hooks/query/use-automations.cjs.map +1 -0
  912. package/dist/hooks/query/use-automations.js +28 -0
  913. package/dist/hooks/query/use-automations.js.map +1 -0
  914. package/dist/hooks/query/use-backends-health.cjs +1 -1
  915. package/dist/hooks/query/use-backends-health.cjs.map +1 -1
  916. package/dist/hooks/query/use-backends-health.js +1 -1
  917. package/dist/hooks/query/use-backends-health.js.map +1 -1
  918. package/dist/hooks/query/use-conversation-history.cjs +1 -1
  919. package/dist/hooks/query/use-conversation-history.cjs.map +1 -1
  920. package/dist/hooks/query/use-conversation-history.js +3 -1
  921. package/dist/hooks/query/use-conversation-history.js.map +1 -1
  922. package/dist/hooks/query/use-conversation-metrics.cjs +1 -1
  923. package/dist/hooks/query/use-conversation-metrics.js +3 -3
  924. package/dist/hooks/query/use-git-sync.d.ts +19 -0
  925. package/dist/hooks/query/use-latest-automation-runs.cjs +1 -0
  926. package/dist/hooks/query/use-latest-automation-runs.d.ts +2 -0
  927. package/dist/hooks/query/use-latest-automation-runs.js +3 -0
  928. package/dist/hooks/query/use-llm-profiles.d.ts +1 -1
  929. package/dist/hooks/query/use-paginated-conversations.cjs +1 -1
  930. package/dist/hooks/query/use-paginated-conversations.cjs.map +1 -1
  931. package/dist/hooks/query/use-paginated-conversations.js +1 -1
  932. package/dist/hooks/query/use-paginated-conversations.js.map +1 -1
  933. package/dist/hooks/query/use-provider-connections.cjs +2 -0
  934. package/dist/hooks/query/use-provider-connections.cjs.map +1 -0
  935. package/dist/hooks/query/use-provider-connections.d.ts +8 -0
  936. package/dist/hooks/query/use-provider-connections.js +19 -0
  937. package/dist/hooks/query/use-provider-connections.js.map +1 -0
  938. package/dist/hooks/query/use-repository-git-items.cjs +2 -0
  939. package/dist/hooks/query/use-repository-git-items.cjs.map +1 -0
  940. package/dist/hooks/query/use-repository-git-items.d.ts +3 -0
  941. package/dist/hooks/query/use-repository-git-items.js +33 -0
  942. package/dist/hooks/query/use-repository-git-items.js.map +1 -0
  943. package/dist/hooks/query/use-task-polling.cjs +1 -1
  944. package/dist/hooks/query/use-task-polling.cjs.map +1 -1
  945. package/dist/hooks/query/use-task-polling.js +12 -10
  946. package/dist/hooks/query/use-task-polling.js.map +1 -1
  947. package/dist/hooks/query/use-workspace-files.cjs +1 -1
  948. package/dist/hooks/query/use-workspace-files.cjs.map +1 -1
  949. package/dist/hooks/query/use-workspace-files.d.ts +14 -4
  950. package/dist/hooks/query/use-workspace-files.js +46 -33
  951. package/dist/hooks/query/use-workspace-files.js.map +1 -1
  952. package/dist/hooks/use-bash-command-runner.cjs +1 -1
  953. package/dist/hooks/use-bash-command-runner.cjs.map +1 -1
  954. package/dist/hooks/use-bash-command-runner.js +45 -42
  955. package/dist/hooks/use-bash-command-runner.js.map +1 -1
  956. package/dist/hooks/use-conversation-overview-column-space.cjs +2 -0
  957. package/dist/hooks/use-conversation-overview-column-space.cjs.map +1 -0
  958. package/dist/hooks/use-conversation-overview-column-space.d.ts +2 -0
  959. package/dist/hooks/use-conversation-overview-column-space.js +25 -0
  960. package/dist/hooks/use-conversation-overview-column-space.js.map +1 -0
  961. package/dist/hooks/use-conversation-overview-git-diff-stats.cjs +2 -0
  962. package/dist/hooks/use-conversation-overview-git-diff-stats.cjs.map +1 -0
  963. package/dist/hooks/use-conversation-overview-git-diff-stats.d.ts +7 -0
  964. package/dist/hooks/use-conversation-overview-git-diff-stats.js +37 -0
  965. package/dist/hooks/use-conversation-overview-git-diff-stats.js.map +1 -0
  966. package/dist/hooks/use-conversation-overview-panel-peek.cjs +2 -0
  967. package/dist/hooks/use-conversation-overview-panel-peek.cjs.map +1 -0
  968. package/dist/hooks/use-conversation-overview-panel-peek.d.ts +9 -0
  969. package/dist/hooks/use-conversation-overview-panel-peek.js +32 -0
  970. package/dist/hooks/use-conversation-overview-panel-peek.js.map +1 -0
  971. package/dist/hooks/use-conversation-overview-stats.cjs +2 -0
  972. package/dist/hooks/use-conversation-overview-stats.cjs.map +1 -0
  973. package/dist/hooks/use-conversation-overview-stats.d.ts +4 -0
  974. package/dist/hooks/use-conversation-overview-stats.js +15 -0
  975. package/dist/hooks/use-conversation-overview-stats.js.map +1 -0
  976. package/dist/hooks/use-conversation-primary-repository.cjs +2 -0
  977. package/dist/hooks/use-conversation-primary-repository.cjs.map +1 -0
  978. package/dist/hooks/use-conversation-primary-repository.d.ts +11 -0
  979. package/dist/hooks/use-conversation-primary-repository.js +17 -0
  980. package/dist/hooks/use-conversation-primary-repository.js.map +1 -0
  981. package/dist/hooks/use-drag-scroll.cjs +2 -0
  982. package/dist/hooks/use-drag-scroll.cjs.map +1 -0
  983. package/dist/hooks/use-drag-scroll.d.ts +12 -0
  984. package/dist/hooks/use-drag-scroll.js +41 -0
  985. package/dist/hooks/use-drag-scroll.js.map +1 -0
  986. package/dist/hooks/use-has-permission.cjs +2 -0
  987. package/dist/hooks/use-has-permission.cjs.map +1 -0
  988. package/dist/hooks/use-has-permission.js +8 -0
  989. package/dist/hooks/use-has-permission.js.map +1 -0
  990. package/dist/hooks/use-home-automation-actions.cjs +2 -0
  991. package/dist/hooks/use-home-automation-actions.cjs.map +1 -0
  992. package/dist/hooks/use-home-automation-actions.js +15 -0
  993. package/dist/hooks/use-home-automation-actions.js.map +1 -0
  994. package/dist/hooks/use-launch-skill-in-chat.cjs +2 -0
  995. package/dist/hooks/use-launch-skill-in-chat.cjs.map +1 -0
  996. package/dist/hooks/use-launch-skill-in-chat.js +16 -0
  997. package/dist/hooks/use-launch-skill-in-chat.js.map +1 -0
  998. package/dist/hooks/use-mcp-server-health.cjs +1 -1
  999. package/dist/hooks/use-mcp-server-health.js +3 -3
  1000. package/dist/hooks/use-resizable-drawer-width.cjs +2 -0
  1001. package/dist/hooks/use-resizable-drawer-width.cjs.map +1 -0
  1002. package/dist/hooks/use-resizable-drawer-width.d.ts +22 -0
  1003. package/dist/hooks/use-resizable-drawer-width.js +46 -0
  1004. package/dist/hooks/use-resizable-drawer-width.js.map +1 -0
  1005. package/dist/hooks/use-responder-url-secret.cjs +2 -0
  1006. package/dist/hooks/use-responder-url-secret.cjs.map +1 -0
  1007. package/dist/hooks/use-responder-url-secret.d.ts +5 -0
  1008. package/dist/hooks/use-responder-url-secret.js +51 -0
  1009. package/dist/hooks/use-responder-url-secret.js.map +1 -0
  1010. package/dist/hooks/use-select-conversation-tab.cjs +1 -1
  1011. package/dist/hooks/use-select-conversation-tab.cjs.map +1 -1
  1012. package/dist/hooks/use-select-conversation-tab.d.ts +2 -0
  1013. package/dist/hooks/use-select-conversation-tab.js +15 -7
  1014. package/dist/hooks/use-select-conversation-tab.js.map +1 -1
  1015. package/dist/hooks/use-tracking.cjs +1 -1
  1016. package/dist/hooks/use-tracking.cjs.map +1 -1
  1017. package/dist/hooks/use-tracking.d.ts +23 -0
  1018. package/dist/hooks/use-tracking.js +16 -0
  1019. package/dist/hooks/use-tracking.js.map +1 -1
  1020. package/dist/hooks/use-websocket.cjs +1 -1
  1021. package/dist/hooks/use-websocket.cjs.map +1 -1
  1022. package/dist/hooks/use-websocket.d.ts +1 -2
  1023. package/dist/hooks/use-websocket.js +58 -51
  1024. package/dist/hooks/use-websocket.js.map +1 -1
  1025. package/dist/i18n/declaration.cjs +1 -1
  1026. package/dist/i18n/declaration.cjs.map +1 -1
  1027. package/dist/i18n/declaration.d.ts +182 -43
  1028. package/dist/i18n/declaration.js +1 -1
  1029. package/dist/i18n/declaration.js.map +1 -1
  1030. package/dist/i18n/translation.cjs +3 -3
  1031. package/dist/i18n/translation.cjs.map +1 -1
  1032. package/dist/i18n/translation.js +3092 -729
  1033. package/dist/i18n/translation.js.map +1 -1
  1034. package/dist/icons/check-circle.cjs +2 -0
  1035. package/dist/icons/check-circle.cjs.map +1 -0
  1036. package/dist/icons/check-circle.js +20 -0
  1037. package/dist/icons/check-circle.js.map +1 -0
  1038. package/dist/icons/chevron-down.cjs +2 -0
  1039. package/dist/icons/chevron-down.cjs.map +1 -0
  1040. package/dist/icons/chevron-down.js +20 -0
  1041. package/dist/icons/chevron-down.js.map +1 -0
  1042. package/dist/icons/clock.cjs +2 -0
  1043. package/dist/icons/clock.cjs.map +1 -0
  1044. package/dist/icons/clock.js +20 -0
  1045. package/dist/icons/clock.js.map +1 -0
  1046. package/dist/icons/exclamation-circle.cjs +2 -0
  1047. package/dist/icons/exclamation-circle.cjs.map +1 -0
  1048. package/dist/icons/exclamation-circle.js +20 -0
  1049. package/dist/icons/exclamation-circle.js.map +1 -0
  1050. package/dist/icons/kebab-vertical.cjs +2 -0
  1051. package/dist/icons/kebab-vertical.cjs.map +1 -0
  1052. package/dist/icons/kebab-vertical.js +14 -0
  1053. package/dist/icons/kebab-vertical.js.map +1 -0
  1054. package/dist/icons/key.cjs +2 -0
  1055. package/dist/icons/key.cjs.map +1 -0
  1056. package/dist/icons/key.js +21 -0
  1057. package/dist/icons/key.js.map +1 -0
  1058. package/dist/icons/message-square-share.cjs +2 -0
  1059. package/dist/icons/message-square-share.cjs.map +1 -0
  1060. package/dist/icons/message-square-share.js +22 -0
  1061. package/dist/icons/message-square-share.js.map +1 -0
  1062. package/dist/icons/play.cjs +2 -0
  1063. package/dist/icons/play.cjs.map +1 -0
  1064. package/dist/icons/play.js +19 -0
  1065. package/dist/icons/play.js.map +1 -0
  1066. package/dist/icons/power.cjs +2 -0
  1067. package/dist/icons/power.cjs.map +1 -0
  1068. package/dist/icons/power.js +20 -0
  1069. package/dist/icons/power.js.map +1 -0
  1070. package/dist/icons/sparkle.cjs +2 -0
  1071. package/dist/icons/sparkle.cjs.map +1 -0
  1072. package/dist/icons/sparkle.js +20 -0
  1073. package/dist/icons/sparkle.js.map +1 -0
  1074. package/dist/icons/trash.cjs +2 -0
  1075. package/dist/icons/trash.cjs.map +1 -0
  1076. package/dist/icons/trash.js +20 -0
  1077. package/dist/icons/trash.js.map +1 -0
  1078. package/dist/icons/x-circle.cjs +2 -0
  1079. package/dist/icons/x-circle.cjs.map +1 -0
  1080. package/dist/icons/x-circle.js +20 -0
  1081. package/dist/icons/x-circle.js.map +1 -0
  1082. package/dist/locales/ar/openhands.json +183 -44
  1083. package/dist/locales/ca/openhands.json +183 -44
  1084. package/dist/locales/de/openhands.json +183 -44
  1085. package/dist/locales/en/openhands.json +183 -44
  1086. package/dist/locales/es/openhands.json +183 -44
  1087. package/dist/locales/fr/openhands.json +183 -44
  1088. package/dist/locales/it/openhands.json +183 -44
  1089. package/dist/locales/ja/openhands.json +183 -44
  1090. package/dist/locales/ko-KR/openhands.json +183 -44
  1091. package/dist/locales/no/openhands.json +183 -44
  1092. package/dist/locales/pt/openhands.json +183 -44
  1093. package/dist/locales/tr/openhands.json +183 -44
  1094. package/dist/locales/uk/openhands.json +183 -44
  1095. package/dist/locales/zh-CN/openhands.json +183 -44
  1096. package/dist/locales/zh-TW/openhands.json +183 -44
  1097. package/dist/manifests/automation-insights.cjs +2 -0
  1098. package/dist/manifests/automation-insights.cjs.map +1 -0
  1099. package/dist/manifests/automation-insights.d.ts +2 -0
  1100. package/dist/manifests/automation-insights.js +9 -0
  1101. package/dist/manifests/automation-insights.js.map +1 -0
  1102. package/dist/manifests/automation-interface.cjs +1 -1
  1103. package/dist/manifests/automation-interface.cjs.map +1 -1
  1104. package/dist/manifests/automation-interface.d.ts +47 -31
  1105. package/dist/manifests/automation-interface.js +48 -54
  1106. package/dist/manifests/automation-interface.js.map +1 -1
  1107. package/dist/manifests/automation-setup.cjs +1 -1
  1108. package/dist/manifests/automation-setup.cjs.map +1 -1
  1109. package/dist/manifests/automation-setup.d.ts +37 -3
  1110. package/dist/manifests/automation-setup.js +16 -2
  1111. package/dist/manifests/automation-setup.js.map +1 -1
  1112. package/dist/manifests/interface-validation.cjs +1 -1
  1113. package/dist/manifests/interface-validation.cjs.map +1 -1
  1114. package/dist/manifests/interface-validation.js +56 -52
  1115. package/dist/manifests/interface-validation.js.map +1 -1
  1116. package/dist/manifests/manifest-actions.d.ts +5 -0
  1117. package/dist/manifests/manifest-bundle.d.ts +30 -0
  1118. package/dist/manifests/manifest-local-validation.d.ts +10 -1
  1119. package/dist/manifests/manifest-sources.cjs +1 -1
  1120. package/dist/manifests/manifest-sources.cjs.map +1 -1
  1121. package/dist/manifests/manifest-sources.js +3 -3
  1122. package/dist/manifests/manifest-sources.js.map +1 -1
  1123. package/dist/manifests/manifest-template.d.ts +14 -0
  1124. package/dist/manifests/manifest-validation.cjs +1 -1
  1125. package/dist/manifests/manifest-validation.cjs.map +1 -1
  1126. package/dist/manifests/manifest-validation.js +78 -45
  1127. package/dist/manifests/manifest-validation.js.map +1 -1
  1128. package/dist/manifests/types.cjs +1 -1
  1129. package/dist/manifests/types.cjs.map +1 -1
  1130. package/dist/manifests/types.d.ts +64 -3
  1131. package/dist/manifests/types.js +7 -6
  1132. package/dist/manifests/types.js.map +1 -1
  1133. package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.cjs +1 -1
  1134. package/dist/node_modules/@heroui/popover/dist/chunk-NW7HJLND.js +10 -10
  1135. package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.cjs +1 -1
  1136. package/dist/node_modules/@heroui/ripple/dist/chunk-UIQI3AYJ.js +8 -8
  1137. package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.cjs +1 -1
  1138. package/dist/node_modules/@heroui/tooltip/dist/chunk-AUA5GDXN.js +9 -9
  1139. package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs +4843 -0
  1140. package/dist/node_modules/@openhands/extensions/automations/bundle-index.cjs.map +1 -0
  1141. package/dist/node_modules/@openhands/extensions/automations/bundle-index.js +11 -0
  1142. package/dist/node_modules/@openhands/extensions/automations/bundle-index.js.map +1 -0
  1143. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs +13 -0
  1144. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.cjs.map +1 -0
  1145. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js +87 -0
  1146. package/dist/node_modules/@openhands/extensions/automations/catalog/github-agents-md-maintainer/manifest.js.map +1 -0
  1147. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs +12 -0
  1148. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.cjs.map +1 -0
  1149. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js +98 -0
  1150. package/dist/node_modules/@openhands/extensions/automations/catalog/github-issue-to-pr/manifest.js.map +1 -0
  1151. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +9 -7
  1152. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -1
  1153. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +32 -13
  1154. package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -1
  1155. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +2 -2
  1156. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -1
  1157. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +29 -34
  1158. package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -1
  1159. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs +3 -3
  1160. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs.map +1 -1
  1161. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js +2 -2
  1162. package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js.map +1 -1
  1163. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs +14 -0
  1164. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.cjs.map +1 -0
  1165. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js +72 -0
  1166. package/dist/node_modules/@openhands/extensions/automations/catalog/news-digest/manifest.js.map +1 -0
  1167. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
  1168. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
  1169. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +16 -10
  1170. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
  1171. package/dist/node_modules/@openhands/extensions/automations/index.cjs +1 -1
  1172. package/dist/node_modules/@openhands/extensions/automations/index.cjs.map +1 -1
  1173. package/dist/node_modules/@openhands/extensions/automations/index.js +18 -13
  1174. package/dist/node_modules/@openhands/extensions/automations/index.js.map +1 -1
  1175. package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
  1176. package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
  1177. package/dist/node_modules/@openhands/extensions/automations/interface.js +6 -2
  1178. package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
  1179. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs +1 -1
  1180. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs.map +1 -1
  1181. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js +36 -3
  1182. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
  1183. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs +2 -0
  1184. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.cjs.map +1 -0
  1185. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js +75 -0
  1186. package/dist/node_modules/@openhands/extensions/integrations/catalog/sonarqube.js.map +1 -0
  1187. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
  1188. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
  1189. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +68 -66
  1190. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
  1191. package/dist/node_modules/@openhands/extensions/skills/index.cjs +1002 -47
  1192. package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
  1193. package/dist/node_modules/@openhands/extensions/skills/index.js +59 -17
  1194. package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
  1195. package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs +2 -0
  1196. package/dist/node_modules/lucide-react/dist/esm/icons/activity.cjs.map +1 -0
  1197. package/dist/node_modules/lucide-react/dist/esm/icons/activity.js +9 -0
  1198. package/dist/node_modules/lucide-react/dist/esm/icons/activity.js.map +1 -0
  1199. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs +2 -0
  1200. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.cjs.map +1 -0
  1201. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js +12 -0
  1202. package/dist/node_modules/lucide-react/dist/esm/icons/book-open.js.map +1 -0
  1203. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs +2 -0
  1204. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs.map +1 -0
  1205. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js +27 -0
  1206. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js.map +1 -0
  1207. package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs +2 -0
  1208. package/dist/node_modules/lucide-react/dist/esm/icons/download.cjs.map +1 -0
  1209. package/dist/node_modules/lucide-react/dist/esm/icons/download.js +19 -0
  1210. package/dist/node_modules/lucide-react/dist/esm/icons/download.js.map +1 -0
  1211. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs +2 -0
  1212. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.cjs.map +1 -0
  1213. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +27 -0
  1214. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +1 -0
  1215. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs +2 -0
  1216. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.cjs.map +1 -0
  1217. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js +27 -0
  1218. package/dist/node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js.map +1 -0
  1219. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs +2 -0
  1220. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.cjs.map +1 -0
  1221. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js +12 -0
  1222. package/dist/node_modules/lucide-react/dist/esm/icons/laptop.js.map +1 -0
  1223. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs +2 -0
  1224. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.cjs.map +1 -0
  1225. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js +39 -0
  1226. package/dist/node_modules/lucide-react/dist/esm/icons/layout-dashboard.js.map +1 -0
  1227. package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs +2 -0
  1228. package/dist/node_modules/lucide-react/dist/esm/icons/library.cjs.map +1 -0
  1229. package/dist/node_modules/lucide-react/dist/esm/icons/library.js +23 -0
  1230. package/dist/node_modules/lucide-react/dist/esm/icons/library.js.map +1 -0
  1231. package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs +2 -0
  1232. package/dist/node_modules/lucide-react/dist/esm/icons/package.cjs.map +1 -0
  1233. package/dist/node_modules/lucide-react/dist/esm/icons/package.js +23 -0
  1234. package/dist/node_modules/lucide-react/dist/esm/icons/package.js.map +1 -0
  1235. package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs +2 -0
  1236. package/dist/node_modules/lucide-react/dist/esm/icons/palette.cjs.map +1 -0
  1237. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js +39 -0
  1238. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js.map +1 -0
  1239. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs +2 -0
  1240. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.cjs.map +1 -0
  1241. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js +12 -0
  1242. package/dist/node_modules/lucide-react/dist/esm/icons/pen-line.js.map +1 -0
  1243. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs +2 -0
  1244. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.cjs.map +1 -0
  1245. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js +12 -0
  1246. package/dist/node_modules/lucide-react/dist/esm/icons/shield-check.js.map +1 -0
  1247. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs +2 -0
  1248. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.cjs.map +1 -0
  1249. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js +25 -0
  1250. package/dist/node_modules/lucide-react/dist/esm/icons/sparkles.js.map +1 -0
  1251. package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs +2 -0
  1252. package/dist/node_modules/lucide-react/dist/esm/icons/timer.cjs.map +1 -0
  1253. package/dist/node_modules/lucide-react/dist/esm/icons/timer.js +27 -0
  1254. package/dist/node_modules/lucide-react/dist/esm/icons/timer.js.map +1 -0
  1255. package/dist/package.cjs +1 -1
  1256. package/dist/package.cjs.map +1 -1
  1257. package/dist/package.js +3 -3
  1258. package/dist/package.js.map +1 -1
  1259. package/dist/routes/app-settings.cjs +1 -1
  1260. package/dist/routes/app-settings.cjs.map +1 -1
  1261. package/dist/routes/app-settings.js +87 -85
  1262. package/dist/routes/app-settings.js.map +1 -1
  1263. package/dist/routes/commits-tab.cjs +1 -1
  1264. package/dist/routes/commits-tab.cjs.map +1 -1
  1265. package/dist/routes/commits-tab.js +27 -21
  1266. package/dist/routes/commits-tab.js.map +1 -1
  1267. package/dist/routes/conversation.cjs +1 -1
  1268. package/dist/routes/conversation.cjs.map +1 -1
  1269. package/dist/routes/conversation.js +56 -55
  1270. package/dist/routes/conversation.js.map +1 -1
  1271. package/dist/routes/files-tab.cjs +1 -1
  1272. package/dist/routes/files-tab.cjs.map +1 -1
  1273. package/dist/routes/files-tab.d.ts +4 -0
  1274. package/dist/routes/files-tab.js +121 -151
  1275. package/dist/routes/files-tab.js.map +1 -1
  1276. package/dist/routes/llm-settings.cjs +1 -1
  1277. package/dist/routes/llm-settings.cjs.map +1 -1
  1278. package/dist/routes/llm-settings.d.ts +9 -1
  1279. package/dist/routes/llm-settings.js +137 -107
  1280. package/dist/routes/llm-settings.js.map +1 -1
  1281. package/dist/routes/mcp.cjs +1 -1
  1282. package/dist/routes/mcp.cjs.map +1 -1
  1283. package/dist/routes/mcp.js +20 -20
  1284. package/dist/routes/secrets-settings.cjs +1 -1
  1285. package/dist/routes/secrets-settings.js +15 -15
  1286. package/dist/services/settings.cjs +1 -1
  1287. package/dist/services/settings.cjs.map +1 -1
  1288. package/dist/services/settings.js +2 -2
  1289. package/dist/services/settings.js.map +1 -1
  1290. package/dist/services/telemetry.cjs +1 -1
  1291. package/dist/services/telemetry.cjs.map +1 -1
  1292. package/dist/services/telemetry.js +47 -51
  1293. package/dist/services/telemetry.js.map +1 -1
  1294. package/dist/stores/conversation-store.cjs +1 -1
  1295. package/dist/stores/conversation-store.cjs.map +1 -1
  1296. package/dist/stores/conversation-store.d.ts +8 -1
  1297. package/dist/stores/conversation-store.js +9 -0
  1298. package/dist/stores/conversation-store.js.map +1 -1
  1299. package/dist/stores/error-message-store.cjs +1 -1
  1300. package/dist/stores/error-message-store.cjs.map +1 -1
  1301. package/dist/stores/error-message-store.d.ts +3 -1
  1302. package/dist/stores/error-message-store.js +5 -3
  1303. package/dist/stores/error-message-store.js.map +1 -1
  1304. package/dist/stores/files-tab-store.cjs +1 -1
  1305. package/dist/stores/files-tab-store.cjs.map +1 -1
  1306. package/dist/stores/files-tab-store.d.ts +13 -0
  1307. package/dist/stores/files-tab-store.js +49 -5
  1308. package/dist/stores/files-tab-store.js.map +1 -1
  1309. package/dist/stores/use-event-store.cjs +1 -1
  1310. package/dist/stores/use-event-store.cjs.map +1 -1
  1311. package/dist/stores/use-event-store.js +11 -11
  1312. package/dist/stores/use-event-store.js.map +1 -1
  1313. package/dist/types/agent-server/core/events/message-event.d.ts +2 -2
  1314. package/dist/types/automation.cjs +2 -0
  1315. package/dist/types/automation.cjs.map +1 -0
  1316. package/dist/types/automation.js +8 -0
  1317. package/dist/types/automation.js.map +1 -0
  1318. package/dist/types/git-sync.d.ts +51 -0
  1319. package/dist/utils/automation-catalog.cjs +1 -1
  1320. package/dist/utils/automation-catalog.cjs.map +1 -1
  1321. package/dist/utils/automation-catalog.d.ts +12 -0
  1322. package/dist/utils/automation-catalog.js +20 -1
  1323. package/dist/utils/automation-catalog.js.map +1 -1
  1324. package/dist/utils/automation-schedule.cjs +2 -0
  1325. package/dist/utils/automation-schedule.cjs.map +1 -0
  1326. package/dist/utils/automation-schedule.js +8 -0
  1327. package/dist/utils/automation-schedule.js.map +1 -0
  1328. package/dist/utils/automation-stack-section.cjs +2 -0
  1329. package/dist/utils/automation-stack-section.cjs.map +1 -0
  1330. package/dist/utils/automation-stack-section.d.ts +2 -0
  1331. package/dist/utils/automation-stack-section.js +6 -0
  1332. package/dist/utils/automation-stack-section.js.map +1 -0
  1333. package/dist/utils/constants.cjs +1 -1
  1334. package/dist/utils/constants.cjs.map +1 -1
  1335. package/dist/utils/constants.js +4 -0
  1336. package/dist/utils/constants.js.map +1 -1
  1337. package/dist/utils/conversation-local-storage.cjs +1 -1
  1338. package/dist/utils/conversation-local-storage.cjs.map +1 -1
  1339. package/dist/utils/conversation-local-storage.d.ts +17 -4
  1340. package/dist/utils/conversation-local-storage.js +111 -63
  1341. package/dist/utils/conversation-local-storage.js.map +1 -1
  1342. package/dist/utils/conversation-metrics.cjs +1 -1
  1343. package/dist/utils/conversation-metrics.cjs.map +1 -1
  1344. package/dist/utils/conversation-metrics.d.ts +3 -2
  1345. package/dist/utils/conversation-metrics.js +16 -14
  1346. package/dist/utils/conversation-metrics.js.map +1 -1
  1347. package/dist/utils/conversation-overview-project-scope.cjs +2 -0
  1348. package/dist/utils/conversation-overview-project-scope.cjs.map +1 -0
  1349. package/dist/utils/conversation-overview-project-scope.d.ts +16 -0
  1350. package/dist/utils/conversation-overview-project-scope.js +22 -0
  1351. package/dist/utils/conversation-overview-project-scope.js.map +1 -0
  1352. package/dist/utils/error-handler.cjs +1 -1
  1353. package/dist/utils/error-handler.cjs.map +1 -1
  1354. package/dist/utils/error-handler.d.ts +3 -2
  1355. package/dist/utils/error-handler.js +18 -5
  1356. package/dist/utils/error-handler.js.map +1 -1
  1357. package/dist/utils/extension-module-card-classes.cjs +1 -1
  1358. package/dist/utils/extension-module-card-classes.cjs.map +1 -1
  1359. package/dist/utils/extension-module-card-classes.d.ts +1 -1
  1360. package/dist/utils/extension-module-card-classes.js +2 -2
  1361. package/dist/utils/extension-module-card-classes.js.map +1 -1
  1362. package/dist/utils/format-model-name.cjs +1 -1
  1363. package/dist/utils/format-model-name.cjs.map +1 -1
  1364. package/dist/utils/format-model-name.d.ts +1 -0
  1365. package/dist/utils/format-model-name.js +1 -0
  1366. package/dist/utils/format-model-name.js.map +1 -1
  1367. package/dist/utils/format-relative-time.cjs +2 -0
  1368. package/dist/utils/format-relative-time.cjs.map +1 -0
  1369. package/dist/utils/format-relative-time.js +17 -0
  1370. package/dist/utils/format-relative-time.js.map +1 -0
  1371. package/dist/utils/git-diff-stats.cjs +5 -0
  1372. package/dist/utils/git-diff-stats.cjs.map +1 -0
  1373. package/dist/utils/git-diff-stats.d.ts +9 -0
  1374. package/dist/utils/git-diff-stats.js +53 -0
  1375. package/dist/utils/git-diff-stats.js.map +1 -0
  1376. package/dist/utils/handle-event-for-ui.cjs +1 -1
  1377. package/dist/utils/handle-event-for-ui.cjs.map +1 -1
  1378. package/dist/utils/handle-event-for-ui.js +13 -11
  1379. package/dist/utils/handle-event-for-ui.js.map +1 -1
  1380. package/dist/utils/mcp-credential-validation.cjs +1 -1
  1381. package/dist/utils/mcp-credential-validation.js +3 -3
  1382. package/dist/utils/mcp-marketplace-utils.cjs +1 -1
  1383. package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
  1384. package/dist/utils/mcp-marketplace-utils.js +22 -9
  1385. package/dist/utils/mcp-marketplace-utils.js.map +1 -1
  1386. package/dist/utils/parse-git-remote-url.cjs +1 -1
  1387. package/dist/utils/parse-git-remote-url.cjs.map +1 -1
  1388. package/dist/utils/parse-git-remote-url.js +6 -7
  1389. package/dist/utils/parse-git-remote-url.js.map +1 -1
  1390. package/dist/utils/recommended-automation-rail.cjs +2 -0
  1391. package/dist/utils/recommended-automation-rail.cjs.map +1 -0
  1392. package/dist/utils/recommended-automation-rail.d.ts +22 -0
  1393. package/dist/utils/recommended-automation-rail.js +44 -0
  1394. package/dist/utils/recommended-automation-rail.js.map +1 -0
  1395. package/dist/utils/responder-deployment.cjs +2 -0
  1396. package/dist/utils/responder-deployment.cjs.map +1 -0
  1397. package/dist/utils/responder-deployment.js +42 -0
  1398. package/dist/utils/responder-deployment.js.map +1 -0
  1399. package/dist/utils/scroll-fade-state.cjs +2 -0
  1400. package/dist/utils/scroll-fade-state.cjs.map +1 -0
  1401. package/dist/utils/scroll-fade-state.d.ts +6 -0
  1402. package/dist/utils/scroll-fade-state.js +13 -0
  1403. package/dist/utils/scroll-fade-state.js.map +1 -0
  1404. package/dist/utils/skill-category.cjs +2 -0
  1405. package/dist/utils/skill-category.cjs.map +1 -0
  1406. package/dist/utils/skill-category.js +51 -0
  1407. package/dist/utils/skill-category.js.map +1 -0
  1408. package/dist/utils/skill-scope.cjs +1 -1
  1409. package/dist/utils/skill-scope.cjs.map +1 -1
  1410. package/dist/utils/skill-scope.js +1 -1
  1411. package/dist/utils/skill-scope.js.map +1 -1
  1412. package/dist/utils/streaming-delta-batcher.cjs +2 -0
  1413. package/dist/utils/streaming-delta-batcher.cjs.map +1 -0
  1414. package/dist/utils/streaming-delta-batcher.d.ts +21 -0
  1415. package/dist/utils/streaming-delta-batcher.js +31 -0
  1416. package/dist/utils/streaming-delta-batcher.js.map +1 -0
  1417. package/dist/utils/tar-gzip.d.ts +26 -0
  1418. package/dist/utils/transcript-export/load-complete-events.cjs +1 -1
  1419. package/dist/utils/transcript-export/load-complete-events.cjs.map +1 -1
  1420. package/dist/utils/transcript-export/load-complete-events.js +24 -16
  1421. package/dist/utils/transcript-export/load-complete-events.js.map +1 -1
  1422. package/dist/utils/utils.cjs +1 -1
  1423. package/dist/utils/utils.cjs.map +1 -1
  1424. package/dist/utils/utils.d.ts +1 -41
  1425. package/dist/utils/utils.js +27 -6
  1426. package/dist/utils/utils.js.map +1 -1
  1427. package/dist/utils/websocket-handshake.cjs +2 -0
  1428. package/dist/utils/websocket-handshake.cjs.map +1 -0
  1429. package/dist/utils/websocket-handshake.d.ts +11 -0
  1430. package/dist/utils/websocket-handshake.js +12 -0
  1431. package/dist/utils/websocket-handshake.js.map +1 -0
  1432. package/package.json +3 -3
  1433. package/scripts/check-translation-completeness.cjs +7 -0
  1434. package/scripts/dev-static.mjs +49 -43
  1435. package/scripts/dev-with-automation.mjs +111 -14
  1436. package/scripts/seed-automation-ux-data.mjs +810 -0
  1437. package/build/assets/acp-providers-D1PORKc0.js +0 -1
  1438. package/build/assets/active-backend-context-IqOjobNK.js +0 -2
  1439. package/build/assets/agent-context-settings-DMrObcIS.js +0 -1
  1440. package/build/assets/agent-profiles-settings-DororXN5.js +0 -1
  1441. package/build/assets/agent-server-conversation-service.api-DWBe0rbX.js +0 -86
  1442. package/build/assets/agent-settings-BJVk92PU.js +0 -2
  1443. package/build/assets/agent-settings-COfJsQ1d.js +0 -1
  1444. package/build/assets/alert-banner-CzZsm7ms.js +0 -1
  1445. package/build/assets/api-key-entry-screen-D8Fade_-.js +0 -1
  1446. package/build/assets/app-settings-CpyGB3AT.js +0 -1
  1447. package/build/assets/automation-detail-B-jQ39Mm.js +0 -3
  1448. package/build/assets/automation-export-B1dywoqk.js +0 -2
  1449. package/build/assets/automation-setup-route-C-bWUZBi.js +0 -1
  1450. package/build/assets/automation-templates-DgpCGOJV.js +0 -1
  1451. package/build/assets/automations-list-DnMxlxsL.js +0 -1
  1452. package/build/assets/back-nav-button-HHEneWMw.js +0 -1
  1453. package/build/assets/backend-form-modal-DiVrD4Cm.js +0 -1
  1454. package/build/assets/backend-synced-settings-badge-7MIjpr8M.js +0 -1
  1455. package/build/assets/badge-CpYmcVZV.js +0 -1
  1456. package/build/assets/base-modal-Fnh6Uln9.js +0 -1
  1457. package/build/assets/bot-BQZx8e2i.js +0 -1
  1458. package/build/assets/brand-button-swT1RyO0.js +0 -1
  1459. package/build/assets/browser-B9AbV6kG.js +0 -7
  1460. package/build/assets/browser-tab-zAY12m_i.js +0 -1
  1461. package/build/assets/chat-send-button-DsJtivmL.js +0 -1
  1462. package/build/assets/check-WAFXrrs_.js +0 -1
  1463. package/build/assets/chevron-down-CifNWzme.js +0 -1
  1464. package/build/assets/circle-check-CtnimJa8.js +0 -1
  1465. package/build/assets/circle-plus-check-toggle-Cuzx55bo.js +0 -1
  1466. package/build/assets/cloud-funnel-analytics-86CwNdSh.js +0 -1
  1467. package/build/assets/combobox-caret-D0fRotFi.js +0 -1
  1468. package/build/assets/command-menu-BXy03FBl.js +0 -1
  1469. package/build/assets/condenser-settings-BmZa0ui_.js +0 -1
  1470. package/build/assets/confirmation-modal-BgoN6lbN.js +0 -1
  1471. package/build/assets/context-menu-list-item-Bq02tc-P.js +0 -1
  1472. package/build/assets/conversation-BPo8SvLN.js +0 -1
  1473. package/build/assets/conversation-CPCVsCUY.js +0 -90
  1474. package/build/assets/conversation-panel-BPo8SvLN.js +0 -1
  1475. package/build/assets/conversation-state-store-C5YpjMNy.js +0 -1
  1476. package/build/assets/conversation-store-Blc5xysY.js +0 -6
  1477. package/build/assets/conversation-tab-empty-state-CMqo_0Bd.js +0 -1
  1478. package/build/assets/copy-to-clipboard-button-Cg1pF0xn.js +0 -1
  1479. package/build/assets/device-verify-BfQLgNyq.js +0 -1
  1480. package/build/assets/dropdown-classes-BIqQr5mx.js +0 -1
  1481. package/build/assets/entry.client-CxFjRYqH.js +0 -2
  1482. package/build/assets/enum-filter-dropdown-C_yV4_bo.js +0 -1
  1483. package/build/assets/environment-switch-overlay-Bi4qbh2g.js +0 -1
  1484. package/build/assets/extension-module-card-classes-Bo43vY5V.js +0 -1
  1485. package/build/assets/extensions-hub-BqUINAhp.js +0 -1
  1486. package/build/assets/extensions-navigation-lraj88Wk.js +0 -1
  1487. package/build/assets/external-link-CgtpA_a1.js +0 -1
  1488. package/build/assets/file-text-DEK4LSVw.js +0 -1
  1489. package/build/assets/files-tab-DV0L-lFE.js +0 -1
  1490. package/build/assets/form-control-classes-7yFSQJq_.js +0 -1
  1491. package/build/assets/format-model-name-BN_rx1Y3.js +0 -1
  1492. package/build/assets/format-relative-time-DSErAuVr.js +0 -1
  1493. package/build/assets/git-provider-icon-BvlLAche.js +0 -1
  1494. package/build/assets/git-repo-dropdown-ByMzpNko.js +0 -1
  1495. package/build/assets/git-repo-dropdown-C6R7hgM8.js +0 -1
  1496. package/build/assets/highlighted-source-view-C_sfncLZ.js +0 -1
  1497. package/build/assets/home-BOrlwLqG.js +0 -1
  1498. package/build/assets/home-BvMNC6E-.js +0 -1
  1499. package/build/assets/home-store-CxqsY9Fi.js +0 -1
  1500. package/build/assets/index-home-BvMNC6E-.js +0 -1
  1501. package/build/assets/info-BRVcJAUg.js +0 -1
  1502. package/build/assets/install-server-modal-Bl4G1zF4.js +0 -1
  1503. package/build/assets/kebab-menu-item-content-BGoGFEAg.js +0 -1
  1504. package/build/assets/launch-CkqiSCqi.js +0 -1
  1505. package/build/assets/list-todo-DNWlzfaM.js +0 -1
  1506. package/build/assets/llm-not-configured-banner-DLw_tu-G.js +0 -27
  1507. package/build/assets/llm-settings-B-pkVCrt.js +0 -1
  1508. package/build/assets/llm-settings-DSC0-IQ7.js +0 -1
  1509. package/build/assets/llm-subscription-service-BAdOl5Xx.js +0 -1
  1510. package/build/assets/loader-circle-B47W9XqT.js +0 -1
  1511. package/build/assets/loading-spinner-xhnrGP4Y.js +0 -1
  1512. package/build/assets/manage-backends-modal-DhGk5mJt.js +0 -1
  1513. package/build/assets/manifest-653b89aa.js +0 -1
  1514. package/build/assets/manifest-subpage-layout-CKWvL2ig.js +0 -1
  1515. package/build/assets/map-provider-Mx8mZuE-.js +0 -1
  1516. package/build/assets/markdown-renderer-DUmk7pFc.js +0 -8
  1517. package/build/assets/mcp-DCkvl6K0.js +0 -9
  1518. package/build/assets/mcp-marketplace-utils-DEbMXlQr.js +0 -1
  1519. package/build/assets/messages-DSXvyc21.js +0 -40
  1520. package/build/assets/modal-body-gIe21fDv.js +0 -1
  1521. package/build/assets/modal-classes-D66dlgZ7.js +0 -1
  1522. package/build/assets/modal-close-button-B6iOGYpI.js +0 -1
  1523. package/build/assets/mouse-pointer-click-BYX1Pw5W.js +0 -1
  1524. package/build/assets/npm-DLckoeJc.js +0 -1
  1525. package/build/assets/onboarding-D7WDG66N.js +0 -1
  1526. package/build/assets/onboarding-modal-C_xVrFNv.js +0 -1
  1527. package/build/assets/organization-service.api-D-s9z18a.js +0 -1
  1528. package/build/assets/pencil-BGOCPRyu.js +0 -1
  1529. package/build/assets/planner-tab-AKaXIIfg.js +0 -1
  1530. package/build/assets/plugins-management-service-wtmY4QQw.js +0 -1
  1531. package/build/assets/plus-zNEL8rcX.js +0 -1
  1532. package/build/assets/profiles-service.api-DCMYxHMi.js +0 -1
  1533. package/build/assets/providers-BjrtjX4L.js +0 -1
  1534. package/build/assets/proxy-9Z_WZggZ.js +0 -1
  1535. package/build/assets/puzzle-BWLmN8z4.js +0 -1
  1536. package/build/assets/recommended-automations-launcher-CFlzhu1o.js +0 -1
  1537. package/build/assets/refresh-cw-CXtFWpwv.js +0 -1
  1538. package/build/assets/root-CanxKlNV.css +0 -1
  1539. package/build/assets/root-DkfG_UWR.js +0 -2
  1540. package/build/assets/root-layout-D75LHYhh.js +0 -2
  1541. package/build/assets/schema-field-OnM5Uob_.js +0 -1
  1542. package/build/assets/sdk-section-page-m5WQm2sy.js +0 -1
  1543. package/build/assets/search-CycosyjN.js +0 -1
  1544. package/build/assets/secrets-service-B26R61C1.js +0 -1
  1545. package/build/assets/secrets-settings-CbLYCKOX.js +0 -1
  1546. package/build/assets/segmented-toggle-DCspm2U5.js +0 -1
  1547. package/build/assets/settings-BJQI_iBM.js +0 -1
  1548. package/build/assets/settings-CWFxymAf.js +0 -1
  1549. package/build/assets/settings-dropdown-input-BI8V_Nov.js +0 -1
  1550. package/build/assets/settings-index-BiTqJoH7.js +0 -1
  1551. package/build/assets/settings-input-Cz62hWVW.js +0 -1
  1552. package/build/assets/settings-list-classes-z_3FW5H3.js +0 -1
  1553. package/build/assets/settings-modal-BIrIVn97.js +0 -1
  1554. package/build/assets/settings-service.api--rJmnuLa.js +0 -1
  1555. package/build/assets/settings-switch-BRsSI8Vs.js +0 -1
  1556. package/build/assets/settings-utils-Ba7vel6T.js +0 -1
  1557. package/build/assets/shared-conversation-CQK_PqHx.js +0 -1
  1558. package/build/assets/shield-check-T3JsDJiM.js +0 -1
  1559. package/build/assets/sidebar-layout-Bhi3hVcu.js +0 -1
  1560. package/build/assets/sidebar-mobile-menu-toggle-YWJNRN4p.js +0 -1
  1561. package/build/assets/sidebar-nav-link-BSUlY5Ml.js +0 -1
  1562. package/build/assets/sidebar-store-Cl1cUv_F.js +0 -1
  1563. package/build/assets/skill-card-pill-row-BXz8L8Rn.js +0 -1
  1564. package/build/assets/skill-icon-badge-QgfKv31M.js +0 -1
  1565. package/build/assets/skill-scope-Dc3JPW-8.js +0 -1
  1566. package/build/assets/skills-plugins-CpTV27n3.js +0 -1
  1567. package/build/assets/skills-settings-CSW__IW4.js +0 -2
  1568. package/build/assets/sparkles-TJ0mdECe.js +0 -1
  1569. package/build/assets/styled-tooltip-BUMSbgrF.js +0 -1
  1570. package/build/assets/task-list-tab-mAHMOkUz.js +0 -1
  1571. package/build/assets/terminal-BzxBaHx2.js +0 -3
  1572. package/build/assets/toggle-switch-O5v1FgxW.js +0 -1
  1573. package/build/assets/trash-2-C0xNVp9c.js +0 -1
  1574. package/build/assets/typography-NOKSk9_R.js +0 -1
  1575. package/build/assets/usage-tab-tEmVN0KD.js +0 -1
  1576. package/build/assets/use-acp-credential-form-BPNi0Zbm.js +0 -1
  1577. package/build/assets/use-activate-agent-profile-D9YRQPTF.js +0 -1
  1578. package/build/assets/use-agent-profiles-Cb2zUW3l.js +0 -1
  1579. package/build/assets/use-can-manage-org-profiles-Dxzq2AEd.js +0 -1
  1580. package/build/assets/use-cloud-current-user-id-Co2eJk2A.js +0 -1
  1581. package/build/assets/use-config-DKAMiI5R.js +0 -1
  1582. package/build/assets/use-create-conversation-CoHTiCbI.js +0 -1
  1583. package/build/assets/use-create-secret-2zBlCDsF.js +0 -1
  1584. package/build/assets/use-is-authed-C52-ivnB.js +0 -1
  1585. package/build/assets/use-is-creating-conversation-DdaAE6jV.js +0 -1
  1586. package/build/assets/use-launch-skill-in-chat-COnDpxCQ.js +0 -1
  1587. package/build/assets/use-llm-profiles-C_BHue65.js +0 -1
  1588. package/build/assets/use-manifest-capabilities-DPrQsaPP.js +0 -1
  1589. package/build/assets/use-onboarding-completion-CCE8OQgV.js +0 -1
  1590. package/build/assets/use-plugins-marketplace-CEiak69h.js +0 -1
  1591. package/build/assets/use-save-agent-profile-DK9idD6a.js +0 -1
  1592. package/build/assets/use-save-settings-DNmnbG6f.js +0 -1
  1593. package/build/assets/use-settings-nav-items-BlFL7YhM.js +0 -16
  1594. package/build/assets/use-settings-wCwPaSIv.js +0 -1
  1595. package/build/assets/use-tracking-CVwPmhlX.js +0 -3
  1596. package/build/assets/use-user-conversation-DVtfg0B_.js +0 -1
  1597. package/build/assets/useInfiniteQuery-p1xq35r2.js +0 -1
  1598. package/build/assets/useMutation-BFDQmgk9.js +0 -1
  1599. package/build/assets/useQueries-DF1NAAeC.js +0 -1
  1600. package/build/assets/useQuery-DRv--6bK.js +0 -1
  1601. package/build/assets/utils-zxEjKE70.js +0 -1
  1602. package/build/assets/vendor~browser-B-fae1JU.js +0 -47
  1603. package/build/assets/vendor~entry.client-CgNUwtQL.js +0 -1
  1604. package/build/assets/vendor~entry.client-zSIea5EO.js +0 -9
  1605. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-B8i84bh4.js +0 -186
  1606. package/build/assets/vendor~files-tab-D9wR9yM2.js +0 -11
  1607. package/build/assets/vendor~index-home~home~conversation-panel~conversation-Ipoe6hvY.js +0 -13
  1608. package/build/assets/vendor~root-layout-C-IgVx6e.js +0 -1
  1609. package/build/assets/vendor~root-layout~conversation-panel~conversation-Dhd_I4H4.js +0 -1
  1610. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-Cc0f9kPP.js +0 -1
  1611. package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-d7svw-BB.js +0 -1
  1612. package/build/assets/vendor~root-layout~index-home~home~mcp~automations-list~automation-templates~automation-set~bxsimjx0-D7IDevqN.js +0 -1
  1613. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-D5DWZVc7.js +0 -1
  1614. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-4WsUP-tz.js +0 -48
  1615. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~9pstowjp-BOVIFA_g.js +0 -73
  1616. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js +0 -7465
  1617. package/build/assets/verification-settings-B8UMQ7MG.js +0 -1
  1618. package/build/assets/wrench-DIka3hCq.js +0 -1
  1619. package/build/assets/x-BWKA2Ver.js +0 -1
  1620. package/build/assets/zap-DHddTPc0.js +0 -1
  1621. package/dist/api/cloud/suggestions-service.api.d.ts +0 -8
  1622. package/dist/api/suggestions-service/suggestions-service.api.d.ts +0 -11
  1623. package/dist/components/conversation-events/chat/event-message-components/observation-pair-event-message.d.ts +0 -7
  1624. package/dist/components/conversation-events/index.d.ts +0 -1
  1625. package/dist/components/features/automations/metadata-chip.d.ts +0 -6
  1626. package/dist/components/features/chat/task-tracking/status-badge.d.ts +0 -5
  1627. package/dist/components/features/chat/task-tracking/status-icon.d.ts +0 -5
  1628. package/dist/components/features/chat/task-tracking/task-list-section.d.ts +0 -10
  1629. package/dist/components/features/controls/tools.d.ts +0 -2
  1630. package/dist/components/features/conversation-panel/new-conversation-button.d.ts +0 -23
  1631. package/dist/components/features/diff-viewer/empty-changes-message.cjs +0 -2
  1632. package/dist/components/features/diff-viewer/empty-changes-message.cjs.map +0 -1
  1633. package/dist/components/features/diff-viewer/empty-changes-message.js +0 -17
  1634. package/dist/components/features/diff-viewer/empty-changes-message.js.map +0 -1
  1635. package/dist/components/features/home/home-header/guide-message.d.ts +0 -1
  1636. package/dist/components/features/home/home-header/home-header.d.ts +0 -1
  1637. package/dist/components/features/home/new-conversation/create-conversation-button.d.ts +0 -1
  1638. package/dist/components/features/home/new-conversation/new-conversation.d.ts +0 -1
  1639. package/dist/components/features/home/new-conversation.d.ts +0 -1
  1640. package/dist/components/features/home/tasks/task-card.d.ts +0 -6
  1641. package/dist/components/features/home/tasks/task-group.d.ts +0 -7
  1642. package/dist/components/features/home/tasks/task-issue-number.d.ts +0 -6
  1643. package/dist/components/features/home/tasks/task-item-title.d.ts +0 -1
  1644. package/dist/components/features/home/tasks/task-suggestions-skeleton.d.ts +0 -1
  1645. package/dist/components/features/home/tasks/task-suggestions.d.ts +0 -6
  1646. package/dist/components/features/settings/agent-server-onboarding.d.ts +0 -10
  1647. package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +0 -6
  1648. package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +0 -8
  1649. package/dist/components/features/tips/random-tip.cjs +0 -2
  1650. package/dist/components/features/tips/random-tip.cjs.map +0 -1
  1651. package/dist/components/features/tips/random-tip.js +0 -41
  1652. package/dist/components/features/tips/random-tip.js.map +0 -1
  1653. package/dist/hooks/query/use-has-git-commits.cjs +0 -2
  1654. package/dist/hooks/query/use-has-git-commits.cjs.map +0 -1
  1655. package/dist/hooks/query/use-has-git-commits.d.ts +0 -25
  1656. package/dist/hooks/query/use-has-git-commits.js +0 -31
  1657. package/dist/hooks/query/use-has-git-commits.js.map +0 -1
  1658. package/dist/hooks/query/use-suggested-tasks.d.ts +0 -1
  1659. package/dist/hooks/use-has-attached-source.cjs +0 -2
  1660. package/dist/hooks/use-has-attached-source.cjs.map +0 -1
  1661. package/dist/hooks/use-has-attached-source.d.ts +0 -18
  1662. package/dist/hooks/use-has-attached-source.js +0 -14
  1663. package/dist/hooks/use-has-attached-source.js.map +0 -1
  1664. package/dist/hooks/use-should-show-user-features.d.ts +0 -1
  1665. package/dist/icons/chveron-up.cjs +0 -2
  1666. package/dist/icons/chveron-up.cjs.map +0 -1
  1667. package/dist/icons/chveron-up.js +0 -21
  1668. package/dist/icons/chveron-up.js.map +0 -1
  1669. package/dist/routes/changes-tab.cjs +0 -2
  1670. package/dist/routes/changes-tab.cjs.map +0 -1
  1671. package/dist/routes/changes-tab.d.ts +0 -3
  1672. package/dist/routes/changes-tab.js +0 -64
  1673. package/dist/routes/changes-tab.js.map +0 -1
  1674. package/dist/ui/card-title.d.ts +0 -16
  1675. package/dist/ui/card.d.ts +0 -14
  1676. package/dist/utils/file-priority.cjs +0 -2
  1677. package/dist/utils/file-priority.cjs.map +0 -1
  1678. package/dist/utils/file-priority.d.ts +0 -27
  1679. package/dist/utils/file-priority.js +0 -61
  1680. package/dist/utils/file-priority.js.map +0 -1
  1681. package/dist/utils/group-suggested-tasks.d.ts +0 -7
  1682. package/dist/utils/table-row-classes.d.ts +0 -9
  1683. package/dist/utils/tips.cjs +0 -2
  1684. package/dist/utils/tips.cjs.map +0 -1
  1685. package/dist/utils/tips.js +0 -45
  1686. package/dist/utils/tips.js.map +0 -1
  1687. /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dh9v73sa-rfV8mQ9m.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew3u153i-rfV8mQ9m.js} +0 -0
  1688. /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ox0jfsa0-cHFhpUBq.js} +0 -0
@@ -1,55 +1,55 @@
1
- import { beginMcpHealthCheck as e, resolveMcpHealthCheck as t, setMcpServerHealth as n } from "./mcp-health-store.js";
1
+ import { getCredentialValidationForServer as e } from "../../utils/mcp-credential-validation.js";
2
+ import { redactMcpSecrets as t } from "../../utils/redact-mcp-secrets.js";
3
+ import n from "../mcp-service/mcp-service.api.js";
2
4
  import { getMcpServerHealthKey as r } from "../../utils/mcp-server-health-key.js";
3
- import { getCredentialValidationForServer as i } from "../../utils/mcp-credential-validation.js";
4
- import { redactMcpSecrets as a } from "../../utils/redact-mcp-secrets.js";
5
- import o from "../mcp-service/mcp-service.api.js";
5
+ import { beginMcpHealthCheck as i, resolveMcpHealthCheck as a, setMcpServerHealth as o } from "./mcp-health-store.js";
6
6
  //#region src/api/mcp-health/probe-mcp-server-health.ts
7
7
  var s = /\b(401|403)\b|unauthorized|forbidden|invalid[ _-]?(token|credentials?|api[ _-]?key)/i;
8
- function c(e, t) {
8
+ function c(e, n) {
9
9
  return {
10
10
  status: "failed",
11
11
  kind: "unknown",
12
- error: a(t instanceof Error ? t.message : String(t), e),
12
+ error: t(n instanceof Error ? n.message : String(n), e),
13
13
  checkedAt: Date.now()
14
14
  };
15
15
  }
16
- function l(e, t) {
17
- let n = Date.now();
18
- if (!t.ok) return {
16
+ function l(t, n) {
17
+ let r = Date.now();
18
+ if (!n.ok) return {
19
19
  status: "failed",
20
- kind: (t.error_kind === "connection" || t.error_kind === "unknown") && s.test(t.error) ? "credentials" : t.error_kind,
21
- error: t.error,
22
- checkedAt: n
20
+ kind: (n.error_kind === "connection" || n.error_kind === "unknown") && s.test(n.error) ? "credentials" : n.error_kind,
21
+ error: n.error,
22
+ checkedAt: r
23
23
  };
24
- let r = i(e);
24
+ let i = e(t);
25
25
  return {
26
26
  status: "healthy",
27
- verification: r && t.tools.includes(r.toolCall.name) && t.tool_result && !t.tool_result.is_error ? "verified" : "connectivity-only",
28
- toolCount: t.tools.length,
29
- checkedAt: n
27
+ verification: i && n.tools.includes(i.toolCall.name) && n.tool_result && !n.tool_result.is_error ? "verified" : "connectivity-only",
28
+ toolCount: n.tools.length,
29
+ checkedAt: r
30
30
  };
31
31
  }
32
- async function u(n) {
33
- let i = r(n), a = e(i), s;
32
+ async function u(e) {
33
+ let t = r(e), o = i(t), s;
34
34
  try {
35
- s = l(n, await o.testServer(n));
36
- } catch (e) {
37
- s = c(n, e);
35
+ s = l(e, await n.testServer(e));
36
+ } catch (t) {
37
+ s = c(e, t);
38
38
  }
39
- t(i, a, s);
39
+ a(t, o, s);
40
40
  }
41
- async function d(n) {
42
- let i = r(n), a = e(i);
41
+ async function d(e) {
42
+ let t = r(e), o = i(t);
43
43
  try {
44
- let e = await o.authorizeOAuth(n);
45
- return t(i, a, l(n, e)), e;
46
- } catch (e) {
47
- return t(i, a, c(n, e)), null;
44
+ let r = await n.authorizeOAuth(e);
45
+ return a(t, o, l(e, r)), r;
46
+ } catch (n) {
47
+ return a(t, o, c(e, n)), null;
48
48
  }
49
49
  }
50
- function f(e, t, i) {
51
- let a = r(e);
52
- i.some((e) => r(e) === a) || n(a, l(e, t));
50
+ function f(e, t, n) {
51
+ let i = r(e);
52
+ n.some((e) => r(e) === i) || o(i, l(e, t));
53
53
  }
54
54
  //#endregion
55
55
  export { u as probeMcpServerHealth, d as reauthorizeMcpServerHealth, f as seedMcpServerHealth };
@@ -100,29 +100,10 @@ export interface InputMetadata {
100
100
  name: string;
101
101
  description: string;
102
102
  }
103
- export interface Microagent {
104
- name: string;
105
- type: "repo" | "knowledge" | "agentskills";
106
- content: string;
107
- triggers: string[];
108
- }
109
- export interface GetMicroagentsResponse {
110
- microagents: Microagent[];
111
- }
112
- export interface GetMicroagentPromptResponse {
113
- status: string;
114
- prompt: string;
115
- }
116
103
  export interface IOption<T> {
117
104
  label: string;
118
105
  value: T;
119
106
  }
120
- export interface MicroagentContentResponse {
121
- content: string;
122
- path: string;
123
- git_provider: Provider;
124
- triggers: string[];
125
- }
126
107
  export type GetFilesResponse = string[];
127
108
  export interface GetFileResponse {
128
109
  code: string;
@@ -1,2 +1,2 @@
1
- require("../../_virtual/_rolldown/runtime.cjs");const e=require("../../node_modules/@openhands/typescript-client/dist/client/profiles-client.cjs");require("../../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("../backend-registry/active-store.cjs"),n=require("../agent-server-client-options.cjs"),r=require("../cloud/profiles-service.api.cjs");function i(){return t.getActiveBackend().backend.kind===`cloud`}var a=class{static async listProfiles(){return i()?r.fetchCloudProfiles():new e.ProfilesClient(n.getAgentServerClientOptions()).listProfiles()}static async getProfile(t,a){if(i())return r.fetchCloudProfile(t);let o=a?{exposeSecrets:a}:{};return new e.ProfilesClient(n.getAgentServerClientOptions()).getProfile(t,o)}static async saveProfile(t,a){return i()?r.saveCloudProfile(t,a):new e.ProfilesClient(n.getAgentServerClientOptions()).saveProfile(t,a)}static async deleteProfile(t){return i()?r.deleteCloudProfile(t):new e.ProfilesClient(n.getAgentServerClientOptions()).deleteProfile(t)}static async renameProfile(t,a){return i()?r.renameCloudProfile(t,a):new e.ProfilesClient(n.getAgentServerClientOptions()).renameProfile(t,a)}static async activateProfile(t){return i()?r.activateCloudProfile(t):new e.ProfilesClient(n.getAgentServerClientOptions()).activateProfile(t)}};exports.default=a;
1
+ require("../../_virtual/_rolldown/runtime.cjs");const e=require("../../node_modules/@openhands/typescript-client/dist/client/profiles-client.cjs");require("../../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("../backend-registry/active-store.cjs"),n=require("../agent-server-client-options.cjs"),r=require("../cloud/profiles-service.api.cjs");function i(){return t.getActiveBackend().backend.kind===`cloud`}function a(e){if(!e||typeof e!=`object`)return!1;let t=`name`in e?e.name:void 0;if(t===`AbortError`||t===`TimeoutError`)return!0;let n=`cause`in e?e.cause:void 0;return!!n&&typeof n==`object`&&`name`in n&&(n.name===`AbortError`||n.name===`TimeoutError`)}var o=class{static async listProfiles(){return i()?r.fetchCloudProfiles():new e.ProfilesClient(n.getAgentServerClientOptions()).listProfiles()}static async getProfile(t,a){if(i())return r.fetchCloudProfile(t);let o=a?{exposeSecrets:a}:{};return new e.ProfilesClient(n.getAgentServerClientOptions()).getProfile(t,o)}static async saveProfile(t,a){return i()?r.saveCloudProfile(t,a):new e.ProfilesClient(n.getAgentServerClientOptions()).saveProfile(t,a)}static async deleteProfile(t){return i()?r.deleteCloudProfile(t):new e.ProfilesClient(n.getAgentServerClientOptions()).deleteProfile(t)}static async renameProfile(t,a){return i()?r.renameCloudProfile(t,a):new e.ProfilesClient(n.getAgentServerClientOptions()).renameProfile(t,a)}static async activateProfile(t){return i()?r.activateCloudProfile(t):new e.ProfilesClient(n.getAgentServerClientOptions()).activateProfile(t)}static async validateProfile(t,r){if(i())return null;let o=new e.ProfilesClient({...n.getAgentServerClientOptions(),timeout:3e4});try{return await o.validateProfile(t,r)}catch(e){let t=e&&typeof e==`object`&&`status`in e?e.status:void 0;if(t===404||t===429||typeof t==`number`&&t>=500||a(e))return null;throw e}finally{o.close()}}};exports.default=o;
2
2
  //# sourceMappingURL=profiles-service.api.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles-service.api.cjs","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo,\n ProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n// Re-export SDK types for consumers\nexport type {\n ProfileInfo,\n ProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n};\n\nfunction isCloudBackend(): boolean {\n return getActiveBackend().backend.kind === \"cloud\";\n}\n\nclass ProfilesService {\n static async listProfiles(): Promise<ProfileListResponse> {\n if (isCloudBackend()) return fetchCloudProfiles();\n return new ProfilesClient(getAgentServerClientOptions()).listProfiles();\n }\n\n static async getProfile(\n name: string,\n exposeSecrets?: ExposeSecretsMode,\n ): Promise<ProfileDetailResponse> {\n // Cloud never exposes profile secrets (api_key is always nulled with an\n // api_key_set flag), so `exposeSecrets` is local-only.\n if (isCloudBackend()) return fetchCloudProfile(name);\n const options: GetProfileOptions = exposeSecrets ? { exposeSecrets } : {};\n return new ProfilesClient(getAgentServerClientOptions()).getProfile(\n name,\n options,\n );\n }\n\n static async saveProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return saveCloudProfile(name, request);\n return new ProfilesClient(getAgentServerClientOptions()).saveProfile(\n name,\n request,\n );\n }\n\n static async deleteProfile(name: string): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return deleteCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).deleteProfile(\n name,\n );\n }\n\n static async renameProfile(\n name: string,\n newName: string,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return renameCloudProfile(name, newName);\n return new ProfilesClient(getAgentServerClientOptions()).renameProfile(\n name,\n newName,\n );\n }\n\n static async activateProfile(name: string): Promise<ActivateProfileResponse> {\n if (isCloudBackend()) return activateCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).activateProfile(\n name,\n );\n }\n}\n\nexport default ProfilesService;\n"],"mappings":"sXAqDA,SAAS,GAA0B,CACjC,OAAO,EAAA,iBAAiB,EAAE,QAAQ,OAAS,OAC7C,CAEA,IAAM,EAAN,KAAsB,CACpB,aAAa,cAA6C,CAExD,OADI,EAAe,EAAU,EAAA,mBAAmB,EACzC,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CACxE,CAEA,aAAa,WACX,EACA,EACgC,CAGhC,GAAI,EAAe,EAAG,OAAO,EAAA,kBAAkB,CAAI,EACnD,IAAM,EAA6B,EAAgB,CAAE,eAAc,EAAI,CAAC,EACxE,OAAO,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,WACvD,EACA,CACF,CACF,CAEA,aAAa,YACX,EACA,EACkC,CAElC,OADI,EAAe,EAAU,EAAA,iBAAiB,EAAM,CAAO,EACpD,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,YACvD,EACA,CACF,CACF,CAEA,aAAa,cAAc,EAAgD,CAEzE,OADI,EAAe,EAAU,EAAA,mBAAmB,CAAI,EAC7C,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,cACvD,CACF,CACF,CAEA,aAAa,cACX,EACA,EACkC,CAElC,OADI,EAAe,EAAU,EAAA,mBAAmB,EAAM,CAAO,EACtD,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,cACvD,EACA,CACF,CACF,CAEA,aAAa,gBAAgB,EAAgD,CAE3E,OADI,EAAe,EAAU,EAAA,qBAAqB,CAAI,EAC/C,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,gBACvD,CACF,CACF,CACF"}
1
+ {"version":3,"file":"profiles-service.api.cjs","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo as ClientProfileInfo,\n ProfileListResponse as ClientProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n/**\n * Profile summaries carry an optional `provider_connection_id` (the shared\n * provider connection a profile links to), but `@openhands/typescript-client`\n * predates that field. Widen the client types here so consumers can read it; it\n * stays optional, so a client response without the field is still assignable.\n */\nexport interface ProfileInfo extends ClientProfileInfo {\n provider_connection_id?: string | null;\n /** True when provider_connection_id is set but the referenced connection no longer exists. */\n provider_connection_broken?: boolean;\n}\n\nexport interface ProfileListResponse extends Omit<\n ClientProfileListResponse,\n \"profiles\"\n> {\n profiles: ProfileInfo[];\n}\n\n// Re-export SDK types for consumers\nexport type {\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n};\n\nfunction isCloudBackend(): boolean {\n return getActiveBackend().backend.kind === \"cloud\";\n}\n\nfunction isAbortLike(error: unknown): boolean {\n if (!error || typeof error !== \"object\") return false;\n const name = \"name\" in error ? error.name : undefined;\n if (name === \"AbortError\" || name === \"TimeoutError\") return true;\n const cause = \"cause\" in error ? error.cause : undefined;\n return (\n !!cause &&\n typeof cause === \"object\" &&\n \"name\" in cause &&\n (cause.name === \"AbortError\" || cause.name === \"TimeoutError\")\n );\n}\n\nclass ProfilesService {\n static async listProfiles(): Promise<ProfileListResponse> {\n if (isCloudBackend()) return fetchCloudProfiles();\n return new ProfilesClient(getAgentServerClientOptions()).listProfiles();\n }\n\n static async getProfile(\n name: string,\n exposeSecrets?: ExposeSecretsMode,\n ): Promise<ProfileDetailResponse> {\n // Cloud never exposes profile secrets (api_key is always nulled with an\n // api_key_set flag), so `exposeSecrets` is local-only.\n if (isCloudBackend()) return fetchCloudProfile(name);\n const options: GetProfileOptions = exposeSecrets ? { exposeSecrets } : {};\n return new ProfilesClient(getAgentServerClientOptions()).getProfile(\n name,\n options,\n );\n }\n\n static async saveProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return saveCloudProfile(name, request);\n return new ProfilesClient(getAgentServerClientOptions()).saveProfile(\n name,\n request,\n );\n }\n\n static async deleteProfile(name: string): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return deleteCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).deleteProfile(\n name,\n );\n }\n\n static async renameProfile(\n name: string,\n newName: string,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return renameCloudProfile(name, newName);\n return new ProfilesClient(getAgentServerClientOptions()).renameProfile(\n name,\n newName,\n );\n }\n\n static async activateProfile(name: string): Promise<ActivateProfileResponse> {\n if (isCloudBackend()) return activateCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).activateProfile(\n name,\n );\n }\n\n /**\n * Pre-flight check: fire a minimal LLM completion to catch misconfigurations\n * (invalid model names, missing provider prefixes, bad base URLs, invalid\n * API keys) before a profile is saved.\n *\n * Returns `{ valid: true }` when the LLM responds, or\n * `{ valid: false, error: { type, message } }` on a blocking error.\n * Transient errors (rate limits, timeouts) are non-blocking.\n *\n * Cloud backends do not implement this endpoint; `null` signals\n * \"no verdict\" so callers fall through to the normal save path.\n */\n static async validateProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ValidateProfileResponse | null> {\n if (isCloudBackend()) return null;\n const client = new ProfilesClient({\n ...getAgentServerClientOptions(),\n timeout: 30000,\n });\n try {\n return await client.validateProfile(name, request);\n } catch (error) {\n // Older agent-server versions don't have the endpoint → 404\n // Treat as \"no verdict\" rather than blocking the save.\n const status =\n error && typeof error === \"object\" && \"status\" in error\n ? (error as { status?: unknown }).status\n : undefined;\n if (\n status === 404 ||\n status === 429 ||\n (typeof status === \"number\" && status >= 500) ||\n isAbortLike(error)\n ) {\n return null;\n }\n throw error;\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProfilesService;\n"],"mappings":"sXAwEA,SAAS,GAA0B,CACjC,OAAO,EAAA,iBAAiB,EAAE,QAAQ,OAAS,OAC7C,CAEA,SAAS,EAAY,EAAyB,CAC5C,GAAI,CAAC,GAAS,OAAO,GAAU,SAAU,MAAO,GAChD,IAAM,EAAO,SAAU,EAAQ,EAAM,KAAO,IAAA,GAC5C,GAAI,IAAS,cAAgB,IAAS,eAAgB,MAAO,GAC7D,IAAM,EAAQ,UAAW,EAAQ,EAAM,MAAQ,IAAA,GAC/C,MACE,CAAC,CAAC,GACF,OAAO,GAAU,UACjB,SAAU,IACT,EAAM,OAAS,cAAgB,EAAM,OAAS,eAEnD,CAEA,IAAM,EAAN,KAAsB,CACpB,aAAa,cAA6C,CAExD,OADI,EAAe,EAAU,EAAA,mBAAmB,EACzC,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CACxE,CAEA,aAAa,WACX,EACA,EACgC,CAGhC,GAAI,EAAe,EAAG,OAAO,EAAA,kBAAkB,CAAI,EACnD,IAAM,EAA6B,EAAgB,CAAE,eAAc,EAAI,CAAC,EACxE,OAAO,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,WACvD,EACA,CACF,CACF,CAEA,aAAa,YACX,EACA,EACkC,CAElC,OADI,EAAe,EAAU,EAAA,iBAAiB,EAAM,CAAO,EACpD,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,YACvD,EACA,CACF,CACF,CAEA,aAAa,cAAc,EAAgD,CAEzE,OADI,EAAe,EAAU,EAAA,mBAAmB,CAAI,EAC7C,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,cACvD,CACF,CACF,CAEA,aAAa,cACX,EACA,EACkC,CAElC,OADI,EAAe,EAAU,EAAA,mBAAmB,EAAM,CAAO,EACtD,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,cACvD,EACA,CACF,CACF,CAEA,aAAa,gBAAgB,EAAgD,CAE3E,OADI,EAAe,EAAU,EAAA,qBAAqB,CAAI,EAC/C,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,gBACvD,CACF,CACF,CAcA,aAAa,gBACX,EACA,EACyC,CACzC,GAAI,EAAe,EAAG,OAAO,KAC7B,IAAM,EAAS,IAAI,EAAA,eAAe,CAChC,GAAG,EAAA,4BAA4B,EAC/B,QAAS,GACX,CAAC,EACD,GAAI,CACF,OAAO,MAAM,EAAO,gBAAgB,EAAM,CAAO,CACnD,OAAS,EAAO,CAGd,IAAM,EACJ,GAAS,OAAO,GAAU,UAAY,WAAY,EAC7C,EAA+B,OAChC,IAAA,GACN,GACE,IAAW,KACX,IAAW,KACV,OAAO,GAAW,UAAY,GAAU,KACzC,EAAY,CAAK,EAEjB,OAAO,KAET,MAAM,CACR,QAAU,CACR,EAAO,MAAM,CACf,CACF,CACF"}
@@ -1,5 +1,19 @@
1
- import type { ProfileInfo, ProfileListResponse, ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode } from "@openhands/typescript-client";
2
- export type { ProfileInfo, ProfileListResponse, ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode, };
1
+ import type { ProfileInfo as ClientProfileInfo, ProfileListResponse as ClientProfileListResponse, ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode, ValidateProfileResponse } from "@openhands/typescript-client";
2
+ /**
3
+ * Profile summaries carry an optional `provider_connection_id` (the shared
4
+ * provider connection a profile links to), but `@openhands/typescript-client`
5
+ * predates that field. Widen the client types here so consumers can read it; it
6
+ * stays optional, so a client response without the field is still assignable.
7
+ */
8
+ export interface ProfileInfo extends ClientProfileInfo {
9
+ provider_connection_id?: string | null;
10
+ /** True when provider_connection_id is set but the referenced connection no longer exists. */
11
+ provider_connection_broken?: boolean;
12
+ }
13
+ export interface ProfileListResponse extends Omit<ClientProfileListResponse, "profiles"> {
14
+ profiles: ProfileInfo[];
15
+ }
16
+ export type { ProfileDetailResponse, ProfileMutationResponse, ActivateProfileResponse, SaveProfileRequest, ExposeSecretsMode, ValidateProfileResponse, };
3
17
  declare class ProfilesService {
4
18
  static listProfiles(): Promise<ProfileListResponse>;
5
19
  static getProfile(name: string, exposeSecrets?: ExposeSecretsMode): Promise<ProfileDetailResponse>;
@@ -7,5 +21,18 @@ declare class ProfilesService {
7
21
  static deleteProfile(name: string): Promise<ProfileMutationResponse>;
8
22
  static renameProfile(name: string, newName: string): Promise<ProfileMutationResponse>;
9
23
  static activateProfile(name: string): Promise<ActivateProfileResponse>;
24
+ /**
25
+ * Pre-flight check: fire a minimal LLM completion to catch misconfigurations
26
+ * (invalid model names, missing provider prefixes, bad base URLs, invalid
27
+ * API keys) before a profile is saved.
28
+ *
29
+ * Returns `{ valid: true }` when the LLM responds, or
30
+ * `{ valid: false, error: { type, message } }` on a blocking error.
31
+ * Transient errors (rate limits, timeouts) are non-blocking.
32
+ *
33
+ * Cloud backends do not implement this endpoint; `null` signals
34
+ * "no verdict" so callers fall through to the normal save path.
35
+ */
36
+ static validateProfile(name: string, request: SaveProfileRequest): Promise<ValidateProfileResponse | null>;
10
37
  }
11
38
  export default ProfilesService;
@@ -7,7 +7,14 @@ import { activateCloudProfile as r, deleteCloudProfile as i, fetchCloudProfile a
7
7
  function l() {
8
8
  return t().backend.kind === "cloud";
9
9
  }
10
- var u = class {
10
+ function u(e) {
11
+ if (!e || typeof e != "object") return !1;
12
+ let t = "name" in e ? e.name : void 0;
13
+ if (t === "AbortError" || t === "TimeoutError") return !0;
14
+ let n = "cause" in e ? e.cause : void 0;
15
+ return !!n && typeof n == "object" && "name" in n && (n.name === "AbortError" || n.name === "TimeoutError");
16
+ }
17
+ var d = class {
11
18
  static async listProfiles() {
12
19
  return l() ? o() : new e(n()).listProfiles();
13
20
  }
@@ -28,8 +35,24 @@ var u = class {
28
35
  static async activateProfile(t) {
29
36
  return l() ? r(t) : new e(n()).activateProfile(t);
30
37
  }
38
+ static async validateProfile(t, r) {
39
+ if (l()) return null;
40
+ let i = new e({
41
+ ...n(),
42
+ timeout: 3e4
43
+ });
44
+ try {
45
+ return await i.validateProfile(t, r);
46
+ } catch (e) {
47
+ let t = e && typeof e == "object" && "status" in e ? e.status : void 0;
48
+ if (t === 404 || t === 429 || typeof t == "number" && t >= 500 || u(e)) return null;
49
+ throw e;
50
+ } finally {
51
+ i.close();
52
+ }
53
+ }
31
54
  };
32
55
  //#endregion
33
- export { u as default };
56
+ export { d as default };
34
57
 
35
58
  //# sourceMappingURL=profiles-service.api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles-service.api.js","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo,\n ProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n// Re-export SDK types for consumers\nexport type {\n ProfileInfo,\n ProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n};\n\nfunction isCloudBackend(): boolean {\n return getActiveBackend().backend.kind === \"cloud\";\n}\n\nclass ProfilesService {\n static async listProfiles(): Promise<ProfileListResponse> {\n if (isCloudBackend()) return fetchCloudProfiles();\n return new ProfilesClient(getAgentServerClientOptions()).listProfiles();\n }\n\n static async getProfile(\n name: string,\n exposeSecrets?: ExposeSecretsMode,\n ): Promise<ProfileDetailResponse> {\n // Cloud never exposes profile secrets (api_key is always nulled with an\n // api_key_set flag), so `exposeSecrets` is local-only.\n if (isCloudBackend()) return fetchCloudProfile(name);\n const options: GetProfileOptions = exposeSecrets ? { exposeSecrets } : {};\n return new ProfilesClient(getAgentServerClientOptions()).getProfile(\n name,\n options,\n );\n }\n\n static async saveProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return saveCloudProfile(name, request);\n return new ProfilesClient(getAgentServerClientOptions()).saveProfile(\n name,\n request,\n );\n }\n\n static async deleteProfile(name: string): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return deleteCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).deleteProfile(\n name,\n );\n }\n\n static async renameProfile(\n name: string,\n newName: string,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return renameCloudProfile(name, newName);\n return new ProfilesClient(getAgentServerClientOptions()).renameProfile(\n name,\n newName,\n );\n }\n\n static async activateProfile(name: string): Promise<ActivateProfileResponse> {\n if (isCloudBackend()) return activateCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).activateProfile(\n name,\n );\n }\n}\n\nexport default ProfilesService;\n"],"mappings":";;;;;;AAqDA,SAAS,IAA0B;CACjC,OAAO,EAAiB,EAAE,QAAQ,SAAS;AAC7C;AAEA,IAAM,IAAN,MAAsB;CACpB,aAAa,eAA6C;EAExD,OADI,EAAe,IAAU,EAAmB,IACzC,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa;CACxE;CAEA,aAAa,WACX,GACA,GACgC;EAGhC,IAAI,EAAe,GAAG,OAAO,EAAkB,CAAI;EACnD,IAAM,IAA6B,IAAgB,EAAE,iBAAc,IAAI,CAAC;EACxE,OAAO,IAAI,EAAe,EAA4B,CAAC,EAAE,WACvD,GACA,CACF;CACF;CAEA,aAAa,YACX,GACA,GACkC;EAElC,OADI,EAAe,IAAU,EAAiB,GAAM,CAAO,IACpD,IAAI,EAAe,EAA4B,CAAC,EAAE,YACvD,GACA,CACF;CACF;CAEA,aAAa,cAAc,GAAgD;EAEzE,OADI,EAAe,IAAU,EAAmB,CAAI,IAC7C,IAAI,EAAe,EAA4B,CAAC,EAAE,cACvD,CACF;CACF;CAEA,aAAa,cACX,GACA,GACkC;EAElC,OADI,EAAe,IAAU,EAAmB,GAAM,CAAO,IACtD,IAAI,EAAe,EAA4B,CAAC,EAAE,cACvD,GACA,CACF;CACF;CAEA,aAAa,gBAAgB,GAAgD;EAE3E,OADI,EAAe,IAAU,EAAqB,CAAI,IAC/C,IAAI,EAAe,EAA4B,CAAC,EAAE,gBACvD,CACF;CACF;AACF"}
1
+ {"version":3,"file":"profiles-service.api.js","names":[],"sources":["../../../src/api/profiles-service/profiles-service.api.ts"],"sourcesContent":["/**\n * ProfilesService is the single entry point for LLM-profile CRUD, routing per\n * active backend so callers (hooks, the settings manager) stay backend-agnostic:\n * - local agent-server: the SDK's ProfilesClient (`/api/profiles`), created\n * per-call to pick up current backend configuration;\n * - cloud app-server: `src/api/cloud/profiles-service.api.ts` (the org-gated\n * `/api/organizations/{orgId}/profiles` routes, or the per-user settings\n * route as a fallback) via the org-scoped cloud proxy.\n * This mirrors how SettingsService branches to fetchCloudSettings().\n *\n * Uses ProfilesClient from @openhands/typescript-client v0.2.0+.\n * All types are re-exported from the SDK for consumer convenience.\n *\n * Note: Unlike some SDK clients, we don't call client.close() here for\n * consistency with other services (SettingsService, SecretsService) that\n * also create SDK clients without explicit cleanup. The SDK clients use\n * fetch-based HTTP which doesn't require connection cleanup.\n */\nimport {\n ProfilesClient,\n type GetProfileOptions,\n} from \"@openhands/typescript-client/clients\";\nimport type {\n ProfileInfo as ClientProfileInfo,\n ProfileListResponse as ClientProfileListResponse,\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n} from \"@openhands/typescript-client\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\nimport { getActiveBackend } from \"../backend-registry/active-store\";\nimport {\n activateCloudProfile,\n deleteCloudProfile,\n fetchCloudProfile,\n fetchCloudProfiles,\n renameCloudProfile,\n saveCloudProfile,\n} from \"../cloud/profiles-service.api\";\n\n/**\n * Profile summaries carry an optional `provider_connection_id` (the shared\n * provider connection a profile links to), but `@openhands/typescript-client`\n * predates that field. Widen the client types here so consumers can read it; it\n * stays optional, so a client response without the field is still assignable.\n */\nexport interface ProfileInfo extends ClientProfileInfo {\n provider_connection_id?: string | null;\n /** True when provider_connection_id is set but the referenced connection no longer exists. */\n provider_connection_broken?: boolean;\n}\n\nexport interface ProfileListResponse extends Omit<\n ClientProfileListResponse,\n \"profiles\"\n> {\n profiles: ProfileInfo[];\n}\n\n// Re-export SDK types for consumers\nexport type {\n ProfileDetailResponse,\n ProfileMutationResponse,\n ActivateProfileResponse,\n SaveProfileRequest,\n ExposeSecretsMode,\n ValidateProfileResponse,\n};\n\nfunction isCloudBackend(): boolean {\n return getActiveBackend().backend.kind === \"cloud\";\n}\n\nfunction isAbortLike(error: unknown): boolean {\n if (!error || typeof error !== \"object\") return false;\n const name = \"name\" in error ? error.name : undefined;\n if (name === \"AbortError\" || name === \"TimeoutError\") return true;\n const cause = \"cause\" in error ? error.cause : undefined;\n return (\n !!cause &&\n typeof cause === \"object\" &&\n \"name\" in cause &&\n (cause.name === \"AbortError\" || cause.name === \"TimeoutError\")\n );\n}\n\nclass ProfilesService {\n static async listProfiles(): Promise<ProfileListResponse> {\n if (isCloudBackend()) return fetchCloudProfiles();\n return new ProfilesClient(getAgentServerClientOptions()).listProfiles();\n }\n\n static async getProfile(\n name: string,\n exposeSecrets?: ExposeSecretsMode,\n ): Promise<ProfileDetailResponse> {\n // Cloud never exposes profile secrets (api_key is always nulled with an\n // api_key_set flag), so `exposeSecrets` is local-only.\n if (isCloudBackend()) return fetchCloudProfile(name);\n const options: GetProfileOptions = exposeSecrets ? { exposeSecrets } : {};\n return new ProfilesClient(getAgentServerClientOptions()).getProfile(\n name,\n options,\n );\n }\n\n static async saveProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return saveCloudProfile(name, request);\n return new ProfilesClient(getAgentServerClientOptions()).saveProfile(\n name,\n request,\n );\n }\n\n static async deleteProfile(name: string): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return deleteCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).deleteProfile(\n name,\n );\n }\n\n static async renameProfile(\n name: string,\n newName: string,\n ): Promise<ProfileMutationResponse> {\n if (isCloudBackend()) return renameCloudProfile(name, newName);\n return new ProfilesClient(getAgentServerClientOptions()).renameProfile(\n name,\n newName,\n );\n }\n\n static async activateProfile(name: string): Promise<ActivateProfileResponse> {\n if (isCloudBackend()) return activateCloudProfile(name);\n return new ProfilesClient(getAgentServerClientOptions()).activateProfile(\n name,\n );\n }\n\n /**\n * Pre-flight check: fire a minimal LLM completion to catch misconfigurations\n * (invalid model names, missing provider prefixes, bad base URLs, invalid\n * API keys) before a profile is saved.\n *\n * Returns `{ valid: true }` when the LLM responds, or\n * `{ valid: false, error: { type, message } }` on a blocking error.\n * Transient errors (rate limits, timeouts) are non-blocking.\n *\n * Cloud backends do not implement this endpoint; `null` signals\n * \"no verdict\" so callers fall through to the normal save path.\n */\n static async validateProfile(\n name: string,\n request: SaveProfileRequest,\n ): Promise<ValidateProfileResponse | null> {\n if (isCloudBackend()) return null;\n const client = new ProfilesClient({\n ...getAgentServerClientOptions(),\n timeout: 30000,\n });\n try {\n return await client.validateProfile(name, request);\n } catch (error) {\n // Older agent-server versions don't have the endpoint → 404\n // Treat as \"no verdict\" rather than blocking the save.\n const status =\n error && typeof error === \"object\" && \"status\" in error\n ? (error as { status?: unknown }).status\n : undefined;\n if (\n status === 404 ||\n status === 429 ||\n (typeof status === \"number\" && status >= 500) ||\n isAbortLike(error)\n ) {\n return null;\n }\n throw error;\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProfilesService;\n"],"mappings":";;;;;;AAwEA,SAAS,IAA0B;CACjC,OAAO,EAAiB,EAAE,QAAQ,SAAS;AAC7C;AAEA,SAAS,EAAY,GAAyB;CAC5C,IAAI,CAAC,KAAS,OAAO,KAAU,UAAU,OAAO;CAChD,IAAM,IAAO,UAAU,IAAQ,EAAM,OAAO,KAAA;CAC5C,IAAI,MAAS,gBAAgB,MAAS,gBAAgB,OAAO;CAC7D,IAAM,IAAQ,WAAW,IAAQ,EAAM,QAAQ,KAAA;CAC/C,OACE,CAAC,CAAC,KACF,OAAO,KAAU,YACjB,UAAU,MACT,EAAM,SAAS,gBAAgB,EAAM,SAAS;AAEnD;AAEA,IAAM,IAAN,MAAsB;CACpB,aAAa,eAA6C;EAExD,OADI,EAAe,IAAU,EAAmB,IACzC,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa;CACxE;CAEA,aAAa,WACX,GACA,GACgC;EAGhC,IAAI,EAAe,GAAG,OAAO,EAAkB,CAAI;EACnD,IAAM,IAA6B,IAAgB,EAAE,iBAAc,IAAI,CAAC;EACxE,OAAO,IAAI,EAAe,EAA4B,CAAC,EAAE,WACvD,GACA,CACF;CACF;CAEA,aAAa,YACX,GACA,GACkC;EAElC,OADI,EAAe,IAAU,EAAiB,GAAM,CAAO,IACpD,IAAI,EAAe,EAA4B,CAAC,EAAE,YACvD,GACA,CACF;CACF;CAEA,aAAa,cAAc,GAAgD;EAEzE,OADI,EAAe,IAAU,EAAmB,CAAI,IAC7C,IAAI,EAAe,EAA4B,CAAC,EAAE,cACvD,CACF;CACF;CAEA,aAAa,cACX,GACA,GACkC;EAElC,OADI,EAAe,IAAU,EAAmB,GAAM,CAAO,IACtD,IAAI,EAAe,EAA4B,CAAC,EAAE,cACvD,GACA,CACF;CACF;CAEA,aAAa,gBAAgB,GAAgD;EAE3E,OADI,EAAe,IAAU,EAAqB,CAAI,IAC/C,IAAI,EAAe,EAA4B,CAAC,EAAE,gBACvD,CACF;CACF;CAcA,aAAa,gBACX,GACA,GACyC;EACzC,IAAI,EAAe,GAAG,OAAO;EAC7B,IAAM,IAAS,IAAI,EAAe;GAChC,GAAG,EAA4B;GAC/B,SAAS;EACX,CAAC;EACD,IAAI;GACF,OAAO,MAAM,EAAO,gBAAgB,GAAM,CAAO;EACnD,SAAS,GAAO;GAGd,IAAM,IACJ,KAAS,OAAO,KAAU,YAAY,YAAY,IAC7C,EAA+B,SAChC,KAAA;GACN,IACE,MAAW,OACX,MAAW,OACV,OAAO,KAAW,YAAY,KAAU,OACzC,EAAY,CAAK,GAEjB,OAAO;GAET,MAAM;EACR,UAAU;GACR,EAAO,MAAM;EACf;CACF;AACF"}
@@ -0,0 +1,2 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");const e=require("../../node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs");require("../../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("../agent-server-client-options.cjs");var n=`/api/llm/provider-connections`;function r(){let{host:n,apiKey:r}=t.getAgentServerClientOptions();return new e.AgentServerClient({host:n,...r?{apiKey:r}:{}})}var i=class{static async list(){let e=r();try{return await e.get(n,{responseType:`json`})}finally{e.close()}}static async create(e){let t=r();try{return await t.post(n,e,{responseType:`json`})}finally{t.close()}}static async update(e,t){let i=r();try{return await i.patch(`${n}/${encodeURIComponent(e)}`,t,{responseType:`json`})}finally{i.close()}}static async delete(e){let t=r();try{return await t.delete(`${n}/${encodeURIComponent(e)}`,{responseType:`json`})}finally{t.close()}}};exports.default=i;
2
+ //# sourceMappingURL=provider-connections-service.api.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-connections-service.api.cjs","names":[],"sources":["../../../src/api/provider-connections-service/provider-connections-service.api.ts"],"sourcesContent":["/**\n * ProviderConnectionsService is a thin wrapper over the local agent-server's\n * `/api/llm/provider-connections` CRUD endpoints. A provider connection is a\n * shared `api_key` + optional `base_url` that one or more LLM profiles\n * reference by id; the agent-server resolves the credential into a runnable LLM\n * at profile-load time, so this service only manages the stored connections.\n *\n * These endpoints exist only on the agent-server (local backend). Cloud has no\n * equivalent yet, so callers must gate usage on `backend.kind === \"local\"`.\n *\n * There is no generated client for these routes in `@openhands/typescript-client`\n * yet, so requests go through the generic `AgentServerClient` verb helpers —\n * the same approach `LLMBalanceService` uses.\n */\nimport { AgentServerClient } from \"@openhands/typescript-client/clients\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\n\nconst PROVIDER_CONNECTIONS_PATH = \"/api/llm/provider-connections\";\n\nexport interface ProviderConnection {\n id: string;\n display_name: string;\n provider: string;\n base_url: string | null;\n created_at: number;\n updated_at: number;\n /** Whether the stored connection currently holds a usable key. */\n api_key_set: boolean;\n}\n\nexport interface CreateProviderConnectionRequest {\n display_name: string;\n provider: string;\n api_key: string;\n base_url?: string | null;\n}\n\n/**\n * Partial update. Only the provided fields change. `api_key` may be sent to\n * rotate the key; the agent-server rejects `api_key: null` (a connection must\n * always keep a key), so callers omit it to leave the key unchanged.\n */\nexport interface UpdateProviderConnectionRequest {\n display_name?: string;\n provider?: string;\n api_key?: string;\n base_url?: string | null;\n}\n\nfunction createClient(): AgentServerClient {\n const { host, apiKey } = getAgentServerClientOptions();\n return new AgentServerClient({ host, ...(apiKey ? { apiKey } : {}) });\n}\n\nclass ProviderConnectionsService {\n static async list(): Promise<ProviderConnection[]> {\n const client = createClient();\n try {\n return await client.get<ProviderConnection[]>(PROVIDER_CONNECTIONS_PATH, {\n responseType: \"json\",\n });\n } finally {\n client.close();\n }\n }\n\n static async create(\n request: CreateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.post<ProviderConnection>(\n PROVIDER_CONNECTIONS_PATH,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async update(\n id: string,\n request: UpdateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.patch<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async delete(id: string): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.delete<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProviderConnectionsService;\n"],"mappings":"sRAiBA,IAAM,EAA4B,gCAgClC,SAAS,GAAkC,CACzC,GAAM,CAAE,OAAM,UAAW,EAAA,4BAA4B,EACrD,OAAO,IAAI,EAAA,kBAAkB,CAAE,OAAM,GAAI,EAAS,CAAE,QAAO,EAAI,CAAC,CAAG,CAAC,CACtE,CAEA,IAAM,EAAN,KAAiC,CAC/B,aAAa,MAAsC,CACjD,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,IAA0B,EAA2B,CACvE,aAAc,MAChB,CAAC,CACH,QAAU,CACR,EAAO,MAAM,CACf,CACF,CAEA,aAAa,OACX,EAC6B,CAC7B,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,KAClB,EACA,EACA,CAAE,aAAc,MAAO,CACzB,CACF,QAAU,CACR,EAAO,MAAM,CACf,CACF,CAEA,aAAa,OACX,EACA,EAC6B,CAC7B,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,MAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,IACrD,EACA,CAAE,aAAc,MAAO,CACzB,CACF,QAAU,CACR,EAAO,MAAM,CACf,CACF,CAEA,aAAa,OAAO,EAAyC,CAC3D,IAAM,EAAS,EAAa,EAC5B,GAAI,CACF,OAAO,MAAM,EAAO,OAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,IACrD,CAAE,aAAc,MAAO,CACzB,CACF,QAAU,CACR,EAAO,MAAM,CACf,CACF,CACF"}
@@ -0,0 +1,34 @@
1
+ export interface ProviderConnection {
2
+ id: string;
3
+ display_name: string;
4
+ provider: string;
5
+ base_url: string | null;
6
+ created_at: number;
7
+ updated_at: number;
8
+ /** Whether the stored connection currently holds a usable key. */
9
+ api_key_set: boolean;
10
+ }
11
+ export interface CreateProviderConnectionRequest {
12
+ display_name: string;
13
+ provider: string;
14
+ api_key: string;
15
+ base_url?: string | null;
16
+ }
17
+ /**
18
+ * Partial update. Only the provided fields change. `api_key` may be sent to
19
+ * rotate the key; the agent-server rejects `api_key: null` (a connection must
20
+ * always keep a key), so callers omit it to leave the key unchanged.
21
+ */
22
+ export interface UpdateProviderConnectionRequest {
23
+ display_name?: string;
24
+ provider?: string;
25
+ api_key?: string;
26
+ base_url?: string | null;
27
+ }
28
+ declare class ProviderConnectionsService {
29
+ static list(): Promise<ProviderConnection[]>;
30
+ static create(request: CreateProviderConnectionRequest): Promise<ProviderConnection>;
31
+ static update(id: string, request: UpdateProviderConnectionRequest): Promise<ProviderConnection>;
32
+ static delete(id: string): Promise<ProviderConnection>;
33
+ }
34
+ export default ProviderConnectionsService;
@@ -0,0 +1,50 @@
1
+ import { AgentServerClient as e } from "../../node_modules/@openhands/typescript-client/dist/client/openhands-client.js";
2
+ import "../../node_modules/@openhands/typescript-client/dist/clients.js";
3
+ import { getAgentServerClientOptions as t } from "../agent-server-client-options.js";
4
+ //#region src/api/provider-connections-service/provider-connections-service.api.ts
5
+ var n = "/api/llm/provider-connections";
6
+ function r() {
7
+ let { host: n, apiKey: r } = t();
8
+ return new e({
9
+ host: n,
10
+ ...r ? { apiKey: r } : {}
11
+ });
12
+ }
13
+ var i = class {
14
+ static async list() {
15
+ let e = r();
16
+ try {
17
+ return await e.get(n, { responseType: "json" });
18
+ } finally {
19
+ e.close();
20
+ }
21
+ }
22
+ static async create(e) {
23
+ let t = r();
24
+ try {
25
+ return await t.post(n, e, { responseType: "json" });
26
+ } finally {
27
+ t.close();
28
+ }
29
+ }
30
+ static async update(e, t) {
31
+ let i = r();
32
+ try {
33
+ return await i.patch(`${n}/${encodeURIComponent(e)}`, t, { responseType: "json" });
34
+ } finally {
35
+ i.close();
36
+ }
37
+ }
38
+ static async delete(e) {
39
+ let t = r();
40
+ try {
41
+ return await t.delete(`${n}/${encodeURIComponent(e)}`, { responseType: "json" });
42
+ } finally {
43
+ t.close();
44
+ }
45
+ }
46
+ };
47
+ //#endregion
48
+ export { i as default };
49
+
50
+ //# sourceMappingURL=provider-connections-service.api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-connections-service.api.js","names":[],"sources":["../../../src/api/provider-connections-service/provider-connections-service.api.ts"],"sourcesContent":["/**\n * ProviderConnectionsService is a thin wrapper over the local agent-server's\n * `/api/llm/provider-connections` CRUD endpoints. A provider connection is a\n * shared `api_key` + optional `base_url` that one or more LLM profiles\n * reference by id; the agent-server resolves the credential into a runnable LLM\n * at profile-load time, so this service only manages the stored connections.\n *\n * These endpoints exist only on the agent-server (local backend). Cloud has no\n * equivalent yet, so callers must gate usage on `backend.kind === \"local\"`.\n *\n * There is no generated client for these routes in `@openhands/typescript-client`\n * yet, so requests go through the generic `AgentServerClient` verb helpers —\n * the same approach `LLMBalanceService` uses.\n */\nimport { AgentServerClient } from \"@openhands/typescript-client/clients\";\nimport { getAgentServerClientOptions } from \"../agent-server-client-options\";\n\nconst PROVIDER_CONNECTIONS_PATH = \"/api/llm/provider-connections\";\n\nexport interface ProviderConnection {\n id: string;\n display_name: string;\n provider: string;\n base_url: string | null;\n created_at: number;\n updated_at: number;\n /** Whether the stored connection currently holds a usable key. */\n api_key_set: boolean;\n}\n\nexport interface CreateProviderConnectionRequest {\n display_name: string;\n provider: string;\n api_key: string;\n base_url?: string | null;\n}\n\n/**\n * Partial update. Only the provided fields change. `api_key` may be sent to\n * rotate the key; the agent-server rejects `api_key: null` (a connection must\n * always keep a key), so callers omit it to leave the key unchanged.\n */\nexport interface UpdateProviderConnectionRequest {\n display_name?: string;\n provider?: string;\n api_key?: string;\n base_url?: string | null;\n}\n\nfunction createClient(): AgentServerClient {\n const { host, apiKey } = getAgentServerClientOptions();\n return new AgentServerClient({ host, ...(apiKey ? { apiKey } : {}) });\n}\n\nclass ProviderConnectionsService {\n static async list(): Promise<ProviderConnection[]> {\n const client = createClient();\n try {\n return await client.get<ProviderConnection[]>(PROVIDER_CONNECTIONS_PATH, {\n responseType: \"json\",\n });\n } finally {\n client.close();\n }\n }\n\n static async create(\n request: CreateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.post<ProviderConnection>(\n PROVIDER_CONNECTIONS_PATH,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async update(\n id: string,\n request: UpdateProviderConnectionRequest,\n ): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.patch<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n request,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n\n static async delete(id: string): Promise<ProviderConnection> {\n const client = createClient();\n try {\n return await client.delete<ProviderConnection>(\n `${PROVIDER_CONNECTIONS_PATH}/${encodeURIComponent(id)}`,\n { responseType: \"json\" },\n );\n } finally {\n client.close();\n }\n }\n}\n\nexport default ProviderConnectionsService;\n"],"mappings":";;;;AAiBA,IAAM,IAA4B;AAgClC,SAAS,IAAkC;CACzC,IAAM,EAAE,SAAM,cAAW,EAA4B;CACrD,OAAO,IAAI,EAAkB;EAAE;EAAM,GAAI,IAAS,EAAE,UAAO,IAAI,CAAC;CAAG,CAAC;AACtE;AAEA,IAAM,IAAN,MAAiC;CAC/B,aAAa,OAAsC;EACjD,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,IAA0B,GAA2B,EACvE,cAAc,OAChB,CAAC;EACH,UAAU;GACR,EAAO,MAAM;EACf;CACF;CAEA,aAAa,OACX,GAC6B;EAC7B,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,KAClB,GACA,GACA,EAAE,cAAc,OAAO,CACzB;EACF,UAAU;GACR,EAAO,MAAM;EACf;CACF;CAEA,aAAa,OACX,GACA,GAC6B;EAC7B,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,MAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,KACrD,GACA,EAAE,cAAc,OAAO,CACzB;EACF,UAAU;GACR,EAAO,MAAM;EACf;CACF;CAEA,aAAa,OAAO,GAAyC;EAC3D,IAAM,IAAS,EAAa;EAC5B,IAAI;GACF,OAAO,MAAM,EAAO,OAClB,GAAG,EAA0B,GAAG,mBAAmB,CAAE,KACrD,EAAE,cAAc,OAAO,CACzB;EACF,UAAU;GACR,EAAO,MAAM;EACf;CACF;AACF"}
@@ -1,2 +1,2 @@
1
- require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/typescript-client/dist/client/settings-client.cjs");require("../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("./backend-registry/active-store.cjs"),n=require("./agent-server-client-options.cjs"),r=require("./agent-server-compatibility.cjs"),i=require("./with-retry.cjs"),a=require("./cloud/secrets-service.api.cjs");var o=class{static async getSecrets(){try{return t.getActiveBackend().backend.kind===`cloud`?await i.withRetry(()=>a.fetchCloudSecrets()):(await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).listSecrets())).secrets.map(e=>({name:e.name,description:e.description}))}catch(e){return console.error(`Failed to fetch secrets after retries:`,e),[]}}static async createSecret(r,o,s){if(t.getActiveBackend().backend.kind===`cloud`){await a.saveCloudSecret({name:r,value:o,description:s});return}await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).upsertSecret({name:r,value:o,description:s}))}static async updateSecret(r,o,s,c){if(t.getActiveBackend().backend.kind===`cloud`){await a.saveCloudSecret({name:o,value:c,description:s,previousName:r});return}let l=new e.SettingsClient(n.getAgentServerClientOptions()),u=c??await i.withRetry(()=>l.getSecret(r));await i.withRetry(()=>l.upsertSecret({name:o,value:u,description:s})),o!==r&&await this.deleteSecret(r)}static async deleteSecret(o){try{if(t.getActiveBackend().backend.kind===`cloud`){await i.withRetry(()=>a.deleteCloudSecret(o));return}await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).deleteSecret(o))}catch(e){if(r.isSdkHttpStatusError(e,404)||e&&typeof e==`object`&&`response`in e&&e.response?.status===404)return;throw e}}};exports.SecretsService=o;
1
+ require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/@openhands/typescript-client/dist/client/settings-client.cjs");require("../node_modules/@openhands/typescript-client/dist/clients.cjs");const t=require("./backend-registry/active-store.cjs"),n=require("./agent-server-client-options.cjs"),r=require("./agent-server-compatibility.cjs"),i=require("./with-retry.cjs"),a=require("./cloud/secrets-service.api.cjs");async function o(){return t.getActiveBackend().backend.kind===`cloud`?i.withRetry(()=>a.fetchCloudSecrets()):(await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).listSecrets())).secrets.map(e=>({name:e.name,description:e.description}))}var s=class{static async getSecrets(){try{return await o()}catch(e){return console.error(`Failed to fetch secrets after retries:`,e),[]}}static async getSecretsOrThrow(){return o()}static async createSecret(r,o,s){if(t.getActiveBackend().backend.kind===`cloud`){await a.saveCloudSecret({name:r,value:o,description:s});return}await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).upsertSecret({name:r,value:o,description:s}))}static async updateSecret(r,o,s,c){if(t.getActiveBackend().backend.kind===`cloud`){await a.saveCloudSecret({name:o,value:c,description:s,previousName:r});return}let l=new e.SettingsClient(n.getAgentServerClientOptions()),u=c??await i.withRetry(()=>l.getSecret(r));await i.withRetry(()=>l.upsertSecret({name:o,value:u,description:s})),o!==r&&await this.deleteSecret(r)}static async deleteSecret(o){try{if(t.getActiveBackend().backend.kind===`cloud`){await i.withRetry(()=>a.deleteCloudSecret(o));return}await i.withRetry(()=>new e.SettingsClient(n.getAgentServerClientOptions()).deleteSecret(o))}catch(e){if(r.isSdkHttpStatusError(e,404)||e&&typeof e==`object`&&`response`in e&&e.response?.status===404)return;throw e}}};exports.SecretsService=s;
2
2
  //# sourceMappingURL=secrets-service.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets-service.cjs","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n return await withRetry(() => fetchCloudSecrets());\n }\n const response = await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).listSecrets(),\n );\n return response.secrets.map((s) => ({\n name: s.name,\n description: s.description,\n }));\n } catch (error) {\n console.error(\"Failed to fetch secrets after retries:\", error);\n return [];\n }\n }\n\n /**\n * Create or update a custom secret (upsert by name).\n * Uses the agent-server API endpoint: PUT /api/settings/secrets\n *\n * @param name - Secret name (must start with letter, contain only letters/numbers/underscores, 1-64 chars)\n * @param value - Secret value\n * @param description - Optional description\n * @throws Error if the API call fails after retries\n */\n static async createSecret(\n name: string,\n value: string,\n description?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({ name, value, description });\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).upsertSecret({\n name,\n value,\n description,\n }),\n );\n }\n\n /**\n * Update a secret's name and/or description, and optionally overwrite its\n * value. When no value is given the existing one is preserved: the\n * agent-server only exposes an upsert endpoint, so we fetch the existing\n * value and re-upsert it under the updated name/description.\n *\n * @param secretToEdit - Existing secret name\n * @param name - New (or same) secret name\n * @param description - Optional new description\n * @param value - Optional new value; when omitted the stored value is kept\n * @throws Error if the API call fails after retries\n */\n static async updateSecret(\n secretToEdit: string,\n name: string,\n description?: string,\n value?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({\n name,\n value,\n description,\n previousName: secretToEdit,\n });\n return;\n }\n\n const client = new SettingsClient(getAgentServerClientOptions());\n const nextValue =\n value ?? (await withRetry(() => client.getSecret(secretToEdit)));\n\n await withRetry(() =>\n client.upsertSecret({\n name,\n value: nextValue,\n description,\n }),\n );\n\n if (name !== secretToEdit) {\n await this.deleteSecret(secretToEdit);\n }\n }\n\n /**\n * Delete a custom secret by name.\n * Uses the agent-server API endpoint: DELETE /api/settings/secrets/{name}\n *\n * @param name - Secret name to delete\n * @throws Error if the API call fails (except 404, which is treated as success)\n */\n static async deleteSecret(name: string): Promise<void> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await withRetry(() => deleteCloudSecret(name));\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).deleteSecret(name),\n );\n } catch (error) {\n // 404 means secret doesn't exist - treat as successful deletion.\n // Both the SDK's HttpError (status on the error itself) and\n // axios-style errors (status under `response`) count.\n if (\n isSdkHttpStatusError(error, 404) ||\n (error &&\n typeof error === \"object\" &&\n \"response\" in error &&\n (error as { response?: { status?: number } }).response?.status ===\n 404)\n ) {\n return;\n }\n throw error;\n }\n }\n}\n"],"mappings":"qbAYA,IAAa,EAAb,KAA4B,CAQ1B,aAAa,YAAkD,CAC7D,GAAI,CAOF,OANI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAC/B,MAAM,EAAA,cAAgB,EAAA,kBAAkB,CAAC,GAK3C,MAHgB,EAAA,cACrB,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,YAAY,CAChE,GACgB,QAAQ,IAAK,IAAO,CAClC,KAAM,EAAE,KACR,YAAa,EAAE,WACjB,EAAE,CACJ,OAAS,EAAO,CAEd,OADA,QAAQ,MAAM,yCAA0C,CAAK,EACtD,CAAC,CACV,CACF,CAWA,aAAa,aACX,EACA,EACA,EACe,CACf,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,gBAAgB,CAAE,OAAM,QAAO,aAAY,CAAC,EAClD,MACF,CACA,MAAM,EAAA,cACJ,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CAC7D,OACA,QACA,aACF,CAAC,CACH,CACF,CAcA,aAAa,aACX,EACA,EACA,EACA,EACe,CACf,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,gBAAgB,CACpB,OACA,QACA,cACA,aAAc,CAChB,CAAC,EACD,MACF,CAEA,IAAM,EAAS,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EACzD,EACJ,GAAU,MAAM,EAAA,cAAgB,EAAO,UAAU,CAAY,CAAC,EAEhE,MAAM,EAAA,cACJ,EAAO,aAAa,CAClB,OACA,MAAO,EACP,aACF,CAAC,CACH,EAEI,IAAS,GACX,MAAM,KAAK,aAAa,CAAY,CAExC,CASA,aAAa,aAAa,EAA6B,CACrD,GAAI,CACF,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,cAAgB,EAAA,kBAAkB,CAAI,CAAC,EAC7C,MACF,CACA,MAAM,EAAA,cACJ,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CAAI,CACrE,CACF,OAAS,EAAO,CAId,GACE,EAAA,qBAAqB,EAAO,GAAG,GAC9B,GACC,OAAO,GAAU,UACjB,aAAc,GACb,EAA6C,UAAU,SACtD,IAEJ,OAEF,MAAM,CACR,CACF,CACF"}
1
+ {"version":3,"file":"secrets-service.cjs","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nasync function fetchSecrets(): Promise<CustomSecretWithoutValue[]> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n return withRetry(() => fetchCloudSecrets());\n }\n const response = await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).listSecrets(),\n );\n return response.secrets.map((s) => ({\n name: s.name,\n description: s.description,\n }));\n}\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n return await fetchSecrets();\n } catch (error) {\n console.error(\"Failed to fetch secrets after retries:\", error);\n return [];\n }\n }\n\n /**\n * List all custom secrets, surfacing failures to callers that must\n * distinguish an unavailable list from an empty one.\n */\n static async getSecretsOrThrow(): Promise<CustomSecretWithoutValue[]> {\n return fetchSecrets();\n }\n\n /**\n * Create or update a custom secret (upsert by name).\n * Uses the agent-server API endpoint: PUT /api/settings/secrets\n *\n * @param name - Secret name (must start with letter, contain only letters/numbers/underscores, 1-64 chars)\n * @param value - Secret value\n * @param description - Optional description\n * @throws Error if the API call fails after retries\n */\n static async createSecret(\n name: string,\n value: string,\n description?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({ name, value, description });\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).upsertSecret({\n name,\n value,\n description,\n }),\n );\n }\n\n /**\n * Update a secret's name and/or description, and optionally overwrite its\n * value. When no value is given the existing one is preserved: the\n * agent-server only exposes an upsert endpoint, so we fetch the existing\n * value and re-upsert it under the updated name/description.\n *\n * @param secretToEdit - Existing secret name\n * @param name - New (or same) secret name\n * @param description - Optional new description\n * @param value - Optional new value; when omitted the stored value is kept\n * @throws Error if the API call fails after retries\n */\n static async updateSecret(\n secretToEdit: string,\n name: string,\n description?: string,\n value?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({\n name,\n value,\n description,\n previousName: secretToEdit,\n });\n return;\n }\n\n const client = new SettingsClient(getAgentServerClientOptions());\n const nextValue =\n value ?? (await withRetry(() => client.getSecret(secretToEdit)));\n\n await withRetry(() =>\n client.upsertSecret({\n name,\n value: nextValue,\n description,\n }),\n );\n\n if (name !== secretToEdit) {\n await this.deleteSecret(secretToEdit);\n }\n }\n\n /**\n * Delete a custom secret by name.\n * Uses the agent-server API endpoint: DELETE /api/settings/secrets/{name}\n *\n * @param name - Secret name to delete\n * @throws Error if the API call fails (except 404, which is treated as success)\n */\n static async deleteSecret(name: string): Promise<void> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await withRetry(() => deleteCloudSecret(name));\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).deleteSecret(name),\n );\n } catch (error) {\n // 404 means secret doesn't exist - treat as successful deletion.\n // Both the SDK's HttpError (status on the error itself) and\n // axios-style errors (status under `response`) count.\n if (\n isSdkHttpStatusError(error, 404) ||\n (error &&\n typeof error === \"object\" &&\n \"response\" in error &&\n (error as { response?: { status?: number } }).response?.status ===\n 404)\n ) {\n return;\n }\n throw error;\n }\n }\n}\n"],"mappings":"qbAYA,eAAe,GAAoD,CAOjE,OANI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAC/B,EAAA,cAAgB,EAAA,kBAAkB,CAAC,GAKrC,MAHgB,EAAA,cACrB,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,YAAY,CAChE,GACgB,QAAQ,IAAK,IAAO,CAClC,KAAM,EAAE,KACR,YAAa,EAAE,WACjB,EAAE,CACJ,CAEA,IAAa,EAAb,KAA4B,CAQ1B,aAAa,YAAkD,CAC7D,GAAI,CACF,OAAO,MAAM,EAAa,CAC5B,OAAS,EAAO,CAEd,OADA,QAAQ,MAAM,yCAA0C,CAAK,EACtD,CAAC,CACV,CACF,CAMA,aAAa,mBAAyD,CACpE,OAAO,EAAa,CACtB,CAWA,aAAa,aACX,EACA,EACA,EACe,CACf,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,gBAAgB,CAAE,OAAM,QAAO,aAAY,CAAC,EAClD,MACF,CACA,MAAM,EAAA,cACJ,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CAC7D,OACA,QACA,aACF,CAAC,CACH,CACF,CAcA,aAAa,aACX,EACA,EACA,EACA,EACe,CACf,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,gBAAgB,CACpB,OACA,QACA,cACA,aAAc,CAChB,CAAC,EACD,MACF,CAEA,IAAM,EAAS,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EACzD,EACJ,GAAU,MAAM,EAAA,cAAgB,EAAO,UAAU,CAAY,CAAC,EAEhE,MAAM,EAAA,cACJ,EAAO,aAAa,CAClB,OACA,MAAO,EACP,aACF,CAAC,CACH,EAEI,IAAS,GACX,MAAM,KAAK,aAAa,CAAY,CAExC,CASA,aAAa,aAAa,EAA6B,CACrD,GAAI,CACF,GAAI,EAAA,iBAAiB,EAAE,QAAQ,OAAS,QAAS,CAC/C,MAAM,EAAA,cAAgB,EAAA,kBAAkB,CAAI,CAAC,EAC7C,MACF,CACA,MAAM,EAAA,cACJ,IAAI,EAAA,eAAe,EAAA,4BAA4B,CAAC,EAAE,aAAa,CAAI,CACrE,CACF,OAAS,EAAO,CAId,GACE,EAAA,qBAAqB,EAAO,GAAG,GAC9B,GACC,OAAO,GAAU,UACjB,aAAc,GACb,EAA6C,UAAU,SACtD,IAEJ,OAEF,MAAM,CACR,CACF,CACF"}
@@ -8,6 +8,11 @@ export declare class SecretsService {
8
8
  * All secrets are returned in a single response.
9
9
  */
10
10
  static getSecrets(): Promise<CustomSecretWithoutValue[]>;
11
+ /**
12
+ * List all custom secrets, surfacing failures to callers that must
13
+ * distinguish an unavailable list from an empty one.
14
+ */
15
+ static getSecretsOrThrow(): Promise<CustomSecretWithoutValue[]>;
11
16
  /**
12
17
  * Create or update a custom secret (upsert by name).
13
18
  * Uses the agent-server API endpoint: PUT /api/settings/secrets
@@ -6,17 +6,23 @@ import { isSdkHttpStatusError as r } from "./agent-server-compatibility.js";
6
6
  import { withRetry as i } from "./with-retry.js";
7
7
  import { deleteCloudSecret as a, fetchCloudSecrets as o, saveCloudSecret as s } from "./cloud/secrets-service.api.js";
8
8
  //#region src/api/secrets-service.ts
9
- var c = class {
9
+ async function c() {
10
+ return t().backend.kind === "cloud" ? i(() => o()) : (await i(() => new e(n()).listSecrets())).secrets.map((e) => ({
11
+ name: e.name,
12
+ description: e.description
13
+ }));
14
+ }
15
+ var l = class {
10
16
  static async getSecrets() {
11
17
  try {
12
- return t().backend.kind === "cloud" ? await i(() => o()) : (await i(() => new e(n()).listSecrets())).secrets.map((e) => ({
13
- name: e.name,
14
- description: e.description
15
- }));
18
+ return await c();
16
19
  } catch (e) {
17
20
  return console.error("Failed to fetch secrets after retries:", e), [];
18
21
  }
19
22
  }
23
+ static async getSecretsOrThrow() {
24
+ return c();
25
+ }
20
26
  static async createSecret(r, a, o) {
21
27
  if (t().backend.kind === "cloud") {
22
28
  await s({
@@ -63,6 +69,6 @@ var c = class {
63
69
  }
64
70
  };
65
71
  //#endregion
66
- export { c as SecretsService };
72
+ export { l as SecretsService };
67
73
 
68
74
  //# sourceMappingURL=secrets-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets-service.js","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n return await withRetry(() => fetchCloudSecrets());\n }\n const response = await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).listSecrets(),\n );\n return response.secrets.map((s) => ({\n name: s.name,\n description: s.description,\n }));\n } catch (error) {\n console.error(\"Failed to fetch secrets after retries:\", error);\n return [];\n }\n }\n\n /**\n * Create or update a custom secret (upsert by name).\n * Uses the agent-server API endpoint: PUT /api/settings/secrets\n *\n * @param name - Secret name (must start with letter, contain only letters/numbers/underscores, 1-64 chars)\n * @param value - Secret value\n * @param description - Optional description\n * @throws Error if the API call fails after retries\n */\n static async createSecret(\n name: string,\n value: string,\n description?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({ name, value, description });\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).upsertSecret({\n name,\n value,\n description,\n }),\n );\n }\n\n /**\n * Update a secret's name and/or description, and optionally overwrite its\n * value. When no value is given the existing one is preserved: the\n * agent-server only exposes an upsert endpoint, so we fetch the existing\n * value and re-upsert it under the updated name/description.\n *\n * @param secretToEdit - Existing secret name\n * @param name - New (or same) secret name\n * @param description - Optional new description\n * @param value - Optional new value; when omitted the stored value is kept\n * @throws Error if the API call fails after retries\n */\n static async updateSecret(\n secretToEdit: string,\n name: string,\n description?: string,\n value?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({\n name,\n value,\n description,\n previousName: secretToEdit,\n });\n return;\n }\n\n const client = new SettingsClient(getAgentServerClientOptions());\n const nextValue =\n value ?? (await withRetry(() => client.getSecret(secretToEdit)));\n\n await withRetry(() =>\n client.upsertSecret({\n name,\n value: nextValue,\n description,\n }),\n );\n\n if (name !== secretToEdit) {\n await this.deleteSecret(secretToEdit);\n }\n }\n\n /**\n * Delete a custom secret by name.\n * Uses the agent-server API endpoint: DELETE /api/settings/secrets/{name}\n *\n * @param name - Secret name to delete\n * @throws Error if the API call fails (except 404, which is treated as success)\n */\n static async deleteSecret(name: string): Promise<void> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await withRetry(() => deleteCloudSecret(name));\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).deleteSecret(name),\n );\n } catch (error) {\n // 404 means secret doesn't exist - treat as successful deletion.\n // Both the SDK's HttpError (status on the error itself) and\n // axios-style errors (status under `response`) count.\n if (\n isSdkHttpStatusError(error, 404) ||\n (error &&\n typeof error === \"object\" &&\n \"response\" in error &&\n (error as { response?: { status?: number } }).response?.status ===\n 404)\n ) {\n return;\n }\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;AAYA,IAAa,IAAb,MAA4B;CAQ1B,aAAa,aAAkD;EAC7D,IAAI;GAOF,OANI,EAAiB,EAAE,QAAQ,SAAS,UAC/B,MAAM,QAAgB,EAAkB,CAAC,KAK3C,MAHgB,QACrB,IAAI,EAAe,EAA4B,CAAC,EAAE,YAAY,CAChE,GACgB,QAAQ,KAAK,OAAO;IAClC,MAAM,EAAE;IACR,aAAa,EAAE;GACjB,EAAE;EACJ,SAAS,GAAO;GAEd,OADA,QAAQ,MAAM,0CAA0C,CAAK,GACtD,CAAC;EACV;CACF;CAWA,aAAa,aACX,GACA,GACA,GACe;EACf,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;GAC/C,MAAM,EAAgB;IAAE;IAAM;IAAO;GAAY,CAAC;GAClD;EACF;EACA,MAAM,QACJ,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa;GAC7D;GACA;GACA;EACF,CAAC,CACH;CACF;CAcA,aAAa,aACX,GACA,GACA,GACA,GACe;EACf,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;GAC/C,MAAM,EAAgB;IACpB;IACA;IACA;IACA,cAAc;GAChB,CAAC;GACD;EACF;EAEA,IAAM,IAAS,IAAI,EAAe,EAA4B,CAAC,GACzD,IACJ,KAAU,MAAM,QAAgB,EAAO,UAAU,CAAY,CAAC;EAUhE,AARA,MAAM,QACJ,EAAO,aAAa;GAClB;GACA,OAAO;GACP;EACF,CAAC,CACH,GAEI,MAAS,KACX,MAAM,KAAK,aAAa,CAAY;CAExC;CASA,aAAa,aAAa,GAA6B;EACrD,IAAI;GACF,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;IAC/C,MAAM,QAAgB,EAAkB,CAAI,CAAC;IAC7C;GACF;GACA,MAAM,QACJ,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa,CAAI,CACrE;EACF,SAAS,GAAO;GAId,IACE,EAAqB,GAAO,GAAG,KAC9B,KACC,OAAO,KAAU,YACjB,cAAc,KACb,EAA6C,UAAU,WACtD,KAEJ;GAEF,MAAM;EACR;CACF;AACF"}
1
+ {"version":3,"file":"secrets-service.js","names":[],"sources":["../../src/api/secrets-service.ts"],"sourcesContent":["import { SettingsClient } from \"@openhands/typescript-client/clients\";\nimport { isSdkHttpStatusError } from \"./agent-server-compatibility\";\nimport { getActiveBackend } from \"./backend-registry/active-store\";\nimport {\n deleteCloudSecret,\n fetchCloudSecrets,\n saveCloudSecret,\n} from \"./cloud/secrets-service.api\";\nimport { getAgentServerClientOptions } from \"./agent-server-client-options\";\nimport { CustomSecretWithoutValue } from \"./secrets-service.types\";\nimport { withRetry } from \"./with-retry\";\n\nasync function fetchSecrets(): Promise<CustomSecretWithoutValue[]> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n return withRetry(() => fetchCloudSecrets());\n }\n const response = await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).listSecrets(),\n );\n return response.secrets.map((s) => ({\n name: s.name,\n description: s.description,\n }));\n}\n\nexport class SecretsService {\n /**\n * List all custom secrets (names and descriptions only, no values).\n * Uses the agent-server API endpoint: GET /api/settings/secrets\n *\n * Note: The agent-server API doesn't support pagination or search filtering.\n * All secrets are returned in a single response.\n */\n static async getSecrets(): Promise<CustomSecretWithoutValue[]> {\n try {\n return await fetchSecrets();\n } catch (error) {\n console.error(\"Failed to fetch secrets after retries:\", error);\n return [];\n }\n }\n\n /**\n * List all custom secrets, surfacing failures to callers that must\n * distinguish an unavailable list from an empty one.\n */\n static async getSecretsOrThrow(): Promise<CustomSecretWithoutValue[]> {\n return fetchSecrets();\n }\n\n /**\n * Create or update a custom secret (upsert by name).\n * Uses the agent-server API endpoint: PUT /api/settings/secrets\n *\n * @param name - Secret name (must start with letter, contain only letters/numbers/underscores, 1-64 chars)\n * @param value - Secret value\n * @param description - Optional description\n * @throws Error if the API call fails after retries\n */\n static async createSecret(\n name: string,\n value: string,\n description?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({ name, value, description });\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).upsertSecret({\n name,\n value,\n description,\n }),\n );\n }\n\n /**\n * Update a secret's name and/or description, and optionally overwrite its\n * value. When no value is given the existing one is preserved: the\n * agent-server only exposes an upsert endpoint, so we fetch the existing\n * value and re-upsert it under the updated name/description.\n *\n * @param secretToEdit - Existing secret name\n * @param name - New (or same) secret name\n * @param description - Optional new description\n * @param value - Optional new value; when omitted the stored value is kept\n * @throws Error if the API call fails after retries\n */\n static async updateSecret(\n secretToEdit: string,\n name: string,\n description?: string,\n value?: string,\n ): Promise<void> {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await saveCloudSecret({\n name,\n value,\n description,\n previousName: secretToEdit,\n });\n return;\n }\n\n const client = new SettingsClient(getAgentServerClientOptions());\n const nextValue =\n value ?? (await withRetry(() => client.getSecret(secretToEdit)));\n\n await withRetry(() =>\n client.upsertSecret({\n name,\n value: nextValue,\n description,\n }),\n );\n\n if (name !== secretToEdit) {\n await this.deleteSecret(secretToEdit);\n }\n }\n\n /**\n * Delete a custom secret by name.\n * Uses the agent-server API endpoint: DELETE /api/settings/secrets/{name}\n *\n * @param name - Secret name to delete\n * @throws Error if the API call fails (except 404, which is treated as success)\n */\n static async deleteSecret(name: string): Promise<void> {\n try {\n if (getActiveBackend().backend.kind === \"cloud\") {\n await withRetry(() => deleteCloudSecret(name));\n return;\n }\n await withRetry(() =>\n new SettingsClient(getAgentServerClientOptions()).deleteSecret(name),\n );\n } catch (error) {\n // 404 means secret doesn't exist - treat as successful deletion.\n // Both the SDK's HttpError (status on the error itself) and\n // axios-style errors (status under `response`) count.\n if (\n isSdkHttpStatusError(error, 404) ||\n (error &&\n typeof error === \"object\" &&\n \"response\" in error &&\n (error as { response?: { status?: number } }).response?.status ===\n 404)\n ) {\n return;\n }\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;AAYA,eAAe,IAAoD;CAOjE,OANI,EAAiB,EAAE,QAAQ,SAAS,UAC/B,QAAgB,EAAkB,CAAC,KAKrC,MAHgB,QACrB,IAAI,EAAe,EAA4B,CAAC,EAAE,YAAY,CAChE,GACgB,QAAQ,KAAK,OAAO;EAClC,MAAM,EAAE;EACR,aAAa,EAAE;CACjB,EAAE;AACJ;AAEA,IAAa,IAAb,MAA4B;CAQ1B,aAAa,aAAkD;EAC7D,IAAI;GACF,OAAO,MAAM,EAAa;EAC5B,SAAS,GAAO;GAEd,OADA,QAAQ,MAAM,0CAA0C,CAAK,GACtD,CAAC;EACV;CACF;CAMA,aAAa,oBAAyD;EACpE,OAAO,EAAa;CACtB;CAWA,aAAa,aACX,GACA,GACA,GACe;EACf,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;GAC/C,MAAM,EAAgB;IAAE;IAAM;IAAO;GAAY,CAAC;GAClD;EACF;EACA,MAAM,QACJ,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa;GAC7D;GACA;GACA;EACF,CAAC,CACH;CACF;CAcA,aAAa,aACX,GACA,GACA,GACA,GACe;EACf,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;GAC/C,MAAM,EAAgB;IACpB;IACA;IACA;IACA,cAAc;GAChB,CAAC;GACD;EACF;EAEA,IAAM,IAAS,IAAI,EAAe,EAA4B,CAAC,GACzD,IACJ,KAAU,MAAM,QAAgB,EAAO,UAAU,CAAY,CAAC;EAUhE,AARA,MAAM,QACJ,EAAO,aAAa;GAClB;GACA,OAAO;GACP;EACF,CAAC,CACH,GAEI,MAAS,KACX,MAAM,KAAK,aAAa,CAAY;CAExC;CASA,aAAa,aAAa,GAA6B;EACrD,IAAI;GACF,IAAI,EAAiB,EAAE,QAAQ,SAAS,SAAS;IAC/C,MAAM,QAAgB,EAAkB,CAAI,CAAC;IAC7C;GACF;GACA,MAAM,QACJ,IAAI,EAAe,EAA4B,CAAC,EAAE,aAAa,CAAI,CACrE;EACF,SAAS,GAAO;GAId,IACE,EAAqB,GAAO,GAAG,KAC9B,KACC,OAAO,KAAU,YACjB,cAAc,KACb,EAA6C,UAAU,WACtD,KAEJ;GAEF,MAAM;EACR;CACF;AACF"}
@@ -1,2 +1,2 @@
1
- require("../../../../_virtual/_rolldown/runtime.cjs");const e=require("./get-skill-ready-content.cjs");var t=e=>typeof e==`object`&&!!e&&`_isSkillReadyEvent`in e&&e._isSkillReadyEvent===!0,n=t=>{let n=t.activated_skills||t.activated_microagents||[],r=t.extended_content||[];if(n.length===0&&r.length===0)throw Error(`Cannot create skill ready event without activated skills or extended content`);let i=e.getSkillReadyContent(n,r),a=e.getSkillReadyItems(n,r);return{id:`${t.id}-skill-ready`,timestamp:t.timestamp,source:`agent`,_isSkillReadyEvent:!0,_skillReadyContent:i,_skillReadyItems:a}};exports.createSkillReadyEvent=n,exports.isSkillReadyEvent=t;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require("./get-skill-ready-content.cjs");var t=e=>typeof e==`object`&&!!e&&`_isSkillReadyEvent`in e&&e._isSkillReadyEvent===!0,n=t=>{let n=t.activated_skills||[],r=t.extended_content||[];if(n.length===0&&r.length===0)throw Error(`Cannot create skill ready event without activated skills or extended content`);let i=e.getSkillReadyContent(n,r),a=e.getSkillReadyItems(n,r);return{id:`${t.id}-skill-ready`,timestamp:t.timestamp,source:`agent`,_isSkillReadyEvent:!0,_skillReadyContent:i,_skillReadyItems:a}};exports.createSkillReadyEvent=n,exports.isSkillReadyEvent=t;
2
2
  //# sourceMappingURL=create-skill-ready-event.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-skill-ready-event.cjs","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n // Support both activated_skills and activated_microagents field names\n const activatedSkills =\n (userEvent as unknown as { activated_skills?: string[] })\n .activated_skills ||\n userEvent.activated_microagents ||\n [];\n\n const extendedContent = userEvent.extended_content || [];\n\n // Only create event if we have skills or extended content\n if (activatedSkills.length === 0 && extendedContent.length === 0) {\n throw new Error(\n \"Cannot create skill ready event without activated skills or extended content\",\n );\n }\n\n const content = getSkillReadyContent(activatedSkills, extendedContent);\n const items = getSkillReadyItems(activatedSkills, extendedContent);\n\n return {\n id: `${userEvent.id}-skill-ready`,\n timestamp: userEvent.timestamp,\n source: \"agent\",\n _isSkillReadyEvent: true,\n _skillReadyContent: content,\n _skillReadyItems: items,\n };\n};\n"],"mappings":"uGAuBA,IAAa,EAAqB,GAChC,OAAO,GAAU,YACjB,GACA,uBAAwB,GACxB,EAAM,qBAAuB,GAOlB,EACX,GACoB,CAEpB,IAAM,EACH,EACE,kBACH,EAAU,uBACV,CAAC,EAEG,EAAkB,EAAU,kBAAoB,CAAC,EAGvD,GAAI,EAAgB,SAAW,GAAK,EAAgB,SAAW,EAC7D,MAAU,MACR,8EACF,EAGF,IAAM,EAAU,EAAA,qBAAqB,EAAiB,CAAe,EAC/D,EAAQ,EAAA,mBAAmB,EAAiB,CAAe,EAEjE,MAAO,CACL,GAAI,GAAG,EAAU,GAAG,cACpB,UAAW,EAAU,UACrB,OAAQ,QACR,mBAAoB,GACpB,mBAAoB,EACpB,iBAAkB,CACpB,CACF"}
1
+ {"version":3,"file":"create-skill-ready-event.cjs","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n const activatedSkills = userEvent.activated_skills || [];\n\n const extendedContent = userEvent.extended_content || [];\n\n // Only create event if we have skills or extended content\n if (activatedSkills.length === 0 && extendedContent.length === 0) {\n throw new Error(\n \"Cannot create skill ready event without activated skills or extended content\",\n );\n }\n\n const content = getSkillReadyContent(activatedSkills, extendedContent);\n const items = getSkillReadyItems(activatedSkills, extendedContent);\n\n return {\n id: `${userEvent.id}-skill-ready`,\n timestamp: userEvent.timestamp,\n source: \"agent\",\n _isSkillReadyEvent: true,\n _skillReadyContent: content,\n _skillReadyItems: items,\n };\n};\n"],"mappings":"uGAuBA,IAAa,EAAqB,GAChC,OAAO,GAAU,YACjB,GACA,uBAAwB,GACxB,EAAM,qBAAuB,GAOlB,EACX,GACoB,CACpB,IAAM,EAAkB,EAAU,kBAAoB,CAAC,EAEjD,EAAkB,EAAU,kBAAoB,CAAC,EAGvD,GAAI,EAAgB,SAAW,GAAK,EAAgB,SAAW,EAC7D,MAAU,MACR,8EACF,EAGF,IAAM,EAAU,EAAA,qBAAqB,EAAiB,CAAe,EAC/D,EAAQ,EAAA,mBAAmB,EAAiB,CAAe,EAEjE,MAAO,CACL,GAAI,GAAG,EAAU,GAAG,cACpB,UAAW,EAAU,UACrB,OAAQ,QACR,mBAAoB,GACpB,mBAAoB,EACpB,iBAAkB,CACpB,CACF"}
@@ -1,7 +1,7 @@
1
1
  import { getSkillReadyContent as e, getSkillReadyItems as t } from "./get-skill-ready-content.js";
2
2
  //#region src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts
3
3
  var n = (e) => typeof e == "object" && !!e && "_isSkillReadyEvent" in e && e._isSkillReadyEvent === !0, r = (n) => {
4
- let r = n.activated_skills || n.activated_microagents || [], i = n.extended_content || [];
4
+ let r = n.activated_skills || [], i = n.extended_content || [];
5
5
  if (r.length === 0 && i.length === 0) throw Error("Cannot create skill ready event without activated skills or extended content");
6
6
  let a = e(r, i), o = t(r, i);
7
7
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"create-skill-ready-event.js","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n // Support both activated_skills and activated_microagents field names\n const activatedSkills =\n (userEvent as unknown as { activated_skills?: string[] })\n .activated_skills ||\n userEvent.activated_microagents ||\n [];\n\n const extendedContent = userEvent.extended_content || [];\n\n // Only create event if we have skills or extended content\n if (activatedSkills.length === 0 && extendedContent.length === 0) {\n throw new Error(\n \"Cannot create skill ready event without activated skills or extended content\",\n );\n }\n\n const content = getSkillReadyContent(activatedSkills, extendedContent);\n const items = getSkillReadyItems(activatedSkills, extendedContent);\n\n return {\n id: `${userEvent.id}-skill-ready`,\n timestamp: userEvent.timestamp,\n source: \"agent\",\n _isSkillReadyEvent: true,\n _skillReadyContent: content,\n _skillReadyItems: items,\n };\n};\n"],"mappings":";;AAuBA,IAAa,KAAqB,MAChC,OAAO,KAAU,cACjB,KACA,wBAAwB,KACxB,EAAM,uBAAuB,IAOlB,KACX,MACoB;CAEpB,IAAM,IACH,EACE,oBACH,EAAU,yBACV,CAAC,GAEG,IAAkB,EAAU,oBAAoB,CAAC;CAGvD,IAAI,EAAgB,WAAW,KAAK,EAAgB,WAAW,GAC7D,MAAU,MACR,8EACF;CAGF,IAAM,IAAU,EAAqB,GAAiB,CAAe,GAC/D,IAAQ,EAAmB,GAAiB,CAAe;CAEjE,OAAO;EACL,IAAI,GAAG,EAAU,GAAG;EACpB,WAAW,EAAU;EACrB,QAAQ;EACR,oBAAoB;EACpB,oBAAoB;EACpB,kBAAkB;CACpB;AACF"}
1
+ {"version":3,"file":"create-skill-ready-event.js","names":[],"sources":["../../../../../src/components/conversation-events/chat/event-content-helpers/create-skill-ready-event.ts"],"sourcesContent":["import { MessageEvent } from \"#/types/agent-server/core\";\nimport { BaseEvent } from \"#/types/agent-server/core/base/event\";\nimport {\n getSkillReadyContent,\n getSkillReadyItems,\n SkillReadyItem,\n} from \"./get-skill-ready-content\";\n\nexport type { SkillReadyItem };\n\n/**\n * Synthetic event type for Skill Ready events.\n * This extends BaseEvent and includes a marker to identify it as a skill ready event.\n */\nexport interface SkillReadyEvent extends BaseEvent {\n _isSkillReadyEvent: true;\n _skillReadyContent: string;\n _skillReadyItems: SkillReadyItem[];\n}\n\n/**\n * Type guard for Skill Ready events.\n */\nexport const isSkillReadyEvent = (event: unknown): event is SkillReadyEvent =>\n typeof event === \"object\" &&\n event !== null &&\n \"_isSkillReadyEvent\" in event &&\n event._isSkillReadyEvent === true;\n\n/**\n * Creates a synthetic \"Skill Ready\" event from a user MessageEvent.\n * This event appears as originating from the agent and contains formatted\n * information about activated skills and extended content.\n */\nexport const createSkillReadyEvent = (\n userEvent: MessageEvent,\n): SkillReadyEvent => {\n const activatedSkills = userEvent.activated_skills || [];\n\n const extendedContent = userEvent.extended_content || [];\n\n // Only create event if we have skills or extended content\n if (activatedSkills.length === 0 && extendedContent.length === 0) {\n throw new Error(\n \"Cannot create skill ready event without activated skills or extended content\",\n );\n }\n\n const content = getSkillReadyContent(activatedSkills, extendedContent);\n const items = getSkillReadyItems(activatedSkills, extendedContent);\n\n return {\n id: `${userEvent.id}-skill-ready`,\n timestamp: userEvent.timestamp,\n source: \"agent\",\n _isSkillReadyEvent: true,\n _skillReadyContent: content,\n _skillReadyItems: items,\n };\n};\n"],"mappings":";;AAuBA,IAAa,KAAqB,MAChC,OAAO,KAAU,cACjB,KACA,wBAAwB,KACxB,EAAM,uBAAuB,IAOlB,KACX,MACoB;CACpB,IAAM,IAAkB,EAAU,oBAAoB,CAAC,GAEjD,IAAkB,EAAU,oBAAoB,CAAC;CAGvD,IAAI,EAAgB,WAAW,KAAK,EAAgB,WAAW,GAC7D,MAAU,MACR,8EACF;CAGF,IAAM,IAAU,EAAqB,GAAiB,CAAe,GAC/D,IAAQ,EAAmB,GAAiB,CAAe;CAEjE,OAAO;EACL,IAAI,GAAG,EAAU,GAAG;EACpB,WAAW,EAAU;EACrB,QAAQ;EACR,oBAAoB;EACpB,oBAAoB;EACpB,kBAAkB;CACpB;AACF"}
@@ -1,5 +1,4 @@
1
1
  export { UserAssistantEventMessage } from "./user-assistant-event-message";
2
- export { ObservationPairEventMessage } from "./observation-pair-event-message";
3
2
  export { ErrorEventMessage } from "./error-event-message";
4
3
  export { FinishEventMessage } from "./finish-event-message";
5
4
  export { GenericEventMessageWrapper } from "./generic-event-message-wrapper";