Documentation
¶
Overview ¶
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing Copilot CLI processes.
Package agent handles spawning and managing ACP agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Package agent handles spawning and managing CLI agent processes.
Index ¶
- Constants
- func CleanupGeminiSettingsFile(settingsPath string) error
- func CleanupMCPConfig(taskID, baseDir string) error
- func ConvertMCPConfig(mcpConfigPath, tempDir, workDir string) (string, error)
- func ConvertMCPConfigForAntigravity(mcpConfigPath, tempDir, workDir string) (string, error)
- func ConvertMCPConfigForOpenCode(mcpConfigPath, taskID, baseDir, workDir string) (string, error)
- func ConvertMCPConfigForTask(mcpConfigPath, taskID, baseDir, workDir string) (string, error)
- func ConvertMCPConfigFormats(inputPath, outputPath, workDir, fromFormat, toFormat string) error
- func CreateGeminiSettingsFile(mcpConfigPath, taskID, baseDir, workDir string) (string, error)
- func ValidateEngine(engine string) error
- type ACPProcess
- type ACPSpawner
- func (s *ACPSpawner) Cancel(taskID string) error
- func (s *ACPSpawner) IsRunning(taskID string) bool
- func (s *ACPSpawner) Pause(taskID string) error
- func (s *ACPSpawner) RunningCount() int
- func (s *ACPSpawner) SessionControl(taskID, action, message, mode string) (interface{}, error)
- func (s *ACPSpawner) Shutdown()
- func (s *ACPSpawner) Spawn(ctx context.Context, task *models.Task) error
- func (s *ACPSpawner) Wait(ctx context.Context, taskID string) error
- type AntigravityMCPConfig
- type AntigravityMCPServer
- type ClaudeMCPConfig
- type ClaudeMCPServer
- type ClaudeProcess
- type ClaudeSpawner
- func (s *ClaudeSpawner) Cancel(taskID string) error
- func (s *ClaudeSpawner) IsRunning(taskID string) bool
- func (s *ClaudeSpawner) Pause(taskID string) error
- func (s *ClaudeSpawner) RunningCount() int
- func (s *ClaudeSpawner) Shutdown()
- func (s *ClaudeSpawner) Spawn(ctx context.Context, task *models.Task) error
- func (s *ClaudeSpawner) Wait(ctx context.Context, taskID string) error
- type CopilotSpawner
- func (s *CopilotSpawner) Cancel(taskID string) error
- func (s *CopilotSpawner) GetProcess(taskID string) (*Process, bool)
- func (s *CopilotSpawner) IsRunning(taskID string) bool
- func (s *CopilotSpawner) Pause(taskID string) error
- func (s *CopilotSpawner) RunningCount() int
- func (s *CopilotSpawner) Shutdown()
- func (s *CopilotSpawner) Spawn(ctx context.Context, task *models.Task) error
- func (s *CopilotSpawner) Wait(ctx context.Context, taskID string) error
- type GeminiMCPServer
- type GeminiProcess
- type GeminiSettings
- type GeminiSpawner
- func (s *GeminiSpawner) Cancel(taskID string) error
- func (s *GeminiSpawner) IsRunning(taskID string) bool
- func (s *GeminiSpawner) Pause(taskID string) error
- func (s *GeminiSpawner) RunningCount() int
- func (s *GeminiSpawner) Shutdown()
- func (s *GeminiSpawner) Spawn(ctx context.Context, task *models.Task) error
- func (s *GeminiSpawner) Wait(ctx context.Context, taskID string) error
- type Manager
- func (m *Manager) ACPSessionControl(taskID, action, message, mode string) (interface{}, error)
- func (m *Manager) Cancel(taskID string) error
- func (m *Manager) CleanupTask(taskID string)
- func (m *Manager) GetProcess(taskID string) (*Process, bool)
- func (m *Manager) IsRunning(taskID string) bool
- func (m *Manager) Pause(taskID string) error
- func (m *Manager) RunningCount() int
- func (m *Manager) Shutdown()
- func (m *Manager) Spawn(ctx context.Context, task *models.Task) error
- func (m *Manager) Wait(ctx context.Context, taskID string) error
- type MesnadaMCPConfig
- type MesnadaMCPServer
- type MistralProcess
- type MistralSpawner
- func (s *MistralSpawner) Cancel(taskID string) error
- func (s *MistralSpawner) IsRunning(taskID string) bool
- func (s *MistralSpawner) Pause(taskID string) error
- func (s *MistralSpawner) RunningCount() int
- func (s *MistralSpawner) Shutdown()
- func (s *MistralSpawner) Spawn(ctx context.Context, task *models.Task) error
- func (s *MistralSpawner) Wait(ctx context.Context, taskID string) error
- type OllamaClaudeProcess
- type OllamaClaudeSpawner
- func (s *OllamaClaudeSpawner) Cancel(taskID string) error
- func (s *OllamaClaudeSpawner) Cleanup() error
- func (s *OllamaClaudeSpawner) GetOutput(taskID string) (string, error)
- func (s *OllamaClaudeSpawner) IsRunning(taskID string) bool
- func (s *OllamaClaudeSpawner) Spawn(ctx context.Context, task *models.Task) error
- type OllamaOpenCodeProcess
- type OllamaOpenCodeSpawner
- func (s *OllamaOpenCodeSpawner) Cancel(taskID string) error
- func (s *OllamaOpenCodeSpawner) Cleanup() error
- func (s *OllamaOpenCodeSpawner) GetOutput(taskID string) (string, error)
- func (s *OllamaOpenCodeSpawner) IsRunning(taskID string) bool
- func (s *OllamaOpenCodeSpawner) Spawn(ctx context.Context, task *models.Task) error
- type OpenCodeMCPConfig
- type OpenCodeMCPServer
- type OpenCodeProcess
- type OpenCodeSpawner
- func (s *OpenCodeSpawner) Cancel(taskID string) error
- func (s *OpenCodeSpawner) IsRunning(taskID string) bool
- func (s *OpenCodeSpawner) Pause(taskID string) error
- func (s *OpenCodeSpawner) RunningCount() int
- func (s *OpenCodeSpawner) Shutdown()
- func (s *OpenCodeSpawner) Spawn(ctx context.Context, task *models.Task) error
- func (s *OpenCodeSpawner) Wait(ctx context.Context, taskID string) error
- type Process
- type Spawner
- type VSCodeMCPConfig
- type VSCodeMCPServer
Constants ¶
const ( MCPFormatMesnada = mcpconv.FormatMesnada MCPFormatVSCode = mcpconv.FormatVSCode )
const AntigravityProjectMCPConfigPath = mcpconv.AntigravityProjectMCPConfigPath
AntigravityProjectMCPConfigPath is the project-local target path used by --all mode.
Variables ¶
This section is empty.
Functions ¶
func CleanupGeminiSettingsFile ¶
CleanupGeminiSettingsFile removes the temporary settings file created for a task.
func CleanupMCPConfig ¶
CleanupMCPConfig removes the temporary MCP config file for a task.
func ConvertMCPConfig ¶
ConvertMCPConfig converts a Mesnada MCP config file to Claude CLI format.
func ConvertMCPConfigForAntigravity ¶
ConvertMCPConfigForAntigravity converts canonical MCP config to Antigravity mcp_config.json format.
func ConvertMCPConfigForOpenCode ¶
ConvertMCPConfigForOpenCode converts Mesnada MCP config to OpenCode.ai format.
func ConvertMCPConfigForTask ¶
ConvertMCPConfigForTask converts MCP config for a specific task.
func ConvertMCPConfigFormats ¶
ConvertMCPConfigFormats converts input MCP config between supported formats (e.g. --from/--to).
func CreateGeminiSettingsFile ¶
CreateGeminiSettingsFile creates a temporary settings.json file with MCP configuration.
func ValidateEngine ¶
ValidateEngine checks if an engine string is valid.
Types ¶
type ACPProcess ¶
type ACPProcess struct {
// contains filtered or unexported fields
}
ACPProcess represents a running ACP agent process.
type ACPSpawner ¶
type ACPSpawner struct {
// contains filtered or unexported fields
}
ACPSpawner manages ACP agent process spawning.
func NewACPSpawner ¶
func NewACPSpawner(acpConfig *mesnadaconfig.ACPConfig, logDir string, onComplete func(task *models.Task)) *ACPSpawner
NewACPSpawner creates a new spawner for ACP agents.
func (*ACPSpawner) Cancel ¶
func (s *ACPSpawner) Cancel(taskID string) error
Cancel stops a running agent and sends a session/cancel notification if possible.
func (*ACPSpawner) IsRunning ¶
func (s *ACPSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
func (*ACPSpawner) Pause ¶
func (s *ACPSpawner) Pause(taskID string) error
Pause stops a running agent without marking it as cancelled. Note: ACP doesn't have a native "pause" concept, so we treat it like cancel.
func (*ACPSpawner) RunningCount ¶
func (s *ACPSpawner) RunningCount() int
RunningCount returns the number of currently running processes.
func (*ACPSpawner) SessionControl ¶
func (s *ACPSpawner) SessionControl(taskID, action, message, mode string) (interface{}, error)
SessionControl sends a control command to an active ACP session. Supported actions: "follow_up", "set_mode", "cancel", "status" This is part of Phase 5 API extension. Full implementation will be completed in Phase 6.
func (*ACPSpawner) Shutdown ¶
func (s *ACPSpawner) Shutdown()
Shutdown cancels all running processes.
type AntigravityMCPConfig ¶
type AntigravityMCPConfig = mcpconv.AntigravityConfig
AntigravityMCPConfig represents Antigravity mcp_config.json format.
type AntigravityMCPServer ¶
type AntigravityMCPServer = mcpconv.AntigravityServer
AntigravityMCPServer represents a server entry in Antigravity format.
type ClaudeMCPConfig ¶
type ClaudeMCPConfig = mcpconv.ClaudeConfig
ClaudeMCPConfig represents the Claude CLI MCP configuration format.
type ClaudeMCPServer ¶
type ClaudeMCPServer = mcpconv.ClaudeServer
ClaudeMCPServer represents a server entry in Claude CLI format.
type ClaudeProcess ¶
type ClaudeProcess struct {
// contains filtered or unexported fields
}
ClaudeProcess represents a running Claude CLI process.
type ClaudeSpawner ¶
type ClaudeSpawner struct {
// contains filtered or unexported fields
}
ClaudeSpawner manages Claude CLI process spawning.
func NewClaudeSpawner ¶
func NewClaudeSpawner(logDir string, onComplete func(task *models.Task)) *ClaudeSpawner
NewClaudeSpawner creates a new Claude CLI agent spawner.
func (*ClaudeSpawner) Cancel ¶
func (s *ClaudeSpawner) Cancel(taskID string) error
Cancel stops a running agent.
func (*ClaudeSpawner) IsRunning ¶
func (s *ClaudeSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
func (*ClaudeSpawner) Pause ¶
func (s *ClaudeSpawner) Pause(taskID string) error
Pause stops a running agent without marking it as cancelled.
func (*ClaudeSpawner) RunningCount ¶
func (s *ClaudeSpawner) RunningCount() int
RunningCount returns the number of currently running processes.
func (*ClaudeSpawner) Shutdown ¶
func (s *ClaudeSpawner) Shutdown()
Shutdown cancels all running processes.
type CopilotSpawner ¶
type CopilotSpawner struct {
// contains filtered or unexported fields
}
CopilotSpawner manages Copilot CLI process spawning.
func NewCopilotSpawner ¶
func NewCopilotSpawner(logDir string, onComplete func(task *models.Task)) *CopilotSpawner
NewCopilotSpawner creates a new Copilot CLI agent spawner.
func (*CopilotSpawner) Cancel ¶
func (s *CopilotSpawner) Cancel(taskID string) error
Cancel stops a running agent.
func (*CopilotSpawner) GetProcess ¶
func (s *CopilotSpawner) GetProcess(taskID string) (*Process, bool)
GetProcess returns information about a running process.
func (*CopilotSpawner) IsRunning ¶
func (s *CopilotSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
func (*CopilotSpawner) Pause ¶
func (s *CopilotSpawner) Pause(taskID string) error
Pause stops a running agent without marking it as cancelled.
func (*CopilotSpawner) RunningCount ¶
func (s *CopilotSpawner) RunningCount() int
RunningCount returns the number of currently running processes.
func (*CopilotSpawner) Shutdown ¶
func (s *CopilotSpawner) Shutdown()
Shutdown cancels all running processes.
type GeminiMCPServer ¶
type GeminiMCPServer = mcpconv.GeminiServer
GeminiMCPServer represents a server entry in Gemini CLI format.
type GeminiProcess ¶
type GeminiProcess struct {
// contains filtered or unexported fields
}
GeminiProcess represents a running Gemini CLI process.
type GeminiSettings ¶
type GeminiSettings = mcpconv.GeminiSettings
GeminiSettings represents the Gemini CLI settings format.
type GeminiSpawner ¶
type GeminiSpawner struct {
// contains filtered or unexported fields
}
GeminiSpawner manages Gemini CLI process spawning.
func NewGeminiSpawner ¶
func NewGeminiSpawner(logDir string, onComplete func(task *models.Task)) *GeminiSpawner
NewGeminiSpawner creates a new Gemini CLI agent spawner.
func (*GeminiSpawner) Cancel ¶
func (s *GeminiSpawner) Cancel(taskID string) error
Cancel stops a running agent.
func (*GeminiSpawner) IsRunning ¶
func (s *GeminiSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
func (*GeminiSpawner) Pause ¶
func (s *GeminiSpawner) Pause(taskID string) error
Pause stops a running agent without marking it as cancelled.
func (*GeminiSpawner) RunningCount ¶
func (s *GeminiSpawner) RunningCount() int
RunningCount returns the number of currently running processes.
func (*GeminiSpawner) Shutdown ¶
func (s *GeminiSpawner) Shutdown()
Shutdown cancels all running processes.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager coordinates multiple engine spawners.
func NewManager ¶
func NewManager(cfg *mesnadaconfig.Config, logDir string, onComplete func(task *models.Task)) *Manager
NewManager creates a new agent manager.
func (*Manager) ACPSessionControl ¶
ACPSessionControl sends a control command to an active ACP session. This method is part of Phase 5 API but the actual implementation will be completed in Phase 6 (ACP Client Enhancement).
func (*Manager) CleanupTask ¶
CleanupTask removes the engine tracking for a completed task.
func (*Manager) GetProcess ¶
GetProcess returns information about a running process (legacy support).
func (*Manager) RunningCount ¶
RunningCount returns the total number of currently running processes.
type MesnadaMCPConfig ¶
type MesnadaMCPConfig = mcpconv.CanonicalConfig
MesnadaMCPConfig represents the Mesnada MCP configuration format.
type MesnadaMCPServer ¶
type MesnadaMCPServer = mcpconv.CanonicalServer
MesnadaMCPServer represents a server entry in Mesnada format.
type MistralProcess ¶
type MistralProcess struct {
// contains filtered or unexported fields
}
MistralProcess represents a running Mistral Vibe CLI process.
type MistralSpawner ¶
type MistralSpawner struct {
// contains filtered or unexported fields
}
MistralSpawner manages Mistral Vibe CLI process spawning.
func NewMistralSpawner ¶
func NewMistralSpawner(logDir string, onComplete func(task *models.Task)) *MistralSpawner
NewMistralSpawner creates a new Mistral Vibe CLI agent spawner.
func (*MistralSpawner) Cancel ¶
func (s *MistralSpawner) Cancel(taskID string) error
Cancel stops a running agent.
func (*MistralSpawner) IsRunning ¶
func (s *MistralSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
func (*MistralSpawner) Pause ¶
func (s *MistralSpawner) Pause(taskID string) error
Pause stops a running agent without marking it as cancelled.
func (*MistralSpawner) RunningCount ¶
func (s *MistralSpawner) RunningCount() int
RunningCount returns the number of currently running processes.
func (*MistralSpawner) Shutdown ¶
func (s *MistralSpawner) Shutdown()
Shutdown cancels all running processes.
type OllamaClaudeProcess ¶
type OllamaClaudeProcess struct {
// contains filtered or unexported fields
}
OllamaClaudeProcess represents a running Ollama Claude CLI process.
type OllamaClaudeSpawner ¶
type OllamaClaudeSpawner struct {
// contains filtered or unexported fields
}
OllamaClaudeSpawner manages Ollama Claude CLI process spawning.
func NewOllamaClaudeSpawner ¶
func NewOllamaClaudeSpawner(logDir string, onComplete func(task *models.Task)) *OllamaClaudeSpawner
NewOllamaClaudeSpawner creates a new Ollama Claude CLI agent spawner.
func (*OllamaClaudeSpawner) Cancel ¶
func (s *OllamaClaudeSpawner) Cancel(taskID string) error
Cancel stops a running process.
func (*OllamaClaudeSpawner) Cleanup ¶
func (s *OllamaClaudeSpawner) Cleanup() error
Cleanup performs cleanup operations for the spawner.
func (*OllamaClaudeSpawner) GetOutput ¶
func (s *OllamaClaudeSpawner) GetOutput(taskID string) (string, error)
GetOutput returns the current output of a running task.
func (*OllamaClaudeSpawner) IsRunning ¶
func (s *OllamaClaudeSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
type OllamaOpenCodeProcess ¶
type OllamaOpenCodeProcess struct {
// contains filtered or unexported fields
}
OllamaOpenCodeProcess represents a running Ollama OpenCode CLI process.
type OllamaOpenCodeSpawner ¶
type OllamaOpenCodeSpawner struct {
// contains filtered or unexported fields
}
OllamaOpenCodeSpawner manages Ollama OpenCode CLI process spawning.
func NewOllamaOpenCodeSpawner ¶
func NewOllamaOpenCodeSpawner(logDir string, onComplete func(task *models.Task)) *OllamaOpenCodeSpawner
NewOllamaOpenCodeSpawner creates a new Ollama OpenCode CLI agent spawner.
func (*OllamaOpenCodeSpawner) Cancel ¶
func (s *OllamaOpenCodeSpawner) Cancel(taskID string) error
Cancel stops a running process.
func (*OllamaOpenCodeSpawner) Cleanup ¶
func (s *OllamaOpenCodeSpawner) Cleanup() error
Cleanup performs cleanup operations for the spawner.
func (*OllamaOpenCodeSpawner) GetOutput ¶
func (s *OllamaOpenCodeSpawner) GetOutput(taskID string) (string, error)
GetOutput returns the current output of a running task.
func (*OllamaOpenCodeSpawner) IsRunning ¶
func (s *OllamaOpenCodeSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
type OpenCodeMCPConfig ¶
type OpenCodeMCPConfig = mcpconv.OpenCodeConfig
OpenCodeMCPConfig represents the OpenCode.ai MCP configuration format.
type OpenCodeMCPServer ¶
type OpenCodeMCPServer = mcpconv.OpenCodeServer
OpenCodeMCPServer represents a server entry in OpenCode.ai format.
type OpenCodeProcess ¶
type OpenCodeProcess struct {
// contains filtered or unexported fields
}
OpenCodeProcess represents a running OpenCode CLI process.
type OpenCodeSpawner ¶
type OpenCodeSpawner struct {
// contains filtered or unexported fields
}
OpenCodeSpawner manages OpenCode.ai CLI process spawning.
func NewOpenCodeSpawner ¶
func NewOpenCodeSpawner(logDir string, onComplete func(task *models.Task)) *OpenCodeSpawner
NewOpenCodeSpawner creates a new OpenCode.ai CLI agent spawner.
func (*OpenCodeSpawner) Cancel ¶
func (s *OpenCodeSpawner) Cancel(taskID string) error
Cancel stops a running agent.
func (*OpenCodeSpawner) IsRunning ¶
func (s *OpenCodeSpawner) IsRunning(taskID string) bool
IsRunning checks if a task is currently running.
func (*OpenCodeSpawner) Pause ¶
func (s *OpenCodeSpawner) Pause(taskID string) error
Pause stops a running agent without marking it as cancelled.
func (*OpenCodeSpawner) RunningCount ¶
func (s *OpenCodeSpawner) RunningCount() int
RunningCount returns the number of currently running processes.
func (*OpenCodeSpawner) Shutdown ¶
func (s *OpenCodeSpawner) Shutdown()
Shutdown cancels all running processes.
type Process ¶
type Process struct {
// contains filtered or unexported fields
}
Process represents a running Copilot CLI process.
type Spawner ¶
type Spawner interface {
// Spawn starts a new agent process.
Spawn(ctx context.Context, task *models.Task) error
// Cancel stops a running agent.
Cancel(taskID string) error
// Pause stops a running agent without marking it as cancelled.
Pause(taskID string) error
// Wait blocks until a task completes or context is cancelled.
Wait(ctx context.Context, taskID string) error
// IsRunning checks if a task is currently running.
IsRunning(taskID string) bool
// RunningCount returns the number of currently running processes.
RunningCount() int
// Shutdown cancels all running processes.
Shutdown()
}
Spawner defines the interface for spawning and managing CLI agent processes.
type VSCodeMCPConfig ¶
type VSCodeMCPConfig = mcpconv.VSCodeConfig
VSCodeMCPConfig represents VS Code .vscode/mcp.json format.
type VSCodeMCPServer ¶
type VSCodeMCPServer = mcpconv.VSCodeServer
VSCodeMCPServer represents a server entry in VS Code format.