Skip to content

Commit 1e79d9e

Browse files
committed
Merge branch 'main' of https://github.com/HeyPuter/puter
2 parents 462ec01 + b40ca1d commit 1e79d9e

File tree

16 files changed

+110
-174
lines changed

16 files changed

+110
-174
lines changed

src/backend/src/services/ai/chat/AIChatService.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,14 @@ export class AIChatService extends BaseService {
424424

425425
const fallback = this.getFallbackModel(model.id, tried, triedProviders);
426426

427+
tried.push(model.id);
428+
triedProviders.push(model.provider!);
429+
430+
if ( tried.length >= MAX_FALLBACKS ) {
431+
console.error('max fallbacks reached', { tried, triedProviders });
432+
break;
433+
}
434+
427435
if ( ! fallback ) {
428436
throw new Error('no fallback model available');
429437
}

src/backend/src/services/ai/chat/providers/ClaudeProvider/ClaudeProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class ClaudeProvider implements IChatProvider {
5555
});
5656
}
5757
getDefaultModel () {
58-
return 'claude/claude-haiku-4-5-20251001';
58+
return 'claude-haiku-4-5-20251001';
5959
}
6060

6161
async list () {
@@ -318,4 +318,4 @@ export class ClaudeProvider implements IChatProvider {
318318
checkModeration (_text: string): ReturnType<IChatProvider['checkModeration']> {
319319
throw new Error('CheckModeration Not provided.');
320320
}
321-
}
321+
}

src/backend/src/services/ai/chat/providers/ClaudeProvider/models.ts

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { IChatModel } from '../types';
22

