Module: ActiveHarness::Pricing

Defined in:
lib/active_harness/pricing.rb,
lib/active_harness/pricing/models_dev.rb,
lib/active_harness/pricing/openrouter.rb

Overview

Pricing namespace — shared types and a facade over pricing source modules.

Sources (in priority order):

Pricing::OpenRouter  — live data from OpenRouter API  (image models, 24h cache)
Pricing::ModelsDev   — live data from models.dev API  (all providers, 24h cache)

Public facade delegates to ModelsDev (used as the general fallback):

Pricing.find("gpt-4o")       → ModelPrice or nil
Pricing.all                  → Array<ModelPrice>
Pricing.providers.openai     → Array<ModelPrice>
Pricing.update               → refreshes ModelsDev cache

Defined Under Namespace

Modules: ModelsDev, OpenRouter Classes: ModelPrice, ProvidersProxy

Class Method Summary collapse

Class Method Details

.allObject



119
120
121
# File 'lib/active_harness/pricing.rb', line 119

def all
  ModelsDev.all
end

.available_providersObject



147
148
149
# File 'lib/active_harness/pricing.rb', line 147

def available_providers
  ModelsDev.available_providers
end

.cache_fileObject



143
144
145
# File 'lib/active_harness/pricing.rb', line 143

def cache_file
  ModelsDev.cache_file
end

.find(model_id) ⇒ Object



115
116
117
# File 'lib/active_harness/pricing.rb', line 115

def find(model_id)
  ModelsDev.find(model_id)
end

.for_provider(name) ⇒ Object



127
128
129
# File 'lib/active_harness/pricing.rb', line 127

def for_provider(name)
  ModelsDev.for_provider(name)
end

.preload!Object

Eagerly fetch all pricing sources and load them into memory. Called at Rails startup. Network failures are silently ignored.



110
111
112
113
# File 'lib/active_harness/pricing.rb', line 110

def preload!
  ModelsDev.preload!
  OpenRouter.preload!
end

.provider_namesObject



131
132
133
# File 'lib/active_harness/pricing.rb', line 131

def provider_names
  ModelsDev.provider_names
end

.providersObject



123
124
125
# File 'lib/active_harness/pricing.rb', line 123

def providers
  ModelsDev.providers
end

.reload!Object



139
140
141
# File 'lib/active_harness/pricing.rb', line 139

def reload!
  ModelsDev.reload!
end

.updateObject



135
136
137
# File 'lib/active_harness/pricing.rb', line 135

def update
  ModelsDev.update
end