From 82d0da8232525fee8470c06971f38e7f9dfd9396 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 1 May 2026 23:37:37 +0800 Subject: [PATCH] Add OpenAI's GPT-5.5 model Refs: - https://developers.openai.com/api/docs/models/gpt-5.5 - https://developers.openai.com/api/docs/guides/latest-model --- src/_locales/de/main.json | 1 + src/_locales/en/main.json | 1 + src/_locales/es/main.json | 1 + src/_locales/fr/main.json | 1 + src/_locales/in/main.json | 1 + src/_locales/it/main.json | 1 + src/_locales/ja/main.json | 1 + src/_locales/ko/main.json | 1 + src/_locales/pt/main.json | 1 + src/_locales/ru/main.json | 1 + src/_locales/tr/main.json | 1 + src/_locales/zh-hans/main.json | 1 + src/_locales/zh-hant/main.json | 1 + src/config/index.mjs | 2 ++ tests/unit/config/config-predicates.test.mjs | 1 + tests/unit/services/apis/openai-token-params.test.mjs | 1 + tests/unit/utils/model-name-convert.test.mjs | 1 + 17 files changed, 18 insertions(+) diff --git a/src/_locales/de/main.json b/src/_locales/de/main.json index b3845deb..1b72f6ee 100644 --- a/src/_locales/de/main.json +++ b/src/_locales/de/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/en/main.json b/src/_locales/en/main.json index a6f0d29e..2d819c66 100644 --- a/src/_locales/en/main.json +++ b/src/_locales/en/main.json @@ -200,5 +200,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/es/main.json b/src/_locales/es/main.json index 7f916a9c..93e94396 100644 --- a/src/_locales/es/main.json +++ b/src/_locales/es/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/fr/main.json b/src/_locales/fr/main.json index c9341943..f3a0ebb6 100644 --- a/src/_locales/fr/main.json +++ b/src/_locales/fr/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/in/main.json b/src/_locales/in/main.json index 1fa5b7d9..05359afc 100644 --- a/src/_locales/in/main.json +++ b/src/_locales/in/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/it/main.json b/src/_locales/it/main.json index 400fa546..dae3398c 100644 --- a/src/_locales/it/main.json +++ b/src/_locales/it/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/ja/main.json b/src/_locales/ja/main.json index ac19edc8..d8e1ac5f 100644 --- a/src/_locales/ja/main.json +++ b/src/_locales/ja/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/ko/main.json b/src/_locales/ko/main.json index 4348a7c1..aeaa33a5 100644 --- a/src/_locales/ko/main.json +++ b/src/_locales/ko/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/pt/main.json b/src/_locales/pt/main.json index d3a5bc56..f9e1a7e3 100644 --- a/src/_locales/pt/main.json +++ b/src/_locales/pt/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/ru/main.json b/src/_locales/ru/main.json index b6852bbd..ff9f3093 100644 --- a/src/_locales/ru/main.json +++ b/src/_locales/ru/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/tr/main.json b/src/_locales/tr/main.json index 4bf6bb9d..34f4587f 100644 --- a/src/_locales/tr/main.json +++ b/src/_locales/tr/main.json @@ -199,5 +199,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/zh-hans/main.json b/src/_locales/zh-hans/main.json index 01c4299e..bed349e9 100644 --- a/src/_locales/zh-hans/main.json +++ b/src/_locales/zh-hans/main.json @@ -206,5 +206,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/_locales/zh-hant/main.json b/src/_locales/zh-hant/main.json index 25686ca2..a31ba929 100644 --- a/src/_locales/zh-hant/main.json +++ b/src/_locales/zh-hant/main.json @@ -201,5 +201,6 @@ "OpenAI (GPT-5.4)": "OpenAI (GPT-5.4)", "OpenAI (GPT-5.4 mini)": "OpenAI (GPT-5.4 mini)", "OpenAI (GPT-5.4 nano)": "OpenAI (GPT-5.4 nano)", + "OpenAI (GPT-5.5)": "OpenAI (GPT-5.5)", "Anthropic (Claude Sonnet 4.6)": "Anthropic (Claude Sonnet 4.6)" } diff --git a/src/config/index.mjs b/src/config/index.mjs index cb1e0c3e..035a9f9d 100644 --- a/src/config/index.mjs +++ b/src/config/index.mjs @@ -60,6 +60,7 @@ export const chatgptApiModelKeys = [ 'chatgptApi5_4', 'chatgptApi5_4Mini', 'chatgptApi5_4Nano', + 'chatgptApi5_5', 'chatgptApi4oMini', 'chatgptApi4_8k', 'chatgptApi4_8k_0613', @@ -264,6 +265,7 @@ export const Models = { chatgptApi5_4: { value: 'gpt-5.4', desc: 'OpenAI (GPT-5.4)' }, chatgptApi5_4Mini: { value: 'gpt-5.4-mini', desc: 'OpenAI (GPT-5.4 mini)' }, chatgptApi5_4Nano: { value: 'gpt-5.4-nano', desc: 'OpenAI (GPT-5.4 nano)' }, + chatgptApi5_5: { value: 'gpt-5.5', desc: 'OpenAI (GPT-5.5)' }, 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)' }, diff --git a/tests/unit/config/config-predicates.test.mjs b/tests/unit/config/config-predicates.test.mjs index 8ea2f9a6..0b334b2c 100644 --- a/tests/unit/config/config-predicates.test.mjs +++ b/tests/unit/config/config-predicates.test.mjs @@ -36,6 +36,7 @@ const representativeChatgptApiModelNames = [ 'chatgptApi5_4', 'chatgptApi5_4Mini', 'chatgptApi5_4Nano', + 'chatgptApi5_5', ] const representativeGptCompletionApiModelNames = ['gptApiInstruct'] const representativeClaudeApiModelNames = ['claude37SonnetApi', 'claudeOpus4Api'] diff --git a/tests/unit/services/apis/openai-token-params.test.mjs b/tests/unit/services/apis/openai-token-params.test.mjs index 4c50a250..d60d20b3 100644 --- a/tests/unit/services/apis/openai-token-params.test.mjs +++ b/tests/unit/services/apis/openai-token-params.test.mjs @@ -24,6 +24,7 @@ test('uses max_completion_tokens for recent gpt-5.x model names', () => { 'gpt-5.3-chat-latest', 'gpt-5.4-mini', 'gpt-5.4-nano', + 'gpt-5.5', ] for (const model of models) { diff --git a/tests/unit/utils/model-name-convert.test.mjs b/tests/unit/utils/model-name-convert.test.mjs index fb1fe488..0a8e33f9 100644 --- a/tests/unit/utils/model-name-convert.test.mjs +++ b/tests/unit/utils/model-name-convert.test.mjs @@ -125,6 +125,7 @@ test('modelNameToDesc returns desc for GPT-5 stable presets', () => { assert.equal(modelNameToDesc('chatgptApi5_4'), 'OpenAI (GPT-5.4)') assert.equal(modelNameToDesc('chatgptApi5_4Mini'), 'OpenAI (GPT-5.4 mini)') assert.equal(modelNameToDesc('chatgptApi5_4Nano'), 'OpenAI (GPT-5.4 nano)') + assert.equal(modelNameToDesc('chatgptApi5_5'), 'OpenAI (GPT-5.5)') }) test('modelNameToDesc appends extraCustomModelName for customModel', () => {