@openhands/agent-canvas 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1105) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/{acp-providers-C921BlYB.js → acp-providers-DLe_gVDY.js} +1 -1
  4. package/build/assets/active-backend-context-B0wI7OzM.js +2 -0
  5. package/build/assets/agent-context-settings-CaQtdNA-.js +1 -0
  6. package/build/assets/{agent-profiles-settings-BymJf3EP.js → agent-profiles-settings-CvuErjp6.js} +1 -1
  7. package/build/assets/agent-server-conversation-service.api-km_8sOVf.js +41 -0
  8. package/build/assets/{agent-settings-WzqXk6B4.js → agent-settings-UE-U4Xii.js} +2 -2
  9. package/build/assets/agent-settings-nmO-KSXr.js +1 -0
  10. package/build/assets/alert-banner-BMaOtTCG.js +1 -0
  11. package/build/assets/{api-key-entry-screen-DI0I04O3.js → api-key-entry-screen-Cy66vT4D.js} +1 -1
  12. package/build/assets/{app-settings-DGistSFV.js → app-settings-9ok42bV6.js} +1 -1
  13. package/build/assets/automation-detail-fuITm6i3.js +3 -0
  14. package/build/assets/automation-export-CRq40mux.js +2 -0
  15. package/build/assets/automation-setup-route-EXDazOHW.js +1 -0
  16. package/build/assets/automation-templates-BArZsaxP.js +1 -0
  17. package/build/assets/automations-list-CG4HKOTn.js +1 -0
  18. package/build/assets/{back-nav-button-D4ngzpSh.js → back-nav-button-BZB6H7xz.js} +1 -1
  19. package/build/assets/{backend-form-modal-B8D5hBzK.js → backend-form-modal-B_lXjOGa.js} +1 -1
  20. package/build/assets/{backend-synced-settings-badge-BnzI8Ysj.js → backend-synced-settings-badge-B_NXJ3u1.js} +1 -1
  21. package/build/assets/{badge-1Mf1iPcX.js → badge-C64c-7PO.js} +1 -1
  22. package/build/assets/{base-modal-BBuy0WQQ.js → base-modal-C0RQPug5.js} +1 -1
  23. package/build/assets/bot-DuN83i3p.js +1 -0
  24. package/build/assets/{brand-button-DGN6Y9o6.js → brand-button-DJmFCyMK.js} +1 -1
  25. package/build/assets/{browser-D_ekTlTS.js → browser-D3gd2n83.js} +2 -2
  26. package/build/assets/{browser-tab-D4a4Ou_w.js → browser-tab-BicAWuJ1.js} +1 -1
  27. package/build/assets/{chat-send-button-CgbcjD97.js → chat-send-button-CCrH1E8u.js} +1 -1
  28. package/build/assets/check-DLOKoFU9.js +1 -0
  29. package/build/assets/{checkmark-CxdXtM3b.js → checkmark-XZyokq_Y.js} +1 -1
  30. package/build/assets/chevron-down-CnIbtM6i.js +1 -0
  31. package/build/assets/circle-check-CxCYJrpZ.js +1 -0
  32. package/build/assets/{circle-plus-check-toggle-yTAS-nX3.js → circle-plus-check-toggle-CB_sNERY.js} +1 -1
  33. package/build/assets/{close-CDAVqnTn.js → close-ScPlnwyq.js} +1 -1
  34. package/build/assets/{cloud-funnel-analytics-CEOl5Gxr.js → cloud-funnel-analytics-XynamQGU.js} +1 -1
  35. package/build/assets/{combobox-caret-Bd2yySnF.js → combobox-caret-Bwiifgjs.js} +1 -1
  36. package/build/assets/command-menu-CA3IjGNc.js +1 -0
  37. package/build/assets/condenser-settings-cNGy75gq.js +1 -0
  38. package/build/assets/{confirmation-modal-NCUPr2-O.js → confirmation-modal-BATFmFyP.js} +1 -1
  39. package/build/assets/context-menu-list-item-DhJCcBA0.js +1 -0
  40. package/build/assets/conversation-B6t6EiVp.js +1 -0
  41. package/build/assets/{conversation-CUJ0Vo8g.js → conversation-Csdxh9Xt.js} +7 -7
  42. package/build/assets/conversation-panel-B6t6EiVp.js +1 -0
  43. package/build/assets/{conversation-state-store-F62HvuI1.js → conversation-state-store-C2QzhPaK.js} +1 -1
  44. package/build/assets/{conversation-store-C6hSXHw0.js → conversation-store-B8Eahyeg.js} +1 -1
  45. package/build/assets/{conversation-tab-empty-state-BCZ7rUMH.js → conversation-tab-empty-state-D3fb5xIA.js} +1 -1
  46. package/build/assets/{copy-DCmZtz6n.js → copy-DaHuDtG4.js} +1 -1
  47. package/build/assets/{copy-z7idLzWO.js → copy-Drmhc2jD.js} +1 -1
  48. package/build/assets/{copy-to-clipboard-button-D_Lp6-Fl.js → copy-to-clipboard-button-c4MQwKGj.js} +1 -1
  49. package/build/assets/{device-verify-DLmolX8Q.js → device-verify-oFpQoLgm.js} +1 -1
  50. package/build/assets/{dist-hOnv1nn2.js → dist-Bl64nBZL.js} +1 -1
  51. package/build/assets/{dropdown-classes-BB8rzqXL.js → dropdown-classes-f91ARMV1.js} +1 -1
  52. package/build/assets/entry.client-BCzY2Bf3.js +2 -0
  53. package/build/assets/enum-filter-dropdown-HG3q3rkV.js +1 -0
  54. package/build/assets/{environment-switch-overlay-BepBBX66.js → environment-switch-overlay-CquZXolz.js} +1 -1
  55. package/build/assets/{extensions-hub-R3KNv-5V.js → extensions-hub-BeweE0PW.js} +1 -1
  56. package/build/assets/{extensions-navigation-CfWFmI1I.js → extensions-navigation-Dd58NlUF.js} +1 -1
  57. package/build/assets/{external-link-BdBSg8rk.js → external-link-zWbg5KXS.js} +1 -1
  58. package/build/assets/file-text-RecuaId_.js +1 -0
  59. package/build/assets/files-tab-CLLG55-q.js +1 -0
  60. package/build/assets/{folder-C86qXV7M.js → folder-C1ou4_DT.js} +1 -1
  61. package/build/assets/{form-control-classes-DAfsCJTe.js → form-control-classes-pHtZUI6K.js} +1 -1
  62. package/build/assets/format-relative-time-6-3uvOXe.js +1 -0
  63. package/build/assets/format-time-delta-BIR5Os7T.js +1 -0
  64. package/build/assets/{git-provider-icon-BZqqUPlm.js → git-provider-icon-wg7ShB98.js} +1 -1
  65. package/build/assets/{git-repo-dropdown-DEpOwUez.js → git-repo-dropdown-CWnaUyxL.js} +1 -1
  66. package/build/assets/git-repo-dropdown-TzOuG5Ef.js +1 -0
  67. package/build/assets/{highlighted-source-view-CX9oIoVT.js → highlighted-source-view-DBtI3por.js} +1 -1
  68. package/build/assets/home-BpZQkDWM.js +1 -0
  69. package/build/assets/home-OEx0XtfP.js +1 -0
  70. package/build/assets/{home-store-Ch1ErdBc.js → home-store-DM4qw1lF.js} +1 -1
  71. package/build/assets/{iconBase-B2rQun3J.js → iconBase-C2sR-uAp.js} +1 -1
  72. package/build/assets/index-home-OEx0XtfP.js +1 -0
  73. package/build/assets/info-C9lpK5pw.js +1 -0
  74. package/build/assets/install-server-modal-DnjZrJUy.js +1 -0
  75. package/build/assets/kebab-menu-item-content-By16Tm_0.js +1 -0
  76. package/build/assets/{launch-B1POpHuP.js → launch-C9uijypN.js} +1 -1
  77. package/build/assets/{link-external-BDBCz-_z.js → link-external-BNZzCM1I.js} +1 -1
  78. package/build/assets/list-filter-C86CBRDE.js +1 -0
  79. package/build/assets/{list-todo-DtiL3lTp.js → list-todo-CheUtB7F.js} +1 -1
  80. package/build/assets/llm-not-configured-banner-DrBrhfN0.js +27 -0
  81. package/build/assets/{llm-settings-CXo8iPNW.js → llm-settings-CRsLqxgu.js} +1 -1
  82. package/build/assets/llm-settings-RBm_3kNm.js +1 -0
  83. package/build/assets/{llm-subscription-service-DBJbfd8Z.js → llm-subscription-service-DwjJ8-_X.js} +1 -1
  84. package/build/assets/loader-circle-C5AnEN8r.js +1 -0
  85. package/build/assets/{loading-spinner-DfZ_bhV7.js → loading-spinner-6Yj-YyoS.js} +1 -1
  86. package/build/assets/{manage-backends-modal-CwyWsiag.js → manage-backends-modal-DrwErS0N.js} +1 -1
  87. package/build/assets/manifest-c352d453.js +1 -0
  88. package/build/assets/manifest-subpage-layout-CtqVwIvJ.js +1 -0
  89. package/build/assets/{markdown-renderer-DgiLLhW6.js → markdown-renderer-lsvsp7jn.js} +4 -4
  90. package/build/assets/mcp-DD4hPTRE.js +9 -0
  91. package/build/assets/mcp-marketplace-utils-BMnYz0Gc.js +1 -0
  92. package/build/assets/messages-Dt77e0qi.js +40 -0
  93. package/build/assets/{modal-backdrop-X-vKo61e.js → modal-backdrop-BSzNhM4r.js} +1 -1
  94. package/build/assets/{modal-body-CMsDpalT.js → modal-body-BHGCSAtj.js} +1 -1
  95. package/build/assets/{modal-classes-B6PDrxXo.js → modal-classes-DSTLuxkA.js} +1 -1
  96. package/build/assets/{modal-close-button-DyxBZaAb.js → modal-close-button-dheWZ2ys.js} +1 -1
  97. package/build/assets/mouse-pointer-click-Px-dXWcS.js +1 -0
  98. package/build/assets/{navigation-context-BOGzIng3.js → navigation-context-CQZwH_tC.js} +1 -1
  99. package/build/assets/navigation-link-Bxo3-4vo.js +1 -0
  100. package/build/assets/onboarding-5CZvRBbh.js +1 -0
  101. package/build/assets/onboarding-modal-CD2ehuxt.js +1 -0
  102. package/build/assets/{openhands-logo-CmYvJXBa.js → openhands-logo-BS-Epajy.js} +1 -1
  103. package/build/assets/{organization-service.api-UDy63-oC.js → organization-service.api-Dsuoep0g.js} +1 -1
  104. package/build/assets/{pencil-BjgtZmWp.js → pencil-Bl3GWhgq.js} +1 -1
  105. package/build/assets/{planner-tab-BWk8885v.js → planner-tab-DeO7Thb0.js} +1 -1
  106. package/build/assets/{plugins-management-service-CjkgF2dd.js → plugins-management-service-C9f75R6X.js} +1 -1
  107. package/build/assets/plus-CtzlyAoF.js +1 -0
  108. package/build/assets/{profiles-service.api-CukSFLzz.js → profiles-service.api-Dl20_2IM.js} +1 -1
  109. package/build/assets/{providers-CqUWC85T.js → providers-CeuhK46N.js} +1 -1
  110. package/build/assets/{proxy-BBUG3sd2.js → proxy-CIGI9zQC.js} +1 -1
  111. package/build/assets/{puzzle-BoNc6zZ8.js → puzzle-B3v361yY.js} +1 -1
  112. package/build/assets/recommended-automations-launcher-6xmbf7lh.js +1 -0
  113. package/build/assets/{refresh-cw-BrM5ZAZD.js → refresh-cw-B9GhC3QC.js} +1 -1
  114. package/build/assets/root-BQPNqNvD.js +2 -0
  115. package/build/assets/root-BeuHFY2s.css +1 -0
  116. package/build/assets/root-layout-Dl_2CDoq.js +3 -0
  117. package/build/assets/{schema-field-nImDoY6-.js → schema-field-z2vSLuLo.js} +1 -1
  118. package/build/assets/{sdk-section-page-BxMrtUNV.js → sdk-section-page-BnCXAytf.js} +1 -1
  119. package/build/assets/{search-7DRiGm4Z.js → search-BatSpWed.js} +1 -1
  120. package/build/assets/search-CYaiKHRp.js +1 -0
  121. package/build/assets/{secrets-service-Dhjh3HhH.js → secrets-service-DGUNlwQd.js} +1 -1
  122. package/build/assets/{secrets-settings-CPdxceT_.js → secrets-settings-DUmML_dK.js} +1 -1
  123. package/build/assets/{segmented-toggle-Do6oyepX.js → segmented-toggle-eSofF7gn.js} +1 -1
  124. package/build/assets/settings-CWFxymAf.js +1 -0
  125. package/build/assets/{settings-BRbnfKEm.js → settings-Co-M5bK9.js} +1 -1
  126. package/build/assets/{settings-dropdown-input-DYCULKpp.js → settings-dropdown-input-Cx4g7Xfl.js} +1 -1
  127. package/build/assets/{settings-gear-TYXnELES.js → settings-gear-DaJj6Pde.js} +1 -1
  128. package/build/assets/{settings-index-C9o2NBO0.js → settings-index-BECdgecg.js} +1 -1
  129. package/build/assets/{settings-input-B-q2gkVy.js → settings-input-BQY115xH.js} +1 -1
  130. package/build/assets/settings-like-page-layout-classes-Cw4Yzv_P.js +1 -0
  131. package/build/assets/{settings-list-classes-WpQi0q1L.js → settings-list-classes-C9cLrrcc.js} +1 -1
  132. package/build/assets/{settings-modal-CEK0AIx6.js → settings-modal-ChBJNTdd.js} +1 -1
  133. package/build/assets/{settings-section-header-context-CnIIQAUn.js → settings-section-header-context-BOJ_Fbak.js} +1 -1
  134. package/build/assets/settings-service.api-Dz9cZyvx.js +1 -0
  135. package/build/assets/{settings-switch-LqKdGxHL.js → settings-switch-BIodMVz9.js} +1 -1
  136. package/build/assets/{shared-conversation-Bu-dQlgp.js → shared-conversation-CSF0aTuE.js} +1 -1
  137. package/build/assets/{sidebar-layout-oHBGQmLh.js → sidebar-layout-DEycoFd_.js} +1 -1
  138. package/build/assets/sidebar-mobile-menu-toggle-DeRvTupV.js +1 -0
  139. package/build/assets/{sidebar-nav-link-CrujNA09.js → sidebar-nav-link-BjpQ-NVc.js} +1 -1
  140. package/build/assets/{sidebar-store-Bui-WNEr.js → sidebar-store-B04sX8aP.js} +1 -1
  141. package/build/assets/{skill-card-pill-row-CZBI7OqH.js → skill-card-pill-row-BH6fPGba.js} +1 -1
  142. package/build/assets/{skill-icon-badge-BOov_phZ.js → skill-icon-badge-D4uznfjU.js} +1 -1
  143. package/build/assets/skill-scope-DH_AUUUP.js +1 -0
  144. package/build/assets/{skills-CYFLsN5U.js → skills-B0IliMxw.js} +1 -1
  145. package/build/assets/{skills-plugins-D0PiHWAD.js → skills-plugins-vfvOk34h.js} +1 -1
  146. package/build/assets/skills-settings-DnbIu2eO.js +2 -0
  147. package/build/assets/sparkles-g7y3r-Ut.js +1 -0
  148. package/build/assets/{styled-tooltip-C7grwnOX.js → styled-tooltip-CQ9JEFiO.js} +1 -1
  149. package/build/assets/{switch-skeleton-BQoOhQTB.js → switch-skeleton-DwOoCqaL.js} +1 -1
  150. package/build/assets/{syntax-highlighter-B92AFGMy.js → syntax-highlighter-BGDg_7w9.js} +1 -1
  151. package/build/assets/{task-list-tab-R3ac6m7O.js → task-list-tab-DeF_uXdw.js} +1 -1
  152. package/build/assets/{terminal-cMS3RgVE.js → terminal-BUpID2wS.js} +1 -1
  153. package/build/assets/{terminal-yqkNdEAx.js → terminal-DRc4rup7.js} +1 -1
  154. package/build/assets/{toggle-switch-BeSrbgCg.js → toggle-switch--8n8NeV_.js} +1 -1
  155. package/build/assets/{trash-2-wW5TWcdN.js → trash-2-CzDVN-Iw.js} +1 -1
  156. package/build/assets/{typography-iYhzLlHO.js → typography-BSbUhJPn.js} +1 -1
  157. package/build/assets/{u-check-circle-DBEvndTS.js → u-check-circle-BKn1spCL.js} +1 -1
  158. package/build/assets/{u-edit-809W9D9T.js → u-edit-DAkcF52u.js} +1 -1
  159. package/build/assets/{u-robot-CJtSzy5X.js → u-robot-BvAOA2ZD.js} +1 -1
  160. package/build/assets/{use-acp-credential-form-DUxbxmbq.js → use-acp-credential-form-BGKFi1VL.js} +1 -1
  161. package/build/assets/{use-activate-agent-profile-CDHA52tC.js → use-activate-agent-profile-2nvALjC-.js} +1 -1
  162. package/build/assets/{use-agent-profiles-TsOdIyw5.js → use-agent-profiles-BlQA67MW.js} +1 -1
  163. package/build/assets/{use-breakpoint-DA7JqsRN.js → use-breakpoint-DWtihr9g.js} +1 -1
  164. package/build/assets/{use-can-manage-org-profiles-Bt1M71u5.js → use-can-manage-org-profiles-Clw5Dh1s.js} +1 -1
  165. package/build/assets/{use-click-outside-element-DKqpqEEm.js → use-click-outside-element-W6Os4Nlb.js} +1 -1
  166. package/build/assets/{use-cloud-current-user-id-DWt7HCgf.js → use-cloud-current-user-id-B8AQSQFM.js} +1 -1
  167. package/build/assets/{use-config-CxlEdf_v.js → use-config-C3zGuUQI.js} +1 -1
  168. package/build/assets/{use-create-conversation-nOJ6Um5h.js → use-create-conversation-FaP0kUpg.js} +1 -1
  169. package/build/assets/{use-create-secret-Dj5ang9x.js → use-create-secret-CgQ3pXd6.js} +1 -1
  170. package/build/assets/use-is-authed-Bka89Xmm.js +1 -0
  171. package/build/assets/{use-is-creating-conversation-CAggrM75.js → use-is-creating-conversation-CVefC9Ns.js} +1 -1
  172. package/build/assets/{use-launch-skill-in-chat-DKzCTMt0.js → use-launch-skill-in-chat-BcKNjxxd.js} +1 -1
  173. package/build/assets/use-llm-profiles-C-tDO6UB.js +1 -0
  174. package/build/assets/use-manifest-capabilities-DLP5wCxp.js +1 -0
  175. package/build/assets/{use-onboarding-completion-gxQlcEy2.js → use-onboarding-completion-BiCdXvlU.js} +1 -1
  176. package/build/assets/{use-plugins-marketplace-CVO7sXYR.js → use-plugins-marketplace-DRFNLBlr.js} +1 -1
  177. package/build/assets/use-save-agent-profile-CaGVAudI.js +1 -0
  178. package/build/assets/{use-save-settings-L3aMaDeS.js → use-save-settings-C9B8Y-h3.js} +1 -1
  179. package/build/assets/{use-settings-8nt3DGxW.js → use-settings-3RcgdUuZ.js} +1 -1
  180. package/build/assets/{use-settings-nav-items-DHAAD-zk.js → use-settings-nav-items-y-Oyc93G.js} +2 -2
  181. package/build/assets/use-tracking-CTtkLAmx.js +3 -0
  182. package/build/assets/{use-user-conversation-BIIpGUgM.js → use-user-conversation-Bei82QsZ.js} +1 -1
  183. package/build/assets/{useInfiniteQuery-BLRVmVPU.js → useInfiniteQuery-DbCv0Jzd.js} +1 -1
  184. package/build/assets/{useMutation-CaSHLnX0.js → useMutation-ChpkYxI5.js} +1 -1
  185. package/build/assets/{useQueries--d_WWAzc.js → useQueries-Cjv3E8_1.js} +1 -1
  186. package/build/assets/useQuery-BCnzy4LX.js +1 -0
  187. package/build/assets/utils-BX9XJ0IE.js +1 -0
  188. package/build/assets/{vendor-markdown-BML7QbqS.js → vendor-markdown-j0kYzV48.js} +1 -1
  189. package/build/assets/{vendor-styling-Bcgpimp9.js → vendor-styling-Ck5D_A2Q.js} +6 -6
  190. package/build/assets/{vendor~browser-jaN4ilxM.js → vendor~browser-C6uXH-dw.js} +2 -2
  191. package/build/assets/vendor~browser-DJ1pl_wn.js +47 -0
  192. package/build/assets/{vendor~browser-tab-_-VCXq8n.js → vendor~browser-tab-C5uuAxZX.js} +1 -1
  193. package/build/assets/vendor~entry.client-CgNUwtQL.js +1 -0
  194. package/build/assets/{vendor~entry.client-BcYIVQvB.js → vendor~entry.client-zSIea5EO.js} +2 -2
  195. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js +1 -0
  196. package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0bpqexo-CbTboogo.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js} +4 -4
  197. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js +26 -0
  198. package/build/assets/{vendor~files-tab-C7RmQJwN.js → vendor~files-tab-C87pjSpi.js} +1 -1
  199. package/build/assets/{vendor~index-home~home~conversation-panel~conversation-Bqp1ZqJM.js → vendor~index-home~home~conversation-panel~conversation-DiXf0dkj.js} +1 -1
  200. package/build/assets/{vendor~conversation-panel~conversation~alert-banner-BNzz5FuZ.js → vendor~index-home~home~conversation-panel~conversation~alert-banner-B3qC_oj8.js} +1 -1
  201. package/build/assets/{vendor~launch-ChXCOGw8.js → vendor~launch-CHwEQG6e.js} +1 -1
  202. package/build/assets/vendor~module-DyG7x7JT.js +2 -0
  203. package/build/assets/{vendor~root-layout~conversation-panel~conversation-BCn8lzeG.js → vendor~root-layout~conversation-panel~conversation-DEzjR4K7.js} +1 -1
  204. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-DRblkyXD.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-DOuig0C0.js} +1 -1
  205. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-U-xdsAEx.js +1 -0
  206. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~automation-setup-route-B_L-gcOG.js → vendor~root-layout~index-home~home~conversation-panel~conversation~automation-setup-route-CjECvSl5.js} +1 -1
  207. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-sjx0x5ac.js → vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-CQR5Sa0H.js} +1 -1
  208. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gy8zbn65-CGt6bWRT.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js} +1 -1
  209. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~dfc8ddxy-tTyxnjXT.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-CuQhkiS7.js} +1 -1
  210. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~9pstowjp-BOVIFA_g.js +73 -0
  211. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~dufan6ng-Dtdw8H0q.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js} +162 -54
  212. package/build/assets/{verification-settings-DBsnSXC3.js → verification-settings-nD61Ijph.js} +1 -1
  213. package/build/assets/wrench-DRitTfwe.js +1 -0
  214. package/build/assets/x-RYDBg-e2.js +1 -0
  215. package/build/assets/{x-mark-jcTkPiOB.js → x-mark-BopmFoBq.js} +1 -1
  216. package/build/assets/zap-tbKDzCe3.js +1 -0
  217. package/build/index.html +4 -4
  218. package/build/locales/ar/openhands.json +70 -4
  219. package/build/locales/ca/openhands.json +70 -4
  220. package/build/locales/de/openhands.json +70 -4
  221. package/build/locales/en/openhands.json +70 -4
  222. package/build/locales/es/openhands.json +70 -4
  223. package/build/locales/fr/openhands.json +70 -4
  224. package/build/locales/it/openhands.json +70 -4
  225. package/build/locales/ja/openhands.json +70 -4
  226. package/build/locales/ko-KR/openhands.json +70 -4
  227. package/build/locales/no/openhands.json +70 -4
  228. package/build/locales/pt/openhands.json +70 -4
  229. package/build/locales/tr/openhands.json +70 -4
  230. package/build/locales/uk/openhands.json +70 -4
  231. package/build/locales/zh-CN/openhands.json +70 -4
  232. package/build/locales/zh-TW/openhands.json +70 -4
  233. package/build/mockServiceWorker.js +21 -9
  234. package/config/defaults.json +3 -3
  235. package/dist/api/automation-service/automation-service.api.cjs +1 -1
  236. package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
  237. package/dist/api/automation-service/automation-service.api.d.ts +5 -0
  238. package/dist/api/automation-service/automation-service.api.js +11 -0
  239. package/dist/api/automation-service/automation-service.api.js.map +1 -1
  240. package/dist/api/backend-registry/active-store.cjs +1 -1
  241. package/dist/api/backend-registry/active-store.cjs.map +1 -1
  242. package/dist/api/backend-registry/active-store.js +36 -31
  243. package/dist/api/backend-registry/active-store.js.map +1 -1
  244. package/dist/api/backend-registry/url-selection.cjs +2 -0
  245. package/dist/api/backend-registry/url-selection.cjs.map +1 -0
  246. package/dist/api/backend-registry/url-selection.d.ts +31 -0
  247. package/dist/api/backend-registry/url-selection.js +29 -0
  248. package/dist/api/backend-registry/url-selection.js.map +1 -0
  249. package/dist/api/mcp-service/mcp-redacted-credentials.cjs +1 -1
  250. package/dist/api/mcp-service/mcp-redacted-credentials.cjs.map +1 -1
  251. package/dist/api/mcp-service/mcp-redacted-credentials.d.ts +3 -2
  252. package/dist/api/mcp-service/mcp-redacted-credentials.js +32 -27
  253. package/dist/api/mcp-service/mcp-redacted-credentials.js.map +1 -1
  254. package/dist/api/mcp-service/mcp-service.api.cjs +1 -1
  255. package/dist/api/mcp-service/mcp-service.api.cjs.map +1 -1
  256. package/dist/api/mcp-service/mcp-service.api.js +19 -19
  257. package/dist/api/mcp-service/mcp-service.api.js.map +1 -1
  258. package/dist/api/settings-service/settings-service.api.cjs +1 -1
  259. package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
  260. package/dist/api/settings-service/settings-service.api.d.ts +10 -0
  261. package/dist/api/settings-service/settings-service.api.js +90 -100
  262. package/dist/api/settings-service/settings-service.api.js.map +1 -1
  263. package/dist/api/skills-service.cjs +1 -1
  264. package/dist/api/skills-service.cjs.map +1 -1
  265. package/dist/api/skills-service.js +1 -0
  266. package/dist/api/skills-service.js.map +1 -1
  267. package/dist/assets/chevron-left.d.ts +1 -1
  268. package/dist/assets/chevron-right.d.ts +1 -1
  269. package/dist/components/conversation-events/chat/event-message-components/collapsible-thinking.d.ts +2 -1
  270. package/dist/components/conversation-events/chat/event-message-components/critic-result-display.d.ts +2 -1
  271. package/dist/components/conversation-events/chat/event-message-components/error-event-message.d.ts +2 -1
  272. package/dist/components/conversation-events/chat/event-message-components/event-group.d.ts +1 -1
  273. package/dist/components/conversation-events/chat/event-message-components/finish-event-message.d.ts +1 -1
  274. package/dist/components/conversation-events/chat/event-message-components/generic-event-message-wrapper.d.ts +1 -1
  275. package/dist/components/conversation-events/chat/event-message-components/observation-pair-event-message.d.ts +2 -1
  276. package/dist/components/conversation-events/chat/event-message-components/skill-item-expanded.d.ts +1 -1
  277. package/dist/components/conversation-events/chat/event-message-components/skill-ready-content-list.d.ts +2 -1
  278. package/dist/components/conversation-events/chat/event-message-components/thought-event-message.d.ts +1 -1
  279. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.d.ts +2 -1
  280. package/dist/components/conversation-events/chat/event-message.d.ts +2 -1
  281. package/dist/components/conversation-events/chat/task-tracking/task-item.d.ts +1 -1
  282. package/dist/components/conversation-events/chat/task-tracking/task-list-section.d.ts +1 -1
  283. package/dist/components/features/alerts/alert-banner.d.ts +1 -1
  284. package/dist/components/features/analytics/telemetry-consent-banner.d.ts +2 -1
  285. package/dist/components/features/automations/add-automation-modal.d.ts +1 -1
  286. package/dist/components/features/automations/automation-card-skeleton.d.ts +1 -1
  287. package/dist/components/features/automations/automation-card.d.ts +9 -1
  288. package/dist/components/features/automations/automation-group.d.ts +9 -1
  289. package/dist/components/features/automations/automation-health-badge.d.ts +8 -0
  290. package/dist/components/features/automations/automation-list-row.d.ts +3 -1
  291. package/dist/components/features/automations/automation-run-insights.d.ts +17 -0
  292. package/dist/components/features/automations/automation-view-toggle.d.ts +1 -1
  293. package/dist/components/features/automations/backend-not-configured.d.ts +1 -1
  294. package/dist/components/features/automations/create-instructions.d.ts +2 -2
  295. package/dist/components/features/automations/dashboard/automations-dashboard-controls.d.ts +18 -0
  296. package/dist/components/features/automations/dashboard/automations-filtered-empty-state.d.ts +9 -0
  297. package/dist/components/features/automations/dashboard/use-automation-sub-page-nav.d.ts +12 -0
  298. package/dist/components/features/automations/delete-confirmation-modal.d.ts +1 -1
  299. package/dist/components/features/automations/detail/active-status-badge.d.ts +1 -1
  300. package/dist/components/features/automations/detail/activity-log-item.d.ts +1 -1
  301. package/dist/components/features/automations/detail/activity-log-section.d.ts +3 -1
  302. package/dist/components/features/automations/detail/activity-section.d.ts +1 -1
  303. package/dist/components/features/automations/detail/back-link.d.ts +1 -1
  304. package/dist/components/features/automations/detail/branch-badge.d.ts +1 -1
  305. package/dist/components/features/automations/detail/config-field.d.ts +1 -1
  306. package/dist/components/features/automations/detail/configuration-section.d.ts +1 -1
  307. package/dist/components/features/automations/detail/debug-automation-button.d.ts +1 -1
  308. package/dist/components/features/automations/detail/detail-header.d.ts +1 -1
  309. package/dist/components/features/automations/detail/detail-skeleton.d.ts +1 -1
  310. package/dist/components/features/automations/detail/edit-automation-modal.d.ts +1 -1
  311. package/dist/components/features/automations/detail/not-found-state.d.ts +1 -1
  312. package/dist/components/features/automations/detail/plugin-chip.d.ts +1 -1
  313. package/dist/components/features/automations/detail/plugins-section.d.ts +1 -1
  314. package/dist/components/features/automations/detail/prompt-section.d.ts +2 -1
  315. package/dist/components/features/automations/detail/run-logs-modal.d.ts +1 -1
  316. package/dist/components/features/automations/detail/run-status-badge.d.ts +10 -1
  317. package/dist/components/features/automations/detail/section-card.d.ts +1 -1
  318. package/dist/components/features/automations/empty-state.d.ts +1 -1
  319. package/dist/components/features/automations/error-state.d.ts +1 -1
  320. package/dist/components/features/automations/import-automation-modal.d.ts +1 -1
  321. package/dist/components/features/automations/kebab-menu-item-content.d.ts +1 -1
  322. package/dist/components/features/automations/kebab-menu.d.ts +1 -1
  323. package/dist/components/features/automations/metadata-chip.d.ts +1 -1
  324. package/dist/components/features/automations/recommended-automations-launcher.d.ts +1 -1
  325. package/dist/components/features/automations/recommended-automations-section.d.ts +1 -1
  326. package/dist/components/features/automations/responder-deployment-modal.d.ts +1 -1
  327. package/dist/components/features/automations/search-input.d.ts +1 -1
  328. package/dist/components/features/automations/status-badge.d.ts +1 -1
  329. package/dist/components/features/automations/turn-off-confirmation-modal.d.ts +8 -0
  330. package/dist/components/features/automations/view-menu-item-content.d.ts +1 -1
  331. package/dist/components/features/backends/add-backend-modal.d.ts +1 -1
  332. package/dist/components/features/backends/api-key-entry-screen.d.ts +2 -1
  333. package/dist/components/features/backends/backend-form-modal.d.ts +3 -3
  334. package/dist/components/features/backends/backend-row.d.ts +1 -1
  335. package/dist/components/features/backends/backend-selector.d.ts +2 -1
  336. package/dist/components/features/backends/backend-status-dot.d.ts +2 -1
  337. package/dist/components/features/backends/backend-version.d.ts +1 -1
  338. package/dist/components/features/backends/device-flow-auth.d.ts +1 -1
  339. package/dist/components/features/backends/manage-backends-modal.d.ts +2 -1
  340. package/dist/components/features/browser/browser-chrome-bar.d.ts +1 -1
  341. package/dist/components/features/browser/browser-snapshot.d.ts +1 -1
  342. package/dist/components/features/browser/browser.d.ts +1 -1
  343. package/dist/components/features/browser/empty-browser-message.d.ts +1 -1
  344. package/dist/components/features/chat/btw-messages.d.ts +1 -1
  345. package/dist/components/features/chat/change-agent-button.d.ts +2 -1
  346. package/dist/components/features/chat/change-agent-context-menu.d.ts +1 -1
  347. package/dist/components/features/chat/chat-action-tooltip.d.ts +1 -1
  348. package/dist/components/features/chat/chat-add-file-button.d.ts +2 -1
  349. package/dist/components/features/chat/chat-interface.d.ts +2 -1
  350. package/dist/components/features/chat/chat-message.d.ts +1 -1
  351. package/dist/components/features/chat/chat-messages-skeleton.d.ts +2 -1
  352. package/dist/components/features/chat/chat-play-button.d.ts +1 -1
  353. package/dist/components/features/chat/chat-send-button.d.ts +1 -1
  354. package/dist/components/features/chat/chat-status-indicator.d.ts +1 -1
  355. package/dist/components/features/chat/chat-stop-button.d.ts +1 -1
  356. package/dist/components/features/chat/chat-suggestions.d.ts +1 -1
  357. package/dist/components/features/chat/components/chat-input-actions.d.ts +2 -1
  358. package/dist/components/features/chat/components/chat-input-container.d.ts +1 -1
  359. package/dist/components/features/chat/components/chat-input-field.d.ts +1 -1
  360. package/dist/components/features/chat/components/chat-input-grip.d.ts +1 -1
  361. package/dist/components/features/chat/components/chat-input-llm-profile-picker.d.ts +3 -2
  362. package/dist/components/features/chat/components/chat-input-model.d.ts +3 -2
  363. package/dist/components/features/chat/components/chat-input-profile-picker.d.ts +1 -1
  364. package/dist/components/features/chat/components/chat-input-row.d.ts +1 -1
  365. package/dist/components/features/chat/components/hidden-file-input.d.ts +1 -1
  366. package/dist/components/features/chat/components/slash-command-menu.d.ts +2 -1
  367. package/dist/components/features/chat/confirmation-mode-enabled.d.ts +1 -1
  368. package/dist/components/features/chat/custom-chat-input.d.ts +1 -1
  369. package/dist/components/features/chat/drag-over.d.ts +1 -1
  370. package/dist/components/features/chat/error-message-banner.d.ts +2 -1
  371. package/dist/components/features/chat/error-message.d.ts +2 -1
  372. package/dist/components/features/chat/generic-event-message.d.ts +1 -1
  373. package/dist/components/features/chat/git-control-bar-branch-button.d.ts +1 -1
  374. package/dist/components/features/chat/git-control-bar-pr-button.d.ts +1 -1
  375. package/dist/components/features/chat/git-control-bar-pull-button.d.ts +1 -1
  376. package/dist/components/features/chat/git-control-bar-push-button.d.ts +1 -1
  377. package/dist/components/features/chat/git-control-bar-repo-button.d.ts +1 -1
  378. package/dist/components/features/chat/git-control-bar-tooltip-wrapper.d.ts +1 -1
  379. package/dist/components/features/chat/git-control-bar.d.ts +1 -1
  380. package/dist/components/features/chat/git-external-link-icon.d.ts +1 -1
  381. package/dist/components/features/chat/goal-status-banner.d.ts +1 -1
  382. package/dist/components/features/chat/goal-status-content.d.ts +1 -1
  383. package/dist/components/features/chat/got-it-button.d.ts +1 -1
  384. package/dist/components/features/chat/interactive-chat-box.d.ts +1 -1
  385. package/dist/components/features/chat/model-messages.d.ts +2 -1
  386. package/dist/components/features/chat/mono-component.d.ts +1 -1
  387. package/dist/components/features/chat/open-repository-modal.d.ts +2 -1
  388. package/dist/components/features/chat/pasted-image-upload-as-file-button.d.ts +1 -1
  389. package/dist/components/features/chat/path-component.d.ts +1 -1
  390. package/dist/components/features/chat/pending-stop-icon.d.ts +1 -1
  391. package/dist/components/features/chat/pending-user-messages.d.ts +2 -1
  392. package/dist/components/features/chat/plan-preview.d.ts +1 -1
  393. package/dist/components/features/chat/remove-file-button.d.ts +1 -1
  394. package/dist/components/features/chat/skill-install-restart-banner.d.ts +1 -1
  395. package/dist/components/features/chat/success-indicator.d.ts +1 -1
  396. package/dist/components/features/chat/task-tracking/status-badge.d.ts +1 -1
  397. package/dist/components/features/chat/task-tracking/status-icon.d.ts +1 -1
  398. package/dist/components/features/chat/task-tracking/task-item.d.ts +1 -1
  399. package/dist/components/features/chat/task-tracking/task-list-section.d.ts +1 -1
  400. package/dist/components/features/chat/tool-visualizers/primitives/code-block.d.ts +2 -1
  401. package/dist/components/features/chat/tool-visualizers/primitives/diff-view.d.ts +2 -1
  402. package/dist/components/features/chat/tool-visualizers/primitives/file-path-chip.d.ts +2 -1
  403. package/dist/components/features/chat/tool-visualizers/primitives/key-value-grid.d.ts +1 -1
  404. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.d.ts +2 -1
  405. package/dist/components/features/chat/typing-indicator.d.ts +1 -1
  406. package/dist/components/features/chat/uploaded-file.d.ts +1 -1
  407. package/dist/components/features/chat/uploaded-files.d.ts +1 -1
  408. package/dist/components/features/chat/uploaded-image.d.ts +2 -1
  409. package/dist/components/features/chat/user-message-body.d.ts +2 -2
  410. package/dist/components/features/chat/waiting-for-runtime-message.d.ts +1 -1
  411. package/dist/components/features/chat/workspace-mode-icon.d.ts +1 -1
  412. package/dist/components/features/chat/workspace-mode-selector.d.ts +1 -1
  413. package/dist/components/features/command-menu/command-menu-trigger.d.ts +2 -1
  414. package/dist/components/features/context-menu/archived-disabled-tooltip.d.ts +1 -1
  415. package/dist/components/features/context-menu/context-menu-icon-text-with-description.d.ts +1 -1
  416. package/dist/components/features/context-menu/context-menu-icon-text.d.ts +1 -1
  417. package/dist/components/features/context-menu/context-menu-list-item.cjs +1 -1
  418. package/dist/components/features/context-menu/context-menu-list-item.cjs.map +1 -1
  419. package/dist/components/features/context-menu/context-menu-list-item.d.ts +2 -1
  420. package/dist/components/features/context-menu/context-menu-list-item.js +2 -1
  421. package/dist/components/features/context-menu/context-menu-list-item.js.map +1 -1
  422. package/dist/components/features/controls/agent-loading.d.ts +1 -1
  423. package/dist/components/features/controls/agent-status.d.ts +1 -1
  424. package/dist/components/features/controls/git-tools-submenu.d.ts +1 -1
  425. package/dist/components/features/controls/macros-submenu.d.ts +1 -1
  426. package/dist/components/features/controls/server-status-context-menu-icon-text.d.ts +1 -1
  427. package/dist/components/features/controls/server-status-context-menu.d.ts +1 -1
  428. package/dist/components/features/controls/server-status.d.ts +1 -1
  429. package/dist/components/features/controls/tools-context-menu-icon-text.d.ts +1 -1
  430. package/dist/components/features/controls/tools-context-menu.d.ts +1 -1
  431. package/dist/components/features/controls/tools.d.ts +2 -1
  432. package/dist/components/features/conversation/conversation-loading.d.ts +1 -1
  433. package/dist/components/features/conversation/conversation-main/chat-interface-wrapper.d.ts +1 -1
  434. package/dist/components/features/conversation/conversation-main/conversation-main.d.ts +1 -1
  435. package/dist/components/features/conversation/conversation-main/conversation-mobile-panel-page.d.ts +2 -1
  436. package/dist/components/features/conversation/conversation-name-context-menu-icon-text.d.ts +1 -1
  437. package/dist/components/features/conversation/conversation-name-context-menu.d.ts +1 -1
  438. package/dist/components/features/conversation/conversation-name-with-status.d.ts +2 -1
  439. package/dist/components/features/conversation/conversation-name.d.ts +2 -1
  440. package/dist/components/features/conversation/conversation-tab-empty-state.d.ts +1 -1
  441. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content-crossfade.d.ts +1 -1
  442. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.d.ts +1 -1
  443. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/suspense-pending-fallback.d.ts +1 -1
  444. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/tab-container.d.ts +1 -1
  445. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/tab-content-area.d.ts +1 -1
  446. package/dist/components/features/conversation/conversation-tabs/conversation-tab-content/tab-wrapper.d.ts +1 -1
  447. package/dist/components/features/conversation/conversation-tabs/conversation-tab-nav.d.ts +1 -1
  448. package/dist/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.d.ts +1 -1
  449. package/dist/components/features/conversation/conversation-tabs/conversation-tabs.d.ts +1 -1
  450. package/dist/components/features/conversation/conversation-tabs/drawer-vscode-link.d.ts +1 -1
  451. package/dist/components/features/conversation/metrics-modal/context-window-section.d.ts +1 -1
  452. package/dist/components/features/conversation/metrics-modal/cost-section.d.ts +1 -1
  453. package/dist/components/features/conversation/metrics-modal/empty-state.d.ts +1 -1
  454. package/dist/components/features/conversation/metrics-modal/metric-row.d.ts +1 -1
  455. package/dist/components/features/conversation/metrics-modal/metrics-modal-header.d.ts +1 -1
  456. package/dist/components/features/conversation/metrics-modal/metrics-modal.d.ts +1 -1
  457. package/dist/components/features/conversation/metrics-modal/usage-section.d.ts +1 -1
  458. package/dist/components/features/conversation/right-panel-toggle.d.ts +1 -1
  459. package/dist/components/features/conversation/transcript-export-modal.d.ts +2 -1
  460. package/dist/components/features/conversation-panel/budget-display.d.ts +2 -1
  461. package/dist/components/features/conversation-panel/budget-progress-bar.d.ts +1 -1
  462. package/dist/components/features/conversation-panel/budget-usage-text.d.ts +2 -1
  463. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.d.ts +1 -1
  464. package/dist/components/features/conversation-panel/compact-conversation-row.cjs +1 -1
  465. package/dist/components/features/conversation-panel/compact-conversation-row.cjs.map +1 -1
  466. package/dist/components/features/conversation-panel/compact-conversation-row.d.ts +2 -1
  467. package/dist/components/features/conversation-panel/compact-conversation-row.js +38 -37
  468. package/dist/components/features/conversation-panel/compact-conversation-row.js.map +1 -1
  469. package/dist/components/features/conversation-panel/confirm-delete-modal.d.ts +1 -1
  470. package/dist/components/features/conversation-panel/confirm-stop-modal.d.ts +1 -1
  471. package/dist/components/features/conversation-panel/conversation-card/conversation-card-actions.d.ts +1 -1
  472. package/dist/components/features/conversation-panel/conversation-card/conversation-card-context-menu.d.ts +1 -1
  473. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.d.ts +1 -1
  474. package/dist/components/features/conversation-panel/conversation-card/conversation-card-header.d.ts +1 -1
  475. package/dist/components/features/conversation-panel/conversation-card/conversation-card-preview.d.ts +1 -1
  476. package/dist/components/features/conversation-panel/conversation-card/conversation-card-skeleton.d.ts +1 -1
  477. package/dist/components/features/conversation-panel/conversation-card/conversation-card-title.d.ts +1 -1
  478. package/dist/components/features/conversation-panel/conversation-card/conversation-card.d.ts +2 -1
  479. package/dist/components/features/conversation-panel/conversation-card/conversation-repo-link.d.ts +1 -1
  480. package/dist/components/features/conversation-panel/conversation-card/conversation-status-badges.d.ts +1 -1
  481. package/dist/components/features/conversation-panel/conversation-card/no-repository.d.ts +1 -1
  482. package/dist/components/features/conversation-panel/conversation-group-folder-list.d.ts +1 -1
  483. package/dist/components/features/conversation-panel/conversation-group-folder-row.d.ts +1 -1
  484. package/dist/components/features/conversation-panel/conversation-panel-filter-menu.d.ts +1 -1
  485. package/dist/components/features/conversation-panel/conversation-panel-new-thread-picker.d.ts +1 -1
  486. package/dist/components/features/conversation-panel/conversation-panel-pinned-section.d.ts +1 -1
  487. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  488. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  489. package/dist/components/features/conversation-panel/conversation-panel.d.ts +2 -1
  490. package/dist/components/features/conversation-panel/conversation-panel.js +221 -220
  491. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  492. package/dist/components/features/conversation-panel/conversation-status-dot.d.ts +1 -1
  493. package/dist/components/features/conversation-panel/exit-conversation-modal.d.ts +1 -1
  494. package/dist/components/features/conversation-panel/hook-event-item.d.ts +1 -1
  495. package/dist/components/features/conversation-panel/hook-matcher-content.d.ts +1 -1
  496. package/dist/components/features/conversation-panel/hooks-empty-state.d.ts +1 -1
  497. package/dist/components/features/conversation-panel/hooks-loading-state.d.ts +1 -1
  498. package/dist/components/features/conversation-panel/hooks-modal-header.d.ts +1 -1
  499. package/dist/components/features/conversation-panel/hooks-modal.d.ts +1 -1
  500. package/dist/components/features/conversation-panel/local-new-conversation-menu.d.ts +1 -1
  501. package/dist/components/features/conversation-panel/menu-heading.d.ts +1 -1
  502. package/dist/components/features/conversation-panel/menu-row.d.ts +1 -1
  503. package/dist/components/features/conversation-panel/menu-separator.d.ts +1 -1
  504. package/dist/components/features/conversation-panel/new-conversation-button.d.ts +2 -1
  505. package/dist/components/features/conversation-panel/plugins-modal.d.ts +1 -1
  506. package/dist/components/features/conversation-panel/runtime-waiting-state.d.ts +1 -1
  507. package/dist/components/features/conversation-panel/skill-content.d.ts +1 -1
  508. package/dist/components/features/conversation-panel/skill-item.d.ts +1 -1
  509. package/dist/components/features/conversation-panel/skill-triggers.d.ts +1 -1
  510. package/dist/components/features/conversation-panel/skills-empty-state.d.ts +1 -1
  511. package/dist/components/features/conversation-panel/skills-loading-state.d.ts +1 -1
  512. package/dist/components/features/conversation-panel/skills-modal-header.d.ts +1 -1
  513. package/dist/components/features/conversation-panel/skills-modal-section.d.ts +1 -1
  514. package/dist/components/features/conversation-panel/skills-modal.d.ts +1 -1
  515. package/dist/components/features/conversation-panel/start-task-card/start-task-card-footer.d.ts +1 -1
  516. package/dist/components/features/conversation-panel/start-task-card/start-task-card-header.d.ts +1 -1
  517. package/dist/components/features/conversation-panel/start-task-card/start-task-card.d.ts +1 -1
  518. package/dist/components/features/conversation-panel/start-task-card/start-task-status-badge.d.ts +1 -1
  519. package/dist/components/features/conversation-panel/start-task-card/start-task-status-indicator.d.ts +1 -1
  520. package/dist/components/features/conversation-panel/system-message-modal/empty-tools-state.d.ts +1 -1
  521. package/dist/components/features/conversation-panel/system-message-modal/system-message-content.d.ts +1 -1
  522. package/dist/components/features/conversation-panel/system-message-modal/system-message-header.d.ts +1 -1
  523. package/dist/components/features/conversation-panel/system-message-modal/tab-button.d.ts +1 -1
  524. package/dist/components/features/conversation-panel/system-message-modal/tab-content.d.ts +1 -1
  525. package/dist/components/features/conversation-panel/system-message-modal/tab-navigation.d.ts +1 -1
  526. package/dist/components/features/conversation-panel/system-message-modal/toggle-button.d.ts +1 -1
  527. package/dist/components/features/conversation-panel/system-message-modal/tool-item.d.ts +1 -1
  528. package/dist/components/features/conversation-panel/system-message-modal/tool-parameters.d.ts +1 -1
  529. package/dist/components/features/conversation-panel/system-message-modal/tools-list.d.ts +1 -1
  530. package/dist/components/features/conversation-panel/system-message-modal.d.ts +1 -1
  531. package/dist/components/features/diff-viewer/commit-list.d.ts +2 -1
  532. package/dist/components/features/diff-viewer/commit-row.d.ts +2 -1
  533. package/dist/components/features/diff-viewer/diff-drawer-icon.d.ts +1 -1
  534. package/dist/components/features/diff-viewer/editor-container.d.ts +1 -1
  535. package/dist/components/features/diff-viewer/empty-changes-message.d.ts +1 -1
  536. package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +2 -1
  537. package/dist/components/features/diff-viewer/loading-spinner.d.ts +1 -1
  538. package/dist/components/features/files/file-item.d.ts +1 -1
  539. package/dist/components/features/files/file-list.d.ts +2 -1
  540. package/dist/components/features/files-tab/file-content-viewer.d.ts +1 -1
  541. package/dist/components/features/files-tab/file-quick-row.d.ts +1 -1
  542. package/dist/components/features/files-tab/file-tree-view.d.ts +1 -1
  543. package/dist/components/features/files-tab/highlighted-source-view.d.ts +1 -1
  544. package/dist/components/features/files-tab/no-file-selected-message.d.ts +1 -1
  545. package/dist/components/features/files-tab/segmented-toggle.d.ts +1 -1
  546. package/dist/components/features/files-tab/tree-node.d.ts +1 -1
  547. package/dist/components/features/home/featured-automations/automation-health-indicator.d.ts +11 -0
  548. package/dist/components/features/home/featured-automations/automation-run-activity-metrics.d.ts +18 -0
  549. package/dist/components/features/home/featured-automations/automation-run-activity-sparkline.d.ts +14 -0
  550. package/dist/components/features/home/featured-automations/automation-run-health.d.ts +25 -0
  551. package/dist/components/features/home/featured-automations/build-home-automation-menu-items.d.ts +39 -0
  552. package/dist/components/features/home/featured-automations/build-pinned-automation-menu-items.d.ts +22 -0
  553. package/dist/components/features/home/featured-automations/home-automation-activity.d.ts +23 -0
  554. package/dist/components/features/home/featured-automations/home-automation-menu.d.ts +13 -0
  555. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.d.ts +12 -0
  556. package/dist/components/features/home/featured-automations/pinned-automation-card.d.ts +21 -0
  557. package/dist/components/features/home/featured-automations/pinned-automations-dashboard.d.ts +6 -0
  558. package/dist/components/features/home/featured-automations/running-automations-list.d.ts +6 -0
  559. package/dist/components/features/home/git-branch-dropdown/branch-dropdown-menu.d.ts +1 -1
  560. package/dist/components/features/home/git-branch-dropdown/git-branch-dropdown.d.ts +2 -1
  561. package/dist/components/features/home/git-provider-dropdown/git-provider-dropdown.d.ts +2 -1
  562. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.d.ts +2 -1
  563. package/dist/components/features/home/home-chat-launcher.d.ts +1 -1
  564. package/dist/components/features/home/home-git-control-bar-preview.d.ts +1 -1
  565. package/dist/components/features/home/home-header/guide-message.d.ts +1 -1
  566. package/dist/components/features/home/home-header/home-header-title.d.ts +1 -1
  567. package/dist/components/features/home/home-header/home-header.d.ts +1 -1
  568. package/dist/components/features/home/llm-not-configured-banner.d.ts +1 -1
  569. package/dist/components/features/home/new-conversation/create-conversation-button.d.ts +1 -1
  570. package/dist/components/features/home/new-conversation/new-conversation.d.ts +1 -1
  571. package/dist/components/features/home/new-conversation.d.ts +1 -1
  572. package/dist/components/features/home/open-launcher-button.d.ts +1 -1
  573. package/dist/components/features/home/open-repository-dialog.d.ts +1 -1
  574. package/dist/components/features/home/open-workspace-dialog.d.ts +1 -1
  575. package/dist/components/features/home/repo-selection-form.d.ts +2 -1
  576. package/dist/components/features/home/shared/clear-button.d.ts +2 -1
  577. package/dist/components/features/home/shared/dropdown-item.d.ts +1 -1
  578. package/dist/components/features/home/shared/empty-state.d.ts +2 -1
  579. package/dist/components/features/home/shared/error-message.d.ts +2 -1
  580. package/dist/components/features/home/shared/generic-dropdown-menu.d.ts +1 -1
  581. package/dist/components/features/home/shared/loading-spinner.d.ts +2 -1
  582. package/dist/components/features/home/shared/toggle-button.d.ts +1 -1
  583. package/dist/components/features/home/tasks/task-card.d.ts +1 -1
  584. package/dist/components/features/home/tasks/task-group.d.ts +1 -1
  585. package/dist/components/features/home/tasks/task-issue-number.d.ts +1 -1
  586. package/dist/components/features/home/tasks/task-item-title.d.ts +1 -1
  587. package/dist/components/features/home/tasks/task-suggestions-skeleton.d.ts +1 -1
  588. package/dist/components/features/home/tasks/task-suggestions.d.ts +1 -1
  589. package/dist/components/features/home/workspace-dropdown/folder-browser-modal.d.ts +2 -1
  590. package/dist/components/features/home/workspace-dropdown/manage-workspaces-modal.d.ts +2 -1
  591. package/dist/components/features/home/workspace-dropdown/workspace-dropdown.d.ts +2 -1
  592. package/dist/components/features/home/workspace-selection-form.d.ts +2 -1
  593. package/dist/components/features/images/image-carousel.d.ts +2 -1
  594. package/dist/components/features/images/image-preview.d.ts +1 -1
  595. package/dist/components/features/images/thumbnail.d.ts +1 -1
  596. package/dist/components/features/launch/plugin-launch-modal.d.ts +2 -1
  597. package/dist/components/features/launch/plugin-launch-parameter-input.d.ts +1 -1
  598. package/dist/components/features/launch/plugin-launch-plugin-section.d.ts +1 -1
  599. package/dist/components/features/manifest/manifest-form-field.d.ts +1 -1
  600. package/dist/components/features/manifest/manifest-icons.d.ts +13 -0
  601. package/dist/components/features/manifest/manifest-overview-tiles.d.ts +19 -0
  602. package/dist/components/features/manifest/manifest-prerequisites-step.d.ts +1 -1
  603. package/dist/components/features/manifest/manifest-review-step.d.ts +1 -1
  604. package/dist/components/features/manifest/manifest-setup-dialog.d.ts +1 -1
  605. package/dist/components/features/manifest/manifest-subpage-layout.d.ts +23 -0
  606. package/dist/components/features/markdown/anchor.d.ts +1 -1
  607. package/dist/components/features/markdown/blockquote.d.ts +1 -1
  608. package/dist/components/features/markdown/code.d.ts +1 -1
  609. package/dist/components/features/markdown/headings.d.ts +6 -6
  610. package/dist/components/features/markdown/horizontal-rule.d.ts +1 -1
  611. package/dist/components/features/markdown/list.d.ts +3 -3
  612. package/dist/components/features/markdown/markdown-renderer.d.ts +1 -1
  613. package/dist/components/features/markdown/markdown-table-scroll.d.ts +1 -1
  614. package/dist/components/features/markdown/paragraph.d.ts +1 -1
  615. package/dist/components/features/markdown/plan-components.d.ts +36 -36
  616. package/dist/components/features/markdown/table.d.ts +3 -3
  617. package/dist/components/features/mcp-logo-badge.d.ts +1 -1
  618. package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
  619. package/dist/components/features/mcp-page/custom-server-editor.cjs.map +1 -1
  620. package/dist/components/features/mcp-page/custom-server-editor.d.ts +2 -1
  621. package/dist/components/features/mcp-page/custom-server-editor.js +5 -0
  622. package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
  623. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  624. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  625. package/dist/components/features/mcp-page/install-server-modal.d.ts +2 -1
  626. package/dist/components/features/mcp-page/install-server-modal.js +117 -118
  627. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  628. package/dist/components/features/mcp-page/installed-server-card.d.ts +2 -1
  629. package/dist/components/features/mcp-page/installed-servers-section.d.ts +1 -1
  630. package/dist/components/features/mcp-page/marketplace-card.d.ts +1 -1
  631. package/dist/components/features/mcp-page/marketplace-section.d.ts +1 -1
  632. package/dist/components/features/mcp-page/mcp-logo-stack-badge.d.ts +1 -1
  633. package/dist/components/features/mcp-page/mcp-section-filter-dropdown.d.ts +1 -1
  634. package/dist/components/features/mcp-page/mcp-server-health.d.ts +2 -1
  635. package/dist/components/features/mcp-page/mcp-toolbar.d.ts +1 -1
  636. package/dist/components/features/mcp-page/save-as-secret-toggle.d.ts +1 -1
  637. package/dist/components/features/onboarding/onboarding-host.d.ts +1 -1
  638. package/dist/components/features/onboarding/onboarding-modal.d.ts +2 -1
  639. package/dist/components/features/onboarding/onboarding-progress-bar.d.ts +1 -1
  640. package/dist/components/features/onboarding/steps/check-backend-step.d.ts +2 -1
  641. package/dist/components/features/onboarding/steps/choose-agent-step.d.ts +3 -2
  642. package/dist/components/features/onboarding/steps/say-hello-step.d.ts +2 -1
  643. package/dist/components/features/onboarding/steps/setup-acp-secrets-step.d.ts +2 -1
  644. package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +2 -1
  645. package/dist/components/features/plugins/add-plugin-modal.d.ts +2 -1
  646. package/dist/components/features/plugins/plugin-card.d.ts +2 -1
  647. package/dist/components/features/plugins/plugin-detail-modal.d.ts +1 -1
  648. package/dist/components/features/plugins/plugin-files-section.d.ts +2 -1
  649. package/dist/components/features/plugins/plugin-picker-card.d.ts +1 -1
  650. package/dist/components/features/plugins/plugin-picker-modal.d.ts +1 -1
  651. package/dist/components/features/plugins/plugin-picker-trigger.d.ts +1 -1
  652. package/dist/components/features/plugins/plugin-picker.d.ts +1 -1
  653. package/dist/components/features/plugins/plugins-toolbar.d.ts +1 -1
  654. package/dist/components/features/settings/acp-auth-status-banner.d.ts +1 -1
  655. package/dist/components/features/settings/acp-conflict-warnings.d.ts +2 -1
  656. package/dist/components/features/settings/acp-credentials-section.d.ts +1 -1
  657. package/dist/components/features/settings/acp-secret-field.d.ts +2 -1
  658. package/dist/components/features/settings/agent-canvas-update-card.d.ts +1 -1
  659. package/dist/components/features/settings/agent-profiles/agent-profile-actions-menu.d.ts +1 -1
  660. package/dist/components/features/settings/agent-profiles/agent-profile-row.d.ts +1 -1
  661. package/dist/components/features/settings/agent-profiles/agent-profiles-body.d.ts +1 -1
  662. package/dist/components/features/settings/agent-profiles/agent-profiles-local-view.d.ts +1 -1
  663. package/dist/components/features/settings/agent-profiles/agent-profiles-manager.d.ts +1 -1
  664. package/dist/components/features/settings/agent-profiles/delete-agent-profile-modal.d.ts +1 -1
  665. package/dist/components/features/settings/agent-server-onboarding.d.ts +2 -1
  666. package/dist/components/features/settings/api-key-modal-base.d.ts +1 -1
  667. package/dist/components/features/settings/app-settings/app-settings-inputs-skeleton.d.ts +1 -1
  668. package/dist/components/features/settings/app-settings/language-input.d.ts +1 -1
  669. package/dist/components/features/settings/app-settings/theme-input.d.ts +2 -1
  670. package/dist/components/features/settings/backend-synced-settings-badge.d.ts +1 -1
  671. package/dist/components/features/settings/banner-message.d.ts +1 -1
  672. package/dist/components/features/settings/cloud-settings-link.d.ts +1 -1
  673. package/dist/components/features/settings/input-skeleton.d.ts +1 -1
  674. package/dist/components/features/settings/integrations-settings-link.d.ts +1 -1
  675. package/dist/components/features/settings/key-status-icon.d.ts +1 -1
  676. package/dist/components/features/settings/llm-profiles/delete-profile-modal.d.ts +1 -1
  677. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.d.ts +1 -1
  678. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.d.ts +2 -1
  679. package/dist/components/features/settings/llm-profiles/profile-actions-menu-item.d.ts +1 -1
  680. package/dist/components/features/settings/llm-profiles/profile-actions-menu.d.ts +1 -1
  681. package/dist/components/features/settings/llm-profiles/profile-row.d.ts +1 -1
  682. package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +1 -1
  683. package/dist/components/features/settings/llm-profiles/rename-profile-modal.d.ts +1 -1
  684. package/dist/components/features/settings/llm-settings/llm-settings-inputs-skeleton.d.ts +1 -1
  685. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.d.ts +2 -1
  686. package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs +1 -1
  687. package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs.map +1 -1
  688. package/dist/components/features/settings/mcp-settings/mcp-server-form.d.ts +2 -1
  689. package/dist/components/features/settings/mcp-settings/mcp-server-form.js +2 -1
  690. package/dist/components/features/settings/mcp-settings/mcp-server-form.js.map +1 -1
  691. package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +1 -1
  692. package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +1 -1
  693. package/dist/components/features/settings/mobile-header.d.ts +1 -1
  694. package/dist/components/features/settings/optional-tag.d.ts +1 -1
  695. package/dist/components/features/settings/sdk-settings/field-help.d.ts +1 -1
  696. package/dist/components/features/settings/sdk-settings/schema-field.d.ts +2 -1
  697. package/dist/components/features/settings/sdk-settings/sdk-section-page.d.ts +1 -1
  698. package/dist/components/features/settings/sdk-settings/view-toggle.d.ts +1 -1
  699. package/dist/components/features/settings/secrets-settings/secret-form.d.ts +2 -1
  700. package/dist/components/features/settings/secrets-settings/secret-list-item.d.ts +2 -2
  701. package/dist/components/features/settings/settings-desktop-sidebar.d.ts +1 -1
  702. package/dist/components/features/settings/settings-dropdown-input.d.ts +1 -1
  703. package/dist/components/features/settings/settings-layout.d.ts +1 -1
  704. package/dist/components/features/settings/settings-mobile-drawer.d.ts +1 -1
  705. package/dist/components/features/settings/settings-mobile-hub.d.ts +1 -1
  706. package/dist/components/features/settings/settings-nav-divider.d.ts +1 -1
  707. package/dist/components/features/settings/settings-nav-header.d.ts +1 -1
  708. package/dist/components/features/settings/settings-nav-link.d.ts +1 -1
  709. package/dist/components/features/settings/settings-navigation.d.ts +1 -1
  710. package/dist/components/features/settings/settings-switch.d.ts +1 -1
  711. package/dist/components/features/settings/subtext-skeleton.d.ts +1 -1
  712. package/dist/components/features/settings/switch-skeleton.d.ts +1 -1
  713. package/dist/components/features/settings/upgrade-banner.d.ts +1 -1
  714. package/dist/components/features/settings/upgrade-button.d.ts +1 -1
  715. package/dist/components/features/sidebar/avatar.d.ts +1 -1
  716. package/dist/components/features/sidebar/sidebar-collapsed-icon-slot.d.ts +1 -1
  717. package/dist/components/features/sidebar/sidebar-conversation-list.d.ts +1 -1
  718. package/dist/components/features/sidebar/sidebar-mobile-menu-bar.d.ts +1 -1
  719. package/dist/components/features/sidebar/sidebar-mobile-menu-toggle.d.ts +1 -1
  720. package/dist/components/features/sidebar/sidebar-mobile-nav-context.d.ts +1 -1
  721. package/dist/components/features/sidebar/sidebar-nav-link.d.ts +1 -1
  722. package/dist/components/features/sidebar/sidebar-rail-body.d.ts +1 -1
  723. package/dist/components/features/sidebar/sidebar.d.ts +2 -1
  724. package/dist/components/features/sidebar/user-avatar.d.ts +1 -1
  725. package/dist/components/features/skills/add-skill-modal.d.ts +2 -1
  726. package/dist/components/features/skills/extensions-mobile-hub.d.ts +1 -1
  727. package/dist/components/features/skills/extensions-navigation.d.ts +1 -1
  728. package/dist/components/features/skills/skill-card-pill-row.d.ts +1 -1
  729. package/dist/components/features/skills/skill-card.d.ts +2 -1
  730. package/dist/components/features/skills/skill-detail-modal.d.ts +2 -1
  731. package/dist/components/features/skills/skill-facet-rail.d.ts +8 -0
  732. package/dist/components/features/skills/skill-facet-row.d.ts +13 -0
  733. package/dist/components/features/skills/skill-filter.d.ts +34 -0
  734. package/dist/components/features/skills/skill-filters-modal.d.ts +10 -0
  735. package/dist/components/features/skills/skill-icon-badge.d.ts +1 -1
  736. package/dist/components/features/skills/skill-type-badge.d.ts +1 -1
  737. package/dist/components/features/skills/skills-toolbar.d.ts +3 -4
  738. package/dist/components/features/suggestions/suggestion-item.d.ts +1 -1
  739. package/dist/components/features/suggestions/suggestions.d.ts +1 -1
  740. package/dist/components/features/terminal/empty-terminal-message.d.ts +1 -1
  741. package/dist/components/features/terminal/terminal.d.ts +1 -1
  742. package/dist/components/features/tips/random-tip.d.ts +2 -1
  743. package/dist/components/providers/agent-server-ui-providers.d.ts +1 -1
  744. package/dist/components/providers/agent-server-ui-root.d.ts +1 -1
  745. package/dist/components/providers/telemetry-provider.d.ts +1 -1
  746. package/dist/components/shared/action-tooltip.d.ts +1 -1
  747. package/dist/components/shared/agent-brand-icon.d.ts +1 -1
  748. package/dist/components/shared/badge.d.ts +1 -1
  749. package/dist/components/shared/buttons/back-nav-button-content.d.ts +1 -1
  750. package/dist/components/shared/buttons/circle-plus-check-toggle.d.ts +3 -2
  751. package/dist/components/shared/buttons/conversation-confirmation-buttons.d.ts +1 -1
  752. package/dist/components/shared/buttons/copy-to-clipboard-button.d.ts +1 -1
  753. package/dist/components/shared/buttons/copyable-content-wrapper.d.ts +1 -1
  754. package/dist/components/shared/buttons/modal-button.d.ts +1 -1
  755. package/dist/components/shared/buttons/openhands-logo-button.d.ts +1 -1
  756. package/dist/components/shared/buttons/remove-button.d.ts +1 -1
  757. package/dist/components/shared/buttons/scroll-to-bottom-button.d.ts +1 -1
  758. package/dist/components/shared/buttons/styled-tooltip.d.ts +1 -1
  759. package/dist/components/shared/filters/enum-filter-dropdown.cjs +1 -1
  760. package/dist/components/shared/filters/enum-filter-dropdown.cjs.map +1 -1
  761. package/dist/components/shared/filters/enum-filter-dropdown.d.ts +6 -2
  762. package/dist/components/shared/filters/enum-filter-dropdown.js +13 -13
  763. package/dist/components/shared/filters/enum-filter-dropdown.js.map +1 -1
  764. package/dist/components/shared/git-provider-icon.d.ts +1 -1
  765. package/dist/components/shared/hook-execution-event-message.d.ts +2 -1
  766. package/dist/components/shared/loading-spinner.d.ts +1 -1
  767. package/dist/components/shared/modals/confirmation-modal.d.ts +1 -1
  768. package/dist/components/shared/modals/confirmation-modals/base-modal.d.ts +3 -3
  769. package/dist/components/shared/modals/confirmation-modals/danger-modal.d.ts +1 -1
  770. package/dist/components/shared/modals/modal-body.d.ts +1 -1
  771. package/dist/components/shared/modals/modal-close-button.d.ts +1 -1
  772. package/dist/components/shared/modals/settings/model-selector.d.ts +2 -1
  773. package/dist/components/shared/modals/settings/settings-form.d.ts +2 -1
  774. package/dist/components/shared/modals/settings/settings-modal.d.ts +1 -1
  775. package/dist/components/shared/navigation-link.cjs +1 -1
  776. package/dist/components/shared/navigation-link.cjs.map +1 -1
  777. package/dist/components/shared/navigation-link.js +11 -7
  778. package/dist/components/shared/navigation-link.js.map +1 -1
  779. package/dist/components/shared/risk-alert.d.ts +1 -1
  780. package/dist/components/shared/text-shimmer.d.ts +1 -1
  781. package/dist/components/ui/resize-handle.d.ts +1 -1
  782. package/dist/config/defaults.cjs +1 -1
  783. package/dist/config/defaults.cjs.map +1 -1
  784. package/dist/config/defaults.js +3 -3
  785. package/dist/config/defaults.js.map +1 -1
  786. package/dist/context/navigation-context.d.ts +1 -1
  787. package/dist/context/scroll-context.d.ts +1 -1
  788. package/dist/contexts/active-backend-context.d.ts +1 -1
  789. package/dist/contexts/conversation-websocket-context.d.ts +1 -1
  790. package/dist/contexts/settings-section-header-context.d.ts +1 -1
  791. package/dist/contexts/websocket-provider-wrapper.d.ts +1 -1
  792. package/dist/fixtures/home-automations-demo.d.ts +19 -0
  793. package/dist/hooks/mutation/use-add-mcp-server.cjs +1 -1
  794. package/dist/hooks/mutation/use-add-mcp-server.cjs.map +1 -1
  795. package/dist/hooks/mutation/use-add-mcp-server.js +10 -14
  796. package/dist/hooks/mutation/use-add-mcp-server.js.map +1 -1
  797. package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
  798. package/dist/hooks/mutation/use-delete-mcp-server.cjs.map +1 -1
  799. package/dist/hooks/mutation/use-delete-mcp-server.d.ts +2 -7
  800. package/dist/hooks/mutation/use-delete-mcp-server.js +8 -34
  801. package/dist/hooks/mutation/use-delete-mcp-server.js.map +1 -1
  802. package/dist/hooks/mutation/use-save-settings.cjs +1 -1
  803. package/dist/hooks/mutation/use-save-settings.cjs.map +1 -1
  804. package/dist/hooks/mutation/use-save-settings.js +8 -4
  805. package/dist/hooks/mutation/use-save-settings.js.map +1 -1
  806. package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
  807. package/dist/hooks/mutation/use-update-mcp-server.cjs.map +1 -1
  808. package/dist/hooks/mutation/use-update-mcp-server.d.ts +1 -1
  809. package/dist/hooks/mutation/use-update-mcp-server.js +31 -16
  810. package/dist/hooks/mutation/use-update-mcp-server.js.map +1 -1
  811. package/dist/hooks/query/use-active-conversation.d.ts +1 -1
  812. package/dist/hooks/query/use-agent-profiles.d.ts +1 -1
  813. package/dist/hooks/query/use-app-installations.d.ts +1 -1
  814. package/dist/hooks/query/use-automation-detail.d.ts +2 -2
  815. package/dist/hooks/query/use-automation-health.d.ts +2 -0
  816. package/dist/hooks/query/use-automations.d.ts +5 -1
  817. package/dist/hooks/query/use-bash-command-logs.d.ts +1 -1
  818. package/dist/hooks/query/use-cloud-sandbox.d.ts +1 -1
  819. package/dist/hooks/query/use-commit-changes.d.ts +1 -1
  820. package/dist/hooks/query/use-config.d.ts +1 -1
  821. package/dist/hooks/query/use-conversation-history.d.ts +1 -1
  822. package/dist/hooks/query/use-conversation-hooks.d.ts +1 -1
  823. package/dist/hooks/query/use-conversation-skills.d.ts +1 -1
  824. package/dist/hooks/query/use-get-secrets.d.ts +1 -1
  825. package/dist/hooks/query/use-home-automations.d.ts +20 -0
  826. package/dist/hooks/query/use-latest-automation-runs.d.ts +19 -0
  827. package/dist/hooks/query/use-llm-profiles.d.ts +1 -1
  828. package/dist/hooks/query/use-llm-subscription-models.d.ts +1 -1
  829. package/dist/hooks/query/use-llm-subscription-status.d.ts +1 -1
  830. package/dist/hooks/query/use-local-git-info.d.ts +1 -1
  831. package/dist/hooks/query/use-local-workspaces.d.ts +1 -1
  832. package/dist/hooks/query/use-manifest-capabilities.d.ts +2 -0
  833. package/dist/hooks/query/use-plugin-file-content.d.ts +1 -1
  834. package/dist/hooks/query/use-plugins-marketplace.d.ts +1 -1
  835. package/dist/hooks/query/use-provider-models.d.ts +1 -1
  836. package/dist/hooks/query/use-search-branches.d.ts +1 -1
  837. package/dist/hooks/query/use-search-providers.d.ts +1 -1
  838. package/dist/hooks/query/use-search-repositories.d.ts +1 -1
  839. package/dist/hooks/query/use-search-subdirs.d.ts +2 -2
  840. package/dist/hooks/query/use-settings.d.ts +2 -2
  841. package/dist/hooks/query/use-skills.d.ts +1 -1
  842. package/dist/hooks/query/use-start-tasks.d.ts +1 -1
  843. package/dist/hooks/query/use-sub-conversation-task-polling.d.ts +1 -1
  844. package/dist/hooks/query/use-sub-conversations.d.ts +1 -1
  845. package/dist/hooks/query/use-suggested-tasks.d.ts +1 -1
  846. package/dist/hooks/query/use-task-polling.d.ts +2 -2
  847. package/dist/hooks/query/use-unified-get-git-changes.d.ts +1 -1
  848. package/dist/hooks/query/use-unified-git-diff.d.ts +1 -1
  849. package/dist/hooks/query/use-user-conversation.d.ts +1 -1
  850. package/dist/hooks/query/use-workspace-file-content.d.ts +1 -1
  851. package/dist/hooks/use-backend-scoped-path.cjs +2 -0
  852. package/dist/hooks/use-backend-scoped-path.cjs.map +1 -0
  853. package/dist/hooks/use-backend-scoped-path.d.ts +10 -0
  854. package/dist/hooks/use-backend-scoped-path.js +13 -0
  855. package/dist/hooks/use-backend-scoped-path.js.map +1 -0
  856. package/dist/hooks/use-home-automation-actions.d.ts +23 -0
  857. package/dist/hooks/use-home-pinned-automations.d.ts +26 -0
  858. package/dist/hooks/use-tracking.cjs +1 -1
  859. package/dist/hooks/use-tracking.cjs.map +1 -1
  860. package/dist/hooks/use-tracking.d.ts +4 -0
  861. package/dist/hooks/use-tracking.js +6 -0
  862. package/dist/hooks/use-tracking.js.map +1 -1
  863. package/dist/i18n/declaration.cjs +1 -1
  864. package/dist/i18n/declaration.cjs.map +1 -1
  865. package/dist/i18n/declaration.d.ts +68 -2
  866. package/dist/i18n/declaration.js +1 -1
  867. package/dist/i18n/declaration.js.map +1 -1
  868. package/dist/i18n/translation.cjs +2 -2
  869. package/dist/i18n/translation.cjs.map +1 -1
  870. package/dist/i18n/translation.js +1169 -47
  871. package/dist/i18n/translation.js.map +1 -1
  872. package/dist/icons/code-pill.d.ts +1 -1
  873. package/dist/locales/ar/openhands.json +70 -4
  874. package/dist/locales/ca/openhands.json +70 -4
  875. package/dist/locales/de/openhands.json +70 -4
  876. package/dist/locales/en/openhands.json +70 -4
  877. package/dist/locales/es/openhands.json +70 -4
  878. package/dist/locales/fr/openhands.json +70 -4
  879. package/dist/locales/it/openhands.json +70 -4
  880. package/dist/locales/ja/openhands.json +70 -4
  881. package/dist/locales/ko-KR/openhands.json +70 -4
  882. package/dist/locales/no/openhands.json +70 -4
  883. package/dist/locales/pt/openhands.json +70 -4
  884. package/dist/locales/tr/openhands.json +70 -4
  885. package/dist/locales/uk/openhands.json +70 -4
  886. package/dist/locales/zh-CN/openhands.json +70 -4
  887. package/dist/locales/zh-TW/openhands.json +70 -4
  888. package/dist/manifests/automation-insights.d.ts +64 -0
  889. package/dist/manifests/automation-interface.cjs +1 -1
  890. package/dist/manifests/automation-interface.cjs.map +1 -1
  891. package/dist/manifests/automation-interface.d.ts +33 -1
  892. package/dist/manifests/automation-interface.js +2 -1
  893. package/dist/manifests/automation-interface.js.map +1 -1
  894. package/dist/manifests/interface-validation.cjs +1 -1
  895. package/dist/manifests/interface-validation.cjs.map +1 -1
  896. package/dist/manifests/interface-validation.js +228 -50
  897. package/dist/manifests/interface-validation.js.map +1 -1
  898. package/dist/manifests/manifest-template.d.ts +2 -0
  899. package/dist/manifests/manifest-validation.cjs.map +1 -1
  900. package/dist/manifests/manifest-validation.js.map +1 -1
  901. package/dist/manifests/types.cjs +1 -1
  902. package/dist/manifests/types.cjs.map +1 -1
  903. package/dist/manifests/types.d.ts +128 -0
  904. package/dist/manifests/types.js +35 -2
  905. package/dist/manifests/types.js.map +1 -1
  906. package/dist/mockServiceWorker.js +21 -9
  907. package/dist/node_modules/@openhands/extensions/automations/catalog/upstream-fork-sync/manifest.cjs +9 -0
  908. package/dist/node_modules/@openhands/extensions/automations/catalog/upstream-fork-sync/manifest.cjs.map +1 -0
  909. package/dist/node_modules/@openhands/extensions/automations/catalog/upstream-fork-sync/manifest.js +74 -0
  910. package/dist/node_modules/@openhands/extensions/automations/catalog/upstream-fork-sync/manifest.js.map +1 -0
  911. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +1 -1
  912. package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -1
  913. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +6 -4
  914. package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -1
  915. package/dist/node_modules/@openhands/extensions/automations/interface.cjs +1 -1
  916. package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -1
  917. package/dist/node_modules/@openhands/extensions/automations/interface.js +126 -5
  918. package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -1
  919. package/dist/node_modules/@openhands/extensions/skills/index.cjs +161 -53
  920. package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
  921. package/dist/node_modules/@openhands/extensions/skills/index.js +112 -50
  922. package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
  923. package/dist/node_modules/@tanstack/query-core/build/modern/utils.cjs +1 -1
  924. package/dist/node_modules/@tanstack/query-core/build/modern/utils.cjs.map +1 -1
  925. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js +12 -1
  926. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -1
  927. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.cjs +1 -1
  928. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.cjs.map +1 -1
  929. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js +14 -12
  930. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js.map +1 -1
  931. package/dist/node_modules/html-parse-stringify/dist/esm/html-parse-stringify.cjs +2 -0
  932. package/dist/node_modules/html-parse-stringify/dist/esm/html-parse-stringify.cjs.map +1 -0
  933. package/dist/node_modules/html-parse-stringify/dist/esm/html-parse-stringify.js +177 -0
  934. package/dist/node_modules/html-parse-stringify/dist/esm/html-parse-stringify.js.map +1 -0
  935. package/dist/node_modules/i18next/dist/esm/i18next.cjs +1 -1
  936. package/dist/node_modules/i18next/dist/esm/i18next.cjs.map +1 -1
  937. package/dist/node_modules/i18next/dist/esm/i18next.js +31 -24
  938. package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -1
  939. package/dist/node_modules/posthog-js/dist/module.cjs +2 -2
  940. package/dist/node_modules/posthog-js/dist/module.cjs.map +1 -1
  941. package/dist/node_modules/posthog-js/dist/module.js +2055 -1929
  942. package/dist/node_modules/posthog-js/dist/module.js.map +1 -1
  943. package/dist/node_modules/react-i18next/dist/es/TransWithoutContext.cjs +1 -1
  944. package/dist/node_modules/react-i18next/dist/es/TransWithoutContext.cjs.map +1 -1
  945. package/dist/node_modules/react-i18next/dist/es/TransWithoutContext.js +43 -62
  946. package/dist/node_modules/react-i18next/dist/es/TransWithoutContext.js.map +1 -1
  947. package/dist/node_modules/react-i18next/dist/es/useTranslation.cjs +1 -1
  948. package/dist/node_modules/react-i18next/dist/es/useTranslation.cjs.map +1 -1
  949. package/dist/node_modules/react-i18next/dist/es/useTranslation.js +12 -6
  950. package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -1
  951. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +1 -1
  952. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.map +1 -1
  953. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +352 -310
  954. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  955. package/dist/package.cjs +1 -1
  956. package/dist/package.cjs.map +1 -1
  957. package/dist/package.js +34 -33
  958. package/dist/package.js.map +1 -1
  959. package/dist/routes/agent-settings.d.ts +3 -2
  960. package/dist/routes/app-settings.d.ts +2 -1
  961. package/dist/routes/browser-tab.d.ts +1 -1
  962. package/dist/routes/changes-tab.d.ts +2 -1
  963. package/dist/routes/commits-tab.d.ts +1 -1
  964. package/dist/routes/conversation.d.ts +2 -1
  965. package/dist/routes/files-tab.d.ts +1 -1
  966. package/dist/routes/llm-settings.d.ts +3 -2
  967. package/dist/routes/mcp.cjs +1 -1
  968. package/dist/routes/mcp.cjs.map +1 -1
  969. package/dist/routes/mcp.d.ts +2 -1
  970. package/dist/routes/mcp.js +1 -1
  971. package/dist/routes/mcp.js.map +1 -1
  972. package/dist/routes/planner-tab.d.ts +2 -1
  973. package/dist/routes/secrets-settings.d.ts +2 -1
  974. package/dist/routes/task-list-tab.d.ts +1 -1
  975. package/dist/services/settings.cjs +1 -1
  976. package/dist/services/settings.cjs.map +1 -1
  977. package/dist/services/settings.js +3 -7
  978. package/dist/services/settings.js.map +1 -1
  979. package/dist/types/automation.d.ts +16 -1
  980. package/dist/types/mcp-auth.cjs.map +1 -1
  981. package/dist/types/mcp-auth.d.ts +5 -41
  982. package/dist/types/mcp-auth.js.map +1 -1
  983. package/dist/types/mcp-server.d.ts +17 -32
  984. package/dist/types/settings.d.ts +8 -28
  985. package/dist/ui/card-title.d.ts +1 -1
  986. package/dist/ui/card.d.ts +1 -1
  987. package/dist/ui/combobox-caret.d.ts +3 -3
  988. package/dist/ui/context-menu.cjs +1 -1
  989. package/dist/ui/context-menu.cjs.map +1 -1
  990. package/dist/ui/context-menu.d.ts +3 -2
  991. package/dist/ui/context-menu.js +10 -9
  992. package/dist/ui/context-menu.js.map +1 -1
  993. package/dist/ui/divider.d.ts +1 -1
  994. package/dist/ui/dropdown/clear-button.d.ts +1 -1
  995. package/dist/ui/dropdown/dropdown-input.d.ts +1 -1
  996. package/dist/ui/dropdown/dropdown-menu.d.ts +1 -1
  997. package/dist/ui/dropdown/dropdown.d.ts +1 -1
  998. package/dist/ui/dropdown/loading-spinner.d.ts +1 -1
  999. package/dist/ui/dropdown/toggle-button.d.ts +1 -1
  1000. package/dist/ui/help-link.d.ts +1 -1
  1001. package/dist/ui/pre.d.ts +1 -1
  1002. package/dist/ui/toggle-switch.d.ts +2 -2
  1003. package/dist/ui/typography.d.ts +7 -7
  1004. package/dist/utils/automation-activity-log-export.d.ts +17 -0
  1005. package/dist/utils/automation-timeout.d.ts +4 -6
  1006. package/dist/utils/custom-toast-handlers.d.ts +2 -2
  1007. package/dist/utils/format-relative-time.d.ts +3 -0
  1008. package/dist/utils/mcp-config.cjs +1 -1
  1009. package/dist/utils/mcp-config.cjs.map +1 -1
  1010. package/dist/utils/mcp-config.d.ts +12 -29
  1011. package/dist/utils/mcp-config.js +161 -143
  1012. package/dist/utils/mcp-config.js.map +1 -1
  1013. package/dist/utils/mcp-installed-servers.cjs +1 -1
  1014. package/dist/utils/mcp-installed-servers.cjs.map +1 -1
  1015. package/dist/utils/mcp-installed-servers.d.ts +2 -2
  1016. package/dist/utils/mcp-installed-servers.js +21 -32
  1017. package/dist/utils/mcp-installed-servers.js.map +1 -1
  1018. package/dist/utils/mcp-server-health-key.cjs.map +1 -1
  1019. package/dist/utils/mcp-server-health-key.d.ts +2 -4
  1020. package/dist/utils/mcp-server-health-key.js.map +1 -1
  1021. package/dist/utils/settings-like-page-layout-classes.cjs +1 -1
  1022. package/dist/utils/settings-like-page-layout-classes.cjs.map +1 -1
  1023. package/dist/utils/settings-like-page-layout-classes.d.ts +6 -2
  1024. package/dist/utils/settings-like-page-layout-classes.js +1 -1
  1025. package/dist/utils/settings-like-page-layout-classes.js.map +1 -1
  1026. package/dist/utils/skill-category.d.ts +12 -0
  1027. package/package.json +36 -33
  1028. package/scripts/check-sdk-version-sync.mjs +6 -6
  1029. package/scripts/dev-safe.mjs +2 -2
  1030. package/scripts/dev-with-automation.mjs +3 -2
  1031. package/build/assets/Trans-Bwpzk1wT.js +0 -1
  1032. package/build/assets/active-backend-context-BiwzkzDy.js +0 -2
  1033. package/build/assets/agent-context-settings-DXNT_dcw.js +0 -1
  1034. package/build/assets/agent-server-conversation-service.api-CYSWw-2g.js +0 -41
  1035. package/build/assets/agent-settings-BjgQQe-_.js +0 -1
  1036. package/build/assets/alert-banner-DR8EVyZM.js +0 -1
  1037. package/build/assets/api-error-message-e16L1kwH.js +0 -1
  1038. package/build/assets/automation-detail-DY6x2FW1.js +0 -2
  1039. package/build/assets/automation-export-C09f-Lua.js +0 -2
  1040. package/build/assets/automation-setup-route-CqKp0717.js +0 -1
  1041. package/build/assets/automations-list-CqWJ7qXW.js +0 -1
  1042. package/build/assets/check-CPLXgluF.js +0 -1
  1043. package/build/assets/chevron-down-CP4QHvyc.js +0 -1
  1044. package/build/assets/circle-check-Dpy2_xSI.js +0 -1
  1045. package/build/assets/command-menu-Bj6X4ckE.js +0 -1
  1046. package/build/assets/condenser-settings-EAXQNR2E.js +0 -1
  1047. package/build/assets/context-menu-list-item-CrCrYuPF.js +0 -1
  1048. package/build/assets/conversation-BzyIcSwr.js +0 -1
  1049. package/build/assets/conversation-panel-BzyIcSwr.js +0 -1
  1050. package/build/assets/entry.client-BbIYOsIg.js +0 -2
  1051. package/build/assets/enum-filter-dropdown-C08-srev.js +0 -1
  1052. package/build/assets/files-tab-DEq8MbHu.js +0 -1
  1053. package/build/assets/format-time-delta-CxfPJpzC.js +0 -1
  1054. package/build/assets/git-repo-dropdown-9WKINV6J.js +0 -1
  1055. package/build/assets/home-CY0JaxiY.js +0 -1
  1056. package/build/assets/home-CaNWlVvB.js +0 -1
  1057. package/build/assets/index-home-CaNWlVvB.js +0 -1
  1058. package/build/assets/info-CmWQXtRQ.js +0 -1
  1059. package/build/assets/install-server-modal-BWrudmZU.js +0 -1
  1060. package/build/assets/llm-not-configured-banner-3tMsM4K6.js +0 -27
  1061. package/build/assets/llm-settings-D0W8mJDk.js +0 -1
  1062. package/build/assets/loader-circle-B4QDBARx.js +0 -1
  1063. package/build/assets/manifest-39f4789d.js +0 -1
  1064. package/build/assets/mcp-DXG9LWrI.js +0 -9
  1065. package/build/assets/mcp-marketplace-utils-DFmhKc5s.js +0 -1
  1066. package/build/assets/messages-kBjKaAeA.js +0 -40
  1067. package/build/assets/navigation-link-Bxmn-pCs.js +0 -1
  1068. package/build/assets/onboarding-47hh2IHA.js +0 -1
  1069. package/build/assets/onboarding-modal-9BuvvROo.js +0 -1
  1070. package/build/assets/plus-DrKuuvMe.js +0 -1
  1071. package/build/assets/recommended-automations-launcher-ejxy1P27.js +0 -1
  1072. package/build/assets/root-5S-M8SYa.js +0 -2
  1073. package/build/assets/root-DZ39lS5f.css +0 -1
  1074. package/build/assets/root-layout-BPqoa0gv.js +0 -3
  1075. package/build/assets/search-Dc2qR4O2.js +0 -1
  1076. package/build/assets/settings-Chfn5xTD.js +0 -1
  1077. package/build/assets/settings-like-page-layout-classes-DyxyJ0k4.js +0 -1
  1078. package/build/assets/settings-service.api-CZiPD8__.js +0 -1
  1079. package/build/assets/sidebar-mobile-menu-toggle-ND-hgygu.js +0 -1
  1080. package/build/assets/skills-settings-B43KArIz.js +0 -2
  1081. package/build/assets/use-is-authed-BT7Iud4U.js +0 -1
  1082. package/build/assets/use-llm-profiles-2Wc2db8u.js +0 -1
  1083. package/build/assets/use-save-agent-profile-D0wC5ExW.js +0 -1
  1084. package/build/assets/use-skills-CE6miQ3r.js +0 -1
  1085. package/build/assets/use-tracking-BGboadaZ.js +0 -68
  1086. package/build/assets/useQuery-DiPh8LRJ.js +0 -1
  1087. package/build/assets/utils-BgGG1znF.js +0 -1
  1088. package/build/assets/v4-DDdyfk2q.js +0 -1
  1089. package/build/assets/vendor~browser-IVYgIgG1.js +0 -47
  1090. package/build/assets/vendor~entry.client-CXM9oiAk.js +0 -1
  1091. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~d4by102p-C2f0ZhS-.js +0 -26
  1092. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~emdr2jt4-BrmgjeOw.js +0 -1
  1093. package/build/assets/vendor~module-BZXjBMvd.js +0 -2
  1094. package/build/assets/x-omAzpXkl.js +0 -1
  1095. package/dist/components/features/skills/skill-type-filter.d.ts +0 -3
  1096. package/dist/components/features/skills/skills-type-filter-dropdown.d.ts +0 -7
  1097. package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.module.cjs +0 -2
  1098. package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.module.cjs.map +0 -1
  1099. package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js +0 -81
  1100. package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js.map +0 -1
  1101. package/dist/node_modules/void-elements/index.cjs +0 -2
  1102. package/dist/node_modules/void-elements/index.cjs.map +0 -1
  1103. package/dist/node_modules/void-elements/index.js +0 -25
  1104. package/dist/node_modules/void-elements/index.js.map +0 -1
  1105. /package/build/assets/{vendor~root-layout~index-home~home~mcp~automations-list~automation-setup-route~onboarding-modal-D7IDevqN.js → vendor~root-layout~index-home~home~mcp~automations-list~automation-templates~automation-set~bxsimjx0-D7IDevqN.js} +0 -0
