mirror of
https://github.com/tiennm99/ccs.git
synced 2026-08-23 04:27:18 +00:00
fix(cliproxy): add gemini 3.1 preview alias compatibility
This commit is contained in:
@@ -28,8 +28,9 @@ export const CCS_CONTROL_PANEL_SECRET = 'ccs';
|
|||||||
* v5: Added disable-cooling: true for stability
|
* v5: Added disable-cooling: true for stability
|
||||||
* v6: Added oauth-model-alias with Opus 4.6 support
|
* v6: Added oauth-model-alias with Opus 4.6 support
|
||||||
* v7: Added fork:true for Claude model aliases (keep both upstream and alias names)
|
* v7: Added fork:true for Claude model aliases (keep both upstream and alias names)
|
||||||
|
* v8: Added Gemini 3.1 preview aliases for provider routing compatibility
|
||||||
*/
|
*/
|
||||||
export const CLIPROXY_CONFIG_VERSION = 7;
|
export const CLIPROXY_CONFIG_VERSION = 8;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Antigravity oauth-model-alias entries.
|
* Default Antigravity oauth-model-alias entries.
|
||||||
@@ -40,6 +41,8 @@ const DEFAULT_ANTIGRAVITY_ALIASES: Array<{ name: string; alias: string; fork?: b
|
|||||||
{ name: 'rev19-uic3-1p', alias: 'gemini-2.5-computer-use-preview-10-2025' },
|
{ name: 'rev19-uic3-1p', alias: 'gemini-2.5-computer-use-preview-10-2025' },
|
||||||
{ name: 'gemini-3-pro-image', alias: 'gemini-3-pro-image-preview' },
|
{ name: 'gemini-3-pro-image', alias: 'gemini-3-pro-image-preview' },
|
||||||
{ name: 'gemini-3-pro-high', alias: 'gemini-3-pro-preview' },
|
{ name: 'gemini-3-pro-high', alias: 'gemini-3-pro-preview' },
|
||||||
|
{ name: 'gemini-3-pro-high', alias: 'gemini-3.1-pro-preview' },
|
||||||
|
{ name: 'gemini-3-pro-high', alias: 'gemini-3.1-pro-preview-customtools' },
|
||||||
{ name: 'gemini-3-flash', alias: 'gemini-3-flash-preview' },
|
{ name: 'gemini-3-flash', alias: 'gemini-3-flash-preview' },
|
||||||
{ name: 'claude-sonnet-4-5', alias: 'gemini-claude-sonnet-4-5', fork: true },
|
{ name: 'claude-sonnet-4-5', alias: 'gemini-claude-sonnet-4-5', fork: true },
|
||||||
{ name: 'claude-sonnet-4-5-thinking', alias: 'gemini-claude-sonnet-4-5-thinking', fork: true },
|
{ name: 'claude-sonnet-4-5-thinking', alias: 'gemini-claude-sonnet-4-5-thinking', fork: true },
|
||||||
|
|||||||
@@ -621,6 +621,29 @@ auth-dir: "${cliproxyDir.replace(/\\/g, '/')}/auth"
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('generates Gemini 3.1 compatibility aliases without fork', () => {
|
||||||
|
regenerateConfig();
|
||||||
|
|
||||||
|
const cliproxyDir = path.join(testDir, '.ccs', 'cliproxy');
|
||||||
|
const config = fs.readFileSync(path.join(cliproxyDir, 'config.yaml'), 'utf-8');
|
||||||
|
const lines = config.split('\n');
|
||||||
|
|
||||||
|
const gemini31AliasLines = [
|
||||||
|
'alias: gemini-3.1-pro-preview',
|
||||||
|
'alias: gemini-3.1-pro-preview-customtools',
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const aliasLine of gemini31AliasLines) {
|
||||||
|
const lineIndex = lines.findIndex((line) => line.includes(aliasLine));
|
||||||
|
assert(lineIndex >= 0, `Should include ${aliasLine}`);
|
||||||
|
const nextLine = lines[lineIndex + 1] || '';
|
||||||
|
assert(
|
||||||
|
!nextLine.trim().startsWith('fork:'),
|
||||||
|
`Gemini alias should not have fork: ${aliasLine}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
it('preserves user-added aliases with fork during regeneration', () => {
|
it('preserves user-added aliases with fork during regeneration', () => {
|
||||||
const cliproxyDir = path.join(testDir, '.ccs', 'cliproxy');
|
const cliproxyDir = path.join(testDir, '.ccs', 'cliproxy');
|
||||||
fs.mkdirSync(cliproxyDir, { recursive: true });
|
fs.mkdirSync(cliproxyDir, { recursive: true });
|
||||||
|
|||||||
Reference in New Issue
Block a user