diff --git a/scripts/modules/supported-models.json b/scripts/modules/supported-models.json index a5346278..8a0cb2b2 100644 --- a/scripts/modules/supported-models.json +++ b/scripts/modules/supported-models.json @@ -7,10 +7,7 @@ "input": 3.0, "output": 15.0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 64000 }, { @@ -20,10 +17,7 @@ "input": 15.0, "output": 75.0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 32000 }, { @@ -33,10 +27,7 @@ "input": 3.0, "output": 15.0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 120000 }, { @@ -46,10 +37,7 @@ "input": 3.0, "output": 15.0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 64000 } ], @@ -61,10 +49,7 @@ "input": 2.5, "output": 10.0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 16384 }, { @@ -74,9 +59,7 @@ "input": 15.0, "output": 60.0 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "o3", @@ -85,10 +68,7 @@ "input": 2.0, "output": 8.0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "o3-mini", @@ -97,9 +77,7 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": [ - "main" - ], + "allowed_roles": ["main"], "max_tokens": 100000 }, { @@ -109,10 +87,7 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "o1-mini", @@ -121,9 +96,7 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "o1-pro", @@ -132,9 +105,7 @@ "input": 150.0, "output": 600.0 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "gpt-4-5-preview", @@ -143,9 +114,7 @@ "input": 75.0, "output": 150.0 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "gpt-4-1-mini", @@ -154,9 +123,7 @@ "input": 0.4, "output": 1.6 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "gpt-4-1-nano", @@ -165,9 +132,7 @@ "input": 0.1, "output": 0.4 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "gpt-4o-mini", @@ -176,9 +141,7 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": [ - "main" - ] + "allowed_roles": ["main"] }, { "id": "gpt-4o-search-preview", @@ -187,9 +150,7 @@ "input": 2.5, "output": 10.0 }, - "allowed_roles": [ - "research" - ] + "allowed_roles": ["research"] }, { "id": "gpt-4o-mini-search-preview", @@ -198,9 +159,7 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": [ - "research" - ] + "allowed_roles": ["research"] } ], "google": [ @@ -208,30 +167,21 @@ "id": "gemini-2.5-pro-preview-05-06", "swe_score": 0.638, "cost_per_1m_tokens": null, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048000 }, { "id": "gemini-2.5-pro-preview-03-25", "swe_score": 0.638, "cost_per_1m_tokens": null, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048000 }, { "id": "gemini-2.5-flash-preview-04-17", "swe_score": 0.604, "cost_per_1m_tokens": null, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048000 }, { @@ -241,20 +191,14 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048000 }, { "id": "gemini-2.0-flash-lite", "swe_score": 0, "cost_per_1m_tokens": null, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048000 } ], @@ -266,10 +210,7 @@ "input": 3, "output": 15 }, - "allowed_roles": [ - "main", - "research" - ], + "allowed_roles": ["main", "research"], "max_tokens": 8700 }, { @@ -279,9 +220,7 @@ "input": 1, "output": 1 }, - "allowed_roles": [ - "research" - ], + "allowed_roles": ["research"], "max_tokens": 8700 }, { @@ -291,9 +230,7 @@ "input": 2, "output": 8 }, - "allowed_roles": [ - "research" - ], + "allowed_roles": ["research"], "max_tokens": 8700 }, { @@ -303,11 +240,7 @@ "input": 2, "output": 8 }, - "allowed_roles": [ - "main", - "research", - "fallback" - ], + "allowed_roles": ["main", "research", "fallback"], "max_tokens": 8700 }, { @@ -317,11 +250,7 @@ "input": 1, "output": 5 }, - "allowed_roles": [ - "main", - "research", - "fallback" - ], + "allowed_roles": ["main", "research", "fallback"], "max_tokens": 8700 } ], @@ -334,11 +263,7 @@ "input": 3, "output": 15 }, - "allowed_roles": [ - "main", - "fallback", - "research" - ], + "allowed_roles": ["main", "fallback", "research"], "max_tokens": 131072 }, { @@ -349,11 +274,7 @@ "input": 5, "output": 25 }, - "allowed_roles": [ - "main", - "fallback", - "research" - ], + "allowed_roles": ["main", "fallback", "research"], "max_tokens": 131072 } ], @@ -365,10 +286,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "qwen3:latest", @@ -377,10 +295,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "qwen3:14b", @@ -389,10 +304,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "qwen3:32b", @@ -401,10 +313,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "mistral-small3.1:latest", @@ -413,10 +322,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "llama3.3:latest", @@ -425,10 +331,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] }, { "id": "phi4:latest", @@ -437,10 +340,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ] + "allowed_roles": ["main", "fallback"] } ], "openrouter": [ @@ -451,10 +351,7 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048576 }, { @@ -464,10 +361,7 @@ "input": 0.15, "output": 3.5 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048576 }, { @@ -477,10 +371,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -490,10 +381,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 163840 }, { @@ -503,9 +391,7 @@ "input": 0.27, "output": 1.1 }, - "allowed_roles": [ - "main" - ], + "allowed_roles": ["main"], "max_tokens": 64000 }, { @@ -515,10 +401,7 @@ "input": 2, "output": 8 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -528,10 +411,7 @@ "input": 0.4, "output": 1.6 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -541,10 +421,7 @@ "input": 0.1, "output": 0.4 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -554,10 +431,7 @@ "input": 10, "output": 40 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 200000 }, { @@ -567,10 +441,7 @@ "input": 1.5, "output": 6 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 100000 }, { @@ -580,10 +451,7 @@ "input": 0.15, "output": 0.6 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 100000 }, { @@ -593,10 +461,7 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 100000 }, { @@ -606,10 +471,7 @@ "input": 1.1, "output": 4.4 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 100000 }, { @@ -619,10 +481,7 @@ "input": 150, "output": 600 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 100000 }, { @@ -632,10 +491,7 @@ "input": 120, "output": 600 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1048576 }, { @@ -645,10 +501,7 @@ "input": 0.18, "output": 0.6 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -658,10 +511,7 @@ "input": 0.08, "output": 0.3 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -671,10 +521,7 @@ "input": 1.6, "output": 6.4 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 32768 }, { @@ -684,10 +531,7 @@ "input": 0.05, "output": 0.2 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 1000000 }, { @@ -697,10 +541,7 @@ "input": 0.14, "output": 2 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 24000 }, { @@ -710,10 +551,7 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 96000 }, { @@ -723,10 +561,7 @@ "input": 0.1, "output": 0.3 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 128000 }, { @@ -736,9 +571,7 @@ "input": 0.1, "output": 0.3 }, - "allowed_roles": [ - "main" - ], + "allowed_roles": ["main"], "max_tokens": 110000 }, { @@ -748,10 +581,7 @@ "input": 0.03, "output": 0.07 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 100000 }, { @@ -761,11 +591,8 @@ "input": 0, "output": 0 }, - "allowed_roles": [ - "main", - "fallback" - ], + "allowed_roles": ["main", "fallback"], "max_tokens": 32768 } ] -} \ No newline at end of file +} diff --git a/tests/unit/config-manager.test.js b/tests/unit/config-manager.test.js index 95686903..851818bb 100644 --- a/tests/unit/config-manager.test.js +++ b/tests/unit/config-manager.test.js @@ -713,17 +713,25 @@ describe('isConfigFilePresent', () => { // --- getAllProviders Tests --- describe('getAllProviders', () => { - test('should return list of providers from supported-models.json', () => { + test('should return all providers from ALL_PROVIDERS constant', () => { // Arrange: Ensure config is loaded with real data configManager.getConfig(null, true); // Force load using the mock that returns real data // Act const providers = configManager.getAllProviders(); + // Assert - // Assert against the actual keys in the REAL loaded data - const expectedProviders = Object.keys(REAL_SUPPORTED_MODELS_DATA); - expect(providers).toEqual(expect.arrayContaining(expectedProviders)); - expect(providers.length).toBe(expectedProviders.length); + // getAllProviders() should return the same as the ALL_PROVIDERS constant + expect(providers).toEqual(configManager.ALL_PROVIDERS); + expect(providers.length).toBe(configManager.ALL_PROVIDERS.length); + + // Verify it includes both validated and custom providers + expect(providers).toEqual( + expect.arrayContaining(configManager.VALIDATED_PROVIDERS) + ); + expect(providers).toEqual( + expect.arrayContaining(Object.values(configManager.CUSTOM_PROVIDERS)) + ); }); });