refactor: address code review feedback
- Make getProviderLabel() switch exhaustive with explicit openai/gemini arms instead of falling through to env-var checks in default - Add clarifying comment on additionalProperties override in schema normalization
This commit is contained in:
@@ -19,13 +19,11 @@ function getProviderLabel(): string {
|
|||||||
return 'Google Vertex'
|
return 'Google Vertex'
|
||||||
case 'foundry':
|
case 'foundry':
|
||||||
return 'Azure Foundry'
|
return 'Azure Foundry'
|
||||||
|
case 'openai':
|
||||||
|
return 'OpenAI-compatible API'
|
||||||
|
case 'gemini':
|
||||||
|
return 'Gemini API'
|
||||||
default:
|
default:
|
||||||
if (process.env.CLAUDE_CODE_USE_OPENAI === '1' || process.env.CLAUDE_CODE_USE_OPENAI === 'true') {
|
|
||||||
return 'OpenAI-compatible API'
|
|
||||||
}
|
|
||||||
if (process.env.CLAUDE_CODE_USE_GEMINI === '1' || process.env.CLAUDE_CODE_USE_GEMINI === 'true') {
|
|
||||||
return 'Gemini API'
|
|
||||||
}
|
|
||||||
return 'API'
|
return 'API'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,6 +259,8 @@ function normalizeSchemaForOpenAI(
|
|||||||
// OpenAI strict mode requires every property to be listed in required[]
|
// OpenAI strict mode requires every property to be listed in required[]
|
||||||
const allKeys = Object.keys(normalizedProps)
|
const allKeys = Object.keys(normalizedProps)
|
||||||
record.required = Array.from(new Set([...existingRequired, ...allKeys]))
|
record.required = Array.from(new Set([...existingRequired, ...allKeys]))
|
||||||
|
// OpenAI strict mode requires additionalProperties: false on all object
|
||||||
|
// schemas — override unconditionally to ensure nested objects comply.
|
||||||
record.additionalProperties = false
|
record.additionalProperties = false
|
||||||
} else {
|
} else {
|
||||||
// For Gemini: keep only existing required keys that are present in properties
|
// For Gemini: keep only existing required keys that are present in properties
|
||||||
|
|||||||
Reference in New Issue
Block a user