@agent-browser-io/browser 0.1.0 → 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 (77) hide show
  1. package/README.md +70 -0
  2. package/bin/agent-browser-cli.cjs +2 -0
  3. package/bin/agent-browser-mcp.cjs +2 -0
  4. package/bin/index.cjs +54 -0
  5. package/dist/cjs/ai-sdk/createBrowserTools.d.ts +58 -0
  6. package/dist/cjs/ai-sdk/createBrowserTools.d.ts.map +1 -0
  7. package/dist/cjs/ai-sdk/createBrowserTools.js +192 -0
  8. package/dist/cjs/ai-sdk/createBrowserTools.js.map +1 -0
  9. package/dist/cjs/cli/cli.d.ts +6 -0
  10. package/dist/cjs/cli/cli.d.ts.map +1 -0
  11. package/dist/cjs/cli/cli.js +149 -0
  12. package/dist/cjs/cli/cli.js.map +1 -0
  13. package/dist/cjs/core/agent-browser/agent-browser.d.ts +51 -0
  14. package/dist/cjs/core/agent-browser/agent-browser.d.ts.map +1 -0
  15. package/dist/cjs/core/agent-browser/agent-browser.js +80 -0
  16. package/dist/cjs/core/agent-browser/agent-browser.js.map +1 -0
  17. package/dist/cjs/core/agent-browser/normalize-script.d.ts +3 -0
  18. package/dist/cjs/core/agent-browser/normalize-script.d.ts.map +1 -0
  19. package/dist/cjs/core/agent-browser/normalize-script.js +531 -0
  20. package/dist/cjs/core/agent-browser/normalize-script.js.map +1 -0
  21. package/dist/cjs/core/browser-backend/browser-backend.d.ts +23 -0
  22. package/dist/cjs/core/browser-backend/browser-backend.d.ts.map +1 -0
  23. package/dist/cjs/core/browser-backend/browser-backend.js +6 -0
  24. package/dist/cjs/core/browser-backend/browser-backend.js.map +1 -0
  25. package/dist/cjs/core/browser-backend/index.d.ts +3 -0
  26. package/dist/cjs/core/browser-backend/index.d.ts.map +1 -0
  27. package/dist/cjs/core/browser-backend/index.js +6 -0
  28. package/dist/cjs/core/browser-backend/index.js.map +1 -0
  29. package/dist/cjs/core/browser-backend/playwright-browser-backend.d.ts +27 -0
  30. package/dist/cjs/core/browser-backend/playwright-browser-backend.d.ts.map +1 -0
  31. package/dist/cjs/core/browser-backend/playwright-browser-backend.js +86 -0
  32. package/dist/cjs/core/browser-backend/playwright-browser-backend.js.map +1 -0
  33. package/dist/cjs/index.d.ts +5 -0
  34. package/dist/cjs/index.d.ts.map +1 -1
  35. package/dist/cjs/index.js +8 -3
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/mcp/server.d.ts +5 -0
  38. package/dist/cjs/mcp/server.d.ts.map +1 -0
  39. package/dist/cjs/mcp/server.js +284 -0
  40. package/dist/cjs/mcp/server.js.map +1 -0
  41. package/dist/esm/ai-sdk/createBrowserTools.d.ts +58 -0
  42. package/dist/esm/ai-sdk/createBrowserTools.d.ts.map +1 -0
  43. package/dist/esm/ai-sdk/createBrowserTools.js +189 -0
  44. package/dist/esm/ai-sdk/createBrowserTools.js.map +1 -0
  45. package/dist/esm/cli/cli.d.ts +6 -0
  46. package/dist/esm/cli/cli.d.ts.map +1 -0
  47. package/dist/esm/cli/cli.js +114 -0
  48. package/dist/esm/cli/cli.js.map +1 -0
  49. package/dist/esm/core/agent-browser/agent-browser.d.ts +51 -0
  50. package/dist/esm/core/agent-browser/agent-browser.d.ts.map +1 -0
  51. package/dist/esm/core/agent-browser/agent-browser.js +76 -0
  52. package/dist/esm/core/agent-browser/agent-browser.js.map +1 -0
  53. package/dist/esm/core/agent-browser/normalize-script.d.ts +3 -0
  54. package/dist/esm/core/agent-browser/normalize-script.d.ts.map +1 -0
  55. package/dist/esm/core/agent-browser/normalize-script.js +528 -0
  56. package/dist/esm/core/agent-browser/normalize-script.js.map +1 -0
  57. package/dist/esm/core/browser-backend/browser-backend.d.ts +23 -0
  58. package/dist/esm/core/browser-backend/browser-backend.d.ts.map +1 -0
  59. package/dist/esm/core/browser-backend/browser-backend.js +5 -0
  60. package/dist/esm/core/browser-backend/browser-backend.js.map +1 -0
  61. package/dist/esm/core/browser-backend/index.d.ts +3 -0
  62. package/dist/esm/core/browser-backend/index.d.ts.map +1 -0
  63. package/dist/esm/core/browser-backend/index.js +2 -0
  64. package/dist/esm/core/browser-backend/index.js.map +1 -0
  65. package/dist/esm/core/browser-backend/playwright-browser-backend.d.ts +27 -0
  66. package/dist/esm/core/browser-backend/playwright-browser-backend.d.ts.map +1 -0
  67. package/dist/esm/core/browser-backend/playwright-browser-backend.js +82 -0
  68. package/dist/esm/core/browser-backend/playwright-browser-backend.js.map +1 -0
  69. package/dist/esm/index.d.ts +5 -0
  70. package/dist/esm/index.d.ts.map +1 -1
  71. package/dist/esm/index.js +4 -2
  72. package/dist/esm/index.js.map +1 -1
  73. package/dist/esm/mcp/server.d.ts +5 -0
  74. package/dist/esm/mcp/server.d.ts.map +1 -0
  75. package/dist/esm/mcp/server.js +282 -0
  76. package/dist/esm/mcp/server.js.map +1 -0
  77. package/package.json +14 -5
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Default browser implementation using Playwright
3
+ */
4
+ import { chromium } from 'playwright';
5
+ export class PlaywrightBrowserBackend {
6
+ constructor() {
7
+ this.browser = null;
8
+ this.page = null;
9
+ }
10
+ async launch() {
11
+ this.browser = await chromium.launch();
12
+ this.page = await this.browser.newPage();
13
+ }
14
+ async navigate(url) {
15
+ await this.ensurePage();
16
+ await this.page.goto(url);
17
+ }
18
+ async click(selector) {
19
+ await this.ensurePage();
20
+ await this.page.click(selector);
21
+ }
22
+ async type(selector, text) {
23
+ await this.ensurePage();
24
+ await this.page.fill(selector, text);
25
+ }
26
+ async evaluate(script) {
27
+ await this.ensurePage();
28
+ return this.page.evaluate(script);
29
+ }
30
+ async ensurePage() {
31
+ if (!this.page) {
32
+ await this.launch();
33
+ }
34
+ }
35
+ async dblclick(selector) {
36
+ await this.ensurePage();
37
+ await this.page.dblclick(selector);
38
+ }
39
+ async fill(selector, text) {
40
+ await this.ensurePage();
41
+ await this.page.fill(selector, text);
42
+ }
43
+ async press(key) {
44
+ await this.ensurePage();
45
+ await this.page.keyboard.press(key);
46
+ }
47
+ async hover(selector) {
48
+ await this.ensurePage();
49
+ await this.page.hover(selector);
50
+ }
51
+ async select(selector, value) {
52
+ await this.ensurePage();
53
+ await this.page.selectOption(selector, value);
54
+ }
55
+ async check(selector) {
56
+ await this.ensurePage();
57
+ await this.page.check(selector);
58
+ }
59
+ async uncheck(selector) {
60
+ await this.ensurePage();
61
+ await this.page.uncheck(selector);
62
+ }
63
+ async scroll(direction, pixels = 100) {
64
+ await this.ensurePage();
65
+ const dx = direction === 'left' ? -pixels : direction === 'right' ? pixels : 0;
66
+ const dy = direction === 'up' ? -pixels : direction === 'down' ? pixels : 0;
67
+ await this.page.mouse.wheel(dx, dy);
68
+ }
69
+ async screenshot(path, options) {
70
+ await this.ensurePage();
71
+ const buffer = await this.page.screenshot({ path, fullPage: options?.fullPage });
72
+ return path ? undefined : buffer;
73
+ }
74
+ async close() {
75
+ if (this.browser) {
76
+ await this.browser.close();
77
+ this.browser = null;
78
+ this.page = null;
79
+ }
80
+ }
81
+ }
82
+ //# sourceMappingURL=playwright-browser-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-browser-backend.js","sourceRoot":"","sources":["../../../../src/core/browser-backend/playwright-browser-backend.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,9 @@
3
3
  * Browser automation and control for agent-browser-io
