@@ -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),
@@ -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)
}