From 9c2a56e04292511a6efd6bdbe077ac82c1564374 Mon Sep 17 00:00:00 2001 From: Musa Date: Thu, 9 Jul 2026 12:58:57 -0700 Subject: [PATCH] add Meta Model API provider for Muse Spark 1.1 (#984) --- .github/workflows/update-providers.yml | 1 + crates/hermesllm/src/bin/fetch_models.rs | 9 ++++++++- crates/hermesllm/src/bin/provider_models.yaml | 8 +++++--- crates/hermesllm/src/providers/id.rs | 6 ++++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update-providers.yml b/.github/workflows/update-providers.yml index 0add8a98..affc089b 100644 --- a/.github/workflows/update-providers.yml +++ b/.github/workflows/update-providers.yml @@ -57,6 +57,7 @@ jobs: GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} AI_GATEWAY_API_KEY: ${{ secrets.AI_GATEWAY_API_KEY }} + META_MODELS_API_KEY: ${{ secrets.META_MODELS_API_KEY }} run: cargo run --bin fetch_models --features model-fetch - name: Create pull request diff --git a/crates/hermesllm/src/bin/fetch_models.rs b/crates/hermesllm/src/bin/fetch_models.rs index e785aac0..f08f546a 100644 --- a/crates/hermesllm/src/bin/fetch_models.rs +++ b/crates/hermesllm/src/bin/fetch_models.rs @@ -10,7 +10,8 @@ // Usage: // Optional: OPENAI_API_KEY, ANTHROPIC_API_KEY, MISTRAL_API_KEY, // DEEPSEEK_API_KEY, GROK_API_KEY, DASHSCOPE_API_KEY, -// MOONSHOT_API_KEY, ZHIPU_API_KEY, MIMO_API_KEY, GOOGLE_API_KEY +// MOONSHOT_API_KEY, ZHIPU_API_KEY, MIMO_API_KEY, GOOGLE_API_KEY, +// META_MODELS_API_KEY // Optional: AWS CLI configured for Amazon Bedrock models // cargo run --bin fetch_models --features model-fetch @@ -380,6 +381,12 @@ fn fetch_all_models( "https://api.xiaomimimo.com/v1/models", "xiaomi", ), + ( + "meta", + "META_MODELS_API_KEY", + "https://api.meta.ai/v1/models", + "meta", + ), ]; // Helper that records the outcome of a fetch attempt and only mutates diff --git a/crates/hermesllm/src/bin/provider_models.yaml b/crates/hermesllm/src/bin/provider_models.yaml index deb740e8..1df07320 100644 --- a/crates/hermesllm/src/bin/provider_models.yaml +++ b/crates/hermesllm/src/bin/provider_models.yaml @@ -122,6 +122,8 @@ providers: - google/deep-research-max-preview-04-2026 - google/deep-research-preview-04-2026 - google/deep-research-pro-preview-12-2025 + meta: + - meta/muse-spark-1.1 minimax: - minimax/MiniMax-M3 mistralai: @@ -392,6 +394,6 @@ providers: - z-ai/glm-5-turbo - z-ai/glm-5.1 metadata: - total_providers: 13 - total_models: 375 - last_updated: 2026-06-09T22:50:12.186709+00:00 + total_providers: 15 + total_models: 377 + last_updated: 2026-07-09T19:48:06.553850+00:00 diff --git a/crates/hermesllm/src/providers/id.rs b/crates/hermesllm/src/providers/id.rs index aaf1c16e..f17fad0e 100644 --- a/crates/hermesllm/src/providers/id.rs +++ b/crates/hermesllm/src/providers/id.rs @@ -50,6 +50,7 @@ pub enum ProviderId { OpenRouter, Astraflow, AstraflowCN, + Meta, Minimax, } @@ -86,6 +87,7 @@ impl TryFrom<&str> for ProviderId { "openrouter" => Ok(ProviderId::OpenRouter), "astraflow" => Ok(ProviderId::Astraflow), "astraflow_cn" => Ok(ProviderId::AstraflowCN), + "meta" => Ok(ProviderId::Meta), "minimax" => Ok(ProviderId::Minimax), _ => Err(format!("Unknown provider: {}", value)), } @@ -113,6 +115,7 @@ impl ProviderId { ProviderId::Qwen => "qwen", ProviderId::ChatGPT => "chatgpt", ProviderId::DigitalOcean => "digitalocean", + ProviderId::Meta => "meta", ProviderId::Minimax => "minimax", ProviderId::Astraflow | ProviderId::AstraflowCN => return Vec::new(), _ => return Vec::new(), @@ -185,6 +188,7 @@ impl ProviderId { | ProviderId::ChatGPT | ProviderId::Astraflow | ProviderId::AstraflowCN + | ProviderId::Meta | ProviderId::Minimax, SupportedAPIsFromClient::AnthropicMessagesAPI(_), ) => SupportedUpstreamAPIs::OpenAIChatCompletions(OpenAIApi::ChatCompletions), @@ -210,6 +214,7 @@ impl ProviderId { | ProviderId::ChatGPT | ProviderId::Astraflow | ProviderId::AstraflowCN + | ProviderId::Meta | ProviderId::Minimax, SupportedAPIsFromClient::OpenAIChatCompletions(_), ) => SupportedUpstreamAPIs::OpenAIChatCompletions(OpenAIApi::ChatCompletions), @@ -283,6 +288,7 @@ impl Display for ProviderId { ProviderId::OpenRouter => write!(f, "openrouter"), ProviderId::Astraflow => write!(f, "astraflow"), ProviderId::AstraflowCN => write!(f, "astraflow_cn"), + ProviderId::Meta => write!(f, "meta"), ProviderId::Minimax => write!(f, "minimax"), } }