Merge pull request #3914 from code-yeongyu/fix/max-output-tokens

fix: prevent non-positive maxOutputTokens from leaking to SDK
This commit is contained in:
YeonGyu-Kim
2026-05-11 09:22:39 +09:00
committed by GitHub
4 changed files with 107 additions and 8 deletions
@@ -615,6 +615,18 @@ describe("resolveCompatibleModelSettings", () => {
expect(result.changes).toEqual([])
})
test("#given desired.maxTokens is 0 #then maxTokens is dropped", () => {
const result = resolveCompatibleModelSettings({
providerID: "openai",
modelID: "gpt-5.4",
desired: { maxTokens: 0 },
capabilities: { maxOutputTokens: 128_000 },
})
expect(result.maxTokens).toBeUndefined()
expect(result.changes).toEqual([])
})
// Passthrough: undefined desired values produce no changes
test("no-op when desired settings are empty", () => {
const result = resolveCompatibleModelSettings({
@@ -175,6 +175,10 @@ export function resolveCompatibleModelSettings(
}
let maxTokens = input.desired.maxTokens
if (maxTokens !== undefined && maxTokens <= 0) {
maxTokens = undefined
}
if (
maxTokens !== undefined &&
input.capabilities?.maxOutputTokens !== undefined &&