donobu 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/apis/AskAiApi.js +1 -1
  2. package/dist/apis/AskAiApi.js.map +1 -1
  3. package/dist/assets/generated/parameter-schemas.json +188 -2
  4. package/dist/assets/generated/version +1 -1
  5. package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +1 -1
  6. package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
  7. package/dist/clients/AnthropicAwsBedrockGptClient.js +1 -1
  8. package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  9. package/dist/clients/AnthropicGptClient.d.ts +1 -1
  10. package/dist/clients/AnthropicGptClient.d.ts.map +1 -1
  11. package/dist/clients/AnthropicGptClient.js +1 -1
  12. package/dist/clients/AnthropicGptClient.js.map +1 -1
  13. package/dist/clients/GoogleGptClient.d.ts +1 -1
  14. package/dist/clients/GoogleGptClient.d.ts.map +1 -1
  15. package/dist/clients/GoogleGptClient.js +1 -1
  16. package/dist/clients/GoogleGptClient.js.map +1 -1
  17. package/dist/clients/GptClient.d.ts +1 -1
  18. package/dist/clients/GptClient.d.ts.map +1 -1
  19. package/dist/clients/OpenAiGptClient.d.ts +8 -1
  20. package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
  21. package/dist/clients/OpenAiGptClient.js +88 -3
  22. package/dist/clients/OpenAiGptClient.js.map +1 -1
  23. package/dist/clients/VercelAiGptClient.d.ts +1 -1
  24. package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
  25. package/dist/clients/VercelAiGptClient.js +1 -1
  26. package/dist/clients/VercelAiGptClient.js.map +1 -1
  27. package/dist/esm/apis/AskAiApi.js +1 -1
  28. package/dist/esm/apis/AskAiApi.js.map +1 -1
  29. package/dist/esm/assets/generated/parameter-schemas.json +188 -2
  30. package/dist/esm/assets/generated/version +1 -1
  31. package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +1 -1
  32. package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
  33. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +1 -1
  34. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  35. package/dist/esm/clients/AnthropicGptClient.d.ts +1 -1
  36. package/dist/esm/clients/AnthropicGptClient.d.ts.map +1 -1
  37. package/dist/esm/clients/AnthropicGptClient.js +1 -1
  38. package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
  39. package/dist/esm/clients/GoogleGptClient.d.ts +1 -1
  40. package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
  41. package/dist/esm/clients/GoogleGptClient.js +1 -1
  42. package/dist/esm/clients/GoogleGptClient.js.map +1 -1
  43. package/dist/esm/clients/GptClient.d.ts +1 -1
  44. package/dist/esm/clients/GptClient.d.ts.map +1 -1
  45. package/dist/esm/clients/OpenAiGptClient.d.ts +8 -1
  46. package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
  47. package/dist/esm/clients/OpenAiGptClient.js +88 -3
  48. package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
  49. package/dist/esm/clients/VercelAiGptClient.d.ts +1 -1
  50. package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
  51. package/dist/esm/clients/VercelAiGptClient.js +1 -1
  52. package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
  53. package/dist/esm/main.d.ts +1 -1
  54. package/dist/esm/main.d.ts.map +1 -1
  55. package/dist/esm/main.js +1 -1
  56. package/dist/esm/main.js.map +1 -1
  57. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  58. package/dist/esm/managers/CodeGenerator.js +21 -16
  59. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  60. package/dist/esm/managers/DonobuFlow.d.ts +12 -1
  61. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  62. package/dist/esm/managers/DonobuFlow.js +75 -62
  63. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  64. package/dist/esm/managers/DonobuFlowsManager.d.ts +3 -3
  65. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  66. package/dist/esm/managers/DonobuFlowsManager.js +7 -5
  67. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  68. package/dist/esm/models/BrowserConfig.d.ts +3 -4
  69. package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
  70. package/dist/esm/models/BrowserFramework.d.ts +1 -1
  71. package/dist/esm/models/BrowserFramework.d.ts.map +1 -1
  72. package/dist/esm/models/BrowserStateFlowReference.d.ts +5 -1
  73. package/dist/esm/models/BrowserStateFlowReference.d.ts.map +1 -1
  74. package/dist/esm/models/BrowserStorageState.d.ts +26 -0
  75. package/dist/esm/models/BrowserStorageState.d.ts.map +1 -0
  76. package/dist/esm/models/BrowserStorageState.js +3 -0
  77. package/dist/esm/models/BrowserStorageState.js.map +1 -0
  78. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  79. package/dist/esm/models/FlowMetadata.d.ts +1 -1
  80. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  81. package/dist/esm/persistence/FlowsPersistence.d.ts +1 -1
  82. package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
  83. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +1 -1
  84. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  85. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +1 -1
  86. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  87. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +1 -1
  88. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  89. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +1 -1
  90. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  91. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +1 -1
  92. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  93. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +1 -1
  94. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  95. package/dist/esm/playwrightTestExtensions.d.ts +143 -0
  96. package/dist/esm/playwrightTestExtensions.d.ts.map +1 -0
  97. package/dist/esm/playwrightTestExtensions.js +435 -0
  98. package/dist/esm/playwrightTestExtensions.js.map +1 -0
  99. package/dist/esm/test.d.ts +4 -4
  100. package/dist/esm/test.d.ts.map +1 -1
  101. package/dist/esm/test.js.map +1 -1
  102. package/dist/esm/tools/AssertTool.d.ts.map +1 -1
  103. package/dist/esm/tools/AssertTool.js +1 -1
  104. package/dist/esm/tools/AssertTool.js.map +1 -1
  105. package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
  106. package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
  107. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +2 -2
  108. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  109. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  110. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  111. package/dist/esm/tools/ScrollPageTool.js +2 -2
  112. package/dist/esm/tools/ScrollPageTool.js.map +1 -1
  113. package/dist/main.d.ts +1 -1
  114. package/dist/main.d.ts.map +1 -1
  115. package/dist/main.js +1 -1
  116. package/dist/main.js.map +1 -1
  117. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  118. package/dist/managers/CodeGenerator.js +21 -16
  119. package/dist/managers/CodeGenerator.js.map +1 -1
  120. package/dist/managers/DonobuFlow.d.ts +12 -1
  121. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  122. package/dist/managers/DonobuFlow.js +75 -62
  123. package/dist/managers/DonobuFlow.js.map +1 -1
  124. package/dist/managers/DonobuFlowsManager.d.ts +3 -3
  125. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  126. package/dist/managers/DonobuFlowsManager.js +7 -5
  127. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  128. package/dist/models/BrowserConfig.d.ts +3 -4
  129. package/dist/models/BrowserConfig.d.ts.map +1 -1
  130. package/dist/models/BrowserFramework.d.ts +1 -1
  131. package/dist/models/BrowserFramework.d.ts.map +1 -1
  132. package/dist/models/BrowserStateFlowReference.d.ts +5 -1
  133. package/dist/models/BrowserStateFlowReference.d.ts.map +1 -1
  134. package/dist/models/BrowserStorageState.d.ts +26 -0
  135. package/dist/models/BrowserStorageState.d.ts.map +1 -0
  136. package/dist/models/BrowserStorageState.js +3 -0
  137. package/dist/models/BrowserStorageState.js.map +1 -0
  138. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  139. package/dist/models/FlowMetadata.d.ts +1 -1
  140. package/dist/models/FlowMetadata.d.ts.map +1 -1
  141. package/dist/persistence/FlowsPersistence.d.ts +1 -1
  142. package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
  143. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +1 -1
  144. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  145. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +1 -1
  146. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  147. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +1 -1
  148. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  149. package/dist/persistence/FlowsPersistenceSqlite.d.ts +1 -1
  150. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  151. package/dist/persistence/FlowsPersistenceSupabase.d.ts +1 -1
  152. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  153. package/dist/persistence/FlowsPersistenceVolatile.d.ts +1 -1
  154. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  155. package/dist/playwrightTestExtensions.d.ts +143 -0
  156. package/dist/playwrightTestExtensions.d.ts.map +1 -0
  157. package/dist/playwrightTestExtensions.js +435 -0
  158. package/dist/playwrightTestExtensions.js.map +1 -0
  159. package/dist/test.d.ts +4 -4
  160. package/dist/test.d.ts.map +1 -1
  161. package/dist/test.js.map +1 -1
  162. package/dist/tools/AssertTool.d.ts.map +1 -1
  163. package/dist/tools/AssertTool.js +1 -1
  164. package/dist/tools/AssertTool.js.map +1 -1
  165. package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
  166. package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
  167. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +2 -2
  168. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  169. package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  170. package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  171. package/dist/tools/ScrollPageTool.js +2 -2
  172. package/dist/tools/ScrollPageTool.js.map +1 -1
  173. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { FlowMetadata } from '../models/FlowMetadata';
