Class: AIA::TaskExecutor

Inherits:
Object
  • Object
show all
Includes:
ContentExtractor
Defined in:
lib/aia/task_executor.rb

Instance Method Summary collapse

Methods included from ContentExtractor

#extract_content, #extract_network_content, #format_duration, #output_to_file, #present_result, #store_results_in_memory

Constructor Details

#initialize(task_coordinator:) ⇒ TaskExecutor

Returns a new instance of TaskExecutor.



13
14
15
# File 'lib/aia/task_executor.rb', line 13

def initialize(task_coordinator:)
  @coordinator = task_coordinator
end

Instance Method Details

#execute(task, robot, step_def, prompt, prior_results) ⇒ String

Execute a single task step against the assigned robot.

Parameters:

  • task (Object)

    TrakFlow task object (responds to #id)

  • robot (RobotLab::Robot)

    the assigned robot

  • step_def (Hash)

    step definition with :title

  • prompt (String)

    the original user prompt

  • prior_results (Array<Hash>)

    results from previous steps

Returns:

  • (String)

    the robot's response content



25
26
27
28
29
30
31
32
33
34
# File 'lib/aia/task_executor.rb', line 25

def execute(task, robot, step_def, prompt, prior_results)
  @coordinator.claim_task(task.id, robot.name)

  context = build_step_context(prompt, step_def[:title], prior_results)
  result  = robot.run(context, mcp: :inherit, tools: :inherit)
  content = extract_content(result)

  @coordinator.complete_task(task.id, result: content[0, 200], robot_name: robot.name)
  content
end