bedrock-agentcore 0.0.1 → 0.1.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 (96) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +151 -9
  3. package/dist/src/tools/browser/client.d.ts +125 -0
  4. package/dist/src/tools/browser/client.d.ts.map +1 -0
  5. package/dist/src/tools/browser/client.js +320 -0
  6. package/dist/src/tools/browser/client.js.map +1 -0
  7. package/dist/src/tools/browser/index.d.ts +4 -0
  8. package/dist/src/tools/browser/index.d.ts.map +1 -0
  9. package/dist/src/tools/browser/index.js +3 -0
  10. package/dist/src/tools/browser/index.js.map +1 -0
  11. package/dist/src/tools/browser/integrations/playwright/client.d.ts +147 -0
  12. package/dist/src/tools/browser/integrations/playwright/client.d.ts.map +1 -0
  13. package/dist/src/tools/browser/integrations/playwright/client.js +324 -0
  14. package/dist/src/tools/browser/integrations/playwright/client.js.map +1 -0
  15. package/dist/src/tools/browser/integrations/playwright/index.d.ts +20 -0
  16. package/dist/src/tools/browser/integrations/playwright/index.d.ts.map +1 -0
  17. package/dist/src/tools/browser/integrations/playwright/index.js +19 -0
  18. package/dist/src/tools/browser/integrations/playwright/index.js.map +1 -0
  19. package/dist/src/tools/browser/integrations/playwright/types.d.ts +169 -0
  20. package/dist/src/tools/browser/integrations/playwright/types.d.ts.map +1 -0
  21. package/dist/src/tools/browser/integrations/playwright/types.js +2 -0
  22. package/dist/src/tools/browser/integrations/playwright/types.js.map +1 -0
  23. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts +18 -0
  24. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts.map +1 -0
  25. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js +31 -0
  26. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js.map +1 -0
  27. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts +18 -0
  28. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts.map +1 -0
  29. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js +32 -0
  30. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js.map +1 -0
  31. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts +17 -0
  32. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts.map +1 -0
  33. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js +30 -0
  34. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js.map +1 -0
  35. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts +17 -0
  36. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts.map +1 -0
  37. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js +30 -0
  38. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js.map +1 -0
  39. package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts +19 -0
  40. package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts.map +1 -0
  41. package/dist/src/tools/browser/integrations/vercel-ai/index.js +19 -0
  42. package/dist/src/tools/browser/integrations/vercel-ai/index.js.map +1 -0
  43. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts +19 -0
  44. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts.map +1 -0
  45. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js +39 -0
  46. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js.map +1 -0
  47. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts +22 -0
  48. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts.map +1 -0
  49. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js +44 -0
  50. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js.map +1 -0
  51. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts +123 -0
  52. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts.map +1 -0
  53. package/dist/src/tools/browser/integrations/vercel-ai/tools.js +145 -0
  54. package/dist/src/tools/browser/integrations/vercel-ai/tools.js.map +1 -0
  55. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts +20 -0
  56. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts.map +1 -0
  57. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js +35 -0
  58. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js.map +1 -0
  59. package/dist/src/tools/browser/types.d.ts +336 -0
  60. package/dist/src/tools/browser/types.d.ts.map +1 -0
  61. package/dist/src/tools/browser/types.js +17 -0
  62. package/dist/src/tools/browser/types.js.map +1 -0
  63. package/dist/src/tools/code-interpreter/client.d.ts +212 -0
  64. package/dist/src/tools/code-interpreter/client.d.ts.map +1 -0
  65. package/dist/src/tools/code-interpreter/client.js +512 -0
  66. package/dist/src/tools/code-interpreter/client.js.map +1 -0
  67. package/dist/src/tools/code-interpreter/index.d.ts +4 -0
  68. package/dist/src/tools/code-interpreter/index.d.ts.map +1 -0
  69. package/dist/src/tools/code-interpreter/index.js +5 -0
  70. package/dist/src/tools/code-interpreter/index.js.map +1 -0
  71. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts +27 -0
  72. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts.map +1 -0
  73. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js +46 -0
  74. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js.map +1 -0
  75. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts +26 -0
  76. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts.map +1 -0
  77. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js +41 -0
  78. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js.map +1 -0
  79. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts +32 -0
  80. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts.map +1 -0
  81. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js +77 -0
  82. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js.map +1 -0
  83. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts +26 -0
  84. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts.map +1 -0
  85. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js +26 -0
  86. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js.map +1 -0
  87. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts +94 -0
  88. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts.map +1 -0
  89. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js +112 -0
  90. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js.map +1 -0
  91. package/dist/src/tools/code-interpreter/types.d.ts +473 -0
  92. package/dist/src/tools/code-interpreter/types.d.ts.map +1 -0
  93. package/dist/src/tools/code-interpreter/types.js +52 -0
  94. package/dist/src/tools/code-interpreter/types.js.map +1 -0
  95. package/package.json +99 -12
  96. package/index.js +0 -4
