@openhands/agent-canvas 1.1.0 → 1.2.1

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 (1390) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/Trans-De9RwQhA.js +1 -0
  4. package/build/assets/__vite-browser-external-4xJsU2-u.js +1 -0
  5. package/build/assets/{acp-providers-B_ZxlEbx.js → acp-providers-D_D8VUpP.js} +1 -1
  6. package/build/assets/active-backend-context-u2tdYRgH.js +1 -0
  7. package/build/assets/add-backend-modal-DIEyAkA4.js +1 -0
  8. package/build/assets/agent-profiles-settings-BovdV4N8.js +1 -0
  9. package/build/assets/{agent-server-client-options-CxnCYyIW.js → agent-server-client-options-DVLRd9sw.js} +1 -1
  10. package/build/assets/agent-server-conversation-service.api-BP73yONA.js +5 -0
  11. package/build/assets/agent-settings-FGL3Yvkp.js +1 -0
  12. package/build/assets/agent-settings-Ofbh6UTD.js +2 -0
  13. package/build/assets/alert-banner-BW0wRYw6.js +1 -0
  14. package/build/assets/api-key-entry-screen-CZIdRmUJ.js +1 -0
  15. package/build/assets/app-settings-BHJ9nKti.js +1 -0
  16. package/build/assets/automation-detail-DwYGzLkp.js +2 -0
  17. package/build/assets/automations-list-CuAfJmMW.js +1 -0
  18. package/build/assets/back-nav-button-BYmxFxGt.js +1 -0
  19. package/build/assets/backend-form-modal-BiaOB2C4.js +1 -0
  20. package/build/assets/backend-synced-settings-badge-Bs3FSXsS.js +1 -0
  21. package/build/assets/base-modal-CC5Pp8CF.js +1 -0
  22. package/build/assets/bot-D7eUAuSB.js +1 -0
  23. package/build/assets/brand-button-DKPMEKcW.js +1 -0
  24. package/build/assets/{browser-CCwPzPsD.js → browser-B39N74jU.js} +2 -2
  25. package/build/assets/browser-store-BI6uklCG.js +1 -0
  26. package/build/assets/browser-tab-aiDg7aEn.js +1 -0
  27. package/build/assets/chat-send-button-DxuZIoW8.js +1 -0
  28. package/build/assets/check-Bvi71siz.js +1 -0
  29. package/build/assets/checkmark-h7udgXMM.js +1 -0
  30. package/build/assets/{chevron-down-BxZEAIv4.js → chevron-down-CI8A6tet.js} +1 -1
  31. package/build/assets/circle-plus-check-toggle-T3eAIuPQ.js +1 -0
  32. package/build/assets/close-p3Op5lxI.js +1 -0
  33. package/build/assets/code-tag-DYlAhEQY.js +1 -0
  34. package/build/assets/{color-themes-CTNRQd1a.js → color-themes-DPBzNtVg.js} +4 -4
  35. package/build/assets/combobox-caret-CLGvOs32.js +1 -0
  36. package/build/assets/command-menu-DKrLCRla.js +1 -0
  37. package/build/assets/{command-store-C-57Heey.js → command-store-D8J5LMW1.js} +1 -1
  38. package/build/assets/condenser-settings-D_5vY4m3.js +1 -0
  39. package/build/assets/confirmation-modal-BK1F0A68.js +1 -0
  40. package/build/assets/context-menu-list-item-DBFzplWW.js +1 -0
  41. package/build/assets/conversation-DnVC6vRV.js +1 -0
  42. package/build/assets/conversation-local-storage-F6zVMM--.js +1 -0
  43. package/build/assets/conversation-panel-ZEz-z3az.js +1 -0
  44. package/build/assets/conversation-service.api-CqZcHr1c.js +1 -0
  45. package/build/assets/conversation-state-store-B2Bp32XI.js +1 -0
  46. package/build/assets/conversation-store-LptbOvKa.js +1 -0
  47. package/build/assets/conversation-tab-empty-state-m8IUkfMj.js +1 -0
  48. package/build/assets/conversation-xkBS3AHC.js +19 -0
  49. package/build/assets/copy-3JCw_XFB.js +1 -0
  50. package/build/assets/copy-BLmGeJcd.js +1 -0
  51. package/build/assets/copy-to-clipboard-button-Aj9wFmt2.js +1 -0
  52. package/build/assets/createLucideIcon-CVAsW2Yo.js +1 -0
  53. package/build/assets/declaration-B9kpCaYl.js +1 -0
  54. package/build/assets/device-verify-B5YCrvSu.js +1 -0
  55. package/build/assets/dist-CodhvuAP.js +1 -0
  56. package/build/assets/dropdown-classes-CgQ45JmQ.js +1 -0
  57. package/build/assets/edit-automation-modal-B6U96gVV.js +1 -0
  58. package/build/assets/ellipsis-button-1BV9Sga8.js +1 -0
  59. package/build/assets/entry.client-Dy--3GeA.js +2 -0
  60. package/build/assets/enum-filter-dropdown-DCITiYVi.js +1 -0
  61. package/build/assets/environment-switch-overlay-DUnKILNH.js +1 -0
  62. package/build/assets/extensions-hub-CksKNpP9.js +1 -0
  63. package/build/assets/{extensions-navigation-DfLHdTUC.js → extensions-navigation-Di9rJ-b5.js} +1 -1
  64. package/build/assets/{external-link-D8njjDTk.js → external-link-D2zJjE9G.js} +1 -1
  65. package/build/assets/files-tab-61Vaihc6.js +1 -0
  66. package/build/assets/files-tab-store-DJsPxYdg.js +1 -0
  67. package/build/assets/folder-mMWFvaw0.js +1 -0
  68. package/build/assets/form-control-classes-9rkU4usZ.js +1 -0
  69. package/build/assets/get-language-from-path-CPNnuVhI.js +1 -0
  70. package/build/assets/git-provider-icon-aQRcUVI-.js +1 -0
  71. package/build/assets/home-5gOtUe-n.js +1 -0
  72. package/build/assets/iconBase-DaTRRUjy.js +1 -0
  73. package/build/assets/index-redirect-CUUJiNki.js +1 -0
  74. package/build/assets/install-server-modal-BRab9inF.js +1 -0
  75. package/build/assets/launch-1TJRKkkX.js +1 -0
  76. package/build/assets/lesson-plan-BtrZUCuj.js +4 -0
  77. package/build/assets/link-external-DfKQroKX.js +1 -0
  78. package/build/assets/{list-todo-B_Ts2JmZ.js → list-todo-BfH6yYUK.js} +1 -1
  79. package/build/assets/llm-not-configured-banner-BrU5uHto.js +27 -0
  80. package/build/assets/llm-settings-BpdU51Jo.js +1 -0
  81. package/build/assets/llm-settings-DsInf6yD.js +1 -0
  82. package/build/assets/{llm-subscription-service-BX_AtNlO.js → llm-subscription-service-CKyaV24y.js} +1 -1
  83. package/build/assets/loader-circle-BEykUKYG.js +1 -0
  84. package/build/assets/loading-spinner-DHAIPZkP.js +1 -0
  85. package/build/assets/manage-backends-modal-BREySP-J.js +1 -0
  86. package/build/assets/manifest-a5bb7568.js +1 -0
  87. package/build/assets/{markdown-renderer-DWy7Np7u.js → markdown-renderer-D8mayGjI.js} +1 -1
  88. package/build/assets/mcp-XXf8k6mb.js +9 -0
  89. package/build/assets/messages-D2oZb47Z.js +40 -0
  90. package/build/assets/middleware-DYHYNAnP.js +6 -0
  91. package/build/assets/modal-backdrop-zVwfOJZr.js +1 -0
  92. package/build/assets/modal-body-Dcu5McCa.js +1 -0
  93. package/build/assets/{modal-classes-C4kS6ib_.js → modal-classes-DPqxSyuP.js} +1 -1
  94. package/build/assets/modal-close-button-CTCX4nCH.js +1 -0
  95. package/build/assets/model-selector-VDHBytb6.js +1 -0
  96. package/build/assets/{mouse-pointer-click-CXAx4FyM.js → mouse-pointer-click-PdEQPL6v.js} +1 -1
  97. package/build/assets/navigation-context-DPs2G0X8.js +1 -0
  98. package/build/assets/navigation-link-D8hfwvxI.js +1 -0
  99. package/build/assets/onboarding-D32kiGME.js +1 -0
  100. package/build/assets/onboarding-modal-C084vkv7.js +1 -0
  101. package/build/assets/openhands-logo-bcNw5bkY.js +1 -0
  102. package/build/assets/option-service.api-Cl5VLGyw.js +1 -0
  103. package/build/assets/organization-service.api-CnynNoT-.js +1 -0
  104. package/build/assets/path-utils-BeOmjIcE.js +1 -0
  105. package/build/assets/{pencil-CsL0ns9y.js → pencil-Dj2XjKmI.js} +1 -1
  106. package/build/assets/plan-components-j9X4AxYM.js +1 -0
  107. package/build/assets/planner-tab-AZMjJx31.js +1 -0
  108. package/build/assets/plugins-management-service-BAp70KN7.js +1 -0
  109. package/build/assets/profiles-service.api-CeYEmSM3.js +1 -0
  110. package/build/assets/providers-vX9jk9Vy.js +1 -0
  111. package/build/assets/{proxy-TeteRRW5.js → proxy-CHmFkV16.js} +1 -1
  112. package/build/assets/react-DPDgL6du.js +1 -0
  113. package/build/assets/recommended-automations-launcher-Bk8tQ-Cn.js +58 -0
  114. package/build/assets/{refresh-cw-GkGYXsU-.js → refresh-cw-DM82EIyx.js} +1 -1
  115. package/build/assets/root-CxWZUXTQ.css +1 -0
  116. package/build/assets/root-layout-CoWw4kpz.js +2 -0
  117. package/build/assets/root-tuEPDx-i.js +2 -0
  118. package/build/assets/runtime-waiting-state-DkzLgvMn.js +1 -0
  119. package/build/assets/schema-field-nvq_Juo2.js +1 -0
  120. package/build/assets/sdk-section-page-CgT70FaZ.js +1 -0
  121. package/build/assets/sdk-settings-schema-BjBkMHzZ.js +1 -0
  122. package/build/assets/search-4DHskuhE.js +1 -0
  123. package/build/assets/search-BsjCEFNf.js +1 -0
  124. package/build/assets/secrets-service-CZYjNxFw.js +1 -0
  125. package/build/assets/secrets-settings-BCxk9p9s.js +1 -0
  126. package/build/assets/segmented-toggle-Cen5AMUc.js +1 -0
  127. package/build/assets/settings-CedTdtb5.js +1 -0
  128. package/build/assets/settings-dropdown-input-xzoZwgUe.js +1 -0
  129. package/build/assets/settings-gear-MXCyZW0x.js +1 -0
  130. package/build/assets/settings-index-Cct3PJSP.js +1 -0
  131. package/build/assets/settings-input-DYs7t3oK.js +1 -0
  132. package/build/assets/settings-list-classes-DvQr5jVS.js +1 -0
  133. package/build/assets/{settings-CN_HaPjH.js → settings-mQUckT0g.js} +1 -1
  134. package/build/assets/settings-modal-DwLybV_O.js +1 -0
  135. package/build/assets/settings-section-header-context-COMOIaxV.js +1 -0
  136. package/build/assets/settings-service.api-DldkFI1x.js +1 -0
  137. package/build/assets/settings-switch-C2N2xqEb.js +1 -0
  138. package/build/assets/{settings-utils-9-_6iVIn.js → settings-utils-BMdG65By.js} +1 -1
  139. package/build/assets/shared-conversation-DnDwfLgg.js +1 -0
  140. package/build/assets/sidebar-layout-BtpUSN3j.js +1 -0
  141. package/build/assets/sidebar-mobile-menu-toggle-B8k3qu84.js +1 -0
  142. package/build/assets/sidebar-nav-link-CIB3NBRW.js +1 -0
  143. package/build/assets/sidebar-store-CZuE8AH5.js +1 -0
  144. package/build/assets/skill-card-pill-row-D2bUe2kB.js +1 -0
  145. package/build/assets/skills-9cDZONKh.js +1 -0
  146. package/build/assets/skills-plugins-B68ay6Pu.js +1 -0
  147. package/build/assets/skills-settings-A6sUy0T7.js +2 -0
  148. package/build/assets/{square-chevron-right-Cfi-SUY0.js → square-chevron-right-Czw3FFWc.js} +1 -1
  149. package/build/assets/styled-tooltip-DsKsFjuq.js +1 -0
  150. package/build/assets/suspense-X5dBsJzn.js +1 -0
  151. package/build/assets/switch-skeleton-DqQwalyu.js +1 -0
  152. package/build/assets/task-list-tab-BAThr9Ex.js +1 -0
  153. package/build/assets/{terminal-HakoMrQX.js → terminal-BmT0_gIH.js} +2 -2
  154. package/build/assets/terminal-BuLtIrb9.js +1 -0
  155. package/build/assets/toggle-switch-DBlOOzBr.js +1 -0
  156. package/build/assets/{trash-2-Bq4hqiRH.js → trash-2-Be_7y3Mn.js} +1 -1
  157. package/build/assets/typography-YGPBGzOG.js +1 -0
  158. package/build/assets/u-check-circle-BqoIxNz_.js +1 -0
  159. package/build/assets/u-check-circle-half-LiwZkuFe.js +1 -0
  160. package/build/assets/u-edit-DJ90xc8Z.js +1 -0
  161. package/build/assets/use-acp-credential-form-Bs6s0DTU.js +1 -0
  162. package/build/assets/use-activate-agent-profile-CKtTToSx.js +1 -0
  163. package/build/assets/use-active-agent-profile-CWLPpOtK.js +1 -0
  164. package/build/assets/use-active-conversation-DI5S5M1w.js +1 -0
  165. package/build/assets/use-agent-profiles-DPcaYLpm.js +1 -0
  166. package/build/assets/use-agent-state-Buh3bQDh.js +1 -0
  167. package/build/assets/use-backends-health-CxkvJy2N.js +1 -0
  168. package/build/assets/use-breakpoint-B-O0lQ84.js +1 -0
  169. package/build/assets/use-can-manage-org-profiles-DeX2Mfje.js +1 -0
  170. package/build/assets/use-click-outside-element-Bf4Omzot.js +1 -0
  171. package/build/assets/use-cloud-current-user-id-D_PQGfmT.js +1 -0
  172. package/build/assets/use-config-ur0RbjCP.js +1 -0
  173. package/build/assets/use-create-conversation-D9OWYcte.js +1 -0
  174. package/build/assets/use-create-secret-CVFSlhlR.js +1 -0
  175. package/build/assets/use-event-store-YSOxy9FC.js +4 -0
  176. package/build/assets/use-handle-plan-click-Dug8egQl.js +1 -0
  177. package/build/assets/use-is-authed-_dhQ2Xuj.js +1 -0
  178. package/build/assets/use-launch-skill-in-chat-BnoDgvAy.js +1 -0
  179. package/build/assets/use-llm-profiles-DjackuP1.js +1 -0
  180. package/build/assets/use-onboarding-completion-C_Swglzp.js +1 -0
  181. package/build/assets/use-plugins-marketplace-BGb-KgfD.js +1 -0
  182. package/build/assets/use-runtime-is-ready-Diiq65Q-.js +1 -0
  183. package/build/assets/use-save-agent-profile-aKKLqDJM.js +1 -0
  184. package/build/assets/{use-save-settings-DErJDIDL.js → use-save-settings-CChDyjOB.js} +1 -1
  185. package/build/assets/use-settings-dX4fKUPF.js +1 -0
  186. package/build/assets/use-settings-nav-items-D6pHnvxg.js +16 -0
  187. package/build/assets/use-skills-Dqo-pDDx.js +1 -0
  188. package/build/assets/use-task-list-CmWGElgb.js +1 -0
  189. package/build/assets/use-tracking-GtXCHmTv.js +1 -0
  190. package/build/assets/use-user-conversation-6uOXFP95.js +1 -0
  191. package/build/assets/useMutation-DCE9RcgK.js +1 -0
  192. package/build/assets/useMutationState-BUab8Kxr.js +1 -0
  193. package/build/assets/useQueries-CRzaAqzH.js +1 -0
  194. package/build/assets/useQuery-CpjHYtZc.js +1 -0
  195. package/build/assets/useTranslation-Cgy4JA_g.js +1 -0
  196. package/build/assets/utils-CE0lDWtb.js +1 -0
  197. package/build/assets/vendor-styling-CI0PQ3ab.js +22 -0
  198. package/build/assets/{vendor~browser-BQU4C3CQ.js → vendor~browser-Cvg7jXCP.js} +1 -1
  199. package/build/assets/{vendor~browser-tab-Cim6xN2k.js → vendor~browser-tab-Di0kh5Zw.js} +1 -1
  200. package/build/assets/vendor~conversation-panel~conversation~alert-banner-DHDkknt5.js +1 -0
  201. package/build/assets/vendor~entry.client-9tWQ_Ugw.js +1 -0
  202. package/build/assets/{vendor~entry.client-lAMyAlBD.js → vendor~entry.client-D6BtSOtn.js} +1 -1
  203. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js +177 -0
  204. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js +1 -0
  205. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js +10 -0
  206. package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~t35o0b0f-Bss49YXv.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js} +1 -1
  207. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js +1 -0
  208. package/build/assets/{vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~fpbtwbmk-DDSPtjxR.js → vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js} +1 -1
  209. package/build/assets/{vendor~files-tab-BvQLon-P.js → vendor~files-tab-B02k3xvx.js} +1 -1
  210. package/build/assets/{vendor~home~conversation-panel~conversation-DBPRU26Z.js → vendor~home~conversation-panel~conversation-CYMF9JYB.js} +1 -1
  211. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DnEBAp2W.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-9UMeuPV6.js} +1 -1
  212. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CzI-A-Gz.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BD0GaRGa.js} +1 -1
  213. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-ByET2Quf.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CqXiHwjU.js} +1 -1
  214. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DCYBrned.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-D7EUmQ8Y.js} +1 -1
  215. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DnctfFZL.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DTzw2x50.js} +1 -1
  216. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-pSG7lnvH.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-d8aETPbZ.js} +1 -1
  217. package/build/assets/{vendor~launch-DqoOsAhA.js → vendor~launch-CHXA9cJu.js} +1 -1
  218. package/build/assets/vendor~root-layout~conversation-panel~conversation-CpiTHpHl.js +1 -0
  219. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-BJl81v7J.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-_TdZcNMD.js} +1 -1
  220. package/build/assets/vendor~root-layout~home~conversation-panel~conversation-Cn2jwSga.js +1 -0
  221. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~enjl5xdm-mMKDm94D.js +48 -0
  222. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-DRld6s9c.js → vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-rV6d1Iv_.js} +502 -43
  223. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-9d2kA26V.js → vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js} +1 -1
  224. package/build/assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-CXyYYvYh.js +1 -0
  225. package/build/assets/verification-settings-D_zsNB_c.js +1 -0
  226. package/build/assets/x-Cb0WAtak.js +1 -0
  227. package/build/assets/x-mark-Batp6gXa.js +1 -0
  228. package/build/index.html +4 -4
  229. package/build/locales/ar/openhands.json +138 -1
  230. package/build/locales/ca/openhands.json +138 -1
  231. package/build/locales/de/openhands.json +138 -1
  232. package/build/locales/en/openhands.json +138 -1
  233. package/build/locales/es/openhands.json +138 -1
  234. package/build/locales/fr/openhands.json +138 -1
  235. package/build/locales/it/openhands.json +138 -1
  236. package/build/locales/ja/openhands.json +138 -1
  237. package/build/locales/ko-KR/openhands.json +138 -1
  238. package/build/locales/no/openhands.json +138 -1
  239. package/build/locales/pt/openhands.json +138 -1
  240. package/build/locales/tr/openhands.json +138 -1
  241. package/build/locales/uk/openhands.json +138 -1
  242. package/build/locales/zh-CN/openhands.json +138 -1
  243. package/build/locales/zh-TW/openhands.json +138 -1
  244. package/config/defaults.json +7 -9
  245. package/dist/_virtual/__vite-browser-external.cjs +2 -0
  246. package/dist/_virtual/__vite-browser-external.cjs.map +1 -0
  247. package/dist/_virtual/__vite-browser-external.js +9 -0
  248. package/dist/_virtual/__vite-browser-external.js.map +1 -0
  249. package/dist/api/agent-profiles-service/agent-profiles-service.api.cjs +2 -0
  250. package/dist/api/agent-profiles-service/agent-profiles-service.api.cjs.map +1 -0
  251. package/dist/api/agent-profiles-service/agent-profiles-service.api.d.ts +22 -0
  252. package/dist/api/agent-profiles-service/agent-profiles-service.api.js +35 -0
  253. package/dist/api/agent-profiles-service/agent-profiles-service.api.js.map +1 -0
  254. package/dist/api/agent-server-adapter.cjs +2 -2
  255. package/dist/api/agent-server-adapter.cjs.map +1 -1
  256. package/dist/api/agent-server-adapter.d.ts +11 -1
  257. package/dist/api/agent-server-adapter.js +60 -60
  258. package/dist/api/agent-server-adapter.js.map +1 -1
  259. package/dist/api/agent-server-compatibility.cjs +1 -1
  260. package/dist/api/agent-server-compatibility.cjs.map +1 -1
  261. package/dist/api/agent-server-compatibility.js +1 -0
  262. package/dist/api/agent-server-compatibility.js.map +1 -1
  263. package/dist/api/agent-server-home.cjs +1 -1
  264. package/dist/api/agent-server-home.cjs.map +1 -1
  265. package/dist/api/agent-server-home.js +1 -0
  266. package/dist/api/agent-server-home.js.map +1 -1
  267. package/dist/api/cloud/agent-profiles-service.api.cjs +2 -0
  268. package/dist/api/cloud/agent-profiles-service.api.cjs.map +1 -0
  269. package/dist/api/cloud/agent-profiles-service.api.d.ts +7 -0
  270. package/dist/api/cloud/agent-profiles-service.api.js +58 -0
  271. package/dist/api/cloud/agent-profiles-service.api.js.map +1 -0
  272. package/dist/api/cloud/organization-service.api.cjs +1 -1
  273. package/dist/api/cloud/organization-service.api.cjs.map +1 -1
  274. package/dist/api/cloud/organization-service.api.d.ts +8 -0
  275. package/dist/api/cloud/organization-service.api.js +3 -1
  276. package/dist/api/cloud/organization-service.api.js.map +1 -1
  277. package/dist/api/cloud/profiles-service.api.cjs +2 -0
  278. package/dist/api/cloud/profiles-service.api.cjs.map +1 -0
  279. package/dist/api/cloud/profiles-service.api.d.ts +7 -0
  280. package/dist/api/cloud/profiles-service.api.js +75 -0
  281. package/dist/api/cloud/profiles-service.api.js.map +1 -0
  282. package/dist/api/cloud/settings-service.api.cjs +1 -1
  283. package/dist/api/cloud/settings-service.api.cjs.map +1 -1
  284. package/dist/api/cloud/settings-service.api.js +1 -1
  285. package/dist/api/cloud/settings-service.api.js.map +1 -1
  286. package/dist/api/config-service/config-service.api.cjs +1 -1
  287. package/dist/api/config-service/config-service.api.cjs.map +1 -1
  288. package/dist/api/config-service/config-service.api.js +1 -0
  289. package/dist/api/config-service/config-service.api.js.map +1 -1
  290. package/dist/api/conversation-metadata-store.cjs.map +1 -1
  291. package/dist/api/conversation-metadata-store.d.ts +11 -0
  292. package/dist/api/conversation-metadata-store.js.map +1 -1
  293. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  294. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  295. package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +20 -1
  296. package/dist/api/conversation-service/agent-server-conversation-service.api.js +134 -105
  297. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  298. package/dist/api/conversation-service/agent-server-conversation-service.types.d.ts +2 -0
  299. package/dist/api/conversation-service/conversation-service.api.cjs +1 -1
  300. package/dist/api/conversation-service/conversation-service.api.cjs.map +1 -1
  301. package/dist/api/conversation-service/conversation-service.api.d.ts +1 -0
  302. package/dist/api/conversation-service/conversation-service.api.js +4 -0
  303. package/dist/api/conversation-service/conversation-service.api.js.map +1 -1
  304. package/dist/api/device-flow-client.cjs +1 -1
  305. package/dist/api/device-flow-client.cjs.map +1 -1
  306. package/dist/api/device-flow-client.js +33 -25
  307. package/dist/api/device-flow-client.js.map +1 -1
  308. package/dist/api/event-service/event-service.api.cjs +1 -1
  309. package/dist/api/event-service/event-service.api.cjs.map +1 -1
  310. package/dist/api/event-service/event-service.api.js +1 -0
  311. package/dist/api/event-service/event-service.api.js.map +1 -1
  312. package/dist/api/mcp-service/mcp-redacted-credentials.cjs +1 -1
  313. package/dist/api/mcp-service/mcp-redacted-credentials.cjs.map +1 -1
  314. package/dist/api/mcp-service/mcp-redacted-credentials.d.ts +3 -3
  315. package/dist/api/mcp-service/mcp-redacted-credentials.js +29 -30
  316. package/dist/api/mcp-service/mcp-redacted-credentials.js.map +1 -1
  317. package/dist/api/mcp-service/mcp-service.api.cjs +1 -1
  318. package/dist/api/mcp-service/mcp-service.api.cjs.map +1 -1
  319. package/dist/api/mcp-service/mcp-service.api.d.ts +8 -1
  320. package/dist/api/mcp-service/mcp-service.api.js +129 -23
  321. package/dist/api/mcp-service/mcp-service.api.js.map +1 -1
  322. package/dist/api/option-service/option-service.api.cjs +1 -1
  323. package/dist/api/option-service/option-service.api.cjs.map +1 -1
  324. package/dist/api/option-service/option-service.api.js +1 -0
  325. package/dist/api/option-service/option-service.api.js.map +1 -1
  326. package/dist/api/plugins-management-service.cjs +2 -0
  327. package/dist/api/plugins-management-service.cjs.map +1 -0
  328. package/dist/api/plugins-management-service.d.ts +50 -0
  329. package/dist/api/plugins-management-service.js +41 -0
  330. package/dist/api/plugins-management-service.js.map +1 -0
  331. package/dist/api/plugins-service.d.ts +49 -0
  332. package/dist/api/profiles-service/profiles-service.api.cjs +1 -1
  333. package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
  334. package/dist/api/profiles-service/profiles-service.api.js +21 -14
  335. package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
  336. package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
  337. package/dist/api/runtime-service/agent-server-runtime-service.cjs.map +1 -1
  338. package/dist/api/runtime-service/agent-server-runtime-service.js +1 -0
  339. package/dist/api/runtime-service/agent-server-runtime-service.js.map +1 -1
  340. package/dist/api/secrets-service.cjs +1 -1
  341. package/dist/api/secrets-service.cjs.map +1 -1
  342. package/dist/api/secrets-service.js +1 -0
  343. package/dist/api/secrets-service.js.map +1 -1
  344. package/dist/api/settings-service/settings-service.api.cjs +1 -1
  345. package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
  346. package/dist/api/settings-service/settings-service.api.js +92 -50
  347. package/dist/api/settings-service/settings-service.api.js.map +1 -1
  348. package/dist/api/skills-service.cjs +1 -1
  349. package/dist/api/skills-service.cjs.map +1 -1
  350. package/dist/api/skills-service.js +1 -0
  351. package/dist/api/skills-service.js.map +1 -1
  352. package/dist/api/workspaces-service/workspaces-service.api.cjs +1 -1
  353. package/dist/api/workspaces-service/workspaces-service.api.cjs.map +1 -1
  354. package/dist/api/workspaces-service/workspaces-service.api.js +1 -0
  355. package/dist/api/workspaces-service/workspaces-service.api.js.map +1 -1
  356. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs +1 -1
  357. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs.map +1 -1
  358. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js +57 -38
  359. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js.map +1 -1
  360. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs +2 -1
  361. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs.map +1 -1
  362. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js +13 -9
  363. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js.map +1 -1
  364. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs +1 -1
  365. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs.map +1 -1
  366. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js +65 -26
  367. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js.map +1 -1
  368. package/dist/components/conversation-events/chat/event-message.cjs +2 -2
  369. package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
  370. package/dist/components/conversation-events/chat/event-message.js +78 -76
  371. package/dist/components/conversation-events/chat/event-message.js.map +1 -1
  372. package/dist/components/features/analytics/telemetry-consent-banner.cjs +1 -1
  373. package/dist/components/features/analytics/telemetry-consent-banner.cjs.map +1 -1
  374. package/dist/components/features/analytics/telemetry-consent-banner.js +1 -0
  375. package/dist/components/features/analytics/telemetry-consent-banner.js.map +1 -1
  376. package/dist/components/features/automations/detail/activity-log-item.d.ts +3 -2
  377. package/dist/components/features/automations/detail/activity-log-section.d.ts +3 -2
  378. package/dist/components/features/automations/detail/debug-automation-button.d.ts +17 -0
  379. package/dist/components/features/automations/detail/run-logs-modal.d.ts +6 -1
  380. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  381. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  382. package/dist/components/features/backends/backend-form-modal.d.ts +6 -2
  383. package/dist/components/features/backends/backend-form-modal.js +198 -161
  384. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  385. package/dist/components/features/backends/backend-row.cjs +1 -1
  386. package/dist/components/features/backends/backend-row.cjs.map +1 -1
  387. package/dist/components/features/backends/backend-row.d.ts +2 -1
  388. package/dist/components/features/backends/backend-row.js +60 -54
  389. package/dist/components/features/backends/backend-row.js.map +1 -1
  390. package/dist/components/features/backends/backend-selector.cjs +1 -1
  391. package/dist/components/features/backends/backend-selector.cjs.map +1 -1
  392. package/dist/components/features/backends/backend-selector.js +4 -4
  393. package/dist/components/features/backends/backend-version.cjs +1 -1
  394. package/dist/components/features/backends/backend-version.cjs.map +1 -1
  395. package/dist/components/features/backends/backend-version.js +1 -0
  396. package/dist/components/features/backends/backend-version.js.map +1 -1
  397. package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
  398. package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
  399. package/dist/components/features/backends/manage-backends-modal.js +72 -61
  400. package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
  401. package/dist/components/features/chat/change-agent-button.cjs +1 -1
  402. package/dist/components/features/chat/change-agent-button.js +9 -9
  403. package/dist/components/features/chat/chat-add-file-button.cjs +1 -1
  404. package/dist/components/features/chat/chat-add-file-button.cjs.map +1 -1
  405. package/dist/components/features/chat/chat-add-file-button.js +38 -34
  406. package/dist/components/features/chat/chat-add-file-button.js.map +1 -1
  407. package/dist/components/features/chat/chat-interface.cjs +2 -2
  408. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  409. package/dist/components/features/chat/chat-interface.js +136 -129
  410. package/dist/components/features/chat/chat-interface.js.map +1 -1
  411. package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
  412. package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
  413. package/dist/components/features/chat/components/chat-input-actions.js +100 -87
  414. package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
  415. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +2 -0
  416. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -0
  417. package/dist/components/features/chat/components/chat-input-llm-profile-picker.d.ts +15 -0
  418. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +118 -0
  419. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -0
  420. package/dist/components/features/chat/components/chat-input-model.cjs +1 -1
  421. package/dist/components/features/chat/components/chat-input-model.js +17 -17
  422. package/dist/components/features/chat/components/chat-input-profile-picker.cjs +2 -0
  423. package/dist/components/features/chat/components/chat-input-profile-picker.cjs.map +1 -0
  424. package/dist/components/features/chat/components/chat-input-profile-picker.d.ts +9 -0
  425. package/dist/components/features/chat/components/chat-input-profile-picker.js +112 -0
  426. package/dist/components/features/chat/components/chat-input-profile-picker.js.map +1 -0
  427. package/dist/components/features/chat/components/resolve-picker-kind.cjs +2 -0
  428. package/dist/components/features/chat/components/resolve-picker-kind.cjs.map +1 -0
  429. package/dist/components/features/chat/components/resolve-picker-kind.d.ts +29 -0
  430. package/dist/components/features/chat/components/resolve-picker-kind.js +8 -0
  431. package/dist/components/features/chat/components/resolve-picker-kind.js.map +1 -0
  432. package/dist/components/features/chat/goal-status-banner.cjs +2 -0
  433. package/dist/components/features/chat/goal-status-banner.cjs.map +1 -0
  434. package/dist/components/features/chat/goal-status-banner.d.ts +11 -0
  435. package/dist/components/features/chat/goal-status-banner.js +12 -0
  436. package/dist/components/features/chat/goal-status-banner.js.map +1 -0
  437. package/dist/components/features/chat/goal-status-content.cjs +2 -0
  438. package/dist/components/features/chat/goal-status-content.cjs.map +1 -0
  439. package/dist/components/features/chat/goal-status-content.d.ts +21 -0
  440. package/dist/components/features/chat/goal-status-content.js +98 -0
  441. package/dist/components/features/chat/goal-status-content.js.map +1 -0
  442. package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
  443. package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
  444. package/dist/components/features/chat/interactive-chat-box.js +20 -19
  445. package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
  446. package/dist/components/features/chat/tool-visualizers/primitives/code-block.cjs +1 -1
  447. package/dist/components/features/chat/tool-visualizers/primitives/code-block.cjs.map +1 -1
  448. package/dist/components/features/chat/tool-visualizers/primitives/code-block.d.ts +10 -3
  449. package/dist/components/features/chat/tool-visualizers/primitives/code-block.js +29 -16
  450. package/dist/components/features/chat/tool-visualizers/primitives/code-block.js.map +1 -1
  451. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.cjs +1 -1
  452. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.cjs.map +1 -1
  453. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.d.ts +2 -2
  454. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.js +16 -16
  455. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.js.map +1 -1
  456. package/dist/components/features/chat/user-message-body.cjs +1 -1
  457. package/dist/components/features/chat/user-message-body.cjs.map +1 -1
  458. package/dist/components/features/chat/user-message-body.js +20 -20
  459. package/dist/components/features/chat/user-message-body.js.map +1 -1
  460. package/dist/components/features/command-menu/command-menu-items.d.ts +32 -0
  461. package/dist/components/features/command-menu/command-menu-trigger.cjs +2 -0
  462. package/dist/components/features/command-menu/command-menu-trigger.cjs.map +1 -0
  463. package/dist/components/features/command-menu/command-menu-trigger.d.ts +5 -0
  464. package/dist/components/features/command-menu/command-menu-trigger.js +53 -0
  465. package/dist/components/features/command-menu/command-menu-trigger.js.map +1 -0
  466. package/dist/components/features/command-menu/command-menu.d.ts +2 -0
  467. package/dist/components/features/command-menu/index.d.ts +2 -0
  468. package/dist/components/features/controls/tools-context-menu.cjs +1 -1
  469. package/dist/components/features/controls/tools-context-menu.cjs.map +1 -1
  470. package/dist/components/features/controls/tools-context-menu.d.ts +3 -1
  471. package/dist/components/features/controls/tools-context-menu.js +94 -77
  472. package/dist/components/features/controls/tools-context-menu.js.map +1 -1
  473. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs +1 -1
  474. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs.map +1 -1
  475. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js +8 -5
  476. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js.map +1 -1
  477. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs.map +1 -1
  478. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.d.ts +1 -1
  479. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js.map +1 -1
  480. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  481. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  482. package/dist/components/features/conversation-panel/conversation-panel.js +2 -1
  483. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  484. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
  485. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
  486. package/dist/components/features/conversation-panel/local-new-conversation-menu.js +4 -1
  487. package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
  488. package/dist/components/features/conversation-panel/plugins-modal.cjs +2 -0
  489. package/dist/components/features/conversation-panel/plugins-modal.cjs.map +1 -0
  490. package/dist/components/features/conversation-panel/plugins-modal.d.ts +12 -0
  491. package/dist/components/features/conversation-panel/plugins-modal.js +62 -0
  492. package/dist/components/features/conversation-panel/plugins-modal.js.map +1 -0
  493. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.cjs +1 -1
  494. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.cjs.map +1 -1
  495. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.js +4 -4
  496. package/dist/components/features/mcp-logo-badge.cjs +1 -1
  497. package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
  498. package/dist/components/features/mcp-logo-badge.js +17 -15
  499. package/dist/components/features/mcp-logo-badge.js.map +1 -1
  500. package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
  501. package/dist/components/features/mcp-page/custom-server-editor.cjs.map +1 -1
  502. package/dist/components/features/mcp-page/custom-server-editor.js +102 -59
  503. package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
  504. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  505. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  506. package/dist/components/features/mcp-page/install-server-modal.js +284 -169
  507. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  508. package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
  509. package/dist/components/features/mcp-page/installed-server-card.cjs.map +1 -1
  510. package/dist/components/features/mcp-page/installed-server-card.js +16 -18
  511. package/dist/components/features/mcp-page/installed-server-card.js.map +1 -1
  512. package/dist/components/features/onboarding/onboarding-host.d.ts +3 -13
  513. package/dist/components/features/plugins/add-plugin-modal.d.ts +6 -0
  514. package/dist/components/features/plugins/build-plugins-view-model.d.ts +39 -0
  515. package/dist/components/features/plugins/plugin-card.d.ts +13 -0
  516. package/dist/components/features/plugins/plugin-detail-modal.d.ts +13 -0
  517. package/dist/components/features/plugins/plugin-picker-card.d.ts +10 -0
  518. package/dist/components/features/plugins/plugin-picker-modal.d.ts +9 -0
  519. package/dist/components/features/plugins/plugin-picker-trigger.d.ts +9 -0
  520. package/dist/components/features/plugins/plugin-picker.d.ts +18 -0
  521. package/dist/components/features/plugins/plugin-spec-identity.d.ts +28 -0
  522. package/dist/components/features/plugins/plugins-toolbar.d.ts +9 -0
  523. package/dist/components/features/settings/agent-profiles/agent-profile-actions-menu.d.ts +16 -0
  524. package/dist/components/features/settings/agent-profiles/agent-profile-row.d.ts +13 -0
  525. package/dist/components/features/settings/agent-profiles/agent-profiles-body.d.ts +15 -0
  526. package/dist/components/features/settings/agent-profiles/agent-profiles-local-view.d.ts +7 -0
  527. package/dist/components/features/settings/agent-profiles/agent-profiles-manager.d.ts +7 -0
  528. package/dist/components/features/settings/agent-profiles/delete-agent-profile-modal.d.ts +7 -0
  529. package/dist/components/features/settings/agent-profiles/index.d.ts +6 -0
  530. package/dist/components/features/settings/agent-profiles/merge-agent-profile-save-input.d.ts +18 -0
  531. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.cjs +1 -1
  532. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.js +1 -0
  533. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  534. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +1 -1
  535. package/dist/components/features/settings/llm-profiles/profile-row.d.ts +3 -1
  536. package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +3 -1
  537. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.cjs +1 -1
  538. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.cjs.map +1 -1
  539. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.js +3 -2
  540. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.js.map +1 -1
  541. package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs +7 -7
  542. package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs.map +1 -1
  543. package/dist/components/features/settings/mcp-settings/mcp-server-form.js +279 -130
  544. package/dist/components/features/settings/mcp-settings/mcp-server-form.js.map +1 -1
  545. package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +1 -12
  546. package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +1 -11
  547. package/dist/components/features/settings/settings-dropdown-input.cjs +1 -1
  548. package/dist/components/features/settings/settings-dropdown-input.js +6 -6
  549. package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
  550. package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
  551. package/dist/components/features/sidebar/sidebar-rail-body.d.ts +1 -2
  552. package/dist/components/features/sidebar/sidebar-rail-body.js +81 -82
  553. package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
  554. package/dist/components/features/sidebar/sidebar.cjs +1 -1
  555. package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
  556. package/dist/components/features/sidebar/sidebar.js +45 -46
  557. package/dist/components/features/sidebar/sidebar.js.map +1 -1
  558. package/dist/components/features/skills/extensions-navigation.cjs +1 -1
  559. package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
  560. package/dist/components/features/skills/extensions-navigation.js +1 -2
  561. package/dist/components/features/skills/extensions-navigation.js.map +1 -1
  562. package/dist/components/shared/modals/modal-backdrop.cjs +1 -1
  563. package/dist/components/shared/modals/modal-backdrop.cjs.map +1 -1
  564. package/dist/components/shared/modals/modal-backdrop.d.ts +5 -1
  565. package/dist/components/shared/modals/modal-backdrop.js +3 -3
  566. package/dist/components/shared/modals/modal-backdrop.js.map +1 -1
  567. package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
  568. package/dist/components/shared/modals/settings/model-selector.js +16 -16
  569. package/dist/config/defaults.cjs +1 -1
  570. package/dist/config/defaults.cjs.map +1 -1
  571. package/dist/config/defaults.js +7 -3
  572. package/dist/config/defaults.js.map +1 -1
  573. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  574. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  575. package/dist/contexts/conversation-websocket-context.js +200 -197
  576. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  577. package/dist/hooks/chat/use-goal-interceptor.cjs +2 -0
  578. package/dist/hooks/chat/use-goal-interceptor.cjs.map +1 -0
  579. package/dist/hooks/chat/use-goal-interceptor.d.ts +8 -0
  580. package/dist/hooks/chat/use-goal-interceptor.js +37 -0
  581. package/dist/hooks/chat/use-goal-interceptor.js.map +1 -0
  582. package/dist/hooks/chat/use-grip-resize.cjs +1 -1
  583. package/dist/hooks/chat/use-grip-resize.cjs.map +1 -1
  584. package/dist/hooks/chat/use-grip-resize.js +17 -16
  585. package/dist/hooks/chat/use-grip-resize.js.map +1 -1
  586. package/dist/hooks/chat/use-model-interceptor.cjs +1 -1
  587. package/dist/hooks/chat/use-model-interceptor.cjs.map +1 -1
  588. package/dist/hooks/chat/use-model-interceptor.d.ts +3 -3
  589. package/dist/hooks/chat/use-model-interceptor.js +8 -9
  590. package/dist/hooks/chat/use-model-interceptor.js.map +1 -1
  591. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  592. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  593. package/dist/hooks/chat/use-slash-command.js +4 -4
  594. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  595. package/dist/hooks/mutation/conversation-mutation-utils.cjs +1 -1
  596. package/dist/hooks/mutation/conversation-mutation-utils.cjs.map +1 -1
  597. package/dist/hooks/mutation/conversation-mutation-utils.d.ts +17 -0
  598. package/dist/hooks/mutation/conversation-mutation-utils.js +23 -4
  599. package/dist/hooks/mutation/conversation-mutation-utils.js.map +1 -1
  600. package/dist/hooks/mutation/use-activate-agent-profile.cjs +2 -0
  601. package/dist/hooks/mutation/use-activate-agent-profile.cjs.map +1 -0
  602. package/dist/hooks/mutation/use-activate-agent-profile.d.ts +23 -0
  603. package/dist/hooks/mutation/use-activate-agent-profile.js +34 -0
  604. package/dist/hooks/mutation/use-activate-agent-profile.js.map +1 -0
  605. package/dist/hooks/mutation/use-activate-llm-profile.cjs +1 -1
  606. package/dist/hooks/mutation/use-activate-llm-profile.js +1 -1
  607. package/dist/hooks/mutation/use-add-mcp-server.cjs +1 -1
  608. package/dist/hooks/mutation/use-add-mcp-server.cjs.map +1 -1
  609. package/dist/hooks/mutation/use-add-mcp-server.d.ts +1 -12
  610. package/dist/hooks/mutation/use-add-mcp-server.js +10 -34
  611. package/dist/hooks/mutation/use-add-mcp-server.js.map +1 -1
  612. package/dist/hooks/mutation/use-apply-onboarding-agent-profile.d.ts +20 -0
  613. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  614. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  615. package/dist/hooks/mutation/use-create-conversation.d.ts +2 -0
  616. package/dist/hooks/mutation/use-create-conversation.js +94 -25
  617. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  618. package/dist/hooks/mutation/use-delete-agent-profile.d.ts +1 -0
  619. package/dist/hooks/mutation/use-delete-llm-profile.cjs +1 -1
  620. package/dist/hooks/mutation/use-delete-llm-profile.js +1 -1
  621. package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
  622. package/dist/hooks/mutation/use-delete-mcp-server.js +4 -4
  623. package/dist/hooks/mutation/use-fork-conversation.cjs +2 -0
  624. package/dist/hooks/mutation/use-fork-conversation.cjs.map +1 -0
  625. package/dist/hooks/mutation/use-fork-conversation.d.ts +24 -0
  626. package/dist/hooks/mutation/use-fork-conversation.js +29 -0
  627. package/dist/hooks/mutation/use-fork-conversation.js.map +1 -0
  628. package/dist/hooks/mutation/use-install-plugin.d.ts +7 -0
  629. package/dist/hooks/mutation/use-new-conversation-command.cjs +1 -1
  630. package/dist/hooks/mutation/use-new-conversation-command.cjs.map +1 -1
  631. package/dist/hooks/mutation/use-new-conversation-command.d.ts +1 -0
  632. package/dist/hooks/mutation/use-new-conversation-command.js +20 -10
  633. package/dist/hooks/mutation/use-new-conversation-command.js.map +1 -1
  634. package/dist/hooks/mutation/use-rename-agent-profile.d.ts +6 -0
  635. package/dist/hooks/mutation/use-rename-llm-profile.cjs +1 -1
  636. package/dist/hooks/mutation/use-rename-llm-profile.js +1 -1
  637. package/dist/hooks/mutation/use-save-agent-profile.d.ts +5 -0
  638. package/dist/hooks/mutation/use-save-llm-profile.cjs +1 -1
  639. package/dist/hooks/mutation/use-save-llm-profile.js +1 -1
  640. package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
  641. package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
  642. package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs +1 -1
  643. package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs.map +1 -1
  644. package/dist/hooks/mutation/use-switch-llm-profile-and-log.d.ts +3 -4
  645. package/dist/hooks/mutation/use-switch-llm-profile-and-log.js +10 -35
  646. package/dist/hooks/mutation/use-switch-llm-profile-and-log.js.map +1 -1
  647. package/dist/hooks/mutation/use-switch-llm-profile.cjs +1 -1
  648. package/dist/hooks/mutation/use-switch-llm-profile.cjs.map +1 -1
  649. package/dist/hooks/mutation/use-switch-llm-profile.d.ts +20 -5
  650. package/dist/hooks/mutation/use-switch-llm-profile.js +38 -14
  651. package/dist/hooks/mutation/use-switch-llm-profile.js.map +1 -1
  652. package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
  653. package/dist/hooks/mutation/use-update-mcp-server.cjs.map +1 -1
  654. package/dist/hooks/mutation/use-update-mcp-server.js +11 -37
  655. package/dist/hooks/mutation/use-update-mcp-server.js.map +1 -1
  656. package/dist/hooks/query/query-keys.cjs +1 -1
  657. package/dist/hooks/query/query-keys.cjs.map +1 -1
  658. package/dist/hooks/query/query-keys.d.ts +21 -0
  659. package/dist/hooks/query/query-keys.js +7 -3
  660. package/dist/hooks/query/query-keys.js.map +1 -1
  661. package/dist/hooks/query/use-active-conversation.cjs +1 -1
  662. package/dist/hooks/query/use-active-conversation.cjs.map +1 -1
  663. package/dist/hooks/query/use-active-conversation.js +17 -16
  664. package/dist/hooks/query/use-active-conversation.js.map +1 -1
  665. package/dist/hooks/query/use-agent-profiles.cjs +2 -0
  666. package/dist/hooks/query/use-agent-profiles.cjs.map +1 -0
  667. package/dist/hooks/query/use-agent-profiles.d.ts +13 -0
  668. package/dist/hooks/query/use-agent-profiles.js +24 -0
  669. package/dist/hooks/query/use-agent-profiles.js.map +1 -0
  670. package/dist/hooks/query/use-backends-health.cjs +1 -1
  671. package/dist/hooks/query/use-backends-health.cjs.map +1 -1
  672. package/dist/hooks/query/use-backends-health.js +18 -3
  673. package/dist/hooks/query/use-backends-health.js.map +1 -1
  674. package/dist/hooks/query/use-conversation-history.cjs +1 -1
  675. package/dist/hooks/query/use-conversation-history.cjs.map +1 -1
  676. package/dist/hooks/query/use-conversation-history.js +4 -2
  677. package/dist/hooks/query/use-conversation-history.js.map +1 -1
  678. package/dist/hooks/query/use-local-workspaces.cjs +1 -1
  679. package/dist/hooks/query/use-local-workspaces.cjs.map +1 -1
  680. package/dist/hooks/query/use-local-workspaces.js +1 -0
  681. package/dist/hooks/query/use-local-workspaces.js.map +1 -1
  682. package/dist/hooks/query/use-plugins-marketplace.d.ts +7 -0
  683. package/dist/hooks/query/use-resolved-workspaces.cjs +1 -1
  684. package/dist/hooks/query/use-resolved-workspaces.cjs.map +1 -1
  685. package/dist/hooks/query/use-resolved-workspaces.js +7 -6
  686. package/dist/hooks/query/use-resolved-workspaces.js.map +1 -1
  687. package/dist/hooks/query/use-search-subdirs.cjs +1 -1
  688. package/dist/hooks/query/use-search-subdirs.cjs.map +1 -1
  689. package/dist/hooks/query/use-search-subdirs.js +1 -0
  690. package/dist/hooks/query/use-search-subdirs.js.map +1 -1
  691. package/dist/hooks/query/use-settings.cjs +1 -1
  692. package/dist/hooks/query/use-settings.cjs.map +1 -1
  693. package/dist/hooks/query/use-settings.js +11 -11
  694. package/dist/hooks/query/use-settings.js.map +1 -1
  695. package/dist/hooks/query/use-verified-models.cjs +1 -1
  696. package/dist/hooks/query/use-verified-models.cjs.map +1 -1
  697. package/dist/hooks/query/use-verified-models.js +1 -0
  698. package/dist/hooks/query/use-verified-models.js.map +1 -1
  699. package/dist/hooks/use-acp-model-context.cjs +1 -1
  700. package/dist/hooks/use-acp-model-context.cjs.map +1 -1
  701. package/dist/hooks/use-acp-model-context.d.ts +1 -1
  702. package/dist/hooks/use-acp-model-context.js +9 -8
  703. package/dist/hooks/use-acp-model-context.js.map +1 -1
  704. package/dist/hooks/use-active-agent-profile.cjs +2 -0
  705. package/dist/hooks/use-active-agent-profile.cjs.map +1 -0
  706. package/dist/hooks/use-active-agent-profile.d.ts +20 -0
  707. package/dist/hooks/use-active-agent-profile.js +17 -0
  708. package/dist/hooks/use-active-agent-profile.js.map +1 -0
  709. package/dist/hooks/use-auto-resize.cjs +1 -1
  710. package/dist/hooks/use-auto-resize.cjs.map +1 -1
  711. package/dist/hooks/use-auto-resize.d.ts +2 -0
  712. package/dist/hooks/use-auto-resize.js +49 -45
  713. package/dist/hooks/use-auto-resize.js.map +1 -1
  714. package/dist/hooks/use-can-manage-org-profiles.cjs +1 -0
  715. package/dist/hooks/use-can-manage-org-profiles.d.ts +18 -0
  716. package/dist/hooks/use-can-manage-org-profiles.js +2 -0
  717. package/dist/hooks/use-chat-input-llm-profile-state.cjs +2 -0
  718. package/dist/hooks/use-chat-input-llm-profile-state.cjs.map +1 -0
  719. package/dist/hooks/use-chat-input-llm-profile-state.d.ts +23 -0
  720. package/dist/hooks/use-chat-input-llm-profile-state.js +30 -0
  721. package/dist/hooks/use-chat-input-llm-profile-state.js.map +1 -0
  722. package/dist/hooks/use-chat-input-model-state.cjs.map +1 -1
  723. package/dist/hooks/use-chat-input-model-state.d.ts +1 -1
  724. package/dist/hooks/use-chat-input-model-state.js.map +1 -1
  725. package/dist/hooks/use-chat-input-profile-state.cjs +2 -0
  726. package/dist/hooks/use-chat-input-profile-state.cjs.map +1 -0
  727. package/dist/hooks/use-chat-input-profile-state.d.ts +20 -0
  728. package/dist/hooks/use-chat-input-profile-state.js +22 -0
  729. package/dist/hooks/use-chat-input-profile-state.js.map +1 -0
  730. package/dist/hooks/use-conversation-name-context-menu.cjs +1 -1
  731. package/dist/hooks/use-conversation-name-context-menu.cjs.map +1 -1
  732. package/dist/hooks/use-conversation-name-context-menu.d.ts +4 -0
  733. package/dist/hooks/use-conversation-name-context-menu.js +44 -37
  734. package/dist/hooks/use-conversation-name-context-menu.js.map +1 -1
  735. package/dist/hooks/use-conversation-plugins.cjs +2 -0
  736. package/dist/hooks/use-conversation-plugins.cjs.map +1 -0
  737. package/dist/hooks/use-conversation-plugins.d.ts +9 -0
  738. package/dist/hooks/use-conversation-plugins.js +12 -0
  739. package/dist/hooks/use-conversation-plugins.js.map +1 -0
  740. package/dist/hooks/use-handle-plan-click.cjs +1 -1
  741. package/dist/hooks/use-handle-plan-click.cjs.map +1 -1
  742. package/dist/hooks/use-handle-plan-click.js +2 -1
  743. package/dist/hooks/use-handle-plan-click.js.map +1 -1
  744. package/dist/hooks/use-llm-configured.cjs +1 -1
  745. package/dist/hooks/use-llm-configured.cjs.map +1 -1
  746. package/dist/hooks/use-llm-configured.js +17 -16
  747. package/dist/hooks/use-llm-configured.js.map +1 -1
  748. package/dist/hooks/use-tracking.cjs +1 -1
  749. package/dist/hooks/use-tracking.cjs.map +1 -1
  750. package/dist/hooks/use-tracking.d.ts +51 -1
  751. package/dist/hooks/use-tracking.js +61 -2
  752. package/dist/hooks/use-tracking.js.map +1 -1
  753. package/dist/i18n/declaration.cjs +1 -1
  754. package/dist/i18n/declaration.cjs.map +1 -1
  755. package/dist/i18n/declaration.d.ts +138 -1
  756. package/dist/i18n/declaration.js +1 -1
  757. package/dist/i18n/declaration.js.map +1 -1
  758. package/dist/i18n/translation.cjs +18 -3
  759. package/dist/i18n/translation.cjs.map +1 -1
  760. package/dist/i18n/translation.js +2329 -0
  761. package/dist/i18n/translation.js.map +1 -1
  762. package/dist/icons/slack.cjs +2 -0
  763. package/dist/icons/slack.cjs.map +1 -0
  764. package/dist/icons/slack.js +19 -0
  765. package/dist/icons/slack.js.map +1 -0
  766. package/dist/icons/u-puzzle-piece.cjs +2 -0
  767. package/dist/icons/u-puzzle-piece.cjs.map +1 -0
  768. package/dist/icons/u-puzzle-piece.js +19 -0
  769. package/dist/icons/u-puzzle-piece.js.map +1 -0
  770. package/dist/icons/x-circle-solid.cjs +2 -0
  771. package/dist/icons/x-circle-solid.cjs.map +1 -0
  772. package/dist/icons/x-circle-solid.js +13 -0
  773. package/dist/icons/x-circle-solid.js.map +1 -0
  774. package/dist/locales/ar/openhands.json +138 -1
  775. package/dist/locales/ca/openhands.json +138 -1
  776. package/dist/locales/de/openhands.json +138 -1
  777. package/dist/locales/en/openhands.json +138 -1
  778. package/dist/locales/es/openhands.json +138 -1
  779. package/dist/locales/fr/openhands.json +138 -1
  780. package/dist/locales/it/openhands.json +138 -1
  781. package/dist/locales/ja/openhands.json +138 -1
  782. package/dist/locales/ko-KR/openhands.json +138 -1
  783. package/dist/locales/no/openhands.json +138 -1
  784. package/dist/locales/pt/openhands.json +138 -1
  785. package/dist/locales/tr/openhands.json +138 -1
  786. package/dist/locales/uk/openhands.json +138 -1
  787. package/dist/locales/zh-CN/openhands.json +138 -1
  788. package/dist/locales/zh-TW/openhands.json +138 -1
  789. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs +1 -1
  790. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs.map +1 -1
  791. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js +0 -20
  792. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js.map +1 -1
  793. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.cjs +1 -1
  794. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.cjs.map +1 -1
  795. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.js +1 -6
  796. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.js.map +1 -1
  797. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs +1 -1
  798. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs.map +1 -1
  799. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js +70 -3
  800. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js.map +1 -1
  801. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.cjs +1 -1
  802. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.cjs.map +1 -1
  803. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.js +1 -6
  804. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.js.map +1 -1
  805. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.cjs +1 -1
  806. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.cjs.map +1 -1
  807. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.js +1 -6
  808. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.js.map +1 -1
  809. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.cjs +1 -1
  810. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.cjs.map +1 -1
  811. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.js +3 -7
  812. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.js.map +1 -1
  813. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.cjs +1 -1
  814. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.cjs.map +1 -1
  815. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.js +1 -6
  816. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.js.map +1 -1
  817. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs +1 -1
  818. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
  819. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +27 -2
  820. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
  821. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.cjs +1 -1
  822. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.cjs.map +1 -1
  823. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.js +1 -6
  824. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.js.map +1 -1
  825. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs +1 -1
  826. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs.map +1 -1
  827. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js +20 -26
  828. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js.map +1 -1
  829. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs +1 -1
  830. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs.map +1 -1
  831. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js +0 -9
  832. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js.map +1 -1
  833. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.cjs +1 -1
  834. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.cjs.map +1 -1
  835. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.js +1 -6
  836. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.js.map +1 -1
  837. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.cjs +1 -1
  838. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.cjs.map +1 -1
  839. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.js +1 -6
  840. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.js.map +1 -1
  841. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.cjs +1 -1
  842. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.cjs.map +1 -1
  843. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.js +1 -6
  844. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.js.map +1 -1
  845. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.cjs +1 -1
  846. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.cjs.map +1 -1
  847. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.js +1 -6
  848. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.js.map +1 -1
  849. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.cjs +1 -1
  850. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.cjs.map +1 -1
  851. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.js +1 -6
  852. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.js.map +1 -1
  853. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.cjs +1 -1
  854. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.cjs.map +1 -1
  855. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.js +1 -6
  856. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.js.map +1 -1
  857. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.cjs +1 -1
  858. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.cjs.map +1 -1
  859. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.js +1 -6
  860. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.js.map +1 -1
  861. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs +1 -1
  862. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs.map +1 -1
  863. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js +13 -13
  864. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js.map +1 -1
  865. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.cjs +1 -1
  866. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.cjs.map +1 -1
  867. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.js +1 -6
  868. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.js.map +1 -1
  869. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.cjs +1 -1
  870. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.cjs.map +1 -1
  871. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.js +1 -6
  872. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.js.map +1 -1
  873. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.cjs +1 -1
  874. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.cjs.map +1 -1
  875. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.js +14 -10
  876. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.js.map +1 -1
  877. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.cjs +1 -1
  878. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.cjs.map +1 -1
  879. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.js +13 -10
  880. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.js.map +1 -1
  881. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.cjs +1 -1
  882. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.cjs.map +1 -1
  883. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.js +1 -6
  884. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.js.map +1 -1
  885. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
  886. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
  887. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +1 -8
  888. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
  889. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.cjs +1 -1
  890. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.cjs.map +1 -1
  891. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.js +1 -6
  892. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.js.map +1 -1
  893. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.cjs +1 -1
  894. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.cjs.map +1 -1
  895. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.js +1 -6
  896. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.js.map +1 -1
  897. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs +1 -1
  898. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs.map +1 -1
  899. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js +20 -18
  900. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
  901. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.cjs +1 -1
  902. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.cjs.map +1 -1
  903. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.js +66 -21
  904. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.js.map +1 -1
  905. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.cjs +1 -1
  906. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.cjs.map +1 -1
  907. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.js +17 -11
  908. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.js.map +1 -1
  909. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs +1 -1
  910. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs.map +1 -1
  911. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js +12 -17
  912. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js.map +1 -1
  913. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.cjs +1 -1
  914. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.cjs.map +1 -1
  915. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.js +1 -6
  916. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.js.map +1 -1
  917. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs +1 -1
  918. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs.map +1 -1
  919. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js +1 -1
  920. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js.map +1 -1
  921. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs +1 -1
  922. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs.map +1 -1
  923. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js +14 -19
  924. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js.map +1 -1
  925. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs +1 -1
  926. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs.map +1 -1
  927. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js +15 -20
  928. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js.map +1 -1
  929. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.cjs +2 -0
  930. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.cjs.map +1 -0
  931. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.js +33 -0
  932. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.js.map +1 -0
  933. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.cjs +1 -1
  934. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.cjs.map +1 -1
  935. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.js +10 -8
  936. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.js.map +1 -1
  937. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.cjs +1 -1
  938. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.cjs.map +1 -1
  939. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.js +1 -6
  940. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.js.map +1 -1
  941. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.cjs +1 -1
  942. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.cjs.map +1 -1
  943. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.js +1 -6
  944. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.js.map +1 -1
  945. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.cjs +1 -1
  946. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.cjs.map +1 -1
  947. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.js +1 -6
  948. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.js.map +1 -1
  949. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
  950. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
  951. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +71 -89
  952. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
  953. package/dist/node_modules/@openhands/extensions/integrations/index.cjs +1 -1
  954. package/dist/node_modules/@openhands/extensions/integrations/index.cjs.map +1 -1
  955. package/dist/node_modules/@openhands/extensions/integrations/index.js +4 -4
  956. package/dist/node_modules/@openhands/extensions/integrations/index.js.map +1 -1
  957. package/dist/node_modules/@openhands/extensions/skills/index.cjs +502 -43
  958. package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
  959. package/dist/node_modules/@openhands/extensions/skills/index.js +58 -33
  960. package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
  961. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.cjs +2 -0
  962. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.cjs.map +1 -0
  963. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.js +40 -0
  964. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.js.map +1 -0
  965. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs +1 -1
  966. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs.map +1 -1
  967. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js +4 -4
  968. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js.map +1 -1
  969. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs +1 -1
  970. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs.map +1 -1
  971. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js +3 -0
  972. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js.map +1 -1
  973. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
  974. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
  975. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +3 -0
  976. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
  977. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs +1 -0
  978. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js +1 -0
  979. package/dist/node_modules/@openhands/typescript-client/dist/client/hooks-client.cjs +1 -0
  980. package/dist/node_modules/@openhands/typescript-client/dist/client/hooks-client.js +1 -0
  981. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.cjs +1 -1
  982. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.cjs.map +1 -1
  983. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.js +84 -27
  984. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.js.map +1 -1
  985. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs +1 -1
  986. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs.map +1 -1
  987. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js +9 -0
  988. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js.map +1 -1
  989. package/dist/node_modules/@openhands/typescript-client/dist/client/meta-profiles-client.cjs +1 -0
  990. package/dist/node_modules/@openhands/typescript-client/dist/client/meta-profiles-client.js +1 -0
  991. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.cjs +2 -0
  992. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.cjs.map +1 -0
  993. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.js +42 -0
  994. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.js.map +1 -0
  995. package/dist/node_modules/@openhands/typescript-client/dist/client/shared-client.cjs +1 -0
  996. package/dist/node_modules/@openhands/typescript-client/dist/client/shared-client.js +1 -0
  997. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.cjs +1 -1
  998. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.cjs.map +1 -1
  999. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.js +1 -1
  1000. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.js.map +1 -1
  1001. package/dist/node_modules/@openhands/typescript-client/dist/client/sub-agents-client.cjs +1 -0
  1002. package/dist/node_modules/@openhands/typescript-client/dist/client/sub-agents-client.js +1 -0
  1003. package/dist/node_modules/@openhands/typescript-client/dist/client/tool-client.cjs +1 -0
  1004. package/dist/node_modules/@openhands/typescript-client/dist/client/tool-client.js +1 -0
  1005. package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -0
  1006. package/dist/node_modules/@openhands/typescript-client/dist/clients.js +20 -0
  1007. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.cjs +1 -1
  1008. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.js +18 -0
  1009. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation.cjs +1 -1
  1010. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation.js +1 -0
  1011. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs +1 -1
  1012. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.js +2 -0
  1013. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs +1 -1
  1014. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map +1 -1
  1015. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js +15 -17
  1016. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map +1 -1
  1017. package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
  1018. package/dist/node_modules/@openhands/typescript-client/dist/index.js +3 -0
  1019. package/dist/node_modules/@openhands/typescript-client/dist/workspace/workspace.cjs +1 -0
  1020. package/dist/node_modules/@openhands/typescript-client/dist/workspace/workspace.js +1 -0
  1021. package/dist/package.cjs +1 -1
  1022. package/dist/package.cjs.map +1 -1
  1023. package/dist/package.js +7 -4
  1024. package/dist/package.js.map +1 -1
  1025. package/dist/routes/agent-settings.d.ts +106 -0
  1026. package/dist/routes/files-tab.cjs +1 -1
  1027. package/dist/routes/files-tab.js +23 -23
  1028. package/dist/routes/llm-settings.cjs +1 -1
  1029. package/dist/routes/llm-settings.cjs.map +1 -1
  1030. package/dist/routes/llm-settings.d.ts +6 -4
  1031. package/dist/routes/llm-settings.js +0 -1
  1032. package/dist/routes/llm-settings.js.map +1 -1
  1033. package/dist/routes/mcp.cjs.map +1 -1
  1034. package/dist/routes/mcp.js.map +1 -1
  1035. package/dist/services/settings.cjs +1 -1
  1036. package/dist/services/settings.cjs.map +1 -1
  1037. package/dist/services/settings.js +2 -6
  1038. package/dist/services/settings.js.map +1 -1
  1039. package/dist/stores/command-menu-store.cjs +2 -0
  1040. package/dist/stores/command-menu-store.cjs.map +1 -0
  1041. package/dist/stores/command-menu-store.d.ts +8 -0
  1042. package/dist/stores/command-menu-store.js +12 -0
  1043. package/dist/stores/command-menu-store.js.map +1 -0
  1044. package/dist/stores/conversation-panel-preferences-store.cjs +1 -1
  1045. package/dist/stores/conversation-panel-preferences-store.cjs.map +1 -1
  1046. package/dist/stores/conversation-panel-preferences-store.js +1 -1
  1047. package/dist/stores/conversation-panel-preferences-store.js.map +1 -1
  1048. package/dist/stores/conversation-store.cjs +1 -1
  1049. package/dist/stores/conversation-store.cjs.map +1 -1
  1050. package/dist/stores/conversation-store.d.ts +1 -0
  1051. package/dist/stores/conversation-store.js +1 -0
  1052. package/dist/stores/conversation-store.js.map +1 -1
  1053. package/dist/stores/goal-store.cjs +2 -0
  1054. package/dist/stores/goal-store.cjs.map +1 -0
  1055. package/dist/stores/goal-store.d.ts +28 -0
  1056. package/dist/stores/goal-store.js +14 -0
  1057. package/dist/stores/goal-store.js.map +1 -0
  1058. package/dist/themes/color-themes.cjs +3 -3
  1059. package/dist/themes/color-themes.cjs.map +1 -1
  1060. package/dist/themes/color-themes.d.ts +13 -2
  1061. package/dist/themes/color-themes.js +2 -2
  1062. package/dist/themes/color-themes.js.map +1 -1
  1063. package/dist/types/agent-server/core/events/conversation-state-event.d.ts +39 -3
  1064. package/dist/types/agent-server/type-guards.cjs +1 -1
  1065. package/dist/types/agent-server/type-guards.cjs.map +1 -1
  1066. package/dist/types/agent-server/type-guards.d.ts +2 -1
  1067. package/dist/types/agent-server/type-guards.js +3 -3
  1068. package/dist/types/agent-server/type-guards.js.map +1 -1
  1069. package/dist/types/mcp-auth.cjs +2 -0
  1070. package/dist/types/mcp-auth.cjs.map +1 -0
  1071. package/dist/types/mcp-auth.d.ts +43 -0
  1072. package/dist/types/mcp-auth.js +13 -0
  1073. package/dist/types/mcp-auth.js.map +1 -0
  1074. package/dist/types/mcp-server.d.ts +22 -1
  1075. package/dist/types/settings.d.ts +6 -4
  1076. package/dist/ui/context-menu.d.ts +1 -1
  1077. package/dist/utils/acp-command.d.ts +64 -0
  1078. package/dist/utils/automation-debug-prompt.d.ts +18 -0
  1079. package/dist/utils/constants.cjs +1 -1
  1080. package/dist/utils/constants.cjs.map +1 -1
  1081. package/dist/utils/constants.d.ts +2 -0
  1082. package/dist/utils/constants.js +12 -3
  1083. package/dist/utils/constants.js.map +1 -1
  1084. package/dist/utils/dropdown-classes.cjs +1 -1
  1085. package/dist/utils/dropdown-classes.cjs.map +1 -1
  1086. package/dist/utils/dropdown-classes.js +4 -2
  1087. package/dist/utils/dropdown-classes.js.map +1 -1
  1088. package/dist/utils/form-control-classes.cjs +1 -1
  1089. package/dist/utils/form-control-classes.js +1 -1
  1090. package/dist/utils/handle-event-for-ui.cjs +1 -1
  1091. package/dist/utils/handle-event-for-ui.cjs.map +1 -1
  1092. package/dist/utils/handle-event-for-ui.js +72 -37
  1093. package/dist/utils/handle-event-for-ui.js.map +1 -1
  1094. package/dist/utils/mcp-config.cjs +1 -1
  1095. package/dist/utils/mcp-config.cjs.map +1 -1
  1096. package/dist/utils/mcp-config.d.ts +15 -9
  1097. package/dist/utils/mcp-config.js +124 -53
  1098. package/dist/utils/mcp-config.js.map +1 -1
  1099. package/dist/utils/mcp-installed-server-display.cjs +2 -0
  1100. package/dist/utils/mcp-installed-server-display.cjs.map +1 -0
  1101. package/dist/utils/mcp-installed-server-display.d.ts +8 -0
  1102. package/dist/utils/mcp-installed-server-display.js +12 -0
  1103. package/dist/utils/mcp-installed-server-display.js.map +1 -0
  1104. package/dist/utils/mcp-installed-servers.cjs +1 -1
  1105. package/dist/utils/mcp-installed-servers.cjs.map +1 -1
  1106. package/dist/utils/mcp-installed-servers.js +4 -4
  1107. package/dist/utils/mcp-installed-servers.js.map +1 -1
  1108. package/dist/utils/mcp-marketplace-utils.cjs +1 -1
  1109. package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
  1110. package/dist/utils/mcp-marketplace-utils.d.ts +2 -0
  1111. package/dist/utils/mcp-marketplace-utils.js +31 -16
  1112. package/dist/utils/mcp-marketplace-utils.js.map +1 -1
  1113. package/dist/utils/mcp-server-name.cjs +2 -0
  1114. package/dist/utils/mcp-server-name.cjs.map +1 -0
  1115. package/dist/utils/mcp-server-name.d.ts +3 -0
  1116. package/dist/utils/mcp-server-name.js +12 -0
  1117. package/dist/utils/mcp-server-name.js.map +1 -0
  1118. package/dist/utils/plugin-display.cjs +2 -0
  1119. package/dist/utils/plugin-display.cjs.map +1 -0
  1120. package/dist/utils/plugin-display.d.ts +20 -0
  1121. package/dist/utils/plugin-display.js +29 -0
  1122. package/dist/utils/plugin-display.js.map +1 -0
  1123. package/dist/utils/settings-utils.cjs.map +1 -1
  1124. package/dist/utils/settings-utils.js.map +1 -1
  1125. package/dist/utils/workspaces-compatibility.cjs +1 -1
  1126. package/dist/utils/workspaces-compatibility.cjs.map +1 -1
  1127. package/dist/utils/workspaces-compatibility.js +1 -0
  1128. package/dist/utils/workspaces-compatibility.js.map +1 -1
  1129. package/package.json +7 -4
  1130. package/scripts/check-sdk-version-sync.mjs +6 -6
  1131. package/scripts/check-translation-completeness.cjs +6 -0
  1132. package/scripts/dev-safe.mjs +14 -3
  1133. package/scripts/dev-with-automation.mjs +4 -0
  1134. package/scripts/gen-acp-docker-env.mjs +107 -0
  1135. package/scripts/ingress.mjs +66 -226
  1136. package/scripts/proxy-utils.mjs +171 -0
  1137. package/scripts/static-server.mjs +127 -283
  1138. package/build/assets/Trans-CiZR6eVI.js +0 -1
  1139. package/build/assets/active-backend-context-CEuva6ZJ.js +0 -1
  1140. package/build/assets/add-backend-modal-b_eiVk3A.js +0 -1
  1141. package/build/assets/agent-server-conversation-service.api-D_uJ7BKc.js +0 -5
  1142. package/build/assets/agent-settings-DyfziYyM.js +0 -2
  1143. package/build/assets/alert-banner-BFayS5vM.js +0 -1
  1144. package/build/assets/analytics-consent-form-modal-CQ22qlFF.js +0 -1
  1145. package/build/assets/api-key-entry-screen-KnIwP0vN.js +0 -1
  1146. package/build/assets/app-settings-CBaHJ5vJ.js +0 -1
  1147. package/build/assets/automation-detail-DgQswnXg.js +0 -1
  1148. package/build/assets/automations-list-D99p6CoQ.js +0 -1
  1149. package/build/assets/back-nav-button-Cp9z-wsG.js +0 -1
  1150. package/build/assets/backend-form-modal-BABAz-zH.js +0 -1
  1151. package/build/assets/backend-synced-settings-badge-DzwWQC4T.js +0 -1
  1152. package/build/assets/base-modal-1bHiB5Wf.js +0 -1
  1153. package/build/assets/brand-button-FHWgEb4Q.js +0 -1
  1154. package/build/assets/browser-store-B9h0eW79.js +0 -1
  1155. package/build/assets/browser-tab-JiCXo0Nc.js +0 -1
  1156. package/build/assets/chat-send-button-QtyofqFt.js +0 -1
  1157. package/build/assets/check-6ieIiPhW.js +0 -1
  1158. package/build/assets/checkmark-BfgRVMHK.js +0 -1
  1159. package/build/assets/circle-plus-check-toggle-CmINKfZj.js +0 -1
  1160. package/build/assets/close-DhH0uMa7.js +0 -1
  1161. package/build/assets/code-tag-CnORXDJj.js +0 -1
  1162. package/build/assets/combobox-caret-BB15S7zY.js +0 -1
  1163. package/build/assets/condenser-settings-BOKNShD9.js +0 -1
  1164. package/build/assets/confirmation-modal-CofmThy4.js +0 -1
  1165. package/build/assets/context-menu-list-item-DO12IEaK.js +0 -1
  1166. package/build/assets/conversation-DIzv-jq8.js +0 -1
  1167. package/build/assets/conversation-DV3odvMe.js +0 -19
  1168. package/build/assets/conversation-local-storage-DK7yJr5N.js +0 -1
  1169. package/build/assets/conversation-panel-CgCarTAn.js +0 -1
  1170. package/build/assets/conversation-service.api-RV_bOKNz.js +0 -1
  1171. package/build/assets/conversation-state-store-4obo4ZMf.js +0 -1
  1172. package/build/assets/conversation-store-CXrL0v-X.js +0 -6
  1173. package/build/assets/conversation-tab-empty-state-CqT5ur_H.js +0 -1
  1174. package/build/assets/copy-C5tBqfWu.js +0 -1
  1175. package/build/assets/copy-to-clipboard-button-BVFYcsg_.js +0 -1
  1176. package/build/assets/createLucideIcon-D3nkdIAN.js +0 -1
  1177. package/build/assets/declaration-B0yY_dkQ.js +0 -1
  1178. package/build/assets/device-verify-DRupI_hz.js +0 -1
  1179. package/build/assets/dist-D5d5zm8o.js +0 -1
  1180. package/build/assets/dist-fV7trlfb.js +0 -1
  1181. package/build/assets/dropdown-classes-5IsMjYYw.js +0 -1
  1182. package/build/assets/edit-automation-modal-BG-gd82b.js +0 -1
  1183. package/build/assets/ellipsis-button-DWvVZO_r.js +0 -1
  1184. package/build/assets/entry.client-uhbVfCtd.js +0 -2
  1185. package/build/assets/enum-filter-dropdown-CB2fqz_e.js +0 -1
  1186. package/build/assets/environment-switch-overlay-Oeal5TVq.js +0 -1
  1187. package/build/assets/extensions-hub-DxiE0AZR.js +0 -1
  1188. package/build/assets/files-tab-1F2OlNeH.js +0 -1
  1189. package/build/assets/files-tab-store-C1q5Rbx3.js +0 -1
  1190. package/build/assets/folder-C5tr7xyN.js +0 -1
  1191. package/build/assets/get-language-from-path-E1JKsbeE.js +0 -1
  1192. package/build/assets/git-provider-icon-CKs-22Ts.js +0 -1
  1193. package/build/assets/home-B3E0le0g.js +0 -1
  1194. package/build/assets/iconBase-DMoh3FEg.js +0 -1
  1195. package/build/assets/index-redirect-DhuK5mhS.js +0 -1
  1196. package/build/assets/install-server-modal-DjintV14.js +0 -1
  1197. package/build/assets/is-backend-llm-ready-Bj44pekN.js +0 -1
  1198. package/build/assets/launch-DCU3S84p.js +0 -1
  1199. package/build/assets/lesson-plan-BUUPKVsa.js +0 -3
  1200. package/build/assets/link-external-CF4KHxx-.js +0 -1
  1201. package/build/assets/llm-client-BakM_czF.js +0 -1
  1202. package/build/assets/llm-not-configured-banner-BV-NIjfR.js +0 -27
  1203. package/build/assets/llm-settings-B5d7PHzz.js +0 -1
  1204. package/build/assets/llm-settings-C5whb-0p.js +0 -1
  1205. package/build/assets/loader-circle-DyX8DmLg.js +0 -1
  1206. package/build/assets/loading-spinner-BvOAco8a.js +0 -1
  1207. package/build/assets/manage-backends-modal-D9ClxVpM.js +0 -1
  1208. package/build/assets/manifest-38a873aa.js +0 -1
  1209. package/build/assets/mcp-7rk44GRS.js +0 -9
  1210. package/build/assets/mcp-client-DxHXYNOw.js +0 -1
  1211. package/build/assets/messages-DgBEaXil.js +0 -43
  1212. package/build/assets/modal-backdrop-DjAC2zOZ.js +0 -1
  1213. package/build/assets/modal-body-OJdIUJ68.js +0 -1
  1214. package/build/assets/modal-close-button-BNjGesHc.js +0 -1
  1215. package/build/assets/model-selector-w2uGPM5y.js +0 -1
  1216. package/build/assets/navigation-context-CUJ60pLI.js +0 -1
  1217. package/build/assets/navigation-link-BiPKTOHF.js +0 -1
  1218. package/build/assets/onboarding-Cit87z8g.js +0 -1
  1219. package/build/assets/onboarding-modal-JPrzvr8W.js +0 -1
  1220. package/build/assets/openhands-logo-uNs9g6LY.js +0 -1
  1221. package/build/assets/option-service.api-BLYUhnCF.js +0 -1
  1222. package/build/assets/organization-service.api-DpSSwlZu.js +0 -1
  1223. package/build/assets/path-utils-B4WAVqvK.js +0 -1
  1224. package/build/assets/plan-components-DSOTFW2D.js +0 -1
  1225. package/build/assets/planner-tab-LmoxgKKe.js +0 -1
  1226. package/build/assets/preload-helper-D_sPnjeL.js +0 -1
  1227. package/build/assets/profiles-client-B4SJ4ZAf.js +0 -1
  1228. package/build/assets/providers-BGUAB8kf.js +0 -1
  1229. package/build/assets/react-Dn-iWFF5.js +0 -1
  1230. package/build/assets/react-dom-BBXlXOZX.js +0 -1
  1231. package/build/assets/react-uQK8du1l.js +0 -1
  1232. package/build/assets/recommended-automations-launcher-Df9MXUpX.js +0 -50
  1233. package/build/assets/root-BShAdYGY.css +0 -1
  1234. package/build/assets/root-C99reK-P.js +0 -2
  1235. package/build/assets/root-layout-BtH64XeC.js +0 -2
  1236. package/build/assets/runtime-waiting-state-C7MjXDeW.js +0 -1
  1237. package/build/assets/schema-field-BCDuEMrl.js +0 -1
  1238. package/build/assets/sdk-section-page-XJN9mGju.js +0 -1
  1239. package/build/assets/sdk-settings-schema-B15AE1GH.js +0 -1
  1240. package/build/assets/search-rob4u9f8.js +0 -1
  1241. package/build/assets/secrets-service-CrPyCR8u.js +0 -1
  1242. package/build/assets/secrets-settings-UJn15N7E.js +0 -1
  1243. package/build/assets/settings-C5aUD_sQ.js +0 -1
  1244. package/build/assets/settings-dropdown-input-DQRt2_RA.js +0 -1
  1245. package/build/assets/settings-gear-B7bZDo_8.js +0 -1
  1246. package/build/assets/settings-index-zP_rYIW1.js +0 -1
  1247. package/build/assets/settings-input-n8FzVso3.js +0 -1
  1248. package/build/assets/settings-list-classes-DquY3fwm.js +0 -1
  1249. package/build/assets/settings-modal-szlQ6LpE.js +0 -1
  1250. package/build/assets/settings-section-header-context-DrXgyNC-.js +0 -1
  1251. package/build/assets/settings-service.api-B4G8NzCM.js +0 -1
  1252. package/build/assets/settings-switch-DsbEm3ie.js +0 -1
  1253. package/build/assets/shared-conversation-BrAvqeaI.js +0 -1
  1254. package/build/assets/sidebar-mobile-menu-toggle-BRZGCe-l.js +0 -1
  1255. package/build/assets/sidebar-nav-link-B_EygIce.js +0 -1
  1256. package/build/assets/skill-card-pill-row-Bq9Imkdh.js +0 -1
  1257. package/build/assets/skills-Wg6i0kbu.js +0 -1
  1258. package/build/assets/skills-client-DNd444Bm.js +0 -1
  1259. package/build/assets/skills-plugins-DaGkVI7-.js +0 -1
  1260. package/build/assets/skills-settings-Dlp0WFaT.js +0 -2
  1261. package/build/assets/styled-tooltip-ulgpZDga.js +0 -1
  1262. package/build/assets/suspense-BqBQEuKs.js +0 -1
  1263. package/build/assets/switch-skeleton-C49gVWOQ.js +0 -1
  1264. package/build/assets/task-list-tab-Bz-UlCm2.js +0 -1
  1265. package/build/assets/telemetry-DD3HKMgf.js +0 -2
  1266. package/build/assets/terminal-BwLvVzyJ.js +0 -1
  1267. package/build/assets/toggle-switch-CxW8-lBI.js +0 -1
  1268. package/build/assets/typography-BLf_mRKH.js +0 -1
  1269. package/build/assets/u-check-circle-CxTAJuY9.js +0 -1
  1270. package/build/assets/u-check-circle-half-Bj73jfUG.js +0 -1
  1271. package/build/assets/u-circuit-C-6V9H9C.js +0 -1
  1272. package/build/assets/u-edit-C7OnK2sa.js +0 -1
  1273. package/build/assets/use-acp-credential-form-oehc057O.js +0 -1
  1274. package/build/assets/use-active-conversation-CFXVX2on.js +0 -1
  1275. package/build/assets/use-agent-state-D6xfZA4-.js +0 -1
  1276. package/build/assets/use-backends-health-93yRIOWs.js +0 -1
  1277. package/build/assets/use-breakpoint-Xdy_aZHE.js +0 -1
  1278. package/build/assets/use-click-outside-element-CADb_gCP.js +0 -1
  1279. package/build/assets/use-cloud-current-user-id-CzOXsy04.js +0 -1
  1280. package/build/assets/use-config-oXjEWyb6.js +0 -1
  1281. package/build/assets/use-create-conversation-D-YkgrxS.js +0 -1
  1282. package/build/assets/use-create-secret-CX7Ij7W4.js +0 -1
  1283. package/build/assets/use-event-store-DMRAQQi8.js +0 -1
  1284. package/build/assets/use-handle-plan-click-CwW2Ijc2.js +0 -1
  1285. package/build/assets/use-is-authed-CNbX1KMm.js +0 -1
  1286. package/build/assets/use-launch-skill-in-chat-xI9byRUw.js +0 -1
  1287. package/build/assets/use-llm-profiles-BXRZ2rBh.js +0 -1
  1288. package/build/assets/use-runtime-is-ready-Dwzs9_vp.js +0 -1
  1289. package/build/assets/use-settings-_usWr_qn.js +0 -1
  1290. package/build/assets/use-settings-nav-items-DoB5iH-7.js +0 -16
  1291. package/build/assets/use-skills-BtorhoCN.js +0 -1
  1292. package/build/assets/use-task-list-u46BhYBC.js +0 -1
  1293. package/build/assets/use-tracking-Ca7p71hH.js +0 -1
  1294. package/build/assets/use-user-conversation-U-16WF6G.js +0 -1
  1295. package/build/assets/useMutation-CseCrRRO.js +0 -1
  1296. package/build/assets/useQuery-bowvACed.js +0 -1
  1297. package/build/assets/useTranslation-KhTtKmnv.js +0 -1
  1298. package/build/assets/utils-cRyMoFbz.js +0 -1
  1299. package/build/assets/vendor~conversation-panel~conversation~alert-banner-CjfR7T3x.js +0 -1
  1300. package/build/assets/vendor~entry.client-_zl82x5T.js +0 -1
  1301. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~dj9x5fm9-CgCGB-3J.js +0 -177
  1302. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~jfvr34cq-BJdsUTJG.js +0 -1
  1303. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~m3df9r20-BynFAJ_S.js +0 -1
  1304. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~nk00xiud-MfCRtPrK.js +0 -9
  1305. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~ghtfhmuy-BHDILMe2.js +0 -1
  1306. package/build/assets/vendor~root-layout~conversation-panel~conversation-BFZmbXpq.js +0 -1
  1307. package/build/assets/vendor~root-layout~conversation-panel~conversation~index-BPY-kNjK.js +0 -1
  1308. package/build/assets/vendor~root-layout~home~conversation-panel~conversation-BhWqQNmF.js +0 -1
  1309. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~cfyi58ut-CnnEa0dP.js +0 -1
  1310. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~clac83qc-DMX6XUwI.js +0 -2
  1311. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ldu51w4e-Cqp6k3RG.js +0 -1
  1312. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ldu51w4e-DS4GWhCz.js +0 -9
  1313. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~ji28rqgb-DVffa9Ks.js +0 -48
  1314. package/build/assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-BzR6ypP3.js +0 -1
  1315. package/build/assets/vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~hzfcl1q6-BcvHZmEZ.js +0 -2
  1316. package/build/assets/vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~hzfcl1q6-Cuvp6wqR.js +0 -14
  1317. package/build/assets/verification-settings-DKZnUHD6.js +0 -1
  1318. package/build/assets/x-DpnGZyVW.js +0 -1
  1319. package/build/assets/x-mark-x3tvCZzc.js +0 -1
  1320. package/dist/components/features/analytics/analytics-consent-form-modal.d.ts +0 -5
  1321. package/dist/components/features/chat/switch-profile-button.cjs +0 -2
  1322. package/dist/components/features/chat/switch-profile-button.cjs.map +0 -1
  1323. package/dist/components/features/chat/switch-profile-button.d.ts +0 -1
  1324. package/dist/components/features/chat/switch-profile-button.js +0 -48
  1325. package/dist/components/features/chat/switch-profile-button.js.map +0 -1
  1326. package/dist/components/features/chat/switch-profile-context-menu.cjs +0 -2
  1327. package/dist/components/features/chat/switch-profile-context-menu.cjs.map +0 -1
  1328. package/dist/components/features/chat/switch-profile-context-menu.d.ts +0 -9
  1329. package/dist/components/features/chat/switch-profile-context-menu.js +0 -106
  1330. package/dist/components/features/chat/switch-profile-context-menu.js.map +0 -1
  1331. package/dist/components/features/onboarding/is-backend-llm-ready.d.ts +0 -30
  1332. package/dist/icons/u-circuit.cjs +0 -2
  1333. package/dist/icons/u-circuit.cjs.map +0 -1
  1334. package/dist/icons/u-circuit.js +0 -19
  1335. package/dist/icons/u-circuit.js.map +0 -1
  1336. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.cjs +0 -2
  1337. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.cjs.map +0 -1
  1338. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.js +0 -35
  1339. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.js.map +0 -1
  1340. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.cjs +0 -2
  1341. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.cjs.map +0 -1
  1342. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.js +0 -35
  1343. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.js.map +0 -1
  1344. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.cjs +0 -2
  1345. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.cjs.map +0 -1
  1346. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.js +0 -35
  1347. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.js.map +0 -1
  1348. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +0 -2
  1349. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +0 -1
  1350. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +0 -35
  1351. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +0 -1
  1352. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.cjs +0 -2
  1353. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.cjs.map +0 -1
  1354. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.js +0 -35
  1355. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.js.map +0 -1
  1356. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.cjs +0 -2
  1357. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.cjs.map +0 -1
  1358. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.js +0 -35
  1359. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.js.map +0 -1
  1360. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.cjs +0 -2
  1361. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.cjs.map +0 -1
  1362. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.js +0 -28
  1363. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.js.map +0 -1
  1364. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.cjs +0 -2
  1365. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.cjs.map +0 -1
  1366. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.js +0 -35
  1367. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.js.map +0 -1
  1368. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.cjs +0 -2
  1369. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.cjs.map +0 -1
  1370. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.js +0 -35
  1371. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.js.map +0 -1
  1372. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.cjs +0 -2
  1373. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.cjs.map +0 -1
  1374. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.js +0 -35
  1375. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.js.map +0 -1
  1376. /package/build/assets/{agent-server-ui-style-scope-CIDFDeQb.js → agent-server-ui-style-scope-COnDHTm5.js} +0 -0
  1377. /package/build/assets/{automation-DNgDxqtq.js → automation-BU8zu-FP.js} +0 -0
  1378. /package/build/assets/{common-KeiA2Rod.js → common-Dh7OqABE.js} +0 -0
  1379. /package/build/assets/{environment-switch-store-BpKxp6Xq.js → environment-switch-store-DkjlKWzN.js} +0 -0
  1380. /package/build/assets/{extension-module-card-classes-DvvyImGv.js → extension-module-card-classes-9V3J9J_b.js} +0 -0
  1381. /package/build/assets/{git-status-mapper-B3_HbzUT.js → git-status-mapper-BI8FyUVp.js} +0 -0
  1382. /package/build/assets/{handle-capture-consent-BChvj6mt.js → handle-capture-consent-CPMXU29K.js} +0 -0
  1383. /package/build/assets/{llm-subscription-C1xDoa3K.js → llm-subscription-DtsX5Lhg.js} +0 -0
  1384. /package/build/assets/{map-provider-MonJL5SS.js → map-provider-BM2SJarp.js} +0 -0
  1385. /package/build/assets/{objectWithoutPropertiesLoose-BRYudkUn.js → objectWithoutPropertiesLoose-BgYIAs2y.js} +0 -0
  1386. /package/build/assets/{rolldown-runtime-wFmyQBCi.js → rolldown-runtime-BFRubm34.js} +0 -0
  1387. /package/build/assets/{settings-like-page-layout-classes-DNg2vKSM.js → settings-like-page-layout-classes-DENKlZpD.js} +0 -0
  1388. /package/build/assets/{v4-BMWDcIWQ.js → v4-DbCkTSoU.js} +0 -0
  1389. /package/build/assets/{vendor~browser-yZEspfT9.js → vendor~browser-Dqd33JyP.js} +0 -0
  1390. /package/build/assets/{vendor~terminal-CcUoOdAH.js → vendor~terminal-aeP3PnKf.js} +0 -0
