-
-
Notifications
You must be signed in to change notification settings - Fork 272
feat(models): offer the GPT-5.6 family to BYOK OpenAI keys #4454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| --- | ||
| "@mcpjam/inspector": patch | ||
| --- | ||
|
|
||
| GPT-5.6 is selectable with your own OpenAI key. | ||
|
|
||
| The BYOK OpenAI rows are hand-maintained and had stopped at GPT-5.1 while the | ||
| hosted catalog was already serving `gpt-5.6-luna`, `-sol` and `-terra`, so a | ||
| user with a valid key could not pick the models MCPJam already serves for free. | ||
| All three now lead the OpenAI group, with the 1,050,000-token context the | ||
| catalog reports. | ||
|
|
||
| Token counting maps them to GPT-5, the closest id ai-tokenizer knows; an | ||
| approximate count beats dropping to the character-based fallback. Temperature | ||
| needed no new handling — the `gpt-5` carve-out in `modelSupportsTemperature` | ||
| already matches these ids, so the field is omitted rather than sent. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -153,6 +153,17 @@ describe("MCPJam-provided model classification", () => { | |
| } | ||
| }); | ||
|
|
||
| it("offers the current OpenAI models to BYOK keys", () => { | ||
| // BYOK rows are hand-maintained and had drifted to 5.1. See BACK2-714. | ||
| const openaiIds = SUPPORTED_MODELS.filter( | ||
| (m) => m.provider === "openai", | ||
| ).map((m) => String(m.id)); | ||
|
|
||
| for (const id of ["gpt-5.6-luna", "gpt-5.6-sol", "gpt-5.6-terra"]) { | ||
| expect(openaiIds).toContain(id); | ||
| } | ||
| }); | ||
|
|
||
|
Comment on lines
+156
to
+166
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Exercise the complete BYOK contract. This test only inspects As per coding guidelines, all changes in Also applies to: 240-240 🤖 Prompt for AI AgentsSource: Coding guidelines |
||
| it("reports no temperature support for the Anthropic rows that reject it", () => { | ||
| // Fable 5, Opus 5, Opus 4.8/4.7 and Sonnet 5 answer a temperature with a | ||
| // 400, so every one of these rows would fail on its first request while | ||
|
|
@@ -226,6 +237,7 @@ describe("modelSupportsTemperature", () => { | |
| it("still strips temperature for own-provider GPT-5 models", () => { | ||
| expect(modelSupportsTemperature("gpt-5")).toBe(false); | ||
| expect(modelSupportsTemperature("gpt-5.1-codex")).toBe(false); | ||
| expect(modelSupportsTemperature("gpt-5.6-luna")).toBe(false); | ||
| }); | ||
|
|
||
| it("strips temperature for a hosted GPT-5 too", () => { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add direct tests for the new tokenizer mappings.
The changed tests do not call
mapModelIdToTokenizerBackend. A typo in a key or target would pass the catalog tests and make/count-toolsuseestimateTokensFromCharsinstead of the backend tokenizer. Add cases for each bare ID,openai/<id>input, and unknown or empty values returningnull.As per coding guidelines, all changes in
mcpjam-inspector/**/*.{ts,tsx,js,jsx}must include tests for happy paths, validation errors, error handling, and null/empty edge cases.🤖 Prompt for AI Agents
Source: Coding guidelines