bash-tool 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/AGENTS.md +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sandbox/just-bash.d.ts +18 -3
- package/dist/sandbox/just-bash.d.ts.map +1 -1
- package/dist/sandbox/just-bash.js +8 -30
- package/dist/sandbox/just-bash.js.map +1 -1
- package/dist/sandbox/vercel.d.ts.map +1 -1
- package/dist/sandbox/vercel.js +5 -4
- package/dist/sandbox/vercel.js.map +1 -1
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +12 -6
- package/dist/tool.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +4 -2
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/read-file.d.ts +2 -0
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +4 -2
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/write-file.d.ts +3 -1
- package/dist/tools/write-file.d.ts.map +1 -1
- package/dist/tools/write-file.js +4 -2
- package/dist/tools/write-file.js.map +1 -1
- package/dist/types.d.ts +7 -15
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -97,7 +97,7 @@ const { bash } = await createBashTool({
|
|
|
97
97
|
import { Sandbox } from "@vercel/sandbox";
|
|
98
98
|
|
|
99
99
|
const sandbox = await Sandbox.create();
|
|
100
|
-
// Files are written to
|
|
100
|
+
// Files are written to ./workspace by default
|
|
101
101
|
const { tools } = await createBashTool({
|
|
102
102
|
sandbox,
|
|
103
103
|
files: { "index.ts": "console.log('hello');" },
|
package/dist/AGENTS.md
CHANGED
|
@@ -38,7 +38,7 @@ const result = await agent.generate({
|
|
|
38
38
|
## Key Behaviors
|
|
39
39
|
|
|
40
40
|
1. **Default sandbox is just-bash** - Install `just-bash` or provide your own sandbox
|
|
41
|
-
2. **Working directory defaults to
|
|
41
|
+
2. **Working directory defaults to `./workspace`** - All files written relative to `destination`
|
|
42
42
|
3. **Files are written before tools are returned** - Sandbox is pre-populated
|
|
43
43
|
4. **Tool descriptions include file list** - LLM sees available files in bash tool description
|
|
44
44
|
5. **No `stop()` method** - Sandbox lifecycle is managed externally
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export type { JustBashLike } from "./sandbox/just-bash.js";
|
|
1
2
|
export { createBashTool } from "./tool.js";
|
|
2
3
|
export type { BashToolCategory, BashToolInfo, FileFormat, ToolPromptOptions, } from "./tools-prompt.js";
|
|
3
4
|
export { bashTools, createToolPrompt, detectFormat, discoverAvailableTools, getToolsByCategory, getToolsForFormat, toolsByFormat, } from "./tools-prompt.js";
|
|
4
|
-
export type { BashToolkit, CommandResult, CreateBashToolOptions,
|
|
5
|
+
export type { BashToolkit, CommandResult, CreateBashToolOptions, PromptOptions, Sandbox, VercelSandboxInstance, } from "./types.js";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAO3C,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Sandbox } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal interface for the just-bash methods we actually use.
|
|
4
|
+
* This allows proper typing without requiring the full class.
|
|
5
|
+
*/
|
|
6
|
+
export interface JustBashLike {
|
|
7
|
+
exec: (command: string) => Promise<{
|
|
8
|
+
stdout: string;
|
|
9
|
+
stderr: string;
|
|
10
|
+
exitCode: number;
|
|
11
|
+
}>;
|
|
12
|
+
fs: {
|
|
13
|
+
readFile: (path: string) => Promise<string>;
|
|
14
|
+
writeFile: (path: string, content: string) => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
2
17
|
/**
|
|
3
18
|
* Options for creating a just-bash sandbox.
|
|
4
19
|
*/
|
|
@@ -16,9 +31,9 @@ export declare function createJustBashSandbox(options?: JustBashSandboxOptions):
|
|
|
16
31
|
/**
|
|
17
32
|
* Check if an object is a just-bash Bash instance using duck-typing.
|
|
18
33
|
*/
|
|
19
|
-
export declare function isJustBash(obj: unknown): obj is
|
|
34
|
+
export declare function isJustBash(obj: unknown): obj is JustBashLike;
|
|
20
35
|
/**
|
|
21
36
|
* Wraps a just-bash Bash instance to conform to our Sandbox interface.
|
|
22
37
|
*/
|
|
23
|
-
export declare function wrapJustBash(bashInstance:
|
|
38
|
+
export declare function wrapJustBash(bashInstance: JustBashLike): Sandbox;
|
|
24
39
|
//# sourceMappingURL=just-bash.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"just-bash.d.ts","sourceRoot":"","sources":["../../src/sandbox/just-bash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,
|
|
1
|
+
{"version":3,"file":"just-bash.d.ts","sourceRoot":"","sources":["../../src/sandbox/just-bash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,EAAE,EAAE;QACF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,OAAO,CAAC,CAuClB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,YAAY,CAK5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAuBhE"}
|
|
@@ -26,22 +26,11 @@ export async function createJustBashSandbox(options = {}) {
|
|
|
26
26
|
};
|
|
27
27
|
},
|
|
28
28
|
async readFile(filePath) {
|
|
29
|
-
|
|
30
|
-
if (result.exitCode !== 0) {
|
|
31
|
-
throw new Error(`Failed to read file: ${filePath}\n${result.stderr}`);
|
|
32
|
-
}
|
|
33
|
-
return result.stdout;
|
|
29
|
+
return bashEnv.fs.readFile(filePath);
|
|
34
30
|
},
|
|
35
|
-
async
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (dir) {
|
|
39
|
-
await bashEnv.exec(`mkdir -p "${dir}"`);
|
|
40
|
-
}
|
|
41
|
-
// Write file using heredoc to handle special characters
|
|
42
|
-
const result = await bashEnv.exec(`cat > "${filePath}" << 'BASH_TOOL_EOF'\n${content}\nBASH_TOOL_EOF`);
|
|
43
|
-
if (result.exitCode !== 0) {
|
|
44
|
-
throw new Error(`Failed to write file: ${filePath}\n${result.stderr}`);
|
|
31
|
+
async writeFiles(files) {
|
|
32
|
+
for (const file of files) {
|
|
33
|
+
await bashEnv.fs.writeFile(file.path, file.content);
|
|
45
34
|
}
|
|
46
35
|
},
|
|
47
36
|
};
|
|
@@ -70,22 +59,11 @@ export function wrapJustBash(bashInstance) {
|
|
|
70
59
|
};
|
|
71
60
|
},
|
|
72
61
|
async readFile(filePath) {
|
|
73
|
-
|
|
74
|
-
if (result.exitCode !== 0) {
|
|
75
|
-
throw new Error(`Failed to read file: ${filePath}\n${result.stderr}`);
|
|
76
|
-
}
|
|
77
|
-
return result.stdout;
|
|
62
|
+
return bashInstance.fs.readFile(filePath);
|
|
78
63
|
},
|
|
79
|
-
async
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (dir) {
|
|
83
|
-
await bashInstance.exec(`mkdir -p "${dir}"`);
|
|
84
|
-
}
|
|
85
|
-
// Write file using heredoc to handle special characters
|
|
86
|
-
const result = await bashInstance.exec(`cat > "${filePath}" << 'BASH_TOOL_EOF'\n${content}\nBASH_TOOL_EOF`);
|
|
87
|
-
if (result.exitCode !== 0) {
|
|
88
|
-
throw new Error(`Failed to write file: ${filePath}\n${result.stderr}`);
|
|
64
|
+
async writeFiles(files) {
|
|
65
|
+
for (const file of files) {
|
|
66
|
+
await bashInstance.fs.writeFile(file.path, file.content);
|
|
89
67
|
}
|
|
90
68
|
},
|
|
91
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"just-bash.js","sourceRoot":"","sources":["../../src/sandbox/just-bash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"just-bash.js","sourceRoot":"","sources":["../../src/sandbox/just-bash.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkC,EAAE;IAEpC,oDAAoD;IACpD,IAAI,IAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,gIAAgI,CACjI,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,OAAe;YAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;YAC7B,OAAO,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,UAAU,CACd,KAA+C;YAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,GAA8B,CAAC;IACjD,0CAA0C;IAC1C,OAAO,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,YAA0B;IACrD,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,OAAe;YAClC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;YAC7B,OAAO,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,UAAU,CACd,KAA+C;YAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../src/sandbox/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EAAE,KACZ,OAAO,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAC9D,CAAC,CAAC;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5E,UAAU,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAUtE;AAaD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../src/sandbox/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EAAE,KACZ,OAAO,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAC9D,CAAC,CAAC;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5E,UAAU,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAUtE;AAaD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAkC3E"}
|
package/dist/sandbox/vercel.js
CHANGED
|
@@ -45,10 +45,11 @@ export function wrapVercelSandbox(vercelSandbox) {
|
|
|
45
45
|
}
|
|
46
46
|
return streamToString(stream);
|
|
47
47
|
},
|
|
48
|
-
async
|
|
49
|
-
await vercelSandbox.writeFiles(
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
async writeFiles(files) {
|
|
49
|
+
await vercelSandbox.writeFiles(files.map((f) => ({
|
|
50
|
+
path: f.path,
|
|
51
|
+
content: Buffer.from(f.content, "utf-8"),
|
|
52
|
+
})));
|
|
52
53
|
},
|
|
53
54
|
};
|
|
54
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../src/sandbox/vercel.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,GAA8B,CAAC;IACjD,oEAAoE;IACpE,OAAO,CACL,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;QACvC,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;QAC1C,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;QACxC,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,MAA6B;IACzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAAgC;IAChE,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,OAAe;YAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,MAAM,CAAC,MAAM,EAAE;gBACf,MAAM,CAAC,MAAM,EAAE;aAChB,CAAC,CAAC;YACH,OAAO;gBACL,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;YAC7B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../src/sandbox/vercel.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,GAA8B,CAAC;IACjD,oEAAoE;IACpE,OAAO,CACL,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;QACvC,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;QAC1C,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;QACxC,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,MAA6B;IACzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAAgC;IAChE,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,OAAe;YAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,MAAM,CAAC,MAAM,EAAE;gBACf,MAAM,CAAC,MAAM,EAAE;aAChB,CAAC,CAAC;YACH,OAAO;gBACL,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;YAC7B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,UAAU,CACd,KAA+C;YAE/C,MAAM,aAAa,CAAC,UAAU,CAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC;aACzC,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAW,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAW,MAAM,YAAY,CAAC;AAK9E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,WAAW,CAAC,CA+EtB"}
|
package/dist/tool.js
CHANGED
|
@@ -7,6 +7,7 @@ import { createReadFileTool } from "./tools/read-file.js";
|
|
|
7
7
|
import { createWriteFileTool } from "./tools/write-file.js";
|
|
8
8
|
import { createToolPrompt } from "./tools-prompt.js";
|
|
9
9
|
const DEFAULT_DESTINATION = "/workspace";
|
|
10
|
+
const VERCEL_SANDBOX_DESTINATION = "/vercel/sandbox/workspace";
|
|
10
11
|
/**
|
|
11
12
|
* Creates a bash tool with tools for AI agents.
|
|
12
13
|
*
|
|
@@ -34,7 +35,11 @@ const DEFAULT_DESTINATION = "/workspace";
|
|
|
34
35
|
* ```
|
|
35
36
|
*/
|
|
36
37
|
export async function createBashTool(options = {}) {
|
|
37
|
-
|
|
38
|
+
// Determine default destination based on sandbox type
|
|
39
|
+
const defaultDestination = options.sandbox && isVercelSandbox(options.sandbox)
|
|
40
|
+
? VERCEL_SANDBOX_DESTINATION
|
|
41
|
+
: DEFAULT_DESTINATION;
|
|
42
|
+
const destination = options.destination ?? defaultDestination;
|
|
38
43
|
// 1. Load files from disk and/or inline
|
|
39
44
|
const loadedFiles = await loadFiles({
|
|
40
45
|
files: options.files,
|
|
@@ -61,9 +66,10 @@ export async function createBashTool(options = {}) {
|
|
|
61
66
|
else {
|
|
62
67
|
sandbox = options.sandbox;
|
|
63
68
|
}
|
|
64
|
-
// Write files to existing sandbox
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
// Write files to existing sandbox in one call
|
|
70
|
+
const filesToWrite = Object.entries(filesWithDestination).map(([filePath, content]) => ({ path: filePath, content }));
|
|
71
|
+
if (filesToWrite.length > 0) {
|
|
72
|
+
await sandbox.writeFiles(filesToWrite);
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
else {
|
|
@@ -94,8 +100,8 @@ export async function createBashTool(options = {}) {
|
|
|
94
100
|
});
|
|
95
101
|
const tools = {
|
|
96
102
|
bash,
|
|
97
|
-
readFile: createReadFileTool({ sandbox }),
|
|
98
|
-
writeFile: createWriteFileTool({ sandbox }),
|
|
103
|
+
readFile: createReadFileTool({ sandbox, cwd: destination }),
|
|
104
|
+
writeFile: createWriteFileTool({ sandbox, cwd: destination }),
|
|
99
105
|
};
|
|
100
106
|
return { bash, tools, sandbox };
|
|
101
107
|
}
|
package/dist/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,mBAAmB,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACR,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,mBAAmB,KACvB,oBAAoB,GAAG,SAAS,CAAC;IACtC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,kBAAkB,KACtB,mBAAmB,GAAG,SAAS,CAAC;CACtC;AAgDD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB;;
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACR,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,mBAAmB,KACvB,oBAAoB,GAAG,SAAS,CAAC;IACtC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,kBAAkB,KACtB,mBAAmB,GAAG,SAAS,CAAC;CACtC;AAgDD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB;;wCAiCnE"}
|
package/dist/tools/bash.js
CHANGED
|
@@ -42,7 +42,7 @@ function generateDescription(options) {
|
|
|
42
42
|
return lines.join("\n").trim();
|
|
43
43
|
}
|
|
44
44
|
export function createBashExecuteTool(options) {
|
|
45
|
-
const { sandbox, onBeforeBashCall, onAfterBashCall } = options;
|
|
45
|
+
const { sandbox, cwd, onBeforeBashCall, onAfterBashCall } = options;
|
|
46
46
|
return tool({
|
|
47
47
|
description: generateDescription(options),
|
|
48
48
|
inputSchema: bashSchema,
|
|
@@ -55,8 +55,10 @@ export function createBashExecuteTool(options) {
|
|
|
55
55
|
command = beforeResult.command;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
// Prepend cd to ensure commands run in the working directory
|
|
59
|
+
const fullCommand = `cd "${cwd}" && ${command}`;
|
|
58
60
|
// Execute the command
|
|
59
|
-
let result = await sandbox.executeCommand(
|
|
61
|
+
let result = await sandbox.executeCommand(fullCommand);
|
|
60
62
|
// Allow modification of result after execution
|
|
61
63
|
if (onAfterBashCall) {
|
|
62
64
|
const afterResult = onAfterBashCall({ command, result });
|
package/dist/tools/bash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC5D,CAAC,CAAC;AAqBH,SAAS,mBAAmB,CAAC,OAA8B;IACzD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,KAAK,GAAa;QACtB,mDAAmD;QACnD,EAAE;QACF,sBAAsB,GAAG,EAAE;QAC3B,yEAAyE;QACzE,EAAE;KACH,CAAC;IAEF,iDAAiD;IACjD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,yCAAyC;IACzC,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA8B;IAClE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Sandbox } from "../types.js";
|
|
2
2
|
export interface CreateReadFileToolOptions {
|
|
3
3
|
sandbox: Sandbox;
|
|
4
|
+
/** Working directory for resolving relative paths */
|
|
5
|
+
cwd: string;
|
|
4
6
|
}
|
|
5
7
|
export declare function createReadFileTool(options: CreateReadFileToolOptions): import("ai").Tool<{
|
|
6
8
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB;;;;GAYpE"}
|
package/dist/tools/read-file.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import nodePath from "node:path";
|
|
1
2
|
import { tool } from "ai";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
const readFileSchema = z.object({
|
|
4
5
|
path: z.string().describe("The path to the file to read"),
|
|
5
6
|
});
|
|
6
7
|
export function createReadFileTool(options) {
|
|
7
|
-
const { sandbox } = options;
|
|
8
|
+
const { sandbox, cwd } = options;
|
|
8
9
|
return tool({
|
|
9
10
|
description: "Read the contents of a file from the sandbox.",
|
|
10
11
|
inputSchema: readFileSchema,
|
|
11
12
|
execute: async ({ path }) => {
|
|
12
|
-
const
|
|
13
|
+
const resolvedPath = nodePath.posix.resolve(cwd, path);
|
|
14
|
+
const content = await sandbox.readFile(resolvedPath);
|
|
13
15
|
return { content };
|
|
14
16
|
},
|
|
15
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC1D,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC1D,CAAC,CAAC;AAQH,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEjC,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { Sandbox } from "../types.js";
|
|
2
2
|
export interface CreateWriteFileToolOptions {
|
|
3
3
|
sandbox: Sandbox;
|
|
4
|
+
/** Working directory for resolving relative paths */
|
|
5
|
+
cwd: string;
|
|
4
6
|
}
|
|
5
7
|
export declare function createWriteFileTool(options: CreateWriteFileToolOptions): import("ai").Tool<{
|
|
6
|
-
content: string;
|
|
7
8
|
path: string;
|
|
9
|
+
content: string;
|
|
8
10
|
}, {
|
|
9
11
|
success: boolean;
|
|
10
12
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../src/tools/write-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../src/tools/write-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;;;;;GAatE"}
|
package/dist/tools/write-file.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import nodePath from "node:path";
|
|
1
2
|
import { tool } from "ai";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
const writeFileSchema = z.object({
|
|
@@ -5,12 +6,13 @@ const writeFileSchema = z.object({
|
|
|
5
6
|
content: z.string().describe("The content to write to the file"),
|
|
6
7
|
});
|
|
7
8
|
export function createWriteFileTool(options) {
|
|
8
|
-
const { sandbox } = options;
|
|
9
|
+
const { sandbox, cwd } = options;
|
|
9
10
|
return tool({
|
|
10
11
|
description: "Write content to a file in the sandbox. Creates parent directories if needed.",
|
|
11
12
|
inputSchema: writeFileSchema,
|
|
12
13
|
execute: async ({ path, content }) => {
|
|
13
|
-
|
|
14
|
+
const resolvedPath = nodePath.posix.resolve(cwd, path);
|
|
15
|
+
await sandbox.writeFiles([{ path: resolvedPath, content }]);
|
|
14
16
|
return { success: true };
|
|
15
17
|
},
|
|
16
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../src/tools/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACjE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../src/tools/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACjE,CAAC,CAAC;AAQH,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEjC,OAAO,IAAI,CAAC;QACV,WAAW,EACT,+EAA+E;QACjF,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;YACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Sandbox as VercelSandbox } from "@vercel/sandbox";
|
|
2
|
+
import type { JustBashLike } from "./sandbox/just-bash.js";
|
|
2
3
|
export interface CommandResult {
|
|
3
4
|
stdout: string;
|
|
4
5
|
stderr: string;
|
|
@@ -7,19 +8,10 @@ export interface CommandResult {
|
|
|
7
8
|
export interface Sandbox {
|
|
8
9
|
executeCommand(command: string): Promise<CommandResult>;
|
|
9
10
|
readFile(path: string): Promise<string>;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* We detect this by checking for the exec method.
|
|
15
|
-
*/
|
|
16
|
-
export interface JustBashInstance {
|
|
17
|
-
exec: (command: string) => Promise<{
|
|
18
|
-
stdout: string;
|
|
19
|
-
stderr: string;
|
|
20
|
-
exitCode: number;
|
|
21
|
-
}>;
|
|
22
|
-
[key: string]: unknown;
|
|
11
|
+
writeFiles(files: Array<{
|
|
12
|
+
path: string;
|
|
13
|
+
content: string;
|
|
14
|
+
}>): Promise<void>;
|
|
23
15
|
}
|
|
24
16
|
/**
|
|
25
17
|
* Input for onBeforeBashCall callback.
|
|
@@ -68,7 +60,7 @@ export interface CreateBashToolOptions {
|
|
|
68
60
|
* Destination directory on the sandbox for files.
|
|
69
61
|
* Both `files` and `uploadDirectory` are written relative to this.
|
|
70
62
|
* Also used as the working directory for commands.
|
|
71
|
-
* @default "
|
|
63
|
+
* @default "./workspace"
|
|
72
64
|
*/
|
|
73
65
|
destination?: string;
|
|
74
66
|
/**
|
|
@@ -94,7 +86,7 @@ export interface CreateBashToolOptions {
|
|
|
94
86
|
* Accepts a @vercel/sandbox instance, just-bash Bash instance,
|
|
95
87
|
* or any object implementing Sandbox.
|
|
96
88
|
*/
|
|
97
|
-
sandbox?: Sandbox | VercelSandbox |
|
|
89
|
+
sandbox?: Sandbox | VercelSandbox | JustBashLike;
|
|
98
90
|
/**
|
|
99
91
|
* Additional instructions to append to tool descriptions.
|
|
100
92
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B;;OAEG;IACH,eAAe,CAAC,EAAE;QAChB,mCAAmC;QACnC,MAAM,EAAE,MAAM,CAAC;QACf;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,YAAY,CAAC;IAEjD;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,mBAAmB,KACvB,oBAAoB,GAAG,SAAS,CAAC;IAEtC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,kBAAkB,KACtB,mBAAmB,GAAG,SAAS,CAAC;CACtC;AAGD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,IAAI,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC/C,kEAAkE;IAClE,KAAK,EAAE;QACL,IAAI,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;QAC/C,QAAQ,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;QAChD,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;KACnD,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,YAAY,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.3.0",
|
|
7
7
|
"description": "Generic bash tool for AI agents, compatible with AI SDK",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "dist/index.js",
|
|
@@ -68,11 +68,13 @@
|
|
|
68
68
|
"optional": true
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
|
+
"packageManager": "pnpm@8.15.9+sha512.499434c9d8fdd1a2794ebf4552b3b25c0a633abcee5bb15e7b5de90f32f47b513aca98cd5cfd001c31f0db454bc3804edccd578501e4ca293a6816166bbd9f81",
|
|
71
72
|
"scripts": {
|
|
72
73
|
"build": "tsc -p tsconfig.build.json && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md",
|
|
73
74
|
"typecheck": "tsc --noEmit",
|
|
74
|
-
"test": "vitest",
|
|
75
|
-
"test:run": "vitest run",
|
|
75
|
+
"test": "vitest --exclude 'src/tool.vercel.integration.test.ts'",
|
|
76
|
+
"test:run": "vitest run --exclude 'src/tool.vercel.integration.test.ts'",
|
|
77
|
+
"test:vercel": "vitest run --sequence.concurrent=false src/tool.vercel.integration.test.ts",
|
|
76
78
|
"lint": "biome check .",
|
|
77
79
|
"lint:fix": "biome check --write .",
|
|
78
80
|
"format": "biome format --write .",
|