Module: AgentHarness::SubAgentTranslator

Defined in:
lib/agent_harness/sub_agent_translator.rb

Overview

Translates canonical sub-agent definitions into provider-specific formats.

Class Method Summary collapse

Class Method Details

.for_provider(provider, sub_agent_config, tool_registry: AgentHarness.configuration.tool_registry, mcp_servers: AgentHarness.configuration.mcp_servers) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/agent_harness/sub_agent_translator.rb', line 9

def for_provider(provider, sub_agent_config, tool_registry: AgentHarness.configuration.tool_registry,
  mcp_servers: AgentHarness.configuration.mcp_servers)
  config = normalize_sub_agent_config(sub_agent_config)
  normalized_provider = normalize_provider(provider)
  tools = resolve_tools(config.tools, provider: normalized_provider, tool_registry: tool_registry)
  servers = resolve_mcp_servers(config.mcp_servers, mcp_servers: mcp_servers)

  case normalized_provider
  when :anthropic
    translate_for_anthropic(config, tools: tools, mcp_servers: servers)
  when :openai
    translate_for_openai(config, tools: tools, mcp_servers: servers)
  when :google
    translate_for_google(config, tools: tools, mcp_servers: servers)
  when :claude_code
    translate_for_claude_code(config, tools: tools, mcp_servers: servers)
  when :codex
    translate_for_codex(config, tools: tools, mcp_servers: servers)
  when :pi
    translate_for_pi(config, tools: tools, mcp_servers: servers)
  else
    translate_generic(normalized_provider, config, tools: tools, mcp_servers: servers)
  end
end