@ruvector/ruvllm 4.0.1 → 4.2.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 +446 -160
- 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,696 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuvLLM Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for RuvLLM engine
|
|
6
|
+
*/
|
|
7
|
+
export interface RuvLLMConfig {
|
|
8
|
+
/** Embedding dimension (default: 768) */
|
|
9
|
+
embeddingDim?: number;
|
|
10
|
+
/** Router hidden dimension (default: 128) */
|
|
11
|
+
routerHiddenDim?: number;
|
|
12
|
+
/** HNSW M parameter (default: 16) */
|
|
13
|
+
hnswM?: number;
|
|
14
|
+
/** HNSW ef_construction (default: 100) */
|
|
15
|
+
hnswEfConstruction?: number;
|
|
16
|
+
/** HNSW ef_search (default: 64) */
|
|
17
|
+
hnswEfSearch?: number;
|
|
18
|
+
/** Enable learning (default: true) */
|
|
19
|
+
learningEnabled?: boolean;
|
|
20
|
+
/** Quality threshold for learning (default: 0.7) */
|
|
21
|
+
qualityThreshold?: number;
|
|
22
|
+
/** EWC lambda (default: 2000) */
|
|
23
|
+
ewcLambda?: number;
|
|
24
|
+
/**
|
|
25
|
+
* GGUF file (or a directory holding one) to load in the constructor, the
|
|
26
|
+
* same as calling `loadModel(modelPath)`. The constructor throws if the
|
|
27
|
+
* model cannot be loaded. Requires a native binary that supports model
|
|
28
|
+
* loading (see `RuvLLM.loadModel`).
|
|
29
|
+
*/
|
|
30
|
+
modelPath?: string;
|
|
31
|
+
/** Options for loading `modelPath` */
|
|
32
|
+
modelOptions?: LoadModelOptions;
|
|
33
|
+
/**
|
|
34
|
+
* Return a clearly labelled placeholder string from `generate()`/`query()`
|
|
35
|
+
* when no model is loaded, instead of throwing `RUVLLM_NO_LANGUAGE_MODEL`.
|
|
36
|
+
* The placeholder is never model output. For demos and tests only; also
|
|
37
|
+
* enabled by the environment variable `RUVLLM_ALLOW_MOCK=1`. Default false.
|
|
38
|
+
*/
|
|
39
|
+
allowPlaceholder?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Throw instead of warning for unsupported options (`backend`). Generation
|
|
42
|
+
* without a loaded model always throws unless `allowPlaceholder` is set.
|
|
43
|
+
*/
|
|
44
|
+
strict?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Generation configuration
|
|
48
|
+
*/
|
|
49
|
+
export interface GenerationConfig {
|
|
50
|
+
/** Maximum tokens to generate (default: 256) */
|
|
51
|
+
maxTokens?: number;
|
|
52
|
+
/** Temperature for sampling; 0 = greedy (default: 0.7) */
|
|
53
|
+
temperature?: number;
|
|
54
|
+
/** Top-p nucleus sampling, in (0, 1] (default: 0.9) */
|
|
55
|
+
topP?: number;
|
|
56
|
+
/** Top-k sampling; 0 disables it (default: 50) */
|
|
57
|
+
topK?: number;
|
|
58
|
+
/** Repetition penalty (default: 1.1) */
|
|
59
|
+
repetitionPenalty?: number;
|
|
60
|
+
/** Stop when any of these strings is generated; it is not included in the text */
|
|
61
|
+
stopSequences?: string[];
|
|
62
|
+
/** Sampling seed for reproducible output at temperature > 0 */
|
|
63
|
+
seed?: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Options for `RuvLLM.loadModel`
|
|
67
|
+
*/
|
|
68
|
+
export interface LoadModelOptions {
|
|
69
|
+
/** Maximum context in tokens, prompt plus completion (default: 4096) */
|
|
70
|
+
maxContext?: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The language model loaded with `RuvLLM.loadModel`
|
|
74
|
+
*/
|
|
75
|
+
export interface LoadedModelInfo {
|
|
76
|
+
/** Model name (file stem) */
|
|
77
|
+
name: string;
|
|
78
|
+
/** Architecture family, e.g. "Llama" or "Qwen" */
|
|
79
|
+
architecture: string;
|
|
80
|
+
/** Approximate parameter count */
|
|
81
|
+
numParameters: number;
|
|
82
|
+
/** Vocabulary size */
|
|
83
|
+
vocabSize: number;
|
|
84
|
+
/** Hidden dimension */
|
|
85
|
+
hiddenSize: number;
|
|
86
|
+
/** Number of layers */
|
|
87
|
+
numLayers: number;
|
|
88
|
+
/** Maximum context length in tokens */
|
|
89
|
+
maxContextLength: number;
|
|
90
|
+
/** Weight quantization, e.g. "Q4K", when known */
|
|
91
|
+
quantization?: string | null;
|
|
92
|
+
/** Approximate memory used by the weights, in bytes */
|
|
93
|
+
memoryUsageBytes: number;
|
|
94
|
+
/** Chat template used by `chat()` and `query()`, e.g. "Qwen" or "Llama3" */
|
|
95
|
+
chatTemplate?: string | null;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* One message of a chat conversation
|
|
99
|
+
*/
|
|
100
|
+
export interface ChatMessage {
|
|
101
|
+
role: 'system' | 'user' | 'assistant';
|
|
102
|
+
content: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Why generation ended: `stop` (end-of-sequence token or a stop sequence),
|
|
106
|
+
* `length` (`maxTokens` reached or the context is full) or `cancelled`.
|
|
107
|
+
*/
|
|
108
|
+
export type FinishReason = 'stop' | 'length' | 'cancelled';
|
|
109
|
+
/**
|
|
110
|
+
* Text generated by the loaded model, with token accounting
|
|
111
|
+
*/
|
|
112
|
+
export interface GenerationResult {
|
|
113
|
+
/** Generated text, excluding the prompt and any stop sequence */
|
|
114
|
+
text: string;
|
|
115
|
+
/** Prompt tokens, counted with the model's tokenizer (after the chat template for `chat()`) */
|
|
116
|
+
promptTokens: number;
|
|
117
|
+
/** Tokens generated, including an end-of-sequence token that ended generation */
|
|
118
|
+
completionTokens: number;
|
|
119
|
+
/** Why generation ended */
|
|
120
|
+
finishReason: FinishReason;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Query response from the LLM
|
|
124
|
+
*/
|
|
125
|
+
export interface QueryResponse {
|
|
126
|
+
/** Text generated by the loaded model (or a labelled placeholder with `allowPlaceholder`) */
|
|
127
|
+
text: string;
|
|
128
|
+
/** Confidence score (0.0 - 1.0) */
|
|
129
|
+
confidence: number;
|
|
130
|
+
/** Model size recommended by the router (not the loaded model) */
|
|
131
|
+
model: string;
|
|
132
|
+
/** Context size used */
|
|
133
|
+
contextSize: number;
|
|
134
|
+
/** Latency in milliseconds */
|
|
135
|
+
latencyMs: number;
|
|
136
|
+
/** Request ID for feedback */
|
|
137
|
+
requestId: string;
|
|
138
|
+
/** Prompt tokens after the chat template (absent for placeholder responses) */
|
|
139
|
+
promptTokens?: number;
|
|
140
|
+
/** Tokens generated (absent for placeholder responses) */
|
|
141
|
+
completionTokens?: number;
|
|
142
|
+
/** Why generation ended (absent for placeholder responses) */
|
|
143
|
+
finishReason?: FinishReason;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Routing decision
|
|
147
|
+
*/
|
|
148
|
+
export interface RoutingDecision {
|
|
149
|
+
/** Selected model size */
|
|
150
|
+
model: ModelSize;
|
|
151
|
+
/** Recommended context size */
|
|
152
|
+
contextSize: number;
|
|
153
|
+
/** Temperature */
|
|
154
|
+
temperature: number;
|
|
155
|
+
/** Top-p */
|
|
156
|
+
topP: number;
|
|
157
|
+
/** Confidence */
|
|
158
|
+
confidence: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Memory search result
|
|
162
|
+
*/
|
|
163
|
+
/** Identifier for a stored memory node. */
|
|
164
|
+
export type MemoryId = string | number;
|
|
165
|
+
export interface MemoryResult {
|
|
166
|
+
/** Node ID — a UUID string on current native builds, a number on older ones. */
|
|
167
|
+
id: MemoryId;
|
|
168
|
+
/** Similarity score */
|
|
169
|
+
score: number;
|
|
170
|
+
/** Content text */
|
|
171
|
+
content: string;
|
|
172
|
+
/** Metadata */
|
|
173
|
+
metadata: Record<string, unknown>;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Engine statistics
|
|
177
|
+
*/
|
|
178
|
+
export interface RuvLLMStats {
|
|
179
|
+
/** Total queries processed */
|
|
180
|
+
totalQueries: number;
|
|
181
|
+
/** Memory nodes stored */
|
|
182
|
+
memoryNodes: number;
|
|
183
|
+
/** Patterns learned */
|
|
184
|
+
patternsLearned: number;
|
|
185
|
+
/** Average latency in ms */
|
|
186
|
+
avgLatencyMs: number;
|
|
187
|
+
/** Cache hit rate (0.0 - 1.0) */
|
|
188
|
+
cacheHitRate: number;
|
|
189
|
+
/** Router accuracy (0.0 - 1.0) */
|
|
190
|
+
routerAccuracy: number;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Model size options
|
|
194
|
+
*/
|
|
195
|
+
export type ModelSize = 'M350' | 'M700' | 'B1_2' | 'B2_6';
|
|
196
|
+
/**
|
|
197
|
+
* Feedback for learning
|
|
198
|
+
*/
|
|
199
|
+
export interface Feedback {
|
|
200
|
+
/** Request ID from query response */
|
|
201
|
+
requestId: string;
|
|
202
|
+
/** Rating 1-5 */
|
|
203
|
+
rating: number;
|
|
204
|
+
/** Optional correction text */
|
|
205
|
+
correction?: string;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Session for multi-turn conversations
|
|
209
|
+
*/
|
|
210
|
+
export interface Session {
|
|
211
|
+
/** Session ID */
|
|
212
|
+
id: string;
|
|
213
|
+
/** Created timestamp */
|
|
214
|
+
createdAt: Date;
|
|
215
|
+
/** Messages in session */
|
|
216
|
+
messageCount: number;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* SIMD capabilities
|
|
220
|
+
*/
|
|
221
|
+
export interface SimdCapabilities {
|
|
222
|
+
/** Has any SIMD support */
|
|
223
|
+
hasSimd: boolean;
|
|
224
|
+
/** Available SIMD instructions */
|
|
225
|
+
capabilities: string[];
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Embedding result
|
|
229
|
+
*/
|
|
230
|
+
export type Embedding = number[];
|
|
231
|
+
/**
|
|
232
|
+
* Batch query request
|
|
233
|
+
*/
|
|
234
|
+
export interface BatchQueryRequest {
|
|
235
|
+
/** Queries to process */
|
|
236
|
+
queries: string[];
|
|
237
|
+
/** Optional generation config */
|
|
238
|
+
config?: GenerationConfig;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Batch query response
|
|
242
|
+
*/
|
|
243
|
+
export interface BatchQueryResponse {
|
|
244
|
+
/** Responses for each query */
|
|
245
|
+
responses: QueryResponse[];
|
|
246
|
+
/** Total processing time in ms */
|
|
247
|
+
totalLatencyMs: number;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* SONA Configuration for adaptive learning
|
|
251
|
+
*/
|
|
252
|
+
export interface SonaConfig {
|
|
253
|
+
/** Enable instant loop (real-time learning) */
|
|
254
|
+
instantLoopEnabled?: boolean;
|
|
255
|
+
/** Enable background loop (batch learning) */
|
|
256
|
+
backgroundLoopEnabled?: boolean;
|
|
257
|
+
/** Learning rate for LoRA adapters */
|
|
258
|
+
loraLearningRate?: number;
|
|
259
|
+
/** LoRA rank (lower = faster, higher = more capacity) */
|
|
260
|
+
loraRank?: number;
|
|
261
|
+
/** EWC lambda for memory protection */
|
|
262
|
+
ewcLambda?: number;
|
|
263
|
+
/** Max trajectory buffer size */
|
|
264
|
+
maxTrajectorySize?: number;
|
|
265
|
+
/** Pattern similarity threshold */
|
|
266
|
+
patternThreshold?: number;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Learning signal from user feedback
|
|
270
|
+
*/
|
|
271
|
+
export interface LearningSignal {
|
|
272
|
+
/** Request ID */
|
|
273
|
+
requestId: string;
|
|
274
|
+
/** Quality score (0-1) */
|
|
275
|
+
quality: number;
|
|
276
|
+
/** Signal type */
|
|
277
|
+
type: SignalType;
|
|
278
|
+
/** Optional correction */
|
|
279
|
+
correction?: string;
|
|
280
|
+
/** Timestamp */
|
|
281
|
+
timestamp: Date;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Signal types for learning
|
|
285
|
+
*/
|
|
286
|
+
export type SignalType = 'positive' | 'negative' | 'correction' | 'implicit';
|
|
287
|
+
/**
|
|
288
|
+
* Query trajectory for learning
|
|
289
|
+
*/
|
|
290
|
+
export interface QueryTrajectory {
|
|
291
|
+
/** Trajectory ID */
|
|
292
|
+
id: string;
|
|
293
|
+
/** Steps in the trajectory */
|
|
294
|
+
steps: TrajectoryStep[];
|
|
295
|
+
/** Final outcome */
|
|
296
|
+
outcome: TrajectoryOutcome;
|
|
297
|
+
/** Total duration */
|
|
298
|
+
durationMs: number;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Single step in a trajectory
|
|
302
|
+
*/
|
|
303
|
+
export interface TrajectoryStep {
|
|
304
|
+
/** Step type */
|
|
305
|
+
type: 'query' | 'route' | 'generate' | 'memory' | 'feedback';
|
|
306
|
+
/** Input data */
|
|
307
|
+
input: string;
|
|
308
|
+
/** Output data */
|
|
309
|
+
output: string;
|
|
310
|
+
/** Duration of this step */
|
|
311
|
+
durationMs: number;
|
|
312
|
+
/** Confidence at this step */
|
|
313
|
+
confidence: number;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Trajectory outcome
|
|
317
|
+
*/
|
|
318
|
+
export type TrajectoryOutcome = 'success' | 'partial' | 'failure' | 'unknown';
|
|
319
|
+
/**
|
|
320
|
+
* Learned pattern from ReasoningBank
|
|
321
|
+
*/
|
|
322
|
+
export interface LearnedPattern {
|
|
323
|
+
/** Pattern ID */
|
|
324
|
+
id: string;
|
|
325
|
+
/** Pattern type */
|
|
326
|
+
type: PatternType;
|
|
327
|
+
/** Pattern embedding */
|
|
328
|
+
embedding: Embedding;
|
|
329
|
+
/** Success rate (0-1) */
|
|
330
|
+
successRate: number;
|
|
331
|
+
/** Times used */
|
|
332
|
+
useCount: number;
|
|
333
|
+
/** Last used timestamp */
|
|
334
|
+
lastUsed: Date;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Types of learned patterns
|
|
338
|
+
*/
|
|
339
|
+
export type PatternType = 'query_response' | 'routing' | 'context_retrieval' | 'correction' | 'abstraction';
|
|
340
|
+
/**
|
|
341
|
+
* LoRA adapter configuration
|
|
342
|
+
*/
|
|
343
|
+
export interface LoRAConfig {
|
|
344
|
+
/** Adapter rank (4, 8, 16, 32) */
|
|
345
|
+
rank: number;
|
|
346
|
+
/** Alpha scaling factor */
|
|
347
|
+
alpha: number;
|
|
348
|
+
/** Dropout rate */
|
|
349
|
+
dropout: number;
|
|
350
|
+
/** Target modules to adapt */
|
|
351
|
+
targetModules: string[];
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* EWC (Elastic Weight Consolidation) stats
|
|
355
|
+
*/
|
|
356
|
+
export interface EwcStats {
|
|
357
|
+
/** Number of tasks learned */
|
|
358
|
+
tasksLearned: number;
|
|
359
|
+
/** Fisher information computed */
|
|
360
|
+
fisherComputed: boolean;
|
|
361
|
+
/** Memory protection strength */
|
|
362
|
+
protectionStrength: number;
|
|
363
|
+
/** Estimated forgetting rate */
|
|
364
|
+
forgettingRate: number;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Extended session with conversation history
|
|
368
|
+
*/
|
|
369
|
+
export interface ConversationSession extends Session {
|
|
370
|
+
/** Conversation messages */
|
|
371
|
+
messages: ConversationMessage[];
|
|
372
|
+
/** Session context (accumulated) */
|
|
373
|
+
context: string[];
|
|
374
|
+
/** Active memory IDs */
|
|
375
|
+
activeMemoryIds: number[];
|
|
376
|
+
/** Session metadata */
|
|
377
|
+
metadata: Record<string, unknown>;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Single message in conversation
|
|
381
|
+
*/
|
|
382
|
+
export interface ConversationMessage {
|
|
383
|
+
/** Message role */
|
|
384
|
+
role: 'user' | 'assistant' | 'system';
|
|
385
|
+
/** Message content */
|
|
386
|
+
content: string;
|
|
387
|
+
/** Timestamp */
|
|
388
|
+
timestamp: Date;
|
|
389
|
+
/** Associated request ID (if assistant) */
|
|
390
|
+
requestId?: string;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Streaming response chunk
|
|
394
|
+
*/
|
|
395
|
+
export interface StreamChunk {
|
|
396
|
+
/** Chunk text */
|
|
397
|
+
text: string;
|
|
398
|
+
/** Is final chunk */
|
|
399
|
+
done: boolean;
|
|
400
|
+
/** Token count so far */
|
|
401
|
+
tokenCount: number;
|
|
402
|
+
/** Cumulative latency */
|
|
403
|
+
latencyMs: number;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Stream options
|
|
407
|
+
*/
|
|
408
|
+
export interface StreamOptions extends GenerationConfig {
|
|
409
|
+
/** Callback for each chunk */
|
|
410
|
+
onChunk?: (chunk: StreamChunk) => void;
|
|
411
|
+
/** Callback on completion */
|
|
412
|
+
onComplete?: (response: QueryResponse) => void;
|
|
413
|
+
/** Callback on error */
|
|
414
|
+
onError?: (error: Error) => void;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Memory compression result
|
|
418
|
+
*/
|
|
419
|
+
export interface CompressionResult {
|
|
420
|
+
/** Nodes compressed */
|
|
421
|
+
nodesCompressed: number;
|
|
422
|
+
/** Nodes archived */
|
|
423
|
+
nodesArchived: number;
|
|
424
|
+
/** Concepts created */
|
|
425
|
+
conceptsCreated: number;
|
|
426
|
+
/** Memory saved (bytes) */
|
|
427
|
+
memorySaved: number;
|
|
428
|
+
/** Duration */
|
|
429
|
+
durationMs: number;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Archive query result
|
|
433
|
+
*/
|
|
434
|
+
export interface ArchiveResult {
|
|
435
|
+
/** Archived node ID */
|
|
436
|
+
id: number;
|
|
437
|
+
/** Original content (if available) */
|
|
438
|
+
content?: string;
|
|
439
|
+
/** Concept it belongs to */
|
|
440
|
+
conceptId?: string;
|
|
441
|
+
/** Archive timestamp */
|
|
442
|
+
archivedAt: Date;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Attention weights for interpretability
|
|
446
|
+
*/
|
|
447
|
+
export interface AttentionWeights {
|
|
448
|
+
/** Query-key attention scores */
|
|
449
|
+
scores: number[][];
|
|
450
|
+
/** Head index */
|
|
451
|
+
headIndex: number;
|
|
452
|
+
/** Layer index */
|
|
453
|
+
layerIndex: number;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Attention analysis result
|
|
457
|
+
*/
|
|
458
|
+
export interface AttentionAnalysis {
|
|
459
|
+
/** Most attended tokens */
|
|
460
|
+
topAttended: Array<{
|
|
461
|
+
token: string;
|
|
462
|
+
weight: number;
|
|
463
|
+
}>;
|
|
464
|
+
/** Attention entropy (uncertainty) */
|
|
465
|
+
entropy: number;
|
|
466
|
+
/** Focus score (0-1, higher = more focused) */
|
|
467
|
+
focusScore: number;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Federated learning configuration
|
|
471
|
+
*/
|
|
472
|
+
export interface FederatedConfig {
|
|
473
|
+
/** Hidden dimension for embeddings */
|
|
474
|
+
hiddenDim?: number;
|
|
475
|
+
/** Embedding dimension */
|
|
476
|
+
embeddingDim?: number;
|
|
477
|
+
/** Micro-LoRA rank */
|
|
478
|
+
microLoraRank?: number;
|
|
479
|
+
/** Base LoRA rank */
|
|
480
|
+
baseLoraRank?: number;
|
|
481
|
+
/** Trajectory buffer capacity */
|
|
482
|
+
trajectoryCapacity?: number;
|
|
483
|
+
/** Pattern cluster count */
|
|
484
|
+
patternClusters?: number;
|
|
485
|
+
/** EWC lambda for regularization */
|
|
486
|
+
ewcLambda?: number;
|
|
487
|
+
/** Quality threshold for accepting trajectories */
|
|
488
|
+
qualityThreshold?: number;
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Trajectory export for federation
|
|
492
|
+
*/
|
|
493
|
+
export interface TrajectoryExport {
|
|
494
|
+
/** Query embedding */
|
|
495
|
+
embedding: Embedding;
|
|
496
|
+
/** Quality score */
|
|
497
|
+
quality: number;
|
|
498
|
+
/** Model route (if any) */
|
|
499
|
+
route?: string;
|
|
500
|
+
/** Context identifiers */
|
|
501
|
+
context: string[];
|
|
502
|
+
/** Timestamp */
|
|
503
|
+
timestamp: number;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Agent export statistics
|
|
507
|
+
*/
|
|
508
|
+
export interface AgentExportStats {
|
|
509
|
+
/** Total trajectories processed */
|
|
510
|
+
totalTrajectories: number;
|
|
511
|
+
/** Average quality */
|
|
512
|
+
avgQuality: number;
|
|
513
|
+
/** Patterns learned locally */
|
|
514
|
+
patternsLearned: number;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Exported state from an ephemeral agent
|
|
518
|
+
*/
|
|
519
|
+
export interface AgentExport {
|
|
520
|
+
/** Agent identifier */
|
|
521
|
+
agentId: string;
|
|
522
|
+
/** Exported trajectories */
|
|
523
|
+
trajectories: TrajectoryExport[];
|
|
524
|
+
/** Agent statistics */
|
|
525
|
+
stats: AgentExportStats;
|
|
526
|
+
/** Session duration in milliseconds */
|
|
527
|
+
sessionDurationMs: number;
|
|
528
|
+
/** Export timestamp */
|
|
529
|
+
timestamp: number;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Agent contribution record
|
|
533
|
+
*/
|
|
534
|
+
export interface AgentContribution {
|
|
535
|
+
/** Number of trajectories contributed */
|
|
536
|
+
trajectoryCount: number;
|
|
537
|
+
/** Average quality of contributions */
|
|
538
|
+
avgQuality: number;
|
|
539
|
+
/** Contribution timestamp */
|
|
540
|
+
timestamp: number;
|
|
541
|
+
/** Session duration */
|
|
542
|
+
sessionDurationMs: number;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Result of aggregating an agent export
|
|
546
|
+
*/
|
|
547
|
+
export interface AggregationResult {
|
|
548
|
+
/** Agent ID that was aggregated */
|
|
549
|
+
agentId: string;
|
|
550
|
+
/** Number of trajectories accepted */
|
|
551
|
+
trajectoriesAccepted: number;
|
|
552
|
+
/** Number of trajectories rejected (below quality threshold) */
|
|
553
|
+
trajectoriesRejected: number;
|
|
554
|
+
/** Whether consolidation was triggered */
|
|
555
|
+
consolidated: boolean;
|
|
556
|
+
/** Total number of contributing agents */
|
|
557
|
+
totalAgents: number;
|
|
558
|
+
/** Total trajectories in coordinator */
|
|
559
|
+
totalTrajectories: number;
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Coordinator statistics
|
|
563
|
+
*/
|
|
564
|
+
export interface CoordinatorStats {
|
|
565
|
+
/** Coordinator identifier */
|
|
566
|
+
coordinatorId: string;
|
|
567
|
+
/** Number of contributing agents */
|
|
568
|
+
totalAgents: number;
|
|
569
|
+
/** Total trajectories aggregated */
|
|
570
|
+
totalTrajectories: number;
|
|
571
|
+
/** Patterns learned */
|
|
572
|
+
patternsLearned: number;
|
|
573
|
+
/** Average quality across all contributions */
|
|
574
|
+
avgQuality: number;
|
|
575
|
+
/** Quality threshold */
|
|
576
|
+
qualityThreshold: number;
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* Federated learning topology
|
|
580
|
+
*/
|
|
581
|
+
export type FederatedTopology = 'star' | 'hierarchical' | 'peer-to-peer';
|
|
582
|
+
/**
|
|
583
|
+
* Training configuration
|
|
584
|
+
*/
|
|
585
|
+
export interface TrainingConfig {
|
|
586
|
+
/** Initial learning rate */
|
|
587
|
+
learningRate?: number;
|
|
588
|
+
/** Batch size */
|
|
589
|
+
batchSize?: number;
|
|
590
|
+
/** Number of epochs */
|
|
591
|
+
epochs?: number;
|
|
592
|
+
/** Learning rate scheduler */
|
|
593
|
+
scheduler?: 'constant' | 'linear' | 'cosine' | 'warmup';
|
|
594
|
+
/** Warmup steps (for warmup scheduler) */
|
|
595
|
+
warmupSteps?: number;
|
|
596
|
+
/** Weight decay */
|
|
597
|
+
weightDecay?: number;
|
|
598
|
+
/** Gradient clipping threshold */
|
|
599
|
+
gradientClip?: number;
|
|
600
|
+
/** Early stopping patience */
|
|
601
|
+
earlyStoppingPatience?: number;
|
|
602
|
+
/** Checkpoint interval (epochs) */
|
|
603
|
+
checkpointInterval?: number;
|
|
604
|
+
/** EWC lambda for continual learning */
|
|
605
|
+
ewcLambda?: number;
|
|
606
|
+
/** Validation split ratio */
|
|
607
|
+
validationSplit?: number;
|
|
608
|
+
/**
|
|
609
|
+
* File path for best-checkpoint retention. When set, the pipeline writes
|
|
610
|
+
* the current state to this path each time validation loss improves, so the
|
|
611
|
+
* best-validation model survives even if later epochs degrade. Empty string
|
|
612
|
+
* (the default) disables it; a no-op when validation never runs.
|
|
613
|
+
*/
|
|
614
|
+
keepBestCheckpoint?: string;
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* Training metrics snapshot
|
|
618
|
+
*/
|
|
619
|
+
export interface TrainingMetricsSnapshot {
|
|
620
|
+
/** Current epoch */
|
|
621
|
+
epoch: number;
|
|
622
|
+
/** Current step */
|
|
623
|
+
step: number;
|
|
624
|
+
/** Training loss */
|
|
625
|
+
trainLoss: number;
|
|
626
|
+
/** Validation loss */
|
|
627
|
+
valLoss: number;
|
|
628
|
+
/** Learning rate */
|
|
629
|
+
learningRate: number;
|
|
630
|
+
/** Gradient norm */
|
|
631
|
+
gradNorm: number;
|
|
632
|
+
/** Steps per second */
|
|
633
|
+
stepsPerSecond: number;
|
|
634
|
+
/** ETA in seconds */
|
|
635
|
+
etaSeconds: number;
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Training result
|
|
639
|
+
*/
|
|
640
|
+
export interface TrainingResult {
|
|
641
|
+
/** Total epochs completed */
|
|
642
|
+
epochs: number;
|
|
643
|
+
/** Total steps completed */
|
|
644
|
+
steps: number;
|
|
645
|
+
/** Final training loss */
|
|
646
|
+
finalLoss: number;
|
|
647
|
+
/** Best validation loss */
|
|
648
|
+
bestValLoss: number;
|
|
649
|
+
/** Training duration in ms */
|
|
650
|
+
durationMs: number;
|
|
651
|
+
/** Loss history */
|
|
652
|
+
lossHistory: number[];
|
|
653
|
+
/** Validation loss history */
|
|
654
|
+
valLossHistory: number[];
|
|
655
|
+
/** Early stopped */
|
|
656
|
+
earlyStopped: boolean;
|
|
657
|
+
}
|
|
658
|
+
/**
|
|
659
|
+
* Training checkpoint
|
|
660
|
+
*/
|
|
661
|
+
export interface TrainingCheckpoint {
|
|
662
|
+
/** Epoch number */
|
|
663
|
+
epoch: number;
|
|
664
|
+
/** Step number */
|
|
665
|
+
step: number;
|
|
666
|
+
/** Training loss at checkpoint */
|
|
667
|
+
loss: number;
|
|
668
|
+
/** Model weights (serialized) */
|
|
669
|
+
weights: string;
|
|
670
|
+
/** Timestamp */
|
|
671
|
+
timestamp: number;
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* Export format options
|
|
675
|
+
*/
|
|
676
|
+
export type ExportFormat = 'safetensors' | 'json' | 'binary' | 'onnx';
|
|
677
|
+
/**
|
|
678
|
+
* Model metadata for export
|
|
679
|
+
*/
|
|
680
|
+
export interface ModelMetadata {
|
|
681
|
+
/** Model name */
|
|
682
|
+
name: string;
|
|
683
|
+
/** Model version */
|
|
684
|
+
version: string;
|
|
685
|
+
/** Architecture type */
|
|
686
|
+
architecture: string;
|
|
687
|
+
/** Training info */
|
|
688
|
+
training?: {
|
|
689
|
+
steps: number;
|
|
690
|
+
loss: number;
|
|
691
|
+
learningRate: number;
|
|
692
|
+
};
|
|
693
|
+
/** Custom metadata */
|
|
694
|
+
custom?: Record<string, unknown>;
|
|
695
|
+
}
|
|
696
|
+
//# sourceMappingURL=types.d.ts.map
|