@dyyz1993/agent-browser 0.25.0 → 0.26.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 (217) hide show
  1. package/dist/__tests__/e2e/utils/test-helpers.d.ts +2 -2
  2. package/dist/__tests__/e2e/utils/test-helpers.d.ts.map +1 -1
  3. package/dist/__tests__/e2e/utils/test-helpers.js +6 -4
  4. package/dist/__tests__/e2e/utils/test-helpers.js.map +1 -1
  5. package/dist/actions/advanced.d.ts +73 -0
  6. package/dist/actions/advanced.d.ts.map +1 -0
  7. package/dist/actions/advanced.js +390 -0
  8. package/dist/actions/advanced.js.map +1 -0
  9. package/dist/actions/context.d.ts +36 -0
  10. package/dist/actions/context.d.ts.map +1 -0
  11. package/dist/actions/context.js +164 -0
  12. package/dist/actions/context.js.map +1 -0
  13. package/dist/actions/crawl.d.ts +8 -0
  14. package/dist/actions/crawl.d.ts.map +1 -0
  15. package/dist/actions/crawl.js +290 -0
  16. package/dist/actions/crawl.js.map +1 -0
  17. package/dist/actions/elements.d.ts +11 -0
  18. package/dist/actions/elements.d.ts.map +1 -0
  19. package/dist/actions/elements.js +78 -0
  20. package/dist/actions/elements.js.map +1 -0
  21. package/dist/actions/flow.d.ts +4 -0
  22. package/dist/actions/flow.d.ts.map +1 -0
  23. package/dist/actions/flow.js +170 -0
  24. package/dist/actions/flow.js.map +1 -0
  25. package/dist/actions/index.d.ts +7 -0
  26. package/dist/actions/index.d.ts.map +1 -0
  27. package/dist/actions/index.js +323 -0
  28. package/dist/actions/index.js.map +1 -0
  29. package/dist/actions/interact.d.ts +4 -0
  30. package/dist/actions/interact.d.ts.map +1 -0
  31. package/dist/actions/interact.js +162 -0
  32. package/dist/actions/interact.js.map +1 -0
  33. package/dist/actions/interaction.d.ts +31 -0
  34. package/dist/actions/interaction.d.ts.map +1 -0
  35. package/dist/actions/interaction.js +477 -0
  36. package/dist/actions/interaction.js.map +1 -0
  37. package/dist/actions/locators.d.ts +14 -0
  38. package/dist/actions/locators.d.ts.map +1 -0
  39. package/dist/actions/locators.js +310 -0
  40. package/dist/actions/locators.js.map +1 -0
  41. package/dist/actions/map.d.ts +4 -0
  42. package/dist/actions/map.d.ts.map +1 -0
  43. package/dist/actions/map.js +79 -0
  44. package/dist/actions/map.js.map +1 -0
  45. package/dist/actions/meta.d.ts +44 -0
  46. package/dist/actions/meta.d.ts.map +1 -0
  47. package/dist/actions/meta.js +190 -0
  48. package/dist/actions/meta.js.map +1 -0
  49. package/dist/actions/mouse.d.ts +8 -0
  50. package/dist/actions/mouse.d.ts.map +1 -0
  51. package/dist/actions/mouse.js +52 -0
  52. package/dist/actions/mouse.js.map +1 -0
  53. package/dist/actions/recorder.d.ts +20 -0
  54. package/dist/actions/recorder.d.ts.map +1 -0
  55. package/dist/actions/recorder.js +231 -0
  56. package/dist/actions/recorder.js.map +1 -0
  57. package/dist/actions/recording.d.ts +6 -0
  58. package/dist/actions/recording.d.ts.map +1 -0
  59. package/dist/actions/recording.js +22 -0
  60. package/dist/actions/recording.js.map +1 -0
  61. package/dist/actions/scrape.d.ts +10 -0
  62. package/dist/actions/scrape.d.ts.map +1 -0
  63. package/dist/actions/scrape.js +39 -0
  64. package/dist/actions/scrape.js.map +1 -0
  65. package/dist/actions/screencast.d.ts +8 -0
  66. package/dist/actions/screencast.d.ts.map +1 -0
  67. package/dist/actions/screencast.js +56 -0
  68. package/dist/actions/screencast.js.map +1 -0
  69. package/dist/actions/search.d.ts +4 -0
  70. package/dist/actions/search.d.ts.map +1 -0
  71. package/dist/actions/search.js +129 -0
  72. package/dist/actions/search.js.map +1 -0
  73. package/dist/actions/storage.d.ts +14 -0
  74. package/dist/actions/storage.d.ts.map +1 -0
  75. package/dist/actions/storage.js +63 -0
  76. package/dist/actions/storage.js.map +1 -0
  77. package/dist/actions/tabs.d.ts +16 -0
  78. package/dist/actions/tabs.d.ts.map +1 -0
  79. package/dist/actions/tabs.js +47 -0
  80. package/dist/actions/tabs.js.map +1 -0
  81. package/dist/actions/utils.d.ts +15 -0
  82. package/dist/actions/utils.d.ts.map +1 -0
  83. package/dist/actions/utils.js +234 -0
  84. package/dist/actions/utils.js.map +1 -0
  85. package/dist/browser/browser-manager.d.ts +249 -0
  86. package/dist/browser/browser-manager.d.ts.map +1 -0
  87. package/dist/browser/browser-manager.js +1251 -0
  88. package/dist/browser/browser-manager.js.map +1 -0
  89. package/dist/browser/index.d.ts +3 -0
  90. package/dist/browser/index.d.ts.map +1 -0
  91. package/dist/browser/index.js +2 -0
  92. package/dist/browser/index.js.map +1 -0
  93. package/dist/browser/network-tracker.d.ts +39 -0
  94. package/dist/browser/network-tracker.d.ts.map +1 -0
  95. package/dist/browser/network-tracker.js +287 -0
  96. package/dist/browser/network-tracker.js.map +1 -0
  97. package/dist/browser/providers.d.ts +27 -0
  98. package/dist/browser/providers.d.ts.map +1 -0
  99. package/dist/browser/providers.js +293 -0
  100. package/dist/browser/providers.js.map +1 -0
  101. package/dist/browser/recorder-manager.d.ts +69 -0
  102. package/dist/browser/recorder-manager.d.ts.map +1 -0
  103. package/dist/browser/recorder-manager.js +755 -0
  104. package/dist/browser/recorder-manager.js.map +1 -0
  105. package/dist/browser/recording-manager.d.ts +46 -0
  106. package/dist/browser/recording-manager.d.ts.map +1 -0
  107. package/dist/browser/recording-manager.js +156 -0
  108. package/dist/browser/recording-manager.js.map +1 -0
  109. package/dist/browser/screencast-manager.d.ts +49 -0
  110. package/dist/browser/screencast-manager.d.ts.map +1 -0
  111. package/dist/browser/screencast-manager.js +131 -0
  112. package/dist/browser/screencast-manager.js.map +1 -0
  113. package/dist/browser/types.d.ts +101 -0
  114. package/dist/browser/types.d.ts.map +1 -0
  115. package/dist/browser/types.js +2 -0
  116. package/dist/browser/types.js.map +1 -0
  117. package/dist/browser-events.d.ts +25 -0
  118. package/dist/browser-events.d.ts.map +1 -0
  119. package/dist/browser-events.js +15 -0
  120. package/dist/browser-events.js.map +1 -0
  121. package/dist/cli/commands.d.ts.map +1 -1
  122. package/dist/cli/commands.js +140 -1
  123. package/dist/cli/commands.js.map +1 -1
  124. package/dist/cli/connection.d.ts.map +1 -1
  125. package/dist/cli/connection.js +15 -22
  126. package/dist/cli/connection.js.map +1 -1
  127. package/dist/cli/help.d.ts.map +1 -1
  128. package/dist/cli/help.js +153 -3
  129. package/dist/cli/help.js.map +1 -1
  130. package/dist/cli/output.d.ts.map +1 -1
  131. package/dist/cli/output.js +72 -0
  132. package/dist/cli/output.js.map +1 -1
  133. package/dist/cli.js +3 -4
  134. package/dist/cli.js.map +1 -1
  135. package/dist/daemon.d.ts +1 -1
  136. package/dist/daemon.d.ts.map +1 -1
  137. package/dist/daemon.js +12 -13
  138. package/dist/daemon.js.map +1 -1
  139. package/dist/flow/exporters/playwright.d.ts +23 -1
  140. package/dist/flow/exporters/playwright.d.ts.map +1 -1
  141. package/dist/flow/exporters/playwright.js +333 -85
  142. package/dist/flow/exporters/playwright.js.map +1 -1
  143. package/dist/flow/exporters/python.d.ts +22 -0
  144. package/dist/flow/exporters/python.d.ts.map +1 -1
  145. package/dist/flow/exporters/python.js +325 -74
  146. package/dist/flow/exporters/python.js.map +1 -1
  147. package/dist/flow/exporters/selenium.d.ts.map +1 -1
  148. package/dist/flow/exporters/selenium.js +0 -1
  149. package/dist/flow/exporters/selenium.js.map +1 -1
  150. package/dist/flow/flow-executor.d.ts +1 -1
  151. package/dist/flow/flow-executor.d.ts.map +1 -1
  152. package/dist/flow/flow-executor.js +11 -11
  153. package/dist/flow/flow-executor.js.map +1 -1
  154. package/dist/flow/output.js.map +1 -1
  155. package/dist/flow/plugin-system.d.ts +1 -1
  156. package/dist/flow/plugin-system.d.ts.map +1 -1
  157. package/dist/flow/plugin-system.js +2 -2
  158. package/dist/flow/plugin-system.js.map +1 -1
  159. package/dist/flow/plugins/logging-plugin.js +1 -1
  160. package/dist/flow/plugins/logging-plugin.js.map +1 -1
  161. package/dist/flow/presets/console-capture.js +33 -14
  162. package/dist/flow/presets/fetch-capture.js +52 -23
  163. package/dist/flow/presets/sse-stream.js +35 -17
  164. package/dist/flow/presets/xhr-only.js +22 -12
  165. package/dist/flow/recorder-to-flow.d.ts.map +1 -1
  166. package/dist/flow/recorder-to-flow.js +1 -3
  167. package/dist/flow/recorder-to-flow.js.map +1 -1
  168. package/dist/flow/site-manager.d.ts.map +1 -1
  169. package/dist/flow/site-manager.js +6 -2
  170. package/dist/flow/site-manager.js.map +1 -1
  171. package/dist/human-mouse.d.ts +1 -1
  172. package/dist/human-mouse.d.ts.map +1 -1
  173. package/dist/human-mouse.js +2 -2
  174. package/dist/human-mouse.js.map +1 -1
  175. package/dist/protocol.d.ts.map +1 -1
  176. package/dist/protocol.js +90 -0
  177. package/dist/protocol.js.map +1 -1
  178. package/dist/rc-config.js +4 -4
  179. package/dist/rc-config.js.map +1 -1
  180. package/dist/recorder/inject.js +31 -5
  181. package/dist/snapshot.d.ts.map +1 -1
  182. package/dist/snapshot.js +3 -4
  183. package/dist/snapshot.js.map +1 -1
  184. package/dist/stream-server-standalone.d.ts +1 -1
  185. package/dist/stream-server-standalone.d.ts.map +1 -1
  186. package/dist/stream-server-standalone.js +42 -23
  187. package/dist/stream-server-standalone.js.map +1 -1
  188. package/dist/stream-server.d.ts +1 -1
  189. package/dist/stream-server.d.ts.map +1 -1
  190. package/dist/stream-server.js +26 -21
  191. package/dist/stream-server.js.map +1 -1
  192. package/dist/test-live.js +9 -3
  193. package/dist/test-live.js.map +1 -1
  194. package/dist/types.d.ts +122 -1
  195. package/dist/types.d.ts.map +1 -1
  196. package/dist/types.js.map +1 -1
  197. package/package.json +4 -3
  198. package/scripts/README.md +66 -0
  199. package/scripts/copy-flow-presets.js +25 -0
  200. package/scripts/douyin-flow-test.sh +72 -0
  201. package/scripts/douyin-test.sh +101 -0
  202. package/dist/actions.d.ts +0 -51
  203. package/dist/actions.d.ts.map +0 -1
  204. package/dist/actions.js +0 -2662
  205. package/dist/actions.js.map +0 -1
  206. package/dist/browser.d.ts +0 -651
  207. package/dist/browser.d.ts.map +0 -1
  208. package/dist/browser.js +0 -3088
  209. package/dist/browser.js.map +0 -1
  210. package/dist/ios-actions.d.ts +0 -11
  211. package/dist/ios-actions.d.ts.map +0 -1
  212. package/dist/ios-actions.js +0 -228
  213. package/dist/ios-actions.js.map +0 -1
  214. package/dist/ios-manager.d.ts +0 -266
  215. package/dist/ios-manager.d.ts.map +0 -1
  216. package/dist/ios-manager.js +0 -1076
  217. package/dist/ios-manager.js.map +0 -1
