Module: AgentHarness::Providers::Adapter::ClassMethods

Defined in:
lib/agent_harness/providers/adapter.rb

Overview

Class methods that all providers must implement

Instance Method Summary collapse

Instance Method Details

#available?Boolean

Check if provider CLI is available on the system

Returns:

  • (Boolean)

    true if the CLI is installed and accessible

Raises:

  • (NotImplementedError)


35
36
37
# File 'lib/agent_harness/providers/adapter.rb', line 35

def available?
  raise NotImplementedError, "#{self} must implement .available?"
end

#binary_nameString

CLI binary name

Returns:

  • (String)

    the name of the CLI binary

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/agent_harness/providers/adapter.rb', line 42

def binary_name
  raise NotImplementedError, "#{self} must implement .binary_name"
end

#discover_modelsArray<Hash>

Discover available models

Returns:

  • (Array<Hash>)

    list of available models



63
64
65
# File 'lib/agent_harness/providers/adapter.rb', line 63

def discover_models
  []
end

#firewall_requirementsHash

Required domains for firewall configuration

Returns:

  • (Hash)

    with :domains and :ip_ranges arrays



49
50
51
# File 'lib/agent_harness/providers/adapter.rb', line 49

def firewall_requirements
  {domains: [], ip_ranges: []}
end

#instruction_file_pathsArray<Hash>

Paths to instruction files (e.g., CLAUDE.md, .cursorrules)

Returns:

  • (Array<Hash>)

    instruction file configurations



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

def instruction_file_paths
  []
end

#provider_nameSymbol

Human-readable provider name

Returns:

  • (Symbol)

    unique identifier for this provider

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/agent_harness/providers/adapter.rb', line 28

def provider_name
  raise NotImplementedError, "#{self} must implement .provider_name"
end