@cloudbase/agent-tools 0.0.2

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 (194) hide show
  1. package/CHANGELOG.md +416 -0
  2. package/dist/agent_tool.d.ts +7 -0
  3. package/dist/agent_tool.d.ts.map +1 -0
  4. package/dist/agent_tool.js +16 -0
  5. package/dist/agent_tool.js.map +1 -0
  6. package/dist/bash/bash-tool.d.ts +61 -0
  7. package/dist/bash/bash-tool.d.ts.map +1 -0
  8. package/dist/bash/bash-tool.js +191 -0
  9. package/dist/bash/bash-tool.js.map +1 -0
  10. package/dist/bash/index.d.ts +7 -0
  11. package/dist/bash/index.d.ts.map +1 -0
  12. package/dist/bash/index.js +17 -0
  13. package/dist/bash/index.js.map +1 -0
  14. package/dist/bash/operator/base-operator.d.ts +44 -0
  15. package/dist/bash/operator/base-operator.d.ts.map +1 -0
  16. package/dist/bash/operator/base-operator.js +14 -0
  17. package/dist/bash/operator/base-operator.js.map +1 -0
  18. package/dist/bash/operator/local-operator.d.ts +15 -0
  19. package/dist/bash/operator/local-operator.d.ts.map +1 -0
  20. package/dist/bash/operator/local-operator.js +145 -0
  21. package/dist/bash/operator/local-operator.js.map +1 -0
  22. package/dist/bash/operator/sandbox-operator.d.ts +22 -0
  23. package/dist/bash/operator/sandbox-operator.d.ts.map +1 -0
  24. package/dist/bash/operator/sandbox-operator.js +112 -0
  25. package/dist/bash/operator/sandbox-operator.js.map +1 -0
  26. package/dist/bash/utils.d.ts +106 -0
  27. package/dist/bash/utils.d.ts.map +1 -0
  28. package/dist/bash/utils.js +197 -0
  29. package/dist/bash/utils.js.map +1 -0
  30. package/dist/browser/browser-instance-manager.d.ts +79 -0
  31. package/dist/browser/browser-instance-manager.d.ts.map +1 -0
  32. package/dist/browser/browser-instance-manager.js +242 -0
  33. package/dist/browser/browser-instance-manager.js.map +1 -0
  34. package/dist/browser/browser-tool-executor.d.ts +57 -0
  35. package/dist/browser/browser-tool-executor.d.ts.map +1 -0
  36. package/dist/browser/browser-tool-executor.js +205 -0
  37. package/dist/browser/browser-tool-executor.js.map +1 -0
  38. package/dist/browser/browser_client_unified.d.ts +52 -0
  39. package/dist/browser/browser_client_unified.d.ts.map +1 -0
  40. package/dist/browser/browser_client_unified.js +381 -0
  41. package/dist/browser/browser_client_unified.js.map +1 -0
  42. package/dist/browser/browser_tool_unified.d.ts +93 -0
  43. package/dist/browser/browser_tool_unified.d.ts.map +1 -0
  44. package/dist/browser/browser_tool_unified.js +181 -0
  45. package/dist/browser/browser_tool_unified.js.map +1 -0
  46. package/dist/browser/index.d.ts +7 -0
  47. package/dist/browser/index.d.ts.map +1 -0
  48. package/dist/browser/index.js +19 -0
  49. package/dist/browser/index.js.map +1 -0
  50. package/dist/browser/sandbox-connector.d.ts +93 -0
  51. package/dist/browser/sandbox-connector.d.ts.map +1 -0
  52. package/dist/browser/sandbox-connector.js +272 -0
  53. package/dist/browser/sandbox-connector.js.map +1 -0
  54. package/dist/browser/types.d.ts +53 -0
  55. package/dist/browser/types.d.ts.map +1 -0
  56. package/dist/browser/types.js +3 -0
  57. package/dist/browser/types.js.map +1 -0
  58. package/dist/code_executers/base_code_executor.d.ts +17 -0
  59. package/dist/code_executers/base_code_executor.d.ts.map +1 -0
  60. package/dist/code_executers/base_code_executor.js +20 -0
  61. package/dist/code_executers/base_code_executor.js.map +1 -0
  62. package/dist/code_executers/built_in_code_executor.d.ts +25 -0
  63. package/dist/code_executers/built_in_code_executor.d.ts.map +1 -0
  64. package/dist/code_executers/built_in_code_executor.js +106 -0
  65. package/dist/code_executers/built_in_code_executor.js.map +1 -0
  66. package/dist/code_executers/unsafe_local_code_executor.d.ts +118 -0
  67. package/dist/code_executers/unsafe_local_code_executor.d.ts.map +1 -0
  68. package/dist/code_executers/unsafe_local_code_executor.js +605 -0
  69. package/dist/code_executers/unsafe_local_code_executor.js.map +1 -0
  70. package/dist/fs/edit-tool.d.ts +26 -0
  71. package/dist/fs/edit-tool.d.ts.map +1 -0
  72. package/dist/fs/edit-tool.js +202 -0
  73. package/dist/fs/edit-tool.js.map +1 -0
  74. package/dist/fs/glob-tool.d.ts +31 -0
  75. package/dist/fs/glob-tool.d.ts.map +1 -0
  76. package/dist/fs/glob-tool.js +287 -0
  77. package/dist/fs/glob-tool.js.map +1 -0
  78. package/dist/fs/grep-tool.d.ts +32 -0
  79. package/dist/fs/grep-tool.d.ts.map +1 -0
  80. package/dist/fs/grep-tool.js +353 -0
  81. package/dist/fs/grep-tool.js.map +1 -0
  82. package/dist/fs/index.d.ts +11 -0
  83. package/dist/fs/index.d.ts.map +1 -0
  84. package/dist/fs/index.js +38 -0
  85. package/dist/fs/index.js.map +1 -0
  86. package/dist/fs/ls-tool.d.ts +26 -0
  87. package/dist/fs/ls-tool.d.ts.map +1 -0
  88. package/dist/fs/ls-tool.js +235 -0
  89. package/dist/fs/ls-tool.js.map +1 -0
  90. package/dist/fs/multiedit-tool.d.ts +34 -0
  91. package/dist/fs/multiedit-tool.d.ts.map +1 -0
  92. package/dist/fs/multiedit-tool.js +158 -0
  93. package/dist/fs/multiedit-tool.js.map +1 -0
  94. package/dist/fs/operator/base-operator.d.ts +28 -0
  95. package/dist/fs/operator/base-operator.d.ts.map +1 -0
  96. package/dist/fs/operator/base-operator.js +21 -0
  97. package/dist/fs/operator/base-operator.js.map +1 -0
  98. package/dist/fs/operator/in-memory-operator.d.ts +39 -0
  99. package/dist/fs/operator/in-memory-operator.d.ts.map +1 -0
  100. package/dist/fs/operator/in-memory-operator.js +115 -0
  101. package/dist/fs/operator/in-memory-operator.js.map +1 -0
  102. package/dist/fs/operator/index.d.ts +6 -0
  103. package/dist/fs/operator/index.d.ts.map +1 -0
  104. package/dist/fs/operator/index.js +28 -0
  105. package/dist/fs/operator/index.js.map +1 -0
  106. package/dist/fs/operator/local-operator.d.ts +25 -0
  107. package/dist/fs/operator/local-operator.d.ts.map +1 -0
  108. package/dist/fs/operator/local-operator.js +62 -0
  109. package/dist/fs/operator/local-operator.js.map +1 -0
  110. package/dist/fs/operator/sanbox-operator.d.ts +31 -0
  111. package/dist/fs/operator/sanbox-operator.d.ts.map +1 -0
  112. package/dist/fs/operator/sanbox-operator.js +172 -0
  113. package/dist/fs/operator/sanbox-operator.js.map +1 -0
  114. package/dist/fs/operator/transaction/index.d.ts +6 -0
  115. package/dist/fs/operator/transaction/index.d.ts.map +1 -0
  116. package/dist/fs/operator/transaction/index.js +28 -0
  117. package/dist/fs/operator/transaction/index.js.map +1 -0
  118. package/dist/fs/operator/transaction/snapshot-strategies.d.ts +54 -0
  119. package/dist/fs/operator/transaction/snapshot-strategies.d.ts.map +1 -0
  120. package/dist/fs/operator/transaction/snapshot-strategies.js +278 -0
  121. package/dist/fs/operator/transaction/snapshot-strategies.js.map +1 -0
  122. package/dist/fs/operator/transaction/transaction-operator.d.ts +53 -0
  123. package/dist/fs/operator/transaction/transaction-operator.d.ts.map +1 -0
  124. package/dist/fs/operator/transaction/transaction-operator.js +195 -0
  125. package/dist/fs/operator/transaction/transaction-operator.js.map +1 -0
  126. package/dist/fs/operator/transaction/transaction-utils.d.ts +80 -0
  127. package/dist/fs/operator/transaction/transaction-utils.d.ts.map +1 -0
  128. package/dist/fs/operator/transaction/transaction-utils.js +156 -0
  129. package/dist/fs/operator/transaction/transaction-utils.js.map +1 -0
  130. package/dist/fs/read-tool.d.ts +32 -0
  131. package/dist/fs/read-tool.d.ts.map +1 -0
  132. package/dist/fs/read-tool.js +271 -0
  133. package/dist/fs/read-tool.js.map +1 -0
  134. package/dist/fs/str-replace-editor.d.ts +23 -0
  135. package/dist/fs/str-replace-editor.d.ts.map +1 -0
  136. package/dist/fs/str-replace-editor.js +74 -0
  137. package/dist/fs/str-replace-editor.js.map +1 -0
  138. package/dist/fs/toolkit.d.ts +61 -0
  139. package/dist/fs/toolkit.d.ts.map +1 -0
  140. package/dist/fs/toolkit.js +113 -0
  141. package/dist/fs/toolkit.js.map +1 -0
  142. package/dist/fs/utils.d.ts +32 -0
  143. package/dist/fs/utils.d.ts.map +1 -0
  144. package/dist/fs/utils.js +133 -0
  145. package/dist/fs/utils.js.map +1 -0
  146. package/dist/fs/write-tool.d.ts +26 -0
  147. package/dist/fs/write-tool.d.ts.map +1 -0
  148. package/dist/fs/write-tool.js +110 -0
  149. package/dist/fs/write-tool.js.map +1 -0
  150. package/dist/index.d.ts +10 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +40 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/mcp/agkit-mcp-server.d.ts +291 -0
  155. package/dist/mcp/agkit-mcp-server.d.ts.map +1 -0
  156. package/dist/mcp/agkit-mcp-server.js +821 -0
  157. package/dist/mcp/agkit-mcp-server.js.map +1 -0
  158. package/dist/mcp/client-tool.d.ts +65 -0
  159. package/dist/mcp/client-tool.d.ts.map +1 -0
  160. package/dist/mcp/client-tool.js +220 -0
  161. package/dist/mcp/client-tool.js.map +1 -0
  162. package/dist/mcp/index.d.ts +14 -0
  163. package/dist/mcp/index.d.ts.map +1 -0
  164. package/dist/mcp/index.js +26 -0
  165. package/dist/mcp/index.js.map +1 -0
  166. package/dist/mcp/mcp-client-manager.d.ts +153 -0
  167. package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
  168. package/dist/mcp/mcp-client-manager.js +606 -0
  169. package/dist/mcp/mcp-client-manager.js.map +1 -0
  170. package/dist/mcp/mcp-toolkit.d.ts +112 -0
  171. package/dist/mcp/mcp-toolkit.d.ts.map +1 -0
  172. package/dist/mcp/mcp-toolkit.js +188 -0
  173. package/dist/mcp/mcp-toolkit.js.map +1 -0
  174. package/dist/mcp/types.d.ts +157 -0
  175. package/dist/mcp/types.d.ts.map +1 -0
  176. package/dist/mcp/types.js +34 -0
  177. package/dist/mcp/types.js.map +1 -0
  178. package/dist/mcp/utils.d.ts +17 -0
  179. package/dist/mcp/utils.d.ts.map +1 -0
  180. package/dist/mcp/utils.js +48 -0
  181. package/dist/mcp/utils.js.map +1 -0
  182. package/dist/types/index.d.ts +31 -0
  183. package/dist/types/index.d.ts.map +1 -0
  184. package/dist/types/index.js +3 -0
  185. package/dist/types/index.js.map +1 -0
  186. package/dist/types/zod.d.ts +18 -0
  187. package/dist/types/zod.d.ts.map +1 -0
  188. package/dist/types/zod.js +3 -0
  189. package/dist/types/zod.js.map +1 -0
  190. package/dist/utils.d.ts +141 -0
  191. package/dist/utils.d.ts.map +1 -0
  192. package/dist/utils.js +379 -0
  193. package/dist/utils.js.map +1 -0
  194. package/package.json +46 -0
