@openhands/agent-canvas 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1390) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/Trans-De9RwQhA.js +1 -0
  4. package/build/assets/__vite-browser-external-4xJsU2-u.js +1 -0
  5. package/build/assets/{acp-providers-B_ZxlEbx.js → acp-providers-D_D8VUpP.js} +1 -1
  6. package/build/assets/active-backend-context-u2tdYRgH.js +1 -0
  7. package/build/assets/add-backend-modal-DIEyAkA4.js +1 -0
  8. package/build/assets/agent-profiles-settings-BovdV4N8.js +1 -0
  9. package/build/assets/{agent-server-client-options-CxnCYyIW.js → agent-server-client-options-DVLRd9sw.js} +1 -1
  10. package/build/assets/agent-server-conversation-service.api-BP73yONA.js +5 -0
  11. package/build/assets/agent-settings-FGL3Yvkp.js +1 -0
  12. package/build/assets/agent-settings-Ofbh6UTD.js +2 -0
  13. package/build/assets/alert-banner-BW0wRYw6.js +1 -0
  14. package/build/assets/api-key-entry-screen-CZIdRmUJ.js +1 -0
  15. package/build/assets/app-settings-BHJ9nKti.js +1 -0
  16. package/build/assets/automation-detail-DwYGzLkp.js +2 -0
  17. package/build/assets/automations-list-CuAfJmMW.js +1 -0
  18. package/build/assets/back-nav-button-BYmxFxGt.js +1 -0
  19. package/build/assets/backend-form-modal-BiaOB2C4.js +1 -0
  20. package/build/assets/backend-synced-settings-badge-Bs3FSXsS.js +1 -0
  21. package/build/assets/base-modal-CC5Pp8CF.js +1 -0
  22. package/build/assets/bot-D7eUAuSB.js +1 -0
  23. package/build/assets/brand-button-DKPMEKcW.js +1 -0
  24. package/build/assets/{browser-CCwPzPsD.js → browser-B39N74jU.js} +2 -2
  25. package/build/assets/browser-store-BI6uklCG.js +1 -0
  26. package/build/assets/browser-tab-aiDg7aEn.js +1 -0
  27. package/build/assets/chat-send-button-DxuZIoW8.js +1 -0
  28. package/build/assets/check-Bvi71siz.js +1 -0
  29. package/build/assets/checkmark-h7udgXMM.js +1 -0
  30. package/build/assets/{chevron-down-BxZEAIv4.js → chevron-down-CI8A6tet.js} +1 -1
  31. package/build/assets/circle-plus-check-toggle-T3eAIuPQ.js +1 -0
  32. package/build/assets/close-p3Op5lxI.js +1 -0
  33. package/build/assets/code-tag-DYlAhEQY.js +1 -0
  34. package/build/assets/{color-themes-CTNRQd1a.js → color-themes-DPBzNtVg.js} +4 -4
  35. package/build/assets/combobox-caret-CLGvOs32.js +1 -0
  36. package/build/assets/command-menu-DKrLCRla.js +1 -0
  37. package/build/assets/{command-store-C-57Heey.js → command-store-D8J5LMW1.js} +1 -1
  38. package/build/assets/condenser-settings-D_5vY4m3.js +1 -0
  39. package/build/assets/confirmation-modal-BK1F0A68.js +1 -0
  40. package/build/assets/context-menu-list-item-DBFzplWW.js +1 -0
  41. package/build/assets/conversation-DnVC6vRV.js +1 -0
  42. package/build/assets/conversation-local-storage-F6zVMM--.js +1 -0
  43. package/build/assets/conversation-panel-ZEz-z3az.js +1 -0
  44. package/build/assets/conversation-service.api-CqZcHr1c.js +1 -0
  45. package/build/assets/conversation-state-store-B2Bp32XI.js +1 -0
  46. package/build/assets/conversation-store-LptbOvKa.js +1 -0
  47. package/build/assets/conversation-tab-empty-state-m8IUkfMj.js +1 -0
  48. package/build/assets/conversation-xkBS3AHC.js +19 -0
  49. package/build/assets/copy-3JCw_XFB.js +1 -0
  50. package/build/assets/copy-BLmGeJcd.js +1 -0
  51. package/build/assets/copy-to-clipboard-button-Aj9wFmt2.js +1 -0
  52. package/build/assets/createLucideIcon-CVAsW2Yo.js +1 -0
  53. package/build/assets/declaration-B9kpCaYl.js +1 -0
  54. package/build/assets/device-verify-B5YCrvSu.js +1 -0
  55. package/build/assets/dist-CodhvuAP.js +1 -0
  56. package/build/assets/dropdown-classes-CgQ45JmQ.js +1 -0
  57. package/build/assets/edit-automation-modal-B6U96gVV.js +1 -0
  58. package/build/assets/ellipsis-button-1BV9Sga8.js +1 -0
  59. package/build/assets/entry.client-Dy--3GeA.js +2 -0
  60. package/build/assets/enum-filter-dropdown-DCITiYVi.js +1 -0
  61. package/build/assets/environment-switch-overlay-DUnKILNH.js +1 -0
  62. package/build/assets/extensions-hub-CksKNpP9.js +1 -0
  63. package/build/assets/{extensions-navigation-DfLHdTUC.js → extensions-navigation-Di9rJ-b5.js} +1 -1
  64. package/build/assets/{external-link-D8njjDTk.js → external-link-D2zJjE9G.js} +1 -1
  65. package/build/assets/files-tab-61Vaihc6.js +1 -0
  66. package/build/assets/files-tab-store-DJsPxYdg.js +1 -0
  67. package/build/assets/folder-mMWFvaw0.js +1 -0
  68. package/build/assets/form-control-classes-9rkU4usZ.js +1 -0
  69. package/build/assets/get-language-from-path-CPNnuVhI.js +1 -0
  70. package/build/assets/git-provider-icon-aQRcUVI-.js +1 -0
  71. package/build/assets/home-5gOtUe-n.js +1 -0
  72. package/build/assets/iconBase-DaTRRUjy.js +1 -0
  73. package/build/assets/index-redirect-CUUJiNki.js +1 -0
  74. package/build/assets/install-server-modal-BRab9inF.js +1 -0
  75. package/build/assets/launch-1TJRKkkX.js +1 -0
  76. package/build/assets/lesson-plan-BtrZUCuj.js +4 -0
  77. package/build/assets/link-external-DfKQroKX.js +1 -0
  78. package/build/assets/{list-todo-B_Ts2JmZ.js → list-todo-BfH6yYUK.js} +1 -1
  79. package/build/assets/llm-not-configured-banner-BrU5uHto.js +27 -0
  80. package/build/assets/llm-settings-BpdU51Jo.js +1 -0
  81. package/build/assets/llm-settings-DsInf6yD.js +1 -0
  82. package/build/assets/{llm-subscription-service-BX_AtNlO.js → llm-subscription-service-CKyaV24y.js} +1 -1
  83. package/build/assets/loader-circle-BEykUKYG.js +1 -0
  84. package/build/assets/loading-spinner-DHAIPZkP.js +1 -0
  85. package/build/assets/manage-backends-modal-BREySP-J.js +1 -0
  86. package/build/assets/manifest-a5bb7568.js +1 -0
  87. package/build/assets/{markdown-renderer-DWy7Np7u.js → markdown-renderer-D8mayGjI.js} +1 -1
  88. package/build/assets/mcp-XXf8k6mb.js +9 -0
  89. package/build/assets/messages-D2oZb47Z.js +40 -0
  90. package/build/assets/middleware-DYHYNAnP.js +6 -0
  91. package/build/assets/modal-backdrop-zVwfOJZr.js +1 -0
  92. package/build/assets/modal-body-Dcu5McCa.js +1 -0
  93. package/build/assets/{modal-classes-C4kS6ib_.js → modal-classes-DPqxSyuP.js} +1 -1
  94. package/build/assets/modal-close-button-CTCX4nCH.js +1 -0
  95. package/build/assets/model-selector-VDHBytb6.js +1 -0
  96. package/build/assets/{mouse-pointer-click-CXAx4FyM.js → mouse-pointer-click-PdEQPL6v.js} +1 -1
  97. package/build/assets/navigation-context-DPs2G0X8.js +1 -0
  98. package/build/assets/navigation-link-D8hfwvxI.js +1 -0
  99. package/build/assets/onboarding-D32kiGME.js +1 -0
  100. package/build/assets/onboarding-modal-C084vkv7.js +1 -0
  101. package/build/assets/openhands-logo-bcNw5bkY.js +1 -0
  102. package/build/assets/option-service.api-Cl5VLGyw.js +1 -0
  103. package/build/assets/organization-service.api-CnynNoT-.js +1 -0
  104. package/build/assets/path-utils-BeOmjIcE.js +1 -0
  105. package/build/assets/{pencil-CsL0ns9y.js → pencil-Dj2XjKmI.js} +1 -1
  106. package/build/assets/plan-components-j9X4AxYM.js +1 -0
  107. package/build/assets/planner-tab-AZMjJx31.js +1 -0
  108. package/build/assets/plugins-management-service-BAp70KN7.js +1 -0
  109. package/build/assets/profiles-service.api-CeYEmSM3.js +1 -0
  110. package/build/assets/providers-vX9jk9Vy.js +1 -0
  111. package/build/assets/{proxy-TeteRRW5.js → proxy-CHmFkV16.js} +1 -1
  112. package/build/assets/react-DPDgL6du.js +1 -0
  113. package/build/assets/recommended-automations-launcher-Bk8tQ-Cn.js +58 -0
  114. package/build/assets/{refresh-cw-GkGYXsU-.js → refresh-cw-DM82EIyx.js} +1 -1
  115. package/build/assets/root-CxWZUXTQ.css +1 -0
  116. package/build/assets/root-layout-CoWw4kpz.js +2 -0
  117. package/build/assets/root-tuEPDx-i.js +2 -0
  118. package/build/assets/runtime-waiting-state-DkzLgvMn.js +1 -0
  119. package/build/assets/schema-field-nvq_Juo2.js +1 -0
  120. package/build/assets/sdk-section-page-CgT70FaZ.js +1 -0
  121. package/build/assets/sdk-settings-schema-BjBkMHzZ.js +1 -0
  122. package/build/assets/search-4DHskuhE.js +1 -0
  123. package/build/assets/search-BsjCEFNf.js +1 -0
  124. package/build/assets/secrets-service-CZYjNxFw.js +1 -0
  125. package/build/assets/secrets-settings-BCxk9p9s.js +1 -0
  126. package/build/assets/segmented-toggle-Cen5AMUc.js +1 -0
  127. package/build/assets/settings-CedTdtb5.js +1 -0
  128. package/build/assets/settings-dropdown-input-xzoZwgUe.js +1 -0
  129. package/build/assets/settings-gear-MXCyZW0x.js +1 -0
  130. package/build/assets/settings-index-Cct3PJSP.js +1 -0
  131. package/build/assets/settings-input-DYs7t3oK.js +1 -0
  132. package/build/assets/settings-list-classes-DvQr5jVS.js +1 -0
  133. package/build/assets/{settings-CN_HaPjH.js → settings-mQUckT0g.js} +1 -1
  134. package/build/assets/settings-modal-DwLybV_O.js +1 -0
  135. package/build/assets/settings-section-header-context-COMOIaxV.js +1 -0
  136. package/build/assets/settings-service.api-DldkFI1x.js +1 -0
  137. package/build/assets/settings-switch-C2N2xqEb.js +1 -0
  138. package/build/assets/{settings-utils-9-_6iVIn.js → settings-utils-BMdG65By.js} +1 -1
  139. package/build/assets/shared-conversation-DnDwfLgg.js +1 -0
  140. package/build/assets/sidebar-layout-BtpUSN3j.js +1 -0
  141. package/build/assets/sidebar-mobile-menu-toggle-B8k3qu84.js +1 -0
  142. package/build/assets/sidebar-nav-link-CIB3NBRW.js +1 -0
  143. package/build/assets/sidebar-store-CZuE8AH5.js +1 -0
  144. package/build/assets/skill-card-pill-row-D2bUe2kB.js +1 -0
  145. package/build/assets/skills-9cDZONKh.js +1 -0
  146. package/build/assets/skills-plugins-B68ay6Pu.js +1 -0
  147. package/build/assets/skills-settings-A6sUy0T7.js +2 -0
  148. package/build/assets/{square-chevron-right-Cfi-SUY0.js → square-chevron-right-Czw3FFWc.js} +1 -1
  149. package/build/assets/styled-tooltip-DsKsFjuq.js +1 -0
  150. package/build/assets/suspense-X5dBsJzn.js +1 -0
  151. package/build/assets/switch-skeleton-DqQwalyu.js +1 -0
  152. package/build/assets/task-list-tab-BAThr9Ex.js +1 -0
  153. package/build/assets/{terminal-HakoMrQX.js → terminal-BmT0_gIH.js} +2 -2
  154. package/build/assets/terminal-BuLtIrb9.js +1 -0
  155. package/build/assets/toggle-switch-DBlOOzBr.js +1 -0
  156. package/build/assets/{trash-2-Bq4hqiRH.js → trash-2-Be_7y3Mn.js} +1 -1
  157. package/build/assets/typography-YGPBGzOG.js +1 -0
  158. package/build/assets/u-check-circle-BqoIxNz_.js +1 -0
  159. package/build/assets/u-check-circle-half-LiwZkuFe.js +1 -0
  160. package/build/assets/u-edit-DJ90xc8Z.js +1 -0
  161. package/build/assets/use-acp-credential-form-Bs6s0DTU.js +1 -0
  162. package/build/assets/use-activate-agent-profile-CKtTToSx.js +1 -0
  163. package/build/assets/use-active-agent-profile-CWLPpOtK.js +1 -0
  164. package/build/assets/use-active-conversation-DI5S5M1w.js +1 -0
  165. package/build/assets/use-agent-profiles-DPcaYLpm.js +1 -0
  166. package/build/assets/use-agent-state-Buh3bQDh.js +1 -0
  167. package/build/assets/use-backends-health-CxkvJy2N.js +1 -0
  168. package/build/assets/use-breakpoint-B-O0lQ84.js +1 -0
  169. package/build/assets/use-can-manage-org-profiles-DeX2Mfje.js +1 -0
  170. package/build/assets/use-click-outside-element-Bf4Omzot.js +1 -0
  171. package/build/assets/use-cloud-current-user-id-D_PQGfmT.js +1 -0
  172. package/build/assets/use-config-ur0RbjCP.js +1 -0
  173. package/build/assets/use-create-conversation-D9OWYcte.js +1 -0
  174. package/build/assets/use-create-secret-CVFSlhlR.js +1 -0
  175. package/build/assets/use-event-store-YSOxy9FC.js +4 -0
  176. package/build/assets/use-handle-plan-click-Dug8egQl.js +1 -0
  177. package/build/assets/use-is-authed-_dhQ2Xuj.js +1 -0
  178. package/build/assets/use-launch-skill-in-chat-BnoDgvAy.js +1 -0
  179. package/build/assets/use-llm-profiles-DjackuP1.js +1 -0
  180. package/build/assets/use-onboarding-completion-C_Swglzp.js +1 -0
  181. package/build/assets/use-plugins-marketplace-BGb-KgfD.js +1 -0
  182. package/build/assets/use-runtime-is-ready-Diiq65Q-.js +1 -0
  183. package/build/assets/use-save-agent-profile-aKKLqDJM.js +1 -0
  184. package/build/assets/{use-save-settings-DErJDIDL.js → use-save-settings-CChDyjOB.js} +1 -1
  185. package/build/assets/use-settings-dX4fKUPF.js +1 -0
  186. package/build/assets/use-settings-nav-items-D6pHnvxg.js +16 -0
  187. package/build/assets/use-skills-Dqo-pDDx.js +1 -0
  188. package/build/assets/use-task-list-CmWGElgb.js +1 -0
  189. package/build/assets/use-tracking-GtXCHmTv.js +1 -0
  190. package/build/assets/use-user-conversation-6uOXFP95.js +1 -0
  191. package/build/assets/useMutation-DCE9RcgK.js +1 -0
  192. package/build/assets/useMutationState-BUab8Kxr.js +1 -0
  193. package/build/assets/useQueries-CRzaAqzH.js +1 -0
  194. package/build/assets/useQuery-CpjHYtZc.js +1 -0
  195. package/build/assets/useTranslation-Cgy4JA_g.js +1 -0
  196. package/build/assets/utils-CE0lDWtb.js +1 -0
  197. package/build/assets/vendor-styling-CI0PQ3ab.js +22 -0
  198. package/build/assets/{vendor~browser-BQU4C3CQ.js → vendor~browser-Cvg7jXCP.js} +1 -1
  199. package/build/assets/{vendor~browser-tab-Cim6xN2k.js → vendor~browser-tab-Di0kh5Zw.js} +1 -1
  200. package/build/assets/vendor~conversation-panel~conversation~alert-banner-DHDkknt5.js +1 -0
  201. package/build/assets/vendor~entry.client-9tWQ_Ugw.js +1 -0
  202. package/build/assets/{vendor~entry.client-lAMyAlBD.js → vendor~entry.client-D6BtSOtn.js} +1 -1
  203. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js +177 -0
  204. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js +1 -0
  205. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js +10 -0
  206. package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~t35o0b0f-Bss49YXv.js → vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js} +1 -1
  207. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js +1 -0
  208. package/build/assets/{vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~fpbtwbmk-DDSPtjxR.js → vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js} +1 -1
  209. package/build/assets/{vendor~files-tab-BvQLon-P.js → vendor~files-tab-B02k3xvx.js} +1 -1
  210. package/build/assets/{vendor~home~conversation-panel~conversation-DBPRU26Z.js → vendor~home~conversation-panel~conversation-CYMF9JYB.js} +1 -1
  211. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DnEBAp2W.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-9UMeuPV6.js} +1 -1
  212. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CzI-A-Gz.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BD0GaRGa.js} +1 -1
  213. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-ByET2Quf.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CqXiHwjU.js} +1 -1
  214. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DCYBrned.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-D7EUmQ8Y.js} +1 -1
  215. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DnctfFZL.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DTzw2x50.js} +1 -1
  216. package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-pSG7lnvH.js → vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-d8aETPbZ.js} +1 -1
  217. package/build/assets/{vendor~launch-DqoOsAhA.js → vendor~launch-CHXA9cJu.js} +1 -1
  218. package/build/assets/vendor~root-layout~conversation-panel~conversation-CpiTHpHl.js +1 -0
  219. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-BJl81v7J.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-_TdZcNMD.js} +1 -1
  220. package/build/assets/vendor~root-layout~home~conversation-panel~conversation-Cn2jwSga.js +1 -0
  221. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~enjl5xdm-mMKDm94D.js +48 -0
  222. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-DRld6s9c.js → vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-rV6d1Iv_.js} +502 -43
  223. package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-9d2kA26V.js → vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js} +1 -1
  224. package/build/assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-CXyYYvYh.js +1 -0
  225. package/build/assets/verification-settings-D_zsNB_c.js +1 -0
  226. package/build/assets/x-Cb0WAtak.js +1 -0
  227. package/build/assets/x-mark-Batp6gXa.js +1 -0
  228. package/build/index.html +4 -4
  229. package/build/locales/ar/openhands.json +138 -1
  230. package/build/locales/ca/openhands.json +138 -1
  231. package/build/locales/de/openhands.json +138 -1
  232. package/build/locales/en/openhands.json +138 -1
  233. package/build/locales/es/openhands.json +138 -1
  234. package/build/locales/fr/openhands.json +138 -1
  235. package/build/locales/it/openhands.json +138 -1
  236. package/build/locales/ja/openhands.json +138 -1
  237. package/build/locales/ko-KR/openhands.json +138 -1
  238. package/build/locales/no/openhands.json +138 -1
  239. package/build/locales/pt/openhands.json +138 -1
  240. package/build/locales/tr/openhands.json +138 -1
  241. package/build/locales/uk/openhands.json +138 -1
  242. package/build/locales/zh-CN/openhands.json +138 -1
  243. package/build/locales/zh-TW/openhands.json +138 -1
  244. package/config/defaults.json +7 -9
  245. package/dist/_virtual/__vite-browser-external.cjs +2 -0
  246. package/dist/_virtual/__vite-browser-external.cjs.map +1 -0
  247. package/dist/_virtual/__vite-browser-external.js +9 -0
  248. package/dist/_virtual/__vite-browser-external.js.map +1 -0
  249. package/dist/api/agent-profiles-service/agent-profiles-service.api.cjs +2 -0
  250. package/dist/api/agent-profiles-service/agent-profiles-service.api.cjs.map +1 -0
  251. package/dist/api/agent-profiles-service/agent-profiles-service.api.d.ts +22 -0
  252. package/dist/api/agent-profiles-service/agent-profiles-service.api.js +35 -0
  253. package/dist/api/agent-profiles-service/agent-profiles-service.api.js.map +1 -0
  254. package/dist/api/agent-server-adapter.cjs +2 -2
  255. package/dist/api/agent-server-adapter.cjs.map +1 -1
  256. package/dist/api/agent-server-adapter.d.ts +11 -1
  257. package/dist/api/agent-server-adapter.js +60 -60
  258. package/dist/api/agent-server-adapter.js.map +1 -1
  259. package/dist/api/agent-server-compatibility.cjs +1 -1
  260. package/dist/api/agent-server-compatibility.cjs.map +1 -1
  261. package/dist/api/agent-server-compatibility.js +1 -0
  262. package/dist/api/agent-server-compatibility.js.map +1 -1
  263. package/dist/api/agent-server-home.cjs +1 -1
  264. package/dist/api/agent-server-home.cjs.map +1 -1
  265. package/dist/api/agent-server-home.js +1 -0
  266. package/dist/api/agent-server-home.js.map +1 -1
  267. package/dist/api/cloud/agent-profiles-service.api.cjs +2 -0
  268. package/dist/api/cloud/agent-profiles-service.api.cjs.map +1 -0
  269. package/dist/api/cloud/agent-profiles-service.api.d.ts +7 -0
  270. package/dist/api/cloud/agent-profiles-service.api.js +58 -0
  271. package/dist/api/cloud/agent-profiles-service.api.js.map +1 -0
  272. package/dist/api/cloud/organization-service.api.cjs +1 -1
  273. package/dist/api/cloud/organization-service.api.cjs.map +1 -1
  274. package/dist/api/cloud/organization-service.api.d.ts +8 -0
  275. package/dist/api/cloud/organization-service.api.js +3 -1
  276. package/dist/api/cloud/organization-service.api.js.map +1 -1
  277. package/dist/api/cloud/profiles-service.api.cjs +2 -0
  278. package/dist/api/cloud/profiles-service.api.cjs.map +1 -0
  279. package/dist/api/cloud/profiles-service.api.d.ts +7 -0
  280. package/dist/api/cloud/profiles-service.api.js +75 -0
  281. package/dist/api/cloud/profiles-service.api.js.map +1 -0
  282. package/dist/api/cloud/settings-service.api.cjs +1 -1
  283. package/dist/api/cloud/settings-service.api.cjs.map +1 -1
  284. package/dist/api/cloud/settings-service.api.js +1 -1
  285. package/dist/api/cloud/settings-service.api.js.map +1 -1
  286. package/dist/api/config-service/config-service.api.cjs +1 -1
  287. package/dist/api/config-service/config-service.api.cjs.map +1 -1
  288. package/dist/api/config-service/config-service.api.js +1 -0
  289. package/dist/api/config-service/config-service.api.js.map +1 -1
  290. package/dist/api/conversation-metadata-store.cjs.map +1 -1
  291. package/dist/api/conversation-metadata-store.d.ts +11 -0
  292. package/dist/api/conversation-metadata-store.js.map +1 -1
  293. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
  294. package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
  295. package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +20 -1
  296. package/dist/api/conversation-service/agent-server-conversation-service.api.js +134 -105
  297. package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
  298. package/dist/api/conversation-service/agent-server-conversation-service.types.d.ts +2 -0
  299. package/dist/api/conversation-service/conversation-service.api.cjs +1 -1
  300. package/dist/api/conversation-service/conversation-service.api.cjs.map +1 -1
  301. package/dist/api/conversation-service/conversation-service.api.d.ts +1 -0
  302. package/dist/api/conversation-service/conversation-service.api.js +4 -0
  303. package/dist/api/conversation-service/conversation-service.api.js.map +1 -1
  304. package/dist/api/device-flow-client.cjs +1 -1
  305. package/dist/api/device-flow-client.cjs.map +1 -1
  306. package/dist/api/device-flow-client.js +33 -25
  307. package/dist/api/device-flow-client.js.map +1 -1
  308. package/dist/api/event-service/event-service.api.cjs +1 -1
  309. package/dist/api/event-service/event-service.api.cjs.map +1 -1
  310. package/dist/api/event-service/event-service.api.js +1 -0
  311. package/dist/api/event-service/event-service.api.js.map +1 -1
  312. package/dist/api/mcp-service/mcp-redacted-credentials.cjs +1 -1
  313. package/dist/api/mcp-service/mcp-redacted-credentials.cjs.map +1 -1
  314. package/dist/api/mcp-service/mcp-redacted-credentials.d.ts +3 -3
  315. package/dist/api/mcp-service/mcp-redacted-credentials.js +29 -30
  316. package/dist/api/mcp-service/mcp-redacted-credentials.js.map +1 -1
  317. package/dist/api/mcp-service/mcp-service.api.cjs +1 -1
  318. package/dist/api/mcp-service/mcp-service.api.cjs.map +1 -1
  319. package/dist/api/mcp-service/mcp-service.api.d.ts +8 -1
  320. package/dist/api/mcp-service/mcp-service.api.js +129 -23
  321. package/dist/api/mcp-service/mcp-service.api.js.map +1 -1
  322. package/dist/api/option-service/option-service.api.cjs +1 -1
  323. package/dist/api/option-service/option-service.api.cjs.map +1 -1
  324. package/dist/api/option-service/option-service.api.js +1 -0
  325. package/dist/api/option-service/option-service.api.js.map +1 -1
  326. package/dist/api/plugins-management-service.cjs +2 -0
  327. package/dist/api/plugins-management-service.cjs.map +1 -0
  328. package/dist/api/plugins-management-service.d.ts +50 -0
  329. package/dist/api/plugins-management-service.js +41 -0
  330. package/dist/api/plugins-management-service.js.map +1 -0
  331. package/dist/api/plugins-service.d.ts +49 -0
  332. package/dist/api/profiles-service/profiles-service.api.cjs +1 -1
  333. package/dist/api/profiles-service/profiles-service.api.cjs.map +1 -1
  334. package/dist/api/profiles-service/profiles-service.api.js +21 -14
  335. package/dist/api/profiles-service/profiles-service.api.js.map +1 -1
  336. package/dist/api/runtime-service/agent-server-runtime-service.cjs +1 -1
  337. package/dist/api/runtime-service/agent-server-runtime-service.cjs.map +1 -1
  338. package/dist/api/runtime-service/agent-server-runtime-service.js +1 -0
  339. package/dist/api/runtime-service/agent-server-runtime-service.js.map +1 -1
  340. package/dist/api/secrets-service.cjs +1 -1
  341. package/dist/api/secrets-service.cjs.map +1 -1
  342. package/dist/api/secrets-service.js +1 -0
  343. package/dist/api/secrets-service.js.map +1 -1
  344. package/dist/api/settings-service/settings-service.api.cjs +1 -1
  345. package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
  346. package/dist/api/settings-service/settings-service.api.js +92 -50
  347. package/dist/api/settings-service/settings-service.api.js.map +1 -1
  348. package/dist/api/skills-service.cjs +1 -1
  349. package/dist/api/skills-service.cjs.map +1 -1
  350. package/dist/api/skills-service.js +1 -0
  351. package/dist/api/skills-service.js.map +1 -1
  352. package/dist/api/workspaces-service/workspaces-service.api.cjs +1 -1
  353. package/dist/api/workspaces-service/workspaces-service.api.cjs.map +1 -1
  354. package/dist/api/workspaces-service/workspaces-service.api.js +1 -0
  355. package/dist/api/workspaces-service/workspaces-service.api.js.map +1 -1
  356. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs +1 -1
  357. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs.map +1 -1
  358. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js +57 -38
  359. package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js.map +1 -1
  360. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs +2 -1
  361. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.cjs.map +1 -1
  362. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js +13 -9
  363. package/dist/components/conversation-events/chat/event-content-helpers/should-render-event.js.map +1 -1
  364. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs +1 -1
  365. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.cjs.map +1 -1
  366. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js +65 -26
  367. package/dist/components/conversation-events/chat/event-message-components/user-assistant-event-message.js.map +1 -1
  368. package/dist/components/conversation-events/chat/event-message.cjs +2 -2
  369. package/dist/components/conversation-events/chat/event-message.cjs.map +1 -1
  370. package/dist/components/conversation-events/chat/event-message.js +78 -76
  371. package/dist/components/conversation-events/chat/event-message.js.map +1 -1
  372. package/dist/components/features/analytics/telemetry-consent-banner.cjs +1 -1
  373. package/dist/components/features/analytics/telemetry-consent-banner.cjs.map +1 -1
  374. package/dist/components/features/analytics/telemetry-consent-banner.js +1 -0
  375. package/dist/components/features/analytics/telemetry-consent-banner.js.map +1 -1
  376. package/dist/components/features/automations/detail/activity-log-item.d.ts +3 -2
  377. package/dist/components/features/automations/detail/activity-log-section.d.ts +3 -2
  378. package/dist/components/features/automations/detail/debug-automation-button.d.ts +17 -0
  379. package/dist/components/features/automations/detail/run-logs-modal.d.ts +6 -1
  380. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  381. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  382. package/dist/components/features/backends/backend-form-modal.d.ts +6 -2
  383. package/dist/components/features/backends/backend-form-modal.js +198 -161
  384. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  385. package/dist/components/features/backends/backend-row.cjs +1 -1
  386. package/dist/components/features/backends/backend-row.cjs.map +1 -1
  387. package/dist/components/features/backends/backend-row.d.ts +2 -1
  388. package/dist/components/features/backends/backend-row.js +60 -54
  389. package/dist/components/features/backends/backend-row.js.map +1 -1
  390. package/dist/components/features/backends/backend-selector.cjs +1 -1
  391. package/dist/components/features/backends/backend-selector.cjs.map +1 -1
  392. package/dist/components/features/backends/backend-selector.js +4 -4
  393. package/dist/components/features/backends/backend-version.cjs +1 -1
  394. package/dist/components/features/backends/backend-version.cjs.map +1 -1
  395. package/dist/components/features/backends/backend-version.js +1 -0
  396. package/dist/components/features/backends/backend-version.js.map +1 -1
  397. package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
  398. package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
  399. package/dist/components/features/backends/manage-backends-modal.js +72 -61
  400. package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
  401. package/dist/components/features/chat/change-agent-button.cjs +1 -1
  402. package/dist/components/features/chat/change-agent-button.js +9 -9
  403. package/dist/components/features/chat/chat-add-file-button.cjs +1 -1
  404. package/dist/components/features/chat/chat-add-file-button.cjs.map +1 -1
  405. package/dist/components/features/chat/chat-add-file-button.js +38 -34
  406. package/dist/components/features/chat/chat-add-file-button.js.map +1 -1
  407. package/dist/components/features/chat/chat-interface.cjs +2 -2
  408. package/dist/components/features/chat/chat-interface.cjs.map +1 -1
  409. package/dist/components/features/chat/chat-interface.js +136 -129
  410. package/dist/components/features/chat/chat-interface.js.map +1 -1
  411. package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
  412. package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
  413. package/dist/components/features/chat/components/chat-input-actions.js +100 -87
  414. package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
  415. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +2 -0
  416. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -0
  417. package/dist/components/features/chat/components/chat-input-llm-profile-picker.d.ts +15 -0
  418. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +118 -0
  419. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -0
  420. package/dist/components/features/chat/components/chat-input-model.cjs +1 -1
  421. package/dist/components/features/chat/components/chat-input-model.js +17 -17
  422. package/dist/components/features/chat/components/chat-input-profile-picker.cjs +2 -0
  423. package/dist/components/features/chat/components/chat-input-profile-picker.cjs.map +1 -0
  424. package/dist/components/features/chat/components/chat-input-profile-picker.d.ts +9 -0
  425. package/dist/components/features/chat/components/chat-input-profile-picker.js +112 -0
  426. package/dist/components/features/chat/components/chat-input-profile-picker.js.map +1 -0
  427. package/dist/components/features/chat/components/resolve-picker-kind.cjs +2 -0
  428. package/dist/components/features/chat/components/resolve-picker-kind.cjs.map +1 -0
  429. package/dist/components/features/chat/components/resolve-picker-kind.d.ts +29 -0
  430. package/dist/components/features/chat/components/resolve-picker-kind.js +8 -0
  431. package/dist/components/features/chat/components/resolve-picker-kind.js.map +1 -0
  432. package/dist/components/features/chat/goal-status-banner.cjs +2 -0
  433. package/dist/components/features/chat/goal-status-banner.cjs.map +1 -0
  434. package/dist/components/features/chat/goal-status-banner.d.ts +11 -0
  435. package/dist/components/features/chat/goal-status-banner.js +12 -0
  436. package/dist/components/features/chat/goal-status-banner.js.map +1 -0
  437. package/dist/components/features/chat/goal-status-content.cjs +2 -0
  438. package/dist/components/features/chat/goal-status-content.cjs.map +1 -0
  439. package/dist/components/features/chat/goal-status-content.d.ts +21 -0
  440. package/dist/components/features/chat/goal-status-content.js +98 -0
  441. package/dist/components/features/chat/goal-status-content.js.map +1 -0
  442. package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
  443. package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
  444. package/dist/components/features/chat/interactive-chat-box.js +20 -19
  445. package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
  446. package/dist/components/features/chat/tool-visualizers/primitives/code-block.cjs +1 -1
  447. package/dist/components/features/chat/tool-visualizers/primitives/code-block.cjs.map +1 -1
  448. package/dist/components/features/chat/tool-visualizers/primitives/code-block.d.ts +10 -3
  449. package/dist/components/features/chat/tool-visualizers/primitives/code-block.js +29 -16
  450. package/dist/components/features/chat/tool-visualizers/primitives/code-block.js.map +1 -1
  451. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.cjs +1 -1
  452. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.cjs.map +1 -1
  453. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.d.ts +2 -2
  454. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.js +16 -16
  455. package/dist/components/features/chat/tool-visualizers/primitives/output-pane.js.map +1 -1
  456. package/dist/components/features/chat/user-message-body.cjs +1 -1
  457. package/dist/components/features/chat/user-message-body.cjs.map +1 -1
  458. package/dist/components/features/chat/user-message-body.js +20 -20
  459. package/dist/components/features/chat/user-message-body.js.map +1 -1
  460. package/dist/components/features/command-menu/command-menu-items.d.ts +32 -0
  461. package/dist/components/features/command-menu/command-menu-trigger.cjs +2 -0
  462. package/dist/components/features/command-menu/command-menu-trigger.cjs.map +1 -0
  463. package/dist/components/features/command-menu/command-menu-trigger.d.ts +5 -0
  464. package/dist/components/features/command-menu/command-menu-trigger.js +53 -0
  465. package/dist/components/features/command-menu/command-menu-trigger.js.map +1 -0
  466. package/dist/components/features/command-menu/command-menu.d.ts +2 -0
  467. package/dist/components/features/command-menu/index.d.ts +2 -0
  468. package/dist/components/features/controls/tools-context-menu.cjs +1 -1
  469. package/dist/components/features/controls/tools-context-menu.cjs.map +1 -1
  470. package/dist/components/features/controls/tools-context-menu.d.ts +3 -1
  471. package/dist/components/features/controls/tools-context-menu.js +94 -77
  472. package/dist/components/features/controls/tools-context-menu.js.map +1 -1
  473. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs +1 -1
  474. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.cjs.map +1 -1
  475. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js +8 -5
  476. package/dist/components/features/conversation-panel/cloud-new-conversation-menu.js.map +1 -1
  477. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs.map +1 -1
  478. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.d.ts +1 -1
  479. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js.map +1 -1
  480. package/dist/components/features/conversation-panel/conversation-panel.cjs +1 -1
  481. package/dist/components/features/conversation-panel/conversation-panel.cjs.map +1 -1
  482. package/dist/components/features/conversation-panel/conversation-panel.js +2 -1
  483. package/dist/components/features/conversation-panel/conversation-panel.js.map +1 -1
  484. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs +1 -1
  485. package/dist/components/features/conversation-panel/local-new-conversation-menu.cjs.map +1 -1
  486. package/dist/components/features/conversation-panel/local-new-conversation-menu.js +4 -1
  487. package/dist/components/features/conversation-panel/local-new-conversation-menu.js.map +1 -1
  488. package/dist/components/features/conversation-panel/plugins-modal.cjs +2 -0
  489. package/dist/components/features/conversation-panel/plugins-modal.cjs.map +1 -0
  490. package/dist/components/features/conversation-panel/plugins-modal.d.ts +12 -0
  491. package/dist/components/features/conversation-panel/plugins-modal.js +62 -0
  492. package/dist/components/features/conversation-panel/plugins-modal.js.map +1 -0
  493. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.cjs +1 -1
  494. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.cjs.map +1 -1
  495. package/dist/components/features/home/git-repo-dropdown/git-repo-dropdown.js +4 -4
  496. package/dist/components/features/mcp-logo-badge.cjs +1 -1
  497. package/dist/components/features/mcp-logo-badge.cjs.map +1 -1
  498. package/dist/components/features/mcp-logo-badge.js +17 -15
  499. package/dist/components/features/mcp-logo-badge.js.map +1 -1
  500. package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
  501. package/dist/components/features/mcp-page/custom-server-editor.cjs.map +1 -1
  502. package/dist/components/features/mcp-page/custom-server-editor.js +102 -59
  503. package/dist/components/features/mcp-page/custom-server-editor.js.map +1 -1
  504. package/dist/components/features/mcp-page/install-server-modal.cjs +1 -1
  505. package/dist/components/features/mcp-page/install-server-modal.cjs.map +1 -1
  506. package/dist/components/features/mcp-page/install-server-modal.js +284 -169
  507. package/dist/components/features/mcp-page/install-server-modal.js.map +1 -1
  508. package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
  509. package/dist/components/features/mcp-page/installed-server-card.cjs.map +1 -1
  510. package/dist/components/features/mcp-page/installed-server-card.js +16 -18
  511. package/dist/components/features/mcp-page/installed-server-card.js.map +1 -1
  512. package/dist/components/features/onboarding/onboarding-host.d.ts +3 -13
  513. package/dist/components/features/plugins/add-plugin-modal.d.ts +6 -0
  514. package/dist/components/features/plugins/build-plugins-view-model.d.ts +39 -0
  515. package/dist/components/features/plugins/plugin-card.d.ts +13 -0
  516. package/dist/components/features/plugins/plugin-detail-modal.d.ts +13 -0
  517. package/dist/components/features/plugins/plugin-picker-card.d.ts +10 -0
  518. package/dist/components/features/plugins/plugin-picker-modal.d.ts +9 -0
  519. package/dist/components/features/plugins/plugin-picker-trigger.d.ts +9 -0
  520. package/dist/components/features/plugins/plugin-picker.d.ts +18 -0
  521. package/dist/components/features/plugins/plugin-spec-identity.d.ts +28 -0
  522. package/dist/components/features/plugins/plugins-toolbar.d.ts +9 -0
  523. package/dist/components/features/settings/agent-profiles/agent-profile-actions-menu.d.ts +16 -0
  524. package/dist/components/features/settings/agent-profiles/agent-profile-row.d.ts +13 -0
  525. package/dist/components/features/settings/agent-profiles/agent-profiles-body.d.ts +15 -0
  526. package/dist/components/features/settings/agent-profiles/agent-profiles-local-view.d.ts +7 -0
  527. package/dist/components/features/settings/agent-profiles/agent-profiles-manager.d.ts +7 -0
  528. package/dist/components/features/settings/agent-profiles/delete-agent-profile-modal.d.ts +7 -0
  529. package/dist/components/features/settings/agent-profiles/index.d.ts +6 -0
  530. package/dist/components/features/settings/agent-profiles/merge-agent-profile-save-input.d.ts +18 -0
  531. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.cjs +1 -1
  532. package/dist/components/features/settings/llm-profiles/llm-profiles-manager.js +1 -0
  533. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  534. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +1 -1
  535. package/dist/components/features/settings/llm-profiles/profile-row.d.ts +3 -1
  536. package/dist/components/features/settings/llm-profiles/profiles-body.d.ts +3 -1
  537. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.cjs +1 -1
  538. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.cjs.map +1 -1
  539. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.js +3 -2
  540. package/dist/components/features/settings/llm-settings/openai-subscription-auth-card.js.map +1 -1
  541. package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs +7 -7
  542. package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs.map +1 -1
  543. package/dist/components/features/settings/mcp-settings/mcp-server-form.js +279 -130
  544. package/dist/components/features/settings/mcp-settings/mcp-server-form.js.map +1 -1
  545. package/dist/components/features/settings/mcp-settings/mcp-server-list-item.d.ts +1 -12
  546. package/dist/components/features/settings/mcp-settings/mcp-server-list.d.ts +1 -11
  547. package/dist/components/features/settings/settings-dropdown-input.cjs +1 -1
  548. package/dist/components/features/settings/settings-dropdown-input.js +6 -6
  549. package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
  550. package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
  551. package/dist/components/features/sidebar/sidebar-rail-body.d.ts +1 -2
  552. package/dist/components/features/sidebar/sidebar-rail-body.js +81 -82
  553. package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
  554. package/dist/components/features/sidebar/sidebar.cjs +1 -1
  555. package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
  556. package/dist/components/features/sidebar/sidebar.js +45 -46
  557. package/dist/components/features/sidebar/sidebar.js.map +1 -1
  558. package/dist/components/features/skills/extensions-navigation.cjs +1 -1
  559. package/dist/components/features/skills/extensions-navigation.cjs.map +1 -1
  560. package/dist/components/features/skills/extensions-navigation.js +1 -2
  561. package/dist/components/features/skills/extensions-navigation.js.map +1 -1
  562. package/dist/components/shared/modals/modal-backdrop.cjs +1 -1
  563. package/dist/components/shared/modals/modal-backdrop.cjs.map +1 -1
  564. package/dist/components/shared/modals/modal-backdrop.d.ts +5 -1
  565. package/dist/components/shared/modals/modal-backdrop.js +3 -3
  566. package/dist/components/shared/modals/modal-backdrop.js.map +1 -1
  567. package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
  568. package/dist/components/shared/modals/settings/model-selector.js +16 -16
  569. package/dist/config/defaults.cjs +1 -1
  570. package/dist/config/defaults.cjs.map +1 -1
  571. package/dist/config/defaults.js +7 -3
  572. package/dist/config/defaults.js.map +1 -1
  573. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  574. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  575. package/dist/contexts/conversation-websocket-context.js +200 -197
  576. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  577. package/dist/hooks/chat/use-goal-interceptor.cjs +2 -0
  578. package/dist/hooks/chat/use-goal-interceptor.cjs.map +1 -0
  579. package/dist/hooks/chat/use-goal-interceptor.d.ts +8 -0
  580. package/dist/hooks/chat/use-goal-interceptor.js +37 -0
  581. package/dist/hooks/chat/use-goal-interceptor.js.map +1 -0
  582. package/dist/hooks/chat/use-grip-resize.cjs +1 -1
  583. package/dist/hooks/chat/use-grip-resize.cjs.map +1 -1
  584. package/dist/hooks/chat/use-grip-resize.js +17 -16
  585. package/dist/hooks/chat/use-grip-resize.js.map +1 -1
  586. package/dist/hooks/chat/use-model-interceptor.cjs +1 -1
  587. package/dist/hooks/chat/use-model-interceptor.cjs.map +1 -1
  588. package/dist/hooks/chat/use-model-interceptor.d.ts +3 -3
  589. package/dist/hooks/chat/use-model-interceptor.js +8 -9
  590. package/dist/hooks/chat/use-model-interceptor.js.map +1 -1
  591. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  592. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  593. package/dist/hooks/chat/use-slash-command.js +4 -4
  594. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  595. package/dist/hooks/mutation/conversation-mutation-utils.cjs +1 -1
  596. package/dist/hooks/mutation/conversation-mutation-utils.cjs.map +1 -1
  597. package/dist/hooks/mutation/conversation-mutation-utils.d.ts +17 -0
  598. package/dist/hooks/mutation/conversation-mutation-utils.js +23 -4
  599. package/dist/hooks/mutation/conversation-mutation-utils.js.map +1 -1
  600. package/dist/hooks/mutation/use-activate-agent-profile.cjs +2 -0
  601. package/dist/hooks/mutation/use-activate-agent-profile.cjs.map +1 -0
  602. package/dist/hooks/mutation/use-activate-agent-profile.d.ts +23 -0
  603. package/dist/hooks/mutation/use-activate-agent-profile.js +34 -0
  604. package/dist/hooks/mutation/use-activate-agent-profile.js.map +1 -0
  605. package/dist/hooks/mutation/use-activate-llm-profile.cjs +1 -1
  606. package/dist/hooks/mutation/use-activate-llm-profile.js +1 -1
  607. package/dist/hooks/mutation/use-add-mcp-server.cjs +1 -1
  608. package/dist/hooks/mutation/use-add-mcp-server.cjs.map +1 -1
  609. package/dist/hooks/mutation/use-add-mcp-server.d.ts +1 -12
  610. package/dist/hooks/mutation/use-add-mcp-server.js +10 -34
  611. package/dist/hooks/mutation/use-add-mcp-server.js.map +1 -1
  612. package/dist/hooks/mutation/use-apply-onboarding-agent-profile.d.ts +20 -0
  613. package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
  614. package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
  615. package/dist/hooks/mutation/use-create-conversation.d.ts +2 -0
  616. package/dist/hooks/mutation/use-create-conversation.js +94 -25
  617. package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
  618. package/dist/hooks/mutation/use-delete-agent-profile.d.ts +1 -0
  619. package/dist/hooks/mutation/use-delete-llm-profile.cjs +1 -1
  620. package/dist/hooks/mutation/use-delete-llm-profile.js +1 -1
  621. package/dist/hooks/mutation/use-delete-mcp-server.cjs +1 -1
  622. package/dist/hooks/mutation/use-delete-mcp-server.js +4 -4
  623. package/dist/hooks/mutation/use-fork-conversation.cjs +2 -0
  624. package/dist/hooks/mutation/use-fork-conversation.cjs.map +1 -0
  625. package/dist/hooks/mutation/use-fork-conversation.d.ts +24 -0
  626. package/dist/hooks/mutation/use-fork-conversation.js +29 -0
  627. package/dist/hooks/mutation/use-fork-conversation.js.map +1 -0
  628. package/dist/hooks/mutation/use-install-plugin.d.ts +7 -0
  629. package/dist/hooks/mutation/use-new-conversation-command.cjs +1 -1
  630. package/dist/hooks/mutation/use-new-conversation-command.cjs.map +1 -1
  631. package/dist/hooks/mutation/use-new-conversation-command.d.ts +1 -0
  632. package/dist/hooks/mutation/use-new-conversation-command.js +20 -10
  633. package/dist/hooks/mutation/use-new-conversation-command.js.map +1 -1
  634. package/dist/hooks/mutation/use-rename-agent-profile.d.ts +6 -0
  635. package/dist/hooks/mutation/use-rename-llm-profile.cjs +1 -1
  636. package/dist/hooks/mutation/use-rename-llm-profile.js +1 -1
  637. package/dist/hooks/mutation/use-save-agent-profile.d.ts +5 -0
  638. package/dist/hooks/mutation/use-save-llm-profile.cjs +1 -1
  639. package/dist/hooks/mutation/use-save-llm-profile.js +1 -1
  640. package/dist/hooks/mutation/use-switch-acp-model.cjs.map +1 -1
  641. package/dist/hooks/mutation/use-switch-acp-model.js.map +1 -1
  642. package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs +1 -1
  643. package/dist/hooks/mutation/use-switch-llm-profile-and-log.cjs.map +1 -1
  644. package/dist/hooks/mutation/use-switch-llm-profile-and-log.d.ts +3 -4
  645. package/dist/hooks/mutation/use-switch-llm-profile-and-log.js +10 -35
  646. package/dist/hooks/mutation/use-switch-llm-profile-and-log.js.map +1 -1
  647. package/dist/hooks/mutation/use-switch-llm-profile.cjs +1 -1
  648. package/dist/hooks/mutation/use-switch-llm-profile.cjs.map +1 -1
  649. package/dist/hooks/mutation/use-switch-llm-profile.d.ts +20 -5
  650. package/dist/hooks/mutation/use-switch-llm-profile.js +38 -14
  651. package/dist/hooks/mutation/use-switch-llm-profile.js.map +1 -1
  652. package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
  653. package/dist/hooks/mutation/use-update-mcp-server.cjs.map +1 -1
  654. package/dist/hooks/mutation/use-update-mcp-server.js +11 -37
  655. package/dist/hooks/mutation/use-update-mcp-server.js.map +1 -1
  656. package/dist/hooks/query/query-keys.cjs +1 -1
  657. package/dist/hooks/query/query-keys.cjs.map +1 -1
  658. package/dist/hooks/query/query-keys.d.ts +21 -0
  659. package/dist/hooks/query/query-keys.js +7 -3
  660. package/dist/hooks/query/query-keys.js.map +1 -1
  661. package/dist/hooks/query/use-active-conversation.cjs +1 -1
  662. package/dist/hooks/query/use-active-conversation.cjs.map +1 -1
  663. package/dist/hooks/query/use-active-conversation.js +17 -16
  664. package/dist/hooks/query/use-active-conversation.js.map +1 -1
  665. package/dist/hooks/query/use-agent-profiles.cjs +2 -0
  666. package/dist/hooks/query/use-agent-profiles.cjs.map +1 -0
  667. package/dist/hooks/query/use-agent-profiles.d.ts +13 -0
  668. package/dist/hooks/query/use-agent-profiles.js +24 -0
  669. package/dist/hooks/query/use-agent-profiles.js.map +1 -0
  670. package/dist/hooks/query/use-backends-health.cjs +1 -1
  671. package/dist/hooks/query/use-backends-health.cjs.map +1 -1
  672. package/dist/hooks/query/use-backends-health.js +18 -3
  673. package/dist/hooks/query/use-backends-health.js.map +1 -1
  674. package/dist/hooks/query/use-conversation-history.cjs +1 -1
  675. package/dist/hooks/query/use-conversation-history.cjs.map +1 -1
  676. package/dist/hooks/query/use-conversation-history.js +4 -2
  677. package/dist/hooks/query/use-conversation-history.js.map +1 -1
  678. package/dist/hooks/query/use-local-workspaces.cjs +1 -1
  679. package/dist/hooks/query/use-local-workspaces.cjs.map +1 -1
  680. package/dist/hooks/query/use-local-workspaces.js +1 -0
  681. package/dist/hooks/query/use-local-workspaces.js.map +1 -1
  682. package/dist/hooks/query/use-plugins-marketplace.d.ts +7 -0
  683. package/dist/hooks/query/use-resolved-workspaces.cjs +1 -1
  684. package/dist/hooks/query/use-resolved-workspaces.cjs.map +1 -1
  685. package/dist/hooks/query/use-resolved-workspaces.js +7 -6
  686. package/dist/hooks/query/use-resolved-workspaces.js.map +1 -1
  687. package/dist/hooks/query/use-search-subdirs.cjs +1 -1
  688. package/dist/hooks/query/use-search-subdirs.cjs.map +1 -1
  689. package/dist/hooks/query/use-search-subdirs.js +1 -0
  690. package/dist/hooks/query/use-search-subdirs.js.map +1 -1
  691. package/dist/hooks/query/use-settings.cjs +1 -1
  692. package/dist/hooks/query/use-settings.cjs.map +1 -1
  693. package/dist/hooks/query/use-settings.js +11 -11
  694. package/dist/hooks/query/use-settings.js.map +1 -1
  695. package/dist/hooks/query/use-verified-models.cjs +1 -1
  696. package/dist/hooks/query/use-verified-models.cjs.map +1 -1
  697. package/dist/hooks/query/use-verified-models.js +1 -0
  698. package/dist/hooks/query/use-verified-models.js.map +1 -1
  699. package/dist/hooks/use-acp-model-context.cjs +1 -1
  700. package/dist/hooks/use-acp-model-context.cjs.map +1 -1
  701. package/dist/hooks/use-acp-model-context.d.ts +1 -1
  702. package/dist/hooks/use-acp-model-context.js +9 -8
  703. package/dist/hooks/use-acp-model-context.js.map +1 -1
  704. package/dist/hooks/use-active-agent-profile.cjs +2 -0
  705. package/dist/hooks/use-active-agent-profile.cjs.map +1 -0
  706. package/dist/hooks/use-active-agent-profile.d.ts +20 -0
  707. package/dist/hooks/use-active-agent-profile.js +17 -0
  708. package/dist/hooks/use-active-agent-profile.js.map +1 -0
  709. package/dist/hooks/use-auto-resize.cjs +1 -1
  710. package/dist/hooks/use-auto-resize.cjs.map +1 -1
  711. package/dist/hooks/use-auto-resize.d.ts +2 -0
  712. package/dist/hooks/use-auto-resize.js +49 -45
  713. package/dist/hooks/use-auto-resize.js.map +1 -1
  714. package/dist/hooks/use-can-manage-org-profiles.cjs +1 -0
  715. package/dist/hooks/use-can-manage-org-profiles.d.ts +18 -0
  716. package/dist/hooks/use-can-manage-org-profiles.js +2 -0
  717. package/dist/hooks/use-chat-input-llm-profile-state.cjs +2 -0
  718. package/dist/hooks/use-chat-input-llm-profile-state.cjs.map +1 -0
  719. package/dist/hooks/use-chat-input-llm-profile-state.d.ts +23 -0
  720. package/dist/hooks/use-chat-input-llm-profile-state.js +30 -0
  721. package/dist/hooks/use-chat-input-llm-profile-state.js.map +1 -0
  722. package/dist/hooks/use-chat-input-model-state.cjs.map +1 -1
  723. package/dist/hooks/use-chat-input-model-state.d.ts +1 -1
  724. package/dist/hooks/use-chat-input-model-state.js.map +1 -1
  725. package/dist/hooks/use-chat-input-profile-state.cjs +2 -0
  726. package/dist/hooks/use-chat-input-profile-state.cjs.map +1 -0
  727. package/dist/hooks/use-chat-input-profile-state.d.ts +20 -0
  728. package/dist/hooks/use-chat-input-profile-state.js +22 -0
  729. package/dist/hooks/use-chat-input-profile-state.js.map +1 -0
  730. package/dist/hooks/use-conversation-name-context-menu.cjs +1 -1
  731. package/dist/hooks/use-conversation-name-context-menu.cjs.map +1 -1
  732. package/dist/hooks/use-conversation-name-context-menu.d.ts +4 -0
  733. package/dist/hooks/use-conversation-name-context-menu.js +44 -37
  734. package/dist/hooks/use-conversation-name-context-menu.js.map +1 -1
  735. package/dist/hooks/use-conversation-plugins.cjs +2 -0
  736. package/dist/hooks/use-conversation-plugins.cjs.map +1 -0
  737. package/dist/hooks/use-conversation-plugins.d.ts +9 -0
  738. package/dist/hooks/use-conversation-plugins.js +12 -0
  739. package/dist/hooks/use-conversation-plugins.js.map +1 -0
  740. package/dist/hooks/use-handle-plan-click.cjs +1 -1
  741. package/dist/hooks/use-handle-plan-click.cjs.map +1 -1
  742. package/dist/hooks/use-handle-plan-click.js +2 -1
  743. package/dist/hooks/use-handle-plan-click.js.map +1 -1
  744. package/dist/hooks/use-llm-configured.cjs +1 -1
  745. package/dist/hooks/use-llm-configured.cjs.map +1 -1
  746. package/dist/hooks/use-llm-configured.js +17 -16
  747. package/dist/hooks/use-llm-configured.js.map +1 -1
  748. package/dist/hooks/use-tracking.cjs +1 -1
  749. package/dist/hooks/use-tracking.cjs.map +1 -1
  750. package/dist/hooks/use-tracking.d.ts +51 -1
  751. package/dist/hooks/use-tracking.js +61 -2
  752. package/dist/hooks/use-tracking.js.map +1 -1
  753. package/dist/i18n/declaration.cjs +1 -1
  754. package/dist/i18n/declaration.cjs.map +1 -1
  755. package/dist/i18n/declaration.d.ts +138 -1
  756. package/dist/i18n/declaration.js +1 -1
  757. package/dist/i18n/declaration.js.map +1 -1
  758. package/dist/i18n/translation.cjs +18 -3
  759. package/dist/i18n/translation.cjs.map +1 -1
  760. package/dist/i18n/translation.js +2329 -0
  761. package/dist/i18n/translation.js.map +1 -1
  762. package/dist/icons/slack.cjs +2 -0
  763. package/dist/icons/slack.cjs.map +1 -0
  764. package/dist/icons/slack.js +19 -0
  765. package/dist/icons/slack.js.map +1 -0
  766. package/dist/icons/u-puzzle-piece.cjs +2 -0
  767. package/dist/icons/u-puzzle-piece.cjs.map +1 -0
  768. package/dist/icons/u-puzzle-piece.js +19 -0
  769. package/dist/icons/u-puzzle-piece.js.map +1 -0
  770. package/dist/icons/x-circle-solid.cjs +2 -0
  771. package/dist/icons/x-circle-solid.cjs.map +1 -0
  772. package/dist/icons/x-circle-solid.js +13 -0
  773. package/dist/icons/x-circle-solid.js.map +1 -0
  774. package/dist/locales/ar/openhands.json +138 -1
  775. package/dist/locales/ca/openhands.json +138 -1
  776. package/dist/locales/de/openhands.json +138 -1
  777. package/dist/locales/en/openhands.json +138 -1
  778. package/dist/locales/es/openhands.json +138 -1
  779. package/dist/locales/fr/openhands.json +138 -1
  780. package/dist/locales/it/openhands.json +138 -1
  781. package/dist/locales/ja/openhands.json +138 -1
  782. package/dist/locales/ko-KR/openhands.json +138 -1
  783. package/dist/locales/no/openhands.json +138 -1
  784. package/dist/locales/pt/openhands.json +138 -1
  785. package/dist/locales/tr/openhands.json +138 -1
  786. package/dist/locales/uk/openhands.json +138 -1
  787. package/dist/locales/zh-CN/openhands.json +138 -1
  788. package/dist/locales/zh-TW/openhands.json +138 -1
  789. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs +1 -1
  790. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.cjs.map +1 -1
  791. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js +0 -20
  792. package/dist/node_modules/@openhands/extensions/integrations/catalog/airtable.js.map +1 -1
  793. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.cjs +1 -1
  794. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.cjs.map +1 -1
  795. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.js +1 -6
  796. package/dist/node_modules/@openhands/extensions/integrations/catalog/asana.js.map +1 -1
  797. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs +1 -1
  798. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.cjs.map +1 -1
  799. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js +70 -3
  800. package/dist/node_modules/@openhands/extensions/integrations/catalog/atlassian.js.map +1 -1
  801. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.cjs +1 -1
  802. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.cjs.map +1 -1
  803. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.js +1 -6
  804. package/dist/node_modules/@openhands/extensions/integrations/catalog/bitbucket.js.map +1 -1
  805. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.cjs +1 -1
  806. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.cjs.map +1 -1
  807. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.js +1 -6
  808. package/dist/node_modules/@openhands/extensions/integrations/catalog/box.js.map +1 -1
  809. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.cjs +1 -1
  810. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.cjs.map +1 -1
  811. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.js +3 -7
  812. package/dist/node_modules/@openhands/extensions/integrations/catalog/canva.js.map +1 -1
  813. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.cjs +1 -1
  814. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.cjs.map +1 -1
  815. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.js +1 -6
  816. package/dist/node_modules/@openhands/extensions/integrations/catalog/confluence.js.map +1 -1
  817. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs +1 -1
  818. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
  819. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +27 -2
  820. package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
  821. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.cjs +1 -1
  822. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.cjs.map +1 -1
  823. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.js +1 -6
  824. package/dist/node_modules/@openhands/extensions/integrations/catalog/discord.js.map +1 -1
  825. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs +1 -1
  826. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.cjs.map +1 -1
  827. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js +20 -26
  828. package/dist/node_modules/@openhands/extensions/integrations/catalog/figma.js.map +1 -1
  829. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs +1 -1
  830. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.cjs.map +1 -1
  831. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js +0 -9
  832. package/dist/node_modules/@openhands/extensions/integrations/catalog/github.js.map +1 -1
  833. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.cjs +1 -1
  834. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.cjs.map +1 -1
  835. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.js +1 -6
  836. package/dist/node_modules/@openhands/extensions/integrations/catalog/gmail.js.map +1 -1
  837. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.cjs +1 -1
  838. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.cjs.map +1 -1
  839. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.js +1 -6
  840. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-calendar.js.map +1 -1
  841. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.cjs +1 -1
  842. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.cjs.map +1 -1
  843. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.js +1 -6
  844. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-docs.js.map +1 -1
  845. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.cjs +1 -1
  846. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.cjs.map +1 -1
  847. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.js +1 -6
  848. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-drive.js.map +1 -1
  849. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.cjs +1 -1
  850. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.cjs.map +1 -1
  851. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.js +1 -6
  852. package/dist/node_modules/@openhands/extensions/integrations/catalog/google-sheets.js.map +1 -1
  853. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.cjs +1 -1
  854. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.cjs.map +1 -1
  855. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.js +1 -6
  856. package/dist/node_modules/@openhands/extensions/integrations/catalog/intercom.js.map +1 -1
  857. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.cjs +1 -1
  858. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.cjs.map +1 -1
  859. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.js +1 -6
  860. package/dist/node_modules/@openhands/extensions/integrations/catalog/jira.js.map +1 -1
  861. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs +1 -1
  862. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.cjs.map +1 -1
  863. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js +13 -13
  864. package/dist/node_modules/@openhands/extensions/integrations/catalog/linear.js.map +1 -1
  865. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.cjs +1 -1
  866. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.cjs.map +1 -1
  867. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.js +1 -6
  868. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-outlook.js.map +1 -1
  869. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.cjs +1 -1
  870. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.cjs.map +1 -1
  871. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.js +1 -6
  872. package/dist/node_modules/@openhands/extensions/integrations/catalog/microsoft-teams.js.map +1 -1
  873. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.cjs +1 -1
  874. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.cjs.map +1 -1
  875. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.js +14 -10
  876. package/dist/node_modules/@openhands/extensions/integrations/catalog/miro.js.map +1 -1
  877. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.cjs +1 -1
  878. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.cjs.map +1 -1
  879. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.js +13 -10
  880. package/dist/node_modules/@openhands/extensions/integrations/catalog/monday.js.map +1 -1
  881. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.cjs +1 -1
  882. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.cjs.map +1 -1
  883. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.js +1 -6
  884. package/dist/node_modules/@openhands/extensions/integrations/catalog/netlify.js.map +1 -1
  885. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs +1 -1
  886. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.cjs.map +1 -1
  887. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js +1 -8
  888. package/dist/node_modules/@openhands/extensions/integrations/catalog/notion.js.map +1 -1
  889. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.cjs +1 -1
  890. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.cjs.map +1 -1
  891. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.js +1 -6
  892. package/dist/node_modules/@openhands/extensions/integrations/catalog/okta.js.map +1 -1
  893. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.cjs +1 -1
  894. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.cjs.map +1 -1
  895. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.js +1 -6
  896. package/dist/node_modules/@openhands/extensions/integrations/catalog/onedrive.js.map +1 -1
  897. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs +1 -1
  898. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.cjs.map +1 -1
  899. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js +20 -18
  900. package/dist/node_modules/@openhands/extensions/integrations/catalog/posthog.js.map +1 -1
  901. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.cjs +1 -1
  902. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.cjs.map +1 -1
  903. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.js +66 -21
  904. package/dist/node_modules/@openhands/extensions/integrations/catalog/quickbooks.js.map +1 -1
  905. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.cjs +1 -1
  906. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.cjs.map +1 -1
  907. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.js +17 -11
  908. package/dist/node_modules/@openhands/extensions/integrations/catalog/salesforce.js.map +1 -1
  909. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs +1 -1
  910. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.cjs.map +1 -1
  911. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js +12 -17
  912. package/dist/node_modules/@openhands/extensions/integrations/catalog/sentry.js.map +1 -1
  913. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.cjs +1 -1
  914. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.cjs.map +1 -1
  915. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.js +1 -6
  916. package/dist/node_modules/@openhands/extensions/integrations/catalog/sharepoint.js.map +1 -1
  917. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs +1 -1
  918. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.cjs.map +1 -1
  919. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js +1 -1
  920. package/dist/node_modules/@openhands/extensions/integrations/catalog/slack.js.map +1 -1
  921. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs +1 -1
  922. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.cjs.map +1 -1
  923. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js +14 -19
  924. package/dist/node_modules/@openhands/extensions/integrations/catalog/stripe.js.map +1 -1
  925. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs +1 -1
  926. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.cjs.map +1 -1
  927. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js +15 -20
  928. package/dist/node_modules/@openhands/extensions/integrations/catalog/supabase.js.map +1 -1
  929. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.cjs +2 -0
  930. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.cjs.map +1 -0
  931. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.js +33 -0
  932. package/dist/node_modules/@openhands/extensions/integrations/catalog/superhuman-mail.js.map +1 -0
  933. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.cjs +1 -1
  934. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.cjs.map +1 -1
  935. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.js +10 -8
  936. package/dist/node_modules/@openhands/extensions/integrations/catalog/trello.js.map +1 -1
  937. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.cjs +1 -1
  938. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.cjs.map +1 -1
  939. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.js +1 -6
  940. package/dist/node_modules/@openhands/extensions/integrations/catalog/vercel.js.map +1 -1
  941. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.cjs +1 -1
  942. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.cjs.map +1 -1
  943. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.js +1 -6
  944. package/dist/node_modules/@openhands/extensions/integrations/catalog/xero.js.map +1 -1
  945. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.cjs +1 -1
  946. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.cjs.map +1 -1
  947. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.js +1 -6
  948. package/dist/node_modules/@openhands/extensions/integrations/catalog/zoom.js.map +1 -1
  949. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs +1 -1
  950. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.cjs.map +1 -1
  951. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js +71 -89
  952. package/dist/node_modules/@openhands/extensions/integrations/catalog-index.js.map +1 -1
  953. package/dist/node_modules/@openhands/extensions/integrations/index.cjs +1 -1
  954. package/dist/node_modules/@openhands/extensions/integrations/index.cjs.map +1 -1
  955. package/dist/node_modules/@openhands/extensions/integrations/index.js +4 -4
  956. package/dist/node_modules/@openhands/extensions/integrations/index.js.map +1 -1
  957. package/dist/node_modules/@openhands/extensions/skills/index.cjs +502 -43
  958. package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
  959. package/dist/node_modules/@openhands/extensions/skills/index.js +58 -33
  960. package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
  961. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.cjs +2 -0
  962. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.cjs.map +1 -0
  963. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.js +40 -0
  964. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-profiles-client.js.map +1 -0
  965. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs +1 -1
  966. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs.map +1 -1
  967. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js +4 -4
  968. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js.map +1 -1
  969. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs +1 -1
  970. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs.map +1 -1
  971. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js +3 -0
  972. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js.map +1 -1
  973. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
  974. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
  975. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +3 -0
  976. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
  977. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs +1 -0
  978. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js +1 -0
  979. package/dist/node_modules/@openhands/typescript-client/dist/client/hooks-client.cjs +1 -0
  980. package/dist/node_modules/@openhands/typescript-client/dist/client/hooks-client.js +1 -0
  981. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.cjs +1 -1
  982. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.cjs.map +1 -1
  983. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.js +84 -27
  984. package/dist/node_modules/@openhands/typescript-client/dist/client/http-client.js.map +1 -1
  985. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs +1 -1
  986. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.cjs.map +1 -1
  987. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js +9 -0
  988. package/dist/node_modules/@openhands/typescript-client/dist/client/mcp-client.js.map +1 -1
  989. package/dist/node_modules/@openhands/typescript-client/dist/client/meta-profiles-client.cjs +1 -0
  990. package/dist/node_modules/@openhands/typescript-client/dist/client/meta-profiles-client.js +1 -0
  991. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.cjs +2 -0
  992. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.cjs.map +1 -0
  993. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.js +42 -0
  994. package/dist/node_modules/@openhands/typescript-client/dist/client/plugins-client.js.map +1 -0
  995. package/dist/node_modules/@openhands/typescript-client/dist/client/shared-client.cjs +1 -0
  996. package/dist/node_modules/@openhands/typescript-client/dist/client/shared-client.js +1 -0
  997. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.cjs +1 -1
  998. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.cjs.map +1 -1
  999. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.js +1 -1
  1000. package/dist/node_modules/@openhands/typescript-client/dist/client/skills-client.js.map +1 -1
  1001. package/dist/node_modules/@openhands/typescript-client/dist/client/sub-agents-client.cjs +1 -0
  1002. package/dist/node_modules/@openhands/typescript-client/dist/client/sub-agents-client.js +1 -0
  1003. package/dist/node_modules/@openhands/typescript-client/dist/client/tool-client.cjs +1 -0
  1004. package/dist/node_modules/@openhands/typescript-client/dist/client/tool-client.js +1 -0
  1005. package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -0
  1006. package/dist/node_modules/@openhands/typescript-client/dist/clients.js +20 -0
  1007. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.cjs +1 -1
  1008. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation-manager.js +18 -0
  1009. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation.cjs +1 -1
  1010. package/dist/node_modules/@openhands/typescript-client/dist/conversation/conversation.js +1 -0
  1011. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.cjs +1 -1
  1012. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-conversation.js +2 -0
  1013. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs +1 -1
  1014. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.cjs.map +1 -1
  1015. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js +15 -17
  1016. package/dist/node_modules/@openhands/typescript-client/dist/conversation/remote-state.js.map +1 -1
  1017. package/dist/node_modules/@openhands/typescript-client/dist/index.cjs +1 -1
  1018. package/dist/node_modules/@openhands/typescript-client/dist/index.js +3 -0
  1019. package/dist/node_modules/@openhands/typescript-client/dist/workspace/workspace.cjs +1 -0
  1020. package/dist/node_modules/@openhands/typescript-client/dist/workspace/workspace.js +1 -0
  1021. package/dist/package.cjs +1 -1
  1022. package/dist/package.cjs.map +1 -1
  1023. package/dist/package.js +7 -4
  1024. package/dist/package.js.map +1 -1
  1025. package/dist/routes/agent-settings.d.ts +106 -0
  1026. package/dist/routes/files-tab.cjs +1 -1
  1027. package/dist/routes/files-tab.js +23 -23
  1028. package/dist/routes/llm-settings.cjs +1 -1
  1029. package/dist/routes/llm-settings.cjs.map +1 -1
  1030. package/dist/routes/llm-settings.d.ts +6 -4
  1031. package/dist/routes/llm-settings.js +0 -1
  1032. package/dist/routes/llm-settings.js.map +1 -1
  1033. package/dist/routes/mcp.cjs.map +1 -1
  1034. package/dist/routes/mcp.js.map +1 -1
  1035. package/dist/services/settings.cjs +1 -1
  1036. package/dist/services/settings.cjs.map +1 -1
  1037. package/dist/services/settings.js +2 -6
  1038. package/dist/services/settings.js.map +1 -1
  1039. package/dist/stores/command-menu-store.cjs +2 -0
  1040. package/dist/stores/command-menu-store.cjs.map +1 -0
  1041. package/dist/stores/command-menu-store.d.ts +8 -0
  1042. package/dist/stores/command-menu-store.js +12 -0
  1043. package/dist/stores/command-menu-store.js.map +1 -0
  1044. package/dist/stores/conversation-panel-preferences-store.cjs +1 -1
  1045. package/dist/stores/conversation-panel-preferences-store.cjs.map +1 -1
  1046. package/dist/stores/conversation-panel-preferences-store.js +1 -1
  1047. package/dist/stores/conversation-panel-preferences-store.js.map +1 -1
  1048. package/dist/stores/conversation-store.cjs +1 -1
  1049. package/dist/stores/conversation-store.cjs.map +1 -1
  1050. package/dist/stores/conversation-store.d.ts +1 -0
  1051. package/dist/stores/conversation-store.js +1 -0
  1052. package/dist/stores/conversation-store.js.map +1 -1
  1053. package/dist/stores/goal-store.cjs +2 -0
  1054. package/dist/stores/goal-store.cjs.map +1 -0
  1055. package/dist/stores/goal-store.d.ts +28 -0
  1056. package/dist/stores/goal-store.js +14 -0
  1057. package/dist/stores/goal-store.js.map +1 -0
  1058. package/dist/themes/color-themes.cjs +3 -3
  1059. package/dist/themes/color-themes.cjs.map +1 -1
  1060. package/dist/themes/color-themes.d.ts +13 -2
  1061. package/dist/themes/color-themes.js +2 -2
  1062. package/dist/themes/color-themes.js.map +1 -1
  1063. package/dist/types/agent-server/core/events/conversation-state-event.d.ts +39 -3
  1064. package/dist/types/agent-server/type-guards.cjs +1 -1
  1065. package/dist/types/agent-server/type-guards.cjs.map +1 -1
  1066. package/dist/types/agent-server/type-guards.d.ts +2 -1
  1067. package/dist/types/agent-server/type-guards.js +3 -3
  1068. package/dist/types/agent-server/type-guards.js.map +1 -1
  1069. package/dist/types/mcp-auth.cjs +2 -0
  1070. package/dist/types/mcp-auth.cjs.map +1 -0
  1071. package/dist/types/mcp-auth.d.ts +43 -0
  1072. package/dist/types/mcp-auth.js +13 -0
  1073. package/dist/types/mcp-auth.js.map +1 -0
  1074. package/dist/types/mcp-server.d.ts +22 -1
  1075. package/dist/types/settings.d.ts +6 -4
  1076. package/dist/ui/context-menu.d.ts +1 -1
  1077. package/dist/utils/acp-command.d.ts +64 -0
  1078. package/dist/utils/automation-debug-prompt.d.ts +18 -0
  1079. package/dist/utils/constants.cjs +1 -1
  1080. package/dist/utils/constants.cjs.map +1 -1
  1081. package/dist/utils/constants.d.ts +2 -0
  1082. package/dist/utils/constants.js +12 -3
  1083. package/dist/utils/constants.js.map +1 -1
  1084. package/dist/utils/dropdown-classes.cjs +1 -1
  1085. package/dist/utils/dropdown-classes.cjs.map +1 -1
  1086. package/dist/utils/dropdown-classes.js +4 -2
  1087. package/dist/utils/dropdown-classes.js.map +1 -1
  1088. package/dist/utils/form-control-classes.cjs +1 -1
  1089. package/dist/utils/form-control-classes.js +1 -1
  1090. package/dist/utils/handle-event-for-ui.cjs +1 -1
  1091. package/dist/utils/handle-event-for-ui.cjs.map +1 -1
  1092. package/dist/utils/handle-event-for-ui.js +72 -37
  1093. package/dist/utils/handle-event-for-ui.js.map +1 -1
  1094. package/dist/utils/mcp-config.cjs +1 -1
  1095. package/dist/utils/mcp-config.cjs.map +1 -1
  1096. package/dist/utils/mcp-config.d.ts +15 -9
  1097. package/dist/utils/mcp-config.js +124 -53
  1098. package/dist/utils/mcp-config.js.map +1 -1
  1099. package/dist/utils/mcp-installed-server-display.cjs +2 -0
  1100. package/dist/utils/mcp-installed-server-display.cjs.map +1 -0
  1101. package/dist/utils/mcp-installed-server-display.d.ts +8 -0
  1102. package/dist/utils/mcp-installed-server-display.js +12 -0
  1103. package/dist/utils/mcp-installed-server-display.js.map +1 -0
  1104. package/dist/utils/mcp-installed-servers.cjs +1 -1
  1105. package/dist/utils/mcp-installed-servers.cjs.map +1 -1
  1106. package/dist/utils/mcp-installed-servers.js +4 -4
  1107. package/dist/utils/mcp-installed-servers.js.map +1 -1
  1108. package/dist/utils/mcp-marketplace-utils.cjs +1 -1
  1109. package/dist/utils/mcp-marketplace-utils.cjs.map +1 -1
  1110. package/dist/utils/mcp-marketplace-utils.d.ts +2 -0
  1111. package/dist/utils/mcp-marketplace-utils.js +31 -16
  1112. package/dist/utils/mcp-marketplace-utils.js.map +1 -1
  1113. package/dist/utils/mcp-server-name.cjs +2 -0
  1114. package/dist/utils/mcp-server-name.cjs.map +1 -0
  1115. package/dist/utils/mcp-server-name.d.ts +3 -0
  1116. package/dist/utils/mcp-server-name.js +12 -0
  1117. package/dist/utils/mcp-server-name.js.map +1 -0
  1118. package/dist/utils/plugin-display.cjs +2 -0
  1119. package/dist/utils/plugin-display.cjs.map +1 -0
  1120. package/dist/utils/plugin-display.d.ts +20 -0
  1121. package/dist/utils/plugin-display.js +29 -0
  1122. package/dist/utils/plugin-display.js.map +1 -0
  1123. package/dist/utils/settings-utils.cjs.map +1 -1
  1124. package/dist/utils/settings-utils.js.map +1 -1
  1125. package/dist/utils/workspaces-compatibility.cjs +1 -1
  1126. package/dist/utils/workspaces-compatibility.cjs.map +1 -1
  1127. package/dist/utils/workspaces-compatibility.js +1 -0
  1128. package/dist/utils/workspaces-compatibility.js.map +1 -1
  1129. package/package.json +7 -4
  1130. package/scripts/check-sdk-version-sync.mjs +6 -6
  1131. package/scripts/check-translation-completeness.cjs +6 -0
  1132. package/scripts/dev-safe.mjs +14 -3
  1133. package/scripts/dev-with-automation.mjs +4 -0
  1134. package/scripts/gen-acp-docker-env.mjs +107 -0
  1135. package/scripts/ingress.mjs +66 -226
  1136. package/scripts/proxy-utils.mjs +171 -0
  1137. package/scripts/static-server.mjs +127 -283
  1138. package/build/assets/Trans-CiZR6eVI.js +0 -1
  1139. package/build/assets/active-backend-context-CEuva6ZJ.js +0 -1
  1140. package/build/assets/add-backend-modal-b_eiVk3A.js +0 -1
  1141. package/build/assets/agent-server-conversation-service.api-D_uJ7BKc.js +0 -5
  1142. package/build/assets/agent-settings-DyfziYyM.js +0 -2
  1143. package/build/assets/alert-banner-BFayS5vM.js +0 -1
  1144. package/build/assets/analytics-consent-form-modal-CQ22qlFF.js +0 -1
  1145. package/build/assets/api-key-entry-screen-KnIwP0vN.js +0 -1
  1146. package/build/assets/app-settings-CBaHJ5vJ.js +0 -1
  1147. package/build/assets/automation-detail-DgQswnXg.js +0 -1
  1148. package/build/assets/automations-list-D99p6CoQ.js +0 -1
  1149. package/build/assets/back-nav-button-Cp9z-wsG.js +0 -1
  1150. package/build/assets/backend-form-modal-BABAz-zH.js +0 -1
  1151. package/build/assets/backend-synced-settings-badge-DzwWQC4T.js +0 -1
  1152. package/build/assets/base-modal-1bHiB5Wf.js +0 -1
  1153. package/build/assets/brand-button-FHWgEb4Q.js +0 -1
  1154. package/build/assets/browser-store-B9h0eW79.js +0 -1
  1155. package/build/assets/browser-tab-JiCXo0Nc.js +0 -1
  1156. package/build/assets/chat-send-button-QtyofqFt.js +0 -1
  1157. package/build/assets/check-6ieIiPhW.js +0 -1
  1158. package/build/assets/checkmark-BfgRVMHK.js +0 -1
  1159. package/build/assets/circle-plus-check-toggle-CmINKfZj.js +0 -1
  1160. package/build/assets/close-DhH0uMa7.js +0 -1
  1161. package/build/assets/code-tag-CnORXDJj.js +0 -1
  1162. package/build/assets/combobox-caret-BB15S7zY.js +0 -1
  1163. package/build/assets/condenser-settings-BOKNShD9.js +0 -1
  1164. package/build/assets/confirmation-modal-CofmThy4.js +0 -1
  1165. package/build/assets/context-menu-list-item-DO12IEaK.js +0 -1
  1166. package/build/assets/conversation-DIzv-jq8.js +0 -1
  1167. package/build/assets/conversation-DV3odvMe.js +0 -19
  1168. package/build/assets/conversation-local-storage-DK7yJr5N.js +0 -1
  1169. package/build/assets/conversation-panel-CgCarTAn.js +0 -1
  1170. package/build/assets/conversation-service.api-RV_bOKNz.js +0 -1
  1171. package/build/assets/conversation-state-store-4obo4ZMf.js +0 -1
  1172. package/build/assets/conversation-store-CXrL0v-X.js +0 -6
  1173. package/build/assets/conversation-tab-empty-state-CqT5ur_H.js +0 -1
  1174. package/build/assets/copy-C5tBqfWu.js +0 -1
  1175. package/build/assets/copy-to-clipboard-button-BVFYcsg_.js +0 -1
  1176. package/build/assets/createLucideIcon-D3nkdIAN.js +0 -1
  1177. package/build/assets/declaration-B0yY_dkQ.js +0 -1
  1178. package/build/assets/device-verify-DRupI_hz.js +0 -1
  1179. package/build/assets/dist-D5d5zm8o.js +0 -1
  1180. package/build/assets/dist-fV7trlfb.js +0 -1
  1181. package/build/assets/dropdown-classes-5IsMjYYw.js +0 -1
  1182. package/build/assets/edit-automation-modal-BG-gd82b.js +0 -1
  1183. package/build/assets/ellipsis-button-DWvVZO_r.js +0 -1
  1184. package/build/assets/entry.client-uhbVfCtd.js +0 -2
  1185. package/build/assets/enum-filter-dropdown-CB2fqz_e.js +0 -1
  1186. package/build/assets/environment-switch-overlay-Oeal5TVq.js +0 -1
  1187. package/build/assets/extensions-hub-DxiE0AZR.js +0 -1
  1188. package/build/assets/files-tab-1F2OlNeH.js +0 -1
  1189. package/build/assets/files-tab-store-C1q5Rbx3.js +0 -1
  1190. package/build/assets/folder-C5tr7xyN.js +0 -1
  1191. package/build/assets/get-language-from-path-E1JKsbeE.js +0 -1
  1192. package/build/assets/git-provider-icon-CKs-22Ts.js +0 -1
  1193. package/build/assets/home-B3E0le0g.js +0 -1
  1194. package/build/assets/iconBase-DMoh3FEg.js +0 -1
  1195. package/build/assets/index-redirect-DhuK5mhS.js +0 -1
  1196. package/build/assets/install-server-modal-DjintV14.js +0 -1
  1197. package/build/assets/is-backend-llm-ready-Bj44pekN.js +0 -1
  1198. package/build/assets/launch-DCU3S84p.js +0 -1
  1199. package/build/assets/lesson-plan-BUUPKVsa.js +0 -3
  1200. package/build/assets/link-external-CF4KHxx-.js +0 -1
  1201. package/build/assets/llm-client-BakM_czF.js +0 -1
  1202. package/build/assets/llm-not-configured-banner-BV-NIjfR.js +0 -27
  1203. package/build/assets/llm-settings-B5d7PHzz.js +0 -1
  1204. package/build/assets/llm-settings-C5whb-0p.js +0 -1
  1205. package/build/assets/loader-circle-DyX8DmLg.js +0 -1
  1206. package/build/assets/loading-spinner-BvOAco8a.js +0 -1
  1207. package/build/assets/manage-backends-modal-D9ClxVpM.js +0 -1
  1208. package/build/assets/manifest-38a873aa.js +0 -1
  1209. package/build/assets/mcp-7rk44GRS.js +0 -9
  1210. package/build/assets/mcp-client-DxHXYNOw.js +0 -1
  1211. package/build/assets/messages-DgBEaXil.js +0 -43
  1212. package/build/assets/modal-backdrop-DjAC2zOZ.js +0 -1
  1213. package/build/assets/modal-body-OJdIUJ68.js +0 -1
  1214. package/build/assets/modal-close-button-BNjGesHc.js +0 -1
  1215. package/build/assets/model-selector-w2uGPM5y.js +0 -1
  1216. package/build/assets/navigation-context-CUJ60pLI.js +0 -1
  1217. package/build/assets/navigation-link-BiPKTOHF.js +0 -1
  1218. package/build/assets/onboarding-Cit87z8g.js +0 -1
  1219. package/build/assets/onboarding-modal-JPrzvr8W.js +0 -1
  1220. package/build/assets/openhands-logo-uNs9g6LY.js +0 -1
  1221. package/build/assets/option-service.api-BLYUhnCF.js +0 -1
  1222. package/build/assets/organization-service.api-DpSSwlZu.js +0 -1
  1223. package/build/assets/path-utils-B4WAVqvK.js +0 -1
  1224. package/build/assets/plan-components-DSOTFW2D.js +0 -1
  1225. package/build/assets/planner-tab-LmoxgKKe.js +0 -1
  1226. package/build/assets/preload-helper-D_sPnjeL.js +0 -1
  1227. package/build/assets/profiles-client-B4SJ4ZAf.js +0 -1
  1228. package/build/assets/providers-BGUAB8kf.js +0 -1
  1229. package/build/assets/react-Dn-iWFF5.js +0 -1
  1230. package/build/assets/react-dom-BBXlXOZX.js +0 -1
  1231. package/build/assets/react-uQK8du1l.js +0 -1
  1232. package/build/assets/recommended-automations-launcher-Df9MXUpX.js +0 -50
  1233. package/build/assets/root-BShAdYGY.css +0 -1
  1234. package/build/assets/root-C99reK-P.js +0 -2
  1235. package/build/assets/root-layout-BtH64XeC.js +0 -2
  1236. package/build/assets/runtime-waiting-state-C7MjXDeW.js +0 -1
  1237. package/build/assets/schema-field-BCDuEMrl.js +0 -1
  1238. package/build/assets/sdk-section-page-XJN9mGju.js +0 -1
  1239. package/build/assets/sdk-settings-schema-B15AE1GH.js +0 -1
  1240. package/build/assets/search-rob4u9f8.js +0 -1
  1241. package/build/assets/secrets-service-CrPyCR8u.js +0 -1
  1242. package/build/assets/secrets-settings-UJn15N7E.js +0 -1
  1243. package/build/assets/settings-C5aUD_sQ.js +0 -1
  1244. package/build/assets/settings-dropdown-input-DQRt2_RA.js +0 -1
  1245. package/build/assets/settings-gear-B7bZDo_8.js +0 -1
  1246. package/build/assets/settings-index-zP_rYIW1.js +0 -1
  1247. package/build/assets/settings-input-n8FzVso3.js +0 -1
  1248. package/build/assets/settings-list-classes-DquY3fwm.js +0 -1
  1249. package/build/assets/settings-modal-szlQ6LpE.js +0 -1
  1250. package/build/assets/settings-section-header-context-DrXgyNC-.js +0 -1
  1251. package/build/assets/settings-service.api-B4G8NzCM.js +0 -1
  1252. package/build/assets/settings-switch-DsbEm3ie.js +0 -1
  1253. package/build/assets/shared-conversation-BrAvqeaI.js +0 -1
  1254. package/build/assets/sidebar-mobile-menu-toggle-BRZGCe-l.js +0 -1
  1255. package/build/assets/sidebar-nav-link-B_EygIce.js +0 -1
  1256. package/build/assets/skill-card-pill-row-Bq9Imkdh.js +0 -1
  1257. package/build/assets/skills-Wg6i0kbu.js +0 -1
  1258. package/build/assets/skills-client-DNd444Bm.js +0 -1
  1259. package/build/assets/skills-plugins-DaGkVI7-.js +0 -1
  1260. package/build/assets/skills-settings-Dlp0WFaT.js +0 -2
  1261. package/build/assets/styled-tooltip-ulgpZDga.js +0 -1
  1262. package/build/assets/suspense-BqBQEuKs.js +0 -1
  1263. package/build/assets/switch-skeleton-C49gVWOQ.js +0 -1
  1264. package/build/assets/task-list-tab-Bz-UlCm2.js +0 -1
  1265. package/build/assets/telemetry-DD3HKMgf.js +0 -2
  1266. package/build/assets/terminal-BwLvVzyJ.js +0 -1
  1267. package/build/assets/toggle-switch-CxW8-lBI.js +0 -1
  1268. package/build/assets/typography-BLf_mRKH.js +0 -1
  1269. package/build/assets/u-check-circle-CxTAJuY9.js +0 -1
  1270. package/build/assets/u-check-circle-half-Bj73jfUG.js +0 -1
  1271. package/build/assets/u-circuit-C-6V9H9C.js +0 -1
  1272. package/build/assets/u-edit-C7OnK2sa.js +0 -1
  1273. package/build/assets/use-acp-credential-form-oehc057O.js +0 -1
  1274. package/build/assets/use-active-conversation-CFXVX2on.js +0 -1
  1275. package/build/assets/use-agent-state-D6xfZA4-.js +0 -1
  1276. package/build/assets/use-backends-health-93yRIOWs.js +0 -1
  1277. package/build/assets/use-breakpoint-Xdy_aZHE.js +0 -1
  1278. package/build/assets/use-click-outside-element-CADb_gCP.js +0 -1
  1279. package/build/assets/use-cloud-current-user-id-CzOXsy04.js +0 -1
  1280. package/build/assets/use-config-oXjEWyb6.js +0 -1
  1281. package/build/assets/use-create-conversation-D-YkgrxS.js +0 -1
  1282. package/build/assets/use-create-secret-CX7Ij7W4.js +0 -1
  1283. package/build/assets/use-event-store-DMRAQQi8.js +0 -1
  1284. package/build/assets/use-handle-plan-click-CwW2Ijc2.js +0 -1
  1285. package/build/assets/use-is-authed-CNbX1KMm.js +0 -1
  1286. package/build/assets/use-launch-skill-in-chat-xI9byRUw.js +0 -1
  1287. package/build/assets/use-llm-profiles-BXRZ2rBh.js +0 -1
  1288. package/build/assets/use-runtime-is-ready-Dwzs9_vp.js +0 -1
  1289. package/build/assets/use-settings-_usWr_qn.js +0 -1
  1290. package/build/assets/use-settings-nav-items-DoB5iH-7.js +0 -16
  1291. package/build/assets/use-skills-BtorhoCN.js +0 -1
  1292. package/build/assets/use-task-list-u46BhYBC.js +0 -1
  1293. package/build/assets/use-tracking-Ca7p71hH.js +0 -1
  1294. package/build/assets/use-user-conversation-U-16WF6G.js +0 -1
  1295. package/build/assets/useMutation-CseCrRRO.js +0 -1
  1296. package/build/assets/useQuery-bowvACed.js +0 -1
  1297. package/build/assets/useTranslation-KhTtKmnv.js +0 -1
  1298. package/build/assets/utils-cRyMoFbz.js +0 -1
  1299. package/build/assets/vendor~conversation-panel~conversation~alert-banner-CjfR7T3x.js +0 -1
  1300. package/build/assets/vendor~entry.client-_zl82x5T.js +0 -1
  1301. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~dj9x5fm9-CgCGB-3J.js +0 -177
  1302. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~jfvr34cq-BJdsUTJG.js +0 -1
  1303. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~m3df9r20-BynFAJ_S.js +0 -1
  1304. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~nk00xiud-MfCRtPrK.js +0 -9
  1305. package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~ghtfhmuy-BHDILMe2.js +0 -1
  1306. package/build/assets/vendor~root-layout~conversation-panel~conversation-BFZmbXpq.js +0 -1
  1307. package/build/assets/vendor~root-layout~conversation-panel~conversation~index-BPY-kNjK.js +0 -1
  1308. package/build/assets/vendor~root-layout~home~conversation-panel~conversation-BhWqQNmF.js +0 -1
  1309. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~cfyi58ut-CnnEa0dP.js +0 -1
  1310. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~clac83qc-DMX6XUwI.js +0 -2
  1311. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ldu51w4e-Cqp6k3RG.js +0 -1
  1312. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~extensions-hub~skills-settings~mcp~~ldu51w4e-DS4GWhCz.js +0 -9
  1313. package/build/assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~ji28rqgb-DVffa9Ks.js +0 -48
  1314. package/build/assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-BzR6ypP3.js +0 -1
  1315. package/build/assets/vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~hzfcl1q6-BcvHZmEZ.js +0 -2
  1316. package/build/assets/vendor~root-layout~home~mcp~llm-settings~agent-settings~condenser-settings~verification-set~hzfcl1q6-Cuvp6wqR.js +0 -14
  1317. package/build/assets/verification-settings-DKZnUHD6.js +0 -1
  1318. package/build/assets/x-DpnGZyVW.js +0 -1
  1319. package/build/assets/x-mark-x3tvCZzc.js +0 -1
  1320. package/dist/components/features/analytics/analytics-consent-form-modal.d.ts +0 -5
  1321. package/dist/components/features/chat/switch-profile-button.cjs +0 -2
  1322. package/dist/components/features/chat/switch-profile-button.cjs.map +0 -1
  1323. package/dist/components/features/chat/switch-profile-button.d.ts +0 -1
  1324. package/dist/components/features/chat/switch-profile-button.js +0 -48
  1325. package/dist/components/features/chat/switch-profile-button.js.map +0 -1
  1326. package/dist/components/features/chat/switch-profile-context-menu.cjs +0 -2
  1327. package/dist/components/features/chat/switch-profile-context-menu.cjs.map +0 -1
  1328. package/dist/components/features/chat/switch-profile-context-menu.d.ts +0 -9
  1329. package/dist/components/features/chat/switch-profile-context-menu.js +0 -106
  1330. package/dist/components/features/chat/switch-profile-context-menu.js.map +0 -1
  1331. package/dist/components/features/onboarding/is-backend-llm-ready.d.ts +0 -30
  1332. package/dist/icons/u-circuit.cjs +0 -2
  1333. package/dist/icons/u-circuit.cjs.map +0 -1
  1334. package/dist/icons/u-circuit.js +0 -19
  1335. package/dist/icons/u-circuit.js.map +0 -1
  1336. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.cjs +0 -2
  1337. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.cjs.map +0 -1
  1338. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.js +0 -35
  1339. package/dist/node_modules/@openhands/extensions/integrations/catalog/clickup.js.map +0 -1
  1340. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.cjs +0 -2
  1341. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.cjs.map +0 -1
  1342. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.js +0 -35
  1343. package/dist/node_modules/@openhands/extensions/integrations/catalog/dropbox.js.map +0 -1
  1344. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.cjs +0 -2
  1345. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.cjs.map +0 -1
  1346. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.js +0 -35
  1347. package/dist/node_modules/@openhands/extensions/integrations/catalog/freshdesk.js.map +0 -1
  1348. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs +0 -2
  1349. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.cjs.map +0 -1
  1350. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js +0 -35
  1351. package/dist/node_modules/@openhands/extensions/integrations/catalog/gitlab.js.map +0 -1
  1352. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.cjs +0 -2
  1353. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.cjs.map +0 -1
  1354. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.js +0 -35
  1355. package/dist/node_modules/@openhands/extensions/integrations/catalog/mailchimp.js.map +0 -1
  1356. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.cjs +0 -2
  1357. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.cjs.map +0 -1
  1358. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.js +0 -35
  1359. package/dist/node_modules/@openhands/extensions/integrations/catalog/pipedrive.js.map +0 -1
  1360. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.cjs +0 -2
  1361. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.cjs.map +0 -1
  1362. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.js +0 -28
  1363. package/dist/node_modules/@openhands/extensions/integrations/catalog/plaid.js.map +0 -1
  1364. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.cjs +0 -2
  1365. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.cjs.map +0 -1
  1366. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.js +0 -35
  1367. package/dist/node_modules/@openhands/extensions/integrations/catalog/servicenow.js.map +0 -1
  1368. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.cjs +0 -2
  1369. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.cjs.map +0 -1
  1370. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.js +0 -35
  1371. package/dist/node_modules/@openhands/extensions/integrations/catalog/shopify.js.map +0 -1
  1372. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.cjs +0 -2
  1373. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.cjs.map +0 -1
  1374. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.js +0 -35
  1375. package/dist/node_modules/@openhands/extensions/integrations/catalog/zendesk.js.map +0 -1
  1376. /package/build/assets/{agent-server-ui-style-scope-CIDFDeQb.js → agent-server-ui-style-scope-COnDHTm5.js} +0 -0
  1377. /package/build/assets/{automation-DNgDxqtq.js → automation-BU8zu-FP.js} +0 -0
  1378. /package/build/assets/{common-KeiA2Rod.js → common-Dh7OqABE.js} +0 -0
  1379. /package/build/assets/{environment-switch-store-BpKxp6Xq.js → environment-switch-store-DkjlKWzN.js} +0 -0
  1380. /package/build/assets/{extension-module-card-classes-DvvyImGv.js → extension-module-card-classes-9V3J9J_b.js} +0 -0
  1381. /package/build/assets/{git-status-mapper-B3_HbzUT.js → git-status-mapper-BI8FyUVp.js} +0 -0
  1382. /package/build/assets/{handle-capture-consent-BChvj6mt.js → handle-capture-consent-CPMXU29K.js} +0 -0
  1383. /package/build/assets/{llm-subscription-C1xDoa3K.js → llm-subscription-DtsX5Lhg.js} +0 -0
  1384. /package/build/assets/{map-provider-MonJL5SS.js → map-provider-BM2SJarp.js} +0 -0
  1385. /package/build/assets/{objectWithoutPropertiesLoose-BRYudkUn.js → objectWithoutPropertiesLoose-BgYIAs2y.js} +0 -0
  1386. /package/build/assets/{rolldown-runtime-wFmyQBCi.js → rolldown-runtime-BFRubm34.js} +0 -0
  1387. /package/build/assets/{settings-like-page-layout-classes-DNg2vKSM.js → settings-like-page-layout-classes-DENKlZpD.js} +0 -0
  1388. /package/build/assets/{v4-BMWDcIWQ.js → v4-DbCkTSoU.js} +0 -0
  1389. /package/build/assets/{vendor~browser-yZEspfT9.js → vendor~browser-Dqd33JyP.js} +0 -0
  1390. /package/build/assets/{vendor~terminal-CcUoOdAH.js → vendor~terminal-aeP3PnKf.js} +0 -0