@@ -1,2 +1,2 @@
1
1
  import type { LLMModel } from "#/api/config-service/config-service.types";
2
- export declare const useProviderModels: (provider: string | null) => import("@tanstack/react-query").UseQueryResult<LLMModel[], import("axios").AxiosError<unknown, any>>;
2
+ export declare const useProviderModels: (provider: string | null) => import("@tanstack/react-query").UseQueryResult<NoInfer<LLMModel[]>, import("axios").AxiosError<unknown, any>>;
@@ -1,3 +1,3 @@
1
1
  import { Branch } from "#/types/git";
2
2
  import { Provider } from "#/types/settings";
3
- export declare function useSearchBranches(repository: string | null, query: string, perPage?: number, selectedProvider?: Provider): import("@tanstack/react-query").UseQueryResult<Branch[], import("axios").AxiosError<unknown, any>>;
3
+ export declare function useSearchBranches(repository: string | null, query: string, perPage?: number, selectedProvider?: Provider): import("@tanstack/react-query").UseQueryResult<NoInfer<Branch[]>, import("axios").AxiosError<unknown, any>>;
@@ -1,2 +1,2 @@
1
1
  import type { LLMProvider } from "#/api/config-service/config-service.types";
2
- export declare const useSearchProviders: () => import("@tanstack/react-query").UseQueryResult<LLMProvider[], import("axios").AxiosError<unknown, any>>;
2
+ export declare const useSearchProviders: () => import("@tanstack/react-query").UseQueryResult<NoInfer<LLMProvider[]>, import("axios").AxiosError<unknown, any>>;
@@ -1,3 +1,3 @@
1
1
  import { GitRepository } from "#/types/git";
