@ruvector/ruvllm 2.4.0 → 2.5.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 +26 -302
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/intelligence.d.ts +136 -0
- package/dist/cjs/intelligence.d.ts.map +1 -0
- package/dist/cjs/intelligence.js +162 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/intelligence.d.ts +136 -0
- package/dist/esm/intelligence.d.ts.map +1 -0
- package/dist/esm/intelligence.js +157 -0
- package/package.json +3 -7
- package/scripts/training/validation-results.json +1 -1
- package/dist/cjs/rlm/controller.d.ts +0 -245
- package/dist/cjs/rlm/controller.d.ts.map +0 -1
- package/dist/cjs/rlm/controller.js +0 -554
- package/dist/cjs/rlm/index.d.ts +0 -62
- package/dist/cjs/rlm/index.d.ts.map +0 -1
- package/dist/cjs/rlm/index.js +0 -97
- package/dist/cjs/rlm/training.d.ts +0 -333
- package/dist/cjs/rlm/training.d.ts.map +0 -1
- package/dist/cjs/rlm/training.js +0 -680
- package/dist/cjs/rlm/types.d.ts +0 -189
- package/dist/cjs/rlm/types.d.ts.map +0 -1
- package/dist/cjs/rlm/types.js +0 -10
- package/dist/esm/rlm/controller.d.ts +0 -245
- package/dist/esm/rlm/controller.d.ts.map +0 -1
- package/dist/esm/rlm/controller.js +0 -550
- package/dist/esm/rlm/index.d.ts +0 -62
- package/dist/esm/rlm/index.d.ts.map +0 -1
- package/dist/esm/rlm/index.js +0 -71
- package/dist/esm/rlm/training.d.ts +0 -333
- package/dist/esm/rlm/training.d.ts.map +0 -1
- package/dist/esm/rlm/training.js +0 -672
- package/dist/esm/rlm/types.d.ts +0 -189
- package/dist/esm/rlm/types.d.ts.map +0 -1
- package/dist/esm/rlm/types.js +0 -9
- package/scripts/training/rlm-dataset.js +0 -671
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* External Intelligence Providers for SONA Learning (ADR-043)
|
|
4
|
+
*
|
|
5
|
+
* TypeScript bindings for the IntelligenceProvider trait, enabling
|
|
6
|
+
* external systems to feed quality signals into RuvLLM's learning loops.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { IntelligenceLoader, FileSignalProvider, QualitySignal } from '@ruvector/ruvllm';
|
|
11
|
+
*
|
|
12
|
+
* const loader = new IntelligenceLoader();
|
|
13
|
+
* loader.registerProvider(new FileSignalProvider('./signals.json'));
|
|
14
|
+
*
|
|
15
|
+
* const { signals, errors } = loader.loadAllSignals();
|
|
16
|
+
* console.log(`Loaded ${signals.length} signals`);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.IntelligenceLoader = exports.FileSignalProvider = void 0;
|
|
21
|
+
/**
|
|
22
|
+
* Built-in file-based intelligence provider.
|
|
23
|
+
*
|
|
24
|
+
* Reads quality signals from a JSON file. This is the default provider
|
|
25
|
+
* for non-Rust integrations that write signal files.
|
|
26
|
+
*/
|
|
27
|
+
class FileSignalProvider {
|
|
28
|
+
constructor(filePath) {
|
|
29
|
+
this.filePath = filePath;
|
|
30
|
+
}
|
|
31
|
+
name() {
|
|
32
|
+
return 'file-signals';
|
|
33
|
+
}
|
|
34
|
+
loadSignals() {
|
|
35
|
+
try {
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
37
|
+
const fs = require('fs');
|
|
38
|
+
if (!fs.existsSync(this.filePath)) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
const raw = fs.readFileSync(this.filePath, 'utf-8');
|
|
42
|
+
const data = JSON.parse(raw);
|
|
43
|
+
if (!Array.isArray(data)) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
return data.map((item) => ({
|
|
47
|
+
id: String(item.id ?? ''),
|
|
48
|
+
taskDescription: String(item.task_description ?? item.taskDescription ?? ''),
|
|
49
|
+
outcome: String(item.outcome ?? 'failure'),
|
|
50
|
+
qualityScore: Number(item.quality_score ?? item.qualityScore ?? 0),
|
|
51
|
+
humanVerdict: item.human_verdict ?? item.humanVerdict
|
|
52
|
+
? String(item.human_verdict ?? item.humanVerdict)
|
|
53
|
+
: undefined,
|
|
54
|
+
qualityFactors: (item.quality_factors || item.qualityFactors)
|
|
55
|
+
? mapQualityFactors((item.quality_factors ?? item.qualityFactors))
|
|
56
|
+
: undefined,
|
|
57
|
+
completedAt: String(item.completed_at ?? item.completedAt ?? new Date().toISOString()),
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
qualityWeights() {
|
|
65
|
+
try {
|
|
66
|
+
const fs = require('fs');
|
|
67
|
+
const path = require('path');
|
|
68
|
+
const weightsPath = path.join(path.dirname(this.filePath), 'quality-weights.json');
|
|
69
|
+
if (!fs.existsSync(weightsPath))
|
|
70
|
+
return undefined;
|
|
71
|
+
const raw = fs.readFileSync(weightsPath, 'utf-8');
|
|
72
|
+
const data = JSON.parse(raw);
|
|
73
|
+
return {
|
|
74
|
+
taskCompletion: Number(data.task_completion ?? data.taskCompletion ?? 0.5),
|
|
75
|
+
codeQuality: Number(data.code_quality ?? data.codeQuality ?? 0.3),
|
|
76
|
+
process: Number(data.process ?? 0.2),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.FileSignalProvider = FileSignalProvider;
|
|
85
|
+
function mapQualityFactors(raw) {
|
|
86
|
+
return {
|
|
87
|
+
acceptanceCriteriaMet: raw.acceptance_criteria_met,
|
|
88
|
+
testsPassing: raw.tests_passing,
|
|
89
|
+
noRegressions: raw.no_regressions,
|
|
90
|
+
lintClean: raw.lint_clean,
|
|
91
|
+
typeCheckClean: raw.type_check_clean,
|
|
92
|
+
followsPatterns: raw.follows_patterns,
|
|
93
|
+
contextRelevance: raw.context_relevance,
|
|
94
|
+
reasoningCoherence: raw.reasoning_coherence,
|
|
95
|
+
executionEfficiency: raw.execution_efficiency,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Aggregates quality signals from multiple registered providers.
|
|
100
|
+
*
|
|
101
|
+
* If no providers are registered, loadAllSignals returns empty arrays
|
|
102
|
+
* with zero overhead.
|
|
103
|
+
*/
|
|
104
|
+
class IntelligenceLoader {
|
|
105
|
+
constructor() {
|
|
106
|
+
this.providers = [];
|
|
107
|
+
}
|
|
108
|
+
/** Register an external intelligence provider */
|
|
109
|
+
registerProvider(provider) {
|
|
110
|
+
this.providers.push(provider);
|
|
111
|
+
}
|
|
112
|
+
/** Returns the number of registered providers */
|
|
113
|
+
get providerCount() {
|
|
114
|
+
return this.providers.length;
|
|
115
|
+
}
|
|
116
|
+
/** Returns the names of all registered providers */
|
|
117
|
+
get providerNames() {
|
|
118
|
+
return this.providers.map(p => p.name());
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Load signals from all registered providers.
|
|
122
|
+
*
|
|
123
|
+
* Non-fatal: if a provider fails, its error is captured but
|
|
124
|
+
* other providers continue loading.
|
|
125
|
+
*/
|
|
126
|
+
loadAllSignals() {
|
|
127
|
+
const signals = [];
|
|
128
|
+
const errors = [];
|
|
129
|
+
for (const provider of this.providers) {
|
|
130
|
+
try {
|
|
131
|
+
const providerSignals = provider.loadSignals();
|
|
132
|
+
signals.push(...providerSignals);
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
errors.push({
|
|
136
|
+
providerName: provider.name(),
|
|
137
|
+
message: e instanceof Error ? e.message : String(e),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return { signals, errors };
|
|
142
|
+
}
|
|
143
|
+
/** Load signals grouped by provider with weight overrides */
|
|
144
|
+
loadGrouped() {
|
|
145
|
+
return this.providers.map(provider => {
|
|
146
|
+
let providerSignals = [];
|
|
147
|
+
try {
|
|
148
|
+
providerSignals = provider.loadSignals();
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Non-fatal
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
providerName: provider.name(),
|
|
155
|
+
signals: providerSignals,
|
|
156
|
+
weights: provider.qualityWeights?.(),
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.IntelligenceLoader = IntelligenceLoader;
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWxsaWdlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVsbGlnZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7OztBQXNGSDs7Ozs7R0FLRztBQUNILE1BQWEsa0JBQWtCO0lBRzdCLFlBQVksUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQztZQUNILDhEQUE4RDtZQUM5RCxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2xELEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO2dCQUM1RSxPQUFPLEVBQUUsTUFB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QW9CLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUM7Z0JBQ0gsZUFBZSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLFlBQVk7WUFDZCxDQUFDO1lBQ0QsT0FBTztnQkFDTCxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDN0IsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE9BQU8sRUFBRSxRQUFRLENBQUMsY0FBYyxFQUFFLEVBQUU7YUFDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0RELGdEQTJEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgSW50ZWxsaWdlbmNlIFByb3ZpZGVycyBmb3IgU09OQSBMZWFybmluZyAoQURSLTA0MylcbiAqXG4gKiBUeXBlU2NyaXB0IGJpbmRpbmdzIGZvciB0aGUgSW50ZWxsaWdlbmNlUHJvdmlkZXIgdHJhaXQsIGVuYWJsaW5nXG4gKiBleHRlcm5hbCBzeXN0ZW1zIHRvIGZlZWQgcXVhbGl0eSBzaWduYWxzIGludG8gUnV2TExNJ3MgbGVhcm5pbmcgbG9vcHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IEludGVsbGlnZW5jZUxvYWRlciwgRmlsZVNpZ25hbFByb3ZpZGVyLCBRdWFsaXR5U2lnbmFsIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XG4gKlxuICogY29uc3QgbG9hZGVyID0gbmV3IEludGVsbGlnZW5jZUxvYWRlcigpO1xuICogbG9hZGVyLnJlZ2lzdGVyUHJvdmlkZXIobmV3IEZpbGVTaWduYWxQcm92aWRlcignLi9zaWduYWxzLmpzb24nKSk7XG4gKlxuICogY29uc3QgeyBzaWduYWxzLCBlcnJvcnMgfSA9IGxvYWRlci5sb2FkQWxsU2lnbmFscygpO1xuICogY29uc29sZS5sb2coYExvYWRlZCAke3NpZ25hbHMubGVuZ3RofSBzaWduYWxzYCk7XG4gKiBgYGBcbiAqL1xuXG4vKipcbiAqIEEgcXVhbGl0eSBzaWduYWwgZnJvbSBhbiBleHRlcm5hbCBzeXN0ZW0uXG4gKlxuICogUmVwcmVzZW50cyBvbmUgY29tcGxldGVkIHRhc2sgd2l0aCBxdWFsaXR5IGFzc2Vzc21lbnQgZGF0YVxuICogdGhhdCBjYW4gZmVlZCBpbnRvIFNPTkEgdHJhamVjdG9yaWVzLCB0aGUgZW1iZWRkaW5nIGNsYXNzaWZpZXIsXG4gKiBhbmQgbW9kZWwgcm91dGVyIGNhbGlicmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlTaWduYWwge1xuICAvKiogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgc2lnbmFsICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSB0YXNrIGRlc2NyaXB0aW9uICh1c2VkIGZvciBlbWJlZGRpbmcgZ2VuZXJhdGlvbikgKi9cbiAgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBFeGVjdXRpb24gb3V0Y29tZSAqL1xuICBvdXRjb21lOiAnc3VjY2VzcycgfCAncGFydGlhbF9zdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgLyoqIENvbXBvc2l0ZSBxdWFsaXR5IHNjb3JlICgwLjAgLSAxLjApICovXG4gIHF1YWxpdHlTY29yZTogbnVtYmVyO1xuICAvKiogT3B0aW9uYWwgaHVtYW4gdmVyZGljdCAqL1xuICBodW1hblZlcmRpY3Q/OiAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJztcbiAgLyoqIE9wdGlvbmFsIHN0cnVjdHVyZWQgcXVhbGl0eSBmYWN0b3JzIGZvciBkZXRhaWxlZCBhbmFseXNpcyAqL1xuICBxdWFsaXR5RmFjdG9ycz86IFF1YWxpdHlGYWN0b3JzO1xuICAvKiogSVNPIDg2MDEgdGltZXN0YW1wIG9mIHRhc2sgY29tcGxldGlvbiAqL1xuICBjb21wbGV0ZWRBdDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdyYW51bGFyIHF1YWxpdHkgZmFjdG9yIGJyZWFrZG93bi5cbiAqXG4gKiBOb3QgYWxsIHByb3ZpZGVycyB3aWxsIGhhdmUgYWxsIGZhY3RvcnMuIFVuZGVmaW5lZCBmaWVsZHMgbWVhblxuICogXCJub3QgYXNzZXNzZWRcIiAoZGlzdGluY3QgZnJvbSAwLjAsIHdoaWNoIG1lYW5zIFwiYXNzZXNzZWQgYXMgemVyb1wiKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWFsaXR5RmFjdG9ycyB7XG4gIGFjY2VwdGFuY2VDcml0ZXJpYU1ldD86IG51bWJlcjtcbiAgdGVzdHNQYXNzaW5nPzogbnVtYmVyO1xuICBub1JlZ3Jlc3Npb25zPzogbnVtYmVyO1xuICBsaW50Q2xlYW4/OiBudW1iZXI7XG4gIHR5cGVDaGVja0NsZWFuPzogbnVtYmVyO1xuICBmb2xsb3dzUGF0dGVybnM/OiBudW1iZXI7XG4gIGNvbnRleHRSZWxldmFuY2U/OiBudW1iZXI7XG4gIHJlYXNvbmluZ0NvaGVyZW5jZT86IG51bWJlcjtcbiAgZXhlY3V0aW9uRWZmaWNpZW5jeT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBRdWFsaXR5IHdlaWdodCBvdmVycmlkZXMgZnJvbSBhIHByb3ZpZGVyLlxuICpcbiAqIFdlaWdodHMgc2hvdWxkIHN1bSB0byBhcHByb3hpbWF0ZWx5IDEuMC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlclF1YWxpdHlXZWlnaHRzIHtcbiAgdGFza0NvbXBsZXRpb246IG51bWJlcjtcbiAgY29kZVF1YWxpdHk6IG51bWJlcjtcbiAgcHJvY2VzczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEVycm9yIGZyb20gYSBzaW5nbGUgcHJvdmlkZXIgZHVyaW5nIGJhdGNoIGxvYWRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJFcnJvciB7XG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IGZyb20gYSBzaW5nbGUgcHJvdmlkZXIgZHVyaW5nIGdyb3VwZWQgbG9hZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlclJlc3VsdCB7XG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBzaWduYWxzOiBRdWFsaXR5U2lnbmFsW107XG4gIHdlaWdodHM/OiBQcm92aWRlclF1YWxpdHlXZWlnaHRzO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgZXh0ZXJuYWwgc3lzdGVtcyB0aGF0IHN1cHBseSBxdWFsaXR5IHNpZ25hbHMgdG8gUnV2TExNLlxuICpcbiAqIEltcGxlbWVudCB0aGlzIGludGVyZmFjZSBhbmQgcmVnaXN0ZXIgd2l0aCBJbnRlbGxpZ2VuY2VMb2FkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWxsaWdlbmNlUHJvdmlkZXIge1xuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhpcyBwcm92aWRlciAqL1xuICBuYW1lKCk6IHN0cmluZztcbiAgLyoqIExvYWQgcXVhbGl0eSBzaWduYWxzIGZyb20gdGhpcyBwcm92aWRlcidzIGRhdGEgc291cmNlICovXG4gIGxvYWRTaWduYWxzKCk6IFF1YWxpdHlTaWduYWxbXTtcbiAgLyoqIE9wdGlvbmFsIHF1YWxpdHkgd2VpZ2h0IG92ZXJyaWRlcyAqL1xuICBxdWFsaXR5V2VpZ2h0cz8oKTogUHJvdmlkZXJRdWFsaXR5V2VpZ2h0cyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBCdWlsdC1pbiBmaWxlLWJhc2VkIGludGVsbGlnZW5jZSBwcm92aWRlci5cbiAqXG4gKiBSZWFkcyBxdWFsaXR5IHNpZ25hbHMgZnJvbSBhIEpTT04gZmlsZS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBwcm92aWRlclxuICogZm9yIG5vbi1SdXN0IGludGVncmF0aW9ucyB0aGF0IHdyaXRlIHNpZ25hbCBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVTaWduYWxQcm92aWRlciBpbXBsZW1lbnRzIEludGVsbGlnZW5jZVByb3ZpZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbGVQYXRoID0gZmlsZVBhdGg7XG4gIH1cblxuICBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdmaWxlLXNpZ25hbHMnO1xuICB9XG5cbiAgbG9hZFNpZ25hbHMoKTogUXVhbGl0eVNpZ25hbFtdIHtcbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAgIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmZpbGVQYXRoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBjb25zdCByYXcgPSBmcy5yZWFkRmlsZVN5bmModGhpcy5maWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyYXcpO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+ICh7XG4gICAgICAgIGlkOiBTdHJpbmcoaXRlbS5pZCA/PyAnJyksXG4gICAgICAgIHRhc2tEZXNjcmlwdGlvbjogU3RyaW5nKGl0ZW0udGFza19kZXNjcmlwdGlvbiA/PyBpdGVtLnRhc2tEZXNjcmlwdGlvbiA/PyAnJyksXG4gICAgICAgIG91dGNvbWU6IFN0cmluZyhpdGVtLm91dGNvbWUgPz8gJ2ZhaWx1cmUnKSBhcyBRdWFsaXR5U2lnbmFsWydvdXRjb21lJ10sXG4gICAgICAgIHF1YWxpdHlTY29yZTogTnVtYmVyKGl0ZW0ucXVhbGl0eV9zY29yZSA/PyBpdGVtLnF1YWxpdHlTY29yZSA/PyAwKSxcbiAgICAgICAgaHVtYW5WZXJkaWN0OiBpdGVtLmh1bWFuX3ZlcmRpY3QgPz8gaXRlbS5odW1hblZlcmRpY3RcbiAgICAgICAgICA/IFN0cmluZyhpdGVtLmh1bWFuX3ZlcmRpY3QgPz8gaXRlbS5odW1hblZlcmRpY3QpIGFzIFF1YWxpdHlTaWduYWxbJ2h1bWFuVmVyZGljdCddXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHF1YWxpdHlGYWN0b3JzOiAoaXRlbS5xdWFsaXR5X2ZhY3RvcnMgfHwgaXRlbS5xdWFsaXR5RmFjdG9ycylcbiAgICAgICAgICA/IG1hcFF1YWxpdHlGYWN0b3JzKChpdGVtLnF1YWxpdHlfZmFjdG9ycyA/PyBpdGVtLnF1YWxpdHlGYWN0b3JzKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29tcGxldGVkQXQ6IFN0cmluZyhpdGVtLmNvbXBsZXRlZF9hdCA/PyBpdGVtLmNvbXBsZXRlZEF0ID8/IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSksXG4gICAgICB9KSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcXVhbGl0eVdlaWdodHMoKTogUHJvdmlkZXJRdWFsaXR5V2VpZ2h0cyB8IHVuZGVmaW5lZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG4gICAgICBjb25zdCB3ZWlnaHRzUGF0aCA9IHBhdGguam9pbihwYXRoLmRpcm5hbWUodGhpcy5maWxlUGF0aCksICdxdWFsaXR5LXdlaWdodHMuanNvbicpO1xuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHdlaWdodHNQYXRoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJhdyA9IGZzLnJlYWRGaWxlU3luYyh3ZWlnaHRzUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyYXcpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGFza0NvbXBsZXRpb246IE51bWJlcihkYXRhLnRhc2tfY29tcGxldGlvbiA/PyBkYXRhLnRhc2tDb21wbGV0aW9uID8/IDAuNSksXG4gICAgICAgIGNvZGVRdWFsaXR5OiBOdW1iZXIoZGF0YS5jb2RlX3F1YWxpdHkgPz8gZGF0YS5jb2RlUXVhbGl0eSA/PyAwLjMpLFxuICAgICAgICBwcm9jZXNzOiBOdW1iZXIoZGF0YS5wcm9jZXNzID8/IDAuMiksXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwUXVhbGl0eUZhY3RvcnMocmF3OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFF1YWxpdHlGYWN0b3JzIHtcbiAgcmV0dXJuIHtcbiAgICBhY2NlcHRhbmNlQ3JpdGVyaWFNZXQ6IHJhdy5hY2NlcHRhbmNlX2NyaXRlcmlhX21ldCBhcyBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgdGVzdHNQYXNzaW5nOiByYXcudGVzdHNfcGFzc2luZyBhcyBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgbm9SZWdyZXNzaW9uczogcmF3Lm5vX3JlZ3Jlc3Npb25zIGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBsaW50Q2xlYW46IHJhdy5saW50X2NsZWFuIGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICB0eXBlQ2hlY2tDbGVhbjogcmF3LnR5cGVfY2hlY2tfY2xlYW4gYXMgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIGZvbGxvd3NQYXR0ZXJuczogcmF3LmZvbGxvd3NfcGF0dGVybnMgYXMgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIGNvbnRleHRSZWxldmFuY2U6IHJhdy5jb250ZXh0X3JlbGV2YW5jZSBhcyBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgcmVhc29uaW5nQ29oZXJlbmNlOiByYXcucmVhc29uaW5nX2NvaGVyZW5jZSBhcyBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgZXhlY3V0aW9uRWZmaWNpZW5jeTogcmF3LmV4ZWN1dGlvbl9lZmZpY2llbmN5IGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBZ2dyZWdhdGVzIHF1YWxpdHkgc2lnbmFscyBmcm9tIG11bHRpcGxlIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLlxuICpcbiAqIElmIG5vIHByb3ZpZGVycyBhcmUgcmVnaXN0ZXJlZCwgbG9hZEFsbFNpZ25hbHMgcmV0dXJucyBlbXB0eSBhcnJheXNcbiAqIHdpdGggemVybyBvdmVyaGVhZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEludGVsbGlnZW5jZUxvYWRlciB7XG4gIHByaXZhdGUgcHJvdmlkZXJzOiBJbnRlbGxpZ2VuY2VQcm92aWRlcltdID0gW107XG5cbiAgLyoqIFJlZ2lzdGVyIGFuIGV4dGVybmFsIGludGVsbGlnZW5jZSBwcm92aWRlciAqL1xuICByZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyOiBJbnRlbGxpZ2VuY2VQcm92aWRlcik6IHZvaWQge1xuICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiByZWdpc3RlcmVkIHByb3ZpZGVycyAqL1xuICBnZXQgcHJvdmlkZXJDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVycy5sZW5ndGg7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbmFtZXMgb2YgYWxsIHJlZ2lzdGVyZWQgcHJvdmlkZXJzICovXG4gIGdldCBwcm92aWRlck5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wcm92aWRlcnMubWFwKHAgPT4gcC5uYW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgc2lnbmFscyBmcm9tIGFsbCByZWdpc3RlcmVkIHByb3ZpZGVycy5cbiAgICpcbiAgICogTm9uLWZhdGFsOiBpZiBhIHByb3ZpZGVyIGZhaWxzLCBpdHMgZXJyb3IgaXMgY2FwdHVyZWQgYnV0XG4gICAqIG90aGVyIHByb3ZpZGVycyBjb250aW51ZSBsb2FkaW5nLlxuICAgKi9cbiAgbG9hZEFsbFNpZ25hbHMoKTogeyBzaWduYWxzOiBRdWFsaXR5U2lnbmFsW107IGVycm9yczogUHJvdmlkZXJFcnJvcltdIH0ge1xuICAgIGNvbnN0IHNpZ25hbHM6IFF1YWxpdHlTaWduYWxbXSA9IFtdO1xuICAgIGNvbnN0IGVycm9yczogUHJvdmlkZXJFcnJvcltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcm92aWRlclNpZ25hbHMgPSBwcm92aWRlci5sb2FkU2lnbmFscygpO1xuICAgICAgICBzaWduYWxzLnB1c2goLi4ucHJvdmlkZXJTaWduYWxzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goe1xuICAgICAgICAgIHByb3ZpZGVyTmFtZTogcHJvdmlkZXIubmFtZSgpLFxuICAgICAgICAgIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc2lnbmFscywgZXJyb3JzIH07XG4gIH1cblxuICAvKiogTG9hZCBzaWduYWxzIGdyb3VwZWQgYnkgcHJvdmlkZXIgd2l0aCB3ZWlnaHQgb3ZlcnJpZGVzICovXG4gIGxvYWRHcm91cGVkKCk6IFByb3ZpZGVyUmVzdWx0W10ge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVycy5tYXAocHJvdmlkZXIgPT4ge1xuICAgICAgbGV0IHByb3ZpZGVyU2lnbmFsczogUXVhbGl0eVNpZ25hbFtdID0gW107XG4gICAgICB0cnkge1xuICAgICAgICBwcm92aWRlclNpZ25hbHMgPSBwcm92aWRlci5sb2FkU2lnbmFscygpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIE5vbi1mYXRhbFxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZXJOYW1lOiBwcm92aWRlci5uYW1lKCksXG4gICAgICAgIHNpZ25hbHM6IHByb3ZpZGVyU2lnbmFscyxcbiAgICAgICAgd2VpZ2h0czogcHJvdmlkZXIucXVhbGl0eVdlaWdodHM/LigpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -62,7 +62,7 @@ export * from './training';
|
|
|
62
62
|
export * from './contrastive';
|
|
63
63
|
export * from './models';
|
|
64
64
|
export * from './benchmarks';
|
|
65
|
-
export * from './
|
|
65
|
+
export * from './intelligence';
|
|
66
66
|
export { version, hasSimdSupport } from './native';
|
|
67
67
|
export { RuvLLM as default } from './engine';
|
|
68
68
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAG7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -75,10 +75,10 @@ export * from './contrastive';
|
|
|
75
75
|
export * from './models';
|
|
76
76
|
// Benchmarks for Claude Code use cases
|
|
77
77
|
export * from './benchmarks';
|
|
78
|
-
//
|
|
79
|
-
export * from './
|
|
78
|
+
// External Intelligence Providers (ADR-043)
|
|
79
|
+
export * from './intelligence';
|
|
80
80
|
// Native bindings utilities
|
|
81
81
|
export { version, hasSimdSupport } from './native';
|
|
82
82
|
// Default export
|
|
83
83
|
export { RuvLLM as default } from './engine';
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0RHO0FBRUgsYUFBYTtBQUNiLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWM7QUFDZCxjQUFjLFVBQVUsQ0FBQztBQUV6QixrQkFBa0I7QUFDbEIsY0FBYyxRQUFRLENBQUM7QUFFdkIscUJBQXFCO0FBQ3JCLGNBQWMsV0FBVyxDQUFDO0FBRTFCLG9CQUFvQjtBQUNwQixjQUFjLGFBQWEsQ0FBQztBQUU1Qix1QkFBdUI7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFFdkIscUJBQXFCO0FBQ3JCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGdCQUFnQjtBQUNoQixjQUFjLFFBQVEsQ0FBQztBQUV2Qix1QkFBdUI7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFFekIsb0JBQW9CO0FBQ3BCLGNBQWMsWUFBWSxDQUFDO0FBRTNCLDBCQUEwQjtBQUMxQixjQUFjLGVBQWUsQ0FBQztBQUU5QixnQ0FBZ0M7QUFDaEMsY0FBYyxVQUFVLENBQUM7QUFFekIsdUNBQXVDO0FBQ3ZDLGNBQWMsY0FBYyxDQUFDO0FBRTdCLDRDQUE0QztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBydXZlY3Rvci9ydXZsbG0gLSBTZWxmLWxlYXJuaW5nIExMTSBvcmNoZXN0cmF0aW9uXG4gKlxuICogUnV2TExNIGNvbWJpbmVzIFNPTkEgYWRhcHRpdmUgbGVhcm5pbmcgd2l0aCBITlNXIG1lbW9yeSxcbiAqIEZhc3RHUk5OIHJvdXRpbmcsIGFuZCBTSU1ELW9wdGltaXplZCBpbmZlcmVuY2UuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IFJ1dkxMTSwgU2Vzc2lvbk1hbmFnZXIsIFNvbmFDb29yZGluYXRvciB9IGZyb20gJ0BydXZlY3Rvci9ydXZsbG0nO1xuICpcbiAqIGNvbnN0IGxsbSA9IG5ldyBSdXZMTE0oeyBsZWFybmluZ0VuYWJsZWQ6IHRydWUgfSk7XG4gKiBjb25zdCBzZXNzaW9ucyA9IG5ldyBTZXNzaW9uTWFuYWdlcihsbG0pO1xuICogY29uc3Qgc29uYSA9IG5ldyBTb25hQ29vcmRpbmF0b3IoKTtcbiAqXG4gKiAvLyBRdWVyeSB3aXRoIHNlc3Npb24gY29udGV4dFxuICogY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25zLmNyZWF0ZSgpO1xuICogY29uc3QgcmVzcG9uc2UgPSBzZXNzaW9ucy5jaGF0KHNlc3Npb24uaWQsICdXaGF0IGlzIEFJPycpO1xuICpcbiAqIC8vIFRyYWNrIGxlYXJuaW5nIHRyYWplY3RvcnlcbiAqIGNvbnN0IHRyYWplY3RvcnkgPSBuZXcgVHJhamVjdG9yeUJ1aWxkZXIoKVxuICogICAuc3RhcnRTdGVwKCdxdWVyeScsICdXaGF0IGlzIEFJPycpXG4gKiAgIC5lbmRTdGVwKHJlc3BvbnNlLnRleHQsIHJlc3BvbnNlLmNvbmZpZGVuY2UpXG4gKiAgIC5jb21wbGV0ZSgnc3VjY2VzcycpO1xuICpcbiAqIHNvbmEucmVjb3JkVHJhamVjdG9yeSh0cmFqZWN0b3J5KTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEZlZGVyYXRlZCBMZWFybmluZ1xuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgRXBoZW1lcmFsQWdlbnQsIEZlZGVyYXRlZENvb3JkaW5hdG9yIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XG4gKlxuICogLy8gQ2VudHJhbCBjb29yZGluYXRvclxuICogY29uc3QgY29vcmRpbmF0b3IgPSBuZXcgRmVkZXJhdGVkQ29vcmRpbmF0b3IoJ2Nvb3JkLTEnKTtcbiAqXG4gKiAvLyBFcGhlbWVyYWwgYWdlbnRzIHByb2Nlc3MgdGFza3MgYW5kIGV4cG9ydFxuICogY29uc3QgYWdlbnQgPSBuZXcgRXBoZW1lcmFsQWdlbnQoJ2FnZW50LTEnKTtcbiAqIGFnZW50LnByb2Nlc3NUYXNrKGVtYmVkZGluZywgMC45KTtcbiAqIGNvbnN0IGV4cG9ydERhdGEgPSBhZ2VudC5leHBvcnRTdGF0ZSgpO1xuICpcbiAqIC8vIEFnZ3JlZ2F0ZSBsZWFybmluZ1xuICogY29vcmRpbmF0b3IuYWdncmVnYXRlKGV4cG9ydERhdGEpO1xuICogYGBgXG4gKlxuICogQGV4YW1wbGUgTG9SQSBBZGFwdGVyc1xuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgTG9yYUFkYXB0ZXIsIExvcmFNYW5hZ2VyIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XG4gKlxuICogY29uc3QgYWRhcHRlciA9IG5ldyBMb3JhQWRhcHRlcih7IHJhbms6IDgsIGFscGhhOiAxNiB9KTtcbiAqIGNvbnN0IG91dHB1dCA9IGFkYXB0ZXIuZm9yd2FyZChpbnB1dCk7XG4gKiBgYGBcbiAqL1xuXG4vLyBDb3JlIHR5cGVzXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcblxuLy8gTWFpbiBlbmdpbmVcbmV4cG9ydCAqIGZyb20gJy4vZW5naW5lJztcblxuLy8gU0lNRCBvcGVyYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL3NpbWQnO1xuXG4vLyBTZXNzaW9uIG1hbmFnZW1lbnRcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbic7XG5cbi8vIFN0cmVhbWluZyBzdXBwb3J0XG5leHBvcnQgKiBmcm9tICcuL3N0cmVhbWluZyc7XG5cbi8vIFNPTkEgbGVhcm5pbmcgc3lzdGVtXG5leHBvcnQgKiBmcm9tICcuL3NvbmEnO1xuXG4vLyBGZWRlcmF0ZWQgbGVhcm5pbmdcbmV4cG9ydCAqIGZyb20gJy4vZmVkZXJhdGVkJztcblxuLy8gTG9SQSBhZGFwdGVyc1xuZXhwb3J0ICogZnJvbSAnLi9sb3JhJztcblxuLy8gRXhwb3J0L3NlcmlhbGl6YXRpb25cbmV4cG9ydCAqIGZyb20gJy4vZXhwb3J0JztcblxuLy8gVHJhaW5pbmcgcGlwZWxpbmVcbmV4cG9ydCAqIGZyb20gJy4vdHJhaW5pbmcnO1xuXG4vLyBDb250cmFzdGl2ZSBmaW5lLXR1bmluZ1xuZXhwb3J0ICogZnJvbSAnLi9jb250cmFzdGl2ZSc7XG5cbi8vIE1vZGVsIGRvd25sb2FkZXIgYW5kIHJlZ2lzdHJ5XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5cbi8vIEJlbmNobWFya3MgZm9yIENsYXVkZSBDb2RlIHVzZSBjYXNlc1xuZXhwb3J0ICogZnJvbSAnLi9iZW5jaG1hcmtzJztcblxuLy8gRXh0ZXJuYWwgSW50ZWxsaWdlbmNlIFByb3ZpZGVycyAoQURSLTA0MylcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWxsaWdlbmNlJztcblxuLy8gTmF0aXZlIGJpbmRpbmdzIHV0aWxpdGllc1xuZXhwb3J0IHsgdmVyc2lvbiwgaGFzU2ltZFN1cHBvcnQgfSBmcm9tICcuL25hdGl2ZSc7XG5cbi8vIERlZmF1bHQgZXhwb3J0XG5leHBvcnQgeyBSdXZMTE0gYXMgZGVmYXVsdCB9IGZyb20gJy4vZW5naW5lJztcbiJdfQ==
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External Intelligence Providers for SONA Learning (ADR-043)
|
|
3
|
+
*
|
|
4
|
+
* TypeScript bindings for the IntelligenceProvider trait, enabling
|
|
5
|
+
* external systems to feed quality signals into RuvLLM's learning loops.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { IntelligenceLoader, FileSignalProvider, QualitySignal } from '@ruvector/ruvllm';
|
|
10
|
+
*
|
|
11
|
+
* const loader = new IntelligenceLoader();
|
|
12
|
+
* loader.registerProvider(new FileSignalProvider('./signals.json'));
|
|
13
|
+
*
|
|
14
|
+
* const { signals, errors } = loader.loadAllSignals();
|
|
15
|
+
* console.log(`Loaded ${signals.length} signals`);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* A quality signal from an external system.
|
|
20
|
+
*
|
|
21
|
+
* Represents one completed task with quality assessment data
|
|
22
|
+
* that can feed into SONA trajectories, the embedding classifier,
|
|
23
|
+
* and model router calibration.
|
|
24
|
+
*/
|
|
25
|
+
export interface QualitySignal {
|
|
26
|
+
/** Unique identifier for this signal */
|
|
27
|
+
id: string;
|
|
28
|
+
/** Human-readable task description (used for embedding generation) */
|
|
29
|
+
taskDescription: string;
|
|
30
|
+
/** Execution outcome */
|
|
31
|
+
outcome: 'success' | 'partial_success' | 'failure';
|
|
32
|
+
/** Composite quality score (0.0 - 1.0) */
|
|
33
|
+
qualityScore: number;
|
|
34
|
+
/** Optional human verdict */
|
|
35
|
+
humanVerdict?: 'approved' | 'rejected';
|
|
36
|
+
/** Optional structured quality factors for detailed analysis */
|
|
37
|
+
qualityFactors?: QualityFactors;
|
|
38
|
+
/** ISO 8601 timestamp of task completion */
|
|
39
|
+
completedAt: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Granular quality factor breakdown.
|
|
43
|
+
*
|
|
44
|
+
* Not all providers will have all factors. Undefined fields mean
|
|
45
|
+
* "not assessed" (distinct from 0.0, which means "assessed as zero").
|
|
46
|
+
*/
|
|
47
|
+
export interface QualityFactors {
|
|
48
|
+
acceptanceCriteriaMet?: number;
|
|
49
|
+
testsPassing?: number;
|
|
50
|
+
noRegressions?: number;
|
|
51
|
+
lintClean?: number;
|
|
52
|
+
typeCheckClean?: number;
|
|
53
|
+
followsPatterns?: number;
|
|
54
|
+
contextRelevance?: number;
|
|
55
|
+
reasoningCoherence?: number;
|
|
56
|
+
executionEfficiency?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Quality weight overrides from a provider.
|
|
60
|
+
*
|
|
61
|
+
* Weights should sum to approximately 1.0.
|
|
62
|
+
*/
|
|
63
|
+
export interface ProviderQualityWeights {
|
|
64
|
+
taskCompletion: number;
|
|
65
|
+
codeQuality: number;
|
|
66
|
+
process: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Error from a single provider during batch loading.
|
|
70
|
+
*/
|
|
71
|
+
export interface ProviderError {
|
|
72
|
+
providerName: string;
|
|
73
|
+
message: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Result from a single provider during grouped loading.
|
|
77
|
+
*/
|
|
78
|
+
export interface ProviderResult {
|
|
79
|
+
providerName: string;
|
|
80
|
+
signals: QualitySignal[];
|
|
81
|
+
weights?: ProviderQualityWeights;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Interface for external systems that supply quality signals to RuvLLM.
|
|
85
|
+
*
|
|
86
|
+
* Implement this interface and register with IntelligenceLoader.
|
|
87
|
+
*/
|
|
88
|
+
export interface IntelligenceProvider {
|
|
89
|
+
/** Human-readable name for this provider */
|
|
90
|
+
name(): string;
|
|
91
|
+
/** Load quality signals from this provider's data source */
|
|
92
|
+
loadSignals(): QualitySignal[];
|
|
93
|
+
/** Optional quality weight overrides */
|
|
94
|
+
qualityWeights?(): ProviderQualityWeights | undefined;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Built-in file-based intelligence provider.
|
|
98
|
+
*
|
|
99
|
+
* Reads quality signals from a JSON file. This is the default provider
|
|
100
|
+
* for non-Rust integrations that write signal files.
|
|
101
|
+
*/
|
|
102
|
+
export declare class FileSignalProvider implements IntelligenceProvider {
|
|
103
|
+
private readonly filePath;
|
|
104
|
+
constructor(filePath: string);
|
|
105
|
+
name(): string;
|
|
106
|
+
loadSignals(): QualitySignal[];
|
|
107
|
+
qualityWeights(): ProviderQualityWeights | undefined;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Aggregates quality signals from multiple registered providers.
|
|
111
|
+
*
|
|
112
|
+
* If no providers are registered, loadAllSignals returns empty arrays
|
|
113
|
+
* with zero overhead.
|
|
114
|
+
*/
|
|
115
|
+
export declare class IntelligenceLoader {
|
|
116
|
+
private providers;
|
|
117
|
+
/** Register an external intelligence provider */
|
|
118
|
+
registerProvider(provider: IntelligenceProvider): void;
|
|
119
|
+
/** Returns the number of registered providers */
|
|
120
|
+
get providerCount(): number;
|
|
121
|
+
/** Returns the names of all registered providers */
|
|
122
|
+
get providerNames(): string[];
|
|
123
|
+
/**
|
|
124
|
+
* Load signals from all registered providers.
|
|
125
|
+
*
|
|
126
|
+
* Non-fatal: if a provider fails, its error is captured but
|
|
127
|
+
* other providers continue loading.
|
|
128
|
+
*/
|
|
129
|
+
loadAllSignals(): {
|
|
130
|
+
signals: QualitySignal[];
|
|
131
|
+
errors: ProviderError[];
|
|
132
|
+
};
|
|
133
|
+
/** Load signals grouped by provider with weight overrides */
|
|
134
|
+
loadGrouped(): ProviderResult[];
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=intelligence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intelligence.d.ts","sourceRoot":"","sources":["../../src/intelligence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,OAAO,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACnD,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,gEAAgE;IAChE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,IAAI,IAAI,MAAM,CAAC;IACf,4DAA4D;IAC5D,WAAW,IAAI,aAAa,EAAE,CAAC;IAC/B,wCAAwC;IACxC,cAAc,CAAC,IAAI,sBAAsB,GAAG,SAAS,CAAC;CACvD;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,oBAAoB;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAI5B,IAAI,IAAI,MAAM;IAId,WAAW,IAAI,aAAa,EAAE;IA8B9B,cAAc,IAAI,sBAAsB,GAAG,SAAS;CAiBrD;AAgBD;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAA8B;IAE/C,iDAAiD;IACjD,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAItD,iDAAiD;IACjD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,oDAAoD;IACpD,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED;;;;;OAKG;IACH,cAAc,IAAI;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,MAAM,EAAE,aAAa,EAAE,CAAA;KAAE;IAmBvE,6DAA6D;IAC7D,WAAW,IAAI,cAAc,EAAE;CAehC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External Intelligence Providers for SONA Learning (ADR-043)
|
|
3
|
+
*
|
|
4
|
+
* TypeScript bindings for the IntelligenceProvider trait, enabling
|
|
5
|
+
* external systems to feed quality signals into RuvLLM's learning loops.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { IntelligenceLoader, FileSignalProvider, QualitySignal } from '@ruvector/ruvllm';
|
|
10
|
+
*
|
|
11
|
+
* const loader = new IntelligenceLoader();
|
|
12
|
+
* loader.registerProvider(new FileSignalProvider('./signals.json'));
|
|
13
|
+
*
|
|
14
|
+
* const { signals, errors } = loader.loadAllSignals();
|
|
15
|
+
* console.log(`Loaded ${signals.length} signals`);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Built-in file-based intelligence provider.
|
|
20
|
+
*
|
|
21
|
+
* Reads quality signals from a JSON file. This is the default provider
|
|
22
|
+
* for non-Rust integrations that write signal files.
|
|
23
|
+
*/
|
|
24
|
+
export class FileSignalProvider {
|
|
25
|
+
constructor(filePath) {
|
|
26
|
+
this.filePath = filePath;
|
|
27
|
+
}
|
|
28
|
+
name() {
|
|
29
|
+
return 'file-signals';
|
|
30
|
+
}
|
|
31
|
+
loadSignals() {
|
|
32
|
+
try {
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
34
|
+
const fs = require('fs');
|
|
35
|
+
if (!fs.existsSync(this.filePath)) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
const raw = fs.readFileSync(this.filePath, 'utf-8');
|
|
39
|
+
const data = JSON.parse(raw);
|
|
40
|
+
if (!Array.isArray(data)) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
return data.map((item) => ({
|
|
44
|
+
id: String(item.id ?? ''),
|
|
45
|
+
taskDescription: String(item.task_description ?? item.taskDescription ?? ''),
|
|
46
|
+
outcome: String(item.outcome ?? 'failure'),
|
|
47
|
+
qualityScore: Number(item.quality_score ?? item.qualityScore ?? 0),
|
|
48
|
+
humanVerdict: item.human_verdict ?? item.humanVerdict
|
|
49
|
+
? String(item.human_verdict ?? item.humanVerdict)
|
|
50
|
+
: undefined,
|
|
51
|
+
qualityFactors: (item.quality_factors || item.qualityFactors)
|
|
52
|
+
? mapQualityFactors((item.quality_factors ?? item.qualityFactors))
|
|
53
|
+
: undefined,
|
|
54
|
+
completedAt: String(item.completed_at ?? item.completedAt ?? new Date().toISOString()),
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
qualityWeights() {
|
|
62
|
+
try {
|
|
63
|
+
const fs = require('fs');
|
|
64
|
+
const path = require('path');
|
|
65
|
+
const weightsPath = path.join(path.dirname(this.filePath), 'quality-weights.json');
|
|
66
|
+
if (!fs.existsSync(weightsPath))
|
|
67
|
+
return undefined;
|
|
68
|
+
const raw = fs.readFileSync(weightsPath, 'utf-8');
|
|
69
|
+
const data = JSON.parse(raw);
|
|
70
|
+
return {
|
|
71
|
+
taskCompletion: Number(data.task_completion ?? data.taskCompletion ?? 0.5),
|
|
72
|
+
codeQuality: Number(data.code_quality ?? data.codeQuality ?? 0.3),
|
|
73
|
+
process: Number(data.process ?? 0.2),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function mapQualityFactors(raw) {
|
|
82
|
+
return {
|
|
83
|
+
acceptanceCriteriaMet: raw.acceptance_criteria_met,
|
|
84
|
+
testsPassing: raw.tests_passing,
|
|
85
|
+
noRegressions: raw.no_regressions,
|
|
86
|
+
lintClean: raw.lint_clean,
|
|
87
|
+
typeCheckClean: raw.type_check_clean,
|
|
88
|
+
followsPatterns: raw.follows_patterns,
|
|
89
|
+
contextRelevance: raw.context_relevance,
|
|
90
|
+
reasoningCoherence: raw.reasoning_coherence,
|
|
91
|
+
executionEfficiency: raw.execution_efficiency,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Aggregates quality signals from multiple registered providers.
|
|
96
|
+
*
|
|
97
|
+
* If no providers are registered, loadAllSignals returns empty arrays
|
|
98
|
+
* with zero overhead.
|
|
99
|
+
*/
|
|
100
|
+
export class IntelligenceLoader {
|
|
101
|
+
constructor() {
|
|
102
|
+
this.providers = [];
|
|
103
|
+
}
|
|
104
|
+
/** Register an external intelligence provider */
|
|
105
|
+
registerProvider(provider) {
|
|
106
|
+
this.providers.push(provider);
|
|
107
|
+
}
|
|
108
|
+
/** Returns the number of registered providers */
|
|
109
|
+
get providerCount() {
|
|
110
|
+
return this.providers.length;
|
|
111
|
+
}
|
|
112
|
+
/** Returns the names of all registered providers */
|
|
113
|
+
get providerNames() {
|
|
114
|
+
return this.providers.map(p => p.name());
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Load signals from all registered providers.
|
|
118
|
+
*
|
|
119
|
+
* Non-fatal: if a provider fails, its error is captured but
|
|
120
|
+
* other providers continue loading.
|
|
121
|
+
*/
|
|
122
|
+
loadAllSignals() {
|
|
123
|
+
const signals = [];
|
|
124
|
+
const errors = [];
|
|
125
|
+
for (const provider of this.providers) {
|
|
126
|
+
try {
|
|
127
|
+
const providerSignals = provider.loadSignals();
|
|
128
|
+
signals.push(...providerSignals);
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
errors.push({
|
|
132
|
+
providerName: provider.name(),
|
|
133
|
+
message: e instanceof Error ? e.message : String(e),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return { signals, errors };
|
|
138
|
+
}
|
|
139
|
+
/** Load signals grouped by provider with weight overrides */
|
|
140
|
+
loadGrouped() {
|
|
141
|
+
return this.providers.map(provider => {
|
|
142
|
+
let providerSignals = [];
|
|
143
|
+
try {
|
|
144
|
+
providerSignals = provider.loadSignals();
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// Non-fatal
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
providerName: provider.name(),
|
|
151
|
+
signals: providerSignals,
|
|
152
|
+
weights: provider.qualityWeights?.(),
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWxsaWdlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVsbGlnZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQXNGSDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBWSxRQUFnQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDO1lBQ0gsOERBQThEO1lBQzlELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEQsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDekIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxN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QUUsQ0FBQztZQUMxQyxJQUFJLENBQUM7Z0JBQ0gsZUFBZSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLFlBQVk7WUFDZCxDQUFDO1lBQ0QsT0FBTztnQkFDTCxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDN0IsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE9BQU8sRUFBRSxRQUFRLENBQUMsY0FBYyxFQUFFLEVBQUU7YUFDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBJbnRlbGxpZ2VuY2UgUHJvdmlkZXJzIGZvciBTT05BIExlYXJuaW5nIChBRFItMDQzKVxuICpcbiAqIFR5cGVTY3JpcHQgYmluZGluZ3MgZm9yIHRoZSBJbnRlbGxpZ2VuY2VQcm92aWRlciB0cmFpdCwgZW5hYmxpbmdcbiAqIGV4dGVybmFsIHN5c3RlbXMgdG8gZmVlZCBxdWFsaXR5IHNpZ25hbHMgaW50byBSdXZMTE0ncyBsZWFybmluZyBsb29wcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgSW50ZWxsaWdlbmNlTG9hZGVyLCBGaWxlU2lnbmFsUHJvdmlkZXIsIFF1YWxpdHlTaWduYWwgfSBmcm9tICdAcnV2ZWN0b3IvcnV2bGxtJztcbiAqXG4gKiBjb25zdCBsb2FkZXIgPSBuZXcgSW50ZWxsaWdlbmNlTG9hZGVyKCk7XG4gKiBsb2FkZXIucmVnaXN0ZXJQcm92aWRlcihuZXcgRmlsZVNpZ25hbFByb3ZpZGVyKCcuL3NpZ25hbHMuanNvbicpKTtcbiAqXG4gKiBjb25zdCB7IHNpZ25hbHMsIGVycm9ycyB9ID0gbG9hZGVyLmxvYWRBbGxTaWduYWxzKCk7XG4gKiBjb25zb2xlLmxvZyhgTG9hZGVkICR7c2lnbmFscy5sZW5ndGh9IHNpZ25hbHNgKTtcbiAqIGBgYFxuICovXG5cbi8qKlxuICogQSBxdWFsaXR5IHNpZ25hbCBmcm9tIGFuIGV4dGVybmFsIHN5c3RlbS5cbiAqXG4gKiBSZXByZXNlbnRzIG9uZSBjb21wbGV0ZWQgdGFzayB3aXRoIHF1YWxpdHkgYXNzZXNzbWVudCBkYXRhXG4gKiB0aGF0IGNhbiBmZWVkIGludG8gU09OQSB0cmFqZWN0b3JpZXMsIHRoZSBlbWJlZGRpbmcgY2xhc3NpZmllcixcbiAqIGFuZCBtb2RlbCByb3V0ZXIgY2FsaWJyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eVNpZ25hbCB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBzaWduYWwgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHRhc2sgZGVzY3JpcHRpb24gKHVzZWQgZm9yIGVtYmVkZGluZyBnZW5lcmF0aW9uKSAqL1xuICB0YXNrRGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIEV4ZWN1dGlvbiBvdXRjb21lICovXG4gIG91dGNvbWU6ICdzdWNjZXNzJyB8ICdwYXJ0aWFsX3N1Y2Nlc3MnIHwgJ2ZhaWx1cmUnO1xuICAvKiogQ29tcG9zaXRlIHF1YWxpdHkgc2NvcmUgKDAuMCAtIDEuMCkgKi9cbiAgcXVhbGl0eVNjb3JlOiBudW1iZXI7XG4gIC8qKiBPcHRpb25hbCBodW1hbiB2ZXJkaWN0ICovXG4gIGh1bWFuVmVyZGljdD86ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnO1xuICAvKiogT3B0aW9uYWwgc3RydWN0dXJlZCBxdWFsaXR5IGZhY3RvcnMgZm9yIGRldGFpbGVkIGFuYWx5c2lzICovXG4gIHF1YWxpdHlGYWN0b3JzPzogUXVhbGl0eUZhY3RvcnM7XG4gIC8qKiBJU08gODYwMSB0aW1lc3RhbXAgb2YgdGFzayBjb21wbGV0aW9uICovXG4gIGNvbXBsZXRlZEF0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR3JhbnVsYXIgcXVhbGl0eSBmYWN0b3IgYnJlYWtkb3duLlxuICpcbiAqIE5vdCBhbGwgcHJvdmlkZXJzIHdpbGwgaGF2ZSBhbGwgZmFjdG9ycy4gVW5kZWZpbmVkIGZpZWxkcyBtZWFuXG4gKiBcIm5vdCBhc3Nlc3NlZFwiIChkaXN0aW5jdCBmcm9tIDAuMCwgd2hpY2ggbWVhbnMgXCJhc3Nlc3NlZCBhcyB6ZXJvXCIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlGYWN0b3JzIHtcbiAgYWNjZXB0YW5jZUNyaXRlcmlhTWV0PzogbnVtYmVyO1xuICB0ZXN0c1Bhc3Npbmc/OiBudW1iZXI7XG4gIG5vUmVncmVzc2lvbnM/OiBudW1iZXI7XG4gIGxpbnRDbGVhbj86IG51bWJlcjtcbiAgdHlwZUNoZWNrQ2xlYW4/OiBudW1iZXI7XG4gIGZvbGxvd3NQYXR0ZXJucz86IG51bWJlcjtcbiAgY29udGV4dFJlbGV2YW5jZT86IG51bWJlcjtcbiAgcmVhc29uaW5nQ29oZXJlbmNlPzogbnVtYmVyO1xuICBleGVjdXRpb25FZmZpY2llbmN5PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1YWxpdHkgd2VpZ2h0IG92ZXJyaWRlcyBmcm9tIGEgcHJvdmlkZXIuXG4gKlxuICogV2VpZ2h0cyBzaG91bGQgc3VtIHRvIGFwcHJveGltYXRlbHkgMS4wLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUXVhbGl0eVdlaWdodHMge1xuICB0YXNrQ29tcGxldGlvbjogbnVtYmVyO1xuICBjb2RlUXVhbGl0eTogbnVtYmVyO1xuICBwcm9jZXNzOiBudW1iZXI7XG59XG5cbi8qKlxuICogRXJyb3IgZnJvbSBhIHNpbmdsZSBwcm92aWRlciBkdXJpbmcgYmF0Y2ggbG9hZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlckVycm9yIHtcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgZnJvbSBhIHNpbmdsZSBwcm92aWRlciBkdXJpbmcgZ3JvdXBlZCBsb2FkaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUmVzdWx0IHtcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIHNpZ25hbHM6IFF1YWxpdHlTaWduYWxbXTtcbiAgd2VpZ2h0cz86IFByb3ZpZGVyUXVhbGl0eVdlaWdodHM7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBleHRlcm5hbCBzeXN0ZW1zIHRoYXQgc3VwcGx5IHF1YWxpdHkgc2lnbmFscyB0byBSdXZMTE0uXG4gKlxuICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIGFuZCByZWdpc3RlciB3aXRoIEludGVsbGlnZW5jZUxvYWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlbGxpZ2VuY2VQcm92aWRlciB7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGlzIHByb3ZpZGVyICovXG4gIG5hbWUoKTogc3RyaW5nO1xuICAvKiogTG9hZCBxdWFsaXR5IHNpZ25hbHMgZnJvbSB0aGlzIHByb3ZpZGVyJ3MgZGF0YSBzb3VyY2UgKi9cbiAgbG9hZFNpZ25hbHMoKTogUXVhbGl0eVNpZ25hbFtdO1xuICAvKiogT3B0aW9uYWwgcXVhbGl0eSB3ZWlnaHQgb3ZlcnJpZGVzICovXG4gIHF1YWxpdHlXZWlnaHRzPygpOiBQcm92aWRlclF1YWxpdHlXZWlnaHRzIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWx0LWluIGZpbGUtYmFzZWQgaW50ZWxsaWdlbmNlIHByb3ZpZGVyLlxuICpcbiAqIFJlYWRzIHF1YWxpdHkgc2lnbmFscyBmcm9tIGEgSlNPTiBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IHByb3ZpZGVyXG4gKiBmb3Igbm9uLVJ1c3QgaW50ZWdyYXRpb25zIHRoYXQgd3JpdGUgc2lnbmFsIGZpbGVzLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZVNpZ25hbFByb3ZpZGVyIGltcGxlbWVudHMgSW50ZWxsaWdlbmNlUHJvdmlkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuZmlsZVBhdGggPSBmaWxlUGF0aDtcbiAgfVxuXG4gIG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2ZpbGUtc2lnbmFscyc7XG4gIH1cblxuICBsb2FkU2lnbmFscygpOiBRdWFsaXR5U2lnbmFsW10ge1xuICAgIHRyeSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZmlsZVBhdGgpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJhdyA9IGZzLnJlYWRGaWxlU3luYyh0aGlzLmZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJhdyk7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGEubWFwKChpdGVtOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gKHtcbiAgICAgICAgaWQ6IFN0cmluZyhpdGVtLmlkID8/ICcnKSxcbiAgICAgICAgdGFza0Rlc2NyaXB0aW9uOiBTdHJpbmcoaXRlbS50YXNrX2Rlc2NyaXB0aW9uID8/IGl0ZW0udGFza0Rlc2NyaXB0aW9uID8/ICcnKSxcbiAgICAgICAgb3V0Y29tZTogU3RyaW5nKGl0ZW0ub3V0Y29tZSA/PyAnZmFpbHVyZScpIGFzIFF1YWxpdHlTaWduYWxbJ291dGNvbWUnXSxcbiAgICAgICAgcXVhbGl0eVNjb3JlOiBOdW1iZXIoaXRlbS5xdWFsaXR5X3Njb3JlID8/IGl0ZW0ucXVhbGl0eVNjb3JlID8/IDApLFxuICAgICAgICBodW1hblZlcmRpY3Q6IGl0ZW0uaHVtYW5fdmVyZGljdCA/PyBpdGVtLmh1bWFuVmVyZGljdFxuICAgICAgICAgID8gU3RyaW5nKGl0ZW0uaHVtYW5fdmVyZGljdCA/PyBpdGVtLmh1bWFuVmVyZGljdCkgYXMgUXVhbGl0eVNpZ25hbFsnaHVtYW5WZXJkaWN0J11cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgcXVhbGl0eUZhY3RvcnM6IChpdGVtLnF1YWxpdHlfZmFjdG9ycyB8fCBpdGVtLnF1YWxpdHlGYWN0b3JzKVxuICAgICAgICAgID8gbWFwUXVhbGl0eUZhY3RvcnMoKGl0ZW0ucXVhbGl0eV9mYWN0b3JzID8/IGl0ZW0ucXVhbGl0eUZhY3RvcnMpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBjb21wbGV0ZWRBdDogU3RyaW5nKGl0ZW0uY29tcGxldGVkX2F0ID8/IGl0ZW0uY29tcGxldGVkQXQgPz8gbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxcbiAgICAgIH0pKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBxdWFsaXR5V2VpZ2h0cygpOiBQcm92aWRlclF1YWxpdHlXZWlnaHRzIHwgdW5kZWZpbmVkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuICAgICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbiAgICAgIGNvbnN0IHdlaWdodHNQYXRoID0gcGF0aC5qb2luKHBhdGguZGlybmFtZSh0aGlzLmZpbGVQYXRoKSwgJ3F1YWxpdHktd2VpZ2h0cy5qc29uJyk7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMod2VpZ2h0c1BhdGgpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcmF3ID0gZnMucmVhZEZpbGVTeW5jKHdlaWdodHNQYXRoLCAndXRmLTgnKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJhdyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0YXNrQ29tcGxldGlvbjogTnVtYmVyKGRhdGEudGFza19jb21wbGV0aW9uID8/IGRhdGEudGFza0NvbXBsZXRpb24gPz8gMC41KSxcbiAgICAgICAgY29kZVF1YWxpdHk6IE51bWJlcihkYXRhLmNvZGVfcXVhbGl0eSA/PyBkYXRhLmNvZGVRdWFsaXR5ID8/IDAuMyksXG4gICAgICAgIHByb2Nlc3M6IE51bWJlcihkYXRhLnByb2Nlc3MgPz8gMC4yKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXBRdWFsaXR5RmFjdG9ycyhyYXc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUXVhbGl0eUZhY3RvcnMge1xuICByZXR1cm4ge1xuICAgIGFjY2VwdGFuY2VDcml0ZXJpYU1ldDogcmF3LmFjY2VwdGFuY2VfY3JpdGVyaWFfbWV0IGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICB0ZXN0c1Bhc3Npbmc6IHJhdy50ZXN0c19wYXNzaW5nIGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBub1JlZ3Jlc3Npb25zOiByYXcubm9fcmVncmVzc2lvbnMgYXMgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIGxpbnRDbGVhbjogcmF3LmxpbnRfY2xlYW4gYXMgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIHR5cGVDaGVja0NsZWFuOiByYXcudHlwZV9jaGVja19jbGVhbiBhcyBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgZm9sbG93c1BhdHRlcm5zOiByYXcuZm9sbG93c19wYXR0ZXJucyBhcyBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgY29udGV4dFJlbGV2YW5jZTogcmF3LmNvbnRleHRfcmVsZXZhbmNlIGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICByZWFzb25pbmdDb2hlcmVuY2U6IHJhdy5yZWFzb25pbmdfY29oZXJlbmNlIGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBleGVjdXRpb25FZmZpY2llbmN5OiByYXcuZXhlY3V0aW9uX2VmZmljaWVuY3kgYXMgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICB9O1xufVxuXG4vKipcbiAqIEFnZ3JlZ2F0ZXMgcXVhbGl0eSBzaWduYWxzIGZyb20gbXVsdGlwbGUgcmVnaXN0ZXJlZCBwcm92aWRlcnMuXG4gKlxuICogSWYgbm8gcHJvdmlkZXJzIGFyZSByZWdpc3RlcmVkLCBsb2FkQWxsU2lnbmFscyByZXR1cm5zIGVtcHR5IGFycmF5c1xuICogd2l0aCB6ZXJvIG92ZXJoZWFkLlxuICovXG5leHBvcnQgY2xhc3MgSW50ZWxsaWdlbmNlTG9hZGVyIHtcbiAgcHJpdmF0ZSBwcm92aWRlcnM6IEludGVsbGlnZW5jZVByb3ZpZGVyW10gPSBbXTtcblxuICAvKiogUmVnaXN0ZXIgYW4gZXh0ZXJuYWwgaW50ZWxsaWdlbmNlIHByb3ZpZGVyICovXG4gIHJlZ2lzdGVyUHJvdmlkZXIocHJvdmlkZXI6IEludGVsbGlnZW5jZVByb3ZpZGVyKTogdm9pZCB7XG4gICAgdGhpcy5wcm92aWRlcnMucHVzaChwcm92aWRlcik7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzICovXG4gIGdldCBwcm92aWRlckNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlkZXJzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYW1lcyBvZiBhbGwgcmVnaXN0ZXJlZCBwcm92aWRlcnMgKi9cbiAgZ2V0IHByb3ZpZGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVycy5tYXAocCA9PiBwLm5hbWUoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBzaWduYWxzIGZyb20gYWxsIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLlxuICAgKlxuICAgKiBOb24tZmF0YWw6IGlmIGEgcHJvdmlkZXIgZmFpbHMsIGl0cyBlcnJvciBpcyBjYXB0dXJlZCBidXRcbiAgICogb3RoZXIgcHJvdmlkZXJzIGNvbnRpbnVlIGxvYWRpbmcuXG4gICAqL1xuICBsb2FkQWxsU2lnbmFscygpOiB7IHNpZ25hbHM6IFF1YWxpdHlTaWduYWxbXTsgZXJyb3JzOiBQcm92aWRlckVycm9yW10gfSB7XG4gICAgY29uc3Qgc2lnbmFsczogUXVhbGl0eVNpZ25hbFtdID0gW107XG4gICAgY29uc3QgZXJyb3JzOiBQcm92aWRlckVycm9yW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyU2lnbmFscyA9IHByb3ZpZGVyLmxvYWRTaWduYWxzKCk7XG4gICAgICAgIHNpZ25hbHMucHVzaCguLi5wcm92aWRlclNpZ25hbHMpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgcHJvdmlkZXJOYW1lOiBwcm92aWRlci5uYW1lKCksXG4gICAgICAgICAgbWVzc2FnZTogZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBzaWduYWxzLCBlcnJvcnMgfTtcbiAgfVxuXG4gIC8qKiBMb2FkIHNpZ25hbHMgZ3JvdXBlZCBieSBwcm92aWRlciB3aXRoIHdlaWdodCBvdmVycmlkZXMgKi9cbiAgbG9hZEdyb3VwZWQoKTogUHJvdmlkZXJSZXN1bHRbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlkZXJzLm1hcChwcm92aWRlciA9PiB7XG4gICAgICBsZXQgcHJvdmlkZXJTaWduYWxzOiBRdWFsaXR5U2lnbmFsW10gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByb3ZpZGVyU2lnbmFscyA9IHByb3ZpZGVyLmxvYWRTaWduYWxzKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gTm9uLWZhdGFsXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlck5hbWU6IHByb3ZpZGVyLm5hbWUoKSxcbiAgICAgICAgc2lnbmFsczogcHJvdmlkZXJTaWduYWxzLFxuICAgICAgICB3ZWlnaHRzOiBwcm92aWRlci5xdWFsaXR5V2VpZ2h0cz8uKCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ruvector/ruvllm",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Self-learning LLM orchestration with SONA adaptive learning, HNSW memory,
|
|
3
|
+
"version": "2.5.0",
|
|
4
|
+
"description": "Self-learning LLM orchestration with SONA adaptive learning, HNSW memory, FastGRNN routing, and SIMD inference",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/cjs/index.d.ts",
|
|
@@ -74,8 +74,6 @@
|
|
|
74
74
|
"keywords": [
|
|
75
75
|
"ruvllm",
|
|
76
76
|
"llm",
|
|
77
|
-
"rlm",
|
|
78
|
-
"retrieval-language-model",
|
|
79
77
|
"self-learning",
|
|
80
78
|
"adaptive-learning",
|
|
81
79
|
"sona",
|
|
@@ -94,9 +92,7 @@
|
|
|
94
92
|
"deep-learning",
|
|
95
93
|
"napi",
|
|
96
94
|
"rust",
|
|
97
|
-
"ruvector"
|
|
98
|
-
"rag",
|
|
99
|
-
"contrastive-learning"
|
|
95
|
+
"ruvector"
|
|
100
96
|
],
|
|
101
97
|
"author": "rUv Team <team@ruv.io>",
|
|
102
98
|
"license": "MIT OR Apache-2.0",
|