graphlit-client
Version:
Graphlit API Client for TypeScript
61 lines (60 loc) • 1.53 kB
TypeScript
import { ConversationMessage, ConversationToolCall } from "../generated/graphql-types.js";
export type ToolHandler = (args: any) => Promise<any>;
export interface AgentOptions {
maxToolRounds?: number;
timeout?: number;
}
export interface AgentMetrics {
totalTime: number;
llmTime?: number;
toolTime?: number;
ttft?: number;
tokensPerSecond?: number;
toolExecutions?: number;
rounds?: number;
}
export interface ContextWindowUsage {
usedTokens: number;
maxTokens: number;
percentage: number;
remainingTokens: number;
}
export interface AgentResult {
message: string;
conversationId: string;
conversationMessage?: ConversationMessage;
toolCalls?: ConversationToolCall[];
toolResults?: ToolCallResult[];
metrics?: AgentMetrics;
usage?: UsageInfo;
contextWindow?: ContextWindowUsage;
error?: AgentError;
}
export interface StreamAgentOptions {
maxToolRounds?: number;
abortSignal?: AbortSignal;
smoothingEnabled?: boolean;
chunkingStrategy?: "character" | "word" | "sentence";
smoothingDelay?: number;
}
export interface ToolCallResult {
id: string;
name: string;
arguments: any;
result?: any;
error?: string;
duration?: number;
}
export interface UsageInfo {
promptTokens: number;
completionTokens: number;
totalTokens: number;
cost?: number;
model?: string;
}
export interface AgentError {
message: string;
code?: string;
recoverable: boolean;
details?: any;
}