2
2
  import { ToolCall } from '../models/ToolCall';
3
3
  import { VideoSegment } from '../models/VideoSegment';
4
4
  import { FlowsPersistence, PaginatedFlowsResult } from './FlowsPersistence';
5
- import { BrowserStorageState } from '../models/BrowserState';
5
+ import { BrowserStorageState } from '../models/BrowserStorageState';
6
6
  import { FlowsQuery } from '../models/FlowsQuery';
7
7
  /**
8
8
  * A volatile (in-memory) implementation of FlowsPersistence.
@@ -1 +1 @@
1
- {"version":3,"file":"FlowsPersistenceVolatile.d.ts","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceVolatile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAEhE,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ1D,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAW9D,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAUL,gBAAgB,CAC3B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIZ,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAS9D;;OAEG;IACU,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmE1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAgBlB,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASZ,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAOH,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIH,eAAe,CAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAKzB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvD"}
1
+ {"version":3,"file":"FlowsPersistenceVolatile.d.ts","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceVolatile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAEhE,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ1D,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAW9D,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAUL,gBAAgB,CAC3B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIZ,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAS9D;;OAEG;IACU,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmE1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAgBlB,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASZ,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAOH,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIH,eAAe,CAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAKzB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvD"}
@@ -0,0 +1,143 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import type { Page } from '@playwright/test';
3
+ import { FlowMetadata } from './models/FlowMetadata';
4
+ import { BrowserStorageState } from './models/BrowserStorageState';
5
+ import { BrowserStateReference } from './models/BrowserStateFlowReference';
6
+ import { ToolCallResult } from './models/ToolCallResult';
7
+ import { AnalyzePageTextToolCoreParameters } from './tools/AnalyzePageTextTool';
8
+ import { AssertToolCoreParameters } from './tools/AssertTool';
9
+ import { GptClient } from './clients/GptClient';
10
+ import { SelectorBasedChooseSelectOptionToolParameters } from './tools/ChooseSelectOptionTool';
11
+ import { SelectorBasedInputRandomizedEmailAddressToolParameters } from './tools/InputRandomizedEmailAddressTool';
12
+ import { SelectorBasedInputTextToolParameters } from './tools/InputTextTool';
13
+ import { SelectorBasedPressKeyToolParameters } from './tools/PressKeyTool';
14
+ import { ScrollPageToolCoreParameters } from './tools/ScrollPageTool';
15
+ import { SelectorBasedHoverOverElementToolParameters } from './tools/HoverOverElementTool';
16
+ import { SelectorBasedClickToolParameters } from './tools/ClickTool';
17
+ import { LanguageModel } from 'ai';
18
+ import { AssertPageTextToolCoreParameters } from './tools/AssertPageTextTool';
19
+ import { DonobuStack } from './managers/DonobuStack';
20
+ import { JSONSchema7 } from 'json-schema';
21
+ /**
22
+ * Extends the Page object with additional test-related methods.
23
+ */
24
+ interface DonobuExtendedPage extends Page {
25
+ /**
26
+ * Run an arbitrary Donobu tool by name.
27
+ */
28
+ run(toolName: string, toolParams?: any): Promise<ToolCallResult>;
29
+ /**
30
+ * Run an analysis on the current webpage's full raw text. Note that since this runs an analysis on the raw text,
31
+ * rather than, the HTML of the page, the raw text may be a bit jumbled, have its styling lost, careful
32
+ * positioning lost, etc. This tool is useful if there happens to be a lot of text on a page, and it would be
33
+ * tedious to scroll through the entirety of the page in order to get enough context to run an analysis.
34
+ *
35
+ * If there is context relevant to running the analysis that would not be found in the webpage text itself,
36
+ * perhaps context given in another message, prompt, overall object, etc, then provide it in the
37
+ * "additionalRelevantContext" parameter.
38
+ */
39
+ analyzePageText(params: AnalyzePageTextToolCoreParameters): Promise<ToolCallResult>;
40
+ /**
41
+ * Assert that given text is visible in the current page.
42
+ */
43
+ assertPageText(params: AssertPageTextToolCoreParameters): Promise<ToolCallResult>;
44
+ /**
45
+ * Choose <option> values for a particular <select> HTML element.
46
+ */
47
+ chooseSelectOption(params: SelectorBasedChooseSelectOptionToolParameters): Promise<ToolCallResult>;
48
+ /**
49
+ * Click an element on a webpage.
50
+ */
51
+ clickElement(params: SelectorBasedClickToolParameters): Promise<ToolCallResult>;
52
+ /**
53
+ * Perform an analysis of the cookies for the current web browsing session.
54
+ */
55
+ createCookieReport(): Promise<ToolCallResult>;
56
+ /**
57
+ * Return an object conforming to the given JSON-schema. The object will be
58
+ * generated considering the following:
59
+ * - The given instruction (if any).
60
+ * - A screenshot of the current state of the page.
61
+ * - The history of actions taken on the page.
62
+ */
63
+ extract(params: {
64
+ instruction?: string;
65
+ schema: JSONSchema7;
66
+ }): Promise<Record<string, unknown>>;
67
+ /**
68
+ * Hover the mouse over a specified element on a webpage.
69
+ */
70
+ hoverOverElement(params: SelectorBasedHoverOverElementToolParameters): Promise<ToolCallResult>;
71
+ /**
72
+ * Create a new randomized email address based on a given email and inputs it to a specific input text field.
73
+ * For example if passed "foo@gmail.com", this tool will create "foo+SOMETHING_RANDOM@gmail.com", where
74
+ * SOMETHING_RANDOM is a random string of characters safe for use in an email address, and input it in the
75
+ * specified text field.
76
+ */
77
+ inputRandomizedEmailAddress(params: SelectorBasedInputRandomizedEmailAddressToolParameters): Promise<ToolCallResult>;
78
+ /**
79
+ * Input text to a webpage's text input box.
80
+ */
81
+ inputText(params: SelectorBasedInputTextToolParameters): Promise<ToolCallResult>;
82
+ /**
83
+ * Press a single key. Note that if there is existing text in the element, it is appended rather than cleared.
84
+ *
85
+ * Generally, prefer using the 'inputText' tool instead as it automatically clears existing text
86
+ * and it allows the input of multiple characters at a time. The only advantage this tool has is
87
+ * that it allows the passing of control keys like "Tab", "Backspace", etc.
88
+ */
89
+ pressKey(params: SelectorBasedPressKeyToolParameters): Promise<ToolCallResult>;
90
+ /**
91
+ * Run an web accessibility (i.e. axe-core) test on the current webpage.
92
+ */
93
+ runAccessibilityTest(): Promise<ToolCallResult>;
94
+ /**
95
+ * Scroll the current page up or down by one viewport.
96
+ */
97
+ scroll(params: ScrollPageToolCoreParameters): Promise<ToolCallResult>;
98
+ /**
99
+ * Visually assert that a given condition (i.e. the 'assertionToTestFor' field) holds true, using a screenshot of
100
+ * the current webpage.
101
+ */
102
+ visuallyAssert(params: AssertToolCoreParameters): Promise<ToolCallResult>;
103
+ _donobuFlowMetadata: FlowMetadata;
104
+ }
105
+ export declare function getOrCreateDonobuStack(): Promise<DonobuStack>;
106
+ export declare function getBrowserStorageState(flowIdOrName: BrowserStateReference): Promise<BrowserStorageState>;
107
+ export declare function getBrowserStorageStateFixture(flowIdOrName: BrowserStateReference): TestFixture<BrowserStorageState, any>;
108
+ export declare function anthropicClient(modelName: string, apiKey?: string): Promise<GptClient>;
109
+ export declare function anthropicClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
110
+ export declare function anthropicAwsBedrockClient(modelName: string, region: string, accessKeyId?: string, secretAccessKey?: string): Promise<GptClient>;
111
+ export declare function anthropicAwsBedrockClientFixture(modelName: string, region: string, accessKeyId?: string, secretAccessKey?: string): TestFixture<GptClient, any>;
112
+ export declare function googleGeminiClient(modelName: string, apiKey?: string): Promise<GptClient>;
113
+ export declare function googleGeminiClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
114
+ export declare function openAiClient(modelName: string, apiKey?: string): Promise<GptClient>;
115
+ export declare function openAiClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
116
+ export declare function vercelAiClientFixture(model: LanguageModel): TestFixture<GptClient, any>;
117
+ /**
118
+ * This fixture resolves a GPT client based on environment variables.
119
+ * Supplying different environment variables will result in different GPT
120
+ * clients being created. Here is a mapping of client type to environment
121
+ * variables for how to create the various types of clients...
122
+ *
123
+ * Anthropic GPT client requires:
124
+ * - ANTHROPIC_API_KEY
125
+ *
126
+ * Google GPT client requires:
127
+ * - GOOGLE_GENERATIVE_AI_API_KEY
128
+ *
129
+ * OpenAI GPT client requires:
130
+ * - OPENAI_API_KEY
131
+ *
132
+ * If the modelName is not specified, it will be defaulted according to the
133
+ * DEFAULT_GPT_MODEL_FOR_PLATFORM mapping.
134
+ */
135
+ export declare function gptClient(modelName?: string): Promise<GptClient>;
136
+ export declare function gptClientFixture(modelName?: string): TestFixture<GptClient, any>;
137
+ export * from 'playwright/test';
138
+ export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
139
+ storageState?: BrowserStorageState | Promise<BrowserStorageState>;
140
+ gptClient?: GptClient;
141
+ page: DonobuExtendedPage;
142
+ }, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
143
+ //# sourceMappingURL=playwrightTestExtensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwrightTestExtensions.d.ts","sourceRoot":"","sources":["../src/playwrightTestExtensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,435 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.test = void 0;
18
+ exports.getOrCreateDonobuStack = getOrCreateDonobuStack;
19
+ exports.getBrowserStorageState = getBrowserStorageState;
20
+ exports.getBrowserStorageStateFixture = getBrowserStorageStateFixture;
21
+ exports.anthropicClient = anthropicClient;
22
+ exports.anthropicClientFixture = anthropicClientFixture;
23
+ exports.anthropicAwsBedrockClient = anthropicAwsBedrockClient;
24
+ exports.anthropicAwsBedrockClientFixture = anthropicAwsBedrockClientFixture;
25
+ exports.googleGeminiClient = googleGeminiClient;
26
+ exports.googleGeminiClientFixture = googleGeminiClientFixture;
27
+ exports.openAiClient = openAiClient;
28
+ exports.openAiClientFixture = openAiClientFixture;
29
+ exports.vercelAiClientFixture = vercelAiClientFixture;
30
+ exports.gptClient = gptClient;
31
+ exports.gptClientFixture = gptClientFixture;
32
+ /**
33
+ * This code extends the Playwright Page object and test fixture with
34
+ * test-related Donobu methods.
35
+ */
36
+ const uuid_1 = require("uuid");
37
+ const test_1 = require("@playwright/test");
38
+ const RequestContextHolder_1 = require("./managers/RequestContextHolder");
39
+ const ToolManager_1 = require("./managers/ToolManager");
40
+ const ToolTipper_1 = require("./managers/ToolTipper");
41
+ const PlaywrightUtils_1 = require("./utils/PlaywrightUtils");
42
+ const MiscUtils_1 = require("./utils/MiscUtils");
43
+ const DonobuDeploymentEnvironment_1 = require("./models/DonobuDeploymentEnvironment");
44
+ const GptClientFactory_1 = require("./clients/GptClientFactory");
45
+ const VercelAiGptClient_1 = require("./clients/VercelAiGptClient");
46
+ const DonobuStack_1 = require("./managers/DonobuStack");
47
+ const DonobuFlow_1 = require("./managers/DonobuFlow");
48
+ const DEFAULT_FLOW_URL = 'https://example.com';
49
+ const DEFAULT_GPT_MODEL_FOR_PLATFORM = {
50
+ ANTHROPIC: 'claude-3-5-sonnet-latest',
51
+ GOOGLE_GEMINI: 'gemini-2.0-flash',
52
+ OPENAI: 'gpt-4o',
53
+ };
54
+ let donobuStack = undefined;
55
+ async function getOrCreateDonobuStack() {
56
+ if (!donobuStack) {
57
+ donobuStack = await (0, DonobuStack_1.setupDonobuStack)(DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL, new RequestContextHolder_1.RequestContextHolder());
58
+ return donobuStack;
59
+ }
60
+ else {
61
+ return donobuStack;
62
+ }
63
+ }
64
+ async function getBrowserStorageState(flowIdOrName) {
65
+ return (await getOrCreateDonobuStack()).flowsManager.getBrowserStorageState(flowIdOrName);
66
+ }
67
+ function getBrowserStorageStateFixture(flowIdOrName) {
68
+ return async ({}, use) => {
69
+ const storage = await (await getOrCreateDonobuStack()).flowsManager.getBrowserStorageState(flowIdOrName);
70
+ await use(storage);
71
+ };
72
+ }
73
+ async function anthropicClient(modelName, apiKey) {
74
+ const divinedApiKey = apiKey || process.env.ANTHROPIC_API_KEY;
75
+ if (!divinedApiKey) {
76
+ throw new Error('An API key is required to use the Anthropic API. Please provide one as an argument or set it using the ANTHROPIC_API_KEY environment variable.');
77
+ }
78
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
79
+ type: 'ANTHROPIC',
80
+ apiKey: divinedApiKey,
81
+ modelName: modelName,
82
+ });
83
+ }
84
+ function anthropicClientFixture(modelName, apiKey) {
85
+ return async ({}, use) => {
86
+ const client = await anthropicClient(modelName, apiKey);
87
+ await use(client);
88
+ };
89
+ }
90
+ async function anthropicAwsBedrockClient(modelName, region, accessKeyId, secretAccessKey) {
91
+ const divinedAccessKeyId = accessKeyId || process.env.AWS_ACCESS_KEY_ID;
92
+ const divinedSecretAccessKey = secretAccessKey || process.env.AWS_SECRET_ACCESS_KEY;
93
+ if (!divinedAccessKeyId || !divinedSecretAccessKey) {
94
+ throw new Error('AWS access key ID and secret access key are required to use the Anthropic AWS Bedrock API. Please provide them as arguments or set them using the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.');
95
+ }
96
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
97
+ type: 'ANTHROPIC_AWS_BEDROCK',
98
+ region: region,
99
+ modelName: modelName,
100
+ accessKeyId: divinedAccessKeyId,
101
+ secretAccessKey: divinedSecretAccessKey,
102
+ });
103
+ }
104
+ function anthropicAwsBedrockClientFixture(modelName, region, accessKeyId, secretAccessKey) {
105
+ return async ({}, use) => {
106
+ const client = await anthropicAwsBedrockClient(modelName, region, accessKeyId, secretAccessKey);
107
+ await use(client);
108
+ };
109
+ }
110
+ async function googleGeminiClient(modelName, apiKey) {
111
+ const divinedApiKey = apiKey || process.env.GOOGLE_GENERATIVE_AI_API_KEY;
112
+ if (!divinedApiKey) {
113
+ throw new Error('An API key is required to use the Google Gemini API. Please provide one as an argument or set it using the GOOGLE_GENERATIVE_AI_API_KEY environment variable.');
114
+ }
115
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
116
+ type: 'GOOGLE_GEMINI',
117
+ apiKey: divinedApiKey,
118
+ modelName: modelName,
119
+ });
120
+ }
121
+ function googleGeminiClientFixture(modelName, apiKey) {
122
+ return async ({}, use) => {
123
+ const client = await googleGeminiClient(modelName, apiKey);
124
+ await use(client);
125
+ };
126
+ }
127
+ async function openAiClient(modelName, apiKey) {
128
+ const divinedApiKey = apiKey || process.env.OPENAI_API_KEY;
129
+ if (!divinedApiKey) {
130
+ throw new Error('An API key is required to use the OpenAI API. Please provide one as an argument or set it using the OPENAI_API_KEY environment variable.');
131
+ }
132
+ return GptClientFactory_1.GptClientFactory.createFromGptConfig({
133
+ type: 'OPENAI',
134
+ apiKey: divinedApiKey,
135
+ modelName: modelName,
136
+ });
137
+ }
138
+ function openAiClientFixture(modelName, apiKey) {
139
+ return async ({}, use) => {
140
+ const client = await openAiClient(modelName, apiKey);
141
+ await use(client);
142
+ };
143
+ }
144
+ function vercelAiClientFixture(model) {
145
+ return async ({}, use) => {
146
+ const client = new VercelAiGptClient_1.VercelAiGptClient(model);
147
+ await use(client);
148
+ };
149
+ }
150
+ /**
151
+ * This fixture resolves a GPT client based on environment variables.
152
+ * Supplying different environment variables will result in different GPT
153
+ * clients being created. Here is a mapping of client type to environment
154
+ * variables for how to create the various types of clients...
155
+ *
156
+ * Anthropic GPT client requires:
157
+ * - ANTHROPIC_API_KEY
158
+ *
159
+ * Google GPT client requires:
160
+ * - GOOGLE_GENERATIVE_AI_API_KEY
161
+ *
162
+ * OpenAI GPT client requires:
163
+ * - OPENAI_API_KEY
164
+ *
165
+ * If the modelName is not specified, it will be defaulted according to the
166
+ * DEFAULT_GPT_MODEL_FOR_PLATFORM mapping.
167
+ */
168
+ async function gptClient(modelName) {
169
+ // Check which API keys are available
170
+ const hasAnthropicKey = !!process.env.ANTHROPIC_API_KEY;
171
+ const hasGoogleKey = !!process.env.GOOGLE_GENERATIVE_AI_API_KEY;
172
+ const hasOpenAiKey = !!process.env.OPENAI_API_KEY;
173
+ // Priority order: Anthropic, Google, OpenAI
174
+ if (hasAnthropicKey) {
175
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.ANTHROPIC;
176
+ return anthropicClient(model);
177
+ }
178
+ else if (hasGoogleKey) {
179
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.GOOGLE_GEMINI;
180
+ return googleGeminiClient(model);
181
+ }
182
+ else if (hasOpenAiKey) {
183
+ const model = modelName || DEFAULT_GPT_MODEL_FOR_PLATFORM.OPENAI;
184
+ return openAiClient(model);
185
+ }
186
+ else {
187
+ const donobu = await getOrCreateDonobuStack();
188
+ const defaultClient = (await donobu.flowsManager.createGptClient(null))
189
+ .gptClient;
190
+ if (defaultClient) {
191
+ return defaultClient;
192
+ }
193
+ else {
194
+ // No API keys are available and there is not flow-runner set up, throw an error.
195
+ throw new Error(`No API keys found for any supported GPT providers.
196
+ Please set one of the following environment variables: ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, or OPENAI_API_KEY.
197
+ Alternatively, set a flow-runner agent via POST /api/agents/flow-runner or via the Donobu app.`);
198
+ }
199
+ }
200
+ }
201
+ function gptClientFixture(modelName) {
202
+ return async ({}, use) => {
203
+ const client = await gptClient(modelName);
204
+ await use(client);
205
+ };
206
+ }
207
+ __exportStar(require("playwright/test"), exports);
208
+ exports.test = test_1.test.extend({
209
+ // 1) Declare `gptClient` as an "option" fixture with a default of `undefined`.
210
+ gptClient: [
211
+ undefined, // default
212
+ { option: true }, // so that test.use({ gptClient: ... }) can override
213
+ ],
214
+ // Override the default page fixture
215
+ page: async ({ page, gptClient }, use, testInfo) => {
216
+ // Patch the page with "run", but do it lazily
217
+ const donobu = await getOrCreateDonobuStack();
218
+ await page
219
+ .context()
220
+ .addInitScript(PlaywrightUtils_1.PlaywrightUtils.accessibilityTestInitScript());
221
+ await page
222
+ .context()
223
+ .addInitScript(PlaywrightUtils_1.PlaywrightUtils.clickableElementsTrackerInitScript());
224
+ await page
225
+ .context()
226
+ .addInitScript(PlaywrightUtils_1.PlaywrightUtils.dialogPromptTrackerInitScript());
227
+ await page
228
+ .context()
229
+ .addInitScript(PlaywrightUtils_1.PlaywrightUtils.smartSelectorGeneratorInitScript());
230
+ let isInitialized = false;
231
+ async function maybeInitDonobu() {
232
+ if (isInitialized) {
233
+ return;
234
+ }
235
+ const donobuTestFlowMetadata = {
236
+ id: (0, uuid_1.v4)(),
237
+ name: testInfo.title,
238
+ createdWithDonobuVersion: MiscUtils_1.MiscUtils.DONOBU_VERSION,
239
+ browser: {
240
+ using: {
241
+ type: 'device',
242
+ deviceName: 'Desktop Chromium',
243
+ headless: true,
244
+ },
245
+ },
246
+ gptConfigName: null,
247
+ hasGptConfigNameOverride: false,
248
+ customTools: null,
249
+ defaultToolTipDurationMilliseconds: 0,
250
+ runMode: 'DETERMINISTIC',
251
+ isControlPanelEnabled: false,
252
+ callbackUrl: null,
253
+ targetWebsite: DEFAULT_FLOW_URL,
254
+ overallObjective: testInfo.annotations.find((v) => {
255
+ return v.type === 'objective';
256
+ })?.description ?? null,
257
+ allowedTools: [],
258
+ resultJsonSchema: null,
259
+ result: null,
260
+ inputTokensUsed: 0,
261
+ completionTokensUsed: 0,
262
+ iterations: 0,
263
+ maxIterations: 0,
264
+ startedAt: new Date().getTime(),
265
+ completedAt: null,
266
+ state: 'RUNNING_ACTION',
267
+ nextState: null,
268
+ };
269
+ const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
270
+ await persistenceLayer.saveMetadata(donobuTestFlowMetadata);
271
+ page._donobuFlowMetadata = donobuTestFlowMetadata;
272
+ isInitialized = true;
273
+ }
274
+ const originalGoto = page.goto;
275
+ // Intercept 'page.goto' so that Donobu can later re-run it as a standard
276
+ // Donobu action if necessary. This can happen if you run a Playwright
277
+ // test using npx, but later decide to rerun that run using the Donobu UI.
278
+ page.goto = async (url, options) => {
279
+ await maybeInitDonobu();
280
+ const startedAt = new Date().getTime();
281
+ const flowId = page._donobuFlowMetadata.id;
282
+ const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
283
+ // Update the target website to whatever the first place we are
284
+ // navigating to is.
285
+ if (page._donobuFlowMetadata.targetWebsite === DEFAULT_FLOW_URL) {
286
+ page._donobuFlowMetadata = {
287
+ ...page._donobuFlowMetadata,
288
+ targetWebsite: url,
289
+ };
290
+ await persistenceLayer.saveMetadata(page._donobuFlowMetadata);
291
+ }
292
+ try {
293
+ const resp = await originalGoto.call(page, url, options);
294
+ const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takePngScreenshot(page);
295
+ const postCallImageId = await persistenceLayer.savePngScreenShot(flowId, postCallImage);
296
+ const completedAt = new Date().getTime();
297
+ await persistenceLayer.saveToolCall(flowId, {
298
+ id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
299
+ toolName: 'goToWebpage',
300
+ parameters: {
301
+ url: url,
302
+ },
303
+ outcome: {
304
+ isSuccessful: true,
305
+ forLlm: `Successfully navigated to ${url}`,
306
+ metadata: null,
307
+ },
308
+ postCallImageId: postCallImageId,
309
+ page: url,
310
+ startedAt: startedAt,
311
+ completedAt: completedAt,
312
+ });
313
+ return resp;
314
+ }
315
+ catch (error) {
316
+ const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takePngScreenshot(page);
317
+ const postCallImageId = await persistenceLayer.savePngScreenShot(flowId, postCallImage);
318
+ const completedAt = new Date().getTime();
319
+ await persistenceLayer.saveToolCall(flowId, {
320
+ id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
321
+ toolName: 'goToWebpage',
322
+ parameters: {
323
+ url: url,
324
+ },
325
+ outcome: {
326
+ isSuccessful: false,
327
+ forLlm: `FAILED! ${typeof error}: ${error.message}`,
328
+ metadata: null,
329
+ },
330
+ postCallImageId: postCallImageId,
331
+ page: url,
332
+ startedAt: startedAt,
333
+ completedAt: completedAt,
334
+ });
335
+ throw error;
336
+ }
337
+ };
338
+ page.run = async (toolName, toolParams) => {
339
+ await maybeInitDonobu();
340
+ const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
341
+ const clonedParams = toolParams
342
+ ? JSON.parse(JSON.stringify(toolParams))
343
+ : {};
344
+ clonedParams.rationale || (clonedParams.rationale = '');
345
+ const toolCallContext = {
346
+ flowsManager: donobu.flowsManager,
347
+ persistence: persistenceLayer,
348
+ gptClient: gptClient ?? null,
349
+ toolTipper: new ToolTipper_1.ToolTipper(0),
350
+ proposedToolCalls: [],
351
+ invokedToolCalls: [],
352
+ page: page,
353
+ metadata: page._donobuFlowMetadata,
354
+ toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
355
+ };
356
+ return new ToolManager_1.ToolManager(ToolManager_1.ToolManager.ALL_TOOLS)
357
+ .invokeTool(toolCallContext, toolName, clonedParams, false)
358
+ .then(async (result) => {
359
+ await persistenceLayer.saveMetadata(page._donobuFlowMetadata);
360
+ await persistenceLayer.saveToolCall(page._donobuFlowMetadata.id, result);
361
+ return result;
362
+ })
363
+ .then((result) => result.outcome);
364
+ };
365
+ page.analyzePageText = async (params) => {
366
+ return page.run('analyzePageText', params);
367
+ };
368
+ page.assertPageText = async (params) => {
369
+ return page.run('assertPageText', params);
370
+ };
371
+ page.chooseSelectOption = async (params) => {
372
+ return page.run('chooseSelectOption', params);
373
+ };
374
+ page.clickElement = async (params) => {
375
+ return page.run('click', params);
376
+ };
377
+ page.createCookieReport = async () => {
378
+ return page.run('createCookieReport');
379
+ };
380
+ page.extract = async (params) => {
381
+ await maybeInitDonobu();
382
+ if (!gptClient) {
383
+ throw Error('Cannot extract an object from page without a GPT client set up!');
384
+ }
385
+ const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
386
+ const toolCallHistory = await persistenceLayer.getToolCalls(page._donobuFlowMetadata.id);
387
+ const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(params.instruction ??
388
+ 'Generate an object conforming to the given JSON-schema', params.schema, page, toolCallHistory, gptClient);
389
+ page._donobuFlowMetadata.resultJsonSchema = params.schema;
390
+ page._donobuFlowMetadata.result = structuredOutputMessage.output;
391
+ await persistenceLayer.saveMetadata(page._donobuFlowMetadata);
392
+ return structuredOutputMessage.output;
393
+ };
394
+ page.hoverOverElement = async (params) => {
395
+ return page.run('hover', params);
396
+ };
397
+ page.inputRandomizedEmailAddress = async (params) => {
398
+ return page.run('inputRandomizedEmailAddress', params);
399
+ };
400
+ page.inputText = async (params) => {
401
+ return page.run('inputText', params);
402
+ };
403
+ page.pressKey = async (params) => {
404
+ return page.run('pressKey', params);
405
+ };
406
+ page.runAccessibilityTest = async () => {
407
+ return page.run('runAccessibilityTest');
408
+ };
409
+ page.scroll = async (params) => {
410
+ return page.run('scrollPage', params);
411
+ };
412
+ page.visuallyAssert = async (params) => {
413
+ return page.run('assert', params);
414
+ };
415
+ try {
416
+ // Let Playwright continue and give tests the patched page.
417
+ await use(page);
418
+ }
419
+ finally {
420
+ try {
421
+ const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
422
+ if (page._donobuFlowMetadata) {
423
+ page._donobuFlowMetadata.state = 'SUCCESS';
424
+ page._donobuFlowMetadata.completedAt = new Date().getTime();
425
+ await persistenceLayer.saveMetadata(page._donobuFlowMetadata);
426
+ }
427
+ }
428
+ catch (error) {
429
+ // Log but don't throw, to ensure cleanup continues.
430
+ console.error('Error during test cleanup:', error);
431
+ }
432
+ }
433
+ },
434
+ });
435
+ //# sourceMappingURL=playwrightTestExtensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwrightTestExtensions.js","sourceRoot":"","sources":["../src/playwrightTestExtensions.ts"],"names":[],"mappings":"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"}
package/dist/test.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { TestFixture } from '@playwright/test';
2
2
  import type { Page } from '@playwright/test';
