33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
# Bash ツール
|
||
|
||
## 背景
|
||
|
||
builtin-tools チケットで Read/Write/Edit/Glob/Grep の5ツールは実装済み。
|
||
Bash ツールは子プロセスが直接 fs を触るため ScopedFs では保護できず、
|
||
Permission 層(deny/allow ルール)との統合が前提。
|
||
|
||
## 実装内容
|
||
|
||
- コマンド実行(`tokio::process::Command`)
|
||
- タイムアウト(`timeout` パラメータ、デフォルト 120秒、最大 600秒)
|
||
- 作業ディレクトリの永続(ツール内部で `pwd` 状態を保持、`cd` で変更可能)
|
||
- stdout/stderr の結合出力
|
||
- ToolOutput の summary(コマンド + exit code)+ content(出力テキスト)
|
||
|
||
## Scope との関係
|
||
|
||
Bash の子プロセスは ScopedFs を経由しない。Scope による保護は不可能。
|
||
|
||
代わりに:
|
||
- `PreToolCall` Hook + Permission ルール(`[permission]` マニフェストセクション)で制御
|
||
- Permission 未実装の間は制約なしで動作
|
||
|
||
## 依存チケット
|
||
|
||
- [permission-extension-point.md](permission-extension-point.md) — deny/allow ルールによる Bash コマンド制御
|
||
|
||
## Review
|
||
- 状態: Approve with follow-up
|
||
- レビュー詳細: [./bash-tool.review.md](./bash-tool.review.md)
|
||
- 日付: 2026-05-01
|