- Execute a non-interactive shell command using `bash -lc`
- Returns `stdout`, `stderr`, and `exitCode`
- `cwd` is relative to the project root and sandboxed within it

**Use `shell` for one-off, non-interactive commands.** These may be short-lived checks or long-running commands that finish on their own and do not require stdin. For commands that need interactive input, a TTY, or persistence across turns, use the `terminal` tool instead.

## Usage tips

- Chain commands with `&&` to fail-fast.
- For long outputs, redirect to a file and `read` it back.
- For long-running non-interactive commands, set an appropriate `timeout` and ensure the command exits on its own.
- Batch independent checks (e.g. `git status && git diff`) in parallel tool calls rather than sequential shell chains when you need results separately.
- Never use `shell` with `sed`/`awk` for programmatic file editing — use the dedicated file-editing tools instead.
