Module: Ask::LLM::Aliases

Defined in:
lib/ask/llm/aliases.rb

Overview

Resolves model name aliases to canonical model IDs.

Aliases are defined in aliases.json and allow users to refer to models by shorter or more familiar names. Resolution is provider-scoped — you can alias "claude-sonnet-4" to different canonical IDs depending on which provider serves it.

Ask::LLM::Aliases.resolve("claude-sonnet-4")
# => "claude-sonnet-4-6"

Aliases are loaded lazily from the bundled JSON file.

Constant Summary collapse

ALIASES_PATH =
File.expand_path("aliases.json", __dir__)

Class Method Summary collapse

Class Method Details

.allObject

All registered aliases (for introspection).



42
43
44
45
# File 'lib/ask/llm/aliases.rb', line 42

def all
  load_aliases unless @aliases
  @aliases.dup
end

.register(short_name, canonical_id) ⇒ Object

Register a custom alias at runtime.



30
31
32
33
# File 'lib/ask/llm/aliases.rb', line 30

def register(short_name, canonical_id)
  load_aliases unless @aliases
  @aliases[short_name.to_s] = canonical_id.to_s
end

.reload!Object

Reload aliases from the bundled JSON file.



36
37
38
39
# File 'lib/ask/llm/aliases.rb', line 36

def reload!
  @aliases = nil
  load_aliases
end

.resolve(name) ⇒ Object

Resolve an alias to a canonical model ID. Returns the input name unchanged if no alias is registered.



24
25
26
27
# File 'lib/ask/llm/aliases.rb', line 24

def resolve(name)
  load_aliases unless @aliases
  @aliases[name.to_s] || name.to_s
end