Module: Deja::Adapters

Defined in:
lib/deja/adapters/base.rb,
lib/deja/adapters/anthropic.rb

Overview

Adapters teach Deja how to talk to one LLM provider: the stub client’s shape, how to (de)serialize a response, and how to build a real client. The cache, hashing, and matcher are all provider-agnostic and live elsewhere.

Defined Under Namespace

Classes: Anthropic, Base

Class Method Summary collapse

Class Method Details

.build(provider, key:, install:, real_client:) ⇒ Object



18
19
20
21
22
23
# File 'lib/deja/adapters/base.rb', line 18

def build(provider, key:, install:, real_client:)
  klass = @registered.fetch(provider) do
    raise Deja::Error, "Unknown provider #{provider.inspect}. Registered: #{@registered.keys.inspect}"
  end
  klass.new(key:, install:, real_client:)
end

.register_type(name, klass) ⇒ Object

Built-in adapter classes register themselves by provider name, so ‘c.register :anthropic, …` knows which class to build. A new provider is purely additive: a new Base subclass + one register_type call.



14
15
16
# File 'lib/deja/adapters/base.rb', line 14

def register_type(name, klass)
  @registered[name] = klass
end