donobu 2.20.1 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/dist/apis/AgentsApi.d.ts +45 -1
  2. package/dist/apis/AgentsApi.d.ts.map +1 -1
  3. package/dist/apis/AgentsApi.js +53 -4
  4. package/dist/apis/AgentsApi.js.map +1 -1
  5. package/dist/apis/AskAiApi.d.ts.map +1 -1
  6. package/dist/apis/AskAiApi.js +20 -9
  7. package/dist/apis/AskAiApi.js.map +1 -1
  8. package/dist/apis/DefaultApiAuthApi.d.ts +41 -5
  9. package/dist/apis/DefaultApiAuthApi.d.ts.map +1 -1
  10. package/dist/apis/DefaultApiAuthApi.js +45 -13
  11. package/dist/apis/DefaultApiAuthApi.js.map +1 -1
  12. package/dist/apis/EnvDataApi.d.ts.map +1 -1
  13. package/dist/apis/EnvDataApi.js +8 -13
  14. package/dist/apis/EnvDataApi.js.map +1 -1
  15. package/dist/apis/FlowsApi.d.ts +256 -12
  16. package/dist/apis/FlowsApi.d.ts.map +1 -1
  17. package/dist/apis/FlowsApi.js +265 -36
  18. package/dist/apis/FlowsApi.js.map +1 -1
  19. package/dist/apis/FlowsFilesApi.d.ts +46 -0
  20. package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
  21. package/dist/apis/FlowsFilesApi.js +46 -0
  22. package/dist/apis/FlowsFilesApi.js.map +1 -1
  23. package/dist/apis/FlowsToolCallsApi.d.ts +81 -3
  24. package/dist/apis/FlowsToolCallsApi.d.ts.map +1 -1
  25. package/dist/apis/FlowsToolCallsApi.js +84 -6
  26. package/dist/apis/FlowsToolCallsApi.js.map +1 -1
  27. package/dist/apis/GptConfigsApi.d.ts +74 -1
  28. package/dist/apis/GptConfigsApi.d.ts.map +1 -1
  29. package/dist/apis/GptConfigsApi.js +78 -4
  30. package/dist/apis/GptConfigsApi.js.map +1 -1
  31. package/dist/apis/PingApi.d.ts +0 -3
  32. package/dist/apis/PingApi.d.ts.map +1 -1
  33. package/dist/apis/PingApi.js +0 -3
  34. package/dist/apis/PingApi.js.map +1 -1
  35. package/dist/apis/SpecialFlowsApi.d.ts +0 -1
  36. package/dist/apis/SpecialFlowsApi.d.ts.map +1 -1
  37. package/dist/apis/SpecialFlowsApi.js +17 -36
  38. package/dist/apis/SpecialFlowsApi.js.map +1 -1
  39. package/dist/apis/VersionApi.d.ts +1 -4
  40. package/dist/apis/VersionApi.d.ts.map +1 -1
  41. package/dist/apis/VersionApi.js +1 -4
  42. package/dist/apis/VersionApi.js.map +1 -1
  43. package/dist/assets/control-panel.js +299 -156
  44. package/dist/assets/generated/version +1 -1
  45. package/dist/bindings/NamedBindingCallback.d.ts +1 -1
  46. package/dist/bindings/NamedBindingCallback.d.ts.map +1 -1
  47. package/dist/bindings/ProposeToolCall.d.ts +1 -1
  48. package/dist/bindings/ProposeToolCall.d.ts.map +1 -1
  49. package/dist/bindings/ProposeToolCall.js +24 -4
  50. package/dist/bindings/ProposeToolCall.js.map +1 -1
  51. package/dist/bindings/ToggleDonobuAnnotations.d.ts +4 -4
  52. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  53. package/dist/bindings/ToggleDonobuAnnotations.js +24 -8
  54. package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
  55. package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +1 -2
  56. package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
  57. package/dist/clients/AnthropicAwsBedrockGptClient.js +6 -7
  58. package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  59. package/dist/clients/GoogleGptClient.d.ts +1 -2
  60. package/dist/clients/GoogleGptClient.d.ts.map +1 -1
  61. package/dist/clients/GoogleGptClient.js +4 -5
  62. package/dist/clients/GoogleGptClient.js.map +1 -1
  63. package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
  64. package/dist/clients/VercelAiGptClient.js +4 -0
  65. package/dist/clients/VercelAiGptClient.js.map +1 -1
  66. package/dist/esm/apis/AgentsApi.d.ts +45 -1
  67. package/dist/esm/apis/AgentsApi.d.ts.map +1 -1
  68. package/dist/esm/apis/AgentsApi.js +53 -4
  69. package/dist/esm/apis/AgentsApi.js.map +1 -1
  70. package/dist/esm/apis/AskAiApi.d.ts.map +1 -1
  71. package/dist/esm/apis/AskAiApi.js +20 -9
  72. package/dist/esm/apis/AskAiApi.js.map +1 -1
  73. package/dist/esm/apis/DefaultApiAuthApi.d.ts +41 -5
  74. package/dist/esm/apis/DefaultApiAuthApi.d.ts.map +1 -1
  75. package/dist/esm/apis/DefaultApiAuthApi.js +45 -13
  76. package/dist/esm/apis/DefaultApiAuthApi.js.map +1 -1
  77. package/dist/esm/apis/EnvDataApi.d.ts.map +1 -1
  78. package/dist/esm/apis/EnvDataApi.js +8 -13
  79. package/dist/esm/apis/EnvDataApi.js.map +1 -1
  80. package/dist/esm/apis/FlowsApi.d.ts +256 -12
  81. package/dist/esm/apis/FlowsApi.d.ts.map +1 -1
  82. package/dist/esm/apis/FlowsApi.js +265 -36
  83. package/dist/esm/apis/FlowsApi.js.map +1 -1
  84. package/dist/esm/apis/FlowsFilesApi.d.ts +46 -0
  85. package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
  86. package/dist/esm/apis/FlowsFilesApi.js +46 -0
  87. package/dist/esm/apis/FlowsFilesApi.js.map +1 -1
  88. package/dist/esm/apis/FlowsToolCallsApi.d.ts +81 -3
  89. package/dist/esm/apis/FlowsToolCallsApi.d.ts.map +1 -1
  90. package/dist/esm/apis/FlowsToolCallsApi.js +84 -6
  91. package/dist/esm/apis/FlowsToolCallsApi.js.map +1 -1
  92. package/dist/esm/apis/GptConfigsApi.d.ts +74 -1
  93. package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
  94. package/dist/esm/apis/GptConfigsApi.js +78 -4
  95. package/dist/esm/apis/GptConfigsApi.js.map +1 -1
  96. package/dist/esm/apis/PingApi.d.ts +0 -3
  97. package/dist/esm/apis/PingApi.d.ts.map +1 -1
  98. package/dist/esm/apis/PingApi.js +0 -3
  99. package/dist/esm/apis/PingApi.js.map +1 -1
  100. package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -1
  101. package/dist/esm/apis/SpecialFlowsApi.d.ts.map +1 -1
  102. package/dist/esm/apis/SpecialFlowsApi.js +17 -36
  103. package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
  104. package/dist/esm/apis/VersionApi.d.ts +1 -4
  105. package/dist/esm/apis/VersionApi.d.ts.map +1 -1
  106. package/dist/esm/apis/VersionApi.js +1 -4
  107. package/dist/esm/apis/VersionApi.js.map +1 -1
  108. package/dist/esm/assets/control-panel.js +299 -156
  109. package/dist/esm/assets/generated/version +1 -1
  110. package/dist/esm/bindings/NamedBindingCallback.d.ts +1 -1
  111. package/dist/esm/bindings/NamedBindingCallback.d.ts.map +1 -1
  112. package/dist/esm/bindings/ProposeToolCall.d.ts +1 -1
  113. package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -1
  114. package/dist/esm/bindings/ProposeToolCall.js +24 -4
  115. package/dist/esm/bindings/ProposeToolCall.js.map +1 -1
  116. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +4 -4
  117. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  118. package/dist/esm/bindings/ToggleDonobuAnnotations.js +24 -8
  119. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
  120. package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +1 -2
  121. package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
  122. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +6 -7
  123. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  124. package/dist/esm/clients/GoogleGptClient.d.ts +1 -2
  125. package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
  126. package/dist/esm/clients/GoogleGptClient.js +4 -5
  127. package/dist/esm/clients/GoogleGptClient.js.map +1 -1
  128. package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
  129. package/dist/esm/clients/VercelAiGptClient.js +4 -0
  130. package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
  131. package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
  132. package/dist/esm/lib/utils/donobuTestStack.js +1 -2
  133. package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
  134. package/dist/esm/managers/AdminApiController.d.ts +76 -2
  135. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  136. package/dist/esm/managers/AdminApiController.js +186 -89
  137. package/dist/esm/managers/AdminApiController.js.map +1 -1
  138. package/dist/esm/managers/CodeGenerator.d.ts +2 -2
  139. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  140. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  141. package/dist/esm/managers/ControlPanel.d.ts +4 -1
  142. package/dist/esm/managers/ControlPanel.d.ts.map +1 -1
  143. package/dist/esm/managers/ControlPanel.js +18 -11
  144. package/dist/esm/managers/ControlPanel.js.map +1 -1
  145. package/dist/esm/managers/DonobuFlow.d.ts +41 -3
  146. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  147. package/dist/esm/managers/DonobuFlow.js +206 -31
  148. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  149. package/dist/esm/managers/DonobuFlowsManager.d.ts +3 -7
  150. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  151. package/dist/esm/managers/DonobuFlowsManager.js +69 -70
  152. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  153. package/dist/esm/managers/DonobuStack.d.ts +2 -1
  154. package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
  155. package/dist/esm/managers/DonobuStack.js +7 -4
  156. package/dist/esm/managers/DonobuStack.js.map +1 -1
  157. package/dist/esm/managers/FlowDependencyAnalyzer.d.ts +1 -1
  158. package/dist/esm/managers/FlowDependencyAnalyzer.d.ts.map +1 -1
  159. package/dist/esm/managers/FlowDependencyAnalyzer.js.map +1 -1
  160. package/dist/esm/managers/InteractionVisualizer.d.ts +2 -0
  161. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  162. package/dist/esm/managers/InteractionVisualizer.js +69 -17
  163. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  164. package/dist/esm/managers/PageInspector.d.ts.map +1 -1
  165. package/dist/esm/managers/PageInspector.js +41 -29
  166. package/dist/esm/managers/PageInspector.js.map +1 -1
  167. package/dist/esm/managers/ToolManager.d.ts +1 -1
  168. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  169. package/dist/esm/managers/ToolManager.js +27 -2
  170. package/dist/esm/managers/ToolManager.js.map +1 -1
  171. package/dist/esm/models/BrowserConfig.d.ts +10 -0
  172. package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
  173. package/dist/esm/models/BrowserConfig.js +4 -0
  174. package/dist/esm/models/BrowserConfig.js.map +1 -1
  175. package/dist/esm/models/CreateDonobuFlow.d.ts +358 -47
  176. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  177. package/dist/esm/models/CreateDonobuFlow.js +49 -44
  178. package/dist/esm/models/CreateDonobuFlow.js.map +1 -1
  179. package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.d.ts +31 -5
  180. package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.d.ts.map +1 -1
  181. package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.js +50 -0
  182. package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.js.map +1 -1
  183. package/dist/esm/models/FlowMetadata.d.ts +9 -0
  184. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  185. package/dist/esm/models/FlowMetadata.js +29 -11
  186. package/dist/esm/models/FlowMetadata.js.map +1 -1
  187. package/dist/esm/models/GptConfig.d.ts +185 -35
  188. package/dist/esm/models/GptConfig.d.ts.map +1 -1
  189. package/dist/esm/models/GptConfig.js +60 -0
  190. package/dist/esm/models/GptConfig.js.map +1 -1
  191. package/dist/esm/models/GptMessage.d.ts +1 -1
  192. package/dist/esm/models/GptMessage.d.ts.map +1 -1
  193. package/dist/esm/models/InteractableElement.d.ts +15 -10
  194. package/dist/esm/models/InteractableElement.d.ts.map +1 -1
  195. package/dist/esm/models/InteractableElement.js +11 -0
  196. package/dist/esm/models/InteractableElement.js.map +1 -1
  197. package/dist/esm/models/ProposedToolCall.d.ts +15 -16
  198. package/dist/esm/models/ProposedToolCall.d.ts.map +1 -1
  199. package/dist/esm/models/ProposedToolCall.js +16 -0
  200. package/dist/esm/models/ProposedToolCall.js.map +1 -1
  201. package/dist/esm/models/ToolCall.d.ts +1 -1
  202. package/dist/esm/models/ToolCall.d.ts.map +1 -1
  203. package/dist/esm/models/ToolCallContext.d.ts +1 -1
  204. package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
  205. package/dist/esm/models/ToolCallResult.d.ts +3 -3
  206. package/dist/esm/models/ToolCallResult.d.ts.map +1 -1
  207. package/dist/esm/models/ToolSchema.d.ts +2 -2
  208. package/dist/esm/models/ToolSchema.d.ts.map +1 -1
  209. package/dist/esm/models/ToolSchema.js +3 -3
  210. package/dist/esm/models/ToolSchema.js.map +1 -1
  211. package/dist/esm/tools/AcknowledgeUserInstruction.d.ts +35 -0
  212. package/dist/esm/tools/AcknowledgeUserInstruction.d.ts.map +1 -0
  213. package/dist/esm/tools/AcknowledgeUserInstruction.js +40 -0
  214. package/dist/esm/tools/AcknowledgeUserInstruction.js.map +1 -0
  215. package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts +4 -4
  216. package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts.map +1 -1
  217. package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js +1 -1
  218. package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js.map +1 -1
  219. package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
  220. package/dist/esm/tools/AssertPageTextTool.js +1 -1
  221. package/dist/esm/tools/AssertPageTool.js +1 -1
  222. package/dist/esm/tools/AssertTool.js +1 -1
  223. package/dist/esm/tools/ChangeWebBrowserTabTool.js +1 -1
  224. package/dist/esm/tools/ClickTool.d.ts +3 -3
  225. package/dist/esm/tools/ClickTool.d.ts.map +1 -1
  226. package/dist/esm/tools/ClickTool.js +1 -1
  227. package/dist/esm/tools/ClickTool.js.map +1 -1
  228. package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts +4 -4
  229. package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
  230. package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
  231. package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
  232. package/dist/esm/tools/CustomToolRunnerTool.d.ts +0 -11
  233. package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
  234. package/dist/esm/tools/CustomToolRunnerTool.js +5 -93
  235. package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
  236. package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
  237. package/dist/esm/tools/DownloadPdfTool.js +1 -1
  238. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
  239. package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts +32 -10
  240. package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts.map +1 -1
  241. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +112 -11
  242. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  243. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  244. package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts +3 -3
  245. package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts.map +1 -1
  246. package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js +2 -2
  247. package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js.map +1 -1
  248. package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
  249. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  250. package/dist/esm/tools/GoToWebpageTool.js +1 -1
  251. package/dist/esm/tools/HandleBrowserDialogTool.js +1 -1
  252. package/dist/esm/tools/HoverOverElementTool.d.ts +3 -3
  253. package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
  254. package/dist/esm/tools/HoverOverElementTool.js +1 -1
  255. package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
  256. package/dist/esm/tools/MakeCommentTool.js +1 -1
  257. package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts +3 -3
  258. package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts.map +1 -1
  259. package/dist/esm/tools/MarkObjectiveCompleteTool.js +2 -2
  260. package/dist/esm/tools/MarkObjectiveCompleteTool.js.map +1 -1
  261. package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts +4 -4
  262. package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts.map +1 -1
  263. package/dist/esm/tools/MarkObjectiveNotCompletableTool.js +1 -1
  264. package/dist/esm/tools/MarkObjectiveNotCompletableTool.js.map +1 -1
  265. package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
  266. package/dist/esm/tools/PauseForUserInteractionTool.d.ts +4 -4
  267. package/dist/esm/tools/PauseForUserInteractionTool.d.ts.map +1 -1
  268. package/dist/esm/tools/PauseForUserInteractionTool.js +1 -1
  269. package/dist/esm/tools/PauseForUserInteractionTool.js.map +1 -1
  270. package/dist/esm/tools/ReloadPageTool.d.ts +4 -4
  271. package/dist/esm/tools/ReloadPageTool.d.ts.map +1 -1
  272. package/dist/esm/tools/ReloadPageTool.js +1 -1
  273. package/dist/esm/tools/ReloadPageTool.js.map +1 -1
  274. package/dist/esm/tools/ReplayableInteraction.d.ts +2 -3
  275. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  276. package/dist/esm/tools/ReplayableInteraction.js +1 -1
  277. package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
  278. package/dist/esm/tools/RunAccessibilityTestTool.d.ts +4 -4
  279. package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  280. package/dist/esm/tools/RunAccessibilityTestTool.js +1 -1
  281. package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
  282. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
  283. package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js +1 -1
  284. package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts +4 -4
  285. package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts.map +1 -1
  286. package/dist/esm/tools/SaveWebpageAsPdfTool.js +1 -1
  287. package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
  288. package/dist/esm/tools/ScrollPageTool.js +1 -1
  289. package/dist/esm/tools/SetRunModeTool.js +1 -1
  290. package/dist/esm/tools/SummarizeLearningsTool.js +1 -1
  291. package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +963 -319
  292. package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
  293. package/dist/esm/tools/TriggerDonobuFlowTool.js +1 -1
  294. package/dist/esm/tools/WaitTool.js +1 -1
  295. package/dist/esm/utils/TemplateInterpolator.d.ts +1 -1
  296. package/dist/esm/utils/TemplateInterpolator.d.ts.map +1 -1
  297. package/dist/esm/utils/TemplateInterpolator.js.map +1 -1
  298. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
  299. package/dist/lib/utils/donobuTestStack.js +1 -2
  300. package/dist/lib/utils/donobuTestStack.js.map +1 -1
  301. package/dist/managers/AdminApiController.d.ts +76 -2
  302. package/dist/managers/AdminApiController.d.ts.map +1 -1
  303. package/dist/managers/AdminApiController.js +186 -89
  304. package/dist/managers/AdminApiController.js.map +1 -1
  305. package/dist/managers/CodeGenerator.d.ts +2 -2
  306. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  307. package/dist/managers/CodeGenerator.js.map +1 -1
  308. package/dist/managers/ControlPanel.d.ts +4 -1
  309. package/dist/managers/ControlPanel.d.ts.map +1 -1
  310. package/dist/managers/ControlPanel.js +18 -11
  311. package/dist/managers/ControlPanel.js.map +1 -1
  312. package/dist/managers/DonobuFlow.d.ts +41 -3
  313. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  314. package/dist/managers/DonobuFlow.js +206 -31
  315. package/dist/managers/DonobuFlow.js.map +1 -1
  316. package/dist/managers/DonobuFlowsManager.d.ts +3 -7
  317. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  318. package/dist/managers/DonobuFlowsManager.js +69 -70
  319. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  320. package/dist/managers/DonobuStack.d.ts +2 -1
  321. package/dist/managers/DonobuStack.d.ts.map +1 -1
  322. package/dist/managers/DonobuStack.js +7 -4
  323. package/dist/managers/DonobuStack.js.map +1 -1
  324. package/dist/managers/FlowDependencyAnalyzer.d.ts +1 -1
  325. package/dist/managers/FlowDependencyAnalyzer.d.ts.map +1 -1
  326. package/dist/managers/FlowDependencyAnalyzer.js.map +1 -1
  327. package/dist/managers/InteractionVisualizer.d.ts +2 -0
  328. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  329. package/dist/managers/InteractionVisualizer.js +69 -17
  330. package/dist/managers/InteractionVisualizer.js.map +1 -1
  331. package/dist/managers/PageInspector.d.ts.map +1 -1
  332. package/dist/managers/PageInspector.js +41 -29
  333. package/dist/managers/PageInspector.js.map +1 -1
  334. package/dist/managers/ToolManager.d.ts +1 -1
  335. package/dist/managers/ToolManager.d.ts.map +1 -1
  336. package/dist/managers/ToolManager.js +27 -2
  337. package/dist/managers/ToolManager.js.map +1 -1
  338. package/dist/models/BrowserConfig.d.ts +10 -0
  339. package/dist/models/BrowserConfig.d.ts.map +1 -1
  340. package/dist/models/BrowserConfig.js +4 -0
  341. package/dist/models/BrowserConfig.js.map +1 -1
  342. package/dist/models/CreateDonobuFlow.d.ts +358 -47
  343. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  344. package/dist/models/CreateDonobuFlow.js +49 -44
  345. package/dist/models/CreateDonobuFlow.js.map +1 -1
  346. package/dist/models/CreateGoogleSteetviewExtractionFlow.d.ts +31 -5
  347. package/dist/models/CreateGoogleSteetviewExtractionFlow.d.ts.map +1 -1
  348. package/dist/models/CreateGoogleSteetviewExtractionFlow.js +50 -0
  349. package/dist/models/CreateGoogleSteetviewExtractionFlow.js.map +1 -1
  350. package/dist/models/FlowMetadata.d.ts +9 -0
  351. package/dist/models/FlowMetadata.d.ts.map +1 -1
  352. package/dist/models/FlowMetadata.js +29 -11
  353. package/dist/models/FlowMetadata.js.map +1 -1
  354. package/dist/models/GptConfig.d.ts +185 -35
  355. package/dist/models/GptConfig.d.ts.map +1 -1
  356. package/dist/models/GptConfig.js +60 -0
  357. package/dist/models/GptConfig.js.map +1 -1
  358. package/dist/models/GptMessage.d.ts +1 -1
  359. package/dist/models/GptMessage.d.ts.map +1 -1
  360. package/dist/models/InteractableElement.d.ts +15 -10
  361. package/dist/models/InteractableElement.d.ts.map +1 -1
  362. package/dist/models/InteractableElement.js +11 -0
  363. package/dist/models/InteractableElement.js.map +1 -1
  364. package/dist/models/ProposedToolCall.d.ts +15 -16
  365. package/dist/models/ProposedToolCall.d.ts.map +1 -1
  366. package/dist/models/ProposedToolCall.js +16 -0
  367. package/dist/models/ProposedToolCall.js.map +1 -1
  368. package/dist/models/ToolCall.d.ts +1 -1
  369. package/dist/models/ToolCall.d.ts.map +1 -1
  370. package/dist/models/ToolCallContext.d.ts +1 -1
  371. package/dist/models/ToolCallContext.d.ts.map +1 -1
  372. package/dist/models/ToolCallResult.d.ts +3 -3
  373. package/dist/models/ToolCallResult.d.ts.map +1 -1
  374. package/dist/models/ToolSchema.d.ts +2 -2
  375. package/dist/models/ToolSchema.d.ts.map +1 -1
  376. package/dist/models/ToolSchema.js +3 -3
  377. package/dist/models/ToolSchema.js.map +1 -1
  378. package/dist/tools/AcknowledgeUserInstruction.d.ts +35 -0
  379. package/dist/tools/AcknowledgeUserInstruction.d.ts.map +1 -0
  380. package/dist/tools/AcknowledgeUserInstruction.js +40 -0
  381. package/dist/tools/AcknowledgeUserInstruction.js.map +1 -0
  382. package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts +4 -4
  383. package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts.map +1 -1
  384. package/dist/tools/AggregateExtractedStreetviewDataTool.js +1 -1
  385. package/dist/tools/AggregateExtractedStreetviewDataTool.js.map +1 -1
  386. package/dist/tools/AnalyzePageTextTool.js +1 -1
  387. package/dist/tools/AssertPageTextTool.js +1 -1
  388. package/dist/tools/AssertPageTool.js +1 -1
  389. package/dist/tools/AssertTool.js +1 -1
  390. package/dist/tools/ChangeWebBrowserTabTool.js +1 -1
  391. package/dist/tools/ClickTool.d.ts +3 -3
  392. package/dist/tools/ClickTool.d.ts.map +1 -1
  393. package/dist/tools/ClickTool.js +1 -1
  394. package/dist/tools/ClickTool.js.map +1 -1
  395. package/dist/tools/CreateBrowserCookieReportTool.d.ts +4 -4
  396. package/dist/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
  397. package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
  398. package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
  399. package/dist/tools/CustomToolRunnerTool.d.ts +0 -11
  400. package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
  401. package/dist/tools/CustomToolRunnerTool.js +5 -93
  402. package/dist/tools/CustomToolRunnerTool.js.map +1 -1
  403. package/dist/tools/DetectBrokenLinksTool.js +1 -1
  404. package/dist/tools/DownloadPdfTool.js +1 -1
  405. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
  406. package/dist/tools/ExtractPaymentProviderKeyTool.d.ts +32 -10
  407. package/dist/tools/ExtractPaymentProviderKeyTool.d.ts.map +1 -1
  408. package/dist/tools/ExtractPaymentProviderKeyTool.js +112 -11
  409. package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  410. package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  411. package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts +3 -3
  412. package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts.map +1 -1
  413. package/dist/tools/GetEntityDataFromGoogleMapResult.js +2 -2
  414. package/dist/tools/GetEntityDataFromGoogleMapResult.js.map +1 -1
  415. package/dist/tools/GoForwardOrBackTool.js +1 -1
  416. package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  417. package/dist/tools/GoToWebpageTool.js +1 -1
  418. package/dist/tools/HandleBrowserDialogTool.js +1 -1
  419. package/dist/tools/HoverOverElementTool.d.ts +3 -3
  420. package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
  421. package/dist/tools/HoverOverElementTool.js +1 -1
  422. package/dist/tools/HoverOverElementTool.js.map +1 -1
  423. package/dist/tools/MakeCommentTool.js +1 -1
  424. package/dist/tools/MarkObjectiveCompleteTool.d.ts +3 -3
  425. package/dist/tools/MarkObjectiveCompleteTool.d.ts.map +1 -1
  426. package/dist/tools/MarkObjectiveCompleteTool.js +2 -2
  427. package/dist/tools/MarkObjectiveCompleteTool.js.map +1 -1
  428. package/dist/tools/MarkObjectiveNotCompletableTool.d.ts +4 -4
  429. package/dist/tools/MarkObjectiveNotCompletableTool.d.ts.map +1 -1
  430. package/dist/tools/MarkObjectiveNotCompletableTool.js +1 -1
  431. package/dist/tools/MarkObjectiveNotCompletableTool.js.map +1 -1
  432. package/dist/tools/NavigateWithinStreetView.js +1 -1
  433. package/dist/tools/PauseForUserInteractionTool.d.ts +4 -4
  434. package/dist/tools/PauseForUserInteractionTool.d.ts.map +1 -1
  435. package/dist/tools/PauseForUserInteractionTool.js +1 -1
  436. package/dist/tools/PauseForUserInteractionTool.js.map +1 -1
  437. package/dist/tools/ReloadPageTool.d.ts +4 -4
  438. package/dist/tools/ReloadPageTool.d.ts.map +1 -1
  439. package/dist/tools/ReloadPageTool.js +1 -1
  440. package/dist/tools/ReloadPageTool.js.map +1 -1
  441. package/dist/tools/ReplayableInteraction.d.ts +2 -3
  442. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  443. package/dist/tools/ReplayableInteraction.js +1 -1
  444. package/dist/tools/ReplayableInteraction.js.map +1 -1
  445. package/dist/tools/RunAccessibilityTestTool.d.ts +4 -4
  446. package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  447. package/dist/tools/RunAccessibilityTestTool.js +1 -1
  448. package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
  449. package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
  450. package/dist/tools/RunSandboxedJavaScriptCodeTool.js +1 -1
  451. package/dist/tools/SaveWebpageAsPdfTool.d.ts +4 -4
  452. package/dist/tools/SaveWebpageAsPdfTool.d.ts.map +1 -1
  453. package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
  454. package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
  455. package/dist/tools/ScrollPageTool.js +1 -1
  456. package/dist/tools/SetRunModeTool.js +1 -1
  457. package/dist/tools/SummarizeLearningsTool.js +1 -1
  458. package/dist/tools/TriggerDonobuFlowTool.d.ts +963 -319
  459. package/dist/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
  460. package/dist/tools/TriggerDonobuFlowTool.js +1 -1
  461. package/dist/tools/WaitTool.js +1 -1
  462. package/dist/utils/TemplateInterpolator.d.ts +1 -1
  463. package/dist/utils/TemplateInterpolator.d.ts.map +1 -1
  464. package/dist/utils/TemplateInterpolator.js.map +1 -1
  465. package/package.json +3 -3
