@openhands/agent-canvas 1.5.0 → 1.5.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 (338) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/{acp-providers-BQwoUBpe.js → acp-providers-DerAmTyY.js} +1 -1
  4. package/build/assets/{active-backend-context-BCXRv5pm.js → active-backend-context-B8rMv0X9.js} +1 -1
  5. package/build/assets/{add-backend-modal-BKHzq5no.js → add-backend-modal-CxC7BNEc.js} +1 -1
  6. package/build/assets/{agent-profiles-settings-CEp5CIz8.js → agent-profiles-settings-BJb8YXR1.js} +1 -1
  7. package/build/assets/{agent-server-compatibility-D6DSanlx.js → agent-server-compatibility-BWN-EIQn.js} +1 -1
  8. package/build/assets/{agent-server-conversation-service.api-cylugfDz.js → agent-server-conversation-service.api-DSPIkMwJ.js} +4 -4
  9. package/build/assets/{agent-settings-C-tann3x.js → agent-settings-CgCnqaAA.js} +1 -1
  10. package/build/assets/agent-settings-DDkSavD7.js +1 -0
  11. package/build/assets/{alert-banner-Dd4woGbm.js → alert-banner-Dh51WURQ.js} +1 -1
  12. package/build/assets/{api-key-entry-screen-Bll_CkuQ.js → api-key-entry-screen-iZc7n8AI.js} +1 -1
  13. package/build/assets/app-settings-B5zyipxJ.js +1 -0
  14. package/build/assets/{automation-detail-Z9dN2f5l.js → automation-detail-CZsu2CoM.js} +1 -1
  15. package/build/assets/{automation-export-D5uL0Tf8.js → automation-export-BwRX6H32.js} +1 -1
  16. package/build/assets/{automations-list-BMOWcqzZ.js → automations-list-lHAVzMoA.js} +1 -1
  17. package/build/assets/{back-nav-button-ZUDTMOTB.js → back-nav-button-DVknCcSP.js} +1 -1
  18. package/build/assets/backend-form-modal-RGcu909r.js +1 -0
  19. package/build/assets/{backend-synced-settings-badge-Db_REKVw.js → backend-synced-settings-badge-BSfN0AZA.js} +1 -1
  20. package/build/assets/{base-modal-Cb0C6m0Q.js → base-modal-CIF_785P.js} +1 -1
  21. package/build/assets/{brand-button-2Tp3aXk1.js → brand-button-B1izLAdR.js} +1 -1
  22. package/build/assets/{browser-QYLVr1kS.js → browser-DKaeq_sT.js} +2 -2
  23. package/build/assets/browser-store-BI6uklCG.js +1 -0
  24. package/build/assets/{browser-tab-BTTP1OE2.js → browser-tab-qb_ftCxW.js} +1 -1
  25. package/build/assets/{circle-plus-check-toggle-QQJKUnF6.js → circle-plus-check-toggle-DoFIjVE0.js} +1 -1
  26. package/build/assets/client-source-BZK8vRs2.js +1 -0
  27. package/build/assets/cloud-funnel-analytics-Zcv57hfT.js +1 -0
  28. package/build/assets/{color-themes-bVMmJJG6.js → color-themes-CHizm1xF.js} +1 -1
  29. package/build/assets/{combobox-caret-A5jMVHgE.js → combobox-caret-CxZpqoSR.js} +1 -1
  30. package/build/assets/{command-menu-BMVEme4H.js → command-menu-oTvKDU3Y.js} +1 -1
  31. package/build/assets/{command-store-jrWX_CcW.js → command-store-D8J5LMW1.js} +1 -1
  32. package/build/assets/{condenser-settings-CIa6eyB4.js → condenser-settings-BGlWn93P.js} +1 -1
  33. package/build/assets/{confirmation-modal-4n_944zq.js → confirmation-modal-DGBWM2Ls.js} +1 -1
  34. package/build/assets/{context-menu-list-item-DvfFic5I.js → context-menu-list-item-6psNyl7X.js} +1 -1
  35. package/build/assets/{conversation-D4o4dG2t.js → conversation-BoCYx8n2.js} +3 -3
  36. package/build/assets/conversation-DgHqMjnY.js +1 -0
  37. package/build/assets/conversation-panel-78Rxh_-I.js +1 -0
  38. package/build/assets/{conversation-service.api-0JG_fF9d.js → conversation-service.api-_f9GlIEi.js} +1 -1
  39. package/build/assets/conversation-state-store-B2Bp32XI.js +1 -0
  40. package/build/assets/{conversation-store-BCSpLuEf.js → conversation-store-LptbOvKa.js} +1 -1
  41. package/build/assets/{copy-to-clipboard-button-Dp4Q_hXi.js → copy-to-clipboard-button-CFzH_NOX.js} +1 -1
  42. package/build/assets/{device-verify-CM086oKs.js → device-verify-WBSjJBLH.js} +1 -1
  43. package/build/assets/{dropdown-classes-DZq0BQjb.js → dropdown-classes-D3wMJlXT.js} +1 -1
  44. package/build/assets/{ellipsis-button-TPJdyxnK.js → ellipsis-button-CbNnHlIq.js} +1 -1
  45. package/build/assets/{entry.client-DypYHsYm.js → entry.client-DNlPGxsu.js} +2 -2
  46. package/build/assets/{enum-filter-dropdown-CW_mBg0e.js → enum-filter-dropdown-JLYv1t8L.js} +1 -1
  47. package/build/assets/{environment-switch-overlay-6laJch-9.js → environment-switch-overlay-B1PFO8P8.js} +1 -1
  48. package/build/assets/{extensions-hub-BJFbFfKS.js → extensions-hub-CCbLA7IM.js} +1 -1
  49. package/build/assets/{extensions-navigation-DqSl7CJw.js → extensions-navigation-CPNjMNvR.js} +1 -1
  50. package/build/assets/{files-tab-store-tfCav6bB.js → files-tab-store-DJsPxYdg.js} +1 -1
  51. package/build/assets/{files-tab-c316dKAq.js → files-tab-y4K7EXBO.js} +1 -1
  52. package/build/assets/{git-provider-icon-DUb2pEos.js → git-provider-icon-ITvsH4Ko.js} +1 -1
  53. package/build/assets/{home-D7ds4Jyw.js → home-BwbeOWwU.js} +1 -1
  54. package/build/assets/home-DKPGQ5P3.js +1 -0
  55. package/build/assets/index-home-Bko2Itv5.js +1 -0
  56. package/build/assets/{install-server-modal-CvHvzZj3.js → install-server-modal-Qk1gwyI8.js} +1 -1
  57. package/build/assets/{launch-A47TK2Me.js → launch-CAGavYl-.js} +1 -1
  58. package/build/assets/lesson-plan-DMCPdtrf.js +4 -0
  59. package/build/assets/{llm-not-configured-banner-B7DR8SPs.js → llm-not-configured-banner-C1ktyb3C.js} +1 -1
  60. package/build/assets/llm-settings-BBsZFi9l.js +1 -0
  61. package/build/assets/{llm-settings-Cvi7q4ox.js → llm-settings-DFkJQr_w.js} +1 -1
  62. package/build/assets/{llm-subscription-service-Cz1yBBvE.js → llm-subscription-service-Casyzgn1.js} +1 -1
  63. package/build/assets/{manage-backends-modal-DAVhNUCe.js → manage-backends-modal-CKQ46rvw.js} +1 -1
  64. package/build/assets/manifest-03478bbf.js +1 -0
  65. package/build/assets/{map-provider-XSFHmdDs.js → map-provider-BbIb12oh.js} +1 -1
  66. package/build/assets/{markdown-renderer-B6cJJ_MN.js → markdown-renderer-B4V2OMFP.js} +1 -1
  67. package/build/assets/{mcp-BwssgMpg.js → mcp-BapoJsDc.js} +1 -1
  68. package/build/assets/{messages-D8MeG2ZQ.js → messages-CUBFMY5o.js} +1 -1
  69. package/build/assets/{model-selector-BxTbbKub.js → model-selector-DJrMrFAr.js} +1 -1
  70. package/build/assets/{navigation-link-imH6S7h2.js → navigation-link-D8hfwvxI.js} +1 -1
  71. package/build/assets/{onboarding-CyicadGt.js → onboarding-6NMkdNxV.js} +1 -1
  72. package/build/assets/onboarding-modal-Q4AnpIdg.js +1 -0
  73. package/build/assets/{organization-service.api-QknzKDh3.js → organization-service.api-vrRNwOma.js} +1 -1
  74. package/build/assets/{path-utils-BECGet7G.js → path-utils-PNfCKQDV.js} +1 -1
  75. package/build/assets/{planner-tab-DPKHmMAX.js → planner-tab-ByOw1he8.js} +1 -1
  76. package/build/assets/{plugins-management-service-DuTTxquo.js → plugins-management-service-B75jyC56.js} +1 -1
  77. package/build/assets/{profiles-service.api-D6jvZOWu.js → profiles-service.api-BQTklD5D.js} +1 -1
  78. package/build/assets/providers-DfTB2gPd.js +1 -0
  79. package/build/assets/{proxy-CuhhyjdX.js → proxy-B3tCGf0X.js} +1 -1
  80. package/build/assets/{recommended-automations-launcher-DA6DWS7V.js → recommended-automations-launcher-Bj7PuHY1.js} +1 -1
  81. package/build/assets/root-CDnuTToz.js +2 -0
  82. package/build/assets/root-layout-DfYVlcRG.js +2 -0
  83. package/build/assets/{runtime-waiting-state-DeD9G7yJ.js → runtime-waiting-state-CnyVhX4T.js} +1 -1
  84. package/build/assets/{schema-field-BOLdL_U7.js → schema-field-CUwk4wrQ.js} +1 -1
  85. package/build/assets/{sdk-section-page-ZIltERxf.js → sdk-section-page-DLLNrYjI.js} +1 -1
  86. package/build/assets/{sdk-settings-schema-Ba_Pa9uf.js → sdk-settings-schema-CLR01YIK.js} +1 -1
  87. package/build/assets/{secrets-service-50DElFny.js → secrets-service-CvyPWJhg.js} +1 -1
  88. package/build/assets/{secrets-settings-Digl7JLe.js → secrets-settings-CHy72A5C.js} +1 -1
  89. package/build/assets/settings-B9S8UVQr.js +1 -0
  90. package/build/assets/{settings-dropdown-input-BD5C9fBn.js → settings-dropdown-input-Dhx9ErGd.js} +1 -1
  91. package/build/assets/{settings-index-CODBijya.js → settings-index-BKDl2CQ-.js} +1 -1
  92. package/build/assets/{settings-input-CzNOq-Pj.js → settings-input-BsgQWS5R.js} +1 -1
  93. package/build/assets/{settings-list-classes-CuxH9ZoR.js → settings-list-classes-DSJJX99U.js} +1 -1
  94. package/build/assets/{settings-modal-BcSWpKI0.js → settings-modal-DeK11CyT.js} +1 -1
  95. package/build/assets/{settings-service.api-Bsu1PvYO.js → settings-service.api-DXk5TdeJ.js} +1 -1
  96. package/build/assets/{settings-switch-DqmHAfWJ.js → settings-switch-Bes8dIlV.js} +1 -1
  97. package/build/assets/{settings-utils-B1lBErvV.js → settings-utils-DzCVfiR3.js} +1 -1
  98. package/build/assets/{shared-conversation-CDskdmrb.js → shared-conversation-9atDzTR4.js} +1 -1
  99. package/build/assets/{sidebar-mobile-menu-toggle-DmCmZgq1.js → sidebar-mobile-menu-toggle-giMMZctn.js} +1 -1
  100. package/build/assets/{sidebar-nav-link-DMc8AIe7.js → sidebar-nav-link-CHqyFXwV.js} +1 -1
  101. package/build/assets/{sidebar-store-DXWSCFpa.js → sidebar-store-uiUXBU1N.js} +1 -1
  102. package/build/assets/{skill-card-pill-row-DOIWjiMF.js → skill-card-pill-row-BPYKQ3IN.js} +1 -1
  103. package/build/assets/{skills-plugins-DLgINYuY.js → skills-plugins-Tropusio.js} +1 -1
  104. package/build/assets/{skills-settings-DPiCWalR.js → skills-settings-BvzBBCWk.js} +1 -1
  105. package/build/assets/{task-list-tab-CuhcDycu.js → task-list-tab-DyfgG4MC.js} +1 -1
  106. package/build/assets/telemetry-C5JMEfqB.js +2 -0
  107. package/build/assets/{terminal-CVqF-tCD.js → terminal-DRXt2Lr4.js} +1 -1
  108. package/build/assets/{typography-CQn9wyEX.js → typography-CzfoD9DY.js} +1 -1
  109. package/build/assets/{use-acp-credential-form-LlfZO_DD.js → use-acp-credential-form-Bm8qXdlc.js} +1 -1
  110. package/build/assets/{use-activate-agent-profile-DpQjsXM0.js → use-activate-agent-profile-DlykqEfN.js} +1 -1
  111. package/build/assets/{use-active-agent-profile-Gw_uJujV.js → use-active-agent-profile-hI-x-UBa.js} +1 -1
  112. package/build/assets/{use-active-conversation-B0sttISF.js → use-active-conversation-2qeez40F.js} +1 -1
  113. package/build/assets/{use-agent-profiles-LHZEK0Gg.js → use-agent-profiles-0pr5bLS7.js} +1 -1
  114. package/build/assets/{use-agent-state-C5uA0bRj.js → use-agent-state-C6peDXUm.js} +1 -1
  115. package/build/assets/{use-backends-health-DKt1SmiU.js → use-backends-health-CLHPitJM.js} +1 -1
  116. package/build/assets/{use-can-manage-org-profiles-BAtqsbCi.js → use-can-manage-org-profiles-Ck_bsNbH.js} +1 -1
  117. package/build/assets/{use-cloud-current-user-id-C8m1oBy4.js → use-cloud-current-user-id-DUCSxNjY.js} +1 -1
  118. package/build/assets/use-config-B5r8erYt.js +1 -0
  119. package/build/assets/{use-create-conversation-CWQGNQ9J.js → use-create-conversation-r1JHfKO5.js} +1 -1
  120. package/build/assets/{use-create-secret-BIrsX3OB.js → use-create-secret-Cf2N11d2.js} +1 -1
  121. package/build/assets/{use-event-store-CsD17BKu.js → use-event-store-Bbaz51GR.js} +1 -1
  122. package/build/assets/{use-handle-plan-click-DEuO7Byo.js → use-handle-plan-click-CsAW3FlH.js} +1 -1
  123. package/build/assets/{use-launch-skill-in-chat-CdHOoQGM.js → use-launch-skill-in-chat-DJWEfVc5.js} +1 -1
  124. package/build/assets/{use-llm-profiles-DQpQxVOD.js → use-llm-profiles-Dr5__SlZ.js} +1 -1
  125. package/build/assets/{use-plugins-marketplace-Bkk07W_M.js → use-plugins-marketplace-BplU65ae.js} +1 -1
  126. package/build/assets/use-runtime-is-ready-vCFOcLFa.js +1 -0
  127. package/build/assets/{use-save-agent-profile-BxEsjnW0.js → use-save-agent-profile-RqUGqTv6.js} +1 -1
  128. package/build/assets/{use-save-settings-ioSUMqbE.js → use-save-settings-Chvzeu2s.js} +1 -1
  129. package/build/assets/{use-settings-DNJC4gqu.js → use-settings-CyxSlyTQ.js} +1 -1
  130. package/build/assets/{use-settings-nav-items-BUsrDbVR.js → use-settings-nav-items-zEkSO_Bf.js} +1 -1
  131. package/build/assets/{use-skills-BsmKm23M.js → use-skills-xrVoKYrF.js} +1 -1
  132. package/build/assets/{use-task-list-rs7Xbzl8.js → use-task-list-CfisapBW.js} +1 -1
  133. package/build/assets/use-tracking-D2Qg5Lpd.js +1 -0
  134. package/build/assets/{use-user-conversation-B337kUKB.js → use-user-conversation-CnE4zhOA.js} +1 -1
  135. package/build/assets/{vendor~browser-tab-Xn94EtUo.js → vendor~browser-tab-CsMb-pta.js} +1 -1
  136. package/build/assets/{vendor~browser-5Njjw1Cl.js → vendor~browser-wXQ-WZEC.js} +1 -1
  137. package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dhilvkxv-BIieS_OD.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dhilvkxv-eGLBu60s.js} +2 -2
  138. package/build/assets/{vendor~files-tab-CiC3-lGh.js → vendor~files-tab-B-5fBohe.js} +1 -1
  139. package/build/assets/{vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DWteoTyr.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BD7v71DM.js} +1 -1
  140. package/build/assets/{vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-tlf6AnDe.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BT05Osu4.js} +1 -1
  141. package/build/assets/{vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B8XNNEQZ.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-COhHANvV.js} +1 -1
  142. package/build/assets/{vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Dc5nKwLO.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DgzWSMRc.js} +1 -1
  143. package/build/assets/{vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CnJRLn5s.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DqZatR3B.js} +1 -1
  144. package/build/assets/{vendor~launch-28DK5Rsl.js → vendor~launch-_Km3J77E.js} +1 -1
  145. package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~g9hift2g-DmmpG9SI.js → vendor~module-D5a_AClf.js} +1 -1
  146. package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-lYNG9C1U.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-BrguKXCn.js} +1 -1
  147. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation-Zhq6xAxR.js → vendor~root-layout~index-home~home~conversation-panel~conversation-BTvhGHHG.js} +1 -1
  148. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation~aler~gfu7qdtz-B81b08bw.js → vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation~aler~gfu7qdtz-BOKQkbc6.js} +1 -1
  149. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~ftka0fnu-jpyLM1Nn.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~ftka0fnu-cFNmfAE6.js} +1 -1
  150. package/build/assets/{verification-settings-HRgEM-_3.js → verification-settings-CfkrXoSa.js} +1 -1
  151. package/build/index.html +4 -4
  152. package/config/defaults.json +1 -1
  153. package/dist/api/cloud/conversation-service.api.cjs +1 -1
  154. package/dist/api/cloud/conversation-service.api.js +4 -4
  155. package/dist/api/option-service/option-service.api.cjs +1 -1
  156. package/dist/api/option-service/option-service.api.cjs.map +1 -1
  157. package/dist/api/option-service/option-service.api.js +0 -1
  158. package/dist/api/option-service/option-service.api.js.map +1 -1
  159. package/dist/api/option-service/option.types.d.ts +0 -1
  160. package/dist/components/features/backends/backend-form-modal.cjs +1 -1
  161. package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
  162. package/dist/components/features/backends/backend-form-modal.d.ts +1 -1
  163. package/dist/components/features/backends/backend-form-modal.js +137 -144
  164. package/dist/components/features/backends/backend-form-modal.js.map +1 -1
  165. package/dist/components/providers/agent-server-ui-providers.cjs +1 -1
  166. package/dist/components/providers/agent-server-ui-providers.cjs.map +1 -1
  167. package/dist/components/providers/agent-server-ui-providers.d.ts +4 -2
  168. package/dist/components/providers/agent-server-ui-providers.js +9 -2
  169. package/dist/components/providers/agent-server-ui-providers.js.map +1 -1
  170. package/dist/components/providers/index.cjs +1 -1
  171. package/dist/components/providers/index.d.ts +1 -2
  172. package/dist/components/providers/index.js +0 -1
  173. package/dist/components/providers/telemetry-provider.cjs +2 -0
  174. package/dist/components/providers/telemetry-provider.cjs.map +1 -0
  175. package/dist/components/providers/telemetry-provider.d.ts +6 -0
  176. package/dist/components/providers/telemetry-provider.js +64 -0
  177. package/dist/components/providers/telemetry-provider.js.map +1 -0
  178. package/dist/config/defaults.cjs +1 -1
  179. package/dist/config/defaults.cjs.map +1 -1
  180. package/dist/config/defaults.js +1 -1
  181. package/dist/config/defaults.js.map +1 -1
  182. package/dist/contexts/conversation-websocket-context.cjs +3 -3
  183. package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
  184. package/dist/contexts/conversation-websocket-context.js +197 -204
  185. package/dist/contexts/conversation-websocket-context.js.map +1 -1
  186. package/dist/hooks/mutation/use-save-settings.cjs +1 -1
  187. package/dist/hooks/mutation/use-save-settings.cjs.map +1 -1
  188. package/dist/hooks/mutation/use-save-settings.d.ts +3 -1
  189. package/dist/hooks/mutation/use-save-settings.js +6 -5
  190. package/dist/hooks/mutation/use-save-settings.js.map +1 -1
  191. package/dist/hooks/use-telemetry.cjs +1 -1
  192. package/dist/hooks/use-telemetry.cjs.map +1 -1
  193. package/dist/hooks/use-telemetry.d.ts +3 -3
  194. package/dist/hooks/use-telemetry.js +16 -22
  195. package/dist/hooks/use-telemetry.js.map +1 -1
  196. package/dist/hooks/use-tracking.cjs +1 -1
  197. package/dist/hooks/use-tracking.cjs.map +1 -1
  198. package/dist/hooks/use-tracking.d.ts +3 -4
  199. package/dist/hooks/use-tracking.js +37 -37
  200. package/dist/hooks/use-tracking.js.map +1 -1
  201. package/dist/index.cjs +1 -1
  202. package/dist/index.js +2 -2
  203. package/dist/lib/index.d.ts +2 -2
  204. package/dist/package.cjs +1 -1
  205. package/dist/package.cjs.map +1 -1
  206. package/dist/package.js +2 -2
  207. package/dist/package.js.map +1 -1
  208. package/dist/routes/app-settings.cjs +1 -1
  209. package/dist/routes/app-settings.cjs.map +1 -1
  210. package/dist/routes/app-settings.js +66 -68
  211. package/dist/routes/app-settings.js.map +1 -1
  212. package/dist/routes/llm-settings.cjs +1 -1
  213. package/dist/routes/llm-settings.cjs.map +1 -1
  214. package/dist/routes/llm-settings.js +4 -1
  215. package/dist/routes/llm-settings.js.map +1 -1
  216. package/dist/services/cloud-funnel-analytics.cjs +1 -1
  217. package/dist/services/cloud-funnel-analytics.cjs.map +1 -1
  218. package/dist/services/cloud-funnel-analytics.d.ts +3 -11
  219. package/dist/services/cloud-funnel-analytics.js +16 -30
  220. package/dist/services/cloud-funnel-analytics.js.map +1 -1
  221. package/dist/services/telemetry.cjs +1 -1
  222. package/dist/services/telemetry.cjs.map +1 -1
  223. package/dist/services/telemetry.d.ts +46 -9
  224. package/dist/services/telemetry.js +181 -72
  225. package/dist/services/telemetry.js.map +1 -1
  226. package/dist/themes/color-themes.cjs.map +1 -1
  227. package/dist/themes/color-themes.d.ts +3 -6
  228. package/dist/themes/color-themes.js.map +1 -1
  229. package/dist/utils/error-handler.cjs +1 -1
  230. package/dist/utils/error-handler.cjs.map +1 -1
  231. package/dist/utils/error-handler.d.ts +1 -4
  232. package/dist/utils/error-handler.js +6 -7
  233. package/dist/utils/error-handler.js.map +1 -1
  234. package/dist/utils/map-provider.cjs +1 -1
  235. package/dist/utils/map-provider.cjs.map +1 -1
  236. package/dist/utils/map-provider.d.ts +1 -0
  237. package/dist/utils/map-provider.js +2 -1
  238. package/dist/utils/map-provider.js.map +1 -1
  239. package/package.json +2 -2
  240. package/build/assets/agent-settings-DGUKNSnU.js +0 -1
  241. package/build/assets/app-settings-BpViWwpC.js +0 -1
  242. package/build/assets/backend-form-modal-DhBT8P4g.js +0 -1
  243. package/build/assets/browser-store-BGXOGo-R.js +0 -1
  244. package/build/assets/client-source-Biqarhgr.js +0 -1
  245. package/build/assets/cloud-funnel-analytics-D-27T5Ao.js +0 -1
  246. package/build/assets/conversation-CHnEXGRM.js +0 -1
  247. package/build/assets/conversation-panel-11FjLCId.js +0 -1
  248. package/build/assets/conversation-state-store-JiUQp02U.js +0 -1
  249. package/build/assets/handle-capture-consent-DDnXMC9Y.js +0 -1
  250. package/build/assets/home-BQ-DC06B.js +0 -1
  251. package/build/assets/index-home-BRFDWs_4.js +0 -1
  252. package/build/assets/lesson-plan-DSf95kQ2.js +0 -4
  253. package/build/assets/llm-settings-Ch4ZbW3c.js +0 -1
  254. package/build/assets/manifest-958c741a.js +0 -1
  255. package/build/assets/onboarding-modal-DQwihcTz.js +0 -1
  256. package/build/assets/option-service.api-DAkg_F7p.js +0 -1
  257. package/build/assets/package-Dk_VtWJ4.js +0 -1
  258. package/build/assets/providers-B8pxQK8x.js +0 -1
  259. package/build/assets/root-BhP6bTBB.js +0 -2
  260. package/build/assets/root-layout-oBaHHW4s.js +0 -2
  261. package/build/assets/settings-BfgLHsgd.js +0 -1
  262. package/build/assets/telemetry-DHiTRl5_.js +0 -2
  263. package/build/assets/use-config-CXy4vD0H.js +0 -1
  264. package/build/assets/use-runtime-is-ready-D4pkGT6E.js +0 -1
  265. package/build/assets/use-tracking-poxQHMwR.js +0 -1
  266. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ljq5gbus-B2XD4bi2.js +0 -1
  267. package/dist/components/providers/posthog-wrapper.cjs +0 -2
  268. package/dist/components/providers/posthog-wrapper.cjs.map +0 -1
  269. package/dist/components/providers/posthog-wrapper.d.ts +0 -4
  270. package/dist/components/providers/posthog-wrapper.js +0 -49
  271. package/dist/components/providers/posthog-wrapper.js.map +0 -1
  272. package/dist/node_modules/posthog-js/react/dist/esm/index.cjs +0 -2
  273. package/dist/node_modules/posthog-js/react/dist/esm/index.cjs.map +0 -1
  274. package/dist/node_modules/posthog-js/react/dist/esm/index.js +0 -113
  275. package/dist/node_modules/posthog-js/react/dist/esm/index.js.map +0 -1
  276. package/dist/utils/handle-capture-consent.cjs +0 -2
  277. package/dist/utils/handle-capture-consent.cjs.map +0 -1
  278. package/dist/utils/handle-capture-consent.d.ts +0 -7
  279. package/dist/utils/handle-capture-consent.js +0 -8
  280. package/dist/utils/handle-capture-consent.js.map +0 -1
  281. /package/build/assets/{__vite-browser-external-DU-Cb_sT.js → __vite-browser-external-BQUj0sYu.js} +0 -0
  282. /package/build/assets/{agent-server-ui-style-scope-COnDHTm5.js → agent-server-ui-style-scope-qhnhZHBV.js} +0 -0
  283. /package/build/assets/{automation-BVEmGghX.js → automation-LZB0MjdV.js} +0 -0
  284. /package/build/assets/{canvas-ui-BhxjoA1f.js → canvas-ui-COgjltGz.js} +0 -0
  285. /package/build/assets/{checkmark-DhcMGwtO.js → checkmark-h7udgXMM.js} +0 -0
  286. /package/build/assets/{close-DO5Rq_CS.js → close-DLFb5kfv.js} +0 -0
  287. /package/build/assets/{code-tag-BvjtzUsr.js → code-tag-DYlAhEQY.js} +0 -0
  288. /package/build/assets/{conversation-local-storage-B31voBg7.js → conversation-local-storage-F6zVMM--.js} +0 -0
  289. /package/build/assets/{conversation-tab-empty-state-BUhKVwoi.js → conversation-tab-empty-state-CNUmIms2.js} +0 -0
  290. /package/build/assets/{copy-DLUw2us-.js → copy-BLmGeJcd.js} +0 -0
  291. /package/build/assets/{dist-Dj01FXbZ.js → dist-CodhvuAP.js} +0 -0
  292. /package/build/assets/{environment-switch-store-D9hB9PvY.js → environment-switch-store-DkjlKWzN.js} +0 -0
  293. /package/build/assets/{extension-module-card-classes-BlO4w702.js → extension-module-card-classes-9V3J9J_b.js} +0 -0
  294. /package/build/assets/{folder-ynxP2EIL.js → folder-Bk311brm.js} +0 -0
  295. /package/build/assets/{form-control-classes-CvUaw8_L.js → form-control-classes-CbdN5aO3.js} +0 -0
  296. /package/build/assets/{get-language-from-path-rWEQrOGU.js → get-language-from-path-DBqBsCWH.js} +0 -0
  297. /package/build/assets/{git-status-mapper-C3rfzUex.js → git-status-mapper-DnL9OC8_.js} +0 -0
  298. /package/build/assets/{iconBase-CuvxAQZ5.js → iconBase-Dz51Zn5x.js} +0 -0
  299. /package/build/assets/{link-external-BVDiJfZt.js → link-external-CaBmUEs_.js} +0 -0
  300. /package/build/assets/{llm-subscription-BkdHwtQe.js → llm-subscription-DtsX5Lhg.js} +0 -0
  301. /package/build/assets/{loading-spinner-Txxx1I1p.js → loading-spinner-BcdnT0mN.js} +0 -0
  302. /package/build/assets/{middleware-CWYDMVuG.js → middleware-DYHYNAnP.js} +0 -0
  303. /package/build/assets/{modal-backdrop-Dsmzgr5s.js → modal-backdrop-zVwfOJZr.js} +0 -0
  304. /package/build/assets/{modal-body-CDZdZ-eT.js → modal-body-Cc2zp0xb.js} +0 -0
  305. /package/build/assets/{modal-classes-B4oit_4c.js → modal-classes-3qT9Ap7Q.js} +0 -0
  306. /package/build/assets/{modal-close-button-DQElFMPo.js → modal-close-button-BcIBUdSq.js} +0 -0
  307. /package/build/assets/{navigation-context-SjzfpygH.js → navigation-context-DPs2G0X8.js} +0 -0
  308. /package/build/assets/{objectWithoutPropertiesLoose-CQwg6tC0.js → objectWithoutPropertiesLoose-BgYIAs2y.js} +0 -0
  309. /package/build/assets/{openhands-logo-C-gDp1wr.js → openhands-logo-bcNw5bkY.js} +0 -0
  310. /package/build/assets/{plan-components-CgPHWz3E.js → plan-components-BdZXPyZU.js} +0 -0
  311. /package/build/assets/{react-ao3tWj6K.js → react-DPDgL6du.js} +0 -0
  312. /package/build/assets/{search-pb4UKTfK.js → search-BgOCR7_c.js} +0 -0
  313. /package/build/assets/{segmented-toggle-C1-ZVyr5.js → segmented-toggle-kzwZkLaj.js} +0 -0
  314. /package/build/assets/{settings-gear-D_HVvE5L.js → settings-gear-MXCyZW0x.js} +0 -0
  315. /package/build/assets/{settings-like-page-layout-classes-DLrsPCaI.js → settings-like-page-layout-classes-Cdl6jOe5.js} +0 -0
  316. /package/build/assets/{settings-DksoDv5z.js → settings-mQUckT0g.js} +0 -0
  317. /package/build/assets/{settings-section-header-context-C2MUIG88.js → settings-section-header-context-COMOIaxV.js} +0 -0
  318. /package/build/assets/{sidebar-layout-Cn6eQaEI.js → sidebar-layout-Bm7pa3Vk.js} +0 -0
  319. /package/build/assets/{skills-CH4xgIh-.js → skills-EqzxYBvT.js} +0 -0
  320. /package/build/assets/{styled-tooltip-CvsjHuIf.js → styled-tooltip-B14i_Uac.js} +0 -0
  321. /package/build/assets/{switch-skeleton-BpSOvZ-n.js → switch-skeleton-DqQwalyu.js} +0 -0
  322. /package/build/assets/{terminal-Dokfkxn0.js → terminal-Cgf___rK.js} +0 -0
  323. /package/build/assets/{toggle-switch-CS0ClOy2.js → toggle-switch-DX_k418f.js} +0 -0
  324. /package/build/assets/{u-check-circle-DPWVO-9N.js → u-check-circle-BqoIxNz_.js} +0 -0
  325. /package/build/assets/{u-check-circle-half-BGNAAjOW.js → u-check-circle-half-MsShT8Ec.js} +0 -0
  326. /package/build/assets/{u-edit-BIskOoEG.js → u-edit-DL5LgKon.js} +0 -0
  327. /package/build/assets/{use-breakpoint-OjLm94cF.js → use-breakpoint-BP3lqLMx.js} +0 -0
  328. /package/build/assets/{use-click-outside-element-Jpt2WWd7.js → use-click-outside-element-D9BYdANT.js} +0 -0
  329. /package/build/assets/{use-is-authed-Dvbpiu3B.js → use-is-authed-BezEyfeh.js} +0 -0
  330. /package/build/assets/{use-onboarding-completion-DkRpDTsD.js → use-onboarding-completion-C_Swglzp.js} +0 -0
  331. /package/build/assets/{v4-DPgam_jW.js → v4-DbCkTSoU.js} +0 -0
  332. /package/build/assets/{vendor~browser-BvEKaLBz.js → vendor~browser-By2MVv_N.js} +0 -0
  333. /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-CznX01nZ.js → vendor~conversation-panel~conversation~alert-banner-CxfzCmkN.js} +0 -0
  334. /package/build/assets/{vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BuL5kjfS.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-FghQ3Z1a.js} +0 -0
  335. /package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~launch~skills-settings~a~j2jlu22h-DUYl8gbZ.js → vendor~root-layout~index-home~home~conversation-panel~conversation~launch~skills-settings~a~j2jlu22h-mC0v44WR.js} +0 -0
  336. /package/build/assets/{vendor~root-layout~index-home~home~mcp~automations-list~onboarding-modal-pIgQDxTc.js → vendor~root-layout~index-home~home~mcp~automations-list~onboarding-modal-C4-GDgiF.js} +0 -0
  337. /package/build/assets/{vendor~terminal-jAaNQWS9.js → vendor~terminal-CnKZILnC.js} +0 -0
  338. /package/build/assets/{x-mark-C5przfXl.js → x-mark-Batp6gXa.js} +0 -0
