mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 10:05:14 +00:00
fix: use defaultThinkingLevel from settings when enabledModels lacks explicit suffix (#540)
When enabledModels is configured without thinking level suffixes (e.g., 'claude-opus-4-5' instead of 'claude-opus-4-5:high'), the scoped model's default 'off' thinking level was overriding defaultThinkingLevel from settings. Now thinkingLevel in ScopedModel is optional (undefined means 'not explicitly specified'). When passing to SDK, undefined values are filled with defaultThinkingLevel from settings.
This commit is contained in:
parent
f3b7b0b179
commit
cbd3a8cb87
4 changed files with 55 additions and 36 deletions
|
|
@ -235,6 +235,7 @@ function buildSessionOptions(
|
|||
scopedModels: ScopedModel[],
|
||||
sessionManager: SessionManager | undefined,
|
||||
modelRegistry: ModelRegistry,
|
||||
settingsManager: SettingsManager,
|
||||
preloadedExtensions?: LoadedExtension[],
|
||||
): CreateAgentSessionOptions {
|
||||
const options: CreateAgentSessionOptions = {};
|
||||
|
|
@ -261,15 +262,21 @@ function buildSessionOptions(
|
|||
}
|
||||
|
||||
// Thinking level
|
||||
// Only use scoped model's thinking level if it was explicitly specified (e.g., "model:high")
|
||||
// Otherwise, let the SDK use defaultThinkingLevel from settings
|
||||
if (parsed.thinking) {
|
||||
options.thinkingLevel = parsed.thinking;
|
||||
} else if (scopedModels.length > 0 && !parsed.continue && !parsed.resume) {
|
||||
} else if (scopedModels.length > 0 && scopedModels[0].thinkingLevel && !parsed.continue && !parsed.resume) {
|
||||
options.thinkingLevel = scopedModels[0].thinkingLevel;
|
||||
}
|
||||
|
||||
// Scoped models for Ctrl+P cycling
|
||||
// Scoped models for Ctrl+P cycling - fill in default thinking level for models without explicit level
|
||||
if (scopedModels.length > 0) {
|
||||
options.scopedModels = scopedModels;
|
||||
const defaultThinkingLevel = settingsManager.getDefaultThinkingLevel() ?? "off";
|
||||
options.scopedModels = scopedModels.map((sm) => ({
|
||||
model: sm.model,
|
||||
thinkingLevel: sm.thinkingLevel ?? defaultThinkingLevel,
|
||||
}));
|
||||
}
|
||||
|
||||
// API key from CLI - set in authStorage
|
||||
|
|
@ -423,7 +430,14 @@ export async function main(args: string[]) {
|
|||
sessionManager = SessionManager.open(selectedPath);
|
||||
}
|
||||
|
||||
const sessionOptions = buildSessionOptions(parsed, scopedModels, sessionManager, modelRegistry, loadedExtensions);
|
||||
const sessionOptions = buildSessionOptions(
|
||||
parsed,
|
||||
scopedModels,
|
||||
sessionManager,
|
||||
modelRegistry,
|
||||
settingsManager,
|
||||
loadedExtensions,
|
||||
);
|
||||
sessionOptions.authStorage = authStorage;
|
||||
sessionOptions.modelRegistry = modelRegistry;
|
||||
sessionOptions.eventBus = eventBus;
|
||||
|
|
@ -471,7 +485,7 @@ export async function main(args: string[]) {
|
|||
if (scopedModels.length > 0) {
|
||||
const modelList = scopedModels
|
||||
.map((sm) => {
|
||||
const thinkingStr = sm.thinkingLevel !== "off" ? `:${sm.thinkingLevel}` : "";
|
||||
const thinkingStr = sm.thinkingLevel ? `:${sm.thinkingLevel}` : "";
|
||||
return `${sm.model.id}${thinkingStr}`;
|
||||
})
|
||||
.join(", ");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue