donobu 2.23.0 → 2.23.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 (277) hide show
  1. package/package.json +1 -1
  2. package/dist/apis/EnvironmentDataApi.d.ts +0 -26
  3. package/dist/apis/EnvironmentDataApi.d.ts.map +0 -1
  4. package/dist/apis/EnvironmentDataApi.js +0 -59
  5. package/dist/apis/EnvironmentDataApi.js.map +0 -1
  6. package/dist/assets/donobu-virtual-mouse.svg +0 -11
  7. package/dist/assets/donobu.css +0 -62
  8. package/dist/assets/generated/parameter-schemas.json +0 -2241
  9. package/dist/assets/record.umd.min.cjs +0 -10399
  10. package/dist/bindings/FocusPage.d.ts +0 -23
  11. package/dist/bindings/FocusPage.d.ts.map +0 -1
  12. package/dist/bindings/FocusPage.js +0 -20
  13. package/dist/bindings/FocusPage.js.map +0 -1
  14. package/dist/bindings/ToggleDonobuAnnotations.d.ts +0 -21
  15. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
  16. package/dist/bindings/ToggleDonobuAnnotations.js +0 -51
  17. package/dist/bindings/ToggleDonobuAnnotations.js.map +0 -1
  18. package/dist/esm/apis/EnvironmentDataApi.d.ts +0 -26
  19. package/dist/esm/apis/EnvironmentDataApi.d.ts.map +0 -1
  20. package/dist/esm/apis/EnvironmentDataApi.js +0 -59
  21. package/dist/esm/apis/EnvironmentDataApi.js.map +0 -1
  22. package/dist/esm/assets/donobu-virtual-mouse.svg +0 -11
  23. package/dist/esm/assets/donobu.css +0 -62
  24. package/dist/esm/assets/generated/parameter-schemas.json +0 -2241
  25. package/dist/esm/assets/record.umd.min.cjs +0 -10399
  26. package/dist/esm/bindings/FocusPage.d.ts +0 -23
  27. package/dist/esm/bindings/FocusPage.d.ts.map +0 -1
  28. package/dist/esm/bindings/FocusPage.js +0 -20
  29. package/dist/esm/bindings/FocusPage.js.map +0 -1
  30. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +0 -21
  31. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
  32. package/dist/esm/bindings/ToggleDonobuAnnotations.js +0 -51
  33. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +0 -1
  34. package/dist/esm/lib/constants.d.ts +0 -8
  35. package/dist/esm/lib/constants.d.ts.map +0 -1
  36. package/dist/esm/lib/constants.js +0 -14
  37. package/dist/esm/lib/constants.js.map +0 -1
  38. package/dist/esm/lib/fixtures/testExtension.d.ts +0 -10
  39. package/dist/esm/lib/fixtures/testExtension.d.ts.map +0 -1
  40. package/dist/esm/lib/fixtures/testExtension.js +0 -383
  41. package/dist/esm/lib/fixtures/testExtension.js.map +0 -1
  42. package/dist/esm/lib/types.d.ts +0 -106
  43. package/dist/esm/lib/types.d.ts.map +0 -1
  44. package/dist/esm/lib/types.js +0 -3
  45. package/dist/esm/lib/types.js.map +0 -1
  46. package/dist/esm/managers/EnvironmentDataManager.d.ts +0 -58
  47. package/dist/esm/managers/EnvironmentDataManager.d.ts.map +0 -1
  48. package/dist/esm/managers/EnvironmentDataManager.js +0 -134
  49. package/dist/esm/managers/EnvironmentDataManager.js.map +0 -1
  50. package/dist/esm/managers/ProjectStructureGenerator.d.ts +0 -62
  51. package/dist/esm/managers/ProjectStructureGenerator.d.ts.map +0 -1
  52. package/dist/esm/managers/ProjectStructureGenerator.js +0 -234
  53. package/dist/esm/managers/ProjectStructureGenerator.js.map +0 -1
  54. package/dist/esm/managers/TestFileUpdater.d.ts +0 -56
  55. package/dist/esm/managers/TestFileUpdater.d.ts.map +0 -1
  56. package/dist/esm/managers/TestFileUpdater.js +0 -224
  57. package/dist/esm/managers/TestFileUpdater.js.map +0 -1
  58. package/dist/esm/models/AskAiRequest.d.ts +0 -15
  59. package/dist/esm/models/AskAiRequest.d.ts.map +0 -1
  60. package/dist/esm/models/AskAiRequest.js +0 -3
  61. package/dist/esm/models/AskAiRequest.js.map +0 -1
  62. package/dist/esm/models/BaseToolGptParameters.d.ts +0 -10
  63. package/dist/esm/models/BaseToolGptParameters.d.ts.map +0 -1
  64. package/dist/esm/models/BaseToolGptParameters.js +0 -3
  65. package/dist/esm/models/BaseToolGptParameters.js.map +0 -1
  66. package/dist/esm/models/BrowserFramework.d.ts +0 -61
  67. package/dist/esm/models/BrowserFramework.d.ts.map +0 -1
  68. package/dist/esm/models/BrowserFramework.js +0 -339
  69. package/dist/esm/models/BrowserFramework.js.map +0 -1
  70. package/dist/esm/models/EnvironmentDatum.d.ts +0 -54
  71. package/dist/esm/models/EnvironmentDatum.d.ts.map +0 -1
  72. package/dist/esm/models/EnvironmentDatum.js +0 -57
  73. package/dist/esm/models/EnvironmentDatum.js.map +0 -1
  74. package/dist/esm/models/FlowsQuery.d.ts +0 -12
  75. package/dist/esm/models/FlowsQuery.d.ts.map +0 -1
  76. package/dist/esm/models/FlowsQuery.js +0 -3
  77. package/dist/esm/models/FlowsQuery.js.map +0 -1
  78. package/dist/esm/persistence/AgentsPersistence.d.ts +0 -12
  79. package/dist/esm/persistence/AgentsPersistence.d.ts.map +0 -1
  80. package/dist/esm/persistence/AgentsPersistence.js +0 -3
  81. package/dist/esm/persistence/AgentsPersistence.js.map +0 -1
  82. package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts +0 -15
  83. package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
  84. package/dist/esm/persistence/AgentsPersistenceSqlite.js +0 -50
  85. package/dist/esm/persistence/AgentsPersistenceSqlite.js.map +0 -1
  86. package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts +0 -14
  87. package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
  88. package/dist/esm/persistence/AgentsPersistenceVolatile.js +0 -26
  89. package/dist/esm/persistence/AgentsPersistenceVolatile.js.map +0 -1
  90. package/dist/esm/persistence/FlowsPersistence.d.ts +0 -104
  91. package/dist/esm/persistence/FlowsPersistence.d.ts.map +0 -1
  92. package/dist/esm/persistence/FlowsPersistence.js +0 -3
  93. package/dist/esm/persistence/FlowsPersistence.js.map +0 -1
  94. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
  95. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
  96. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +0 -525
  97. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +0 -1
  98. package/dist/esm/persistence/FlowsPersistenceFactory.d.ts +0 -10
  99. package/dist/esm/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
  100. package/dist/esm/persistence/FlowsPersistenceFactory.js +0 -3
  101. package/dist/esm/persistence/FlowsPersistenceFactory.js.map +0 -1
  102. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
  103. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
  104. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +0 -235
  105. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
  106. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
  107. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
  108. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js +0 -24
  109. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
  110. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
  111. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
  112. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +0 -381
  113. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +0 -1
  114. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
  115. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  116. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
  117. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  118. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +0 -44
  119. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
  120. package/dist/esm/persistence/FlowsPersistenceSqlite.js +0 -264
  121. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +0 -1
  122. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +0 -44
  123. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
  124. package/dist/esm/persistence/FlowsPersistenceSupabase.js +0 -262
  125. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +0 -1
  126. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +0 -41
  127. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
  128. package/dist/esm/persistence/FlowsPersistenceVolatile.js +0 -171
  129. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +0 -1
  130. package/dist/esm/persistence/GptConfigsPersistence.d.ts +0 -12
  131. package/dist/esm/persistence/GptConfigsPersistence.d.ts.map +0 -1
  132. package/dist/esm/persistence/GptConfigsPersistence.js +0 -3
  133. package/dist/esm/persistence/GptConfigsPersistence.js.map +0 -1
  134. package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
  135. package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
  136. package/dist/esm/persistence/GptConfigsPersistenceSqlite.js +0 -35
  137. package/dist/esm/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
  138. package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
  139. package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
  140. package/dist/esm/persistence/GptConfigsPersistenceVolatile.js +0 -31
  141. package/dist/esm/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
  142. package/dist/esm/playwrightTestExtensions.d.ts +0 -155
  143. package/dist/esm/playwrightTestExtensions.d.ts.map +0 -1
  144. package/dist/esm/playwrightTestExtensions.js +0 -688
  145. package/dist/esm/playwrightTestExtensions.js.map +0 -1
  146. package/dist/esm/utils/ToolsPluginsLoader.d.ts +0 -52
  147. package/dist/esm/utils/ToolsPluginsLoader.d.ts.map +0 -1
  148. package/dist/esm/utils/ToolsPluginsLoader.js +0 -301
  149. package/dist/esm/utils/ToolsPluginsLoader.js.map +0 -1
  150. package/dist/lib/autoTest.d.ts +0 -2
  151. package/dist/lib/autoTest.d.ts.map +0 -1
  152. package/dist/lib/autoTest.js +0 -17
  153. package/dist/lib/autoTest.js.map +0 -1
  154. package/dist/lib/constants.d.ts +0 -8
  155. package/dist/lib/constants.d.ts.map +0 -1
  156. package/dist/lib/constants.js +0 -14
  157. package/dist/lib/constants.js.map +0 -1
  158. package/dist/lib/fixtures/testExtension.d.ts +0 -10
  159. package/dist/lib/fixtures/testExtension.d.ts.map +0 -1
  160. package/dist/lib/fixtures/testExtension.js +0 -383
  161. package/dist/lib/fixtures/testExtension.js.map +0 -1
  162. package/dist/lib/types.d.ts +0 -106
  163. package/dist/lib/types.d.ts.map +0 -1
  164. package/dist/lib/types.js +0 -3
  165. package/dist/lib/types.js.map +0 -1
  166. package/dist/managers/EnvironmentDataManager.d.ts +0 -58
  167. package/dist/managers/EnvironmentDataManager.d.ts.map +0 -1
  168. package/dist/managers/EnvironmentDataManager.js +0 -134
  169. package/dist/managers/EnvironmentDataManager.js.map +0 -1
  170. package/dist/managers/ProjectStructureGenerator.d.ts +0 -62
  171. package/dist/managers/ProjectStructureGenerator.d.ts.map +0 -1
  172. package/dist/managers/ProjectStructureGenerator.js +0 -234
  173. package/dist/managers/ProjectStructureGenerator.js.map +0 -1
  174. package/dist/managers/TestFileUpdater.d.ts +0 -56
  175. package/dist/managers/TestFileUpdater.d.ts.map +0 -1
  176. package/dist/managers/TestFileUpdater.js +0 -224
  177. package/dist/managers/TestFileUpdater.js.map +0 -1
  178. package/dist/models/AskAiRequest.d.ts +0 -15
  179. package/dist/models/AskAiRequest.d.ts.map +0 -1
  180. package/dist/models/AskAiRequest.js +0 -3
  181. package/dist/models/AskAiRequest.js.map +0 -1
  182. package/dist/models/BaseToolGptParameters.d.ts +0 -10
  183. package/dist/models/BaseToolGptParameters.d.ts.map +0 -1
  184. package/dist/models/BaseToolGptParameters.js +0 -3
  185. package/dist/models/BaseToolGptParameters.js.map +0 -1
  186. package/dist/models/BrowserFramework.d.ts +0 -51
  187. package/dist/models/BrowserFramework.d.ts.map +0 -1
  188. package/dist/models/BrowserFramework.js +0 -364
  189. package/dist/models/BrowserFramework.js.map +0 -1
  190. package/dist/models/EnvironmentDatum.d.ts +0 -54
  191. package/dist/models/EnvironmentDatum.d.ts.map +0 -1
  192. package/dist/models/EnvironmentDatum.js +0 -57
  193. package/dist/models/EnvironmentDatum.js.map +0 -1
  194. package/dist/models/FlowsQuery.d.ts +0 -12
  195. package/dist/models/FlowsQuery.d.ts.map +0 -1
  196. package/dist/models/FlowsQuery.js +0 -3
  197. package/dist/models/FlowsQuery.js.map +0 -1
  198. package/dist/persistence/AgentsPersistence.d.ts +0 -12
  199. package/dist/persistence/AgentsPersistence.d.ts.map +0 -1
  200. package/dist/persistence/AgentsPersistence.js +0 -3
  201. package/dist/persistence/AgentsPersistence.js.map +0 -1
  202. package/dist/persistence/AgentsPersistenceSqlite.d.ts +0 -15
  203. package/dist/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
  204. package/dist/persistence/AgentsPersistenceSqlite.js +0 -50
  205. package/dist/persistence/AgentsPersistenceSqlite.js.map +0 -1
  206. package/dist/persistence/AgentsPersistenceVolatile.d.ts +0 -14
  207. package/dist/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
  208. package/dist/persistence/AgentsPersistenceVolatile.js +0 -26
  209. package/dist/persistence/AgentsPersistenceVolatile.js.map +0 -1
  210. package/dist/persistence/FlowsPersistence.d.ts +0 -104
  211. package/dist/persistence/FlowsPersistence.d.ts.map +0 -1
  212. package/dist/persistence/FlowsPersistence.js +0 -3
  213. package/dist/persistence/FlowsPersistence.js.map +0 -1
  214. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
  215. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
  216. package/dist/persistence/FlowsPersistenceAwsS3.js +0 -525
  217. package/dist/persistence/FlowsPersistenceAwsS3.js.map +0 -1
  218. package/dist/persistence/FlowsPersistenceFactory.d.ts +0 -10
  219. package/dist/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
  220. package/dist/persistence/FlowsPersistenceFactory.js +0 -3
  221. package/dist/persistence/FlowsPersistenceFactory.js.map +0 -1
  222. package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
  223. package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
  224. package/dist/persistence/FlowsPersistenceFactoryImpl.js +0 -235
  225. package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
  226. package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
  227. package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
  228. package/dist/persistence/FlowsPersistenceFactoryPreset.js +0 -24
  229. package/dist/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
  230. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
  231. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
  232. package/dist/persistence/FlowsPersistenceFilesystem.js +0 -381
  233. package/dist/persistence/FlowsPersistenceFilesystem.js.map +0 -1
  234. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
  235. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  236. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
  237. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  238. package/dist/persistence/FlowsPersistenceSqlite.d.ts +0 -44
  239. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
  240. package/dist/persistence/FlowsPersistenceSqlite.js +0 -264
  241. package/dist/persistence/FlowsPersistenceSqlite.js.map +0 -1
  242. package/dist/persistence/FlowsPersistenceSupabase.d.ts +0 -44
  243. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
  244. package/dist/persistence/FlowsPersistenceSupabase.js +0 -262
  245. package/dist/persistence/FlowsPersistenceSupabase.js.map +0 -1
  246. package/dist/persistence/FlowsPersistenceVolatile.d.ts +0 -41
  247. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
  248. package/dist/persistence/FlowsPersistenceVolatile.js +0 -171
  249. package/dist/persistence/FlowsPersistenceVolatile.js.map +0 -1
  250. package/dist/persistence/GptConfigsPersistence.d.ts +0 -12
  251. package/dist/persistence/GptConfigsPersistence.d.ts.map +0 -1
  252. package/dist/persistence/GptConfigsPersistence.js +0 -3
  253. package/dist/persistence/GptConfigsPersistence.js.map +0 -1
  254. package/dist/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
  255. package/dist/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
  256. package/dist/persistence/GptConfigsPersistenceSqlite.js +0 -35
  257. package/dist/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
  258. package/dist/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
  259. package/dist/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
  260. package/dist/persistence/GptConfigsPersistenceVolatile.js +0 -31
  261. package/dist/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
  262. package/dist/playwrightTestExtensions.d.ts +0 -155
  263. package/dist/playwrightTestExtensions.d.ts.map +0 -1
  264. package/dist/playwrightTestExtensions.js +0 -688
  265. package/dist/playwrightTestExtensions.js.map +0 -1
  266. package/dist/tools/CreatePageObjectModel.d.ts +0 -16
  267. package/dist/tools/CreatePageObjectModel.d.ts.map +0 -1
  268. package/dist/tools/CreatePageObjectModel.js +0 -33
  269. package/dist/tools/CreatePageObjectModel.js.map +0 -1
  270. package/dist/utils/ToolsPluginsLoader.d.ts +0 -52
  271. package/dist/utils/ToolsPluginsLoader.d.ts.map +0 -1
  272. package/dist/utils/ToolsPluginsLoader.js +0 -301
  273. package/dist/utils/ToolsPluginsLoader.js.map +0 -1
  274. /package/dist/utils/{jsonSchemaUtils.d.ts → JsonSchemaUtils.d.ts} +0 -0
  275. /package/dist/utils/{jsonSchemaUtils.d.ts.map → JsonSchemaUtils.d.ts.map} +0 -0
  276. /package/dist/utils/{jsonSchemaUtils.js → JsonSchemaUtils.js} +0 -0
  277. /package/dist/utils/{jsonSchemaUtils.js.map → JsonSchemaUtils.js.map} +0 -0
