Class: Ace::Support::Models::CLI::Commands::Providers::List

Inherits:
Cli::Command
  • Object
show all
Includes:
Cli::Base
Defined in:
lib/ace/support/models/cli/commands/providers/list.rb

Overview

List all providers with model counts

Instance Method Summary collapse

Instance Method Details

#call(**options) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ace/support/models/cli/commands/providers/list.rb', line 19

def call(**options)
  cache_manager = Molecules::CacheManager.new

  unless cache_manager.cached?
    raise Ace::Support::Cli::Error.new("No cache data. Run 'ace-models sync' first.")
  end

  providers = cache_manager.list_providers

  if options[:json]
    puts JSON.pretty_generate(providers)
    return
  end

  puts "Providers (#{providers.size}):"
  providers.sort_by { |p| -p[:model_count] }.each do |provider|
    puts "  #{provider[:id]}: #{provider[:model_count]} models"
  end
rescue CacheError => e
  raise Ace::Support::Cli::Error.new(e.message)
end