Class: Ace::LLM::Providers::CLI::AgyClient
- Inherits:
-
Organisms::BaseClient
- Object
- Organisms::BaseClient
- Ace::LLM::Providers::CLI::AgyClient
- Includes:
- CliArgsSupport
- Defined in:
- lib/ace/llm/providers/cli/agy_client.rb
Overview
Client for interacting with Antigravity CLI
Constant Summary collapse
- API_BASE_URL =
"https://antigravity.google"- DEFAULT_GENERATION_CONFIG =
{}.freeze
- DEFAULT_MODEL =
"gemini-3.5-flash-medium"- DEFAULT_MAX_PROMPT_LENGTH =
100_000
Class Method Summary collapse
Instance Method Summary collapse
- #generate(messages, **options) ⇒ Object
-
#initialize(model: nil, **options) ⇒ AgyClient
constructor
A new instance of AgyClient.
- #list_models ⇒ Object
- #needs_credentials? ⇒ Boolean
Constructor Details
#initialize(model: nil, **options) ⇒ AgyClient
Returns a new instance of AgyClient.
21 22 23 24 25 |
# File 'lib/ace/llm/providers/cli/agy_client.rb', line 21 def initialize(model: nil, **) @model = model || DEFAULT_MODEL @options = @generation_config = [:generation_config] || {} end |
Class Method Details
.provider_name ⇒ Object
27 28 29 |
# File 'lib/ace/llm/providers/cli/agy_client.rb', line 27 def self.provider_name "agy" end |
Instance Method Details
#generate(messages, **options) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/ace/llm/providers/cli/agy_client.rb', line 47 def generate(, **) validate_agy_availability! () prompt = ((, )) prompt = build_full_prompt(prompt, ) subprocess_env = [:subprocess_env] working_dir = Atoms::ExecutionContext.resolve_working_dir( working_dir: [:working_dir], subprocess_env: subprocess_env ) cmd = build_agy_command(prompt, ) stdout, stderr, status = execute_agy_command(cmd, working_dir: working_dir, options: ) parse_agy_response(stdout, stderr, status, prompt) rescue => e handle_agy_error(e) end |
#list_models ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/ace/llm/providers/cli/agy_client.rb', line 35 def list_models [ {id: "gemini-3.7-flash-high", name: "Gemini 3.7 Flash (High)", context_size: 1_000_000}, {id: "gemini-3.7-flash-medium", name: "Gemini 3.7 Flash (Medium)", context_size: 1_000_000}, {id: "gemini-3.6-flash-high", name: "Gemini 3.6 Flash (High)", context_size: 1_000_000}, {id: "gemini-3.6-flash-medium", name: "Gemini 3.6 Flash (Medium)", context_size: 1_000_000}, {id: "gemini-3.5-flash-medium", name: "Gemini 3.5 Flash (Medium)", context_size: 1_000_000}, {id: "gemini-3.1-pro-high", name: "Gemini 3.1 Pro (High)", context_size: 1_000_000}, {id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6 (Thinking)", context_size: 200_000} ] end |
#needs_credentials? ⇒ Boolean
31 32 33 |
# File 'lib/ace/llm/providers/cli/agy_client.rb', line 31 def needs_credentials? false end |