fix(coding-agent): refresh thinking border from extensions
closes #3888
This commit is contained in:
@@ -120,6 +120,7 @@ export type AgentSessionEvent =
|
||||
}
|
||||
| { type: "compaction_start"; reason: "manual" | "threshold" | "overflow" }
|
||||
| { type: "session_info_changed"; name: string | undefined }
|
||||
| { type: "thinking_level_changed"; level: ThinkingLevel }
|
||||
| {
|
||||
type: "compaction_end";
|
||||
reason: "manual" | "threshold" | "overflow";
|
||||
@@ -1505,7 +1506,8 @@ export class AgentSession {
|
||||
const effectiveLevel = availableLevels.includes(level) ? level : this._clampThinkingLevel(level, availableLevels);
|
||||
|
||||
// Only persist if actually changing
|
||||
const isChanging = effectiveLevel !== this.agent.state.thinkingLevel;
|
||||
const previousLevel = this.agent.state.thinkingLevel;
|
||||
const isChanging = effectiveLevel !== previousLevel;
|
||||
|
||||
this.agent.state.thinkingLevel = effectiveLevel;
|
||||
|
||||
@@ -1514,6 +1516,12 @@ export class AgentSession {
|
||||
if (this.supportsThinking() || effectiveLevel !== "off") {
|
||||
this.settingsManager.setDefaultThinkingLevel(effectiveLevel);
|
||||
}
|
||||
this._emit({ type: "thinking_level_changed", level: effectiveLevel });
|
||||
void this._extensionRunner.emit({
|
||||
type: "thinking_level_select",
|
||||
level: effectiveLevel,
|
||||
previousLevel,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -718,6 +718,13 @@ export interface ModelSelectEvent {
|
||||
source: ModelSelectSource;
|
||||
}
|
||||
|
||||
/** Fired when a new thinking level is selected */
|
||||
export interface ThinkingLevelSelectEvent {
|
||||
type: "thinking_level_select";
|
||||
level: ThinkingLevel;
|
||||
previousLevel: ThinkingLevel;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// User Bash Events
|
||||
// ============================================================================
|
||||
@@ -958,6 +965,7 @@ export type ExtensionEvent =
|
||||
| ToolExecutionUpdateEvent
|
||||
| ToolExecutionEndEvent
|
||||
| ModelSelectEvent
|
||||
| ThinkingLevelSelectEvent
|
||||
| UserBashEvent
|
||||
| InputEvent
|
||||
| ToolCallEvent
|
||||
@@ -1111,6 +1119,7 @@ export interface ExtensionAPI {
|
||||
on(event: "tool_execution_update", handler: ExtensionHandler<ToolExecutionUpdateEvent>): void;
|
||||
on(event: "tool_execution_end", handler: ExtensionHandler<ToolExecutionEndEvent>): void;
|
||||
on(event: "model_select", handler: ExtensionHandler<ModelSelectEvent>): void;
|
||||
on(event: "thinking_level_select", handler: ExtensionHandler<ThinkingLevelSelectEvent>): void;
|
||||
on(event: "tool_call", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): void;
|
||||
on(event: "tool_result", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): void;
|
||||
on(event: "user_bash", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): void;
|
||||
|
||||
@@ -2658,6 +2658,11 @@ export class InteractiveMode {
|
||||
this.ui.requestRender();
|
||||
break;
|
||||
|
||||
case "thinking_level_changed":
|
||||
this.footer.invalidate();
|
||||
this.updateEditorBorderColor();
|
||||
break;
|
||||
|
||||
case "message_start":
|
||||
if (event.message.role === "custom") {
|
||||
this.addMessageToChat(event.message);
|
||||
|
||||
Reference in New Issue
Block a user