donobu 2.23.0 → 2.23.2

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 (371) hide show
  1. package/dist/apis/FlowsApi.d.ts +1 -1
  2. package/dist/apis/FlowsApi.js +1 -1
  3. package/dist/apis/SpecialFlowsApi.js +5 -5
  4. package/dist/apis/SpecialFlowsApi.js.map +1 -1
  5. package/dist/assets/control-panel.js +1 -1
  6. package/dist/assets/generated/version +1 -1
  7. package/dist/assets/playwright-json-to-markdown.js +44 -16
  8. package/dist/esm/apis/FlowsApi.d.ts +1 -1
  9. package/dist/esm/apis/FlowsApi.js +1 -1
  10. package/dist/esm/apis/SpecialFlowsApi.js +5 -5
  11. package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
  12. package/dist/esm/assets/control-panel.js +1 -1
  13. package/dist/esm/assets/generated/version +1 -1
  14. package/dist/esm/assets/playwright-json-to-markdown.js +44 -16
  15. package/dist/esm/lib/testExtension.d.ts.map +1 -1
  16. package/dist/esm/lib/testExtension.js +2 -4
  17. package/dist/esm/lib/testExtension.js.map +1 -1
  18. package/dist/esm/lib/utils/SelfHealingDebugReporter.d.ts +69 -0
  19. package/dist/esm/lib/utils/SelfHealingDebugReporter.d.ts.map +1 -0
  20. package/dist/esm/lib/utils/SelfHealingDebugReporter.js +486 -0
  21. package/dist/esm/lib/utils/SelfHealingDebugReporter.js.map +1 -0
  22. package/dist/esm/lib/utils/SelfHealingTestUtils.d.ts +55 -0
  23. package/dist/esm/lib/utils/SelfHealingTestUtils.d.ts.map +1 -0
  24. package/dist/esm/lib/utils/SelfHealingTestUtils.js +335 -0
  25. package/dist/esm/lib/utils/SelfHealingTestUtils.js.map +1 -0
  26. package/dist/esm/lib/utils/VideoArtifactManager.d.ts +57 -0
  27. package/dist/esm/lib/utils/VideoArtifactManager.d.ts.map +1 -0
  28. package/dist/esm/lib/utils/VideoArtifactManager.js +343 -0
  29. package/dist/esm/lib/utils/VideoArtifactManager.js.map +1 -0
  30. package/dist/esm/lib/utils/selfHealing.js +1 -1
  31. package/dist/esm/lib/utils/selfHealing.js.map +1 -1
  32. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  33. package/dist/esm/managers/DonobuFlow.js +11 -12
  34. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  35. package/dist/esm/managers/DonobuFlowsManager.d.ts +1 -1
  36. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  37. package/dist/esm/managers/DonobuFlowsManager.js +11 -7
  38. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  39. package/dist/esm/models/CreateDonobuFlow.d.ts +5 -6
  40. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  41. package/dist/esm/models/CreateDonobuFlow.js +4 -2
  42. package/dist/esm/models/CreateDonobuFlow.js.map +1 -1
  43. package/dist/esm/models/FlowMetadata.d.ts +3 -6
  44. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  45. package/dist/esm/models/FlowMetadata.js +3 -5
  46. package/dist/esm/models/FlowMetadata.js.map +1 -1
  47. package/dist/esm/persistence/DonobuSqliteDb.d.ts.map +1 -1
  48. package/dist/esm/persistence/DonobuSqliteDb.js +42 -0
  49. package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
  50. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  51. package/dist/esm/tools/ReplayableInteraction.js +1 -3
  52. package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
  53. package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +14 -16
  54. package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
  55. package/dist/lib/testExtension.d.ts.map +1 -1
  56. package/dist/lib/testExtension.js +2 -4
  57. package/dist/lib/testExtension.js.map +1 -1
  58. package/dist/lib/utils/SelfHealingDebugReporter.d.ts +69 -0
  59. package/dist/lib/utils/SelfHealingDebugReporter.d.ts.map +1 -0
  60. package/dist/lib/utils/SelfHealingDebugReporter.js +486 -0
  61. package/dist/lib/utils/SelfHealingDebugReporter.js.map +1 -0
  62. package/dist/lib/utils/SelfHealingTestUtils.d.ts +55 -0
  63. package/dist/lib/utils/SelfHealingTestUtils.d.ts.map +1 -0
  64. package/dist/lib/utils/SelfHealingTestUtils.js +335 -0
  65. package/dist/lib/utils/SelfHealingTestUtils.js.map +1 -0
  66. package/dist/lib/utils/VideoArtifactManager.d.ts +57 -0
  67. package/dist/lib/utils/VideoArtifactManager.d.ts.map +1 -0
  68. package/dist/lib/utils/VideoArtifactManager.js +343 -0
  69. package/dist/lib/utils/VideoArtifactManager.js.map +1 -0
  70. package/dist/lib/utils/selfHealing.js +1 -1
  71. package/dist/lib/utils/selfHealing.js.map +1 -1
  72. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  73. package/dist/managers/DonobuFlow.js +11 -12
  74. package/dist/managers/DonobuFlow.js.map +1 -1
  75. package/dist/managers/DonobuFlowsManager.d.ts +1 -1
  76. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  77. package/dist/managers/DonobuFlowsManager.js +11 -7
  78. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  79. package/dist/models/CreateDonobuFlow.d.ts +5 -6
  80. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  81. package/dist/models/CreateDonobuFlow.js +4 -2
  82. package/dist/models/CreateDonobuFlow.js.map +1 -1
  83. package/dist/models/FlowMetadata.d.ts +3 -6
  84. package/dist/models/FlowMetadata.d.ts.map +1 -1
  85. package/dist/models/FlowMetadata.js +3 -5
  86. package/dist/models/FlowMetadata.js.map +1 -1
  87. package/dist/persistence/DonobuSqliteDb.d.ts.map +1 -1
  88. package/dist/persistence/DonobuSqliteDb.js +42 -0
  89. package/dist/persistence/DonobuSqliteDb.js.map +1 -1
  90. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  91. package/dist/tools/ReplayableInteraction.js +1 -3
  92. package/dist/tools/ReplayableInteraction.js.map +1 -1
  93. package/dist/tools/TriggerDonobuFlowTool.d.ts +14 -16
  94. package/dist/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
  95. package/package.json +1 -1
  96. package/dist/apis/EnvironmentDataApi.d.ts +0 -26
  97. package/dist/apis/EnvironmentDataApi.d.ts.map +0 -1
  98. package/dist/apis/EnvironmentDataApi.js +0 -59
  99. package/dist/apis/EnvironmentDataApi.js.map +0 -1
  100. package/dist/assets/donobu-virtual-mouse.svg +0 -11
  101. package/dist/assets/donobu.css +0 -62
  102. package/dist/assets/generated/parameter-schemas.json +0 -2241
  103. package/dist/assets/record.umd.min.cjs +0 -10399
  104. package/dist/bindings/FocusPage.d.ts +0 -23
  105. package/dist/bindings/FocusPage.d.ts.map +0 -1
  106. package/dist/bindings/FocusPage.js +0 -20
  107. package/dist/bindings/FocusPage.js.map +0 -1
  108. package/dist/bindings/ToggleDonobuAnnotations.d.ts +0 -21
  109. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
  110. package/dist/bindings/ToggleDonobuAnnotations.js +0 -51
  111. package/dist/bindings/ToggleDonobuAnnotations.js.map +0 -1
  112. package/dist/esm/apis/EnvironmentDataApi.d.ts +0 -26
  113. package/dist/esm/apis/EnvironmentDataApi.d.ts.map +0 -1
  114. package/dist/esm/apis/EnvironmentDataApi.js +0 -59
  115. package/dist/esm/apis/EnvironmentDataApi.js.map +0 -1
  116. package/dist/esm/assets/donobu-virtual-mouse.svg +0 -11
  117. package/dist/esm/assets/donobu.css +0 -62
  118. package/dist/esm/assets/generated/parameter-schemas.json +0 -2241
  119. package/dist/esm/assets/record.umd.min.cjs +0 -10399
  120. package/dist/esm/bindings/FocusPage.d.ts +0 -23
  121. package/dist/esm/bindings/FocusPage.d.ts.map +0 -1
  122. package/dist/esm/bindings/FocusPage.js +0 -20
  123. package/dist/esm/bindings/FocusPage.js.map +0 -1
  124. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +0 -21
  125. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
  126. package/dist/esm/bindings/ToggleDonobuAnnotations.js +0 -51
  127. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +0 -1
  128. package/dist/esm/lib/constants.d.ts +0 -8
  129. package/dist/esm/lib/constants.d.ts.map +0 -1
  130. package/dist/esm/lib/constants.js +0 -14
  131. package/dist/esm/lib/constants.js.map +0 -1
  132. package/dist/esm/lib/fixtures/testExtension.d.ts +0 -10
  133. package/dist/esm/lib/fixtures/testExtension.d.ts.map +0 -1
  134. package/dist/esm/lib/fixtures/testExtension.js +0 -383
  135. package/dist/esm/lib/fixtures/testExtension.js.map +0 -1
  136. package/dist/esm/lib/types.d.ts +0 -106
  137. package/dist/esm/lib/types.d.ts.map +0 -1
  138. package/dist/esm/lib/types.js +0 -3
  139. package/dist/esm/lib/types.js.map +0 -1
  140. package/dist/esm/managers/EnvironmentDataManager.d.ts +0 -58
  141. package/dist/esm/managers/EnvironmentDataManager.d.ts.map +0 -1
  142. package/dist/esm/managers/EnvironmentDataManager.js +0 -134
  143. package/dist/esm/managers/EnvironmentDataManager.js.map +0 -1
  144. package/dist/esm/managers/ProjectStructureGenerator.d.ts +0 -62
  145. package/dist/esm/managers/ProjectStructureGenerator.d.ts.map +0 -1
  146. package/dist/esm/managers/ProjectStructureGenerator.js +0 -234
  147. package/dist/esm/managers/ProjectStructureGenerator.js.map +0 -1
  148. package/dist/esm/managers/TestFileUpdater.d.ts +0 -56
  149. package/dist/esm/managers/TestFileUpdater.d.ts.map +0 -1
  150. package/dist/esm/managers/TestFileUpdater.js +0 -224
  151. package/dist/esm/managers/TestFileUpdater.js.map +0 -1
  152. package/dist/esm/models/AskAiRequest.d.ts +0 -15
  153. package/dist/esm/models/AskAiRequest.d.ts.map +0 -1
  154. package/dist/esm/models/AskAiRequest.js +0 -3
  155. package/dist/esm/models/AskAiRequest.js.map +0 -1
  156. package/dist/esm/models/BaseToolGptParameters.d.ts +0 -10
  157. package/dist/esm/models/BaseToolGptParameters.d.ts.map +0 -1
  158. package/dist/esm/models/BaseToolGptParameters.js +0 -3
  159. package/dist/esm/models/BaseToolGptParameters.js.map +0 -1
  160. package/dist/esm/models/BrowserFramework.d.ts +0 -61
  161. package/dist/esm/models/BrowserFramework.d.ts.map +0 -1
  162. package/dist/esm/models/BrowserFramework.js +0 -339
  163. package/dist/esm/models/BrowserFramework.js.map +0 -1
  164. package/dist/esm/models/EnvironmentDatum.d.ts +0 -54
  165. package/dist/esm/models/EnvironmentDatum.d.ts.map +0 -1
  166. package/dist/esm/models/EnvironmentDatum.js +0 -57
  167. package/dist/esm/models/EnvironmentDatum.js.map +0 -1
  168. package/dist/esm/models/FlowsQuery.d.ts +0 -12
  169. package/dist/esm/models/FlowsQuery.d.ts.map +0 -1
  170. package/dist/esm/models/FlowsQuery.js +0 -3
  171. package/dist/esm/models/FlowsQuery.js.map +0 -1
  172. package/dist/esm/persistence/AgentsPersistence.d.ts +0 -12
  173. package/dist/esm/persistence/AgentsPersistence.d.ts.map +0 -1
  174. package/dist/esm/persistence/AgentsPersistence.js +0 -3
  175. package/dist/esm/persistence/AgentsPersistence.js.map +0 -1
  176. package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts +0 -15
  177. package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
  178. package/dist/esm/persistence/AgentsPersistenceSqlite.js +0 -50
  179. package/dist/esm/persistence/AgentsPersistenceSqlite.js.map +0 -1
  180. package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts +0 -14
  181. package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
  182. package/dist/esm/persistence/AgentsPersistenceVolatile.js +0 -26
  183. package/dist/esm/persistence/AgentsPersistenceVolatile.js.map +0 -1
  184. package/dist/esm/persistence/FlowsPersistence.d.ts +0 -104
  185. package/dist/esm/persistence/FlowsPersistence.d.ts.map +0 -1
  186. package/dist/esm/persistence/FlowsPersistence.js +0 -3
  187. package/dist/esm/persistence/FlowsPersistence.js.map +0 -1
  188. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
  189. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
  190. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +0 -525
  191. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +0 -1
  192. package/dist/esm/persistence/FlowsPersistenceFactory.d.ts +0 -10
  193. package/dist/esm/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
  194. package/dist/esm/persistence/FlowsPersistenceFactory.js +0 -3
  195. package/dist/esm/persistence/FlowsPersistenceFactory.js.map +0 -1
  196. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
  197. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
  198. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +0 -235
  199. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
  200. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
  201. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
  202. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js +0 -24
  203. package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
  204. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
  205. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
  206. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +0 -381
  207. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +0 -1
  208. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
  209. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  210. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
  211. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  212. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +0 -44
  213. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
  214. package/dist/esm/persistence/FlowsPersistenceSqlite.js +0 -264
  215. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +0 -1
  216. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +0 -44
  217. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
  218. package/dist/esm/persistence/FlowsPersistenceSupabase.js +0 -262
  219. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +0 -1
  220. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +0 -41
  221. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
  222. package/dist/esm/persistence/FlowsPersistenceVolatile.js +0 -171
  223. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +0 -1
  224. package/dist/esm/persistence/GptConfigsPersistence.d.ts +0 -12
  225. package/dist/esm/persistence/GptConfigsPersistence.d.ts.map +0 -1
  226. package/dist/esm/persistence/GptConfigsPersistence.js +0 -3
  227. package/dist/esm/persistence/GptConfigsPersistence.js.map +0 -1
  228. package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
  229. package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
  230. package/dist/esm/persistence/GptConfigsPersistenceSqlite.js +0 -35
  231. package/dist/esm/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
  232. package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
  233. package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
  234. package/dist/esm/persistence/GptConfigsPersistenceVolatile.js +0 -31
  235. package/dist/esm/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
  236. package/dist/esm/playwrightTestExtensions.d.ts +0 -155
  237. package/dist/esm/playwrightTestExtensions.d.ts.map +0 -1
  238. package/dist/esm/playwrightTestExtensions.js +0 -688
  239. package/dist/esm/playwrightTestExtensions.js.map +0 -1
  240. package/dist/esm/utils/ToolsPluginsLoader.d.ts +0 -52
  241. package/dist/esm/utils/ToolsPluginsLoader.d.ts.map +0 -1
  242. package/dist/esm/utils/ToolsPluginsLoader.js +0 -301
  243. package/dist/esm/utils/ToolsPluginsLoader.js.map +0 -1
  244. package/dist/lib/autoTest.d.ts +0 -2
  245. package/dist/lib/autoTest.d.ts.map +0 -1
  246. package/dist/lib/autoTest.js +0 -17
  247. package/dist/lib/autoTest.js.map +0 -1
  248. package/dist/lib/constants.d.ts +0 -8
  249. package/dist/lib/constants.d.ts.map +0 -1
  250. package/dist/lib/constants.js +0 -14
  251. package/dist/lib/constants.js.map +0 -1
  252. package/dist/lib/fixtures/testExtension.d.ts +0 -10
  253. package/dist/lib/fixtures/testExtension.d.ts.map +0 -1
  254. package/dist/lib/fixtures/testExtension.js +0 -383
  255. package/dist/lib/fixtures/testExtension.js.map +0 -1
  256. package/dist/lib/types.d.ts +0 -106
  257. package/dist/lib/types.d.ts.map +0 -1
  258. package/dist/lib/types.js +0 -3
  259. package/dist/lib/types.js.map +0 -1
  260. package/dist/managers/EnvironmentDataManager.d.ts +0 -58
  261. package/dist/managers/EnvironmentDataManager.d.ts.map +0 -1
  262. package/dist/managers/EnvironmentDataManager.js +0 -134
  263. package/dist/managers/EnvironmentDataManager.js.map +0 -1
  264. package/dist/managers/ProjectStructureGenerator.d.ts +0 -62
  265. package/dist/managers/ProjectStructureGenerator.d.ts.map +0 -1
  266. package/dist/managers/ProjectStructureGenerator.js +0 -234
  267. package/dist/managers/ProjectStructureGenerator.js.map +0 -1
  268. package/dist/managers/TestFileUpdater.d.ts +0 -56
  269. package/dist/managers/TestFileUpdater.d.ts.map +0 -1
  270. package/dist/managers/TestFileUpdater.js +0 -224
  271. package/dist/managers/TestFileUpdater.js.map +0 -1
  272. package/dist/models/AskAiRequest.d.ts +0 -15
  273. package/dist/models/AskAiRequest.d.ts.map +0 -1
  274. package/dist/models/AskAiRequest.js +0 -3
  275. package/dist/models/AskAiRequest.js.map +0 -1
  276. package/dist/models/BaseToolGptParameters.d.ts +0 -10
  277. package/dist/models/BaseToolGptParameters.d.ts.map +0 -1
  278. package/dist/models/BaseToolGptParameters.js +0 -3
  279. package/dist/models/BaseToolGptParameters.js.map +0 -1
  280. package/dist/models/BrowserFramework.d.ts +0 -51
  281. package/dist/models/BrowserFramework.d.ts.map +0 -1
  282. package/dist/models/BrowserFramework.js +0 -364
  283. package/dist/models/BrowserFramework.js.map +0 -1
  284. package/dist/models/EnvironmentDatum.d.ts +0 -54
  285. package/dist/models/EnvironmentDatum.d.ts.map +0 -1
  286. package/dist/models/EnvironmentDatum.js +0 -57
  287. package/dist/models/EnvironmentDatum.js.map +0 -1
  288. package/dist/models/FlowsQuery.d.ts +0 -12
  289. package/dist/models/FlowsQuery.d.ts.map +0 -1
  290. package/dist/models/FlowsQuery.js +0 -3
  291. package/dist/models/FlowsQuery.js.map +0 -1
  292. package/dist/persistence/AgentsPersistence.d.ts +0 -12
  293. package/dist/persistence/AgentsPersistence.d.ts.map +0 -1
  294. package/dist/persistence/AgentsPersistence.js +0 -3
  295. package/dist/persistence/AgentsPersistence.js.map +0 -1
  296. package/dist/persistence/AgentsPersistenceSqlite.d.ts +0 -15
  297. package/dist/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
  298. package/dist/persistence/AgentsPersistenceSqlite.js +0 -50
  299. package/dist/persistence/AgentsPersistenceSqlite.js.map +0 -1
  300. package/dist/persistence/AgentsPersistenceVolatile.d.ts +0 -14
  301. package/dist/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
  302. package/dist/persistence/AgentsPersistenceVolatile.js +0 -26
  303. package/dist/persistence/AgentsPersistenceVolatile.js.map +0 -1
  304. package/dist/persistence/FlowsPersistence.d.ts +0 -104
  305. package/dist/persistence/FlowsPersistence.d.ts.map +0 -1
  306. package/dist/persistence/FlowsPersistence.js +0 -3
  307. package/dist/persistence/FlowsPersistence.js.map +0 -1
  308. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
  309. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
  310. package/dist/persistence/FlowsPersistenceAwsS3.js +0 -525
  311. package/dist/persistence/FlowsPersistenceAwsS3.js.map +0 -1
  312. package/dist/persistence/FlowsPersistenceFactory.d.ts +0 -10
  313. package/dist/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
  314. package/dist/persistence/FlowsPersistenceFactory.js +0 -3
  315. package/dist/persistence/FlowsPersistenceFactory.js.map +0 -1
  316. package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
  317. package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
  318. package/dist/persistence/FlowsPersistenceFactoryImpl.js +0 -235
  319. package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
  320. package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
  321. package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
  322. package/dist/persistence/FlowsPersistenceFactoryPreset.js +0 -24
  323. package/dist/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
  324. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
  325. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
  326. package/dist/persistence/FlowsPersistenceFilesystem.js +0 -381
  327. package/dist/persistence/FlowsPersistenceFilesystem.js.map +0 -1
  328. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
  329. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
  330. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
  331. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
  332. package/dist/persistence/FlowsPersistenceSqlite.d.ts +0 -44
  333. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
  334. package/dist/persistence/FlowsPersistenceSqlite.js +0 -264
  335. package/dist/persistence/FlowsPersistenceSqlite.js.map +0 -1
  336. package/dist/persistence/FlowsPersistenceSupabase.d.ts +0 -44
  337. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
  338. package/dist/persistence/FlowsPersistenceSupabase.js +0 -262
  339. package/dist/persistence/FlowsPersistenceSupabase.js.map +0 -1
  340. package/dist/persistence/FlowsPersistenceVolatile.d.ts +0 -41
  341. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
  342. package/dist/persistence/FlowsPersistenceVolatile.js +0 -171
  343. package/dist/persistence/FlowsPersistenceVolatile.js.map +0 -1
  344. package/dist/persistence/GptConfigsPersistence.d.ts +0 -12
  345. package/dist/persistence/GptConfigsPersistence.d.ts.map +0 -1
  346. package/dist/persistence/GptConfigsPersistence.js +0 -3
  347. package/dist/persistence/GptConfigsPersistence.js.map +0 -1
  348. package/dist/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
  349. package/dist/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
  350. package/dist/persistence/GptConfigsPersistenceSqlite.js +0 -35
  351. package/dist/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
  352. package/dist/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
  353. package/dist/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
  354. package/dist/persistence/GptConfigsPersistenceVolatile.js +0 -31
  355. package/dist/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
  356. package/dist/playwrightTestExtensions.d.ts +0 -155
  357. package/dist/playwrightTestExtensions.d.ts.map +0 -1
  358. package/dist/playwrightTestExtensions.js +0 -688
  359. package/dist/playwrightTestExtensions.js.map +0 -1
  360. package/dist/tools/CreatePageObjectModel.d.ts +0 -16
  361. package/dist/tools/CreatePageObjectModel.d.ts.map +0 -1
  362. package/dist/tools/CreatePageObjectModel.js +0 -33
  363. package/dist/tools/CreatePageObjectModel.js.map +0 -1
  364. package/dist/utils/ToolsPluginsLoader.d.ts +0 -52
  365. package/dist/utils/ToolsPluginsLoader.d.ts.map +0 -1
  366. package/dist/utils/ToolsPluginsLoader.js +0 -301
  367. package/dist/utils/ToolsPluginsLoader.js.map +0 -1
  368. /package/dist/utils/{jsonSchemaUtils.d.ts → JsonSchemaUtils.d.ts} +0 -0
  369. /package/dist/utils/{jsonSchemaUtils.d.ts.map → JsonSchemaUtils.d.ts.map} +0 -0
  370. /package/dist/utils/{jsonSchemaUtils.js → JsonSchemaUtils.js} +0 -0
  371. /package/dist/utils/{jsonSchemaUtils.js.map → JsonSchemaUtils.js.map} +0 -0
