UNPKG

graphlit-client

Version:
86 lines (85 loc) 2.53 kB
import { AgentStreamEvent } from "../types/ui-events.js"; import { StreamEvent } from "../types/internal.js"; import { ChunkingStrategy } from "./chunk-buffer.js"; /** * Adapter that transforms low-level streaming events into high-level UI events * using GraphQL types for type safety */ export declare class UIEventAdapter { private onEvent; private conversationId; private model?; private modelService?; private tokenCount; private currentMessage; private isStreaming; private conversationStartTime; private streamStartTime; private firstTokenTime; private lastTokenTime; private tokenDelays; private activeToolCalls; private lastUpdateTime; private updateTimer?; private chunkBuffer?; private smoothingDelay; private chunkQueue; private contextWindowUsage?; private finalMetrics?; private reasoningContent; private reasoningFormat?; private reasoningSignature?; private isInReasoning; private usageData?; private hasToolCallsInProgress; private hadToolCallsBeforeResume; constructor(onEvent: (event: AgentStreamEvent) => void, conversationId: string, options?: { smoothingEnabled?: boolean; chunkingStrategy?: ChunkingStrategy; smoothingDelay?: number; model?: string; modelService?: string; }); /** * Process a raw streaming event and emit appropriate UI events */ handleEvent(event: StreamEvent): void; private handleStart; private handleToken; private handleMessage; private handleToolCallStart; private handleToolCallDelta; private handleToolCallParsed; private handleToolCallComplete; private handleComplete; private handleError; private scheduleMessageUpdate; private scheduleChunkEmission; private emitNextChunk; private emitMessageUpdate; private emitUIEvent; private handleContextWindow; private handleReasoningStart; private handleReasoningDelta; private handleReasoningEnd; /** * Clean up any pending timers */ dispose(): void; /** * Get the total completion time in milliseconds */ getCompletionTime(): number | undefined; /** * Get the time to first token in milliseconds */ getTTFT(): number | undefined; /** * Get the throughput in tokens per second */ getThroughput(): number | undefined; /** * Set usage data from native provider */ setUsageData(usage: any): void; }