4
4
  */
5
5
  export declare const VERSION = "0.1.0";
6
+ export { createBrowserTools } from "./ai-sdk/createBrowserTools.js";
7
+ export type { IAgentBrowser } from "./core/agent-browser/agent-browser.js";
8
+ export { AgentBrowser } from "./core/agent-browser/agent-browser.js";
9
+ export type { IBrowserBackend } from "./core/browser-backend/browser-backend.js";
10
+ export { DefaultBrowserBackend } from "./core/browser-backend/index.js";
6
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC"}
package/dist/esm/index.js CHANGED
@@ -2,6 +2,8 @@
2
2
  * @agent-browser-io/browser
3
3
  * Browser automation and control for agent-browser-io
4
4
  */
5
- export const VERSION = '0.1.0';
6
- console.log('Hi, first commit here :) Thank you for checking out stranger!');
5
+ export const VERSION = "0.1.0";
6
+ export { createBrowserTools } from "./ai-sdk/createBrowserTools.js";
7
+ export { AgentBrowser } from "./core/agent-browser/agent-browser.js";
8
+ export { DefaultBrowserBackend } from "./core/browser-backend/index.js";
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * MCP server that exposes AgentBrowser as tools over stdio.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * MCP server that exposes AgentBrowser as tools over stdio.
3
+ */
4
+ import { z } from "zod";
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
+ import { AgentBrowser } from "../core/agent-browser/agent-browser";
8
+ import { DefaultBrowserBackend } from "../core/browser-backend/index";
9
+ const backend = new DefaultBrowserBackend();
10
+ const browser = new AgentBrowser(backend);
11
+ let launched = false;
12
+ async function ensureLaunched() {
13
+ if (!launched) {
14
+ await browser.launch();
15
+ launched = true;
16
+ }
17
+ }
18
+ function toolResult(text) {
19
+ return { content: [{ type: "text", text }] };
20
+ }
21
+ function toolError(err) {
22
+ const message = err instanceof Error ? err.message : String(err);
23
+ return { content: [{ type: "text", text: `Error: ${message}` }] };
24
+ }
25
+ const server = new McpServer({ name: "agent-browser", version: "0.1.0" }, { capabilities: { tools: {} } });
26
+ // agent_browser_launch
27
+ server.registerTool("agent_browser_launch", {
28
+ title: "Launch Browser",
29
+ description: "Launch the browser (idempotent). Call before other actions if the browser is not yet running.",
30
+ inputSchema: z.object({}),
31
+ }, async () => {
32
+ try {
33
+ if (!launched) {
34
+ await browser.launch();
35
+ launched = true;
36
+ }
37
+ return toolResult("Browser launched.");
38
+ }
39
+ catch (err) {
40
+ return toolError(err);
41
+ }
42
+ });
43
+ // agent_browser_navigate
44
+ server.registerTool("agent_browser_navigate", {
45
+ title: "Navigate",
46
+ description: "Navigate to a URL and apply the wireframe normalizer.",
47
+ inputSchema: z.object({ url: z.string().describe("URL to open") }),
48
+ }, async ({ url }) => {
49
+ try {
50
+ await ensureLaunched();
51
+ await browser.navigate(url);
52
+ return toolResult(`Navigated to ${url}`);
53
+ }
54
+ catch (err) {
55
+ return toolError(err);
56
+ }
57
+ });
58
+ // agent_browser_get_wireframe
59
+ server.registerTool("agent_browser_get_wireframe", {
60
+ title: "Get Wireframe",
61
+ description: "Return the ASCII wireframe of the current page. Use ref IDs from this output for click, type, fill, etc.",
62
+ inputSchema: z.object({}),
63
+ }, async () => {
64
+ try {
65
+ await ensureLaunched();
66
+ const wireframe = await browser.getWireframe();
67
+ return toolResult(wireframe || "(empty wireframe)");
68
+ }
69
+ catch (err) {
70
+ return toolError(err);
71
+ }
72
+ });
73
+ // agent_browser_click
74
+ server.registerTool("agent_browser_click", {
75
+ title: "Click",
76
+ description: "Click the element with the given ref ID (from the wireframe).",
77
+ inputSchema: z.object({ ref: z.string().describe("Element ref ID from wireframe") }),
78
+ }, async ({ ref }) => {
79
+ try {
80
+ await ensureLaunched();
81
+ await browser.click(ref);
82
+ return toolResult(`Clicked ref ${ref}`);
83
+ }
84
+ catch (err) {
85
+ return toolError(err);
86
+ }
87
+ });
88
+ // agent_browser_type
89
+ server.registerTool("agent_browser_type", {
90
+ title: "Type",
91
+ description: "Type text into the element with the given ref ID.",
92
+ inputSchema: z.object({
93
+ ref: z.string().describe("Element ref ID from wireframe"),
94
+ text: z.string().describe("Text to type"),
95
+ }),
96
+ }, async ({ ref, text }) => {
97
+ try {
98
+ await ensureLaunched();
99
+ await browser.type(ref, text);
100
+ return toolResult(`Typed into ref ${ref}`);
101
+ }
102
+ catch (err) {
103
+ return toolError(err);
104
+ }
105
+ });
106
+ // agent_browser_fill
107
+ server.registerTool("agent_browser_fill", {
108
+ title: "Fill",
109
+ description: "Clear and fill the element (by ref) with the given text.",
110
+ inputSchema: z.object({
111
+ ref: z.string().describe("Element ref ID from wireframe"),
112
+ text: z.string().describe("Text to fill"),
113
+ }),
114
+ }, async ({ ref, text }) => {
115
+ try {
116
+ await ensureLaunched();
117
+ await browser.fill(ref, text);
118
+ return toolResult(`Filled ref ${ref}`);
119
+ }
120
+ catch (err) {
121
+ return toolError(err);
122
+ }
123
+ });
124
+ // agent_browser_dblclick
125
+ server.registerTool("agent_browser_dblclick", {
126
+ title: "Double Click",
127
+ description: "Double-click the element with the given ref ID.",
128
+ inputSchema: z.object({ ref: z.string().describe("Element ref ID from wireframe") }),
129
+ }, async ({ ref }) => {
130
+ try {
131
+ await ensureLaunched();
132
+ await browser.dblclick(ref);
133
+ return toolResult(`Double-clicked ref ${ref}`);
134
+ }
135
+ catch (err) {
136
+ return toolError(err);
137
+ }
138
+ });
139
+ // agent_browser_hover
140
+ server.registerTool("agent_browser_hover", {
141
+ title: "Hover",
142
+ description: "Hover over the element with the given ref ID.",
143
+ inputSchema: z.object({ ref: z.string().describe("Element ref ID from wireframe") }),
144
+ }, async ({ ref }) => {
145
+ try {
146
+ await ensureLaunched();
147
+ await browser.hover(ref);
148
+ return toolResult(`Hovered ref ${ref}`);
149
+ }
150
+ catch (err) {
151
+ return toolError(err);
152
+ }
153
+ });
154
+ // agent_browser_press
155
+ server.registerTool("agent_browser_press", {
156
+ title: "Press Key",
157
+ description: "Press a keyboard key (e.g. Enter, Tab, ArrowDown).",
158
+ inputSchema: z.object({ key: z.string().describe("Key to press") }),
159
+ }, async ({ key }) => {
160
+ try {
161
+ await ensureLaunched();
162
+ await browser.press(key);
163
+ return toolResult(`Pressed key ${key}`);
164
+ }
165
+ catch (err) {
166
+ return toolError(err);
167
+ }
168
+ });
169
+ // agent_browser_select
170
+ server.registerTool("agent_browser_select", {
171
+ title: "Select Option",
172
+ description: "Select an option in a dropdown by ref and value.",
173
+ inputSchema: z.object({
174
+ ref: z.string().describe("Element ref ID from wireframe"),
175
+ value: z.string().describe("Option value to select"),
176
+ }),
177
+ }, async ({ ref, value }) => {
178
+ try {
179
+ await ensureLaunched();
180
+ await browser.select(ref, value);
181
+ return toolResult(`Selected value in ref ${ref}`);
182
+ }
183
+ catch (err) {
184
+ return toolError(err);
185
+ }
186
+ });
187
+ // agent_browser_check
188
+ server.registerTool("agent_browser_check", {
189
+ title: "Check",
190
+ description: "Check the checkbox/radio with the given ref ID.",
191
+ inputSchema: z.object({ ref: z.string().describe("Element ref ID from wireframe") }),
192
+ }, async ({ ref }) => {
193
+ try {
194
+ await ensureLaunched();
195
+ await browser.check(ref);
196
+ return toolResult(`Checked ref ${ref}`);
197
+ }
198
+ catch (err) {
199
+ return toolError(err);
200
+ }
201
+ });
202
+ // agent_browser_uncheck
203
+ server.registerTool("agent_browser_uncheck", {
204
+ title: "Uncheck",
205
+ description: "Uncheck the checkbox with the given ref ID.",
206
+ inputSchema: z.object({ ref: z.string().describe("Element ref ID from wireframe") }),
207
+ }, async ({ ref }) => {
208
+ try {
209
+ await ensureLaunched();
210
+ await browser.uncheck(ref);
211
+ return toolResult(`Unchecked ref ${ref}`);
212
+ }
213
+ catch (err) {
214
+ return toolError(err);
215
+ }
216
+ });
217
+ // agent_browser_scroll
218
+ server.registerTool("agent_browser_scroll", {
219
+ title: "Scroll",
220
+ description: "Scroll the page in the given direction.",
221
+ inputSchema: z.object({
222
+ direction: z.enum(["up", "down", "left", "right"]).describe("Scroll direction"),
223
+ pixels: z.number().optional().describe("Pixels to scroll (default 100)"),
224
+ }),
225
+ }, async ({ direction, pixels }) => {
226
+ try {
227
+ await ensureLaunched();
228
+ await browser.scroll(direction, pixels);
229
+ return toolResult(`Scrolled ${direction}`);
230
+ }
231
+ catch (err) {
232
+ return toolError(err);
233
+ }
234
+ });
235
+ // agent_browser_screenshot
236
+ server.registerTool("agent_browser_screenshot", {
237
+ title: "Screenshot",
238
+ description: "Take a screenshot. Returns base64 PNG when path is omitted; otherwise saves to file.",
239
+ inputSchema: z.object({
240
+ path: z.string().optional().describe("Optional file path to save screenshot"),
241
+ fullPage: z.boolean().optional().describe("Capture full scrollable page"),
242
+ }),
243
+ }, async ({ path: filePath, fullPage }) => {
244
+ try {
245
+ await ensureLaunched();
246
+ const result = await browser.screenshot(filePath, { fullPage });
247
+ if (filePath) {
248
+ return toolResult(`Screenshot saved to ${filePath}`);
249
+ }
250
+ const base64 = result instanceof Buffer ? result.toString("base64") : "";
251
+ return toolResult(base64 ? `data:image/png;base64,${base64}` : "(no image)");
252
+ }
253
+ catch (err) {
254
+ return toolError(err);
255
+ }
256
+ });
257
+ // agent_browser_close
258
+ server.registerTool("agent_browser_close", {
259
+ title: "Close Browser",
260
+ description: "Close the browser.",
261
+ inputSchema: z.object({}),
262
+ }, async () => {
263
+ try {
264
+ if (launched) {
265
+ await browser.close();
266
+ launched = false;
267
+ }
268
+ return toolResult("Browser closed.");
269
+ }
270
+ catch (err) {
271
+ return toolError(err);
272
+ }
273
+ });
274
+ async function main() {
275
+ const transport = new StdioServerTransport();
276
+ await server.connect(transport);
277
+ }
278
+ main().catch((e) => {
279
+ console.error('Fatal:', e);
280
+ process.exit(1);
281
+ });
282
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@agent-browser-io/browser",
3
- "version": "0.1.0",
4
- "description": "Browser automation and control for agent-browser-io",
3
+ "version": "0.2.0",
4
+ "description": "Token efficient agent browser",
5
5
  "main": "dist/cjs/index.js",
6
+ "type": "module",
6
7
  "module": "dist/esm/index.js",
7
8
  "types": "dist/cjs/index.d.ts",
8
9
  "exports": {
@@ -12,15 +13,23 @@
12
13
  "types": "./dist/cjs/index.d.ts"
13
14
  }
14
15
  },
15
- "files": [
16
- "dist"
17
- ],
16
+ "bin": {
17
+ "agent-browser-cli": "./bin/index.cjs"
18
+ },
19
+ "files": ["dist", "bin"],
18
20
  "scripts": {
19
21
  "build": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json",
20
22
  "clean": "rm -rf dist",
21
23
  "prepublishOnly": "npm run build"
22
24
  },
25
+ "dependencies": {
26
+ "@modelcontextprotocol/sdk": "^1.26.0",
27
+ "ai": "^6.0.0",
28
+ "zod": "^4.3.6"
29
+ },
23
30
  "devDependencies": {
31
+ "@types/node": "^20.0.0",
32
+ "playwright": "^1.58.2",
24
33
  "typescript": "^5.0.0"
25
34
  },
26
35
  "engines": {