@@ -0,0 +1,486 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelfHealingDebugReporter = void 0;
4
+ const Logger_1 = require("../../utils/Logger");
5
+ const donobuTestStack_1 = require("./donobuTestStack");
6
+ class SelfHealingDebugReporter {
7
+ /**
8
+ * Creates comprehensive debugging artifacts for a self-healing session
9
+ */
10
+ static async createDebugReport(testInfo, originalFlowMetadata, selfHealingFlowMetadata) {
11
+ try {
12
+ const donobu = await (0, donobuTestStack_1.getOrCreateDonobuStack)();
13
+ // Get tool calls from both flows
14
+ const originalToolCalls = await donobu.flowsManager.getToolCalls(originalFlowMetadata.id);
15
+ const selfHealingToolCalls = await donobu.flowsManager.getToolCalls(selfHealingFlowMetadata.id);
16
+ // Generate comparison analysis
17
+ const comparison = this.compareToolCalls(originalToolCalls, selfHealingToolCalls);
18
+ // Create detailed report
19
+ const reportContent = this.generateComparisonReport(originalFlowMetadata, selfHealingFlowMetadata, comparison, originalToolCalls, selfHealingToolCalls);
20
+ // Attach the comprehensive report
21
+ await testInfo.attach('self-healing-debug-report.html', {
22
+ body: reportContent,
23
+ contentType: 'text/html',
24
+ });
25
+ // Create metadata for linking artifacts
26
+ const metadata = {
27
+ originalFlowId: originalFlowMetadata.id,
28
+ selfHealingFlowId: selfHealingFlowMetadata.id,
29
+ testName: testInfo.title,
30
+ failureReason: this.extractFailureReason(originalToolCalls),
31
+ healingSuccess: selfHealingFlowMetadata.state === 'SUCCESS',
32
+ timestamp: Date.now(),
33
+ };
34
+ // Attach linking metadata
35
+ await testInfo.attach('self-healing-metadata.json', {
36
+ body: JSON.stringify(metadata, null, 2),
37
+ contentType: 'application/json',
38
+ });
39
+ // Create summary for quick reference
40
+ const summary = this.generateSummary(comparison, metadata);
41
+ await testInfo.attach('self-healing-summary.md', {
42
+ body: summary,
43
+ contentType: 'text/markdown',
44
+ });
45
+ Logger_1.appLogger.info('Self-healing debug report created successfully');
46
+ return {
47
+ comparisonReportPath: 'self-healing-debug-report.html',
48
+ originalToolCalls,
49
+ selfHealingToolCalls,
50
+ metadata,
51
+ };
52
+ }
53
+ catch (error) {
54
+ Logger_1.appLogger.error('Failed to create self-healing debug report:', error);
55
+ throw error;
56
+ }
57
+ }
58
+ /**
59
+ * Compares tool calls between original and self-healing flows
60
+ */
61
+ static compareToolCalls(originalCalls, selfHealingCalls) {
62
+ const comparisons = [];
63
+ const maxLength = Math.max(originalCalls.length, selfHealingCalls.length);
64
+ for (let i = 0; i < maxLength; i++) {
65
+ const original = originalCalls[i];
66
+ const selfHealing = selfHealingCalls[i];
67
+ if (!original && selfHealing) {
68
+ // Added in self-healing
69
+ comparisons.push({
70
+ index: i,
71
+ selfHealing,
72
+ status: 'added',
73
+ videoTimestamps: {
74
+ selfHealing: this.estimateVideoTimestamp(selfHealing, selfHealingCalls),
75
+ },
76
+ });
77
+ }
78
+ else if (original && !selfHealing) {
79
+ // Removed in self-healing
80
+ comparisons.push({
81
+ index: i,
82
+ original,
83
+ status: 'removed',
84
+ videoTimestamps: {
85
+ original: this.estimateVideoTimestamp(original, originalCalls),
86
+ },
87
+ });
88
+ }
89
+ else if (original && selfHealing) {
90
+ // Compare existing calls
91
+ const comparison = this.compareIndividualToolCalls(original, selfHealing);
92
+ comparison.index = i;
93
+ comparison.videoTimestamps = {
94
+ original: this.estimateVideoTimestamp(original, originalCalls),
95
+ selfHealing: this.estimateVideoTimestamp(selfHealing, selfHealingCalls),
96
+ };
97
+ comparisons.push(comparison);
98
+ }
99
+ }
100
+ return comparisons;
101
+ }
102
+ /**
103
+ * Compares two individual tool calls
104
+ */
105
+ static compareIndividualToolCalls(original, selfHealing) {
106
+ const differences = [];
107
+ // Compare tool names
108
+ if (original.toolName !== selfHealing.toolName) {
109
+ differences.push(`Tool: ${original.toolName} → ${selfHealing.toolName}`);
110
+ }
111
+ // Compare success status
112
+ const originalSuccess = original.outcome.isSuccessful;
113
+ const healingSuccess = selfHealing.outcome.isSuccessful;
114
+ if (originalSuccess !== healingSuccess) {
115
+ differences.push(`Outcome: ${originalSuccess ? 'Success' : 'Failed'} → ${healingSuccess ? 'Success' : 'Failed'}`);
116
+ }
117
+ // Compare parameters (simplified)
118
+ const paramDiffs = this.compareParameters(original.parameters, selfHealing.parameters);
119
+ differences.push(...paramDiffs);
120
+ let status = 'identical';
121
+ if (differences.length > 0) {
122
+ if (original.toolName === selfHealing.toolName &&
123
+ differences.length === 1 &&
124
+ differences[0].startsWith('Outcome:')) {
125
+ status = 'failed_vs_success';
126
+ }
127
+ else {
128
+ status = 'modified';
129
+ }
130
+ }
131
+ return {
132
+ index: -1, // Will be set by caller
133
+ original,
134
+ selfHealing,
135
+ status,
136
+ differences: differences.length > 0 ? differences : undefined,
137
+ };
138
+ }
139
+ /**
140
+ * Compares parameters between two tool calls
141
+ */
142
+ static compareParameters(original, selfHealing) {
143
+ const differences = [];
144
+ const allKeys = new Set([
145
+ ...Object.keys(original),
146
+ ...Object.keys(selfHealing),
147
+ ]);
148
+ for (const key of allKeys) {
149
+ if (key === 'rationale')
150
+ continue; // Skip rationale differences
151
+ const origValue = original[key];
152
+ const healingValue = selfHealing[key];
153
+ if (JSON.stringify(origValue) !== JSON.stringify(healingValue)) {
154
+ if (origValue === undefined) {
155
+ differences.push(`Added ${key}: ${JSON.stringify(healingValue)}`);
156
+ }
157
+ else if (healingValue === undefined) {
158
+ differences.push(`Removed ${key}: ${JSON.stringify(origValue)}`);
159
+ }
160
+ else {
161
+ differences.push(`${key}: ${JSON.stringify(origValue)} → ${JSON.stringify(healingValue)}`);
162
+ }
163
+ }
164
+ }
165
+ return differences;
166
+ }
167
+ /**
168
+ * Estimates video timestamp for a tool call based on its position in the sequence
169
+ */
170
+ static estimateVideoTimestamp(toolCall, allCalls) {
171
+ const flowStart = allCalls[0]?.startedAt || toolCall.startedAt;
172
+ return Math.max(0, (toolCall.startedAt - flowStart) / 1000); // Convert to seconds
173
+ }
174
+ /**
175
+ * Extracts failure reason from the last failed tool call
176
+ */
177
+ static extractFailureReason(toolCalls) {
178
+ const failedCall = toolCalls
179
+ .reverse()
180
+ .find((call) => !call.outcome.isSuccessful);
181
+ return failedCall?.outcome.forLlm;
182
+ }
183
+ /**
184
+ * Generates HTML report with embedded styling and navigation
185
+ */
186
+ static generateComparisonReport(originalFlow, selfHealingFlow, comparisons, originalCalls, selfHealingCalls) {
187
+ const stats = this.calculateStats(comparisons);
188
+ return `
189
+ <!DOCTYPE html>
190
+ <html lang="en">
191
+ <head>
192
+ <meta charset="UTF-8">
193
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
194
+ <title>Self-Healing Debug Report</title>
195
+ <style>
196
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; margin: 0; padding: 20px; background: #f5f5f5; }
197
+ .container { max-width: 1200px; margin: 0 auto; background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
198
+ .header { background: #2c3e50; color: white; padding: 20px; border-radius: 8px 8px 0 0; }
199
+ .content { padding: 20px; }
200
+ .stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin: 20px 0; }
201
+ .stat-card { background: #f8f9fa; padding: 15px; border-radius: 6px; text-align: center; }
202
+ .stat-number { font-size: 24px; font-weight: bold; color: #2c3e50; }
203
+ .stat-label { color: #666; font-size: 14px; }
204
+ .comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 20px 0; }
205
+ .flow-column { background: #f8f9fa; padding: 15px; border-radius: 6px; }
206
+ .tool-call { background: white; margin: 10px 0; padding: 12px; border-radius: 4px; border-left: 4px solid #ddd; }
207
+ .tool-call.success { border-left-color: #27ae60; }
208
+ .tool-call.failed { border-left-color: #e74c3c; }
209
+ .tool-call.modified { border-left-color: #f39c12; }
210
+ .tool-call.added { border-left-color: #3498db; }
211
+ .tool-call.removed { border-left-color: #95a5a6; }
212
+ .tool-name { font-weight: bold; color: #2c3e50; }
213
+ .timestamp { font-size: 12px; color: #666; float: right; }
214
+ .differences { margin-top: 8px; font-size: 12px; color: #666; }
215
+ .difference { background: #fff3cd; padding: 4px 8px; margin: 2px 0; border-radius: 3px; }
216
+ .video-link { display: inline-block; background: #3498db; color: white; padding: 4px 8px; border-radius: 3px; text-decoration: none; font-size: 12px; margin-top: 5px; }
217
+ .video-link:hover { background: #2980b9; }
218
+ .metadata { background: #ecf0f1; padding: 15px; border-radius: 6px; margin: 20px 0; }
219
+ .success { color: #27ae60; }
220
+ .failed { color: #e74c3c; }
221
+ .summary { background: #e8f5e8; border: 1px solid #c3e6c3; padding: 15px; border-radius: 6px; margin: 20px 0; }
222
+ </style>
223
+ </head>
224
+ <body>
225
+ <div class="container">
226
+ <div class="header">
227
+ <h1>Self-Healing Debug Report</h1>
228
+ <p>Test: ${originalFlow.name || 'Unnamed Test'}</p>
229
+ <p>Generated: ${new Date().toLocaleString()}</p>
230
+ </div>
231
+
232
+ <div class="content">
233
+ ${this.generateSummarySection(originalFlow, selfHealingFlow, stats)}
234
+ ${this.generateStatsSection(stats)}
235
+ ${this.generateMetadataSection(originalFlow, selfHealingFlow)}
236
+ ${this.generateComparisonSection(comparisons)}
237
+ ${this.generateDetailedCallsSection(originalCalls, selfHealingCalls)}
238
+ </div>
239
+ </div>
240
+ </body>
241
+ </html>`;
242
+ }
243
+ static generateSummarySection(_originalFlow, selfHealingFlow, stats) {
244
+ const healingSuccess = selfHealingFlow.state === 'SUCCESS';
245
+ const statusClass = healingSuccess ? 'success' : 'failed';
246
+ const statusText = healingSuccess ? 'SUCCESSFUL' : 'FAILED';
247
+ return `
248
+ <div class="summary">
249
+ <h2>Summary</h2>
250
+ <p><strong>Self-Healing Status:</strong> <span class="${statusClass}">${statusText}</span></p>
251
+ <p><strong>Changes Made:</strong> ${stats.modified} modified actions, ${stats.added} added actions, ${stats.removed} removed actions</p>
252
+ <p><strong>Success Rate Improvement:</strong> ${stats.originalSuccessRate}% → ${stats.healingSuccessRate}%</p>
253
+ </div>`;
254
+ }
255
+ static generateStatsSection(stats) {
256
+ return `
257
+ <div class="stats">
258
+ <div class="stat-card">
259
+ <div class="stat-number">${stats.total}</div>
260
+ <div class="stat-label">Total Comparisons</div>
261
+ </div>
262
+ <div class="stat-card">
263
+ <div class="stat-number">${stats.identical}</div>
264
+ <div class="stat-label">Identical Actions</div>
265
+ </div>
266
+ <div class="stat-card">
267
+ <div class="stat-number">${stats.modified}</div>
268
+ <div class="stat-label">Modified Actions</div>
269
+ </div>
270
+ <div class="stat-card">
271
+ <div class="stat-number">${stats.added}</div>
272
+ <div class="stat-label">Added Actions</div>
273
+ </div>
274
+ <div class="stat-card">
275
+ <div class="stat-number">${stats.removed}</div>
276
+ <div class="stat-label">Removed Actions</div>
277
+ </div>
278
+ </div>`;
279
+ }
280
+ static generateMetadataSection(originalFlow, selfHealingFlow) {
281
+ return `
282
+ <div class="metadata">
283
+ <h3>Flow Metadata</h3>
284
+ <div class="comparison-grid">
285
+ <div>
286
+ <h4>Original Flow</h4>
287
+ <p><strong>ID:</strong> ${originalFlow.id}</p>
288
+ <p><strong>State:</strong> <span class="failed">${originalFlow.state}</span></p>
289
+ <p><strong>Duration:</strong> ${this.formatDuration(originalFlow.startedAt, originalFlow.completedAt)}</p>
290
+ <p><strong>Objective:</strong> ${originalFlow.overallObjective || 'N/A'}</p>
291
+ </div>
292
+ <div>
293
+ <h4>Self-Healing Flow</h4>
294
+ <p><strong>ID:</strong> ${selfHealingFlow.id}</p>
295
+ <p><strong>State:</strong> <span class="${selfHealingFlow.state === 'SUCCESS' ? 'success' : 'failed'}">${selfHealingFlow.state}</span></p>
296
+ <p><strong>Duration:</strong> ${this.formatDuration(selfHealingFlow.startedAt, selfHealingFlow.completedAt)}</p>
297
+ <p><strong>Token Usage:</strong> ${selfHealingFlow.inputTokensUsed + selfHealingFlow.completionTokensUsed} tokens</p>
298
+ </div>
299
+ </div>
300
+ </div>`;
301
+ }
302
+ static generateComparisonSection(comparisons) {
303
+ const rows = comparisons
304
+ .map((comp) => {
305
+ const statusClass = comp.status;
306
+ const originalTool = comp.original
307
+ ? `${comp.original.toolName} (${comp.original.outcome.isSuccessful ? 'success' : 'failed'})`
308
+ : '-';
309
+ const healingTool = comp.selfHealing
310
+ ? `${comp.selfHealing.toolName} (${comp.selfHealing.outcome.isSuccessful ? 'success' : 'failed'})`
311
+ : '-';
312
+ const differences = comp.differences
313
+ ? comp.differences
314
+ .map((d) => `<div class="difference">${d}</div>`)
315
+ .join('')
316
+ : '';
317
+ const originalTimestamp = comp.videoTimestamps?.original
318
+ ? `<a href="#" class="video-link" title="Jump to ${comp.videoTimestamps.original}s in original video">@${comp.videoTimestamps.original}s</a>`
319
+ : '';
320
+ const healingTimestamp = comp.videoTimestamps?.selfHealing
321
+ ? `<a href="#" class="video-link" title="Jump to ${comp.videoTimestamps.selfHealing}s in healing video">@${comp.videoTimestamps.selfHealing}s</a>`
322
+ : '';
323
+ return `
324
+ <tr class="${statusClass}">
325
+ <td>${comp.index + 1}</td>
326
+ <td>${originalTool} ${originalTimestamp}</td>
327
+ <td>${healingTool} ${healingTimestamp}</td>
328
+ <td>${comp.status.replace('_', ' ')}</td>
329
+ <td>${differences}</td>
330
+ </tr>`;
331
+ })
332
+ .join('');
333
+ return `
334
+ <h3>Action-by-Action Comparison</h3>
335
+ <table style="width: 100%; border-collapse: collapse; margin: 20px 0;">
336
+ <thead>
337
+ <tr style="background: #f8f9fa;">
338
+ <th style="padding: 10px; border: 1px solid #ddd; text-align: left;">#</th>
339
+ <th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Original Flow</th>
340
+ <th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Self-Healing Flow</th>
341
+ <th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Status</th>
342
+ <th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Differences</th>
343
+ </tr>
344
+ </thead>
345
+ <tbody>
346
+ ${rows}
347
+ </tbody>
348
+ </table>`;
349
+ }
350
+ static generateDetailedCallsSection(originalCalls, selfHealingCalls) {
351
+ const originalCallsHtml = originalCalls
352
+ .map((call, i) => this.formatToolCall(call, i))
353
+ .join('');
354
+ const healingCallsHtml = selfHealingCalls
355
+ .map((call, i) => this.formatToolCall(call, i))
356
+ .join('');
357
+ return `
358
+ <h3>Detailed Tool Calls</h3>
359
+ <div class="comparison-grid">
360
+ <div class="flow-column">
361
+ <h4>Original Flow (Failed)</h4>
362
+ ${originalCallsHtml}
363
+ </div>
364
+ <div class="flow-column">
365
+ <h4>Self-Healing Flow</h4>
366
+ ${healingCallsHtml}
367
+ </div>
368
+ </div>`;
369
+ }
370
+ static formatToolCall(call, index) {
371
+ const statusClass = call.outcome.isSuccessful ? 'success' : 'failed';
372
+ const duration = call.completedAt - call.startedAt;
373
+ return `
374
+ <div class="tool-call ${statusClass}">
375
+ <div class="tool-name">${index + 1}. ${call.toolName}</div>
376
+ <div class="timestamp">${duration}ms</div>
377
+ <div style="clear: both;"></div>
378
+ <div style="font-size: 12px; color: #666; margin-top: 5px;">
379
+ ${call.outcome.isSuccessful ? '✓ Success' : '✗ Failed'}: ${call.outcome.forLlm}
380
+ </div>
381
+ ${Object.keys(call.parameters).length > 0
382
+ ? `
383
+ <details style="margin-top: 8px;">
384
+ <summary style="cursor: pointer; font-size: 12px; color: #666;">Parameters</summary>
385
+ <pre style="background: #f8f9fa; padding: 8px; border-radius: 3px; font-size: 11px; overflow-x: auto;">${JSON.stringify(call.parameters, null, 2)}</pre>
386
+ </details>`
387
+ : ''}
388
+ </div>`;
389
+ }
390
+ static calculateStats(comparisons) {
391
+ const stats = {
392
+ total: comparisons.length,
393
+ identical: 0,
394
+ modified: 0,
395
+ added: 0,
396
+ removed: 0,
397
+ failedVsSuccess: 0,
398
+ originalSuccessRate: 0,
399
+ healingSuccessRate: 0,
400
+ };
401
+ let originalSuccesses = 0, originalTotal = 0;
402
+ let healingSuccesses = 0, healingTotal = 0;
403
+ comparisons.forEach((comp) => {
404
+ switch (comp.status) {
405
+ case 'identical':
406
+ stats.identical++;
407
+ break;
408
+ case 'modified':
409
+ stats.modified++;
410
+ break;
411
+ case 'added':
412
+ stats.added++;
413
+ break;
414
+ case 'removed':
415
+ stats.removed++;
416
+ break;
417
+ case 'failed_vs_success':
418
+ stats.failedVsSuccess++;
419
+ break;
420
+ }
421
+ if (comp.original) {
422
+ originalTotal++;
423
+ if (comp.original.outcome.isSuccessful)
424
+ originalSuccesses++;
425
+ }
426
+ if (comp.selfHealing) {
427
+ healingTotal++;
428
+ if (comp.selfHealing.outcome.isSuccessful)
429
+ healingSuccesses++;
430
+ }
431
+ });
432
+ stats.originalSuccessRate =
433
+ originalTotal > 0
434
+ ? Math.round((originalSuccesses / originalTotal) * 100)
435
+ : 0;
436
+ stats.healingSuccessRate =
437
+ healingTotal > 0
438
+ ? Math.round((healingSuccesses / healingTotal) * 100)
439
+ : 0;
440
+ return stats;
441
+ }
442
+ static formatDuration(start, end) {
443
+ if (!start || !end)
444
+ return 'N/A';
445
+ const duration = Math.round((end - start) / 1000);
446
+ return `${duration}s`;
447
+ }
448
+ static generateSummary(comparisons, metadata) {
449
+ const stats = this.calculateStats(comparisons);
450
+ return `# Self-Healing Debug Summary
451
+
452
+ ## Overview
453
+ - **Test**: ${metadata.testName}
454
+ - **Status**: ${metadata.healingSuccess ? '✅ SUCCESSFUL' : '❌ FAILED'}
455
+ - **Timestamp**: ${new Date(metadata.timestamp).toLocaleString()}
456
+
457
+ ## Quick Stats
458
+ - **Total Actions**: ${stats.total}
459
+ - **Identical**: ${stats.identical}
460
+ - **Modified**: ${stats.modified}
461
+ - **Added**: ${stats.added}
462
+ - **Removed**: ${stats.removed}
463
+
464
+ ## Success Rate Improvement
465
+ - **Original**: ${stats.originalSuccessRate}%
466
+ - **After Healing**: ${stats.healingSuccessRate}%
467
+
468
+ ## Key Changes
469
+ ${comparisons
470
+ .filter((c) => c.status !== 'identical')
471
+ .slice(0, 5)
472
+ .map((c) => `- Action ${c.index + 1}: ${c.status} - ${c.differences?.[0] || 'See detailed report'}`)
473
+ .join('\n')}
474
+
475
+ ## Related Artifacts
476
+ - \`self-healing-debug-report.html\` - Detailed comparison report
477
+ - \`self-healing-metadata.json\` - Technical metadata
478
+ - \`fixed-test.ts\` - Updated test code
479
+ - Video artifacts (if available)
480
+
481
+ ${metadata.failureReason ? `## Original Failure Reason\n${metadata.failureReason}` : ''}
482
+ `;
483
+ }
484
+ }
485
+ exports.SelfHealingDebugReporter = SelfHealingDebugReporter;
486
+ //# sourceMappingURL=SelfHealingDebugReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelfHealingDebugReporter.js","sourceRoot":"","sources":["../../../../src/lib/utils/SelfHealingDebugReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { TestInfo } from '@playwright/test';
2
+ export interface SelfHealingArtifactsSummary {
3
+ hasDebugReport: boolean;
4
+ hasVideoManifest: boolean;
5
+ hasFixedTest: boolean;
6
+ hasSummary: boolean;
7
+ videoCount: number;
8
+ debugReportPath?: string;
9
+ videoManifestPath?: string;
10
+ fixedTestPath?: string;
11
+ summaryPath?: string;
12
+ annotations: {
13
+ isHealed: boolean;
14
+ fileUpdated: boolean;
15
+ healingFailed: boolean;
16
+ errors: string[];
17
+ };
18
+ }
19
+ /**
20
+ * Utility functions for working with self-healing test artifacts
21
+ */
22
+ export declare class SelfHealingTestUtils {
23
+ /**
24
+ * Analyzes a test's artifacts to determine if it went through self-healing
25
+ * and what artifacts are available
26
+ */
27
+ static analyzeSelfHealingArtifacts(testInfo: TestInfo): SelfHealingArtifactsSummary;
28
+ /**
29
+ * Generates a quick start guide for analyzing self-healing results
30
+ */
31
+ static generateQuickStartGuide(summary: SelfHealingArtifactsSummary): string;
32
+ /**
33
+ * Extracts key insights from self-healing artifacts for CI/CD reporting
34
+ */
35
+ static extractInsightsForCI(summary: SelfHealingArtifactsSummary): {
36
+ status: 'healed' | 'failed' | 'not-attempted';
37
+ metrics: {
38
+ healingAttempted: boolean;
39
+ healingSuccessful: boolean;
40
+ fileUpdated: boolean;
41
+ videosAvailable: number;
42
+ hasDebugData: boolean;
43
+ };
44
+ recommendations: string[];
45
+ };
46
+ /**
47
+ * Creates a comprehensive test report that can be attached to the test
48
+ */
49
+ static createTestAnalysisReport(testInfo: TestInfo): Promise<void>;
50
+ /**
51
+ * Creates an SVG status badge for self-healing results
52
+ */
53
+ private static createStatusBadge;
54
+ }
55
+ //# sourceMappingURL=SelfHealingTestUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelfHealingTestUtils.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/SelfHealingTestUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QACX,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B;;;OAGG;WACW,2BAA2B,CACvC,QAAQ,EAAE,QAAQ,GACjB,2BAA2B;IAoE9B;;OAEG;WACW,uBAAuB,CACnC,OAAO,EAAE,2BAA2B,GACnC,MAAM;IAoIT;;OAEG;WACW,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG;QACxE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC;QAC9C,OAAO,EAAE;YACP,gBAAgB,EAAE,OAAO,CAAC;YAC1B,iBAAiB,EAAE,OAAO,CAAC;YAC3B,WAAW,EAAE,OAAO,CAAC;YACrB,eAAe,EAAE,MAAM,CAAC;YACxB,YAAY,EAAE,OAAO,CAAC;SACvB,CAAC;QACF,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B;IAkDD;;OAEG;WACiB,wBAAwB,CAC1C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC;IA4ChB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAoBjC"}