fix(coding-agent): forward images through steer/followUp during streaming

prompt() computed currentImages but never passed them to _queueSteer()
or _queueFollowUp() in the streaming branch. Both methods only accepted
text and built content as [{ type: 'text', text }], dropping images.

- _queueSteer/_queueFollowUp now accept optional ImageContent[]
- streaming branch in prompt() passes currentImages through
- public steer()/followUp() accept and forward optional images
- RPC types, handler, and client updated for steer/follow_up images
- rpc.md: document images on steer/follow_up, fix ImageContent examples
This commit is contained in:
Aliou Diallo 2026-02-05 02:33:05 +01:00
parent 634899aba0
commit b315abf998
5 changed files with 44 additions and 20 deletions

View file

@ -175,15 +175,15 @@ export class RpcClient {
/**
* Queue a steering message to interrupt the agent mid-run.
*/
async steer(message: string): Promise<void> {
await this.send({ type: "steer", message });
async steer(message: string, images?: ImageContent[]): Promise<void> {
await this.send({ type: "steer", message, images });
}
/**
* Queue a follow-up message to be processed after the agent finishes.
*/
async followUp(message: string): Promise<void> {
await this.send({ type: "follow_up", message });
async followUp(message: string, images?: ImageContent[]): Promise<void> {
await this.send({ type: "follow_up", message, images });
}
/**

View file

@ -328,12 +328,12 @@ export async function runRpcMode(session: AgentSession): Promise<never> {
}
case "steer": {
await session.steer(command.message);
await session.steer(command.message, command.images);
return success(id, "steer");
}
case "follow_up": {
await session.followUp(command.message);
await session.followUp(command.message, command.images);
return success(id, "follow_up");
}

View file

@ -18,8 +18,8 @@ import type { CompactionResult } from "../../core/compaction/index.js";
export type RpcCommand =
// Prompting
| { id?: string; type: "prompt"; message: string; images?: ImageContent[]; streamingBehavior?: "steer" | "followUp" }
| { id?: string; type: "steer"; message: string }
| { id?: string; type: "follow_up"; message: string }
| { id?: string; type: "steer"; message: string; images?: ImageContent[] }
| { id?: string; type: "follow_up"; message: string; images?: ImageContent[] }
| { id?: string; type: "abort" }
| { id?: string; type: "new_session"; parentSession?: string }