@@ -1,23 +0,0 @@
1
- import { FocusedPage } from '../models/FocusedPage';
2
- import { NamedBindingCallback } from './NamedBindingCallback';
3
- import { BrowserContext, Page, Frame } from 'playwright';
4
- declare global {
5
- interface Window {
6
- [FocusPage.NAME]: () => void;
7
- }
8
- }
9
- /**
10
- * A binding that brings the page executing this callback into focus.
11
- */
12
- export declare class FocusPage implements NamedBindingCallback {
13
- private readonly focusedPage;
14
- static readonly NAME = "donobuFocusPage";
15
- constructor(focusedPage: FocusedPage);
16
- name(): string;
17
- call(source: {
18
- context: BrowserContext;
19
- page: Page;
20
- frame: Frame;
21
- }, ..._args: any[]): void;
22
- }
23
- //# sourceMappingURL=FocusPage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusPage.d.ts","sourceRoot":"","sources":["../../../src/bindings/FocusPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;KAC9B;CACF;AAED;;GAEG;AACH,qBAAa,SAAU,YAAW,oBAAoB;IAGjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAF/C,gBAAuB,IAAI,qBAAqB;gBAEZ,WAAW,EAAE,WAAW;IAErD,IAAI,IAAI,MAAM;IAId,IAAI,CACT,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,KAAK,EAAE,GAAG,EAAE,GACd,IAAI;CAGR"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FocusPage = void 0;
4
- /**
5
- * A binding that brings the page executing this callback into focus.
6
- */
7
- class FocusPage {
8
- constructor(focusedPage) {
9
- this.focusedPage = focusedPage;
10
- }
11
- name() {
12
- return FocusPage.NAME;
13
- }
14
- call(source, ..._args) {
15
- this.focusedPage.current = source.page;
16
- }
17
- }
18
- exports.FocusPage = FocusPage;
19
- FocusPage.NAME = 'donobuFocusPage';
20
- //# sourceMappingURL=FocusPage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusPage.js","sourceRoot":"","sources":["../../../src/bindings/FocusPage.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,MAAa,SAAS;IAGpB,YAAoC,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEzD,IAAI;QACT,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAEM,IAAI,CACT,MAA6D,EAC7D,GAAG,KAAY;QAEf,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IACzC,CAAC;;AAdH,8BAeC;AAdwB,cAAI,GAAG,iBAAiB,CAAC"}
@@ -1,21 +0,0 @@
1
- import { PageInspector } from '../managers/PageInspector';
2
- import { NamedBindingCallback } from './NamedBindingCallback';
3
- import { BrowserContext, Page, Frame } from 'playwright';
4
- /**
5
- * A binding that sets or unsets the annotations on the page executing this callback.
6
- * This is used for debugging purposes to show the interactable elements on the page
7
- * as understood by the Donobu engine.
8
- */
9
- export declare class SetDonobuAnnotations implements NamedBindingCallback {
10
- private readonly pageInspector;
11
- static readonly NAME = "__donobuSetAnnotations";
12
- static register(pageInspector: PageInspector, browserContext: BrowserContext): Promise<SetDonobuAnnotations>;
13
- constructor(pageInspector: PageInspector);
14
- name(): string;
15
- call(source: {
16
- context: BrowserContext;
17
- page: Page;
18
- frame: Frame;
19
- }, ...args: any[]): Promise<void>;
20
- }
21
- //# sourceMappingURL=ToggleDonobuAnnotations.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetDonobuAnnotations = void 0;
4
- const JsonUtils_1 = require("../utils/JsonUtils");
5
- const zod_1 = require("zod");
6
- /**
7
- * A binding that sets or unsets the annotations on the page executing this callback.
8
- * This is used for debugging purposes to show the interactable elements on the page
9
- * as understood by the Donobu engine.
10
- */
11
- class SetDonobuAnnotations {
12
- static async register(pageInspector, browserContext) {
13
- const instance = new SetDonobuAnnotations(pageInspector);
14
- await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
15
- return instance;
16
- }
17
- constructor(pageInspector) {
18
- this.pageInspector = pageInspector;
19
- }
20
- name() {
21
- return SetDonobuAnnotations.NAME;
22
- }
23
- async call(source, ...args) {
24
- let isToggled;
25
- try {
26
- isToggled = zod_1.z.boolean().parse(args[0]);
27
- }
28
- catch (error) {
29
- await source.page.evaluate((message) => {
30
- console.error(message);
31
- }, `First argument must be a boolean value: ${error.message}`);
32
- return;
33
- }
34
- if (isToggled) {
35
- await this.pageInspector.attributeInteractableElements(source.page);
36
- await this.pageInspector.annotateInteractableElements(source.page);
37
- const elements = await this.pageInspector.getAttributedInteractableElements(source.page);
38
- const message = JSON.stringify(JsonUtils_1.JsonUtils.objectToJson(elements), null, 2);
39
- await source.page.evaluate((message) => {
40
- console.info(message);
41
- }, message);
42
- }
43
- else {
44
- await this.pageInspector.removeDonobuAnnotations(source.page);
45
- }
46
- return;
47
- }
48
- }
49
- exports.SetDonobuAnnotations = SetDonobuAnnotations;
50
- SetDonobuAnnotations.NAME = '__donobuSetAnnotations';
51
- //# sourceMappingURL=ToggleDonobuAnnotations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleDonobuAnnotations.js","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAG/C,6BAAkC;AAElC;;;;GAIG;AACH,MAAa,oBAAoB;IAGxB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,aAA4B,EAC5B,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACzD,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,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,IAAI;QACT,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,IAAI,SAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,SAAS,GAAG,OAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,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,2CAA4C,KAAkB,CAAC,OAAO,EAAE,CACzE,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,aAAa,CAAC,iCAAiC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1E,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;IACT,CAAC;;AArDH,oDAsDC;AArDwB,yBAAI,GAAG,wBAAwB,CAAC"}
@@ -1,8 +0,0 @@
1
- export declare const PLACEHOLDER_FLOW_URL = "https://example.com";
2
- export declare const DEFAULT_GPT_MODEL_FOR_PLATFORM: {
3
- ANTHROPIC: string;
4
- ANTHROPIC_AWS_BEDROCK: string | undefined;
5
- GOOGLE_GEMINI: string;
6
- OPENAI: string;
7
- };
8
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAC1D,eAAO,MAAM,8BAA8B;;;;;CAU1C,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_GPT_MODEL_FOR_PLATFORM = exports.PLACEHOLDER_FLOW_URL = void 0;
4
- const envVars_1 = require("../envVars");
5
- exports.PLACEHOLDER_FLOW_URL = 'https://example.com';
6
- exports.DEFAULT_GPT_MODEL_FOR_PLATFORM = {
7
- ANTHROPIC: process.env[envVars_1.ENV_VAR_NAMES.ANTHROPIC_MODEL_NAME] ||
8
- 'claude-3-5-sonnet-latest',
9
- ANTHROPIC_AWS_BEDROCK: process.env[envVars_1.ENV_VAR_NAMES.AWS_BEDROCK_MODEL_NAME] || undefined,
10
- GOOGLE_GEMINI: process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_GENERATIVE_AI_MODEL_NAME] ||
11
- 'gemini-2.0-flash',
12
- OPENAI: process.env[envVars_1.ENV_VAR_NAMES.OPENAI_API_MODEL_NAME] || 'gpt-4o',
13
- };
14
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";;;AAAA,wCAA2C;AAE9B,QAAA,oBAAoB,GAAG,qBAAqB,CAAC;AAC7C,QAAA,8BAA8B,GAAG;IAC5C,SAAS,EACP,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,oBAAoB,CAAC;QAC/C,0BAA0B;IAC5B,qBAAqB,EACnB,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,sBAAsB,CAAC,IAAI,SAAS;IAChE,aAAa,EACX,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,+BAA+B,CAAC;QAC1D,kBAAkB;IACpB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,qBAAqB,CAAC,IAAI,QAAQ;CACrE,CAAC"}
@@ -1,10 +0,0 @@
1
- import { DonobuExtendedPage } from '../types';
2
- import { GptClient } from '../../clients/GptClient';
3
- import { BrowserStorageState } from '../../models/BrowserStorageState';
4
- export * from 'playwright/test';
5
- export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
6
- storageState?: BrowserStorageState | Promise<BrowserStorageState>;
7
- gptClient?: GptClient;
8
- page: DonobuExtendedPage;
9
- }, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
10
- //# sourceMappingURL=testExtension.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../../../src/lib/fixtures/testExtension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAmEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,cAAc,iBAAiB,CAAC;AAIhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGAqaxB,CAAC"}
@@ -1,383 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.test = void 0;
18
- const test_1 = require("@playwright/test");
19
- const uuid_1 = require("uuid");
20
- const GptClient_1 = require("../../clients/GptClient");
21
- const VercelAiGptClient_1 = require("../../clients/VercelAiGptClient");
22
- const PlaywrightUtils_1 = require("../../utils/PlaywrightUtils");
23
- const donobuTestStack_1 = require("../utils/donobuTestStack");
24
- const selfHealing_1 = require("../utils/selfHealing");
25
- const envVars_1 = require("../../envVars");
26
- const MiscUtils_1 = require("../../utils/MiscUtils");
27
- const DonobuFlowsManager_1 = require("../../managers/DonobuFlowsManager");
28
- const gptClients_1 = require("./gptClients");
29
- const GoToWebpageTool_1 = require("../../tools/GoToWebpageTool");
30
- const PageInspector_1 = require("../../managers/PageInspector");
31
- const ControlPanel_1 = require("../../managers/ControlPanel");
32
- const InteractionVisualizer_1 = require("../../managers/InteractionVisualizer");
33
- const ToolManager_1 = require("../../managers/ToolManager");
34
- const AnalyzePageTextTool_1 = require("../../tools/AnalyzePageTextTool");
35
- const AssertPageTextTool_1 = require("../../tools/AssertPageTextTool");
36
- const Logger_1 = require("../../utils/Logger");
37
- const DonobuFlow_1 = require("../../managers/DonobuFlow");
38
- const HoverOverElementTool_1 = require("../../tools/HoverOverElementTool");
39
- const InputRandomizedEmailAddressTool_1 = require("../../tools/InputRandomizedEmailAddressTool");
40
- const AssertTool_1 = require("../../tools/AssertTool");
41
- const ChangeWebBrowserTabTool_1 = require("../../tools/ChangeWebBrowserTabTool");
42
- const ChooseSelectOptionTool_1 = require("../../tools/ChooseSelectOptionTool");
43
- const ClickTool_1 = require("../../tools/ClickTool");
44
- const CreateBrowserCookieReportTool_1 = require("../../tools/CreateBrowserCookieReportTool");
45
- const InputTextTool_1 = require("../../tools/InputTextTool");
46
- const PressKeyTool_1 = require("../../tools/PressKeyTool");
47
- const RunAccessibilityTestTool_1 = require("../../tools/RunAccessibilityTestTool");
48
- const ScrollPageTool_1 = require("../../tools/ScrollPageTool");
49
- __exportStar(require("playwright/test"), exports);
50
- const PLACEHOLDER_FLOW_URL = 'https://example.com';
51
- exports.test = test_1.test.extend({
52
- // 1) Declare `gptClient` as an "option" fixture with a default of `undefined`.
53
- gptClient: [
54
- undefined, // default
55
- { option: true }, // so that test.use({ gptClient: ... }) can override
56
- ],
57
- // Override the default page fixture
58
- page: async ({ page, gptClient }, use, testInfo) => {
59
- if (!gptClient) {
60
- try {
61
- gptClient = await (0, gptClients_1.getOrCreateDefaultGptClient)();
62
- }
63
- catch (_error) {
64
- // Do nothing since we may not need a GPT client at all anyway.
65
- // If something later on requires a GPT client, it will throw an error.
66
- }
67
- }
68
- // Patch the page with "run", but do it lazily
69
- const donobu = await (0, donobuTestStack_1.getOrCreateDonobuStack)();
70
- await PlaywrightUtils_1.PlaywrightUtils.setupBasicBrowserContext(page.context());
71
- let isTestRunInitialized = false;
72
- let isTestRunFailed = false;
73
- async function maybeInitDonobu() {
74
- if (isTestRunInitialized) {
75
- return;
76
- }
77
- const overallObjective = testInfo.annotations.find((v) => {
78
- return v.type === 'objective';
79
- })?.description ?? null;
80
- // Get the implied allowed environment variables by inspecting the objective.
81
- const allowedEnvVarsByName = DonobuFlowsManager_1.DonobuFlowsManager.distillAllowedEnvVariableNames(overallObjective, null);
82
- const donobuTestFlowMetadata = {
83
- id: (0, uuid_1.v4)(),
84
- name: testInfo.title,
85
- createdWithDonobuVersion: MiscUtils_1.MiscUtils.DONOBU_VERSION,
86
- browser: {
87
- using: {
88
- type: 'device',
89
- deviceName: 'Desktop Chromium',
90
- headless: true,
91
- },
92
- },
93
- envVars: allowedEnvVarsByName,
94
- gptConfigName: null,
95
- hasGptConfigNameOverride: false,
96
- customTools: null,
97
- defaultMessageDuration: 0,
98
- runMode: 'DETERMINISTIC',
99
- isControlPanelEnabled: false,
100
- callbackUrl: null,
101
- targetWebsite: PLACEHOLDER_FLOW_URL,
102
- overallObjective: overallObjective,
103
- allowedTools: [],
104
- resultJsonSchema: null,
105
- result: null,
106
- inputTokensUsed: 0,
107
- completionTokensUsed: 0,
108
- iterations: 0,
109
- maxIterations: 0,
110
- startedAt: new Date().getTime(),
111
- completedAt: null,
112
- state: 'RUNNING_ACTION',
113
- nextState: null,
114
- };
115
- const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
116
- await persistenceLayer.setMetadata(donobuTestFlowMetadata);
117
- page._donobuFlowMetadata = donobuTestFlowMetadata;
118
- isTestRunInitialized = true;
119
- }
120
- const originalGoto = page.goto;
121
- // Intercept 'page.goto' so that Donobu can later re-run it as a standard
122
- // Donobu action if necessary. This can happen if you run a Playwright
123
- // test using npx, but later decide to rerun that run using the Donobu UI.
124
- page.goto = async (url, options) => {
125
- await maybeInitDonobu();
126
- const startedAt = new Date().getTime();
127
- const flowId = page._donobuFlowMetadata.id;
128
- const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
129
- // Update the target website to whatever the first place we are
130
- // navigating to is.
131
- if (page._donobuFlowMetadata.targetWebsite === PLACEHOLDER_FLOW_URL) {
132
- page._donobuFlowMetadata = {
133
- ...page._donobuFlowMetadata,
134
- targetWebsite: url,
135
- };
136
- await persistenceLayer.setMetadata(page._donobuFlowMetadata);
137
- }
138
- try {
139
- const resp = await originalGoto.call(page, url, options);
140
- await PlaywrightUtils_1.PlaywrightUtils.waitForPageStability(page);
141
- const pageTitle = await page.title();
142
- const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takeScreenshot(page);
143
- const postCallImageId = await persistenceLayer.saveScreenShot(flowId, postCallImage);
144
- const completedAt = new Date().getTime();
145
- await persistenceLayer.saveToolCall(flowId, {
146
- id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
147
- toolName: GoToWebpageTool_1.GoToWebpageTool.NAME,
148
- parameters: {
149
- url: url,
150
- },
151
- outcome: {
152
- isSuccessful: true,
153
- forLlm: `Successfully navigated to ${url}`,
154
- metadata: {
155
- pageTitle: pageTitle,
156
- resolvedUrl: page.url(),
157
- },
158
- },
159
- postCallImageId: postCallImageId,
160
- page: url,
161
- startedAt: startedAt,
162
- completedAt: completedAt,
163
- });
164
- return resp;
165
- }
166
- catch (error) {
167
- const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takeScreenshot(page);
168
- const postCallImageId = await persistenceLayer.saveScreenShot(flowId, postCallImage);
169
- const completedAt = new Date().getTime();
170
- await persistenceLayer.saveToolCall(flowId, {
171
- id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
172
- toolName: 'goToWebpage',
173
- parameters: {
174
- url: url,
175
- },
176
- outcome: {
177
- isSuccessful: false,
178
- forLlm: `FAILED! ${typeof error}: ${error.message}`,
179
- metadata: null,
180
- },
181
- postCallImageId: postCallImageId,
182
- page: url,
183
- startedAt: startedAt,
184
- completedAt: completedAt,
185
- });
186
- // Mark test as failed for later callback
187
- isTestRunFailed = true;
188
- throw error;
189
- }
190
- };
191
- page.run = async (toolName, toolParams, gptClientOverride) => {
192
- await maybeInitDonobu();
193
- let finalGptClient = null;
194
- if (gptClientOverride) {
195
- if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
196
- finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
197
- }
198
- else {
199
- finalGptClient = gptClientOverride;
200
- }
201
- }
202
- else if (gptClient) {
203
- finalGptClient = gptClient;
204
- }
205
- const pageInspector = new PageInspector_1.PageInspector();
206
- const controlPanel = new ControlPanel_1.ControlPanel(page._donobuFlowMetadata);
207
- const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
208
- const clonedParams = toolParams
209
- ? JSON.parse(JSON.stringify(toolParams))
210
- : {};
211
- clonedParams.rationale || (clonedParams.rationale = '');
212
- const envData = await donobu.flowsManager.buildEnvData(page._donobuFlowMetadata.envVars ?? []);
213
- const toolCallContext = {
214
- flowsManager: donobu.flowsManager,
215
- envData: envData,
216
- pageInspector: pageInspector,
217
- controlPanel: controlPanel,
218
- persistence: persistenceLayer,
219
- gptClient: finalGptClient,
220
- interactionVisualizer: new InteractionVisualizer_1.InteractionVisualizer(0),
221
- proposedToolCalls: [],
222
- invokedToolCalls: [],
223
- page: { current: page },
224
- metadata: page._donobuFlowMetadata,
225
- toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
226
- };
227
- try {
228
- const result = await new ToolManager_1.ToolManager(ToolManager_1.ToolManager.ALL_TOOLS).invokeTool(toolCallContext, toolName, clonedParams, false);
229
- await persistenceLayer.setMetadata(page._donobuFlowMetadata);
230
- await persistenceLayer.saveToolCall(page._donobuFlowMetadata.id, result);
231
- // Check if tool execution was successful
232
- if (!result.outcome.isSuccessful) {
233
- throw new Error(`${toolName} execution failed: ${JSON.stringify(result, null, 2)}`);
234
- }
235
- return result.outcome;
236
- }
237
- catch (error) {
238
- // Mark test as failed if an exception occurs during tool execution
239
- isTestRunFailed = true;
240
- throw error;
241
- }
242
- };
243
- page.analyzePageText = async (params, gptClientOverride) => {
244
- return page.run(AnalyzePageTextTool_1.AnalyzePageTextTool.NAME, params, gptClientOverride);
245
- };
246
- page.assertPageText = async (params, gptClientOverride) => {
247
- return page.run(AssertPageTextTool_1.AssertPageTextTool.NAME, params, gptClientOverride);
248
- };
249
- page.changeTab = async (url) => {
250
- // The underlying tool call is mostly performative. We do it so we can
251
- // record the operation occurred, but the actual page reassignment happens
252
- // at the call site of this function.
253
- const result = await page.run(ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME, {
254
- tabUrl: url,
255
- });
256
- if (result.isSuccessful) {
257
- // We need to return a real Page object, not just the raw URL, so we
258
- // loop through the pages of the current context, knowing we will find
259
- // a match.
260
- return page
261
- .context()
262
- .pages()
263
- .find((tab) => tab.url() === url);
264
- }
265
- else {
266
- throw Error(result.forLlm);
267
- }
268
- };
269
- page.chooseSelectOption = async (params) => {
270
- return page.run(ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME, params);
271
- };
272
- page.clickElement = async (params) => {
273
- return page.run(ClickTool_1.ClickTool.NAME, params);
274
- };
275
- page.createCookieReport = async (gptClientOverride) => {
276
- return page.run(CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME, gptClientOverride);
277
- };
278
- page.extract = async (params, gptClientOverride) => {
279
- await maybeInitDonobu();
280
- let finalGptClient = null;
281
- if (gptClientOverride) {
282
- if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
283
- finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
284
- }
285
- else {
286
- finalGptClient = gptClientOverride;
287
- }
288
- }
289
- else if (gptClient) {
290
- finalGptClient = gptClient;
291
- }
292
- if (!finalGptClient) {
293
- isTestRunFailed = true;
294
- throw Error('Cannot extract an object from page without a GPT client set up!');
295
- }
296
- try {
297
- const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
298
- const toolCallHistory = await persistenceLayer.getToolCalls(page._donobuFlowMetadata.id);
299
- const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(params.instruction ??
300
- 'Generate an object conforming to the given JSON-schema', params.schema, page, toolCallHistory, finalGptClient);
301
- page._donobuFlowMetadata.resultJsonSchema = params.schema;
302
- page._donobuFlowMetadata.result = structuredOutputMessage.output;
303
- await persistenceLayer.setMetadata(page._donobuFlowMetadata);
304
- return structuredOutputMessage.output;
305
- }
306
- catch (error) {
307
- isTestRunFailed = true;
308
- throw error;
309
- }
310
- };
311
- page.hoverOverElement = async (params) => {
312
- return page.run(HoverOverElementTool_1.HoverOverElementTool.NAME, params);
313
- };
314
- page.inputRandomizedEmailAddress = async (params) => {
315
- return page.run(InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME, params);
316
- };
317
- page.inputText = async (params) => {
318
- return page.run(InputTextTool_1.InputTextTool.NAME, params);
319
- };
320
- page.pressKey = async (params) => {
321
- return page.run(PressKeyTool_1.PressKeyTool.NAME, params);
322
- };
323
- page.runAccessibilityTest = async () => {
324
- return page.run(RunAccessibilityTestTool_1.RunAccessibilityTestTool.NAME);
325
- };
326
- page.scroll = async (params) => {
327
- return page.run(ScrollPageTool_1.ScrollPageTool.NAME, params);
328
- };
329
- page.visuallyAssert = async (params, gptClientOverride) => {
330
- return page.run(AssertTool_1.AssertTool.NAME, params, gptClientOverride);
331
- };
332
- try {
333
- // Let Playwright continue and give tests the patched page.
334
- await use(page);
335
- // Check if the test status is failed in the testInfo
336
- // This catches failures that were marked by Playwright itself
337
- if (testInfo.status === 'failed' || testInfo.status === 'timedOut') {
338
- isTestRunFailed = true;
339
- }
340
- }
341
- catch (error) {
342
- // Mark test as failed if an uncaught exception occurs during the test
343
- isTestRunFailed = true;
344
- throw error;
345
- }
346
- finally {
347
- try {
348
- const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
349
- if (page._donobuFlowMetadata) {
350
- // Update metadata with final status
351
- page._donobuFlowMetadata.state = isTestRunFailed
352
- ? 'FAILED'
353
- : 'SUCCESS';
354
- page._donobuFlowMetadata.completedAt = new Date().getTime();
355
- await persistenceLayer.setMetadata(page._donobuFlowMetadata);
356
- await testInfo.attach('test-flow-metadata.json', {
357
- body: JSON.stringify(page._donobuFlowMetadata, null, 2),
358
- contentType: 'application/json',
359
- });
360
- }
361
- }
362
- catch (error) {
363
- // Log but don't throw, to ensure cleanup continues.
364
- Logger_1.appLogger.error('Error during test cleanup:', error);
365
- }
366
- const isSelfHealEnabledEnvVar = process.env[envVars_1.ENV_VAR_NAMES.SELF_HEAL_TESTS_ENABLED]?.trim();
367
- if (isTestRunFailed &&
368
- (isSelfHealEnabledEnvVar === 'true' || isSelfHealEnabledEnvVar === '1')) {
369
- if (!gptClient) {
370
- Logger_1.appLogger.warn('Will not self-heal due to no GPT client being set up.');
371
- return;
372
- }
373
- try {
374
- await (0, selfHealing_1.selfHeal)(gptClient, testInfo, page._donobuFlowMetadata);
375
- }
376
- catch (selfHealError) {
377
- Logger_1.appLogger.error('Error when attempting to self heal:', selfHealError);
378
- }
379
- }
380
- }
381
- },
382
- });
383
- //# sourceMappingURL=testExtension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../../src/lib/fixtures/testExtension.ts"],"names":[],"mappings":"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"}