package domain import "time" // CommandID is a strongly-typed identifier for commands. type CommandID string // CommandType represents the type of command being executed. type CommandType string const ( CommandTypeClaude CommandType = "claude" CommandTypeShell CommandType = "shell" CommandTypeGit CommandType = "git" ) // Command represents a command to execute in a project's pod. type Command struct { ID CommandID ProjectID ProjectID Type CommandType Args []string StartedAt time.Time } // CommandResult represents the outcome of command execution. type CommandResult struct { CommandID CommandID ExitCode int DurationMs int64 Error error } // Success returns true if the command completed successfully. func (r *CommandResult) Success() bool { return r.Error == nil && r.ExitCode == 0 } // OutputLine represents a single line of command output. type OutputLine struct { Stream string // "stdout" or "stderr" Line string Timestamp time.Time } // OutputHandler is called for each line of output from a command. type OutputHandler func(line OutputLine)