Documentation
¶
Overview ¶
Package processor provides the main orchestration loop for ralphex execution.
Index ¶
Constants ¶
const ( SignalCompleted = status.Completed SignalFailed = status.Failed SignalReviewDone = status.ReviewDone SignalCodexDone = status.CodexDone SignalQuestion = status.Question SignalPlanReady = status.PlanReady SignalPlanDraft = status.PlanDraft )
signal constants are aliases to the shared status package for convenience within processor. all signal values are defined in pkg/status to avoid circular dependencies.
const DefaultIterationDelay = 2 * time.Second
DefaultIterationDelay is the pause between iterations to allow system to settle.
Variables ¶
var ErrUserAborted = errors.New("user aborted")
ErrUserAborted is a sentinel error returned when the user aborts or declines to resume after a break signal (Ctrl+\). it is propagated as a non-nil error so that callers (including mode entrypoints) can detect it and treat it as a clean user-initiated exit, avoiding further review/finalize steps.
var ErrUserRejectedPlan = errors.New("user rejected plan")
ErrUserRejectedPlan is returned when user rejects the plan draft.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
PlanFile string // path to plan file (required for full mode)
PlanDescription string // plan description for interactive plan creation mode
ProgressPath string // path to progress file
Mode Mode // execution mode
MaxIterations int // maximum iterations for task phase
MaxExternalIterations int // override external review iteration limit (0 = auto)
ReviewPatience int // terminate external review after N unchanged rounds (0 = disabled)
Debug bool // enable debug output
NoColor bool // disable color output
IterationDelayMs int // delay between iterations in milliseconds
TaskRetryCount int // number of times to retry failed tasks
CodexEnabled bool // whether codex review is enabled
FinalizeEnabled bool // whether finalize step is enabled
DefaultBranch string // default branch name (detected from repo)
AppConfig *config.Config // full application config (for executors and prompts)
}
Config holds runner configuration.
type Executors ¶ added in v0.23.0
type Executors struct {
Claude Executor
Codex Executor
Custom *executor.CustomExecutor
}
Executors groups the executor dependencies for the Runner.
type GitChecker ¶ added in v0.9.0
GitChecker provides git state inspection for the review loop.
type InputCollector ¶ added in v0.4.0
type InputCollector interface {
AskQuestion(ctx context.Context, question string, options []string) (string, error)
AskDraftReview(ctx context.Context, question string, planContent string) (action string, feedback string, err error)
}
InputCollector provides interactive input collection for plan creation.
type Logger ¶
type Logger interface {
Print(format string, args ...any)
PrintRaw(format string, args ...any)
PrintSection(section status.Section)
PrintAligned(text string)
LogQuestion(question string, options []string)
LogAnswer(answer string)
LogDraftReview(action string, feedback string)
Path() string
}
Logger provides logging functionality.
type Mode ¶
type Mode string
Mode represents the execution mode.
const ( ModeFull Mode = "full" // full execution: tasks + reviews + codex ModeReview Mode = "review" // skip tasks, run full review pipeline ModeCodexOnly Mode = "codex-only" // skip tasks and first review, run only codex loop ModeTasksOnly Mode = "tasks-only" // run only task phase, skip all reviews ModePlan Mode = "plan" // interactive plan creation mode )
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner orchestrates the execution loop.
func New ¶
func New(cfg Config, log Logger, holder *status.PhaseHolder) *Runner
New creates a new Runner with the given configuration and shared phase holder. If codex is enabled but the binary is not found in PATH, it is automatically disabled with a warning.
func NewWithExecutors ¶
NewWithExecutors creates a new Runner with custom executors (for testing).
func (*Runner) SetBreakCh ¶ added in v0.20.0
func (r *Runner) SetBreakCh(ch <-chan struct{})
SetBreakCh sets the break channel for manual termination of review and task loops. each value sent on the channel triggers one break event (repeatable, not close-based).
func (*Runner) SetGitChecker ¶ added in v0.9.0
func (r *Runner) SetGitChecker(g GitChecker)
SetGitChecker sets the git checker for no-commit detection in review loops.
func (*Runner) SetInputCollector ¶ added in v0.4.0
func (r *Runner) SetInputCollector(c InputCollector)
SetInputCollector sets the input collector for plan creation mode.
func (*Runner) SetPauseHandler ¶ added in v0.26.0
SetPauseHandler sets the callback invoked when a break signal is received during task iteration. the handler should prompt the user and return true to resume or false to abort. if nil, break during task phase returns ErrUserAborted immediately.