diff --git a/src/config/index.mjs b/src/config/index.mjs index 40c56f57..a27932e8 100644 --- a/src/config/index.mjs +++ b/src/config/index.mjs @@ -51,9 +51,13 @@ export const chatgptApiModelKeys = [ 'chatgptApi35_0125', 'chatgptApi4o_128k', 'chatgptApi5Latest', + 'chatgptApi5', 'chatgptApi5_1Latest', + 'chatgptApi5_1', 'chatgptApi5_2Latest', + 'chatgptApi5_2', 'chatgptApi5_3Latest', + 'chatgptApi5_4', 'chatgptApi4oMini', 'chatgptApi4_8k', 'chatgptApi4_8k_0613', @@ -246,9 +250,13 @@ export const Models = { desc: 'ChatGPT (GPT-4-Turbo 128k 0125 Preview)', }, chatgptApi5Latest: { value: 'gpt-5-chat-latest', desc: 'ChatGPT (ChatGPT-5 latest)' }, + chatgptApi5: { value: 'gpt-5', desc: 'ChatGPT (GPT-5)' }, chatgptApi5_1Latest: { value: 'gpt-5.1-chat-latest', desc: 'ChatGPT (ChatGPT-5.1 latest)' }, + chatgptApi5_1: { value: 'gpt-5.1', desc: 'ChatGPT (GPT-5.1)' }, chatgptApi5_2Latest: { value: 'gpt-5.2-chat-latest', desc: 'ChatGPT (ChatGPT-5.2 latest)' }, + chatgptApi5_2: { value: 'gpt-5.2', desc: 'ChatGPT (GPT-5.2)' }, chatgptApi5_3Latest: { value: 'gpt-5.3-chat-latest', desc: 'ChatGPT (ChatGPT-5.3 latest)' }, + chatgptApi5_4: { value: 'gpt-5.4', desc: 'ChatGPT (GPT-5.4)' }, chatgptApi4_1: { value: 'gpt-4.1', desc: 'ChatGPT (GPT-4.1)' }, chatgptApi4_1_mini: { value: 'gpt-4.1-mini', desc: 'ChatGPT (GPT-4.1 mini)' }, diff --git a/tests/unit/config/config-predicates.test.mjs b/tests/unit/config/config-predicates.test.mjs index fa1917eb..92492161 100644 --- a/tests/unit/config/config-predicates.test.mjs +++ b/tests/unit/config/config-predicates.test.mjs @@ -65,6 +65,10 @@ test('getNavigatorLanguage treats zh-Hant locale as zhHant', () => { test('isUsingChatgptApiModel detects chatgpt API models and excludes custom model', () => { assert.equal(isUsingChatgptApiModel({ modelName: 'chatgptApi4oMini' }), true) + assert.equal(isUsingChatgptApiModel({ modelName: 'chatgptApi5' }), true) + assert.equal(isUsingChatgptApiModel({ modelName: 'chatgptApi5_1' }), true) + assert.equal(isUsingChatgptApiModel({ modelName: 'chatgptApi5_2' }), true) + assert.equal(isUsingChatgptApiModel({ modelName: 'chatgptApi5_4' }), true) assert.equal(isUsingChatgptApiModel({ modelName: 'customModel' }), false) }) diff --git a/tests/unit/utils/model-name-convert.test.mjs b/tests/unit/utils/model-name-convert.test.mjs index 019cd455..da950e1a 100644 --- a/tests/unit/utils/model-name-convert.test.mjs +++ b/tests/unit/utils/model-name-convert.test.mjs @@ -117,6 +117,13 @@ test('modelNameToDesc returns desc for a known model name without t function', ( assert.equal(desc, 'ChatGPT (Web)') }) +test('modelNameToDesc returns desc for GPT-5 stable presets', () => { + assert.equal(modelNameToDesc('chatgptApi5'), 'ChatGPT (GPT-5)') + assert.equal(modelNameToDesc('chatgptApi5_1'), 'ChatGPT (GPT-5.1)') + assert.equal(modelNameToDesc('chatgptApi5_2'), 'ChatGPT (GPT-5.2)') + assert.equal(modelNameToDesc('chatgptApi5_4'), 'ChatGPT (GPT-5.4)') +}) + test('modelNameToDesc appends extraCustomModelName for customModel', () => { const desc = modelNameToDesc('customModel', null, 'my-gpt') assert.equal(desc, 'Custom Model (my-gpt)')