From c8007f18cd01cacec5303609fd60cbbc3de19b41 Mon Sep 17 00:00:00 2001 From: Chen Buskilla Date: Sun, 9 Aug 2026 18:45:48 +0300 Subject: [PATCH 1/2] fix(catalog): mark muse-spark-1.2 as image capable Meta Muse Spark 1.2 and its contributor variant support vision inputs (text, image) like 1.1, but were missing from META_MUSE_STATIC_MODELS and bundled models.json. Discovery without a bundled reference falls back to text-only with zero cost, so omp models listed them as not image enabled. Add both models to META_MUSE_STATIC_MODELS with the same cost/thinking/vision metadata as 1.1 (contributor uses its discounted pricing) and regenerate the bundled catalog. --- packages/catalog/src/models.json | 70 ++++++++++++++++++- .../src/provider-models/openai-compat.ts | 34 +++++++++ 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/packages/catalog/src/models.json b/packages/catalog/src/models.json index 1dae17096..eebcd1001 100644 --- a/packages/catalog/src/models.json +++ b/packages/catalog/src/models.json @@ -41098,6 +41098,74 @@ "supportsReasoningEffort": true, "includeEncryptedReasoning": true } + }, + "muse-spark-1.2": { + "id": "muse-spark-1.2", + "name": "Muse Spark 1.2", + "api": "openai-responses", + "provider": "meta", + "baseUrl": "https://api.meta.ai/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 1.25, + "output": 4.25, + "cacheRead": 0.15, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "compat": { + "supportsReasoningEffort": true, + "includeEncryptedReasoning": true + } + }, + "muse-spark-1.2-contributor": { + "id": "muse-spark-1.2-contributor", + "name": "Muse Spark 1.2 Contributor (Data Used for Training)", + "api": "openai-responses", + "provider": "meta", + "baseUrl": "https://api.meta.ai/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.1, + "output": 0.2, + "cacheRead": 0.002, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "compat": { + "supportsReasoningEffort": true, + "includeEncryptedReasoning": true + } } }, "minimax": { @@ -109356,4 +109424,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/catalog/src/provider-models/openai-compat.ts b/packages/catalog/src/provider-models/openai-compat.ts index bf79ade9b..d7bc64e57 100644 --- a/packages/catalog/src/provider-models/openai-compat.ts +++ b/packages/catalog/src/provider-models/openai-compat.ts @@ -3659,6 +3659,40 @@ export const META_MUSE_STATIC_MODELS: readonly ModelSpec<"openai-responses">[] = includeEncryptedReasoning: true, }, }, + { + id: "muse-spark-1.2", + name: "Muse Spark 1.2", + api: "openai-responses", + provider: "meta", + baseUrl: META_MODEL_API_BASE_URL, + reasoning: true, + input: ["text", "image"], + cost: META_MUSE_SPARK_COST, + contextWindow: 1_048_576, + maxTokens: 131_072, + thinking: META_MUSE_SPARK_THINKING, + compat: { + supportsReasoningEffort: true, + includeEncryptedReasoning: true, + }, + }, + { + id: "muse-spark-1.2-contributor", + name: "Muse Spark 1.2 Contributor (Data Used for Training)", + api: "openai-responses", + provider: "meta", + baseUrl: META_MODEL_API_BASE_URL, + reasoning: true, + input: ["text", "image"], + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1_048_576, + maxTokens: 131_072, + thinking: META_MUSE_SPARK_THINKING, + compat: { + supportsReasoningEffort: true, + includeEncryptedReasoning: true, + }, + }, ]; // --------------------------------------------------------------------------- From 7d7964c14b3f4997d388f7503100c1cff9a27891 Mon Sep 17 00:00:00 2001 From: Chen Buskilla Date: Sun, 9 Aug 2026 18:50:43 +0300 Subject: [PATCH 2/2] address review: fix test, changelog and models.json newline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update packages/catalog/test/meta-provider.test.ts to expect three META_MUSE_STATIC_MODELS entries (1.1, 1.2, contributor) with input ["text","image"] — fixes blocking failure. - Add ## [Unreleased] entry in packages/catalog/CHANGELOG.md per AGENTS.md. - Remove trailing newline from models.json to match generate-models.ts (Bun.write without \n). Co-authored-by: roboomp --- packages/catalog/CHANGELOG.md | 4 ++ packages/catalog/src/models.json | 2 +- packages/catalog/test/meta-provider.test.ts | 41 ++++++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/packages/catalog/CHANGELOG.md b/packages/catalog/CHANGELOG.md index 4f0617a76..cbcee9a47 100644 --- a/packages/catalog/CHANGELOG.md +++ b/packages/catalog/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Marked `meta/muse-spark-1.2` and `muse-spark-1.2-contributor` as image-capable (`input: ["text", "image"]`) with the same Responses reasoning, thinking, and cost metadata as `muse-spark-1.1` (contributor uses its discounted 0.1/0.2 pricing), so `omp models` no longer lists them as text-only. + ## [17.2.12] - 2026-08-08 ### Fixed diff --git a/packages/catalog/src/models.json b/packages/catalog/src/models.json index eebcd1001..bdac3d7d9 100644 --- a/packages/catalog/src/models.json +++ b/packages/catalog/src/models.json @@ -109424,4 +109424,4 @@ } } } -} +} \ No newline at end of file diff --git a/packages/catalog/test/meta-provider.test.ts b/packages/catalog/test/meta-provider.test.ts index 475435977..ee6c12b1d 100644 --- a/packages/catalog/test/meta-provider.test.ts +++ b/packages/catalog/test/meta-provider.test.ts @@ -26,8 +26,47 @@ describe("Meta Model API provider", () => { includeEncryptedReasoning: true, }, }, + { + id: "muse-spark-1.2", + name: "Muse Spark 1.2", + api: "openai-responses", + provider: "meta", + baseUrl: "https://api.meta.ai/v1", + reasoning: true, + input: ["text", "image"], + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1_048_576, + maxTokens: 131_072, + thinking: { + mode: "effort", + efforts: [Effort.Minimal, Effort.Low, Effort.Medium, Effort.High, Effort.XHigh], + }, + compat: { + supportsReasoningEffort: true, + includeEncryptedReasoning: true, + }, + }, + { + id: "muse-spark-1.2-contributor", + name: "Muse Spark 1.2 Contributor (Data Used for Training)", + api: "openai-responses", + provider: "meta", + baseUrl: "https://api.meta.ai/v1", + reasoning: true, + input: ["text", "image"], + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1_048_576, + maxTokens: 131_072, + thinking: { + mode: "effort", + efforts: [Effort.Minimal, Effort.Low, Effort.Medium, Effort.High, Effort.XHigh], + }, + compat: { + supportsReasoningEffort: true, + includeEncryptedReasoning: true, + }, + }, ]); - const options = metaModelManagerOptions(); expect(options.providerId).toBe("meta"); expect(options.staticModels).toEqual(META_MUSE_STATIC_MODELS);