donobu 2.16.0 → 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 (527) 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/generated/parameter-schemas.json +22 -8
  18. package/dist/assets/generated/version +1 -1
  19. package/dist/esm/apis/EnvDataApi.d.ts +26 -0
  20. package/dist/esm/apis/EnvDataApi.d.ts.map +1 -0
  21. package/dist/esm/apis/EnvDataApi.js +59 -0
  22. package/dist/esm/apis/EnvDataApi.js.map +1 -0
  23. package/dist/esm/apis/EnvironmentDataApi.d.ts +26 -0
  24. package/dist/esm/apis/EnvironmentDataApi.d.ts.map +1 -0
  25. package/dist/esm/apis/EnvironmentDataApi.js +59 -0
  26. package/dist/esm/apis/EnvironmentDataApi.js.map +1 -0
  27. package/dist/esm/apis/FlowsApi.d.ts +4 -0
  28. package/dist/esm/apis/FlowsApi.d.ts.map +1 -1
  29. package/dist/esm/apis/FlowsApi.js +26 -2
  30. package/dist/esm/apis/FlowsApi.js.map +1 -1
  31. package/dist/esm/apis/FlowsFilesApi.d.ts +1 -1
  32. package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
  33. package/dist/esm/apis/SpecialFlowsApi.js +1 -1
  34. package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
  35. package/dist/esm/assets/generated/parameter-schemas.json +22 -8
  36. package/dist/esm/assets/generated/version +1 -1
  37. package/dist/esm/lib/DonobuExtendedPage.d.ts +106 -0
  38. package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -0
  39. package/dist/esm/lib/DonobuExtendedPage.js +3 -0
  40. package/dist/esm/lib/DonobuExtendedPage.js.map +1 -0
  41. package/dist/esm/lib/constants.d.ts +8 -0
  42. package/dist/esm/lib/constants.d.ts.map +1 -0
  43. package/dist/esm/lib/constants.js +14 -0
  44. package/dist/esm/lib/constants.js.map +1 -0
  45. package/dist/esm/lib/fixtures/browserState.d.ts +6 -0
  46. package/dist/esm/lib/fixtures/browserState.d.ts.map +1 -0
  47. package/dist/esm/lib/fixtures/browserState.js +15 -0
  48. package/dist/esm/lib/fixtures/browserState.js.map +1 -0
  49. package/dist/esm/lib/fixtures/gptClients.d.ts +40 -0
  50. package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -0
  51. package/dist/esm/lib/fixtures/gptClients.js +187 -0
  52. package/dist/esm/lib/fixtures/gptClients.js.map +1 -0
  53. package/dist/esm/lib/fixtures/testExtension.d.ts +10 -0
  54. package/dist/esm/lib/fixtures/testExtension.d.ts.map +1 -0
  55. package/dist/esm/lib/fixtures/testExtension.js +383 -0
  56. package/dist/esm/lib/fixtures/testExtension.js.map +1 -0
  57. package/dist/esm/lib/testExtension.d.ts +10 -0
  58. package/dist/esm/lib/testExtension.d.ts.map +1 -0
  59. package/dist/esm/lib/testExtension.js +383 -0
  60. package/dist/esm/lib/testExtension.js.map +1 -0
  61. package/dist/esm/lib/types.d.ts +106 -0
  62. package/dist/esm/lib/types.d.ts.map +1 -0
  63. package/dist/esm/lib/types.js +3 -0
  64. package/dist/esm/lib/types.js.map +1 -0
  65. package/dist/esm/lib/utils/donobuTestStack.d.ts +7 -0
  66. package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -0
  67. package/dist/esm/lib/utils/donobuTestStack.js +31 -0
  68. package/dist/esm/lib/utils/donobuTestStack.js.map +1 -0
  69. package/dist/esm/lib/utils/selfHealing.d.ts +15 -0
  70. package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -0
  71. package/dist/esm/lib/utils/selfHealing.js +89 -0
  72. package/dist/esm/lib/utils/selfHealing.js.map +1 -0
  73. package/dist/esm/main.d.ts +5 -1
  74. package/dist/esm/main.d.ts.map +1 -1
  75. package/dist/esm/main.js +8 -5
  76. package/dist/esm/main.js.map +1 -1
  77. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  78. package/dist/esm/managers/AdminApiController.js +7 -0
  79. package/dist/esm/managers/AdminApiController.js.map +1 -1
  80. package/dist/esm/managers/AgentsManager.d.ts +1 -1
  81. package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
  82. package/dist/esm/managers/DonobuFlow.d.ts +3 -2
  83. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  84. package/dist/esm/managers/DonobuFlow.js +90 -21
  85. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  86. package/dist/esm/managers/DonobuFlowsManager.d.ts +47 -6
  87. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  88. package/dist/esm/managers/DonobuFlowsManager.js +104 -24
  89. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  90. package/dist/esm/managers/DonobuStack.d.ts +18 -4
  91. package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
  92. package/dist/esm/managers/DonobuStack.js +21 -5
  93. package/dist/esm/managers/DonobuStack.js.map +1 -1
  94. package/dist/esm/managers/EnvDataManager.d.ts +58 -0
  95. package/dist/esm/managers/EnvDataManager.d.ts.map +1 -0
  96. package/dist/esm/managers/EnvDataManager.js +134 -0
  97. package/dist/esm/managers/EnvDataManager.js.map +1 -0
  98. package/dist/esm/managers/EnvironmentDataManager.d.ts +58 -0
  99. package/dist/esm/managers/EnvironmentDataManager.d.ts.map +1 -0
  100. package/dist/esm/managers/EnvironmentDataManager.js +134 -0
  101. package/dist/esm/managers/EnvironmentDataManager.js.map +1 -0
  102. package/dist/esm/managers/GptConfigsManager.d.ts +1 -1
  103. package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
  104. package/dist/esm/managers/PageInspector.d.ts +0 -1
  105. package/dist/esm/managers/PageInspector.d.ts.map +1 -1
  106. package/dist/esm/managers/PageInspector.js +29 -26
  107. package/dist/esm/managers/PageInspector.js.map +1 -1
  108. package/dist/esm/managers/ToolManager.d.ts +10 -0
  109. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  110. package/dist/esm/managers/ToolManager.js +46 -3
  111. package/dist/esm/managers/ToolManager.js.map +1 -1
  112. package/dist/esm/models/BrowserConfig.d.ts +1 -6
  113. package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
  114. package/dist/esm/models/BrowserFramework.d.ts +2 -6
  115. package/dist/esm/models/BrowserFramework.d.ts.map +1 -1
  116. package/dist/esm/models/BrowserFramework.js +4 -22
  117. package/dist/esm/models/BrowserFramework.js.map +1 -1
  118. package/dist/esm/models/CreateDonobuFlow.d.ts +4 -0
  119. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  120. package/dist/esm/models/EnvironmentDatum.d.ts +54 -0
  121. package/dist/esm/models/EnvironmentDatum.d.ts.map +1 -0
  122. package/dist/esm/models/EnvironmentDatum.js +57 -0
  123. package/dist/esm/models/EnvironmentDatum.js.map +1 -0
  124. package/dist/esm/models/FlowMetadata.d.ts +14 -1
  125. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  126. package/dist/esm/models/FlowMetadata.js.map +1 -1
  127. package/dist/esm/models/PaginatedResult.d.ts +10 -0
  128. package/dist/esm/models/PaginatedResult.d.ts.map +1 -0
  129. package/dist/esm/models/PaginatedResult.js +6 -0
  130. package/dist/esm/models/PaginatedResult.js.map +1 -0
  131. package/dist/esm/models/ToolCallContext.d.ts +2 -1
  132. package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
  133. package/dist/esm/models/ToolTemplateDataSource.d.ts +40 -0
  134. package/dist/esm/models/ToolTemplateDataSource.d.ts.map +1 -0
  135. package/dist/esm/models/ToolTemplateDataSource.js +3 -0
  136. package/dist/esm/models/ToolTemplateDataSource.js.map +1 -0
  137. package/dist/esm/persistence/DonobuSqliteDb.d.ts.map +1 -1
  138. package/dist/esm/persistence/DonobuSqliteDb.js +12 -0
  139. package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
  140. package/dist/esm/persistence/FlowsPersistence.d.ts +23 -14
  141. package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
  142. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
  143. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  144. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +79 -1
  145. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  146. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +1 -1
  147. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
  148. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
  149. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  150. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +114 -4
  151. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  152. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
  153. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  154. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
  155. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  156. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +12 -5
  157. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  158. package/dist/esm/persistence/FlowsPersistenceSqlite.js +35 -1
  159. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
  160. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +10 -5
  161. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  162. package/dist/esm/persistence/FlowsPersistenceSupabase.js +46 -1
  163. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
  164. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +10 -5
  165. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  166. package/dist/esm/persistence/FlowsPersistenceVolatile.js +21 -1
  167. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -1
  168. package/dist/esm/persistence/agents/AgentsPersistence.d.ts +12 -0
  169. package/dist/esm/persistence/agents/AgentsPersistence.d.ts.map +1 -0
  170. package/dist/esm/persistence/agents/AgentsPersistence.js +3 -0
  171. package/dist/esm/persistence/agents/AgentsPersistence.js.map +1 -0
  172. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
  173. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
  174. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js +50 -0
  175. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
  176. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
  177. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
  178. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js +26 -0
  179. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
  180. package/dist/esm/persistence/env/EnvPersistence.d.ts +20 -0
  181. package/dist/esm/persistence/env/EnvPersistence.d.ts.map +1 -0
  182. package/dist/esm/persistence/env/EnvPersistence.js +3 -0
  183. package/dist/esm/persistence/env/EnvPersistence.js.map +1 -0
  184. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
  185. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
  186. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js +117 -0
  187. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
  188. package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts +6 -0
  189. package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
  190. package/dist/esm/persistence/env/EnvPersistenceFactory.js +3 -0
  191. package/dist/esm/persistence/env/EnvPersistenceFactory.js.map +1 -0
  192. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
  193. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
  194. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
  195. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
  196. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
  197. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
  198. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
  199. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
  200. package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
  201. package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
  202. package/dist/esm/persistence/env/EnvPersistenceFilesystem.js +132 -0
  203. package/dist/esm/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
  204. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
  205. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
  206. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
  207. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
  208. package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
  209. package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
  210. package/dist/esm/persistence/env/EnvPersistenceSqlite.js +54 -0
  211. package/dist/esm/persistence/env/EnvPersistenceSqlite.js.map +1 -0
  212. package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
  213. package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
  214. package/dist/esm/persistence/env/EnvPersistenceSupabase.js +60 -0
  215. package/dist/esm/persistence/env/EnvPersistenceSupabase.js.map +1 -0
  216. package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
  217. package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
  218. package/dist/esm/persistence/env/EnvPersistenceVolatile.js +31 -0
  219. package/dist/esm/persistence/env/EnvPersistenceVolatile.js.map +1 -0
  220. package/dist/esm/persistence/flows/FlowsPersistence.d.ts +87 -0
  221. package/dist/esm/persistence/flows/FlowsPersistence.d.ts.map +1 -0
  222. package/dist/esm/persistence/flows/FlowsPersistence.js +3 -0
  223. package/dist/esm/persistence/flows/FlowsPersistence.js.map +1 -0
  224. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
  225. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
  226. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
  227. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
  228. package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
  229. package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
  230. package/dist/esm/persistence/flows/FlowsPersistenceFactory.js +3 -0
  231. package/dist/esm/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
  232. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
  233. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
  234. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
  235. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
  236. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
  237. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
  238. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
  239. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
  240. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
  241. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
  242. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
  243. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
  244. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
  245. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
  246. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
  247. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
  248. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
  249. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
  250. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js +259 -0
  251. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
  252. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
  253. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
  254. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js +218 -0
  255. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
  256. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
  257. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
  258. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js +151 -0
  259. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
  260. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
  261. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
  262. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
  263. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
  264. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
  265. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
  266. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
  267. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
  268. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
  269. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
  270. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
  271. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
  272. package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
  273. package/dist/esm/playwrightTestExtensions.js +31 -10
  274. package/dist/esm/playwrightTestExtensions.js.map +1 -1
  275. package/dist/esm/tools/GoToWebpageTool.d.ts.map +1 -1
  276. package/dist/esm/tools/GoToWebpageTool.js +3 -2
  277. package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
  278. package/dist/esm/utils/TemplateInterpolator.d.ts +47 -0
  279. package/dist/esm/utils/TemplateInterpolator.d.ts.map +1 -0
  280. package/dist/esm/utils/TemplateInterpolator.js +352 -0
  281. package/dist/esm/utils/TemplateInterpolator.js.map +1 -0
  282. package/dist/lib/DonobuExtendedPage.d.ts +106 -0
  283. package/dist/lib/DonobuExtendedPage.d.ts.map +1 -0
  284. package/dist/lib/DonobuExtendedPage.js +3 -0
  285. package/dist/lib/DonobuExtendedPage.js.map +1 -0
  286. package/dist/lib/constants.d.ts +8 -0
  287. package/dist/lib/constants.d.ts.map +1 -0
  288. package/dist/lib/constants.js +14 -0
  289. package/dist/lib/constants.js.map +1 -0
  290. package/dist/lib/fixtures/browserState.d.ts +6 -0
  291. package/dist/lib/fixtures/browserState.d.ts.map +1 -0
  292. package/dist/lib/fixtures/browserState.js +15 -0
  293. package/dist/lib/fixtures/browserState.js.map +1 -0
  294. package/dist/lib/fixtures/gptClients.d.ts +40 -0
  295. package/dist/lib/fixtures/gptClients.d.ts.map +1 -0
  296. package/dist/lib/fixtures/gptClients.js +187 -0
  297. package/dist/lib/fixtures/gptClients.js.map +1 -0
  298. package/dist/lib/fixtures/testExtension.d.ts +10 -0
  299. package/dist/lib/fixtures/testExtension.d.ts.map +1 -0
  300. package/dist/lib/fixtures/testExtension.js +383 -0
  301. package/dist/lib/fixtures/testExtension.js.map +1 -0
  302. package/dist/lib/testExtension.d.ts +10 -0
  303. package/dist/lib/testExtension.d.ts.map +1 -0
  304. package/dist/lib/testExtension.js +383 -0
  305. package/dist/lib/testExtension.js.map +1 -0
  306. package/dist/lib/types.d.ts +106 -0
  307. package/dist/lib/types.d.ts.map +1 -0
  308. package/dist/lib/types.js +3 -0
  309. package/dist/lib/types.js.map +1 -0
  310. package/dist/lib/utils/donobuTestStack.d.ts +7 -0
  311. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -0
  312. package/dist/lib/utils/donobuTestStack.js +31 -0
  313. package/dist/lib/utils/donobuTestStack.js.map +1 -0
  314. package/dist/lib/utils/selfHealing.d.ts +15 -0
  315. package/dist/lib/utils/selfHealing.d.ts.map +1 -0
  316. package/dist/lib/utils/selfHealing.js +89 -0
  317. package/dist/lib/utils/selfHealing.js.map +1 -0
  318. package/dist/main.d.ts +5 -1
  319. package/dist/main.d.ts.map +1 -1
  320. package/dist/main.js +8 -5
  321. package/dist/main.js.map +1 -1
  322. package/dist/managers/AdminApiController.d.ts.map +1 -1
  323. package/dist/managers/AdminApiController.js +7 -0
  324. package/dist/managers/AdminApiController.js.map +1 -1
  325. package/dist/managers/AgentsManager.d.ts +1 -1
  326. package/dist/managers/AgentsManager.d.ts.map +1 -1
  327. package/dist/managers/DonobuFlow.d.ts +3 -2
  328. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  329. package/dist/managers/DonobuFlow.js +90 -21
  330. package/dist/managers/DonobuFlow.js.map +1 -1
  331. package/dist/managers/DonobuFlowsManager.d.ts +47 -6
  332. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  333. package/dist/managers/DonobuFlowsManager.js +104 -24
  334. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  335. package/dist/managers/DonobuStack.d.ts +18 -4
  336. package/dist/managers/DonobuStack.d.ts.map +1 -1
  337. package/dist/managers/DonobuStack.js +21 -5
  338. package/dist/managers/DonobuStack.js.map +1 -1
  339. package/dist/managers/EnvDataManager.d.ts +58 -0
  340. package/dist/managers/EnvDataManager.d.ts.map +1 -0
  341. package/dist/managers/EnvDataManager.js +134 -0
  342. package/dist/managers/EnvDataManager.js.map +1 -0
  343. package/dist/managers/EnvironmentDataManager.d.ts +58 -0
  344. package/dist/managers/EnvironmentDataManager.d.ts.map +1 -0
  345. package/dist/managers/EnvironmentDataManager.js +134 -0
  346. package/dist/managers/EnvironmentDataManager.js.map +1 -0
  347. package/dist/managers/GptConfigsManager.d.ts +1 -1
  348. package/dist/managers/GptConfigsManager.d.ts.map +1 -1
  349. package/dist/managers/PageInspector.d.ts +0 -1
  350. package/dist/managers/PageInspector.d.ts.map +1 -1
  351. package/dist/managers/PageInspector.js +29 -26
  352. package/dist/managers/PageInspector.js.map +1 -1
  353. package/dist/managers/ToolManager.d.ts +10 -0
  354. package/dist/managers/ToolManager.d.ts.map +1 -1
  355. package/dist/managers/ToolManager.js +46 -3
  356. package/dist/managers/ToolManager.js.map +1 -1
  357. package/dist/models/BrowserConfig.d.ts +1 -6
  358. package/dist/models/BrowserConfig.d.ts.map +1 -1
  359. package/dist/models/BrowserFramework.d.ts +2 -6
  360. package/dist/models/BrowserFramework.d.ts.map +1 -1
  361. package/dist/models/BrowserFramework.js +4 -22
  362. package/dist/models/BrowserFramework.js.map +1 -1
  363. package/dist/models/CreateDonobuFlow.d.ts +4 -0
  364. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  365. package/dist/models/EnvironmentDatum.d.ts +54 -0
  366. package/dist/models/EnvironmentDatum.d.ts.map +1 -0
  367. package/dist/models/EnvironmentDatum.js +57 -0
  368. package/dist/models/EnvironmentDatum.js.map +1 -0
  369. package/dist/models/FlowMetadata.d.ts +14 -1
  370. package/dist/models/FlowMetadata.d.ts.map +1 -1
  371. package/dist/models/FlowMetadata.js.map +1 -1
  372. package/dist/models/PaginatedResult.d.ts +10 -0
  373. package/dist/models/PaginatedResult.d.ts.map +1 -0
  374. package/dist/models/PaginatedResult.js +6 -0
  375. package/dist/models/PaginatedResult.js.map +1 -0
  376. package/dist/models/ToolCallContext.d.ts +2 -1
  377. package/dist/models/ToolCallContext.d.ts.map +1 -1
  378. package/dist/models/ToolTemplateDataSource.d.ts +40 -0
  379. package/dist/models/ToolTemplateDataSource.d.ts.map +1 -0
  380. package/dist/models/ToolTemplateDataSource.js +3 -0
  381. package/dist/models/ToolTemplateDataSource.js.map +1 -0
  382. package/dist/persistence/DonobuSqliteDb.d.ts.map +1 -1
  383. package/dist/persistence/DonobuSqliteDb.js +12 -0
  384. package/dist/persistence/DonobuSqliteDb.js.map +1 -1
  385. package/dist/persistence/FlowsPersistence.d.ts +23 -14
  386. package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
  387. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
  388. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  389. package/dist/persistence/FlowsPersistenceAwsS3.js +79 -1
  390. package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  391. package/dist/persistence/FlowsPersistenceFactoryImpl.js +1 -1
  392. package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
  393. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
  394. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  395. package/dist/persistence/FlowsPersistenceFilesystem.js +114 -4
  396. package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  397. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
  398. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  399. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
  400. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  401. package/dist/persistence/FlowsPersistenceSqlite.d.ts +12 -5
  402. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  403. package/dist/persistence/FlowsPersistenceSqlite.js +35 -1
  404. package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
  405. package/dist/persistence/FlowsPersistenceSupabase.d.ts +10 -5
  406. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  407. package/dist/persistence/FlowsPersistenceSupabase.js +46 -1
  408. package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
  409. package/dist/persistence/FlowsPersistenceVolatile.d.ts +10 -5
  410. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  411. package/dist/persistence/FlowsPersistenceVolatile.js +21 -1
  412. package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
  413. package/dist/persistence/agents/AgentsPersistence.d.ts +12 -0
  414. package/dist/persistence/agents/AgentsPersistence.d.ts.map +1 -0
  415. package/dist/persistence/agents/AgentsPersistence.js +3 -0
  416. package/dist/persistence/agents/AgentsPersistence.js.map +1 -0
  417. package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
  418. package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
  419. package/dist/persistence/agents/AgentsPersistenceSqlite.js +50 -0
  420. package/dist/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
  421. package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
  422. package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
  423. package/dist/persistence/agents/AgentsPersistenceVolatile.js +26 -0
  424. package/dist/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
  425. package/dist/persistence/env/EnvPersistence.d.ts +20 -0
  426. package/dist/persistence/env/EnvPersistence.d.ts.map +1 -0
  427. package/dist/persistence/env/EnvPersistence.js +3 -0
  428. package/dist/persistence/env/EnvPersistence.js.map +1 -0
  429. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
  430. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
  431. package/dist/persistence/env/EnvPersistenceAwsS3.js +117 -0
  432. package/dist/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
  433. package/dist/persistence/env/EnvPersistenceFactory.d.ts +6 -0
  434. package/dist/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
  435. package/dist/persistence/env/EnvPersistenceFactory.js +3 -0
  436. package/dist/persistence/env/EnvPersistenceFactory.js.map +1 -0
  437. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
  438. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
  439. package/dist/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
  440. package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
  441. package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
  442. package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
  443. package/dist/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
  444. package/dist/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
  445. package/dist/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
  446. package/dist/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
  447. package/dist/persistence/env/EnvPersistenceFilesystem.js +132 -0
  448. package/dist/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
  449. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
  450. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
  451. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
  452. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
  453. package/dist/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
  454. package/dist/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
  455. package/dist/persistence/env/EnvPersistenceSqlite.js +54 -0
  456. package/dist/persistence/env/EnvPersistenceSqlite.js.map +1 -0
  457. package/dist/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
  458. package/dist/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
  459. package/dist/persistence/env/EnvPersistenceSupabase.js +60 -0
  460. package/dist/persistence/env/EnvPersistenceSupabase.js.map +1 -0
  461. package/dist/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
  462. package/dist/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
  463. package/dist/persistence/env/EnvPersistenceVolatile.js +31 -0
  464. package/dist/persistence/env/EnvPersistenceVolatile.js.map +1 -0
  465. package/dist/persistence/flows/FlowsPersistence.d.ts +87 -0
  466. package/dist/persistence/flows/FlowsPersistence.d.ts.map +1 -0
  467. package/dist/persistence/flows/FlowsPersistence.js +3 -0
  468. package/dist/persistence/flows/FlowsPersistence.js.map +1 -0
  469. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
  470. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
  471. package/dist/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
  472. package/dist/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
  473. package/dist/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
  474. package/dist/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
  475. package/dist/persistence/flows/FlowsPersistenceFactory.js +3 -0
  476. package/dist/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
  477. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
  478. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
  479. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
  480. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
  481. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
  482. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
  483. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
  484. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
  485. package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
  486. package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
  487. package/dist/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
  488. package/dist/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
  489. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
  490. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
  491. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
  492. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
  493. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
  494. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
  495. package/dist/persistence/flows/FlowsPersistenceSqlite.js +259 -0
  496. package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
  497. package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
  498. package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
  499. package/dist/persistence/flows/FlowsPersistenceSupabase.js +218 -0
  500. package/dist/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
  501. package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
  502. package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
  503. package/dist/persistence/flows/FlowsPersistenceVolatile.js +151 -0
  504. package/dist/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
  505. package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
  506. package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
  507. package/dist/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
  508. package/dist/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
  509. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
  510. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
  511. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
  512. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
  513. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
  514. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
  515. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
  516. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
  517. package/dist/playwrightTestExtensions.d.ts.map +1 -1
  518. package/dist/playwrightTestExtensions.js +31 -10
  519. package/dist/playwrightTestExtensions.js.map +1 -1
  520. package/dist/tools/GoToWebpageTool.d.ts.map +1 -1
  521. package/dist/tools/GoToWebpageTool.js +3 -2
  522. package/dist/tools/GoToWebpageTool.js.map +1 -1
  523. package/dist/utils/TemplateInterpolator.d.ts +47 -0
  524. package/dist/utils/TemplateInterpolator.d.ts.map +1 -0
  525. package/dist/utils/TemplateInterpolator.js +352 -0
  526. package/dist/utils/TemplateInterpolator.js.map +1 -0
  527. package/package.json +3 -1
