/** * Client types for LLM package */ import type { Logger } from '@qianxude/shared'; import type { LLMConfig } from './config.js'; import type { LLMMessage } from './message.js'; import type { CompletionOptions, LLMTaskOptions } from './options.js'; import type { LLMResponse, LLMStreamChunk } from './response.js'; import type { LLMTask } from './task.js'; /** * New LLM client interface with provider-model-task architecture * This is the CEKB-style interface with initialize() and task-based selection */ export interface TaskBasedLLMClient { /** Initialize the client by loading configuration */ initialize(): Promise; /** * Complete a request with either a prompt string or messages array * @param input - Either a prompt string or an array of LLMMessage objects * @param options - Optional completion options */ complete(input: string | LLMMessage[], options?: CompletionOptions): Promise; /** * Stream a request with either a prompt string or messages array * @param input - Either a prompt string or an array of LLMMessage objects * @param options - Optional completion options */ stream(input: string | LLMMessage[], options?: CompletionOptions): AsyncGenerator; /** Get the model ID for a specific task */ getModelForTask(task: string): string; /** Get the raw configuration */ getConfig(): LLMConfig; /** * Create a task with resolved configuration * @param taskName - The task name to resolve configuration for * @param options - Optional task-level options */ createTask(taskName: string, options?: LLMTaskOptions): LLMTask; } /** Options for creating the new CEKB-style LLM client */ export interface LLMClientOptions { /** Path to llm.manifest.json configuration file (default: /llm.manifest.json) */ manifestPath?: string; /** Logger for debugging */ logger?: Logger; } //# sourceMappingURL=client.d.ts.map