cmd

package
v0.0.205 Latest Latest
Warning

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

Go to latest
Published: May 4, 2026 License: MIT Imports: 94 Imported by: 0

Documentation

Index

Constants

Variables

View Source
var Commit = "unknown"
View Source
var Date = "unknown"
View Source
var Version = "dev"

These will be set by the linker during build

Functions

func AddAgentFlag added in v0.0.34

func AddAgentFlag(cmd *cobra.Command, dest *string)

AddAgentFlag adds the --agent/-a flag with completion

func AddCommonFlags added in v0.0.196

func AddCommonFlags(cmd *cobra.Command, set CommonFlagSet, b CommonFlagBindings)

AddCommonFlags adds a set of reusable flags to cmd and records the command's flag capabilities for pre-command flag normalization.

func AddDebugFlag added in v0.0.34

func AddDebugFlag(cmd *cobra.Command, dest *bool)

AddDebugFlag adds the --debug/-d flag

func AddFileFlag added in v0.0.34

func AddFileFlag(cmd *cobra.Command, dest *[]string, description string)

AddFileFlag adds the --file/-f flag

func AddMCPFlag added in v0.0.34

func AddMCPFlag(cmd *cobra.Command, dest *string)

AddMCPFlag adds the --mcp flag with completion

func AddMaxOutputTokensFlag added in v0.0.100

func AddMaxOutputTokensFlag(cmd *cobra.Command, dest *int)

AddMaxOutputTokensFlag adds the --max-output-tokens flag

func AddMaxTurnsFlag added in v0.0.34

func AddMaxTurnsFlag(cmd *cobra.Command, dest *int, defaultValue int)

AddMaxTurnsFlag adds the --max-turns flag

func AddNativeSearchFlags added in v0.0.34

func AddNativeSearchFlags(cmd *cobra.Command, native, noNative *bool)

AddNativeSearchFlags adds --native-search and --no-native-search flags

func AddNoWebFetchFlag added in v0.0.118

func AddNoWebFetchFlag(cmd *cobra.Command, dest *bool)

AddNoWebFetchFlag adds --no-web-fetch to disable external read_url injection.

func AddProviderFlag added in v0.0.34

func AddProviderFlag(cmd *cobra.Command, dest *string)

AddProviderFlag adds the --provider/-p flag with completion

func AddSearchFlag added in v0.0.34

func AddSearchFlag(cmd *cobra.Command, dest *bool)

AddSearchFlag adds the --search/-s flag

func AddSkillsFlag added in v0.0.37

func AddSkillsFlag(cmd *cobra.Command, dest *string)

AddSkillsFlag adds the --skills flag with completion Values: "all" or "*" to enable all, "none" to disable, skill names (comma-separated), or skill,+ for explicit + auto

func AddSystemMessageFlag added in v0.0.34

func AddSystemMessageFlag(cmd *cobra.Command, dest *string)

AddSystemMessageFlag adds the --system-message/-m flag

func AddToolFlags added in v0.0.34

func AddToolFlags(cmd *cobra.Command, tools *string, readDirs, writeDirs, shellAllow *[]string)

AddToolFlags adds tool-related flags (--tools, --read-dir, --write-dir, --shell-allow)

func AddYoloFlag added in v0.0.35

func AddYoloFlag(cmd *cobra.Command, dest *bool)

AddYoloFlag adds the --yolo flag for auto-approving all tool operations

func AgentFlagCompletion added in v0.0.33

func AgentFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

AgentFlagCompletion provides shell completion for the --agent flag.

func AgentFlagCompletionWithPaths added in v0.0.65

