mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-24 03:04:21 +01:00
fix: max output tokens when setting budget thinking tokens (#2056)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
This commit is contained in:
@@ -98,4 +98,18 @@ export namespace ProviderTransform {
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
export function maxOutputTokens(providerID: string, outputLimit: number, options: Record<string, any>): number {
|
||||
if (providerID === "anthropic") {
|
||||
const thinking = options["thinking"]
|
||||
if (typeof thinking === "object" && thinking !== null) {
|
||||
const type = thinking["type"]
|
||||
const budgetTokens = thinking["budgetTokens"]
|
||||
if (type === "enabled" && typeof budgetTokens === "number" && budgetTokens > 0) {
|
||||
return outputLimit - budgetTokens
|
||||
}
|
||||
}
|
||||
}
|
||||
return outputLimit
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1019,7 +1019,7 @@ export namespace Session {
|
||||
: undefined,
|
||||
maxRetries: 3,
|
||||
activeTools: Object.keys(tools).filter((x) => x !== "invalid"),
|
||||
maxOutputTokens: outputLimit,
|
||||
maxOutputTokens: ProviderTransform.maxOutputTokens(model.providerID, outputLimit, params.options),
|
||||
abortSignal: abort.signal,
|
||||
stopWhen: async ({ steps }) => {
|
||||
if (steps.length >= 1000) {
|
||||
|
||||
Reference in New Issue
Block a user