UNPKG

graphlit-client

Version:
75 lines (74 loc) 1.89 kB
import { ConversationMessage, ConversationToolCall } from "../generated/graphql-types.js"; /** * Tool execution status for streaming */ export type ToolExecutionStatus = "preparing" | "executing" | "ready" | "completed" | "failed"; /** * Context window usage event - emitted at start of agent interaction */ export type ContextWindowEvent = { type: "context_window"; usage: { usedTokens: number; maxTokens: number; percentage: number; remainingTokens: number; }; timestamp: Date; }; /** * Simplified UI-focused streaming events using GraphQL types */ export type AgentStreamEvent = { type: "conversation_started"; conversationId: string; timestamp: Date; model?: string; } | ContextWindowEvent | { type: "message_update"; message: Partial<ConversationMessage> & { message: string; }; isStreaming: boolean; metrics?: { ttft?: number; elapsedTime: number; conversationDuration: number; tokenCount?: number; avgTokenDelay?: number; streamingThroughput?: number; }; } | { type: "tool_update"; toolCall: ConversationToolCall; status: ToolExecutionStatus; result?: unknown; error?: string; } | { type: "conversation_completed"; message: ConversationMessage; metrics?: { ttft?: number; totalTime: number; conversationDuration: number; tokenCount?: number; llmTokens?: number; avgTokenDelay?: number; streamingThroughput?: number; }; contextWindow?: { usedTokens: number; maxTokens: number; percentage: number; remainingTokens: number; }; } | { type: "error"; error: { message: string; code?: string; recoverable?: boolean; }; conversationId: string; timestamp: Date; };