@@ -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("./fixtures/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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../src/lib/testExtension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import type { Page } from '@playwright/test';
2
+ import { ToolCallResult } from '../models/ToolCallResult';
3
+ import { GptClient } from '../clients/GptClient';
4
+ import { LanguageModel } from 'ai';
5
+ import { AnalyzePageTextToolCoreParameters } from '../tools/AnalyzePageTextTool';
6
+ import { JSONSchema7 } from 'json-schema';
7
+ import { FlowMetadata } from '../models/FlowMetadata';
8
+ import { AssertPageTextToolCoreParameters } from '../tools/AssertPageTextTool';
9
+ import { AssertToolCoreParameters } from '../tools/AssertTool';
10
+ import { SelectorBasedChooseSelectOptionToolParameters } from '../tools/ChooseSelectOptionTool';
11
+ import { SelectorBasedClickToolParameters } from '../tools/ClickTool';
12
+ import { SelectorBasedHoverOverElementToolParameters } from '../tools/HoverOverElementTool';
13
+ import { SelectorBasedInputRandomizedEmailAddressToolParameters } from '../tools/InputRandomizedEmailAddressTool';
14
+ import { SelectorBasedInputTextToolParameters } from '../tools/InputTextTool';
15
+ import { SelectorBasedPressKeyToolParameters } from '../tools/PressKeyTool';
16
+ import { ScrollPageToolCoreParameters } from '../tools/ScrollPageTool';
17
+ /**
18
+ * Extends the Page object with additional test-related methods.
19
+ */
20
+ export interface DonobuExtendedPage extends Page {
21
+ /**
22
+ * Run an arbitrary Donobu tool by name.
23
+ */
24
+ run(toolName: string, toolParams?: any, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
25
+ /**
26
+ * Run an analysis on the current webpage's full raw text. Note that since this runs an analysis on the raw text,
27
+ * rather than, the HTML of the page, the raw text may be a bit jumbled, have its styling lost, careful
28
+ * positioning lost, etc. This tool is useful if there happens to be a lot of text on a page, and it would be
29
+ * tedious to scroll through the entirety of the page in order to get enough context to run an analysis.
30
+ *
31
+ * If there is context relevant to running the analysis that would not be found in the webpage text itself,
32
+ * perhaps context given in another message, prompt, overall object, etc, then provide it in the
33
+ * "additionalRelevantContext" parameter.
34
+ */
35
+ analyzePageText(params: AnalyzePageTextToolCoreParameters, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
36
+ /**
37
+ * Assert that given text is visible in the current page.
38
+ */
39
+ assertPageText(params: AssertPageTextToolCoreParameters, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
40
+ /**
41
+ * Checks all of the pages in the current browser context and returns the one
42
+ * matching the given URL.
43
+ */
44
+ changeTab(url: string): Promise<Page>;
45
+ /**
46
+ * Choose <option> values for a particular <select> HTML element.
47
+ */
48
+ chooseSelectOption(params: SelectorBasedChooseSelectOptionToolParameters): Promise<ToolCallResult>;
49
+ /**
50
+ * Click an element on a webpage.
51
+ */
52
+ clickElement(params: SelectorBasedClickToolParameters): Promise<ToolCallResult>;
53
+ /**
54
+ * Perform an analysis of the cookies for the current web browsing session.
55
+ */
56
+ createCookieReport(gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
57
+ /**
58
+ * Return an object conforming to the given JSON-schema. The object will be
59
+ * generated considering the following:
60
+ * - The given instruction (if any).
61
+ * - A screenshot of the current state of the page.
62
+ * - The history of actions taken on the page.
63
+ */
64
+ extract(params: {
65
+ instruction?: string;
66
+ schema: JSONSchema7;
67
+ }, gptClientOverride?: GptClient | LanguageModel): Promise<Record<string, unknown>>;
68
+ /**
69
+ * Hover the mouse over a specified element on a webpage.
70
+ */
71
+ hoverOverElement(params: SelectorBasedHoverOverElementToolParameters): Promise<ToolCallResult>;
72
+ /**
73
+ * Create a new randomized email address based on a given email and inputs it to a specific input text field.
74
+ * For example if passed "foo@gmail.com", this tool will create "foo+SOMETHING_RANDOM@gmail.com", where
75
+ * SOMETHING_RANDOM is a random string of characters safe for use in an email address, and input it in the
76
+ * specified text field.
77
+ */
78
+ inputRandomizedEmailAddress(params: SelectorBasedInputRandomizedEmailAddressToolParameters): Promise<ToolCallResult>;
79
+ /**
80
+ * Input text to a webpage's text input box.
81
+ */
82
+ inputText(params: SelectorBasedInputTextToolParameters): Promise<ToolCallResult>;
83
+ /**
84
+ * Press a single key. Note that if there is existing text in the element, it is appended rather than cleared.
85
+ *
86
+ * Generally, prefer using the 'inputText' tool instead as it automatically clears existing text
87
+ * and it allows the input of multiple characters at a time. The only advantage this tool has is
88
+ * that it allows the passing of control keys like "Tab", "Backspace", etc.
89
+ */
90
+ pressKey(params: SelectorBasedPressKeyToolParameters): Promise<ToolCallResult>;
91
+ /**
92
+ * Run an web accessibility (i.e. axe-core) test on the current webpage.
93
+ */
94
+ runAccessibilityTest(): Promise<ToolCallResult>;
95
+ /**
96
+ * Scroll the current page up or down by one viewport.
97
+ */
98
+ scroll(params: ScrollPageToolCoreParameters): Promise<ToolCallResult>;
99
+ /**
100
+ * Visually assert that a given condition (i.e. the 'assertionToTestFor' field) holds true, using a screenshot of
101
+ * the current webpage.
102
+ */
103
+ visuallyAssert(params: AssertToolCoreParameters, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
104
+ _donobuFlowMetadata: FlowMetadata;
105
+ }
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { DonobuStack } from '../../managers/DonobuStack';
2
+ /**
3
+ * Creates a snapshot of process.env as a Record<string, string>
4
+ */
5
+ export declare function getEnvSnapshot(): Record<string, string>;
6
+ export declare function getOrCreateDonobuStack(): Promise<DonobuStack>;
7
+ //# sourceMappingURL=donobuTestStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"donobuTestStack.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/donobuTestStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,4BAA4B,CAAC;AAO3E;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUvD;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAWnE"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEnvSnapshot = getEnvSnapshot;
4
+ exports.getOrCreateDonobuStack = getOrCreateDonobuStack;
5
+ const DonobuStack_1 = require("../../managers/DonobuStack");
6
+ const RequestContextHolder_1 = require("../../managers/RequestContextHolder");
7
+ const EnvPersistenceVolatile_1 = require("../../persistence/env/EnvPersistenceVolatile");
8
+ const DonobuDeploymentEnvironment_1 = require("../../models/DonobuDeploymentEnvironment");
9
+ let donobuStack = undefined;
10
+ /**
11
+ * Creates a snapshot of process.env as a Record<string, string>
12
+ */
13
+ function getEnvSnapshot() {
14
+ const envRecord = {};
15
+ Object.entries(process.env).forEach(([key, value]) => {
16
+ if (value !== undefined) {
17
+ envRecord[key] = value;
18
+ }
19
+ });
20
+ return envRecord;
21
+ }
22
+ async function getOrCreateDonobuStack() {
23
+ if (!donobuStack) {
24
+ donobuStack = await (0, DonobuStack_1.setupDonobuStack)(DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL, new RequestContextHolder_1.RequestContextHolder(), new EnvPersistenceVolatile_1.EnvPersistenceVolatile(getEnvSnapshot()));
25
+ return donobuStack;
26
+ }
27
+ else {
28
+ return donobuStack;
29
+ }
30
+ }
31
+ //# sourceMappingURL=donobuTestStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"donobuTestStack.js","sourceRoot":"","sources":["../../../../src/lib/utils/donobuTestStack.ts"],"names":[],"mappings":";;AAUA,wCAUC;AAED,wDAWC;AAjCD,4DAA2E;AAC3E,8EAA2E;AAC3E,yFAAsF;AACtF,0FAAuF;AAEvF,IAAI,WAAW,GAA4B,SAAS,CAAC;AAErD;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,IAAA,8BAAgB,EAClC,yDAA2B,CAAC,KAAK,EACjC,IAAI,2CAAoB,EAAE,EAC1B,IAAI,+CAAsB,CAAC,cAAc,EAAE,CAAC,CAC7C,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { TestInfo } from '@playwright/test';
2
+ import { FlowMetadata } from '../../models/FlowMetadata';
3
+ import { GptClient } from '../../clients/GptClient';
4
+ /**
5
+ * Self-heals a test that has failed by creating and running a new autonomous
6
+ * flow using the same objective of the failed test. If the new flow is
7
+ * successful, it uses the TestFileUpdater to update the specific failed test case
8
+ * in the original test file.
9
+ *
10
+ * @param testInfo The test information object that contains the failed test's
11
+ * annotations and other metadata.
12
+ * @param donobuFlowMetadata The metadata of the flow that is being self-healed.
13
+ */
14
+ export declare function selfHeal(gptClient: GptClient, testInfo: TestInfo, donobuFlowMetadata: FlowMetadata): Promise<void>;
15
+ //# sourceMappingURL=selfHealing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfHealing.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/selfHealing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,YAAY,GAC/B,OAAO,CAAC,IAAI,CAAC,CAqGf"}