@ruvector/ruvllm 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +449 -158
- package/bin/cli.js +1066 -0
- package/bin/gpu-delegate.js +67 -0
- package/bin/ruvllm-adapters.js +5 -0
- package/bin/ruvllm-gpu-loop.js +5 -0
- package/bin/serve.js +265 -0
- package/dist/cjs/benchmarks/embedding-benchmark.d.ts +102 -0
- package/dist/cjs/benchmarks/embedding-benchmark.d.ts.map +1 -0
- package/dist/cjs/benchmarks/embedding-benchmark.js +436 -0
- package/dist/cjs/benchmarks/index.d.ts +34 -0
- package/dist/cjs/benchmarks/index.d.ts.map +1 -0
- package/dist/cjs/benchmarks/index.js +132 -0
- package/dist/cjs/benchmarks/model-comparison.d.ts +71 -0
- package/dist/cjs/benchmarks/model-comparison.d.ts.map +1 -0
- package/dist/cjs/benchmarks/model-comparison.js +476 -0
- package/dist/cjs/benchmarks/routing-benchmark.d.ts +70 -0
- package/dist/cjs/benchmarks/routing-benchmark.d.ts.map +1 -0
- package/dist/cjs/benchmarks/routing-benchmark.js +289 -0
- package/dist/cjs/contrastive.d.ts +229 -0
- package/dist/cjs/contrastive.d.ts.map +1 -0
- package/dist/cjs/contrastive.js +589 -0
- package/dist/cjs/engine.d.ts +160 -0
- package/dist/cjs/engine.d.ts.map +1 -0
- package/dist/cjs/engine.js +552 -0
- package/dist/cjs/export.d.ts +182 -0
- package/dist/cjs/export.d.ts.map +1 -0
- package/dist/cjs/export.js +422 -0
- package/dist/cjs/federated.d.ts +233 -0
- package/dist/cjs/federated.d.ts.map +1 -0
- package/dist/cjs/federated.js +525 -0
- package/dist/cjs/index.d.ts +68 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +104 -0
- package/dist/cjs/intelligence.d.ts +136 -0
- package/dist/cjs/intelligence.d.ts.map +1 -0
- package/dist/cjs/intelligence.js +226 -0
- package/dist/cjs/lora.d.ts +251 -0
- package/dist/cjs/lora.d.ts.map +1 -0
- package/dist/cjs/lora.js +509 -0
- package/dist/cjs/models.d.ts +129 -0
- package/dist/cjs/models.d.ts.map +1 -0
- package/dist/cjs/models.js +323 -0
- package/dist/cjs/native.d.ts +140 -0
- package/dist/cjs/native.d.ts.map +1 -0
- package/dist/cjs/native.js +98 -0
- package/dist/cjs/session.d.ts +80 -0
- package/dist/cjs/session.d.ts.map +1 -0
- package/dist/cjs/session.js +203 -0
- package/dist/cjs/simd.d.ts +90 -0
- package/dist/cjs/simd.d.ts.map +1 -0
- package/dist/cjs/simd.js +209 -0
- package/dist/cjs/sona.d.ts +223 -0
- package/dist/cjs/sona.d.ts.map +1 -0
- package/dist/cjs/sona.js +562 -0
- package/dist/cjs/streaming.d.ts +55 -0
- package/dist/cjs/streaming.d.ts.map +1 -0
- package/dist/cjs/streaming.js +131 -0
- package/dist/cjs/training.d.ts +312 -0
- package/dist/cjs/training.d.ts.map +1 -0
- package/dist/cjs/training.js +610 -0
- package/dist/cjs/types.d.ts +696 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +6 -0
- package/dist/esm/benchmarks/embedding-benchmark.d.ts +102 -0
- package/dist/esm/benchmarks/embedding-benchmark.d.ts.map +1 -0
- package/dist/esm/benchmarks/embedding-benchmark.js +427 -0
- package/dist/esm/benchmarks/index.d.ts +34 -0
- package/dist/esm/benchmarks/index.d.ts.map +1 -0
- package/dist/esm/benchmarks/index.js +110 -0
- package/dist/esm/benchmarks/model-comparison.d.ts +71 -0
- package/dist/esm/benchmarks/model-comparison.d.ts.map +1 -0
- package/dist/esm/benchmarks/model-comparison.js +434 -0
- package/dist/esm/benchmarks/routing-benchmark.d.ts +70 -0
- package/dist/esm/benchmarks/routing-benchmark.d.ts.map +1 -0
- package/dist/esm/benchmarks/routing-benchmark.js +283 -0
- package/dist/esm/contrastive.d.ts +229 -0
- package/dist/esm/contrastive.d.ts.map +1 -0
- package/dist/esm/contrastive.js +578 -0
- package/dist/esm/engine.d.ts +160 -0
- package/dist/esm/engine.d.ts.map +1 -0
- package/dist/esm/engine.js +548 -0
- package/dist/esm/export.d.ts +182 -0
- package/dist/esm/export.d.ts.map +1 -0
- package/dist/esm/export.js +414 -0
- package/dist/esm/federated.d.ts +233 -0
- package/dist/esm/federated.d.ts.map +1 -0
- package/dist/esm/federated.js +520 -0
- package/dist/esm/index.d.ts +68 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +84 -0
- package/dist/esm/intelligence.d.ts +136 -0
- package/dist/esm/intelligence.d.ts.map +1 -0
- package/dist/esm/intelligence.js +188 -0
- package/dist/esm/lora.d.ts +251 -0
- package/dist/esm/lora.d.ts.map +1 -0
- package/dist/esm/lora.js +504 -0
- package/dist/esm/models.d.ts +129 -0
- package/dist/esm/models.d.ts.map +1 -0
- package/dist/esm/models.js +282 -0
- package/dist/esm/native.d.ts +140 -0
- package/dist/esm/native.d.ts.map +1 -0
- package/dist/esm/native.js +100 -0
- package/dist/esm/session.d.ts +80 -0
- package/dist/esm/session.d.ts.map +1 -0
- package/dist/esm/session.js +199 -0
- package/dist/esm/simd.d.ts +90 -0
- package/dist/esm/simd.d.ts.map +1 -0
- package/dist/esm/simd.js +205 -0
- package/dist/esm/sona.d.ts +223 -0
- package/dist/esm/sona.d.ts.map +1 -0
- package/dist/esm/sona.js +556 -0
- package/dist/esm/streaming.d.ts +55 -0
- package/dist/esm/streaming.d.ts.map +1 -0
- package/dist/esm/streaming.js +126 -0
- package/dist/esm/training.d.ts +312 -0
- package/dist/esm/training.d.ts.map +1 -0
- package/dist/esm/training.js +603 -0
- package/dist/esm/types.d.ts +696 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +5 -0
- package/gpu/_load.cjs +38 -0
- package/gpu/_load.mjs +33 -0
- package/gpu/adapters.cjs +3 -0
- package/gpu/adapters.mjs +5 -0
- package/gpu/engine.cjs +3 -0
- package/gpu/engine.mjs +5 -0
- package/gpu/fixture.cjs +3 -0
- package/gpu/fixture.mjs +5 -0
- package/gpu/gpu-host.cjs +3 -0
- package/gpu/gpu-host.mjs +5 -0
- package/gpu/gpu-loop.cjs +3 -0
- package/gpu/gpu-loop.mjs +5 -0
- package/gpu/gpu-spool-adapter.cjs +3 -0
- package/gpu/gpu-spool-adapter.mjs +5 -0
- package/gpu/vast-host-adapter.cjs +3 -0
- package/gpu/vast-host-adapter.mjs +5 -0
- package/package.json +159 -49
- package/scripts/ensemble-model-compare.js +287 -0
- package/scripts/fix-esm-extensions.mjs +220 -0
- package/scripts/huggingface/README.md +537 -0
- package/scripts/huggingface/publish.sh +112 -0
- package/scripts/hybrid-model-compare.js +373 -0
- package/scripts/improved-model-compare.js +288 -0
- package/scripts/optimized-model-compare.js +364 -0
- package/scripts/real-model-compare.js +280 -0
- package/scripts/smoke-esm.mjs +82 -0
- package/scripts/training/agentic-flow-capabilities.json +329 -0
- package/scripts/training/claude-code-synth.js +505 -0
- package/scripts/training/claude-flow-capabilities.json +1322 -0
- package/scripts/training/claude-hard-negatives.js +222 -0
- package/scripts/training/contrastive-finetune.js +517 -0
- package/scripts/training/ecosystem-triplets.jsonl +1467 -0
- package/scripts/training/generate-ecosystem-triplets.js +1324 -0
- package/scripts/training/routing-dataset.js +634 -0
- package/scripts/training/ruvector-capabilities.json +798 -0
- package/scripts/training/validate-ecosystem.js +381 -0
- package/scripts/training/validation-results.json +23 -0
- package/GPU-LOOP.md +0 -229
- package/LICENSE +0 -201
- package/NOTICE +0 -9
- package/examples/gpu-loop.example.json +0 -26
- package/src/adapters-cli.mjs +0 -23
- package/src/adapters.mjs +0 -91
- package/src/cli.mjs +0 -30
- package/src/engine.mjs +0 -238
- package/src/fixture.mjs +0 -38
- package/src/gpu-host.mjs +0 -47
- package/src/gpu-loop-cli.mjs +0 -67
- package/src/gpu-loop.mjs +0 -184
- package/src/gpu-spool-adapter.mjs +0 -80
- package/src/vast-host-adapter.mjs +0 -274
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuvLLM Engine - Main orchestrator for self-learning LLM
|
|
3
|
+
*/
|
|
4
|
+
import { RuvLLMConfig, GenerationConfig, QueryResponse, RoutingDecision, MemoryResult, MemoryId, RuvLLMStats, Feedback, Embedding, BatchQueryRequest, BatchQueryResponse, ChatMessage, GenerationResult, LoadModelOptions, LoadedModelInfo } from './types';
|
|
5
|
+
/** Returned by generate()/query() only with `allowPlaceholder` / `RUVLLM_ALLOW_MOCK=1`. */
|
|
6
|
+
export declare const PLACEHOLDER_TEXT = "[RuvLLM placeholder: no language model is loaded; this text is not model output]";
|
|
7
|
+
/**
|
|
8
|
+
* RuvLLM - Self-learning LLM orchestrator
|
|
9
|
+
*
|
|
10
|
+
* Combines SONA adaptive learning with HNSW memory, FastGRNN routing, and
|
|
11
|
+
* GGUF inference through the native candle backend.
|
|
12
|
+
*
|
|
13
|
+
* Text comes only from a model loaded with `loadModel()` (or the `modelPath`
|
|
14
|
+
* option). Without one, `generate()`, `query()`, `chat()` and
|
|
15
|
+
* `generateDetailed()` throw `RUVLLM_NO_LANGUAGE_MODEL`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { RuvLLM } from '@ruvector/ruvllm';
|
|
20
|
+
*
|
|
21
|
+
* const llm = new RuvLLM();
|
|
22
|
+
* llm.loadModel('./qwen2.5-0.5b-instruct-q4_k_m.gguf');
|
|
23
|
+
*
|
|
24
|
+
* const out = llm.chat([{ role: 'user', content: 'What is machine learning?' }], {
|
|
25
|
+
* maxTokens: 128,
|
|
26
|
+
* });
|
|
27
|
+
* console.log(out.text, out.finishReason, out.completionTokens);
|
|
28
|
+
*
|
|
29
|
+
* // Routed query, answered by the loaded model
|
|
30
|
+
* const response = llm.query('What is machine learning?');
|
|
31
|
+
* llm.feedback({ requestId: response.requestId, rating: 5 });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare class RuvLLM {
|
|
35
|
+
private native;
|
|
36
|
+
private nativeVersion;
|
|
37
|
+
private config;
|
|
38
|
+
private allowPlaceholder;
|
|
39
|
+
private fallbackState;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new RuvLLM instance
|
|
42
|
+
*/
|
|
43
|
+
constructor(config?: RuvLLMConfig);
|
|
44
|
+
/**
|
|
45
|
+
* Whether the native binary can load and run a language model. False
|
|
46
|
+
* without a native binary, for binaries that predate `loadModel` (the 2.0.x
|
|
47
|
+
* `@ruvector/ruvllm-<platform>` packages), and for binaries built without
|
|
48
|
+
* the `candle` inference backend.
|
|
49
|
+
*/
|
|
50
|
+
supportsModelLoading(): boolean;
|
|
51
|
+
/** Error for a binary that has `loadModel` but no inference backend. */
|
|
52
|
+
private noBackendError;
|
|
53
|
+
/**
|
|
54
|
+
* Load a GGUF model (or a directory holding one) for `generate()`,
|
|
55
|
+
* `chat()` and `query()`. Supported GGUF architectures: llama, mistral,
|
|
56
|
+
* qwen2, qwen3; others fail with an error naming the architecture. The
|
|
57
|
+
* tokenizer comes from a `tokenizer.json` beside the file, else from the
|
|
58
|
+
* GGUF itself. Replaces any loaded model; if loading fails, no model is
|
|
59
|
+
* loaded. Synchronous: blocks the event loop while the weights load.
|
|
60
|
+
*
|
|
61
|
+
* @throws `RUVLLM_NATIVE_UNAVAILABLE` without a native binary,
|
|
62
|
+
* `RUVLLM_NATIVE_TOO_OLD` when the binary predates model loading,
|
|
63
|
+
* `RUVLLM_NO_INFERENCE_BACKEND` when it was built without `candle`,
|
|
64
|
+
* `RUVLLM_MODEL_NOT_FOUND` / `RUVLLM_MODEL_LOAD_FAILED` from the backend.
|
|
65
|
+
*/
|
|
66
|
+
loadModel(path: string, options?: LoadModelOptions): LoadedModelInfo;
|
|
67
|
+
/**
|
|
68
|
+
* Unload the language model and free its memory
|
|
69
|
+
*/
|
|
70
|
+
unloadModel(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Whether a language model is loaded
|
|
73
|
+
*/
|
|
74
|
+
isModelLoaded(): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* The loaded language model, or null
|
|
77
|
+
*/
|
|
78
|
+
modelInfo(): LoadedModelInfo | null;
|
|
79
|
+
/**
|
|
80
|
+
* Route `text`, then answer it with the loaded model (as one user message
|
|
81
|
+
* under the model's chat template).
|
|
82
|
+
*
|
|
83
|
+
* @throws `RUVLLM_NO_LANGUAGE_MODEL` when no model is loaded, unless
|
|
84
|
+
* `allowPlaceholder` is set (then `text` is `PLACEHOLDER_TEXT`).
|
|
85
|
+
*/
|
|
86
|
+
query(text: string, config?: GenerationConfig): QueryResponse;
|
|
87
|
+
/**
|
|
88
|
+
* Continue `prompt` verbatim with the loaded model (no chat template; use
|
|
89
|
+
* `chat()` for instruction-tuned models). Returns the generated text.
|
|
90
|
+
*
|
|
91
|
+
* @throws `RUVLLM_NO_LANGUAGE_MODEL` when no model is loaded, unless
|
|
92
|
+
* `allowPlaceholder` is set (then it returns `PLACEHOLDER_TEXT`).
|
|
93
|
+
*/
|
|
94
|
+
generate(prompt: string, config?: GenerationConfig): string;
|
|
95
|
+
/**
|
|
96
|
+
* Like `generate()`, with token counts (from the model's tokenizer) and
|
|
97
|
+
* the finish reason. Always throws `RUVLLM_NO_LANGUAGE_MODEL` without a
|
|
98
|
+
* loaded model.
|
|
99
|
+
*/
|
|
100
|
+
generateDetailed(prompt: string, config?: GenerationConfig): GenerationResult;
|
|
101
|
+
/**
|
|
102
|
+
* Run the loaded model on a conversation, formatted with the model's chat
|
|
103
|
+
* template (ChatML for Qwen, Llama 3 / Mistral formats for those models).
|
|
104
|
+
* Always throws `RUVLLM_NO_LANGUAGE_MODEL` without a loaded model.
|
|
105
|
+
*/
|
|
106
|
+
chat(messages: ChatMessage[], config?: GenerationConfig): GenerationResult;
|
|
107
|
+
private requireModel;
|
|
108
|
+
private noModelError;
|
|
109
|
+
/** Throw `RUVLLM_NO_LANGUAGE_MODEL`, or return the labelled placeholder when opted in. */
|
|
110
|
+
private placeholderOrThrow;
|
|
111
|
+
/**
|
|
112
|
+
* Get routing decision for a query
|
|
113
|
+
*/
|
|
114
|
+
route(text: string): RoutingDecision;
|
|
115
|
+
/**
|
|
116
|
+
* Search memory for similar content
|
|
117
|
+
*/
|
|
118
|
+
searchMemory(text: string, k?: number): MemoryResult[];
|
|
119
|
+
/**
|
|
120
|
+
* Add content to memory
|
|
121
|
+
*/
|
|
122
|
+
addMemory(content: string, metadata?: Record<string, unknown>): MemoryId;
|
|
123
|
+
/**
|
|
124
|
+
* Provide feedback for learning
|
|
125
|
+
*/
|
|
126
|
+
feedback(fb: Feedback): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Get engine statistics
|
|
129
|
+
*/
|
|
130
|
+
stats(): RuvLLMStats;
|
|
131
|
+
/**
|
|
132
|
+
* Force router learning cycle
|
|
133
|
+
*/
|
|
134
|
+
forceLearn(): string;
|
|
135
|
+
/**
|
|
136
|
+
* Get embedding for text
|
|
137
|
+
*/
|
|
138
|
+
embed(text: string): Embedding;
|
|
139
|
+
/**
|
|
140
|
+
* Compute similarity between two texts
|
|
141
|
+
*/
|
|
142
|
+
similarity(text1: string, text2: string): number;
|
|
143
|
+
/**
|
|
144
|
+
* Check if SIMD is available
|
|
145
|
+
*/
|
|
146
|
+
hasSimd(): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Get SIMD capabilities
|
|
149
|
+
*/
|
|
150
|
+
simdCapabilities(): string[];
|
|
151
|
+
/**
|
|
152
|
+
* Batch query multiple prompts
|
|
153
|
+
*/
|
|
154
|
+
batchQuery(request: BatchQueryRequest): BatchQueryResponse;
|
|
155
|
+
/**
|
|
156
|
+
* Check if native module is loaded
|
|
157
|
+
*/
|
|
158
|
+
isNativeLoaded(): boolean;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAEX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAsHjB,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,qFACuD,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAU;IAGlC,OAAO,CAAC,aAAa,CAInB;IAEF;;OAEG;gBACS,MAAM,CAAC,EAAE,YAAY;IA4BjC;;;;;OAKG;IACH,oBAAoB,IAAI,OAAO;IAQ/B,wEAAwE;IACxE,OAAO,CAAC,cAAc;IAUtB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,eAAe;IA2BpE;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,SAAS,IAAI,eAAe,GAAG,IAAI;IAKnC;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,aAAa;IA8B7D;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAK3D;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB;IAO7E;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB;IAK1E,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;IA0BpB,0FAA0F;IAC1F,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAsBpC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,SAAK,GAAG,YAAY,EAAE;IAmClD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAexE;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAO/B;;OAEG;IACH,KAAK,IAAI,WAAW;IA8BpB;;OAEG;IACH,UAAU,IAAI,MAAM;IAOpB;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAmB9B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IA6BhD;;OAEG;IACH,OAAO,IAAI,OAAO;IAOlB;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAO5B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB;IAS1D;;OAEG;IACH,cAAc,IAAI,OAAO;CAG1B"}
|