fix(cliproxy): add gemini 3.1 preview alias compatibility

This commit is contained in:
Tam Nhu Tran
2026-02-22 00:14:15 +07:00
parent 6a9abd2a48
commit 653f8092ae
2 changed files with 27 additions and 1 deletions
+4 -1
View File
@@ -28,8 +28,9 @@ export const CCS_CONTROL_PANEL_SECRET = 'ccs';
* v5: Added disable-cooling: true for stability
* v6: Added oauth-model-alias with Opus 4.6 support
* 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.
@@ -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: '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.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: '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 },
@@ -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', () => {
const cliproxyDir = path.join(testDir, '.ccs', 'cliproxy');
fs.mkdirSync(cliproxyDir, { recursive: true });