Class: AgentHarness::Providers::Codex

Inherits:
Base
  • Object
show all
Defined in:
lib/agent_harness/providers/codex.rb

Overview

OpenAI Codex CLI provider

Provides integration with the OpenAI Codex CLI tool.

Instance Attribute Summary

Attributes inherited from Base

#config, #executor, #logger

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#configure, #initialize, #send_message

Methods included from Adapter

#dangerous_mode_flags, #error_patterns, #fetch_mcp_servers, #health_status, included, #send_message, #supports_dangerous_mode?, #supports_mcp?, #validate_config

Constructor Details

This class inherits a constructor from AgentHarness::Providers::Base

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


18
19
20
21
# File 'lib/agent_harness/providers/codex.rb', line 18

def available?
  executor = AgentHarness.configuration.command_executor
  !!executor.which(binary_name)
end

.binary_nameObject



14
15
16
# File 'lib/agent_harness/providers/codex.rb', line 14

def binary_name
  "codex"
end

.discover_modelsObject



43
44
45
46
47
48
49
# File 'lib/agent_harness/providers/codex.rb', line 43

def discover_models
  return [] unless available?

  [
    {name: "codex", family: "codex", tier: "standard", provider: "codex"}
  ]
end

.firewall_requirementsObject



23
24
25
26
27
28
29
30
31
# File 'lib/agent_harness/providers/codex.rb', line 23

def firewall_requirements
  {
    domains: [
      "api.openai.com",
      "openai.com"
    ],
    ip_ranges: []
  }
end

.instruction_file_pathsObject



33
34
35
36
37
38
39
40
41
# File 'lib/agent_harness/providers/codex.rb', line 33

def instruction_file_paths
  [
    {
      path: "AGENTS.md",
      description: "OpenAI Codex agent instructions",
      symlink: false
    }
  ]
end

.provider_nameObject



10
11
12
# File 'lib/agent_harness/providers/codex.rb', line 10

def provider_name
  :codex
end

Instance Method Details

#capabilitiesObject



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/agent_harness/providers/codex.rb', line 60

def capabilities
  {
    streaming: false,
    file_upload: false,
    vision: false,
    tool_use: true,
    json_mode: false,
    mcp: false,
    dangerous_mode: false
  }
end

#display_nameObject



56
57
58
# File 'lib/agent_harness/providers/codex.rb', line 56

def display_name
  "OpenAI Codex CLI"
end

#nameObject



52
53
54
# File 'lib/agent_harness/providers/codex.rb', line 52

def name
  "codex"
end

#session_flags(session_id) ⇒ Object



76
77
78
79
# File 'lib/agent_harness/providers/codex.rb', line 76

def session_flags(session_id)
  return [] unless session_id && !session_id.empty?
  ["--session", session_id]
end

#supports_sessions?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/agent_harness/providers/codex.rb', line 72

def supports_sessions?
  true
end