@@ -12,42 +12,41 @@ import { getUserFacingConnectionErrorMessage as u } from "../../../utils/user-fa
12
12
  import { useQuery as d } from "../../../node_modules/@tanstack/react-query/build/modern/useQuery.js";
13
13
  import { useActiveBackendContext as f } from "../../../contexts/active-backend-context.js";
14
14
  import "../../../api/device-flow-client.js";
15
- import { trackCanvasBackendAdded as p } from "../../../services/cloud-funnel-analytics.js";
16
- import { useTracking as m } from "../../../hooks/use-tracking.js";
17
- import { ModalBackdrop as h } from "../../shared/modals/modal-backdrop.js";
18
- import { MODAL_MAX_WIDTH_VIEWPORT as g, modalWidthClassName as _ } from "../../shared/modals/modal-body.js";
19
- import { modalTitleLgClassName as v, modalTitleLgMediumClassName as y } from "../../../utils/modal-classes.js";
20
- import { ModalCloseButton as b } from "../../shared/modals/modal-close-button.js";
21
- import { BrandButton as x } from "../settings/brand-button.js";
22
- import { SettingsInput as S } from "../settings/settings-input.js";
23
- import { useBackendsHealth as C } from "../../../hooks/query/use-backends-health.js";
24
- import w from "../../../assets/branding/openhands-logo-white.js";
25
- import { SegmentedToggle as T } from "../files-tab/segmented-toggle.js";
26
- import E from "../../../icons/chevron-down-small.js";
27
- import { getBackendStatusLabel as D } from "./backend-status-label.js";
28
- import { BackendStatusDot as O } from "./backend-status-dot.js";
29
- import { DeviceFlowAuth as k } from "./device-flow-auth.js";
30
- import A from "react";
31
- import { jsx as j, jsxs as M } from "react/jsx-runtime";
15
+ import { useTracking as p } from "../../../hooks/use-tracking.js";
16
+ import { ModalBackdrop as m } from "../../shared/modals/modal-backdrop.js";
17
+ import { MODAL_MAX_WIDTH_VIEWPORT as h, modalWidthClassName as g } from "../../shared/modals/modal-body.js";
18
+ import { modalTitleLgClassName as _, modalTitleLgMediumClassName as v } from "../../../utils/modal-classes.js";
19
+ import { ModalCloseButton as y } from "../../shared/modals/modal-close-button.js";
20
+ import { BrandButton as b } from "../settings/brand-button.js";
21
+ import { SettingsInput as x } from "../settings/settings-input.js";
22
+ import { useBackendsHealth as S } from "../../../hooks/query/use-backends-health.js";
23
+ import C from "../../../assets/branding/openhands-logo-white.js";
24
+ import { SegmentedToggle as w } from "../files-tab/segmented-toggle.js";
25
+ import T from "../../../icons/chevron-down-small.js";
26
+ import { getBackendStatusLabel as E } from "./backend-status-label.js";
27
+ import { BackendStatusDot as D } from "./backend-status-dot.js";
28
+ import { DeviceFlowAuth as O } from "./device-flow-auth.js";
29
+ import k from "react";
30
+ import { jsx as A, jsxs as j } from "react/jsx-runtime";
32
31
  //#region src/components/features/backends/backend-form-modal.tsx
