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

agent

package
v0.1.45 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GlobalAgentsDir

func GlobalAgentsDir() string

GlobalAgentsDir returns ~/.config/brocode/agents.

func ProjectAgentsDir

func ProjectAgentsDir(workspaceDir string) string

ProjectAgentsDir returns <workspaceDir>/.brocode/agents.

Types

type CustomAgent

type CustomAgent struct {
	Name        string            `yaml:"name" json:"name"`
	Description string            `yaml:"description" json:"description"`
	Mode        string            `yaml:"mode" json:"mode"` // BUILDER, PLANNER, MINER, SUBAGENT
	Model       string            `yaml:"model,omitempty" json:"model,omitempty"`
	Temperature *float64          `yaml:"temperature,omitempty" json:"temperature,omitempty"`
	Tools       ToolFilter        `yaml:"tools,omitempty" json:"tools,omitempty"`
	Permissions PermissionFilter  `yaml:"permissions,omitempty" json:"permissions,omitempty"`
	Hooks       map[string]string `yaml:"hooks,omitempty" json:"hooks,omitempty"` // on_turn_start, on_turn_end, on_tool_call, on_tool_result, on_turn_error
	Prompt      string            `yaml:"-" json:"prompt"`
	Path        string            `yaml:"-" json:"path"`
	IsProject   bool              `yaml:"-" json:"is_project"`
}

CustomAgent represents a user-defined agent or custom mode.

func ParseAgentContent

func ParseAgentContent(content, filePath string) (*CustomAgent, error)

ParseAgentContent parses markdown content with YAML frontmatter into a CustomAgent.

func ParseAgentFile

func ParseAgentFile(filePath string) (*CustomAgent, error)

ParseAgentFile reads and unmarshals a custom agent Markdown file with YAML frontmatter.

func (*CustomAgent) CheckCommand

func (a *CustomAgent) CheckCommand(cmd string) (allowed bool, denied bool)

CheckCommand evaluates a bash command against the agent's permission filters.

func (*CustomAgent) IsToolAllowed

func (a *CustomAgent) IsToolAllowed(toolName string) bool

IsToolAllowed checks if a tool is permitted under this agent's tool filter.

func (*CustomAgent) ToHooks

func (a *CustomAgent) ToHooks() []hooks.Hook

ToHooks converts the agent's declarative hooks into hooks.Hook structs.

type Loader

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

Loader discovers and caches custom agents across project and global directories.

func NewLoader

func NewLoader(workspaceDir string) *Loader

NewLoader loads all custom agents. Project-level agents override global ones with the same name.

func NewLoaderWithDirs

func NewLoaderWithDirs(workspaceDir, globalDir string) *Loader

NewLoaderWithDirs initializes agent discovery across explicit project and global directories.

func (*Loader) All

func (l *Loader) All() []CustomAgent

All returns all loaded custom agents.

func (*Loader) Find

func (l *Loader) Find(name string) *CustomAgent

Find finds an agent by name (case-insensitive).

type PermissionFilter

type PermissionFilter struct {
	Allow []string `yaml:"allow,omitempty" json:"allow,omitempty"`
	Deny  []string `yaml:"deny,omitempty" json:"deny,omitempty"`
}

PermissionFilter defines allowed and denied bash command patterns.

type ToolFilter

type ToolFilter struct {
	Allow []string `yaml:"allow,omitempty" json:"allow,omitempty"`
	Deny  []string `yaml:"deny,omitempty" json:"deny,omitempty"`
}

ToolFilter defines allowed and denied tool patterns for a custom agent.

Jump to

Keyboard shortcuts

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