Class: XAeonAgents::Agents::TesterAgent

Inherits:
ComposableAgents::Cline::Agent
  • Object
show all
Includes:
XAeonAgents::AgentDefaults
Defined in:
lib/x_aeon_agents/agents/tester_agent.rb

Overview

Agent responsible for fixing regressions induced by new features or fixes, while keeping initial requirements and implementation plan in mind. If decisions in the implementation plan prevent fixing regressions, modify the implementation plan and report those modifications.

Instance Method Summary collapse

Methods included from XAeonAgents::AgentDefaults

#new_agent, prepended, singleton_session_id

Constructor Details

#initialize(**agent_params) ⇒ TesterAgent

Constructor

Parameters:

  • agent_params (Hash{Symbol => Object})

    Extra agent parameters



32
33
34
35
36
37
38
39
40
41
# File 'lib/x_aeon_agents/agents/tester_agent.rb', line 32

def initialize(**agent_params)
  super(
    name: 'Tester',
    objective: <<~EO_OBJECTIVE,
      Fix any regression that has been induced by new features or fixes, while keeping the initial requirements and implementation plan in mind.
      If the decisions taken in the implementation plan prevent you from fixing regressions, modify the implementation plan and report those modifications to the user.
    EO_OBJECTIVE
    **agent_params
  )
end

Instance Method Details

#input_artifacts_contractsHash{Symbol => Object}

Define input artifacts contracts

Returns:

  • (Hash{Symbol => Object})

    Set of input artifacts description, per artifact name



11
12
13
14
15
16
17
18
19
20
# File 'lib/x_aeon_agents/agents/tester_agent.rb', line 11

def input_artifacts_contracts
  super.merge(
    requirements: 'The initial requirements',
    plan: 'The implementation plan devised from the requirements',
    files_diffs: 'The full list of files changes and differences that have been done to implement the initial ' \
      'requirements following the implementation plan',
    tests_output: 'The output of running the whole tests suite',
    tests_cmd: 'The command line to be used to run the whole tests suite'
  )
end

#output_artifacts_contractsHash{Symbol => Object}

Define output artifacts contracts

Returns:

  • (Hash{Symbol => Object})

    Set of output artifacts description, per artifact name



25
26
27
# File 'lib/x_aeon_agents/agents/tester_agent.rb', line 25

def output_artifacts_contracts
  super.merge(plan_modifications: 'The modification or divergence you considered from the implementation plan')
end