mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-07-10 01:39:25 +00:00
refactor: centralize default thinking resolution
This commit is contained in:
parent
5d96b97654
commit
ee261d9af8
3 changed files with 22 additions and 11 deletions
|
|
@ -113,7 +113,10 @@ export class ProviderManager {
|
|||
}
|
||||
|
||||
resolveThinkingLevel(requestedThinking?: string): ThinkingEffort {
|
||||
return resolveThinkingEffort(requestedThinking, this.state.config.thinking);
|
||||
return resolveThinkingEffort(
|
||||
requestedThinking ?? defaultThinkingToRuntime(this.state.config.defaultThinking),
|
||||
this.state.config.thinking,
|
||||
);
|
||||
}
|
||||
|
||||
resolveSelectedModel(requestedModel: string | undefined): string | undefined {
|
||||
|
|
@ -137,3 +140,8 @@ function normalizeString(value: string | undefined): string | undefined {
|
|||
const trimmed = value.trim();
|
||||
return trimmed.length > 0 ? trimmed : undefined;
|
||||
}
|
||||
|
||||
function defaultThinkingToRuntime(defaultThinking: boolean | undefined): string | undefined {
|
||||
if (defaultThinking === undefined) return undefined;
|
||||
return defaultThinking ? 'on' : 'off';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,9 +143,7 @@ export class KimiCore implements PromisableMethods<CoreAPI> {
|
|||
const config = this.reloadProviderManager();
|
||||
const id = options.id ?? createSessionId();
|
||||
const modelName = this.providerManager.resolveSelectedModel(options.model);
|
||||
const thinkingLevel = this.providerManager.resolveThinkingLevel(
|
||||
options.thinking ?? defaultThinkingToRuntime(config.defaultThinking),
|
||||
);
|
||||
const thinkingLevel = this.providerManager.resolveThinkingLevel(options.thinking);
|
||||
const permissionMode = options.permission ?? config.defaultPermissionMode;
|
||||
const mcpConfig = await resolveSessionMcpConfig({
|
||||
cwd: workDir,
|
||||
|
|
@ -682,11 +680,6 @@ function requiredWorkDir(operation: string, value: string): string {
|
|||
return normalizeWorkDir(value);
|
||||
}
|
||||
|
||||
function defaultThinkingToRuntime(defaultThinking: boolean | undefined): string | undefined {
|
||||
if (defaultThinking === undefined) return undefined;
|
||||
return defaultThinking ? 'on' : 'off';
|
||||
}
|
||||
|
||||
function createSessionId(): string {
|
||||
return `session_${randomUUID()}`;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -585,16 +585,26 @@ describe('ProviderManager thinking level', () => {
|
|||
const manager = new ProviderManager({
|
||||
config: {
|
||||
providers: {},
|
||||
defaultThinking: false,
|
||||
thinking: { effort: 'medium', mode: 'auto' },
|
||||
},
|
||||
});
|
||||
expect(manager.resolveThinkingLevel('on')).toBe('medium');
|
||||
expect(manager.resolveThinkingLevel('off')).toBe('off');
|
||||
expect(manager.resolveThinkingLevel('low')).toBe('low');
|
||||
expect(manager.resolveThinkingLevel()).toBe('medium');
|
||||
expect(manager.resolveThinkingLevel()).toBe('off');
|
||||
|
||||
const managerOnByDefault = new ProviderManager({
|
||||
config: {
|
||||
providers: {},
|
||||
defaultThinking: true,
|
||||
thinking: { effort: 'medium', mode: 'auto' },
|
||||
},
|
||||
});
|
||||
expect(managerOnByDefault.resolveThinkingLevel()).toBe('medium');
|
||||
|
||||
const managerWithoutEffort = new ProviderManager({
|
||||
config: { providers: {}, thinking: { mode: 'auto' } },
|
||||
config: { providers: {}, defaultThinking: true, thinking: { mode: 'auto' } },
|
||||
});
|
||||
expect(managerWithoutEffort.resolveThinkingLevel('on')).toBe('high');
|
||||
expect(managerWithoutEffort.resolveThinkingLevel()).toBe('high');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue