mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
fix: handle dynamic model IDs with slashes in the model name
isOpencodeModel was rejecting valid dynamic model IDs like 'openrouter/qwen/qwen3-14b:free' because it was splitting on all slashes and expecting exactly 2 parts. This caused valid OpenCode models to be treated as unknown, falling back to Claude. Now correctly splits on the FIRST slash only, allowing model names like 'qwen/qwen3-14b:free' to be recognized as valid. Fixes: User selects openrouter/qwen/qwen3-14b:free → server falls back to Claude Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -125,11 +125,14 @@ export function isOpencodeModel(model: string | undefined | null): boolean {
|
|||||||
// - github-copilot/gpt-4o
|
// - github-copilot/gpt-4o
|
||||||
// - google/gemini-2.5-pro
|
// - google/gemini-2.5-pro
|
||||||
// - xai/grok-3
|
// - xai/grok-3
|
||||||
// Pattern: provider-id/model-name (must have exactly one / and not be a URL)
|
// - openrouter/qwen/qwen3-14b:free (model names can contain / or :)
|
||||||
|
// Pattern: provider-id/model-name (at least one /, not a URL)
|
||||||
if (model.includes('/') && !model.includes('://')) {
|
if (model.includes('/') && !model.includes('://')) {
|
||||||
const parts = model.split('/');
|
const slashIndex = model.indexOf('/');
|
||||||
// Valid dynamic model format: provider/model-name (exactly 2 parts)
|
const providerId = model.substring(0, slashIndex);
|
||||||
if (parts.length === 2 && parts[0].length > 0 && parts[1].length > 0) {
|
const modelName = model.substring(slashIndex + 1);
|
||||||
|
// Valid dynamic model format: provider-id/model-name (both parts non-empty)
|
||||||
|
if (providerId.length > 0 && modelName.length > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user