Class: RobotLab::To::PromptBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/robot_lab/to/prompt_builder.rb

Overview

Builds the per-iteration system prompt injected into each robot.

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PromptBuilder

Returns a new instance of PromptBuilder.



7
8
9
# File 'lib/robot_lab/to/prompt_builder.rb', line 7

def initialize(config)
  @config = config
end

Instance Method Details

#build(run, notes_content, workspace: nil, pending_commit_failure: nil, resolved_decisions: []) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/robot_lab/to/prompt_builder.rb', line 11

def build(run, notes_content, workspace: nil, pending_commit_failure: nil, resolved_decisions: [])
  sections = [role_section(run), notes_section(run, notes_content)]
  sections << workspace_section(workspace) if workspace && !workspace.empty?
  sections << decisions_answered_section(resolved_decisions) if resolved_decisions && !resolved_decisions.empty?
  sections << task_section
  sections << score_feedback_section(run)
  sections << verify_section if @config.verify_command
  sections << decision_guidance_section if @config.decisions_enabled?
  sections << submit_section
  sections << repair_section(pending_commit_failure) if pending_commit_failure
  sections << stop_when_section(@config.stop_when) if @config.stop_when
  sections.compact.join("\n\n")
end