Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/cli-proxy-incompatible-with-bash-disabled.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

80 changes: 42 additions & 38 deletions .github/workflows/ai-moderator.lock.yml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .github/workflows/ai-moderator.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ imports:
- shared/reporting.md
tools:
bash: false
cli-proxy: true
cli-proxy: false
Comment thread
github-actions[bot] marked this conversation as resolved.
cache-memory:
key: spam-tracking-${{ github.repository_owner }}
retention-days: 1
allowed-extensions: [".json"]
github:
mode: gh-proxy
mode: local
read-only: true
toolsets: [default]
min-integrity: none
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/smoke-agent-all-none.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .github/workflows/smoke-agent-all-none.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ name: "Smoke Agent: all/none"
engine: claude
strict: true
tools:
cli-proxy: false
bash: false
github:
mode: local
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/smoke-agent-public-none.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .github/workflows/smoke-agent-public-none.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ name: "Smoke Agent: public/none"
engine: claude
strict: true
tools:
cli-proxy: false
bash: false
github:
mode: local
Expand Down
12 changes: 12 additions & 0 deletions docs/src/content/docs/reference/tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,18 @@ This reduces token consumption from large MCP tool schemas and can simplify work

Defaults to `false`.

CLI mounting requires shell access: the wrappers are ordinary executables invoked from bash. GitHub `gh-proxy` mode is also shell-backed because GitHub reads are performed with the `gh` CLI. When `tools.bash` is disabled (`bash: false` or `bash: []`), `cli-proxy: true` and `tools.github.mode: gh-proxy` are rejected at compile time, and strict mode requires `cli-proxy: false` to be stated explicitly:

```yaml wrap
tools:
bash: false
cli-proxy: false
github:
mode: local
```

With `cli-proxy: false` and an MCP-backed GitHub mode (`local` or `remote`), MCP servers (including `safeoutputs`) remain available through the MCP protocol, and the CLI-only instructions are omitted from the generated prompt. Run `gh aw fix` to add the explicit setting to existing workflows.

## Tool Timeout Configuration

### Tool Operation Timeout (`tools.timeout`)
Expand Down
12 changes: 12 additions & 0 deletions pkg/cli/codemod_bash_allowlist_unsupported_engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,18 @@ func resolveEffectiveBashTools(content string, frontmatter map[string]any, fileP
return topTools, nil
}

return resolveEffectiveTools(content, frontmatter, filePath)
}

// resolveEffectiveTools returns the effective tools map for the workflow, merging in tools from
// imports and markdown includes when a file path is available.
func resolveEffectiveTools(content string, frontmatter map[string]any, filePath string) (map[string]any, error) {
topTools, _ := frontmatter["tools"].(map[string]any)

if filePath == "" {
return topTools, nil
}

baseDir := filepath.Dir(filePath)
importCache := parser.NewImportCache("")

Expand Down
Loading
Loading