Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/_locales/en/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@
"OpenAI (GPT-6 Astra)": "OpenAI (GPT-6 Astra)",
"OpenAI (GPT-6 Sol)": "OpenAI (GPT-6 Sol)",
"OpenAI (GPT-6 Luna)": "OpenAI (GPT-6 Luna)",
"OpenAI (GPT-6.1 Sol)": "OpenAI (GPT-6.1 Sol)",
"Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)",
"Anthropic (Claude Sonnet 5.5)": "Anthropic (Claude Sonnet 5.5)",
"This provider is still used by other API modes or saved conversations": "This provider is still used by other API modes or saved conversations",
Expand Down
4 changes: 3 additions & 1 deletion src/config/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export const chatgptApiModelKeys = [
'chatgptApi6Astra',
'chatgptApi6Sol',
'chatgptApi6Luna',
'chatgptApi6_1Sol',
'chatgptApi4oMini',
'chatgptApi4_1',
'chatgptApi4_1_mini',
Expand Down Expand Up @@ -340,6 +341,7 @@ export const Models = {
chatgptApi6Astra: { value: 'gpt-6-astra', desc: 'OpenAI (GPT-6 Astra)' },
chatgptApi6Sol: { value: 'gpt-6-sol', desc: 'OpenAI (GPT-6 Sol)' },
chatgptApi6Luna: { value: 'gpt-6-luna', desc: 'OpenAI (GPT-6 Luna)' },
chatgptApi6_1Sol: { value: 'gpt-6.1-sol', desc: 'OpenAI (GPT-6.1 Sol)' },

chatgptApi4_1: { value: 'gpt-4.1', desc: 'OpenAI (GPT-4.1)' },
chatgptApi4_1_mini: { value: 'gpt-4.1-mini', desc: 'OpenAI (GPT-4.1 mini)' },
Expand Down Expand Up @@ -774,7 +776,7 @@ export const defaultApiModeIds = [
'ollamaModel',
'customModel',
'azureOpenAi',
'chatgptApi6Sol',
'chatgptApi6_1Sol',
'chatgptApi5_6Terra',
'chatgptApi6Luna',
'chatgptApi6Astra',
Expand Down
2 changes: 1 addition & 1 deletion src/services/apis/openai-token-params.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const OPENAI_MAX_COMPLETION_TOKENS_MODEL_PATTERN =
/^(?:gpt-5(?:[.-]|$)|gpt-6-(?:astra|sol|luna)(?:-|$)|chat-latest$)/
/^(?:gpt-5(?:[.-]|$)|gpt-6(?:\.1-sol|-(?:astra|sol|luna))(?:-|$)|chat-latest$)/

function shouldUseMaxCompletionTokens(provider, model) {
const normalizedProvider = String(provider || '').toLowerCase()
Expand Down
1 change: 1 addition & 0 deletions src/services/apis/temperature-params.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const MODELS_WITHOUT_CUSTOM_TEMPERATURE = new Set([
'gpt-6-astra',
'gpt-6-sol',
'gpt-6-luna',
'gpt-6-1-sol',
])

function normalizeModelId(model) {
Expand Down
6 changes: 4 additions & 2 deletions tests/unit/config/config-predicates.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ const representativeChatgptApiModelNames = [
'chatgptApi5_6Luna',
'chatgptApi6Sol',
'chatgptApi6Luna',
'chatgptApi6_1Sol',
]
const representativeGptCompletionApiModelNames = ['gptApiInstruct']
const representativeClaudeApiModelNames = ['claudeOpus48Api', 'claudeSonnet46Api']
Expand Down Expand Up @@ -85,9 +86,10 @@ afterEach(() => {
restoreNavigator()
})

test('GPT-6 Sol and Luna replace their GPT-5.6 counterparts in the default presets', () => {
assert.equal(defaultApiModeIds.includes('chatgptApi6Sol'), true)
test('GPT-6 defaults use GPT-6.1 Sol and GPT-6 Luna', () => {
assert.equal(defaultApiModeIds.includes('chatgptApi6_1Sol'), true)
assert.equal(defaultApiModeIds.includes('chatgptApi6Luna'), true)
assert.equal(defaultApiModeIds.includes('chatgptApi6Sol'), false)
assert.equal(defaultApiModeIds.includes('chatgptApi5_6Sol'), false)
assert.equal(defaultApiModeIds.includes('chatgptApi5_6Luna'), false)
})
Expand Down
1 change: 1 addition & 0 deletions tests/unit/services/apis/openai-api-compat.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,7 @@ test('generateAnswersWithOpenAiApi uses max_completion_tokens for GPT-6 and omit
for (const [modelName, model] of [
['chatgptApi6Sol', 'gpt-6-sol'],
['chatgptApi6Luna', 'gpt-6-luna'],
['chatgptApi6_1Sol', 'gpt-6.1-sol'],
]) {
const newSession = {
modelName,
Expand Down
7 changes: 7 additions & 0 deletions tests/unit/services/apis/openai-token-params.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,9 @@ test('uses completion token limits only for supported OpenAI GPT-6 models', () =
'GPT-6-ASTRA',
'gpt-6-sol',
'gpt-6-luna',
'gpt-6.1-sol',
'gpt-6.1-sol-20260929',
'GPT-6.1-SOL',
]) {
assert.deepEqual(getChatCompletionsTokenParams('openai', model, 1024), {
max_completion_tokens: 1024,
Expand All @@ -107,9 +110,13 @@ test('uses completion token limits only for supported OpenAI GPT-6 models', () =
for (const model of [
'gpt-6-astral',
'gpt-6-solar',
'gpt-6.1-solar',
'gpt-6.10-sol',
'my-gpt-6-astra',
'my-gpt-6.1-sol',
'gpt-60',
'openai/gpt-6-astra',
'openai/gpt-6.1-sol',
]) {
assert.deepEqual(getChatCompletionsTokenParams('openai', model, 1024), {
max_tokens: 1024,
Expand Down
14 changes: 13 additions & 1 deletion tests/unit/services/apis/temperature-params.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ test('temperature overrides omit GPT-6 models across provider ID formats', () =>
'openai/gpt-6-sol',
'gpt-6-luna',
'openai/gpt-6-luna',
'gpt-6.1-sol',
'openai/gpt-6.1-sol',
'GPT-6.1-SOL',
'gpt-6.1-sol-20260929',
]) {
assert.equal(canApplyTemperatureOverride(model), false, model)
assert.deepEqual(
Expand All @@ -123,7 +127,15 @@ test('temperature overrides omit GPT-6 models across provider ID formats', () =>
model,
)
}
for (const model of ['gpt-6-astral', 'gpt-6-solar', 'my-gpt-6-astra', 'gpt-4.1']) {
for (const model of [
'gpt-6-astral',
'gpt-6-solar',
'gpt-6.1-solar',
'gpt-6.10-sol',
'my-gpt-6-astra',
'my-gpt-6.1-sol',
'gpt-4.1',
]) {
assert.equal(canApplyTemperatureOverride(model), true, model)
}
})
1 change: 1 addition & 0 deletions tests/unit/utils/model-name-convert.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -792,6 +792,7 @@ test('modelNameToDesc returns desc for stable GPT API presets', () => {
assert.equal(modelNameToDesc('chatgptApi5_6Luna'), 'OpenAI (GPT-5.6 Luna)')
assert.equal(modelNameToDesc('chatgptApi6Sol'), 'OpenAI (GPT-6 Sol)')
assert.equal(modelNameToDesc('chatgptApi6Luna'), 'OpenAI (GPT-6 Luna)')
assert.equal(modelNameToDesc('chatgptApi6_1Sol'), 'OpenAI (GPT-6.1 Sol)')
})

test('modelNameToDesc appends extraCustomModelName for customModel', () => {
Expand Down
Loading