bedrock-agentcore 0.0.1 → 0.2.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.
- package/LICENSE +202 -0
- package/README.md +131 -9
- package/dist/src/_utils/endpoints.d.ts +28 -0
- package/dist/src/_utils/endpoints.d.ts.map +1 -0
- package/dist/src/_utils/endpoints.js +44 -0
- package/dist/src/_utils/endpoints.js.map +1 -0
- package/dist/src/identity/client.d.ts +40 -0
- package/dist/src/identity/client.d.ts.map +1 -0
- package/dist/src/identity/client.js +109 -0
- package/dist/src/identity/client.js.map +1 -0
- package/dist/src/identity/index.d.ts +22 -0
- package/dist/src/identity/index.d.ts.map +1 -0
- package/dist/src/identity/index.js +24 -0
- package/dist/src/identity/index.js.map +1 -0
- package/dist/src/identity/types.d.ts +82 -0
- package/dist/src/identity/types.d.ts.map +1 -0
- package/dist/src/identity/types.js +5 -0
- package/dist/src/identity/types.js.map +1 -0
- package/dist/src/identity/wrappers.d.ts +54 -0
- package/dist/src/identity/wrappers.d.ts.map +1 -0
- package/dist/src/identity/wrappers.js +95 -0
- package/dist/src/identity/wrappers.js.map +1 -0
- package/dist/src/runtime/app.d.ts +144 -0
- package/dist/src/runtime/app.d.ts.map +1 -0
- package/dist/src/runtime/app.js +485 -0
- package/dist/src/runtime/app.js.map +1 -0
- package/dist/src/runtime/client.d.ts +154 -0
- package/dist/src/runtime/client.d.ts.map +1 -0
- package/dist/src/runtime/client.js +319 -0
- package/dist/src/runtime/client.js.map +1 -0
- package/dist/src/runtime/context.d.ts +33 -0
- package/dist/src/runtime/context.d.ts.map +1 -0
- package/dist/src/runtime/context.js +49 -0
- package/dist/src/runtime/context.js.map +1 -0
- package/dist/src/runtime/index.d.ts +8 -0
- package/dist/src/runtime/index.d.ts.map +1 -0
- package/dist/src/runtime/index.js +7 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/types.d.ts +429 -0
- package/dist/src/runtime/types.d.ts.map +1 -0
- package/dist/src/runtime/types.js +26 -0
- package/dist/src/runtime/types.js.map +1 -0
- package/dist/src/tools/browser/client.d.ts +125 -0
- package/dist/src/tools/browser/client.d.ts.map +1 -0
- package/dist/src/tools/browser/client.js +320 -0
- package/dist/src/tools/browser/client.js.map +1 -0
- package/dist/src/tools/browser/index.d.ts +4 -0
- package/dist/src/tools/browser/index.d.ts.map +1 -0
- package/dist/src/tools/browser/index.js +3 -0
- package/dist/src/tools/browser/index.js.map +1 -0
- package/dist/src/tools/browser/integrations/playwright/client.d.ts +147 -0
- package/dist/src/tools/browser/integrations/playwright/client.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/playwright/client.js +324 -0
- package/dist/src/tools/browser/integrations/playwright/client.js.map +1 -0
- package/dist/src/tools/browser/integrations/playwright/index.d.ts +20 -0
- package/dist/src/tools/browser/integrations/playwright/index.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/playwright/index.js +19 -0
- package/dist/src/tools/browser/integrations/playwright/index.js.map +1 -0
- package/dist/src/tools/browser/integrations/playwright/types.d.ts +169 -0
- package/dist/src/tools/browser/integrations/playwright/types.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/playwright/types.js +2 -0
- package/dist/src/tools/browser/integrations/playwright/types.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/click-tool.d.ts +20 -0
- package/dist/src/tools/browser/integrations/strands/click-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/click-tool.js +33 -0
- package/dist/src/tools/browser/integrations/strands/click-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts +20 -0
- package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/evaluate-tool.js +34 -0
- package/dist/src/tools/browser/integrations/strands/evaluate-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts +19 -0
- package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/get-html-tool.js +32 -0
- package/dist/src/tools/browser/integrations/strands/get-html-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts +19 -0
- package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/get-text-tool.js +32 -0
- package/dist/src/tools/browser/integrations/strands/get-text-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/index.d.ts +25 -0
- package/dist/src/tools/browser/integrations/strands/index.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/index.js +25 -0
- package/dist/src/tools/browser/integrations/strands/index.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts +21 -0
- package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/navigate-tool.js +41 -0
- package/dist/src/tools/browser/integrations/strands/navigate-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts +29 -0
- package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/screenshot-tool.js +52 -0
- package/dist/src/tools/browser/integrations/strands/screenshot-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/tools.d.ts +119 -0
- package/dist/src/tools/browser/integrations/strands/tools.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/tools.js +141 -0
- package/dist/src/tools/browser/integrations/strands/tools.js.map +1 -0
- package/dist/src/tools/browser/integrations/strands/type-tool.d.ts +22 -0
- package/dist/src/tools/browser/integrations/strands/type-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/strands/type-tool.js +37 -0
- package/dist/src/tools/browser/integrations/strands/type-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts +18 -0
- package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js +31 -0
- package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts +18 -0
- package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js +32 -0
- package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts +17 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js +30 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts +17 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js +30 -0
- package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts +19 -0
- package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/index.js +19 -0
- package/dist/src/tools/browser/integrations/vercel-ai/index.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts +19 -0
- package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js +39 -0
- package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts +22 -0
- package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js +44 -0
- package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts +123 -0
- package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/tools.js +145 -0
- package/dist/src/tools/browser/integrations/vercel-ai/tools.js.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts +20 -0
- package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts.map +1 -0
- package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js +35 -0
- package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js.map +1 -0
- package/dist/src/tools/browser/types.d.ts +336 -0
- package/dist/src/tools/browser/types.d.ts.map +1 -0
- package/dist/src/tools/browser/types.js +17 -0
- package/dist/src/tools/browser/types.js.map +1 -0
- package/dist/src/tools/code-interpreter/client.d.ts +214 -0
- package/dist/src/tools/code-interpreter/client.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/client.js +518 -0
- package/dist/src/tools/code-interpreter/client.js.map +1 -0
- package/dist/src/tools/code-interpreter/index.d.ts +4 -0
- package/dist/src/tools/code-interpreter/index.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/index.js +5 -0
- package/dist/src/tools/code-interpreter/index.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts +28 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js +47 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts +27 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js +42 -0
- package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts +33 -0
- package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js +78 -0
- package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts +32 -0
- package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/index.js +32 -0
- package/dist/src/tools/code-interpreter/integrations/strands/index.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts +94 -0
- package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/strands/tools.js +112 -0
- package/dist/src/tools/code-interpreter/integrations/strands/tools.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts +27 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js +46 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts +26 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js +41 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts +32 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js +77 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts +26 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js +26 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts +94 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js +112 -0
- package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js.map +1 -0
- package/dist/src/tools/code-interpreter/types.d.ts +473 -0
- package/dist/src/tools/code-interpreter/types.d.ts.map +1 -0
- package/dist/src/tools/code-interpreter/types.js +52 -0
- package/dist/src/tools/code-interpreter/types.js.map +1 -0
- package/package.json +134 -12
- package/index.js +0 -4
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { tool } from '@strands-agents/sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Strands SDK tool for evaluating JavaScript.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser.evaluate()
|
|
6
|
+
*
|
|
7
|
+
* @experimental
|
|
8
|
+
*/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
|
|
10
|
+
export function createEvaluateTool(client) {
|
|
11
|
+
return tool({
|
|
12
|
+
name: 'evaluate',
|
|
13
|
+
description: 'Evaluate JavaScript code in the page context',
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
script: z.string().describe('JavaScript code to execute'),
|
|
16
|
+
args: z.array(z.any()).optional().describe('Arguments to pass to the script'),
|
|
17
|
+
}),
|
|
18
|
+
callback: async ({ script, args }) => {
|
|
19
|
+
try {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
const params = { script };
|
|
22
|
+
if (args !== undefined)
|
|
23
|
+
params.args = args;
|
|
24
|
+
const result = await client.evaluate(params);
|
|
25
|
+
return { success: true, result };
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
29
|
+
return { success: false, error: message };
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=evaluate-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/evaluate-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC9E,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YACnC,IAAI,CAAC;gBACH,8DAA8D;gBAC9D,MAAM,MAAM,GAAqC,EAAE,MAAM,EAAE,CAAA;gBAC3D,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YAClC,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,19 @@
|
|
|
1
|
+
import type { PlaywrightBrowser } from '../playwright/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Strands SDK tool for getting HTML content.
|
|
4
|
+
* Thin wrapper around PlaywrightBrowser.getHtml()
|
|
5
|
+
*
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
export declare function createGetHtmlTool(client: PlaywrightBrowser): import("@strands-agents/sdk").InvokableTool<{
|
|
9
|
+
selector?: string | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
success: true;
|
|
12
|
+
html: string;
|
|
13
|
+
error?: never;
|
|
14
|
+
} | {
|
|
15
|
+
success: false;
|
|
16
|
+
error: string;
|
|
17
|
+
html?: never;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=get-html-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-html-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/get-html-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;GAmB1D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { tool } from '@strands-agents/sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Strands SDK tool for getting HTML content.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser.getHtml()
|
|
6
|
+
*
|
|
7
|
+
* @experimental
|
|
8
|
+
*/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
|
|
10
|
+
export function createGetHtmlTool(client) {
|
|
11
|
+
return tool({
|
|
12
|
+
name: 'getHtml',
|
|
13
|
+
description: 'Get HTML content from an element or the entire page',
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
selector: z.string().optional().describe('CSS selector for the element (omit for full page HTML)'),
|
|
16
|
+
}),
|
|
17
|
+
callback: async ({ selector }) => {
|
|
18
|
+
try {
|
|
19
|
+
const params = {};
|
|
20
|
+
if (selector !== undefined)
|
|
21
|
+
params.selector = selector;
|
|
22
|
+
const html = await client.getHtml(params);
|
|
23
|
+
return { success: true, html };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
27
|
+
return { success: false, error: message };
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=get-html-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-html-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/get-html-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACnG,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAA0B,EAAE,CAAA;gBACxC,IAAI,QAAQ,KAAK,SAAS;oBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YAChC,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,19 @@
|
|
|
1
|
+
import type { PlaywrightBrowser } from '../playwright/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Strands SDK tool for getting text content.
|
|
4
|
+
* Thin wrapper around PlaywrightBrowser.getText()
|
|
5
|
+
*
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
export declare function createGetTextTool(client: PlaywrightBrowser): import("@strands-agents/sdk").InvokableTool<{
|
|
9
|
+
selector?: string | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
success: true;
|
|
12
|
+
text: string;
|
|
13
|
+
error?: never;
|
|
14
|
+
} | {
|
|
15
|
+
success: false;
|
|
16
|
+
error: string;
|
|
17
|
+
text?: never;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=get-text-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-text-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/get-text-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;GAmB1D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { tool } from '@strands-agents/sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Strands SDK tool for getting text content.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser.getText()
|
|
6
|
+
*
|
|
7
|
+
* @experimental
|
|
8
|
+
*/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
|
|
10
|
+
export function createGetTextTool(client) {
|
|
11
|
+
return tool({
|
|
12
|
+
name: 'getText',
|
|
13
|
+
description: 'Get text content from an element or the entire page',
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
selector: z.string().optional().describe('CSS selector for the element (omit for full page text)'),
|
|
16
|
+
}),
|
|
17
|
+
callback: async ({ selector }) => {
|
|
18
|
+
try {
|
|
19
|
+
const params = {};
|
|
20
|
+
if (selector !== undefined)
|
|
21
|
+
params.selector = selector;
|
|
22
|
+
const text = await client.getText(params);
|
|
23
|
+
return { success: true, text };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
27
|
+
return { success: false, error: message };
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=get-text-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-text-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/get-text-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACnG,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAA0B,EAAE,CAAA;gBACxC,IAAI,QAAQ,KAAK,SAAS;oBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YAChC,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,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strands SDK Browser Tool Integration
|
|
3
|
+
*
|
|
4
|
+
* **⚠️ EXPERIMENTAL:** This integration uses the Strands TypeScript SDK, which is
|
|
5
|
+
* currently experimental and subject to breaking changes. See
|
|
6
|
+
* https://strandsagents.com/latest/documentation/docs/user-guide/quickstart/typescript/
|
|
7
|
+
*
|
|
8
|
+
* This module provides Strands SDK integration for the AWS Bedrock AgentCore Browser service.
|
|
9
|
+
* It follows the three-layer architecture:
|
|
10
|
+
* - User Application Layer (Strands SDK)
|
|
11
|
+
* - Integration Layer (this module - thin wrappers)
|
|
12
|
+
* - Base Client Layer (BrowserClient - all browser logic)
|
|
13
|
+
* - AWS SDK Layer (\@aws-sdk/client-bedrock-agentcore)
|
|
14
|
+
*
|
|
15
|
+
* @experimental
|
|
16
|
+
*/
|
|
17
|
+
export { BrowserTools } from './tools.js';
|
|
18
|
+
export { createNavigateTool } from './navigate-tool.js';
|
|
19
|
+
export { createClickTool } from './click-tool.js';
|
|
20
|
+
export { createTypeTool } from './type-tool.js';
|
|
21
|
+
export { createGetTextTool } from './get-text-tool.js';
|
|
22
|
+
export { createGetHtmlTool } from './get-html-tool.js';
|
|
23
|
+
export { createScreenshotTool } from './screenshot-tool.js';
|
|
24
|
+
export { createEvaluateTool } from './evaluate-tool.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strands SDK Browser Tool Integration
|
|
3
|
+
*
|
|
4
|
+
* **⚠️ EXPERIMENTAL:** This integration uses the Strands TypeScript SDK, which is
|
|
5
|
+
* currently experimental and subject to breaking changes. See
|
|
6
|
+
* https://strandsagents.com/latest/documentation/docs/user-guide/quickstart/typescript/
|
|
7
|
+
*
|
|
8
|
+
* This module provides Strands SDK integration for the AWS Bedrock AgentCore Browser service.
|
|
9
|
+
* It follows the three-layer architecture:
|
|
10
|
+
* - User Application Layer (Strands SDK)
|
|
11
|
+
* - Integration Layer (this module - thin wrappers)
|
|
12
|
+
* - Base Client Layer (BrowserClient - all browser logic)
|
|
13
|
+
* - AWS SDK Layer (\@aws-sdk/client-bedrock-agentcore)
|
|
14
|
+
*
|
|
15
|
+
* @experimental
|
|
16
|
+
*/
|
|
17
|
+
export { BrowserTools } from './tools.js';
|
|
18
|
+
export { createNavigateTool } from './navigate-tool.js';
|
|
19
|
+
export { createClickTool } from './click-tool.js';
|
|
20
|
+
export { createTypeTool } from './type-tool.js';
|
|
21
|
+
export { createGetTextTool } from './get-text-tool.js';
|
|
22
|
+
export { createGetHtmlTool } from './get-html-tool.js';
|
|
23
|
+
export { createScreenshotTool } from './screenshot-tool.js';
|
|
24
|
+
export { createEvaluateTool } from './evaluate-tool.js';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PlaywrightBrowser } from '../playwright/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Strands SDK tool for browser navigation.
|
|
4
|
+
* Thin wrapper around PlaywrightBrowser.navigate()
|
|
5
|
+
*
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
export declare function createNavigateTool(client: PlaywrightBrowser): import("@strands-agents/sdk").InvokableTool<{
|
|
9
|
+
url: string;
|
|
10
|
+
waitUntil?: "load" | "domcontentloaded" | "networkidle" | undefined;
|
|
11
|
+
timeout?: number | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
success: true;
|
|
14
|
+
message: string;
|
|
15
|
+
error?: never;
|
|
16
|
+
} | {
|
|
17
|
+
success: false;
|
|
18
|
+
error: string;
|
|
19
|
+
message?: never;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=navigate-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigate-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/navigate-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;;;GA2B3D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { tool } from '@strands-agents/sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Strands SDK tool for browser navigation.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser.navigate()
|
|
6
|
+
*
|
|
7
|
+
* @experimental
|
|
8
|
+
*/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
|
|
10
|
+
export function createNavigateTool(client) {
|
|
11
|
+
return tool({
|
|
12
|
+
name: 'navigate',
|
|
13
|
+
description: 'Navigate to a URL in the browser',
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
url: z.string().url().describe('URL to navigate to'),
|
|
16
|
+
waitUntil: z
|
|
17
|
+
.enum(['load', 'domcontentloaded', 'networkidle'])
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('When to consider navigation successful'),
|
|
20
|
+
timeout: z.number().positive().optional().describe('Maximum navigation time in milliseconds'),
|
|
21
|
+
}),
|
|
22
|
+
callback: async ({ url, waitUntil, timeout }) => {
|
|
23
|
+
try {
|
|
24
|
+
const params = {
|
|
25
|
+
url,
|
|
26
|
+
};
|
|
27
|
+
if (waitUntil !== undefined)
|
|
28
|
+
params.waitUntil = waitUntil;
|
|
29
|
+
if (timeout !== undefined)
|
|
30
|
+
params.timeout = timeout;
|
|
31
|
+
await client.navigate(params);
|
|
32
|
+
return { success: true, message: `Navigated to ${url}` };
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
36
|
+
return { success: false, error: message };
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=navigate-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigate-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/navigate-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACpD,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;iBACjD,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;YACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC9F,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,MAAM,GAA+F;oBACzG,GAAG;iBACJ,CAAA;gBACD,IAAI,SAAS,KAAK,SAAS;oBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;gBACzD,IAAI,OAAO,KAAK,SAAS;oBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;gBACnD,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,EAAE,CAAA;YAC1D,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,29 @@
|
|
|
1
|
+
import type { PlaywrightBrowser } from '../playwright/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Strands SDK tool for taking screenshots.
|
|
4
|
+
* Thin wrapper around PlaywrightBrowser.screenshot()
|
|
5
|
+
*
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
export declare function createScreenshotTool(client: PlaywrightBrowser): import("@strands-agents/sdk").InvokableTool<{
|
|
9
|
+
path?: string | undefined;
|
|
10
|
+
fullPage?: boolean | undefined;
|
|
11
|
+
type?: "png" | "jpeg" | undefined;
|
|
12
|
+
encoding?: "base64" | "binary" | undefined;
|
|
13
|
+
}, {
|
|
14
|
+
success: true;
|
|
15
|
+
message: string;
|
|
16
|
+
screenshot: string;
|
|
17
|
+
error?: never;
|
|
18
|
+
} | {
|
|
19
|
+
success: true;
|
|
20
|
+
message: string;
|
|
21
|
+
screenshot?: never;
|
|
22
|
+
error?: never;
|
|
23
|
+
} | {
|
|
24
|
+
success: false;
|
|
25
|
+
error: string;
|
|
26
|
+
message?: never;
|
|
27
|
+
screenshot?: never;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=screenshot-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/screenshot-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;;;GAKG;AAEH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;GAsC7D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { tool } from '@strands-agents/sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Strands SDK tool for taking screenshots.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser.screenshot()
|
|
6
|
+
*
|
|
7
|
+
* @experimental
|
|
8
|
+
*/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types
|
|
10
|
+
export function createScreenshotTool(client) {
|
|
11
|
+
return tool({
|
|
12
|
+
name: 'screenshot',
|
|
13
|
+
description: 'Take a screenshot of the page',
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
path: z.string().optional().describe('Path to save the screenshot file'),
|
|
16
|
+
fullPage: z.boolean().optional().describe('Capture the full scrollable page'),
|
|
17
|
+
type: z.enum(['png', 'jpeg']).optional().describe('Image type'),
|
|
18
|
+
encoding: z.enum(['base64', 'binary']).optional().describe('Encoding format'),
|
|
19
|
+
}),
|
|
20
|
+
callback: async ({ path, fullPage, type, encoding }) => {
|
|
21
|
+
try {
|
|
22
|
+
const params = {};
|
|
23
|
+
if (path !== undefined)
|
|
24
|
+
params.path = path;
|
|
25
|
+
if (fullPage !== undefined)
|
|
26
|
+
params.fullPage = fullPage;
|
|
27
|
+
if (type !== undefined)
|
|
28
|
+
params.type = type;
|
|
29
|
+
if (encoding !== undefined)
|
|
30
|
+
params.encoding = encoding;
|
|
31
|
+
const screenshot = await client.screenshot(params);
|
|
32
|
+
const isBase64 = encoding === 'base64';
|
|
33
|
+
if (isBase64 && typeof screenshot === 'string') {
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
message: path ? `Screenshot saved to ${path}` : 'Screenshot captured',
|
|
37
|
+
screenshot,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
success: true,
|
|
42
|
+
message: path ? `Screenshot saved to ${path}` : 'Screenshot captured',
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
47
|
+
return { success: false, error: message };
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=screenshot-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-tool.js","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/screenshot-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACxE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC7E,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC/D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAC9E,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YACrD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAiG,EAAE,CAAA;gBAC/G,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;gBAC1C,IAAI,QAAQ,KAAK,SAAS;oBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACtD,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;gBAC1C,IAAI,QAAQ,KAAK,SAAS;oBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACtD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAClD,MAAM,QAAQ,GAAG,QAAQ,KAAK,QAAQ,CAAA;gBAEtC,IAAI,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;oBAC/C,OAAO;wBACL,OAAO,EAAE,IAAa;wBACtB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB;wBACrE,UAAU;qBACX,CAAA;gBACH,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB;iBACtE,CAAA;YACH,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,KAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;YACpD,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified BrowserTools for Strands SDK
|
|
3
|
+
*
|
|
4
|
+
* Provides browser automation tools and session management in one class.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser - all logic lives in the Playwright integration.
|
|
6
|
+
*/
|
|
7
|
+
import { PlaywrightBrowser } from '../playwright/client.js';
|
|
8
|
+
import type { BrowserClientConfig, SessionInfo } from '../../types.js';
|
|
9
|
+
import { createNavigateTool } from './navigate-tool.js';
|
|
10
|
+
import { createClickTool } from './click-tool.js';
|
|
11
|
+
import { createTypeTool } from './type-tool.js';
|
|
12
|
+
import { createGetTextTool } from './get-text-tool.js';
|
|
13
|
+
import { createGetHtmlTool } from './get-html-tool.js';
|
|
14
|
+
import { createScreenshotTool } from './screenshot-tool.js';
|
|
15
|
+
import { createEvaluateTool } from './evaluate-tool.js';
|
|
16
|
+
/**
|
|
17
|
+
* BrowserTools - All-in-one browser automation for Strands SDK
|
|
18
|
+
*
|
|
19
|
+
* Provides browser automation tools and session management.
|
|
20
|
+
* All browser logic is in PlaywrightBrowser - this is just a thin wrapper.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* import { BrowserTools } from 'bedrock-agentcore/experimental/browser/strands'
|
|
25
|
+
* import { Agent, BedrockModel } from '@strands-agents/sdk'
|
|
26
|
+
*
|
|
27
|
+
* // Create tools instance
|
|
28
|
+
* const browser = new BrowserTools({ region: 'us-west-2' })
|
|
29
|
+
*
|
|
30
|
+
* // Start session (optional - automatically started on first use)
|
|
31
|
+
* await browser.startSession()
|
|
32
|
+
*
|
|
33
|
+
* // Create agent with browser tools
|
|
34
|
+
* const agent = new Agent({
|
|
35
|
+
* model: new BedrockModel({ modelId: 'anthropic.claude-sonnet-4-20250514-v1:0' }),
|
|
36
|
+
* tools: browser.tools,
|
|
37
|
+
* })
|
|
38
|
+
*
|
|
39
|
+
* // Or use client directly
|
|
40
|
+
* await browser.getClient().navigate({ url: 'https://example.com' })
|
|
41
|
+
*
|
|
42
|
+
* // Clean up when done
|
|
43
|
+
* await browser.stopSession()
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class BrowserTools {
|
|
47
|
+
private client;
|
|
48
|
+
/**
|
|
49
|
+
* Tool for navigating to URLs
|
|
50
|
+
*/
|
|
51
|
+
readonly navigate: ReturnType<typeof createNavigateTool>;
|
|
52
|
+
/**
|
|
53
|
+
* Tool for clicking elements
|
|
54
|
+
*/
|
|
55
|
+
readonly click: ReturnType<typeof createClickTool>;
|
|
56
|
+
/**
|
|
57
|
+
* Tool for typing text
|
|
58
|
+
*/
|
|
59
|
+
readonly type: ReturnType<typeof createTypeTool>;
|
|
60
|
+
/**
|
|
61
|
+
* Tool for getting text content
|
|
62
|
+
*/
|
|
63
|
+
readonly getText: ReturnType<typeof createGetTextTool>;
|
|
64
|
+
/**
|
|
65
|
+
* Tool for getting HTML
|
|
66
|
+
*/
|
|
67
|
+
readonly getHtml: ReturnType<typeof createGetHtmlTool>;
|
|
68
|
+
/**
|
|
69
|
+
* Tool for taking screenshots
|
|
70
|
+
*/
|
|
71
|
+
readonly screenshot: ReturnType<typeof createScreenshotTool>;
|
|
72
|
+
/**
|
|
73
|
+
* Tool for evaluating JavaScript
|
|
74
|
+
*/
|
|
75
|
+
readonly evaluate: ReturnType<typeof createEvaluateTool>;
|
|
76
|
+
/**
|
|
77
|
+
* All tools in an array for easy spreading into agent config
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const agent = new Agent({
|
|
82
|
+
* tools: browser.tools, // spreads all browser tools
|
|
83
|
+
* })
|
|
84
|
+
*
|
|
85
|
+
* // Or combine with other tools
|
|
86
|
+
* const agent = new Agent({
|
|
87
|
+
* tools: [...codeInterpreter.tools, ...browser.tools],
|
|
88
|
+
* })
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
readonly tools: Array<ReturnType<typeof createNavigateTool> | ReturnType<typeof createClickTool> | ReturnType<typeof createTypeTool> | ReturnType<typeof createGetTextTool> | ReturnType<typeof createGetHtmlTool> | ReturnType<typeof createScreenshotTool> | ReturnType<typeof createEvaluateTool>>;
|
|
92
|
+
constructor(config?: BrowserClientConfig);
|
|
93
|
+
/**
|
|
94
|
+
* Start a browser session
|
|
95
|
+
*
|
|
96
|
+
* Sessions are automatically started on first tool use, but you can
|
|
97
|
+
* call this explicitly to start the session upfront.
|
|
98
|
+
*
|
|
99
|
+
* @param sessionName - Optional session name for AWS
|
|
100
|
+
* @param timeout - Optional session timeout in seconds (default: 3600, max: 28800)
|
|
101
|
+
* @returns Session information
|
|
102
|
+
*/
|
|
103
|
+
startSession(sessionName?: string, timeout?: number): Promise<SessionInfo>;
|
|
104
|
+
/**
|
|
105
|
+
* Stop the current browser session
|
|
106
|
+
*
|
|
107
|
+
* Call this when you're done using the tools to clean up resources.
|
|
108
|
+
*/
|
|
109
|
+
stopSession(): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Get the underlying PlaywrightBrowser
|
|
112
|
+
*
|
|
113
|
+
* Provides direct access to the client for advanced use cases.
|
|
114
|
+
*
|
|
115
|
+
* @returns The PlaywrightBrowser instance
|
|
116
|
+
*/
|
|
117
|
+
getClient(): PlaywrightBrowser;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/browser/integrations/strands/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAsB,MAAM,gBAAgB,CAAA;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAmB;IAEjC;;OAEG;IACH,SAAgB,QAAQ,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;IAE/D;;OAEG;IACH,SAAgB,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;IAEzD;;OAEG;IACH,SAAgB,IAAI,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IAEvD;;OAEG;IACH,SAAgB,OAAO,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IAE7D;;OAEG;IACH,SAAgB,OAAO,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IAE7D;;OAEG;IACH,SAAgB,UAAU,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAEnE;;OAEG;IACH,SAAgB,QAAQ,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;IAE/D;;;;;;;;;;;;;;OAcG;IACH,SAAgB,KAAK,EAAE,KAAK,CACxB,UAAU,CAAC,OAAO,kBAAkB,CAAC,GACrC,UAAU,CAAC,OAAO,eAAe,CAAC,GAClC,UAAU,CAAC,OAAO,cAAc,CAAC,GACjC,UAAU,CAAC,OAAO,iBAAiB,CAAC,GACpC,UAAU,CAAC,OAAO,iBAAiB,CAAC,GACpC,UAAU,CAAC,OAAO,oBAAoB,CAAC,GACvC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CACxC,CAAA;gBAEW,MAAM,GAAE,mBAAwB;IAgB5C;;;;;;;;;OASG;IACG,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOhF;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;;OAMG;IACH,SAAS,IAAI,iBAAiB;CAG/B"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified BrowserTools for Strands SDK
|
|
3
|
+
*
|
|
4
|
+
* Provides browser automation tools and session management in one class.
|
|
5
|
+
* Thin wrapper around PlaywrightBrowser - all logic lives in the Playwright integration.
|
|
6
|
+
*/
|
|
7
|
+
import { PlaywrightBrowser } from '../playwright/client.js';
|
|
8
|
+
import { createNavigateTool } from './navigate-tool.js';
|
|
9
|
+
import { createClickTool } from './click-tool.js';
|
|
10
|
+
import { createTypeTool } from './type-tool.js';
|
|
11
|
+
import { createGetTextTool } from './get-text-tool.js';
|
|
12
|
+
import { createGetHtmlTool } from './get-html-tool.js';
|
|
13
|
+
import { createScreenshotTool } from './screenshot-tool.js';
|
|
14
|
+
import { createEvaluateTool } from './evaluate-tool.js';
|
|
15
|
+
/**
|
|
16
|
+
* BrowserTools - All-in-one browser automation for Strands SDK
|
|
17
|
+
*
|
|
18
|
+
* Provides browser automation tools and session management.
|
|
19
|
+
* All browser logic is in PlaywrightBrowser - this is just a thin wrapper.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { BrowserTools } from 'bedrock-agentcore/experimental/browser/strands'
|
|
24
|
+
* import { Agent, BedrockModel } from '@strands-agents/sdk'
|
|
25
|
+
*
|
|
26
|
+
* // Create tools instance
|
|
27
|
+
* const browser = new BrowserTools({ region: 'us-west-2' })
|
|
28
|
+
*
|
|
29
|
+
* // Start session (optional - automatically started on first use)
|
|
30
|
+
* await browser.startSession()
|
|
31
|
+
*
|
|
32
|
+
* // Create agent with browser tools
|
|
33
|
+
* const agent = new Agent({
|
|
34
|
+
* model: new BedrockModel({ modelId: 'anthropic.claude-sonnet-4-20250514-v1:0' }),
|
|
35
|
+
* tools: browser.tools,
|
|
36
|
+
* })
|
|
37
|
+
*
|
|
38
|
+
* // Or use client directly
|
|
39
|
+
* await browser.getClient().navigate({ url: 'https://example.com' })
|
|
40
|
+
*
|
|
41
|
+
* // Clean up when done
|
|
42
|
+
* await browser.stopSession()
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class BrowserTools {
|
|
46
|
+
client;
|
|
47
|
+
/**
|
|
48
|
+
* Tool for navigating to URLs
|
|
49
|
+
*/
|
|
50
|
+
navigate;
|
|
51
|
+
/**
|
|
52
|
+
* Tool for clicking elements
|
|
53
|
+
*/
|
|
54
|
+
click;
|
|
55
|
+
/**
|
|
56
|
+
* Tool for typing text
|
|
57
|
+
*/
|
|
58
|
+
type;
|
|
59
|
+
/**
|
|
60
|
+
* Tool for getting text content
|
|
61
|
+
*/
|
|
62
|
+
getText;
|
|
63
|
+
/**
|
|
64
|
+
* Tool for getting HTML
|
|
65
|
+
*/
|
|
66
|
+
getHtml;
|
|
67
|
+
/**
|
|
68
|
+
* Tool for taking screenshots
|
|
69
|
+
*/
|
|
70
|
+
screenshot;
|
|
71
|
+
/**
|
|
72
|
+
* Tool for evaluating JavaScript
|
|
73
|
+
*/
|
|
74
|
+
evaluate;
|
|
75
|
+
/**
|
|
76
|
+
* All tools in an array for easy spreading into agent config
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const agent = new Agent({
|
|
81
|
+
* tools: browser.tools, // spreads all browser tools
|
|
82
|
+
* })
|
|
83
|
+
*
|
|
84
|
+
* // Or combine with other tools
|
|
85
|
+
* const agent = new Agent({
|
|
86
|
+
* tools: [...codeInterpreter.tools, ...browser.tools],
|
|
87
|
+
* })
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
tools;
|
|
91
|
+
constructor(config = {}) {
|
|
92
|
+
this.client = new PlaywrightBrowser(config);
|
|
93
|
+
// Create all tools - each is a thin wrapper around client methods
|
|
94
|
+
this.navigate = createNavigateTool(this.client);
|
|
95
|
+
this.click = createClickTool(this.client);
|
|
96
|
+
this.type = createTypeTool(this.client);
|
|
97
|
+
this.getText = createGetTextTool(this.client);
|
|
98
|
+
this.getHtml = createGetHtmlTool(this.client);
|
|
99
|
+
this.screenshot = createScreenshotTool(this.client);
|
|
100
|
+
this.evaluate = createEvaluateTool(this.client);
|
|
101
|
+
// Create tools array for Strands SDK (uses arrays, not objects)
|
|
102
|
+
this.tools = [this.navigate, this.click, this.type, this.getText, this.getHtml, this.screenshot, this.evaluate];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Start a browser session
|
|
106
|
+
*
|
|
107
|
+
* Sessions are automatically started on first tool use, but you can
|
|
108
|
+
* call this explicitly to start the session upfront.
|
|
109
|
+
*
|
|
110
|
+
* @param sessionName - Optional session name for AWS
|
|
111
|
+
* @param timeout - Optional session timeout in seconds (default: 3600, max: 28800)
|
|
112
|
+
* @returns Session information
|
|
113
|
+
*/
|
|
114
|
+
async startSession(sessionName, timeout) {
|
|
115
|
+
const params = {};
|
|
116
|
+
if (sessionName !== undefined)
|
|
117
|
+
params.sessionName = sessionName;
|
|
118
|
+
if (timeout !== undefined)
|
|
119
|
+
params.timeout = timeout;
|
|
120
|
+
return this.client.startSession(Object.keys(params).length > 0 ? params : undefined);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Stop the current browser session
|
|
124
|
+
*
|
|
125
|
+
* Call this when you're done using the tools to clean up resources.
|
|
126
|
+
*/
|
|
127
|
+
async stopSession() {
|
|
128
|
+
await this.client.stopSession();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get the underlying PlaywrightBrowser
|
|
132
|
+
*
|
|
133
|
+
* Provides direct access to the client for advanced use cases.
|
|
134
|
+
*
|
|
135
|
+
* @returns The PlaywrightBrowser instance
|
|
136
|
+
*/
|
|
137
|
+
getClient() {
|
|
138
|
+
return this.client;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=tools.js.map
|