Class: Ocak::PipelineExecutor
- Inherits:
-
Object
- Object
- Ocak::PipelineExecutor
- Includes:
- Planner, Verification
- Defined in:
- lib/ocak/pipeline_executor.rb
Defined Under Namespace
Classes: StepContext
Constant Summary
Constants included from Planner
Instance Method Summary collapse
-
#initialize(config:) ⇒ PipelineExecutor
constructor
A new instance of PipelineExecutor.
- #run_pipeline(issue_number, logger:, claude:, chdir: nil, skip_steps: [], complexity: 'full') ⇒ Object
Methods included from Planner
#build_step_prompt, #parse_planner_output, #plan_batches, #sequential_batches
Methods included from Verification
#lint_extensions_for, #run_final_checks, #run_scoped_lint
Constructor Details
#initialize(config:) ⇒ PipelineExecutor
Returns a new instance of PipelineExecutor.
15 16 17 |
# File 'lib/ocak/pipeline_executor.rb', line 15 def initialize(config:) @config = config end |
Instance Method Details
#run_pipeline(issue_number, logger:, claude:, chdir: nil, skip_steps: [], complexity: 'full') ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ocak/pipeline_executor.rb', line 19 def run_pipeline(issue_number, logger:, claude:, chdir: nil, skip_steps: [], complexity: 'full') chdir ||= @config.project_dir logger.info("=== Starting pipeline for issue ##{issue_number} (#{complexity}) ===") state = { last_review_output: nil, had_fixes: false, completed_steps: [], total_cost: 0.0, complexity: complexity } failure = run_pipeline_steps(issue_number, state, logger: logger, claude: claude, chdir: chdir, skip_steps: skip_steps) log_cost_summary(state[:total_cost], logger) return failure if failure failure = run_final_verification(logger: logger, claude: claude, chdir: chdir) return failure if failure pipeline_state.delete(issue_number) logger.info("=== Pipeline complete for issue ##{issue_number} ===") { success: true, output: 'Pipeline completed successfully' } end |