@@ -27,40 +27,49 @@
27
27
  * --route "/sockets=http://localhost:18000"
28
28
  */
29
29
 
30
- import { createServer, request as httpRequest } from "node:http";
31
- import { createReadStream } from "node:fs";
32
- import { readFile, stat } from "node:fs/promises";
33
- import { extname, isAbsolute, normalize, relative, resolve } from "node:path";
30
+ import { createServer } from "node:http";
31
+ import { readFile } from "node:fs/promises";
32
+ import { extname, resolve } from "node:path";
34
33
  import process from "node:process";
35
34
  import { pathToFileURL } from "node:url";
35
+ import sirv from "sirv";
36
+
37
+ import {
38
+ createProxyHandlers,
39
+ createRouter,
40
+ matchesPathPrefix,
41
+ } from "./proxy-utils.mjs";
36
42
 
37
43
  // ─────────────────────────────────────────────────────────────────────────────
38
- // MIME types
44
+ // SPA fallback helpers
39
45
  // ─────────────────────────────────────────────────────────────────────────────
40
46
 
41
- const MIME = {
42
- ".html": "text/html; charset=utf-8",
43
- ".js": "application/javascript; charset=utf-8",
44
- ".mjs": "application/javascript; charset=utf-8",
45
- ".css": "text/css; charset=utf-8",
46
- ".json": "application/json; charset=utf-8",
47
- ".svg": "image/svg+xml",
48
- ".png": "image/png",
49
- ".jpg": "image/jpeg",
50
- ".jpeg": "image/jpeg",
51
- ".gif": "image/gif",
52
- ".ico": "image/x-icon",
53
- ".webp": "image/webp",
54
- ".woff": "font/woff",
55
- ".woff2": "font/woff2",
56
- ".ttf": "font/ttf",
57
- ".wav": "audio/wav",
58
- ".mp3": "audio/mpeg",
59
- ".webmanifest": "application/manifest+json",
60
- ".txt": "text/plain; charset=utf-8",
61
- ".xml": "application/xml",
62
- ".map": "application/json",
63
- };
47
+ const ASSET_LIKE_EXTENSIONS = new Set([
48
+ ".br",
49
+ ".css",
50
+ ".gif",
51
+ ".gz",
52
+ ".html",
53
+ ".htm",
54
+ ".ico",
55
+ ".jpeg",
56
+ ".jpg",
57
+ ".js",
58
+ ".json",
59
+ ".map",
60
+ ".mjs",
61
+ ".mp3",
62
+ ".png",
63
+ ".svg",
64
+ ".ttf",
65
+ ".txt",
66
+ ".wav",
67
+ ".webmanifest",
68
+ ".webp",
69
+ ".woff",
70
+ ".woff2",
71
+ ".xml",
72
+ ]);
64
73
 
