UNPKG

@ruvector/sona

Version:

Self-Optimizing Neural Architecture (SONA) - Runtime-adaptive learning with LoRA, EWC++, and ReasoningBank for LLM routers and AI systems. Sub-millisecond learning overhead, WASM and Node.js support.

146 lines (143 loc) 4.7 kB
/* tslint:disable */ /* eslint-disable */ /* auto-generated by NAPI-RS */ /** SONA configuration for Node.js */ export interface JsSonaConfig { /** Hidden dimension size */ hiddenDim: number /** Embedding dimension (defaults to hidden_dim) */ embeddingDim?: number /** Micro-LoRA rank (1-2, default: 1) */ microLoraRank?: number /** Base LoRA rank (default: 8) */ baseLoraRank?: number /** Micro-LoRA learning rate (default: 0.001) */ microLoraLr?: number /** Base LoRA learning rate (default: 0.0001) */ baseLoraLr?: number /** EWC lambda regularization (default: 1000.0) */ ewcLambda?: number /** Number of pattern clusters (default: 50) */ patternClusters?: number /** Trajectory buffer capacity (default: 10000) */ trajectoryCapacity?: number /** Background learning interval in ms (default: 3600000 = 1 hour) */ backgroundIntervalMs?: number /** Quality threshold for learning (default: 0.5) */ qualityThreshold?: number /** Enable SIMD optimizations (default: true) */ enableSimd?: boolean } /** Learned pattern for Node.js */ export interface JsLearnedPattern { /** Pattern identifier */ id: string /** Cluster centroid embedding */ centroid: Array<number> /** Number of trajectories in cluster */ clusterSize: number /** Total weight of trajectories */ totalWeight: number /** Average quality of member trajectories */ avgQuality: number /** Creation timestamp (Unix seconds) */ createdAt: string /** Last access timestamp (Unix seconds) */ lastAccessed: string /** Total access count */ accessCount: number /** Pattern type */ patternType: string } /** Node.js SONA Engine wrapper */ export declare class SonaEngine { /** * Create a new SONA engine with default configuration * @param hidden_dim - Hidden dimension size (e.g., 256, 512) */ constructor(hiddenDim: number) /** * Create with custom configuration * @param config - Custom SONA configuration object */ static withConfig(config: JsSonaConfig): SonaEngine /** * Start a new trajectory recording * @param query_embedding - Query embedding vector (Float64Array) * @returns Trajectory ID for adding steps */ beginTrajectory(queryEmbedding: Array<number>): number /** * Add a step to trajectory * @param trajectory_id - Trajectory ID from beginTrajectory * @param activations - Layer activations (Float64Array) * @param attention_weights - Attention weights (Float64Array) * @param reward - Reward signal for this step */ addTrajectoryStep(trajectoryId: number, activations: Array<number>, attentionWeights: Array<number>, reward: number): void /** * Set model route for trajectory * @param trajectory_id - Trajectory ID * @param route - Model route identifier */ setTrajectoryRoute(trajectoryId: number, route: string): void /** * Add context to trajectory * @param trajectory_id - Trajectory ID * @param context_id - Context identifier */ addTrajectoryContext(trajectoryId: number, contextId: string): void /** * Complete a trajectory and submit for learning * @param trajectory_id - Trajectory ID * @param quality - Final quality score [0.0, 1.0] */ endTrajectory(trajectoryId: number, quality: number): void /** * Apply micro-LoRA transformation to input * @param input - Input vector (Float64Array) * @returns Transformed output vector */ applyMicroLora(input: Array<number>): Array<number> /** * Apply base-LoRA transformation to layer output * @param layer_idx - Layer index * @param input - Input vector (Float64Array) * @returns Transformed output vector */ applyBaseLora(layerIdx: number, input: Array<number>): Array<number> /** * Run background learning cycle if due * @returns Optional status message if cycle was executed */ tick(): string | null /** * Force background learning cycle immediately * @returns Status message with learning results */ forceLearn(): string /** Flush instant loop updates */ flush(): void /** * Find similar learned patterns to query * @param query_embedding - Query embedding vector * @param k - Number of patterns to return * @returns Array of learned patterns */ findPatterns(queryEmbedding: Array<number>, k: number): Array<JsLearnedPattern> /** * Get engine statistics as JSON string * @returns Statistics object as JSON string */ getStats(): string /** * Enable or disable the engine * @param enabled - Whether to enable the engine */ setEnabled(enabled: boolean): void /** * Check if engine is enabled * @returns Whether the engine is enabled */ isEnabled(): boolean }