agent-orchestrator/backend/internal/domain/harness.go

52 lines
1.8 KiB
Go

package domain
// AgentHarness identifies which agent CLI/runtime a session drives.
type AgentHarness string
// Supported agent harnesses.
const (
HarnessClaudeCode AgentHarness = "claude-code"
HarnessCodex AgentHarness = "codex"
HarnessAider AgentHarness = "aider"
HarnessOpenCode AgentHarness = "opencode"
HarnessGrok AgentHarness = "grok"
HarnessDroid AgentHarness = "droid"
HarnessAmp AgentHarness = "amp"
HarnessAgy AgentHarness = "agy"
HarnessCrush AgentHarness = "crush"
HarnessCursor AgentHarness = "cursor"
HarnessQwen AgentHarness = "qwen"
HarnessCopilot AgentHarness = "copilot"
HarnessGoose AgentHarness = "goose"
HarnessAuggie AgentHarness = "auggie"
HarnessContinue AgentHarness = "continue"
HarnessDevin AgentHarness = "devin"
HarnessCline AgentHarness = "cline"
HarnessKimi AgentHarness = "kimi"
HarnessKiro AgentHarness = "kiro"
HarnessKilocode AgentHarness = "kilocode"
HarnessVibe AgentHarness = "vibe"
HarnessPi AgentHarness = "pi"
HarnessAutohand AgentHarness = "autohand"
)
// AllHarnesses lists every supported harness. It is the canonical set used to
// validate user-supplied harness names (e.g. per-project role overrides).
var AllHarnesses = []AgentHarness{
HarnessClaudeCode, HarnessCodex, HarnessAider, HarnessOpenCode, HarnessGrok,
HarnessDroid, HarnessAmp, HarnessAgy, HarnessCrush, HarnessCursor, HarnessQwen,
HarnessCopilot, HarnessGoose, HarnessAuggie, HarnessContinue, HarnessDevin,
HarnessCline, HarnessKimi, HarnessKiro, HarnessKilocode, HarnessVibe, HarnessPi,
HarnessAutohand,
}
// IsKnown reports whether h is one of the supported harnesses.
func (h AgentHarness) IsKnown() bool {
for _, k := range AllHarnesses {
if h == k {
return true
}
}
return false
}