donobu 2.15.1 → 2.17.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 (756) hide show
  1. package/dist/apis/EnvDataApi.d.ts +26 -0
  2. package/dist/apis/EnvDataApi.d.ts.map +1 -0
  3. package/dist/apis/EnvDataApi.js +59 -0
  4. package/dist/apis/EnvDataApi.js.map +1 -0
  5. package/dist/apis/EnvironmentDataApi.d.ts +26 -0
  6. package/dist/apis/EnvironmentDataApi.d.ts.map +1 -0
  7. package/dist/apis/EnvironmentDataApi.js +59 -0
  8. package/dist/apis/EnvironmentDataApi.js.map +1 -0
  9. package/dist/apis/FlowsApi.d.ts +4 -0
  10. package/dist/apis/FlowsApi.d.ts.map +1 -1
  11. package/dist/apis/FlowsApi.js +26 -2
  12. package/dist/apis/FlowsApi.js.map +1 -1
  13. package/dist/apis/FlowsFilesApi.d.ts +1 -1
  14. package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
  15. package/dist/apis/SpecialFlowsApi.js +1 -1
  16. package/dist/apis/SpecialFlowsApi.js.map +1 -1
  17. package/dist/assets/control-panel.js +30 -3
  18. package/dist/assets/generated/parameter-schemas.json +51 -37
  19. package/dist/assets/generated/version +1 -1
  20. package/dist/assets/interactive-elements-tracker.js +351 -0
  21. package/dist/assets/page-interactions-tracker.js +39 -20
  22. package/dist/assets/smart-selector-generator.js +38 -15
  23. package/dist/bindings/FocusPage.d.ts +6 -1
  24. package/dist/bindings/FocusPage.d.ts.map +1 -1
  25. package/dist/bindings/FocusPage.js +2 -8
  26. package/dist/bindings/FocusPage.js.map +1 -1
  27. package/dist/bindings/PageInteractionTracker.d.ts +9 -2
  28. package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
  29. package/dist/bindings/PageInteractionTracker.js +27 -3
  30. package/dist/bindings/PageInteractionTracker.js.map +1 -1
  31. package/dist/bindings/ProposeToolCall.d.ts +20 -0
  32. package/dist/bindings/ProposeToolCall.d.ts.map +1 -0
  33. package/dist/bindings/ProposeToolCall.js +29 -0
  34. package/dist/bindings/ProposeToolCall.js.map +1 -0
  35. package/dist/bindings/ToggleDonobuAnnotations.d.ts +5 -2
  36. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  37. package/dist/bindings/ToggleDonobuAnnotations.js +12 -6
  38. package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
  39. package/dist/esm/apis/EnvDataApi.d.ts +26 -0
  40. package/dist/esm/apis/EnvDataApi.d.ts.map +1 -0
  41. package/dist/esm/apis/EnvDataApi.js +59 -0
  42. package/dist/esm/apis/EnvDataApi.js.map +1 -0
  43. package/dist/esm/apis/EnvironmentDataApi.d.ts +26 -0
  44. package/dist/esm/apis/EnvironmentDataApi.d.ts.map +1 -0
  45. package/dist/esm/apis/EnvironmentDataApi.js +59 -0
  46. package/dist/esm/apis/EnvironmentDataApi.js.map +1 -0
  47. package/dist/esm/apis/FlowsApi.d.ts +4 -0
  48. package/dist/esm/apis/FlowsApi.d.ts.map +1 -1
  49. package/dist/esm/apis/FlowsApi.js +26 -2
  50. package/dist/esm/apis/FlowsApi.js.map +1 -1
  51. package/dist/esm/apis/FlowsFilesApi.d.ts +1 -1
  52. package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
  53. package/dist/esm/apis/SpecialFlowsApi.js +1 -1
  54. package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
  55. package/dist/esm/assets/control-panel.js +30 -3
  56. package/dist/esm/assets/generated/parameter-schemas.json +51 -37
  57. package/dist/esm/assets/generated/version +1 -1
  58. package/dist/esm/assets/interactive-elements-tracker.js +351 -0
  59. package/dist/esm/assets/page-interactions-tracker.js +39 -20
  60. package/dist/esm/assets/smart-selector-generator.js +38 -15
  61. package/dist/esm/bindings/FocusPage.d.ts +6 -1
  62. package/dist/esm/bindings/FocusPage.d.ts.map +1 -1
  63. package/dist/esm/bindings/FocusPage.js +2 -8
  64. package/dist/esm/bindings/FocusPage.js.map +1 -1
  65. package/dist/esm/bindings/PageInteractionTracker.d.ts +9 -2
  66. package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
  67. package/dist/esm/bindings/PageInteractionTracker.js +27 -3
  68. package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
  69. package/dist/esm/bindings/ProposeToolCall.d.ts +20 -0
  70. package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -0
  71. package/dist/esm/bindings/ProposeToolCall.js +29 -0
  72. package/dist/esm/bindings/ProposeToolCall.js.map +1 -0
  73. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +5 -2
  74. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  75. package/dist/esm/bindings/ToggleDonobuAnnotations.js +12 -6
  76. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
  77. package/dist/esm/lib/DonobuExtendedPage.d.ts +106 -0
  78. package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -0
  79. package/dist/esm/lib/DonobuExtendedPage.js +3 -0
  80. package/dist/esm/lib/DonobuExtendedPage.js.map +1 -0
  81. package/dist/esm/lib/constants.d.ts +8 -0
  82. package/dist/esm/lib/constants.d.ts.map +1 -0
  83. package/dist/esm/lib/constants.js +14 -0
  84. package/dist/esm/lib/constants.js.map +1 -0
  85. package/dist/esm/lib/fixtures/browserState.d.ts +6 -0
  86. package/dist/esm/lib/fixtures/browserState.d.ts.map +1 -0
  87. package/dist/esm/lib/fixtures/browserState.js +15 -0
  88. package/dist/esm/lib/fixtures/browserState.js.map +1 -0
  89. package/dist/esm/lib/fixtures/gptClients.d.ts +40 -0
  90. package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -0
  91. package/dist/esm/lib/fixtures/gptClients.js +187 -0
  92. package/dist/esm/lib/fixtures/gptClients.js.map +1 -0
  93. package/dist/esm/lib/fixtures/testExtension.d.ts +10 -0
  94. package/dist/esm/lib/fixtures/testExtension.d.ts.map +1 -0
  95. package/dist/esm/lib/fixtures/testExtension.js +383 -0
  96. package/dist/esm/lib/fixtures/testExtension.js.map +1 -0
  97. package/dist/esm/lib/testExtension.d.ts +10 -0
  98. package/dist/esm/lib/testExtension.d.ts.map +1 -0
  99. package/dist/esm/lib/testExtension.js +383 -0
  100. package/dist/esm/lib/testExtension.js.map +1 -0
  101. package/dist/esm/lib/types.d.ts +106 -0
  102. package/dist/esm/lib/types.d.ts.map +1 -0
  103. package/dist/esm/{models/BrowserState.js → lib/types.js} +1 -1
  104. package/dist/esm/lib/types.js.map +1 -0
  105. package/dist/esm/lib/utils/donobuTestStack.d.ts +7 -0
  106. package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -0
  107. package/dist/esm/lib/utils/donobuTestStack.js +31 -0
  108. package/dist/esm/lib/utils/donobuTestStack.js.map +1 -0
  109. package/dist/esm/lib/utils/selfHealing.d.ts +15 -0
  110. package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -0
  111. package/dist/esm/lib/utils/selfHealing.js +89 -0
  112. package/dist/esm/lib/utils/selfHealing.js.map +1 -0
  113. package/dist/esm/main.d.ts +5 -1
  114. package/dist/esm/main.d.ts.map +1 -1
  115. package/dist/esm/main.js +8 -5
  116. package/dist/esm/main.js.map +1 -1
  117. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  118. package/dist/esm/managers/AdminApiController.js +7 -0
  119. package/dist/esm/managers/AdminApiController.js.map +1 -1
  120. package/dist/esm/managers/AgentsManager.d.ts +1 -1
  121. package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
  122. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  123. package/dist/esm/managers/CodeGenerator.js +2 -1
  124. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  125. package/dist/esm/managers/ControlPanel.d.ts +124 -0
  126. package/dist/esm/managers/ControlPanel.d.ts.map +1 -0
  127. package/dist/esm/managers/ControlPanel.js +282 -0
  128. package/dist/esm/managers/ControlPanel.js.map +1 -0
  129. package/dist/esm/managers/DonobuFlow.d.ts +7 -14
  130. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  131. package/dist/esm/managers/DonobuFlow.js +124 -160
  132. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  133. package/dist/esm/managers/DonobuFlowsManager.d.ts +47 -6
  134. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  135. package/dist/esm/managers/DonobuFlowsManager.js +104 -24
  136. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  137. package/dist/esm/managers/DonobuStack.d.ts +18 -4
  138. package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
  139. package/dist/esm/managers/DonobuStack.js +21 -5
  140. package/dist/esm/managers/DonobuStack.js.map +1 -1
  141. package/dist/esm/managers/EnvDataManager.d.ts +58 -0
  142. package/dist/esm/managers/EnvDataManager.d.ts.map +1 -0
  143. package/dist/esm/managers/EnvDataManager.js +134 -0
  144. package/dist/esm/managers/EnvDataManager.js.map +1 -0
  145. package/dist/esm/managers/EnvironmentDataManager.d.ts +58 -0
  146. package/dist/esm/managers/EnvironmentDataManager.d.ts.map +1 -0
  147. package/dist/esm/managers/EnvironmentDataManager.js +134 -0
  148. package/dist/esm/managers/EnvironmentDataManager.js.map +1 -0
  149. package/dist/esm/managers/GptConfigsManager.d.ts +1 -1
  150. package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
  151. package/dist/esm/managers/InteractionVisualizer.d.ts +9 -15
  152. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  153. package/dist/esm/managers/InteractionVisualizer.js +44 -44
  154. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  155. package/dist/esm/managers/PageInspector.d.ts +241 -0
  156. package/dist/esm/managers/PageInspector.d.ts.map +1 -0
  157. package/dist/esm/managers/PageInspector.js +786 -0
  158. package/dist/esm/managers/PageInspector.js.map +1 -0
  159. package/dist/esm/managers/ToolManager.d.ts +10 -0
  160. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  161. package/dist/esm/managers/ToolManager.js +49 -8
  162. package/dist/esm/managers/ToolManager.js.map +1 -1
  163. package/dist/esm/models/BrowserConfig.d.ts +1 -6
  164. package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
  165. package/dist/esm/models/BrowserFramework.d.ts +2 -6
  166. package/dist/esm/models/BrowserFramework.d.ts.map +1 -1
  167. package/dist/esm/models/BrowserFramework.js +4 -22
  168. package/dist/esm/models/BrowserFramework.js.map +1 -1
  169. package/dist/esm/models/CreateDonobuFlow.d.ts +4 -0
  170. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  171. package/dist/esm/models/EnvironmentDatum.d.ts +54 -0
  172. package/dist/esm/models/EnvironmentDatum.d.ts.map +1 -0
  173. package/dist/esm/models/EnvironmentDatum.js +57 -0
  174. package/dist/esm/models/EnvironmentDatum.js.map +1 -0
  175. package/dist/esm/models/FlowMetadata.d.ts +14 -1
  176. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  177. package/dist/esm/models/FlowMetadata.js.map +1 -1
  178. package/dist/esm/models/InteractableElement.d.ts +2 -2
  179. package/dist/esm/models/PaginatedResult.d.ts +10 -0
  180. package/dist/esm/models/PaginatedResult.d.ts.map +1 -0
  181. package/dist/esm/models/PaginatedResult.js +6 -0
  182. package/dist/esm/models/PaginatedResult.js.map +1 -0
  183. package/dist/esm/models/ToolCallContext.d.ts +8 -3
  184. package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
  185. package/dist/esm/models/ToolTemplateDataSource.d.ts +4 -0
  186. package/dist/esm/models/ToolTemplateDataSource.d.ts.map +1 -1
  187. package/dist/esm/persistence/DonobuSqliteDb.d.ts.map +1 -1
  188. package/dist/esm/persistence/DonobuSqliteDb.js +12 -0
  189. package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
  190. package/dist/esm/persistence/FlowsPersistence.d.ts +23 -14
  191. package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
  192. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
  193. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  194. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +79 -1
  195. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  196. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +1 -1
  197. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
  198. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
  199. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  200. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +114 -4
  201. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  202. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
  203. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  204. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
  205. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  206. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +12 -5
  207. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  208. package/dist/esm/persistence/FlowsPersistenceSqlite.js +35 -1
  209. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
  210. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +10 -5
  211. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  212. package/dist/esm/persistence/FlowsPersistenceSupabase.js +46 -1
  213. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
  214. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +10 -5
  215. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  216. package/dist/esm/persistence/FlowsPersistenceVolatile.js +21 -1
  217. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -1
  218. package/dist/esm/persistence/agents/AgentsPersistence.d.ts +12 -0
  219. package/dist/esm/persistence/agents/AgentsPersistence.d.ts.map +1 -0
  220. package/dist/esm/persistence/agents/AgentsPersistence.js +3 -0
  221. package/dist/esm/persistence/agents/AgentsPersistence.js.map +1 -0
  222. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
  223. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
  224. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js +50 -0
  225. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
  226. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
  227. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
  228. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js +26 -0
  229. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
  230. package/dist/esm/persistence/env/EnvPersistence.d.ts +20 -0
  231. package/dist/esm/persistence/env/EnvPersistence.d.ts.map +1 -0
  232. package/dist/esm/{models/ResolverContext.js → persistence/env/EnvPersistence.js} +1 -1
  233. package/dist/esm/persistence/env/EnvPersistence.js.map +1 -0
  234. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
  235. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
  236. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js +117 -0
  237. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
  238. package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts +6 -0
  239. package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
  240. package/dist/esm/persistence/env/EnvPersistenceFactory.js +3 -0
  241. package/dist/esm/persistence/env/EnvPersistenceFactory.js.map +1 -0
  242. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
  243. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
  244. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
  245. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
  246. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
  247. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
  248. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
  249. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
  250. package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
  251. package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
  252. package/dist/esm/persistence/env/EnvPersistenceFilesystem.js +132 -0
  253. package/dist/esm/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
  254. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
  255. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
  256. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
  257. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
  258. package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
  259. package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
  260. package/dist/esm/persistence/env/EnvPersistenceSqlite.js +54 -0
  261. package/dist/esm/persistence/env/EnvPersistenceSqlite.js.map +1 -0
  262. package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
  263. package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
  264. package/dist/esm/persistence/env/EnvPersistenceSupabase.js +60 -0
  265. package/dist/esm/persistence/env/EnvPersistenceSupabase.js.map +1 -0
  266. package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
  267. package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
  268. package/dist/esm/persistence/env/EnvPersistenceVolatile.js +31 -0
  269. package/dist/esm/persistence/env/EnvPersistenceVolatile.js.map +1 -0
  270. package/dist/esm/persistence/flows/FlowsPersistence.d.ts +87 -0
  271. package/dist/esm/persistence/flows/FlowsPersistence.d.ts.map +1 -0
  272. package/dist/esm/persistence/flows/FlowsPersistence.js +3 -0
  273. package/dist/esm/persistence/flows/FlowsPersistence.js.map +1 -0
  274. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
  275. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
  276. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
  277. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
  278. package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
  279. package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
  280. package/dist/esm/persistence/flows/FlowsPersistenceFactory.js +3 -0
  281. package/dist/esm/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
  282. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
  283. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
  284. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
  285. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
  286. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
  287. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
  288. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
  289. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
  290. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
  291. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
  292. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
  293. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
  294. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
  295. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
  296. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
  297. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
  298. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
  299. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
  300. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js +259 -0
  301. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
  302. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
  303. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
  304. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js +218 -0
  305. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
  306. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
  307. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
  308. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js +151 -0
  309. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
  310. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
  311. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
  312. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
  313. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
  314. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
  315. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
  316. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
  317. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
  318. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
  319. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
  320. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
  321. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
  322. package/dist/esm/playwrightTestExtensions.d.ts +5 -0
  323. package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
  324. package/dist/esm/playwrightTestExtensions.js +83 -23
  325. package/dist/esm/playwrightTestExtensions.js.map +1 -1
  326. package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
  327. package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -1
  328. package/dist/esm/tools/AssertPageTextTool.js +1 -1
  329. package/dist/esm/tools/AssertPageTextTool.js.map +1 -1
  330. package/dist/esm/tools/AssertTool.d.ts.map +1 -1
  331. package/dist/esm/tools/AssertTool.js +4 -4
  332. package/dist/esm/tools/AssertTool.js.map +1 -1
  333. package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
  334. package/dist/esm/tools/ChangeWebBrowserTabTool.js +8 -7
  335. package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -1
  336. package/dist/esm/tools/ClickTool.js +1 -1
  337. package/dist/esm/tools/ClickTool.js.map +1 -1
  338. package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
  339. package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
  340. package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
  341. package/dist/esm/tools/CustomToolRunnerTool.js +1 -1
  342. package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
  343. package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
  344. package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
  345. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
  346. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  347. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +1 -1
  348. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  349. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  350. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  351. package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
  352. package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -1
  353. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  354. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  355. package/dist/esm/tools/GoToWebpageTool.d.ts.map +1 -1
  356. package/dist/esm/tools/GoToWebpageTool.js +4 -3
  357. package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
  358. package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
  359. package/dist/esm/tools/HoverOverElementTool.js +1 -1
  360. package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
  361. package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
  362. package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -1
  363. package/dist/esm/tools/PressKeyTool.js +1 -1
  364. package/dist/esm/tools/PressKeyTool.js.map +1 -1
  365. package/dist/esm/tools/ReloadPageTool.js +1 -1
  366. package/dist/esm/tools/ReloadPageTool.js.map +1 -1
  367. package/dist/esm/tools/ReplayableInteraction.d.ts +16 -1
  368. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  369. package/dist/esm/tools/ReplayableInteraction.js +169 -16
  370. package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
  371. package/dist/esm/tools/RunAccessibilityTestTool.d.ts +8 -0
  372. package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  373. package/dist/esm/tools/RunAccessibilityTestTool.js +15 -2
  374. package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
  375. package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
  376. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
  377. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  378. package/dist/esm/tools/SaveWebpageAsPdfTool.js +1 -1
  379. package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
  380. package/dist/esm/tools/ScrollPageTool.d.ts +1 -1
  381. package/dist/esm/tools/ScrollPageTool.d.ts.map +1 -1
  382. package/dist/esm/tools/ScrollPageTool.js +47 -4
  383. package/dist/esm/tools/ScrollPageTool.js.map +1 -1
  384. package/dist/esm/tools/WaitTool.js +1 -1
  385. package/dist/esm/tools/WaitTool.js.map +1 -1
  386. package/dist/esm/utils/MiscUtils.d.ts +2 -2
  387. package/dist/esm/utils/MiscUtils.js +2 -2
  388. package/dist/esm/utils/PlaywrightUtils.d.ts +26 -127
  389. package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
  390. package/dist/esm/utils/PlaywrightUtils.js +133 -935
  391. package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
  392. package/dist/esm/utils/TemplateInterpolator.d.ts +21 -3
  393. package/dist/esm/utils/TemplateInterpolator.d.ts.map +1 -1
  394. package/dist/esm/utils/TemplateInterpolator.js +167 -21
  395. package/dist/esm/utils/TemplateInterpolator.js.map +1 -1
  396. package/dist/lib/DonobuExtendedPage.d.ts +106 -0
  397. package/dist/lib/DonobuExtendedPage.d.ts.map +1 -0
  398. package/dist/lib/DonobuExtendedPage.js +3 -0
  399. package/dist/lib/DonobuExtendedPage.js.map +1 -0
  400. package/dist/lib/constants.d.ts +8 -0
  401. package/dist/lib/constants.d.ts.map +1 -0
  402. package/dist/lib/constants.js +14 -0
  403. package/dist/lib/constants.js.map +1 -0
  404. package/dist/lib/fixtures/browserState.d.ts +6 -0
  405. package/dist/lib/fixtures/browserState.d.ts.map +1 -0
  406. package/dist/lib/fixtures/browserState.js +15 -0
  407. package/dist/lib/fixtures/browserState.js.map +1 -0
  408. package/dist/lib/fixtures/gptClients.d.ts +40 -0
  409. package/dist/lib/fixtures/gptClients.d.ts.map +1 -0
  410. package/dist/lib/fixtures/gptClients.js +187 -0
  411. package/dist/lib/fixtures/gptClients.js.map +1 -0
  412. package/dist/lib/fixtures/testExtension.d.ts +10 -0
  413. package/dist/lib/fixtures/testExtension.d.ts.map +1 -0
  414. package/dist/lib/fixtures/testExtension.js +383 -0
  415. package/dist/lib/fixtures/testExtension.js.map +1 -0
  416. package/dist/lib/testExtension.d.ts +10 -0
  417. package/dist/lib/testExtension.d.ts.map +1 -0
  418. package/dist/lib/testExtension.js +383 -0
  419. package/dist/lib/testExtension.js.map +1 -0
  420. package/dist/lib/types.d.ts +106 -0
  421. package/dist/lib/types.d.ts.map +1 -0
  422. package/dist/{models/BrowserState.js → lib/types.js} +1 -1
  423. package/dist/lib/types.js.map +1 -0
  424. package/dist/lib/utils/donobuTestStack.d.ts +7 -0
  425. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -0
  426. package/dist/lib/utils/donobuTestStack.js +31 -0
  427. package/dist/lib/utils/donobuTestStack.js.map +1 -0
  428. package/dist/lib/utils/selfHealing.d.ts +15 -0
  429. package/dist/lib/utils/selfHealing.d.ts.map +1 -0
  430. package/dist/lib/utils/selfHealing.js +89 -0
  431. package/dist/lib/utils/selfHealing.js.map +1 -0
  432. package/dist/main.d.ts +5 -1
  433. package/dist/main.d.ts.map +1 -1
  434. package/dist/main.js +8 -5
  435. package/dist/main.js.map +1 -1
  436. package/dist/managers/AdminApiController.d.ts.map +1 -1
  437. package/dist/managers/AdminApiController.js +7 -0
  438. package/dist/managers/AdminApiController.js.map +1 -1
  439. package/dist/managers/AgentsManager.d.ts +1 -1
  440. package/dist/managers/AgentsManager.d.ts.map +1 -1
  441. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  442. package/dist/managers/CodeGenerator.js +2 -1
  443. package/dist/managers/CodeGenerator.js.map +1 -1
  444. package/dist/managers/ControlPanel.d.ts +124 -0
  445. package/dist/managers/ControlPanel.d.ts.map +1 -0
  446. package/dist/managers/ControlPanel.js +282 -0
  447. package/dist/managers/ControlPanel.js.map +1 -0
  448. package/dist/managers/DonobuFlow.d.ts +7 -14
  449. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  450. package/dist/managers/DonobuFlow.js +124 -160
  451. package/dist/managers/DonobuFlow.js.map +1 -1
  452. package/dist/managers/DonobuFlowsManager.d.ts +47 -6
  453. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  454. package/dist/managers/DonobuFlowsManager.js +104 -24
  455. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  456. package/dist/managers/DonobuStack.d.ts +18 -4
  457. package/dist/managers/DonobuStack.d.ts.map +1 -1
  458. package/dist/managers/DonobuStack.js +21 -5
  459. package/dist/managers/DonobuStack.js.map +1 -1
  460. package/dist/managers/EnvDataManager.d.ts +58 -0
  461. package/dist/managers/EnvDataManager.d.ts.map +1 -0
  462. package/dist/managers/EnvDataManager.js +134 -0
  463. package/dist/managers/EnvDataManager.js.map +1 -0
  464. package/dist/managers/EnvironmentDataManager.d.ts +58 -0
  465. package/dist/managers/EnvironmentDataManager.d.ts.map +1 -0
  466. package/dist/managers/EnvironmentDataManager.js +134 -0
  467. package/dist/managers/EnvironmentDataManager.js.map +1 -0
  468. package/dist/managers/GptConfigsManager.d.ts +1 -1
  469. package/dist/managers/GptConfigsManager.d.ts.map +1 -1
  470. package/dist/managers/InteractionVisualizer.d.ts +9 -15
  471. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  472. package/dist/managers/InteractionVisualizer.js +44 -44
  473. package/dist/managers/InteractionVisualizer.js.map +1 -1
  474. package/dist/managers/PageInspector.d.ts +241 -0
  475. package/dist/managers/PageInspector.d.ts.map +1 -0
  476. package/dist/managers/PageInspector.js +786 -0
  477. package/dist/managers/PageInspector.js.map +1 -0
  478. package/dist/managers/ToolManager.d.ts +10 -0
  479. package/dist/managers/ToolManager.d.ts.map +1 -1
  480. package/dist/managers/ToolManager.js +49 -8
  481. package/dist/managers/ToolManager.js.map +1 -1
  482. package/dist/models/BrowserConfig.d.ts +1 -6
  483. package/dist/models/BrowserConfig.d.ts.map +1 -1
  484. package/dist/models/BrowserFramework.d.ts +2 -6
  485. package/dist/models/BrowserFramework.d.ts.map +1 -1
  486. package/dist/models/BrowserFramework.js +4 -22
  487. package/dist/models/BrowserFramework.js.map +1 -1
  488. package/dist/models/CreateDonobuFlow.d.ts +4 -0
  489. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  490. package/dist/models/EnvironmentDatum.d.ts +54 -0
  491. package/dist/models/EnvironmentDatum.d.ts.map +1 -0
  492. package/dist/models/EnvironmentDatum.js +57 -0
  493. package/dist/models/EnvironmentDatum.js.map +1 -0
  494. package/dist/models/FlowMetadata.d.ts +14 -1
  495. package/dist/models/FlowMetadata.d.ts.map +1 -1
  496. package/dist/models/FlowMetadata.js.map +1 -1
  497. package/dist/models/InteractableElement.d.ts +2 -2
  498. package/dist/models/PaginatedResult.d.ts +10 -0
  499. package/dist/models/PaginatedResult.d.ts.map +1 -0
  500. package/dist/models/PaginatedResult.js +6 -0
  501. package/dist/models/PaginatedResult.js.map +1 -0
  502. package/dist/models/ToolCallContext.d.ts +8 -3
  503. package/dist/models/ToolCallContext.d.ts.map +1 -1
  504. package/dist/models/ToolTemplateDataSource.d.ts +4 -0
  505. package/dist/models/ToolTemplateDataSource.d.ts.map +1 -1
  506. package/dist/persistence/DonobuSqliteDb.d.ts.map +1 -1
  507. package/dist/persistence/DonobuSqliteDb.js +12 -0
  508. package/dist/persistence/DonobuSqliteDb.js.map +1 -1
  509. package/dist/persistence/FlowsPersistence.d.ts +23 -14
  510. package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
  511. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
  512. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  513. package/dist/persistence/FlowsPersistenceAwsS3.js +79 -1
  514. package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  515. package/dist/persistence/FlowsPersistenceFactoryImpl.js +1 -1
  516. package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
  517. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
  518. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  519. package/dist/persistence/FlowsPersistenceFilesystem.js +114 -4
  520. package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  521. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
  522. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  523. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
  524. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  525. package/dist/persistence/FlowsPersistenceSqlite.d.ts +12 -5
  526. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  527. package/dist/persistence/FlowsPersistenceSqlite.js +35 -1
  528. package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
  529. package/dist/persistence/FlowsPersistenceSupabase.d.ts +10 -5
  530. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  531. package/dist/persistence/FlowsPersistenceSupabase.js +46 -1
  532. package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
  533. package/dist/persistence/FlowsPersistenceVolatile.d.ts +10 -5
  534. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  535. package/dist/persistence/FlowsPersistenceVolatile.js +21 -1
  536. package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
  537. package/dist/persistence/agents/AgentsPersistence.d.ts +12 -0
  538. package/dist/persistence/agents/AgentsPersistence.d.ts.map +1 -0
  539. package/dist/persistence/agents/AgentsPersistence.js +3 -0
  540. package/dist/persistence/agents/AgentsPersistence.js.map +1 -0
  541. package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
  542. package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
  543. package/dist/persistence/agents/AgentsPersistenceSqlite.js +50 -0
  544. package/dist/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
  545. package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
  546. package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
  547. package/dist/persistence/agents/AgentsPersistenceVolatile.js +26 -0
  548. package/dist/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
  549. package/dist/persistence/env/EnvPersistence.d.ts +20 -0
  550. package/dist/persistence/env/EnvPersistence.d.ts.map +1 -0
  551. package/dist/{models/ResolverContext.js → persistence/env/EnvPersistence.js} +1 -1
  552. package/dist/persistence/env/EnvPersistence.js.map +1 -0
  553. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
  554. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
  555. package/dist/persistence/env/EnvPersistenceAwsS3.js +117 -0
  556. package/dist/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
  557. package/dist/persistence/env/EnvPersistenceFactory.d.ts +6 -0
  558. package/dist/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
  559. package/dist/persistence/env/EnvPersistenceFactory.js +3 -0
  560. package/dist/persistence/env/EnvPersistenceFactory.js.map +1 -0
  561. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
  562. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
  563. package/dist/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
  564. package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
  565. package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
  566. package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
  567. package/dist/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
  568. package/dist/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
  569. package/dist/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
  570. package/dist/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
  571. package/dist/persistence/env/EnvPersistenceFilesystem.js +132 -0
  572. package/dist/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
  573. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
  574. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
  575. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
  576. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
  577. package/dist/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
  578. package/dist/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
  579. package/dist/persistence/env/EnvPersistenceSqlite.js +54 -0
  580. package/dist/persistence/env/EnvPersistenceSqlite.js.map +1 -0
  581. package/dist/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
  582. package/dist/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
  583. package/dist/persistence/env/EnvPersistenceSupabase.js +60 -0
  584. package/dist/persistence/env/EnvPersistenceSupabase.js.map +1 -0
  585. package/dist/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
  586. package/dist/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
  587. package/dist/persistence/env/EnvPersistenceVolatile.js +31 -0
  588. package/dist/persistence/env/EnvPersistenceVolatile.js.map +1 -0
  589. package/dist/persistence/flows/FlowsPersistence.d.ts +87 -0
  590. package/dist/persistence/flows/FlowsPersistence.d.ts.map +1 -0
  591. package/dist/persistence/flows/FlowsPersistence.js +3 -0
  592. package/dist/persistence/flows/FlowsPersistence.js.map +1 -0
  593. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
  594. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
  595. package/dist/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
  596. package/dist/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
  597. package/dist/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
  598. package/dist/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
  599. package/dist/persistence/flows/FlowsPersistenceFactory.js +3 -0
  600. package/dist/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
  601. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
  602. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
  603. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
  604. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
  605. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
  606. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
  607. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
  608. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
  609. package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
  610. package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
  611. package/dist/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
  612. package/dist/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
  613. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
  614. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
  615. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
  616. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
  617. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
  618. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
  619. package/dist/persistence/flows/FlowsPersistenceSqlite.js +259 -0
  620. package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
  621. package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
  622. package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
  623. package/dist/persistence/flows/FlowsPersistenceSupabase.js +218 -0
  624. package/dist/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
  625. package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
  626. package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
  627. package/dist/persistence/flows/FlowsPersistenceVolatile.js +151 -0
  628. package/dist/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
  629. package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
  630. package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
  631. package/dist/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
  632. package/dist/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
  633. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
  634. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
  635. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
  636. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
  637. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
  638. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
  639. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
  640. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
  641. package/dist/playwrightTestExtensions.d.ts +5 -0
  642. package/dist/playwrightTestExtensions.d.ts.map +1 -1
  643. package/dist/playwrightTestExtensions.js +83 -23
  644. package/dist/playwrightTestExtensions.js.map +1 -1
  645. package/dist/tools/AnalyzePageTextTool.js +1 -1
  646. package/dist/tools/AnalyzePageTextTool.js.map +1 -1
  647. package/dist/tools/AssertPageTextTool.js +1 -1
  648. package/dist/tools/AssertPageTextTool.js.map +1 -1
  649. package/dist/tools/AssertTool.d.ts.map +1 -1
  650. package/dist/tools/AssertTool.js +4 -4
  651. package/dist/tools/AssertTool.js.map +1 -1
  652. package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
  653. package/dist/tools/ChangeWebBrowserTabTool.js +8 -7
  654. package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -1
  655. package/dist/tools/ClickTool.js +1 -1
  656. package/dist/tools/ClickTool.js.map +1 -1
  657. package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
  658. package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
  659. package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
  660. package/dist/tools/CustomToolRunnerTool.js +1 -1
  661. package/dist/tools/CustomToolRunnerTool.js.map +1 -1
  662. package/dist/tools/DetectBrokenLinksTool.js +1 -1
  663. package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
  664. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
  665. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  666. package/dist/tools/ExtractPaymentProviderKeyTool.js +1 -1
  667. package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  668. package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  669. package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  670. package/dist/tools/GoForwardOrBackTool.js +1 -1
  671. package/dist/tools/GoForwardOrBackTool.js.map +1 -1
  672. package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  673. package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  674. package/dist/tools/GoToWebpageTool.d.ts.map +1 -1
  675. package/dist/tools/GoToWebpageTool.js +4 -3
  676. package/dist/tools/GoToWebpageTool.js.map +1 -1
  677. package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
  678. package/dist/tools/HoverOverElementTool.js +1 -1
  679. package/dist/tools/HoverOverElementTool.js.map +1 -1
  680. package/dist/tools/NavigateWithinStreetView.js +1 -1
  681. package/dist/tools/NavigateWithinStreetView.js.map +1 -1
  682. package/dist/tools/PressKeyTool.js +1 -1
  683. package/dist/tools/PressKeyTool.js.map +1 -1
  684. package/dist/tools/ReloadPageTool.js +1 -1
  685. package/dist/tools/ReloadPageTool.js.map +1 -1
  686. package/dist/tools/ReplayableInteraction.d.ts +16 -1
  687. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  688. package/dist/tools/ReplayableInteraction.js +169 -16
  689. package/dist/tools/ReplayableInteraction.js.map +1 -1
  690. package/dist/tools/RunAccessibilityTestTool.d.ts +8 -0
  691. package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  692. package/dist/tools/RunAccessibilityTestTool.js +15 -2
  693. package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
  694. package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
  695. package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
  696. package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  697. package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
  698. package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
  699. package/dist/tools/ScrollPageTool.d.ts +1 -1
  700. package/dist/tools/ScrollPageTool.d.ts.map +1 -1
  701. package/dist/tools/ScrollPageTool.js +47 -4
  702. package/dist/tools/ScrollPageTool.js.map +1 -1
  703. package/dist/tools/WaitTool.js +1 -1
  704. package/dist/tools/WaitTool.js.map +1 -1
  705. package/dist/utils/MiscUtils.d.ts +2 -2
  706. package/dist/utils/MiscUtils.js +2 -2
  707. package/dist/utils/PlaywrightUtils.d.ts +26 -127
  708. package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
  709. package/dist/utils/PlaywrightUtils.js +133 -935
  710. package/dist/utils/PlaywrightUtils.js.map +1 -1
  711. package/dist/utils/TemplateInterpolator.d.ts +21 -3
  712. package/dist/utils/TemplateInterpolator.d.ts.map +1 -1
  713. package/dist/utils/TemplateInterpolator.js +162 -21
  714. package/dist/utils/TemplateInterpolator.js.map +1 -1
  715. package/package.json +3 -1
  716. package/dist/assets/clickable-elements-tracker.js +0 -63
  717. package/dist/assets/zaru-eyes.html +0 -141
  718. package/dist/esm/assets/clickable-elements-tracker.js +0 -63
  719. package/dist/esm/assets/zaru-eyes.html +0 -141
  720. package/dist/esm/managers/TemplateInterpolator.d.ts +0 -19
  721. package/dist/esm/managers/TemplateInterpolator.d.ts.map +0 -1
  722. package/dist/esm/managers/TemplateInterpolator.js +0 -86
  723. package/dist/esm/managers/TemplateInterpolator.js.map +0 -1
  724. package/dist/esm/managers/ToolTipper.d.ts +0 -32
  725. package/dist/esm/managers/ToolTipper.d.ts.map +0 -1
  726. package/dist/esm/managers/ToolTipper.js +0 -229
  727. package/dist/esm/managers/ToolTipper.js.map +0 -1
  728. package/dist/esm/models/BrowserState.d.ts +0 -26
  729. package/dist/esm/models/BrowserState.d.ts.map +0 -1
  730. package/dist/esm/models/BrowserState.js.map +0 -1
  731. package/dist/esm/models/ResolverContext.d.ts +0 -7
  732. package/dist/esm/models/ResolverContext.d.ts.map +0 -1
  733. package/dist/esm/models/ResolverContext.js.map +0 -1
  734. package/dist/esm/test.d.ts +0 -78
  735. package/dist/esm/test.d.ts.map +0 -1
  736. package/dist/esm/test.js +0 -423
  737. package/dist/esm/test.js.map +0 -1
  738. package/dist/managers/TemplateInterpolator.d.ts +0 -19
  739. package/dist/managers/TemplateInterpolator.d.ts.map +0 -1
  740. package/dist/managers/TemplateInterpolator.js +0 -86
  741. package/dist/managers/TemplateInterpolator.js.map +0 -1
  742. package/dist/managers/ToolTipper.d.ts +0 -32
  743. package/dist/managers/ToolTipper.d.ts.map +0 -1
  744. package/dist/managers/ToolTipper.js +0 -229
  745. package/dist/managers/ToolTipper.js.map +0 -1
  746. package/dist/models/BrowserState.d.ts +0 -26
  747. package/dist/models/BrowserState.d.ts.map +0 -1
  748. package/dist/models/BrowserState.js.map +0 -1
  749. package/dist/models/ResolverContext.d.ts +0 -7
  750. package/dist/models/ResolverContext.d.ts.map +0 -1
  751. package/dist/models/ResolverContext.js.map +0 -1
  752. package/dist/test.d.ts +0 -78
  753. package/dist/test.d.ts.map +0 -1
  754. package/dist/test.js +0 -423
  755. package/dist/test.js.map +0 -1
  756. package/dist/tsconfig.esm.tsbuildinfo +0 -1