@@ -0,0 +1,324 @@
1
+ import { Browser } from '../../client.js';
2
+ /**
3
+ * Playwright-based browser automation client for AWS Bedrock AgentCore Browser service.
4
+ *
5
+ * Extends Browser with full browser automation capabilities using Playwright.
6
+ * Provides methods for navigation, interaction, content extraction, and JavaScript execution.
7
+ *
8
+ * Sessions are automatically created on first use and Playwright connections are
9
+ * managed internally.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const browser = new PlaywrightBrowser({ region: 'us-east-1' })
14
+ *
15
+ * // Direct usage (auto-creates session)
16
+ * await browser.navigate({ url: 'https://example.com' })
17
+ * await browser.click({ selector: 'button' })
18
+ * const text = await browser.getText({ selector: 'h1' })
19
+ *
20
+ * // Explicit session management
21
+ * await browser.startSession({ sessionName: 'my-session' })
22
+ * await browser.navigate({ url: 'https://example.com' })
23
+ * await browser.stopSession()
24
+ * ```
25
+ */
26
+ export class PlaywrightBrowser extends Browser {
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ _playwrightBrowser = null; // Playwright Browser instance
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ _playwrightPage = null; // Playwright Page instance
31
+ /**
32
+ * Creates a new PlaywrightBrowser instance.
33
+ *
34
+ * @param config - Configuration options for the client
35
+ */
36
+ constructor(config) {
37
+ super(config);
38
+ }
39
+ /**
40
+ * Stops the active browser session and closes Playwright connections.
41
+ */
42
+ async stopSession() {
43
+ // Close Playwright connections first
44
+ try {
45
+ if (this._playwrightBrowser) {
46
+ await this._playwrightBrowser.close();
47
+ this._playwrightBrowser = null;
48
+ this._playwrightPage = null;
49
+ }
50
+ }
51
+ catch (error) {
52
+ // Log but don't fail on Playwright cleanup errors
53
+ console.warn('Error closing Playwright browser:', error);
54
+ }
55
+ // Call parent stopSession to clean up AWS session
56
+ await super.stopSession();
57
+ }
58
+ // ===========================
59
+ // Browser Automation
60
+ // ===========================
61
+ /**
62
+ * Navigates to a URL.
63
+ * Automatically creates a session and connects if needed.
64
+ *
65
+ * @param params - Navigation parameters
66
+ */
67
+ async navigate(params) {
68
+ await this._ensureConnected();
69
+ await this._playwrightPage.goto(params.url, {
70
+ waitUntil: params.waitUntil ?? 'domcontentloaded',
71
+ timeout: params.timeout,
72
+ });
73
+ }
74
+ /**
75
+ * Clicks an element on the page.
76
+ *
77
+ * @param params - Click parameters
78
+ */
79
+ async click(params) {
80
+ await this._ensureConnected();
81
+ await this._playwrightPage.click(params.selector, {
82
+ timeout: params.timeout,
83
+ });
84
+ }
85
+ /**
86
+ * Types text into an input element.
87
+ *
88
+ * @param params - Type parameters
89
+ */
90
+ async type(params) {
91
+ await this._ensureConnected();
92
+ await this._playwrightPage.type(params.selector, params.text, {
93
+ delay: params.delay,
94
+ timeout: params.timeout,
95
+ });
96
+ }
97
+ /**
98
+ * Gets text content from an element or the page.
99
+ *
100
+ * @param params - GetText parameters
101
+ * @returns Text content
102
+ */
103
+ async getText(params = {}) {
104
+ await this._ensureConnected();
105
+ if (params.selector) {
106
+ const element = await this._playwrightPage.$(params.selector);
107
+ if (!element) {
108
+ throw new Error(`Element not found: ${params.selector}`);
109
+ }
110
+ return (await element.textContent()) ?? '';
111
+ }
112
+ return (await this._playwrightPage.textContent('body')) ?? '';
113
+ }
114
+ /**
115
+ * Gets HTML content from an element or the page.
116
+ *
117
+ * @param params - GetHtml parameters
118
+ * @returns HTML content
119
+ */
120
+ async getHtml(params = {}) {
121
+ await this._ensureConnected();
122
+ if (params.selector) {
123
+ const element = await this._playwrightPage.$(params.selector);
124
+ if (!element) {
125
+ throw new Error(`Element not found: ${params.selector}`);
126
+ }
127
+ return await element.innerHTML();
128
+ }
129
+ return await this._playwrightPage.content();
130
+ }
131
+ /**
132
+ * Takes a screenshot of the page.
133
+ *
134
+ * @param params - Screenshot parameters
135
+ * @returns Screenshot as base64 string or Buffer
136
+ */
137
+ async screenshot(params) {
138
+ await this._ensureConnected();
139
+ const screenshot = await this._playwrightPage.screenshot({
140
+ path: params?.path,
141
+ fullPage: params?.fullPage ?? false,
142
+ type: params?.type ?? 'png',
143
+ });
144
+ return params?.encoding === 'base64' ? screenshot.toString('base64') : screenshot;
145
+ }
146
+ /**
147
+ * Evaluates JavaScript code in the page context.
148
+ *
149
+ * @param params - Evaluate parameters
150
+ * @returns Result of the evaluation
151
+ */
152
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
+ async evaluate(params) {
154
+ await this._ensureConnected();
155
+ return await this._playwrightPage.evaluate(params.script, params.args);
156
+ }
157
+ /**
158
+ * Navigates back in browser history.
159
+ */
160
+ async back() {
161
+ await this._ensureConnected();
162
+ try {
163
+ // Try with networkidle first, which is more reliable for dynamic sites
164
+ await this._playwrightPage.goBack({ waitUntil: 'networkidle', timeout: 30000 });
165
+ }
166
+ catch {
167
+ // If networkidle times out, try with load
168
+ try {
169
+ await this._playwrightPage.goBack({ waitUntil: 'load', timeout: 30000 });
170
+ }
171
+ catch {
172
+ // If still failing, just trigger the navigation without waiting
173
+ await this._playwrightPage.evaluate('window.history.back()');
174
+ }
175
+ }
176
+ }
177
+ /**
178
+ * Navigates forward in browser history.
179
+ */
180
+ async forward() {
181
+ await this._ensureConnected();
182
+ try {
183
+ // Try with networkidle first, which is more reliable for dynamic sites
184
+ await this._playwrightPage.goForward({ waitUntil: 'networkidle', timeout: 30000 });
185
+ }
186
+ catch {
187
+ // If networkidle times out, try with load
188
+ try {
189
+ await this._playwrightPage.goForward({ waitUntil: 'load', timeout: 30000 });
190
+ }
191
+ catch {
192
+ // If still failing, just trigger the navigation without waiting
193
+ await this._playwrightPage.evaluate('window.history.forward()');
194
+ }
195
+ }
196
+ }
197
+ /**
198
+ * Refreshes the current page.
199
+ */
200
+ async refresh() {
201
+ await this._ensureConnected();
202
+ await this._playwrightPage.reload();
203
+ }
204
+ /**
205
+ * Gets all cookies.
206
+ *
207
+ * @returns Array of cookies
208
+ */
209
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
210
+ async getCookies() {
211
+ await this._ensureConnected();
212
+ return await this._playwrightPage.context().cookies();
213
+ }
214
+ /**
215
+ * Sets cookies.
216
+ *
217
+ * @param params - Cookie parameters
218
+ */
219
+ async setCookies(params) {
220
+ await this._ensureConnected();
221
+ await this._playwrightPage.context().addCookies(params.cookies);
222
+ }
223
+ /**
224
+ * Presses a keyboard key.
225
+ *
226
+ * @param key - Key name (e.g., 'Enter', 'Tab', 'Escape')
227
+ */
228
+ async pressKey(key) {
229
+ await this._ensureConnected();
230
+ await this._playwrightPage.keyboard.press(key);
231
+ }
232
+ /**
233
+ * Waits for an element to be present in the DOM.
234
+ *
235
+ * @param params - WaitForSelector parameters
236
+ */
237
+ async waitForSelector(params) {
238
+ await this._ensureConnected();
239
+ await this._playwrightPage.waitForSelector(params.selector, {
240
+ timeout: params.timeout ?? 30000,
241
+ state: params.state ?? (params.visible !== false ? 'visible' : 'attached'),
242
+ });
243
+ }
244
+ /**
245
+ * Fills an input element with text (clears existing value first).
246
+ * More reliable than type() for forms.
247
+ *
248
+ * @param params - Fill parameters
249
+ */
250
+ async fill(params) {
251
+ await this._ensureConnected();
252
+ await this._playwrightPage.fill(params.selector, params.value, {
253
+ timeout: params.timeout,
254
+ });
255
+ }
256
+ /**
257
+ * Checks if an element is visible on the page.
258
+ *
259
+ * @param params - IsVisible parameters
260
+ * @returns true if element is visible, false otherwise
261
+ */
262
+ async isVisible(params) {
263
+ await this._ensureConnected();
264
+ try {
265
+ const element = await this._playwrightPage.$(params.selector);
266
+ if (!element) {
267
+ return false;
268
+ }
269
+ return await element.isVisible();
270
+ }
271
+ catch {
272
+ return false;
273
+ }
274
+ }
275
+ // ===========================
276
+ // Private Helper Methods
277
+ // ===========================
278
+ /**
279
+ * Ensures a session exists and Playwright is connected.
280
+ */
281
+ async _ensureConnected() {
282
+ // Ensure session exists
283
+ if (!this._session) {
284
+ await this.startSession();
285
+ }
286
+ // Ensure Playwright connection exists
287
+ if (!this._playwrightBrowser || !this._playwrightPage) {
288
+ await this._connectPlaywright();
289
+ }
290
+ }
291
+ /**
292
+ * Connects to the browser via Playwright WebSocket.
293
+ */
294
+ async _connectPlaywright() {
295
+ if (!this._session) {
296
+ throw new Error('No active session');
297
+ }
298
+ // Dynamically import Playwright
299
+ const { chromium } = await import('playwright');
300
+ // Get WebSocket connection details
301
+ const wsConnection = await this.generateWebSocketUrl();
302
+ // Connect to browser via CDP
303
+ this._playwrightBrowser = await chromium.connectOverCDP({
304
+ endpointURL: wsConnection.url,
305
+ headers: wsConnection.headers,
306
+ });
307
+ // Get the default context and page
308
+ const contexts = this._playwrightBrowser.contexts();
309
+ if (contexts.length === 0) {
310
+ throw new Error('No browser contexts available');
311
+ }
312
+ const context = contexts[0];
313
+ const pages = context.pages();
314
+ if (pages.length === 0) {
315
+ // Create a new page if none exist
316
+ this._playwrightPage = await context.newPage();
317
+ }
318
+ else {
319
+ // Use the first page
320
+ this._playwrightPage = pages[0];
321
+ }
322
+ }
323
+ }
324
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/playwright/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Playwright Browser Integration
3
+ *
4
+ * This module provides Playwright-based browser automation for AWS Bedrock AgentCore Browser service.
5
+ * It extends the base Browser with full browser automation capabilities.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { PlaywrightBrowser } from '@aws-sdk/bedrock-agentcore-sdk/browser/playwright'
10
+ *
11
+ * const browser = new PlaywrightBrowser({ region: 'us-west-2' })
12
+ * await browser.navigate({ url: 'https://example.com' })
13
+ * await browser.click({ selector: 'button' })
14
+ * const text = await browser.getText({ selector: 'h1' })
15
+ * await browser.stopSession()
16
+ * ```
17
+ */
18
+ export { PlaywrightBrowser } from './client.js';
19
+ export type { NavigateParams, ClickParams, TypeParams, GetTextParams, GetHtmlParams, ScreenshotParams, EvaluateParams, CookieParams, } from './types.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/playwright/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Playwright Browser Integration
3
+ *
4
+ * This module provides Playwright-based browser automation for AWS Bedrock AgentCore Browser service.
5
+ * It extends the base Browser with full browser automation capabilities.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { PlaywrightBrowser } from '@aws-sdk/bedrock-agentcore-sdk/browser/playwright'
10
+ *
11
+ * const browser = new PlaywrightBrowser({ region: 'us-west-2' })
12
+ * await browser.navigate({ url: 'https://example.com' })
13
+ * await browser.click({ selector: 'button' })
14
+ * const text = await browser.getText({ selector: 'h1' })
15
+ * await browser.stopSession()
16
+ * ```
17
+ */
18
+ export { PlaywrightBrowser } from './client.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/playwright/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Parameters for navigate operation.
3
+ */
4
+ export interface NavigateParams {
5
+ /**
6
+ * URL to navigate to.
7
+ */
8
+ url: string;
9
+ /**
10
+ * When to consider navigation successful.
11
+ */
12
+ waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
13
+ /**
14
+ * Maximum navigation time in milliseconds.
15
+ */
16
+ timeout?: number;
17
+ }
18
+ /**
19
+ * Parameters for click operation.
20
+ */
21
+ export interface ClickParams {
22
+ /**
23
+ * CSS selector for the element to click.
24
+ */
25
+ selector: string;
26
+ /**
27
+ * Maximum time in milliseconds.
28
+ */
29
+ timeout?: number;
30
+ }
31
+ /**
32
+ * Parameters for type operation.
33
+ */
34
+ export interface TypeParams {
35
+ /**
36
+ * CSS selector for the input element.
37
+ */
38
+ selector: string;
39
+ /**
40
+ * Text to type.
41
+ */
42
+ text: string;
43
+ /**
44
+ * Time to wait between key presses in milliseconds.
45
+ */
46
+ delay?: number;
47
+ /**
48
+ * Maximum time in milliseconds.
49
+ */
50
+ timeout?: number;
51
+ }
52
+ /**
53
+ * Parameters for getText operation.
54
+ */
55
+ export interface GetTextParams {
56
+ /**
57
+ * CSS selector for the element. If omitted, returns all page text.
58
+ */
59
+ selector?: string;
60
+ }
61
+ /**
62
+ * Parameters for getHtml operation.
63
+ */
64
+ export interface GetHtmlParams {
65
+ /**
66
+ * CSS selector for the element. If omitted, returns full page HTML.
67
+ */
68
+ selector?: string;
69
+ }
70
+ /**
71
+ * Parameters for screenshot operation.
72
+ */
73
+ export interface ScreenshotParams {
74
+ /**
75
+ * Path to save the screenshot file.
76
+ */
77
+ path?: string;
78
+ /**
79
+ * Capture the full scrollable page.
80
+ */
81
+ fullPage?: boolean;
82
+ /**
83
+ * Image type.
84
+ */
85
+ type?: 'png' | 'jpeg';
86
+ /**
87
+ * Encoding format.
88
+ */
89
+ encoding?: 'base64' | 'binary';
90
+ }
91
+ /**
92
+ * Parameters for evaluate operation.
93
+ */
94
+ export interface EvaluateParams {
95
+ /**
96
+ * JavaScript code to execute.
97
+ */
98
+ script: string;
99
+ /**
100
+ * Arguments to pass to the script.
101
+ */
102
+ args?: any[];
103
+ }
104
+ /**
105
+ * Parameters for cookie operations.
106
+ */
107
+ export interface CookieParams {
108
+ /**
109
+ * Array of cookie objects to set.
110
+ */
111
+ cookies: Array<{
112
+ name: string;
113
+ value: string;
114
+ domain?: string;
115
+ path?: string;
116
+ expires?: number;
117
+ httpOnly?: boolean;
118
+ secure?: boolean;
119
+ sameSite?: 'Strict' | 'Lax' | 'None';
120
+ }>;
121
+ }
122
+ /**
123
+ * Parameters for waitForSelector operation.
124
+ */
125
+ export interface WaitForSelectorParams {
126
+ /**
127
+ * CSS selector to wait for.
128
+ */
129
+ selector: string;
130
+ /**
131
+ * Maximum time in milliseconds to wait.
132
+ */
133
+ timeout?: number;
134
+ /**
135
+ * Wait for element to be visible (default: true).
136
+ */
137
+ visible?: boolean;
138
+ /**
139
+ * Wait for element state.
140
+ */
141
+ state?: 'attached' | 'detached' | 'visible' | 'hidden';
142
+ }
143
+ /**
144
+ * Parameters for fill operation.
145
+ */
146
+ export interface FillParams {
147
+ /**
148
+ * CSS selector for the input element.
149
+ */
150
+ selector: string;
151
+ /**
152
+ * Text to fill.
153
+ */
154
+ value: string;
155
+ /**
156
+ * Maximum time in milliseconds.
157
+ */
158
+ timeout?: number;
159
+ }
160
+ /**
161
+ * Parameters for isVisible operation.
162
+ */
163
+ export interface IsVisibleParams {
164
+ /**
165
+ * CSS selector for the element.
166
+ */
167
+ selector: string;
168
+ }
169
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/playwright/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAA;IAEvD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IAEH,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;KACrC,CAAC,CAAA;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAA;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/playwright/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { PlaywrightBrowser } from '../playwright/client.js';
2
+ /**
3
+ * Creates a Vercel AI tool for clicking elements.
4
+ * Thin wrapper around PlaywrightBrowser.click()
5
+ */
6
+ export declare function createClickTool(client: PlaywrightBrowser): import("ai").Tool<{
7
+ selector: string;
8
+ timeout?: number | undefined;
9
+ }, {
10
+ success: boolean;
11
+ message: string;
12
+ error?: never;
13
+ } | {
14
+ success: boolean;
15
+ error: string;
16
+ message?: never;
17
+ }>;
18
+ //# sourceMappingURL=click-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"click-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/vercel-ai/click-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;GAGG;AAEH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;;GAoBxD"}
@@ -0,0 +1,31 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ /**
4
+ * Creates a Vercel AI tool for clicking elements.
5
+ * Thin wrapper around PlaywrightBrowser.click()
6
+ */
7
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
8
+ export function createClickTool(client) {
9
+ return tool({
10
+ description: 'Click an element on the page',
11
+ inputSchema: z.object({
12
+ selector: z.string().describe('CSS selector for the element to click'),
13
+ timeout: z.number().positive().optional().describe('Maximum time in milliseconds'),
14
+ }),
15
+ execute: async ({ selector, timeout }) => {
16
+ 'use step';
17
+ try {
18
+ const params = { selector };
19
+ if (timeout !== undefined)
20
+ params.timeout = timeout;
21
+ await client.click(params);
22
+ return { success: true, message: `Clicked element: ${selector}` };
23
+ }
24
+ catch (error) {
25
+ const message = error instanceof Error ? error.message : 'Unknown error';
26
+ return { success: false, error: message };
27
+ }
28
+ },
29
+ });
30
+ }
31
+ //# sourceMappingURL=click-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"click-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/vercel-ai/click-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;GAGG;AACH,+HAA+H;AAC/H,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SACnF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACvC,UAAU,CAAA;YACV,IAAI,CAAC;gBACH,MAAM,MAAM,GAA2C,EAAE,QAAQ,EAAE,CAAA;gBACnE,IAAI,OAAO,KAAK,SAAS;oBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;gBACnD,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,QAAQ,EAAE,EAAE,CAAA;YACnE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;gBACxE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;YAC3C,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { PlaywrightBrowser } from '../playwright/client.js';
2
+ /**
3
+ * Creates a Vercel AI tool for evaluating JavaScript.
4
+ * Thin wrapper around PlaywrightBrowser.evaluate()
5
+ */
6
+ export declare function createEvaluateTool(client: PlaywrightBrowser): import("ai").Tool<{
7
+ script: string;
8
+ args?: any[] | undefined;
9
+ }, {
10
+ success: boolean;
11
+ result: any;
12
+ error?: never;
13
+ } | {
14
+ success: boolean;
15
+ error: string;
16
+ result?: never;
17
+ }>;
18
+ //# sourceMappingURL=evaluate-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/vercel-ai/evaluate-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;GAGG;AAEH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;;GAqB3D"}