/** * Runner Types * Types for communicating with the llama.cpp runner process */ import type { ModelOptions } from './api.js'; export declare enum RunnerStatus { STARTING = "starting", LOADING = "loading", READY = "ready", BUSY = "busy", ERROR = "error", STOPPED = "stopped" } export interface RunnerProcess { pid: number; port: number; status: RunnerStatus; modelPath: string; startedAt: Date; lastUsedAt: Date; vramSize: number; totalSize: number; } export interface CompletionRequest { prompt: string; images?: string[]; grammar?: string; cachePrompt?: boolean; temperature?: number; topK?: number; topP?: number; minP?: number; typicalP?: number; repeatPenalty?: number; repeatLastN?: number; presencePenalty?: number; frequencyPenalty?: number; seed?: number; stop?: string[]; nPredict?: number; nKeep?: number; logprobs?: boolean; topLogprobs?: number; stream?: boolean; } export interface CompletionResponse { content: string; stop: boolean; stopReason?: 'stop' | 'length' | 'eos'; generationSettings?: Record; model?: string; promptEvalCount?: number; promptEvalDuration?: number; evalCount?: number; evalDuration?: number; completionProbabilities?: TokenProbability[]; } export interface TokenProbability { content: string; probs: Array<{ tok_str: string; prob: number; }>; } export interface EmbeddingRunnerRequest { content: string; } export interface EmbeddingRunnerResponse { embedding: number[]; promptEvalCount: number; } export interface TokenizeRequest { content: string; } export interface TokenizeResponse { tokens: number[]; } export interface DetokenizeRequest { tokens: number[]; } export interface DetokenizeResponse { content: string; } export interface HealthResponse { status: 'ok' | 'loading' | 'error'; progress?: number; slotsIdle?: number; slotsProcessing?: number; } export interface LoadRequest { modelPath: string; projectorPath?: string; adapterPaths?: string[]; options?: ModelOptions; systemInfo?: SystemInfo; gpus?: GPUInfo[]; } export interface SystemInfo { totalMemory: number; freeMemory: number; cpuCount: number; platform: string; arch: string; } export interface GPUInfo { id: string; name: string; vendor: string; vram: number; freeVram: number; computeCapability?: string; } export type DeviceType = 'cpu' | 'cuda' | 'metal' | 'rocm' | 'vulkan'; export interface LayerAllocation { deviceId: string; deviceType: DeviceType; layers: number; vramUsed: number; } export interface RunnerConfig { runnerPath?: string; modelsPath: string; host: string; port: number; maxLoadedModels: number; maxVram?: number; gpuOverhead: number; loadTimeout: number; requestTimeout: number; keepAliveTimeout: number; flashAttention: boolean; kvCacheType: 'f16' | 'q8_0' | 'q4_0'; cudaVisibleDevices?: string; rocmVisibleDevices?: string; } export declare const DEFAULT_RUNNER_CONFIG: RunnerConfig; //# sourceMappingURL=runner.d.ts.map