UNPKG

research-cli

Version:

AI-powered research assistant with web search capabilities and beautiful terminal UI

94 lines 2.38 kB
/** * Core type definitions for research-cli */ export interface ProviderRequest { query: string; model?: string | undefined; webSearch?: boolean | undefined; webSearchContextSize?: "low" | "medium" | "high" | undefined; maxTokens?: number | undefined; temperature?: number | undefined; } export interface ProviderEvent { type: "start" | "tool_call" | "tool_result" | "chunk" | "final" | "error"; data?: unknown; } export interface LlmProvider { name: "openai" | "perplexity" | "claude" | "gemini"; streamQuery(input: ProviderRequest): AsyncIterable<ProviderEvent>; supportsWebSearch: boolean; } export interface Citation { url: string; title: string; date?: string | undefined; } export interface ProviderError { code: "PROVIDER_TIMEOUT" | "API_KEY_MISSING" | "RATE_LIMITED" | "NETWORK_ERROR" | "UNKNOWN_ERROR"; message: string; provider: "openai" | "perplexity" | "claude" | "gemini"; } export interface CliOptions { provider: "openai" | "perplexity" | "claude" | "gemini"; model?: string | undefined; web: boolean; webSearchContextSize?: "low" | "medium" | "high" | undefined; stream: boolean; format: "md" | "json" | "jsonl" | "raw"; maxTokens?: number | undefined; temperature?: number | undefined; timeout?: number | undefined; dryRun: boolean; output?: string | undefined; verbose: boolean; } export interface StartEvent { type: "start"; data: { provider: string; model: string; timestamp: number; }; } export interface ToolCallEvent { type: "tool_call"; data: { name: string; args: Record<string, unknown>; }; } export interface ToolResultEvent { type: "tool_result"; data: { name: string; results: unknown[]; }; } export interface ChunkEvent { type: "chunk"; data: { text: string; }; } export interface UsageStats { input_tokens: number; output_tokens: number; total_tokens: number; reasoning_tokens?: number; } export interface FinalEvent { type: "final"; data: { answer: string; citations: Citation[]; usage?: UsageStats | undefined; }; } export interface ErrorEvent { type: "error"; data: { message: string; code: string; }; } //# sourceMappingURL=types.d.ts.map