func AgentFlagCompletionWithPaths(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

AgentFlagCompletionWithPaths provides shell completion for the --agent flag. Returns agent names for plain strings, or falls back to directory completion when the input looks like a path.

func AtAgentCompletion added in v0.0.33

func AtAgentCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

AtAgentCompletion provides completions for @agent syntax in positional args. When typing "@<TAB>", completes to "@agent-builder", "@commit", etc.

func EmbedProviderFlagCompletion added in v0.0.83

func EmbedProviderFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

EmbedProviderFlagCompletion handles --provider flag completion for embed commands

func Execute

func Execute()

func ExtractAgentFromArgs added in v0.0.33

func ExtractAgentFromArgs(args []string) (agentName string, filteredArgs []string)

ExtractAgentFromArgs checks args for @agent-name syntax and returns the agent name and filtered args. Returns empty string if no @agent found.

func ImageProviderFlagCompletion added in v0.0.6

func ImageProviderFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

ImageProviderFlagCompletion handles --provider flag completion for image commands

func InitSessionStore added in v0.0.46

func InitSessionStore(cfg *config.Config, errWriter io.Writer) (session.Store, func())

InitSessionStore creates a session store if enabled in config. Returns the store (may be nil if disabled) and a cleanup function. The cleanup function is always safe to call (handles nil store). Warnings are written to errWriter.

func InjectSkillsMetadata added in v0.0.89

func InjectSkillsMetadata(instructions string, skillsSetup *skills.Setup) string

InjectSkillsMetadata appends <available_skills> metadata to instructions when available.

func ListAgentNames added in v0.0.134

func ListAgentNames(cfg *config.Config) ([]string, error)

ListAgentNames returns all available agent names for completions.

func LoadAgent added in v0.0.34

func LoadAgent(agentName string, cfg *config.Config) (*agents.Agent, error)

LoadAgent loads and validates an agent by name or path. Returns nil if agentName is empty. If agentName contains a path separator, it is loaded directly from the filesystem. Otherwise, it is looked up in the agent registry.

func MCPFlagCompletion added in v0.0.15

func MCPFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

MCPFlagCompletion provides completions for --mcp flag with comma-separated support. When typing "playwright,file<TAB>", completes to "playwright,filesystem".

func MCPRunArgCompletion added in v0.0.64

func MCPRunArgCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

MCPRunArgCompletion provides completions for "mcp run <server> <tool> [key=val] ...". Completes server names for the first arg, tool names and key= params for subsequent args. Tool/param data comes from a local cache populated by "mcp info" and "mcp run".

func MCPServerArgCompletion added in v0.0.23

func MCPServerArgCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

MCPServerArgCompletion provides completions for MCP server names as positional arguments. Used by commands like "mcp info <server>", "mcp run <server>" and "mcp remove <server>".

func MCPToolsFlagCompletion added in v0.0.128

func MCPToolsFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

MCPToolsFlagCompletion provides completions for the --tools flag on serve mcp.

func ProviderFlagCompletion added in v0.0.6

func ProviderFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

ProviderFlagCompletion handles --provider flag completion for LLM commands

func RegisterSkillToolWithEngine added in v0.0.89

func RegisterSkillToolWithEngine(engine *llm.Engine, toolMgr *tools.ToolManager, skillsSetup *skills.Setup)

RegisterSkillToolWithEngine registers activate_skill on the engine when skills are available. This is independent of local tool manager setup so skills work in both agent-only and tools modes.

func SetupSkills added in v0.0.46

func SetupSkills(cfg *config.SkillsConfig, skillsFlag string, agentSkills string, errWriter io.Writer) *skills.Setup

SetupSkills initializes the skills system if enabled. Returns the setup (may be nil) and logs warnings to errWriter on errors. Precedence: CLI --skills flag > agent skills config > global config.

func SkillFlagCompletion added in v0.0.37

func SkillFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

SkillFlagCompletion provides shell completion for skill-related flags.

func SkillsFlagCompletion added in v0.0.37

func SkillsFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

SkillsFlagCompletion provides shell completion for the --skills flag.

func ToolsFlagCompletion added in v0.0.25

func ToolsFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

ToolsFlagCompletion provides completions for --tools flag with comma-separated support. When typing "read_file,wr<TAB>", completes to "read_file,write_file".

func UsageProviderFlagCompletion added in v0.0.34

func UsageProviderFlagCompletion(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

UsageProviderFlagCompletion handles --provider flag completion for the usage command. Returns the specific providers that the usage command supports.

func WireSpawnAgentRunner added in v0.0.35

func WireSpawnAgentRunner(cfg *config.Config, toolMgr *tools.ToolManager, yoloMode bool) error

WireSpawnAgentRunner sets up the spawn_agent runner if the tool is enabled. This should be called after SetupToolManager. The toolMgr's ApprovalMgr is passed to sub-agents so they inherit session approvals and can use the parent's prompt function for interactive approvals.

Types

type CLIFlags added in v0.0.34

type CLIFlags struct {
	Provider        string
	Tools           string
	ReadDirs        []string
	WriteDirs       []string
	ShellAllow      []string
	MCP             string
	SystemMessage   string
	MaxTurns        int
	MaxTurnsSet     bool // true if --max-turns was explicitly set
	MaxOutputTokens int  // 0 = use provider default
	Search          bool
	Files           []string // files passed via -f flag, used for agent template expansion (e.g., {{.Files}})
	Platform        string   // runtime surface for template expansion (e.g., chat, console, web, telegram, jobs)
}

CLIFlags holds the CLI flag values that can override settings.

type CommonFlagBindings added in v0.0.196

type CommonFlagBindings struct {
	Provider         *string
	Debug            *bool
	Search           *bool
	NativeSearch     *bool
	NoNativeSearch   *bool
	NoWebFetch       *bool
	MCP              *string
	Tools            *string
	ReadDirs         *[]string
	WriteDirs        *[]string
	ShellAllow       *[]string
	SystemMessage    *string
	Yolo             *bool
	Skills           *string
	MaxTurns         *int
	MaxTurnsDefault  int
	MaxOutputTokens  *int
	Agent            *string
	Files            *[]string
	FilesDescription string
}

CommonFlagBindings holds destinations and options for AddCommonFlags.

type CommonFlagSet added in v0.0.196

type CommonFlagSet uint64

CommonFlagSet identifies reusable groups of flags shared by LLM commands.

const (
	CommonProvider CommonFlagSet = 1 << iota
	CommonDebug
	CommonSearch
	CommonNativeSearch
	CommonNoWebFetch
	CommonMCP
	CommonTools
	CommonSystemMessage
	CommonYolo
	CommonSkills
	// Tier 2 / non-position-0 flags. These can use the common registration
	// helper without becoming eligible for pre-command normalization.
	CommonMaxTurns
	CommonMaxOutputTokens
	CommonAgent
	CommonFiles
)

type CommonFlags added in v0.0.34

type CommonFlags = CommonFlagBindings

CommonFlags is kept as a backwards-compatible alias for common flag bindings.

type MCPOptions added in v0.0.39

type MCPOptions struct {
	Provider llm.Provider
	Model    string
	YoloMode bool
}

MCPOptions contains options for enabling MCP servers.

type ModelLister added in v0.0.8

type ModelLister interface {
	ListModels(ctx context.Context) ([]llm.ModelInfo, error)
}

ModelLister is an interface for providers that can list available models

type ProviderInfo added in v0.0.32

type ProviderInfo struct {
	Name               string   `json:"name"`
	Type               string   `json:"type"`
	Credential         string   `json:"credential"`        // "api_key", "oauth", "aws", "none"
	EnvVar             string   `json:"env_var,omitempty"` // Environment variable for API key
	RequiresKey        bool     `json:"requires_key"`      // Whether API key is required
	SupportsListModels bool     `json:"supports_list_models"`
	Models             []string `json:"models,omitempty"` // Curated model list
	Configured         bool     `json:"configured"`       // Whether provider is in user config
	IsBuiltin          bool     `json:"is_builtin"`       // Whether this is a built-in provider
}

ProviderInfo describes a provider for external consumption

type SessionSettings added in v0.0.34

type SessionSettings struct {
	// Provider/model
	Provider string
	Model    string

	// Agent name (if any)
	AgentName string

	// Session ID (if any)
	SessionID string

	// Tool settings
	Tools        string
	ReadDirs     []string
	WriteDirs    []string
	ShellAllow   []string
	ShellAutoRun bool
	Scripts      []string

	// Agent directory (for run_agent_script and custom tools)
	AgentDir string

	// CustomTools holds script-backed custom tool definitions from agent.yaml
	CustomTools []agents.CustomToolDef

	// MCP servers (comma-separated)
	MCP string

	// System prompt (already expanded)
	SystemPrompt string

	// Behavior
	MaxTurns        int
	MaxOutputTokens int // 0 = use provider default
	Search          bool

	// Memory / insights
	InsightsExpansion bool
	InsightsMaxTokens int // 0 → default 500
}

SessionSettings holds the resolved settings for a session, merged from config defaults, agent settings, and CLI flags.

func ResolveSettings added in v0.0.34

func ResolveSettings(cfg *config.Config, agent *agents.Agent, cli CLIFlags, configProvider, configModel, configInstructions string, configMaxTurns, defaultMaxTurns int) (SessionSettings, error)

ResolveSettings merges config, agent, and CLI flags into final settings. Priority: CLI > agent > config

func (*SessionSettings) SetupToolManager added in v0.0.34

func (s *SessionSettings) SetupToolManager(cfg *config.Config, engine *llm.Engine) (*tools.ToolManager, error)

SetupToolManager creates and configures a ToolManager from settings. Returns nil if no tools are enabled.

type SpawnAgentRunner added in v0.0.35

type SpawnAgentRunner struct {
	// contains filtered or unexported fields
}

SpawnAgentRunner implements the tools.SpawnAgentRunner interface. It loads and runs sub-agents for the spawn_agent tool.

func NewSpawnAgentRunner added in v0.0.35

func NewSpawnAgentRunner(cfg *config.Config, yoloMode bool, parentApprovalMgr *tools.ApprovalManager) (*SpawnAgentRunner, error)

NewSpawnAgentRunner creates a new SpawnAgentRunner. parentApprovalMgr enables sub-agents to inherit parent's session approvals and prompting.

func NewSpawnAgentRunnerWithStore added in v0.0.46

func NewSpawnAgentRunnerWithStore(cfg *config.Config, yoloMode bool, parentApprovalMgr *tools.ApprovalManager, store session.Store, parentSessionID string) (*SpawnAgentRunner, error)

NewSpawnAgentRunnerWithStore creates a new SpawnAgentRunner with session tracking. store is used to save subagent turns, parentSessionID links child sessions to parent.

func WireSpawnAgentRunnerWithStore added in v0.0.46

func WireSpawnAgentRunnerWithStore(cfg *config.Config, toolMgr *tools.ToolManager, yoloMode bool, store session.Store, parentSessionID string) (*SpawnAgentRunner, error)

WireSpawnAgentRunnerWithStore sets up the spawn_agent runner with session tracking. store is used to save subagent turns, parentSessionID links child sessions to parent. Returns the runner so callers can call Wait() to drain in-flight runs before closing the store.

func (*SpawnAgentRunner) RunAgent added in v0.0.35

func (r *SpawnAgentRunner) RunAgent(ctx context.Context, agentName string, prompt string, depth int) (tools.SpawnAgentRunResult, error)

RunAgent loads and runs a sub-agent with the given prompt. It returns the text output from the agent.

func (*SpawnAgentRunner) RunAgentWithCallback added in v0.0.42

func (r *SpawnAgentRunner) RunAgentWithCallback(ctx context.Context, agentName string, prompt string, depth int,
	callID string, cb tools.SubagentEventCallback) (tools.SpawnAgentRunResult, error)

RunAgentWithCallback loads and runs a sub-agent with an event callback for progress reporting.

func (*SpawnAgentRunner) SetWarnFunc added in v0.0.46

func (r *SpawnAgentRunner) SetWarnFunc(fn func(format string, args ...any))

SetWarnFunc sets a function to be called when non-fatal warnings occur (e.g., session persistence failures). If not set, warnings are logged via log.Printf.

func (*SpawnAgentRunner) Wait added in v0.0.151

func (r *SpawnAgentRunner) Wait()

Wait blocks until all in-flight agent runs have completed. Call this before closing the session store to avoid use-after-close errors.

type ToolDefinition added in v0.0.25

type ToolDefinition struct {
	Name        string          `json:"name"`
	Description string          `json:"description"`
	Schema      json.RawMessage `json:"schema"`
}

ToolDefinition represents a tool definition passed to the MCP server

Directories

Path Synopsis
Standalone test binary to debug image rendering with streaming markdown
Standalone test binary to debug image rendering with streaming markdown
Package udiff provides parsing and application of unified diffs with elision support.
Package udiff provides parsing and application of unified diffs with elision support.

Jump to

Keyboard shortcuts

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