33
export const CLAUDE_MODELS: IChatModel[] = [
44
{
5-
id: 'claude/claude-opus-4-5-20251101',
6-
aliases: ['claude-opus-4-5-20251101', 'claude-opus-4-5-latest', 'claude-opus-4-5', 'claude-opus-4.5'],
5+
id: 'claude-opus-4-5-20251101',
6+
aliases: ['claude-opus-4-5-latest', 'claude-opus-4-5', 'claude-opus-4.5'],
77
name: 'Claude Opus 4.5',
88
costs_currency: 'usd-cents',
99
input_cost_key: 'input_tokens',
@@ -20,8 +20,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
2020
max_tokens: 64000,
2121
},
2222
{
23-
id: 'claude/claude-haiku-4-5-20251001',
24-
aliases: ['claude-haiku-4-5-20251001', 'claude-haiku-4.5', 'claude-haiku-4-5', 'claude-4-5-haiku'],
23+
id: 'claude-haiku-4-5-20251001',
24+
aliases: ['claude-haiku-4.5', 'claude-haiku-4-5', 'claude-4-5-haiku'],
2525
name: 'Claude Haiku 4.5',
2626
costs_currency: 'usd-cents',
2727
input_cost_key: 'input_tokens',
@@ -38,8 +38,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
3838
max_tokens: 64000,
3939
},
4040
{
41-
id: 'claude/claude-sonnet-4-5-20250929',
42-
aliases: ['claude-sonnet-4-5-20250929', 'claude-sonnet-4.5', 'claude-sonnet-4-5'],
41+
id: 'claude-sonnet-4-5-20250929',
42+
aliases: ['claude-sonnet-4.5', 'claude-sonnet-4-5'],
4343
name: 'Claude Sonnet 4.5',
4444
costs_currency: 'usd-cents',
4545
input_cost_key: 'input_tokens',
@@ -56,8 +56,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
5656
max_tokens: 64000,
5757
},
5858
{
59-
id: 'claude/claude-opus-4-1-20250805',
60-
aliases: ['claude-opus-4-1-20250805', 'claude-opus-4-1'],
59+
id: 'claude-opus-4-1-20250805',
60+
aliases: ['claude-opus-4-1'],
6161
name: 'Claude Opus 4.1',
6262
costs_currency: 'usd-cents',
6363
input_cost_key: 'input_tokens',
@@ -74,8 +74,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
7474
max_tokens: 32000,
7575
},
7676
{
77-
id: 'claude/claude-opus-4-20250514',
78-
aliases: ['claude-opus-4-20250514', 'claude-opus-4', 'claude-opus-4-latest'],
77+
id: 'claude-opus-4-20250514',
78+
aliases: ['claude-opus-4', 'claude-opus-4-latest'],
7979
name: 'Claude Opus 4',
8080
costs_currency: 'usd-cents',
8181
input_cost_key: 'input_tokens',
@@ -92,8 +92,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
9292
max_tokens: 32000,
9393
},
9494
{
95-
id: 'claude/claude-sonnet-4-20250514',
96-
aliases: ['claude-sonnet-4-20250514', 'claude-sonnet-4', 'claude-sonnet-4-latest'],
95+
id: 'claude-sonnet-4-20250514',
96+
aliases: ['claude-sonnet-4', 'claude-sonnet-4-latest'],
9797
name: 'Claude Sonnet 4',
9898
costs_currency: 'usd-cents',
9999
input_cost_key: 'input_tokens',
@@ -110,8 +110,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
110110
max_tokens: 64000,
111111
},
112112
{
113-
id: 'claude/claude-3-7-sonnet-20250219',
114-
aliases: ['claude-3-7-sonnet-20250219', 'claude-3-7-sonnet-latest'],
113+
id: 'claude-3-7-sonnet-20250219',
114+
aliases: ['claude-3-7-sonnet-latest'],
115115
succeeded_by: 'claude-sonnet-4-20250514',
116116
costs_currency: 'usd-cents',
117117
input_cost_key: 'input_tokens',
@@ -128,9 +128,9 @@ export const CLAUDE_MODELS: IChatModel[] = [
128128
max_tokens: 8192,
129129
},
130130
{
131-
id: 'claude/claude-3-5-sonnet-20241022',
131+
id: 'claude-3-5-sonnet-20241022',
132132
name: 'Claude 3.5 Sonnet',
133-
aliases: ['claude-3-5-sonnet-20241022', 'claude-3-5-sonnet-latest'],
133+
aliases: ['claude-3-5-sonnet-latest'],
134134
costs_currency: 'usd-cents',
135135
input_cost_key: 'input_tokens',
136136
output_cost_key: 'output_tokens',
@@ -148,9 +148,8 @@ export const CLAUDE_MODELS: IChatModel[] = [
148148
max_tokens: 8192,
149149
},
150150
{
151-
id: 'claude/claude-3-5-sonnet-20240620',
151+
id: 'claude-3-5-sonnet-20240620',
152152
succeeded_by: 'claude-3-5-sonnet-20241022',
153-
aliases: ['claude-3-5-sonnet-20240620'],
154153
costs_currency: 'usd-cents',
155154
input_cost_key: 'input_tokens',
156155
output_cost_key: 'output_tokens',
@@ -166,8 +165,7 @@ export const CLAUDE_MODELS: IChatModel[] = [
166165
max_tokens: 8192,
167166
},
168167
{
169-
id: 'claude/claude-3-haiku-20240307',
170-
aliases: ['claude-3-haiku-20240307'],
168+
id: 'claude-3-haiku-20240307',
171169
costs_currency: 'usd-cents',
172170
input_cost_key: 'input_tokens',
173171
output_cost_key: 'output_tokens',

src/backend/src/services/ai/chat/providers/DeepSeekProvider/DeepSeekProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export class DeepSeekProvider implements IChatProvider {
4040
}
4141

4242
getDefaultModel () {
43-
return 'deepseek/deepseek-chat';
43+
return 'deepseek-chat';
4444
}
4545

4646
models () {

src/backend/src/services/ai/chat/providers/DeepSeekProvider/models.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { IChatModel } from '../types.js';
22

33
export const DEEPSEEK_MODELS: IChatModel[] = [
44
{
5-
id: 'deepseek/deepseek-chat',
5+
id: 'deepseek-chat',
66
name: 'DeepSeek Chat',
7-
aliases: ['deepseek-chat'],
7+
aliases: [],
88
context: 128000,
99
costs_currency: 'usd-cents',
1010
input_cost_key: 'prompt_tokens',
@@ -18,9 +18,9 @@ export const DEEPSEEK_MODELS: IChatModel[] = [
1818
max_tokens: 8000,
1919
},
2020
{
21-
id: 'deepseek/deepseek-reasoner',
21+
id: 'deepseek-reasoner',
2222
name: 'DeepSeek Reasoner',
23-
aliases: ['deepseek-reasoner'],
23+
aliases: [],
2424
context: 128000,
2525
costs_currency: 'usd-cents',
2626
input_cost_key: 'prompt_tokens',

src/backend/src/services/ai/chat/providers/GeminiProvider/GeminiChatProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class GeminiChatProvider implements IChatProvider {
1313
meteringService: MeteringService;
1414
openai: OpenAI;
1515

16-
defaultModel = 'gemini/gemini-2.5-flash';
16+
defaultModel = 'gemini-2.5-flash';
1717

1818
constructor ( meteringService: MeteringService, config: { apiKey: string })
1919
{

src/backend/src/services/ai/chat/providers/GeminiProvider/models.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ import { IChatModel } from '../types';
22

33
export const GEMINI_MODELS: IChatModel[] = [
44
{
5-
id: 'gemini/gemini-2.0-flash',
5+
id: 'gemini-2.0-flash',
66
name: 'Gemini 2.0 Flash',
7-
aliases: ['gemini-2.0-flash'],
87
context: 131072,
98
costs_currency: 'usd-cents',
109
input_cost_key: 'prompt_tokens',
@@ -19,9 +18,8 @@ export const GEMINI_MODELS: IChatModel[] = [
1918
max_tokens: 8192,
2019
},
2120
{
22-
id: 'gemini/gemini-2.0-flash-lite',
21+
id: 'gemini-2.0-flash-lite',
2322
name: 'Gemini 2.0 Flash-Lite',
24-
aliases: ['gemini-2.0-flash-lite'],
2523
context: 1_048_576,
2624
costs_currency: 'usd-cents',
2725
input_cost_key: 'prompt_tokens',
@@ -34,9 +32,8 @@ export const GEMINI_MODELS: IChatModel[] = [
3432
max_tokens: 8192,
3533
},
3634
{
37-
id: 'gemini/gemini-2.5-flash',
35+
id: 'gemini-2.5-flash',
3836
name: 'Gemini 2.5 Flash',
39-
aliases: ['gemini-2.5-flash'],
4037
context: 1_048_576,
4138
costs_currency: 'usd-cents',
4239
input_cost_key: 'prompt_tokens',
@@ -50,9 +47,8 @@ export const GEMINI_MODELS: IChatModel[] = [
5047
max_tokens: 65536,
5148
},
5249
{
53-
id: 'gemini/gemini-2.5-flash-lite',
50+
id: 'gemini-2.5-flash-lite',
5451
name: 'Gemini 2.5 Flash-Lite',
55-
aliases: ['gemini-2.5-flash-lite'],
5652
context: 1_048_576,
5753
costs_currency: 'usd-cents',
5854
input_cost_key: 'prompt_tokens',
@@ -66,9 +62,8 @@ export const GEMINI_MODELS: IChatModel[] = [
6662
max_tokens: 65536,
6763
},
6864
{
69-
id: 'gemini/gemini-2.5-pro',
65+
id: 'gemini-2.5-pro',
7066
name: 'Gemini 2.5 Pro',
71-
aliases: ['gemini-2.5-pro'],
7267
context: 1_048_576,
7368
costs_currency: 'usd-cents',
7469
input_cost_key: 'prompt_tokens',
@@ -82,9 +77,8 @@ export const GEMINI_MODELS: IChatModel[] = [
8277
max_tokens: 200_000,
8378
},
8479
{
85-
id: 'gemini/gemini-3-pro-preview',
80+
id: 'gemini-3-pro-preview',
8681
name: 'Gemini 3 Pro',
87-
aliases: ['gemini-3-pro-preview'],
8882
context: 1_048_576,
8983
costs_currency: 'usd-cents',
9084
input_cost_key: 'prompt_tokens',

src/backend/src/services/ai/chat/providers/GroqAiProvider/GroqAIProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class GroqAIProvider implements IChatProvider {
3939
}
4040

4141
getDefaultModel () {
42-
return 'groq/llama-3.1-8b-instant';
42+
return 'llama-3.1-8b-instant';
4343
}
4444

4545
models () {

0 commit comments

Comments
 (0)