Module: Ask::CodingProviders

Defined in:
lib/ask/coding_providers.rb,
lib/ask/coding_providers/acp.rb,
lib/ask/coding_providers/codex.rb,
lib/ask/coding_providers/zcode.rb,
lib/ask/coding_providers/claude.rb,
lib/ask/coding_providers/adapter.rb,
lib/ask/coding_providers/version.rb,
lib/ask/coding_providers/ask_agent.rb,
lib/ask/coding_providers/acp/adapter.rb,
lib/ask/coding_providers/codex/adapter.rb,
lib/ask/coding_providers/claude/adapter.rb,
lib/ask/coding_providers/codex/codex_db.rb,
lib/ask/coding_providers/zcode/zcode_db.rb,
lib/ask/coding_providers/ask_agent/adapter.rb,
lib/ask/coding_providers/codex/app_server_client.rb

Defined Under Namespace

Modules: ACP, AskAgent, Claude, Codex, ZCode Classes: Adapter, ConfigurationError, ConnectionError, Error, TimeoutError

Constant Summary collapse

VERSION =
"0.3.2"

Class Method Summary collapse

Class Method Details

.build_adapter(name, **config) ⇒ Object

Build an adapter instance by name, passing config options. Each adapter's .from_config class method decides how to use the config.



42
43
44
# File 'lib/ask/coding_providers.rb', line 42

def build_adapter(name, **config)
  resolve_adapter(name).from_config(**config)
end

.register_adapter(name, klass) ⇒ Object

Register a coding adapter class under a name. Called automatically by adapter files when loaded.



25
26
27
# File 'lib/ask/coding_providers.rb', line 25

def register_adapter(name, klass)
  @adapter_registry[name.to_s] = klass
end

.resolve_adapter(name) ⇒ Object

Resolve an adapter class by name.

Raises:



31
32
33
34
35
36
37
38
# File 'lib/ask/coding_providers.rb', line 31

def resolve_adapter(name)
  @adapter_registry[name.to_s] || raise(
    ConfigurationError,
    "Unknown coding provider: #{name.inspect}. " \
    "Available: #{@adapter_registry.keys.join(', ')}. " \
    "Set CODING_PROVIDER in your environment."
  )
end