UNPKG

claude-flow

Version:

Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration

179 lines 5.55 kB
/** * RuVector LLM WASM Integration * * Wraps @ruvector/ruvllm-wasm for browser-native LLM inference utilities. * Provides HNSW routing, SONA instant adaptation, MicroLoRA fine-tuning, * chat template formatting, KV cache management, and inference arena. * * Published API (v2.0.2): RuvLLMWasm, ChatTemplateWasm, ChatMessageWasm, * GenerateConfig, HnswRouterWasm, SonaInstantWasm, MicroLoraWasm, * KvCacheWasm, BufferPoolWasm, InferenceArenaWasm. * * v2.0.2 fixes: * - HNSW supports 1000+ patterns (fixed connect_node ordering) * - MicroLoRA adapt() now takes (input: Float32Array, feedback: AdaptFeedbackWasm) * * Remaining quirks: * - Stats objects return WASM pointers — use .toJson() or named accessors * - GenerateConfig float precision loss (f32 roundtrip) * - MicroLoRA apply() hardcoded to 768 dims regardless of config * * @module @claude-flow/cli/ruvector/ruvllm-wasm */ export interface HnswRouterConfig { dimensions: number; maxPatterns: number; efSearch?: number; } export interface HnswPattern { name: string; embedding: Float32Array; metadata?: Record<string, unknown>; } export interface HnswRouteResult { name: string; score: number; metadata?: Record<string, unknown>; } export interface SonaConfig { hiddenDim?: number; learningRate?: number; emaDecay?: number; ewcLambda?: number; microLoraRank?: number; patternCapacity?: number; } export interface MicroLoraConfig { inputDim: number; outputDim: number; rank?: number; alpha?: number; } export interface ChatMessage { role: 'system' | 'user' | 'assistant'; content: string; } export interface GenerateOptions { maxTokens?: number; temperature?: number; topP?: number; topK?: number; repetitionPenalty?: number; stopSequences?: string[]; } export interface RuvllmStatus { available: boolean; initialized: boolean; version: string | null; } /** * Check if @ruvector/ruvllm-wasm is installed and loadable. */ export declare function isRuvllmWasmAvailable(): Promise<boolean>; /** * Initialize the WASM module for Node.js. Safe to call multiple times. * Uses initSync with object form: { module: bytes } (raw bytes deprecated). */ export declare function initRuvllmWasm(): Promise<void>; /** * Get ruvllm-wasm status. */ export declare function getRuvllmStatus(): Promise<RuvllmStatus>; /** * Maximum safe pattern count for HNSW router. * v2.0.2 supports 1000+ patterns (fixed connect_node ordering). */ export declare const HNSW_MAX_SAFE_PATTERNS = 1024; /** * Create a WASM HNSW router for semantic routing. * Returns an object with add/route/clear methods. * * Enforces HNSW_MAX_SAFE_PATTERNS limit (1024 in v2.0.2). */ export declare function createHnswRouter(config: HnswRouterConfig): Promise<{ addPattern: (pattern: HnswPattern) => boolean; route: (query: Float32Array, k?: number) => HnswRouteResult[]; clear: () => void; patternCount: () => number; toJson: () => string; }>; /** * Create a SONA instant adaptation loop (<1ms adaptation). * v2.0.1: requires SonaConfigWasm object, not raw number. */ export declare function createSonaInstant(config?: SonaConfig): Promise<{ adapt: (quality: number) => void; recordPattern: (embedding: number[], success: boolean) => void; suggestAction: (context: string) => string | undefined; stats: () => string; reset: () => void; toJson: () => string; }>; /** * Create a MicroLoRA adapter (ultra-lightweight LoRA, ranks 1-4). * v2.0.2: .adapt(input, feedback) takes Float32Array + AdaptFeedbackWasm. */ export declare function createMicroLora(config: MicroLoraConfig): Promise<{ apply: (input: Float32Array) => Float32Array; adapt: (quality: number, learningRate?: number, success?: boolean) => void; applyUpdates: (learningRate?: number) => void; stats: () => string; reset: () => void; toJson: () => string; pendingUpdates: () => number; }>; type TemplatePreset = 'llama3' | 'mistral' | 'chatml' | 'phi' | 'gemma'; /** * Format chat messages using a chat template. * Supports presets (llama3, mistral, chatml, phi, gemma) and auto-detection. */ export declare function formatChat(messages: ChatMessage[], template: TemplatePreset | { custom: string; } | { modelId: string; }): Promise<string>; /** * Create a KV cache for token management. */ export declare function createKvCache(opts?: { tailLength?: number; maxTokens?: number; numKvHeads?: number; headDim?: number; }): Promise<{ append: (keys: Float32Array, values: Float32Array) => void; stats: () => string; clear: () => void; tokenCount: () => number; }>; /** * Create a generation config object. * Note: f32 precision loss is expected (0.7 → 0.699999...). */ export declare function createGenerateConfig(opts?: GenerateOptions): Promise<string>; /** * Create a buffer pool for inference memory management. */ export declare function createBufferPool(capacity: number): Promise<{ prewarm: (count: number) => void; stats: () => string; hitRate: () => number; clear: () => void; }>; /** * Create an inference arena for model memory allocation. */ export declare function createInferenceArena(opts: { capacity: number; } | { hiddenDim: number; vocabSize: number; batchSize: number; }): Promise<{ reset: () => void; used: () => number; capacity: () => number; remaining: () => number; }>; export {}; //# sourceMappingURL=ruvllm-wasm.d.ts.map