@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 @@
1
+ {"version":3,"file":"unsafe_local_code_executor.d.ts","sourceRoot":"","sources":["../../src/code_executers/unsafe_local_code_executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,605 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsafeLocalCodeExecutor = void 0;
4
+ const base_code_executor_1 = require("./base_code_executor");
5
+ const cross_spawn_1 = require("cross-spawn");
6
+ function ansiRegex({ onlyFirst = false } = {}) {
7
+ // Valid string terminator sequences are BEL, ESC\, and 0x9c
8
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
9
+ // OSC sequences only: ESC ] ... ST (non-greedy until the first ST)
10
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
11
+ // CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte
12
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
13
+ const pattern = `${osc}|${csi}`;
14
+ return new RegExp(pattern, onlyFirst ? undefined : "g");
15
+ }
16
+ const regex = ansiRegex();
17
+ function stripAnsi(string) {
18
+ if (typeof string !== "string") {
19
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
20
+ }
21
+ // Even though the regex is global, we don't need to reset the `.lastIndex`
22
+ // because unlike `.exec()` and `.test()`, `.replace()` does it automatically
23
+ // and doing it manually has a performance penalty.
24
+ return string.replace(regex, "");
25
+ }
26
+ class ExecutionError {
27
+ constructor(name, value, traceback) {
28
+ this.name = name;
29
+ this.value = value;
30
+ this.traceback = traceback;
31
+ }
32
+ }
33
+ class Result {
34
+ constructor(rawData, isMainResult) {
35
+ this.isMainResult = isMainResult;
36
+ const data = { ...rawData };
37
+ delete data["type"];
38
+ delete data["is_main_result"];
39
+ this.text = data["text"];
40
+ this.html = data["html"];
41
+ this.markdown = data["markdown"];
42
+ this.svg = data["svg"];
43
+ this.png = data["png"];
44
+ this.jpeg = data["jpeg"];
45
+ this.pdf = data["pdf"];
46
+ this.latex = data["latex"];
47
+ this.json = data["json"];
48
+ this.javascript = data["javascript"];
49
+ this.raw = data;
50
+ this.data = data["data"];
51
+ this.chart = data["chart"];
52
+ this.extra = {};
53
+ for (const key of Object.keys(data)) {
54
+ if (![
55
+ "text",
56
+ "html",
57
+ "markdown",
58
+ "svg",
59
+ "png",
60
+ "jpeg",
61
+ "pdf",
62
+ "latex",
63
+ "json",
64
+ "javascript",
65
+ "data",
66
+ "chart",
67
+ ].includes(key)) {
68
+ this.extra[key] = data[key];
69
+ }
70
+ }
71
+ }
72
+ formats() {
73
+ const formats = [];
74
+ if (this.text)
75
+ formats.push("text");
76
+ if (this.html)
77
+ formats.push("html");
78
+ if (this.markdown)
79
+ formats.push("markdown");
80
+ if (this.svg)
81
+ formats.push("svg");
82
+ if (this.png)
83
+ formats.push("png");
84
+ if (this.jpeg)
85
+ formats.push("jpeg");
86
+ if (this.pdf)
87
+ formats.push("pdf");
88
+ if (this.latex)
89
+ formats.push("latex");
90
+ if (this.json)
91
+ formats.push("json");
92
+ if (this.javascript)
93
+ formats.push("javascript");
94
+ if (this.data)
95
+ formats.push("data");
96
+ if (this.chart)
97
+ formats.push("chart");
98
+ for (const key of Object.keys(this.extra || {})) {
99
+ formats.push(key);
100
+ }
101
+ return formats;
102
+ }
103
+ toJSON() {
104
+ return {
105
+ text: this.text,
106
+ html: this.html,
107
+ markdown: this.markdown,
108
+ svg: this.svg,
109
+ png: this.png,
110
+ jpeg: this.jpeg,
111
+ pdf: this.pdf,
112
+ latex: this.latex,
113
+ json: this.json,
114
+ javascript: this.javascript,
115
+ ...(this.extra && Object.keys(this.extra).length > 0
116
+ ? { extra: this.extra }
117
+ : {}),
118
+ };
119
+ }
120
+ }
121
+ class Execution {
122
+ constructor(results = [], logs = { stdout: [], stderr: [] }, error, executionCount) {
123
+ this.results = results;
124
+ this.logs = logs;
125
+ this.error = error;
126
+ this.executionCount = executionCount;
127
+ }
128
+ /**
129
+ * Returns the text representation of the main result of the cell.
130
+ */
131
+ get text() {
132
+ for (const data of this.results) {
133
+ if (data.isMainResult) {
134
+ return data.text;
135
+ }
136
+ }
137
+ }
138
+ /**
139
+ * Returns the serializable representation of the execution result.
140
+ */
141
+ toJSON() {
142
+ return {
143
+ results: this.results,
144
+ logs: this.logs,
145
+ error: this.error,
146
+ };
147
+ }
148
+ }
149
+ class UnsafeLocalCodeExecutor extends base_code_executor_1.BaseCodeExecutor {
150
+ constructor(options) {
151
+ super();
152
+ this.executor = new CodeExecutor();
153
+ this.options = options;
154
+ }
155
+ async _invoke(input) {
156
+ const { code, language = "python" } = input;
157
+ const result = await this.executor.runCode(language, code, this.options);
158
+ return result;
159
+ }
160
+ }
161
+ exports.UnsafeLocalCodeExecutor = UnsafeLocalCodeExecutor;
162
+ class CodeExecutor {
163
+ constructor() {
164
+ this.executionCount = 0;
165
+ }
166
+ async runCode(language, code, options = {}) {
167
+ this.executionCount++;
168
+ const logs = {
169
+ stdout: [],
170
+ stderr: [],
171
+ };
172
+ const results = [];
173
+ let error = undefined;
174
+ try {
175
+ const config = this.getLanguageConfig(language, code);
176
+ if (!config) {
177
+ error = new ExecutionError("UnsupportedLanguage", `Language '${language}' is not supported`, "");
178
+ return new Execution(results, logs, error, this.executionCount);
179
+ }
180
+ const execResult = await this.executeCode(config, {
181
+ ...options,
182
+ onStdout: (data) => {
183
+ if (options.onStdout)
184
+ options.onStdout(data);
185
+ logs.stdout.push(data.line);
186
+ },
187
+ onStderr: (data) => {
188
+ if (options.onStderr)
189
+ options.onStderr(data);
190
+ logs.stderr.push(data.line);
191
+ },
192
+ });
193
+ if (execResult.success) {
194
+ const parsedResults = this.parseResults(stripAnsi(execResult.stdout), language, code);
195
+ results.push(...parsedResults);
196
+ }
197
+ else {
198
+ error = new ExecutionError("ExecutionError", execResult.stderr ||
199
+ `Process exited with code ${execResult.exitCode}`, this.parseTraceback(execResult.stderr, language).join("\n"));
200
+ }
201
+ }
202
+ catch (err) {
203
+ error = new ExecutionError("SystemError", err.message, err.stack);
204
+ }
205
+ return new Execution(results, logs, error, this.executionCount);
206
+ }
207
+ getLanguageConfig(language, code) {
208
+ const configs = {
209
+ python: { cmd: "python3", args: ["-c", code] },
210
+ python3: { cmd: "python3", args: ["-c", code] },
211
+ js: { cmd: "node", args: ["-p", "-e", code] },
212
+ node: { cmd: "node", args: ["-p", "-e", code] },
213
+ bash: { cmd: "bash", args: ["-c", code] },
214
+ };
215
+ return configs[language];
216
+ }
217
+ async executeCode(config, options = {}) {
218
+ return new Promise((resolve) => {
219
+ const child = (0, cross_spawn_1.spawn)(config.cmd, config.args, {
220
+ timeout: options.timeoutMs || 30000,
221
+ env: { ...process.env, ...options.envs },
222
+ });
223
+ let stdout = "";
224
+ let stderr = "";
225
+ child.stdout.on("data", (data) => {
226
+ const text = data.toString();
227
+ stdout += text;
228
+ if (options.onStdout)
229
+ options.onStdout({
230
+ error: false,
231
+ line: text,
232
+ timestamp: new Date().getTime() * 1e3,
233
+ });
234
+ });
235
+ child.stderr.on("data", (data) => {
236
+ const text = data.toString();
237
+ stderr += text;
238
+ if (options.onStderr)
239
+ options.onStderr({
240
+ error: true,
241
+ line: text,
242
+ timestamp: new Date().getTime() * 1e3,
243
+ });
244
+ });
245
+ child.on("close", (code) => {
246
+ resolve({
247
+ success: code === 0,
248
+ exitCode: code,
249
+ stdout: stdout.trim(),
250
+ stderr: stderr.trim(),
251
+ });
252
+ });
253
+ child.on("error", (err) => {
254
+ resolve({
255
+ success: false,
256
+ exitCode: null,
257
+ stdout: stdout.trim(),
258
+ stderr: err.message,
259
+ });
260
+ });
261
+ });
262
+ }
263
+ parseResults(stdout, language, code) {
264
+ const results = [];
265
+ if (!stdout.trim()) {
266
+ return results;
267
+ }
268
+ if (language === "python" || language === "python3") {
269
+ results.push(...this.parsePythonResults(stdout));
270
+ }
271
+ else if (language === "js" || language === "node") {
272
+ results.push(...this.parseJavaScriptResults(stdout, code));
273
+ }
274
+ else {
275
+ // Other languages, treat entire output as text result
276
+ const resultData = {
277
+ data: stdout,
278
+ chart: null,
279
+ text: stdout,
280
+ };
281
+ results.push(new Result(resultData, true));
282
+ }
283
+ return results;
284
+ }
285
+ parsePythonResults(stdout) {
286
+ const results = [];
287
+ const lines = stdout.trim().split("\n");
288
+ let i = 0;
289
+ while (i < lines.length) {
290
+ const line = lines[i].trim();
291
+ if (!line || line.startsWith(">>>") || line.startsWith("...")) {
292
+ i++;
293
+ continue;
294
+ }
295
+ // Check if it is JSON data
296
+ if (this.isJsonLine(line)) {
297
+ try {
298
+ const jsonData = JSON.parse(line);
299
+ const resultData = {
300
+ data: {
301
+ result: jsonData,
302
+ type: "json",
303
+ keys: Array.isArray(jsonData) ? [] : Object.keys(jsonData),
304
+ length: Array.isArray(jsonData)
305
+ ? jsonData.length
306
+ : Object.keys(jsonData).length,
307
+ is_array: Array.isArray(jsonData),
308
+ parsed_at: Date.now(),
309
+ },
310
+ chart: null,
311
+ text: line,
312
+ json: jsonData,
313
+ };
314
+ results.push(new Result(resultData, results.length === 0));
315
+ i++;
316
+ continue;
317
+ }
318
+ catch {
319
+ // JSON parsing failed, treat as regular text
320
+ }
321
+ }
322
+ // Check if it is a number
323
+ if (this.isNumber(line)) {
324
+ const numValue = parseFloat(line);
325
+ const resultData = {
326
+ data: {
327
+ value: numValue,
328
+ type: "number",
329
+ is_integer: Number.isInteger(numValue),
330
+ precision: this.getDecimalPlaces(line),
331
+ scientific_notation: line.includes("e") || line.includes("E"),
332
+ },
333
+ chart: null,
334
+ text: line,
335
+ };
336
+ results.push(new Result(resultData, results.length === 0));
337
+ i++;
338
+ continue;
339
+ }
340
+ // Check if it is DataFrame output
341
+ if (this.isDataFrameLine(line)) {
342
+ const tableResult = this.parseTableData(lines, i);
343
+ if (tableResult) {
344
+ const resultData = {
345
+ data: {
346
+ table_data: tableResult.data,
347
+ type: "dataframe",
348
+ rows: tableResult.rows,
349
+ columns: tableResult.columns,
350
+ shape: [tableResult.rows.length, tableResult.columns.length],
351
+ preview: tableResult.text.split("\n").slice(0, 5).join("\n"),
352
+ },
353
+ chart: null,
354
+ text: tableResult.text,
355
+ html: this.convertTableToHtml(tableResult.text),
356
+ };
357
+ results.push(new Result(resultData, results.length === 0));
358
+ i = tableResult.nextIndex;
359
+ continue;
360
+ }
361
+ }
362
+ // Check if it is array output
363
+ if (line.startsWith("[") && line.endsWith("]")) {
364
+ try {
365
+ const arrayData = JSON.parse(line);
366
+ if (Array.isArray(arrayData)) {
367
+ const resultData = {
368
+ data: {
369
+ values: arrayData,
370
+ type: "array",
371
+ length: arrayData.length,
372
+ dtype: this.inferArrayType(arrayData),
373
+ statistics: this.calculateArrayStats(arrayData),
374
+ },
375
+ chart: null,
376
+ text: line,
377
+ json: JSON.stringify(arrayData),
378
+ };
379
+ results.push(new Result(resultData, results.length === 0));
380
+ i++;
381
+ continue;
382
+ }
383
+ }
384
+ catch {
385
+ // Not a valid array, treat as text
386
+ }
387
+ }
388
+ // Check if it is matplotlib chart output
389
+ if (line.includes("matplotlib") ||
390
+ line.includes(".png") ||
391
+ line.includes("Figure")) {
392
+ const resultData = {
393
+ data: {
394
+ plot_type: "matplotlib",
395
+ format: "png",
396
+ created_at: Date.now(),
397
+ library: "matplotlib",
398
+ file_path: line.includes(".png") ? line : null,
399
+ },
400
+ chart: "line", // Default to line chart, should analyze code for actual type
401
+ text: "[Chart generated]",
402
+ png: line.includes(".png") ? line : null,
403
+ };
404
+ results.push(new Result(resultData, results.length === 0));
405
+ i++;
406
+ continue;
407
+ }
408
+ // Regular text
409
+ const resultData = {
410
+ data: {
411
+ content: line,
412
+ type: "text",
413
+ length: line.length,
414
+ words: line.split(/\s+/).length,
415
+ encoding: "utf-8",
416
+ },
417
+ chart: null,
418
+ text: line,
419
+ };
420
+ results.push(new Result(resultData, results.length === 0));
421
+ i++;
422
+ }
423
+ if (results.length === 0) {
424
+ const resultData = {
425
+ data: {
426
+ content: stdout,
427
+ type: "text",
428
+ length: stdout.length,
429
+ lines: stdout.split("\n").length,
430
+ encoding: "utf-8",
431
+ },
432
+ chart: null,
433
+ text: stdout,
434
+ };
435
+ results.push(new Result(resultData, true));
436
+ }
437
+ return results;
438
+ }
439
+ parseJavaScriptResults(stdout, code) {
440
+ if (code) {
441
+ // Check if the code is a simple assignment expression statement
442
+ const isSimpleAssignment = /^\s*[a-zA-Z_$][\w$]*\s*=\s*[^=].*;?\s*$/.test(code);
443
+ if (isSimpleAssignment) {
444
+ // For simple assignments, e2b-like behavior is to produce no result
445
+ return [];
446
+ }
447
+ }
448
+ const results = [];
449
+ const lines = stdout.trim().split("\n");
450
+ for (const line of lines) {
451
+ if (!line.trim() || line.trim() === "undefined") {
452
+ continue;
453
+ }
454
+ const resultData = {
455
+ data: undefined,
456
+ chart: null,
457
+ text: line,
458
+ javascript: `"${line}"`,
459
+ };
460
+ results.push(new Result(resultData, results.length === 0));
461
+ }
462
+ if (results.length === 0 &&
463
+ stdout.trim() &&
464
+ stdout.trim() !== "undefined") {
465
+ const resultData = {
466
+ data: {
467
+ content: stdout,
468
+ type: "text",
469
+ javascript_type: "string",
470
+ length: stdout.length,
471
+ lines: stdout.split("\n").length,
472
+ },
473
+ chart: null,
474
+ text: stdout,
475
+ };
476
+ results.push(new Result(resultData, true));
477
+ }
478
+ return results;
479
+ }
480
+ // Helper methods
481
+ isDataFrameLine(line) {
482
+ return (line.includes("|") ||
483
+ line.match(/^\s*\d+\s+/) !== null ||
484
+ line.includes("Name:") ||
485
+ line.includes("dtype:"));
486
+ }
487
+ inferArrayType(arr) {
488
+ if (arr.length === 0)
489
+ return "unknown";
490
+ const firstType = typeof arr[0];
491
+ const allSameType = arr.every((item) => typeof item === firstType);
492
+ return allSameType ? firstType : "mixed";
493
+ }
494
+ calculateArrayStats(arr) {
495
+ if (arr.every((item) => typeof item === "number")) {
496
+ const numbers = arr;
497
+ return {
498
+ mean: numbers.reduce((a, b) => a + b, 0) / numbers.length,
499
+ sum: numbers.reduce((a, b) => a + b, 0),
500
+ min: Math.min(...numbers),
501
+ max: Math.max(...numbers),
502
+ std: this.calculateStandardDeviation(numbers),
503
+ };
504
+ }
505
+ return {
506
+ unique_count: new Set(arr).size,
507
+ most_common: this.getMostCommon(arr),
508
+ };
509
+ }
510
+ calculateStandardDeviation(numbers) {
511
+ const mean = numbers.reduce((a, b) => a + b, 0) / numbers.length;
512
+ const variance = numbers.reduce((a, b) => a + Math.pow(b - mean, 2), 0) / numbers.length;
513
+ return Math.sqrt(variance);
514
+ }
515
+ getMostCommon(arr) {
516
+ const counts = {};
517
+ arr.forEach((item) => {
518
+ const key = String(item);
519
+ counts[key] = (counts[key] || 0) + 1;
520
+ });
521
+ return Object.keys(counts).reduce((a, b) => counts[a] > counts[b] ? a : b);
522
+ }
523
+ getDecimalPlaces(numStr) {
524
+ const match = numStr.match(/\.(\d+)/);
525
+ return match ? match[1].length : 0;
526
+ }
527
+ isJsonLine(line) {
528
+ const trimmed = line.trim();
529
+ return ((trimmed.startsWith("{") && trimmed.endsWith("}")) ||
530
+ (trimmed.startsWith("[") && trimmed.endsWith("]")));
531
+ }
532
+ isNumber(line) {
533
+ return /^-?\d+(\.\d+)?$/.test(line.trim());
534
+ }
535
+ parseTableData(lines, startIndex) {
536
+ // Implement table parsing logic
537
+ const line = lines[startIndex];
538
+ if (!this.isDataFrameLine(line)) {
539
+ return null;
540
+ }
541
+ let endIndex = startIndex;
542
+ let tableText = line;
543
+ const rows = [];
544
+ let columns = [];
545
+ // Simple table parsing implementation
546
+ for (let i = startIndex; i < lines.length; i++) {
547
+ const currentLine = lines[i];
548
+ if (!currentLine.trim() ||
549
+ (!this.isDataFrameLine(currentLine) && i > startIndex)) {
550
+ break;
551
+ }
552
+ if (i === startIndex && currentLine.includes("|")) {
553
+ // Parse column names
554
+ columns = currentLine
555
+ .split("|")
556
+ .map((col) => col.trim())
557
+ .filter((col) => col);
558
+ }
559
+ else if (currentLine.includes("|")) {
560
+ // Parse data rows
561
+ const row = currentLine
562
+ .split("|")
563
+ .map((cell) => cell.trim())
564
+ .filter((cell) => cell);
565
+ rows.push(row);
566
+ }
567
+ if (i > startIndex) {
568
+ tableText += "\n" + currentLine;
569
+ }
570
+ endIndex = i;
571
+ }
572
+ return {
573
+ text: tableText,
574
+ data: tableText,
575
+ rows,
576
+ columns,
577
+ nextIndex: endIndex + 1,
578
+ };
579
+ }
580
+ convertTableToHtml(tableText) {
581
+ const lines = tableText.split("\n");
582
+ let html = '<table border="1">';
583
+ for (const line of lines) {
584
+ if (line.includes("|")) {
585
+ const cells = line
586
+ .split("|")
587
+ .map((cell) => cell.trim())
588
+ .filter((cell) => cell);
589
+ html += "<tr>";
590
+ for (const cell of cells) {
591
+ html += `<td>${cell}</td>`;
592
+ }
593
+ html += "</tr>";
594
+ }
595
+ }
596
+ html += "</table>";
597
+ return html;
598
+ }
599
+ parseTraceback(stderr, language) {
600
+ if (!stderr)
601
+ return [];
602
+ return stderr.split("\n").filter((line) => line.trim());
603
+ }
604
+ }
605
+ //# sourceMappingURL=unsafe_local_code_executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsafe_local_code_executor.js","sourceRoot":"","sources":["../../src/code_executers/unsafe_local_code_executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { z } from "zod/v4";
2
+ import { ExecutionContext } from "./utils";
3
+ import { ToolResult } from "../utils";
4
+ export interface IFileEditResult {
5
+ file_path: string;
6
+ absolute_path: string;
7
+ is_new_file: boolean;
8
+ replacements_made: number;
9
+ lines_total: number;
10
+ bytes_total: number;
11
+ old_string_length: number;
12
+ new_string_length: number;
13
+ }
14
+ export declare function editFile(context: ExecutionContext, params: {
15
+ file_path?: string;
16
+ old_string?: string;
17
+ new_string?: string;
18
+ expected_replacements?: number;
19
+ }): Promise<ToolResult<IFileEditResult>>;
20
+ export declare function createEditTool(context: ExecutionContext): import("../utils").DynamicTool<z.ZodObject<{
21
+ file_path: z.ZodString;
22
+ old_string: z.ZodString;
23
+ new_string: z.ZodString;
24
+ expected_replacements: z.ZodOptional<z.ZodNumber>;
25
+ }, z.core.$strip>, Record<string, unknown>, IFileEditResult>;
26
+ //# sourceMappingURL=edit-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-tool.d.ts","sourceRoot":"","sources":["../../src/fs/edit-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAIL,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAuB7D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAsHD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GACA,OAAO,CACR,UAAU,CAAC,eAAe,CAAC,CAC5B,CA4DA;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB;;;;;6DAUvD"}