Skip to content

Commit 1475adb

Browse files
committed
feat(cliproxy): promote thinking models as default for agy provider
- Remove deprecated flag from Claude Opus 4.5 Thinking and Sonnet 4.5 Thinking - Reorder models with thinking models at top (Opus → Sonnet Thinking → Sonnet → Gemini) - Change default model to gemini-claude-opus-4-5-thinking - Update tests to reflect new ordering and non-deprecated status
1 parent f15754d commit 1475adb

File tree

2 files changed

+33
-42
lines changed

2 files changed

+33
-42
lines changed

src/cliproxy/model-catalog.ts

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,33 +48,27 @@ export const MODEL_CATALOG: Partial<Record<CLIProxyProvider, ProviderCatalog>> =
4848
agy: {
4949
provider: 'agy',
5050
displayName: 'Antigravity',
51-
defaultModel: 'gemini-3-pro-preview',
51+
defaultModel: 'gemini-claude-opus-4-5-thinking',
5252
models: [
53-
{
54-
id: 'gemini-claude-sonnet-4-5',
55-
name: 'Claude Sonnet 4.5',
56-
description: 'Fast and capable',
57-
},
58-
{
59-
id: 'gemini-3-pro-preview',
60-
name: 'Gemini 3 Pro',
61-
description: 'Google latest model via Antigravity',
62-
},
6353
{
6454
id: 'gemini-claude-opus-4-5-thinking',
6555
name: 'Claude Opus 4.5 Thinking',
6656
description: 'Most capable, extended thinking',
67-
deprecated: true,
68-
deprecationReason:
69-
'Thinking models are deprecated due to compatibility issues with Antigravity',
7057
},
7158
{
7259
id: 'gemini-claude-sonnet-4-5-thinking',
7360
name: 'Claude Sonnet 4.5 Thinking',
7461
description: 'Balanced with extended thinking',
75-
deprecated: true,
76-
deprecationReason:
77-
'Thinking models are deprecated due to compatibility issues with Antigravity',
62+
},
63+
{
64+
id: 'gemini-claude-sonnet-4-5',
65+
name: 'Claude Sonnet 4.5',
66+
description: 'Fast and capable',
67+
},
68+
{
69+
id: 'gemini-3-pro-preview',
70+
name: 'Gemini 3 Pro',
71+
description: 'Google latest model via Antigravity',
7872
},
7973
],
8074
},

