fix(chat-params): guard non-positive max output tokens

This commit is contained in:
YeonGyu-Kim
2026-05-10 15:03:01 +09:00
parent 50699e3af1
commit 279f0d150f
4 changed files with 56 additions and 3 deletions
@@ -553,6 +553,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({
@@ -162,6 +162,10 @@ export function resolveCompatibleModelSettings(
}
let maxTokens = input.desired.maxTokens
if (maxTokens !== undefined && maxTokens <= 0) {
maxTokens = undefined
}
if (
maxTokens !== undefined &&
input.capabilities?.maxOutputTokens !== undefined &&