@@ -0,0 +1,40 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { GptClient } from '../../clients/GptClient';
3
+ import { LanguageModel } from 'ai';
4
+ export declare function getOrCreateDefaultGptClient(): Promise<GptClient>;
5
+ /**
6
+ * This fixture resolves a GPT client based on environment variables.
7
+ * Supplying different environment variables will result in different GPT
8
+ * clients being created. Here is a mapping of client type to environment
9
+ * variables for how to create the various types of clients...
10
+ *
11
+ * Anthropic AWS Bedrock GPT client requires:
12
+ * - AWS_BEDROCK_MODEL_NAME
13
+ * - AWS_REGION
14
+ * - AWS_ACCESS_KEY_ID
15
+ * - AWS_SECRET_ACCESS_KEY
16
+ *
17
+ * Anthropic GPT client requires:
18
+ * - ANTHROPIC_API_KEY
19
+ *
20
+ * Google GPT client requires:
21
+ * - GOOGLE_GENERATIVE_AI_API_KEY
22
+ *
23
+ * OpenAI GPT client requires:
24
+ * - OPENAI_API_KEY
25
+ *
26
+ * If the modelName is not specified, it will be defaulted according to the
27
+ * DEFAULT_GPT_MODEL_FOR_PLATFORM mapping.
28
+ */
29
+ export declare function createGptClient(modelName?: string): Promise<GptClient>;
30
+ export declare function anthropicClient(modelName: string, apiKey?: string): Promise<GptClient>;
31
+ export declare function anthropicClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
32
+ export declare function anthropicAwsBedrockClient(modelName: string, region?: string, accessKeyId?: string, secretAccessKey?: string): Promise<GptClient>;
33
+ export declare function anthropicAwsBedrockClientFixture(modelName: string, region?: string, accessKeyId?: string, secretAccessKey?: string): TestFixture<GptClient, any>;
34
+ export declare function googleGeminiClient(modelName: string, apiKey?: string): Promise<GptClient>;
35
+ export declare function googleGeminiClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
36
+ export declare function openAiClient(modelName: string, apiKey?: string): Promise<GptClient>;
37
+ export declare function openAiClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
38
+ export declare function vercelAiClientFixture(model: LanguageModel): TestFixture<GptClient, any>;
39
+ export declare function gptClientFixture(modelName?: string): TestFixture<GptClient, any>;
40
+ //# sourceMappingURL=gptClients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gptClients.d.ts","sourceRoot":"","sources":["../../../src/lib/fixtures/gptClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAkBnC,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,SAAS,CAAC,CAOtE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAiD5E;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAcpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAK7B;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,SAAS,CAAC,CAmBpB;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAU7B;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAepB;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAK7B;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAcpB;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAK7B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,GACnB,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAK7B;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAK7B"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrCreateDefaultGptClient = getOrCreateDefaultGptClient;
4
+ exports.createGptClient = createGptClient;
5
+ exports.anthropicClient = anthropicClient;
6
+ exports.anthropicClientFixture = anthropicClientFixture;
7
+ exports.anthropicAwsBedrockClient = anthropicAwsBedrockClient;
8
+ exports.anthropicAwsBedrockClientFixture = anthropicAwsBedrockClientFixture;
9
+ exports.googleGeminiClient = googleGeminiClient;
10
+ exports.googleGeminiClientFixture = googleGeminiClientFixture;
11
+ exports.openAiClient = openAiClient;
12
+ exports.openAiClientFixture = openAiClientFixture;
13
+ exports.vercelAiClientFixture = vercelAiClientFixture;
14
+ exports.gptClientFixture = gptClientFixture;
15
+ const GptClientFactory_1 = require("../../clients/GptClientFactory");
16
+ const VercelAiGptClient_1 = require("../../clients/VercelAiGptClient");
17
+ const envVars_1 = require("../../envVars");
18
+ const donobuTestStack_1 = require("../utils/donobuTestStack");
19
+ const DEFAULT_GPT_MODEL_FOR_PLATFORM = {
20
+ ANTHROPIC: process.env[envVars_1.ENV_VAR_NAMES.ANTHROPIC_MODEL_NAME] ||
21
+ 'claude-3-5-sonnet-latest',
22
+ ANTHROPIC_AWS_BEDROCK: process.env[envVars_1.ENV_VAR_NAMES.AWS_BEDROCK_MODEL_NAME] || undefined,
23
+ GOOGLE_GEMINI: process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_GENERATIVE_AI_MODEL_NAME] ||
24
+ 'gemini-2.0-flash',
25
+ OPENAI: process.env[envVars_1.ENV_VAR_NAMES.OPENAI_API_MODEL_NAME] || 'gpt-4o',
26
+ };
27
+ let defaultGptClient = undefined;
28
+ async function getOrCreateDefaultGptClient() {
29
+ if (!defaultGptClient) {
30
+ defaultGptClient = await createGptClient();
31
+ return defaultGptClient;
32
+ }
33
+ else {
34
+ return defaultGptClient;
35
+ }
36
+ }
37
+ /**
38
+ * This fixture resolves a GPT client based on environment variables.
39
+ * Supplying different environment variables will result in different GPT
40
+ * clients being created. Here is a mapping of client type to environment
41
+ * variables for how to create the various types of clients...
42
+ *
43
+ * Anthropic AWS Bedrock GPT client requires:
44
+ * - AWS_BEDROCK_MODEL_NAME
45
+ * - AWS_REGION
46
+ * - AWS_ACCESS_KEY_ID
47
+ * - AWS_SECRET_ACCESS_KEY
48
+ *
49
+ * Anthropic GPT client requires:
50
+ * - ANTHROPIC_API_KEY
51
+ *
52
+ * Google GPT client requires:
53
+ * - GOOGLE_GENERATIVE_AI_API_KEY
54
+ *
55
+ * OpenAI GPT client requires:
56
+ * - OPENAI_API_KEY
57
+ *
58
+ * If the modelName is not specified, it will be defaulted according to the
59
+ * DEFAULT_GPT_MODEL_FOR_PLATFORM mapping.
60
+ */
61
+ async function createGptClient(modelName) {
62
+ // Check which API keys are available
63
+ const hasAwsCredentials = !!DEFAULT_GPT_MODEL_FOR_PLATFORM.ANTHROPIC_AWS_BEDROCK &&
64
+ !!process.env[envVars_1.ENV_VAR_NAMES.AWS_ACCESS_KEY_ID] &&
65
+ !!process.env[envVars_1.ENV_VAR_NAMES.AWS_SECRET_ACCESS_KEY];
66
+ const hasAnthropicKey = !!process.env[envVars_1.ENV_VAR_NAMES.ANTHROPIC_API_KEY];
67
+ const hasGoogleKey = !!process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_GENERATIVE_AI_API_KEY];
68
+ const hasOpenAiKey = !!process.env[envVars_1.ENV_VAR_NAMES.OPENAI_API_KEY];
69
+ // Priority order: Anthropic AWS Bedrock, Anthropic, Google, OpenAI
70
+ if (hasAwsCredentials) {
71
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.ANTHROPIC_AWS_BEDROCK;
72
+ const region = process.env[envVars_1.ENV_VAR_NAMES.AWS_REGION];
73
+ const accessKeyId = process.env[envVars_1.ENV_VAR_NAMES.AWS_ACCESS_KEY_ID];
74
+ const secretAccessKey = process.env[envVars_1.ENV_VAR_NAMES.AWS_SECRET_ACCESS_KEY];
75
+ return anthropicAwsBedrockClient(model, region, accessKeyId, secretAccessKey);
76
+ }
77
+ else if (hasAnthropicKey) {
78
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.ANTHROPIC;
79
+ return anthropicClient(model);
80
+ }
81
+ else if (hasGoogleKey) {
82
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.GOOGLE_GEMINI;
83
+ return googleGeminiClient(model);
84
+ }
85
+ else if (hasOpenAiKey) {
86
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.OPENAI;
87
+ return openAiClient(model);
88
+ }
89
+ else {
90
+ const donobu = await (0, donobuTestStack_1.getOrCreateDonobuStack)();
91
+ const defaultClient = (await donobu.flowsManager.createGptClient(null))
92
+ .gptClient;
93
+ if (defaultClient) {
94
+ return defaultClient;
95
+ }
96
+ else {
97
+ // No API keys are available and there is not flow-runner set up, throw an error.
98
+ throw new Error(`No API keys found for any supported GPT providers.
99
+ Please set one of the following environment variables: ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, or OPENAI_API_KEY.
100
+ Alternatively, set a flow-runner agent via POST /api/agents/flow-runner or via the Donobu app.`);
101
+ }
102
+ }
103
+ }
104
+ async function anthropicClient(modelName, apiKey) {
105
+ const divinedApiKey = apiKey || process.env[envVars_1.ENV_VAR_NAMES.ANTHROPIC_API_KEY];
106
+ if (!divinedApiKey) {
107
+ throw new Error('An API key is required to use the Anthropic API. Please provide one as an argument or set it using the ANTHROPIC_API_KEY environment variable.');
108
+ }
109
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
110
+ type: 'ANTHROPIC',
111
+ apiKey: divinedApiKey,
112
+ modelName: modelName,
113
+ });
114
+ }
115
+ function anthropicClientFixture(modelName, apiKey) {
116
+ return async ({}, use) => {
117
+ const client = await anthropicClient(modelName, apiKey);
118
+ await use(client);
119
+ };
120
+ }
121
+ async function anthropicAwsBedrockClient(modelName, region, accessKeyId, secretAccessKey) {
122
+ const divinedAccessKeyId = accessKeyId || process.env[envVars_1.ENV_VAR_NAMES.AWS_ACCESS_KEY_ID];
123
+ const divinedSecretAccessKey = secretAccessKey || process.env[envVars_1.ENV_VAR_NAMES.AWS_SECRET_ACCESS_KEY];
124
+ if (!divinedAccessKeyId || !divinedSecretAccessKey) {
125
+ throw new Error('AWS access key ID and secret access key are required to use the Anthropic AWS Bedrock API. Please provide them as arguments or set them using the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.');
126
+ }
127
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
128
+ type: 'ANTHROPIC_AWS_BEDROCK',
129
+ region: region,
130
+ modelName: modelName,
131
+ accessKeyId: divinedAccessKeyId,
132
+ secretAccessKey: divinedSecretAccessKey,
133
+ });
134
+ }
135
+ function anthropicAwsBedrockClientFixture(modelName, region, accessKeyId, secretAccessKey) {
136
+ return async ({}, use) => {
137
+ const client = await anthropicAwsBedrockClient(modelName, region, accessKeyId, secretAccessKey);
138
+ await use(client);
139
+ };
140
+ }
141
+ async function googleGeminiClient(modelName, apiKey) {
142
+ const divinedApiKey = apiKey || process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_GENERATIVE_AI_API_KEY];
143
+ if (!divinedApiKey) {
144
+ throw new Error('An API key is required to use the Google Gemini API. Please provide one as an argument or set it using the GOOGLE_GENERATIVE_AI_API_KEY environment variable.');
145
+ }
146
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
147
+ type: 'GOOGLE_GEMINI',
148
+ apiKey: divinedApiKey,
149
+ modelName: modelName,
150
+ });
151
+ }
152
+ function googleGeminiClientFixture(modelName, apiKey) {
153
+ return async ({}, use) => {
154
+ const client = await googleGeminiClient(modelName, apiKey);
155
+ await use(client);
156
+ };
157
+ }
158
+ async function openAiClient(modelName, apiKey) {
159
+ const divinedApiKey = apiKey || process.env[envVars_1.ENV_VAR_NAMES.OPENAI_API_KEY];
160
+ if (!divinedApiKey) {
161
+ throw new Error('An API key is required to use the OpenAI API. Please provide one as an argument or set it using the OPENAI_API_KEY environment variable.');
162
+ }
163
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
164
+ type: 'OPENAI',
165
+ apiKey: divinedApiKey,
166
+ modelName: modelName,
167
+ });
168
+ }
169
+ function openAiClientFixture(modelName, apiKey) {
170
+ return async ({}, use) => {
171
+ const client = await openAiClient(modelName, apiKey);
172
+ await use(client);
173
+ };
174
+ }
175
+ function vercelAiClientFixture(model) {
176
+ return async ({}, use) => {
177
+ const client = new VercelAiGptClient_1.VercelAiGptClient(model);
178
+ await use(client);
179
+ };
180
+ }
181
+ function gptClientFixture(modelName) {
182
+ return async ({}, use) => {
183
+ const client = await createGptClient(modelName);
184
+ await use(client);
185
+ };
186
+ }
187
+ //# sourceMappingURL=gptClients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gptClients.js","sourceRoot":"","sources":["../../../src/lib/fixtures/gptClients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,383 @@
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