Skip to content

feat(tools): add read-only BashToolset with configurable permissions - #1124

Merged
yaozheng-fang merged 1 commit into
volcengine:mainfrom
evanlowe:feat/bash-toolset
Sep 17, 2026
Merged

yaozheng-fang merged 1 commit into
volcengine:mainfrom
evanlowe:feat/bash-toolset

Conversation

@evanlowe

Copy link
Copy Markdown
Contributor

Add a standalone BashToolset exposing cat, find, grep, ls, pwd, head, tail, wc, stat, and diff through the existing toolset interface. Initialization configures enabled tools, accessible directories, excluded files, and execution/output/input/traversal limits. Every call enforces the same permissions, including direct calls to disabled tools, and common credential files are excluded by default.

The utilities use Python filesystem operations and support Linux and macOS. Requested paths and symlink targets are checked, recursive scans skip symlinks, and descriptor-relative opens reject symlink replacements during access. Windows is explicitly unsupported in this version. grep performs literal text matching and diff accepts up to 2,000 lines per file. Timeouts stop waiting and cooperatively cancel workers; the documented access controls require the host to control directory renames, hard links, and mounts.

Validation:

  • 63 targeted tests passed, covering all ten ADK tools, permissions, symlink replacement, special files, limits, timeouts, cancellation, and existing web-fetch contracts
  • Pre-commit passed: Ruff lint/format and hardcoded-secret checks
  • Rebased onto the latest upstream main before validation

@yaozheng-fang
yaozheng-fang merged commit 0b3058c into volcengine:main Sep 17, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants