fix(coding-agent): expose live tool rebuild options

This commit is contained in:
can1357
2026-07-24 16:29:27 +02:00
parent e0509d5d62
commit 3c80e6f9cd
3 changed files with 12 additions and 17 deletions
@@ -209,6 +209,7 @@ import type {
InteractiveModeContext,
InteractiveModeInitOptions,
InteractiveSelectorDialogOptions,
RenderSessionContextOptions,
SubmittedUserInput,
TodoItem,
TodoPhase,
@@ -4351,10 +4352,7 @@ export class InteractiveMode implements InteractiveModeContext {
return this.#uiHelpers.addMessageToChat(message, options);
}
renderSessionContext(
sessionContext: SessionContext,
options?: { updateFooter?: boolean; populateHistory?: boolean; reuseSettledComponents?: boolean },
): void {
renderSessionContext(sessionContext: SessionContext, options?: RenderSessionContextOptions): void {
for (const message of sessionContext.messages) {
this.noteDisplayableThinkingContent(message);
}
+9 -4
View File
@@ -92,6 +92,14 @@ export interface InteractiveModeInitOptions {
export type InteractiveSelectorDialogOptions = ExtensionUIDialogOptions & Pick<HookSelectorOptions, "disabledIndices">;
export interface RenderSessionContextOptions {
updateFooter?: boolean;
populateHistory?: boolean;
reuseSettledComponents?: boolean;
/** Tool calls whose existing live component remains the sole render owner across a rebuild. */
preservedLiveToolCallIds?: ReadonlySet<string>;
}
export interface InteractiveModeContext {
// UI access
ui: TUI;
@@ -310,10 +318,7 @@ export interface InteractiveModeContext {
reuseSettledComponent?: boolean;
},
): Component[];
renderSessionContext(
sessionContext: SessionContext,
options?: { updateFooter?: boolean; populateHistory?: boolean; reuseSettledComponents?: boolean },
): void;
renderSessionContext(sessionContext: SessionContext, options?: RenderSessionContextOptions): void;
renderInitialMessages(options?: { preserveExistingChat?: boolean; clearTerminalHistory?: boolean }): void;
getUserMessageText(message: Message): string;
findLastAssistantMessage(): AssistantMessage | undefined;
@@ -33,7 +33,7 @@ import { UserMessageComponent } from "../../modes/components/user-message";
import { decodeStreamedToolArgs, streamingStringKeysForTool } from "../../modes/controllers/tool-args-reveal";
import { materializeImageReferenceLinksSync } from "../../modes/image-references";
import { theme } from "../../modes/theme/theme";
import type { CompactionQueuedMessage, InteractiveModeContext } from "../../modes/types";
import type { CompactionQueuedMessage, InteractiveModeContext, RenderSessionContextOptions } from "../../modes/types";
import {
BACKGROUND_TAN_DISPATCH_MESSAGE_TYPE,
type CustomMessage,
@@ -72,14 +72,6 @@ type AddMessageOptions = {
reuseSettledComponent?: boolean;
};
type RenderSessionContextOptions = {
updateFooter?: boolean;
populateHistory?: boolean;
reuseSettledComponents?: boolean;
/** Tool calls whose existing live component remains the sole render owner across a rebuild. */
preservedLiveToolCallIds?: ReadonlySet<string>;
};
function imageLinksForMessage(
message: Extract<AgentMessage, { role: "developer" | "user" }>,
putBlobSync: InteractiveModeContext["sessionManager"]["putBlobSync"],