From 5e3b1df0af71c00392da640f59289a24362e2268 Mon Sep 17 00:00:00 2001 From: tauraamui Date: Fri, 5 Dec 2025 12:16:40 +0000 Subject: [PATCH] chore: create new tool config type --- internal/agent/coordinator.go | 2 +- internal/config/config.go | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/agent/coordinator.go b/internal/agent/coordinator.go index 91463fe4c24be90b743bcdb654f865ce60ecf2af..8fe333ebfb58cc0332bc762c086d55815ea99d75 100644 --- a/internal/agent/coordinator.go +++ b/internal/agent/coordinator.go @@ -350,7 +350,7 @@ func (c *coordinator) buildTools(ctx context.Context, agent config.Agent) ([]fan } allTools = append(allTools, - tools.NewBashTool(c.permissions, c.cfg.WorkingDir(), c.cfg.Options.Attribution, modelName), + tools.NewBashTool(c.permissions, c.cfg.WorkingDir(), c.cfg.Options.Attribution, modelName, c.cfg.Tools.Bash), tools.NewJobOutputTool(), tools.NewJobKillTool(), tools.NewDownloadTool(c.permissions, c.cfg.WorkingDir(), nil), diff --git a/internal/config/config.go b/internal/config/config.go index 464dc14bc8c6d12cdf1db17c681c4faa68a59339..906a868be31a379e7dddca06b29bc12a1b463635 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -313,7 +313,8 @@ type Agent struct { } type Tools struct { - Ls ToolLs `json:"ls,omitzero"` + Ls ToolLs `json:"ls,omitzero"` + Bash ToolBash `json:"bash,omitzero"` } type ToolLs struct { @@ -321,6 +322,11 @@ type ToolLs struct { MaxItems *int `json:"max_items,omitempty" jsonschema:"description=Maximum number of items to return for the ls tool,default=1000,example=100"` } +type ToolBash struct { + DisableDefaults bool `json:"disable_banned_defaults,omitempty"` + BannedCommands []string `json:"banned_commands,omitempty"` +} + func (t ToolLs) Limits() (depth, items int) { return ptrValOr(t.MaxDepth, 0), ptrValOr(t.MaxItems, 0) }