@@ -10,6 +10,15 @@
10
10
  });
11
11
  }
12
12
 
13
+ if (!window.__donobu.userMessage) {
14
+ Object.defineProperty(window.__donobu, 'userMessage', {
15
+ value: null,
16
+ enumerable: false,
17
+ writable: true,
18
+ configurable: false,
19
+ });
20
+ }
21
+
13
22
  if (!window.__donobu.controlPanelRegistered) {
14
23
  Object.defineProperty(window.__donobu, 'controlPanelRegistered', {
15
24
  value: true,
@@ -79,103 +88,142 @@
79
88
  // Global styles
80
89
  const styleEl = document.createElement('style');
81
90
  styleEl.textContent = `
82
- :host {
83
- all: initial;
84
- position: fixed;
85
- top: 150px;
86
- right: 20px;
87
- z-index: 2147483647;
88
- width: 300px;
89
- }
91
+ :host {
92
+ all: initial;
93
+ position: fixed;
94
+ top: 150px;
95
+ right: 20px;
96
+ z-index: 2147483647;
97
+ width: 300px;
98
+ }
99
+
100
+ #panel-content,
101
+ #panel-content * {
102
+ box-sizing: border-box;
103
+ margin: 0;
104
+ padding: 0;
105
+ font-family: Helvetica, Arial, sans-serif;
106
+ font-size: 14px;
107
+ color: #fff !important;
108
+ }
109
+
110
+ #donobu-control-panel-title-text {
111
+ font-weight: 600 !important;
112
+ margin-left: 10px;
113
+ }
114
+
115
+ #panel-content input[type="text"] {
116
+ border: 1px solid #ddd !important;
117
+ background-color: #fff !important;
118
+ color: #000 !important;
119
+ }
120
+
121
+ #donobu-play-icon,
122
+ #donobu-pause-icon,
123
+ #donobu-end-icon {
124
+ fill: none !important;
125
+ stroke: currentColor !important;
126
+ stroke-width: 2 !important;
127
+ stroke-linecap: round !important;
128
+ stroke-linejoin: round !important;
129
+ }
130
+
131
+ #panel-content {
132
+ background-color: rgba(6,8,7,0.9);
133
+ border: 3px solid rgba(251,188,5, 0.9);
134
+ border-radius: 8px;
135
+ box-shadow: 0 4px 8px rgba(0,0,0,0.8);
136
+ cursor: move;
137
+ width: 100%;
138
+ overflow: hidden;
139
+ /* Add smooth transition for height changes */
140
+ transition: all 0.3s ease-in-out;
141
+ }
142
+
143
+ .donobu-hidden {
144
+ opacity: 0 !important;
145
+ pointer-events: none !important;
146
+ }
147
+
148
+ /* Enhanced expandable content with smooth animations */
149
+ #donobu-control-panel-expandable-content {
150
+ padding: 0 15px; /* Remove top/bottom padding initially */
151
+ max-height: 0;
152
+ overflow: hidden;
153
+ opacity: 0;
154
+ /* Smooth transitions for max-height, opacity, and padding */
155
+ transition: max-height 0.3s ease-in-out,
156
+ opacity 0.3s ease-in-out,
157
+ padding 0.3s ease-in-out;
158
+ }
159
+
160
+ /* When expanded */
161
+ #donobu-control-panel-expandable-content.expanded {
162
+ max-height: 300px; /* Adjust based on your content */
163
+ opacity: 1;
164
+ padding: 15px; /* Full padding when expanded */
165
+ }
166
+
167
+ .navbar {
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: space-between;
171
+ padding: 15px;
172
+ font-weight: 600;
173
+ background-color: rgba(6,8,7,0.9);
174
+ border-bottom: 1px solid rgba(251,188,5, 0.5);
175
+ }
176
+
177
+ .icon-btn {
178
+ margin-right: 8px;
179
+ display: flex;
180
+ cursor: pointer;
181
+ opacity: 0.5;
182
+ transition: opacity 0.2s ease-in-out;
183
+ }
184
+
185
+ #panel-content textarea {
186
+ border: 1px solid #ddd !important;
187
+ background-color: #fff !important;
188
+ color: #000 !important;
189
+ }
190
+
191
+ #panel-content textarea::placeholder {
192
+ color: #666 !important;
193
+ opacity: 1 !important;
194
+ }
195
+
196
+ .icon-container {
197
+ display: flex;
198
+ align-items: center;
199
+ margin-right: 5px;
200
+ }
201
+
202
+ /* Smooth transition for user message section */
203
+ #donobu-user-message-section {
204
+ margin-bottom: 10px;
205
+ opacity: 0;
206
+ transform: translateY(-10px);
207
+ transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
208
+ }
209
+
210
+ #donobu-user-message-section.visible {
211
+ opacity: 1;
212
+ transform: translateY(0);
213
+ }
214
+
215
+ /* Enhanced textarea with smooth focus transitions */
216
+ #donobu-user-message-input {
217
+ transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
218
+ }
219
+
220
+ #donobu-user-message-input:focus {
221
+ border-color: rgba(251,188,5, 0.8) !important;
222
+ box-shadow: 0 0 0 2px rgba(251,188,5, 0.2) !important;
223
+ outline: none !important;
224
+ }
225
+ `;
90
226
 
91
- #panel-content,
92
- #panel-content * {
93
- box-sizing: border-box;
94
- margin: 0;
95
- padding: 0;
96
- font-family: Helvetica, Arial, sans-serif;
97
- font-size: 14px;
98
- color: #fff !important;
99
- }
100
-
101
- #donobu-control-panel-title-text {
102
- font-weight: 600 !important;
103
- margin-left: 10px;
104
- }
105
-
106
- #panel-content input[type="text"] {
107
- border: 1px solid #ddd !important;
108
- background-color: #fff !important;
109
- color: #000 !important;
110
- }
111
-
112
- #donobu-play-icon,
113
- #donobu-pause-icon,
114
- #donobu-end-icon {
115
- fill: none !important;
116
- stroke: currentColor !important;
117
- stroke-width: 2 !important;
118
- stroke-linecap: round !important;
119
- stroke-linejoin: round !important;
120
- }
121
-
122
- #donobu-control-panel-display-area {
123
- color: #fff !important;
124
- margin-top: 10px;
125
- }
126
-
127
- #panel-content {
128
- background-color: rgba(6,8,7,0.9);
129
- border: 3px solid rgba(251,188,5, 0.9);
130
- border-radius: 8px;
131
- box-shadow: 0 4px 8px rgba(0,0,0,0.8);
132
- transition: height 0.3s ease;
133
- cursor: move;
134
- width: 100%;
135
- overflow: hidden;
136
- }
137
- .donobu-hidden {
138
- opacity: 0 !important;
139
- pointer-events: none !important;
140
- }
141
- #donobu-control-panel-expandable-content {
142
- display: none;
143
- padding: 15px;
144
- max-height: 300px;
145
- overflow-y: auto;
146
- }
147
-
148
- .navbar {
149
- display: flex;
150
- align-items: center;
151
- justify-content: space-between;
152
- padding: 15px;
153
- font-weight: 600;
154
- background-color: rgba(6,8,7,0.9);
155
- border-bottom: 1px solid rgba(251,188,5, 0.5);
156
- }
157
-
158
- .icon-btn {
159
- margin-right: 8px;
160
- display: flex;
161
- cursor: pointer;
162
- opacity: 0.5;
163
- }
164
-
165
- #donobu-instructions-input {
166
- width: 100%;
167
- margin-bottom: 10px;
168
- padding: 8px;
169
- border: 1px solid #ddd;
170
- border-radius: 4px;
171
- }
172
-
173
- .icon-container {
174
- display: flex;
175
- align-items: center;
176
- margin-right: 5px;
177
- }
178
- `;
179
227
  shadow.appendChild(styleEl);
180
228
 
181
229
  // Main panel container
@@ -270,17 +318,27 @@
270
318
  const expandableContent = document.createElement('div');
271
319
  expandableContent.id = 'donobu-control-panel-expandable-content';
272
320
 
273
- const instructionsInput = document.createElement('input');
274
- instructionsInput.type = 'text';
275
- instructionsInput.id = 'donobu-instructions-input';
276
- instructionsInput.placeholder = 'Additional instructions...';
277
-
278
- const displayArea = document.createElement('div');
279
- displayArea.id = 'donobu-control-panel-display-area';
280
- displayArea.textContent = 'Popup: Monitoring...';
281
-
282
- expandableContent.appendChild(instructionsInput);
283
- expandableContent.appendChild(displayArea);
321
+ // User message input section (initially hidden)
322
+ const userMessageSection = document.createElement('div');
323
+ userMessageSection.id = 'donobu-user-message-section';
324
+ userMessageSection.style.display = 'none';
325
+ userMessageSection.style.marginBottom = '10px';
326
+
327
+ const userMessageInput = document.createElement('textarea');
328
+ userMessageInput.id = 'donobu-user-message-input';
329
+ userMessageInput.placeholder =
330
+ 'Additional instructions...\n(Press Enter or Resume to submit)';
331
+ userMessageInput.style.width = '100%';
332
+ userMessageInput.style.height = '60px';
333
+ userMessageInput.style.padding = '8px';
334
+ userMessageInput.style.border = '1px solid #ddd';
335
+ userMessageInput.style.borderRadius = '4px';
336
+ userMessageInput.style.resize = 'vertical';
337
+ userMessageInput.style.fontFamily = 'inherit';
338
+ userMessageInput.style.fontSize = '12px';
339
+
340
+ userMessageSection.appendChild(userMessageInput);
341
+ expandableContent.appendChild(userMessageSection);
284
342
 
285
343
  // Attach everything
286
344
  panelContent.appendChild(navbar);
@@ -299,29 +357,125 @@
299
357
  btn.style.cursor = active ? 'pointer' : 'default';
300
358
  }
301
359
 
360
+ // Helper function to handle resume logic (shared by play button and Enter key)
361
+ function handleResume() {
362
+ if (hostEl.donobuFlowState === 'PAUSED' && !isTransitioningToEnd) {
363
+ // Capture the user message if present
364
+ const userMessageInput = shadow.getElementById(
365
+ 'donobu-user-message-input',
366
+ );
367
+ const userMessage = userMessageInput
368
+ ? userMessageInput.value.trim()
369
+ : '';
370
+ hostEl.donobuFlowState = 'RESUMING';
371
+ isTransitioningToPause = false;
372
+ titleText.textContent = 'Resuming...';
373
+ window.__donobu.nextState = 'RESUMING';
374
+ window.__donobu.userMessage = userMessage || null;
375
+ // Clear the input after capturing
376
+ if (userMessageInput) {
377
+ userMessageInput.value = '';
378
+ }
379
+
380
+ updateButtonStates();
381
+ return true; // Indicate that resume was handled
382
+ }
383
+ return false; // Indicate that resume was not applicable
384
+ }
385
+
302
386
  function updateButtonStates() {
303
387
  if (!document.contains(hostEl)) {
304
- // If forcibly removed, re-append (optional).
305
388
  document.body.appendChild(hostEl);
306
389
  }
307
390
 
308
391
  const currentState = hostEl.donobuFlowState;
392
+ const runMode = hostEl.donobuRunMode || 'AUTONOMOUS';
393
+ const userMessageSection = shadow.getElementById(
394
+ 'donobu-user-message-section',
395
+ );
396
+
397
+ // Show user input if:
398
+ // 1. Currently paused and in autonomous mode, OR
399
+ // 2. Transitioning to pause (eager expansion)
400
+ const shouldShowUserInput =
401
+ (currentState === 'PAUSED' && runMode === 'AUTONOMOUS') ||
402
+ isTransitioningToPause;
403
+
404
+ if (userMessageSection) {
405
+ // Smooth show/hide user input section
406
+ if (shouldShowUserInput) {
407
+ // Show and expand the panel
408
+ expandableContent.classList.add('expanded');
409
+ // Small delay to ensure the expandable content animation starts first
410
+ setTimeout(() => {
411
+ userMessageSection.style.display = 'block';
412
+ // Trigger reflow, then add visible class for smooth transition
413
+ userMessageSection.offsetHeight;
414
+ userMessageSection.classList.add('visible');
415
+ // Auto-focus the textarea when it becomes visible and we're actually paused
416
+ // (not just transitioning)
417
+ if (currentState === 'PAUSED') {
418
+ const textarea = shadow.getElementById(
419
+ 'donobu-user-message-input',
420
+ );
421
+ if (textarea) {
422
+ textarea.focus();
423
+ }
424
+ }
425
+ }, 100);
426
+ } else {
427
+ // Hide user input section first
428
+ userMessageSection.classList.remove('visible');
429
+
430
+ // After the user section animation, collapse the panel
431
+ setTimeout(() => {
432
+ userMessageSection.style.display = 'none';
433
+ expandableContent.classList.remove('expanded');
434
+ }, 300); // Match the CSS transition duration
435
+ }
436
+ }
309
437
 
438
+ // This block handles the visual state while waiting for the backend.
439
+ // We check if the final state has arrived. If it has NOT, we show the
440
+ // "transitioning" UI and then `return` to wait for the next update.
310
441
  if (isTransitioningToEnd) {
311
- titleText.textContent = 'Ending...';
312
- setButtonState(playButton, false);
313
- setButtonState(pauseButton, false);
314
- setButtonState(endButton, false);
315
- return;
442
+ if (currentState !== 'SUCCESS') {
443
+ // The title text is set by the event listener. We just manage buttons.
444
+ setButtonState(playButton, false);
445
+ setButtonState(pauseButton, false);
446
+ setButtonState(endButton, false);
447
+ return; // Wait for the 'SUCCESS' state to arrive from the backend.
448
+ }
449
+ // If we're here, it means currentState IS 'SUCCESS', so we let the switch handle it.
316
450
  }
317
451
 
452
+ if (isTransitioningToPause) {
453
+ if (currentState !== 'PAUSED') {
454
+ // The title text is set by the event listener.
455
+ setButtonState(playButton, false);
456
+ setButtonState(pauseButton, false);
457
+ setButtonState(endButton, true);
458
+ return; // Wait for the 'PAUSED' state to arrive from the backend.
459
+ }
460
+ // If we're here, it means currentState IS 'PAUSED', so we let the switch handle it.
461
+ }
462
+ // If not transitioning (or if the final transition state has arrived),
463
+ // this switch becomes the ultimate source of truth for the UI.
318
464
  switch (currentState) {
319
465
  case 'PAUSED':
320
466
  titleText.textContent = 'Paused';
321
467
  setButtonState(playButton, true);
322
468
  setButtonState(pauseButton, false);
323
469
  setButtonState(endButton, true);
324
- isTransitioningToPause = false;
470
+ isTransitioningToPause = false; // Reset the latch!
471
+ break;
472
+
473
+ case 'SUCCESS':
474
+ titleText.textContent = 'Success!';
475
+ setButtonState(playButton, false);
476
+ setButtonState(pauseButton, false);
477
+ setButtonState(endButton, false);
478
+ isTransitioningToEnd = false; // Reset the latch!
325
479
  break;
326
480
 
327
481
  case 'QUERYING_LLM_FOR_NEXT_ACTION':
@@ -339,8 +493,7 @@
339
493
  break;
340
494
 
341
495
  case 'RUNNING_ACTION':
342
- // Do not set the titleText.textContent for this case since the
343
- // backend overwrites this value when running an action.
496
+ // The backend sets the title, we manage buttons.
344
497
  setButtonState(playButton, false);
345
498
  setButtonState(pauseButton, true);
346
499
  setButtonState(endButton, true);
@@ -353,75 +506,65 @@
353
506
  setButtonState(endButton, true);
354
507
  break;
355
508
 
356
- case 'SUCCESS':
357
- titleText.textContent = 'Success!';
358
- setButtonState(playButton, false);
359
- setButtonState(pauseButton, false);
360
- setButtonState(endButton, false);
361
- break;
362
-
363
509
  default:
364
- // "Running" or any other custom state
365
- if (isTransitioningToPause) {
366
- titleText.textContent = 'Pausing...';
367
- setButtonState(playButton, false);
368
- setButtonState(pauseButton, false);
369
- setButtonState(endButton, true);
370
- } else {
371
- titleText.textContent = currentState;
372
- setButtonState(playButton, false);
373
- setButtonState(pauseButton, true);
374
- setButtonState(endButton, true);
375
- }
510
+ // "Running" or any other custom state from backend
511
+ titleText.textContent = currentState;
512
+ setButtonState(playButton, false);
513
+ setButtonState(pauseButton, true);
514
+ setButtonState(endButton, true);
376
515
  break;
377
516
  }
378
517
  }
379
518
 
380
- // Interval for state updates
381
519
  const stateInterval = setInterval(updateButtonStates, 500);
382
520
 
383
521
  // --- Button event listeners ---
384
522
 
385
- // PLAY button: signals user wants to resume from paused
386
523
  playButton.addEventListener('click', () => {
387
- if (hostEl.donobuFlowState === 'PAUSED' && !isTransitioningToEnd) {
388
- // UI states
389
- hostEl.donobuFlowState = 'RUNNING';
390
- isTransitioningToPause = false;
391
-
392
- // Expose next state so external script can pick it up
393
- window.__donobu.nextState = 'RESUMING';
394
-
395
- updateButtonStates();
396
- }
524
+ handleResume();
397
525
  });
398
526
 
399
527
  // PAUSE button: signals user wants to pause
400
528
  pauseButton.addEventListener('click', () => {
401
- if (hostEl.donobuFlowState !== 'PAUSED' && !isTransitioningToEnd) {
402
- hostEl.donobuFlowState = 'PAUSED';
529
+ // Check if the pause button is currently active
530
+ const isPauseActive = pauseButton.style.opacity === '1';
531
+ if (isPauseActive && !isTransitioningToPause && !isTransitioningToEnd) {
403
532
  isTransitioningToPause = true;
404
-
405
- // Expose next state
533
+ // Provide immediate, informative feedback to the user.
534
+ titleText.textContent = `Pausing...`;
535
+ // Expose next state so external script can pick it up
406
536
  window.__donobu.nextState = 'PAUSED';
407
-
537
+ // Manually update button states for immediate feedback
408
538
  updateButtonStates();
409
539
  }
410
540
  });
411
541
 
412
542
  // END button: signals user wants to stop / end the flow
413
543
  endButton.addEventListener('click', () => {
414
- if (!isTransitioningToEnd) {
415
- hostEl.donobuFlowState = 'SUCCESS';
544
+ const isEndActive = endButton.style.opacity === '1';
545
+ if (isEndActive && !isTransitioningToEnd) {
416
546
  isTransitioningToEnd = true;
417
-
547
+ titleText.textContent = `Quitting...`;
418
548
  // Expose next state
419
549
  window.__donobu.nextState = 'SUCCESS';
420
-
550
+ // Manually update button states for immediate feedback
421
551
  updateButtonStates();
422
552
  }
423
553
  });
424
554
 
555
+ // Add Enter key listener to the textarea
556
+ userMessageInput.addEventListener('keydown', (e) => {
557
+ // Handle Enter key (but not Shift+Enter, which should create new lines)
558
+ if (e.key === 'Enter' && !e.shiftKey) {
559
+ e.preventDefault(); // Prevent default textarea behavior
560
+
561
+ // Only trigger resume if we're in a paused state
562
+ if (handleResume()) {
563
+ // Resume was successful, the handleResume function took care of everything
564
+ }
565
+ }
566
+ });
567
+
425
568
  // --- Drag-and-drop logic ---
426
569
  let isDragging = false;
427
570
  let offsetX = 0;
@@ -1 +1 @@
1
- 1215
1
+ 1248
@@ -19,6 +19,6 @@ export interface NamedBindingCallback {
19
19
  context: BrowserContext;
20
20
  page: Page;
21
21
  frame: Frame;
22
- }, ...args: any[]): any;
22
+ }, ...args: any[]): Promise<any>;
23
23
  }
24
24
  //# sourceMappingURL=NamedBindingCallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NamedBindingCallback.d.ts","sourceRoot":"","sources":["../../../src/bindings/NamedBindingCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,IAAI,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CACF,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,GAAG,CAAC;CACR"}
1
+ {"version":3,"file":"NamedBindingCallback.d.ts","sourceRoot":"","sources":["../../../src/bindings/NamedBindingCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,IAAI,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CACF,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB"}
@@ -11,7 +11,7 @@ export declare class ProposeToolCall implements NamedBindingCallback {
11
11
  static register(donobuFlow: DonobuFlow, browserContext: BrowserContext): Promise<ProposeToolCall>;
12
12
  constructor(donobuFlow: DonobuFlow);
13
13
  name(): string;
14
- call(_source: {
14
+ call(source: {
15
15
  context: BrowserContext;
16
16
  page: Page;
17
17
  frame: Frame;
@@ -1 +1 @@
1
- {"version":3,"file":"ProposeToolCall.d.ts","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,oBAAoB;IAevC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAd9C,gBAAuB,IAAI,6BAA6B;WAEpC,QAAQ,CAC1B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,eAAe,CAAC;gBASS,UAAU,EAAE,UAAU;IAEnD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,OAAO,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC9D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAOjB"}
1
+ {"version":3,"file":"ProposeToolCall.d.ts","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,oBAAoB;IAevC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAd9C,gBAAuB,IAAI,6BAA6B;WAEpC,QAAQ,CAC1B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,eAAe,CAAC;gBASS,UAAU,EAAE,UAAU;IAEnD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAiCjB"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProposeToolCall = void 0;
4
4
  const Logger_1 = require("../utils/Logger");
5
+ const ProposedToolCall_1 = require("../models/ProposedToolCall");
6
+ const zod_1 = require("zod");
5
7
  /**
6
8
  * A binding to allow arbitrary tool calls to be proposed from the frontend.
7
9
  * This is for debugging purposes only.
@@ -18,10 +20,28 @@ class ProposeToolCall {
18
20
  name() {
19
21
  return ProposeToolCall.NAME;
20
22
  }
21
- async call(_source, ...args) {
22
- Logger_1.appLogger.debug(`Proposed tool call from frontend: ${JSON.stringify(args[0])}`);
23
- const proposedToolCall = args[0];
24
- this.donobuFlow.proposedToolCalls.push(proposedToolCall);
23
+ async call(source, ...args) {
24
+ Logger_1.appLogger.debug(`Proposed tool call from frontend: ${JSON.stringify(args)}`);
25
+ try {
26
+ const name = zod_1.z.string().parse(args[0]);
27
+ try {
28
+ const parameters = ProposedToolCall_1.ProposedToolCallSchema.shape.parameters.parse(args[1]);
29
+ this.donobuFlow.proposedToolCalls.push({
30
+ name,
31
+ parameters,
32
+ });
33
+ }
34
+ catch (error) {
35
+ await source.page.evaluate((message) => {
36
+ console.error(message);
37
+ }, `Second argument must be the tool args: ${error.message}`);
38
+ }
39
+ }
40
+ catch (error) {
41
+ await source.page.evaluate((message) => {
42
+ console.error(message);
43
+ }, `First argument must be the tool name: ${error.message}`);
44
+ }
25
45
  }
26
46
  }
27
47
  exports.ProposeToolCall = ProposeToolCall;
@@ -1 +1 @@
1
- {"version":3,"file":"ProposeToolCall.js","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":";;;AAGA,4CAA4C;AAG5C;;;GAGG;AACH,MAAa,eAAe;IAGnB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,UAAsB,EACtB,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,IAAI;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAA8D,EAC9D,GAAG,IAAW;QAEd,kBAAS,CAAC,KAAK,CACb,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAC/D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAA0B,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;;AA9BH,0CA+BC;AA9BwB,oBAAI,GAAG,yBAAyB,CAAC"}
1
+ {"version":3,"file":"ProposeToolCall.js","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":";;;AAGA,4CAA4C;AAC5C,iEAAoE;AACpE,6BAAkC;AAElC;;;GAGG;AACH,MAAa,eAAe;IAGnB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,UAAsB,EACtB,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,IAAI;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,kBAAS,CAAC,KAAK,CACb,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,yCAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAC9D,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBACrC,IAAI;oBACJ,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CACxB,CAAC,OAAO,EAAE,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC,EACD,0CAA2C,KAAkB,CAAC,OAAO,EAAE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CACxB,CAAC,OAAO,EAAE,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC,EACD,yCAA0C,KAAkB,CAAC,OAAO,EAAE,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;;AAxDH,0CAyDC;AAxDwB,oBAAI,GAAG,yBAAyB,CAAC"}
@@ -2,14 +2,14 @@ import { PageInspector } from '../managers/PageInspector';
2
2
  import { NamedBindingCallback } from './NamedBindingCallback';
3
3
  import { BrowserContext, Page, Frame } from 'playwright';
4
4
  /**
5
- * A binding that toggles the annotations on the page executing this callback.
5
+ * A binding that sets or unsets the annotations on the page executing this callback.
6
6
  * This is used for debugging purposes to show the interactable elements on the page
7
7
  * as understood by the Donobu engine.
8
8
  */
9
- export declare class ToggleDonobuAnnotations implements NamedBindingCallback {
9
+ export declare class SetDonobuAnnotations implements NamedBindingCallback {
10
10
  private readonly pageInspector;
11
- static readonly NAME = "__donobuToggleAnnotations";
12
- static register(pageInspector: PageInspector, browserContext: BrowserContext): Promise<ToggleDonobuAnnotations>;
11
+ static readonly NAME = "__donobuSetAnnotations";
12
+ static register(pageInspector: PageInspector, browserContext: BrowserContext): Promise<SetDonobuAnnotations>;
13
13
  constructor(pageInspector: PageInspector);
14
14
  name(): string;
15
15
  call(source: {
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,oBAAoB;IAe/C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAdjD,gBAAuB,IAAI,+BAA+B;WAEtC,QAAQ,CAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,uBAAuB,CAAC;gBASC,aAAa,EAAE,aAAa;IAEzD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAYjB"}
1
+ {"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGzD;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,oBAAoB;IAe5C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAdjD,gBAAuB,IAAI,4BAA4B;WAEnC,QAAQ,CAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,oBAAoB,CAAC;gBASI,aAAa,EAAE,aAAa;IAEzD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CA8BjB"}