@@ -56,6 +56,8 @@ python3 scripts/fetch_skill.py "https://github.com/OpenHands/extensions/tree/mai
56
56
  ls /path/to/workspace/.agents/skills/codereview/SKILL.md
57
57
  \`\`\`
58
58
 
59
+ On Windows, use \`python\` if \`python3\` is not available and verify with PowerShell, for example: \`Test-Path C:\\path\\to\\workspace\\.agents\\skills\\codereview\\SKILL.md\`.
60
+
59
61
  Response: "✅ Added \`codereview\` to your workspace. The skill is now available."
60
62
 
61
63
  ## Notes
@@ -101,12 +103,28 @@ HTTP \`200\` means the backend and key work.
101
103
 
102
104
  Use \`POST /api/conversations\` with:
103
105
 
104
- - current \`/api/settings\` as the base agent profile
106
+ - the **encrypted** \`agent_settings\` from \`GET /api/settings\` (with \`X-Expose-Secrets: encrypted\`), which carries the real Fernet-encrypted \`llm.api_key\`, the existing \`agent_context\`, and the agent kind — so you never handle plaintext credentials and you don't drop the caller's skill/context config
107
+ - \`secrets_encrypted: true\` so the agent-server decrypts that \`api_key\` server-side
108
+ - the exec tool set merged into \`agent_settings.tools\` (and \`task_tool_set\` when you enable sub-agents)
109
+ - \`tool_module_qualnames\` for any non-SDK tools (e.g. \`canvas_ui\`)
110
+ - \`agent_context.load_public_skills\`/\`load_user_skills\`/\`load_project_skills\` set to \`true\` if the delegated agent should inherit bundled/user/project skills
105
111
  - a fresh absolute workspace directory
106
112
  - \`initial_message.run: true\`
107
113
  - \`worktree: false\` when the workspace is already isolated
108
114
 
109
- Template:
115
+ ### Credential handling — important
116
+
117
+ \`GET /api/settings\` (default) **masks** every credential — \`llm.api_key\` comes back as the literal string \`"**********"\`. If you forward that verbatim, the new conversation authenticates with the placeholder and fails immediately with \`LLMAuthenticationError\` (\`You must provide an API key\`).
118
+
119
+ The supported way to obtain forwardable credentials is the **\`X-Expose-Secrets: encrypted\`** request header. With it, \`/api/settings\` returns the real \`llm.api_key\` as a **Fernet-encrypted token** (starts with \`gAAAAA\`) intended to be sent back to the server with \`secrets_encrypted: true\`; the agent-server's \`decrypt_incoming_llm_secrets\` decrypts it server-side. Do **not** read \`~/.openhands/profiles/*.json\` directly — that is brittle (the caller may not share the backend's home directory, \`active_profile\` may be null, the profile store may live elsewhere).
120
+
121
+ Two working approaches:
122
+
123
+ 1. **\`agent_profile_id\` (simplest, but no tools)** — send only \`agent_profile_id: "<uuid>"\` (from \`GET /api/agent-profiles\` → the profile whose \`id\` equals \`active_agent_profile_id\` from \`/api/settings\`). The server resolves the LLM key + agent kind from the profile. Mutually exclusive with \`agent\`/\`agent_settings\`, and the \`openhands\` agent-profile schema forbids \`tools\`/\`include_default_tools\`, so the conversation gets **zero exec tools** this way. Use only when the task needs no tools.
124
+
125
+ 2. **Encrypted \`agent_settings\` (full tools, preserves context)** — start from the encrypted \`/api/settings\` \`agent_settings\` payload, drop \`schema_version\` and \`mcp_config\` (to avoid MCP-connection failures at creation time), merge in the exec tool set and \`load_*_skills\` flags, and send with \`secrets_encrypted: true\`. This is the pattern for real delegated work.
126
+
127
+ Template (full tools, preserves context):
110
128
 
111
129
  \`\`\`bash
112
130
  set -euo pipefail
@@ -121,26 +139,57 @@ test -n "$KEY" || { echo "No Agent Canvas session API key found" >&2; exit 1; }
121
139
  WORKDIR="\${WORKDIR:-$HOME/workspace/delegated/$(date +%Y%m%d-%H%M%S)}"
122
140
  mkdir -p "$WORKDIR"
123
141
 
124
- SETTINGS_JSON="$(curl -sS -H "X-Session-API-Key: $KEY" "$BASE/api/settings")"
142
+ # Fetch the agent_settings with ENCRYPTED secrets exposed. This returns the
143
+ # real llm.api_key as a Fernet token (gAAAAA...) plus the existing
144
+ # agent_context/agent kind, so we preserve the caller's config and never
145
+ # handle plaintext credentials.
146
+ SETTINGS_JSON="$(curl -sS -H "X-Session-API-Key: $KEY" -H "X-Expose-Secrets: encrypted" "$BASE/api/settings")"
147
+
125
148
  PROMPT='Write a complete, task-specific prompt here. Include repo, branch, constraints, validation, and expected report.'
126
149
 
127
150
  PAYLOAD="$(jq -n --argjson settings "$SETTINGS_JSON" --arg prompt "$PROMPT" --arg workdir "$WORKDIR" '
128
- def agent_settings:
151
+ # Start from the encrypted agent_settings so llm.api_key (Fernet token),
152
+ # agent_kind, and agent_context are preserved. Drop schema_version and
153
+ # mcp_config (MCP servers can fail to connect at creation time; the profile
154
+ # can be re-resolved later if needed).
155
+ def base_agent_settings:
129
156
  ($settings.agent_settings // {})
130
157
  | del(.schema_version)
131
- | . + {
132
- agent_context: ((.agent_context // {}) + {
133
- load_public_skills: true,
134
- load_user_skills: true,
135
- load_project_skills: true
136
- })
137
- };
158
+ | del(.mcp_config);
159
+
160
+ # Merge the exec tool set into the existing tools list. Include task_tool_set
161
+ # when sub-agents are enabled — enable_sub_agents alone does not expose the
162
+ # delegation tool; Agent Canvas adds task_tool_set for that.
163
+ def with_tools:
164
+ .tools = ((.tools // []) + [
165
+ {name: "terminal", params: {}},
166
+ {name: "file_editor", params: {}},
167
+ {name: "task_tracker", params: {}},
168
+ {name: "browser_tool_set", params: {}},
169
+ {name: "canvas_ui", params: {}}
170
+ ] + (if .enable_sub_agents then [{name: "task_tool_set", params: {}}] else [] end)
171
+ | unique_by(.name));
172
+
173
+ # Preserve the existing agent_context and enable skill loading for the
174
+ # delegated agent (defaults are false, so set these explicitly).
175
+ def with_skill_loading:
176
+ .agent_context = ((.agent_context // {}) + {
177
+ load_public_skills: true,
178
+ load_user_skills: true,
179
+ load_project_skills: true
180
+ });
181
+
138
182
  ($settings.conversation_settings // {}) as $conv |
139
183
  {
140
- agent_settings: agent_settings,
184
+ secrets_encrypted: true,
185
+ agent_settings: (base_agent_settings | with_tools | with_skill_loading),
186
+ tool_module_qualnames: { canvas_ui: "canvas_ui_tool" },
141
187
  workspace: {kind: "LocalWorkspace", working_dir: $workdir},
142
188
  confirmation_policy: {kind: "NeverConfirm"},
143
- max_iterations: (($conv.max_iterations // 80) | if . == null then 80 else . end),
189
+ # Delegated tasks usually need more than the SDK default of 80 iterations;
190
+ # default to the caller's conversation_settings value (1000 in Agent Canvas)
191
+ # so long-running tasks aren't cut off prematurely. Override per-task if needed.
192
+ max_iterations: (($conv.max_iterations // 1000) | if . == null then 1000 else . end),
144
193
  stuck_detection: true,
145
194
  autotitle: true,
146
195
  worktree: false,
@@ -158,6 +207,20 @@ curl -sS -X POST "$BASE/api/conversations" \\
158
207
  --data-binary "$PAYLOAD" | jq '{id, title, execution_status, workspace}'
159
208
  \`\`\`
160
209
 
210
+ Verify the new conversation actually has tools and is running (not errored):
211
+
212
+ \`\`\`bash
213
+ CID="<conversation_id>"
214
+ curl -sS -H "X-Session-API-Key: $KEY" "$BASE/api/conversations/$CID" \\
215
+ | jq '{execution_status, tools: [.agent.tools[]?.name]}'
216
+ curl -sS -H "X-Session-API-Key: $KEY" "$BASE/api/conversations/$CID/events/search?limit=20" \\
217
+ | jq '[.events[]? | select(.kind=="ConversationErrorEvent") | .code] // []'
218
+ \`\`\`
219
+
220
+ \`execution_status\` should be \`running\`/\`idle\`/\`finished\` (not \`error\`), \`tools\` should list the exec tools, and there should be no \`ConversationErrorEvent\`.
221
+
222
+ If MCP servers configured in the profile are unreachable, conversation creation can fail with \`MCP Connection Failure\`; the template drops \`mcp_config\` from the forwarded \`agent_settings\` to avoid that.
223
+
161
224
  Report both links:
162
225
 
163
226
  - UI: \`http://localhost:8000/conversations/<conversation_id>\`
@@ -439,6 +502,8 @@ git remote -v && git branch # to find the current org, repo and branch
439
502
  git checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget
440
503
  \`\`\`
441
504
 
505
+ On Windows PowerShell, run those \`git\` commands as separate commands if \`&&\` is not supported by the installed shell.
506
+
442
507
  ## Azure DevOps API Usage
443
508
 
444
509
  When working with Azure DevOps API, you need to use Basic authentication with your Personal Access Token (PAT). The username is ignored (empty string), and the password is the PAT.
@@ -452,11 +517,115 @@ AUTH=$(echo -n ":$AZURE_DEVOPS_TOKEN" | base64)
452
517
  curl -H "Authorization: Basic $AUTH" -H "Content-Type: application/json" https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.1
453
518
  \`\`\`
454
519
 
520
+ PowerShell equivalent for the PAT header:
521
+
522
+ \`\`\`powershell
523
+ $auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$env:AZURE_DEVOPS_TOKEN"))
524
+ Invoke-RestMethod \`
525
+ -Headers @{ Authorization = "Basic $auth"; "Content-Type" = "application/json" } \`
526
+ -Uri "https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.1"
527
+ \`\`\`
528
+
455
529
  Common API endpoints:
456
530
  - List repositories: \`https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.1\`
457
531
  - Get repository details: \`https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}?api-version=7.1\`
458
532
  - List pull requests: \`https://dev.azure.com/{organization}/{project}/_apis/git/pullrequests?api-version=7.1\`
459
- - Create pull request: \`https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?api-version=7.1\` (POST)`},{name:`bitbucket`,description:`Interact with Bitbucket repositories and pull requests using the BITBUCKET_TOKEN environment variable. Use when working with code hosted on Bitbucket or managing Bitbucket resources via API.`,triggers:[`bitbucket`,`git`],content:'You have access to an environment variable, `BITBUCKET_TOKEN`, which allows you to interact with\nthe Bitbucket API.\n\n<IMPORTANT>\nYou can use `curl` with the `BITBUCKET_TOKEN` to interact with Bitbucket\'s API.\nALWAYS use the Bitbucket API for operations instead of a web browser.\nALWAYS use the `create_bitbucket_pr` tool to open a pull request\n</IMPORTANT>\n\nOnly rewrite the Bitbucket remote if a push actually fails with authentication errors and the user has asked you to push. Do not proactively rewrite `origin`. OpenHands OSS commonly stores `BITBUCKET_TOKEN` in the same unencoded `user:token` form used by commands such as `curl --user "$BITBUCKET_TOKEN" ...`, so keep it in that form unless you truly need to embed it in a Git remote URL.\n\nIf you need a non-interactive HTTPS remote URL, split `BITBUCKET_TOKEN` on the first `:` and URL-encode each part before calling `git remote set-url`. This avoids breaking usernames or emails that contain reserved URL characters such as `@`:\n\n```bash\nBB_USER="${BITBUCKET_TOKEN%%:*}" && \\\nBB_PASS="${BITBUCKET_TOKEN#*:}" && \\\nENCODED_USER=$(python3 -c \'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))\' "$BB_USER") && \\\nENCODED_PASS=$(python3 -c \'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))\' "$BB_PASS") && \\\ngit remote set-url origin "https://${ENCODED_USER}:${ENCODED_PASS}@bitbucket.org/username/repo.git"\n```\n\nAtlassian\'s Bitbucket Cloud docs recommend avoiding long-lived credentials in the remote URL when possible. Their API token examples use either `https://{bitbucket_username}:{api_token}@...` or `https://x-bitbucket-api-token-auth:{api_token}@...`; OpenHands users should only construct those URLs on demand, with proper URL encoding.\n\nHere are some instructions for pushing, but ONLY do this if the user asks you to:\n* NEVER push directly to the `main` or `master` branch\n* Git config (username and email) is pre-set. Do not modify.\n* You may already be on a branch starting with `openhands-workspace`. Create a new branch with a better name before pushing.\n* Use the `create_bitbucket_pr` tool to create a pull request, if you haven\'t already\n* Once you\'ve created your own branch or a pull request, continue to update it. Do NOT create a new one unless you are explicitly asked to. Update the PR title and description as necessary, but don\'t change the branch name.\n* Use the main branch as the base branch, unless the user requests otherwise\n* After opening or updating a pull request, send the user a short message with a link to the pull request.\n* Do NOT mark a pull request as ready to review unless the user explicitly says so\n* Do all of the above in as few steps as possible. E.g. you could push changes with one step by running the following bash commands:\n```bash\ngit remote -v && git branch # to find the current org, repo and branch\ngit checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget\n```'},{name:`code-review`,description:`Rigorous code review focusing on data structures, simplicity, security, pragmatism, and risk/safety evaluation. Provides brutally honest, actionable feedback on pull requests or merge requests, including a risk assessment for every review. Use when reviewing code changes.`,triggers:[`/codereview`,`/codereview-roasted`],content:`PERSONA:
533
+ - Create pull request: \`https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?api-version=7.1\` (POST)`},{name:`bitbucket`,description:`Bitbucket integration hub. Detects whether the repository is on Bitbucket Cloud or Bitbucket Data Center and directs you to the matching detailed skill (bitbucket-cloud or bitbucket-data-center). Use for any Bitbucket repository or pull request task.`,triggers:[`bitbucket`,`git`],content:`You are working with **Bitbucket**, which ships as two distinct products that behave
534
+ differently:
535
+
536
+ - **Bitbucket Cloud** (\`bitbucket.org\`) — authenticates with the \`BITBUCKET_TOKEN\`
537
+ environment variable.
538
+ - **Bitbucket Data Center** (self-hosted Bitbucket Server) — authenticates with the
539
+ \`BITBUCKET_DATA_CENTER_TOKEN\` environment variable.
540
+
541
+ They use different REST APIs, repository identifiers, git remote URL formats, and pull
542
+ request tools, so you must first determine which one you are on, then load the matching
543
+ detailed skill for full instructions.
544
+
545
+ ## Step 1 — Detect which Bitbucket you are on
546
+
547
+ Check which token environment variable is present. Environment variable names are
548
+ case-sensitive, so look for it case-insensitively:
549
+
550
+ \`\`\`bash
551
+ env | grep -i 'bitbucket' || echo "no bitbucket token found"
552
+ \`\`\`
553
+
554
+ - If a **\`BITBUCKET_DATA_CENTER_TOKEN\`** variable is set (in any letter case) → you are on
555
+ **Bitbucket Data Center**.
556
+ - Otherwise, if a **\`BITBUCKET_TOKEN\`** variable is set → you are on **Bitbucket Cloud**.
557
+ - If neither is set, ask the user how they authenticate to Bitbucket before proceeding.
558
+
559
+ When you reference the token later, use the exact variable name (and letter case) that
560
+ actually exists in the environment.
561
+
562
+ ## Step 2 — Load the detailed skill
563
+
564
+ Once you know the environment, use the \`invoke_skill\` tool to load the matching skill for
565
+ full instructions on API calls, authenticated git remotes, and opening pull requests:
566
+
567
+ - Bitbucket Cloud → invoke the **\`bitbucket-cloud\`** skill.
568
+ - Bitbucket Data Center → invoke the **\`bitbucket-data-center\`** skill.
569
+
570
+ ## Quick reference (fallback)
571
+
572
+ If you are unable to load the detailed skill, these are the essentials. Always use the
573
+ Bitbucket API (not a web browser) and always use the listed PR tool to open a pull request.
574
+
575
+ | | Bitbucket Cloud | Bitbucket Data Center |
576
+ |---|---|---|
577
+ | Token env var | \`BITBUCKET_TOKEN\` | \`BITBUCKET_DATA_CENTER_TOKEN\` |
578
+ | Host | \`bitbucket.org\` | self-hosted domain |
579
+ | REST API base | \`https://api.bitbucket.org/2.0\` | \`https://<host>/rest/api/1.0\` |
580
+ | Repository identifier | \`workspace/repo_slug\` | \`PROJECT/repo_slug\` (project key) |
581
+ | Pull request tool | \`create_bitbucket_pr\` | \`create_bitbucket_data_center_pr\` |`},{name:`bitbucket-cloud`,description:`Bitbucket Cloud (bitbucket.org) specifics — authenticate with BITBUCKET_TOKEN, use the REST API v2, workspace/repo_slug repositories, and the create_bitbucket_pr tool. Loaded on demand by the bitbucket skill once a Cloud environment is detected.`,triggers:[],content:'You are working with **Bitbucket Cloud** (`bitbucket.org`). You have access to an\nenvironment variable, `BITBUCKET_TOKEN`, which allows you to interact with the Bitbucket\nCloud API.\n\n- REST API base URL: `https://api.bitbucket.org/2.0`\n- Repository identifier format: `workspace/repo_slug`\n\n<IMPORTANT>\nYou can use `curl` with the `BITBUCKET_TOKEN` to interact with Bitbucket\'s API.\nALWAYS use the Bitbucket API for operations instead of a web browser.\nALWAYS use the `create_bitbucket_pr` tool to open a pull request\n</IMPORTANT>\n\nOnly rewrite the Bitbucket remote if a push actually fails with authentication errors and the user has asked you to push. Do not proactively rewrite `origin`. OpenHands OSS commonly stores `BITBUCKET_TOKEN` in the same unencoded `user:token` form used by commands such as `curl --user "$BITBUCKET_TOKEN" ...`, so keep it in that form unless you truly need to embed it in a Git remote URL.\n\nIf you need a non-interactive HTTPS remote URL, split `BITBUCKET_TOKEN` on the first `:` and URL-encode each part before calling `git remote set-url`. This avoids breaking usernames or emails that contain reserved URL characters such as `@`:\n\n```bash\nBB_USER="${BITBUCKET_TOKEN%%:*}" && \\\nBB_PASS="${BITBUCKET_TOKEN#*:}" && \\\nENCODED_USER=$(python3 -c \'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))\' "$BB_USER") && \\\nENCODED_PASS=$(python3 -c \'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))\' "$BB_PASS") && \\\ngit remote set-url origin "https://${ENCODED_USER}:${ENCODED_PASS}@bitbucket.org/username/repo.git"\n```\n\nPowerShell equivalent for the remote URL encoding:\n\n```powershell\n$parts = $env:BITBUCKET_TOKEN -split ":", 2\n$encodedUser = [Uri]::EscapeDataString($parts[0])\n$encodedPass = [Uri]::EscapeDataString($parts[1])\ngit remote set-url origin "https://${encodedUser}:${encodedPass}@bitbucket.org/username/repo.git"\n```\n\nAtlassian\'s Bitbucket Cloud docs recommend avoiding long-lived credentials in the remote URL when possible. Their API token examples use either `https://{bitbucket_username}:{api_token}@...` or `https://x-bitbucket-api-token-auth:{api_token}@...`; OpenHands users should only construct those URLs on demand, with proper URL encoding.\n\nHere are some instructions for pushing, but ONLY do this if the user asks you to:\n* NEVER push directly to the `main` or `master` branch\n* Git config (username and email) is pre-set. Do not modify.\n* You may already be on a branch starting with `openhands-workspace`. Create a new branch with a better name before pushing.\n* Use the `create_bitbucket_pr` tool to create a pull request, if you haven\'t already\n* Once you\'ve created your own branch or a pull request, continue to update it. Do NOT create a new one unless you are explicitly asked to. Update the PR title and description as necessary, but don\'t change the branch name.\n* Use the main branch as the base branch, unless the user requests otherwise\n* After opening or updating a pull request, send the user a short message with a link to the pull request.\n* Do NOT mark a pull request as ready to review unless the user explicitly says so\n* Do all of the above in as few steps as possible. E.g. you could push changes with one step by running the following bash commands:\n```bash\ngit remote -v && git branch # to find the current org, repo and branch\ngit checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget\n```\n\nOn Windows PowerShell, run those `git` commands as separate commands if `&&` is not supported by the installed shell.'},{name:`bitbucket-data-center`,description:`Bitbucket Data Center (self-hosted Bitbucket Server) specifics — authenticate with BITBUCKET_DATA_CENTER_TOKEN, use the REST API 1.0, PROJECT/repo_slug repositories, scm/ git remotes, and the create_bitbucket_data_center_pr tool. Loaded on demand by the bitbucket skill once a Data Center environment is detected.`,triggers:[],content:`You are working with **Bitbucket Data Center** (self-hosted Bitbucket Server). You have
582
+ access to an environment variable, \`BITBUCKET_DATA_CENTER_TOKEN\`, which contains a basic
583
+ auth token in the format \`username:your-token\` that allows you to interact with the git
584
+ repository and the REST API.
585
+
586
+ > Environment variable names are case-sensitive. If \`BITBUCKET_DATA_CENTER_TOKEN\` is not
587
+ > present, use whichever case variant actually exists (for example
588
+ > \`bitbucket_data_center_token\`). Run \`env | grep -i 'bitbucket_data_center'\` to find it.
589
+
590
+ - REST API base URL: \`https://{domain}/rest/api/1.0\`
591
+ - Repository identifier format: \`PROJECT/repo_slug\` (project key, slash, repo slug)
592
+
593
+ You can use this token to interact with the Bitbucket Data Center REST API:
594
+ \`\`\`bash
595
+ curl -u "\${BITBUCKET_DATA_CENTER_TOKEN}" https://{domain}/rest/api/1.0/...
596
+ \`\`\`
597
+
598
+ <IMPORTANT>
599
+ ALWAYS use the Bitbucket Data Center API for operations instead of a web browser.
600
+ ALWAYS use the \`create_bitbucket_data_center_pr\` tool to open a pull request
601
+ </IMPORTANT>
602
+
603
+ If you encounter authentication issues when pushing to Bitbucket Data Center (such as password prompts or permission errors), the old token may have expired. In such case, update the remote URL to include the current token: \`git remote set-url origin https://\${BITBUCKET_DATA_CENTER_TOKEN}@{domain}/scm/{project_lower}/{repo}.git\`
604
+
605
+ The token is a \`username:token\` pair, so if the username or token contains characters that are reserved in URLs (such as \`@\`), split on the first \`:\` and URL-encode each part before embedding it in a remote:
606
+
607
+ \`\`\`bash
608
+ BB_USER="\${BITBUCKET_DATA_CENTER_TOKEN%%:*}" && \\
609
+ BB_PASS="\${BITBUCKET_DATA_CENTER_TOKEN#*:}" && \\
610
+ ENCODED_USER=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$BB_USER") && \\
611
+ ENCODED_PASS=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$BB_PASS") && \\
612
+ git remote set-url origin "https://\${ENCODED_USER}:\${ENCODED_PASS}@{domain}/scm/{project_lower}/{repo}.git"
613
+ \`\`\`
614
+
615
+ Here are some instructions for pushing, but ONLY do this if the user asks you to:
616
+ * NEVER push directly to the \`main\` or \`master\` branch
617
+ * Git config (username and email) is pre-set. Do not modify.
618
+ * You may already be on a branch starting with \`openhands-workspace\`. Create a new branch with a better name before pushing.
619
+ * Use the \`create_bitbucket_data_center_pr\` tool to create a pull request, if you haven't already
620
+ * Once you've created your own branch or a pull request, continue to update it. Do NOT create a new one unless you are explicitly asked to. Update the PR title and description as necessary, but don't change the branch name.
621
+ * Use the main branch as the base branch, unless the user requests otherwise
622
+ * After opening or updating a pull request, send the user a short message with a link to the pull request.
623
+ * Do NOT mark a pull request as ready to review unless the user explicitly says so
624
+ * Do all of the above in as few steps as possible. E.g. you could push changes with one step by running the following bash commands:
625
+ \`\`\`bash
626
+ git remote -v && git branch # to find the current org, repo and branch
627
+ git checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget
628
+ \`\`\``},{name:`code-review`,description:`Rigorous code review focusing on data structures, simplicity, security, pragmatism, and risk/safety evaluation. Provides brutally honest, actionable feedback on pull requests or merge requests, including a risk assessment for every review. Use when reviewing code changes.`,triggers:[`/codereview`,`/codereview-roasted`],content:`PERSONA:
460
629
  You are a critical code reviewer. Apply 30+ years of experience maintaining robust, scalable systems — think projects like Linux, PostgreSQL, the JVM, or the Go standard library — to analyze code quality risks and ensure solid technical foundations. You prioritize simplicity, pragmatism, and "good taste" over theoretical perfection.
461
630
 
462
631
  CORE PHILOSOPHY:
@@ -485,6 +654,7 @@ The prompt includes a **Files Changed** manifest listing every file in the PR, f
485
654
  3. Only after both checks come up empty should you flag something as missing. Even then, prefer "I could not locate X" over "X is missing" — the file may be in a path you haven't searched.
486
655
 
487
656
  Before posting an **inline review comment that names a specific line number**, verify the line maps to what you think it does (\`sed -n 'X,Yp' <file>\` or \`view\`). Line numbers derived by counting \`+\`/\`-\`/context lines from a \`@@\` hunk header are not reliable; ground them against the file.
657
+ On Windows PowerShell, use \`Get-Content\`, \`Select-String\`, or \`(Get-Content <file>)[($start - 1)..($end - 1)]\` for the same file and line checks.
488
658
 
489
659
  CODE REVIEW SCENARIOS:
490
660
 
@@ -565,7 +735,7 @@ Require:
565
735
  8. **Dependency Changes**
566
736
  If dependency lock changes have downgraded a dependency, comment pointing that out to make sure it was intentional.
567
737
 
568
- When a PR adds a new dependency or bumps an existing one, review the upstream release for supply chain risk. If any target version was published less than 7 days ago, do **NOT** approve the PR yet — leave a blocking review comment and wait until the version is at least 7 days old. Read \`references/supply-chain-security.md\` for the full verification checklist including risk-based scrutiny tiers, concrete commands for checking release provenance, and escalation guidance.
738
+ When a PR adds a new dependency or bumps an existing one, review the upstream release for supply chain risk. If any target version was published less than 7 days ago, do **NOT** approve the PR yet — leave a blocking review comment and wait until the version is at least 7 days old. First-party packages maintained by the same organization as the reviewed repository are intentionally excluded from the 7-day waiting rule, but still scrutinize them for supply-chain risk using the checklist. Read \`references/supply-chain-security.md\` for the full verification checklist including risk-based scrutiny tiers, concrete commands for checking release provenance, and escalation guidance.
569
739
 
570
740
  9. **Risk and Safety Evaluation**
571
741
  Read \`references/risk-evaluation.md\` for the full risk evaluation framework including risk levels (🟢 Low / 🟡 Medium / 🔴 High), risk factors, escalation guidance, and repo-specific risk rules.
@@ -740,6 +910,8 @@ When a review aspect has no findings, include it with an explicit "no issues fou
740
910
  - **\`references/code-quality-review.md\`** - Detailed criteria for naming, complexity, error handling, and project standards compliance
741
911
  - **\`references/efficiency-review.md\`** - Detailed criteria for algorithmic complexity, unnecessary work, resource usage, and I/O patterns`},{name:`datadog`,description:`Query and analyze Datadog logs, metrics, APM traces, and monitors using the Datadog API. Use when debugging production issues, monitoring application performance, or investigating alerts.`,triggers:[`datadog`],content:`# Datadog
742
912
 
913
+ Windows PowerShell equivalents for the Datadog \`curl\`, environment-variable, timestamp, and JSON formatting snippets are in \`references/windows.md\`.
914
+
743
915
  <IMPORTANT>
744
916
  Before performing any Datadog operations, first check if the required environment variables are set:
745
917
 
@@ -952,6 +1124,8 @@ Use this skill when implementing or automating Discord integrations.
952
1124
 
953
1125
  ## Quick recipes
954
1126
 
1127
+ The shell snippets below use POSIX-style environment variables and line continuations. On Windows PowerShell, use \`curl.exe\` for the shown flags and \`$env:DISCORD_WEBHOOK_URL\` / \`$env:DISCORD_BOT_TOKEN\` for environment variables, or translate the request to \`Invoke-RestMethod\`.
1128
+
955
1129
  ### Post a message via an incoming webhook (recommended)
956
1130
 
957
1131
  Discord requires at least one of \`content\`, \`embeds\`, \`components\`, \`file\`, or \`poll\`.
@@ -1023,13 +1197,17 @@ sudo dockerd > /tmp/docker.log 2>&1 &
1023
1197
  sleep 5
1024
1198
  \`\`\`
1025
1199
 
1200
+ On Windows, start Docker Desktop or the Docker service instead of running \`sudo dockerd\`; then run Docker commands from PowerShell without \`sudo\`.
1201
+
1026
1202
  ## Verifying Docker Installation
1027
1203
 
1028
1204
  To verify Docker is working correctly, run the hello-world container:
1029
1205
 
1030
1206
  \`\`\`bash
1031
1207
  sudo docker run hello-world
1032
- \`\`\``},{name:`evidence-based-citations`,description:`Back factual claims and field values with official, verifiable sources. Use when the user asks to fill fields, answer questions, or make claims that must be supported by an exact quote and an official link.`,triggers:[`evidence-based`,`cite source`,`cite sources`,`official source`,`official link`,`official links`,`official docs`,`official documentation`,`verifiable source`],content:`The user wants every field value or factual claim you produce in the current response to be backed by an official, verifiable source. Apply this skill to the response that triggered it; do not assume it stays active for the rest of the conversation unless the user clearly asks for it to.
1208
+ \`\`\`
1209
+
1210
+ PowerShell equivalent after Docker Desktop is running: \`docker run hello-world\`.`},{name:`evidence-based-citations`,description:`Back factual claims and field values with official, verifiable sources. Use when the user asks to fill fields, answer questions, or make claims that must be supported by an exact quote and an official link.`,triggers:[`evidence-based`,`cite source`,`cite sources`,`official source`,`official link`,`official links`,`official docs`,`official documentation`,`verifiable source`],content:`The user wants every field value or factual claim you produce in the current response to be backed by an official, verifiable source. Apply this skill to the response that triggered it; do not assume it stays active for the rest of the conversation unless the user clearly asks for it to.
1033
1211
 
1034
1212
  ## Output format
1035
1213
 
@@ -1121,6 +1299,8 @@ Examples:
1121
1299
  - \`gh pr checks 200 --watch --interval 10\` to check until completed.
1122
1300
  </IMPORTANT>
1123
1301
 
1302
+ Windows PowerShell equivalents for the multi-line shell snippets below are in \`references/windows.md\`.
1303
+
1124
1304
  If you encounter authentication issues when pushing to GitHub (such as password prompts or permission errors), the old token may have expired. In such case, update the remote URL to include the current token: \`git remote set-url origin https://\${GITHUB_TOKEN}@github.com/username/repo.git\`
1125
1305
 
1126
1306
  Here are some instructions for pushing, but ONLY do this if the user asks you to:
@@ -1240,6 +1420,7 @@ See [README.md](README.md) for the full debugging workflow, \`gh\` commands, and
1240
1420
  4. **Artifacts for job-to-job data** - Files don't persist between jobs without \`upload-artifact\`/\`download-artifact\``},{name:`github-pr-review`,description:`Post PR review comments using the GitHub API with inline comments, suggestions, and priority labels.`,triggers:[`/github-pr-review`],content:`# GitHub PR Review
1241
1421
 
1242
1422
  Post structured code review feedback using the GitHub API with inline comments on specific lines.
1423
+ Windows PowerShell equivalents for JSON file creation, temp paths, line lookup, and fallback \`curl\` are in \`references/windows.md\`.
1243
1424
 
1244
1425
  ## Key Rule: One API Call
1245
1426
 
@@ -1420,6 +1601,7 @@ curl -X POST \\
1420
1601
  Create a cron automation that watches a GitHub repository for pull requests
1421
1602
  with a review trigger label, starts an OpenHands review conversation once per
1422
1603
  label event, and posts the AI review as a GitHub comment.
1604
+ Windows PowerShell equivalents for the setup, packaging, upload, and API-check shell snippets are in \`references/windows.md\`.
1423
1605
 
1424
1606
  The automation script is deterministic: PR discovery, label-event tracking,
1425
1607
  state persistence, stale-result suppression, and GitHub comment posting are
@@ -1658,6 +1840,7 @@ Each cron run executes \`main.py\`, which:
1658
1840
 
1659
1841
  Create a cron automation that polls a single GitHub repository on a
1660
1842
  configurable schedule (default: every minute).
1843
+ Windows PowerShell equivalents for the setup, packaging, upload, and API-check shell snippets are in \`references/windows.md\`.
1661
1844
 
1662
1845
  When a comment on an issue or PR contains the **trigger phrase**
1663
1846
  (default: \`@OpenHands\`) it:
@@ -1955,30 +2138,7 @@ Each cron run executes \`main.py\`, which:
1955
2138
  | Comments posted but no conversation created | Agent server URL wrong | Check \`OPENHANDS_URL\` secret and \`AGENT_SERVER_URL\` env var |
1956
2139
  | Same comment processed twice | \`processed_comment_ids\` cleared | State file was deleted; harmless but duplicate comment may appear |
1957
2140
  | Summary never posted | Conversation stuck in \`running\` | Open the conversation in the OpenHands UI; agent may need input |
1958
- | No events detected after first run | \`last_poll\` in the future | Delete the state file to reset; it will be recreated on next run |`},{name:`gitlab`,description:`Interact with GitLab repositories, merge requests, and APIs using the GITLAB_TOKEN environment variable. Use when working with code hosted on GitLab or managing GitLab resources.`,triggers:[`gitlab`,`git`],content:`You have access to an environment variable, \`GITLAB_TOKEN\`, which allows you to interact with
1959
- the GitLab API.
1960
-
1961
- <IMPORTANT>
1962
- You can use \`curl\` with the \`GITLAB_TOKEN\` to interact with GitLab's API.
1963
- ALWAYS use the GitLab API for operations instead of a web browser.
1964
- ALWAYS use the \`create_mr\` tool to open a merge request
1965
- </IMPORTANT>
1966
-
1967
- If you encounter authentication issues when pushing to GitLab (such as password prompts or permission errors), the old token may have expired. In such case, update the remote URL to include the current token: \`git remote set-url origin https://oauth2:\${GITLAB_TOKEN}@gitlab.com/username/repo.git\`
1968
-
1969
- Here are some instructions for pushing, but ONLY do this if the user asks you to:
1970
- * NEVER push directly to the \`main\` or \`master\` branch
1971
- * Git config (username and email) is pre-set. Do not modify.
1972
- * You may already be on a branch starting with \`openhands-workspace\`. Create a new branch with a better name before pushing.
1973
- * Use the \`create_mr\` tool to create a merge request, if you haven't already
1974
- * Once you've created your own branch or a merge request, continue to update it. Do NOT create a new one unless you are explicitly asked to. Update the PR title and description as necessary, but don't change the branch name.
1975
- * Use the main branch as the base branch, unless the user requests otherwise
1976
- * After opening or updating a merge request, send the user a short message with a link to the merge request.
1977
- * Do all of the above in as few steps as possible. E.g. you could push changes with one step by running the following bash commands:
1978
- \`\`\`bash
1979
- git remote -v && git branch # to find the current org, repo and branch
1980
- git checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget
1981
- \`\`\``},{name:`incident-retrospective`,description:`Create an automation that drafts incident retrospectives. Gathers incident-channel messages from Slack, collects linked tickets and follow-ups from Linear, and publishes a retrospective draft to Notion with a timeline, impact summary, root-cause hypotheses, and action items.`,triggers:[`/incident-retro:setup`],content:`# Incident Retrospective Drafter Automation
2141
+ | No events detected after first run | \`last_poll\` in the future | Delete the state file to reset; it will be recreated on next run |`},{name:`gitlab`,description:`Interact with GitLab repositories, merge requests, and APIs using the GITLAB_TOKEN environment variable. Use when working with code hosted on GitLab or managing GitLab resources.`,triggers:[`gitlab`,`git`],content:"You have access to an environment variable, `GITLAB_TOKEN`, which allows you to interact with\nthe GitLab API.\n\n<IMPORTANT>\nYou can use `curl` with the `GITLAB_TOKEN` to interact with GitLab's API.\nALWAYS use the GitLab API for operations instead of a web browser.\nALWAYS use the `create_mr` tool to open a merge request\n</IMPORTANT>\n\nIf you encounter authentication issues when pushing to GitLab (such as password prompts or permission errors), the old token may have expired. In such case, update the remote URL to include the current token: `git remote set-url origin https://oauth2:${GITLAB_TOKEN}@gitlab.com/username/repo.git`\n\nHere are some instructions for pushing, but ONLY do this if the user asks you to:\n* NEVER push directly to the `main` or `master` branch\n* Git config (username and email) is pre-set. Do not modify.\n* You may already be on a branch starting with `openhands-workspace`. Create a new branch with a better name before pushing.\n* Use the `create_mr` tool to create a merge request, if you haven't already\n* Once you've created your own branch or a merge request, continue to update it. Do NOT create a new one unless you are explicitly asked to. Update the PR title and description as necessary, but don't change the branch name.\n* Use the main branch as the base branch, unless the user requests otherwise\n* After opening or updating a merge request, send the user a short message with a link to the merge request.\n* Do all of the above in as few steps as possible. E.g. you could push changes with one step by running the following bash commands:\n```bash\ngit remote -v && git branch # to find the current org, repo and branch\ngit checkout -b create-widget && git add . && git commit -m \"Create widget\" && git push -u origin create-widget\n```\n\nOn Windows PowerShell, use `$env:GITLAB_TOKEN` in remote URLs and run the `git` commands as separate commands if `&&` is not supported by the installed shell."},{name:`incident-retrospective`,description:`Create an automation that drafts incident retrospectives. Gathers incident-channel messages from Slack, collects linked tickets and follow-ups from Linear, and publishes a retrospective draft to Notion with a timeline, impact summary, root-cause hypotheses, and action items.`,triggers:[`/incident-retro:setup`],content:`# Incident Retrospective Drafter Automation
1982
2142
 
1983
2143
  Set up an automation that drafts incident retrospectives by pulling data from
1984
2144
  Slack, Linear, and Notion.
@@ -2054,6 +2214,8 @@ curl -s -X POST "\${OPENHANDS_HOST}/api/automation/v1/preset/prompt" \\
2054
2214
  }'
2055
2215
  \`\`\`
2056
2216
 
2217
+ PowerShell note: use \`curl.exe\` for this exact flag syntax, and replace \`\${OPENHANDS_HOST}\` / \`$OPENHANDS_AUTOMATION_API_KEY\` with \`$env:OPENHANDS_HOST\` / \`$env:OPENHANDS_AUTOMATION_API_KEY\` if running it natively.
2218
+
2057
2219
  ### Step 5 — Confirm
2058
2220
 
2059
2221
  Tell the user:
@@ -2074,6 +2236,7 @@ No scripts — you are the orchestration loop. Uses only standard \`gh\` CLI
2074
2236
  commands that work on any GitHub repo.
2075
2237
 
2076
2238
  Requires: \`gh\` CLI authenticated with repo access, a PR branch.
2239
+ Windows PowerShell equivalents for Bash-only assignment, redirection, and quoting patterns in this skill are in \`references/windows.md\`.
2077
2240
 
2078
2241
  ## Discover what the repo has
2079
2242
 
@@ -2449,7 +2612,209 @@ Final summary should include:
2449
2612
  ## References
2450
2613
 
2451
2614
  - Verification stack (layers, signals, retriggering): \`references/verification.md\`
2452
- - CI/review heuristics and decision tree: \`references/heuristics.md\``},{name:`jupyter`,description:`Read, modify, execute, and convert Jupyter notebooks programmatically. Use when working with .ipynb files for data science workflows, including editing cells, clearing outputs, or converting to other formats.`,triggers:[`ipynb`,`jupyter`],content:`# Jupyter Notebook Guide
2615
+ - CI/review heuristics and decision tree: \`references/heuristics.md\``},{name:`jira-issue-to-pr`,description:`This skill should be used when the user asks to "set up a Jira automation to create pull requests", "poll Jira for create-pr issues", "automatically create GitHub PRs from Jira tickets", "deploy a Jira issue-to-PR automation", "create a Jira to GitHub PR workflow", or mentions automating GitHub PR creation from a Jira label. Deploys a cron-based OpenHands automation that watches a Jira Cloud project for issues labeled with a configurable label (default: "create-pr") and spawns an agent conversation to create a GitHub pull request for each new issue found. The target GitHub repository is read from the body of the Jira ticket - no repo parameter is required at deploy time.`,triggers:[],content:`# Jira GitHub PR Automation
2616
+
2617
+ Deploys a cron automation that polls a Jira Cloud instance for open issues carrying a
2618
+ configurable label and, for each new issue, starts an OpenHands agent conversation that
2619
+ clones the GitHub repository specified in the ticket body, creates a branch, implements
2620
+ or placeholders the requested change, and opens a pull request. Once the conversation
2621
+ starts, it also posts a comment on the Jira ticket: "I'm on it: &lt;conversation URL&gt;".
2622
+
2623
+ ## How It Works
2624
+
2625
+ 1. **Poll** - every N minutes, \`POST /rest/api/3/search/jql\` on the Jira Cloud instance
2626
+ to find open issues with the configured label.
2627
+ 2. **Deduplicate** - on the very first run the script records a \`first_run_at\` baseline
2628
+ timestamp in the KV store; any issue whose \`updated\` timestamp predates that baseline
2629
+ is skipped (no backfill blast on first deploy). Using \`updated\` rather than \`created\`
2630
+ means an old issue that has its label added after the automation is deployed will still
2631
+ be picked up. Subsequent runs filter by both \`first_run_at\` and a KV-backed set of
2632
+ already-processed issue keys. A \`max_new_per_run\` cap (default 5) limits conversations
2633
+ started per cron firing as additional defense-in-depth.
2634
+ 3. **Dispatch** - for each new issue, call \`POST /api/conversations\` on the agent server
2635
+ to start an independent agent conversation with a PR-creation prompt. The prompt
2636
+ instructs the agent to extract the target GitHub repository (\`owner/repo\`) from the
2637
+ ticket body.
2638
+ 4. **Comment** - immediately after the conversation is created, post a Jira comment on the
2639
+ issue: \`I'm on it: <conversation URL>\`.
2640
+ 5. **Persist** - record the processed issue key so re-runs never duplicate work.
2641
+
2642
+ The polling run is lightweight (stdlib only, no SDK install); LLM costs are incurred only
2643
+ when new issues are actually found.
2644
+
2645
+ ## Prerequisites
2646
+
2647
+ Before deploying, ensure the following are in place:
2648
+
2649
+ | Requirement | Details |
2650
+ |---|---|
2651
+ | **Jira API token** | Stored as an OpenHands secret (see [Jira API token setup](#jira-api-token)) |
2652
+ | **GitHub token** | Must be stored as an OpenHands secret with \`repo\` + \`workflow\` scope so the spawned conversation can push branches and open PRs |
2653
+ | **Jira label** | The label to watch for (default: \`create-pr\`) must exist in the Jira project |
2654
+ | **GitHub repo** | The target repository must exist and the GitHub token must have write access |
2655
+
2656
+ ## Deploying the Automation
2657
+
2658
+ ### Step 1 - Collect parameters
2659
+
2660
+ Gather the following from the user before proceeding:
2661
+
2662
+ | Parameter | Example | Notes |
2663
+ |---|---|---|
2664
+ | \`jira_base_url\` | \`https://acme.atlassian.net\` | No trailing slash |
2665
+ | \`jira_email\` | \`alice@acme.com\` | Atlassian account email for Basic auth |
2666
+ | \`jira_token_secret\` | \`JIRA_CLOUD_KEY\` | Name of the OpenHands secret holding the API token |
2667
+ | \`jira_label\` | \`create-pr\` | Label to watch for (optional, defaults to \`create-pr\`) |
2668
+ | \`max_new_per_run\` | \`5\` | Max conversations dispatched per cron firing (optional, defaults to \`5\`) |
2669
+ | \`cron_schedule\` | \`*/5 * * * *\` | Polling frequency in cron syntax |
2670
+
2671
+ > **Note**: The GitHub repository is not configured here. Each Jira ticket body must include
2672
+ > a reference to the target GitHub repo in \`owner/repo\` format (e.g. \`acme-org/backend\`).
2673
+ > The spawned agent extracts it from the ticket text.
2674
+
2675
+ ### Step 2 - Create config.json
2676
+
2677
+ Create \`config.json\` next to \`scripts/main.py\` when packaging:
2678
+
2679
+ \`\`\`json
2680
+ {
2681
+ "jira_base_url": "https://acme.atlassian.net",
2682
+ "jira_email": "alice@acme.com",
2683
+ "jira_token_secret": "JIRA_CLOUD_KEY",
2684
+ "jira_label": "create-pr",
2685
+ "max_new_per_run": 5
2686
+ }
2687
+ \`\`\`
2688
+
2689
+ ### Step 3 - Package the tarball
2690
+
2691
+ Copy \`scripts/main.py\` from this skill and package it with the \`config.json\`:
2692
+
2693
+ \`\`\`bash
2694
+ WORK=$(mktemp -d)
2695
+ cp <skill-dir>/scripts/main.py "$WORK/main.py"
2696
+ # write config.json into $WORK/config.json (see Step 2)
2697
+ tar -czf /tmp/jira-issue-to-pr.tar.gz -C "$WORK" .
2698
+ python3 -m py_compile "$WORK/main.py" # validate syntax before uploading
2699
+ \`\`\`
2700
+
2701
+ ### Step 4 - Upload the tarball
2702
+
2703
+ \`\`\`bash
2704
+ TARBALL_PATH=$(curl -s -X POST \\
2705
+ "http://localhost:8000/api/automation/v1/uploads?name=jira-issue-to-pr" \\
2706
+ -H "X-Session-API-Key: $OPENHANDS_AUTOMATION_API_KEY" \\
2707
+ -H "Content-Type: application/gzip" \\
2708
+ --data-binary @/tmp/jira-issue-to-pr.tar.gz \\
2709
+ | python3 -c "import sys,json; print(json.load(sys.stdin)['tarball_path'])")
2710
+ \`\`\`
2711
+
2712
+ ### Step 5 - Create the automation
2713
+
2714
+ \`\`\`bash
2715
+ curl -s -X POST "http://localhost:8000/api/automation/v1" \\
2716
+ -H "X-Session-API-Key: $OPENHANDS_AUTOMATION_API_KEY" \\
2717
+ -H "Content-Type: application/json" \\
2718
+ -d "{
2719
+ \\"name\\": \\"Jira issue-to-PR Poller\\",
2720
+ \\"trigger\\": {
2721
+ \\"type\\": \\"cron\\",
2722
+ \\"schedule\\": \\"*/5 * * * *\\",
2723
+ \\"timezone\\": \\"UTC\\"
2724
+ },
2725
+ \\"tarball_path\\": \\"$TARBALL_PATH\\",
2726
+ \\"entrypoint\\": \\"python3 main.py\\",
2727
+ \\"timeout\\": 540
2728
+ }" | python3 -m json.tool
2729
+ \`\`\`
2730
+
2731
+ Save the returned \`id\` - use it for updates and monitoring.
2732
+
2733
+ ### Step 6 - Verify with a test dispatch
2734
+
2735
+ \`\`\`bash
2736
+ curl -s -X POST \\
2737
+ "http://localhost:8000/api/automation/v1/<AUTOMATION_ID>/dispatch" \\
2738
+ -H "X-Session-API-Key: $OPENHANDS_AUTOMATION_API_KEY" | python3 -m json.tool
2739
+
2740
+ # After ~30 seconds, check the run status:
2741
+ curl -s "http://localhost:8000/api/automation/v1/<AUTOMATION_ID>/runs?limit=1" \\
2742
+ -H "X-Session-API-Key: $OPENHANDS_AUTOMATION_API_KEY" \\
2743
+ | python3 -c "import sys,json; r=json.load(sys.stdin)['runs'][0]; print(r['status'], r.get('error_detail'))"
2744
+ \`\`\`
2745
+
2746
+ ## Updating an Existing Deployment
2747
+
2748
+ To change configuration or update the script:
2749
+
2750
+ 1. Edit \`config.json\` with new values.
2751
+ 2. Repackage and upload a new tarball (Steps 3-4 above).
2752
+ 3. PATCH the existing automation with the new \`tarball_path\`:
2753
+
2754
+ \`\`\`bash
2755
+ curl -s -X PATCH \\
2756
+ "http://localhost:8000/api/automation/v1/<AUTOMATION_ID>" \\
2757
+ -H "X-Session-API-Key: $OPENHANDS_AUTOMATION_API_KEY" \\
2758
+ -H "Content-Type: application/json" \\
2759
+ -d "{\\"tarball_path\\": \\"<NEW_TARBALL_PATH>\\"}"
2760
+ \`\`\`
2761
+
2762
+ ## Resetting Processed State
2763
+
2764
+ To reprocess issues that were already handled (e.g., after testing), clear the KV store:
2765
+
2766
+ \`\`\`bash
2767
+ curl -s -X DELETE \\
2768
+ "http://localhost:8000/api/automation/v1/<KV_BASE>/v1/kv/state" \\
2769
+ -H "Authorization: Bearer $AUTOMATION_KV_TOKEN"
2770
+ \`\`\`
2771
+
2772
+ Or delete and recreate the automation to start with a clean state.
2773
+
2774
+ ## Script Reference
2775
+
2776
+ The automation script lives at \`scripts/main.py\`. Key behaviors:
2777
+
2778
+ - **No SDK dependencies** - pure Python stdlib; no \`setup.sh\` or \`uv\` install needed.
2779
+ - **Config file** - reads all parameters from \`config.json\` co-located with the script.
2780
+ - **First-run baseline** - on the very first execution the script writes \`first_run_at\` (UTC timestamp) into the KV store and exits without dispatching; issues whose \`updated\` timestamp predates that baseline are skipped on all subsequent runs. Using \`updated\` (not \`created\`) means an old issue that has its label applied after deployment is correctly treated as new.
2781
+ - **Per-run cap** - \`max_new_per_run\` (default 5) limits how many conversations are started per cron firing; any remaining new issues are dispatched on the next run.
2782
+ - **KV store** - persists \`{"processed_keys": [...], "first_run_at": "..."}\` between runs; falls back to a local file in dev environments where \`AUTOMATION_KV_TOKEN\` is absent.
2783
+ - **Jira API** - uses \`POST /rest/api/3/search/jql\` (the current non-deprecated endpoint).
2784
+ - **Conversation dispatch** - calls \`POST /api/conversations\` on the agent server with the current user's LLM/agent settings forwarded to the new conversation.
2785
+ - **Error transparency** - captures Jira HTTP response bodies in error messages for fast diagnosis.
2786
+
2787
+ ## Known Limitations
2788
+
2789
+ ### Pre-existing issues updated after deployment
2790
+
2791
+ The deduplication filter compares each issue's \`fields.updated\` timestamp against
2792
+ \`first_run_at\`. \`updated\` is Jira's last-modified timestamp for the issue as a whole —
2793
+ it advances whenever **any** field changes (comments, priority, description, status, etc.),
2794
+ not only when the \`create-pr\` label is applied.
2795
+
2796
+ This means a pre-existing issue that already carried the label at deployment time can
2797
+ slip through the filter if it is later updated for an unrelated reason (e.g. someone adds
2798
+ a comment), because its \`updated\` timestamp will have advanced past \`first_run_at\` while
2799
+ its key is not yet in \`processed_keys\`.
2800
+
2801
+ **Workaround:** The only fully reliable way to detect exactly when a label was applied
2802
+ is the Jira changelog API (\`GET /rest/api/3/issue/{key}/changelog\`), which requires an
2803
+ extra HTTP call per issue. To avoid that overhead, keep the automation's scope narrow:
2804
+ use a label that is exclusively added as a PR-creation signal and is not already present
2805
+ on issues at the time of deployment.
2806
+
2807
+ Once an issue is successfully dispatched its key is written to \`processed_keys\` in the
2808
+ KV store and is **permanently skipped on every future run** — regardless of subsequent
2809
+ label changes, comments, or any other updates to the issue. The only way to re-trigger a
2810
+ previously processed issue is to manually clear the KV store or delete and recreate the
2811
+ automation. This means the risk window described above is finite: as soon as the
2812
+ automation processes a pre-existing issue (even accidentally), it will never dispatch
2813
+ that issue again.
2814
+
2815
+ ## Additional Resources
2816
+
2817
+ - **\`references/setup.md\`** - Jira API token creation, GitHub token scopes, cron schedule reference, and troubleshooting guide.`},{name:`jupyter`,description:`Read, modify, execute, and convert Jupyter notebooks programmatically. Use when working with .ipynb files for data science workflows, including editing cells, clearing outputs, or converting to other formats.`,triggers:[`ipynb`,`jupyter`],content:`# Jupyter Notebook Guide
2453
2818
 
2454
2819
  Notebooks are JSON files. Cells are in \`nb['cells']\`, each has \`source\` (list of strings) and \`cell_type\` ('code', 'markdown', or 'raw').
2455
2820
 
@@ -2476,6 +2841,12 @@ jupyter nbconvert --to markdown notebook.ipynb # Convert to Markdown
2476
2841
  grep -n "search_term" notebook.ipynb
2477
2842
  \`\`\`
2478
2843
 
2844
+ PowerShell equivalent:
2845
+
2846
+ \`\`\`powershell
2847
+ Select-String -Path notebook.ipynb -Pattern "search_term"
2848
+ \`\`\`
2849
+
2479
2850
  ## Cell Structure
2480
2851
  \`\`\`python
2481
2852
  # Code cell
@@ -2497,6 +2868,7 @@ for cell in nb['cells']:
2497
2868
  KIND (Kubernetes IN Docker) is a tool for running local Kubernetes clusters using Docker containers as nodes. It's designed for testing Kubernetes applications locally.
2498
2869
 
2499
2870
  IMPORTANT: Before you proceed with installation, make sure you have docker installed locally.
2871
+ Windows PowerShell equivalents for installing KIND and kubectl are in \`references/windows.md\`.
2500
2872
 
2501
2873
  ### Installation
2502
2874
 
@@ -2706,6 +3078,8 @@ Handle these common edge cases gracefully:
2706
3078
  For posting structured code reviews, see the \`github-pr-review\` skill.
2707
3079
  For creating new skills, see the \`skill-creator\` skill.`},{name:`linear`,description:`Interact with Linear project management - query issues, update status, create tickets, and manage workflows using the Linear GraphQL API. Use when working with Linear tickets, sprints, or project tracking.`,triggers:[`linear`,`ticket`,`issue tracking`],content:`# Linear
2708
3080
 
3081
+ Windows PowerShell equivalents for the repeated Linear GraphQL \`curl\` and environment-variable snippets are in \`references/windows.md\`.
3082
+
2709
3083
  <IMPORTANT>
2710
3084
  Before performing any Linear operations, check if the required environment variable is set:
2711
3085
 
@@ -2978,6 +3352,8 @@ curl -s -X POST "\${OPENHANDS_HOST}/api/automation/v1/preset/prompt" \\
2978
3352
  }'
2979
3353
  \`\`\`
2980
3354
 
3355
+ PowerShell note: use \`curl.exe\` for this exact flag syntax, and replace \`\${OPENHANDS_HOST}\` / \`$OPENHANDS_AUTOMATION_API_KEY\` with \`$env:OPENHANDS_HOST\` / \`$env:OPENHANDS_AUTOMATION_API_KEY\` if running it natively.
3356
+
2981
3357
  ### Step 5 — Confirm
2982
3358
 
2983
3359
  Tell the user:
@@ -2988,6 +3364,8 @@ Tell the user:
2988
3364
  > - Mode: \`{auto-apply or suggest}\`
2989
3365
  > - Trigger: \`{trigger description}\``},{name:`notion`,description:`Create, search, and update Notion pages/databases using the Notion API. Use for documenting work, generating runbooks, and automating knowledge base updates.`,triggers:[`notion`],content:`# Notion
2990
3366
 
3367
+ Windows PowerShell equivalents for the repeated Notion REST \`curl\`, environment-variable, and JSON-body snippets are in \`references/windows.md\`.
3368
+
2991
3369
  <IMPORTANT>
2992
3370
  If authenticated Notion MCP tools are available in the environment, use them first. MCP tools do not require passing \`NOTION_INTEGRATION_KEY\` as a tool argument; authentication is handled by the configured MCP integration.
2993
3371
 
@@ -3089,6 +3467,7 @@ curl -s -X PATCH "https://api.notion.com/v1/blocks/\${PAGE_ID}/children" \\
3089
3467
  - Create a page: https://developers.notion.com/reference/post-page
3090
3468
  - Append block children: https://developers.notion.com/reference/patch-block-children`},{name:`npm`,description:`Handle npm package installation in non-interactive environments by piping confirmations. Use when installing Node.js packages that require user confirmation prompts.`,triggers:[`npm`],content:`When using npm to install packages, you will not be able to use an interactive shell, and it may be hard to confirm your actions.
3091
3469
  As an alternative, you can pipe in the output of the unix "yes" command to confirm your actions.`},{name:`openhands-api`,description:`Reference skill for the OpenHands Cloud REST API (V1) and agent-server APIs, including how to start additional cloud or local backend conversations for fresh-context or delegated work.`,triggers:[`openhands-api`,`openhands-api-v1`,`openhands-cloud`,`openhands-cloud-api-v1`,`oh-api-v1`,`oh-cloud-api-v1`],content:`This skill documents the **OpenHands Cloud API** (V1), commonly used **agent-server APIs**, and small, easy-to-copy clients.
3470
+ Windows PowerShell equivalents for the shell examples in this skill are in \`references/windows.md\`.
3092
3471
 
3093
3472
  It is intentionally focused on common OpenHands API workflows:
3094
3473
 
@@ -3546,6 +3925,7 @@ This skill is aligned against the current OpenHands API docs and implementation:
3546
3925
  - \`OpenHands/OpenHands/openhands/app_server/app_conversation/app_conversation_models.py\``},{name:`openhands-automation`,description:`This skill should be used when the user asks to "create an automation", "schedule a task", "set up a cron job", "webhook integration", "event-triggered automation", or mentions automations, scheduled tasks, cron scheduling, or webhook events in OpenHands Cloud.`,triggers:[`automation`,`automations`,`scheduled task`,`cron job`,`cron schedule`,`webhook`,`webhooks`,`event trigger`,`github event`,`pull request automation`,`issue automation`,`/automation:create`],content:`# OpenHands Automations
3547
3926
 
3548
3927
  Create and manage automations that run inside an OpenHands agent server — triggered by cron schedules or webhook events (GitHub, custom services).
3928
+ Windows PowerShell equivalents for the automation API \`curl\` examples and shell-variable conventions are in \`references/windows.md\`.
3549
3929
 
3550
3930
  ## Automation Creation Process
3551
3931
  The agent must follow these steps when creating an automation:
@@ -4519,7 +4899,6 @@ print("All done!")
4519
4899
  - [Send Message While Running](https://docs.openhands.dev/sdk/guides/convo-send-message-while-running.md): Interrupt running agents to provide additional context or corrections.
4520
4900
  - [Software Agent SDK](https://docs.openhands.dev/sdk.md): Build AI agents that write software. A clean, modular SDK with production-ready tools.
4521
4901
  - [Stuck Detector](https://docs.openhands.dev/sdk/guides/agent-stuck-detector.md): Detect and handle stuck agents automatically with timeout mechanisms.
4522
- - [Sub-Agent Delegation](https://docs.openhands.dev/sdk/guides/agent-delegation.md): Enable parallel task execution by delegating work to multiple sub-agents that run independently and return consolidated results.
4523
4902
  - [Task Tool Set](https://docs.openhands.dev/sdk/guides/task-tool-set.md): Delegate complex work to specialized sub-agents that run synchronously and return results to the parent agent.
4524
4903
  - [Theory of Mind (TOM) Agent](https://docs.openhands.dev/sdk/guides/agent-tom-agent.md): Enable your agent to understand user intent and preferences through Theory of Mind capabilities, providing personalized guidance based on user modeling.
4525
4904
  - [TODO Management](https://docs.openhands.dev/sdk/guides/github-workflows/todo-management.md): Implement TODOs using OpenHands Agent
@@ -4631,6 +5010,8 @@ Source: [\`examples/\`](https://github.com/OpenHands/software-agent-sdk/tree/mai
4631
5010
  apt-get install texlive-latex-base
4632
5011
  \`\`\`
4633
5012
 
5013
+ On Windows, install MiKTeX or TeX Live with the native installer or a package manager such as \`winget\`. The \`apt-get\` commands only work in Linux or WSL.
5014
+
4634
5015
  * Also install the recommended and extra fonts to avoid running into errors, when trying to use pdflatex on latex files with more fonts.
4635
5016
 
4636
5017
  \`\`\`
@@ -4649,7 +5030,71 @@ Once installed as above, you may be able to create PDF files from latex sources
4649
5030
  pdflatex latex_source_name.tex
4650
5031
  \`\`\`
4651
5032
 
4652
- Ref: http://kkpradeeban.blogspot.com/2014/04/installing-latexpdflatex-on-ubuntu.html`},{name:`prd`,description:`"Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD."`,triggers:[`create a prd`,`write prd`,`plan this feature`,`requirements for`,`spec out`,`/prd`],content:`# PRD Generator
5033
+ Ref: http://kkpradeeban.blogspot.com/2014/04/installing-latexpdflatex-on-ubuntu.html`},{name:`plain-english-content`,description:`This skill should be used when the user asks to "write in plain English", "make this easier to read", "rewrite guidance", "improve report clarity", or produce accessible public-facing prose. It applies plain English content design principles: active voice, front-loaded content, sentence case, and no bold or italics for emphasis.`,triggers:[`plain English`],content:`Open content up so anyone can understand it the first time they read it, without losing substance, nuance or precision. Aim to open up, not dumb down. Apply the GOV.UK style guide approach: plain English, user needs first, active voice, front-loaded structure and accessible formatting.
5034
+
5035
+ Use this skill for reports, research write-ups, guidance, documentation, summaries, and public-facing prose where clarity and accessibility matter. When writing a report, default to this style. When briefing a research agent, pass this skill so the report follows the same style.
5036
+
5037
+ ## Content design principles
5038
+
5039
+ - Start from the user need. Write what the reader needs to know to do or decide something, not what the writer wants to say.
5040
+ - Front-load everything. Put the most important point first in the document, each section, each paragraph and each sentence. Use the inverted pyramid: conclusion first, then detail, then background.
5041
+ - Keep one idea per sentence and one topic per paragraph. Split sentences that contain more than one idea.
5042
+ - Be specific and concrete. Give the number, name and date. Cut vague abstractions like "a range of", "going forward" and "in terms of".
5043
+ - Cut everything that does not add meaning. Shorter is clearer. Remove duplication.
5044
+
5045
+ ## Plain English
5046
+
5047
+ - Open content up, do not dumb it down. Keep the substance, nuance and precision. Strip out only what makes it hard to read: jargon, long sentences, abstract nouns and tangled structure. Make the content clear enough for a non-specialist and precise enough for an expert.
5048
+ - Use the active voice. Say who does what. Write "We reviewed the data", not "The data was reviewed".
5049
+ - Keep sentences short: about 15 to 20 words, and rarely more than 25. Keep paragraphs short.
5050
+ - Use everyday words. Replace jargon and formal wording with plain alternatives:
5051
+ - use, not utilise or leverage
5052
+ - help, not facilitate or empower
5053
+ - work with, not collaborate, liaise or engage with
5054
+ - make or provide, not deliver
5055
+ - about, not in relation to or with regard to
5056
+ - so, not in order to
5057
+ - start, not commence
5058
+ - end, not terminate
5059
+ - buy, not purchase
5060
+ - enough, not sufficient
5061
+ - solve, fix or deal with, not tackle or combat
5062
+ - effect on, not impact on
5063
+ - Do not use impact as a verb.
5064
+ - Avoid metaphors and cliches: drive, unlock, deep dive, robust, key, ring-fence, hub, portal, landscape, ecosystem and going forward.
5065
+ - Address the reader as "you". Write about the organisation as "we". Use "they", "them" and "their" rather than gendered pronouns. Write "disabled people", not "the disabled".
5066
+ - Use contractions for a warmer tone when appropriate, such as "we'll" and "you'll". Avoid negative contractions: write "cannot", not "can't". Avoid "should've", "could've" and "would've".
5067
+
5068
+ ## Formatting
5069
+
5070
+ - Do not use bold or italics for emphasis. Plain words and good structure carry the meaning. Use bold only for a literal interface element in an instruction, for example: select Save. Use single quotation marks for the titles of schemes or documents, not italics.
5071
+ - Use sentence case everywhere: headings, titles and table headers. Capitalise only proper nouns.
5072
+ - Front-load headings, keep them under about 65 characters, and make them unique and descriptive. Do not use a full stop, dash, slash or question mark in headings. Use headings to help readers skim.
5073
+ - Introduce bullet lists with a lead-in line that ends in a colon. Start each bullet lowercase. Keep each bullet to one idea. Do not put "and" or "or" after each bullet. Do not use semicolons. Do not use a full stop after the last bullet unless the bullet is a full sentence.
5074
+ - Use a numbered list only for steps readers must follow in order. Write steps as full sentences that end with a full stop. Do not use a lead-in colon.
5075
+ - Use descriptive link text that says where the link goes and front-loads the key words. Never write "click here" or "read more". Make link text understandable out of context.
5076
+ - Do not use Latin abbreviations. Write "for example" not "eg", "that is" not "ie", and "and so on" or "such as" not "etc". Latin abbreviations confuse some readers and screen readers.
5077
+ - Write "and", not "&", except in a registered name or logo.
5078
+ - Write "one", but use numerals from 2 upwards. Use the % symbol with numerals, such as 50%. Use £ with no decimals unless there are pence: £75, £75.50. Spell out millions and billions, such as £5 million. Write ranges with "to", not a hyphen: 10 to 20, Monday to Friday.
5079
+ - Write dates as "4 June 2026" with no comma or ordinal suffix. Use "to" for ranges, such as "4 to 8 June". Write times as "10am to 11.30am". Use "midday" and "midnight".
5080
+ - Do not use FAQs when the content can meet the user need directly. Do not use exclamation marks. Do not use all caps for emphasis.
5081
+
5082
+ ## Before finishing: self-check
5083
+
5084
+ - Is the single most important thing first?
5085
+ - Could a non-expert understand every sentence on first read?
5086
+ - Is every sentence active, short and focused on one idea?
5087
+ - Have all bold or italic emphasis, jargon, Latin abbreviations and marketing language been removed?
5088
+ - Is everything in sentence case, with descriptive headings and links?
5089
+ - Can any more words be cut without losing meaning? If yes, cut them.
5090
+
5091
+ ## Scope note
5092
+
5093
+ The no-bold and formatting rules apply to produced prose, such as reports, guidance and summaries. Keep the conventions of code, data tables and direct quotations. Markdown headings and lists are acceptable because they provide structure, not emphasis.
5094
+
5095
+ ## Source
5096
+
5097
+ Imported and adapted from the public gist at https://gist.github.com/fofr/505e225f9bf5e839d30c12ba6bfa0be2.`,license:`MIT`},{name:`prd`,description:`"Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD."`,triggers:[`create a prd`,`write prd`,`plan this feature`,`requirements for`,`spec out`,`/prd`],content:`# PRD Generator
4653
5098
 
4654
5099
  Create detailed Product Requirements Documents that are clear, actionable, and suitable for implementation.
4655
5100
 
@@ -5184,6 +5629,8 @@ curl -s -X POST "\${OPENHANDS_HOST}/api/automation/v1/preset/prompt" \\
5184
5629
  }'
5185
5630
  \`\`\`
5186
5631
 
5632
+ PowerShell note: use \`curl.exe\` for this exact flag syntax, and replace \`\${OPENHANDS_HOST}\` / \`$OPENHANDS_AUTOMATION_API_KEY\` with \`$env:OPENHANDS_HOST\` / \`$env:OPENHANDS_AUTOMATION_API_KEY\` if running it natively.
5633
+
5187
5634
  ### Step 5 — Confirm
5188
5635
 
5189
5636
  Tell the user:
@@ -5217,6 +5664,7 @@ You should always complete the task requested. If there are security concerns pl
5217
5664
  - Use secure error reporting mechanisms`},{name:`skill-creator`,description:`This skill should be used when the user wants to "create a skill", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices.`,triggers:[],content:`# Skill Creator
5218
5665
 
5219
5666
  This skill provides guidance for creating effective skills.
5667
+ Windows PowerShell equivalents for the Unix shell commands used in examples are in \`references/windows.md\`.
5220
5668
 
5221
5669
  ## About Skills
5222
5670
 
@@ -5756,6 +6204,7 @@ To create a skill:
5756
6204
  Focus on strong trigger descriptions, progressive disclosure, and imperative writing style for effective skills that load when needed and provide targeted guidance.`},{name:`slack-channel-monitor`,description:`This skill should be used when the user asks to "monitor a Slack channel", "watch Slack for messages", "create a Slack bot that responds to mentions", "set up an OpenHands Slack integration", "trigger OpenHands from Slack", "respond to @openhands in Slack", or "poll Slack channels for a trigger phrase". Guides the user through creating a cron automation that watches up to 10 Slack channels and starts an OpenHands conversation whenever a configurable trigger phrase is detected.`,triggers:[`/slack-monitor:poll`],content:`# Slack Channel Monitor
5757
6205
 
5758
6206
  Create a cron automation that polls up to 10 Slack channels every minute.
6207
+ Windows PowerShell equivalents for the setup, packaging, upload, and API-check shell snippets are in \`references/windows.md\`.
5759
6208
  When a message containing the **trigger phrase** (default: \`@openhands\`) is
5760
6209
  detected it:
5761
6210
 
@@ -6113,6 +6562,8 @@ curl -s -X POST "\${OPENHANDS_HOST}/api/automation/v1/preset/prompt" \\
6113
6562
  }'
6114
6563
  \`\`\`
6115
6564
 
6565
+ PowerShell note: use \`curl.exe\` for this exact flag syntax, and replace \`\${OPENHANDS_HOST}\` / \`$OPENHANDS_AUTOMATION_API_KEY\` with \`$env:OPENHANDS_HOST\` / \`$env:OPENHANDS_AUTOMATION_API_KEY\` if running it natively.
6566
+
6116
6567
  ### Step 5 — Confirm
6117
6568
 
6118
6569
  Tell the user:
@@ -6153,6 +6604,7 @@ https://spark.apache.org/docs/latest/migration-guide.html
6153
6604
  - [ ] Identify target Spark version
6154
6605
  - [ ] Search for deprecated APIs: \`grep -rn 'import org.apache.spark' --include='*.scala' --include='*.java' --include='*.py'\`
6155
6606
  - [ ] List all Spark config properties: \`grep -rn 'spark\\.' --include='*.conf' --include='*.properties' --include='*.scala' --include='*.java' --include='*.py' | grep -v 'test'\`
6607
+ - [ ] On Windows PowerShell, use \`Get-ChildItem -Recurse -Include *.scala,*.java,*.py | Select-String 'import org.apache.spark'\` and adjust the extensions/pattern for config searches.
6156
6608
  - [ ] Check for custom \`SparkSession\` or \`SparkContext\` extensions
6157
6609
  - [ ] Identify connector dependencies (Hive, Kafka, Cassandra, Delta, Iceberg)
6158
6610
  - [ ] Document findings in \`spark_upgrade_impact.md\`
@@ -6342,6 +6794,7 @@ Spark SQL behavior changes between versions can silently alter query results.
6342
6794
  ✓ Upgrade impact documented in \`spark_upgrade_impact.md\``,license:`MIT`,compatibility:`Requires Java 8+/11+/17+, Scala 2.12/2.13, Maven/Gradle/SBT, Apache Spark`},{name:`ssh`,description:`Establish and manage SSH connections to remote machines, including key generation, configuration, and file transfers. Use when connecting to remote servers, executing remote commands, or transferring files via SCP.`,triggers:[`ssh`,`remote server`,`remote machine`,`remote host`,`remote connection`,`secure shell`,`ssh keys`],content:`# SSH Skill
6343
6795
 
6344
6796
  This skill provides capabilities for establishing and managing SSH connections to remote machines.
6797
+ Windows PowerShell equivalents for SSH config creation, key paths, ssh-agent, and permissions are in \`references/windows.md\`.
6345
6798
 
6346
6799
  ## Capabilities
6347
6800
 
@@ -6465,6 +6918,7 @@ chmod 700 ~/.ssh
6465
6918
  This document provides instructions for installing Swift on Debian 12 (Bookworm).
6466
6919
 
6467
6920
  > This setup is intended for non-UI development tasks on Swift on Linux.
6921
+ > On Windows, run these Debian commands inside WSL2 or a Linux container. For native Windows Swift, use the Windows toolchain from Swift.org instead.
6468
6922
 
6469
6923
  ## Prerequisites
6470
6924
 
@@ -6702,6 +7156,11 @@ To allow agents and automated systems to access protected deployments, users nee
6702
7156
  \`\`\`bash
6703
7157
  curl -H "x-vercel-protection-bypass: <secret>" https://your-preview-url.vercel.app
6704
7158
  \`\`\`
7159
+
7160
+ PowerShell equivalent:
7161
+ \`\`\`powershell
7162
+ Invoke-WebRequest -Headers @{ "x-vercel-protection-bypass" = "<secret>" } -Uri https://your-preview-url.vercel.app
7163
+ \`\`\`
6705
7164
 
6706
7165
  **As a Query Parameter:**
6707
7166
  \`\`\`