From 63bc4721e38cd3743495cd068d52eed7d9747dae Mon Sep 17 00:00:00 2001 From: Maya Walcher Date: Tue, 17 Feb 2026 21:46:32 -0500 Subject: [PATCH] feat(onboard): add signup URL, model catalog, and live fetch for Astrai Add three onboarding improvements for the Astrai provider: - Signup URL: users now see "Get your API key at: https://as-trai.com" during onboarding instead of a blank prompt - Curated model list: auto (best execution), GPT-4o, Claude Sonnet 4.5, DeepSeek V3, Llama 3.3 70B - Live model fetch: Astrai's OpenAI-compatible /v1/models endpoint is now queried when an API key is present, matching other providers Co-Authored-By: Claude Opus 4.6 --- src/onboard/wizard.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/onboard/wizard.rs b/src/onboard/wizard.rs index cbb2cb5..df71d58 100644 --- a/src/onboard/wizard.rs +++ b/src/onboard/wizard.rs @@ -776,6 +776,7 @@ fn supports_live_model_fetch(provider_name: &str) -> bool { | "together-ai" | "gemini" | "ollama" + | "astrai" ) } @@ -1023,6 +1024,9 @@ fn fetch_live_models_for_provider(provider_name: &str, api_key: &str) -> Result< ] } } + "astrai" => { + fetch_openai_compatible_models("https://as-trai.com/v1/models", api_key.as_deref())? + } _ => Vec::new(), }; @@ -1654,6 +1658,7 @@ fn setup_provider(workspace_dir: &Path) -> Result<(String, String, String, Optio "nvidia" | "nvidia-nim" | "build.nvidia.com" => "https://build.nvidia.com/", "bedrock" => "https://console.aws.amazon.com/iam", "gemini" => "https://aistudio.google.com/app/apikey", + "astrai" => "https://as-trai.com", _ => "", } }; @@ -1819,6 +1824,16 @@ fn setup_provider(workspace_dir: &Path) -> Result<(String, String, String, Optio ("gemini-1.5-pro", "Gemini 1.5 Pro (best quality)"), ("gemini-1.5-flash", "Gemini 1.5 Flash (balanced)"), ], + "astrai" => vec![ + ("auto", "Auto — Astrai best execution routing (recommended)"), + ("gpt-4o", "GPT-4o (OpenAI via Astrai)"), + ( + "claude-sonnet-4.5", + "Claude Sonnet 4.5 (Anthropic via Astrai)", + ), + ("deepseek-v3", "DeepSeek V3 (best value via Astrai)"), + ("llama-3.3-70b", "Llama 3.3 70B (open source via Astrai)"), + ], _ => vec![("default", "Default model")], }; @@ -4634,6 +4649,7 @@ mod tests { assert!(supports_live_model_fetch("grok")); assert!(supports_live_model_fetch("together")); assert!(supports_live_model_fetch("ollama")); + assert!(supports_live_model_fetch("astrai")); assert!(!supports_live_model_fetch("venice")); }