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.
Files changed (192) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +131 -9
  3. package/dist/src/_utils/endpoints.d.ts +28 -0
  4. package/dist/src/_utils/endpoints.d.ts.map +1 -0
  5. package/dist/src/_utils/endpoints.js +44 -0
  6. package/dist/src/_utils/endpoints.js.map +1 -0
  7. package/dist/src/identity/client.d.ts +40 -0
  8. package/dist/src/identity/client.d.ts.map +1 -0
  9. package/dist/src/identity/client.js +109 -0
  10. package/dist/src/identity/client.js.map +1 -0
  11. package/dist/src/identity/index.d.ts +22 -0
  12. package/dist/src/identity/index.d.ts.map +1 -0
  13. package/dist/src/identity/index.js +24 -0
  14. package/dist/src/identity/index.js.map +1 -0
  15. package/dist/src/identity/types.d.ts +82 -0
  16. package/dist/src/identity/types.d.ts.map +1 -0
  17. package/dist/src/identity/types.js +5 -0
  18. package/dist/src/identity/types.js.map +1 -0
  19. package/dist/src/identity/wrappers.d.ts +54 -0
  20. package/dist/src/identity/wrappers.d.ts.map +1 -0
  21. package/dist/src/identity/wrappers.js +95 -0
  22. package/dist/src/identity/wrappers.js.map +1 -0
  23. package/dist/src/runtime/app.d.ts +144 -0
  24. package/dist/src/runtime/app.d.ts.map +1 -0
  25. package/dist/src/runtime/app.js +485 -0
  26. package/dist/src/runtime/app.js.map +1 -0
  27. package/dist/src/runtime/client.d.ts +154 -0
  28. package/dist/src/runtime/client.d.ts.map +1 -0
  29. package/dist/src/runtime/client.js +319 -0
  30. package/dist/src/runtime/client.js.map +1 -0
  31. package/dist/src/runtime/context.d.ts +33 -0
  32. package/dist/src/runtime/context.d.ts.map +1 -0
  33. package/dist/src/runtime/context.js +49 -0
  34. package/dist/src/runtime/context.js.map +1 -0
  35. package/dist/src/runtime/index.d.ts +8 -0
  36. package/dist/src/runtime/index.d.ts.map +1 -0
  37. package/dist/src/runtime/index.js +7 -0
  38. package/dist/src/runtime/index.js.map +1 -0
  39. package/dist/src/runtime/types.d.ts +429 -0
  40. package/dist/src/runtime/types.d.ts.map +1 -0
  41. package/dist/src/runtime/types.js +26 -0
  42. package/dist/src/runtime/types.js.map +1 -0
  43. package/dist/src/tools/browser/client.d.ts +125 -0
  44. package/dist/src/tools/browser/client.d.ts.map +1 -0
  45. package/dist/src/tools/browser/client.js +320 -0
  46. package/dist/src/tools/browser/client.js.map +1 -0
  47. package/dist/src/tools/browser/index.d.ts +4 -0
  48. package/dist/src/tools/browser/index.d.ts.map +1 -0
  49. package/dist/src/tools/browser/index.js +3 -0
  50. package/dist/src/tools/browser/index.js.map +1 -0
  51. package/dist/src/tools/browser/integrations/playwright/client.d.ts +147 -0
  52. package/dist/src/tools/browser/integrations/playwright/client.d.ts.map +1 -0
  53. package/dist/src/tools/browser/integrations/playwright/client.js +324 -0
  54. package/dist/src/tools/browser/integrations/playwright/client.js.map +1 -0
  55. package/dist/src/tools/browser/integrations/playwright/index.d.ts +20 -0
  56. package/dist/src/tools/browser/integrations/playwright/index.d.ts.map +1 -0
  57. package/dist/src/tools/browser/integrations/playwright/index.js +19 -0
  58. package/dist/src/tools/browser/integrations/playwright/index.js.map +1 -0
  59. package/dist/src/tools/browser/integrations/playwright/types.d.ts +169 -0
  60. package/dist/src/tools/browser/integrations/playwright/types.d.ts.map +1 -0
  61. package/dist/src/tools/browser/integrations/playwright/types.js +2 -0
  62. package/dist/src/tools/browser/integrations/playwright/types.js.map +1 -0
  63. package/dist/src/tools/browser/integrations/strands/click-tool.d.ts +20 -0
  64. package/dist/src/tools/browser/integrations/strands/click-tool.d.ts.map +1 -0
  65. package/dist/src/tools/browser/integrations/strands/click-tool.js +33 -0
  66. package/dist/src/tools/browser/integrations/strands/click-tool.js.map +1 -0
  67. package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts +20 -0
  68. package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts.map +1 -0
  69. package/dist/src/tools/browser/integrations/strands/evaluate-tool.js +34 -0
  70. package/dist/src/tools/browser/integrations/strands/evaluate-tool.js.map +1 -0
  71. package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts +19 -0
  72. package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts.map +1 -0
  73. package/dist/src/tools/browser/integrations/strands/get-html-tool.js +32 -0
  74. package/dist/src/tools/browser/integrations/strands/get-html-tool.js.map +1 -0
  75. package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts +19 -0
  76. package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts.map +1 -0
  77. package/dist/src/tools/browser/integrations/strands/get-text-tool.js +32 -0
  78. package/dist/src/tools/browser/integrations/strands/get-text-tool.js.map +1 -0
  79. package/dist/src/tools/browser/integrations/strands/index.d.ts +25 -0
  80. package/dist/src/tools/browser/integrations/strands/index.d.ts.map +1 -0
  81. package/dist/src/tools/browser/integrations/strands/index.js +25 -0
  82. package/dist/src/tools/browser/integrations/strands/index.js.map +1 -0
  83. package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts +21 -0
  84. package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts.map +1 -0
  85. package/dist/src/tools/browser/integrations/strands/navigate-tool.js +41 -0
  86. package/dist/src/tools/browser/integrations/strands/navigate-tool.js.map +1 -0
  87. package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts +29 -0
  88. package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts.map +1 -0
  89. package/dist/src/tools/browser/integrations/strands/screenshot-tool.js +52 -0
  90. package/dist/src/tools/browser/integrations/strands/screenshot-tool.js.map +1 -0
  91. package/dist/src/tools/browser/integrations/strands/tools.d.ts +119 -0
  92. package/dist/src/tools/browser/integrations/strands/tools.d.ts.map +1 -0
  93. package/dist/src/tools/browser/integrations/strands/tools.js +141 -0
  94. package/dist/src/tools/browser/integrations/strands/tools.js.map +1 -0
  95. package/dist/src/tools/browser/integrations/strands/type-tool.d.ts +22 -0
  96. package/dist/src/tools/browser/integrations/strands/type-tool.d.ts.map +1 -0
  97. package/dist/src/tools/browser/integrations/strands/type-tool.js +37 -0
  98. package/dist/src/tools/browser/integrations/strands/type-tool.js.map +1 -0
  99. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts +18 -0
  100. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.d.ts.map +1 -0
  101. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js +31 -0
  102. package/dist/src/tools/browser/integrations/vercel-ai/click-tool.js.map +1 -0
  103. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts +18 -0
  104. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.d.ts.map +1 -0
  105. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js +32 -0
  106. package/dist/src/tools/browser/integrations/vercel-ai/evaluate-tool.js.map +1 -0
  107. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts +17 -0
  108. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.d.ts.map +1 -0
  109. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js +30 -0
  110. package/dist/src/tools/browser/integrations/vercel-ai/get-html-tool.js.map +1 -0
  111. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts +17 -0
  112. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.d.ts.map +1 -0
  113. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js +30 -0
  114. package/dist/src/tools/browser/integrations/vercel-ai/get-text-tool.js.map +1 -0
  115. package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts +19 -0
  116. package/dist/src/tools/browser/integrations/vercel-ai/index.d.ts.map +1 -0
  117. package/dist/src/tools/browser/integrations/vercel-ai/index.js +19 -0
  118. package/dist/src/tools/browser/integrations/vercel-ai/index.js.map +1 -0
  119. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts +19 -0
  120. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.d.ts.map +1 -0
  121. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js +39 -0
  122. package/dist/src/tools/browser/integrations/vercel-ai/navigate-tool.js.map +1 -0
  123. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts +22 -0
  124. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.d.ts.map +1 -0
  125. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js +44 -0
  126. package/dist/src/tools/browser/integrations/vercel-ai/screenshot-tool.js.map +1 -0
  127. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts +123 -0
  128. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts.map +1 -0
  129. package/dist/src/tools/browser/integrations/vercel-ai/tools.js +145 -0
  130. package/dist/src/tools/browser/integrations/vercel-ai/tools.js.map +1 -0
  131. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts +20 -0
  132. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.d.ts.map +1 -0
  133. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js +35 -0
  134. package/dist/src/tools/browser/integrations/vercel-ai/type-tool.js.map +1 -0
  135. package/dist/src/tools/browser/types.d.ts +336 -0
  136. package/dist/src/tools/browser/types.d.ts.map +1 -0
  137. package/dist/src/tools/browser/types.js +17 -0
  138. package/dist/src/tools/browser/types.js.map +1 -0
  139. package/dist/src/tools/code-interpreter/client.d.ts +214 -0
  140. package/dist/src/tools/code-interpreter/client.d.ts.map +1 -0
  141. package/dist/src/tools/code-interpreter/client.js +518 -0
  142. package/dist/src/tools/code-interpreter/client.js.map +1 -0
  143. package/dist/src/tools/code-interpreter/index.d.ts +4 -0
  144. package/dist/src/tools/code-interpreter/index.d.ts.map +1 -0
  145. package/dist/src/tools/code-interpreter/index.js +5 -0
  146. package/dist/src/tools/code-interpreter/index.js.map +1 -0
  147. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts +28 -0
  148. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts.map +1 -0
  149. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js +47 -0
  150. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js.map +1 -0
  151. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts +27 -0
  152. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts.map +1 -0
  153. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js +42 -0
  154. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js.map +1 -0
  155. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts +33 -0
  156. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts.map +1 -0
  157. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js +78 -0
  158. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js.map +1 -0
  159. package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts +32 -0
  160. package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts.map +1 -0
  161. package/dist/src/tools/code-interpreter/integrations/strands/index.js +32 -0
  162. package/dist/src/tools/code-interpreter/integrations/strands/index.js.map +1 -0
  163. package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts +94 -0
  164. package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts.map +1 -0
  165. package/dist/src/tools/code-interpreter/integrations/strands/tools.js +112 -0
  166. package/dist/src/tools/code-interpreter/integrations/strands/tools.js.map +1 -0
  167. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts +27 -0
  168. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts.map +1 -0
  169. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js +46 -0
  170. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js.map +1 -0
  171. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts +26 -0
  172. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts.map +1 -0
  173. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js +41 -0
  174. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js.map +1 -0
  175. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts +32 -0
  176. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts.map +1 -0
  177. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js +77 -0
  178. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js.map +1 -0
  179. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts +26 -0
  180. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts.map +1 -0
  181. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js +26 -0
  182. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js.map +1 -0
  183. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts +94 -0
  184. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts.map +1 -0
  185. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js +112 -0
  186. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js.map +1 -0
  187. package/dist/src/tools/code-interpreter/types.d.ts +473 -0
  188. package/dist/src/tools/code-interpreter/types.d.ts.map +1 -0
  189. package/dist/src/tools/code-interpreter/types.js +52 -0
  190. package/dist/src/tools/code-interpreter/types.js.map +1 -0
  191. package/package.json +134 -12
  192. 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