feat: poolside

This commit is contained in:
2026-10-19 15:59:24 -04:00
parent d11c2d2589
commit b9daf9d6bf
2 changed files with 21 additions and 2 deletions

View File

@@ -75,6 +75,9 @@ pub struct AppArgs {
#[arg(long)]
pub openrouter_api_key: Vec<SecretString>,
#[arg(long)]
pub poolside_api_key: Vec<SecretString>,
#[arg(long)]
pub vercel_ai_gateway_api_key: Vec<SecretString>,

View File

@@ -99,6 +99,7 @@ enum Provider {
Ollama,
OpenCode,
OpenRouter,
Poolside,
VercelAiGateway,
ZAi,
}
@@ -111,15 +112,17 @@ impl Shortcut {
match self {
S::XS => vec![
(P::GoogleAiStudio, "gemini-3.5-flash-lite".into()),
(P::NovitaAi, "apodex/apodex-1.1-mini".into()),
(P::OpenRouter, "apodex/apodex-1.1-mini:free".into()),
(P::VercelAiGateway, "openai/gpt-5.4-nano".into()),
(P::HuggingFace, "Qwen/Qwen3.6-35B-A3B".into()),
(P::OpenRouter, "xingchen-agi/xing4.0-29b-a4b:free".into()),
(P::NovitaAi, "apodex/apodex-1.1-mini".into()),
(P::OpenRouter, "apodex/apodex-1.1-mini:free".into()),
(P::VercelAiGateway, "liquid/lfm2.5-24b-a2b".into()),
(P::GoogleAiStudio, "gemma-4-26b-a4b-it".into()),
(P::OpenRouter, "google/gemma-4-26b-a4b-it:free".into()),
(P::Kilo, "google-gemma-4-26b-a4b-it-free".into()),
(P::HuggingFace, "google/gemma-4-26B-A4B-it".into()),
(P::Poolside, "poolside/laguna-xs-2.1".into()),
(P::NvidiaNim, "poolside/laguna-xs-2.1".into()),
(P::OpenRouter, "poolside/laguna-xs-2.1:free".into()),
(P::ZAi, "glm-4.7-flash".into()),
@@ -192,6 +195,7 @@ impl Shortcut {
(P::OpenRouter, "inclusionai/ling-3.0-flash-vl:free".into()),
(P::VercelAiGateway, "inclusionai/ling-3.0-flash-vl".into()),
(P::VercelAiGateway, "poolside/laguna-s-2.1-free".into()),
(P::Poolside, "poolside/laguna-s-2.1".into()),
(P::Kilo, "poolside-laguna-s-2-1-free".into()),
(P::OpenRouter, "poolside/laguna-s-2.1:free".into()),
(P::VercelAiGateway, "stepfun/step-3.7-flash".into()),
@@ -523,6 +527,18 @@ pub async fn create_chat_completion(
.build()
})
.collect(),
Provider::Poolside => state
.app_args
.poolside_api_key
.iter()
.cloned()
.map(|api_key| {
Upstream::builder()
.url("https://inference.poolside.ai/v1/chat/completions".parse().expect("TODO"))
.api_key(api_key)
.build()
})
.collect(),
Provider::VercelAiGateway => state
.app_args
.vercel_ai_gateway_api_key