Class: LittleGhost::Providers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/little_ghost/providers/base.rb

Overview

Shared provider contract. Provider adapters implement #stream and may override capability-sensitive request preparation.

Direct Known Subclasses

Anthropic, Bedrock, Gemini, OpenAICompatible

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.request_optionsObject

Returns the trusted per-profile request options this adapter accepts. Connection options remain authoritative and are configured separately.



28
# File 'lib/little_ghost/providers/base.rb', line 28

def self.request_options = [].freeze

Instance Method Details

#capabilities(metadata: {}) ⇒ Object

Returns provider capabilities derived from normalized metadata.



41
42
43
# File 'lib/little_ghost/providers/base.rb', line 41

def capabilities(metadata: {})
  ModelCapabilities.unknown
end

#prepare_request(request, capabilities:) ⇒ Object

Applies provider-specific capability constraints before streaming.



36
37
38
# File 'lib/little_ghost/providers/base.rb', line 36

def prepare_request(request, capabilities:)
  request
end

#stream(_request) ⇒ Object

Streams normalized events for request.



31
32
33
# File 'lib/little_ghost/providers/base.rb', line 31

def stream(_request)
  raise AbstractMethodError, "#{self.class} must implement #stream"
end