tests/unit/cliproxy/model-catalog.test.js

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ describe('Model Catalog', () => {
3333
describe('AGY models', () => {
3434
it('has correct default model', () => {
3535
const { MODEL_CATALOG } = modelCatalog;
36-
assert.strictEqual(MODEL_CATALOG.agy.defaultModel, 'gemini-3-pro-preview');
36+
assert.strictEqual(MODEL_CATALOG.agy.defaultModel, 'gemini-claude-opus-4-5-thinking');
3737
});
3838

3939
it('includes Claude Opus 4.5 Thinking', () => {
@@ -215,60 +215,58 @@ describe('Model Catalog', () => {
215215
});
216216
});
217217

218-
describe('Deprecated models', () => {
219-
it('Claude Opus 4.5 Thinking is marked as deprecated', () => {
218+
describe('Thinking models ordering', () => {
219+
it('Claude Opus 4.5 Thinking is not deprecated', () => {
220220
const { MODEL_CATALOG } = modelCatalog;
221221
const opus = MODEL_CATALOG.agy.models.find(
222222
(m) => m.id === 'gemini-claude-opus-4-5-thinking'
223223
);
224224
assert(opus, 'Should include Claude Opus 4.5 Thinking');
225-
assert.strictEqual(opus.deprecated, true, 'Should be marked as deprecated');
226-
assert(opus.deprecationReason, 'Should have deprecation reason');
225+
assert.strictEqual(opus.deprecated, undefined, 'Should not be marked as deprecated');
227226
});
228227

229-
it('Claude Sonnet 4.5 Thinking is marked as deprecated', () => {
228+
it('Claude Sonnet 4.5 Thinking is not deprecated', () => {
230229
const { MODEL_CATALOG } = modelCatalog;
231230
const sonnetThinking = MODEL_CATALOG.agy.models.find(
232231
(m) => m.id === 'gemini-claude-sonnet-4-5-thinking'
233232
);
234233
assert(sonnetThinking, 'Should include Claude Sonnet 4.5 Thinking');
235-
assert.strictEqual(sonnetThinking.deprecated, true, 'Should be marked as deprecated');
236-
assert(sonnetThinking.deprecationReason, 'Should have deprecation reason');
234+
assert.strictEqual(sonnetThinking.deprecated, undefined, 'Should not be marked as deprecated');
237235
});
238236

239-
it('deprecated models are at the bottom of the list', () => {
237+
it('thinking models are at the top of the list', () => {
240238
const { MODEL_CATALOG } = modelCatalog;
241239
const models = MODEL_CATALOG.agy.models;
242240

243-
// Find indices of deprecated models
241+
// Find indices of thinking models
244242
const opusIdx = models.findIndex((m) => m.id === 'gemini-claude-opus-4-5-thinking');
245243
const sonnetThinkingIdx = models.findIndex(
246244
(m) => m.id === 'gemini-claude-sonnet-4-5-thinking'
247245
);
248246

249-
// Find indices of non-deprecated models
247+
// Find indices of non-thinking models
250248
const sonnetIdx = models.findIndex((m) => m.id === 'gemini-claude-sonnet-4-5');
251249
const geminiIdx = models.findIndex((m) => m.id === 'gemini-3-pro-preview');
252250

253-
// Deprecated models should come after non-deprecated models
254-
assert(opusIdx > sonnetIdx, 'Opus Thinking should be below non-deprecated Sonnet');
255-
assert(opusIdx > geminiIdx, 'Opus Thinking should be below non-deprecated Gemini');
251+
// Thinking models should come before non-thinking models
252+
assert(opusIdx < sonnetIdx, 'Opus Thinking should be above non-thinking Sonnet');
253+
assert(opusIdx < geminiIdx, 'Opus Thinking should be above non-thinking Gemini');
256254
assert(
257-
sonnetThinkingIdx > sonnetIdx,
258-
'Sonnet Thinking should be below non-deprecated Sonnet'
255+
sonnetThinkingIdx < sonnetIdx,
256+
'Sonnet Thinking should be above non-thinking Sonnet'
259257
);
260258
assert(
261-
sonnetThinkingIdx > geminiIdx,
262-
'Sonnet Thinking should be below non-deprecated Gemini'
259+
sonnetThinkingIdx < geminiIdx,
260+
'Sonnet Thinking should be above non-thinking Gemini'
263261
);
264262
});
265263
});
266264

267265
describe('isModelDeprecated', () => {
268-
it('returns true for deprecated models', () => {
266+
it('returns false for thinking models (no longer deprecated)', () => {
269267
const { isModelDeprecated } = modelCatalog;
270-
assert.strictEqual(isModelDeprecated('agy', 'gemini-claude-opus-4-5-thinking'), true);
271-
assert.strictEqual(isModelDeprecated('agy', 'gemini-claude-sonnet-4-5-thinking'), true);
268+
assert.strictEqual(isModelDeprecated('agy', 'gemini-claude-opus-4-5-thinking'), false);
269+
assert.strictEqual(isModelDeprecated('agy', 'gemini-claude-sonnet-4-5-thinking'), false);
272270
});
273271

274272
it('returns false for non-deprecated models', () => {
@@ -284,11 +282,10 @@ describe('Model Catalog', () => {
284282
});
285283

286284
describe('getModelDeprecationReason', () => {
287-
it('returns deprecation reason for deprecated models', () => {
285+
it('returns undefined for thinking models (no longer deprecated)', () => {
288286
const { getModelDeprecationReason } = modelCatalog;
289-
const reason = getModelDeprecationReason('agy', 'gemini-claude-opus-4-5-thinking');
290-
assert(reason, 'Should have deprecation reason');
291-
assert(typeof reason === 'string', 'Reason should be a string');
287+
assert.strictEqual(getModelDeprecationReason('agy', 'gemini-claude-opus-4-5-thinking'), undefined);
288+
assert.strictEqual(getModelDeprecationReason('agy', 'gemini-claude-sonnet-4-5-thinking'), undefined);
292289
});
293290

294291
it('returns undefined for non-deprecated models', () => {

0 commit comments

Comments
 (0)