65
74
  // ─────────────────────────────────────────────────────────────────────────────
66
75
  // Args
@@ -329,294 +338,119 @@ async function serveInjectedIndexHtml(
329
338
  "Content-Length": buf.length,
330
339
  "Cache-Control": "no-cache",
331
340
  });
332
- if (req.method !== "HEAD") res.end(buf);
341
+ if (req.method === "HEAD") {
342
+ res.end();
343
+ } else {
344
+ res.end(buf);
345
+ }
333
346
  return true;
334
347
  }
335
348
 
336
- // ─────────────────────────────────────────────────────────────────────────────
337
- // Router (kept structurally identical to scripts/ingress.mjs)
338
- // ─────────────────────────────────────────────────────────────────────────────
339
-
340
- export function createRouter(routes) {
341
- const sortedRoutes = Object.entries(routes).sort(
342
- ([a], [b]) => b.length - a.length,
343
- );
344
-
345
- return function route(url) {
346
- for (const [prefix, backend] of sortedRoutes) {
347
- if (
348
- url === prefix ||
349
- url.startsWith(prefix + "/") ||
350
- url.startsWith(prefix + "?")
351
- ) {
352
- return backend;
353
- }
354
- }
355
- return null;
356
- };
357
- }
358
-
359
- function parseBackendUrl(backendUrl) {
360
- const url = new URL(backendUrl);
361
- return {
362
- hostname: url.hostname,
363
- port:
364
- Number.parseInt(url.port, 10) || (url.protocol === "https:" ? 443 : 80),
365
- protocol: url.protocol,
366
- };
367
- }
368
-
369
- function proxyRequest(req, res, backendUrl) {
370
- const backend = parseBackendUrl(backendUrl);
371
-
372
- const proxyReq = httpRequest(
373
- {
374
- hostname: backend.hostname,
375
- port: backend.port,
376
- path: req.url,
377
- method: req.method,
378
- headers: {
379
- ...req.headers,
380
- host: `${backend.hostname}:${backend.port}`,
381
- },
382
- },
383
- (proxyRes) => {
384
- res.writeHead(proxyRes.statusCode ?? 502, proxyRes.headers);
385
- proxyRes.pipe(res, { end: true });
386
- },
387
- );
388
-
389
- // Absorb client-disconnect errors (EPIPE/ECONNRESET) so the server
390
- // process survives abrupt navigations and health-check probes.
391
- req.on("error", () => {});
392
- res.on("error", () => {});
393
-
394
- proxyReq.on("error", (err) => {
395
- console.error(`Proxy error for ${req.url} -> ${backendUrl}:`, err.message);
396
- if (!res.headersSent) {
397
- res.writeHead(502);
398
- res.end(`Bad Gateway: ${err.message}`);
399
- }
400
- });
401
-
402
- req.pipe(proxyReq, { end: true });
403
- }
404
-
405
- function proxyWebSocket(req, socket, head, backendUrl) {
406
- const backend = parseBackendUrl(backendUrl);
407
-
408
- const proxyReq = httpRequest({
409
- hostname: backend.hostname,
410
- port: backend.port,
411
- path: req.url,
412
- method: req.method,
413
- headers: {
414
- ...req.headers,
415
- host: `${backend.hostname}:${backend.port}`,
416
- },
417
- });
418
-
419
- // Absorb socket errors so the process survives mid-flight disconnects.
420
- socket.on("error", () => socket.destroy());
421
-
422
- proxyReq.on("upgrade", (proxyRes, proxySocket, proxyHead) => {
423
- proxySocket.on("error", () => proxySocket.destroy());
424
-
425
- socket.write(
426
- `HTTP/${proxyRes.httpVersion} ${proxyRes.statusCode} ${proxyRes.statusMessage}\r\n`,
427
- );
428
- for (let i = 0; i < proxyRes.rawHeaders.length; i += 2) {
429
- socket.write(
430
- `${proxyRes.rawHeaders[i]}: ${proxyRes.rawHeaders[i + 1]}\r\n`,
431
- );
432
- }
433
- socket.write("\r\n");
434
- if (proxyHead.length > 0) {
435
- socket.write(proxyHead);
436
- }
437
- // Handle errors on both sockets so an abrupt disconnect (ECONNRESET,
438
- // EPIPE) during test cleanup doesn't crash the process with an
439
- // uncaught 'error' event.
440
- proxySocket.on("error", (err) => {
441
- console.error(
442
- `WebSocket proxy backend socket error (${req.url}):`,
443
- err.message,
444
- );
445
- socket.destroy();
446
- });
447
- socket.on("error", (err) => {
448
- console.error(
449
- `WebSocket proxy client socket error (${req.url}):`,
450
- err.message,
451
- );
452
- proxySocket.destroy();
453
- });
454
- proxySocket.pipe(socket, { end: true });
455
- socket.pipe(proxySocket, { end: true });
456
- });
457
-
458
- proxyReq.on("error", (err) => {
459
- console.error(
460
- `WebSocket proxy error for ${req.url} -> ${backendUrl}:`,
461
- err.message,
462
- );
463
- socket.destroy();
464
- });
465
-
466
- proxyReq.end();
467
- }
468
-
469
349
  // ─────────────────────────────────────────────────────────────────────────────
470
350
  // Static file serving
471
351
  // ─────────────────────────────────────────────────────────────────────────────
472
352
 
473
- async function tryStat(path) {
353
+ function parseUrlPath(req, res) {
354
+ const rawPath = (req.url ?? "/").split("?")[0];
474
355
  try {
475
- const result = await stat(path);
476
- return result.isFile() ? result : null;
356
+ return decodeURIComponent(rawPath);
477
357
  } catch {
358
+ res.writeHead(400);
359
+ res.end("Bad Request");
478
360
  return null;
479
361
  }
480
362
  }
481
363
 
482
- function makeEtag(stats) {
483
- // Match sirv's weak-ETag format: W/"<size>-<mtime ms>"
484
- return `W/"${stats.size}-${Math.floor(stats.mtimeMs)}"`;
364
+ function isGetOrHead(req) {
365
+ return req.method === "GET" || req.method === "HEAD";
485
366
  }
486
367
 
487
- function pickContentType(filePath) {
488
- return MIME[extname(filePath).toLowerCase()] || "application/octet-stream";
489
- }
490
-
491
- function pickCacheControl(urlPath) {
492
- // Vite/react-router builds emit content-hashed assets under /assets/.
493
- // Those are safe to cache forever; everything else (index.html, public/
494
- // copies, locales) should revalidate so a rebuild is picked up.
495
- if (urlPath.startsWith("/assets/")) {
496
- return "public, max-age=31536000, immutable";
497
- }
498
- return "no-cache";
368
+ function needsRuntimeInjection(injectionOpts) {
369
+ return Boolean(
370
+ injectionOpts.sessionApiKey ||
371
+ injectionOpts.authRequired ||
372
+ injectionOpts.runtimeServicesInfo ||
373
+ injectionOpts.lockToCloud,
374
+ );
499
375
  }
500
376
 
501
377
  function looksLikeAssetRequest(urlPath) {
502
- // If the last path segment has a known file extension, treat 404s as 404
503
- // instead of falling back to the SPA shell. Avoids serving index.html for
504
- // missing /favicon.ico, missing source maps, etc.
505
378
  const last = urlPath.split("/").pop() ?? "";
506
- const ext = extname(last).toLowerCase();
507
- return Boolean(ext) && ext in MIME;
379
+ return ASSET_LIKE_EXTENSIONS.has(extname(last).toLowerCase());
508
380
  }
509
381
 
510
- function isPathInsideDir(dirAbs, filePath) {
511
- const relativePath = relative(dirAbs, filePath);
512
- return (
513
- relativePath === "" ||
514
- (!relativePath.startsWith("..") && !isAbsolute(relativePath))
515
- );
382
+ function matchesAnyPrefix(urlPath, prefixes) {
383
+ return prefixes.some((prefix) => matchesPathPrefix(urlPath, prefix));
516
384
  }
517
385
 
518
- async function serveFile(req, res, filePath, urlPath) {
519
- const stats = await tryStat(filePath);
520
- if (!stats) return false;
386
+ function rejectUnavailable(res) {
387
+ res.writeHead(503, { "Content-Type": "text/plain; charset=utf-8" });
388
+ res.end("Service Unavailable (no backend configured for this route)");
389
+ }
521
390
 
522
- const etag = makeEtag(stats);
523
- if (req.headers["if-none-match"] === etag) {
524
- res.writeHead(304, { ETag: etag });
525
- res.end();
526
- return true;
527
- }
391
+ function notFound(res) {
392
+ res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
393
+ res.end("Not Found");
394
+ }
528
395
 
529
- res.writeHead(200, {
530
- "Content-Type": pickContentType(filePath),
531
- "Content-Length": stats.size,
532
- "Cache-Control": pickCacheControl(urlPath),
533
- ETag: etag,
534
- });
396
+ function setStaticHeaders(res, pathname) {
397
+ const extension = extname(pathname).toLowerCase();
398
+ if (extension === ".js" || extension === ".mjs") {
399
+ res.setHeader("Content-Type", "application/javascript; charset=utf-8");
400
+ }
535
401
 
536
- if (req.method === "HEAD") {
537
- res.end();
538
- return true;
402
+ if (pathname.startsWith("/assets/")) {
403
+ res.setHeader("Cache-Control", "public, max-age=31536000, immutable");
404
+ return;
539
405
  }
406
+ res.setHeader("Cache-Control", "no-cache");
407
+ }
540
408
 
541
- createReadStream(filePath).pipe(res);
542
- return true;
409
+ function createStaticMiddleware(dirAbs) {
410
+ return sirv(dirAbs, {
411
+ etag: true,
412
+ single: false,
413
+ setHeaders: setStaticHeaders,
414
+ });
543
415
  }
544
416
 
545
417
  async function handleStatic(
546
418
  req,
547
419
  res,
548
420
  dirAbs,
421
+ staticMiddleware,
549
422
  injectionOpts = {},
550
423
  rejectPrefixes = [],
551
424
  ) {
552
- const rawPath = req.url.split("?")[0];
553
- let urlPath;
554
- try {
555
- urlPath = decodeURIComponent(rawPath);
556
- } catch {
557
- res.writeHead(400);
558
- res.end("Bad Request");
559
- return;
560
- }
425
+ const urlPath = parseUrlPath(req, res);
426
+ if (urlPath === null) return;
561
427
 
562
- const safe = normalize(urlPath);
563
- let filePath = resolve(dirAbs, "." + safe);
564
- if (!isPathInsideDir(dirAbs, filePath)) {
565
- res.writeHead(403);
566
- res.end("Forbidden");
567
- return;
568
- }
428
+ const injectRuntimeConfig = needsRuntimeInjection(injectionOpts);
429
+ const indexPath = resolve(dirAbs, "index.html");
569
430
 
570
- // Directory request -> /index.html
571
- if (urlPath.endsWith("/")) {
572
- filePath = resolve(filePath, "index.html");
431
+ if (
432
+ injectRuntimeConfig &&
433
+ isGetOrHead(req) &&
434
+ (urlPath === "/" || urlPath === "/index.html")
435
+ ) {
436
+ if (await serveInjectedIndexHtml(req, res, indexPath, injectionOpts))
437
+ return;
573
438
  }
574
439
 
575
- const needsInjection =
576
- injectionOpts.sessionApiKey ||
577
- injectionOpts.authRequired ||
578
- injectionOpts.runtimeServicesInfo ||
579
- injectionOpts.lockToCloud;
580
-
581
- // Serve index.html with runtime config injection when configured.
582
- if (needsInjection && filePath.endsWith("index.html")) {
583
- if (await serveInjectedIndexHtml(req, res, filePath, injectionOpts)) return;
584
- // Fall through to regular serveFile (handles 404 path correctly).
585
- }
440
+ staticMiddleware(req, res, async () => {
441
+ if (matchesAnyPrefix(urlPath, rejectPrefixes)) {
442
+ rejectUnavailable(res);
443
+ return;
444
+ }
586
445
 
587
- if (await serveFile(req, res, filePath, urlPath)) return;
588
-
589
- // Reject prefixes: return 503 for known API paths that have no backend
590
- // configured (e.g. in --frontend-only mode). Checked before SPA fallback
591
- // so these paths never silently serve index.html.
592
- if (rejectPrefixes.length > 0) {
593
- for (const prefix of rejectPrefixes) {
594
- if (
595
- urlPath === prefix ||
596
- urlPath.startsWith(prefix + "/") ||
597
- urlPath.startsWith(prefix + "?")
598
- ) {
599
- res.writeHead(503, { "Content-Type": "text/plain; charset=utf-8" });
600
- res.end("Service Unavailable (no backend configured for this route)");
446
+ if (isGetOrHead(req) && !looksLikeAssetRequest(urlPath)) {
447
+ if (await serveInjectedIndexHtml(req, res, indexPath, injectionOpts)) {
601
448
  return;
602
449
  }
603
450
  }
604
- }
605
451
 
606
- // SPA fallback: only for non-asset requests, and not for non-GET/HEAD.
607
- if (
608
- (req.method === "GET" || req.method === "HEAD") &&
609
- !looksLikeAssetRequest(urlPath)
610
- ) {
611
- const indexPath = resolve(dirAbs, "index.html");
612
- if (needsInjection) {
613
- if (await serveInjectedIndexHtml(req, res, indexPath, injectionOpts))
614
- return;
615
- } else if (await serveFile(req, res, indexPath, "/")) return;
616
- }
617
-
618
- res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" });
619
- res.end("Not Found");
452
+ notFound(res);
453
+ });
620
454
  }
621
455
 
622
456
  // ─────────────────────────────────────────────────────────────────────────────
@@ -625,6 +459,7 @@ async function handleStatic(
625
459
 
626
460
  export function startStaticServer(config) {
627
461
  const route = createRouter(config.routes);
462
+ const proxy = createProxyHandlers({ label: `static:${config.port}` });
628
463
  const dirAbs = resolve(config.dir);
629
464
  const injectionOpts = {
630
465
  sessionApiKey: config.sessionApiKey || null,
@@ -633,32 +468,41 @@ export function startStaticServer(config) {
633
468
  lockToCloud: config.lockToCloud || null,
634
469
  };
635
470
  const rejectPrefixes = config.rejectPrefixes ?? [];
471
+ const staticMiddleware = createStaticMiddleware(dirAbs);
472
+
473
+ const uninstallDiagnostics = proxy.installDiagnostics();
636
474
 
637
475
  const server = createServer((req, res) => {
638
- const backend = route(req.url);
476
+ const backend = route(req.url ?? "/");
639
477
  if (backend) {
640
- proxyRequest(req, res, backend);
478
+ proxy.proxyHttp(req, res, backend);
641
479
  return;
642
480
  }
643
- handleStatic(req, res, dirAbs, injectionOpts, rejectPrefixes).catch(
644
- (err) => {
645
- console.error(`Static handler error for ${req.url}:`, err);
646
- if (!res.headersSent) {
647
- res.writeHead(500);
648
- res.end("Internal Server Error");
649
- }
650
- },
651
- );
481
+ handleStatic(
482
+ req,
483
+ res,
484
+ dirAbs,
485
+ staticMiddleware,
486
+ injectionOpts,
487
+ rejectPrefixes,
488
+ ).catch((err) => {
489
+ console.error(`Static handler error for ${req.url}:`, err);
490
+ if (!res.headersSent) {
491
+ res.writeHead(500);
492
+ res.end("Internal Server Error");
493
+ }
494
+ });
652
495
  });
653
496
 
654
497
  server.on("upgrade", (req, socket, head) => {
655
- const backend = route(req.url);
498
+ const backend = route(req.url ?? "/");
656
499
  if (backend) {
657
- proxyWebSocket(req, socket, head, backend);
500
+ proxy.proxyWebSocket(req, socket, head, backend);
658
501
  return;
659
502
  }
660
503
  socket.destroy();
661
504
  });
505
+ server.on("close", uninstallDiagnostics);
662
506
 
663
507
  return new Promise((resolveListen) => {
664
508
  server.listen(config.port, config.host, () => {
@@ -1 +0,0 @@
1
- import{a as e,t}from"./rolldown-runtime-wFmyQBCi.js";import{t as n}from"./react-uQK8du1l.js";import{c as r}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~dj9x5fm9-CgCGB-3J.js";import{a as i,n as a,o,s}from"./declaration-B0yY_dkQ.js";import{a as c,i as l,n as u,r as d}from"./useTranslation-KhTtKmnv.js";var f=t(((e,t)=>{t.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}})),p=e(n()),m=e(f()),h=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function g(e){var t={type:`tag`,name:``,voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(m.default[n[1]]||e.charAt(e.length-2)===`/`)&&(t.voidElement=!0),t.name.startsWith(`!--`))){var r=e.indexOf(`-->`);return{type:`comment`,comment:r===-1?``:e.slice(4,r)}}for(var i=new RegExp(h),a=null;(a=i.exec(e))!==null;)if(a[0].trim())if(a[1]){var o=a[1].trim(),s=[o,``];o.indexOf(`=`)>-1&&(s=o.split(`=`)),t.attrs[s[0]]=s[1],i.lastIndex--}else a[2]&&(t.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return t}var _=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,v=/^\s*$/,y=Object.create(null);function b(e,t){switch(t.type){case`text`:return e+t.content;case`tag`:return e+=`<`+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+`="`+e[n]+`"`);return t.length?` `+t.join(` `):``}(t.attrs):``)+(t.voidElement?`/>`:`>`),t.voidElement?e:e+t.children.reduce(b,``)+`</`+t.name+`>`;case`comment`:return e+`<!--`+t.comment+`-->`}}var x={parse:function(e,t){t||={},t.components||=y;var n,r=[],i=[],a=-1,o=!1;if(e.indexOf(`<`)!==0){var s=e.indexOf(`<`);r.push({type:`text`,content:s===-1?e:e.substring(0,s)})}return e.replace(_,function(s,c){if(o){if(s!==`</`+n.name+`>`)return;o=!1}var l,u=s.charAt(1)!==`/`,d=s.startsWith(`<!--`),f=c+s.length,p=e.charAt(f);if(d){var m=g(s);return a<0?(r.push(m),r):((l=i[a]).children.push(m),r)}if(u&&(a++,(n=g(s)).type===`tag`&&t.components[n.name]&&(n.type=`component`,o=!0),n.voidElement||o||!p||p===`<`||n.children.push({type:`text`,content:e.slice(f,e.indexOf(`<`,f))}),a===0&&r.push(n),(l=i[a-1])&&l.children.push(n),i[a]=n),(!u||n.voidElement)&&(a>-1&&(n.voidElement||n.name===s.slice(2,-1))&&(a--,n=a===-1?r:i[a]),!o&&p!==`<`&&p)){l=a===-1?r:i[a].children;var h=e.indexOf(`<`,f),_=e.slice(f,h===-1?void 0:h);v.test(_)&&(_=` `),(h>-1&&a+l.length>=0||_!==` `)&&l.push({type:`text`,content:_})}}),r},stringify:function(e){return e.reduce(function(e,t){return e+b(``,t)},``)}},S=(e,t)=>{if(!e)return!1;let n=e.props?.children??e.children;return t?n.length>0:!!n},C=e=>{if(!e)return[];let t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?T(t):t},w=e=>Array.isArray(e)&&e.every(p.isValidElement),T=e=>Array.isArray(e)?e:[e],E=(e,t)=>{let n={...t};return n.props={...t.props,...e.props},n},D=e=>{let t={};if(!e)return t;let n=e=>{T(e).forEach(e=>{d(e)||(S(e)?n(C(e)):u(e)&&!(0,p.isValidElement)(e)&&Object.assign(t,e))})};return n(e),t},O=(e,t,n,r)=>{if(!e)return``;let i=``,a=T(e),o=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return a.forEach((e,a)=>{if(d(e)){i+=`${e}`;return}if((0,p.isValidElement)(e)){let{props:s,type:c}=e,l=Object.keys(s).length,u=o.indexOf(c)>-1,f=s.children;if(!f&&u&&!l){i+=`<${c}/>`;return}if(!f&&(!u||l)||s.i18nIsDynamicList){i+=`<${a}></${a}>`;return}if(u&&l<=1){let e=d(f)?f:O(f,t,n,r);i+=`<${c}>${e}</${c}>`;return}let p=O(f,t,n,r);i+=`<${a}>${p}</${a}>`;return}if(e===null){l(n,`TRANS_NULL_VALUE`,`Passed in a null value as child`,{i18nKey:r});return}if(u(e)){let{format:t,...a}=e,o=Object.keys(a);if(o.length===1){let e=t?`${o[0]}, ${t}`:o[0];i+=`{{${e}}}`;return}l(n,`TRANS_INVALID_OBJ`,`Invalid child - Object should only have keys {{ value, format }} (format is optional).`,{i18nKey:r,child:e});return}l(n,`TRANS_INVALID_VAR`,`Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.`,{i18nKey:r,child:e})}),i},k=(e,t=[],n={})=>{if(!e)return e;let r=Object.keys(n),i=[...t,...r],a=``,o=0;for(;o<e.length;)if(e[o]===`<`){let t=!1,n=e.slice(o).match(/^<\/(\d+|[a-zA-Z][a-zA-Z0-9_-]*)>/);if(n){let e=n[1];(/^\d+$/.test(e)||i.includes(e))&&(t=!0,a+=n[0],o+=n[0].length)}if(!t){let n=e.slice(o).match(/^<(\d+|[a-zA-Z][a-zA-Z0-9_-]*)(\s+[\w-]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*(\/)?>/);if(n){let e=n[1];(/^\d+$/.test(e)||i.includes(e))&&(t=!0,a+=n[0],o+=n[0].length)}}t||(a+=`&lt;`,o+=1)}else a+=e[o],o+=1;return a},A=(e,t,n,r,i,a,c)=>{if(n===``)return[];let l=i.transKeepBasicHtmlNodesFor||[],f=n&&new RegExp(l.map(e=>`<${e}`).join(`|`)).test(n);if(!e&&!t&&!f&&!c)return[n];let m=t??{},h=e=>{T(e).forEach(e=>{d(e)||(S(e)?h(C(e)):u(e)&&!(0,p.isValidElement)(e)&&Object.assign(m,e))})};h(e);let g=k(n,l,m),_=x.parse(`<0>${g}</0>`),v={...m,...a},y=(e,t,n)=>{let r=C(e),i=D(r,t.children,n);return w(r)&&i.length===0||e.props?.i18nIsDynamicList?r:i},b=(e,t,n,r,i)=>{e.dummy?(e.children=t,n.push((0,p.cloneElement)(e,{key:r},i?void 0:t))):n.push(...p.Children.map([e],e=>{if(e.type===p.Fragment||e.props?.i18nIsDynamicList!==void 0){let n={key:r};return e&&e.props&&Object.keys(e.props).forEach(t=>{t===`children`||t===`i18nIsDynamicList`||(n[t]=e.props[t])}),(0,p.createElement)(e.type,n,i?null:t)}let n={key:r};return e&&e.props&&Object.keys(e.props).forEach(t=>{t===`ref`||t===`children`||(n[t]=e.props[t])}),(0,p.cloneElement)(e,n,i?null:t)}))},D=(e,n,a)=>{let m=T(e),h=T(n),g={};return h.reduce((e,n,h)=>{let _=n.children?.[0]?.content&&r.services.interpolator.interpolate(n.children[0].content,v,r.language);if(n.type===`tag`){let o=m[parseInt(n.name,10)];!o&&t&&(o=t[n.name]),a.length===1&&!o&&(o=a[0][n.name]),o||={};let x={...n.attrs};c&&Object.keys(x).forEach(e=>{let t=x[e];d(t)&&(x[e]=s(t))});let w=Object.keys(x).length===0?o:E({props:x},o),O=(0,p.isValidElement)(w),k=O&&S(n,!0)&&!n.voidElement,A=f&&u(w)&&w.dummy&&!O,j=u(t)&&Object.hasOwnProperty.call(t,n.name);if(d(w)){let t=r.services.interpolator.interpolate(w,v,r.language);e.push(t)}else if(S(w)||k)b(w,y(w,n,a),e,h);else if(A)b(w,D(m,n.children,a),e,h);else if(Number.isNaN(parseFloat(n.name)))if(j)b(w,y(w,n,a),e,h,n.voidElement);else if(i.transSupportBasicHtmlNodes&&l.indexOf(n.name)>-1)if(n.voidElement)e.push((0,p.createElement)(n.name,{key:`${n.name}-${h}`}));else{let t=g[n.name]||0;g[n.name]=t+1;let r,i=0;for(let e=0;e<m.length;e+=1){let a=m[e];if((0,p.isValidElement)(a)&&a.type===n.name){if(i===t){r=a;break}i+=1}}let o=D(r?T(C(r)):m,n.children,a);e.push((0,p.createElement)(n.name,{key:`${n.name}-${h}`},o))}else if(n.voidElement)e.push(`<${n.name} />`);else{let t=D(m,n.children,a);e.push(`<${n.name}>${t}</${n.name}>`)}else if(u(w)&&!O){let t=n.children[0]?_:null;t&&e.push(t)}else b(w,_,e,h,n.children.length!==1||!_)}else if(n.type===`text`){let t=i.transWrapTextNodes,a=typeof i.unescape==`function`?i.unescape:o().unescape,s=c?a(r.services.interpolator.interpolate(n.content,v,r.language)):r.services.interpolator.interpolate(n.content,v,r.language);t?e.push((0,p.createElement)(t,{key:`${n.name}-${h}`},s)):e.push(s)}return e},[])};return C(D([{dummy:!0,children:e||[]}],_,T(e||[]))[0])},j=(e,t,n)=>{let r=e.key||t,i=(0,p.cloneElement)(e,{key:r});if(!i.props||!i.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return i;function a(){return(0,p.createElement)(p.Fragment,null,i)}return(0,p.createElement)(a,{key:r})},M=(e,t)=>e.map((e,n)=>j(e,n,t)),N=(e,t)=>{let n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:j(e[r],r,t)})}),n},P=(e,t,n,r)=>e?Array.isArray(e)?M(e,t):u(e)?N(e,t):(c(n,`TRANS_INVALID_COMPONENTS`,`<Trans /> "components" prop expects an object or array`,{i18nKey:r}),null):null,F=e=>!u(e)||Array.isArray(e)?!1:Object.keys(e).reduce((e,t)=>e&&Number.isNaN(Number.parseFloat(t)),!0);function I({children:e,count:t,parent:n,i18nKey:a,context:s,tOptions:l={},values:u,defaults:f,components:m,ns:h,i18n:g,t:_,shouldUnescape:v,...y}){let b=g||i();if(!b)return c(b,`NO_I18NEXT_INSTANCE`,`Trans: You need to pass in an i18next instance using i18nextReactModule`,{i18nKey:a}),e;let x=_||b.t.bind(b)||(e=>e),S={...o(),...b.options?.react},C=h||x.ns||b.options?.defaultNS;C=d(C)?[C]:C||[`translation`];let{transDefaultProps:w}=S,T=w?.tOptions?{...w.tOptions,...l}:l,E=v??w?.shouldUnescape,k=w?.values?{...w.values,...u}:u,j=w?.components?{...w.components,...m}:m,M=O(e,S,b,a),N=f||T?.defaultValue||M||S.transEmptyNodeValue||(typeof a==`function`?r(a):a),{hashTransKey:I}=S,L=a||(I?I(M||N):M||N);u=b.options?.interpolation?.defaultVariables?k&&Object.keys(k).length>0?{...k,...b.options.interpolation.defaultVariables}:{...b.options.interpolation.defaultVariables}:k;let R=D(e);R&&typeof R.count==`number`&&t===void 0&&(t=R.count);let z=u||t!==void 0&&!b.options?.interpolation?.alwaysFormat||!e?T.interpolation:{interpolation:{...T.interpolation,prefix:`#$?`,suffix:`?$#`}},B={...T,context:s||T.context,count:t,...u,...z,defaultValue:N,ns:C},V=L?x(L,B):N;V===L&&N&&(V=N);let H=P(j,V,b,a),U=H||e,W=null;F(H)&&(W=H,U=e);let G=A(U,W,V,b,S,B,E),K=n??S.defaultTransParent;return K?(0,p.createElement)(K,y,G):G}function L({children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:s={},values:c,defaults:l,components:u,ns:d,i18n:f,t:m,shouldUnescape:h,...g}){let{i18n:_,defaultNS:v}=(0,p.useContext)(a)||{},y=f||_||i(),b=m||y?.t.bind(y);return I({children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:s,values:c,defaults:l,components:u,ns:d||b?.ns||v||y?.options?.defaultNS,i18n:y,t:m,shouldUnescape:h,...g})}export{L as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-wFmyQBCi.js";import{t}from"./react-uQK8du1l.js";import{a as n,d as r,i,l as a,o,r as s,s as ee,t as te,u as ne}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~dj9x5fm9-CgCGB-3J.js";import{c as re,i as ie,t as c}from"./declaration-B0yY_dkQ.js";import{i as ae,t as oe}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~nk00xiud-MfCRtPrK.js";import{F as se,t as ce}from"./utils-cRyMoFbz.js";import{D as l,c as u,d,f,g as le,h as p,l as m,m as h,n as ue,p as de,s as fe,u as pe,y as me}from"./agent-server-client-options-CxnCYyIW.js";var g=e(t(),1),_=`openhands`,v=[{label:`English`,value:`en`},{label:`日本語`,value:`ja`},{label:`简体中文`,value:`zh-CN`},{label:`繁體中文`,value:`zh-TW`},{label:`한국어`,value:`ko-KR`},{label:`Norsk`,value:`no`},{label:`Arabic`,value:`ar`},{label:`Deutsch`,value:`de`},{label:`Français`,value:`fr`},{label:`Italiano`,value:`it`},{label:`Português`,value:`pt`},{label:`Español`,value:`es`},{label:`Català`,value:`ca`},{label:`Türkçe`,value:`tr`},{label:`Українська`,value:`uk`}],y=new WeakMap,he=e=>{if(!y.has(e)){let t=e.use(o).use(n).use(ie).init({fallbackLng:`en`,debug:!1,supportedLngs:v.map(e=>e.value),nonExplicitSupportedLngs:!1,ns:[_],defaultNS:_,fallbackNS:_,backend:{loadPath:`/locales/{{lng}}/{{ns}}.json`},interpolation:{escapeValue:!1}});y.set(e,t)}return e},ge=()=>he(ee()),b=null,x=null,S=()=>(b||=ge(),b),C=()=>x??S(),_e=e=>(x=e??S(),x),ve=async(e=S())=>(await y.get(e),e),ye=e=>e?typeof e==`object`&&!Array.isArray(e)?{ns:_,...e}:e:{ns:_},w=new Proxy({},{get:(e,t)=>{let n=C();if(t===`t`)return(e,t)=>n.t(e,ye(t));if(t===`exists`)return(e,t)=>n.exists(e,ye(t));let r=Reflect.get(n,t,n);return typeof r==`function`?r.bind(n):r},set:(e,t,n)=>{let r=C();return Reflect.set(r,t,n,r)}}),be=e=>typeof e.response?.data==`object`&&e.response?.data!==null&&`error`in e.response.data&&typeof e.response?.data?.error==`string`,xe=e=>typeof e.response?.data==`object`&&e.response?.data!==null&&`message`in e.response.data&&typeof e.response?.data?.message==`string`,Se=`Disconnected (check URL or network). Check that the backend URL is correct and the backend server is reachable. If the backend is on another origin, check that it allows this frontend origin.`,Ce=`Disconnected (request timed out). Check that the backend URL is correct and reachable.`,we=4;function Te(e){return typeof e==`object`&&!!e}function T(e){let t=[],n=new Set,r=e,i=0;for(;r!=null&&i<we&&!n.has(r);){if(n.add(r),r instanceof Error)r.message&&t.push(r.message),r=r.cause;else if(typeof r==`string`){r&&t.push(r);break}else if(Te(r)){let e=r.message;typeof e==`string`&&e&&t.push(e),r=r.cause}else break;i+=1}return t}function E(e){if(!e)return!1;let t=e.toLowerCase();return t.includes(`disconnected (check cors or network)`)||t.includes(`disconnected (check url or network)`)||t.includes(`blocked by cors`)||t.includes(`failed to fetch`)||t.includes(`network error`)||t.includes(`load failed`)||t.includes(`networkerror when attempting to fetch resource`)||t.includes(`cors`)&&t.includes(`blocked`)}function Ee(e){return T(e).some(E)}function D(e){if(!e)return!1;let t=e.toLowerCase();return t.includes(`request timeout`)||t.includes(`timeout after`)||t.includes(`backend request timed out`)}function O(e){let t=T(e);return t.some(E)?Se:t.some(D)?Ce:t[0]??null}function De(e){return typeof e==`object`&&!!e&&`isAxiosError`in e&&e.isAxiosError===!0}var k=e=>{let t=null,n=!1;return De(e)?(n=!0,t=be(e)&&e.response?.data.error?e.response?.data.error:xe(e)&&e.response?.data.message?e.response?.data.message:e.message):t=e instanceof Error?e.message:typeof e==`string`?e:null,O(n?t??e:e)??t??``},A=(e,t=5e3,n=1e4)=>{if(!e)return t;let r=e.length/(1e3/60)*1e3*1.5;return Math.min(Math.max(r,t),n)},j=re(),M={background:`var(--oh-color-tertiary)`,border:`1px solid var(--oh-border-input)`,color:`#fff`,borderRadius:`var(--oh-radius)`,maxWidth:`400px`,wordBreak:`break-word`,overflowWrap:`anywhere`,whiteSpace:`pre-wrap`},N={position:`top-right`,style:M},Oe={...M,color:`var(--oh-muted)`};function ke({message:e}){let t=g.useRef(null),[n,r]=g.useState(!1);return g.useLayoutEffect(()=>{let e=t.current;if(!e)return;let n=()=>{let t=Number.parseFloat(getComputedStyle(e).lineHeight);if(!Number.isFinite(t)||t<=0){r(!1);return}r(e.getBoundingClientRect().height>t*1.5)};n();let i=new ResizeObserver(n);return i.observe(e),()=>i.disconnect()},[e]),(0,j.jsxs)(`div`,{className:ce(`flex min-w-0 gap-2`,n?`items-start`:`items-center`),children:[(0,j.jsx)(i,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`,strokeWidth:2,style:{color:se}}),(0,j.jsx)(`span`,{ref:t,className:`min-w-0 flex-1 text-sm leading-5 [word-break:break-word] [overflow-wrap:anywhere]`,children:e})]})}var Ae={...N,icon:null,style:Oe},P=e=>{let t=e||w.t(c.STATUS$ERROR);E(t)?t=w.t(c.ERROR$CORS_OR_NETWORK):D(t)&&(t=w.t(c.ERROR$BACKEND_REQUEST_TIMEOUT));let n=A(t,4e3);s((0,j.jsx)(ke,{message:t}),{...Ae,duration:n})},je=e=>{let t=A(e,5e3);s.success((0,j.jsx)(`span`,{className:`[word-break:break-word] [overflow-wrap:anywhere]`,children:e}),{...N,duration:t})},Me=e=>{let t=A(e,6e3);s((0,j.jsx)(`span`,{className:`[word-break:break-word] [overflow-wrap:anywhere]`,children:e}),{...N,icon:`⚠️`,duration:t})},F=`openhands-backend-health`,I=500;function Ne(e){if(typeof e!=`object`||!e)return!1;let t=e;return Number.isInteger(t.consecutiveFailures)&&t.consecutiveFailures>=0&&t.consecutiveFailures<=5&&(t.lastError===null||typeof t.lastError==`string`)&&(t.lastFailureAt===null||typeof t.lastFailureAt==`number`)&&typeof t.disabled==`boolean`}function Pe(){if(typeof window>`u`)return{};try{let e=window.localStorage.getItem(F);if(!e)return{};let t=JSON.parse(e);if(typeof t!=`object`||!t)return{};let n={};for(let[e,r]of Object.entries(t))typeof e==`string`&&e.length>0&&Ne(r)&&(n[e]=r);return n}catch{return{}}}function Fe(e){if(!(typeof window>`u`))try{if(Object.keys(e).length===0){window.localStorage.removeItem(F);return}window.localStorage.setItem(F,JSON.stringify(e))}catch{}}function Ie(e){let t=O(e)??`Unknown error`;return t.length>I?`${t.slice(0,I)}…`:t}var L=Pe(),R=new Set;function Le(){R.forEach(e=>e())}function z(e){L=e,Fe(e),Le()}function Re(){return L}function ze(e){return R.add(e),()=>{R.delete(e)}}function Be(e,t){let n=L[e],r=Math.min((n?.consecutiveFailures??0)+1,5),i=n?.disabled===!0||r>=5,a={consecutiveFailures:r,lastError:Ie(t),lastFailureAt:Date.now(),disabled:i};z({...L,[e]:a})}function Ve(e){if(!(e in L))return;let{[e]:t,...n}=L;z(n)}function He(e){if(!(e in L))return;let{[e]:t,...n}=L;z(n)}function Ue(e){if(!(e in L))return;let{[e]:t,...n}=L;z(n)}var We=(e,t)=>{(e?.response?.status===401||e?.status===401)&&t.invalidateQueries({queryKey:[`user`,`authenticated`]})},Ge=e=>{if(!(e instanceof ae)||e.response?.status!==401&&e.status!==401)return!1;let t=u().backend;if(t.kind!==`cloud`)return!1;let n=e.config?.url;return!n||n.startsWith(t.host.replace(/\/+$/,``))},B=new Set,Ke=()=>{let e=new a({queryCache:new ne({onSuccess:(e,t)=>{let n=t.meta?.backendId??t.options.meta?.backendId;typeof n==`string`&&Ve(n)},onError:(t,n)=>{if(n.queryKey[0]===`user`&&n.queryKey[1]===`authenticated`||We(t,e),!(n.meta?.disableToast??n.options.meta?.disableToast)&&!Ge(t)){let e=k(t);B.has(e||``)||(P(e||w.t(c.ERROR$GENERIC)),B.add(e||``),setTimeout(()=>{B.delete(e||``)},3e3))}}}),mutationCache:new r({onError:(t,n,r,i)=>{We(t,e),!(i?.meta?.disableToast??i?.options.meta?.disableToast)&&!Ge(t)&&P(k(t)||w.t(c.ERROR$GENERIC))}})});return e},V=null,H=null,U=()=>(V||=Ke(),V),W=()=>H??U(),qe=e=>(H=e??U(),H),G=new Proxy({},{get:(e,t)=>{let n=W(),r=Reflect.get(n,t,n);return typeof r==`function`?r.bind(n):r},set:(e,t,n)=>{let r=W();return Reflect.set(r,t,n,r)}}),Je={_comment:`Single source of truth for version pins, ports, paths, and defaults shared across the npm and Docker install paths. Read by scripts/dev-safe.mjs, scripts/dev-with-automation.mjs, docker/entrypoint.sh (via generated defaults.env), and .github/workflows/docker.yml.`,versions:{agentServer:`1.29.0`,agentCanvas:`1.1.0`,automation:`1.0.0a12`},compatibility:{minimumAgentServer:`1.28.0`},images:{agentServer:`ghcr.io/openhands/agent-server`,agentCanvas:`ghcr.io/openhands/agent-canvas`},ports:{agentServer:18e3,automation:18001,proxy:8e3},paths:{stateSubdir:`agent-canvas`,conversations:`agent-canvas/conversations`,bashEvents:`agent-canvas/bash_events`,automationDb:`automation/automations.db`},packages:{agentServer:`openhands-agent-server`,automation:`openhands-automation`,tools:`openhands-tools`,workspace:`openhands-workspace`}},Ye=5e3,Xe=`unknown`,K=Je.compatibility.minimumAgentServer,Ze=`AGENT_SERVER_UNSUPPORTED_VERSION`,Qe=`AGENT_SERVER_UNKNOWN_VERSION`,q=null,$e=e=>Array.isArray(e?.usable_tools)?e.usable_tools:null,J=class extends Error{details;noBackendConfigured;constructor(e,t){let n=t?.noBackendConfigured??!1;super(n?`No agent server backend is configured yet. Add a backend to get started.`:`Could not connect to the configured agent server. Make sure it is running and reachable, then reload the page.`),this.name=`AgentServerUnavailableError`,this.details=e??null,this.noBackendConfigured=n}},et=e=>e instanceof J||typeof e==`object`&&!!e&&`name`in e&&e.name===`AgentServerUnavailableError`,tt=class extends J{code=Ze;actualVersion;requiredVersion=K;constructor(e){let t=`Agent Canvas requires agent-server ${K} or newer; this backend is running ${e}. Please upgrade the agent-server backend.`;super(t),this.name=`AgentServerUnsupportedVersionError`,this.message=t,this.actualVersion=e}},Y=class extends J{code=Qe;actualVersion;requiredVersion=K;constructor(e){let t=`Could not determine this backend's agent-server version.${e?` It reported "${e}".`:``} Agent Canvas requires agent-server ${K} or newer, but this backend did not return a valid version from /server_info. Restart or rebuild the agent-server backend, then try again.`;super(t),this.name=`AgentServerUnknownVersionError`,this.message=t,this.actualVersion=e}},nt=e=>l()&&Z(e,401);function X(){q=null}function rt(e){let t=$e(q);return Array.isArray(t)?t.includes(e):!0}function it(e){return e instanceof Error&&e.name===`HttpError`&&`status`in e&&typeof e.status==`number`}function Z(e,t){return it(e)&&e.status===t}function at(e){return typeof e.version==`string`&&e.version.trim()||null}function ot(e){let t=at(e);return!t||t.toLowerCase()===Xe?null:t}function st(e){let t=ot(e);return!t||!Q(t)?null:t}function ct(e,t){let n=Q(e),r=Q(t);if(!n||!r)return null;for(let e of[`major`,`minor`,`patch`]){if(n[e]>r[e])return 1;if(n[e]<r[e])return-1}return n.prerelease&&!r.prerelease?-1:!n.prerelease&&r.prerelease?1:n.prerelease&&r.prerelease?n.prerelease.localeCompare(r.prerelease):0}function Q(e){let[t]=e.trim().replace(/^v/,``).split(`+`),[n,r]=t.split(`-`,2),i=n.split(`.`);if(i.length!==3)return null;let[a,o,s]=i.map(e=>Number(e));return[a,o,s].every(e=>Number.isInteger(e)&&e>=0)?{major:a,minor:o,patch:s,prerelease:r}:null}function lt(e){let t=ot(e);if(!t)throw X(),new Y(at(e));let n=ct(t,K);if(n===null)throw X(),new Y(t);if(n<0)throw X(),new tt(t)}async function ut(){let e=pe();if(!e){if(X(),de(u().backend))throw new J(`No backend configured`,{noBackendConfigured:!0});return null}let t=ue({host:e.host,sessionApiKey:e.apiKey||null,timeout:Ye}),n;try{n=await new te(t).getServerInfo()}catch(e){throw X(),Z(e,401)?e:new J(e instanceof Error?e.message:null)}if(lt(n),l())try{await new oe(t).getSettings()}catch(e){if(Z(e,401))throw e;console.warn(`[agent-server] getSettings() probe failed (non-401):`,e)}return q=n,n}var dt={WEB_CLIENT_CONFIG:[`web-client-config`]},ft={all:[`settings`],byScope:e=>[`settings`,e],personal:()=>[`settings`,`personal`]},pt={all:[`llm-profiles`]},mt={all:[`llm-subscription`],openaiStatus:[`llm-subscription`,`openai`,`status`],openaiModels:[`llm-subscription`,`openai`,`models`]},ht={all:[`local-workspaces`]},gt={staleTime:1e3*60*5,gcTime:1e3*60*15},$=g.createContext(null);function _t(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`backend-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function vt({children:e}){let t=g.useSyncExternalStore(le,f,f),n=g.useCallback(()=>{X(),G.invalidateQueries({queryKey:dt.WEB_CLIENT_CONFIG})},[]),r=g.useCallback((e,t)=>{let r=m()?.backendId??null,i=m()?.orgId??null,a=t??null;e===r&&a===i||(h({backendId:e,orgId:a}),n())},[n]),i=g.useCallback(e=>{let t={...e,id:_t()};return p([...d(),t]),h({backendId:t.id}),n(),t},[n]),a=g.useCallback((e,t)=>{let r=d().find(t=>t.id===e),i=m()?.backendId??null;p(d().map(n=>n.id===e?{...n,...t}:n));let a=t.host!==void 0&&r!==void 0&&t.host!==r.host,o=t.apiKey!==void 0&&r!==void 0&&t.apiKey!==r.apiKey;(a||o)&&(He(e),i===e&&n())},[n]),o=g.useCallback(e=>{p(d().filter(t=>t.id!==e)),Ue(e),n()},[n]),s=g.useMemo(()=>({backends:t.backends,active:t.active,setActive:r,addBackend:i,updateBackend:a,removeBackend:o}),[t,r,i,a,o]);return(0,j.jsx)($.Provider,{value:s,children:e})}function yt(){let e=g.useContext($);if(!e)throw Error(`useActiveBackendContext must be used inside <ActiveBackendProvider>`);return e}function bt(){let e=g.useContext($);return e?e.active:{backend:me()??fe,orgId:null}}export{k as A,_e as B,Be as C,P as D,N as E,v as F,_ as I,S as L,D as M,Ee as N,je as O,E as P,C as R,Re as S,ze as T,ve as V,ut as _,pt as a,G as b,dt as c,X as d,st as f,Z as g,et as h,gt as i,O as j,Me as k,ft as l,rt as m,bt as n,mt as o,nt as p,yt as r,ht as s,vt as t,lt as u,U as v,Ve as w,qe as x,W as y,w as z};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-wFmyQBCi.js";import{c as t}from"./declaration-B0yY_dkQ.js";import{r as n}from"./backend-form-modal-BABAz-zH.js";var r=e({AddBackendModal:()=>a}),i=t();function a({onClose:e}){return(0,i.jsx)(n,{mode:`add`,onClose:e})}export{r as n,a as t};
@@ -1,5 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-service-CrPyCR8u.js","assets/rolldown-runtime-wFmyQBCi.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~nk00xiud-MfCRtPrK.js","assets/agent-server-client-options-CxnCYyIW.js","assets/proxy-TeteRRW5.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-D_sPnjeL.js";import{n as t,r as n}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~nk00xiud-MfCRtPrK.js";import{m as r}from"./active-backend-context-CEuva6ZJ.js";import{t as i}from"./common-KeiA2Rod.js";import{T as a,a as o,c as s,n as c,t as l,u as ee,x as u}from"./agent-server-client-options-CxnCYyIW.js";import{c as d,l as f,r as p,t as m}from"./vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~ji28rqgb-DVffa9Ks.js";import{t as h}from"./profiles-client-B4SJ4ZAf.js";import{n as g,t as _}from"./proxy-TeteRRW5.js";import{t as v}from"./settings-CN_HaPjH.js";import{t as y}from"./settings-service.api-B4G8NzCM.js";import{t as b}from"./v4-BMWDcIWQ.js";import{t as x}from"./vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-DRld6s9c.js";import{f as S,o as te,s as ne}from"./acp-providers-B_ZxlEbx.js";import{d as re,f as C,r as ie}from"./llm-subscription-C1xDoa3K.js";import{t as ae}from"./llm-subscription-service-BX_AtNlO.js";var w=class{constructor(e){this.host=e.host.replace(/\/$/,``),this.apiKey=e.apiKey,this.client=new t({baseUrl:this.host,apiKey:this.apiKey,timeout:e.timeout||6e4})}async createConversation(e){return(await this.client.post(`/api/conversations`,e)).data}async searchConversations(e={}){return(await this.client.get(`/api/conversations/search`,{params:e})).data}async countConversations(e={}){return(await this.client.get(`/api/conversations/count`,{params:e})).data}async getConversations(e){return(await this.client.get(`/api/conversations`,{params:{ids:e}})).data}async getConversation(e){return(await this.client.get(`/api/conversations/${e}`)).data}async searchEvents(e,t={}){return(await this.client.get(`/api/conversations/${e}/events/search`,{params:t})).data}async getEvent(e,t){return(await this.client.get(`/api/conversations/${e}/events/${t}`)).data}async getEvents(e,t){return Promise.all(t.map(async t=>{try{return await this.getEvent(e,t)}catch(e){if(e instanceof n&&e.status===404)return null;throw e}}))}async sendEvent(e,t,n={}){await this.client.post(`/api/conversations/${e}/events`,{...t,...n.run===void 0?{}:{run:n.run}})}async pauseConversation(e){return(await this.client.post(`/api/conversations/${e}/pause`,{})).data}async interruptConversation(e){return(await this.client.post(`/api/conversations/${e}/interrupt`,{})).data}async runConversation(e){return(await this.client.post(`/api/conversations/${e}/run`,{})).data}async startGoal(e,t){return(await this.client.post(`/api/conversations/${e}/goal`,t)).data}async stopGoal(e){return(await this.client.post(`/api/conversations/${e}/goal/stop`,{})).data}async resumeGoal(e){return(await this.client.post(`/api/conversations/${e}/goal/resume`,{})).data}async askAgent(e,t){return(await this.client.post(`/api/conversations/${e}/ask_agent`,{question:t})).data}async getEventCount(e,t={}){return(await this.client.get(`/api/conversations/${e}/events/count`,{params:t})).data}async respondToConfirmation(e,t){return(await this.client.post(`/api/conversations/${e}/events/respond_to_confirmation`,t)).data}async getAgentFinalResponse(e){return(await this.client.get(`/api/conversations/${e}/agent_final_response`)).data}async setConfirmationPolicy(e,t){let n=`policy`in t?t:{policy:t};return(await this.client.post(`/api/conversations/${e}/confirmation_policy`,n)).data}async condenseConversation(e){return(await this.client.post(`/api/conversations/${e}/condense`,{})).data}async setSecurityAnalyzer(e,t){let n=oe(t)?t:{security_analyzer:t};return(await this.client.post(`/api/conversations/${e}/security_analyzer`,n)).data}async updateSecrets(e,t){return(await this.client.post(`/api/conversations/${e}/secrets`,t)).data}async forkConversation(e,t={},n={}){return(await this.client.post(`/api/conversations/${e}/fork`,t,{params:n.includeSkills===void 0?void 0:{include_skills:n.includeSkills}})).data}async switchProfile(e,t){await this.client.post(`/api/conversations/${e}/switch_profile`,{profile_name:t})}async switchLLM(e,t){await this.client.post(`/api/conversations/${e}/switch_llm`,{llm:t})}async switchAcpModel(e,t){await this.client.post(`/api/conversations/${e}/switch_acp_model`,{model:t})}async deleteConversation(e){await this.client.delete(`/api/conversations/${e}`)}async updateConversation(e,t){return(await this.client.patch(`/api/conversations/${e}`,t)).data}close(){this.client.close()}};function oe(e){return typeof e==`object`&&!!e&&`security_analyzer`in e}var T=new Map;function se(e){return/^([/\\]|[a-zA-Z]:[/\\])/.test(e)}function ce(e,t){return`${e.replace(/[/\\]+$/,``)}/${t.replace(/^[/\\]+/,``)}`}async function le(e={}){let t=c(e),n=t.host,r=T.get(n);if(r)return r;let i=(async()=>{let{home:e}=await new f(t).getHome();if(!e||typeof e!=`string`)throw Error(`Agent server returned an empty home directory`);return e.replace(/[/\\]+$/,``)})();T.set(n,i);try{return await i}catch(e){throw T.delete(n),e}}async function ue(e,t={}){let n=e.replace(/[/\\]+$/,``);return n?se(n)?n:ce(await le(t),n):le(t)}var E=`openhands-agent-server-conversation-metadata`,D=()=>{if(typeof window>`u`)return{};try{let e=window.localStorage.getItem(E);if(!e)return{};let t=JSON.parse(e);return!t||typeof t!=`object`?{}:t}catch{return{}}},O=e=>{if(!(typeof window>`u`)){if(Object.keys(e).length===0){window.localStorage.removeItem(E);return}window.localStorage.setItem(E,JSON.stringify(e))}},k=e=>D()[e]??null,A=(e,t)=>{let n=D();n[e]=t,O(n)},j=e=>{let t=D();e in t&&(delete t[e],O(t))};function M(e){if(!e?.id)return e;let t=k(e.id);return t?{...e,selected_repository:e.selected_repository??t.selected_repository??null,selected_branch:e.selected_branch??t.selected_branch??null,git_provider:e.git_provider??t.git_provider??null,selected_workspace:e.selected_workspace??t.selected_workspace??null}:e}function N(){let e=s().backend;if(e.kind!==`cloud`)throw Error(`Cloud conversations call requires a cloud backend.`);return e}async function de(e=20,t){let n=N(),r=new URLSearchParams;r.set(`limit`,String(e)),t&&r.set(`page_id`,t),r.set(`sort_order`,`UPDATED_AT_DESC`);let i=await _({backend:n,method:`GET`,path:`/api/v1/app-conversations/search?${r.toString()}`});return{items:(i?.items??[]).map(e=>M(e)),next_page_id:i?.next_page_id??null}}async function P(e){if(e.length===0)return[];let t=N(),n=new URLSearchParams;for(let t of e)n.append(`ids`,t);return(await _({backend:t,method:`GET`,path:`/api/v1/app-conversations?${n.toString()}`})??[]).map(M)}async function fe(e){return await _({backend:N(),method:`POST`,path:`/api/v1/app-conversations`,body:e})}async function pe(e){return _({backend:N(),method:`GET`,path:`/api/v1/app-conversations/${e}/download`,responseType:`blob`})}async function me(e){await _({backend:N(),method:`DELETE`,path:`/api/v1/app-conversations/${e}`})}async function he(e,t){return await _({backend:N(),method:`PATCH`,path:`/api/v1/app-conversations/${e}`,body:{public:t}})}async function ge(e){await _({backend:N(),method:`POST`,path:`/api/v1/sandboxes/${e}/pause`})}async function _e(e){await _({backend:N(),method:`POST`,path:`/api/v1/sandboxes/${e}/resume`})}async function ve(e,t){let n=N(),r=new URLSearchParams;return r.append(`file_path`,t),await _({backend:n,method:`GET`,path:`/api/v1/app-conversations/${e}/file?${r.toString()}`})??``}async function ye(e){let t=N(),n=new URLSearchParams;return n.set(`ids`,e),(await _({backend:t,method:`GET`,path:`/api/v1/app-conversations/start-tasks?${n.toString()}`}))?.[0]??null}var F=`canvas_ui`,be=`canvas_ui_tool`,xe=[`terminal`,`file_editor`,`task_tracker`,F],I=`browser_tool_set`,L=`task_tool_set`;function Se(){return!0}function Ce(){let e=(void 0)?.trim();if(e)return e;if(typeof window<`u`){let e=window.__AGENT_CANVAS_RUNTIME_SERVICES_INFO__;if(typeof e==`string`)return e.trim()||null}return null}function we(){let e=Ce();if(!e)return null;try{let t=JSON.parse(e);return!t||typeof t!=`object`?null:t}catch{return null}}function Te(){let e=we();if(!e?.services)return;let t=[];t.push(`<RUNTIME_SERVICES>`),e.mode?t.push(`You are running inside an agent-canvas dev stack started in '${e.mode}' mode.`):t.push(`You are running inside an agent-canvas dev stack.`),t.push(`The following services are reachable from your sandbox. URLs are written`,`from your point of view (i.e., as you should curl/fetch them).`,``);let{agent_server:n,ingress:r,automation:i}=e.services,{frontend:a}=e.services;n?.url_from_agent&&t.push(`* Agent Server (you): ${n.url_from_agent}`,` ${n.description??`The agent-server hosting your tool calls.`}`),r?.url_from_agent&&t.push(`* Ingress: ${r.url_from_agent}`,` ${r.description??`Unified entry point for browser-facing traffic.`}`),a?.url_from_agent&&t.push(`* Frontend: ${a.url_from_agent}`,` ${a.description??`Frontend dev server.`}`),i?.url_from_agent?(t.push(`* Automation backend: ${i.url_from_agent}`,` ${i.description??`OpenHands Automations service.`}`),i.docs_url&&t.push(` Docs: ${i.docs_url}`),i.openapi_url&&t.push(` OpenAPI: ${i.openapi_url}`),i.auth_env_var&&t.push(` Auth: header 'X-Session-API-Key: $${i.auth_env_var}'`)):t.push(`* Automation backend: not running in this dev mode (skip /api/automation calls).`);let o=n?.url_from_agent;return t.push(``,`Trust this block over guessing: do not assume any other URLs are running.`),o&&t.push(`In particular, ${o} inside your sandbox is the Agent Server`,`you are running inside of — NOT the automation backend.`),t.push(`</RUNTIME_SERVICES>`),t.join(`
3
- `)}function Ee(e){let{host:t}=c();return`${t}/api/conversations/${e}`}function R(e){return`Conversation ${e.slice(0,5)}`}function z(e){let t=k(e.id),n=e.agent?.kind===`ACPAgent`,r=n?e.tags?.acpserver??null:null;return{id:e.id,created_by_user_id:null,selected_repository:t?.selected_repository??null,selected_branch:t?.selected_branch??null,git_provider:t?.git_provider??null,selected_workspace:t?.selected_workspace??null,active_profile:t?.active_profile??null,title:e.title?.trim()?e.title:R(e.id),trigger:null,pr_number:[],agent_kind:n?`acp`:`openhands`,acp_server:r,llm_model:n?S({runtimeName:e.current_model_name,runtimeId:e.current_model_id,configured:e.agent?.acp_model,sdkLlm:e.agent?.llm?.model}):e.agent?.llm?.model??v.llm_model,metrics:e.metrics?{accumulated_cost:e.metrics.accumulated_cost??null,max_budget_per_task:e.metrics.max_budget_per_task??null,accumulated_token_usage:e.metrics.accumulated_token_usage?{prompt_tokens:e.metrics.accumulated_token_usage.prompt_tokens??0,completion_tokens:e.metrics.accumulated_token_usage.completion_tokens??0,cache_read_tokens:e.metrics.accumulated_token_usage.cache_read_tokens??0,cache_write_tokens:e.metrics.accumulated_token_usage.cache_write_tokens??0,context_window:e.metrics.accumulated_token_usage.context_window??0,per_turn_token:e.metrics.accumulated_token_usage.per_turn_token??0}:null}:null,created_at:e.created_at,updated_at:e.updated_at,execution_status:e.execution_status??i.IDLE,sandbox_status:e.sandbox_status??null,conversation_url:Ee(e.id),session_api_key:c().apiKey??null,sandbox_id:null,workspace:{working_dir:e.workspace?.working_dir??a()},public:!1,sub_conversation_ids:[]}}function De(e){return{items:e.items.map(z),next_page_id:e.next_page_id??null}}var Oe=`acpserver`,ke=`gAAAAA`,Ae=new Set([`schema_version`,`agent_settings`,`workspace`,`conversation_id`,`initial_message`,`plugins`]);function B(e){return!e||typeof e!=`object`||Array.isArray(e)?{}:structuredClone(e)}function V(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function H(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function je(e){return!H(e)||!H(e.mcpServers)?!1:Object.values(e.mcpServers).some(e=>H(e)?[`env`,`headers`].some(t=>{let n=e[t];return H(n)?Object.values(n).some(e=>typeof e==`string`&&e.startsWith(ke)):!1}):!1)}function Me(e){return e.confirmation_mode===!0?e.security_analyzer===`llm`?{kind:`ConfirmRisky`,threshold:`HIGH`,confirm_unknown:!0}:{kind:`AlwaysConfirm`}:{kind:`NeverConfirm`}}function Ne(e){switch(e.security_analyzer){case`llm`:return{kind:`LLMSecurityAnalyzer`};case`pattern`:return{kind:`PatternSecurityAnalyzer`};case`policy_rail`:return{kind:`PolicyRailSecurityAnalyzer`};default:return}}function Pe(e){return!!e&&typeof e==`object`&&!Array.isArray(e)&&typeof e.name==`string`}function U(e,t){return e===F?r(e):e===I?Se()&&r(e):e===L?t.enable_sub_agents===!0&&r(e):!0}function Fe(e){let t=new Map;for(let n of xe)U(n,e)&&t.set(n,{name:n,params:{}});for(let n of[I,L])U(n,e)&&t.set(n,{name:n,params:{}});let n=e.tools;if(Array.isArray(n)&&n.every(e=>Pe(e)))for(let r of n)U(r.name,e)&&t.set(r.name,{name:r.name,params:B(r.params)});return Array.from(t.values())}function Ie(e,t){let n=[e?.trim(),t?.trim()].filter(Boolean);return n.length===0?null:{role:`user`,content:[{type:`text`,text:n.join(`
4
-
5
- `)}],run:!0}}function Le(){return x.map(e=>{let t=e.triggers?.length>0?{type:`keyword`,keywords:e.triggers}:null,n=`/home/runner/work/agent-canvas/agent-canvas/node_modules/@openhands/extensions/skills/${e.name}/SKILL.md`;return{name:e.name,content:e.content,trigger:t,source:n,description:e.description??null,is_agentskills_format:!0,...e.license?{license:e.license}:{},...e.compatibility?{compatibility:e.compatibility}:{}}})}function W(e){let t=Te(),n=B(e.agent_context),r=[...Array.isArray(n.skills)?n.skills:[],...Le()];return{...n,skills:r,load_public_skills:!1,load_user_skills:!0,load_project_skills:!0,...t?{system_message_suffix:t}:{}}}function G(e){return B(e.agent_settings).agent_kind===`acp`}function Re(e){let t=B(e.agent_settings).acp_server;return typeof t==`string`&&t.length>0?t:void 0}function ze(e){let t=e.acp_command;if(!(Array.isArray(t)&&t.length===0)&&t!==void 0)return t;let n=ne(typeof e.acp_server==`string`?e.acp_server:void 0);return n?[...n.default_command]:t}function Be(e){let t=B(e.agent_settings),n={agent_kind:`acp`,agent_context:W(t)};for(let e of m){if(e===`acp_model`||e===`acp_env`)continue;let r=e===`acp_command`?ze(t):t[e];r!=null&&(n[e]=r)}let r=B(t.mcp_config);Object.keys(r).length>0&&`mcpServers`in r&&(n.mcp_config=r);let i=typeof t.acp_server==`string`?t.acp_server:void 0,a=S({configured:t.acp_model,providerDefault:te(i)});return a&&(n.acp_model=a),n}function Ve(e){let t=B(e.agent_settings),n=B(t.llm);n.model=typeof n.model==`string`&&n.model.trim().length>0?n.model:v.llm_model,n.stream=!0;let r=V(n.api_key);r?n.api_key=r:delete n.api_key;let i=V(n.base_url);i?n.base_url=i:delete n.base_url,C(n)?(n.auth_type=ie,n.subscription_vendor=re,delete n.api_key,delete n.base_url):(delete n.auth_type,delete n.subscription_vendor);let a=B(t.mcp_config);(Object.keys(a).length===0||!(`mcpServers`in a))&&delete t.mcp_config,delete t.acp_server;for(let e of m)delete t[e];return delete t.acp_env,{...t,llm:n,agent_context:W(t),tools:Fe(t)}}function He(e){return G(e)?Be(e):Ve(e)}function Ue(e){let{settings:t,query:n,conversationInstructions:r,plugins:i,workingDir:o}=e,s=B(t.conversation_settings),c=Ie(n,r);return Ae.forEach(e=>delete s[e]),{...s,workspace:{kind:`LocalWorkspace`,working_dir:o??a()},...c?{initial_message:c}:{},...i?.length?{plugins:i.map(e=>({source:e.source,...e.ref?{ref:e.ref}:{},...e.repo_path?{repo_path:e.repo_path}:{}}))}:{}}}function We(e){let t=e.encryptedAgentSettings?{...e.settings,agent_settings:e.encryptedAgentSettings}:e.settings,n=G(t),i=He(t),a=n?Re(t):void 0,o=Ue(e.encryptedConversationSettings?{...e,settings:{...e.settings,conversation_settings:e.encryptedConversationSettings}}:e),s={agent_settings:i,workspace:o.workspace,confirmation_policy:Me(o),max_iterations:typeof o.max_iterations==`number`?o.max_iterations:500,stuck_detection:!0,autotitle:!0,worktree:e.worktree??!0};a&&(s.tags={[Oe]:a}),e.secretsEncrypted&&(!n||je(i.mcp_config))&&(s.secrets_encrypted=!0),e.conversationId&&(s.conversation_id=e.conversationId);let c=Ne(o);c&&(s.security_analyzer=c),o.initial_message&&(s.initial_message=o.initial_message),o.plugins&&(s.plugins=o.plugins),o.hook_config&&(s.hook_config=o.hook_config);let l={},u=r(F);if(u&&(l[F]=be),Object.assign(l,o.tool_module_qualnames??{}),u||delete l[F],Object.keys(l).length>0&&(s.tool_module_qualnames=l),o.agent_definitions&&(s.agent_definitions=o.agent_definitions),e.customSecrets&&e.customSecrets.length>0){let t=ee(),n=t?g(t):{},r={};for(let t of e.customSecrets){let e={kind:`LookupSecret`,url:`/api/settings/secrets/${encodeURIComponent(t.name)}`,description:t.description};Object.keys(n).length>0&&(e.headers=n),r[t.name]=e}s.secrets=r}return s}var Ge=`Connect your ChatGPT subscription before starting a conversation with this LLM profile.`;async function K(e){if(C(B(e.llm))&&!(await ae.getOpenAIStatus()).connected)throw Error(Ge)}async function Ke(t){let{SecretsService:n}=await e(async()=>{let{SecretsService:e}=await import(`./secrets-service-CrPyCR8u.js`).then(e=>e.n);return{SecretsService:e}},__vite__mapDeps([0,1,2,3,4])),[r,i]=await Promise.all([y.getSettingsForConversation(),n.getSecrets()]),{agentSettings:a,conversationSettings:o,secretsEncrypted:s}=r;return await K(a),We({...t,encryptedAgentSettings:a,encryptedConversationSettings:o,secretsEncrypted:s,customSecrets:i})}function qe(){return{hooks:[]}}var Je=`1970-01-01T00:00:00.000Z`,Ye=`Unable to load conversations because the selected agent server returned data this UI does not understand. Check the backend URL/session key and update the agent server if needed.`;function q(){return Error(Ye)}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Y(e){return typeof e==`number`?e:null}function X(e){return typeof e==`number`?e:0}function Z(e){return typeof e==`string`?e:null}function Q(e,t,n){let r=e[t]??e[n];return typeof r==`string`&&r.trim()?r:Je}function Xe(e){return J(e)?{prompt_tokens:X(e.prompt_tokens),completion_tokens:X(e.completion_tokens),cache_read_tokens:X(e.cache_read_tokens),cache_write_tokens:X(e.cache_write_tokens),context_window:X(e.context_window),per_turn_token:X(e.per_turn_token)}:null}function Ze(e){return J(e)?{accumulated_cost:Y(e.accumulated_cost),max_budget_per_task:Y(e.max_budget_per_task),accumulated_token_usage:Xe(e.accumulated_token_usage)}:null}function Qe(e){if(!J(e))return null;let t=J(e.llm)?{model:Z(e.llm.model)}:null;return{kind:Z(e.kind),acp_model:Z(e.acp_model),llm:t}}function $e(e){return J(e)?{working_dir:Z(e.working_dir)}:null}function et(e){if(!J(e))return null;let t={};for(let[n,r]of Object.entries(e))typeof r==`string`&&(t[n]=r);return t}function tt(e){if(!e.startsWith(`/`))return null;let t=[];for(let n of e.split(`/`))if(n&&n!==`.`)if(n===`..`){if(!t.length)return null;t.pop()}else t.push(n);return`/${t.join(`/`)}`}function nt(e,t){let n=tt(e),r=tt(t);if(!n||!r||n!==r&&!n.startsWith(`${r}/`))throw Error(`Conversation file path must stay inside the workspace`);return n}function rt(e){if(!J(e)||typeof e.id!=`string`||!e.id.trim())throw q();return{id:e.id.trim(),title:Z(e.title),created_at:Q(e,`created_at`,`createdAt`),updated_at:Q(e,`updated_at`,`updatedAt`),execution_status:Z(e.execution_status),sandbox_status:Z(e.sandbox_status),metrics:Ze(e.metrics),agent:Qe(e.agent),workspace:$e(e.workspace),tags:et(e.tags),current_model_id:Z(e.current_model_id),current_model_name:Z(e.current_model_name)}}function $(e){if(!Array.isArray(e))throw q();return e.map(rt)}function it(e){if(Array.isArray(e))return{items:$(e),next_page_id:null};if(!J(e))throw q();return{items:$(e.items),next_page_id:typeof e.next_page_id==`string`?e.next_page_id:null}}var at=new Set([`idle`,`running`,`paused`,`waiting_for_confirmation`,`finished`,`error`,`stuck`]);function ot(e){let t=e??`idle`;return at.has(t)?t:`idle`}function st(e,t){if(!e)throw Error(`Conversation ${t} was not found`);return e}var ct=class{static async sendMessage(e,t,n){let r=s().backend,i=n?.conversationUrl??null,a=n?.sessionApiKey??null;if(r.kind===`cloud`){if(!i||!a){let[t]=await P([e]);i=t?.conversation_url?.trim()??null,a=t?.session_api_key?.trim()??null}if(!i||!a)throw Error(`Conversation sandbox is still starting. Wait for it to finish, then try again.`);return await _({backend:r,method:`POST`,hostOverride:o(i),path:`/api/conversations/${e}/events`,body:{...t,run:!0},authMode:`session-api-key`,sessionApiKey:a}),t}return await new w(c({conversationUrl:i,sessionApiKey:a})).sendEvent(e,t,{run:!0}),t}static async createConversation(e,t,n,r,i,a,o,d,f){if(s().backend.kind===`cloud`)return fe({initial_message:e?{role:`user`,content:[{type:`text`,text:e}]}:null,title:t??null,selected_repository:r?.selected_repository??null,selected_branch:r?.selected_branch??null,git_provider:r?.git_provider??null,plugins:n??null,parent_conversation_id:o??null,agent_type:d,sandbox_id:f??null});let p=await y.getSettings(),m=b(),h=await ue(i??u(m)),g=a??(i?`local_repo`:`new_worktree`),_=await Ke({settings:p,query:e,conversationInstructions:t,plugins:n,conversationId:m,workingDir:h,worktree:g===`new_worktree`}),v=await new w(c()).createConversation(_),x=ee();if(!x)throw new l;return(r?.selected_repository||i)&&A(v.id,{selected_repository:r?.selected_repository??null,selected_branch:r?.selected_branch??null,git_provider:r?.git_provider??null,selected_workspace:i??null,workspace_mode:g}),{id:v.id,created_by_user_id:null,status:`READY`,detail:null,app_conversation_id:v.id,agent_server_url:x.host,request:{initial_message:_.initial_message,plugins:n??null},created_at:v.created_at,updated_at:v.updated_at}}static async getStartTask(e){return s().backend.kind===`cloud`?ye(e):null}static async getVSCodeUrl(e,t,n){let r=await this.resolveConversationWorkingDir(e);return{vscode_url:await new d(c({conversationUrl:t,sessionApiKey:n})).getUrl({baseUrl:typeof window<`u`?window.location.origin:void 0,workspaceDir:r})}}static async resolveConversationWorkingDir(e){let[t]=await this.batchGetAppConversations([e]);return t?.workspace?.working_dir??a()}static async batchGetAppConversations(e){return e.length===0?[]:s().backend.kind===`cloud`?P(e):$(await new w(c()).getConversations(e)).map(e=>z(e))}static async updateConversationPublicFlag(e,t){if(s().backend.kind!==`cloud`)throw Error(`Public sharing requires a cloud backend.`);return he(e,t)}static async updateConversationRepository(e,t,n,r){t?A(e,{...k(e)??{},selected_repository:t,selected_branch:n??null,git_provider:r??null}):j(e);let[i]=await this.batchGetAppConversations([e]);return st(i,e)}static async readConversationFile(e,t){if(s().backend.kind===`cloud`)return ve(e,nt(t??`/workspace/project/.agents_tmp/PLAN.md`,`/workspace/project`));let n=await this.resolveConversationWorkingDir(e),r=nt(t??`${n}/.agents_tmp/PLAN.md`,n);return new f(c()).downloadTextFile(r)}static async downloadConversation(e){return s().backend.kind===`cloud`?pe(e):new f(c()).downloadTrajectory(e)}static async getHooks(e){return qe()}static async getRuntimeConversation(e,t,n){let r=s().backend,i=r.kind===`cloud`&&t?await _({backend:r,method:`GET`,hostOverride:o(t),path:`/api/conversations/${e}`,authMode:`session-api-key`,sessionApiKey:n}):await new w(c({conversationUrl:t,sessionApiKey:n})).getConversation(e),a=rt(i),l=J(i)?i.stats:null;return{id:a.id,title:a.title?.trim()?a.title:R(a.id),metrics:Ze(a.metrics),created_at:a.created_at,updated_at:a.updated_at,status:ot(a.execution_status),stats:J(l)?l:{usage_to_metrics:{}}}}static async searchConversations(e=20,t){return s().backend.kind===`cloud`?de(e,t):De(it(await new w(c()).searchConversations({limit:e,page_id:t,sort_order:p.UPDATED_AT_DESC})))}static async deleteConversation(e){s().backend.kind===`cloud`?await me(e):await new w(c()).deleteConversation(e),j(e)}static async updateConversationTitle(e,t){await new w(c()).updateConversation(e,{title:t});let[n]=await this.batchGetAppConversations([e]);return st(n,e)}static async switchProfile(e,t){if(s().backend.kind===`cloud`)throw Error(`LLM profile switching is only supported for local agent-server backends.`);if(!e){await new h(c()).activateProfile(t);return}let n=c(),r=new w(n),i=await new h(n).getProfile(t,{exposeSecrets:`encrypted`}),a=typeof i.config.model==`string`?i.config.model:``;if(!a)throw Error(`Profile '${t}' has no model.`);await K({llm:i.config}),await r.switchLLM(e,{...i.config,model:a,stream:!0,usage_id:`profile:${t}:${b()}`})}static async switchAcpModel(e,t){let{backend:n}=s();if(n.kind===`cloud`){await _({backend:n,method:`POST`,path:`/api/v1/app-conversations/${e}/switch_acp_model`,body:{model:t}});return}await new w(c()).switchAcpModel(e,t)}};export{k as a,w as c,_e as i,P as n,A as o,ge as r,ue as s,ct as t};