3
3
  import { FlowMetadata } from './models/FlowMetadata';
4
- import { BrowserStorageState } from './models/BrowserState';
5
- import { BrowserStateFlowReference } from './models/BrowserStateFlowReference';
4
+ import { BrowserStorageState } from './models/BrowserStorageState';
5
+ import { BrowserStateReference } from './models/BrowserStateFlowReference';
6
6
  import { ToolCallResult } from './models/ToolCallResult';
7
7
  import { AnalyzePageTextToolCoreParameters } from './tools/AnalyzePageTextTool';
8
8
  import { AssertToolCoreParameters } from './tools/AssertTool';
@@ -38,8 +38,8 @@ interface DonobuExtendedPage extends Page {
38
38
  _donobuFlowMetadata: FlowMetadata;
39
39
  }
40
40
  export declare function getOrCreateDonobuStack(): Promise<DonobuStack>;
41
- export declare function getBrowserStorageState(flowIdOrName: BrowserStateFlowReference): Promise<BrowserStorageState>;
42
- export declare function getBrowserStorageStateFixture(flowIdOrName: BrowserStateFlowReference): TestFixture<BrowserStorageState, any>;
41
+ export declare function getBrowserStorageState(flowIdOrName: BrowserStateReference): Promise<BrowserStorageState>;
42
+ export declare function getBrowserStorageStateFixture(flowIdOrName: BrowserStateReference): TestFixture<BrowserStorageState, any>;
43
43
  export declare function anthropicClient(modelName: string, apiKey?: string): Promise<GptClient>;
44
44
  export declare function anthropicClientFixture(modelName: string, apiKey?: string): TestFixture<GptClient, any>;
45
45
  export declare function anthropicAwsBedrockClient(modelName: string, region: string, accessKeyId?: string, secretAccessKey?: string): Promise<GptClient>;