diff options
| author | Adam Malczewski <[email protected]> | 2026-06-10 16:01:33 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-10 16:01:33 +0900 |
| commit | bf862168f0fd7b10d02ae04a9d82f7c37b9d85e5 (patch) | |
| tree | 073048a5775c605d8c28862d0f8c83e63327a17e /packages/tool-shell/src/extension.ts | |
| parent | 9e7554cde98f45df30dad1f9d356b6954138685b (diff) | |
| download | dispatch-bf862168f0fd7b10d02ae04a9d82f7c37b9d85e5.tar.gz dispatch-bf862168f0fd7b10d02ae04a9d82f7c37b9d85e5.zip | |
feat(tools): add run_shell, edit_file, write_file + read_file directory listing
Four standard-tier tool extensions (one tool per extension, zero ABI change):
- tool-read-file: read_file now lists directory contents (sorted, /-suffixed subdirs)
- tool-shell: run_shell (foreground, streamed, cancellable, cwd, timeout + output cap)
- tool-edit-file: edit_file (oldString/newString/replaceAll; errors on absent/non-unique)
- tool-write-file: write_file (explicit overwrite flag)
Registered in host-bin CORE_EXTENSIONS. Live boot clean (shell capability accepted).
686 vitest + 89 bun = 775 tests; tsc -b EXIT 0; biome clean.
Diffstat (limited to 'packages/tool-shell/src/extension.ts')
| -rw-r--r-- | packages/tool-shell/src/extension.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/tool-shell/src/extension.ts b/packages/tool-shell/src/extension.ts new file mode 100644 index 0000000..1a89de0 --- /dev/null +++ b/packages/tool-shell/src/extension.ts @@ -0,0 +1,19 @@ +import type { Extension } from "@dispatch/kernel"; +import { createRunShellTool } from "./shell.js"; +import { realSpawn } from "./spawn.js"; + +export const extension: Extension = { + manifest: { + id: "tool-shell", + name: "Shell Tool", + version: "0.0.0", + apiVersion: "^0.1.0", + trust: "bundled", + activation: "eager", + capabilities: { shell: true }, + contributes: { tools: ["run_shell"] }, + }, + activate(host) { + host.defineTool(createRunShellTool({ workdir: process.cwd(), spawn: realSpawn })); + }, +}; |