@@ -0,0 +1,93 @@
1
+ import { z } from "zod/v4";
2
+ import { BaseTool, ToolResult } from "../utils";
3
+ import { BrowserClientConfig } from "./browser_client_unified";
4
+ /**
5
+ * Browser tool input schema
6
+ */
7
+ declare const BrowserToolInputSchema: z.ZodObject<{
8
+ tool: z.ZodString;
9
+ arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
10
+ }, z.core.$strip>;
11
+ type TBrowserToolInput = z.infer<typeof BrowserToolInputSchema>;
12
+ export interface BrowserToolResult {
13
+ success: boolean;
14
+ tool: string;
15
+ content?: Array<{
16
+ type: string;
17
+ text?: string;
18
+ data?: string;
19
+ mimeType?: string;
20
+ }>;
21
+ error?: string;
22
+ }
23
+ export type { TBrowserToolInput };
24
+ /**
25
+ * Unified Browser Tool
26
+ *
27
+ * Supports both local and sandbox modes:
28
+ * - Local mode: Uses local Playwright MCP server
29
+ * - Sandbox mode: Connects to E2B sandbox browser via CDP
30
+ */
31
+ export declare class UnifiedBrowserTool extends BaseTool<typeof BrowserToolInputSchema> {
32
+ private client;
33
+ private config;
34
+ constructor(config: BrowserClientConfig);
35
+ _invoke(input: TBrowserToolInput): Promise<ToolResult<BrowserToolResult>>;
36
+ /**
37
+ * List all available Playwright MCP tools
38
+ */
39
+ listAvailableTools(): Promise<any[]>;
40
+ navigate(url: string): Promise<ToolResult<BrowserToolResult>>;
41
+ snapshot(): Promise<ToolResult<BrowserToolResult>>;
42
+ click(element: string, ref: string): Promise<ToolResult<BrowserToolResult>>;
43
+ type(element: string, ref: string, text: string, options?: {
44
+ submit?: boolean;
45
+ slowly?: boolean;
46
+ }): Promise<ToolResult<BrowserToolResult>>;
47
+ screenshot(options?: {
48
+ fullPage?: boolean;
49
+ filename?: string;
50
+ }): Promise<ToolResult<BrowserToolResult>>;
51
+ waitFor(options: {
52
+ time?: number;
53
+ text?: string;
54
+ textGone?: string;
55
+ }): Promise<ToolResult<BrowserToolResult>>;
56
+ manageTabs(action: "list" | "create" | "close" | "select", index?: number): Promise<ToolResult<BrowserToolResult>>;
57
+ fillForm(fields: Array<{
58
+ element: string;
59
+ ref: string;
60
+ value: string;
61
+ }>): Promise<ToolResult<BrowserToolResult>>;
62
+ /**
63
+ * Get VNC URL (sandbox mode only)
64
+ */
65
+ getVncUrl(): string | undefined;
66
+ /**
67
+ * Get CDP URL (sandbox mode only)
68
+ */
69
+ getCdpUrl(): string | undefined;
70
+ /**
71
+ * Get connection status
72
+ */
73
+ getStatus(): {
74
+ isReady: boolean;
75
+ mode: string;
76
+ config: BrowserClientConfig;
77
+ };
78
+ /**
79
+ * Close the client connection
80
+ */
81
+ close(): Promise<void>;
82
+ }
83
+ /**
84
+ * Create a local browser tool
85
+ */
86
+ export declare function createLocalBrowserTool(config?: Omit<BrowserClientConfig, "mode">): UnifiedBrowserTool;
87
+ /**
88
+ * Create a sandbox browser tool
89
+ */
90
+ export declare function createSandboxBrowserTool(config: Omit<BrowserClientConfig, "mode"> & {
91
+ apiKey: string;
92
+ }): UnifiedBrowserTool;
93
+ //# sourceMappingURL=browser_tool_unified.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser_tool_unified.d.ts","sourceRoot":"","sources":["../../src/browser/browser_tool_unified.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnifiedBrowserTool = void 0;
4
+ exports.createLocalBrowserTool = createLocalBrowserTool;
5
+ exports.createSandboxBrowserTool = createSandboxBrowserTool;
6
+ const v4_1 = require("zod/v4");
7
+ const utils_1 = require("../utils");
8
+ const browser_client_unified_1 = require("./browser_client_unified");
9
+ /**
10
+ * Browser tool input schema
11
+ */
12
+ const BrowserToolInputSchema = v4_1.z.object({
13
+ /**
14
+ * The name of the Playwright MCP tool to call
15
+ * Examples: browser_navigate, browser_click, browser_snapshot, etc.
16
+ */
17
+ tool: v4_1.z.string(),
18
+ /**
19
+ * Arguments to pass to the tool
20
+ */
21
+ arguments: v4_1.z.record(v4_1.z.string(), v4_1.z.any()).optional(),
22
+ });
23
+ /**
24
+ * Unified Browser Tool
25
+ *
26
+ * Supports both local and sandbox modes:
27
+ * - Local mode: Uses local Playwright MCP server
28
+ * - Sandbox mode: Connects to E2B sandbox browser via CDP
29
+ */
30
+ class UnifiedBrowserTool extends utils_1.BaseTool {
31
+ constructor(config) {
32
+ super({
33
+ name: "browser",
34
+ description: `Browser automation tool (${config.mode} mode) - supports all standard Playwright MCP tools like browser_navigate, browser_click, browser_snapshot, etc.`,
35
+ schema: BrowserToolInputSchema,
36
+ });
37
+ this.config = config;
38
+ this.client = new browser_client_unified_1.UnifiedBrowserClient(config);
39
+ }
40
+ async _invoke(input) {
41
+ try {
42
+ // Ensure client is connected
43
+ if (!this.client.isReady()) {
44
+ await this.client.start();
45
+ }
46
+ // Call the Playwright MCP tool
47
+ const mcpCall = {
48
+ name: input.tool,
49
+ arguments: input.arguments || {},
50
+ };
51
+ const result = await this.client.callTool(mcpCall);
52
+ return new utils_1.ToolResult({
53
+ success: !result.isError,
54
+ data: {
55
+ success: !result.isError,
56
+ tool: input.tool,
57
+ content: result.content,
58
+ error: result.isError ? "Tool execution failed" : undefined,
59
+ },
60
+ });
61
+ }
62
+ catch (error) {
63
+ return new utils_1.ToolResult({
64
+ success: false,
65
+ error: error instanceof Error ? error.message : String(error),
66
+ data: {
67
+ success: false,
68
+ tool: input.tool,
69
+ error: error instanceof Error ? error.message : String(error),
70
+ },
71
+ });
72
+ }
73
+ }
74
+ /**
75
+ * List all available Playwright MCP tools
76
+ */
77
+ async listAvailableTools() {
78
+ if (!this.client.isReady()) {
79
+ await this.client.start();
80
+ }
81
+ return await this.client.listTools();
82
+ }
83
+ // Convenience methods for common operations
84
+ async navigate(url) {
85
+ return this.invoke({
86
+ tool: "browser_navigate",
87
+ arguments: { url },
88
+ });
89
+ }
90
+ async snapshot() {
91
+ return this.invoke({
92
+ tool: "browser_snapshot",
93
+ });
94
+ }
95
+ async click(element, ref) {
96
+ return this.invoke({
97
+ tool: "browser_click",
98
+ arguments: { element, ref },
99
+ });
100
+ }
101
+ async type(element, ref, text, options) {
102
+ return this.invoke({
103
+ tool: "browser_type",
104
+ arguments: { element, ref, text, ...options },
105
+ });
106
+ }
107
+ async screenshot(options) {
108
+ return this.invoke({
109
+ tool: "browser_take_screenshot",
110
+ arguments: options || {},
111
+ });
112
+ }
113
+ async waitFor(options) {
114
+ return this.invoke({
115
+ tool: "browser_wait_for",
116
+ arguments: options,
117
+ });
118
+ }
119
+ async manageTabs(action, index) {
120
+ return this.invoke({
121
+ tool: "browser_tabs",
122
+ arguments: { action, index },
123
+ });
124
+ }
125
+ async fillForm(fields) {
126
+ return this.invoke({
127
+ tool: "browser_fill_form",
128
+ arguments: { fields },
129
+ });
130
+ }
131
+ // Mode-specific methods
132
+ /**
133
+ * Get VNC URL (sandbox mode only)
134
+ */
135
+ getVncUrl() {
136
+ return this.client.getVncUrl();
137
+ }
138
+ /**
139
+ * Get CDP URL (sandbox mode only)
140
+ */
141
+ getCdpUrl() {
142
+ return this.client.getCdpUrl();
143
+ }
144
+ /**
145
+ * Get connection status
146
+ */
147
+ getStatus() {
148
+ return {
149
+ isReady: this.client.isReady(),
150
+ mode: this.config.mode,
151
+ config: this.config,
152
+ };
153
+ }
154
+ /**
155
+ * Close the client connection
156
+ */
157
+ async close() {
158
+ await this.client.stop();
159
+ }
160
+ }
161
+ exports.UnifiedBrowserTool = UnifiedBrowserTool;
162
+ // Export factory functions for convenience
163
+ /**
164
+ * Create a local browser tool
165
+ */
166
+ function createLocalBrowserTool(config = {}) {
167
+ return new UnifiedBrowserTool({
168
+ ...config,
169
+ mode: "local",
170
+ });
171
+ }
172
+ /**
173
+ * Create a sandbox browser tool
174
+ */
175
+ function createSandboxBrowserTool(config) {
176
+ return new UnifiedBrowserTool({
177
+ ...config,
178
+ mode: "sandbox",
179
+ });
180
+ }
181
+ //# sourceMappingURL=browser_tool_unified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser_tool_unified.js","sourceRoot":"","sources":["../../src/browser/browser_tool_unified.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { UnifiedBrowserClient, type BrowserClientConfig, type MCPToolCall, type MCPToolResult, } from "./browser_client_unified";
2
+ export { UnifiedBrowserTool, createLocalBrowserTool, createSandboxBrowserTool, type TBrowserToolInput, } from "./browser_tool_unified";
3
+ export { SandboxConnector, type SandboxConnectorConfig, type SandboxConnectionInfo, } from "./sandbox-connector";
4
+ export { BrowserInstanceManager, type BrowserInstanceConfig, type BrowserInstanceInfo, } from "./browser-instance-manager";
5
+ export { BrowserToolExecutor, type BrowserPageProvider, type BrowserToolCall, type BrowserToolResult, } from "./browser-tool-executor";
6
+ export type { BrowserActionType, BrowserAction, BrowserActionResult, BrowserSession, BrowserToolConfig, } from "./types";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserToolExecutor = exports.BrowserInstanceManager = exports.SandboxConnector = exports.createSandboxBrowserTool = exports.createLocalBrowserTool = exports.UnifiedBrowserTool = exports.UnifiedBrowserClient = void 0;
4
+ // Unified browser client and tools (recommended)
5
+ var browser_client_unified_1 = require("./browser_client_unified");
6
+ Object.defineProperty(exports, "UnifiedBrowserClient", { enumerable: true, get: function () { return browser_client_unified_1.UnifiedBrowserClient; } });
7
+ var browser_tool_unified_1 = require("./browser_tool_unified");
8
+ Object.defineProperty(exports, "UnifiedBrowserTool", { enumerable: true, get: function () { return browser_tool_unified_1.UnifiedBrowserTool; } });
9
+ Object.defineProperty(exports, "createLocalBrowserTool", { enumerable: true, get: function () { return browser_tool_unified_1.createLocalBrowserTool; } });
10
+ Object.defineProperty(exports, "createSandboxBrowserTool", { enumerable: true, get: function () { return browser_tool_unified_1.createSandboxBrowserTool; } });
11
+ // Direct connection components (new architecture)
12
+ var sandbox_connector_1 = require("./sandbox-connector");
13
+ Object.defineProperty(exports, "SandboxConnector", { enumerable: true, get: function () { return sandbox_connector_1.SandboxConnector; } });
14
+ var browser_instance_manager_1 = require("./browser-instance-manager");
15
+ Object.defineProperty(exports, "BrowserInstanceManager", { enumerable: true, get: function () { return browser_instance_manager_1.BrowserInstanceManager; } });
16
+ // Shared tool execution layer
17
+ var browser_tool_executor_1 = require("./browser-tool-executor");
18
+ Object.defineProperty(exports, "BrowserToolExecutor", { enumerable: true, get: function () { return browser_tool_executor_1.BrowserToolExecutor; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,mEAKkC;AAJhC,8HAAA,oBAAoB,OAAA;AAMtB,+DAKgC;AAJ9B,0HAAA,kBAAkB,OAAA;AAClB,8HAAA,sBAAsB,OAAA;AACtB,gIAAA,wBAAwB,OAAA;AAI1B,kDAAkD;AAClD,yDAI6B;AAH3B,qHAAA,gBAAgB,OAAA;AAKlB,uEAIoC;AAHlC,kIAAA,sBAAsB,OAAA;AAKxB,8BAA8B;AAC9B,iEAKiC;AAJ/B,4HAAA,mBAAmB,OAAA"}
@@ -0,0 +1,93 @@
1
+ import { Browser, BrowserContext, Page } from "playwright";
2
+ import { EventEmitter } from "events";
3
+ export interface SandboxConnectorConfig {
4
+ apiKey: string;
5
+ domain?: string;
6
+ timeout?: number;
7
+ sessionId?: string;
8
+ }
9
+ export interface SandboxConnectionInfo {
10
+ sandboxId: string;
11
+ vncUrl: string;
12
+ cdpUrl: string;
13
+ accessToken: string;
14
+ }
15
+ /**
16
+ * SandboxConnector manages the direct connection between E2B Sandbox and Playwright
17
+ * Replaces the subprocess-based MCP server approach with direct CDP connection
18
+ */
19
+ export declare class SandboxConnector extends EventEmitter {
20
+ private config;
21
+ private sandbox?;
22
+ private browser?;
23
+ private context?;
24
+ private pages;
25
+ private isConnected;
26
+ private connectionInfo?;
27
+ constructor(config: SandboxConnectorConfig);
28
+ /**
29
+ * Initialize the sandbox and establish CDP connection
30
+ */
31
+ connect(): Promise<void>;
32
+ /**
33
+ * Establish direct CDP connection to sandbox browser
34
+ */
35
+ private connectToBrowser;
36
+ /**
37
+ * Get Playwright Browser instance
38
+ */
39
+ getBrowser(): Browser;
40
+ /**
41
+ * Get Playwright BrowserContext instance
42
+ */
43
+ getContext(): BrowserContext;
44
+ /**
45
+ * Get Playwright Page instance by index
46
+ */
47
+ getPage(index?: number): Page;
48
+ /**
49
+ * Get all Playwright Page instances
50
+ */
51
+ getPages(): Page[];
52
+ /**
53
+ * Create new Playwright Page
54
+ */
55
+ createPage(): Promise<Page>;
56
+ /**
57
+ * Close Playwright Page by index
58
+ */
59
+ closePage(index: number): Promise<void>;
60
+ /**
61
+ * Get connection status
62
+ */
63
+ isReady(): boolean;
64
+ /**
65
+ * Get connection information
66
+ */
67
+ getConnectionInfo(): SandboxConnectionInfo | undefined;
68
+ /**
69
+ * Get VNC URL for visual debugging
70
+ */
71
+ getVncUrl(): string;
72
+ /**
73
+ * Get CDP URL for direct connection
74
+ */
75
+ getCdpUrl(): string;
76
+ /**
77
+ * Get sandbox ID
78
+ */
79
+ getSandboxId(): string | undefined;
80
+ /**
81
+ * Reconnect to sandbox if connection is lost
82
+ */
83
+ reconnect(): Promise<void>;
84
+ /**
85
+ * Disconnect and clean up resources
86
+ */
87
+ disconnect(killSandbox?: boolean): Promise<void>;
88
+ /**
89
+ * Health check for the connection
90
+ */
91
+ healthCheck(): Promise<boolean>;
92
+ }
93
+ //# sourceMappingURL=sandbox-connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-connector.d.ts","sourceRoot":"","sources":["../../src/browser/sandbox-connector.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAwB;gBAEnC,MAAM,EAAE,sBAAsB;IAK1C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwD9B;;OAEG;YACW,gBAAgB;IA2D9B;;OAEG;IACH,UAAU,IAAI,OAAO;IAOrB;;OAEG;IACH,UAAU,IAAI,cAAc;IAO5B;;OAEG;IACH,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI;IAShC;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAIlB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,iBAAiB,IAAI,qBAAqB,GAAG,SAAS;IAItD;;OAEG;IACH,SAAS,IAAI,MAAM;IAOnB;;OAEG;IACH,SAAS,IAAI,MAAM;IAOnB;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBhC;;OAEG;IACG,UAAU,CAAC,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B5D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAetC"}