2
2
  import { Provider } from "#/types/settings";
3
- export declare function useSearchRepositories(query: string, selectedProvider?: Provider | null, disabled?: boolean, pageSize?: number): import("@tanstack/react-query").UseQueryResult<GitRepository[], import("axios").AxiosError<unknown, any>>;
3
+ export declare function useSearchRepositories(query: string, selectedProvider?: Provider | null, disabled?: boolean, pageSize?: number): import("@tanstack/react-query").UseQueryResult<NoInfer<GitRepository[]>, import("axios").AxiosError<unknown, any>>;
@@ -11,6 +11,6 @@ export interface HomeDirectoryResponse {
11
11
  locations?: FileBrowserEntry[];
12
12
  }
13
13
  export declare function searchAllSubdirectories(path: string, fileClient?: FileClientLike): Promise<FileSubdirectoryPage>;
14
- export declare const useSearchSubdirs: (path: string | null) => import("@tanstack/react-query").UseQueryResult<import("@openhands/typescript-client").FileSubdirectoryPage, import("axios").AxiosError<unknown, any>>;
15
- export declare const useHomeDirectory: () => import("@tanstack/react-query").UseQueryResult<HomeDirectoryResponse, import("axios").AxiosError<unknown, any>>;
14
+ export declare const useSearchSubdirs: (path: string | null) => import("@tanstack/react-query").UseQueryResult<NoInfer<import("@openhands/typescript-client").FileSubdirectoryPage>, import("axios").AxiosError<unknown, any>>;
15
+ export declare const useHomeDirectory: () => import("@tanstack/react-query").UseQueryResult<NoInfer<HomeDirectoryResponse>, import("axios").AxiosError<unknown, any>>;
16
16
  export {};
