Skip to content

Commit c2a2c4c

Browse files
igorcostaAutohand Evolve
andcommitted
Update context windows for current provider models
Co-authored-by: Autohand Evolve <code-noreply@autohand.ai>
1 parent 9df1ebf commit c2a2c4c

2 files changed

Lines changed: 35 additions & 7 deletions

File tree

src/core/context/tokenizer.ts

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,40 @@ const MODEL_CONTEXT: Record<string, number> = {
1717
"anthropic/claude-3-haiku": 200_000,
1818
"anthropic/claude-opus-4": 200_000,
1919
"anthropic/claude-opus-4-7": 1_000_000,
20+
"openai/gpt-5.5": 1_050_000,
21+
"openai/gpt-5.5-pro": 1_050_000,
22+
"openai/gpt-5.5-2026-04-23": 1_050_000,
23+
"openai/gpt-5.5-pro-2026-04-23": 1_050_000,
24+
"openai/gpt-5.4": 1_050_000,
25+
"openai/gpt-5.4-pro": 1_050_000,
26+
"openai/gpt-5.4-2026-03-05": 1_050_000,
27+
"openai/gpt-5.4-mini": 400_000,
28+
"openai/gpt-5.4-mini-2026-03-17": 400_000,
29+
"openai/gpt-5.4-nano": 400_000,
30+
"openai/gpt-5.4-nano-2026-03-17": 400_000,
31+
"openai/gpt-5.3-codex": 400_000,
32+
"openai/gpt-5.3-chat-latest": 128_000,
33+
"openai/gpt-5": 400_000,
34+
"openai/gpt-5-mini": 400_000,
35+
"openai/gpt-5-nano": 400_000,
2036
"openai/gpt-4o-mini": 128_000,
2137
"openai/gpt-4o": 128_000,
2238
"openai/gpt-4.1": 200_000,
2339
"openai/o1": 200_000,
2440
"openai/o1-mini": 128_000,
25-
"google/gemini-pro": 128_000,
26-
"google/gemini-2.0-flash": 1_000_000,
27-
"google/gemini-2.5-pro": 1_000_000,
28-
"google/gemini-3.0-pro": 1_000_000,
41+
"google/gemini-3.1-pro-preview": 1_000_000,
42+
"google/gemini-3.1-flash-lite-preview": 1_000_000,
43+
"google/gemini-3-flash-preview": 1_000_000,
44+
"google/gemini-3.1-flash-image-preview": 128_000,
45+
"google/gemini-3-pro-image-preview": 65_000,
2946
"tencent/hy3-preview:free": 262_144,
3047
"tencent/hy3-preview-20260421:free": 262_144,
48+
"deepseek/deepseek-v4-pro": 1_000_000,
49+
"deepseek/deepseek-v4-flash": 1_000_000,
3150
"deepseek/deepseek-r1": 64_000,
3251
"deepseek/deepseek-r1-0528-qwen3-8b:free": 8_000,
3352
"deepseek/deepseek-coder": 16_000,
34-
"deepseek/deepseek-v4": 128_000,
53+
"deepseek/deepseek-v4": 1_000_000,
3554
};
3655

3756
/** Safety margin to prevent hitting exact limits (10% reserved) */
@@ -81,7 +100,7 @@ export function getSafeContextWindow(model: string): number {
81100
export function getModelFamily(model: string): string {
82101
const normalized = model.toLowerCase();
83102
if (normalized.includes('claude')) return 'claude';
84-
if (normalized.includes('gpt-4') || normalized.includes('o1') || normalized.includes('o3')) return 'openai';
103+
if (normalized.includes('gpt-4') || normalized.includes('gpt-5') || normalized.includes('o1') || normalized.includes('o3')) return 'openai';
85104
if (normalized.includes('gemini')) return 'gemini';
86105
if (normalized.includes('deepseek')) return 'deepseek';
87106
return 'default';

tests/core/context.spec.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,15 @@ describe('context/tokenizer', () => {
4848
describe('getContextWindow', () => {
4949
it('returns known model context windows', () => {
5050
expect(getContextWindow('anthropic/claude-4-sonnet')).toBe(200_000);
51-
expect(getContextWindow('openai/gpt-4o-mini')).toBe(128_000);
51+
expect(getContextWindow('openai/gpt-5.5')).toBe(1_050_000);
52+
expect(getContextWindow('gpt-5.5-pro')).toBe(1_050_000);
53+
expect(getContextWindow('openai/gpt-5.4')).toBe(1_050_000);
54+
expect(getContextWindow('gpt-5.4-mini')).toBe(400_000);
55+
expect(getContextWindow('openai/gpt-5.3-codex')).toBe(400_000);
56+
expect(getContextWindow('google/gemini-3.1-pro-preview')).toBe(1_000_000);
57+
expect(getContextWindow('gemini-3.1-flash-image-preview')).toBe(128_000);
58+
expect(getContextWindow('deepseek-v4-pro')).toBe(1_000_000);
59+
expect(getContextWindow('deepseek/deepseek-v4-flash')).toBe(1_000_000);
5260
expect(getContextWindow('tencent/hy3-preview:free')).toBe(262_144);
5361
expect(getContextWindow('tencent/hy3-preview-20260421:free')).toBe(262_144);
5462
});
@@ -77,6 +85,7 @@ describe('context/tokenizer', () => {
7785
it('identifies model families correctly', () => {
7886
expect(getModelFamily('anthropic/claude-sonnet-4')).toBe('claude');
7987
expect(getModelFamily('openai/gpt-4o')).toBe('openai');
88+
expect(getModelFamily('openai/gpt-5.5')).toBe('openai');
8089
expect(getModelFamily('google/gemini-pro')).toBe('gemini');
8190
expect(getModelFamily('deepseek/deepseek-r1')).toBe('deepseek');
8291
expect(getModelFamily('unknown/model')).toBe('default');

0 commit comments

Comments
 (0)