@ruvector/ruvllm 2.5.7 → 2.6.2
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/dist/cjs/benchmarks/embedding-benchmark.js +8 -8
- package/dist/cjs/benchmarks/index.js +5 -5
- package/dist/cjs/benchmarks/model-comparison.js +25 -15
- package/dist/cjs/benchmarks/routing-benchmark.js +5 -5
- package/dist/cjs/contrastive.js +9 -9
- package/dist/cjs/engine.d.ts +2 -2
- package/dist/cjs/engine.d.ts.map +1 -1
- package/dist/cjs/engine.js +41 -19
- package/dist/cjs/intelligence.js +18 -8
- package/dist/cjs/lora.d.ts +11 -0
- package/dist/cjs/lora.d.ts.map +1 -1
- package/dist/cjs/lora.js +16 -1
- package/dist/cjs/models.js +23 -13
- package/dist/cjs/native.d.ts +17 -8
- package/dist/cjs/native.d.ts.map +1 -1
- package/dist/cjs/native.js +4 -5
- package/dist/cjs/rlm/controller.d.ts +245 -0
- package/dist/cjs/rlm/controller.d.ts.map +1 -0
- package/dist/cjs/rlm/controller.js +554 -0
- package/dist/cjs/rlm/index.d.ts +62 -0
- package/dist/cjs/rlm/index.d.ts.map +1 -0
- package/dist/cjs/rlm/index.js +97 -0
- package/dist/cjs/rlm/training.d.ts +333 -0
- package/dist/cjs/rlm/training.d.ts.map +1 -0
- package/dist/cjs/rlm/training.js +680 -0
- package/dist/cjs/rlm/types.d.ts +189 -0
- package/dist/cjs/rlm/types.d.ts.map +1 -0
- package/dist/cjs/rlm/types.js +10 -0
- package/dist/cjs/streaming.d.ts +0 -1
- package/dist/cjs/streaming.d.ts.map +1 -1
- package/dist/cjs/streaming.js +3 -3
- package/dist/cjs/training.d.ts +31 -1
- package/dist/cjs/training.d.ts.map +1 -1
- package/dist/cjs/training.js +86 -6
- package/dist/cjs/types.d.ts +11 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +1 -1
- package/dist/esm/benchmarks/index.d.ts +5 -5
- package/dist/esm/benchmarks/index.js +5 -5
- package/dist/esm/benchmarks/model-comparison.d.ts +2 -2
- package/dist/esm/benchmarks/model-comparison.js +2 -2
- package/dist/esm/contrastive.d.ts +1 -1
- package/dist/esm/engine.d.ts +2 -2
- package/dist/esm/engine.d.ts.map +1 -1
- package/dist/esm/engine.js +42 -20
- package/dist/esm/export.d.ts +2 -2
- package/dist/esm/federated.d.ts +1 -1
- package/dist/esm/federated.js +1 -1
- package/dist/esm/index.d.ts +16 -16
- package/dist/esm/index.js +16 -16
- package/dist/esm/lora.d.ts +12 -1
- package/dist/esm/lora.d.ts.map +1 -1
- package/dist/esm/lora.js +16 -1
- package/dist/esm/native.d.ts +17 -8
- package/dist/esm/native.d.ts.map +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/rlm/controller.d.ts +245 -0
- package/dist/esm/rlm/controller.d.ts.map +1 -0
- package/dist/esm/rlm/controller.js +550 -0
- package/dist/esm/rlm/index.d.ts +62 -0
- package/dist/esm/rlm/index.d.ts.map +1 -0
- package/dist/esm/rlm/index.js +71 -0
- package/dist/esm/rlm/training.d.ts +333 -0
- package/dist/esm/rlm/training.d.ts.map +1 -0
- package/dist/esm/rlm/training.js +672 -0
- package/dist/esm/rlm/types.d.ts +189 -0
- package/dist/esm/rlm/types.d.ts.map +1 -0
- package/dist/esm/rlm/types.js +9 -0
- package/dist/esm/session.d.ts +1 -1
- package/dist/esm/simd.js +1 -1
- package/dist/esm/sona.d.ts +1 -1
- package/dist/esm/sona.js +1 -1
- package/dist/esm/streaming.d.ts +1 -2
- package/dist/esm/streaming.d.ts.map +1 -1
- package/dist/esm/training.d.ts +34 -4
- package/dist/esm/training.d.ts.map +1 -1
- package/dist/esm/training.js +88 -8
- package/dist/esm/types.d.ts +11 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/package.json +4 -2
- package/scripts/fix-esm-extensions.mjs +181 -0
- package/scripts/smoke-esm.mjs +82 -0
package/dist/cjs/models.js
CHANGED
|
@@ -32,15 +32,29 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
32
32
|
}) : function(o, v) {
|
|
33
33
|
o["default"] = v;
|
|
34
34
|
});
|
|
35
|
-
var __importStar = (this && this.__importStar) || function (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
42
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.ModelDownloader = exports.
|
|
53
|
+
exports.ModelDownloader = exports.MODEL_ALIASES = exports.RUVLTRA_MODELS = void 0;
|
|
54
|
+
exports.getDefaultModelsDir = getDefaultModelsDir;
|
|
55
|
+
exports.resolveModelId = resolveModelId;
|
|
56
|
+
exports.getModelInfo = getModelInfo;
|
|
57
|
+
exports.listModels = listModels;
|
|
44
58
|
const fs_1 = require("fs");
|
|
45
59
|
const path_1 = require("path");
|
|
46
60
|
const os_1 = require("os");
|
|
@@ -103,7 +117,6 @@ exports.MODEL_ALIASES = {
|
|
|
103
117
|
function getDefaultModelsDir() {
|
|
104
118
|
return (0, path_1.join)((0, os_1.homedir)(), '.ruvllm', 'models');
|
|
105
119
|
}
|
|
106
|
-
exports.getDefaultModelsDir = getDefaultModelsDir;
|
|
107
120
|
/**
|
|
108
121
|
* Resolve model ID from alias or direct ID
|
|
109
122
|
*/
|
|
@@ -119,7 +132,6 @@ function resolveModelId(modelIdOrAlias) {
|
|
|
119
132
|
}
|
|
120
133
|
return null;
|
|
121
134
|
}
|
|
122
|
-
exports.resolveModelId = resolveModelId;
|
|
123
135
|
/**
|
|
124
136
|
* Get model info by ID or alias
|
|
125
137
|
*/
|
|
@@ -127,14 +139,12 @@ function getModelInfo(modelIdOrAlias) {
|
|
|
127
139
|
const id = resolveModelId(modelIdOrAlias);
|
|
128
140
|
return id ? exports.RUVLTRA_MODELS[id] : null;
|
|
129
141
|
}
|
|
130
|
-
exports.getModelInfo = getModelInfo;
|
|
131
142
|
/**
|
|
132
143
|
* List all available models
|
|
133
144
|
*/
|
|
134
145
|
function listModels() {
|
|
135
146
|
return Object.values(exports.RUVLTRA_MODELS);
|
|
136
147
|
}
|
|
137
|
-
exports.listModels = listModels;
|
|
138
148
|
/**
|
|
139
149
|
* Model downloader for RuvLTRA GGUF models
|
|
140
150
|
*/
|
|
@@ -310,4 +320,4 @@ class ModelDownloader {
|
|
|
310
320
|
}
|
|
311
321
|
exports.ModelDownloader = ModelDownloader;
|
|
312
322
|
exports.default = ModelDownloader;
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsMkJBQWdHO0FBQ2hHLCtCQUFxQztBQUNyQywyQkFBNkI7QUEyRDdCLDZCQUE2QjtBQUM3QixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDOUIsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLE9BQU8sZUFBZSxDQUFDO0FBRXJFLCtCQUErQjtBQUNsQixRQUFBLGNBQWMsR0FBOEI7SUFDdkQsYUFBYSxFQUFFO1FBQ2IsRUFBRSxFQUFFLGFBQWE7UUFDakIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixRQUFRLEVBQUUsc0NBQXNDO1FBQ2hELFNBQVMsRUFBRSxTQUFXO1FBQ3RCLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLHVDQUF1QztRQUNoRCxZQUFZLEVBQUUsUUFBUTtRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixHQUFHLEVBQUUsR0FBRyxXQUFXLHVDQUF1QztLQUMzRDtJQUNELE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSxPQUFPO1FBQ1gsSUFBSSxFQUFFLGVBQWU7UUFDckIsUUFBUSxFQUFFLGdDQUFnQztRQUMxQyxTQUFTLEVBQUUsU0FBVztRQUN0QixJQUFJLEVBQUUsUUFBUTtRQUNkLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLE9BQU8sRUFBRSxzREFBc0Q7UUFDL0QsWUFBWSxFQUFFLFFBQVE7UUFDdEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsR0FBRyxFQUFFLEdBQUcsV0FBVyxpQ0FBaUM7S0FDckQ7SUFDRCxRQUFRLEVBQUU7UUFDUixFQUFFLEVBQUUsUUFBUTtRQUNaLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsUUFBUSxFQUFFLGlDQUFpQztRQUMzQyxTQUFT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LE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGNBQXNCO1FBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUEsZUFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBQSxlQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBdE1ELDBDQXNNQztBQUVELGtCQUFlLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnV2TFRSQSBNb2RlbCBSZWdpc3RyeSBhbmQgRG93bmxvYWRlclxuICpcbiAqIEF1dG9tYXRpY2FsbHkgZG93bmxvYWRzIEdHVUYgbW9kZWxzIGZyb20gSHVnZ2luZ0ZhY2UgSHViLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBNb2RlbERvd25sb2FkZXIsIFJVVkxUUkFfTU9ERUxTIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XG4gKlxuICogLy8gRG93bmxvYWQgdGhlIENsYXVkZSBDb2RlIG9wdGltaXplZCBtb2RlbFxuICogY29uc3QgZG93bmxvYWRlciA9IG5ldyBNb2RlbERvd25sb2FkZXIoKTtcbiAqIGNvbnN0IG1vZGVsUGF0aCA9IGF3YWl0IGRvd25sb2FkZXIuZG93bmxvYWQoJ2NsYXVkZS1jb2RlJyk7XG4gKlxuICogLy8gT3IgZG93bmxvYWQgYWxsIG1vZGVsc1xuICogYXdhaXQgZG93bmxvYWRlci5kb3dubG9hZEFsbCgpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlV3JpdGVTdHJlYW0sIGV4aXN0c1N5bmMsIG1rZGlyU3luYywgc3RhdFN5bmMsIHVubGlua1N5bmMsIHJlbmFtZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luLCBkaXJuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBob21lZGlyIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tICdzdHJlYW0vcHJvbWlzZXMnO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5cbi8qKiBNb2RlbCBpbmZvcm1hdGlvbiBmcm9tIEh1Z2dpbmdGYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW5mbyB7XG4gIC8qKiBNb2RlbCBpZGVudGlmaWVyICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogTW9kZWwgZmlsZW5hbWUgb24gSHVnZ2luZ0ZhY2UgKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcbiAgLyoqIE1vZGVsIHNpemUgaW4gYnl0ZXMgKi9cbiAgc2l6ZUJ5dGVzOiBudW1iZXI7XG4gIC8qKiBNb2RlbCBzaXplIChodW1hbiByZWFkYWJsZSkgKi9cbiAgc2l6ZTogc3RyaW5nO1xuICAvKiogUGFyYW1ldGVyIGNvdW50ICovXG4gIHBhcmFtZXRlcnM6IHN0cmluZztcbiAgLyoqIFVzZSBjYXNlIGRlc2NyaXB0aW9uICovXG4gIHVzZUNhc2U6IHN0cmluZztcbiAgLyoqIFF1YW50aXphdGlvbiB0eXBlICovXG4gIHF1YW50aXphdGlvbjogc3RyaW5nO1xuICAvKiogQ29udGV4dCB3aW5kb3cgc2l6ZSAqL1xuICBjb250ZXh0TGVuZ3RoOiBudW1iZXI7XG4gIC8qKiBIdWdnaW5nRmFjZSBkb3dubG9hZCBVUkwgKi9cbiAgdXJsOiBzdHJpbmc7XG59XG5cbi8qKiBEb3dubG9hZCBwcm9ncmVzcyBjYWxsYmFjayAqL1xuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogRG93bmxvYWRQcm9ncmVzcykgPT4gdm9pZDtcblxuLyoqIERvd25sb2FkIHByb2dyZXNzIGluZm9ybWF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkUHJvZ3Jlc3Mge1xuICAvKiogTW9kZWwgYmVpbmcgZG93bmxvYWRlZCAqL1xuICBtb2RlbElkOiBzdHJpbmc7XG4gIC8qKiBCeXRlcyBkb3dubG9hZGVkIHNvIGZhciAqL1xuICBkb3dubG9hZGVkOiBudW1iZXI7XG4gIC8qKiBUb3RhbCBieXRlcyB0byBkb3dubG9hZCAqL1xuICB0b3RhbDogbnVtYmVyO1xuICAvKiogRG93bmxvYWQgcGVyY2VudGFnZSAoMC0xMDApICovXG4gIHBlcmNlbnQ6IG51bWJlcjtcbiAgLyoqIERvd25sb2FkIHNwZWVkIGluIGJ5dGVzIHBlciBzZWNvbmQgKi9cbiAgc3BlZWRCcHM6IG51bWJlcjtcbiAgLyoqIEVzdGltYXRlZCB0aW1lIHJlbWFpbmluZyBpbiBzZWNvbmRzICovXG4gIGV0YVNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqIERvd25sb2FkIG9wdGlvbnMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG93bmxvYWRPcHRpb25zIHtcbiAgLyoqIERpcmVjdG9yeSB0byBzYXZlIG1vZGVscyAoZGVmYXVsdDogfi8ucnV2bGxtL21vZGVscykgKi9cbiAgbW9kZWxzRGlyPzogc3RyaW5nO1xuICAvKiogRm9yY2UgcmUtZG93bmxvYWQgZXZlbiBpZiBmaWxlIGV4aXN0cyAqL1xuICBmb3JjZT86IGJvb2xlYW47XG4gIC8qKiBQcm9ncmVzcyBjYWxsYmFjayAqL1xuICBvblByb2dyZXNzPzogUHJvZ3Jlc3NDYWxsYmFjaztcbiAgLyoqIFZlcmlmeSBmaWxlIGludGVncml0eSBhZnRlciBkb3dubG9hZCAqL1xuICB2ZXJpZnk/OiBib29sZWFuO1xufVxuXG4vKiogSHVnZ2luZ0ZhY2UgcmVwb3NpdG9yeSAqL1xuY29uc3QgSEZfUkVQTyA9ICdydXYvcnV2bHRyYSc7XG5jb25zdCBIRl9CQVNFX1VSTCA9IGBodHRwczovL2h1Z2dpbmdmYWNlLmNvLyR7SEZfUkVQT30vcmVzb2x2ZS9tYWluYDtcblxuLyoqIEF2YWlsYWJsZSBSdXZMVFJBIG1vZGVscyAqL1xuZXhwb3J0IGNvbnN0IFJVVkxUUkFfTU9ERUxTOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbEluZm8+ID0ge1xuICAnY2xhdWRlLWNvZGUnOiB7XG4gICAgaWQ6ICdjbGF1ZGUtY29kZScsXG4gICAgbmFtZTogJ1J1dkxUUkEgQ2xhdWRlIENvZGUnLFxuICAgIGZpbGVuYW1lOiAncnV2bHRyYS1jbGF1ZGUtY29kZS0wLjViLXE0X2tfbS5nZ3VmJyxcbiAgICBzaXplQnl0ZXM6IDM5OF8wMDBfMDAwLFxuICAgIHNpemU6ICczOTggTUInLFxuICAgIHBhcmFtZXRlcnM6ICcwLjVCJyxcbiAgICB1c2VDYXNlOiAnQ2xhdWRlIENvZGUgd29ya2Zsb3dzLCBhZ2VudGljIGNvZGluZycsXG4gICAgcXVhbnRpemF0aW9uOiAnUTRfS19NJyxcbiAgICBjb250ZXh0TGVuZ3RoOiA0MDk2LFxuICAgIHVybDogYCR7SEZfQkFTRV9VUkx9L3J1dmx0cmEtY2xhdWRlLWNvZGUtMC41Yi1xNF9rX20uZ2d1ZmAsXG4gIH0sXG4gICdzbWFsbCc6IHtcbiAgICBpZDogJ3NtYWxsJyxcbiAgICBuYW1lOiAnUnV2TFRSQSBTbWFsbCcsXG4gICAgZmlsZW5hbWU6ICdydXZsdHJhLXNtYWxsLTAuNWItcTRfa19tLmdndWYnLFxuICAgIHNpemVCeXRlczogMzk4XzAwMF8wMDAsXG4gICAgc2l6ZTogJzM5OCBNQicsXG4gICAgcGFyYW1ldGVyczogJzAuNUInLFxuICAgIHVzZUNhc2U6ICdFZGdlIGRldmljZXMsIElvVCwgcmVzb3VyY2UtY29uc3RyYWluZWQgZW52aXJvbm1lbnRzJyxcbiAgICBxdWFudGl6YXRpb246ICdRNF9LX00nLFxuICAgIGNvbnRleHRMZW5ndGg6IDQwOTYsXG4gICAgdXJsOiBgJHtIRl9CQVNFX1VSTH0vcnV2bHRyYS1zbWFsbC0wLjViLXE0X2tfbS5nZ3VmYCxcbiAgfSxcbiAgJ21lZGl1bSc6IHtcbiAgICBpZDogJ21lZGl1bScsXG4gICAgbmFtZTogJ1J1dkxUUkEgTWVkaXVtJyxcbiAgICBmaWxlbmFtZTogJ3J1dmx0cmEtbWVkaXVtLTEuMWItcTRfa19tLmdndWYnLFxuICAgIHNpemVCeXRlczogNjY5XzAwMF8wMDAsXG4gICAgc2l6ZTogJzY2OSBNQicsXG4gICAgcGFyYW1ldGVyczogJzEuMUInLFxuICAgIHVzZUNhc2U6ICdHZW5lcmFsIHB1cnBvc2UsIGJhbGFuY2VkIHBlcmZvcm1hbmNlJyxcbiAgICBxdWFudGl6YXRpb246ICdRNF9LX00nLFxuICAgIGNvbnRleHRMZW5ndGg6IDgxOTIsXG4gICAgdXJsOiBgJHtIRl9CQVNFX1VSTH0vcnV2bHRyYS1tZWRpdW0tMS4xYi1xNF9rX20uZ2d1ZmAsXG4gIH0sXG59O1xuXG4vKiogTW9kZWwgYWxpYXNlcyBmb3IgY29udmVuaWVuY2UgKi9cbmV4cG9ydCBjb25zdCBNT0RFTF9BTElBU0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnY2MnOiAnY2xhdWRlLWNvZGUnLFxuICAnY2xhdWRlY29kZSc6ICdjbGF1ZGUtY29kZScsXG4gICdjbGF1ZGUnOiAnY2xhdWRlLWNvZGUnLFxuICAncyc6ICdzbWFsbCcsXG4gICdzbSc6ICdzbWFsbCcsXG4gICdtJzogJ21lZGl1bScsXG4gICdtZWQnOiAnbWVkaXVtJyxcbiAgJ2RlZmF1bHQnOiAnY2xhdWRlLWNvZGUnLFxufTtcblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgbW9kZWxzIGRpcmVjdG9yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdE1vZGVsc0RpcigpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbihob21lZGlyKCksICcucnV2bGxtJywgJ21vZGVscycpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgbW9kZWwgSUQgZnJvbSBhbGlhcyBvciBkaXJlY3QgSURcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RlbElkKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG1vZGVsSWRPckFsaWFzLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuXG4gIC8vIERpcmVjdCBtYXRjaFxuICBpZiAoUlVWTFRSQV9NT0RFTFNbbm9ybWFsaXplZF0pIHtcbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgfVxuXG4gIC8vIEFsaWFzIG1hdGNoXG4gIGlmIChNT0RFTF9BTElBU0VTW25vcm1hbGl6ZWRdKSB7XG4gICAgcmV0dXJuIE1PREVMX0FMSUFTRVNbbm9ybWFsaXplZF07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBHZXQgbW9kZWwgaW5mbyBieSBJRCBvciBhbGlhc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxJbmZvKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBNb2RlbEluZm8gfCBudWxsIHtcbiAgY29uc3QgaWQgPSByZXNvbHZlTW9kZWxJZChtb2RlbElkT3JBbGlhcyk7XG4gIHJldHVybiBpZCA/IFJVVkxUUkFfTU9ERUxTW2lkXSA6IG51bGw7XG59XG5cbi8qKlxuICogTGlzdCBhbGwgYXZhaWxhYmxlIG1vZGVsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdE1vZGVscygpOiBNb2RlbEluZm9bXSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKFJVVkxUUkFfTU9ERUxTKTtcbn1cblxuLyoqXG4gKiBNb2RlbCBkb3dubG9hZGVyIGZvciBSdXZMVFJBIEdHVUYgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RlbERvd25sb2FkZXIge1xuICBwcml2YXRlIG1vZGVsc0Rpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1vZGVsc0Rpcj86IHN0cmluZykge1xuICAgIHRoaXMubW9kZWxzRGlyID0gbW9kZWxzRGlyIHx8IGdldERlZmF1bHRNb2RlbHNEaXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhdGggd2hlcmUgYSBtb2RlbCB3b3VsZCBiZSBzYXZlZFxuICAgKi9cbiAgZ2V0TW9kZWxQYXRoKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBtb2RlbCA9IGdldE1vZGVsSW5mbyhtb2RlbElkT3JBbGlhcyk7XG4gICAgaWYgKCFtb2RlbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGpvaW4odGhpcy5tb2RlbHNEaXIsIG1vZGVsLmZpbGVuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIG1vZGVsIGlzIGFscmVhZHkgZG93bmxvYWRlZFxuICAgKi9cbiAgaXNEb3dubG9hZGVkKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRNb2RlbFBhdGgobW9kZWxJZE9yQWxpYXMpO1xuICAgIGlmICghcGF0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKCFleGlzdHNTeW5jKHBhdGgpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBWZXJpZnkgc2l6ZSBtYXRjaGVzIGV4cGVjdGVkXG4gICAgY29uc3QgbW9kZWwgPSBnZXRNb2RlbEluZm8obW9kZWxJZE9yQWxpYXMpO1xuICAgIGlmICghbW9kZWwpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHN0YXRzID0gc3RhdFN5bmMocGF0aCk7XG4gICAgLy8gQWxsb3cgNSUgdmFyaWFuY2UgZm9yIHNpemUgY2hlY2tcbiAgICBjb25zdCBtaW5TaXplID0gbW9kZWwuc2l6ZUJ5dGVzICogMC45NTtcbiAgICByZXR1cm4gc3RhdHMuc2l6ZSA+PSBtaW5TaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkb3dubG9hZCBzdGF0dXMgZm9yIGFsbCBtb2RlbHNcbiAgICovXG4gIGdldFN0YXR1cygpOiB7IG1vZGVsOiBNb2RlbEluZm87IGRvd25sb2FkZWQ6IGJvb2xlYW47IHBhdGg6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiBsaXN0TW9kZWxzKCkubWFwKG1vZGVsID0+ICh7XG4gICAgICBtb2RlbCxcbiAgICAgIGRvd25sb2FkZWQ6IHRoaXMuaXNEb3dubG9hZGVkKG1vZGVsLmlkKSxcbiAgICAgIHBhdGg6IHRoaXMuZ2V0TW9kZWxQYXRoKG1vZGVsLmlkKSEsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkIGEgbW9kZWwgZnJvbSBIdWdnaW5nRmFjZVxuICAgKi9cbiAgYXN5bmMgZG93bmxvYWQoXG4gICAgbW9kZWxJZE9yQWxpYXM6IHN0cmluZyxcbiAgICBvcHRpb25zOiBEb3dubG9hZE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG1vZGVsID0gZ2V0TW9kZWxJbmZvKG1vZGVsSWRPckFsaWFzKTtcbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICBjb25zdCBhdmFpbGFibGUgPSBsaXN0TW9kZWxzKCkubWFwKG0gPT4gbS5pZCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVua25vd24gbW9kZWw6ICR7bW9kZWxJZE9yQWxpYXN9LiBBdmFpbGFibGUgbW9kZWxzOiAke2F2YWlsYWJsZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3REaXIgPSBvcHRpb25zLm1vZGVsc0RpciB8fCB0aGlzLm1vZGVsc0RpcjtcbiAgICBjb25zdCBkZXN0UGF0aCA9IGpvaW4oZGVzdERpciwgbW9kZWwuZmlsZW5hbWUpO1xuXG4gICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBkb3dubG9hZGVkXG4gICAgaWYgKCFvcHRpb25zLmZvcmNlICYmIHRoaXMuaXNEb3dubG9hZGVkKG1vZGVsLmlkKSkge1xuICAgICAgcmV0dXJuIGRlc3RQYXRoO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBkaXJlY3RvcnkgZXhpc3RzXG4gICAgaWYgKCFleGlzdHNTeW5jKGRlc3REaXIpKSB7XG4gICAgICBta2RpclN5bmMoZGVzdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgLy8gRG93bmxvYWQgd2l0aCBwcm9ncmVzcyB0cmFja2luZ1xuICAgIGNvbnN0IHRlbXBQYXRoID0gYCR7ZGVzdFBhdGh9LnRtcGA7XG4gICAgbGV0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgbGV0IGxhc3RQcm9ncmVzc1RpbWUgPSBzdGFydFRpbWU7XG4gICAgbGV0IGxhc3REb3dubG9hZGVkID0gMDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBVc2UgZHluYW1pYyBpbXBvcnQgZm9yIG5vZGUtZmV0Y2ggaWYgbmF0aXZlIGZldGNoIG5vdCBhdmFpbGFibGVcbiAgICAgIGNvbnN0IGZldGNoRm4gPSBnbG9iYWxUaGlzLmZldGNoIHx8IChhd2FpdCBpbXBvcnQoJ25vZGU6aHR0cHMnKSkuZGVmYXVsdDtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChtb2RlbC51cmwsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdVc2VyLUFnZW50JzogJ1J1dkxMTS8yLjMuMCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBwYXJzZUludChcbiAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykgfHwgU3RyaW5nKG1vZGVsLnNpemVCeXRlcylcbiAgICAgICk7XG5cbiAgICAgIC8vIENyZWF0ZSB3cml0ZSBzdHJlYW1cbiAgICAgIGNvbnN0IGZpbGVTdHJlYW0gPSBjcmVhdGVXcml0ZVN0cmVhbSh0ZW1wUGF0aCk7XG4gICAgICBsZXQgZG93bmxvYWRlZCA9IDA7XG5cbiAgICAgIC8vIFN0cmVhbSB3aXRoIHByb2dyZXNzXG4gICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5Py5nZXRSZWFkZXIoKTtcbiAgICAgIGlmICghcmVhZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVzcG9uc2UgYm9keSBpcyBub3QgcmVhZGFibGUnKTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgaWYgKGRvbmUpIGJyZWFrO1xuXG4gICAgICAgIGRvd25sb2FkZWQgKz0gdmFsdWUubGVuZ3RoO1xuICAgICAgICBmaWxlU3RyZWFtLndyaXRlKHZhbHVlKTtcblxuICAgICAgICAvLyBSZXBvcnQgcHJvZ3Jlc3NcbiAgICAgICAgaWYgKG9wdGlvbnMub25Qcm9ncmVzcykge1xuICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgY29uc3QgZWxhcHNlZCA9IChub3cgLSBsYXN0UHJvZ3Jlc3NUaW1lKSAvIDEwMDA7XG4gICAgICAgICAgY29uc3QgYnl0ZXNUaGlzSW50ZXJ2YWwgPSBkb3dubG9hZGVkIC0gbGFzdERvd25sb2FkZWQ7XG4gICAgICAgICAgY29uc3Qgc3BlZWRCcHMgPSBlbGFwc2VkID4gMCA/IGJ5dGVzVGhpc0ludGVydmFsIC8gZWxhcHNlZCA6IDA7XG4gICAgICAgICAgY29uc3QgcmVtYWluaW5nID0gY29udGVudExlbmd0aCAtIGRvd25sb2FkZWQ7XG4gICAgICAgICAgY29uc3QgZXRhU2Vjb25kcyA9IHNwZWVkQnBzID4gMCA/IHJlbWFpbmluZyAvIHNwZWVkQnBzIDogMDtcblxuICAgICAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7XG4gICAgICAgICAgICBtb2RlbElkOiBtb2RlbC5pZCxcbiAgICAgICAgICAgIGRvd25sb2FkZWQsXG4gICAgICAgICAgICB0b3RhbDogY29udGVudExlbmd0aCxcbiAgICAgICAgICAgIHBlcmNlbnQ6IE1hdGgucm91bmQoKGRvd25sb2FkZWQgLyBjb250ZW50TGVuZ3RoKSAqIDEwMCksXG4gICAgICAgICAgICBzcGVlZEJwcyxcbiAgICAgICAgICAgIGV0YVNlY29uZHMsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBsYXN0UHJvZ3Jlc3NUaW1lID0gbm93O1xuICAgICAgICAgIGxhc3REb3dubG9hZGVkID0gZG93bmxvYWRlZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmaWxlU3RyZWFtLmVuZCgpO1xuXG4gICAgICAvLyBXYWl0IGZvciBmaWxlIHRvIGJlIGZ1bGx5IHdyaXR0ZW5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmlsZVN0cmVhbS5vbignZmluaXNoJywgcmVzb2x2ZSk7XG4gICAgICAgIGZpbGVTdHJlYW0ub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBNb3ZlIHRlbXAgZmlsZSB0byBmaW5hbCBkZXN0aW5hdGlvblxuICAgICAgaWYgKGV4aXN0c1N5bmMoZGVzdFBhdGgpKSB7XG4gICAgICAgIHVubGlua1N5bmMoZGVzdFBhdGgpO1xuICAgICAgfVxuICAgICAgcmVuYW1lU3luYyh0ZW1wUGF0aCwgZGVzdFBhdGgpO1xuXG4gICAgICByZXR1cm4gZGVzdFBhdGg7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIENsZWFuIHVwIHRlbXAgZmlsZSBvbiBlcnJvclxuICAgICAgaWYgKGV4aXN0c1N5bmModGVtcFBhdGgpKSB7XG4gICAgICAgIHRyeSB7IHVubGlua1N5bmModGVtcFBhdGgpOyB9IGNhdGNoIHt9XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgYWxsIGF2YWlsYWJsZSBtb2RlbHNcbiAgICovXG4gIGFzeW5jIGRvd25sb2FkQWxsKG9wdGlvbnM6IERvd25sb2FkT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbGlzdE1vZGVscygpKSB7XG4gICAgICBjb25zdCBwYXRoID0gYXdhaXQgdGhpcy5kb3dubG9hZChtb2RlbC5pZCwgb3B0aW9ucyk7XG4gICAgICBwYXRocy5wdXNoKHBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aHM7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGEgZG93bmxvYWRlZCBtb2RlbFxuICAgKi9cbiAgZGVsZXRlKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRNb2RlbFBhdGgobW9kZWxJZE9yQWxpYXMpO1xuICAgIGlmICghcGF0aCB8fCAhZXhpc3RzU3luYyhwYXRoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB1bmxpbmtTeW5jKHBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgZG93bmxvYWRlZCBtb2RlbHNcbiAgICovXG4gIGRlbGV0ZUFsbCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiBsaXN0TW9kZWxzKCkpIHtcbiAgICAgIGlmICh0aGlzLmRlbGV0ZShtb2RlbC5pZCkpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1vZGVsRG93bmxvYWRlcjtcbiJdfQ==
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBISCxrREFFQztBQUtELHdDQWNDO0FBS0Qsb0NBR0M7QUFLRCxnQ0FFQztBQTVKRCwyQkFBZ0c7QUFDaEcsK0JBQXFDO0FBQ3JDLDJCQUE2QjtBQTJEN0IsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUM5QixNQUFNLFdBQVcsR0FBRywwQkFBMEIsT0FBTyxlQUFlLENBQUM7QUFFckUsK0JBQStCO0FBQ2xCLFFBQUEsY0FBYyxHQUE4QjtJQUN2RCxhQUFhLEVBQUU7UUFDYixFQUFFLEVBQUUsYUFBYTtRQUNqQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFFBQVEsRUFBRSxzQ0FBc0M7UUFDaEQsU0FBUyxFQUFFLFNBQVc7UUFDdEIsSUFBSSxFQUFFLFFBQVE7UUFDZCxVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsdUNBQXVDO1FBQ2hELFlBQVksRUFBRSxRQUFRO1FBQ3RCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLEdBQUcsRUFBRSxHQUFHLFdBQVcsdUNBQXVDO0tBQzNEO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsRUFBRSxFQUFFLE9BQU87UUFDWCxJQUFJLEVBQUUsZUFBZTtRQUNyQixRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLFNBQVMsRUFBRSxTQUFXO1FBQ3RCLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLHNEQUFzRDtRQUMvRCxZQUFZLEVBQUUsUUFBUTtRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixHQUFHLEVBQUUsR0FBRyxXQUFXLGlDQUFpQztLQUNyRDtJQUNELFFBQVEsRUFBRTtRQUNSLEVBQUUsRUFBRSxRQUFR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RSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGNBQXNCO1FBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUEsZUFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBQSxlQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBdE1ELDBDQXNNQztBQUVELGtCQUFlLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnV2TFRSQSBNb2RlbCBSZWdpc3RyeSBhbmQgRG93bmxvYWRlclxuICpcbiAqIEF1dG9tYXRpY2FsbHkgZG93bmxvYWRzIEdHVUYgbW9kZWxzIGZyb20gSHVnZ2luZ0ZhY2UgSHViLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBNb2RlbERvd25sb2FkZXIsIFJVVkxUUkFfTU9ERUxTIH0gZnJvbSAnQHJ1dmVjdG9yL3J1dmxsbSc7XG4gKlxuICogLy8gRG93bmxvYWQgdGhlIENsYXVkZSBDb2RlIG9wdGltaXplZCBtb2RlbFxuICogY29uc3QgZG93bmxvYWRlciA9IG5ldyBNb2RlbERvd25sb2FkZXIoKTtcbiAqIGNvbnN0IG1vZGVsUGF0aCA9IGF3YWl0IGRvd25sb2FkZXIuZG93bmxvYWQoJ2NsYXVkZS1jb2RlJyk7XG4gKlxuICogLy8gT3IgZG93bmxvYWQgYWxsIG1vZGVsc1xuICogYXdhaXQgZG93bmxvYWRlci5kb3dubG9hZEFsbCgpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlV3JpdGVTdHJlYW0sIGV4aXN0c1N5bmMsIG1rZGlyU3luYywgc3RhdFN5bmMsIHVubGlua1N5bmMsIHJlbmFtZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luLCBkaXJuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBob21lZGlyIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tICdzdHJlYW0vcHJvbWlzZXMnO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5cbi8qKiBNb2RlbCBpbmZvcm1hdGlvbiBmcm9tIEh1Z2dpbmdGYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW5mbyB7XG4gIC8qKiBNb2RlbCBpZGVudGlmaWVyICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogTW9kZWwgZmlsZW5hbWUgb24gSHVnZ2luZ0ZhY2UgKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcbiAgLyoqIE1vZGVsIHNpemUgaW4gYnl0ZXMgKi9cbiAgc2l6ZUJ5dGVzOiBudW1iZXI7XG4gIC8qKiBNb2RlbCBzaXplIChodW1hbiByZWFkYWJsZSkgKi9cbiAgc2l6ZTogc3RyaW5nO1xuICAvKiogUGFyYW1ldGVyIGNvdW50ICovXG4gIHBhcmFtZXRlcnM6IHN0cmluZztcbiAgLyoqIFVzZSBjYXNlIGRlc2NyaXB0aW9uICovXG4gIHVzZUNhc2U6IHN0cmluZztcbiAgLyoqIFF1YW50aXphdGlvbiB0eXBlICovXG4gIHF1YW50aXphdGlvbjogc3RyaW5nO1xuICAvKiogQ29udGV4dCB3aW5kb3cgc2l6ZSAqL1xuICBjb250ZXh0TGVuZ3RoOiBudW1iZXI7XG4gIC8qKiBIdWdnaW5nRmFjZSBkb3dubG9hZCBVUkwgKi9cbiAgdXJsOiBzdHJpbmc7XG59XG5cbi8qKiBEb3dubG9hZCBwcm9ncmVzcyBjYWxsYmFjayAqL1xuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogRG93bmxvYWRQcm9ncmVzcykgPT4gdm9pZDtcblxuLyoqIERvd25sb2FkIHByb2dyZXNzIGluZm9ybWF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkUHJvZ3Jlc3Mge1xuICAvKiogTW9kZWwgYmVpbmcgZG93bmxvYWRlZCAqL1xuICBtb2RlbElkOiBzdHJpbmc7XG4gIC8qKiBCeXRlcyBkb3dubG9hZGVkIHNvIGZhciAqL1xuICBkb3dubG9hZGVkOiBudW1iZXI7XG4gIC8qKiBUb3RhbCBieXRlcyB0byBkb3dubG9hZCAqL1xuICB0b3RhbDogbnVtYmVyO1xuICAvKiogRG93bmxvYWQgcGVyY2VudGFnZSAoMC0xMDApICovXG4gIHBlcmNlbnQ6IG51bWJlcjtcbiAgLyoqIERvd25sb2FkIHNwZWVkIGluIGJ5dGVzIHBlciBzZWNvbmQgKi9cbiAgc3BlZWRCcHM6IG51bWJlcjtcbiAgLyoqIEVzdGltYXRlZCB0aW1lIHJlbWFpbmluZyBpbiBzZWNvbmRzICovXG4gIGV0YVNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqIERvd25sb2FkIG9wdGlvbnMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG93bmxvYWRPcHRpb25zIHtcbiAgLyoqIERpcmVjdG9yeSB0byBzYXZlIG1vZGVscyAoZGVmYXVsdDogfi8ucnV2bGxtL21vZGVscykgKi9cbiAgbW9kZWxzRGlyPzogc3RyaW5nO1xuICAvKiogRm9yY2UgcmUtZG93bmxvYWQgZXZlbiBpZiBmaWxlIGV4aXN0cyAqL1xuICBmb3JjZT86IGJvb2xlYW47XG4gIC8qKiBQcm9ncmVzcyBjYWxsYmFjayAqL1xuICBvblByb2dyZXNzPzogUHJvZ3Jlc3NDYWxsYmFjaztcbiAgLyoqIFZlcmlmeSBmaWxlIGludGVncml0eSBhZnRlciBkb3dubG9hZCAqL1xuICB2ZXJpZnk/OiBib29sZWFuO1xufVxuXG4vKiogSHVnZ2luZ0ZhY2UgcmVwb3NpdG9yeSAqL1xuY29uc3QgSEZfUkVQTyA9ICdydXYvcnV2bHRyYSc7XG5jb25zdCBIRl9CQVNFX1VSTCA9IGBodHRwczovL2h1Z2dpbmdmYWNlLmNvLyR7SEZfUkVQT30vcmVzb2x2ZS9tYWluYDtcblxuLyoqIEF2YWlsYWJsZSBSdXZMVFJBIG1vZGVscyAqL1xuZXhwb3J0IGNvbnN0IFJVVkxUUkFfTU9ERUxTOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbEluZm8+ID0ge1xuICAnY2xhdWRlLWNvZGUnOiB7XG4gICAgaWQ6ICdjbGF1ZGUtY29kZScsXG4gICAgbmFtZTogJ1J1dkxUUkEgQ2xhdWRlIENvZGUnLFxuICAgIGZpbGVuYW1lOiAncnV2bHRyYS1jbGF1ZGUtY29kZS0wLjViLXE0X2tfbS5nZ3VmJyxcbiAgICBzaXplQnl0ZXM6IDM5OF8wMDBfMDAwLFxuICAgIHNpemU6ICczOTggTUInLFxuICAgIHBhcmFtZXRlcnM6ICcwLjVCJyxcbiAgICB1c2VDYXNlOiAnQ2xhdWRlIENvZGUgd29ya2Zsb3dzLCBhZ2VudGljIGNvZGluZycsXG4gICAgcXVhbnRpemF0aW9uOiAnUTRfS19NJyxcbiAgICBjb250ZXh0TGVuZ3RoOiA0MDk2LFxuICAgIHVybDogYCR7SEZfQkFTRV9VUkx9L3J1dmx0cmEtY2xhdWRlLWNvZGUtMC41Yi1xNF9rX20uZ2d1ZmAsXG4gIH0sXG4gICdzbWFsbCc6IHtcbiAgICBpZDogJ3NtYWxsJyxcbiAgICBuYW1lOiAnUnV2TFRSQSBTbWFsbCcsXG4gICAgZmlsZW5hbWU6ICdydXZsdHJhLXNtYWxsLTAuNWItcTRfa19tLmdndWYnLFxuICAgIHNpemVCeXRlczogMzk4XzAwMF8wMDAsXG4gICAgc2l6ZTogJzM5OCBNQicsXG4gICAgcGFyYW1ldGVyczogJzAuNUInLFxuICAgIHVzZUNhc2U6ICdFZGdlIGRldmljZXMsIElvVCwgcmVzb3VyY2UtY29uc3RyYWluZWQgZW52aXJvbm1lbnRzJyxcbiAgICBxdWFudGl6YXRpb246ICdRNF9LX00nLFxuICAgIGNvbnRleHRMZW5ndGg6IDQwOTYsXG4gICAgdXJsOiBgJHtIRl9CQVNFX1VSTH0vcnV2bHRyYS1zbWFsbC0wLjViLXE0X2tfbS5nZ3VmYCxcbiAgfSxcbiAgJ21lZGl1bSc6IHtcbiAgICBpZDogJ21lZGl1bScsXG4gICAgbmFtZTogJ1J1dkxUUkEgTWVkaXVtJyxcbiAgICBmaWxlbmFtZTogJ3J1dmx0cmEtbWVkaXVtLTEuMWItcTRfa19tLmdndWYnLFxuICAgIHNpemVCeXRlczogNjY5XzAwMF8wMDAsXG4gICAgc2l6ZTogJzY2OSBNQicsXG4gICAgcGFyYW1ldGVyczogJzEuMUInLFxuICAgIHVzZUNhc2U6ICdHZW5lcmFsIHB1cnBvc2UsIGJhbGFuY2VkIHBlcmZvcm1hbmNlJyxcbiAgICBxdWFudGl6YXRpb246ICdRNF9LX00nLFxuICAgIGNvbnRleHRMZW5ndGg6IDgxOTIsXG4gICAgdXJsOiBgJHtIRl9CQVNFX1VSTH0vcnV2bHRyYS1tZWRpdW0tMS4xYi1xNF9rX20uZ2d1ZmAsXG4gIH0sXG59O1xuXG4vKiogTW9kZWwgYWxpYXNlcyBmb3IgY29udmVuaWVuY2UgKi9cbmV4cG9ydCBjb25zdCBNT0RFTF9BTElBU0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnY2MnOiAnY2xhdWRlLWNvZGUnLFxuICAnY2xhdWRlY29kZSc6ICdjbGF1ZGUtY29kZScsXG4gICdjbGF1ZGUnOiAnY2xhdWRlLWNvZGUnLFxuICAncyc6ICdzbWFsbCcsXG4gICdzbSc6ICdzbWFsbCcsXG4gICdtJzogJ21lZGl1bScsXG4gICdtZWQnOiAnbWVkaXVtJyxcbiAgJ2RlZmF1bHQnOiAnY2xhdWRlLWNvZGUnLFxufTtcblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgbW9kZWxzIGRpcmVjdG9yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdE1vZGVsc0RpcigpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbihob21lZGlyKCksICcucnV2bGxtJywgJ21vZGVscycpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgbW9kZWwgSUQgZnJvbSBhbGlhcyBvciBkaXJlY3QgSURcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RlbElkKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG1vZGVsSWRPckFsaWFzLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuXG4gIC8vIERpcmVjdCBtYXRjaFxuICBpZiAoUlVWTFRSQV9NT0RFTFNbbm9ybWFsaXplZF0pIHtcbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgfVxuXG4gIC8vIEFsaWFzIG1hdGNoXG4gIGlmIChNT0RFTF9BTElBU0VTW25vcm1hbGl6ZWRdKSB7XG4gICAgcmV0dXJuIE1PREVMX0FMSUFTRVNbbm9ybWFsaXplZF07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBHZXQgbW9kZWwgaW5mbyBieSBJRCBvciBhbGlhc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxJbmZvKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBNb2RlbEluZm8gfCBudWxsIHtcbiAgY29uc3QgaWQgPSByZXNvbHZlTW9kZWxJZChtb2RlbElkT3JBbGlhcyk7XG4gIHJldHVybiBpZCA/IFJVVkxUUkFfTU9ERUxTW2lkXSA6IG51bGw7XG59XG5cbi8qKlxuICogTGlzdCBhbGwgYXZhaWxhYmxlIG1vZGVsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdE1vZGVscygpOiBNb2RlbEluZm9bXSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKFJVVkxUUkFfTU9ERUxTKTtcbn1cblxuLyoqXG4gKiBNb2RlbCBkb3dubG9hZGVyIGZvciBSdXZMVFJBIEdHVUYgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RlbERvd25sb2FkZXIge1xuICBwcml2YXRlIG1vZGVsc0Rpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1vZGVsc0Rpcj86IHN0cmluZykge1xuICAgIHRoaXMubW9kZWxzRGlyID0gbW9kZWxzRGlyIHx8IGdldERlZmF1bHRNb2RlbHNEaXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhdGggd2hlcmUgYSBtb2RlbCB3b3VsZCBiZSBzYXZlZFxuICAgKi9cbiAgZ2V0TW9kZWxQYXRoKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBtb2RlbCA9IGdldE1vZGVsSW5mbyhtb2RlbElkT3JBbGlhcyk7XG4gICAgaWYgKCFtb2RlbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGpvaW4odGhpcy5tb2RlbHNEaXIsIG1vZGVsLmZpbGVuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIG1vZGVsIGlzIGFscmVhZHkgZG93bmxvYWRlZFxuICAgKi9cbiAgaXNEb3dubG9hZGVkKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRNb2RlbFBhdGgobW9kZWxJZE9yQWxpYXMpO1xuICAgIGlmICghcGF0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKCFleGlzdHNTeW5jKHBhdGgpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBWZXJpZnkgc2l6ZSBtYXRjaGVzIGV4cGVjdGVkXG4gICAgY29uc3QgbW9kZWwgPSBnZXRNb2RlbEluZm8obW9kZWxJZE9yQWxpYXMpO1xuICAgIGlmICghbW9kZWwpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHN0YXRzID0gc3RhdFN5bmMocGF0aCk7XG4gICAgLy8gQWxsb3cgNSUgdmFyaWFuY2UgZm9yIHNpemUgY2hlY2tcbiAgICBjb25zdCBtaW5TaXplID0gbW9kZWwuc2l6ZUJ5dGVzICogMC45NTtcbiAgICByZXR1cm4gc3RhdHMuc2l6ZSA+PSBtaW5TaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkb3dubG9hZCBzdGF0dXMgZm9yIGFsbCBtb2RlbHNcbiAgICovXG4gIGdldFN0YXR1cygpOiB7IG1vZGVsOiBNb2RlbEluZm87IGRvd25sb2FkZWQ6IGJvb2xlYW47IHBhdGg6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiBsaXN0TW9kZWxzKCkubWFwKG1vZGVsID0+ICh7XG4gICAgICBtb2RlbCxcbiAgICAgIGRvd25sb2FkZWQ6IHRoaXMuaXNEb3dubG9hZGVkKG1vZGVsLmlkKSxcbiAgICAgIHBhdGg6IHRoaXMuZ2V0TW9kZWxQYXRoKG1vZGVsLmlkKSEsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkIGEgbW9kZWwgZnJvbSBIdWdnaW5nRmFjZVxuICAgKi9cbiAgYXN5bmMgZG93bmxvYWQoXG4gICAgbW9kZWxJZE9yQWxpYXM6IHN0cmluZyxcbiAgICBvcHRpb25zOiBEb3dubG9hZE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG1vZGVsID0gZ2V0TW9kZWxJbmZvKG1vZGVsSWRPckFsaWFzKTtcbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICBjb25zdCBhdmFpbGFibGUgPSBsaXN0TW9kZWxzKCkubWFwKG0gPT4gbS5pZCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVua25vd24gbW9kZWw6ICR7bW9kZWxJZE9yQWxpYXN9LiBBdmFpbGFibGUgbW9kZWxzOiAke2F2YWlsYWJsZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3REaXIgPSBvcHRpb25zLm1vZGVsc0RpciB8fCB0aGlzLm1vZGVsc0RpcjtcbiAgICBjb25zdCBkZXN0UGF0aCA9IGpvaW4oZGVzdERpciwgbW9kZWwuZmlsZW5hbWUpO1xuXG4gICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBkb3dubG9hZGVkXG4gICAgaWYgKCFvcHRpb25zLmZvcmNlICYmIHRoaXMuaXNEb3dubG9hZGVkKG1vZGVsLmlkKSkge1xuICAgICAgcmV0dXJuIGRlc3RQYXRoO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBkaXJlY3RvcnkgZXhpc3RzXG4gICAgaWYgKCFleGlzdHNTeW5jKGRlc3REaXIpKSB7XG4gICAgICBta2RpclN5bmMoZGVzdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgLy8gRG93bmxvYWQgd2l0aCBwcm9ncmVzcyB0cmFja2luZ1xuICAgIGNvbnN0IHRlbXBQYXRoID0gYCR7ZGVzdFBhdGh9LnRtcGA7XG4gICAgbGV0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgbGV0IGxhc3RQcm9ncmVzc1RpbWUgPSBzdGFydFRpbWU7XG4gICAgbGV0IGxhc3REb3dubG9hZGVkID0gMDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBVc2UgZHluYW1pYyBpbXBvcnQgZm9yIG5vZGUtZmV0Y2ggaWYgbmF0aXZlIGZldGNoIG5vdCBhdmFpbGFibGVcbiAgICAgIGNvbnN0IGZldGNoRm4gPSBnbG9iYWxUaGlzLmZldGNoIHx8IChhd2FpdCBpbXBvcnQoJ25vZGU6aHR0cHMnKSkuZGVmYXVsdDtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChtb2RlbC51cmwsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdVc2VyLUFnZW50JzogJ1J1dkxMTS8yLjMuMCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBwYXJzZUludChcbiAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykgfHwgU3RyaW5nKG1vZGVsLnNpemVCeXRlcylcbiAgICAgICk7XG5cbiAgICAgIC8vIENyZWF0ZSB3cml0ZSBzdHJlYW1cbiAgICAgIGNvbnN0IGZpbGVTdHJlYW0gPSBjcmVhdGVXcml0ZVN0cmVhbSh0ZW1wUGF0aCk7XG4gICAgICBsZXQgZG93bmxvYWRlZCA9IDA7XG5cbiAgICAgIC8vIFN0cmVhbSB3aXRoIHByb2dyZXNzXG4gICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5Py5nZXRSZWFkZXIoKTtcbiAgICAgIGlmICghcmVhZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVzcG9uc2UgYm9keSBpcyBub3QgcmVhZGFibGUnKTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgaWYgKGRvbmUpIGJyZWFrO1xuXG4gICAgICAgIGRvd25sb2FkZWQgKz0gdmFsdWUubGVuZ3RoO1xuICAgICAgICBmaWxlU3RyZWFtLndyaXRlKHZhbHVlKTtcblxuICAgICAgICAvLyBSZXBvcnQgcHJvZ3Jlc3NcbiAgICAgICAgaWYgKG9wdGlvbnMub25Qcm9ncmVzcykge1xuICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgY29uc3QgZWxhcHNlZCA9IChub3cgLSBsYXN0UHJvZ3Jlc3NUaW1lKSAvIDEwMDA7XG4gICAgICAgICAgY29uc3QgYnl0ZXNUaGlzSW50ZXJ2YWwgPSBkb3dubG9hZGVkIC0gbGFzdERvd25sb2FkZWQ7XG4gICAgICAgICAgY29uc3Qgc3BlZWRCcHMgPSBlbGFwc2VkID4gMCA/IGJ5dGVzVGhpc0ludGVydmFsIC8gZWxhcHNlZCA6IDA7XG4gICAgICAgICAgY29uc3QgcmVtYWluaW5nID0gY29udGVudExlbmd0aCAtIGRvd25sb2FkZWQ7XG4gICAgICAgICAgY29uc3QgZXRhU2Vjb25kcyA9IHNwZWVkQnBzID4gMCA/IHJlbWFpbmluZyAvIHNwZWVkQnBzIDogMDtcblxuICAgICAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7XG4gICAgICAgICAgICBtb2RlbElkOiBtb2RlbC5pZCxcbiAgICAgICAgICAgIGRvd25sb2FkZWQsXG4gICAgICAgICAgICB0b3RhbDogY29udGVudExlbmd0aCxcbiAgICAgICAgICAgIHBlcmNlbnQ6IE1hdGgucm91bmQoKGRvd25sb2FkZWQgLyBjb250ZW50TGVuZ3RoKSAqIDEwMCksXG4gICAgICAgICAgICBzcGVlZEJwcyxcbiAgICAgICAgICAgIGV0YVNlY29uZHMsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBsYXN0UHJvZ3Jlc3NUaW1lID0gbm93O1xuICAgICAgICAgIGxhc3REb3dubG9hZGVkID0gZG93bmxvYWRlZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmaWxlU3RyZWFtLmVuZCgpO1xuXG4gICAgICAvLyBXYWl0IGZvciBmaWxlIHRvIGJlIGZ1bGx5IHdyaXR0ZW5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmlsZVN0cmVhbS5vbignZmluaXNoJywgcmVzb2x2ZSk7XG4gICAgICAgIGZpbGVTdHJlYW0ub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBNb3ZlIHRlbXAgZmlsZSB0byBmaW5hbCBkZXN0aW5hdGlvblxuICAgICAgaWYgKGV4aXN0c1N5bmMoZGVzdFBhdGgpKSB7XG4gICAgICAgIHVubGlua1N5bmMoZGVzdFBhdGgpO1xuICAgICAgfVxuICAgICAgcmVuYW1lU3luYyh0ZW1wUGF0aCwgZGVzdFBhdGgpO1xuXG4gICAgICByZXR1cm4gZGVzdFBhdGg7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIENsZWFuIHVwIHRlbXAgZmlsZSBvbiBlcnJvclxuICAgICAgaWYgKGV4aXN0c1N5bmModGVtcFBhdGgpKSB7XG4gICAgICAgIHRyeSB7IHVubGlua1N5bmModGVtcFBhdGgpOyB9IGNhdGNoIHt9XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgYWxsIGF2YWlsYWJsZSBtb2RlbHNcbiAgICovXG4gIGFzeW5jIGRvd25sb2FkQWxsKG9wdGlvbnM6IERvd25sb2FkT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbGlzdE1vZGVscygpKSB7XG4gICAgICBjb25zdCBwYXRoID0gYXdhaXQgdGhpcy5kb3dubG9hZChtb2RlbC5pZCwgb3B0aW9ucyk7XG4gICAgICBwYXRocy5wdXNoKHBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aHM7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGEgZG93bmxvYWRlZCBtb2RlbFxuICAgKi9cbiAgZGVsZXRlKG1vZGVsSWRPckFsaWFzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRNb2RlbFBhdGgobW9kZWxJZE9yQWxpYXMpO1xuICAgIGlmICghcGF0aCB8fCAhZXhpc3RzU3luYyhwYXRoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB1bmxpbmtTeW5jKHBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgZG93bmxvYWRlZCBtb2RlbHNcbiAgICovXG4gIGRlbGV0ZUFsbCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiBsaXN0TW9kZWxzKCkpIHtcbiAgICAgIGlmICh0aGlzLmRlbGV0ZShtb2RlbC5pZCkpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1vZGVsRG93bmxvYWRlcjtcbiJdfQ==
|
package/dist/cjs/native.d.ts
CHANGED
|
@@ -24,7 +24,8 @@ interface NativeEngine {
|
|
|
24
24
|
generate(prompt: string, config?: NativeGenConfig): string;
|
|
25
25
|
route(text: string): NativeRoutingDecision;
|
|
26
26
|
searchMemory(text: string, k?: number): NativeMemoryResult[];
|
|
27
|
-
|
|
27
|
+
/** Current native builds return a UUID string; older ones returned a number. */
|
|
28
|
+
addMemory(content: string, metadata?: string): string | number;
|
|
28
29
|
feedback(requestId: string, rating: number, correction?: string): boolean;
|
|
29
30
|
stats(): NativeStats;
|
|
30
31
|
forceLearn(): string;
|
|
@@ -44,20 +45,28 @@ interface NativeQueryResponse {
|
|
|
44
45
|
text: string;
|
|
45
46
|
confidence: number;
|
|
46
47
|
model: string;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
contextSize: number;
|
|
49
|
+
latencyMs: number;
|
|
50
|
+
requestId: string;
|
|
51
|
+
context_size?: number;
|
|
52
|
+
latency_ms?: number;
|
|
53
|
+
request_id?: string;
|
|
50
54
|
}
|
|
51
55
|
interface NativeRoutingDecision {
|
|
52
56
|
model: string;
|
|
53
|
-
|
|
57
|
+
contextSize: number;
|
|
54
58
|
temperature: number;
|
|
55
|
-
top_p
|
|
59
|
+
top_p?: number;
|
|
60
|
+
topP: number;
|
|
56
61
|
confidence: number;
|
|
62
|
+
context_size?: number;
|
|
57
63
|
}
|
|
58
64
|
interface NativeMemoryResult {
|
|
59
|
-
id: number;
|
|
60
|
-
|
|
65
|
+
id: string | number;
|
|
66
|
+
/** Distance (smaller is closer) as reported by the current native build. */
|
|
67
|
+
distance?: number;
|
|
68
|
+
/** Similarity, emitted by older native builds. */
|
|
69
|
+
score?: number;
|
|
61
70
|
content: string;
|
|
62
71
|
metadata: string;
|
|
63
72
|
}
|
package/dist/cjs/native.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/native.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,UAAU,YAAY;IAEpB,YAAY,EAAE,KAAK,MAAM,CAAC,EAAE,YAAY,KAAK,YAAY,CAAC;IAC1D,cAAc,EAAE,UAAU,aAAa,CAAC;IACxC,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,OAAO,CAAC;CAC/B;AAWD,UAAU,YAAY;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAC7D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/native.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/native.js
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* Automatically loads the correct native binary for the current platform.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
8
|
+
exports.getNativeModule = getNativeModule;
|
|
9
|
+
exports.version = version;
|
|
10
|
+
exports.hasSimdSupport = hasSimdSupport;
|
|
9
11
|
const path_1 = require("path");
|
|
10
12
|
// Try to load the native module
|
|
11
13
|
let nativeModule = null;
|
|
@@ -64,15 +66,12 @@ function loadNativeModule() {
|
|
|
64
66
|
function getNativeModule() {
|
|
65
67
|
return loadNativeModule();
|
|
66
68
|
}
|
|
67
|
-
exports.getNativeModule = getNativeModule;
|
|
68
69
|
function version() {
|
|
69
70
|
const mod = loadNativeModule();
|
|
70
71
|
return mod?.version() ?? '0.1.0-js';
|
|
71
72
|
}
|
|
72
|
-
exports.version = version;
|
|
73
73
|
function hasSimdSupport() {
|
|
74
74
|
const mod = loadNativeModule();
|
|
75
75
|
return mod?.hasSimdSupport() ?? false;
|
|
76
76
|
}
|
|
77
|
-
exports.hasSimdSupport = hasSimdSupport;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsK0JBQTRCO0FBRTVCLGdDQUFnQztBQUNoQyxJQUFJLFlBQVksR0FBd0IsSUFBSSxDQUFDO0FBOEY3QyxrQ0FBa0M7QUFDbEMsTUFBTSxpQkFBaUIsR0FBMkI7SUFDaEQsWUFBWSxFQUFFLDZCQUE2QjtJQUMzQyxjQUFjLEVBQUUsK0JBQStCO0lBQy9DLFdBQVcsRUFBRSxnQ0FBZ0M7SUFDN0MsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxXQUFXLEVBQUUsaUNBQWlDO0NBQy9DLENBQUM7QUFFRixTQUFTLGNBQWM7SUFDckIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzFCLE9BQU8sR0FBRyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQiwyQ0FBMkM7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLE1BQU0sUUFBUSxHQUFHO1FBQ2Ysb0NBQW9DO1FBQ3BDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDMUIsZ0RBQWdEO1FBQ2hELEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RCwyQ0FBMkM7UUFDM0MsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDcEQsQ0FBQztJQUVGLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsT0FBTyxFQUFxQixDQUFDO1lBQ3pDLG9FQUFvRTtZQUNwRSxZQUFZLEdBQUc7Z0JBQ2IsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLFlBQWE7Z0JBQ25ELGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztnQkFDbEMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWM7YUFDbkMsQ0FBQztZQUNGLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwyQkFBMkI7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsMENBQTBDO0FBQzFDLFNBQWdCLGVBQWU7SUFDN0IsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLE9BQU87SUFDckIsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUMvQixPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUM7QUFDdEMsQ0FBQztBQUhELDBCQUdDO0FBRUQsU0FBZ0IsY0FBYztJQUM1QixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxFQUFFLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQztBQUN4QyxDQUFDO0FBSEQsd0NBR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5hdGl2ZSBiaW5kaW5ncyBsb2FkZXIgZm9yIFJ1dkxMTVxuICpcbiAqIEF1dG9tYXRpY2FsbHkgbG9hZHMgdGhlIGNvcnJlY3QgbmF0aXZlIGJpbmFyeSBmb3IgdGhlIGN1cnJlbnQgcGxhdGZvcm0uXG4gKi9cblxuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuXG4vLyBUcnkgdG8gbG9hZCB0aGUgbmF0aXZlIG1vZHVsZVxubGV0IG5hdGl2ZU1vZHVsZTogTmF0aXZlUnV2TExNIHwgbnVsbCA9IG51bGw7XG5cbmludGVyZmFjZSBOYXRpdmVSdXZMTE0ge1xuICAvLyBOYXRpdmUgZXhwb3J0cyBSdXZMbG1FbmdpbmUgKGNhbWVsQ2FzZSksIHdlIG5vcm1hbGl6ZSB0byBSdXZMTE1FbmdpbmVcbiAgUnV2TExNRW5naW5lOiBuZXcgKGNvbmZpZz86IE5hdGl2ZUNvbmZpZykgPT4gTmF0aXZlRW5naW5lO1xuICBTaW1kT3BlcmF0aW9uczogbmV3ICgpID0+IE5hdGl2ZVNpbWRPcHM7XG4gIHZlcnNpb246ICgpID0+IHN0cmluZztcbiAgaGFzU2ltZFN1cHBvcnQ6ICgpID0+IGJvb2xlYW47XG59XG5cbi8vIFJhdyBuYXRpdmUgbW9kdWxlIGludGVyZmFjZSAoYWN0dWFsIGV4cG9ydCBuYW1lcylcbmludGVyZmFjZSBSYXdOYXRpdmVNb2R1bGUge1xuICBSdXZMbG1FbmdpbmU/OiBuZXcgKGNvbmZpZz86IE5hdGl2ZUNvbmZpZykgPT4gTmF0aXZlRW5naW5lO1xuICBSdXZMTE1FbmdpbmU/OiBuZXcgKGNvbmZpZz86IE5hdGl2ZUNvbmZpZykgPT4gTmF0aXZlRW5naW5lO1xuICBTaW1kT3BlcmF0aW9uczogbmV3ICgpID0+IE5hdGl2ZVNpbWRPcHM7XG4gIHZlcnNpb246ICgpID0+IHN0cmluZztcbiAgaGFzU2ltZFN1cHBvcnQ6ICgpID0+IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBOYXRpdmVDb25maWcge1xuICBlbWJlZGRpbmdfZGltPzogbnVtYmVyO1xuICByb3V0ZXJfaGlkZGVuX2RpbT86IG51bWJlcjtcbiAgaG5zd19tPzogbnVtYmVyO1xuICBobnN3X2VmX2NvbnN0cnVjdGlvbj86IG51bWJlcjtcbiAgaG5zd19lZl9zZWFyY2g/OiBudW1iZXI7XG4gIGxlYXJuaW5nX2VuYWJsZWQ/OiBib29sZWFuO1xuICBxdWFsaXR5X3RocmVzaG9sZD86IG51bWJlcjtcbiAgZXdjX2xhbWJkYT86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE5hdGl2ZUVuZ2luZSB7XG4gIHF1ZXJ5KHRleHQ6IHN0cmluZywgY29uZmlnPzogTmF0aXZlR2VuQ29uZmlnKTogTmF0aXZlUXVlcnlSZXNwb25zZTtcbiAgZ2VuZXJhdGUocHJvbXB0OiBzdHJpbmcsIGNvbmZpZz86IE5hdGl2ZUdlbkNvbmZpZyk6IHN0cmluZztcbiAgcm91dGUodGV4dDogc3RyaW5nKTogTmF0aXZlUm91dGluZ0RlY2lzaW9uO1xuICBzZWFyY2hNZW1vcnkodGV4dDogc3RyaW5nLCBrPzogbnVtYmVyKTogTmF0aXZlTWVtb3J5UmVzdWx0W107XG4gIGFkZE1lbW9yeShjb250ZW50OiBzdHJpbmcsIG1ldGFkYXRhPzogc3RyaW5nKTogbnVtYmVyO1xuICBmZWVkYmFjayhyZXF1ZXN0SWQ6IHN0cmluZywgcmF0aW5nOiBudW1iZXIsIGNvcnJlY3Rpb24/OiBzdHJpbmcpOiBib29sZWFuO1xuICBzdGF0cygpOiBOYXRpdmVTdGF0cztcbiAgZm9yY2VMZWFybigpOiBzdHJpbmc7XG4gIGVtYmVkKHRleHQ6IHN0cmluZyk6IG51bWJlcltdO1xuICBzaW1pbGFyaXR5KHRleHQxOiBzdHJpbmcsIHRleHQyOiBzdHJpbmcpOiBudW1iZXI7XG4gIGhhc1NpbWQoKTogYm9vbGVhbjtcbiAgc2ltZENhcGFiaWxpdGllcygpOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIE5hdGl2ZUdlbkNvbmZpZyB7XG4gIG1heF90b2tlbnM/OiBudW1iZXI7XG4gIHRlbXBlcmF0dXJlPzogbnVtYmVyO1xuICB0b3BfcD86IG51bWJlcjtcbiAgdG9wX2s/OiBudW1iZXI7XG4gIHJlcGV0aXRpb25fcGVuYWx0eT86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE5hdGl2ZVF1ZXJ5UmVzcG9uc2Uge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgbW9kZWw6IHN0cmluZztcbiAgY29udGV4dF9zaXplOiBudW1iZXI7XG4gIGxhdGVuY3lfbXM6IG51bWJlcjtcbiAgcmVxdWVzdF9pZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTmF0aXZlUm91dGluZ0RlY2lzaW9uIHtcbiAgbW9kZWw6IHN0cmluZztcbiAgY29udGV4dF9zaXplOiBudW1iZXI7XG4gIHRlbXBlcmF0dXJlOiBudW1iZXI7XG4gIHRvcF9wOiBudW1iZXI7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE5hdGl2ZU1lbW9yeVJlc3VsdCB7XG4gIGlkOiBudW1iZXI7XG4gIHNjb3JlOiBudW1iZXI7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgbWV0YWRhdGE6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE5hdGl2ZVN0YXRzIHtcbiAgdG90YWxfcXVlcmllczogbnVtYmVyO1xuICBtZW1vcnlfbm9kZXM6IG51bWJlcjtcbiAgcGF0dGVybnNfbGVhcm5lZDogbnVtYmVyO1xuICBhdmdfbGF0ZW5jeV9tczogbnVtYmVyO1xuICBjYWNoZV9oaXRfcmF0ZTogbnVtYmVyO1xuICByb3V0ZXJfYWNjdXJhY3k6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE5hdGl2ZVNpbWRPcHMge1xuICBkb3RQcm9kdWN0KGE6IG51bWJlcltdLCBiOiBudW1iZXJbXSk6IG51bWJlcjtcbiAgY29zaW5lU2ltaWxhcml0eShhOiBudW1iZXJbXSwgYjogbnVtYmVyW10pOiBudW1iZXI7XG4gIGwyRGlzdGFuY2UoYTogbnVtYmVyW10sIGI6IG51bWJlcltdKTogbnVtYmVyO1xuICBtYXR2ZWMobWF0cml4OiBudW1iZXJbXVtdLCB2ZWN0b3I6IG51bWJlcltdKTogbnVtYmVyW107XG4gIHNvZnRtYXgoaW5wdXQ6IG51bWJlcltdKTogbnVtYmVyW107XG59XG5cbi8vIFBsYXRmb3JtLXNwZWNpZmljIHBhY2thZ2UgbmFtZXNcbmNvbnN0IFBMQVRGT1JNX1BBQ0tBR0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnZGFyd2luLXg2NCc6ICdAcnV2ZWN0b3IvcnV2bGxtLWRhcndpbi14NjQnLFxuICAnZGFyd2luLWFybTY0JzogJ0BydXZlY3Rvci9ydXZsbG0tZGFyd2luLWFybTY0JyxcbiAgJ2xpbnV4LXg2NCc6ICdAcnV2ZWN0b3IvcnV2bGxtLWxpbnV4LXg2NC1nbnUnLFxuICAnbGludXgtYXJtNjQnOiAnQHJ1dmVjdG9yL3J1dmxsbS1saW51eC1hcm02NC1nbnUnLFxuICAnd2luMzIteDY0JzogJ0BydXZlY3Rvci9ydXZsbG0td2luMzIteDY0LW1zdmMnLFxufTtcblxuZnVuY3Rpb24gZ2V0UGxhdGZvcm1LZXkoKTogc3RyaW5nIHtcbiAgY29uc3QgcGxhdGZvcm0gPSBwcm9jZXNzLnBsYXRmb3JtO1xuICBjb25zdCBhcmNoID0gcHJvY2Vzcy5hcmNoO1xuICByZXR1cm4gYCR7cGxhdGZvcm19LSR7YXJjaH1gO1xufVxuXG5mdW5jdGlvbiBsb2FkTmF0aXZlTW9kdWxlKCk6IE5hdGl2ZVJ1dkxMTSB8IG51bGwge1xuICBpZiAobmF0aXZlTW9kdWxlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZU1vZHVsZTtcbiAgfVxuXG4gIGNvbnN0IHBsYXRmb3JtS2V5ID0gZ2V0UGxhdGZvcm1LZXkoKTtcbiAgY29uc3QgcGFja2FnZU5hbWUgPSBQTEFURk9STV9QQUNLQUdFU1twbGF0Zm9ybUtleV07XG5cbiAgaWYgKCFwYWNrYWdlTmFtZSkge1xuICAgIC8vIFNpbGVudGx5IGZhaWwgLSBKUyBmYWxsYmFjayB3aWxsIGJlIHVzZWRcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFRyeSBsb2FkaW5nIGZyb20gb3B0aW9uYWwgZGVwZW5kZW5jaWVzXG4gIGNvbnN0IGF0dGVtcHRzID0gW1xuICAgIC8vIFRyeSB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgcGFja2FnZVxuICAgICgpID0+IHJlcXVpcmUocGFja2FnZU5hbWUpLFxuICAgIC8vIFRyeSBsb2FkaW5nIGZyb20gbG9jYWwgLm5vZGUgZmlsZSAoQ0pTIGJ1aWxkKVxuICAgICgpID0+IHJlcXVpcmUoam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdydXZsbG0ubm9kZScpKSxcbiAgICAvLyBUcnkgbG9hZGluZyBmcm9tIGxvY2FsIC5ub2RlIGZpbGUgKHJvb3QpXG4gICAgKCkgPT4gcmVxdWlyZShqb2luKF9fZGlybmFtZSwgJy4uJywgJ3J1dmxsbS5ub2RlJykpLFxuICBdO1xuXG4gIGZvciAoY29uc3QgYXR0ZW1wdCBvZiBhdHRlbXB0cykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXcgPSBhdHRlbXB0KCkgYXMgUmF3TmF0aXZlTW9kdWxlO1xuICAgICAgLy8gTm9ybWFsaXplOiBuYXRpdmUgZXhwb3J0cyBSdXZMbG1FbmdpbmUsIHdlIGV4cG9zZSBhcyBSdXZMTE1FbmdpbmVcbiAgICAgIG5hdGl2ZU1vZHVsZSA9IHtcbiAgICAgICAgUnV2TExNRW5naW5lOiByYXcuUnV2TExNRW5naW5lID8/IHJhdy5SdXZMbG1FbmdpbmUhLFxuICAgICAgICBTaW1kT3BlcmF0aW9uczogcmF3LlNpbWRPcGVyYXRpb25zLFxuICAgICAgICB2ZXJzaW9uOiByYXcudmVyc2lvbixcbiAgICAgICAgaGFzU2ltZFN1cHBvcnQ6IHJhdy5oYXNTaW1kU3VwcG9ydCxcbiAgICAgIH07XG4gICAgICByZXR1cm4gbmF0aXZlTW9kdWxlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gQ29udGludWUgdG8gbmV4dCBhdHRlbXB0XG4gICAgfVxuICB9XG5cbiAgLy8gU2lsZW50bHkgZmFsbCBiYWNrIHRvIEpTIGltcGxlbWVudGF0aW9uXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBFeHBvcnQgZnVuY3Rpb25zIHRvIGdldCBuYXRpdmUgYmluZGluZ3NcbmV4cG9ydCBmdW5jdGlvbiBnZXROYXRpdmVNb2R1bGUoKTogTmF0aXZlUnV2TExNIHwgbnVsbCB7XG4gIHJldHVybiBsb2FkTmF0aXZlTW9kdWxlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzaW9uKCk6IHN0cmluZyB7XG4gIGNvbnN0IG1vZCA9IGxvYWROYXRpdmVNb2R1bGUoKTtcbiAgcmV0dXJuIG1vZD8udmVyc2lvbigpID8/ICcwLjEuMC1qcyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNTaW1kU3VwcG9ydCgpOiBib29sZWFuIHtcbiAgY29uc3QgbW9kID0gbG9hZE5hdGl2ZU1vZHVsZSgpO1xuICByZXR1cm4gbW9kPy5oYXNTaW1kU3VwcG9ydCgpID8/IGZhbHNlO1xufVxuXG4vLyBFeHBvcnQgdHlwZXMgZm9yIGludGVybmFsIHVzZVxuZXhwb3J0IHR5cGUge1xuICBOYXRpdmVSdXZMTE0sXG4gIE5hdGl2ZUNvbmZpZyxcbiAgTmF0aXZlRW5naW5lLFxuICBOYXRpdmVHZW5Db25maWcsXG4gIE5hdGl2ZVF1ZXJ5UmVzcG9uc2UsXG4gIE5hdGl2ZVJvdXRpbmdEZWNpc2lvbixcbiAgTmF0aXZlTWVtb3J5UmVzdWx0LFxuICBOYXRpdmVTdGF0cyxcbiAgTmF0aXZlU2ltZE9wcyxcbn07XG4iXX0=
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUE0S0gsMENBRUM7QUFFRCwwQkFHQztBQUVELHdDQUdDO0FBdExELCtCQUE0QjtBQUU1QixnQ0FBZ0M7QUFDaEMsSUFBSSxZQUFZLEdBQXdCLElBQUksQ0FBQztBQTRHN0Msa0NBQWtDO0FBQ2xDLE1BQU0saUJBQWlCLEdBQTJCO0lBQ2hELFlBQVksRUFBRSw2QkFBNkI7SUFDM0MsY0FBYyxFQUFFLCtCQUErQjtJQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO0lBQzdDLGFBQWEsRUFBRSxrQ0FBa0M7SUFDakQsV0FBVyxFQUFFLGlDQUFpQztDQUMvQyxDQUFDO0FBRUYsU0FBUyxjQUFjO0lBQ3JCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMxQixPQUFPLEdBQUcsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRCxTQUFTLGdCQUFnQjtJQUN2QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsMkNBQTJDO1FBQzNDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxNQUFNLFFBQVEsR0FBRztRQUNmLG9DQUFvQztRQUNwQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzFCLGdEQUFnRDtRQUNoRCxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekQsMkNBQTJDO1FBQzNDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ3BELENBQUM7SUFFRixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLE9BQU8sRUFBcUIsQ0FBQztZQUN6QyxvRUFBb0U7WUFDcEUsWUFBWSxHQUFHO2dCQUNiLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxZQUFhO2dCQUNuRCxjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWM7Z0JBQ2xDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztnQkFDcEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjO2FBQ25DLENBQUM7WUFDRixPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsMkJBQTJCO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELDBDQUEwQztBQUMxQyxTQUFnQixlQUFlO0lBQzdCLE9BQU8sZ0JBQWdCLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQsU0FBZ0IsT0FBTztJQUNyQixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQztBQUN0QyxDQUFDO0FBRUQsU0FBZ0IsY0FBYztJQUM1QixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxFQUFFLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOYXRpdmUgYmluZGluZ3MgbG9hZGVyIGZvciBSdXZMTE1cbiAqXG4gKiBBdXRvbWF0aWNhbGx5IGxvYWRzIHRoZSBjb3JyZWN0IG5hdGl2ZSBiaW5hcnkgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLlxuICovXG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcblxuLy8gVHJ5IHRvIGxvYWQgdGhlIG5hdGl2ZSBtb2R1bGVcbmxldCBuYXRpdmVNb2R1bGU6IE5hdGl2ZVJ1dkxMTSB8IG51bGwgPSBudWxsO1xuXG5pbnRlcmZhY2UgTmF0aXZlUnV2TExNIHtcbiAgLy8gTmF0aXZlIGV4cG9ydHMgUnV2TGxtRW5naW5lIChjYW1lbENhc2UpLCB3ZSBub3JtYWxpemUgdG8gUnV2TExNRW5naW5lXG4gIFJ1dkxMTUVuZ2luZTogbmV3IChjb25maWc/OiBOYXRpdmVDb25maWcpID0+IE5hdGl2ZUVuZ2luZTtcbiAgU2ltZE9wZXJhdGlvbnM6IG5ldyAoKSA9PiBOYXRpdmVTaW1kT3BzO1xuICB2ZXJzaW9uOiAoKSA9PiBzdHJpbmc7XG4gIGhhc1NpbWRTdXBwb3J0OiAoKSA9PiBib29sZWFuO1xufVxuXG4vLyBSYXcgbmF0aXZlIG1vZHVsZSBpbnRlcmZhY2UgKGFjdHVhbCBleHBvcnQgbmFtZXMpXG5pbnRlcmZhY2UgUmF3TmF0aXZlTW9kdWxlIHtcbiAgUnV2TGxtRW5naW5lPzogbmV3IChjb25maWc/OiBOYXRpdmVDb25maWcpID0+IE5hdGl2ZUVuZ2luZTtcbiAgUnV2TExNRW5naW5lPzogbmV3IChjb25maWc/OiBOYXRpdmVDb25maWcpID0+IE5hdGl2ZUVuZ2luZTtcbiAgU2ltZE9wZXJhdGlvbnM6IG5ldyAoKSA9PiBOYXRpdmVTaW1kT3BzO1xuICB2ZXJzaW9uOiAoKSA9PiBzdHJpbmc7XG4gIGhhc1NpbWRTdXBwb3J0OiAoKSA9PiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgTmF0aXZlQ29uZmlnIHtcbiAgZW1iZWRkaW5nX2RpbT86IG51bWJlcjtcbiAgcm91dGVyX2hpZGRlbl9kaW0/OiBudW1iZXI7XG4gIGhuc3dfbT86IG51bWJlcjtcbiAgaG5zd19lZl9jb25zdHJ1Y3Rpb24/OiBudW1iZXI7XG4gIGhuc3dfZWZfc2VhcmNoPzogbnVtYmVyO1xuICBsZWFybmluZ19lbmFibGVkPzogYm9vbGVhbjtcbiAgcXVhbGl0eV90aHJlc2hvbGQ/OiBudW1iZXI7XG4gIGV3Y19sYW1iZGE/OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBOYXRpdmVFbmdpbmUge1xuICBxdWVyeSh0ZXh0OiBzdHJpbmcsIGNvbmZpZz86IE5hdGl2ZUdlbkNvbmZpZyk6IE5hdGl2ZVF1ZXJ5UmVzcG9uc2U7XG4gIGdlbmVyYXRlKHByb21wdDogc3RyaW5nLCBjb25maWc/OiBOYXRpdmVHZW5Db25maWcpOiBzdHJpbmc7XG4gIHJvdXRlKHRleHQ6IHN0cmluZyk6IE5hdGl2ZVJvdXRpbmdEZWNpc2lvbjtcbiAgc2VhcmNoTWVtb3J5KHRleHQ6IHN0cmluZywgaz86IG51bWJlcik6IE5hdGl2ZU1lbW9yeVJlc3VsdFtdO1xuICAvKiogQ3VycmVudCBuYXRpdmUgYnVpbGRzIHJldHVybiBhIFVVSUQgc3RyaW5nOyBvbGRlciBvbmVzIHJldHVybmVkIGEgbnVtYmVyLiAqL1xuICBhZGRNZW1vcnkoY29udGVudDogc3RyaW5nLCBtZXRhZGF0YT86IHN0cmluZyk6IHN0cmluZyB8IG51bWJlcjtcbiAgZmVlZGJhY2socmVxdWVzdElkOiBzdHJpbmcsIHJhdGluZzogbnVtYmVyLCBjb3JyZWN0aW9uPzogc3RyaW5nKTogYm9vbGVhbjtcbiAgc3RhdHMoKTogTmF0aXZlU3RhdHM7XG4gIGZvcmNlTGVhcm4oKTogc3RyaW5nO1xuICBlbWJlZCh0ZXh0OiBzdHJpbmcpOiBudW1iZXJbXTtcbiAgc2ltaWxhcml0eSh0ZXh0MTogc3RyaW5nLCB0ZXh0Mjogc3RyaW5nKTogbnVtYmVyO1xuICBoYXNTaW1kKCk6IGJvb2xlYW47XG4gIHNpbWRDYXBhYmlsaXRpZXMoKTogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBOYXRpdmVHZW5Db25maWcge1xuICBtYXhfdG9rZW5zPzogbnVtYmVyO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgdG9wX3A/OiBudW1iZXI7XG4gIHRvcF9rPzogbnVtYmVyO1xuICByZXBldGl0aW9uX3BlbmFsdHk/OiBudW1iZXI7XG59XG5cbi8vIG5hcGktcnMgY2FtZWxDYXNlcyBSdXN0IHN0cnVjdCBmaWVsZHMgd2hlbiBpdCBidWlsZHMgdGhlIEpTIG9iamVjdCwgc28gdGhlXG4vLyByZWFsIG5hdGl2ZSBzaGFwZSBpcyBjYW1lbENhc2UuIFRoZXNlIGludGVyZmFjZXMgcHJldmlvdXNseSBkZWNsYXJlZCBvbmx5XG4vLyBzbmFrZV9jYXNlLCB3aGljaCBpcyB3aHkgdGhlIHdyYXBwZXIncyBzbmFrZV9jYXNlIHJlYWRzIHR5cGVjaGVja2VkIHdoaWxlXG4vLyBzaWxlbnRseSB5aWVsZGluZyB1bmRlZmluZWQgYXQgcnVudGltZS4gQm90aCBzcGVsbGluZ3MgYXJlIGRlY2xhcmVkIOKAlFxuLy8gY2FtZWxDYXNlIHJlcXVpcmVkLCBzbmFrZV9jYXNlIG9wdGlvbmFsIOKAlCBzbyBvbGRlciBuYXRpdmUgYnVpbGRzIHN0aWxsIGZpdC5cbmludGVyZmFjZSBOYXRpdmVRdWVyeVJlc3BvbnNlIHtcbiAgdGV4dDogc3RyaW5nO1xuICBjb25maWRlbmNlOiBudW1iZXI7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIGNvbnRleHRTaXplOiBudW1iZXI7XG4gIGxhdGVuY3lNczogbnVtYmVyO1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgY29udGV4dF9zaXplPzogbnVtYmVyO1xuICBsYXRlbmN5X21zPzogbnVtYmVyO1xuICByZXF1ZXN0X2lkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTmF0aXZlUm91dGluZ0RlY2lzaW9uIHtcbiAgbW9kZWw6IHN0cmluZztcbiAgY29udGV4dFNpemU6IG51bWJlcjtcbiAgdGVtcGVyYXR1cmU6IG51bWJlcjtcbiAgdG9wX3A/OiBudW1iZXI7XG4gIHRvcFA6IG51bWJlcjtcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xuICBjb250ZXh0X3NpemU/OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBOYXRpdmVNZW1vcnlSZXN1bHQge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICAvKiogRGlzdGFuY2UgKHNtYWxsZXIgaXMgY2xvc2VyKSBhcyByZXBvcnRlZCBieSB0aGUgY3VycmVudCBuYXRpdmUgYnVpbGQuICovXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICAvKiogU2ltaWxhcml0eSwgZW1pdHRlZCBieSBvbGRlciBuYXRpdmUgYnVpbGRzLiAqL1xuICBzY29yZT86IG51bWJlcjtcbiAgY29udGVudDogc3RyaW5nO1xuICBtZXRhZGF0YTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTmF0aXZlU3RhdHMge1xuICB0b3RhbF9xdWVyaWVzOiBudW1iZXI7XG4gIG1lbW9yeV9ub2RlczogbnVtYmVyO1xuICBwYXR0ZXJuc19sZWFybmVkOiBudW1iZXI7XG4gIGF2Z19sYXRlbmN5X21zOiBudW1iZXI7XG4gIGNhY2hlX2hpdF9yYXRlOiBudW1iZXI7XG4gIHJvdXRlcl9hY2N1cmFjeTogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgTmF0aXZlU2ltZE9wcyB7XG4gIGRvdFByb2R1Y3QoYTogbnVtYmVyW10sIGI6IG51bWJlcltdKTogbnVtYmVyO1xuICBjb3NpbmVTaW1pbGFyaXR5KGE6IG51bWJlcltdLCBiOiBudW1iZXJbXSk6IG51bWJlcjtcbiAgbDJEaXN0YW5jZShhOiBudW1iZXJbXSwgYjogbnVtYmVyW10pOiBudW1iZXI7XG4gIG1hdHZlYyhtYXRyaXg6IG51bWJlcltdW10sIHZlY3RvcjogbnVtYmVyW10pOiBudW1iZXJbXTtcbiAgc29mdG1heChpbnB1dDogbnVtYmVyW10pOiBudW1iZXJbXTtcbn1cblxuLy8gUGxhdGZvcm0tc3BlY2lmaWMgcGFja2FnZSBuYW1lc1xuY29uc3QgUExBVEZPUk1fUEFDS0FHRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdkYXJ3aW4teDY0JzogJ0BydXZlY3Rvci9ydXZsbG0tZGFyd2luLXg2NCcsXG4gICdkYXJ3aW4tYXJtNjQnOiAnQHJ1dmVjdG9yL3J1dmxsbS1kYXJ3aW4tYXJtNjQnLFxuICAnbGludXgteDY0JzogJ0BydXZlY3Rvci9ydXZsbG0tbGludXgteDY0LWdudScsXG4gICdsaW51eC1hcm02NCc6ICdAcnV2ZWN0b3IvcnV2bGxtLWxpbnV4LWFybTY0LWdudScsXG4gICd3aW4zMi14NjQnOiAnQHJ1dmVjdG9yL3J1dmxsbS13aW4zMi14NjQtbXN2YycsXG59O1xuXG5mdW5jdGlvbiBnZXRQbGF0Zm9ybUtleSgpOiBzdHJpbmcge1xuICBjb25zdCBwbGF0Zm9ybSA9IHByb2Nlc3MucGxhdGZvcm07XG4gIGNvbnN0IGFyY2ggPSBwcm9jZXNzLmFyY2g7XG4gIHJldHVybiBgJHtwbGF0Zm9ybX0tJHthcmNofWA7XG59XG5cbmZ1bmN0aW9uIGxvYWROYXRpdmVNb2R1bGUoKTogTmF0aXZlUnV2TExNIHwgbnVsbCB7XG4gIGlmIChuYXRpdmVNb2R1bGUpIHtcbiAgICByZXR1cm4gbmF0aXZlTW9kdWxlO1xuICB9XG5cbiAgY29uc3QgcGxhdGZvcm1LZXkgPSBnZXRQbGF0Zm9ybUtleSgpO1xuICBjb25zdCBwYWNrYWdlTmFtZSA9IFBMQVRGT1JNX1BBQ0tBR0VTW3BsYXRmb3JtS2V5XTtcblxuICBpZiAoIXBhY2thZ2VOYW1lKSB7XG4gICAgLy8gU2lsZW50bHkgZmFpbCAtIEpTIGZhbGxiYWNrIHdpbGwgYmUgdXNlZFxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gVHJ5IGxvYWRpbmcgZnJvbSBvcHRpb25hbCBkZXBlbmRlbmNpZXNcbiAgY29uc3QgYXR0ZW1wdHMgPSBbXG4gICAgLy8gVHJ5IHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBwYWNrYWdlXG4gICAgKCkgPT4gcmVxdWlyZShwYWNrYWdlTmFtZSksXG4gICAgLy8gVHJ5IGxvYWRpbmcgZnJvbSBsb2NhbCAubm9kZSBmaWxlIChDSlMgYnVpbGQpXG4gICAgKCkgPT4gcmVxdWlyZShqb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3J1dmxsbS5ub2RlJykpLFxuICAgIC8vIFRyeSBsb2FkaW5nIGZyb20gbG9jYWwgLm5vZGUgZmlsZSAocm9vdClcbiAgICAoKSA9PiByZXF1aXJlKGpvaW4oX19kaXJuYW1lLCAnLi4nLCAncnV2bGxtLm5vZGUnKSksXG4gIF07XG5cbiAgZm9yIChjb25zdCBhdHRlbXB0IG9mIGF0dGVtcHRzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhdyA9IGF0dGVtcHQoKSBhcyBSYXdOYXRpdmVNb2R1bGU7XG4gICAgICAvLyBOb3JtYWxpemU6IG5hdGl2ZSBleHBvcnRzIFJ1dkxsbUVuZ2luZSwgd2UgZXhwb3NlIGFzIFJ1dkxMTUVuZ2luZVxuICAgICAgbmF0aXZlTW9kdWxlID0ge1xuICAgICAgICBSdXZMTE1FbmdpbmU6IHJhdy5SdXZMTE1FbmdpbmUgPz8gcmF3LlJ1dkxsbUVuZ2luZSEsXG4gICAgICAgIFNpbWRPcGVyYXRpb25zOiByYXcuU2ltZE9wZXJhdGlvbnMsXG4gICAgICAgIHZlcnNpb246IHJhdy52ZXJzaW9uLFxuICAgICAgICBoYXNTaW1kU3VwcG9ydDogcmF3Lmhhc1NpbWRTdXBwb3J0LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBuYXRpdmVNb2R1bGU7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBDb250aW51ZSB0byBuZXh0IGF0dGVtcHRcbiAgICB9XG4gIH1cblxuICAvLyBTaWxlbnRseSBmYWxsIGJhY2sgdG8gSlMgaW1wbGVtZW50YXRpb25cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIEV4cG9ydCBmdW5jdGlvbnMgdG8gZ2V0IG5hdGl2ZSBiaW5kaW5nc1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hdGl2ZU1vZHVsZSgpOiBOYXRpdmVSdXZMTE0gfCBudWxsIHtcbiAgcmV0dXJuIGxvYWROYXRpdmVNb2R1bGUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb24oKTogc3RyaW5nIHtcbiAgY29uc3QgbW9kID0gbG9hZE5hdGl2ZU1vZHVsZSgpO1xuICByZXR1cm4gbW9kPy52ZXJzaW9uKCkgPz8gJzAuMS4wLWpzJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1NpbWRTdXBwb3J0KCk6IGJvb2xlYW4ge1xuICBjb25zdCBtb2QgPSBsb2FkTmF0aXZlTW9kdWxlKCk7XG4gIHJldHVybiBtb2Q/Lmhhc1NpbWRTdXBwb3J0KCkgPz8gZmFsc2U7XG59XG5cbi8vIEV4cG9ydCB0eXBlcyBmb3IgaW50ZXJuYWwgdXNlXG5leHBvcnQgdHlwZSB7XG4gIE5hdGl2ZVJ1dkxMTSxcbiAgTmF0aXZlQ29uZmlnLFxuICBOYXRpdmVFbmdpbmUsXG4gIE5hdGl2ZUdlbkNvbmZpZyxcbiAgTmF0aXZlUXVlcnlSZXNwb25zZSxcbiAgTmF0aXZlUm91dGluZ0RlY2lzaW9uLFxuICBOYXRpdmVNZW1vcnlSZXN1bHQsXG4gIE5hdGl2ZVN0YXRzLFxuICBOYXRpdmVTaW1kT3BzLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RLM Controller - Recursive Retrieval Language Model
|
|
3
|
+
*
|
|
4
|
+
* Implements a recursive retrieval-augmented generation system that:
|
|
5
|
+
* 1. Breaks down complex queries into sub-queries
|
|
6
|
+
* 2. Retrieves relevant memory spans for each query
|
|
7
|
+
* 3. Synthesizes coherent answers from retrieved context
|
|
8
|
+
* 4. Optionally reflects on and refines answers
|
|
9
|
+
*
|
|
10
|
+
* @example Basic Usage
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { RlmController } from '@ruvector/ruvllm';
|
|
13
|
+
*
|
|
14
|
+
* const rlm = new RlmController({
|
|
15
|
+
* maxDepth: 3,
|
|
16
|
+
* retrievalTopK: 10,
|
|
17
|
+
* enableCache: true,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Add knowledge to memory
|
|
21
|
+
* await rlm.addMemory('Machine learning is a subset of AI that enables systems to learn from data.');
|
|
22
|
+
* await rlm.addMemory('Deep learning uses neural networks with many layers.');
|
|
23
|
+
*
|
|
24
|
+
* // Query with recursive retrieval
|
|
25
|
+
* const answer = await rlm.query('Explain the relationship between ML and deep learning');
|
|
26
|
+
* console.log(answer.text);
|
|
27
|
+
* console.log('Sources:', answer.sources.length);
|
|
28
|
+
* console.log('Confidence:', answer.confidence);
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example Streaming
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const rlm = new RlmController();
|
|
34
|
+
*
|
|
35
|
+
* for await (const event of rlm.queryStream('What is AI?')) {
|
|
36
|
+
* if (event.type === 'token') {
|
|
37
|
+
* process.stdout.write(event.text);
|
|
38
|
+
* } else {
|
|
39
|
+
* console.log('\n\nDone! Quality:', event.answer.qualityScore);
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example With Reflection
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const rlm = new RlmController({
|
|
47
|
+
* enableReflection: true,
|
|
48
|
+
* maxReflectionIterations: 2,
|
|
49
|
+
* minQualityScore: 0.8,
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* const answer = await rlm.query('Complex multi-part question...');
|
|
53
|
+
* // Answer will be iteratively refined until quality >= 0.8
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
import { RlmConfig, RlmAnswer, MemorySpan, StreamToken } from './types';
|
|
57
|
+
import { RuvLLM } from '../engine';
|
|
58
|
+
/**
|
|
59
|
+
* RlmController - Recursive Retrieval Language Model Controller
|
|
60
|
+
*
|
|
61
|
+
* Orchestrates retrieval-augmented generation with recursive sub-query
|
|
62
|
+
* decomposition, memory search, and optional self-reflection.
|
|
63
|
+
*/
|
|
64
|
+
export declare class RlmController {
|
|
65
|
+
private config;
|
|
66
|
+
private cache;
|
|
67
|
+
private engine;
|
|
68
|
+
private memoryIdCounter;
|
|
69
|
+
/**
|
|
70
|
+
* Create a new RLM controller
|
|
71
|
+
*
|
|
72
|
+
* @param config - Configuration options
|
|
73
|
+
* @param engine - Optional RuvLLM engine instance (creates new if not provided)
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* // With default config
|
|
78
|
+
* const rlm = new RlmController();
|
|
79
|
+
*
|
|
80
|
+
* // With custom config
|
|
81
|
+
* const rlm = new RlmController({
|
|
82
|
+
* maxDepth: 5,
|
|
83
|
+
* enableReflection: true,
|
|
84
|
+
* });
|
|
85
|
+
*
|
|
86
|
+
* // With existing engine
|
|
87
|
+
* const engine = new RuvLLM({ learningEnabled: true });
|
|
88
|
+
* const rlm = new RlmController({}, engine);
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
constructor(config?: RlmConfig, engine?: RuvLLM);
|
|
92
|
+
/**
|
|
93
|
+
* Query the RLM with recursive retrieval
|
|
94
|
+
*
|
|
95
|
+
* @param input - The query string
|
|
96
|
+
* @returns Promise resolving to the answer with sources and metadata
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const answer = await rlm.query('What is the capital of France?');
|
|
101
|
+
* console.log(answer.text); // "The capital of France is Paris..."
|
|
102
|
+
* console.log(answer.confidence); // 0.95
|
|
103
|
+
* console.log(answer.sources); // [{ id: '...', text: '...', similarityScore: 0.92 }]
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
query(input: string): Promise<RlmAnswer>;
|
|
107
|
+
/**
|
|
108
|
+
* Query with streaming response
|
|
109
|
+
*
|
|
110
|
+
* @param input - The query string
|
|
111
|
+
* @yields StreamToken events (either partial tokens or final answer)
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* for await (const event of rlm.queryStream('Explain quantum computing')) {
|
|
116
|
+
* if (event.type === 'token') {
|
|
117
|
+
* // Partial token received
|
|
118
|
+
* process.stdout.write(event.text);
|
|
119
|
+
* } else {
|
|
120
|
+
* // Generation complete
|
|
121
|
+
* console.log('\n\nSources:', event.answer.sources.length);
|
|
122
|
+
* }
|
|
123
|
+
* }
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
queryStream(input: string): AsyncGenerator<StreamToken>;
|
|
127
|
+
/**
|
|
128
|
+
* Add content to memory for retrieval
|
|
129
|
+
*
|
|
130
|
+
* @param text - The text content to store
|
|
131
|
+
* @param metadata - Optional metadata to associate with the memory
|
|
132
|
+
* @returns Promise resolving to the memory span ID
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* const id1 = await rlm.addMemory(
|
|
137
|
+
* 'TypeScript is a typed superset of JavaScript.',
|
|
138
|
+
* { source: 'documentation', category: 'programming' }
|
|
139
|
+
* );
|
|
140
|
+
*
|
|
141
|
+
* const id2 = await rlm.addMemory(
|
|
142
|
+
* 'React is a JavaScript library for building UIs.'
|
|
143
|
+
* );
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
addMemory(text: string, metadata?: Record<string, unknown>): Promise<string>;
|
|
147
|
+
/**
|
|
148
|
+
* Search memory for relevant spans
|
|
149
|
+
*
|
|
150
|
+
* @param query - The search query
|
|
151
|
+
* @param topK - Number of results to return (default: config.retrievalTopK)
|
|
152
|
+
* @returns Promise resolving to array of memory spans
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* const spans = await rlm.searchMemory('JavaScript frameworks', 5);
|
|
157
|
+
* for (const span of spans) {
|
|
158
|
+
* console.log(`[${span.similarityScore.toFixed(2)}] ${span.text}`);
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
searchMemory(query: string, topK?: number): Promise<MemorySpan[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Clear the response cache
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* rlm.clearCache();
|
|
169
|
+
* console.log('Cache cleared');
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
clearCache(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Get current cache statistics
|
|
175
|
+
*
|
|
176
|
+
* @returns Object with cache size and hit rate info
|
|
177
|
+
*/
|
|
178
|
+
getCacheStats(): {
|
|
179
|
+
size: number;
|
|
180
|
+
entries: number;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Update configuration at runtime
|
|
184
|
+
*
|
|
185
|
+
* @param config - Partial configuration to merge
|
|
186
|
+
*/
|
|
187
|
+
updateConfig(config: Partial<RlmConfig>): void;
|
|
188
|
+
/**
|
|
189
|
+
* Get current configuration
|
|
190
|
+
*/
|
|
191
|
+
getConfig(): Required<RlmConfig>;
|
|
192
|
+
/**
|
|
193
|
+
* Generate sub-queries for complex questions
|
|
194
|
+
*/
|
|
195
|
+
private generateSubQueries;
|
|
196
|
+
/**
|
|
197
|
+
* Decompose a complex query into simpler parts
|
|
198
|
+
*/
|
|
199
|
+
private decomposeQuery;
|
|
200
|
+
/**
|
|
201
|
+
* Build context string from sources and sub-queries
|
|
202
|
+
*/
|
|
203
|
+
private buildContext;
|
|
204
|
+
/**
|
|
205
|
+
* Build the full prompt with context
|
|
206
|
+
*/
|
|
207
|
+
private buildPrompt;
|
|
208
|
+
/**
|
|
209
|
+
* Get generation config based on RLM settings
|
|
210
|
+
*/
|
|
211
|
+
private getGenerationConfig;
|
|
212
|
+
/**
|
|
213
|
+
* Estimate token usage
|
|
214
|
+
*/
|
|
215
|
+
private estimateTokenUsage;
|
|
216
|
+
/**
|
|
217
|
+
* Calculate quality score based on sources and confidence
|
|
218
|
+
*/
|
|
219
|
+
private calculateQualityScore;
|
|
220
|
+
/**
|
|
221
|
+
* Apply self-reflection to improve answer
|
|
222
|
+
*/
|
|
223
|
+
private applyReflection;
|
|
224
|
+
/**
|
|
225
|
+
* Get cached answer if valid
|
|
226
|
+
*/
|
|
227
|
+
private getCached;
|
|
228
|
+
/**
|
|
229
|
+
* Set cache entry
|
|
230
|
+
*/
|
|
231
|
+
private setCache;
|
|
232
|
+
/**
|
|
233
|
+
* Simple hash function for cache keys
|
|
234
|
+
*/
|
|
235
|
+
private hashQuery;
|
|
236
|
+
/**
|
|
237
|
+
* Prune expired cache entries
|
|
238
|
+
*/
|
|
239
|
+
private pruneCache;
|
|
240
|
+
/**
|
|
241
|
+
* Utility delay function for streaming simulation
|
|
242
|
+
*/
|
|
243
|
+
private delay;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/rlm/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EAGV,WAAW,EAGZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAkBnC;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;;;;;;;;;;;;;;;;;OAqBG;gBACS,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;IAO/C;;;;;;;;;;;;;OAaG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAsD9C;;;;;;;;;;;;;;;;;;OAkBG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC;IA2D9D;;;;;;;;;;;;;;;;;;OAkBG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlF;;;;;;;;;;;;;;OAcG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAavE;;;;;;;;OAQG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;OAIG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAOlD;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAI9C;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC;IAQhC;;OAEG;YACW,kBAAkB;IAkChC;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;YACW,eAAe;IA0D7B;;OAEG;IACH,OAAO,CAAC,SAAS;IAiBjB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAchB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,UAAU;IA0BlB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|