donobu 2.16.0 → 2.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) 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 +51 -37
  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 +51 -37
  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/InteractionVisualizer.d.ts +8 -30
  105. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  106. package/dist/esm/managers/InteractionVisualizer.js +132 -204
  107. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  108. package/dist/esm/managers/PageInspector.d.ts +0 -1
  109. package/dist/esm/managers/PageInspector.d.ts.map +1 -1
  110. package/dist/esm/managers/PageInspector.js +59 -58
  111. package/dist/esm/managers/PageInspector.js.map +1 -1
  112. package/dist/esm/managers/ToolManager.d.ts +10 -0
  113. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  114. package/dist/esm/managers/ToolManager.js +46 -3
  115. package/dist/esm/managers/ToolManager.js.map +1 -1
  116. package/dist/esm/models/BrowserConfig.d.ts +1 -6
  117. package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
  118. package/dist/esm/models/BrowserFramework.d.ts +2 -6
  119. package/dist/esm/models/BrowserFramework.d.ts.map +1 -1
  120. package/dist/esm/models/BrowserFramework.js +4 -22
  121. package/dist/esm/models/BrowserFramework.js.map +1 -1
  122. package/dist/esm/models/CreateDonobuFlow.d.ts +4 -0
  123. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  124. package/dist/esm/models/EnvironmentDatum.d.ts +54 -0
  125. package/dist/esm/models/EnvironmentDatum.d.ts.map +1 -0
  126. package/dist/esm/models/EnvironmentDatum.js +57 -0
  127. package/dist/esm/models/EnvironmentDatum.js.map +1 -0
  128. package/dist/esm/models/FlowMetadata.d.ts +14 -1
  129. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  130. package/dist/esm/models/FlowMetadata.js.map +1 -1
  131. package/dist/esm/models/PaginatedResult.d.ts +10 -0
  132. package/dist/esm/models/PaginatedResult.d.ts.map +1 -0
  133. package/dist/esm/models/PaginatedResult.js +6 -0
  134. package/dist/esm/models/PaginatedResult.js.map +1 -0
  135. package/dist/esm/models/ToolCallContext.d.ts +2 -1
  136. package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
  137. package/dist/esm/models/ToolTemplateDataSource.d.ts +40 -0
  138. package/dist/esm/models/ToolTemplateDataSource.d.ts.map +1 -0
  139. package/dist/esm/models/ToolTemplateDataSource.js +3 -0
  140. package/dist/esm/models/ToolTemplateDataSource.js.map +1 -0
  141. package/dist/esm/persistence/DonobuSqliteDb.d.ts.map +1 -1
  142. package/dist/esm/persistence/DonobuSqliteDb.js +12 -0
  143. package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
  144. package/dist/esm/persistence/FlowsPersistence.d.ts +23 -14
  145. package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
  146. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
  147. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  148. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +79 -1
  149. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  150. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +1 -1
  151. package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
  152. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
  153. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  154. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +114 -4
  155. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  156. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
  157. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  158. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
  159. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  160. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +12 -5
  161. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  162. package/dist/esm/persistence/FlowsPersistenceSqlite.js +35 -1
  163. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
  164. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +10 -5
  165. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  166. package/dist/esm/persistence/FlowsPersistenceSupabase.js +46 -1
  167. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
  168. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +10 -5
  169. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  170. package/dist/esm/persistence/FlowsPersistenceVolatile.js +21 -1
  171. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -1
  172. package/dist/esm/persistence/agents/AgentsPersistence.d.ts +12 -0
  173. package/dist/esm/persistence/agents/AgentsPersistence.d.ts.map +1 -0
  174. package/dist/esm/persistence/agents/AgentsPersistence.js +3 -0
  175. package/dist/esm/persistence/agents/AgentsPersistence.js.map +1 -0
  176. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
  177. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
  178. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js +50 -0
  179. package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
  180. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
  181. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
  182. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js +26 -0
  183. package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
  184. package/dist/esm/persistence/env/EnvPersistence.d.ts +20 -0
  185. package/dist/esm/persistence/env/EnvPersistence.d.ts.map +1 -0
  186. package/dist/esm/persistence/env/EnvPersistence.js +3 -0
  187. package/dist/esm/persistence/env/EnvPersistence.js.map +1 -0
  188. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
  189. package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
  190. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js +117 -0
  191. package/dist/esm/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
  192. package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts +6 -0
  193. package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
  194. package/dist/esm/persistence/env/EnvPersistenceFactory.js +3 -0
  195. package/dist/esm/persistence/env/EnvPersistenceFactory.js.map +1 -0
  196. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
  197. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
  198. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
  199. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
  200. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
  201. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
  202. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
  203. package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
  204. package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
  205. package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
  206. package/dist/esm/persistence/env/EnvPersistenceFilesystem.js +132 -0
  207. package/dist/esm/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
  208. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
  209. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
  210. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
  211. package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
  212. package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
  213. package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
  214. package/dist/esm/persistence/env/EnvPersistenceSqlite.js +54 -0
  215. package/dist/esm/persistence/env/EnvPersistenceSqlite.js.map +1 -0
  216. package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
  217. package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
  218. package/dist/esm/persistence/env/EnvPersistenceSupabase.js +60 -0
  219. package/dist/esm/persistence/env/EnvPersistenceSupabase.js.map +1 -0
  220. package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
  221. package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
  222. package/dist/esm/persistence/env/EnvPersistenceVolatile.js +31 -0
  223. package/dist/esm/persistence/env/EnvPersistenceVolatile.js.map +1 -0
  224. package/dist/esm/persistence/flows/FlowsPersistence.d.ts +87 -0
  225. package/dist/esm/persistence/flows/FlowsPersistence.d.ts.map +1 -0
  226. package/dist/esm/persistence/flows/FlowsPersistence.js +3 -0
  227. package/dist/esm/persistence/flows/FlowsPersistence.js.map +1 -0
  228. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
  229. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
  230. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
  231. package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
  232. package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
  233. package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
  234. package/dist/esm/persistence/flows/FlowsPersistenceFactory.js +3 -0
  235. package/dist/esm/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
  236. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
  237. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
  238. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
  239. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
  240. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
  241. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
  242. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
  243. package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
  244. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
  245. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
  246. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
  247. package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
  248. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
  249. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
  250. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
  251. package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
  252. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
  253. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
  254. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js +259 -0
  255. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
  256. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
  257. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
  258. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js +218 -0
  259. package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
  260. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
  261. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
  262. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js +151 -0
  263. package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
  264. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
  265. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
  266. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
  267. package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
  268. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
  269. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
  270. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
  271. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
  272. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
  273. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
  274. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
  275. package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
  276. package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
  277. package/dist/esm/playwrightTestExtensions.js +31 -10
  278. package/dist/esm/playwrightTestExtensions.js.map +1 -1
  279. package/dist/esm/tools/GoToWebpageTool.d.ts.map +1 -1
  280. package/dist/esm/tools/GoToWebpageTool.js +3 -2
  281. package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
  282. package/dist/esm/tools/SolveMfaChallenge.d.ts +32 -0
  283. package/dist/esm/tools/SolveMfaChallenge.d.ts.map +1 -0
  284. package/dist/esm/tools/SolveMfaChallenge.js +185 -0
  285. package/dist/esm/tools/SolveMfaChallenge.js.map +1 -0
  286. package/dist/esm/utils/TemplateInterpolator.d.ts +47 -0
  287. package/dist/esm/utils/TemplateInterpolator.d.ts.map +1 -0
  288. package/dist/esm/utils/TemplateInterpolator.js +352 -0
  289. package/dist/esm/utils/TemplateInterpolator.js.map +1 -0
  290. package/dist/lib/DonobuExtendedPage.d.ts +106 -0
  291. package/dist/lib/DonobuExtendedPage.d.ts.map +1 -0
  292. package/dist/lib/DonobuExtendedPage.js +3 -0
  293. package/dist/lib/DonobuExtendedPage.js.map +1 -0
  294. package/dist/lib/constants.d.ts +8 -0
  295. package/dist/lib/constants.d.ts.map +1 -0
  296. package/dist/lib/constants.js +14 -0
  297. package/dist/lib/constants.js.map +1 -0
  298. package/dist/lib/fixtures/browserState.d.ts +6 -0
  299. package/dist/lib/fixtures/browserState.d.ts.map +1 -0
  300. package/dist/lib/fixtures/browserState.js +15 -0
  301. package/dist/lib/fixtures/browserState.js.map +1 -0
  302. package/dist/lib/fixtures/gptClients.d.ts +40 -0
  303. package/dist/lib/fixtures/gptClients.d.ts.map +1 -0
  304. package/dist/lib/fixtures/gptClients.js +187 -0
  305. package/dist/lib/fixtures/gptClients.js.map +1 -0
  306. package/dist/lib/fixtures/testExtension.d.ts +10 -0
  307. package/dist/lib/fixtures/testExtension.d.ts.map +1 -0
  308. package/dist/lib/fixtures/testExtension.js +383 -0
  309. package/dist/lib/fixtures/testExtension.js.map +1 -0
  310. package/dist/lib/testExtension.d.ts +10 -0
  311. package/dist/lib/testExtension.d.ts.map +1 -0
  312. package/dist/lib/testExtension.js +383 -0
  313. package/dist/lib/testExtension.js.map +1 -0
  314. package/dist/lib/types.d.ts +106 -0
  315. package/dist/lib/types.d.ts.map +1 -0
  316. package/dist/lib/types.js +3 -0
  317. package/dist/lib/types.js.map +1 -0
  318. package/dist/lib/utils/donobuTestStack.d.ts +7 -0
  319. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -0
  320. package/dist/lib/utils/donobuTestStack.js +31 -0
  321. package/dist/lib/utils/donobuTestStack.js.map +1 -0
  322. package/dist/lib/utils/selfHealing.d.ts +15 -0
  323. package/dist/lib/utils/selfHealing.d.ts.map +1 -0
  324. package/dist/lib/utils/selfHealing.js +89 -0
  325. package/dist/lib/utils/selfHealing.js.map +1 -0
  326. package/dist/main.d.ts +5 -1
  327. package/dist/main.d.ts.map +1 -1
  328. package/dist/main.js +8 -5
  329. package/dist/main.js.map +1 -1
  330. package/dist/managers/AdminApiController.d.ts.map +1 -1
  331. package/dist/managers/AdminApiController.js +7 -0
  332. package/dist/managers/AdminApiController.js.map +1 -1
  333. package/dist/managers/AgentsManager.d.ts +1 -1
  334. package/dist/managers/AgentsManager.d.ts.map +1 -1
  335. package/dist/managers/DonobuFlow.d.ts +3 -2
  336. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  337. package/dist/managers/DonobuFlow.js +90 -21
  338. package/dist/managers/DonobuFlow.js.map +1 -1
  339. package/dist/managers/DonobuFlowsManager.d.ts +47 -6
  340. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  341. package/dist/managers/DonobuFlowsManager.js +104 -24
  342. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  343. package/dist/managers/DonobuStack.d.ts +18 -4
  344. package/dist/managers/DonobuStack.d.ts.map +1 -1
  345. package/dist/managers/DonobuStack.js +21 -5
  346. package/dist/managers/DonobuStack.js.map +1 -1
  347. package/dist/managers/EnvDataManager.d.ts +58 -0
  348. package/dist/managers/EnvDataManager.d.ts.map +1 -0
  349. package/dist/managers/EnvDataManager.js +134 -0
  350. package/dist/managers/EnvDataManager.js.map +1 -0
  351. package/dist/managers/EnvironmentDataManager.d.ts +58 -0
  352. package/dist/managers/EnvironmentDataManager.d.ts.map +1 -0
  353. package/dist/managers/EnvironmentDataManager.js +134 -0
  354. package/dist/managers/EnvironmentDataManager.js.map +1 -0
  355. package/dist/managers/GptConfigsManager.d.ts +1 -1
  356. package/dist/managers/GptConfigsManager.d.ts.map +1 -1
  357. package/dist/managers/InteractionVisualizer.d.ts +8 -30
  358. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  359. package/dist/managers/InteractionVisualizer.js +132 -204
  360. package/dist/managers/InteractionVisualizer.js.map +1 -1
  361. package/dist/managers/PageInspector.d.ts +0 -1
  362. package/dist/managers/PageInspector.d.ts.map +1 -1
  363. package/dist/managers/PageInspector.js +59 -58
  364. package/dist/managers/PageInspector.js.map +1 -1
  365. package/dist/managers/ToolManager.d.ts +10 -0
  366. package/dist/managers/ToolManager.d.ts.map +1 -1
  367. package/dist/managers/ToolManager.js +46 -3
  368. package/dist/managers/ToolManager.js.map +1 -1
  369. package/dist/models/BrowserConfig.d.ts +1 -6
  370. package/dist/models/BrowserConfig.d.ts.map +1 -1
  371. package/dist/models/BrowserFramework.d.ts +2 -6
  372. package/dist/models/BrowserFramework.d.ts.map +1 -1
  373. package/dist/models/BrowserFramework.js +4 -22
  374. package/dist/models/BrowserFramework.js.map +1 -1
  375. package/dist/models/CreateDonobuFlow.d.ts +4 -0
  376. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  377. package/dist/models/EnvironmentDatum.d.ts +54 -0
  378. package/dist/models/EnvironmentDatum.d.ts.map +1 -0
  379. package/dist/models/EnvironmentDatum.js +57 -0
  380. package/dist/models/EnvironmentDatum.js.map +1 -0
  381. package/dist/models/FlowMetadata.d.ts +14 -1
  382. package/dist/models/FlowMetadata.d.ts.map +1 -1
  383. package/dist/models/FlowMetadata.js.map +1 -1
  384. package/dist/models/PaginatedResult.d.ts +10 -0
  385. package/dist/models/PaginatedResult.d.ts.map +1 -0
  386. package/dist/models/PaginatedResult.js +6 -0
  387. package/dist/models/PaginatedResult.js.map +1 -0
  388. package/dist/models/ToolCallContext.d.ts +2 -1
  389. package/dist/models/ToolCallContext.d.ts.map +1 -1
  390. package/dist/models/ToolTemplateDataSource.d.ts +40 -0
  391. package/dist/models/ToolTemplateDataSource.d.ts.map +1 -0
  392. package/dist/models/ToolTemplateDataSource.js +3 -0
  393. package/dist/models/ToolTemplateDataSource.js.map +1 -0
  394. package/dist/persistence/DonobuSqliteDb.d.ts.map +1 -1
  395. package/dist/persistence/DonobuSqliteDb.js +12 -0
  396. package/dist/persistence/DonobuSqliteDb.js.map +1 -1
  397. package/dist/persistence/FlowsPersistence.d.ts +23 -14
  398. package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
  399. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
  400. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  401. package/dist/persistence/FlowsPersistenceAwsS3.js +79 -1
  402. package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  403. package/dist/persistence/FlowsPersistenceFactoryImpl.js +1 -1
  404. package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
  405. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
  406. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  407. package/dist/persistence/FlowsPersistenceFilesystem.js +114 -4
  408. package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  409. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
  410. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  411. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
  412. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  413. package/dist/persistence/FlowsPersistenceSqlite.d.ts +12 -5
  414. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  415. package/dist/persistence/FlowsPersistenceSqlite.js +35 -1
  416. package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
  417. package/dist/persistence/FlowsPersistenceSupabase.d.ts +10 -5
  418. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  419. package/dist/persistence/FlowsPersistenceSupabase.js +46 -1
  420. package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
  421. package/dist/persistence/FlowsPersistenceVolatile.d.ts +10 -5
  422. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  423. package/dist/persistence/FlowsPersistenceVolatile.js +21 -1
  424. package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
  425. package/dist/persistence/agents/AgentsPersistence.d.ts +12 -0
  426. package/dist/persistence/agents/AgentsPersistence.d.ts.map +1 -0
  427. package/dist/persistence/agents/AgentsPersistence.js +3 -0
  428. package/dist/persistence/agents/AgentsPersistence.js.map +1 -0
  429. package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
  430. package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
  431. package/dist/persistence/agents/AgentsPersistenceSqlite.js +50 -0
  432. package/dist/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
  433. package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
  434. package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
  435. package/dist/persistence/agents/AgentsPersistenceVolatile.js +26 -0
  436. package/dist/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
  437. package/dist/persistence/env/EnvPersistence.d.ts +20 -0
  438. package/dist/persistence/env/EnvPersistence.d.ts.map +1 -0
  439. package/dist/persistence/env/EnvPersistence.js +3 -0
  440. package/dist/persistence/env/EnvPersistence.js.map +1 -0
  441. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
  442. package/dist/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
  443. package/dist/persistence/env/EnvPersistenceAwsS3.js +117 -0
  444. package/dist/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
  445. package/dist/persistence/env/EnvPersistenceFactory.d.ts +6 -0
  446. package/dist/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
  447. package/dist/persistence/env/EnvPersistenceFactory.js +3 -0
  448. package/dist/persistence/env/EnvPersistenceFactory.js.map +1 -0
  449. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
  450. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
  451. package/dist/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
  452. package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
  453. package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
  454. package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
  455. package/dist/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
  456. package/dist/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
  457. package/dist/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
  458. package/dist/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
  459. package/dist/persistence/env/EnvPersistenceFilesystem.js +132 -0
  460. package/dist/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
  461. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
  462. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
  463. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
  464. package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
  465. package/dist/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
  466. package/dist/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
  467. package/dist/persistence/env/EnvPersistenceSqlite.js +54 -0
  468. package/dist/persistence/env/EnvPersistenceSqlite.js.map +1 -0
  469. package/dist/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
  470. package/dist/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
  471. package/dist/persistence/env/EnvPersistenceSupabase.js +60 -0
  472. package/dist/persistence/env/EnvPersistenceSupabase.js.map +1 -0
  473. package/dist/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
  474. package/dist/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
  475. package/dist/persistence/env/EnvPersistenceVolatile.js +31 -0
  476. package/dist/persistence/env/EnvPersistenceVolatile.js.map +1 -0
  477. package/dist/persistence/flows/FlowsPersistence.d.ts +87 -0
  478. package/dist/persistence/flows/FlowsPersistence.d.ts.map +1 -0
  479. package/dist/persistence/flows/FlowsPersistence.js +3 -0
  480. package/dist/persistence/flows/FlowsPersistence.js.map +1 -0
  481. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
  482. package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
  483. package/dist/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
  484. package/dist/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
  485. package/dist/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
  486. package/dist/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
  487. package/dist/persistence/flows/FlowsPersistenceFactory.js +3 -0
  488. package/dist/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
  489. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
  490. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
  491. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
  492. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
  493. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
  494. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
  495. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
  496. package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
  497. package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
  498. package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
  499. package/dist/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
  500. package/dist/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
  501. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
  502. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
  503. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
  504. package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
  505. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
  506. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
  507. package/dist/persistence/flows/FlowsPersistenceSqlite.js +259 -0
  508. package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
  509. package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
  510. package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
  511. package/dist/persistence/flows/FlowsPersistenceSupabase.js +218 -0
  512. package/dist/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
  513. package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
  514. package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
  515. package/dist/persistence/flows/FlowsPersistenceVolatile.js +151 -0
  516. package/dist/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
  517. package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
  518. package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
  519. package/dist/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
  520. package/dist/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
  521. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
  522. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
  523. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
  524. package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
  525. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
  526. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
  527. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
  528. package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
  529. package/dist/playwrightTestExtensions.d.ts.map +1 -1
  530. package/dist/playwrightTestExtensions.js +31 -10
  531. package/dist/playwrightTestExtensions.js.map +1 -1
  532. package/dist/tools/GoToWebpageTool.d.ts.map +1 -1
  533. package/dist/tools/GoToWebpageTool.js +3 -2
  534. package/dist/tools/GoToWebpageTool.js.map +1 -1
  535. package/dist/tools/SolveMfaChallenge.d.ts +32 -0
  536. package/dist/tools/SolveMfaChallenge.d.ts.map +1 -0
  537. package/dist/tools/SolveMfaChallenge.js +185 -0
  538. package/dist/tools/SolveMfaChallenge.js.map +1 -0
  539. package/dist/utils/TemplateInterpolator.d.ts +47 -0
  540. package/dist/utils/TemplateInterpolator.d.ts.map +1 -0
  541. package/dist/utils/TemplateInterpolator.js +352 -0
  542. package/dist/utils/TemplateInterpolator.js.map +1 -0
  543. package/package.json +3 -1
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SolveMfaChallengeTool = void 0;
4
+ const ReplayableInteraction_1 = require("./ReplayableInteraction");
5
+ const MiscUtils_1 = require("../utils/MiscUtils");
6
+ const googleapis_1 = require("googleapis");
7
+ const Logger_1 = require("../utils/Logger");
8
+ class SolveMfaChallengeTool extends ReplayableInteraction_1.ReplayableInteraction {
9
+ constructor() {
10
+ super(SolveMfaChallengeTool.NAME, 'Scan Gmail-based emails for MFA verification codes and automatically input them into the specified field.', 'SelectorBasedSolveMfaChallengeToolParameters', 'AnnotationBasedSolveMfaChallengeToolParameters', true);
11
+ }
12
+ async invoke(context, parameters, element) {
13
+ const waitTimeSeconds = 60;
14
+ // Extract the MFA code from emails
15
+ const mfaCode = await this.getMfaCodeFromEmails(context, parameters, waitTimeSeconds);
16
+ if (!mfaCode) {
17
+ throw new Error('Could not find MFA code in emails after multiple attempts');
18
+ }
19
+ // Input the MFA code into the element
20
+ for (const char of mfaCode) {
21
+ await element.press(char, {
22
+ delay: MiscUtils_1.MiscUtils.generateHumanLikeKeyPressDurationInMs(char),
23
+ timeout: 3000,
24
+ });
25
+ }
26
+ // Submit the form if necessary
27
+ try {
28
+ const char = 'Enter';
29
+ await element.press(char, {
30
+ delay: MiscUtils_1.MiscUtils.generateHumanLikeKeyPressDurationInMs(char),
31
+ timeout: 3000,
32
+ });
33
+ }
34
+ catch (_error) {
35
+ // Some MFA systems automatically submit themselves, so if we have
36
+ // gotten this far, do not fail if the 'Enter' key fails to land.
37
+ }
38
+ return `Successfully retrieved and inputted MFA code: ${mfaCode}`;
39
+ }
40
+ async getMfaCodeFromEmails(context, parameters, waitTimeSeconds = 60) {
41
+ const startTime = Date.now();
42
+ const endTime = startTime + waitTimeSeconds * 1000;
43
+ let attempt = 0;
44
+ while (Date.now() < endTime &&
45
+ attempt < SolveMfaChallengeTool.MAX_RETRIES) {
46
+ attempt++;
47
+ Logger_1.appLogger.info(`Attempt ${attempt} of ${SolveMfaChallengeTool.MAX_RETRIES} to find MFA code in emails`);
48
+ try {
49
+ // Get the latest emails for the user
50
+ const emailBody = await this.getLatestEmailBody(parameters);
51
+ if (emailBody) {
52
+ // Use the GPT client to extract the MFA code
53
+ const mfaCode = await this.extractMfaCodeWithGpt(context, emailBody);
54
+ if (mfaCode) {
55
+ Logger_1.appLogger.info(`Successfully found MFA code: ${mfaCode}`);
56
+ return mfaCode;
57
+ }
58
+ }
59
+ // Wait before retrying
60
+ await new Promise((resolve) => {
61
+ setTimeout(resolve, SolveMfaChallengeTool.RETRY_DELAY_MS);
62
+ });
63
+ }
64
+ catch (error) {
65
+ Logger_1.appLogger.error(`Error finding MFA code in emails`, error);
66
+ // Continue retrying
67
+ }
68
+ }
69
+ return null;
70
+ }
71
+ async getLatestEmailBody(parameters) {
72
+ try {
73
+ // Create OAuth client
74
+ const oAuth2Client = new googleapis_1.google.auth.OAuth2(parameters.gmailClientId, parameters.gmailClientSecret);
75
+ oAuth2Client.setCredentials({
76
+ refresh_token: parameters.gmailRefreshToken,
77
+ });
78
+ const gmail = googleapis_1.google.gmail({ version: 'v1', auth: oAuth2Client });
79
+ // Build search query
80
+ let query = 'subject:(verification code OR security code OR authentication code OR verification OR confirm OR code)';
81
+ // Add time filter to only get recent emails (last 5 minutes)
82
+ const fiveMinutesAgo = new Date(Date.now() - 5 * 60 * 1000);
83
+ const formattedDate = fiveMinutesAgo.toISOString().split('T')[0]; // YYYY-MM-DD format
84
+ query = `${query} after:${formattedDate}`;
85
+ // Get latest messages
86
+ const res = await gmail.users.messages.list({
87
+ userId: 'me',
88
+ q: query,
89
+ maxResults: 5,
90
+ });
91
+ if (!res.data.messages || res.data.messages.length === 0) {
92
+ Logger_1.appLogger.info('No matching emails found');
93
+ return null;
94
+ }
95
+ // Get the latest email content
96
+ const message = res.data.messages[0];
97
+ const email = await gmail.users.messages.get({
98
+ userId: 'me',
99
+ id: message.id,
100
+ format: 'full',
101
+ });
102
+ // Extract email body
103
+ const parts = email.data.payload?.parts;
104
+ let body = '';
105
+ if (parts) {
106
+ // Try to find plain text part first
107
+ const textPart = parts.find((part) => part.mimeType === 'text/plain');
108
+ if (textPart && textPart.body?.data) {
109
+ body = Buffer.from(textPart.body.data, 'base64').toString('utf-8');
110
+ }
111
+ else {
112
+ // Fall back to HTML part if no plain text
113
+ const htmlPart = parts.find((part) => part.mimeType === 'text/html');
114
+ if (htmlPart && htmlPart.body?.data) {
115
+ body = Buffer.from(htmlPart.body.data, 'base64').toString('utf-8');
116
+ }
117
+ }
118
+ }
119
+ else if (email.data.payload?.body?.data) {
120
+ // Handle case where email has no parts
121
+ body = Buffer.from(email.data.payload.body.data, 'base64').toString('utf-8');
122
+ }
123
+ if (!body) {
124
+ Logger_1.appLogger.warn('Email found but body could not be decoded');
125
+ return null;
126
+ }
127
+ return body;
128
+ }
129
+ catch (error) {
130
+ Logger_1.appLogger.error('Error getting email body:', error);
131
+ throw error;
132
+ }
133
+ }
134
+ async extractMfaCodeWithGpt(context, emailBody) {
135
+ // Use GPT to extract the MFA code from the email body
136
+ const systemMessage = {
137
+ type: 'system',
138
+ text: `You are a tool that extracts MFA (Multi-Factor Authentication) verification codes from emails.
139
+ Your task is to identify and extract ONLY the verification code from the email.
140
+ Common formats include 6-digit numbers, 8-digit numbers, or combinations of numbers and letters.
141
+ If multiple potential codes exist, choose the most likely one based on context (usually near phrases like "verification code", "security code", etc.)
142
+ Return ONLY the code with no additional text, punctuation, or explanation.
143
+ If no code can be found, respond with "NO_CODE_FOUND".`,
144
+ };
145
+ const userMessage = {
146
+ type: 'user',
147
+ items: [
148
+ {
149
+ type: 'text',
150
+ text: `Extract the verification code from this email:
151
+ \`\`\`
152
+ ${emailBody}
153
+ \`\`\``,
154
+ },
155
+ ],
156
+ };
157
+ try {
158
+ const response = await context.gptClient.getMessage([
159
+ systemMessage,
160
+ userMessage,
161
+ ]);
162
+ const extractedCode = response.text.trim();
163
+ if (extractedCode === 'NO_CODE_FOUND') {
164
+ return null;
165
+ }
166
+ // Basic validation - at least one digit, reasonable length
167
+ if (/\d/.test(extractedCode) &&
168
+ extractedCode.length >= 4 &&
169
+ extractedCode.length <= 12) {
170
+ return extractedCode;
171
+ }
172
+ Logger_1.appLogger.warn(`GPT extracted an invalid code: ${extractedCode}`);
173
+ return null;
174
+ }
175
+ catch (error) {
176
+ Logger_1.appLogger.error('Error using GPT to extract MFA code:', error);
177
+ return null;
178
+ }
179
+ }
180
+ }
181
+ exports.SolveMfaChallengeTool = SolveMfaChallengeTool;
182
+ SolveMfaChallengeTool.NAME = 'solveMfaChallenge';
183
+ SolveMfaChallengeTool.MAX_RETRIES = 10;
184
+ SolveMfaChallengeTool.RETRY_DELAY_MS = 6000;
185
+ //# sourceMappingURL=SolveMfaChallenge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolveMfaChallenge.js","sourceRoot":"","sources":["../../src/tools/SolveMfaChallenge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Regular expression to match template JSON-path expressions inside of {{...}}
3
+ */
4
+ export declare const TEMPLATE_DATA_PATTERN: RegExp;
5
+ /**
6
+ * Resolve a JSONPath expression against the context
7
+ * @param expression - The JSONPath expression to evaluate
8
+ * @param dataSource - The data context to evaluate against
9
+ * @returns The resolved value or undefined if not found
10
+ */
11
+ export declare function resolveExpression(expression: string, dataSource: Record<string, unknown>): any;
12
+ /**
13
+ * Interpolate template strings using JSONPath expressions, handling nested expressions
14
+ * @param template - The template string with {{...}} expressions
15
+ * @param dataSource - The data context to interpolate from
16
+ * @param recursionDepth - Current recursion depth (for loop detection)
17
+ * @param maxRecursionDepth - Maximum allowed recursion depth
18
+ * @param processed - Set of already processed templates (for loop detection)
19
+ * @returns The interpolated string
20
+ */
21
+ export declare function interpolateString(template: string, dataSource: Record<string, unknown>, recursionDepth?: number, maxRecursionDepth?: number, processed?: Set<string>): string;
22
+ /**
23
+ * Interpolate the parameters object using JSONPath expressions. Any string values
24
+ * and keys in the object will be replaced with the corresponding values from the data source.
25
+ * Nested objects and arrays will be processed recursively.
26
+ *
27
+ * @param parameters - The original parameters object
28
+ * @param dataSource - The data context to interpolate from
29
+ * @returns A new parameters object with interpolated string values and keys
30
+ */
31
+ export declare function interpolateObject(parameters: any, dataSource: Record<string, unknown>, recursionDepth?: number, maxRecursionDepth?: number, processedObjects?: WeakSet<object>): any;
32
+ /**
33
+ * Extracts interpolation expressions from a template string.
34
+ *
35
+ * @param template - The template string with {{...}} expressions
36
+ * @returns An array of the extracted expressions without the {{ }} delimiters
37
+ *
38
+ * @example
39
+ * // Returns ["env.USER_NAME"]
40
+ * extractInterpolationExpressions("Hello {{env.USER_NAME}}, how are you?");
41
+ *
42
+ * @example
43
+ * // Returns ["env.API_KEY", "calls[0].result"]
44
+ * extractInterpolationExpressions("Use {{env.API_KEY}} to access {{calls[0].result}}");
45
+ */
46
+ export declare function extractInterpolationExpressions(template: string): string[];
47
+ //# sourceMappingURL=TemplateInterpolator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateInterpolator.d.ts","sourceRoot":"","sources":["../../src/utils/TemplateInterpolator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAqB,CAAC;AAkFxD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,GAAG,CAmDL;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,cAAc,GAAE,MAAU,EAC1B,iBAAiB,GAAE,MAAW,EAC9B,SAAS,GAAE,GAAG,CAAC,MAAM,CAAa,GACjC,MAAM,CA4GR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,GAAG,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,cAAc,GAAE,MAAU,EAC1B,iBAAiB,GAAE,MAAW,EAC9B,gBAAgB,GAAE,OAAO,CAAC,MAAM,CAAiB,GAChD,GAAG,CAoFL;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAmD1E"}
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TEMPLATE_DATA_PATTERN = void 0;
7
+ exports.resolveExpression = resolveExpression;
8
+ exports.interpolateString = interpolateString;
9
+ exports.interpolateObject = interpolateObject;
10
+ exports.extractInterpolationExpressions = extractInterpolationExpressions;
11
+ const Logger_1 = require("./Logger");
12
+ const jsonpath_1 = __importDefault(require("jsonpath"));
13
+ /**
14
+ * Regular expression to match template JSON-path expressions inside of {{...}}
15
+ */
16
+ exports.TEMPLATE_DATA_PATTERN = /\{\{([^}]+)\}\}/g;
17
+ /**
18
+ * Regular expression to detect expressions that need to be handled specially
19
+ * Matches patterns like: $..path[?(@.condition)][0] or $..path[?(@.condition)][index] or $..path[?(@.condition)][n:m]
20
+ */
21
+ const FILTER_WITH_INDEX_PATTERN = /(\[\?\(.*\)\])(\[-?\d+(\:\d+)?\])/;
22
+ /**
23
+ * Regular expression to detect standalone negative indices that need to be
24
+ * handled specially since the jsonpath library doesn't support negative indices
25
+ * directly (when running queries, we will convert them to slice notation).
26
+ */
27
+ const STANDALONE_NEGATIVE_INDEX_PATTERN = /(\$\.calls)\[(-\d+)\](?!\:)/;
28
+ /**
29
+ * Parse and modify JSONPath expressions to handle indexing after filter expressions
30
+ * @param expression - The JSONPath expression to process
31
+ * @returns A processed expression that works with the jsonpath library
32
+ */
33
+ function processJSONPathExpression(expression) {
34
+ // First check for filter followed by index pattern
35
+ const filterMatch = expression.match(FILTER_WITH_INDEX_PATTERN);
36
+ if (filterMatch) {
37
+ // Extract just the number from indexPart (remove the brackets)
38
+ const indexMatch = filterMatch[2].match(/\[(-?\d+)(\:\d+)?\]/);
39
+ if (indexMatch) {
40
+ // If it's a simple index (not a slice)
41
+ if (!indexMatch[2]) {
42
+ // Remove the index part from the expression
43
+ const baseExpression = expression.replace(filterMatch[2], '');
44
+ // Return the modified expression
45
+ return baseExpression;
46
+ }
47
+ }
48
+ }
49
+ // Check for standalone negative index pattern and convert it to slice notation
50
+ // since the jsonpath library doesn't support negative indices directly.
51
+ const negativeIndexMatch = expression.match(STANDALONE_NEGATIVE_INDEX_PATTERN);
52
+ if (negativeIndexMatch && negativeIndexMatch[2].startsWith('-')) {
53
+ // Convert the standalone negative index to slice notation
54
+ // For example: $.calls[-1] becomes $.calls[-1:]
55
+ const convertedExpression = expression.replace(`[${negativeIndexMatch[2]}]`, `[${negativeIndexMatch[2]}:]`);
56
+ return convertedExpression;
57
+ }
58
+ // If it doesn't match our patterns, return the original expression
59
+ return expression;
60
+ }
61
+ /**
62
+ * Format a value to string with special handling for objects and arrays
63
+ * @param value - The value to format
64
+ * @returns A string representation of the value
65
+ */
66
+ function formatValue(value) {
67
+ if (value === undefined || value === null) {
68
+ return '';
69
+ }
70
+ // Handle arrays by joining their string representations
71
+ if (Array.isArray(value)) {
72
+ return value.map(formatValue).join(',');
73
+ }
74
+ // Handle objects with proper JSON formatting
75
+ if (typeof value === 'object' && value !== null) {
76
+ return JSON.stringify(value);
77
+ }
78
+ // Default case
79
+ return String(value);
80
+ }
81
+ /**
82
+ * Resolve a JSONPath expression against the context
83
+ * @param expression - The JSONPath expression to evaluate
84
+ * @param dataSource - The data context to evaluate against
85
+ * @returns The resolved value or undefined if not found
86
+ */
87
+ function resolveExpression(expression, dataSource) {
88
+ try {
89
+ // Process the expression to handle special cases
90
+ const processedExpression = processJSONPathExpression(expression);
91
+ // Handle expressions with wildcards or recursive searches that might return arrays
92
+ const isWildcardOrRecursive = expression.includes('..') ||
93
+ expression.includes('*') ||
94
+ expression.includes('[:]');
95
+ // Use JSONPath to evaluate the expression against the context
96
+ const results = jsonpath_1.default.query(dataSource, processedExpression);
97
+ // Handle the indexing ourselves if needed
98
+ if (expression !== processedExpression) {
99
+ const match = expression.match(FILTER_WITH_INDEX_PATTERN);
100
+ if (match) {
101
+ const indexMatch = match[2].match(/\[(-?\d+)(\:\d+)?\]/);
102
+ if (indexMatch) {
103
+ const index = parseInt(indexMatch[1], 10);
104
+ // If we have results, handle both positive and negative indices
105
+ if (results && results.length > 0) {
106
+ // For negative indices, count from the end of the array
107
+ const actualIndex = index < 0 ? results.length + index : index;
108
+ // Return the result if the calculated index is valid
109
+ if (actualIndex >= 0 && actualIndex < results.length) {
110
+ return results[actualIndex];
111
+ }
112
+ }
113
+ return undefined;
114
+ }
115
+ }
116
+ }
117
+ // Return the entire array for expressions that clearly want multiple values
118
+ if (isWildcardOrRecursive && results.length > 1) {
119
+ return results;
120
+ }
121
+ // Default case - return the first result if available
122
+ if (results && results.length > 0) {
123
+ return results[0];
124
+ }
125
+ return undefined;
126
+ }
127
+ catch (error) {
128
+ throw new Error(`Failed to evaluate JSONPath expression: ${expression}. Error: ${error}`);
129
+ }
130
+ }
131
+ /**
132
+ * Interpolate template strings using JSONPath expressions, handling nested expressions
133
+ * @param template - The template string with {{...}} expressions
134
+ * @param dataSource - The data context to interpolate from
135
+ * @param recursionDepth - Current recursion depth (for loop detection)
136
+ * @param maxRecursionDepth - Maximum allowed recursion depth
137
+ * @param processed - Set of already processed templates (for loop detection)
138
+ * @returns The interpolated string
139
+ */
140
+ function interpolateString(template, dataSource, recursionDepth = 0, maxRecursionDepth = 10, processed = new Set()) {
141
+ // Check for recursion depth limits
142
+ if (recursionDepth > maxRecursionDepth) {
143
+ Logger_1.appLogger.warn(`Maximum interpolation depth (${maxRecursionDepth}) exceeded for template: ${template.substring(0, 100)}${template.length > 100 ? '...' : ''}`);
144
+ return template;
145
+ }
146
+ // Base case: no more expressions to interpolate
147
+ if (!template.includes('{{')) {
148
+ return template;
149
+ }
150
+ // Check if we've already processed this exact template (loop detection)
151
+ if (processed.has(template)) {
152
+ Logger_1.appLogger.warn(`Circular reference detected in template: ${template.substring(0, 100)}${template.length > 100 ? '...' : ''}`);
153
+ return template;
154
+ }
155
+ // Add this template to the processed set
156
+ processed.add(template);
157
+ let result = template;
158
+ const processedSegments = []; // [start, end, replacement]
159
+ // Find and process expressions from outermost to innermost
160
+ let i = 0;
161
+ while (i < result.length) {
162
+ // Find opening braces
163
+ const openIndex = result.indexOf('{{', i);
164
+ if (openIndex === -1)
165
+ break;
166
+ // Find matching closing braces with proper nesting
167
+ let braceDepth = 1;
168
+ let closeIndex = openIndex + 2;
169
+ while (closeIndex < result.length && braceDepth > 0) {
170
+ if (result.substr(closeIndex, 2) === '{{') {
171
+ braceDepth++;
172
+ closeIndex += 2;
173
+ }
174
+ else if (result.substr(closeIndex, 2) === '}}') {
175
+ braceDepth--;
176
+ closeIndex += 2;
177
+ }
178
+ else {
179
+ closeIndex++;
180
+ }
181
+ }
182
+ // If we found a complete expression
183
+ if (braceDepth === 0) {
184
+ const expressionContent = result
185
+ .substring(openIndex + 2, closeIndex - 2)
186
+ .trim();
187
+ try {
188
+ // If the expression contains nested templates, process it first, passing along depth info
189
+ const processedExpression = interpolateString(expressionContent, dataSource, recursionDepth + 1, maxRecursionDepth, new Set(processed));
190
+ // Then resolve the processed expression
191
+ const value = resolveExpression(processedExpression, dataSource);
192
+ // If the value is undefined, keep the original expression
193
+ const replacement = value !== undefined ? formatValue(value) : `{{${expressionContent}}}`;
194
+ // Store the replacement for later
195
+ processedSegments.push([openIndex, closeIndex, replacement]);
196
+ i = closeIndex;
197
+ }
198
+ catch (error) {
199
+ Logger_1.appLogger.warn(`Error interpolating template: ${template}, expression: ${expressionContent}, error: ${error}`);
200
+ i = closeIndex;
201
+ }
202
+ }
203
+ else {
204
+ // No matching closing braces, move past this opening brace
205
+ i = openIndex + 2;
206
+ }
207
+ }
208
+ // Apply replacements in reverse order (from end to start) to maintain correct indices
209
+ for (let i = processedSegments.length - 1; i >= 0; i--) {
210
+ const [start, end, replacement] = processedSegments[i];
211
+ result = result.substring(0, start) + replacement + result.substring(end);
212
+ }
213
+ // Recursively process the result again for any new expressions, but only if the result changed
214
+ if (result.includes('{{') && result !== template) {
215
+ return interpolateString(result, dataSource, recursionDepth + 1, maxRecursionDepth, processed);
216
+ }
217
+ return result;
218
+ }
219
+ /**
220
+ * Interpolate the parameters object using JSONPath expressions. Any string values
221
+ * and keys in the object will be replaced with the corresponding values from the data source.
222
+ * Nested objects and arrays will be processed recursively.
223
+ *
224
+ * @param parameters - The original parameters object
225
+ * @param dataSource - The data context to interpolate from
226
+ * @returns A new parameters object with interpolated string values and keys
227
+ */
228
+ function interpolateObject(parameters, dataSource, recursionDepth = 0, maxRecursionDepth = 10, processedObjects = new WeakSet()) {
229
+ // Check for primitive values
230
+ if (!parameters || typeof parameters !== 'object') {
231
+ return parameters;
232
+ }
233
+ // Check for recursion depth limits
234
+ if (recursionDepth > maxRecursionDepth) {
235
+ Logger_1.appLogger.warn(`Maximum interpolation depth (${maxRecursionDepth}) exceeded for object`);
236
+ return parameters;
237
+ }
238
+ // Check for circular references in objects
239
+ if (processedObjects.has(parameters)) {
240
+ Logger_1.appLogger.warn(`Circular reference detected in object`);
241
+ return parameters;
242
+ }
243
+ // Add this object to the processed set
244
+ processedObjects.add(parameters);
245
+ // Create appropriate result container
246
+ const result = Array.isArray(parameters) ? [] : {};
247
+ // Process each key-value pair
248
+ if (Array.isArray(parameters)) {
249
+ // Handle array case
250
+ for (let i = 0; i < parameters.length; i++) {
251
+ const value = parameters[i];
252
+ if (typeof value === 'string') {
253
+ // Interpolate string values
254
+ result[i] = interpolateString(value, dataSource, 0, maxRecursionDepth);
255
+ }
256
+ else if (typeof value === 'object' && value !== null) {
257
+ // Recursively process nested objects
258
+ result[i] = interpolateObject(value, dataSource, recursionDepth + 1, maxRecursionDepth, processedObjects);
259
+ }
260
+ else {
261
+ // Keep non-string values as is
262
+ result[i] = value;
263
+ }
264
+ }
265
+ }
266
+ else {
267
+ // Handle object case
268
+ for (const key in parameters) {
269
+ const value = parameters[key];
270
+ // Interpolate the key if it's a string and contains a template pattern
271
+ let processedKey = key;
272
+ if (typeof key === 'string' && key.includes('{{')) {
273
+ processedKey = interpolateString(key, dataSource, 0, maxRecursionDepth);
274
+ }
275
+ if (typeof value === 'string') {
276
+ // Interpolate string values
277
+ result[processedKey] = interpolateString(value, dataSource, 0, maxRecursionDepth);
278
+ }
279
+ else if (typeof value === 'object' && value !== null) {
280
+ // Recursively process nested objects
281
+ result[processedKey] = interpolateObject(value, dataSource, recursionDepth + 1, maxRecursionDepth, processedObjects);
282
+ }
283
+ else {
284
+ // Keep non-string values as is
285
+ result[processedKey] = value;
286
+ }
287
+ }
288
+ }
289
+ return result;
290
+ }
291
+ /**
292
+ * Extracts interpolation expressions from a template string.
293
+ *
294
+ * @param template - The template string with {{...}} expressions
295
+ * @returns An array of the extracted expressions without the {{ }} delimiters
296
+ *
297
+ * @example
298
+ * // Returns ["env.USER_NAME"]
299
+ * extractInterpolationExpressions("Hello {{env.USER_NAME}}, how are you?");
300
+ *
301
+ * @example
302
+ * // Returns ["env.API_KEY", "calls[0].result"]
303
+ * extractInterpolationExpressions("Use {{env.API_KEY}} to access {{calls[0].result}}");
304
+ */
305
+ function extractInterpolationExpressions(template) {
306
+ const expressions = [];
307
+ // Extract expressions recursively
308
+ function extractExpressions(text) {
309
+ let i = 0;
310
+ while (i < text.length) {
311
+ // Find opening braces
312
+ const openIndex = text.indexOf('{{', i);
313
+ if (openIndex === -1)
314
+ break;
315
+ // Find matching closing braces
316
+ let braceDepth = 1;
317
+ let closeIndex = openIndex + 2;
318
+ while (closeIndex < text.length && braceDepth > 0) {
319
+ if (text.substr(closeIndex, 2) === '{{') {
320
+ braceDepth++;
321
+ closeIndex += 2;
322
+ }
323
+ else if (text.substr(closeIndex, 2) === '}}') {
324
+ braceDepth--;
325
+ closeIndex += 2;
326
+ }
327
+ else {
328
+ closeIndex++;
329
+ }
330
+ }
331
+ // If we found a complete expression
332
+ if (braceDepth === 0) {
333
+ // Extract the content between {{ and }}
334
+ const expressionContent = text
335
+ .substring(openIndex + 2, closeIndex - 2)
336
+ .trim();
337
+ expressions.push(expressionContent);
338
+ // Recursively look for nested expressions within this expression
339
+ extractExpressions(expressionContent);
340
+ i = closeIndex;
341
+ }
342
+ else {
343
+ // No matching closing braces, move past this opening brace
344
+ i = openIndex + 2;
345
+ }
346
+ }
347
+ }
348
+ extractExpressions(template);
349
+ // Return unique expressions
350
+ return [...new Set(expressions)];
351
+ }
352
+ //# sourceMappingURL=TemplateInterpolator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateInterpolator.js","sourceRoot":"","sources":["../../src/utils/TemplateInterpolator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "donobu",
3
- "version": "2.16.0",
3
+ "version": "2.17.1",
4
4
  "description": "Create browser automations with an LLM agent and replay them as Playwright scripts.",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/esm/main.js",
@@ -43,6 +43,7 @@
43
43
  "@types/glob": "^8.1.0",
44
44
  "@types/jest": "^29.5.14",
45
45
  "@types/js-yaml": "^4.0.9",
46
+ "@types/jsonpath": "^0.2.4",
46
47
  "@types/node": "^22.10.5",
47
48
  "@types/uuid": "^10.0.0",
48
49
  "@typescript-eslint/eslint-plugin": "^8.28.0",
@@ -74,6 +75,7 @@
74
75
  "express": "^4.21.2",
75
76
  "jimp": "^1.6.0",
76
77
  "jose": "^5.9.6",
78
+ "jsonpath": "^1.1.1",
77
79
  "playwright": "1.51.0",
78
80
  "prettier": "^3.5.3",
79
81
  "typescript": "^5.8.3",