import { AbstractAgent, BaseEvent, Message, RunAgentInput, } from "@ag-ui/client"; import { Observable } from "rxjs"; export interface AgentRunnerRunRequest { threadId: string; agent: AbstractAgent; input: RunAgentInput; joinCode?: string; persistedInputMessages?: Message[]; } export interface AgentRunnerConnectRequest { threadId: string; headers?: Record; joinCode?: string; } export interface AgentRunnerIsRunningRequest { threadId: string; } export interface AgentRunnerStopRequest { threadId: string; } export abstract class AgentRunner { abstract run(request: AgentRunnerRunRequest): Observable; abstract connect(request: AgentRunnerConnectRequest): Observable; abstract isRunning(request: AgentRunnerIsRunningRequest): Promise; abstract stop(request: AgentRunnerStopRequest): Promise; }