agents

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AiderAgent

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

AiderAgent implements Agent for Aider (https://aider.chat).

func NewAiderAgent

func NewAiderAgent() *AiderAgent

NewAiderAgent creates a new Aider agent.

func (*AiderAgent) Capabilities

func (a *AiderAgent) Capabilities() agentx.Capabilities

Capabilities returns Aider's supported features.

func (*AiderAgent) CommandManager

func (a *AiderAgent) CommandManager() agentx.CommandManager

func (*AiderAgent) ContextFiles

func (a *AiderAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Aider supports.

func (*AiderAgent) Detect

func (a *AiderAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Aider is the active agent.

Detection methods:

  • AIDER=1 or AIDER_AGENT=1
  • AGENT_ENV=aider
  • Running from aider command

func (*AiderAgent) DetectVersion added in v0.2.0

func (a *AiderAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Aider version. Runs: aider --version

func (*AiderAgent) HookManager

func (a *AiderAgent) HookManager() agentx.HookManager

func (*AiderAgent) IsInstalled

func (a *AiderAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Aider is installed on the system. Checks: aider binary in PATH or config directory exists.

func (*AiderAgent) Name

func (a *AiderAgent) Name() string

func (*AiderAgent) ProjectConfigPath

func (a *AiderAgent) ProjectConfigPath() string

ProjectConfigPath returns the Aider project configuration directory.

func (*AiderAgent) Role added in v0.2.0

func (a *AiderAgent) Role() agentx.AgentRole

func (*AiderAgent) SetCommandManager

func (a *AiderAgent) SetCommandManager(cm agentx.CommandManager)

func (*AiderAgent) SetHookManager

func (a *AiderAgent) SetHookManager(hm agentx.HookManager)

func (*AiderAgent) SupportsXDGConfig

func (a *AiderAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as Aider uses ~/.aider instead of XDG paths.

func (*AiderAgent) Type

func (a *AiderAgent) Type() agentx.AgentType

func (*AiderAgent) URL

func (a *AiderAgent) URL() string

func (*AiderAgent) UserConfigPath

func (a *AiderAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Aider user configuration directory.

type AmpAgent

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

AmpAgent implements Agent for Amp by Sourcegraph (https://ampcode.com).

func NewAmpAgent

func NewAmpAgent() *AmpAgent

NewAmpAgent creates a new Amp agent.

func (*AmpAgent) Capabilities

func (a *AmpAgent) Capabilities() agentx.Capabilities

Capabilities returns Amp's supported features.

func (*AmpAgent) CommandManager

func (a *AmpAgent) CommandManager() agentx.CommandManager

func (*AmpAgent) ContextFiles

func (a *AmpAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Amp supports.

func (*AmpAgent) Detect

func (a *AmpAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Amp is the active agent.

Detection methods:

  • AMP_AGENT=1 or AMP=1
  • AMP_THREAD_URL is set (present in all Amp sessions)
  • AGENT_ENV=amp

func (*AmpAgent) DetectVersion added in v0.2.0

func (a *AmpAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Amp version. Runs: amp --version

func (*AmpAgent) HookManager

func (a *AmpAgent) HookManager() agentx.HookManager

func (*AmpAgent) IsInstalled

func (a *AmpAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Amp is installed on the system. Checks: amp binary in PATH or config directory exists.

func (*AmpAgent) Name

func (a *AmpAgent) Name() string

func (*AmpAgent) ProjectConfigPath

func (a *AmpAgent) ProjectConfigPath() string

ProjectConfigPath returns empty as Amp is primarily user-level configuration.

func (*AmpAgent) Role added in v0.2.0

func (a *AmpAgent) Role() agentx.AgentRole

func (*AmpAgent) SetCommandManager

func (a *AmpAgent) SetCommandManager(cm agentx.CommandManager)

func (*AmpAgent) SetHookManager

func (a *AmpAgent) SetHookManager(hm agentx.HookManager)

func (*AmpAgent) SupportsXDGConfig

func (a *AmpAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true as Amp uses ~/.config/amp (XDG-compliant).

func (*AmpAgent) Type

func (a *AmpAgent) Type() agentx.AgentType

func (*AmpAgent) URL

func (a *AmpAgent) URL() string

func (*AmpAgent) UserConfigPath

func (a *AmpAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Amp user configuration directory (~/.config/amp).

type ClaudeCodeAgent

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

ClaudeCodeAgent implements Agent for Claude Code.

func NewClaudeCodeAgent

func NewClaudeCodeAgent() *ClaudeCodeAgent

NewClaudeCodeAgent creates a new Claude Code agent.

func (*ClaudeCodeAgent) Capabilities

func (a *ClaudeCodeAgent) Capabilities() agentx.Capabilities

Capabilities returns Claude Code's supported features.

func (*ClaudeCodeAgent) CommandManager

func (a *ClaudeCodeAgent) CommandManager() agentx.CommandManager

CommandManager returns the command manager for Claude Code.

func (*ClaudeCodeAgent) ContextFiles

func (a *ClaudeCodeAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Claude Code supports.

func (*ClaudeCodeAgent) Detect

func (a *ClaudeCodeAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Claude Code is the active agent.

Detection methods:

  • CLAUDECODE=1 (set by Claude Code)
  • CLAUDE_CODE_ENTRYPOINT (set by Claude Code, e.g., "cli")
  • CLAUDE_CODE_SESSION_ID (set by Claude Code for session tracking)
  • AGENT_ENV=claude-code or claudecode or claude

Note on hook timing: Claude Code runs SessionStart/PreCompact hooks BEFORE setting CLAUDECODE=1 in the subprocess environment. This means hooks that run agent detection may fail even though they're running inside Claude Code. CLAUDE_CODE_ENTRYPOINT appears to be set earlier, providing a fallback. For maximum reliability, hooks should also set AGENT_ENV explicitly:

"command": "AGENT_ENV=claude-code <your-command>"

func (*ClaudeCodeAgent) DetectVersion added in v0.2.0

func (a *ClaudeCodeAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Claude Code version. Runs: claude --version

func (*ClaudeCodeAgent) HookManager

func (a *ClaudeCodeAgent) HookManager() agentx.HookManager

HookManager returns the hook manager for Claude Code.

func (*ClaudeCodeAgent) IsInstalled

func (a *ClaudeCodeAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Claude Code is installed on the system. Checks: claude binary in PATH, or ~/.claude config directory exists.

func (*ClaudeCodeAgent) Name

func (a *ClaudeCodeAgent) Name() string

func (*ClaudeCodeAgent) ProjectConfigPath

func (a *ClaudeCodeAgent) ProjectConfigPath() string

ProjectConfigPath returns the Claude Code project configuration directory.

func (*ClaudeCodeAgent) Role added in v0.2.0

func (a *ClaudeCodeAgent) Role() agentx.AgentRole

func (*ClaudeCodeAgent) SetCommandManager

func (a *ClaudeCodeAgent) SetCommandManager(cm agentx.CommandManager)

SetCommandManager sets the command manager (used during registration).

func (*ClaudeCodeAgent) SetHookManager

func (a *ClaudeCodeAgent) SetHookManager(hm agentx.HookManager)

SetHookManager sets the hook manager (used during registration).

func (*ClaudeCodeAgent) SupportsXDGConfig

func (a *ClaudeCodeAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as Claude Code uses ~/.claude instead of XDG paths.

func (*ClaudeCodeAgent) Type

func (a *ClaudeCodeAgent) Type() agentx.AgentType

func (*ClaudeCodeAgent) URL

func (a *ClaudeCodeAgent) URL() string

func (*ClaudeCodeAgent) UserConfigPath

func (a *ClaudeCodeAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Claude Code user configuration directory (~/.claude).

type ClineAgent

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

ClineAgent implements Agent for Cline (formerly Claude Dev). Cline is a VS Code extension for AI-assisted coding. https://github.com/cline/cline

func NewClineAgent

func NewClineAgent() *ClineAgent

NewClineAgent creates a new Cline agent.

func (*ClineAgent) Capabilities

func (a *ClineAgent) Capabilities() agentx.Capabilities

Capabilities returns Cline's supported features.

func (*ClineAgent) CommandManager

func (a *ClineAgent) CommandManager() agentx.CommandManager

func (*ClineAgent) ContextFiles

func (a *ClineAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Cline supports.

func (*ClineAgent) Detect

func (a *ClineAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Cline is the active agent.

Detection methods:

  • CLINE=1 or CLINE_AGENT=1
  • AGENT_ENV=cline
  • VS Code extension context (heuristic)

func (*ClineAgent) DetectVersion added in v0.2.0

func (a *ClineAgent) DetectVersion(_ context.Context, _ agentx.Environment) string

DetectVersion returns empty string as Cline is a VS Code extension without a standalone CLI for version detection.

func (*ClineAgent) HookManager

func (a *ClineAgent) HookManager() agentx.HookManager

HookManager returns the hook manager for Cline.

func (*ClineAgent) IsInstalled

func (a *ClineAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Cline is installed. Checks for VS Code extension storage directory.

func (*ClineAgent) Name

func (a *ClineAgent) Name() string

func (*ClineAgent) ProjectConfigPath

func (a *ClineAgent) ProjectConfigPath() string

ProjectConfigPath returns the Cline project configuration directory.

func (*ClineAgent) Role added in v0.2.0

func (a *ClineAgent) Role() agentx.AgentRole

func (*ClineAgent) SetCommandManager

func (a *ClineAgent) SetCommandManager(cm agentx.CommandManager)

func (*ClineAgent) SetHookManager

func (a *ClineAgent) SetHookManager(hm agentx.HookManager)

SetHookManager sets the hook manager.

func (*ClineAgent) SupportsXDGConfig

func (a *ClineAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true on Linux as VS Code follows XDG on Linux.

func (*ClineAgent) Type

func (a *ClineAgent) Type() agentx.AgentType

func (*ClineAgent) URL

func (a *ClineAgent) URL() string

func (*ClineAgent) UserConfigPath

func (a *ClineAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Cline user configuration directory. Cline stores config in VS Code's extension storage.

type CodePuppyAgent

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

CodePuppyAgent implements Agent for Code Puppy.

func NewCodePuppyAgent

func NewCodePuppyAgent() *CodePuppyAgent

NewCodePuppyAgent creates a new Code Puppy agent.

func (*CodePuppyAgent) Capabilities

func (a *CodePuppyAgent) Capabilities() agentx.Capabilities

Capabilities returns Code Puppy's supported features.

func (*CodePuppyAgent) CommandManager

func (a *CodePuppyAgent) CommandManager() agentx.CommandManager

func (*CodePuppyAgent) ContextFiles

func (a *CodePuppyAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Code Puppy supports.

func (*CodePuppyAgent) Detect

func (a *CodePuppyAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Code Puppy is the active agent.

Detection methods:

  • CODE_PUPPY=1 or CODE_PUPPY_AGENT=1
  • AGENT_ENV=code-puppy or codepuppy

func (*CodePuppyAgent) DetectVersion added in v0.2.0

func (a *CodePuppyAgent) DetectVersion(_ context.Context, _ agentx.Environment) string

DetectVersion returns empty string as Code Puppy's version detection is not yet implemented.

func (*CodePuppyAgent) HookManager

func (a *CodePuppyAgent) HookManager() agentx.HookManager

func (*CodePuppyAgent) IsInstalled

func (a *CodePuppyAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Code Puppy is installed on the system. Checks: codepuppy binary in PATH or config directory exists.

func (*CodePuppyAgent) Name

func (a *CodePuppyAgent) Name() string

func (*CodePuppyAgent) ProjectConfigPath

func (a *CodePuppyAgent) ProjectConfigPath() string

ProjectConfigPath returns the Code Puppy project configuration directory.

func (*CodePuppyAgent) Role added in v0.2.0

func (a *CodePuppyAgent) Role() agentx.AgentRole

func (*CodePuppyAgent) SetCommandManager

func (a *CodePuppyAgent) SetCommandManager(cm agentx.CommandManager)

func (*CodePuppyAgent) SetHookManager

func (a *CodePuppyAgent) SetHookManager(hm agentx.HookManager)

func (*CodePuppyAgent) SupportsXDGConfig

func (a *CodePuppyAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true as Code Puppy uses ~/.config/code-puppy.

func (*CodePuppyAgent) Type

func (a *CodePuppyAgent) Type() agentx.AgentType

func (*CodePuppyAgent) URL

func (a *CodePuppyAgent) URL() string

func (*CodePuppyAgent) UserConfigPath

func (a *CodePuppyAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Code Puppy user configuration directory.

type CodyAgent

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

CodyAgent implements Agent for Sourcegraph Cody.

func NewCodyAgent

func NewCodyAgent() *CodyAgent

NewCodyAgent creates a new Cody agent.

func (*CodyAgent) Capabilities

func (a *CodyAgent) Capabilities() agentx.Capabilities

Capabilities returns Cody's supported features.

func (*CodyAgent) CommandManager

func (a *CodyAgent) CommandManager() agentx.CommandManager

func (*CodyAgent) ContextFiles

func (a *CodyAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Cody supports.

func (*CodyAgent) Detect

func (a *CodyAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Cody is the active agent.

Detection methods:

  • CODY_AGENT=1
  • AGENT_ENV=cody

func (*CodyAgent) DetectVersion added in v0.2.0

func (a *CodyAgent) DetectVersion(_ context.Context, _ agentx.Environment) string

DetectVersion returns empty string as Cody is primarily a VS Code extension.

func (*CodyAgent) HookManager

func (a *CodyAgent) HookManager() agentx.HookManager

func (*CodyAgent) IsInstalled

func (a *CodyAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Cody is installed on the system. Checks: cody binary in PATH or config directory exists.

func (*CodyAgent) Name

func (a *CodyAgent) Name() string

func (*CodyAgent) ProjectConfigPath

func (a *CodyAgent) ProjectConfigPath() string

ProjectConfigPath returns the Cody project configuration directory.

func (*CodyAgent) Role added in v0.2.0

func (a *CodyAgent) Role() agentx.AgentRole

func (*CodyAgent) SetCommandManager

func (a *CodyAgent) SetCommandManager(cm agentx.CommandManager)

func (*CodyAgent) SetHookManager

func (a *CodyAgent) SetHookManager(hm agentx.HookManager)

func (*CodyAgent) SupportsXDGConfig

func (a *CodyAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true as Cody uses ~/.config/cody.

func (*CodyAgent) Type

func (a *CodyAgent) Type() agentx.AgentType

func (*CodyAgent) URL

func (a *CodyAgent) URL() string

func (*CodyAgent) UserConfigPath

func (a *CodyAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Cody user configuration directory.

type ContinueAgent

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

ContinueAgent implements Agent for Continue (https://continue.dev).

func NewContinueAgent

func NewContinueAgent() *ContinueAgent

NewContinueAgent creates a new Continue agent.

func (*ContinueAgent) Capabilities

func (a *ContinueAgent) Capabilities() agentx.Capabilities

Capabilities returns Continue's supported features.

func (*ContinueAgent) CommandManager

func (a *ContinueAgent) CommandManager() agentx.CommandManager

func (*ContinueAgent) ContextFiles

func (a *ContinueAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Continue supports.

func (*ContinueAgent) Detect

func (a *ContinueAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Continue is the active agent.

Detection methods:

  • CONTINUE_AGENT=1
  • AGENT_ENV=continue

func (*ContinueAgent) DetectVersion added in v0.2.0

func (a *ContinueAgent) DetectVersion(_ context.Context, _ agentx.Environment) string

DetectVersion returns empty string as Continue is primarily an IDE extension.

func (*ContinueAgent) HookManager

func (a *ContinueAgent) HookManager() agentx.HookManager

func (*ContinueAgent) IsInstalled

func (a *ContinueAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Continue is installed on the system. Checks: continue binary in PATH or config directory exists.

func (*ContinueAgent) Name

func (a *ContinueAgent) Name() string

func (*ContinueAgent) ProjectConfigPath

func (a *ContinueAgent) ProjectConfigPath() string

ProjectConfigPath returns the Continue project configuration directory.

func (*ContinueAgent) Role added in v0.2.0

func (a *ContinueAgent) Role() agentx.AgentRole

func (*ContinueAgent) SetCommandManager

func (a *ContinueAgent) SetCommandManager(cm agentx.CommandManager)

func (*ContinueAgent) SetHookManager

func (a *ContinueAgent) SetHookManager(hm agentx.HookManager)

func (*ContinueAgent) SupportsXDGConfig

func (a *ContinueAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as Continue uses ~/.continue instead of XDG paths.

func (*ContinueAgent) Type

func (a *ContinueAgent) Type() agentx.AgentType

func (*ContinueAgent) URL

func (a *ContinueAgent) URL() string

func (*ContinueAgent) UserConfigPath

func (a *ContinueAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Continue user configuration directory.

type CopilotAgent

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

CopilotAgent implements Agent for GitHub Copilot.

func NewCopilotAgent

func NewCopilotAgent() *CopilotAgent

NewCopilotAgent creates a new GitHub Copilot agent.

func (*CopilotAgent) Capabilities

func (a *CopilotAgent) Capabilities() agentx.Capabilities

Capabilities returns Copilot's supported features. Note: Copilot's agent mode has different capabilities than the autocomplete.

func (*CopilotAgent) CommandManager

func (a *CopilotAgent) CommandManager() agentx.CommandManager

func (*CopilotAgent) ContextFiles

func (a *CopilotAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Copilot supports.

func (*CopilotAgent) Detect

func (a *CopilotAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if GitHub Copilot is the active agent.

Detection methods:

  • COPILOT_AGENT=1 (future standard)
  • AGENT_ENV=copilot or github-copilot

Note: Copilot agent mode runs in GitHub's backend, so local detection may not always work. When running in Copilot's cloud environment, detection will rely on AGENT_ENV being explicitly set.

func (*CopilotAgent) DetectVersion added in v0.2.0

func (a *CopilotAgent) DetectVersion(_ context.Context, _ agentx.Environment) string

DetectVersion returns empty string as Copilot is a VS Code extension without a standalone CLI for version detection.

func (*CopilotAgent) HookManager

func (a *CopilotAgent) HookManager() agentx.HookManager

HookManager returns the hook manager for Copilot. Returns nil as Copilot doesn't support hooks yet.

func (*CopilotAgent) IsInstalled

func (a *CopilotAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if GitHub Copilot is installed on the system. Checks: gh copilot extension or config directory exists.

func (*CopilotAgent) Name

func (a *CopilotAgent) Name() string

func (*CopilotAgent) ProjectConfigPath

func (a *CopilotAgent) ProjectConfigPath() string

ProjectConfigPath returns the GitHub Copilot project configuration directory.

func (*CopilotAgent) Role added in v0.2.0

func (a *CopilotAgent) Role() agentx.AgentRole

func (*CopilotAgent) SetCommandManager

func (a *CopilotAgent) SetCommandManager(cm agentx.CommandManager)

func (*CopilotAgent) SetHookManager

func (a *CopilotAgent) SetHookManager(hm agentx.HookManager)

SetHookManager sets the hook manager.

func (*CopilotAgent) SupportsXDGConfig

func (a *CopilotAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true as Copilot uses ~/.config/github-copilot.

func (*CopilotAgent) Type

func (a *CopilotAgent) Type() agentx.AgentType

func (*CopilotAgent) URL

func (a *CopilotAgent) URL() string

func (*CopilotAgent) UserConfigPath

func (a *CopilotAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the GitHub Copilot user configuration directory.

type CursorAgent

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

CursorAgent implements Agent for Cursor.

func NewCursorAgent

func NewCursorAgent() *CursorAgent

NewCursorAgent creates a new Cursor agent.

func (*CursorAgent) Capabilities

func (a *CursorAgent) Capabilities() agentx.Capabilities

Capabilities returns Cursor's supported features.

func (*CursorAgent) CommandManager

func (a *CursorAgent) CommandManager() agentx.CommandManager

func (*CursorAgent) ContextFiles

func (a *CursorAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Cursor supports.

func (*CursorAgent) Detect

func (a *CursorAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Cursor is the active agent.

Detection methods:

  • CURSOR_AGENT=1 (future standard)
  • AGENT_ENV=cursor
  • Running from cursor CLI (heuristic)

func (*CursorAgent) DetectVersion added in v0.2.0

func (a *CursorAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Cursor version. Reads ~/.cursor/package.json for the version field.

func (*CursorAgent) HookManager

func (a *CursorAgent) HookManager() agentx.HookManager

HookManager returns the hook manager for Cursor.

func (*CursorAgent) IsInstalled

func (a *CursorAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Cursor is installed on the system. Checks: cursor binary in PATH, macOS app bundle, or ~/.cursor config directory.

func (*CursorAgent) Name

func (a *CursorAgent) Name() string

func (*CursorAgent) ProjectConfigPath

func (a *CursorAgent) ProjectConfigPath() string

ProjectConfigPath returns the Cursor project configuration directory.

func (*CursorAgent) Role added in v0.2.0

func (a *CursorAgent) Role() agentx.AgentRole

func (*CursorAgent) SetCommandManager

func (a *CursorAgent) SetCommandManager(cm agentx.CommandManager)

func (*CursorAgent) SetHookManager

func (a *CursorAgent) SetHookManager(hm agentx.HookManager)

SetHookManager sets the hook manager.

func (*CursorAgent) SupportsXDGConfig

func (a *CursorAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as Cursor uses ~/.cursor instead of XDG paths.

func (*CursorAgent) Type

func (a *CursorAgent) Type() agentx.AgentType

func (*CursorAgent) URL

func (a *CursorAgent) URL() string

func (*CursorAgent) UserConfigPath

func (a *CursorAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Cursor user configuration directory (~/.cursor).

type DroidAgent

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

DroidAgent implements Agent for Factory Droid. Droid is Factory.ai's terminal-based coding agent. https://factory.ai/

func NewDroidAgent

func NewDroidAgent() *DroidAgent

NewDroidAgent creates a new Droid agent.

func (*DroidAgent) Capabilities

func (a *DroidAgent) Capabilities() agentx.Capabilities

Capabilities returns Droid's supported features.

func (*DroidAgent) CommandManager

func (a *DroidAgent) CommandManager() agentx.CommandManager

func (*DroidAgent) ContextFiles

func (a *DroidAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Droid supports.

func (*DroidAgent) Detect

func (a *DroidAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Droid is the active agent.

Detection methods:

  • DROID=1 or DROID_AGENT=1
  • FACTORY_DROID=1
  • AGENT_ENV=droid or AGENT_ENV=factory-droid
  • Running from droid CLI (heuristic)

func (*DroidAgent) DetectVersion added in v0.2.0

func (a *DroidAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Droid version. Runs: droid --version

func (*DroidAgent) HookManager

func (a *DroidAgent) HookManager() agentx.HookManager

HookManager returns the hook manager for Droid.

func (*DroidAgent) IsInstalled

func (a *DroidAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Droid is installed. Checks for droid binary in PATH or config directory.

func (*DroidAgent) Name

func (a *DroidAgent) Name() string

func (*DroidAgent) ProjectConfigPath

func (a *DroidAgent) ProjectConfigPath() string

ProjectConfigPath returns the Droid project configuration directory.

func (*DroidAgent) Role added in v0.2.0

func (a *DroidAgent) Role() agentx.AgentRole

func (*DroidAgent) SetCommandManager

func (a *DroidAgent) SetCommandManager(cm agentx.CommandManager)

func (*DroidAgent) SetHookManager

func (a *DroidAgent) SetHookManager(hm agentx.HookManager)

SetHookManager sets the hook manager.

func (*DroidAgent) SupportsXDGConfig

func (a *DroidAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true as Droid follows XDG paths.

func (*DroidAgent) Type

func (a *DroidAgent) Type() agentx.AgentType

func (*DroidAgent) URL

func (a *DroidAgent) URL() string

func (*DroidAgent) UserConfigPath

func (a *DroidAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Droid user configuration directory.

type GooseAgent

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

GooseAgent implements Agent for Goose by Block (https://block.github.io/goose/).

func NewGooseAgent

func NewGooseAgent() *GooseAgent

NewGooseAgent creates a new Goose agent.

func (*GooseAgent) Capabilities

func (a *GooseAgent) Capabilities() agentx.Capabilities

Capabilities returns Goose's supported features.

func (*GooseAgent) CommandManager

func (a *GooseAgent) CommandManager() agentx.CommandManager

func (*GooseAgent) ContextFiles

func (a *GooseAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Goose supports.

func (*GooseAgent) Detect

func (a *GooseAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Goose is the active agent.

Detection methods:

  • GOOSE_AGENT=1 or GOOSE=1
  • AGENT_ENV=goose
  • Running from goose command (heuristic)

func (*GooseAgent) DetectVersion added in v0.2.0

func (a *GooseAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Goose version. Runs: goose --version

func (*GooseAgent) HookManager

func (a *GooseAgent) HookManager() agentx.HookManager

func (*GooseAgent) IsInstalled

func (a *GooseAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Goose is installed on the system. Checks: goose binary in PATH or config directory exists.

func (*GooseAgent) Name

func (a *GooseAgent) Name() string

func (*GooseAgent) ProjectConfigPath

func (a *GooseAgent) ProjectConfigPath() string

ProjectConfigPath returns empty as Goose is primarily user-level configuration.

func (*GooseAgent) Role added in v0.2.0

func (a *GooseAgent) Role() agentx.AgentRole

func (*GooseAgent) SetCommandManager

func (a *GooseAgent) SetCommandManager(cm agentx.CommandManager)

func (*GooseAgent) SetHookManager

func (a *GooseAgent) SetHookManager(hm agentx.HookManager)

func (*GooseAgent) SupportsXDGConfig

func (a *GooseAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns true as Goose uses ~/.config/goose.

func (*GooseAgent) Type

func (a *GooseAgent) Type() agentx.AgentType

func (*GooseAgent) URL

func (a *GooseAgent) URL() string

func (*GooseAgent) UserConfigPath

func (a *GooseAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Goose user configuration directory. Goose uses XDG-compliant paths (~/.config/goose).

type KiroAgent

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

KiroAgent implements Agent for Kiro (AWS).

func NewKiroAgent

func NewKiroAgent() *KiroAgent

NewKiroAgent creates a new Kiro agent.

func (*KiroAgent) Capabilities

func (a *KiroAgent) Capabilities() agentx.Capabilities

Capabilities returns Kiro's supported features.

func (*KiroAgent) CommandManager

func (a *KiroAgent) CommandManager() agentx.CommandManager

func (*KiroAgent) ContextFiles

func (a *KiroAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Kiro supports. Kiro is backwards compatible with Amazon Q rules.

func (*KiroAgent) Detect

func (a *KiroAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Kiro is the active agent.

Detection methods:

  • KIRO_AGENT=1 or KIRO=1
  • AGENT_ENV=kiro

func (*KiroAgent) DetectVersion added in v0.2.0

func (a *KiroAgent) DetectVersion(_ context.Context, _ agentx.Environment) string

DetectVersion returns empty string as Kiro's version detection is not yet implemented.

func (*KiroAgent) HookManager

func (a *KiroAgent) HookManager() agentx.HookManager

func (*KiroAgent) IsInstalled

func (a *KiroAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Kiro is installed on the system. Checks: kiro binary in PATH, macOS app bundle, or config directory.

func (*KiroAgent) Name

func (a *KiroAgent) Name() string

func (*KiroAgent) ProjectConfigPath

func (a *KiroAgent) ProjectConfigPath() string

ProjectConfigPath returns the Kiro project configuration directory.

func (*KiroAgent) Role added in v0.2.0

func (a *KiroAgent) Role() agentx.AgentRole

func (*KiroAgent) SetCommandManager

func (a *KiroAgent) SetCommandManager(cm agentx.CommandManager)

func (*KiroAgent) SetHookManager

func (a *KiroAgent) SetHookManager(hm agentx.HookManager)

func (*KiroAgent) SupportsXDGConfig

func (a *KiroAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as Kiro uses ~/.kiro instead of XDG paths.

func (*KiroAgent) Type

func (a *KiroAgent) Type() agentx.AgentType

func (*KiroAgent) URL

func (a *KiroAgent) URL() string

func (*KiroAgent) UserConfigPath

func (a *KiroAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Kiro user configuration directory.

type OpenCodeAgent

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

OpenCodeAgent implements Agent for OpenCode (https://opencode.ai).

func NewOpenCodeAgent

func NewOpenCodeAgent() *OpenCodeAgent

NewOpenCodeAgent creates a new OpenCode agent.

func (*OpenCodeAgent) Capabilities

func (a *OpenCodeAgent) Capabilities() agentx.Capabilities

Capabilities returns OpenCode's supported features.

func (*OpenCodeAgent) CommandManager

func (a *OpenCodeAgent) CommandManager() agentx.CommandManager

func (*OpenCodeAgent) ContextFiles

func (a *OpenCodeAgent) ContextFiles() []string

ContextFiles returns the context/instruction files OpenCode supports.

func (*OpenCodeAgent) Detect

func (a *OpenCodeAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if OpenCode is the active agent.

Detection methods:

  • OPENCODE=1 or OPENCODE_AGENT=1
  • AGENT_ENV=opencode

func (*OpenCodeAgent) DetectVersion added in v0.2.0

func (a *OpenCodeAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed OpenCode version. Runs: opencode --version

func (*OpenCodeAgent) HookManager

func (a *OpenCodeAgent) HookManager() agentx.HookManager

func (*OpenCodeAgent) IsInstalled

func (a *OpenCodeAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if OpenCode is installed on the system. Checks: opencode binary in PATH or config directory exists.

func (*OpenCodeAgent) Name

func (a *OpenCodeAgent) Name() string

func (*OpenCodeAgent) ProjectConfigPath

func (a *OpenCodeAgent) ProjectConfigPath() string

ProjectConfigPath returns the OpenCode project configuration directory.

func (*OpenCodeAgent) Role added in v0.2.0

func (a *OpenCodeAgent) Role() agentx.AgentRole

func (*OpenCodeAgent) SetCommandManager

func (a *OpenCodeAgent) SetCommandManager(cm agentx.CommandManager)

func (*OpenCodeAgent) SetHookManager

func (a *OpenCodeAgent) SetHookManager(hm agentx.HookManager)

func (*OpenCodeAgent) SupportsXDGConfig

func (a *OpenCodeAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as OpenCode uses ~/.opencode instead of XDG paths.

func (*OpenCodeAgent) Type

func (a *OpenCodeAgent) Type() agentx.AgentType

func (*OpenCodeAgent) URL

func (a *OpenCodeAgent) URL() string

func (*OpenCodeAgent) UserConfigPath

func (a *OpenCodeAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the OpenCode user configuration directory.

type WindsurfAgent

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

WindsurfAgent implements Agent for Windsurf (Codeium).

func NewWindsurfAgent

func NewWindsurfAgent() *WindsurfAgent

NewWindsurfAgent creates a new Windsurf agent.

func (*WindsurfAgent) Capabilities

func (a *WindsurfAgent) Capabilities() agentx.Capabilities

Capabilities returns Windsurf's supported features.

func (*WindsurfAgent) CommandManager

func (a *WindsurfAgent) CommandManager() agentx.CommandManager

func (*WindsurfAgent) ContextFiles

func (a *WindsurfAgent) ContextFiles() []string

ContextFiles returns the context/instruction files Windsurf supports.

func (*WindsurfAgent) Detect

func (a *WindsurfAgent) Detect(ctx context.Context, env agentx.Environment) (bool, error)

Detect checks if Windsurf is the active agent.

Detection methods:

  • WINDSURF_AGENT=1 (future standard)
  • CODEIUM_AGENT=1 (alternative)
  • AGENT_ENV=windsurf or codeium

func (*WindsurfAgent) DetectVersion added in v0.2.0

func (a *WindsurfAgent) DetectVersion(ctx context.Context, env agentx.Environment) string

DetectVersion attempts to determine the installed Windsurf version. Reads ~/.codeium/windsurf/package.json for the version field.

func (*WindsurfAgent) HookManager

func (a *WindsurfAgent) HookManager() agentx.HookManager

HookManager returns the hook manager for Windsurf.

func (*WindsurfAgent) IsInstalled

func (a *WindsurfAgent) IsInstalled(ctx context.Context, env agentx.Environment) (bool, error)

IsInstalled checks if Windsurf is installed on the system. Checks: windsurf binary in PATH, macOS app bundle, or config directory.

func (*WindsurfAgent) Name

func (a *WindsurfAgent) Name() string

func (*WindsurfAgent) ProjectConfigPath

func (a *WindsurfAgent) ProjectConfigPath() string

ProjectConfigPath returns the Windsurf project configuration directory.

func (*WindsurfAgent) Role added in v0.2.0

func (a *WindsurfAgent) Role() agentx.AgentRole

func (*WindsurfAgent) SetCommandManager

func (a *WindsurfAgent) SetCommandManager(cm agentx.CommandManager)

func (*WindsurfAgent) SetHookManager

func (a *WindsurfAgent) SetHookManager(hm agentx.HookManager)

SetHookManager sets the hook manager.

func (*WindsurfAgent) SupportsXDGConfig

func (a *WindsurfAgent) SupportsXDGConfig() bool

SupportsXDGConfig returns false as Windsurf uses ~/.codeium instead of XDG paths.

func (*WindsurfAgent) Type

func (a *WindsurfAgent) Type() agentx.AgentType

func (*WindsurfAgent) URL

func (a *WindsurfAgent) URL() string

func (*WindsurfAgent) UserConfigPath

func (a *WindsurfAgent) UserConfigPath(env agentx.Environment) (string, error)

UserConfigPath returns the Windsurf user configuration directory (~/.codeium).

Jump to

Keyboard shortcuts

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