@@ -0,0 +1,234 @@
1
+ export const EXCLUDE_SELECTORS = [
2
+ 'header',
3
+ 'footer',
4
+ 'nav',
5
+ 'aside',
6
+ '.header',
7
+ '.top',
8
+ '.navbar',
9
+ '#header',
10
+ '.footer',
11
+ '.bottom',
12
+ '#footer',
13
+ '.sidebar',
14
+ '.side',
15
+ '.aside',
16
+ '#sidebar',
17
+ '.modal',
18
+ '.popup',
19
+ '#modal',
20
+ '.overlay',
21
+ '.ad',
22
+ '.ads',
23
+ '.advert',
24
+ '#ad',
25
+ '.lang-selector',
26
+ '.language',
27
+ '#language-selector',
28
+ '.social',
29
+ '.social-media',
30
+ '.social-links',
31
+ '#social',
32
+ '.menu',
33
+ '.navigation',
34
+ '#nav',
35
+ '.nav',
36
+ '.breadcrumbs',
37
+ '#breadcrumbs',
38
+ '.share',
39
+ '#share',
40
+ '.widget',
41
+ '#widget',
42
+ '.cookie',
43
+ '#cookie',
44
+ '.cookie-banner',
45
+ 'script',
46
+ 'style',
47
+ 'noscript',
48
+ 'iframe',
49
+ ];
50
+ export const FORCE_INCLUDE_SELECTORS = [
51
+ '#main',
52
+ '#content',
53
+ '#article',
54
+ '#post',
55
+ '.main',
56
+ '.content',
57
+ '.article',
58
+ '.post',
59
+ '.markdown-section',
60
+ '.theme-default-content',
61
+ '.md-content',
62
+ 'article[role="main"]',
63
+ 'main',
64
+ 'article',
65
+ ];
66
+ export async function extractContentFromPage(page, format, selector) {
67
+ if (selector) {
68
+ const loc = page.locator(selector).first();
69
+ switch (format) {
70
+ case 'text':
71
+ return await loc.evaluate((el) => el.innerText || '').catch(() => '');
72
+ case 'html':
73
+ return await loc.evaluate((el) => el.innerHTML || '').catch(() => '');
74
+ case 'markdown': {
75
+ const html = await loc
76
+ .evaluate((el) => el.innerHTML || '')
77
+ .catch(() => '');
78
+ return htmlToMarkdown(html);
79
+ }
80
+ }
81
+ }
82
+ for (const sel of FORCE_INCLUDE_SELECTORS) {
83
+ try {
84
+ const element = page.locator(sel).first();
85
+ const count = await element.count();
86
+ if (count === 0)
87
+ continue;
88
+ const text = await element.textContent();
89
+ if (text && text.trim().length > 50) {
90
+ switch (format) {
91
+ case 'text':
92
+ return (await element.textContent())?.trim() || '';
93
+ case 'html':
94
+ return await element.evaluate((el) => el.innerHTML);
95
+ case 'markdown': {
96
+ const html = await element.evaluate((el) => el.innerHTML);
97
+ return htmlToMarkdown(html);
98
+ }
99
+ }
100
+ }
101
+ }
102
+ catch {
103
+ continue;
104
+ }
105
+ }
106
+ const cleaned = await page.evaluate((excludeSelectors) => {
107
+ const clone = document.body.cloneNode(true);
108
+ for (const sel of excludeSelectors) {
109
+ const elements = clone.querySelectorAll(sel);
110
+ elements.forEach((el) => el.remove());
111
+ }
112
+ return {
113
+ text: clone.textContent?.trim() || '',
114
+ html: clone.innerHTML,
115
+ };
116
+ }, EXCLUDE_SELECTORS);
117
+ if (cleaned.text.length > 50) {
118
+ switch (format) {
119
+ case 'text':
120
+ return cleaned.text;
121
+ case 'html':
122
+ return cleaned.html;
123
+ case 'markdown':
124
+ return htmlToMarkdown(cleaned.html);
125
+ }
126
+ }
127
+ switch (format) {
128
+ case 'text':
129
+ return await page.evaluate(() => document.body?.innerText || '');
130
+ case 'html':
131
+ return await page.evaluate(() => document.documentElement?.outerHTML || '');
132
+ case 'markdown': {
133
+ const html = await page.evaluate(() => document.documentElement?.outerHTML || '');
134
+ return htmlToMarkdown(html);
135
+ }
136
+ }
137
+ }
138
+ export async function assertElementExists(locator, selector, isRef) {
139
+ const count = await locator.count();
140
+ if (count === 0) {
141
+ if (isRef) {
142
+ throw new Error(`Element ref "${selector}" not found. ` + `Run 'snapshot' to get updated element refs.`);
143
+ }
144
+ else {
145
+ throw new Error(`No element matches selector "${selector}". ` + `Run 'snapshot' to see available elements.`);
146
+ }
147
+ }
148
+ }
149
+ export function toAIFriendlyError(error, selector) {
150
+ const message = error instanceof Error ? error.message : String(error);
151
+ if (message.includes('strict mode violation')) {
152
+ const countMatch = message.match(/resolved to (\d+) elements/);
153
+ const count = countMatch ? countMatch[1] : 'multiple';
154
+ return new Error(`Selector "${selector}" matched ${count} elements. ` +
155
+ `Run 'snapshot' to get updated refs, or use a more specific CSS selector. ` +
156
+ `Tip: Use 'find nth <index> ${selector} --click' to target a specific match.`);
157
+ }
158
+ if (message.includes('intercepts pointer events')) {
159
+ return new Error(`Element "${selector}" is blocked by another element (likely a modal or overlay). ` +
160
+ `Try dismissing any modals/cookie banners first. ` +
161
+ `Tip: Run 'snapshot -i' to see all visible elements and identify what's blocking.`);
162
+ }
163
+ if (message.includes('not visible') && !message.includes('Timeout')) {
164
+ return new Error(`Element "${selector}" is not visible. ` +
165
+ `Try 'scrollintoview ${selector}' or check if it's hidden. ` +
166
+ `Tip: Run 'is visible ${selector}' to confirm visibility state.`);
167
+ }
168
+ if (message.includes('Timeout') && message.includes('exceeded')) {
169
+ return new Error(`Action on "${selector}" timed out. The element may be blocked, still loading, or not interactable. ` +
170
+ `Run 'snapshot' to check the current page state. ` +
171
+ `Tip: If the page is still loading, try 'wait --load networkidle' first.`);
172
+ }
173
+ if (message.includes('waiting for') &&
174
+ (message.includes('to be visible') || message.includes('Timeout'))) {
175
+ return new Error(`Element "${selector}" not found or not visible. ` +
176
+ `Run 'snapshot -i' to see current page elements and their refs. ` +
177
+ `Tip: If using @ref, the page may have changed. Re-run 'snapshot -i' to get fresh refs.`);
178
+ }
179
+ if (message.includes('Execution context was destroyed') || message.includes('Target closed')) {
180
+ return new Error(`Browser context was lost (page navigated or closed). ` +
181
+ `Re-open the page with 'open <url>' and start fresh. ` +
182
+ `Tip: This usually happens after a form submission triggers navigation.`);
183
+ }
184
+ if (message.includes('querySelector') || message.includes('is not a valid selector')) {
185
+ return new Error(`Invalid selector "${selector}". ` +
186
+ `CSS selectors like '#id', '.class', or 'tag' are supported. ` +
187
+ `Tip: Use 'snapshot -i' to get @ref selectors (e.g., @e1) that are always valid.`);
188
+ }
189
+ return error instanceof Error ? error : new Error(message);
190
+ }
191
+ export function htmlToMarkdown(html) {
192
+ let md = html;
193
+ md = md.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
194
+ md = md.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '');
195
+ md = md.replace(/<pre[^>]*><code[^>]*>([\s\S]*?)<\/code><\/pre>/gis, '\n```\n$1\n```\n');
196
+ md = md.replace(/<pre[^>]*>([\s\S]*?)<\/pre>/gis, '\n```\n$1\n```\n');
197
+ md = md.replace(/<code[^>]*>(.*?)<\/code>/gis, '`$1`');
198
+ md = md.replace(/<h1[^>]*>(.*?)<\/h1>/gis, '\n# $1\n\n');
199
+ md = md.replace(/<h2[^>]*>(.*?)<\/h2>/gis, '\n## $1\n\n');
200
+ md = md.replace(/<h3[^>]*>(.*?)<\/h3>/gis, '\n### $1\n\n');
201
+ md = md.replace(/<h4[^>]*>(.*?)<\/h4>/gis, '\n#### $1\n\n');
202
+ md = md.replace(/<h5[^>]*>(.*?)<\/h5>/gis, '\n##### $1\n\n');
203
+ md = md.replace(/<h6[^>]*>(.*?)<\/h6>/gis, '\n###### $1\n\n');
204
+ md = md.replace(/<strong[^>]*>(.*?)<\/strong>/gis, '**$1**');
205
+ md = md.replace(/<b[^>]*>(.*?)<\/b>/gis, '**$1**');
206
+ md = md.replace(/<em[^>]*>(.*?)<\/em>/gis, '*$1*');
207
+ md = md.replace(/<i[^>]*>(.*?)<\/i>/gis, '*$1*');
208
+ md = md.replace(/<p[^>]*>(.*?)<\/p>/gis, '\n$1\n\n');
209
+ md = md.replace(/<div[^>]*>(.*?)<\/div>/gis, '\n$1\n');
210
+ md = md.replace(/<br\s*\/?>/gi, '\n');
211
+ md = md.replace(/<ul[^>]*>([\s\S]*?)<\/ul>/gis, (_match, content) => {
212
+ return '\n' + content.replace(/<li[^>]*>(.*?)<\/li>/gis, '- $1\n') + '\n';
213
+ });
214
+ md = md.replace(/<ol[^>]*>([\s\S]*?)<\/ol>/gis, (_match, content) => {
215
+ let index = 1;
216
+ return '\n' + content.replace(/<li[^>]*>(.*?)<\/li>/gis, () => `${index++}. $1\n`) + '\n';
217
+ });
218
+ md = md.replace(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/gis, '[$2]($1)');
219
+ md = md.replace(/<img[^>]*src="([^"]*)"[^>]*alt="([^"]*)"[^>]*>/gis, '![$2]($1)');
220
+ md = md.replace(/<img[^>]*alt="([^"]*)"[^>]*src="([^"]*)"[^>]*>/gis, '![$1]($2)');
221
+ md = md.replace(/<img[^>]*src="([^"]*)"[^>]*>/gis, '![]($1)');
222
+ md = md.replace(/<blockquote[^>]*>(.*?)<\/blockquote>/gis, '\n> $1\n\n');
223
+ md = md.replace(/<hr[^>]*>/gi, '\n---\n');
224
+ md = md.replace(/<[^>]+>/g, '');
225
+ md = md.replace(/&nbsp;/g, ' ');
226
+ md = md.replace(/&amp;/g, '&');
227
+ md = md.replace(/&lt;/g, '<');
228
+ md = md.replace(/&gt;/g, '>');
229
+ md = md.replace(/&quot;/g, '"');
230
+ md = md.replace(/&#39;/g, "'");
231
+ md = md.replace(/\n{3,}/g, '\n\n');
232
+ return md.trim();
233
+ }
234
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/actions/utils.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,MAAM;IACN,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,KAAK;IACL,MAAM;IACN,SAAS;IACT,KAAK;IACL,gBAAgB;IAChB,WAAW;IACX,oBAAoB;IACpB,SAAS;IACT,eAAe;IACf,eAAe;IACf,SAAS;IACT,OAAO;IACP,aAAa;IACb,MAAM;IACN,MAAM;IACN,cAAc;IACd,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,QAAQ;IACR,OAAO;IACP,UAAU;IACV,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO;IACP,UAAU;IACV,UAAU;IACV,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,OAAO;IACP,mBAAmB;IACnB,wBAAwB;IACxB,aAAa;IACb,sBAAsB;IACtB,MAAM;IACN,SAAS;CACV,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,MAAoC,EACpC,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,EAAkB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzF,KAAK,MAAM;gBACT,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,EAAkB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzF,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,MAAM,GAAG;qBACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,EAAkB,CAAC,SAAS,IAAI,EAAE,CAAC;qBACrD,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,KAAK,KAAK,CAAC;gBAAE,SAAS;YAE1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACpC,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,MAAM;wBACT,OAAO,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACrD,KAAK,MAAM;wBACT,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,EAAkB,CAAC,SAAS,CAAC,CAAC;oBACvE,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,EAAkB,CAAC,SAAS,CAAC,CAAC;wBAC3E,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,gBAA0B,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;YACrC,IAAI,EAAE,KAAK,CAAC,SAAS;SACtB,CAAC;IACJ,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEtB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC7B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,IAAI,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,IAAI,CAAC;YACtB,KAAK,UAAU;gBACb,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC9E,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,QAAgB,EAChB,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,eAAe,GAAG,6CAA6C,CACxF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,gCAAgC,QAAQ,KAAK,GAAG,2CAA2C,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,QAAgB;IAChE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAEtD,OAAO,IAAI,KAAK,CACd,aAAa,QAAQ,aAAa,KAAK,aAAa;YAClD,2EAA2E;YAC3E,8BAA8B,QAAQ,uCAAuC,CAChF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,KAAK,CACd,YAAY,QAAQ,+DAA+D;YACjF,kDAAkD;YAClD,kFAAkF,CACrF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,KAAK,CACd,YAAY,QAAQ,oBAAoB;YACtC,uBAAuB,QAAQ,6BAA6B;YAC5D,wBAAwB,QAAQ,gCAAgC,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,KAAK,CACd,cAAc,QAAQ,+EAA+E;YACnG,kDAAkD;YAClD,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IAED,IACE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAClE,CAAC;QACD,OAAO,IAAI,KAAK,CACd,YAAY,QAAQ,8BAA8B;YAChD,iEAAiE;YACjE,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,KAAK,CACd,uDAAuD;YACrD,sDAAsD;YACtD,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,KAAK,CACd,qBAAqB,QAAQ,KAAK;YAChC,8DAA8D;YAC9D,iFAAiF,CACpF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,EAAE,GAAG,IAAI,CAAC;IAEd,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;IACvD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;IAEzD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,EAAE,kBAAkB,CAAC,CAAC;IACzF,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,EAAE,kBAAkB,CAAC,CAAC;IACtE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAEvD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACzD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;IAC1D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;IAC3D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;IAC5D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IAC7D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;IAE9D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;IAC7D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;IACnD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACnD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAEjD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;IACrD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;IACvD,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAEtC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAClE,OAAO,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAClE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,0CAA0C,EAAE,UAAU,CAAC,CAAC;IACxE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;IAClF,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;IAClF,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;IAE9D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAC;IACzE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE1C,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEhC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE/B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC"}
@@ -0,0 +1,249 @@
1
+ import { devices, type Browser, type Page, type Frame, type Locator, type CDPSession } from 'playwright-core';
2
+ import type { LaunchCommand } from '../types.js';
3
+ import { type RefMap, type EnhancedSnapshot } from '../snapshot.js';
4
+ import { SnapshotStore } from '../snapshot-store.js';
5
+ import { NetworkTracker } from './network-tracker.js';
6
+ import { ScreencastManager } from './screencast-manager.js';
7
+ import { RecordingManager } from './recording-manager.js';
8
+ import { RecorderManager } from './recorder-manager.js';
9
+ import type { ScreencastFrame, ScreencastOptions } from './types.js';
10
+ export type { ScreencastFrame, ScreencastOptions } from './types.js';
11
+ export declare class BrowserManager {
12
+ private browser;
13
+ private cdpEndpoint;
14
+ private isPersistentContext;
15
+ private browserbaseSessionId;
16
+ private browserbaseApiKey;
17
+ private browserUseSessionId;
18
+ private browserUseApiKey;
19
+ private kernelSessionId;
20
+ private kernelApiKey;
21
+ private contexts;
22
+ private pages;
23
+ private activePageIndex;
24
+ private dialogHandler;
25
+ private isRecordingHar;
26
+ private refMap;
27
+ private lastSnapshot;
28
+ private snapshotStore;
29
+ private scopedHeaderRoutes;
30
+ private commandHistory;
31
+ private cdpSession;
32
+ private routes;
33
+ readonly network: NetworkTracker;
34
+ readonly screencast: ScreencastManager;
35
+ readonly recording: RecordingManager;
36
+ readonly recorder: RecorderManager;
37
+ constructor();
38
+ isLaunched(): boolean;
39
+ getSnapshot(options?: {
40
+ interactive?: boolean;
41
+ cursor?: boolean;
42
+ maxDepth?: number;
43
+ compact?: boolean;
44
+ selector?: string;
45
+ framePath?: string;
46
+ path?: boolean;
47
+ attrs?: boolean;
48
+ selectors?: boolean;
49
+ all?: boolean;
50
+ }): Promise<EnhancedSnapshot & {
51
+ snapshotId?: string;
52
+ }>;
53
+ ensureSelectorsGenerated(snapId: string): Promise<boolean>;
54
+ getRefMap(): RefMap;
55
+ getSnapshotStore(): SnapshotStore;
56
+ recordCommand(action: string, selector: string, value: string | undefined, success: boolean): void;
57
+ getHistory(filter?: string): Array<{
58
+ action: string;
59
+ selector: string;
60
+ value?: string;
61
+ success: boolean;
62
+ timestamp: number;
63
+ }>;
64
+ clearHistory(): void;
65
+ getLocatorFromRef(refArg: string, framePath?: string): Locator | null;
66
+ isRef(selector: string): boolean;
67
+ getLocator(selectorOrRef: string, framePath?: string): Locator;
68
+ getPage(): Page;
69
+ getFrame(framePath?: string): Frame;
70
+ private getFrameByPath;
71
+ private findMatchingFrame;
72
+ listFrames(): Array<{
73
+ name: string;
74
+ url: string;
75
+ path: string;
76
+ }>;
77
+ setDialogHandler(response: 'accept' | 'dismiss', promptText?: string): void;
78
+ clearDialogHandler(): void;
79
+ startRequestTracking(captureResponse?: boolean): void;
80
+ get trackingEnabled(): boolean;
81
+ getRequests(filter?: string, type?: 'json'): import("./types.js").TrackedRequest[];
82
+ clearRequests(): void;
83
+ startWebSocketTracking(): void;
84
+ get wsTrackingEnabled(): boolean;
85
+ getWebSockets(filter?: string): import("./types.js").TrackedWebSocket[];
86
+ clearWebSockets(): void;
87
+ saveRequestsToDir(outputDir: string, filter?: string, type?: 'json'): {
88
+ savedCount: number;
89
+ outputPath: string;
90
+ indexPath: string;
91
+ };
92
+ startConsoleTracking(): void;
93
+ getConsoleMessages(): import("./types.js").ConsoleMessage[];
94
+ clearConsoleMessages(): void;
95
+ startErrorTracking(): void;
96
+ getPageErrors(): import("./types.js").PageError[];
97
+ clearPageErrors(): void;
98
+ addRoute(url: string, options: {
99
+ response?: {
100
+ status?: number;
101
+ body?: string;
102
+ contentType?: string;
103
+ headers?: Record<string, string>;
104
+ };
105
+ abort?: boolean;
106
+ }): Promise<void>;
107
+ removeRoute(url?: string): Promise<void>;
108
+ setGeolocation(latitude: number, longitude: number, accuracy?: number): Promise<void>;
109
+ setPermissions(permissions: string[], grant: boolean): Promise<void>;
110
+ setViewport(width: number, height: number): Promise<void>;
111
+ setDeviceScaleFactor(deviceScaleFactor: number, width: number, height: number, mobile?: boolean): Promise<void>;
112
+ clearDeviceMetricsOverride(): Promise<void>;
113
+ getDevice(deviceName: string): (typeof devices)[keyof typeof devices] | undefined;
114
+ listDevices(): string[];
115
+ startHarRecording(): Promise<void>;
116
+ isHarRecording(): boolean;
117
+ setOffline(offline: boolean): Promise<void>;
118
+ setExtraHeaders(headers: Record<string, string>): Promise<void>;
119
+ setScopedHeaders(origin: string, headers: Record<string, string>): Promise<void>;
120
+ clearScopedHeaders(origin?: string): Promise<void>;
121
+ startTracing(options: {
122
+ screenshots?: boolean;
123
+ snapshots?: boolean;
124
+ }): Promise<void>;
125
+ stopTracing(path: string): Promise<void>;
126
+ saveStorageState(path: string): Promise<void>;
127
+ getPages(): Page[];
128
+ getActiveIndex(): number;
129
+ getBrowser(): Browser | null;
130
+ private isCdpConnectionAlive;
131
+ private needsCdpReconnect;
132
+ launch(options: LaunchCommand): Promise<void>;
133
+ private setupPageTracking;
134
+ private setupContextTracking;
135
+ newTab(): Promise<{
136
+ index: number;
137
+ total: number;
138
+ }>;
139
+ newWindow(viewport?: {
140
+ width: number;
141
+ height: number;
142
+ }): Promise<{
143
+ index: number;
144
+ total: number;
145
+ }>;
146
+ private invalidateCDPSession;
147
+ switchTo(index: number): Promise<{
148
+ index: number;
149
+ url: string;
150
+ title: string;
151
+ }>;
152
+ closeTab(index?: number): Promise<{
153
+ closed: number;
154
+ remaining: number;
155
+ }>;
156
+ listTabs(): Promise<Array<{
157
+ index: number;
158
+ url: string;
159
+ title: string;
160
+ active: boolean;
161
+ }>>;
162
+ getCDPSession(): Promise<CDPSession>;
163
+ isScreencasting(): boolean;
164
+ startScreencast(callback: (frame: ScreencastFrame) => void, options?: ScreencastOptions): Promise<void>;
165
+ stopScreencast(): Promise<void>;
166
+ injectMouseEvent(params: {
167
+ type: 'mousePressed' | 'mouseReleased' | 'mouseMoved' | 'mouseWheel';
168
+ x: number;
169
+ y: number;
170
+ button?: 'left' | 'right' | 'middle' | 'none';
171
+ clickCount?: number;
172
+ deltaX?: number;
173
+ deltaY?: number;
174
+ modifiers?: number;
175
+ }): Promise<void>;
176
+ injectKeyboardEvent(params: {
177
+ type: 'keyDown' | 'keyUp' | 'rawKeyDown' | 'char';
178
+ key?: string;
179
+ code?: string;
180
+ text?: string;
181
+ modifiers?: number;
182
+ }): Promise<void>;
183
+ injectTouchEvent(params: {
184
+ type: 'touchStart' | 'touchEnd' | 'touchMove' | 'touchCancel';
185
+ touchPoints: Array<{
186
+ x: number;
187
+ y: number;
188
+ id?: number;
189
+ }>;
190
+ modifiers?: number;
191
+ }): Promise<void>;
192
+ insertText(text: string): Promise<void>;
193
+ private _lastFillSelector;
194
+ private _lastFillValue;
195
+ private _fillFocusedSelector;
196
+ fillValue(selector: string, value: string): Promise<void>;
197
+ clearFillState(selector?: string): void;
198
+ blurElement(selector: string): Promise<void>;
199
+ pressKey(key: string): Promise<void>;
200
+ injectFocusListener(onEvent: (data: {
201
+ type: string;
202
+ [key: string]: unknown;
203
+ }) => void): Promise<void>;
204
+ isRecording(): boolean;
205
+ isRecordingSession(): boolean;
206
+ injectRecorderIfNeeded(): Promise<void>;
207
+ get recorderPaused(): boolean;
208
+ set recorderPaused(val: boolean);
209
+ pauseRecording(): void;
210
+ resumeRecording(): void;
211
+ recordStep(step: {
212
+ action: string;
213
+ index?: number;
214
+ key?: string;
215
+ code?: string;
216
+ ctrlKey?: boolean;
217
+ metaKey?: boolean;
218
+ altKey?: boolean;
219
+ shiftKey?: boolean;
220
+ selector?: string;
221
+ value?: string;
222
+ }): void;
223
+ startRecording(outputPath: string, url?: string): Promise<void>;
224
+ stopRecording(): Promise<{
225
+ path: string;
226
+ frames: number;
227
+ error?: string;
228
+ }>;
229
+ restartRecording(outputPath: string, url?: string): Promise<{
230
+ previousPath?: string;
231
+ stopped: boolean;
232
+ }>;
233
+ startRecorder(url?: string, hide?: boolean): Promise<{
234
+ started: boolean;
235
+ sessionId: string;
236
+ }>;
237
+ stopRecorder(): Promise<{
238
+ yaml: string;
239
+ steps: number;
240
+ wasRecording?: boolean;
241
+ }>;
242
+ getRecorderStatus(): {
243
+ isRecording: boolean;
244
+ sessionId?: string;
245
+ steps: number;
246
+ };
247
+ close(): Promise<void>;
248
+ }
249
+ //# sourceMappingURL=browser-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-manager.d.ts","sourceRoot":"","sources":["../../src/browser/browser-manager.ts"],"names":[],"mappings":"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"}