graphlit-client
Version:
Graphlit API Client for TypeScript
86 lines (85 loc) • 2.53 kB
TypeScript
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;
}