export type { Role, Message as AgMessage, // Rename to avoid conflict with our extended version UserMessage as AgUserMessage, AssistantMessage as AgAssistantMessage, ToolMessage as AgToolMessage, SystemMessage as AgSystemMessage, DeveloperMessage as AgDeveloperMessage, ToolCall, FunctionCall, Tool, Context, State, RunAgentInput, EventType, BaseEvent, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, TextMessageChunkEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallChunkEvent, ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, RawEvent, CustomEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, ThinkingStartEvent, ThinkingEndEvent, } from '@ag-ui/core'; import type { EventType, Message as AgMessage, Role, ToolCall as AgToolCall, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, TextMessageChunkEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallChunkEvent, ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, ThinkingStartEvent, ThinkingEndEvent, RawEvent, CustomEvent } from '@ag-ui/core'; export type Id = string; export type MessageStatus = 'streaming' | 'completed' | 'errored' | 'canceled'; export interface UsageDoc { prompt?: number; completion?: number; total?: number; } export type Message = AgMessage & { conversationId?: Id; clientMessageId?: Id; status?: MessageStatus; usage?: UsageDoc; createdAt?: string; metadata?: Record; attachments?: Id[]; toolCalls?: AgToolCall[]; toolCallId?: Id; }; export type MessageDoc = Message; export interface ConversationDoc { id: Id; title: string; createdAt: string; updatedAt: string; revision: string; status: 'active' | 'archived'; metadata?: Record; } export type AttachmentState = 'pending' | 'uploading' | 'uploaded' | 'processing' | 'available' | 'failed'; export interface AttachmentDoc { id: Id; name: string; mime: string; size: number; upload_url: string; state: AttachmentState; metadata?: Record; } export interface ToolDefinition { name: string; description?: string; inputSchema?: unknown; outputSchema?: unknown; } export interface McpServerRef { name: string; transport: 'stdio' | 'sse' | 'ws'; uri?: string; metadata?: Record; } export interface AgentDescriptor { id: Id; name: string; model?: string; tools?: ToolDefinition[]; mcp?: McpServerRef[]; capabilities?: Record; metadata?: Record; } export interface StateSnapshot { sessionId: string; revision: string; conversations: ConversationDoc[]; messages: Message[]; attachments: AttachmentDoc[]; activeConversationId?: Id; agent?: AgentDescriptor; state?: any; } export interface ExtendedEventPayloads { 'client.ready': { sessionId: string; }; 'client.resume': { sessionId: string; sinceRevision?: string; }; 'client.heartbeat': { ts: string; }; 'client.closed': { reason?: string; }; 'state.snapshot': StateSnapshot; 'conversation.created': { conversation: ConversationDoc; }; 'conversation.updated': { conversation: ConversationDoc; }; 'conversation.archived': { conversationId: Id; }; 'message.created': { message: Message; }; 'message.delta': { messageId: Id; textDelta?: string; usageDelta?: Partial; }; 'message.completed': { messageId: Id; usage?: UsageDoc; }; 'message.errored': { messageId: Id; error: { code: string; message: string; details?: unknown; }; }; 'message.canceled': { messageId: Id; }; 'attachment.uploading': { attachment: AttachmentDoc; }; 'attachment.progress': { fileId: Id; progress: { percentage: number; loaded: number; total: number; }; }; 'attachment.available': { attachment: AttachmentDoc; }; 'attachment.failed': { fileId: Id; attachment?: AttachmentDoc; error: { code: string; message: string; details?: unknown; }; }; 'attachments.persisted': { conversationId: Id; attachments: Record; }; } export type ExtendedEventType = keyof ExtendedEventPayloads; export interface AgEventPayloadMap { TEXT_MESSAGE_START: TextMessageStartEvent; TEXT_MESSAGE_CONTENT: TextMessageContentEvent; TEXT_MESSAGE_END: TextMessageEndEvent; TEXT_MESSAGE_CHUNK: TextMessageChunkEvent; TOOL_CALL_START: ToolCallStartEvent; TOOL_CALL_ARGS: ToolCallArgsEvent; TOOL_CALL_END: ToolCallEndEvent; TOOL_CALL_CHUNK: ToolCallChunkEvent; TOOL_CALL_RESULT: ToolCallResultEvent; STATE_SNAPSHOT: StateSnapshotEvent; STATE_DELTA: StateDeltaEvent; MESSAGES_SNAPSHOT: MessagesSnapshotEvent; RUN_STARTED: RunStartedEvent; RUN_FINISHED: RunFinishedEvent; RUN_ERROR: RunErrorEvent; STEP_STARTED: StepStartedEvent; STEP_FINISHED: StepFinishedEvent; THINKING_START: ThinkingStartEvent; THINKING_END: ThinkingEndEvent; THINKING_TEXT_MESSAGE_START: ThinkingStartEvent; THINKING_TEXT_MESSAGE_CONTENT: ThinkingEndEvent; THINKING_TEXT_MESSAGE_END: ThinkingEndEvent; RAW: RawEvent; CUSTOM: CustomEvent; } export type AllEventType = EventType | ExtendedEventType | keyof AgEventPayloadMap; export type AllEventPayloads = ExtendedEventPayloads & AgEventPayloadMap; export type EventPayloads = ExtendedEventPayloads; export type AgSpecEventPayloads = AllEventPayloads; export type AgSpecEventType = AllEventType; export type AgRole = Role; export interface JsonPatchOp { op: 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test'; path: string; value?: unknown; from?: string; } export interface AgUiClient { on(type: E, handler: (payload: any) => void): () => void; off(type: E, handler: (payload: any) => void): void; emit(type: E, payload: any): void; createConversation(title?: string, metadata?: Record): Promise; listConversations(): Promise; getConversation(id: Id): Promise; updateConversation(id: Id, updates: Partial): Promise; archiveConversation(id: Id): Promise; setActiveThread?(threadId: string): void; sendMessage(conversationId: Id | null, // null for auto-create text: string, options?: { attachments?: Id[]; metadata?: Record; onEvent?: (event: { type: string; data: any; }) => void; }): Promise; getMessages(conversationId: Id): Promise; cancelMessage(conversationId: Id, messageId: Id): Promise; close(): void; } //# sourceMappingURL=types.d.ts.map