| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- {
- "initial": [
- {
- "name": "bash",
- "description": "Execute a bash command (`bash -c`) and return its stdout/stderr. Each call runs in a fresh shell: no state (cwd, variables, functions) persists between calls — pass `workdir` instead of using `cd`. Non-zero exits are reported as `[exit code: N]`. Current harness environment facts are exposed through managed `$DSH_*` variables; inspect them when needed. Commands may run under a file sandbox; a blocked file operation is reported as `[sandbox: file access denied under <mode> mode]` — a policy denial, not a bug in the command; do not retry another way. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. Set `run_in_background: true` for long-running commands: the call returns a task id immediately; read its output with `task_output` and stop it with `task_kill`.",
- "parameters": {
- "type": "object",
- "properties": {
- "command": {
- "type": "string",
- "description": "The bash command to execute."
- },
- "description": {
- "type": "string",
- "description": "Clear, concise description of what this command does in active voice, 5-10 words (shown in the UI). Examples: \"ls\" → \"List files in current directory\"; \"git status\" → \"Show working tree status\"; \"npm install\" → \"Install package dependencies\"."
- },
- "timeoutMs": {
- "type": "number",
- "description": "Timeout in milliseconds. The executor applies its configured default and cap, and kills the command on expiry."
- },
- "workdir": {
- "type": "string",
- "description": "Working directory for this command. Defaults to the session workspace; a relative path is resolved against it."
- },
- "run_in_background": {
- "type": "boolean",
- "description": "Run in the background and return a task id immediately (collect with task_output, stop with task_kill). No timeout applies."
- }
- },
- "required": [
- "command",
- "description"
- ]
- }
- },
- {
- "name": "glob",
- "description": "Find files whose paths match a glob pattern. Returns matching file paths — never directories — including hidden and ignored files (VCS metadata directories are excluded). Up to 4 paths come back in modification-time order; a larger result instead returns 4 paths sampled across top-level entries, says so, and reports where the complete sorted list was saved. This tool does not enumerate directory entries.",
- "parameters": {
- "type": "object",
- "properties": {
- "pattern": {
- "type": "string",
- "description": "Glob pattern to match file paths against (e.g. \"**/*.ts\", \"src/**/*.test.js\"). A pattern with no \"/\" matches the basename at any depth, so \"*\" and \"*.ts\" both search the whole tree; include a separator to anchor the depth."
- },
- "path": {
- "type": "string",
- "description": "Directory to search in. Defaults to the session workspace; a relative path resolves against it."
- }
- },
- "required": [
- "pattern"
- ]
- }
- },
- {
- "name": "grep",
- "description": "Search file contents with a ripgrep regular expression. Returns matching lines with line numbers, grouped by file. Returns the first 250 matches inline; a capped result reports where the complete match list was saved. Use read on a matched file for surrounding context.",
- "parameters": {
- "type": "object",
- "properties": {
- "pattern": {
- "type": "string",
- "description": "Regular expression to search for (ripgrep syntax)."
- },
- "path": {
- "type": "string",
- "description": "File or directory to search. Defaults to the session workspace; a relative path resolves against it."
- },
- "include": {
- "type": "string",
- "description": "One glob filter for which files to search (e.g. \"*.ts\", \"*.{js,jsx}\"). Not a list; negation is not supported."
- }
- },
- "required": [
- "pattern"
- ]
- }
- }
- ],
- "changes": []
- }
|