33
- function N(e) {
32
+ function M(e) {
34
33
  return a(e) ? "cloud" : "local";
35
34
  }
36
- function P(e) {
35
+ function N(e) {
37
36
  let t = e.toLowerCase().replace(/^\[|\]$/g, "");
38
37
  return !!(t === "localhost" || t === "::1" || t === "::" || t === "0.0.0.0" || /^127\./.test(t) || /^::ffff:127\./i.test(t) || /^10\./.test(t) || /^192\.168\./.test(t) || /^172\.(1[6-9]|2\d|3[01])\./.test(t) || /^fe[89ab][0-9a-f]:/i.test(t) || /^f[cd][0-9a-f]{2}:/i.test(t) || t.endsWith(".local") || !t.includes(".") && !t.includes(":"));
39
38
  }
40
- function F(e) {
39
+ function P(e) {
41
40
  let t = e.trim().replace(/\/+$/, "");
42
41
  if (!t) return "";
43
42
  if (/^https?:\/\//i.test(t)) return t;
44
43
  let n = t.match(/^\[([^\]]+)\]/);
45
- return `${P(n ? n[1] : (t.match(/:/g) ?? []).length > 1 ? t : t.split(":")[0]) ? "http" : "https"}://${t}`;
44
+ return `${N(n ? n[1] : (t.match(/:/g) ?? []).length > 1 ? t : t.split(":")[0]) ? "http" : "https"}://${t}`;
46
45
  }
47
- function I(e) {
46
+ function F(e) {
48
47
  let t = e.trim();
49
48
  if (!t || /\s/.test(t)) return !1;
50
- let n = F(t);
49
+ let n = P(t);
51
50
  if (!n) return !1;
52
51
  try {
53
52
  let e = new URL(n);
@@ -56,29 +55,29 @@ function I(e) {
56
55
  return !1;
57
56
  }
58
57
  }
59
- var L = "https://app.all-hands.dev";
60
- function R(e, n) {
58
+ var I = "https://app.all-hands.dev";
59
+ function L(e, n) {
61
60
  return e(t.BACKEND$CONNECTION_TEST_FAILED, {
62
61
  host: n,
63
62
  interpolation: { escapeValue: !1 }
64
63
  });
65
64
  }
66
- function z(e) {
65
+ function R(e) {
67
66
  return u(e);
68
67
  }
69
- function B(e, t) {
70
- let n = z(t);
68
+ function z(e, t) {
69
+ let n = R(t);
71
70
  return n ? `${e}\n${n}` : e;
72
71
  }
73
- async function V(e) {
72
+ async function B(e) {
74
73
  e.kind === "local" && c(await new i(s({
75
74
  host: e.host,
76
75
  sessionApiKey: e.apiKey || null,
77
76
  timeout: 5e3
78
77
  })).getServerInfo());
79
78
  }
80
- function H({ backend: n, testIdRoot: r }) {
81
- let { t: a } = e("openhands"), o = C([n])[n.id], c = o?.isConnected ?? null, u = o?.disabled === !0, f = o?.consecutiveFailures ?? 0, p = o?.lastError ?? null, { data: m } = d({
79
+ function V({ backend: n, testIdRoot: r }) {
80
+ let { t: a } = e("openhands"), o = S([n])[n.id], c = o?.isConnected ?? null, u = o?.disabled === !0, f = o?.consecutiveFailures ?? 0, p = o?.lastError ?? null, { data: m } = d({
82
81
  queryKey: [
83
82
  "backend-version",
84
83
  n.host,
@@ -92,46 +91,46 @@ function H({ backend: n, testIdRoot: r }) {
92
91
  retry: !1,
93
92
  staleTime: 6e4,
94
93
  enabled: n.kind === "local" && !u
95
- }), h = D(a, n, o), g = n.kind === "cloud" ? a(t.BACKEND$KIND_CLOUD) : a(t.BACKEND$KIND_LOCAL);
96
- return /* @__PURE__ */ M("div", {
94
+ }), h = E(a, n, o), g = n.kind === "cloud" ? a(t.BACKEND$KIND_CLOUD) : a(t.BACKEND$KIND_LOCAL);
95
+ return /* @__PURE__ */ j("div", {
97
96
  className: "flex flex-col gap-2",
98
- children: [/* @__PURE__ */ M("div", {
97
+ children: [/* @__PURE__ */ j("div", {
99
98
  "data-testid": `${r}-status`,
100
99
  className: "flex items-center gap-3 text-sm",
101
100
  children: [
102
- /* @__PURE__ */ j(O, { isConnected: c }),
103
- /* @__PURE__ */ j("span", {
101
+ /* @__PURE__ */ A(D, { isConnected: c }),
102
+ /* @__PURE__ */ A("span", {
104
103
  className: "text-white",
105
104
  "data-testid": `${r}-status-label`,
106
105
  children: h
107
106
  }),
108
- /* @__PURE__ */ j("span", {
107
+ /* @__PURE__ */ A("span", {
109
108
  className: "text-tertiary-alt",
110
109
  children: "·"
111
110
  }),
112
- /* @__PURE__ */ j("span", {
111
+ /* @__PURE__ */ A("span", {
113
112
  className: "text-[var(--oh-text-tertiary)]",
114
113
  children: g
115
114
  }),
116
- m ? /* @__PURE__ */ j("span", {
115
+ m ? /* @__PURE__ */ A("span", {
117
116
  className: "text-xs text-[var(--oh-muted)]",
118
117
  "data-testid": `${r}-version`,
119
118
  children: a(t.BACKEND$VERSION_LABEL, { version: m })
120
119
  }) : null
121
120
  ]
122
- }), u ? /* @__PURE__ */ M("div", {
121
+ }), u ? /* @__PURE__ */ j("div", {
123
122
  "data-testid": `${r}-status-error`,
124
123
  className: "flex flex-col gap-1 rounded-md border border-red-500/40 bg-red-500/10 p-3 text-sm",
125
124
  children: [
126
- /* @__PURE__ */ j("span", {
125
+ /* @__PURE__ */ A("span", {
127
126
  className: "font-semibold text-red-300",
128
127
  children: a(t.BACKEND$HEALTH_FAILED_TITLE)
129
128
  }),
130
- /* @__PURE__ */ j("span", {
129
+ /* @__PURE__ */ A("span", {
131
130
  className: "text-xs text-[var(--oh-text-tertiary)]",
132
131
  children: a(t.BACKEND$HEALTH_FAILED_DETAIL, { count: f })
133
132
  }),
134
- p ? /* @__PURE__ */ j("span", {
133
+ p ? /* @__PURE__ */ A("span", {
135
134
  "data-testid": `${r}-status-error-message`,
136
135
  className: "text-xs text-red-300 whitespace-pre-wrap break-words",
137
136
  children: p
@@ -140,8 +139,8 @@ function H({ backend: n, testIdRoot: r }) {
140
139
  }) : null]
141
140
  });
142
141
  }
143
- function U({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", onTestConnection: i, onSuccess: a, requireApiKey: o = !1, onSubmitOverride: s }) {
144
- let { t: c } = e("openhands"), [l, u] = A.useState(t), [d, f] = A.useState(n), [p, m] = A.useState(r), [h, g] = A.useState(null), [_, v] = A.useState(!1), [y, b] = A.useState(null), x = y ?? N(d), S = o || x !== "local", C = l.trim().length > 0 && I(d) && (!S || p.trim().length > 0);
142
+ function H({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", onTestConnection: i, onSuccess: a, requireApiKey: o = !1, onSubmitOverride: s }) {
143
+ let { t: c } = e("openhands"), [l, u] = k.useState(t), [d, f] = k.useState(n), [p, m] = k.useState(r), [h, g] = k.useState(null), [_, v] = k.useState(!1), [y, b] = k.useState(null), x = y ?? M(d), S = o || x !== "local", C = l.trim().length > 0 && F(d) && (!S || p.trim().length > 0);
145
144
  return {
146
145
  name: l,
147
146
  setName: u,
@@ -155,11 +154,11 @@ function U({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", on
155
154
  kind: x,
156
155
  setKind: b,
157
156
  canSubmit: C,
158
- handleSubmit: A.useCallback(async (e) => {
157
+ handleSubmit: k.useCallback(async (e) => {
159
158
  if (e.preventDefault(), !C || _) return;
160
159
  let t = {
161
160
  name: l.trim(),
162
- host: F(d),
161
+ host: P(d),
163
162
  apiKey: p.trim(),
164
163
  kind: x
165
164
  };
@@ -167,7 +166,7 @@ function U({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", on
167
166
  try {
168
167
  s ? await s(t) : (await i(t), a());
169
168
  } catch (e) {
170
- g(B(R(c, t.host), e));
169
+ g(z(L(c, t.host), e));
171
170
  } finally {
172
171
  v(!1);
173
172
  }
@@ -186,16 +185,16 @@ function U({ initialName: t = "", initialHost: n = "", initialApiKey: r = "", on
186
185
  ])
187
186
  };
188
187
  }
189
- function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot: s, hostReadOnly: c, requireApiKey: l, hideConfigurationFields: u = !1, onSubmitOverride: d }) {
190
- let { t: p } = e("openhands"), { addBackend: m, updateBackend: h } = f(), g = r === "edit" && i ? i.kind : null, { name: _, setName: v, host: y, setHost: b, apiKey: C, setApiKey: w, connectionError: T, setConnectionError: E, isSubmitting: D, kind: O, handleSubmit: k } = U({
188
+ function U({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot: s, hostReadOnly: c, requireApiKey: l, hideConfigurationFields: u = !1, onSubmitOverride: d }) {
189
+ let { t: p } = e("openhands"), { addBackend: m, updateBackend: h } = f(), g = r === "edit" && i ? i.kind : null, { name: _, setName: v, host: y, setHost: S, apiKey: C, setApiKey: w, connectionError: T, setConnectionError: E, isSubmitting: D, kind: O, handleSubmit: M } = H({
191
190
  initialName: i?.name ?? "",
192
191
  initialHost: i?.host ?? "",
193
192
  initialApiKey: i?.apiKey ?? "",
194
- onTestConnection: V,
193
+ onTestConnection: B,
195
194
  onSuccess: async () => {
196
195
  let e = {
197
196
  name: _.trim(),
198
- host: F(y),
197
+ host: P(y),
199
198
  apiKey: C.trim(),
200
199
  kind: g ?? O
201
200
  };
@@ -203,22 +202,22 @@ function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
203
202
  },
204
203
  requireApiKey: l,
205
204
  onSubmitOverride: d
206
- }), [N, P] = A.useState(!1), [R, z] = A.useState(!1), B = g ?? O, W = s ?? (r === "edit" ? "edit-backend" : "add-backend"), G = l || B !== "local", K = _.trim().length > 0 && I(y) && (!G || C.trim().length > 0), q = N && !_.trim() ? p(t.BACKEND$NAME_REQUIRED) : void 0, J = R ? y.trim() ? I(y) ? void 0 : p(t.BACKEND$HOST_INVALID) : p(t.BACKEND$HOST_REQUIRED) : void 0;
207
- return /* @__PURE__ */ M("form", {
205
+ }), [N, L] = k.useState(!1), [R, z] = k.useState(!1), U = g ?? O, W = s ?? (r === "edit" ? "edit-backend" : "add-backend"), G = l || U !== "local", K = _.trim().length > 0 && F(y) && (!G || C.trim().length > 0), q = N && !_.trim() ? p(t.BACKEND$NAME_REQUIRED) : void 0, J = R ? y.trim() ? F(y) ? void 0 : p(t.BACKEND$HOST_INVALID) : p(t.BACKEND$HOST_REQUIRED) : void 0;
206
+ return /* @__PURE__ */ j("form", {
208
207
  "data-testid": `${W}-form`,
209
208
  onSubmit: async (e) => {
210
209
  if (!K) {
211
- P(!0), z(!0);
210
+ L(!0), z(!0);
212
211
  return;
213
212
  }
214
- await k(e);
213
+ await M(e);
215
214
  },
216
215
  className: "flex flex-col gap-4",
217
- children: [/* @__PURE__ */ M("div", {
216
+ children: [/* @__PURE__ */ j("div", {
218
217
  "data-testid": `${W}-configuration-fields`,
219
218
  className: n("flex flex-col gap-4", u && "hidden"),
220
219
  children: [
221
- /* @__PURE__ */ j(S, {
220
+ /* @__PURE__ */ A(x, {
222
221
  testId: `${W}-name`,
223
222
  name: `${W}-name`,
224
223
  type: "text",
@@ -227,29 +226,29 @@ function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
227
226
  onChange: (e) => {
228
227
  v(e), E(null);
229
228
  },
230
- onBlur: () => P(!0),
229
+ onBlur: () => L(!0),
231
230
  placeholder: "Production",
232
231
  className: "w-full",
233
232
  showRequiredTag: !0,
234
233
  error: q
235
234
  }),
236
- /* @__PURE__ */ j(S, {
235
+ /* @__PURE__ */ A(x, {
237
236
  testId: `${W}-host`,
238
237
  name: `${W}-host`,
239
238
  type: "text",
240
239
  label: p(t.BACKEND$HOST_LABEL),
241
240
  value: y,
242
241
  onChange: c ? void 0 : (e) => {
243
- b(e), E(null);
242
+ S(e), E(null);
244
243
  },
245
244
  onBlur: () => z(!0),
246
- placeholder: L,
245
+ placeholder: I,
247
246
  className: "w-full",
248
247
  showRequiredTag: !0,
249
248
  error: J,
250
249
  isDisabled: c
251
250
  }),
252
- /* @__PURE__ */ j(S, {
251
+ /* @__PURE__ */ A(x, {
253
252
  testId: `${W}-api-key`,
254
253
  name: `${W}-api-key`,
255
254
  type: "password",
@@ -261,13 +260,13 @@ function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
261
260
  placeholder: "",
262
261
  className: "w-full"
263
262
  }),
264
- T ? /* @__PURE__ */ j("div", {
263
+ T ? /* @__PURE__ */ A("div", {
265
264
  role: "alert",
266
265
  "data-testid": `${W}-error`,
267
266
  className: "rounded-md border border-red-500/40 bg-red-500/10 p-3 text-sm text-red-300 whitespace-pre-wrap break-words",
268
267
  children: T
269
268
  }) : null,
270
- r === "edit" && i && /* @__PURE__ */ j(H, {
269
+ r === "edit" && i && /* @__PURE__ */ A(V, {
271
270
  backend: i,
272
271
  testIdRoot: W
273
272
  })
@@ -276,15 +275,15 @@ function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
276
275
  canSubmit: K && !D,
277
276
  isSubmitting: D,
278
277
  testIdRoot: W
279
- }) : /* @__PURE__ */ M("div", {
278
+ }) : /* @__PURE__ */ j("div", {
280
279
  className: "flex justify-end gap-2 mt-2 w-full",
281
- children: [/* @__PURE__ */ j(x, {
280
+ children: [/* @__PURE__ */ A(b, {
282
281
  type: "button",
283
282
  variant: "secondary",
284
283
  onClick: a,
285
284
  testId: `${W}-cancel`,
286
285
  children: p(t.BUTTON$CANCEL)
287
- }), /* @__PURE__ */ j(x, {
286
+ }), /* @__PURE__ */ A(b, {
288
287
  type: "submit",
289
288
  variant: "primary",
290
289
  isDisabled: !K || D,
@@ -294,32 +293,32 @@ function W({ mode: r, backend: i, onSubmitted: a, renderActions: o, testIdRoot:
294
293
  })]
295
294
  });
296
295
  }
297
- function G() {
296
+ function W() {
298
297
  let { currentPath: e, navigate: t } = r();
299
- return A.useCallback(() => {
298
+ return k.useCallback(() => {
300
299
  /^\/automations\/[^/]+/.test(e) ? t("/automations") : /^\/conversations\/[^/]+/.test(e) && t("/conversations");
301
300
  }, [e, t]);
302
301
  }
303
- function K({ onConnected: n, testIdRoot: r = "add-backend", initialManualBackend: i, requireManualApiKey: a = !1, manualSubmitLabel: s, manualSubmittingLabel: c, manualSubmitTestId: l, analyticsSource: u }) {
302
+ function G({ onConnected: n, testIdRoot: r = "add-backend", initialManualBackend: i, requireManualApiKey: a = !1, manualSubmitLabel: s, manualSubmittingLabel: c, manualSubmitTestId: l, analyticsSource: u }) {
304
303
  let { t: d } = e("openhands"), f = o();
305
- return f ? /* @__PURE__ */ j("div", {
304
+ return f ? /* @__PURE__ */ A("div", {
306
305
  "data-testid": `${r}-connection-options`,
307
306
  className: "flex justify-center",
308
- children: /* @__PURE__ */ j("div", {
307
+ children: /* @__PURE__ */ A("div", {
309
308
  className: "w-full",
310
- children: /* @__PURE__ */ j(J, {
309
+ children: /* @__PURE__ */ A(q, {
311
310
  onConnected: n,
312
311
  testIdRoot: r,
313
312
  lockedHost: f,
314
313
  analyticsSource: u
315
314
  })
316
315
  })
317
- }) : /* @__PURE__ */ M("div", {
316
+ }) : /* @__PURE__ */ j("div", {
318
317
  "data-testid": `${r}-connection-options`,
319
318
  className: "flex flex-col gap-6 md:flex-row",
320
- children: [/* @__PURE__ */ j("div", {
319
+ children: [/* @__PURE__ */ A("div", {
321
320
  className: "flex-1 min-w-0",
322
- children: /* @__PURE__ */ j(q, {
321
+ children: /* @__PURE__ */ A(K, {
323
322
  onConnected: n,
324
323
  testIdRoot: r,
325
324
  initialBackend: i,
@@ -328,9 +327,9 @@ function K({ onConnected: n, testIdRoot: r = "add-backend", initialManualBackend
328
327
  submittingLabel: c ?? d(t.ONBOARDING$BACKEND_STATUS_CHECKING),
329
328
  submitTestId: l
330
329
  })
331
- }), /* @__PURE__ */ j("div", {
330
+ }), /* @__PURE__ */ A("div", {
332
331
  className: "flex-1 min-w-0",
333
- children: /* @__PURE__ */ j(J, {
332
+ children: /* @__PURE__ */ A(q, {
334
333
  onConnected: n,
335
334
  testIdRoot: r,
336
335
  analyticsSource: u
@@ -338,30 +337,30 @@ function K({ onConnected: n, testIdRoot: r = "add-backend", initialManualBackend
338
337
  })]
339
338
  });
340
339
  }
341
- function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a, submitLabel: o, submittingLabel: s, submitTestId: c }) {
342
- let { t: l } = e("openhands"), { name: u, setName: d, host: f, setHost: p, apiKey: m, setApiKey: h, connectionError: g, setConnectionError: _, isSubmitting: v, kind: y, setKind: b, canSubmit: C, handleSubmit: w } = U({
340
+ function K({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a, submitLabel: o, submittingLabel: s, submitTestId: c }) {
341
+ let { t: l } = e("openhands"), { name: u, setName: d, host: f, setHost: p, apiKey: m, setApiKey: h, connectionError: g, setConnectionError: _, isSubmitting: v, kind: y, setKind: S, canSubmit: C, handleSubmit: T } = H({
343
342
  initialName: i?.name ?? "",
344
343
  initialHost: i?.host ?? "",
345
344
  initialApiKey: i?.apiKey ?? "",
346
- onTestConnection: V,
345
+ onTestConnection: B,
347
346
  onSuccess: () => {
348
347
  n({
349
348
  name: u.trim(),
350
- host: F(f),
349
+ host: P(f),
351
350
  apiKey: m.trim(),
352
351
  kind: y
353
352
  }, "manual");
354
353
  },
355
354
  requireApiKey: a
356
355
  });
357
- return /* @__PURE__ */ M("form", {
356
+ return /* @__PURE__ */ j("form", {
358
357
  "data-testid": `${r}-form`,
359
- onSubmit: w,
358
+ onSubmit: T,
360
359
  className: "flex flex-col gap-4 flex-1 min-w-0",
361
360
  children: [
362
- /* @__PURE__ */ M("div", {
361
+ /* @__PURE__ */ j("div", {
363
362
  className: "flex flex-col gap-1",
364
- children: [/* @__PURE__ */ j(S, {
363
+ children: [/* @__PURE__ */ A(x, {
365
364
  testId: `${r}-name`,
366
365
  name: `${r}-name`,
367
366
  type: "text",
@@ -372,14 +371,14 @@ function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
372
371
  },
373
372
  placeholder: "e.g. My Server",
374
373
  className: "w-full"
375
- }), /* @__PURE__ */ j("p", {
374
+ }), /* @__PURE__ */ A("p", {
376
375
  className: "text-xs text-[var(--oh-muted)]",
377
376
  children: l(t.BACKEND$NAME_HELPER)
378
377
  })]
379
378
  }),
380
- /* @__PURE__ */ M("div", {
379
+ /* @__PURE__ */ j("div", {
381
380
  className: "flex flex-col gap-1",
382
- children: [/* @__PURE__ */ j(S, {
381
+ children: [/* @__PURE__ */ A(x, {
383
382
  testId: `${r}-host`,
384
383
  name: `${r}-host`,
385
384
  type: "text",
@@ -390,18 +389,18 @@ function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
390
389
  },
391
390
  placeholder: "http://localhost:8000",
392
391
  className: "w-full"
393
- }), /* @__PURE__ */ j("p", {
392
+ }), /* @__PURE__ */ A("p", {
394
393
  className: "text-xs text-[var(--oh-muted)]",
395
394
  "data-testid": `${r}-host-helper`,
396
395
  children: l(t.BACKEND$HOST_HELPER)
397
396
  })]
398
397
  }),
399
- /* @__PURE__ */ M("div", {
398
+ /* @__PURE__ */ j("div", {
400
399
  className: "flex flex-col items-start gap-2.5",
401
- children: [/* @__PURE__ */ j("span", {
400
+ children: [/* @__PURE__ */ A("span", {
402
401
  className: "text-sm",
403
402
  children: l(t.BACKEND$KIND_LABEL)
404
- }), /* @__PURE__ */ j(T, {
403
+ }), /* @__PURE__ */ A(w, {
405
404
  value: y,
406
405
  options: [{
407
406
  value: "local",
@@ -410,12 +409,12 @@ function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
410
409
  value: "cloud",
411
410
  label: l(t.BACKEND$KIND_CLOUD)
412
411
  }],
413
- onChange: (e) => b(e),
412
+ onChange: (e) => S(e),
414
413
  ariaLabel: l(t.BACKEND$KIND_LABEL),
415
414
  testId: `${r}-kind`
416
415
  })]
417
416
  }),
418
- /* @__PURE__ */ j(S, {
417
+ /* @__PURE__ */ A(x, {
419
418
  testId: `${r}-api-key`,
420
419
  name: `${r}-api-key`,
421
420
  type: "password",
@@ -427,13 +426,13 @@ function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
427
426
  placeholder: "sk-••••••••••",
428
427
  className: "w-full"
429
428
  }),
430
- g ? /* @__PURE__ */ j("div", {
429
+ g ? /* @__PURE__ */ A("div", {
431
430
  role: "alert",
432
431
  "data-testid": `${r}-error`,
433
432
  className: "rounded-md border border-red-500/40 bg-red-500/10 p-3 text-sm text-red-300 whitespace-pre-wrap break-words",
434
433
  children: g
435
434
  }) : null,
436
- /* @__PURE__ */ j(x, {
435
+ /* @__PURE__ */ A(b, {
437
436
  type: "submit",
438
437
  variant: "secondary",
439
438
  isDisabled: !C || v,
@@ -444,33 +443,33 @@ function q({ onConnected: n, testIdRoot: r, initialBackend: i, requireApiKey: a,
444
443
  ]
445
444
  });
446
445
  }
447
- function J({ onConnected: r, testIdRoot: i, lockedHost: a, analyticsSource: o }) {
448
- let { t: s } = e("openhands"), [c, l] = A.useState(!1), [u, d] = A.useState(""), f = a ?? (u.trim() || L);
449
- return /* @__PURE__ */ M("div", {
446
+ function q({ onConnected: r, testIdRoot: i, lockedHost: a, analyticsSource: o }) {
447
+ let { t: s } = e("openhands"), [c, l] = k.useState(!1), [u, d] = k.useState(""), f = a ?? (u.trim() || I);
448
+ return /* @__PURE__ */ j("div", {
450
449
  className: "flex flex-1 min-w-0 flex-col items-center gap-3 pb-8",
451
450
  children: [
452
- /* @__PURE__ */ M("div", {
451
+ /* @__PURE__ */ j("div", {
453
452
  className: "flex flex-col items-center gap-1",
454
- children: [/* @__PURE__ */ j(w, {
453
+ children: [/* @__PURE__ */ A(C, {
455
454
  width: 56,
456
455
  height: 56,
457
456
  "aria-hidden": !0
458
- }), /* @__PURE__ */ j("h4", {
459
- className: y,
457
+ }), /* @__PURE__ */ A("h4", {
458
+ className: v,
460
459
  "data-testid": `${i}-cloud-title`,
461
460
  children: s(t.BACKEND$CLOUD_TITLE)
462
461
  })]
463
462
  }),
464
- /* @__PURE__ */ j("p", {
463
+ /* @__PURE__ */ A("p", {
465
464
  className: "text-center text-sm leading-relaxed text-[var(--oh-muted)]",
466
465
  children: s(t.BACKEND$CLOUD_DESCRIPTION)
467
466
  }),
468
- /* @__PURE__ */ j(k, {
467
+ /* @__PURE__ */ A(O, {
469
468
  host: f,
470
469
  onSuccess: (e) => {
471
470
  r({
472
471
  name: "OpenHands Cloud",
473
- host: F(f),
472
+ host: P(f),
474
473
  apiKey: e,
475
474
  kind: "cloud"
476
475
  }, "cloud_login");
@@ -478,31 +477,31 @@ function J({ onConnected: r, testIdRoot: i, lockedHost: a, analyticsSource: o })
478
477
  testIdRoot: i,
479
478
  analyticsSource: o
480
479
  }),
481
- a ? null : /* @__PURE__ */ M("div", {
480
+ a ? null : /* @__PURE__ */ j("div", {
482
481
  className: "w-full",
483
- children: [/* @__PURE__ */ M("button", {
482
+ children: [/* @__PURE__ */ j("button", {
484
483
  type: "button",
485
484
  onClick: () => l((e) => !e),
486
485
  "aria-expanded": c,
487
486
  "data-testid": `${i}-advanced-toggle`,
488
487
  className: "flex w-full cursor-pointer items-center justify-center gap-1 text-center text-xs text-[var(--oh-muted)] transition-colors hover:text-content-2",
489
- children: [/* @__PURE__ */ j("span", { children: s(t.BACKEND$ADVANCED) }), /* @__PURE__ */ j(E, {
488
+ children: [/* @__PURE__ */ A("span", { children: s(t.BACKEND$ADVANCED) }), /* @__PURE__ */ A(T, {
490
489
  className: n("h-4 w-4 shrink-0 text-muted transition-transform", c && "rotate-180"),
491
490
  "aria-hidden": !0
492
491
  })]
493
- }), /* @__PURE__ */ M("div", {
492
+ }), /* @__PURE__ */ j("div", {
494
493
  className: n("pt-2", !c && "pointer-events-none invisible"),
495
494
  "aria-hidden": !c,
496
- children: [/* @__PURE__ */ j(S, {
495
+ children: [/* @__PURE__ */ A(x, {
497
496
  testId: `${i}-cloud-host`,
498
497
  name: `${i}-cloud-host`,
499
498
  type: "text",
500
499
  label: s(t.BACKEND$HOST_LABEL),
501
500
  value: u,
502
501
  onChange: d,
503
- placeholder: L,
502
+ placeholder: I,
504
503
  className: "w-full"
505
- }), /* @__PURE__ */ j("p", {
504
+ }), /* @__PURE__ */ A("p", {
506
505
  className: "mt-1 text-xs text-[var(--oh-muted)]",
507
506
  children: s(t.BACKEND$LOGIN_CLOUD_HINT)
508
507
  })]
@@ -511,19 +510,13 @@ function J({ onConnected: r, testIdRoot: i, lockedHost: a, analyticsSource: o })
511
510
  ]
512
511
  });
513
512
  }
514
- function Y({ onClose: e, source: t }) {
515
- let { addBackend: n } = f(), r = G(), { trackBackendAdded: i } = m();
516
- return /* @__PURE__ */ j(K, {
517
- onConnected: A.useCallback((o, s) => {
513
+ function J({ onClose: e, source: t }) {
514
+ let { addBackend: n } = f(), r = W(), { trackBackendAdded: i } = p();
515
+ return /* @__PURE__ */ A(G, {
516
+ onConnected: k.useCallback((o, s) => {
518
517
  n(o);
519
518
  let c = a(o.host);
520
- p({
521
- backendKind: o.kind,
522
- connectionMethod: s,
523
- host: o.host,
524
- hasApiKey: !!o.apiKey,
525
- source: t
526
- }) || i({
519
+ i({
527
520
  backendKind: o.kind,
528
521
  connectionMethod: s,
529
522
  isOpenhandsCloud: c,
@@ -541,31 +534,31 @@ function Y({ onClose: e, source: t }) {
541
534
  analyticsSource: t
542
535
  });
543
536
  }
544
- function X({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal", hideCloseButton: s = !1 }) {
537
+ function Y({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal", hideCloseButton: s = !1 }) {
545
538
  let { t: c } = e("openhands");
546
- if (r === "add") return /* @__PURE__ */ j(h, {
539
+ if (r === "add") return /* @__PURE__ */ A(m, {
547
540
  onClose: s ? void 0 : a,
548
541
  closeOnEscape: !1,
549
542
  closeOnBackdropClick: !s,
550
543
  "aria-label": c(t.BACKEND$ADD_TITLE),
551
- children: /* @__PURE__ */ M("div", {
544
+ children: /* @__PURE__ */ j("div", {
552
545
  "data-testid": s ? "onboarding-modal" : "add-backend-modal",
553
- className: n("relative rounded-xl border border-[var(--oh-border)] bg-base-secondary", _("xl"), g),
546
+ className: n("relative rounded-xl border border-[var(--oh-border)] bg-base-secondary", g("xl"), h),
554
547
  children: [
555
- s ? null : /* @__PURE__ */ j(b, {
548
+ s ? null : /* @__PURE__ */ A(y, {
556
549
  onClose: a,
557
550
  testId: "add-backend-close"
558
551
  }),
559
- s ? null : /* @__PURE__ */ j("div", {
552
+ s ? null : /* @__PURE__ */ A("div", {
560
553
  className: "px-6 pt-6 pb-2 pr-12",
561
- children: /* @__PURE__ */ j("h2", {
562
- className: v,
554
+ children: /* @__PURE__ */ A("h2", {
555
+ className: _,
563
556
  children: c(t.BACKEND$ADD_TITLE)
564
557
  })
565
558
  }),
566
- /* @__PURE__ */ j("div", {
559
+ /* @__PURE__ */ A("div", {
567
560
  className: n("px-6 pb-6", s ? "pt-6" : "pt-2"),
568
- children: /* @__PURE__ */ j(Y, {
561
+ children: /* @__PURE__ */ A(J, {
569
562
  onClose: a,
570
563
  source: o
571
564
  })
@@ -574,23 +567,23 @@ function X({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal", h
574
567
  })
575
568
  });
576
569
  let l = "edit-backend";
577
- return /* @__PURE__ */ j(h, {
570
+ return /* @__PURE__ */ A(m, {
578
571
  onClose: a,
579
572
  closeOnEscape: !1,
580
573
  "aria-label": c(t.BACKEND$EDIT_TITLE),
581
- children: /* @__PURE__ */ M("div", {
574
+ children: /* @__PURE__ */ j("div", {
582
575
  "data-testid": `${l}-modal`,
583
- className: n("relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)]", _("md")),
576
+ className: n("relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)]", g("md")),
584
577
  children: [
585
- /* @__PURE__ */ j(b, {
578
+ /* @__PURE__ */ A(y, {
586
579
  onClose: a,
587
580
  testId: `${l}-close`
588
581
  }),
589
- /* @__PURE__ */ j("h2", {
590
- className: n("pr-6", v),
582
+ /* @__PURE__ */ A("h2", {
583
+ className: n("pr-6", _),
591
584
  children: c(t.BACKEND$EDIT_TITLE)
592
585
  }),
593
- /* @__PURE__ */ j(W, {
586
+ /* @__PURE__ */ A(U, {
594
587
  mode: "edit",
595
588
  backend: i,
596
589
  onSubmitted: a,
@@ -601,6 +594,6 @@ function X({ mode: r, backend: i, onClose: a, source: o = "add_backend_modal", h
601
594
  });
602
595
  }
603
596
  //#endregion
604
- export { X as BackendFormModal };
597
+ export { Y as BackendFormModal };
605
598
 
606
599
  //# sourceMappingURL=backend-form-modal.js.map