feat(KB-119): add configurable thinking effort level
- Add defaultThinkingLevel to core Settings types and exports - Thread thinking level through engine executor, merger, reviewer, triage, and pi - Add effort dropdown to Model settings UI in SettingsModal - Add tests for thinking effort dropdown in SettingsModal
This commit is contained in:
@@ -352,6 +352,7 @@ export class TaskExecutor {
|
||||
onToolStart: agentLogger.onToolStart,
|
||||
defaultProvider: settings.defaultProvider,
|
||||
defaultModelId: settings.defaultModelId,
|
||||
defaultThinkingLevel: settings.defaultThinkingLevel,
|
||||
});
|
||||
|
||||
// Register session so the pause listener can terminate it
|
||||
@@ -542,6 +543,7 @@ export class TaskExecutor {
|
||||
onText: (delta) => options.onAgentText?.(taskId, delta),
|
||||
defaultProvider: settings.defaultProvider,
|
||||
defaultModelId: settings.defaultModelId,
|
||||
defaultThinkingLevel: settings.defaultThinkingLevel,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -239,6 +239,7 @@ export async function aiMergeTask(
|
||||
onToolStart: agentLogger.onToolStart,
|
||||
defaultProvider: settings.defaultProvider,
|
||||
defaultModelId: settings.defaultModelId,
|
||||
defaultThinkingLevel: settings.defaultThinkingLevel,
|
||||
});
|
||||
|
||||
try {
|
||||
|
||||
@@ -34,6 +34,8 @@ export interface AgentOptions {
|
||||
defaultProvider?: string;
|
||||
/** Default model ID within the provider (e.g. "claude-sonnet-4-5"). Used with `defaultProvider`. */
|
||||
defaultModelId?: string;
|
||||
/** Default thinking effort level (e.g. "medium", "high"). When provided, sets the session's thinking level after creation. */
|
||||
defaultThinkingLevel?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,6 +81,11 @@ export async function createKbAgent(options: AgentOptions): Promise<AgentResult>
|
||||
...(selectedModel ? { model: selectedModel } : {}),
|
||||
});
|
||||
|
||||
// Apply thinking level if specified
|
||||
if (options.defaultThinkingLevel) {
|
||||
session.setThinkingLevel(options.defaultThinkingLevel as any);
|
||||
}
|
||||
|
||||
// Wire up event listeners
|
||||
session.subscribe((event) => {
|
||||
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
||||
|
||||
@@ -115,6 +115,8 @@ export interface ReviewOptions {
|
||||
defaultProvider?: string;
|
||||
/** Default model ID within the provider (e.g. "claude-sonnet-4-5"). When set with `defaultProvider`, overrides the reviewer's model selection. */
|
||||
defaultModelId?: string;
|
||||
/** Default thinking effort level for the reviewer agent session. */
|
||||
defaultThinkingLevel?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -143,6 +145,7 @@ export async function reviewStep(
|
||||
onText: (delta) => options.onText?.(delta),
|
||||
defaultProvider: options.defaultProvider,
|
||||
defaultModelId: options.defaultModelId,
|
||||
defaultThinkingLevel: options.defaultThinkingLevel,
|
||||
});
|
||||
|
||||
let reviewText = "";
|
||||
|
||||
@@ -273,6 +273,7 @@ export class TriageProcessor {
|
||||
onToolStart: agentLogger.onToolStart,
|
||||
defaultProvider: settings.defaultProvider,
|
||||
defaultModelId: settings.defaultModelId,
|
||||
defaultThinkingLevel: settings.defaultThinkingLevel,
|
||||
});
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user