@@ -1,7 +1,7 @@
1
1
  import { Settings, SettingsScope } from "#/types/settings";
2
2
  export declare const getErrorStatus: (error: unknown) => number | undefined;
3
3
  export declare const getSettingsQueryFn: (scope?: SettingsScope) => Promise<Settings>;
4
- export declare const useSettings: (scope?: SettingsScope) => import("@tanstack/query-core").QueryObserverRefetchErrorResult<Settings, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverSuccessResult<Settings, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverLoadingErrorResult<Settings, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverPendingResult<Settings, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverPlaceholderResult<Settings, import("axios").AxiosError<unknown, any>> | {
4
+ export declare const useSettings: (scope?: SettingsScope) => import("@tanstack/query-core").QueryObserverRefetchErrorResult<NoInfer<Settings>, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverSuccessResult<NoInfer<Settings>, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverLoadingErrorResult<NoInfer<Settings>, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverPendingResult<NoInfer<Settings>, import("axios").AxiosError<unknown, any>> | import("@tanstack/query-core").QueryObserverPlaceholderResult<NoInfer<Settings>, import("axios").AxiosError<unknown, any>> | {
5
5
  data: Settings;
6
6
  error: import("axios").AxiosError<unknown, any> | null;
7
7
  isError: boolean;
@@ -11,5 +11,5 @@ export declare const useSettings: (scope?: SettingsScope) => import("@tanstack/q
11
11
  isSuccess: boolean;
12
12
  status: "error" | "pending" | "success";
13
13
  fetchStatus: import("@tanstack/query-core").FetchStatus;
14
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<Settings, import("axios").AxiosError<unknown, any>>>;
14
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<NoInfer<Settings>, import("axios").AxiosError<unknown, any>>>;
15
15
  };
@@ -4,4 +4,4 @@ import { SkillInfo } from "#/types/settings";
4
4
  * views pass the conversation's own workspace so the catalog matches the
5
5
  * skills loaded into that conversation; the global Skills page omits it.
6
6
  */
7
- export declare const useSkills: (projectDir?: string) => import("@tanstack/react-query").UseQueryResult<SkillInfo[], import("axios").AxiosError<unknown, any>>;
7
+ export declare const useSkills: (projectDir?: string) => import("@tanstack/react-query").UseQueryResult<NoInfer<SkillInfo[]>, import("axios").AxiosError<unknown, any>>;
@@ -10,4 +10,4 @@ import type { AppConversationStartTask } from "#/api/conversation-service/agent-
10
10
  * @param limit Maximum number of tasks to return (max 100)
11
11
  * @returns Query result with array of in-progress start tasks
12
12
  */
13
- export declare const useStartTasks: (limit?: number) => import("@tanstack/react-query").UseQueryResult<AppConversationStartTask[], import("axios").AxiosError<unknown, any>>;
13
+ export declare const useStartTasks: (limit?: number) => import("@tanstack/react-query").UseQueryResult<NoInfer<AppConversationStartTask[]>, import("axios").AxiosError<unknown, any>>;
@@ -17,7 +17,7 @@
17
17
  * @param parentConversationId - The parent conversation ID (used to enable polling)
18
18
  */
19
19
  export declare const useSubConversationTaskPolling: (taskId: string | null, parentConversationId: string | null) => {
20
- task: import("../../api/conversation-service/agent-server-conversation-service.types").AppConversationStartTask | null | undefined;
20
+ task: NoInfer<import("../../api/conversation-service/agent-server-conversation-service.types").AppConversationStartTask | null> | undefined;
21
21
  taskStatus: import("../../api/conversation-service/agent-server-conversation-service.types").AppConversationStartTaskStatus | undefined;
22
22
  taskDetail: string | null | undefined;
23
23
  taskError: import("axios").AxiosError<unknown, any> | null;
@@ -12,4 +12,4 @@ import { AppConversation } from "#/api/conversation-service/agent-server-convers
12
12
  * );
13
13
  * ```
14
14
  */
15
- export declare const useSubConversations: (subConversationIds: string[] | null | undefined) => import("@tanstack/react-query").UseQueryResult<(AppConversation | null)[], import("axios").AxiosError<unknown, any>>;
15
+ export declare const useSubConversations: (subConversationIds: string[] | null | undefined) => import("@tanstack/react-query").UseQueryResult<NoInfer<(AppConversation | null)[]>, import("axios").AxiosError<unknown, any>>;
@@ -1 +1 @@
1
- export declare const useSuggestedTasks: () => import("@tanstack/react-query").UseQueryResult<import("../../utils/types").SuggestedTaskGroup[], import("axios").AxiosError<unknown, any>>;
1
+ export declare const useSuggestedTasks: () => import("@tanstack/react-query").UseQueryResult<NoInfer<import("../../utils/types").SuggestedTaskGroup[]>, import("axios").AxiosError<unknown, any>>;
@@ -18,7 +18,7 @@ export declare const useTaskPolling: () => {
18
18
  isTask: boolean;
19
19
  taskId: string | null;
20
20
  conversationId: string | null;
21
- task: AppConversationStartTask | null | undefined;
21
+ task: NoInfer<AppConversationStartTask | null> | undefined;
22
22
  taskStatus: import("#/api/conversation-service/agent-server-conversation-service.types").AppConversationStartTaskStatus | undefined;
23
23
  taskDetail: string | null | undefined;
24
24
  taskError: import("axios").AxiosError<unknown, any> | null;
@@ -34,7 +34,7 @@ export declare const useTaskPollingController: () => {
34
34
  isTask: boolean;
35
35
  taskId: string | null;
36
36
  conversationId: string | null;
37
- task: AppConversationStartTask | null | undefined;
37
+ task: NoInfer<AppConversationStartTask | null> | undefined;
38
38
  taskStatus: import("#/api/conversation-service/agent-server-conversation-service.types").AppConversationStartTaskStatus | undefined;
39
39
  taskDetail: string | null | undefined;
40
40
  taskError: import("axios").AxiosError<unknown, any> | null;
@@ -6,5 +6,5 @@ export declare const useUnifiedGetGitChanges: () => {
6
6
  isSuccess: boolean;
7
7
  isError: boolean;
8
8
  error: import("axios").AxiosError<unknown, any> | null;
9
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<GitChange[], import("axios").AxiosError<unknown, any>>>;
9
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<NoInfer<GitChange[]>, import("axios").AxiosError<unknown, any>>>;
10
10
  };
@@ -9,5 +9,5 @@ type UseUnifiedGitDiffConfig = {
9
9
  */
10
10
  commit?: string;
11
11
  };
12
- export declare const useUnifiedGitDiff: (config: UseUnifiedGitDiffConfig) => import("@tanstack/react-query").UseQueryResult<import("#/api/open-hands.types").GitChangeDiff, import("axios").AxiosError<unknown, any>>;
12
+ export declare const useUnifiedGitDiff: (config: UseUnifiedGitDiffConfig) => import("@tanstack/react-query").UseQueryResult<NoInfer<import("#/api/open-hands.types").GitChangeDiff>, import("axios").AxiosError<unknown, any>>;
13
13
  export {};
@@ -2,5 +2,5 @@ import { Query } from "@tanstack/react-query";
2
2
  import { AxiosError } from "axios";
3
3
  import { AppConversation } from "#/api/conversation-service/agent-server-conversation-service.types";
4
4
  type RefetchInterval = (query: Query<AppConversation | null, AxiosError<unknown, any>, AppConversation | null, (string | null)[]>) => number;
5
- export declare const useUserConversation: (cid: string | null, refetchInterval?: RefetchInterval) => import("@tanstack/react-query").UseQueryResult<AppConversation | null, AxiosError<unknown, any>>;
5
+ export declare const useUserConversation: (cid: string | null, refetchInterval?: RefetchInterval) => import("@tanstack/react-query").UseQueryResult<NoInfer<AppConversation | null>, AxiosError<unknown, any>>;
6
6
  export {};
@@ -29,4 +29,4 @@ export interface WorkspaceFileContent {
29
29
  * Pass a falsy `relativePath` to disable the query (e.g. when no file is
30
30
  * selected yet).
31
31
  */
32
- export declare function useWorkspaceFileContent(relativePath: string | null): import("@tanstack/react-query").UseQueryResult<WorkspaceFileContent, import("axios").AxiosError<unknown, any>>;
32
+ export declare function useWorkspaceFileContent(relativePath: string | null): import("@tanstack/react-query").UseQueryResult<NoInfer<WorkspaceFileContent>, import("axios").AxiosError<unknown, any>>;
@@ -0,0 +1,2 @@
1
+ const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../api/backend-registry/url-selection.cjs"),n=require("../api/backend-registry/active-store.cjs"),r=require("../contexts/active-backend-context.cjs");let i=require("react");i=e.__toESM(i,1);function a(){let e=r.useActiveBackend();return i.default.useCallback(r=>n.isNoBackend(e.backend)?r:t.withBackendSelectionParams(r,e),[e])}exports.useBackendScopedPath=a;
2
+ //# sourceMappingURL=use-backend-scoped-path.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-backend-scoped-path.cjs","names":[],"sources":["../../src/hooks/use-backend-scoped-path.ts"],"sourcesContent":["import React from \"react\";\nimport { isNoBackend } from \"#/api/backend-registry/active-store\";\nimport { withBackendSelectionParams } from \"#/api/backend-registry/url-selection\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\n\n/**\n * Build in-app paths that carry the active backend identity.\n *\n * Use it for links a user can plausibly open in a *new* browsing context\n * (cmd/ctrl-click, middle click, \"Open link in new tab\"). Such a tab does not\n * reliably inherit the opener's `sessionStorage`, so without the pinned\n * identity it can boot on whichever backend `localStorage` last recorded and\n * fail to resolve the linked conversation.\n */\nexport function useBackendScopedPath(): (path: string) => string {\n const active = useActiveBackend();\n\n return React.useCallback(\n (path: string) => {\n // The sentinel isn't a real backend and must never be pinned onto a\n // link — a new tab would only ignore it and fall back to storage.\n if (isNoBackend(active.backend)) return path;\n return withBackendSelectionParams(path, active);\n },\n [active],\n );\n}\n"],"mappings":"8PAcA,SAAgB,GAAiD,CAC/D,IAAM,EAAS,EAAA,iBAAiB,EAEhC,OAAO,EAAA,QAAM,YACV,GAGK,EAAA,YAAY,EAAO,OAAO,EAAU,EACjC,EAAA,2BAA2B,EAAM,CAAM,EAEhD,CAAC,CAAM,CACT,CACF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Build in-app paths that carry the active backend identity.
3
+ *
4
+ * Use it for links a user can plausibly open in a *new* browsing context
5
+ * (cmd/ctrl-click, middle click, "Open link in new tab"). Such a tab does not
6
+ * reliably inherit the opener's `sessionStorage`, so without the pinned
7
+ * identity it can boot on whichever backend `localStorage` last recorded and
8
+ * fail to resolve the linked conversation.
9
+ */
10
+ export declare function useBackendScopedPath(): (path: string) => string;
@@ -0,0 +1,13 @@
1
+ import { withBackendSelectionParams as e } from "../api/backend-registry/url-selection.js";
2
+ import { isNoBackend as t } from "../api/backend-registry/active-store.js";
3
+ import { useActiveBackend as n } from "../contexts/active-backend-context.js";
4
+ import r from "react";
5
+ //#region src/hooks/use-backend-scoped-path.ts
6
+ function i() {
7
+ let i = n();
8
+ return r.useCallback((n) => t(i.backend) ? n : e(n, i), [i]);
9
+ }
10
+ //#endregion
11
+ export { i as useBackendScopedPath };
12
+
13
+ //# sourceMappingURL=use-backend-scoped-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-backend-scoped-path.js","names":[],"sources":["../../src/hooks/use-backend-scoped-path.ts"],"sourcesContent":["import React from \"react\";\nimport { isNoBackend } from \"#/api/backend-registry/active-store\";\nimport { withBackendSelectionParams } from \"#/api/backend-registry/url-selection\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\n\n/**\n * Build in-app paths that carry the active backend identity.\n *\n * Use it for links a user can plausibly open in a *new* browsing context\n * (cmd/ctrl-click, middle click, \"Open link in new tab\"). Such a tab does not\n * reliably inherit the opener's `sessionStorage`, so without the pinned\n * identity it can boot on whichever backend `localStorage` last recorded and\n * fail to resolve the linked conversation.\n */\nexport function useBackendScopedPath(): (path: string) => string {\n const active = useActiveBackend();\n\n return React.useCallback(\n (path: string) => {\n // The sentinel isn't a real backend and must never be pinned onto a\n // link — a new tab would only ignore it and fall back to storage.\n if (isNoBackend(active.backend)) return path;\n return withBackendSelectionParams(path, active);\n },\n [active],\n );\n}\n"],"mappings":";;;;;AAcA,SAAgB,IAAiD;CAC/D,IAAM,IAAS,EAAiB;CAEhC,OAAO,EAAM,aACV,MAGK,EAAY,EAAO,OAAO,IAAU,IACjC,EAA2B,GAAM,CAAM,GAEhD,CAAC,CAAM,CACT;AACF"}
@@ -0,0 +1,23 @@
1
+ import { type Automation, type AutomationRun } from "#/types/automation";
2
+ export declare function isInFlightAutomationRun(run: AutomationRun | null | undefined): boolean;
3
+ /**
4
+ * Shared home-surface actions for pinned cards and activity rows:
5
+ * run now, view, edit (local), turn off (with confirm), cancel in-flight.
6
+ */
7
+ export declare function useHomeAutomationActions(automation: Automation, latestRun: AutomationRun | null): {
8
+ canManage: boolean;
9
+ canEdit: boolean;
10
+ isRunPending: boolean;
11
+ isCancelPending: boolean;
12
+ canCancel: boolean;
13
+ editOpen: boolean;
14
+ setEditOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
15
+ turnOffConfirmOpen: boolean;
16
+ runNow: () => void;
17
+ viewDetails: () => void;
18
+ openEdit: () => void;
19
+ requestTurnOff: () => void;
20
+ confirmTurnOff: () => void;
21
+ cancelTurnOff: () => void;
22
+ cancelRun: () => void;
23
+ };
@@ -0,0 +1,26 @@
1
+ export declare const HOME_PINNED_AUTOMATIONS_KEY = "oh:home-pinned-automations";
2
+ /**
3
+ * Pins are stored per backend + org: automation ids only resolve against the
4
+ * backend that issued them, and `pruneMissing` compares against the active
5
+ * backend's list — a shared key would let one backend wipe another's pins.
6
+ */
7
+ export declare function getHomePinnedAutomationsKey(backendId: string, orgId: string | null): string;
8
+ /** Soft preview cap for the home pinned dashboard before "View more". */
9
+ export declare const HOME_PINNED_PREVIEW_LIMIT = 6;
10
+ /** Reorder `base` to match `preferred` where possible; append leftovers. */
11
+ export declare function applyPinnedOrder(base: readonly string[], preferred: readonly string[]): string[];
12
+ export declare function movePinnedId(ids: readonly string[], activeId: string, targetId: string, position?: "before" | "after"): string[];
13
+ /**
14
+ * Pin state for home automation activity rows. Persists pinned ids in
15
+ * localStorage so dashboard modules survive reload. Resolution against live
16
+ * automations happens in the consuming components.
17
+ */
18
+ export declare function useHomePinnedAutomations(): {
19
+ pinnedIds: string[];
20
+ isPinned: (id: string) => boolean;
21
+ pin: (id: string) => void;
22
+ unpin: (id: string) => void;
23
+ togglePin: (id: string) => void;
24
+ reorder: (activeId: string, targetId: string, position?: "before" | "after") => void;
25
+ pruneMissing: (knownIds: ReadonlySet<string>) => void;
26
+ };
@@ -1,2 +1,2 @@
1
- const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../api/agent-server-compatibility.cjs"),n=require("../services/telemetry-context.cjs"),r=require("../services/telemetry.cjs"),i=require("../contexts/active-backend-context.cjs"),a=require("./query/use-automation-sdk-version.cjs");let o=require("react");o=e.__toESM(o,1);var s=()=>{let{backend:e}=i.useActiveBackend(),s=a.useAutomationSdkVersion(),c=o.default.useCallback(()=>({backendKind:e.kind,agentServerVersion:e.kind===`local`?t.getCachedAgentServerVersion(e.host):null,automationSdkVersion:s??null}),[s,e.host,e.kind]);o.default.useEffect(()=>{r.setTelemetryBackendContext(c())},[c]);let l={current_url:window.location.href},u=(e,t={})=>{r.setTelemetryBackendContext(c()),r.trackEvent(e,{...l,...t})};return{trackLoginButtonClick:({provider:e})=>{u(`login_button_clicked`,{provider:e})},trackConversationCreated:({conversationId:e,taskId:t,hasRepository:n,gitProvider:r,hasWorkspace:i,workspaceMode:a,hasInitialQuery:o,agentType:s,hasParentConversation:c,entryPoint:l})=>{u(`conversation_start_requested`,{conversation_id:e,task_id:t,is_start_task:e.startsWith(`task-`),has_repository:n,git_provider:r,has_workspace:i,workspace_mode:a,has_initial_query:o,agent_type:s,has_parent_conversation:c,entry_point:l})},trackPushButtonClick:()=>{u(`push_button_clicked`)},trackPullButtonClick:()=>{u(`pull_button_clicked`)},trackCreatePrButtonClick:()=>{u(`create_pr_button_clicked`)},trackUserSignupCompleted:()=>{u(`user_signup_completed`,{signup_timestamp:new Date().toISOString()})},trackPrebuiltAutomationEnabled:({automationId:e,automationName:t,automationCategory:n})=>{u(`prebuilt_automation_enabled`,{automation_id:e,automation_name:t,automation_category:n})},trackAutomationSetupOpened:({automationId:e})=>{u(`automation_setup_opened`,{automation_id:e})},trackAutomationSetupValidated:({automationId:e})=>{u(`automation_setup_validated`,{automation_id:e})},trackAutomationSetupCreated:({automationId:e,setupMode:t})=>{u(`automation_setup_created`,{automation_id:e,setup_mode:t})},trackAutomationSetupFailed:({automationId:e,setupMode:t})=>{u(`automation_setup_failed`,{automation_id:e,setup_mode:t})},trackInitialQuerySubmitted:({entryPoint:e,queryCharacterLength:t,replayJsonSize:n})=>{u(`initial_query_submitted`,{entry_point:e,query_character_length:t,replay_json_size:n})},trackUserMessageSent:({sessionMessageCount:e,currentMessageLength:t})=>{u(`user_message_sent`,{session_message_count:e,current_message_length:t})},trackDownloadVsCodeButtonClicked:()=>{u(`download_via_vscode_button_clicked`)},trackSettingsSaved:({llmModel:e,llmApiKeySet:t,searchApiKeySet:n,remoteRuntimeResourceFactor:r})=>{u(`settings_saved`,{LLM_MODEL:e,LLM_API_KEY_SET:t,SEARCH_API_KEY_SET:n,REMOTE_RUNTIME_RESOURCE_FACTOR:r})},trackMcpConfigUpdated:({sseServersCount:e,stdioServersCount:t})=>{u(`mcp_config_updated`,{has_mcp_config:!0,sse_servers_count:e,stdio_servers_count:t})},trackDownloadTrajectoryButtonClicked:()=>{u(`download_trajectory_button_clicked`)},trackConversationExported:e=>{u(`conversation_exported`,{format:e})},trackAutomationCreatedButton:({backendKind:e})=>{u(`automation_created_button`,{backend_kind:e})},trackAutomationExecuted:({backendKind:e})=>{u(`automation_executed`,{backend_kind:e})},trackAutomationDeleted:({backendKind:e})=>{u(`automation_deleted`,{backend_kind:e})},trackAutomationDisableButton:({backendKind:e})=>{u(`automation_disable_button`,{backend_kind:e})},trackAutomationEdited:({backendKind:e})=>{u(`automation_edited`,{backend_kind:e})},trackAutomationExported:({backendKind:e})=>{u(`automation_exported`,{backend_kind:e})},trackAutomationImported:({backendKind:e})=>{u(`automation_imported`,{backend_kind:e})},trackBackendAdded:({backendKind:e,connectionMethod:t,hasApiKey:r,source:i,agentServerVersion:a,backendVersion:o})=>{u(`backend_added`,{...n.getBackendTelemetryProperties({backendKind:e,agentServerVersion:a,backendVersion:o,connectionMethod:t}),has_api_key:r,source:i})},trackOnboardingStarted:()=>{u(`onboarding_started`)},trackOnboardingStepViewed:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{u(`onboarding_step_viewed`,{step:e,step_index:t,total_steps:n,agent:r})},trackOnboardingCompleted:({agent:e})=>{u(`onboarding_completed`,{agent:e})},trackOnboardingSkipped:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{u(`onboarding_skipped`,{step:e,step_index:t,total_steps:n,agent:r})}}};exports.useTracking=s;
1
+ const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../api/agent-server-compatibility.cjs"),n=require("../services/telemetry-context.cjs"),r=require("../services/telemetry.cjs"),i=require("../contexts/active-backend-context.cjs"),a=require("./query/use-automation-sdk-version.cjs");let o=require("react");o=e.__toESM(o,1);var s=()=>{let{backend:e}=i.useActiveBackend(),s=a.useAutomationSdkVersion(),c=o.default.useCallback(()=>({backendKind:e.kind,agentServerVersion:e.kind===`local`?t.getCachedAgentServerVersion(e.host):null,automationSdkVersion:s??null}),[s,e.host,e.kind]);o.default.useEffect(()=>{r.setTelemetryBackendContext(c())},[c]);let l={current_url:window.location.href},u=(e,t={})=>{r.setTelemetryBackendContext(c()),r.trackEvent(e,{...l,...t})};return{trackLoginButtonClick:({provider:e})=>{u(`login_button_clicked`,{provider:e})},trackConversationCreated:({conversationId:e,taskId:t,hasRepository:n,gitProvider:r,hasWorkspace:i,workspaceMode:a,hasInitialQuery:o,agentType:s,hasParentConversation:c,entryPoint:l})=>{u(`conversation_start_requested`,{conversation_id:e,task_id:t,is_start_task:e.startsWith(`task-`),has_repository:n,git_provider:r,has_workspace:i,workspace_mode:a,has_initial_query:o,agent_type:s,has_parent_conversation:c,entry_point:l})},trackPushButtonClick:()=>{u(`push_button_clicked`)},trackPullButtonClick:()=>{u(`pull_button_clicked`)},trackCreatePrButtonClick:()=>{u(`create_pr_button_clicked`)},trackUserSignupCompleted:()=>{u(`user_signup_completed`,{signup_timestamp:new Date().toISOString()})},trackPrebuiltAutomationEnabled:({automationId:e,automationName:t,automationCategory:n})=>{u(`prebuilt_automation_enabled`,{automation_id:e,automation_name:t,automation_category:n})},trackAutomationSetupOpened:({automationId:e})=>{u(`automation_setup_opened`,{automation_id:e})},trackAutomationSetupValidated:({automationId:e})=>{u(`automation_setup_validated`,{automation_id:e})},trackAutomationSetupCreated:({automationId:e,setupMode:t})=>{u(`automation_setup_created`,{automation_id:e,setup_mode:t})},trackAutomationSetupFailed:({automationId:e,setupMode:t})=>{u(`automation_setup_failed`,{automation_id:e,setup_mode:t})},trackInitialQuerySubmitted:({entryPoint:e,queryCharacterLength:t,replayJsonSize:n})=>{u(`initial_query_submitted`,{entry_point:e,query_character_length:t,replay_json_size:n})},trackUserMessageSent:({sessionMessageCount:e,currentMessageLength:t})=>{u(`user_message_sent`,{session_message_count:e,current_message_length:t})},trackDownloadVsCodeButtonClicked:()=>{u(`download_via_vscode_button_clicked`)},trackSettingsSaved:({llmModel:e,llmApiKeySet:t,searchApiKeySet:n,remoteRuntimeResourceFactor:r})=>{u(`settings_saved`,{LLM_MODEL:e,LLM_API_KEY_SET:t,SEARCH_API_KEY_SET:n,REMOTE_RUNTIME_RESOURCE_FACTOR:r})},trackMcpConfigUpdated:({sseServersCount:e,stdioServersCount:t})=>{u(`mcp_config_updated`,{has_mcp_config:!0,sse_servers_count:e,stdio_servers_count:t})},trackDownloadTrajectoryButtonClicked:()=>{u(`download_trajectory_button_clicked`)},trackConversationExported:e=>{u(`conversation_exported`,{format:e})},trackAutomationCreatedButton:({backendKind:e})=>{u(`automation_created_button`,{backend_kind:e})},trackAutomationExecuted:({backendKind:e})=>{u(`automation_executed`,{backend_kind:e})},trackAutomationDeleted:({backendKind:e})=>{u(`automation_deleted`,{backend_kind:e})},trackAutomationDisableButton:({backendKind:e})=>{u(`automation_disable_button`,{backend_kind:e})},trackAutomationEdited:({backendKind:e})=>{u(`automation_edited`,{backend_kind:e})},trackAutomationExported:({backendKind:e})=>{u(`automation_exported`,{backend_kind:e})},trackAutomationActivityLogExported:({backendKind:e,format:t})=>{u(`automation_activity_log_exported`,{backend_kind:e,format:t})},trackAutomationImported:({backendKind:e})=>{u(`automation_imported`,{backend_kind:e})},trackBackendAdded:({backendKind:e,connectionMethod:t,hasApiKey:r,source:i,agentServerVersion:a,backendVersion:o})=>{u(`backend_added`,{...n.getBackendTelemetryProperties({backendKind:e,agentServerVersion:a,backendVersion:o,connectionMethod:t}),has_api_key:r,source:i})},trackOnboardingStarted:()=>{u(`onboarding_started`)},trackOnboardingStepViewed:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{u(`onboarding_step_viewed`,{step:e,step_index:t,total_steps:n,agent:r})},trackOnboardingCompleted:({agent:e})=>{u(`onboarding_completed`,{agent:e})},trackOnboardingSkipped:({step:e,stepIndex:t,totalSteps:n,agent:r})=>{u(`onboarding_skipped`,{step:e,step_index:t,total_steps:n,agent:r})}}};exports.useTracking=s;
2
2
  //# sourceMappingURL=use-tracking.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-tracking.cjs","names":[],"sources":["../../src/hooks/use-tracking.ts"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"#/types/settings\";\nimport type { BackendKind } from \"#/api/backend-registry/types\";\nimport type { WorkspaceMode } from \"#/api/conversation-metadata-store\";\nimport type { CloudConnectionSource } from \"#/services/cloud-funnel-analytics\";\nimport { getCachedAgentServerVersion } from \"#/api/agent-server-compatibility\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { useAutomationSdkVersion } from \"#/hooks/query/use-automation-sdk-version\";\nimport {\n type BackendConnectionMethod,\n getBackendTelemetryProperties,\n} from \"#/services/telemetry-context\";\nimport { setTelemetryBackendContext, trackEvent } from \"#/services/telemetry\";\n\n/**\n * Hook that provides tracking functions with automatic data collection\n * from available hooks (settings, etc.)\n *\n * All events require explicit user consent. The shared PostHog client enforces\n * the canonical consent configured by telemetry.ts; this hook must not gate on\n * backend settings because they can be stale while a backend changes.\n */\nexport const useTracking = () => {\n const { backend } = useActiveBackend();\n const automationSdkVersion = useAutomationSdkVersion();\n\n const getBackendTelemetryContext = React.useCallback(\n () => ({\n backendKind: backend.kind,\n agentServerVersion:\n backend.kind === \"local\"\n ? getCachedAgentServerVersion(backend.host)\n : null,\n automationSdkVersion: automationSdkVersion ?? null,\n }),\n [automationSdkVersion, backend.host, backend.kind],\n );\n\n React.useEffect(() => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n }, [getBackendTelemetryContext]);\n\n // Common properties included in all tracking events\n const commonProperties = {\n current_url: window.location.href,\n };\n\n /**\n * PostHog enforces the canonical consent state configured by telemetry.ts.\n * Backend settings are not a capture gate because they can be stale while a\n * backend is being added or switched.\n */\n const track = (event: string, properties: Record<string, unknown> = {}) => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n void trackEvent(event, { ...commonProperties, ...properties });\n };\n\n const trackLoginButtonClick = ({ provider }: { provider: Provider }) => {\n track(\"login_button_clicked\", { provider });\n };\n\n const trackConversationCreated = ({\n conversationId,\n taskId,\n hasRepository,\n gitProvider,\n hasWorkspace,\n workspaceMode,\n hasInitialQuery,\n agentType,\n hasParentConversation,\n entryPoint,\n }: {\n conversationId: string;\n taskId?: string;\n hasRepository: boolean;\n gitProvider?: Provider;\n hasWorkspace: boolean;\n workspaceMode?: WorkspaceMode;\n hasInitialQuery: boolean;\n agentType?: \"default\" | \"plan\";\n hasParentConversation: boolean;\n entryPoint?: string;\n }) => {\n track(\"conversation_start_requested\", {\n conversation_id: conversationId,\n task_id: taskId,\n is_start_task: conversationId.startsWith(\"task-\"),\n has_repository: hasRepository,\n git_provider: gitProvider,\n has_workspace: hasWorkspace,\n workspace_mode: workspaceMode,\n has_initial_query: hasInitialQuery,\n agent_type: agentType,\n has_parent_conversation: hasParentConversation,\n entry_point: entryPoint,\n });\n };\n\n const trackPushButtonClick = () => {\n track(\"push_button_clicked\");\n };\n\n const trackPullButtonClick = () => {\n track(\"pull_button_clicked\");\n };\n\n const trackCreatePrButtonClick = () => {\n track(\"create_pr_button_clicked\");\n };\n\n const trackUserSignupCompleted = () => {\n track(\"user_signup_completed\", {\n signup_timestamp: new Date().toISOString(),\n });\n };\n\n const trackPrebuiltAutomationEnabled = ({\n automationId,\n automationName,\n automationCategory,\n }: {\n automationId?: string;\n automationName: string;\n automationCategory?: string;\n }) => {\n track(\"prebuilt_automation_enabled\", {\n automation_id: automationId,\n automation_name: automationName,\n automation_category: automationCategory,\n });\n };\n\n /**\n * The setup funnel: opened → validated → created, or failed.\n *\n * A manifest declares no analytics of its own, so the stages are the same for\n * every entry and only the id it carries varies.\n */\n const trackAutomationSetupOpened = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_opened\", { automation_id: automationId });\n };\n\n const trackAutomationSetupValidated = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_validated\", { automation_id: automationId });\n };\n\n const trackAutomationSetupCreated = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_created\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackAutomationSetupFailed = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_failed\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackInitialQuerySubmitted = ({\n entryPoint,\n queryCharacterLength,\n replayJsonSize,\n }: {\n entryPoint: string;\n queryCharacterLength: number;\n replayJsonSize?: number;\n }) => {\n track(\"initial_query_submitted\", {\n entry_point: entryPoint,\n query_character_length: queryCharacterLength,\n replay_json_size: replayJsonSize,\n });\n };\n\n const trackUserMessageSent = ({\n sessionMessageCount,\n currentMessageLength,\n }: {\n sessionMessageCount: number;\n currentMessageLength: number;\n }) => {\n track(\"user_message_sent\", {\n session_message_count: sessionMessageCount,\n current_message_length: currentMessageLength,\n });\n };\n\n const trackDownloadVsCodeButtonClicked = () => {\n track(\"download_via_vscode_button_clicked\");\n };\n\n const trackSettingsSaved = ({\n llmModel,\n llmApiKeySet,\n searchApiKeySet,\n remoteRuntimeResourceFactor,\n }: {\n llmModel: unknown;\n llmApiKeySet: \"SET\" | \"UNSET\";\n searchApiKeySet: \"SET\" | \"UNSET\";\n remoteRuntimeResourceFactor?: unknown;\n }) => {\n track(\"settings_saved\", {\n LLM_MODEL: llmModel,\n LLM_API_KEY_SET: llmApiKeySet,\n SEARCH_API_KEY_SET: searchApiKeySet,\n REMOTE_RUNTIME_RESOURCE_FACTOR: remoteRuntimeResourceFactor,\n });\n };\n\n const trackMcpConfigUpdated = ({\n sseServersCount,\n stdioServersCount,\n }: {\n sseServersCount: number;\n stdioServersCount: number;\n }) => {\n track(\"mcp_config_updated\", {\n has_mcp_config: true,\n sse_servers_count: sseServersCount,\n stdio_servers_count: stdioServersCount,\n });\n };\n\n const trackDownloadTrajectoryButtonClicked = () => {\n track(\"download_trajectory_button_clicked\");\n };\n\n const trackConversationExported = (format: \"markdown\" | \"html\") => {\n track(\"conversation_exported\", { format });\n };\n\n const trackAutomationCreatedButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_created_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationExecuted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_executed\", { backend_kind: backendKind });\n };\n\n const trackAutomationDeleted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_deleted\", { backend_kind: backendKind });\n };\n\n const trackAutomationDisableButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_disable_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationEdited = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_edited\", { backend_kind: backendKind });\n };\n\n const trackAutomationExported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_exported\", { backend_kind: backendKind });\n };\n\n const trackAutomationImported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_imported\", { backend_kind: backendKind });\n };\n\n const trackBackendAdded = ({\n backendKind,\n connectionMethod,\n hasApiKey,\n source,\n agentServerVersion,\n backendVersion,\n }: {\n backendKind: BackendKind;\n connectionMethod: BackendConnectionMethod;\n hasApiKey: boolean;\n source?: CloudConnectionSource;\n agentServerVersion?: string | null;\n backendVersion?: string | null;\n }) => {\n track(\"backend_added\", {\n ...getBackendTelemetryProperties({\n backendKind,\n agentServerVersion,\n backendVersion,\n connectionMethod,\n }),\n has_api_key: hasApiKey,\n source,\n });\n };\n\n const trackOnboardingStarted = () => {\n track(\"onboarding_started\");\n };\n\n const trackOnboardingStepViewed = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_step_viewed\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n const trackOnboardingCompleted = ({ agent }: { agent: string }) => {\n track(\"onboarding_completed\", { agent });\n };\n\n const trackOnboardingSkipped = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_skipped\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n return {\n trackLoginButtonClick,\n trackConversationCreated,\n trackPushButtonClick,\n trackPullButtonClick,\n trackCreatePrButtonClick,\n trackUserSignupCompleted,\n trackPrebuiltAutomationEnabled,\n trackAutomationSetupOpened,\n trackAutomationSetupValidated,\n trackAutomationSetupCreated,\n trackAutomationSetupFailed,\n trackInitialQuerySubmitted,\n trackUserMessageSent,\n trackDownloadVsCodeButtonClicked,\n trackSettingsSaved,\n trackMcpConfigUpdated,\n trackDownloadTrajectoryButtonClicked,\n trackConversationExported,\n trackAutomationCreatedButton,\n trackAutomationExecuted,\n trackAutomationDeleted,\n trackAutomationDisableButton,\n trackAutomationEdited,\n trackAutomationExported,\n trackAutomationImported,\n trackBackendAdded,\n trackOnboardingStarted,\n trackOnboardingStepViewed,\n trackOnboardingCompleted,\n trackOnboardingSkipped,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-tracking.cjs","names":[],"sources":["../../src/hooks/use-tracking.ts"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"#/types/settings\";\nimport type { BackendKind } from \"#/api/backend-registry/types\";\nimport type { WorkspaceMode } from \"#/api/conversation-metadata-store\";\nimport type { CloudConnectionSource } from \"#/services/cloud-funnel-analytics\";\nimport { getCachedAgentServerVersion } from \"#/api/agent-server-compatibility\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { useAutomationSdkVersion } from \"#/hooks/query/use-automation-sdk-version\";\nimport {\n type BackendConnectionMethod,\n getBackendTelemetryProperties,\n} from \"#/services/telemetry-context\";\nimport { setTelemetryBackendContext, trackEvent } from \"#/services/telemetry\";\n\n/**\n * Hook that provides tracking functions with automatic data collection\n * from available hooks (settings, etc.)\n *\n * All events require explicit user consent. The shared PostHog client enforces\n * the canonical consent configured by telemetry.ts; this hook must not gate on\n * backend settings because they can be stale while a backend changes.\n */\nexport const useTracking = () => {\n const { backend } = useActiveBackend();\n const automationSdkVersion = useAutomationSdkVersion();\n\n const getBackendTelemetryContext = React.useCallback(\n () => ({\n backendKind: backend.kind,\n agentServerVersion:\n backend.kind === \"local\"\n ? getCachedAgentServerVersion(backend.host)\n : null,\n automationSdkVersion: automationSdkVersion ?? null,\n }),\n [automationSdkVersion, backend.host, backend.kind],\n );\n\n React.useEffect(() => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n }, [getBackendTelemetryContext]);\n\n // Common properties included in all tracking events\n const commonProperties = {\n current_url: window.location.href,\n };\n\n /**\n * PostHog enforces the canonical consent state configured by telemetry.ts.\n * Backend settings are not a capture gate because they can be stale while a\n * backend is being added or switched.\n */\n const track = (event: string, properties: Record<string, unknown> = {}) => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n void trackEvent(event, { ...commonProperties, ...properties });\n };\n\n const trackLoginButtonClick = ({ provider }: { provider: Provider }) => {\n track(\"login_button_clicked\", { provider });\n };\n\n const trackConversationCreated = ({\n conversationId,\n taskId,\n hasRepository,\n gitProvider,\n hasWorkspace,\n workspaceMode,\n hasInitialQuery,\n agentType,\n hasParentConversation,\n entryPoint,\n }: {\n conversationId: string;\n taskId?: string;\n hasRepository: boolean;\n gitProvider?: Provider;\n hasWorkspace: boolean;\n workspaceMode?: WorkspaceMode;\n hasInitialQuery: boolean;\n agentType?: \"default\" | \"plan\";\n hasParentConversation: boolean;\n entryPoint?: string;\n }) => {\n track(\"conversation_start_requested\", {\n conversation_id: conversationId,\n task_id: taskId,\n is_start_task: conversationId.startsWith(\"task-\"),\n has_repository: hasRepository,\n git_provider: gitProvider,\n has_workspace: hasWorkspace,\n workspace_mode: workspaceMode,\n has_initial_query: hasInitialQuery,\n agent_type: agentType,\n has_parent_conversation: hasParentConversation,\n entry_point: entryPoint,\n });\n };\n\n const trackPushButtonClick = () => {\n track(\"push_button_clicked\");\n };\n\n const trackPullButtonClick = () => {\n track(\"pull_button_clicked\");\n };\n\n const trackCreatePrButtonClick = () => {\n track(\"create_pr_button_clicked\");\n };\n\n const trackUserSignupCompleted = () => {\n track(\"user_signup_completed\", {\n signup_timestamp: new Date().toISOString(),\n });\n };\n\n const trackPrebuiltAutomationEnabled = ({\n automationId,\n automationName,\n automationCategory,\n }: {\n automationId?: string;\n automationName: string;\n automationCategory?: string;\n }) => {\n track(\"prebuilt_automation_enabled\", {\n automation_id: automationId,\n automation_name: automationName,\n automation_category: automationCategory,\n });\n };\n\n /**\n * The setup funnel: opened → validated → created, or failed.\n *\n * A manifest declares no analytics of its own, so the stages are the same for\n * every entry and only the id it carries varies.\n */\n const trackAutomationSetupOpened = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_opened\", { automation_id: automationId });\n };\n\n const trackAutomationSetupValidated = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_validated\", { automation_id: automationId });\n };\n\n const trackAutomationSetupCreated = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_created\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackAutomationSetupFailed = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_failed\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackInitialQuerySubmitted = ({\n entryPoint,\n queryCharacterLength,\n replayJsonSize,\n }: {\n entryPoint: string;\n queryCharacterLength: number;\n replayJsonSize?: number;\n }) => {\n track(\"initial_query_submitted\", {\n entry_point: entryPoint,\n query_character_length: queryCharacterLength,\n replay_json_size: replayJsonSize,\n });\n };\n\n const trackUserMessageSent = ({\n sessionMessageCount,\n currentMessageLength,\n }: {\n sessionMessageCount: number;\n currentMessageLength: number;\n }) => {\n track(\"user_message_sent\", {\n session_message_count: sessionMessageCount,\n current_message_length: currentMessageLength,\n });\n };\n\n const trackDownloadVsCodeButtonClicked = () => {\n track(\"download_via_vscode_button_clicked\");\n };\n\n const trackSettingsSaved = ({\n llmModel,\n llmApiKeySet,\n searchApiKeySet,\n remoteRuntimeResourceFactor,\n }: {\n llmModel: unknown;\n llmApiKeySet: \"SET\" | \"UNSET\";\n searchApiKeySet: \"SET\" | \"UNSET\";\n remoteRuntimeResourceFactor?: unknown;\n }) => {\n track(\"settings_saved\", {\n LLM_MODEL: llmModel,\n LLM_API_KEY_SET: llmApiKeySet,\n SEARCH_API_KEY_SET: searchApiKeySet,\n REMOTE_RUNTIME_RESOURCE_FACTOR: remoteRuntimeResourceFactor,\n });\n };\n\n const trackMcpConfigUpdated = ({\n sseServersCount,\n stdioServersCount,\n }: {\n sseServersCount: number;\n stdioServersCount: number;\n }) => {\n track(\"mcp_config_updated\", {\n has_mcp_config: true,\n sse_servers_count: sseServersCount,\n stdio_servers_count: stdioServersCount,\n });\n };\n\n const trackDownloadTrajectoryButtonClicked = () => {\n track(\"download_trajectory_button_clicked\");\n };\n\n const trackConversationExported = (format: \"markdown\" | \"html\") => {\n track(\"conversation_exported\", { format });\n };\n\n const trackAutomationCreatedButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_created_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationExecuted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_executed\", { backend_kind: backendKind });\n };\n\n const trackAutomationDeleted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_deleted\", { backend_kind: backendKind });\n };\n\n const trackAutomationDisableButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_disable_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationEdited = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_edited\", { backend_kind: backendKind });\n };\n\n const trackAutomationExported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_exported\", { backend_kind: backendKind });\n };\n\n const trackAutomationActivityLogExported = ({\n backendKind,\n format,\n }: {\n backendKind: BackendKind;\n format: \"json\" | \"csv\";\n }) => {\n track(\"automation_activity_log_exported\", {\n backend_kind: backendKind,\n format,\n });\n };\n\n const trackAutomationImported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_imported\", { backend_kind: backendKind });\n };\n\n const trackBackendAdded = ({\n backendKind,\n connectionMethod,\n hasApiKey,\n source,\n agentServerVersion,\n backendVersion,\n }: {\n backendKind: BackendKind;\n connectionMethod: BackendConnectionMethod;\n hasApiKey: boolean;\n source?: CloudConnectionSource;\n agentServerVersion?: string | null;\n backendVersion?: string | null;\n }) => {\n track(\"backend_added\", {\n ...getBackendTelemetryProperties({\n backendKind,\n agentServerVersion,\n backendVersion,\n connectionMethod,\n }),\n has_api_key: hasApiKey,\n source,\n });\n };\n\n const trackOnboardingStarted = () => {\n track(\"onboarding_started\");\n };\n\n const trackOnboardingStepViewed = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_step_viewed\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n const trackOnboardingCompleted = ({ agent }: { agent: string }) => {\n track(\"onboarding_completed\", { agent });\n };\n\n const trackOnboardingSkipped = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_skipped\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n return {\n trackLoginButtonClick,\n trackConversationCreated,\n trackPushButtonClick,\n trackPullButtonClick,\n trackCreatePrButtonClick,\n trackUserSignupCompleted,\n trackPrebuiltAutomationEnabled,\n trackAutomationSetupOpened,\n trackAutomationSetupValidated,\n trackAutomationSetupCreated,\n trackAutomationSetupFailed,\n trackInitialQuerySubmitted,\n trackUserMessageSent,\n trackDownloadVsCodeButtonClicked,\n trackSettingsSaved,\n trackMcpConfigUpdated,\n trackDownloadTrajectoryButtonClicked,\n trackConversationExported,\n trackAutomationCreatedButton,\n trackAutomationExecuted,\n trackAutomationDeleted,\n trackAutomationDisableButton,\n trackAutomationEdited,\n trackAutomationExported,\n trackAutomationActivityLogExported,\n trackAutomationImported,\n trackBackendAdded,\n trackOnboardingStarted,\n trackOnboardingStepViewed,\n trackOnboardingCompleted,\n trackOnboardingSkipped,\n };\n};\n"],"mappings":"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"}
@@ -90,6 +90,10 @@ export declare const useTracking: () => {
90
90
  trackAutomationExported: ({ backendKind, }: {
91
91
  backendKind: BackendKind;
92
92
  }) => void;
93
+ trackAutomationActivityLogExported: ({ backendKind, format, }: {
94
+ backendKind: BackendKind;
95
+ format: "json" | "csv";
96
+ }) => void;
93
97
  trackAutomationImported: ({ backendKind, }: {
94
98
  backendKind: BackendKind;
95
99
  }) => void;
@@ -135,6 +135,12 @@ var s = () => {
135
135
  trackAutomationExported: ({ backendKind: e }) => {
136
136
  d("automation_exported", { backend_kind: e });
137
137
  },
138
+ trackAutomationActivityLogExported: ({ backendKind: e, format: t }) => {
139
+ d("automation_activity_log_exported", {
140
+ backend_kind: e,
141
+ format: t
142
+ });
143
+ },
138
144
  trackAutomationImported: ({ backendKind: e }) => {
139
145
  d("automation_imported", { backend_kind: e });
140
146
  },
@@ -1 +1 @@
1
- {"version":3,"file":"use-tracking.js","names":[],"sources":["../../src/hooks/use-tracking.ts"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"#/types/settings\";\nimport type { BackendKind } from \"#/api/backend-registry/types\";\nimport type { WorkspaceMode } from \"#/api/conversation-metadata-store\";\nimport type { CloudConnectionSource } from \"#/services/cloud-funnel-analytics\";\nimport { getCachedAgentServerVersion } from \"#/api/agent-server-compatibility\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { useAutomationSdkVersion } from \"#/hooks/query/use-automation-sdk-version\";\nimport {\n type BackendConnectionMethod,\n getBackendTelemetryProperties,\n} from \"#/services/telemetry-context\";\nimport { setTelemetryBackendContext, trackEvent } from \"#/services/telemetry\";\n\n/**\n * Hook that provides tracking functions with automatic data collection\n * from available hooks (settings, etc.)\n *\n * All events require explicit user consent. The shared PostHog client enforces\n * the canonical consent configured by telemetry.ts; this hook must not gate on\n * backend settings because they can be stale while a backend changes.\n */\nexport const useTracking = () => {\n const { backend } = useActiveBackend();\n const automationSdkVersion = useAutomationSdkVersion();\n\n const getBackendTelemetryContext = React.useCallback(\n () => ({\n backendKind: backend.kind,\n agentServerVersion:\n backend.kind === \"local\"\n ? getCachedAgentServerVersion(backend.host)\n : null,\n automationSdkVersion: automationSdkVersion ?? null,\n }),\n [automationSdkVersion, backend.host, backend.kind],\n );\n\n React.useEffect(() => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n }, [getBackendTelemetryContext]);\n\n // Common properties included in all tracking events\n const commonProperties = {\n current_url: window.location.href,\n };\n\n /**\n * PostHog enforces the canonical consent state configured by telemetry.ts.\n * Backend settings are not a capture gate because they can be stale while a\n * backend is being added or switched.\n */\n const track = (event: string, properties: Record<string, unknown> = {}) => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n void trackEvent(event, { ...commonProperties, ...properties });\n };\n\n const trackLoginButtonClick = ({ provider }: { provider: Provider }) => {\n track(\"login_button_clicked\", { provider });\n };\n\n const trackConversationCreated = ({\n conversationId,\n taskId,\n hasRepository,\n gitProvider,\n hasWorkspace,\n workspaceMode,\n hasInitialQuery,\n agentType,\n hasParentConversation,\n entryPoint,\n }: {\n conversationId: string;\n taskId?: string;\n hasRepository: boolean;\n gitProvider?: Provider;\n hasWorkspace: boolean;\n workspaceMode?: WorkspaceMode;\n hasInitialQuery: boolean;\n agentType?: \"default\" | \"plan\";\n hasParentConversation: boolean;\n entryPoint?: string;\n }) => {\n track(\"conversation_start_requested\", {\n conversation_id: conversationId,\n task_id: taskId,\n is_start_task: conversationId.startsWith(\"task-\"),\n has_repository: hasRepository,\n git_provider: gitProvider,\n has_workspace: hasWorkspace,\n workspace_mode: workspaceMode,\n has_initial_query: hasInitialQuery,\n agent_type: agentType,\n has_parent_conversation: hasParentConversation,\n entry_point: entryPoint,\n });\n };\n\n const trackPushButtonClick = () => {\n track(\"push_button_clicked\");\n };\n\n const trackPullButtonClick = () => {\n track(\"pull_button_clicked\");\n };\n\n const trackCreatePrButtonClick = () => {\n track(\"create_pr_button_clicked\");\n };\n\n const trackUserSignupCompleted = () => {\n track(\"user_signup_completed\", {\n signup_timestamp: new Date().toISOString(),\n });\n };\n\n const trackPrebuiltAutomationEnabled = ({\n automationId,\n automationName,\n automationCategory,\n }: {\n automationId?: string;\n automationName: string;\n automationCategory?: string;\n }) => {\n track(\"prebuilt_automation_enabled\", {\n automation_id: automationId,\n automation_name: automationName,\n automation_category: automationCategory,\n });\n };\n\n /**\n * The setup funnel: opened → validated → created, or failed.\n *\n * A manifest declares no analytics of its own, so the stages are the same for\n * every entry and only the id it carries varies.\n */\n const trackAutomationSetupOpened = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_opened\", { automation_id: automationId });\n };\n\n const trackAutomationSetupValidated = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_validated\", { automation_id: automationId });\n };\n\n const trackAutomationSetupCreated = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_created\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackAutomationSetupFailed = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_failed\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackInitialQuerySubmitted = ({\n entryPoint,\n queryCharacterLength,\n replayJsonSize,\n }: {\n entryPoint: string;\n queryCharacterLength: number;\n replayJsonSize?: number;\n }) => {\n track(\"initial_query_submitted\", {\n entry_point: entryPoint,\n query_character_length: queryCharacterLength,\n replay_json_size: replayJsonSize,\n });\n };\n\n const trackUserMessageSent = ({\n sessionMessageCount,\n currentMessageLength,\n }: {\n sessionMessageCount: number;\n currentMessageLength: number;\n }) => {\n track(\"user_message_sent\", {\n session_message_count: sessionMessageCount,\n current_message_length: currentMessageLength,\n });\n };\n\n const trackDownloadVsCodeButtonClicked = () => {\n track(\"download_via_vscode_button_clicked\");\n };\n\n const trackSettingsSaved = ({\n llmModel,\n llmApiKeySet,\n searchApiKeySet,\n remoteRuntimeResourceFactor,\n }: {\n llmModel: unknown;\n llmApiKeySet: \"SET\" | \"UNSET\";\n searchApiKeySet: \"SET\" | \"UNSET\";\n remoteRuntimeResourceFactor?: unknown;\n }) => {\n track(\"settings_saved\", {\n LLM_MODEL: llmModel,\n LLM_API_KEY_SET: llmApiKeySet,\n SEARCH_API_KEY_SET: searchApiKeySet,\n REMOTE_RUNTIME_RESOURCE_FACTOR: remoteRuntimeResourceFactor,\n });\n };\n\n const trackMcpConfigUpdated = ({\n sseServersCount,\n stdioServersCount,\n }: {\n sseServersCount: number;\n stdioServersCount: number;\n }) => {\n track(\"mcp_config_updated\", {\n has_mcp_config: true,\n sse_servers_count: sseServersCount,\n stdio_servers_count: stdioServersCount,\n });\n };\n\n const trackDownloadTrajectoryButtonClicked = () => {\n track(\"download_trajectory_button_clicked\");\n };\n\n const trackConversationExported = (format: \"markdown\" | \"html\") => {\n track(\"conversation_exported\", { format });\n };\n\n const trackAutomationCreatedButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_created_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationExecuted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_executed\", { backend_kind: backendKind });\n };\n\n const trackAutomationDeleted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_deleted\", { backend_kind: backendKind });\n };\n\n const trackAutomationDisableButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_disable_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationEdited = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_edited\", { backend_kind: backendKind });\n };\n\n const trackAutomationExported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_exported\", { backend_kind: backendKind });\n };\n\n const trackAutomationImported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_imported\", { backend_kind: backendKind });\n };\n\n const trackBackendAdded = ({\n backendKind,\n connectionMethod,\n hasApiKey,\n source,\n agentServerVersion,\n backendVersion,\n }: {\n backendKind: BackendKind;\n connectionMethod: BackendConnectionMethod;\n hasApiKey: boolean;\n source?: CloudConnectionSource;\n agentServerVersion?: string | null;\n backendVersion?: string | null;\n }) => {\n track(\"backend_added\", {\n ...getBackendTelemetryProperties({\n backendKind,\n agentServerVersion,\n backendVersion,\n connectionMethod,\n }),\n has_api_key: hasApiKey,\n source,\n });\n };\n\n const trackOnboardingStarted = () => {\n track(\"onboarding_started\");\n };\n\n const trackOnboardingStepViewed = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_step_viewed\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n const trackOnboardingCompleted = ({ agent }: { agent: string }) => {\n track(\"onboarding_completed\", { agent });\n };\n\n const trackOnboardingSkipped = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_skipped\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n return {\n trackLoginButtonClick,\n trackConversationCreated,\n trackPushButtonClick,\n trackPullButtonClick,\n trackCreatePrButtonClick,\n trackUserSignupCompleted,\n trackPrebuiltAutomationEnabled,\n trackAutomationSetupOpened,\n trackAutomationSetupValidated,\n trackAutomationSetupCreated,\n trackAutomationSetupFailed,\n trackInitialQuerySubmitted,\n trackUserMessageSent,\n trackDownloadVsCodeButtonClicked,\n trackSettingsSaved,\n trackMcpConfigUpdated,\n trackDownloadTrajectoryButtonClicked,\n trackConversationExported,\n trackAutomationCreatedButton,\n trackAutomationExecuted,\n trackAutomationDeleted,\n trackAutomationDisableButton,\n trackAutomationEdited,\n trackAutomationExported,\n trackAutomationImported,\n trackBackendAdded,\n trackOnboardingStarted,\n trackOnboardingStepViewed,\n trackOnboardingCompleted,\n trackOnboardingSkipped,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-tracking.js","names":[],"sources":["../../src/hooks/use-tracking.ts"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"#/types/settings\";\nimport type { BackendKind } from \"#/api/backend-registry/types\";\nimport type { WorkspaceMode } from \"#/api/conversation-metadata-store\";\nimport type { CloudConnectionSource } from \"#/services/cloud-funnel-analytics\";\nimport { getCachedAgentServerVersion } from \"#/api/agent-server-compatibility\";\nimport { useActiveBackend } from \"#/contexts/active-backend-context\";\nimport { useAutomationSdkVersion } from \"#/hooks/query/use-automation-sdk-version\";\nimport {\n type BackendConnectionMethod,\n getBackendTelemetryProperties,\n} from \"#/services/telemetry-context\";\nimport { setTelemetryBackendContext, trackEvent } from \"#/services/telemetry\";\n\n/**\n * Hook that provides tracking functions with automatic data collection\n * from available hooks (settings, etc.)\n *\n * All events require explicit user consent. The shared PostHog client enforces\n * the canonical consent configured by telemetry.ts; this hook must not gate on\n * backend settings because they can be stale while a backend changes.\n */\nexport const useTracking = () => {\n const { backend } = useActiveBackend();\n const automationSdkVersion = useAutomationSdkVersion();\n\n const getBackendTelemetryContext = React.useCallback(\n () => ({\n backendKind: backend.kind,\n agentServerVersion:\n backend.kind === \"local\"\n ? getCachedAgentServerVersion(backend.host)\n : null,\n automationSdkVersion: automationSdkVersion ?? null,\n }),\n [automationSdkVersion, backend.host, backend.kind],\n );\n\n React.useEffect(() => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n }, [getBackendTelemetryContext]);\n\n // Common properties included in all tracking events\n const commonProperties = {\n current_url: window.location.href,\n };\n\n /**\n * PostHog enforces the canonical consent state configured by telemetry.ts.\n * Backend settings are not a capture gate because they can be stale while a\n * backend is being added or switched.\n */\n const track = (event: string, properties: Record<string, unknown> = {}) => {\n setTelemetryBackendContext(getBackendTelemetryContext());\n void trackEvent(event, { ...commonProperties, ...properties });\n };\n\n const trackLoginButtonClick = ({ provider }: { provider: Provider }) => {\n track(\"login_button_clicked\", { provider });\n };\n\n const trackConversationCreated = ({\n conversationId,\n taskId,\n hasRepository,\n gitProvider,\n hasWorkspace,\n workspaceMode,\n hasInitialQuery,\n agentType,\n hasParentConversation,\n entryPoint,\n }: {\n conversationId: string;\n taskId?: string;\n hasRepository: boolean;\n gitProvider?: Provider;\n hasWorkspace: boolean;\n workspaceMode?: WorkspaceMode;\n hasInitialQuery: boolean;\n agentType?: \"default\" | \"plan\";\n hasParentConversation: boolean;\n entryPoint?: string;\n }) => {\n track(\"conversation_start_requested\", {\n conversation_id: conversationId,\n task_id: taskId,\n is_start_task: conversationId.startsWith(\"task-\"),\n has_repository: hasRepository,\n git_provider: gitProvider,\n has_workspace: hasWorkspace,\n workspace_mode: workspaceMode,\n has_initial_query: hasInitialQuery,\n agent_type: agentType,\n has_parent_conversation: hasParentConversation,\n entry_point: entryPoint,\n });\n };\n\n const trackPushButtonClick = () => {\n track(\"push_button_clicked\");\n };\n\n const trackPullButtonClick = () => {\n track(\"pull_button_clicked\");\n };\n\n const trackCreatePrButtonClick = () => {\n track(\"create_pr_button_clicked\");\n };\n\n const trackUserSignupCompleted = () => {\n track(\"user_signup_completed\", {\n signup_timestamp: new Date().toISOString(),\n });\n };\n\n const trackPrebuiltAutomationEnabled = ({\n automationId,\n automationName,\n automationCategory,\n }: {\n automationId?: string;\n automationName: string;\n automationCategory?: string;\n }) => {\n track(\"prebuilt_automation_enabled\", {\n automation_id: automationId,\n automation_name: automationName,\n automation_category: automationCategory,\n });\n };\n\n /**\n * The setup funnel: opened → validated → created, or failed.\n *\n * A manifest declares no analytics of its own, so the stages are the same for\n * every entry and only the id it carries varies.\n */\n const trackAutomationSetupOpened = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_opened\", { automation_id: automationId });\n };\n\n const trackAutomationSetupValidated = ({\n automationId,\n }: {\n automationId: string;\n }) => {\n track(\"automation_setup_validated\", { automation_id: automationId });\n };\n\n const trackAutomationSetupCreated = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_created\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackAutomationSetupFailed = ({\n automationId,\n setupMode,\n }: {\n automationId: string;\n setupMode: string;\n }) => {\n track(\"automation_setup_failed\", {\n automation_id: automationId,\n setup_mode: setupMode,\n });\n };\n\n const trackInitialQuerySubmitted = ({\n entryPoint,\n queryCharacterLength,\n replayJsonSize,\n }: {\n entryPoint: string;\n queryCharacterLength: number;\n replayJsonSize?: number;\n }) => {\n track(\"initial_query_submitted\", {\n entry_point: entryPoint,\n query_character_length: queryCharacterLength,\n replay_json_size: replayJsonSize,\n });\n };\n\n const trackUserMessageSent = ({\n sessionMessageCount,\n currentMessageLength,\n }: {\n sessionMessageCount: number;\n currentMessageLength: number;\n }) => {\n track(\"user_message_sent\", {\n session_message_count: sessionMessageCount,\n current_message_length: currentMessageLength,\n });\n };\n\n const trackDownloadVsCodeButtonClicked = () => {\n track(\"download_via_vscode_button_clicked\");\n };\n\n const trackSettingsSaved = ({\n llmModel,\n llmApiKeySet,\n searchApiKeySet,\n remoteRuntimeResourceFactor,\n }: {\n llmModel: unknown;\n llmApiKeySet: \"SET\" | \"UNSET\";\n searchApiKeySet: \"SET\" | \"UNSET\";\n remoteRuntimeResourceFactor?: unknown;\n }) => {\n track(\"settings_saved\", {\n LLM_MODEL: llmModel,\n LLM_API_KEY_SET: llmApiKeySet,\n SEARCH_API_KEY_SET: searchApiKeySet,\n REMOTE_RUNTIME_RESOURCE_FACTOR: remoteRuntimeResourceFactor,\n });\n };\n\n const trackMcpConfigUpdated = ({\n sseServersCount,\n stdioServersCount,\n }: {\n sseServersCount: number;\n stdioServersCount: number;\n }) => {\n track(\"mcp_config_updated\", {\n has_mcp_config: true,\n sse_servers_count: sseServersCount,\n stdio_servers_count: stdioServersCount,\n });\n };\n\n const trackDownloadTrajectoryButtonClicked = () => {\n track(\"download_trajectory_button_clicked\");\n };\n\n const trackConversationExported = (format: \"markdown\" | \"html\") => {\n track(\"conversation_exported\", { format });\n };\n\n const trackAutomationCreatedButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_created_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationExecuted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_executed\", { backend_kind: backendKind });\n };\n\n const trackAutomationDeleted = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_deleted\", { backend_kind: backendKind });\n };\n\n const trackAutomationDisableButton = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_disable_button\", { backend_kind: backendKind });\n };\n\n const trackAutomationEdited = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_edited\", { backend_kind: backendKind });\n };\n\n const trackAutomationExported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_exported\", { backend_kind: backendKind });\n };\n\n const trackAutomationActivityLogExported = ({\n backendKind,\n format,\n }: {\n backendKind: BackendKind;\n format: \"json\" | \"csv\";\n }) => {\n track(\"automation_activity_log_exported\", {\n backend_kind: backendKind,\n format,\n });\n };\n\n const trackAutomationImported = ({\n backendKind,\n }: {\n backendKind: BackendKind;\n }) => {\n track(\"automation_imported\", { backend_kind: backendKind });\n };\n\n const trackBackendAdded = ({\n backendKind,\n connectionMethod,\n hasApiKey,\n source,\n agentServerVersion,\n backendVersion,\n }: {\n backendKind: BackendKind;\n connectionMethod: BackendConnectionMethod;\n hasApiKey: boolean;\n source?: CloudConnectionSource;\n agentServerVersion?: string | null;\n backendVersion?: string | null;\n }) => {\n track(\"backend_added\", {\n ...getBackendTelemetryProperties({\n backendKind,\n agentServerVersion,\n backendVersion,\n connectionMethod,\n }),\n has_api_key: hasApiKey,\n source,\n });\n };\n\n const trackOnboardingStarted = () => {\n track(\"onboarding_started\");\n };\n\n const trackOnboardingStepViewed = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_step_viewed\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n const trackOnboardingCompleted = ({ agent }: { agent: string }) => {\n track(\"onboarding_completed\", { agent });\n };\n\n const trackOnboardingSkipped = ({\n step,\n stepIndex,\n totalSteps,\n agent,\n }: {\n step: string;\n stepIndex: number;\n totalSteps: number;\n agent: string;\n }) => {\n track(\"onboarding_skipped\", {\n step,\n step_index: stepIndex,\n total_steps: totalSteps,\n agent,\n });\n };\n\n return {\n trackLoginButtonClick,\n trackConversationCreated,\n trackPushButtonClick,\n trackPullButtonClick,\n trackCreatePrButtonClick,\n trackUserSignupCompleted,\n trackPrebuiltAutomationEnabled,\n trackAutomationSetupOpened,\n trackAutomationSetupValidated,\n trackAutomationSetupCreated,\n trackAutomationSetupFailed,\n trackInitialQuerySubmitted,\n trackUserMessageSent,\n trackDownloadVsCodeButtonClicked,\n trackSettingsSaved,\n trackMcpConfigUpdated,\n trackDownloadTrajectoryButtonClicked,\n trackConversationExported,\n trackAutomationCreatedButton,\n trackAutomationExecuted,\n trackAutomationDeleted,\n trackAutomationDisableButton,\n trackAutomationEdited,\n trackAutomationExported,\n trackAutomationActivityLogExported,\n trackAutomationImported,\n trackBackendAdded,\n trackOnboardingStarted,\n trackOnboardingStepViewed,\n trackOnboardingCompleted,\n trackOnboardingSkipped,\n };\n};\n"],"mappings":"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"}