import type { ChatSurfaceAdapter, ChatSurfaceEventSink, ChatSurfaceIncomingMessage, IAdminForth, IAdminForthEndpointHandlerInput } from "adminforth"; import type { HandleEditTurnInput, HandleSpeechTurnInput, HandleTurnInput, RunAndPersistAgentResponseInput, RunAndPersistAgentResponseResult } from "../../domain/turnTypes.js"; import type { PluginOptions } from "../../types.js"; export type SessionTurn = { id: string; prompt: string; response: string; }; export type AgentEndpointsContext = { adminforth: IAdminForth; options: PluginOptions; handleTurn(input: HandleTurnInput): Promise; handleEditTurn(input: HandleEditTurnInput): Promise; handleSpeechTurn(input: HandleSpeechTurnInput): Promise; steer(input: { sessionId: string; message: string; adminUser: any; }): Promise<{ id: string; queued: number; }>; runAndPersistAgentResponse(input: RunAndPersistAgentResponseInput): Promise; getSessionTurns(sessionId: string): Promise; createNewTurn(sessionId: string, prompt: string, response?: string): Promise; createSystemTurn(sessionId: string, systemMessage: string): Promise; appendSteerToCurrentTurn(sessionId: string, steerText: string): Promise; handleChatSurfaceMessage(adapter: ChatSurfaceAdapter, incoming: ChatSurfaceIncomingMessage, sink: ChatSurfaceEventSink, request: IAdminForthEndpointHandlerInput): Promise; }; export type CoreEndpointsContext = Pick; export type SessionEndpointsContext = Pick; export type ChatSurfaceEndpointsContext = Pick;