Help us shape the future of Go! Take the 2026 Go Developer Survey

shell

package
v0.3.66 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewShellBash

func NewShellBash(cfg ShellBashConfig, deps ShellBashDeps) (agentkit.Tool, error)

NewShellBash registers tool/shell-bash: Execute bash commands rooted in the workspace (tool name: bash).

Best practices:

  • Keep commands non-interactive; avoid pagers and prompts.
  • For unattended runs pair with policy/shell-allowlist in strict mode.

Types

type ShellBashConfig

type ShellBashConfig struct {
	// WorkDir is working directory relative to the workspace root.
	WorkDir string `json:"workDir"`
	// TimeoutSeconds is per-command limit when the model omits timeout; 0 means no limit.
	TimeoutSeconds int `json:"timeoutSeconds"`
	// Commands optionally overrides env var names injected for shell-bash.<token>.
	// Default: scope is derived from the command's first token; keys come from L1 scopedEnv
	// or secrets.enc.json / dotenv (/env add).
	Commands map[string][]string `json:"commands,omitempty"`
	// TrimEnv trims the child env to a minimal base (PATH/HOME/... + PWD) plus
	// scoped/extra pairs. Default false: the child inherits the full host env
	// (os.Environ) plus scoped pairs — secrets belong in scopedEnv / /env add.
	TrimEnv *bool `json:"trimEnv,omitempty"`
	// ExtraEnv adds static, non-secret KEY=value entries to the child env.
	// Secrets belong in credentials scopedEnv / /env add, not here.
	ExtraEnv map[string]string `json:"extraEnv,omitempty"`
}

func (*ShellBashConfig) SetDefaults added in v0.3.48

func (c *ShellBashConfig) SetDefaults()

SetDefaults implements pluginkit.Defaulter.

func (*ShellBashConfig) Validate added in v0.3.48

func (c *ShellBashConfig) Validate() error

Validate implements pluginkit.Validator.

type ShellBashDeps

type ShellBashDeps struct {
	Workspace   workspace.Service `json:"workspace"`
	Credentials credentials.Store `json:"credentials,omitempty"`
}

type ShellInput

type ShellInput struct {
	Command string   `json:"command" jsonschema:"Shell command to execute"`
	Timeout *float64 `json:"timeout,omitempty" jsonschema:"Timeout in seconds (optional, no default timeout)"`
}

ShellInput matches pi bash tool parameters.

type ShellOutput

type ShellOutput struct {
	ExitCode int
	Stdout   string
	Stderr   string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL