@thinkhive/sdk 3.1.1 → 4.0.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/MIGRATION.md +83 -12
- package/README.md +279 -128
- package/dist/api/agents.d.ts +169 -0
- package/dist/api/agents.js +185 -0
- package/dist/api/apiKeys.d.ts +252 -0
- package/dist/api/apiKeys.js +298 -0
- package/dist/api/business-metrics.d.ts +188 -0
- package/dist/api/business-metrics.js +213 -0
- package/dist/api/calibration.d.ts +0 -62
- package/dist/api/calibration.js +5 -48
- package/dist/api/claims.js +10 -7
- package/dist/api/conversation-eval.d.ts +200 -0
- package/dist/api/conversation-eval.js +235 -0
- package/dist/api/deterministic-graders.d.ts +205 -0
- package/dist/api/deterministic-graders.js +191 -0
- package/dist/api/eval-health.d.ts +250 -0
- package/dist/api/eval-health.js +224 -0
- package/dist/api/human-review.d.ts +275 -0
- package/dist/api/human-review.js +236 -0
- package/dist/api/nondeterminism.d.ts +300 -0
- package/dist/api/nondeterminism.js +250 -0
- package/dist/api/quality-metrics.d.ts +303 -0
- package/dist/api/quality-metrics.js +198 -0
- package/dist/api/roi-analytics.d.ts +263 -0
- package/dist/api/roi-analytics.js +204 -0
- package/dist/api/runs.js +12 -6
- package/dist/api/transcript-patterns.d.ts +204 -0
- package/dist/api/transcript-patterns.js +227 -0
- package/dist/core/client.d.ts +83 -9
- package/dist/core/client.js +229 -34
- package/dist/core/config.d.ts +2 -3
- package/dist/core/config.js +3 -4
- package/dist/core/types.d.ts +57 -4
- package/dist/core/types.js +1 -1
- package/dist/index.d.ts +429 -76
- package/dist/index.js +262 -42
- package/package.json +2 -2
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ThinkHive SDK v3.2 - Business Metrics API
|
|
4
|
+
*
|
|
5
|
+
* Industry-driven business metrics with historical tracking and external data support
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.businessMetrics = void 0;
|
|
9
|
+
exports.isMetricReady = isMetricReady;
|
|
10
|
+
exports.needsMoreTraces = needsMoreTraces;
|
|
11
|
+
exports.awaitingExternalData = awaitingExternalData;
|
|
12
|
+
exports.isMetricStale = isMetricStale;
|
|
13
|
+
exports.getStatusMessage = getStatusMessage;
|
|
14
|
+
exports.getTraceProgress = getTraceProgress;
|
|
15
|
+
exports.formatMetricValue = formatMetricValue;
|
|
16
|
+
exports.getTrendEmoji = getTrendEmoji;
|
|
17
|
+
const client_1 = require("../core/client");
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// BUSINESS METRICS API CLIENT
|
|
20
|
+
// ============================================================================
|
|
21
|
+
/**
|
|
22
|
+
* Business Metrics API client for industry-driven metrics with historical tracking
|
|
23
|
+
*/
|
|
24
|
+
exports.businessMetrics = {
|
|
25
|
+
/**
|
|
26
|
+
* Get current metric value with status information
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const metric = await businessMetrics.current('agent_123', 'Deflection Rate');
|
|
31
|
+
* console.log(`${metric.metricName}: ${metric.valueFormatted}`);
|
|
32
|
+
*
|
|
33
|
+
* if (metric.status === 'insufficient_data') {
|
|
34
|
+
* console.log(`Need ${metric.minTraceThreshold - metric.traceCount} more traces`);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
async current(agentId, metricName) {
|
|
39
|
+
const params = new URLSearchParams();
|
|
40
|
+
if (metricName) {
|
|
41
|
+
params.set('metricName', metricName);
|
|
42
|
+
}
|
|
43
|
+
const queryString = params.toString();
|
|
44
|
+
const url = `/agents/${agentId}/metrics/current${queryString ? `?${queryString}` : ''}`;
|
|
45
|
+
return (0, client_1.apiRequestWithData)(url, { apiVersion: 'v3' });
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Get historical metric data for graphing
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const history = await businessMetrics.history('agent_123', 'Deflection Rate', {
|
|
53
|
+
* startDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),
|
|
54
|
+
* endDate: new Date(),
|
|
55
|
+
* granularity: 'daily',
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* console.log(`${history.dataPoints.length} data points`);
|
|
59
|
+
* console.log(`Change: ${history.summary.changePercent}%`);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
async history(agentId, metricName, options = {}) {
|
|
63
|
+
const params = new URLSearchParams();
|
|
64
|
+
params.set('metricName', metricName);
|
|
65
|
+
if (options.startDate) {
|
|
66
|
+
params.set('startDate', new Date(options.startDate).toISOString());
|
|
67
|
+
}
|
|
68
|
+
if (options.endDate) {
|
|
69
|
+
params.set('endDate', new Date(options.endDate).toISOString());
|
|
70
|
+
}
|
|
71
|
+
if (options.granularity) {
|
|
72
|
+
params.set('granularity', options.granularity);
|
|
73
|
+
}
|
|
74
|
+
return (0, client_1.apiRequestWithData)(`/agents/${agentId}/metrics/history?${params.toString()}`, { apiVersion: 'v3' });
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* Record an external metric value
|
|
78
|
+
*
|
|
79
|
+
* Use this to ingest metrics from external data sources (CRM, surveys, billing, etc.)
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* // Record CSAT score from survey system
|
|
84
|
+
* await businessMetrics.record('agent_123', {
|
|
85
|
+
* metricName: 'CSAT/NPS',
|
|
86
|
+
* value: 4.5,
|
|
87
|
+
* unit: 'score',
|
|
88
|
+
* periodStart: '2024-01-01T00:00:00Z',
|
|
89
|
+
* periodEnd: '2024-01-07T23:59:59Z',
|
|
90
|
+
* source: 'survey_system',
|
|
91
|
+
* sourceDetails: { surveyId: 'survey_456', responseCount: 150 },
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
async record(agentId, options) {
|
|
96
|
+
const body = {
|
|
97
|
+
metricName: options.metricName,
|
|
98
|
+
value: options.value,
|
|
99
|
+
unit: options.unit,
|
|
100
|
+
periodStart: new Date(options.periodStart).toISOString(),
|
|
101
|
+
periodEnd: new Date(options.periodEnd).toISOString(),
|
|
102
|
+
source: options.source || 'api',
|
|
103
|
+
sourceDetails: options.sourceDetails,
|
|
104
|
+
};
|
|
105
|
+
const response = await (0, client_1.apiRequest)(`/agents/${agentId}/metrics/values`, {
|
|
106
|
+
method: 'POST',
|
|
107
|
+
body,
|
|
108
|
+
apiVersion: 'v3',
|
|
109
|
+
});
|
|
110
|
+
return response.data;
|
|
111
|
+
},
|
|
112
|
+
/**
|
|
113
|
+
* Batch record multiple external metric values
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* await businessMetrics.recordBatch('agent_123', [
|
|
118
|
+
* { metricName: 'CSAT/NPS', value: 4.5, ... },
|
|
119
|
+
* { metricName: 'Hours Saved', value: 120, ... },
|
|
120
|
+
* ]);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
async recordBatch(agentId, metrics) {
|
|
124
|
+
const results = await Promise.all(metrics.map((metric) => this.record(agentId, metric)));
|
|
125
|
+
return results;
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
// ============================================================================
|
|
129
|
+
// HELPER FUNCTIONS
|
|
130
|
+
// ============================================================================
|
|
131
|
+
/**
|
|
132
|
+
* Check if a metric is ready to display
|
|
133
|
+
*/
|
|
134
|
+
function isMetricReady(metric) {
|
|
135
|
+
return metric.status === 'ready';
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Check if a metric needs more trace data
|
|
139
|
+
*/
|
|
140
|
+
function needsMoreTraces(metric) {
|
|
141
|
+
return metric.status === 'insufficient_data';
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Check if a metric is waiting for external data
|
|
145
|
+
*/
|
|
146
|
+
function awaitingExternalData(metric) {
|
|
147
|
+
return metric.status === 'awaiting_external';
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Check if metric data is stale
|
|
151
|
+
*/
|
|
152
|
+
function isMetricStale(metric) {
|
|
153
|
+
return metric.status === 'stale';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get human-readable status message
|
|
157
|
+
*/
|
|
158
|
+
function getStatusMessage(metric) {
|
|
159
|
+
switch (metric.status) {
|
|
160
|
+
case 'ready':
|
|
161
|
+
return 'Metric is up to date';
|
|
162
|
+
case 'insufficient_data':
|
|
163
|
+
return metric.statusMessage ||
|
|
164
|
+
`Need ${(metric.minTraceThreshold || 50) - (metric.traceCount || 0)} more traces`;
|
|
165
|
+
case 'awaiting_external':
|
|
166
|
+
return metric.statusMessage || 'Waiting for external data source';
|
|
167
|
+
case 'stale':
|
|
168
|
+
return metric.statusMessage || 'Data may be outdated';
|
|
169
|
+
default:
|
|
170
|
+
return 'Unknown status';
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Calculate progress toward minimum trace threshold
|
|
175
|
+
*/
|
|
176
|
+
function getTraceProgress(metric) {
|
|
177
|
+
if (metric.status !== 'insufficient_data')
|
|
178
|
+
return 100;
|
|
179
|
+
return metric.progressPercent || 0;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Format metric value for display based on unit
|
|
183
|
+
*/
|
|
184
|
+
function formatMetricValue(value, unit) {
|
|
185
|
+
switch (unit) {
|
|
186
|
+
case '%':
|
|
187
|
+
return `${Math.round(value * 10) / 10}%`;
|
|
188
|
+
case '$':
|
|
189
|
+
return new Intl.NumberFormat('en-US', {
|
|
190
|
+
style: 'currency',
|
|
191
|
+
currency: 'USD',
|
|
192
|
+
}).format(value);
|
|
193
|
+
case 's':
|
|
194
|
+
return value < 60 ? `${Math.round(value)}s` : `${Math.round(value / 60)}m`;
|
|
195
|
+
case 'hrs':
|
|
196
|
+
return `${Math.round(value * 10) / 10} hrs`;
|
|
197
|
+
case 'score':
|
|
198
|
+
return value.toFixed(1);
|
|
199
|
+
default:
|
|
200
|
+
return String(Math.round(value * 100) / 100);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get trend direction as emoji
|
|
205
|
+
*/
|
|
206
|
+
function getTrendEmoji(trend) {
|
|
207
|
+
if (trend.direction === 'up')
|
|
208
|
+
return trend.isPositive ? '📈' : '📉';
|
|
209
|
+
if (trend.direction === 'down')
|
|
210
|
+
return trend.isPositive ? '📈' : '📉';
|
|
211
|
+
return '➡️';
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvYnVzaW5lc3MtbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBMFBILHNDQUVDO0FBS0QsMENBRUM7QUFLRCxvREFFQztBQUtELHNDQUVDO0FBS0QsNENBY0M7QUFLRCw0Q0FHQztBQUtELDhDQWtCQztBQUtELHNDQUlDO0FBMVVELDJDQUFnRTtBQStGaEUsK0VBQStFO0FBQy9FLDhCQUE4QjtBQUM5QiwrRUFBK0U7QUFFL0U7O0dBRUc7QUFDVSxRQUFBLGVBQWUsR0FBRztJQUM3Qjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUNYLE9BQWUsRUFDZixVQUFtQjtRQUVuQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLFdBQVcsT0FBTyxtQkFBbUIsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUV4RixPQUFPLElBQUEsMkJBQWtCLEVBQXdCLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQ1gsT0FBZSxFQUNmLFVBQWtCLEVBQ2xCLFVBSUksRUFBRTtRQUVOLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUs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QUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUM3RSxLQUFLLEtBQUs7WUFDUixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDOUMsS0FBSyxPQUFPO1lBQ1YsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxLQUFrQjtJQUM5QyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4yIC0gQnVzaW5lc3MgTWV0cmljcyBBUElcbiAqXG4gKiBJbmR1c3RyeS1kcml2ZW4gYnVzaW5lc3MgbWV0cmljcyB3aXRoIGhpc3RvcmljYWwgdHJhY2tpbmcgYW5kIGV4dGVybmFsIGRhdGEgc3VwcG9ydFxuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3QsIGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcbmltcG9ydCB0eXBlIHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi9jb3JlL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNZXRyaWMgdHJlbmQgaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNUcmVuZCB7XG4gIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyB8ICdzdGFibGUnO1xuICB2YWx1ZTogbnVtYmVyO1xuICBpc1Bvc2l0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEN1cnJlbnQgbWV0cmljIHN0YXR1c1xuICovXG5leHBvcnQgdHlwZSBNZXRyaWNTdGF0dXMgPSAncmVhZHknIHwgJ2luc3VmZmljaWVudF9kYXRhJyB8ICdhd2FpdGluZ19leHRlcm5hbCcgfCAnc3RhbGUnO1xuXG4vKipcbiAqIEN1cnJlbnQgbWV0cmljIHJlc3BvbnNlIGZyb20gdGhlIEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRNZXRyaWNSZXNwb25zZSB7XG4gIG1ldHJpY05hbWU6IHN0cmluZztcbiAgbWV0cmljVHlwZTogJ3RyYWNlX2NhbGN1bGF0ZWQnIHwgJ2V4dGVybmFsJztcbiAgdmFsdWU6IG51bWJlciB8IG51bGw7XG4gIHZhbHVlRm9ybWF0dGVkOiBzdHJpbmc7XG4gIHVuaXQ/OiBzdHJpbmc7XG4gIHN0YXR1czogTWV0cmljU3RhdHVzO1xuICBzdGF0dXNNZXNzYWdlPzogc3RyaW5nO1xuICB0cmVuZD86IE1ldHJpY1RyZW5kO1xuICB0cmFjZUNvdW50PzogbnVtYmVyO1xuICBtaW5UcmFjZVRocmVzaG9sZD86IG51bWJlcjtcbiAgcHJvZ3Jlc3NQZXJjZW50PzogbnVtYmVyO1xuICBsYXN0RXh0ZXJuYWxVcGRhdGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSGlzdG9yaWNhbCBkYXRhIHBvaW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljSGlzdG9yeVBvaW50IHtcbiAgcGVyaW9kU3RhcnQ6IHN0cmluZztcbiAgcGVyaW9kRW5kOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHZhbHVlRm9ybWF0dGVkPzogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgdHJhY2VDb3VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBIaXN0b3JpY2FsIHN1bW1hcnkgc3RhdGlzdGljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY0hpc3RvcnlTdW1tYXJ5IHtcbiAgY3VycmVudDogbnVtYmVyIHwgbnVsbDtcbiAgcHJldmlvdXM6IG51bWJlciB8IG51bGw7XG4gIGNoYW5nZVBlcmNlbnQ6IG51bWJlciB8IG51bGw7XG4gIGlzUG9zaXRpdmU6IGJvb2xlYW47XG4gIGRhdGFQb2ludENvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogRnVsbCBoaXN0b3J5IHJlc3BvbnNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljSGlzdG9yeVJlc3BvbnNlIHtcbiAgbWV0cmljTmFtZTogc3RyaW5nO1xuICB1bml0OiBzdHJpbmc7XG4gIGhpZ2hlcklzQmV0dGVyOiBib29sZWFuO1xuICBkYXRhUG9pbnRzOiBNZXRyaWNIaXN0b3J5UG9pbnRbXTtcbiAgc3VtbWFyeTogTWV0cmljSGlzdG9yeVN1bW1hcnk7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVjb3JkaW5nIGV4dGVybmFsIG1ldHJpYyB2YWx1ZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRNZXRyaWNPcHRpb25zIHtcbiAgbWV0cmljTmFtZTogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICB1bml0Pzogc3RyaW5nO1xuICBwZXJpb2RTdGFydDogc3RyaW5nIHwgRGF0ZTtcbiAgcGVyaW9kRW5kOiBzdHJpbmcgfCBEYXRlO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIHNvdXJjZURldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBmcm9tIHJlY29yZGluZyBhIG1ldHJpYyB2YWx1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZE1ldHJpY1Jlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgaWQ6IHN0cmluZztcbiAgcmVjb3JkZWRBdDogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCVVNJTkVTUyBNRVRSSUNTIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBCdXNpbmVzcyBNZXRyaWNzIEFQSSBjbGllbnQgZm9yIGluZHVzdHJ5LWRyaXZlbiBtZXRyaWNzIHdpdGggaGlzdG9yaWNhbCB0cmFja2luZ1xuICovXG5leHBvcnQgY29uc3QgYnVzaW5lc3NNZXRyaWNzID0ge1xuICAvKipcbiAgICogR2V0IGN1cnJlbnQgbWV0cmljIHZhbHVlIHdpdGggc3RhdHVzIGluZm9ybWF0aW9uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbWV0cmljID0gYXdhaXQgYnVzaW5lc3NNZXRyaWNzLmN1cnJlbnQoJ2FnZW50XzEyMycsICdEZWZsZWN0aW9uIFJhdGUnKTtcbiAgICogY29uc29sZS5sb2coYCR7bWV0cmljLm1ldHJpY05hbWV9OiAke21ldHJpYy52YWx1ZUZvcm1hdHRlZH1gKTtcbiAgICpcbiAgICogaWYgKG1ldHJpYy5zdGF0dXMgPT09ICdpbnN1ZmZpY2llbnRfZGF0YScpIHtcbiAgICogICBjb25zb2xlLmxvZyhgTmVlZCAke21ldHJpYy5taW5UcmFjZVRocmVzaG9sZCAtIG1ldHJpYy50cmFjZUNvdW50fSBtb3JlIHRyYWNlc2ApO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgY3VycmVudChcbiAgICBhZ2VudElkOiBzdHJpbmcsXG4gICAgbWV0cmljTmFtZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEN1cnJlbnRNZXRyaWNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAobWV0cmljTmFtZSkge1xuICAgICAgcGFyYW1zLnNldCgnbWV0cmljTmFtZScsIG1ldHJpY05hbWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdXJsID0gYC9hZ2VudHMvJHthZ2VudElkfS9tZXRyaWNzL2N1cnJlbnQke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gO1xuXG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxDdXJyZW50TWV0cmljUmVzcG9uc2U+KHVybCwgeyBhcGlWZXJzaW9uOiAndjMnIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgaGlzdG9yaWNhbCBtZXRyaWMgZGF0YSBmb3IgZ3JhcGhpbmdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBoaXN0b3J5ID0gYXdhaXQgYnVzaW5lc3NNZXRyaWNzLmhpc3RvcnkoJ2FnZW50XzEyMycsICdEZWZsZWN0aW9uIFJhdGUnLCB7XG4gICAqICAgc3RhcnREYXRlOiBuZXcgRGF0ZShEYXRlLm5vdygpIC0gMzAgKiAyNCAqIDYwICogNjAgKiAxMDAwKSxcbiAgICogICBlbmREYXRlOiBuZXcgRGF0ZSgpLFxuICAgKiAgIGdyYW51bGFyaXR5OiAnZGFpbHknLFxuICAgKiB9KTtcbiAgICpcbiAgICogY29uc29sZS5sb2coYCR7aGlzdG9yeS5kYXRhUG9pbnRzLmxlbmd0aH0gZGF0YSBwb2ludHNgKTtcbiAgICogY29uc29sZS5sb2coYENoYW5nZTogJHtoaXN0b3J5LnN1bW1hcnkuY2hhbmdlUGVyY2VudH0lYCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgaGlzdG9yeShcbiAgICBhZ2VudElkOiBzdHJpbmcsXG4gICAgbWV0cmljTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHN0YXJ0RGF0ZT86IHN0cmluZyB8IERhdGU7XG4gICAgICBlbmREYXRlPzogc3RyaW5nIHwgRGF0ZTtcbiAgICAgIGdyYW51bGFyaXR5PzogJ2hvdXJseScgfCAnZGFpbHknIHwgJ3dlZWtseScgfCAnbW9udGhseSc7XG4gICAgfSA9IHt9XG4gICk6IFByb21pc2U8TWV0cmljSGlzdG9yeVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIHBhcmFtcy5zZXQoJ21ldHJpY05hbWUnLCBtZXRyaWNOYW1lKTtcblxuICAgIGlmIChvcHRpb25zLnN0YXJ0RGF0ZSkge1xuICAgICAgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgbmV3IERhdGUob3B0aW9ucy5zdGFydERhdGUpLnRvSVNPU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lbmREYXRlKSB7XG4gICAgICBwYXJhbXMuc2V0KCdlbmREYXRlJywgbmV3IERhdGUob3B0aW9ucy5lbmREYXRlKS50b0lTT1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZ3JhbnVsYXJpdHkpIHtcbiAgICAgIHBhcmFtcy5zZXQoJ2dyYW51bGFyaXR5Jywgb3B0aW9ucy5ncmFudWxhcml0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxNZXRyaWNIaXN0b3J5UmVzcG9uc2U+KFxuICAgICAgYC9hZ2VudHMvJHthZ2VudElkfS9tZXRyaWNzL2hpc3Rvcnk/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNvcmQgYW4gZXh0ZXJuYWwgbWV0cmljIHZhbHVlXG4gICAqXG4gICAqIFVzZSB0aGlzIHRvIGluZ2VzdCBtZXRyaWNzIGZyb20gZXh0ZXJuYWwgZGF0YSBzb3VyY2VzIChDUk0sIHN1cnZleXMsIGJpbGxpbmcsIGV0Yy4pXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gUmVjb3JkIENTQVQgc2NvcmUgZnJvbSBzdXJ2ZXkgc3lzdGVtXG4gICAqIGF3YWl0IGJ1c2luZXNzTWV0cmljcy5yZWNvcmQoJ2FnZW50XzEyMycsIHtcbiAgICogICBtZXRyaWNOYW1lOiAnQ1NBVC9OUFMnLFxuICAgKiAgIHZhbHVlOiA0LjUsXG4gICAqICAgdW5pdDogJ3Njb3JlJyxcbiAgICogICBwZXJpb2RTdGFydDogJzIwMjQtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICogICBwZXJpb2RFbmQ6ICcyMDI0LTAxLTA3VDIzOjU5OjU5WicsXG4gICAqICAgc291cmNlOiAnc3VydmV5X3N5c3RlbScsXG4gICAqICAgc291cmNlRGV0YWlsczogeyBzdXJ2ZXlJZDogJ3N1cnZleV80NTYnLCByZXNwb25zZUNvdW50OiAxNTAgfSxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgcmVjb3JkKFxuICAgIGFnZW50SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBSZWNvcmRNZXRyaWNPcHRpb25zXG4gICk6IFByb21pc2U8UmVjb3JkTWV0cmljUmVzcG9uc2U+IHtcbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgbWV0cmljTmFtZTogb3B0aW9ucy5tZXRyaWNOYW1lLFxuICAgICAgdmFsdWU6IG9wdGlvbnMudmFsdWUsXG4gICAgICB1bml0OiBvcHRpb25zLnVuaXQsXG4gICAgICBwZXJpb2RTdGFydDogbmV3IERhdGUob3B0aW9ucy5wZXJpb2RTdGFydCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHBlcmlvZEVuZDogbmV3IERhdGUob3B0aW9ucy5wZXJpb2RFbmQpLnRvSVNPU3RyaW5nKCksXG4gICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlIHx8ICdhcGknLFxuICAgICAgc291cmNlRGV0YWlsczogb3B0aW9ucy5zb3VyY2VEZXRhaWxzLFxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3Q8QXBpUmVzcG9uc2U8UmVjb3JkTWV0cmljUmVzcG9uc2U+PihcbiAgICAgIGAvYWdlbnRzLyR7YWdlbnRJZH0vbWV0cmljcy92YWx1ZXNgLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keSxcbiAgICAgICAgYXBpVmVyc2lvbjogJ3YzJyxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEhO1xuICB9LFxuXG4gIC8qKlxuICAgKiBCYXRjaCByZWNvcmQgbXVsdGlwbGUgZXh0ZXJuYWwgbWV0cmljIHZhbHVlc1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGF3YWl0IGJ1c2luZXNzTWV0cmljcy5yZWNvcmRCYXRjaCgnYWdlbnRfMTIzJywgW1xuICAgKiAgIHsgbWV0cmljTmFtZTogJ0NTQVQvTlBTJywgdmFsdWU6IDQuNSwgLi4uIH0sXG4gICAqICAgeyBtZXRyaWNOYW1lOiAnSG91cnMgU2F2ZWQnLCB2YWx1ZTogMTIwLCAuLi4gfSxcbiAgICogXSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgcmVjb3JkQmF0Y2goXG4gICAgYWdlbnRJZDogc3RyaW5nLFxuICAgIG1ldHJpY3M6IFJlY29yZE1ldHJpY09wdGlvbnNbXVxuICApOiBQcm9taXNlPFJlY29yZE1ldHJpY1Jlc3BvbnNlW10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtZXRyaWNzLm1hcCgobWV0cmljKSA9PiB0aGlzLnJlY29yZChhZ2VudElkLCBtZXRyaWMpKVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBtZXRyaWMgaXMgcmVhZHkgdG8gZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNZXRyaWNSZWFkeShtZXRyaWM6IEN1cnJlbnRNZXRyaWNSZXNwb25zZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gbWV0cmljLnN0YXR1cyA9PT0gJ3JlYWR5Jztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG1ldHJpYyBuZWVkcyBtb3JlIHRyYWNlIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5lZWRzTW9yZVRyYWNlcyhtZXRyaWM6IEN1cnJlbnRNZXRyaWNSZXNwb25zZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gbWV0cmljLnN0YXR1cyA9PT0gJ2luc3VmZmljaWVudF9kYXRhJztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG1ldHJpYyBpcyB3YWl0aW5nIGZvciBleHRlcm5hbCBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhd2FpdGluZ0V4dGVybmFsRGF0YShtZXRyaWM6IEN1cnJlbnRNZXRyaWNSZXNwb25zZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gbWV0cmljLnN0YXR1cyA9PT0gJ2F3YWl0aW5nX2V4dGVybmFsJztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBtZXRyaWMgZGF0YSBpcyBzdGFsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNZXRyaWNTdGFsZShtZXRyaWM6IEN1cnJlbnRNZXRyaWNSZXNwb25zZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gbWV0cmljLnN0YXR1cyA9PT0gJ3N0YWxlJztcbn1cblxuLyoqXG4gKiBHZXQgaHVtYW4tcmVhZGFibGUgc3RhdHVzIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c01lc3NhZ2UobWV0cmljOiBDdXJyZW50TWV0cmljUmVzcG9uc2UpOiBzdHJpbmcge1xuICBzd2l0Y2ggKG1ldHJpYy5zdGF0dXMpIHtcbiAgICBjYXNlICdyZWFkeSc6XG4gICAgICByZXR1cm4gJ01ldHJpYyBpcyB1cCB0byBkYXRlJztcbiAgICBjYXNlICdpbnN1ZmZpY2llbnRfZGF0YSc6XG4gICAgICByZXR1cm4gbWV0cmljLnN0YXR1c01lc3NhZ2UgfHxcbiAgICAgICAgYE5lZWQgJHsobWV0cmljLm1pblRyYWNlVGhyZXNob2xkIHx8IDUwKSAtIChtZXRyaWMudHJhY2VDb3VudCB8fCAwKX0gbW9yZSB0cmFjZXNgO1xuICAgIGNhc2UgJ2F3YWl0aW5nX2V4dGVybmFsJzpcbiAgICAgIHJldHVybiBtZXRyaWMuc3RhdHVzTWVzc2FnZSB8fCAnV2FpdGluZyBmb3IgZXh0ZXJuYWwgZGF0YSBzb3VyY2UnO1xuICAgIGNhc2UgJ3N0YWxlJzpcbiAgICAgIHJldHVybiBtZXRyaWMuc3RhdHVzTWVzc2FnZSB8fCAnRGF0YSBtYXkgYmUgb3V0ZGF0ZWQnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ1Vua25vd24gc3RhdHVzJztcbiAgfVxufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBwcm9ncmVzcyB0b3dhcmQgbWluaW11bSB0cmFjZSB0aHJlc2hvbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYWNlUHJvZ3Jlc3MobWV0cmljOiBDdXJyZW50TWV0cmljUmVzcG9uc2UpOiBudW1iZXIge1xuICBpZiAobWV0cmljLnN0YXR1cyAhPT0gJ2luc3VmZmljaWVudF9kYXRhJykgcmV0dXJuIDEwMDtcbiAgcmV0dXJuIG1ldHJpYy5wcm9ncmVzc1BlcmNlbnQgfHwgMDtcbn1cblxuLyoqXG4gKiBGb3JtYXQgbWV0cmljIHZhbHVlIGZvciBkaXNwbGF5IGJhc2VkIG9uIHVuaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE1ldHJpY1ZhbHVlKHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAodW5pdCkge1xuICAgIGNhc2UgJyUnOlxuICAgICAgcmV0dXJuIGAke01hdGgucm91bmQodmFsdWUgKiAxMCkgLyAxMH0lYDtcbiAgICBjYXNlICckJzpcbiAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgfSkuZm9ybWF0KHZhbHVlKTtcbiAgICBjYXNlICdzJzpcbiAgICAgIHJldHVybiB2YWx1ZSA8IDYwID8gYCR7TWF0aC5yb3VuZCh2YWx1ZSl9c2AgOiBgJHtNYXRoLnJvdW5kKHZhbHVlIC8gNjApfW1gO1xuICAgIGNhc2UgJ2hycyc6XG4gICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZCh2YWx1ZSAqIDEwKSAvIDEwfSBocnNgO1xuICAgIGNhc2UgJ3Njb3JlJzpcbiAgICAgIHJldHVybiB2YWx1ZS50b0ZpeGVkKDEpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gU3RyaW5nKE1hdGgucm91bmQodmFsdWUgKiAxMDApIC8gMTAwKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldCB0cmVuZCBkaXJlY3Rpb24gYXMgZW1vamlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyZW5kRW1vamkodHJlbmQ6IE1ldHJpY1RyZW5kKTogc3RyaW5nIHtcbiAgaWYgKHRyZW5kLmRpcmVjdGlvbiA9PT0gJ3VwJykgcmV0dXJuIHRyZW5kLmlzUG9zaXRpdmUgPyAn8J+TiCcgOiAn8J+TiSc7XG4gIGlmICh0cmVuZC5kaXJlY3Rpb24gPT09ICdkb3duJykgcmV0dXJuIHRyZW5kLmlzUG9zaXRpdmUgPyAn8J+TiCcgOiAn8J+TiSc7XG4gIHJldHVybiAn4p6h77iPJztcbn1cbiJdfQ==
|
|
@@ -4,23 +4,6 @@
|
|
|
4
4
|
* Prediction accuracy tracking with Brier scores and calibration metrics
|
|
5
5
|
*/
|
|
6
6
|
import type { CalibrationStatus, CalibrationBucket, PredictionType } from '../core/types';
|
|
7
|
-
/**
|
|
8
|
-
* Record outcome input
|
|
9
|
-
*/
|
|
10
|
-
export interface RecordOutcomeInput {
|
|
11
|
-
/** Run ID the prediction was made for */
|
|
12
|
-
runId: string;
|
|
13
|
-
/** Type of prediction */
|
|
14
|
-
predictionType: PredictionType;
|
|
15
|
-
/** The predicted value (0-1 for probabilities) */
|
|
16
|
-
predictedValue: number;
|
|
17
|
-
/** The actual outcome (0 or 1 for binary, or actual value) */
|
|
18
|
-
actualOutcome: number;
|
|
19
|
-
/** When the prediction was made */
|
|
20
|
-
predictedAt?: string;
|
|
21
|
-
/** When the outcome was observed */
|
|
22
|
-
observedAt?: string;
|
|
23
|
-
}
|
|
24
7
|
/**
|
|
25
8
|
* Calibration metrics
|
|
26
9
|
*/
|
|
@@ -69,33 +52,6 @@ export declare const calibration: {
|
|
|
69
52
|
* ```
|
|
70
53
|
*/
|
|
71
54
|
allMetrics(agentId: string): Promise<CalibrationMetrics[]>;
|
|
72
|
-
/**
|
|
73
|
-
* Record a prediction outcome for calibration tracking
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* // Record a churn prediction outcome
|
|
78
|
-
* await calibration.recordOutcome({
|
|
79
|
-
* runId: 'run_abc123',
|
|
80
|
-
* predictionType: 'churn_risk',
|
|
81
|
-
* predictedValue: 0.7, // We predicted 70% churn risk
|
|
82
|
-
* actualOutcome: 1, // Customer did churn
|
|
83
|
-
* });
|
|
84
|
-
*
|
|
85
|
-
* // Record a resolution time prediction
|
|
86
|
-
* await calibration.recordOutcome({
|
|
87
|
-
* runId: 'run_abc123',
|
|
88
|
-
* predictionType: 'resolution_time',
|
|
89
|
-
* predictedValue: 15, // Predicted 15 minutes
|
|
90
|
-
* actualOutcome: 22, // Actual was 22 minutes
|
|
91
|
-
* });
|
|
92
|
-
* ```
|
|
93
|
-
*/
|
|
94
|
-
recordOutcome(input: RecordOutcomeInput): Promise<{
|
|
95
|
-
recorded: boolean;
|
|
96
|
-
brierContribution: number;
|
|
97
|
-
message: string;
|
|
98
|
-
}>;
|
|
99
55
|
/**
|
|
100
56
|
* Trigger recalibration for an agent
|
|
101
57
|
*
|
|
@@ -119,24 +75,6 @@ export declare const calibration: {
|
|
|
119
75
|
}>;
|
|
120
76
|
newMetrics: CalibrationMetrics[];
|
|
121
77
|
}>;
|
|
122
|
-
/**
|
|
123
|
-
* Get reliability diagram data for visualization
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```typescript
|
|
127
|
-
* const diagram = await calibration.reliabilityDiagram('agent_123', 'outcome');
|
|
128
|
-
* // Use diagram.buckets to plot predicted vs actual probabilities
|
|
129
|
-
* ```
|
|
130
|
-
*/
|
|
131
|
-
reliabilityDiagram(agentId: string, predictionType: PredictionType): Promise<{
|
|
132
|
-
agentId: string;
|
|
133
|
-
predictionType: PredictionType;
|
|
134
|
-
buckets: CalibrationBucket[];
|
|
135
|
-
perfectCalibrationLine: Array<{
|
|
136
|
-
x: number;
|
|
137
|
-
y: number;
|
|
138
|
-
}>;
|
|
139
|
-
}>;
|
|
140
78
|
};
|
|
141
79
|
/**
|
|
142
80
|
* Calculate Brier score from predictions and outcomes
|
package/dist/api/calibration.js
CHANGED
|
@@ -27,7 +27,7 @@ exports.calibration = {
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
async status(agentId, predictionType) {
|
|
30
|
-
return (0, client_1.apiRequestWithData)(`/calibration
|
|
30
|
+
return (0, client_1.apiRequestWithData)(`/calibration/${agentId}/status?predictionType=${predictionType}`, { apiVersion: 'v3' });
|
|
31
31
|
},
|
|
32
32
|
/**
|
|
33
33
|
* Get all calibration metrics for an agent
|
|
@@ -41,39 +41,7 @@ exports.calibration = {
|
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
43
|
async allMetrics(agentId) {
|
|
44
|
-
return (0, client_1.apiRequestWithData)(`/calibration
|
|
45
|
-
},
|
|
46
|
-
/**
|
|
47
|
-
* Record a prediction outcome for calibration tracking
|
|
48
|
-
*
|
|
49
|
-
* @example
|
|
50
|
-
* ```typescript
|
|
51
|
-
* // Record a churn prediction outcome
|
|
52
|
-
* await calibration.recordOutcome({
|
|
53
|
-
* runId: 'run_abc123',
|
|
54
|
-
* predictionType: 'churn_risk',
|
|
55
|
-
* predictedValue: 0.7, // We predicted 70% churn risk
|
|
56
|
-
* actualOutcome: 1, // Customer did churn
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* // Record a resolution time prediction
|
|
60
|
-
* await calibration.recordOutcome({
|
|
61
|
-
* runId: 'run_abc123',
|
|
62
|
-
* predictionType: 'resolution_time',
|
|
63
|
-
* predictedValue: 15, // Predicted 15 minutes
|
|
64
|
-
* actualOutcome: 22, // Actual was 22 minutes
|
|
65
|
-
* });
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
async recordOutcome(input) {
|
|
69
|
-
return (0, client_1.apiRequestWithData)('/calibration/record', {
|
|
70
|
-
method: 'POST',
|
|
71
|
-
body: {
|
|
72
|
-
...input,
|
|
73
|
-
predictedAt: input.predictedAt || new Date().toISOString(),
|
|
74
|
-
observedAt: input.observedAt || new Date().toISOString(),
|
|
75
|
-
},
|
|
76
|
-
});
|
|
44
|
+
return (0, client_1.apiRequestWithData)(`/calibration/${agentId}/metrics`, { apiVersion: 'v3' });
|
|
77
45
|
},
|
|
78
46
|
/**
|
|
79
47
|
* Trigger recalibration for an agent
|
|
@@ -87,23 +55,12 @@ exports.calibration = {
|
|
|
87
55
|
* ```
|
|
88
56
|
*/
|
|
89
57
|
async retrain(agentId, options = {}) {
|
|
90
|
-
return (0, client_1.apiRequestWithData)(`/calibration
|
|
58
|
+
return (0, client_1.apiRequestWithData)(`/calibration/${agentId}/retrain`, {
|
|
91
59
|
method: 'POST',
|
|
92
60
|
body: options,
|
|
61
|
+
apiVersion: 'v3',
|
|
93
62
|
});
|
|
94
63
|
},
|
|
95
|
-
/**
|
|
96
|
-
* Get reliability diagram data for visualization
|
|
97
|
-
*
|
|
98
|
-
* @example
|
|
99
|
-
* ```typescript
|
|
100
|
-
* const diagram = await calibration.reliabilityDiagram('agent_123', 'outcome');
|
|
101
|
-
* // Use diagram.buckets to plot predicted vs actual probabilities
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
async reliabilityDiagram(agentId, predictionType) {
|
|
105
|
-
return (0, client_1.apiRequestWithData)(`/calibration/diagram/${agentId}?predictionType=${predictionType}`);
|
|
106
|
-
},
|
|
107
64
|
};
|
|
108
65
|
// ============================================================================
|
|
109
66
|
// HELPER FUNCTIONS
|
|
@@ -173,4 +130,4 @@ function getCalibrationQuality(brierScore) {
|
|
|
173
130
|
function formatBrierScore(score) {
|
|
174
131
|
return score.toFixed(4);
|
|
175
132
|
}
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsaWJyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2NhbGlicmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFnTUgsa0RBVUM7QUFNRCxvQ0FvQ0M7QUFLRCw0Q0FFQztBQUtELHNEQU9DO0FBS0QsNENBRUM7QUE1UUQsMkNBQWdFO0FBb0RoRTs7R0FFRztBQUNVLFFBQUEsV0FBVyxHQUFHO0lBQ3pCOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQ1YsT0FBZSxFQUNmLGNBQThCO1FBRTlCLE9BQU8sSUFBQSwyQkFBa0IsRUFDdkIsdUJBQXVCLE9BQU8sbUJBQW1CLGNBQWMsRUFBRSxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDOUIsT0FBTyxJQUFBLDJCQUFrQixFQUN2Qix3QkFBd0IsT0FBTyxFQUFFLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBeUI7UUFLM0MsT0FBTyxJQUFBLDJCQUFrQixFQUFDLHFCQUFxQixFQUFFO1lBQy9DLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLEdBQUcsS0FBSztnQkFDUixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtnQkFDMUQsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7YUFDekQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQ1gsT0FBZSxFQUNmLFVBR0ksRUFBRTtRQU9OLE9BQU8sSUFBQSwyQkFBa0IsRUFBQyx3QkFBd0IsT0FBTyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsT0FBZSxFQUNmLGNBQThCO1FBTzlCLE9BQU8sSUFBQSwyQkFBa0IsRUFDdkIsd0JBQXdCLE9BQU8sbUJBQW1CLGNBQWMsRUFBRSxDQUNuRSxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUM7QUFFRiwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7O0dBR0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsV0FBeUQ7SUFFekQsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQztJQUV2QyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7UUFDNUQsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVOLE9BQU8sR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsV0FBeUQsRUFDekQsYUFBcUIsRUFBRTtJQUV2QixJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sT0FBTyxHQUF3RCxFQUFFLENBQUM7SUFDeEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsS0FBSyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxFQUNsQyxVQUFVLEdBQUcsQ0FBQyxDQUNmLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsU0FBUztRQUU5QyxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzVFLE1BQU0sU0FBUyxHQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRTlELEdBQUcsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBa0I7SUFDakQsT0FBTyxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxVQUFrQjtJQUVsQixJQUFJLFVBQVUsR0FBRyxJQUFJO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFDMUMsSUFBSSxVQUFVLEdBQUcsR0FBRztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3BDLElBQUksVUFBVSxHQUFHLEdBQUc7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNwQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFhO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBDYWxpYnJhdGlvbiBBUElcbiAqXG4gKiBQcmVkaWN0aW9uIGFjY3VyYWN5IHRyYWNraW5nIHdpdGggQnJpZXIgc2NvcmVzIGFuZCBjYWxpYnJhdGlvbiBtZXRyaWNzXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuaW1wb3J0IHR5cGUge1xuICBDYWxpYnJhdGlvblN0YXR1cyxcbiAgQ2FsaWJyYXRpb25CdWNrZXQsXG4gIFByZWRpY3Rpb25UeXBlLFxuICBBcGlSZXNwb25zZSxcbn0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENBTElCUkFUSU9OIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZWNvcmQgb3V0Y29tZSBpbnB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZE91dGNvbWVJbnB1dCB7XG4gIC8qKiBSdW4gSUQgdGhlIHByZWRpY3Rpb24gd2FzIG1hZGUgZm9yICovXG4gIHJ1bklkOiBzdHJpbmc7XG4gIC8qKiBUeXBlIG9mIHByZWRpY3Rpb24gKi9cbiAgcHJlZGljdGlvblR5cGU6IFByZWRpY3Rpb25UeXBlO1xuICAvKiogVGhlIHByZWRpY3RlZCB2YWx1ZSAoMC0xIGZvciBwcm9iYWJpbGl0aWVzKSAqL1xuICBwcmVkaWN0ZWRWYWx1ZTogbnVtYmVyO1xuICAvKiogVGhlIGFjdHVhbCBvdXRjb21lICgwIG9yIDEgZm9yIGJpbmFyeSwgb3IgYWN0dWFsIHZhbHVlKSAqL1xuICBhY3R1YWxPdXRjb21lOiBudW1iZXI7XG4gIC8qKiBXaGVuIHRoZSBwcmVkaWN0aW9uIHdhcyBtYWRlICovXG4gIHByZWRpY3RlZEF0Pzogc3RyaW5nO1xuICAvKiogV2hlbiB0aGUgb3V0Y29tZSB3YXMgb2JzZXJ2ZWQgKi9cbiAgb2JzZXJ2ZWRBdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDYWxpYnJhdGlvbiBtZXRyaWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsaWJyYXRpb25NZXRyaWNzIHtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBwcmVkaWN0aW9uVHlwZTogUHJlZGljdGlvblR5cGU7XG4gIC8qKiBCcmllciBzY29yZSAobG93ZXIgaXMgYmV0dGVyLCA8MC4xIGlzIGdvb2QpICovXG4gIGJyaWVyU2NvcmU6IG51bWJlcjtcbiAgLyoqIEV4cGVjdGVkIENhbGlicmF0aW9uIEVycm9yICovXG4gIGVjZTogbnVtYmVyO1xuICAvKiogTWF4aW11bSBDYWxpYnJhdGlvbiBFcnJvciAqL1xuICBtY2U6IG51bWJlcjtcbiAgLyoqIFNhbXBsZSBjb3VudCAqL1xuICBzYW1wbGVDb3VudDogbnVtYmVyO1xuICAvKiogSXMgdGhlIG1vZGVsIHdlbGwtY2FsaWJyYXRlZCAqL1xuICBpc0NhbGlicmF0ZWQ6IGJvb2xlYW47XG4gIC8qKiBSZWxpYWJpbGl0eSBkaWFncmFtIGRhdGEgKi9cbiAgcmVsaWFiaWxpdHlEaWFncmFtOiBDYWxpYnJhdGlvbkJ1Y2tldFtdO1xuICAvKiogTGFzdCB1cGRhdGVkICovXG4gIGxhc3RVcGRhdGVkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FsaWJyYXRpb24gQVBJIGNsaWVudCBmb3IgcHJlZGljdGlvbiBhY2N1cmFjeSB0cmFja2luZ1xuICovXG5leHBvcnQgY29uc3QgY2FsaWJyYXRpb24gPSB7XG4gIC8qKlxuICAgKiBHZXQgY2FsaWJyYXRpb24gc3RhdHVzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN0YXR1cyA9IGF3YWl0IGNhbGlicmF0aW9uLnN0YXR1cygnYWdlbnRfMTIzJywgJ2NodXJuX3Jpc2snKTtcbiAgICogY29uc29sZS5sb2coYEJyaWVyIHNjb3JlOiAke3N0YXR1cy5icmllclNjb3JlfWApO1xuICAgKiBjb25zb2xlLmxvZyhgSXMgY2FsaWJyYXRlZDogJHtzdGF0dXMuaXNDYWxpYnJhdGVkfWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHN0YXR1cyhcbiAgICBhZ2VudElkOiBzdHJpbmcsXG4gICAgcHJlZGljdGlvblR5cGU6IFByZWRpY3Rpb25UeXBlXG4gICk6IFByb21pc2U8Q2FsaWJyYXRpb25TdGF0dXM+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENhbGlicmF0aW9uU3RhdHVzPihcbiAgICAgIGAvY2FsaWJyYXRpb24vc3RhdHVzLyR7YWdlbnRJZH0/cHJlZGljdGlvblR5cGU9JHtwcmVkaWN0aW9uVHlwZX1gXG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGFsbCBjYWxpYnJhdGlvbiBtZXRyaWNzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG1ldHJpY3MgPSBhd2FpdCBjYWxpYnJhdGlvbi5hbGxNZXRyaWNzKCdhZ2VudF8xMjMnKTtcbiAgICogZm9yIChjb25zdCBtIG9mIG1ldHJpY3MpIHtcbiAgICogICBjb25zb2xlLmxvZyhgJHttLnByZWRpY3Rpb25UeXBlfTogQnJpZXI9JHttLmJyaWVyU2NvcmV9YCk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBhbGxNZXRyaWNzKGFnZW50SWQ6IHN0cmluZyk6IFByb21pc2U8Q2FsaWJyYXRpb25NZXRyaWNzW10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENhbGlicmF0aW9uTWV0cmljc1tdPihcbiAgICAgIGAvY2FsaWJyYXRpb24vbWV0cmljcy8ke2FnZW50SWR9YFxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIHByZWRpY3Rpb24gb3V0Y29tZSBmb3IgY2FsaWJyYXRpb24gdHJhY2tpbmdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBSZWNvcmQgYSBjaHVybiBwcmVkaWN0aW9uIG91dGNvbWVcbiAgICogYXdhaXQgY2FsaWJyYXRpb24ucmVjb3JkT3V0Y29tZSh7XG4gICAqICAgcnVuSWQ6ICdydW5fYWJjMTIzJyxcbiAgICogICBwcmVkaWN0aW9uVHlwZTogJ2NodXJuX3Jpc2snLFxuICAgKiAgIHByZWRpY3RlZFZhbHVlOiAwLjcsICAvLyBXZSBwcmVkaWN0ZWQgNzAlIGNodXJuIHJpc2tcbiAgICogICBhY3R1YWxPdXRjb21lOiAxLCAgICAgLy8gQ3VzdG9tZXIgZGlkIGNodXJuXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBSZWNvcmQgYSByZXNvbHV0aW9uIHRpbWUgcHJlZGljdGlvblxuICAgKiBhd2FpdCBjYWxpYnJhdGlvbi5yZWNvcmRPdXRjb21lKHtcbiAgICogICBydW5JZDogJ3J1bl9hYmMxMjMnLFxuICAgKiAgIHByZWRpY3Rpb25UeXBlOiAncmVzb2x1dGlvbl90aW1lJyxcbiAgICogICBwcmVkaWN0ZWRWYWx1ZTogMTUsICAgLy8gUHJlZGljdGVkIDE1IG1pbnV0ZXNcbiAgICogICBhY3R1YWxPdXRjb21lOiAyMiwgICAgLy8gQWN0dWFsIHdhcyAyMiBtaW51dGVzXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHJlY29yZE91dGNvbWUoaW5wdXQ6IFJlY29yZE91dGNvbWVJbnB1dCk6IFByb21pc2U8e1xuICAgIHJlY29yZGVkOiBib29sZWFuO1xuICAgIGJyaWVyQ29udHJpYnV0aW9uOiBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YSgnL2NhbGlicmF0aW9uL3JlY29yZCcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgcHJlZGljdGVkQXQ6IGlucHV0LnByZWRpY3RlZEF0IHx8IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgb2JzZXJ2ZWRBdDogaW5wdXQub2JzZXJ2ZWRBdCB8fCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHJlY2FsaWJyYXRpb24gZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsaWJyYXRpb24ucmV0cmFpbignYWdlbnRfMTIzJywge1xuICAgKiAgIHByZWRpY3Rpb25UeXBlczogWydjaHVybl9yaXNrJywgJ2VzY2FsYXRpb25fcmlzayddLFxuICAgKiB9KTtcbiAgICogY29uc29sZS5sb2coYFJldHJhaW5lZDogJHtyZXN1bHQuc3VjY2Vzc31gKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyByZXRyYWluKFxuICAgIGFnZW50SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBwcmVkaWN0aW9uVHlwZXM/OiBQcmVkaWN0aW9uVHlwZVtdO1xuICAgICAgbWluU2FtcGxlcz86IG51bWJlcjtcbiAgICB9ID0ge31cbiAgKTogUHJvbWlzZTx7XG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICByZXRyYWluZWRUeXBlczogUHJlZGljdGlvblR5cGVbXTtcbiAgICBza2lwcGVkVHlwZXM6IEFycmF5PHsgdHlwZTogUHJlZGljdGlvblR5cGU7IHJlYXNvbjogc3RyaW5nIH0+O1xuICAgIG5ld01ldHJpY3M6IENhbGlicmF0aW9uTWV0cmljc1tdO1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2NhbGlicmF0aW9uL3JldHJhaW4vJHthZ2VudElkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogb3B0aW9ucyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHJlbGlhYmlsaXR5IGRpYWdyYW0gZGF0YSBmb3IgdmlzdWFsaXphdGlvblxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGRpYWdyYW0gPSBhd2FpdCBjYWxpYnJhdGlvbi5yZWxpYWJpbGl0eURpYWdyYW0oJ2FnZW50XzEyMycsICdvdXRjb21lJyk7XG4gICAqIC8vIFVzZSBkaWFncmFtLmJ1Y2tldHMgdG8gcGxvdCBwcmVkaWN0ZWQgdnMgYWN0dWFsIHByb2JhYmlsaXRpZXNcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyByZWxpYWJpbGl0eURpYWdyYW0oXG4gICAgYWdlbnRJZDogc3RyaW5nLFxuICAgIHByZWRpY3Rpb25UeXBlOiBQcmVkaWN0aW9uVHlwZVxuICApOiBQcm9taXNlPHtcbiAgICBhZ2VudElkOiBzdHJpbmc7XG4gICAgcHJlZGljdGlvblR5cGU6IFByZWRpY3Rpb25UeXBlO1xuICAgIGJ1Y2tldHM6IENhbGlicmF0aW9uQnVja2V0W107XG4gICAgcGVyZmVjdENhbGlicmF0aW9uTGluZTogQXJyYXk8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PjtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoXG4gICAgICBgL2NhbGlicmF0aW9uL2RpYWdyYW0vJHthZ2VudElkfT9wcmVkaWN0aW9uVHlwZT0ke3ByZWRpY3Rpb25UeXBlfWBcbiAgICApO1xuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENhbGN1bGF0ZSBCcmllciBzY29yZSBmcm9tIHByZWRpY3Rpb25zIGFuZCBvdXRjb21lc1xuICogTG93ZXIgaXMgYmV0dGVyLCA8MC4xIGlzIGNvbnNpZGVyZWQgZ29vZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQnJpZXJTY29yZShcbiAgcHJlZGljdGlvbnM6IEFycmF5PHsgcHJlZGljdGVkOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0+XG4pOiBudW1iZXIge1xuICBpZiAocHJlZGljdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcblxuICBjb25zdCBzdW0gPSBwcmVkaWN0aW9ucy5yZWR1Y2UoKGFjYywgeyBwcmVkaWN0ZWQsIGFjdHVhbCB9KSA9PiB7XG4gICAgcmV0dXJuIGFjYyArIE1hdGgucG93KHByZWRpY3RlZCAtIGFjdHVhbCwgMik7XG4gIH0sIDApO1xuXG4gIHJldHVybiBzdW0gLyBwcmVkaWN0aW9ucy5sZW5ndGg7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIEV4cGVjdGVkIENhbGlicmF0aW9uIEVycm9yIChFQ0UpXG4gKiBNZWFzdXJlcyBob3cgd2VsbC1jYWxpYnJhdGVkIHByZWRpY3Rpb25zIGFyZSBhY3Jvc3MgY29uZmlkZW5jZSBidWNrZXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVFQ0UoXG4gIHByZWRpY3Rpb25zOiBBcnJheTx7IHByZWRpY3RlZDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9PixcbiAgbnVtQnVja2V0czogbnVtYmVyID0gMTBcbik6IG51bWJlciB7XG4gIGlmIChwcmVkaWN0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiAwO1xuXG4gIGNvbnN0IGJ1Y2tldHM6IEFycmF5PHsgcHJlZGljdGlvbnM6IG51bWJlcltdOyBhY3R1YWxzOiBudW1iZXJbXSB9PiA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUJ1Y2tldHM7IGkrKykge1xuICAgIGJ1Y2tldHMucHVzaCh7IHByZWRpY3Rpb25zOiBbXSwgYWN0dWFsczogW10gfSk7XG4gIH1cblxuICAvLyBBc3NpZ24gcHJlZGljdGlvbnMgdG8gYnVja2V0c1xuICBmb3IgKGNvbnN0IHsgcHJlZGljdGVkLCBhY3R1YWwgfSBvZiBwcmVkaWN0aW9ucykge1xuICAgIGNvbnN0IGJ1Y2tldEluZGV4ID0gTWF0aC5taW4oXG4gICAgICBNYXRoLmZsb29yKHByZWRpY3RlZCAqIG51bUJ1Y2tldHMpLFxuICAgICAgbnVtQnVja2V0cyAtIDFcbiAgICApO1xuICAgIGJ1Y2tldHNbYnVja2V0SW5kZXhdLnByZWRpY3Rpb25zLnB1c2gocHJlZGljdGVkKTtcbiAgICBidWNrZXRzW2J1Y2tldEluZGV4XS5hY3R1YWxzLnB1c2goYWN0dWFsKTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBFQ0VcbiAgbGV0IGVjZSA9IDA7XG4gIGZvciAoY29uc3QgYnVja2V0IG9mIGJ1Y2tldHMpIHtcbiAgICBpZiAoYnVja2V0LnByZWRpY3Rpb25zLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cbiAgICBjb25zdCBhdmdQcmVkaWN0ZWQgPVxuICAgICAgYnVja2V0LnByZWRpY3Rpb25zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gYnVja2V0LnByZWRpY3Rpb25zLmxlbmd0aDtcbiAgICBjb25zdCBhdmdBY3R1YWwgPVxuICAgICAgYnVja2V0LmFjdHVhbHMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCkgLyBidWNrZXQuYWN0dWFscy5sZW5ndGg7XG4gICAgY29uc3Qgd2VpZ2h0ID0gYnVja2V0LnByZWRpY3Rpb25zLmxlbmd0aCAvIHByZWRpY3Rpb25zLmxlbmd0aDtcblxuICAgIGVjZSArPSB3ZWlnaHQgKiBNYXRoLmFicyhhdmdQcmVkaWN0ZWQgLSBhdmdBY3R1YWwpO1xuICB9XG5cbiAgcmV0dXJuIGVjZTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG1vZGVsIGlzIHdlbGwtY2FsaWJyYXRlZCBiYXNlZCBvbiBCcmllciBzY29yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXZWxsQ2FsaWJyYXRlZChicmllclNjb3JlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIGJyaWVyU2NvcmUgPCAwLjE7XG59XG5cbi8qKlxuICogR2V0IGNhbGlicmF0aW9uIHF1YWxpdHkgbGFiZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbGlicmF0aW9uUXVhbGl0eShcbiAgYnJpZXJTY29yZTogbnVtYmVyXG4pOiAnZXhjZWxsZW50JyB8ICdnb29kJyB8ICdmYWlyJyB8ICdwb29yJyB7XG4gIGlmIChicmllclNjb3JlIDwgMC4wNSkgcmV0dXJuICdleGNlbGxlbnQnO1xuICBpZiAoYnJpZXJTY29yZSA8IDAuMSkgcmV0dXJuICdnb29kJztcbiAgaWYgKGJyaWVyU2NvcmUgPCAwLjIpIHJldHVybiAnZmFpcic7XG4gIHJldHVybiAncG9vcic7XG59XG5cbi8qKlxuICogRm9ybWF0IEJyaWVyIHNjb3JlIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCcmllclNjb3JlKHNjb3JlOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gc2NvcmUudG9GaXhlZCg0KTtcbn1cbiJdfQ==
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsaWJyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2NhbGlicmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFzSEgsa0RBVUM7QUFNRCxvQ0FvQ0M7QUFLRCw0Q0FFQztBQUtELHNEQU9DO0FBS0QsNENBRUM7QUFsTUQsMkNBQWdFO0FBa0NoRTs7R0FFRztBQUNVLFFBQUEsV0FBVyxHQUFHO0lBQ3pCOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQ1YsT0FBZSxFQUNmLGNBQThCO1FBRTlCLE9BQU8sSUFBQSwyQkFBa0IsRUFDdkIsZ0JBQWdCLE9BQU8sMEJBQTBCLGNBQWMsRUFBRSxFQUNqRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQzlCLE9BQU8sSUFBQSwyQkFBa0IsRUFDdkIsZ0JBQWdCLE9BQU8sVUFBVSxFQUNqQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FDWCxPQUFlLEVBQ2YsVUFHSSxFQUFFO1FBT04sT0FBTyxJQUFBLDJCQUFrQixFQUFDLGdCQUFnQixPQUFPLFVBQVUsRUFBRTtZQUMzRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGLENBQUM7QUFFRiwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7O0dBR0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsV0FBeUQ7SUFFekQsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FB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QUNoQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFhO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBDYWxpYnJhdGlvbiBBUElcbiAqXG4gKiBQcmVkaWN0aW9uIGFjY3VyYWN5IHRyYWNraW5nIHdpdGggQnJpZXIgc2NvcmVzIGFuZCBjYWxpYnJhdGlvbiBtZXRyaWNzXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuaW1wb3J0IHR5cGUge1xuICBDYWxpYnJhdGlvblN0YXR1cyxcbiAgQ2FsaWJyYXRpb25CdWNrZXQsXG4gIFByZWRpY3Rpb25UeXBlLFxuICBBcGlSZXNwb25zZSxcbn0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENBTElCUkFUSU9OIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDYWxpYnJhdGlvbiBtZXRyaWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsaWJyYXRpb25NZXRyaWNzIHtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBwcmVkaWN0aW9uVHlwZTogUHJlZGljdGlvblR5cGU7XG4gIC8qKiBCcmllciBzY29yZSAobG93ZXIgaXMgYmV0dGVyLCA8MC4xIGlzIGdvb2QpICovXG4gIGJyaWVyU2NvcmU6IG51bWJlcjtcbiAgLyoqIEV4cGVjdGVkIENhbGlicmF0aW9uIEVycm9yICovXG4gIGVjZTogbnVtYmVyO1xuICAvKiogTWF4aW11bSBDYWxpYnJhdGlvbiBFcnJvciAqL1xuICBtY2U6IG51bWJlcjtcbiAgLyoqIFNhbXBsZSBjb3VudCAqL1xuICBzYW1wbGVDb3VudDogbnVtYmVyO1xuICAvKiogSXMgdGhlIG1vZGVsIHdlbGwtY2FsaWJyYXRlZCAqL1xuICBpc0NhbGlicmF0ZWQ6IGJvb2xlYW47XG4gIC8qKiBSZWxpYWJpbGl0eSBkaWFncmFtIGRhdGEgKi9cbiAgcmVsaWFiaWxpdHlEaWFncmFtOiBDYWxpYnJhdGlvbkJ1Y2tldFtdO1xuICAvKiogTGFzdCB1cGRhdGVkICovXG4gIGxhc3RVcGRhdGVkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FsaWJyYXRpb24gQVBJIGNsaWVudCBmb3IgcHJlZGljdGlvbiBhY2N1cmFjeSB0cmFja2luZ1xuICovXG5leHBvcnQgY29uc3QgY2FsaWJyYXRpb24gPSB7XG4gIC8qKlxuICAgKiBHZXQgY2FsaWJyYXRpb24gc3RhdHVzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN0YXR1cyA9IGF3YWl0IGNhbGlicmF0aW9uLnN0YXR1cygnYWdlbnRfMTIzJywgJ2NodXJuX3Jpc2snKTtcbiAgICogY29uc29sZS5sb2coYEJyaWVyIHNjb3JlOiAke3N0YXR1cy5icmllclNjb3JlfWApO1xuICAgKiBjb25zb2xlLmxvZyhgSXMgY2FsaWJyYXRlZDogJHtzdGF0dXMuaXNDYWxpYnJhdGVkfWApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHN0YXR1cyhcbiAgICBhZ2VudElkOiBzdHJpbmcsXG4gICAgcHJlZGljdGlvblR5cGU6IFByZWRpY3Rpb25UeXBlXG4gICk6IFByb21pc2U8Q2FsaWJyYXRpb25TdGF0dXM+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENhbGlicmF0aW9uU3RhdHVzPihcbiAgICAgIGAvY2FsaWJyYXRpb24vJHthZ2VudElkfS9zdGF0dXM/cHJlZGljdGlvblR5cGU9JHtwcmVkaWN0aW9uVHlwZX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGNhbGlicmF0aW9uIG1ldHJpY3MgZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbWV0cmljcyA9IGF3YWl0IGNhbGlicmF0aW9uLmFsbE1ldHJpY3MoJ2FnZW50XzEyMycpO1xuICAgKiBmb3IgKGNvbnN0IG0gb2YgbWV0cmljcykge1xuICAgKiAgIGNvbnNvbGUubG9nKGAke20ucHJlZGljdGlvblR5cGV9OiBCcmllcj0ke20uYnJpZXJTY29yZX1gKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGFsbE1ldHJpY3MoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxDYWxpYnJhdGlvbk1ldHJpY3NbXT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Q2FsaWJyYXRpb25NZXRyaWNzW10+KFxuICAgICAgYC9jYWxpYnJhdGlvbi8ke2FnZW50SWR9L21ldHJpY3NgLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHJlY2FsaWJyYXRpb24gZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsaWJyYXRpb24ucmV0cmFpbignYWdlbnRfMTIzJywge1xuICAgKiAgIHByZWRpY3Rpb25UeXBlczogWydjaHVybl9yaXNrJywgJ2VzY2FsYXRpb25fcmlzayddLFxuICAgKiB9KTtcbiAgICogY29uc29sZS5sb2coYFJldHJhaW5lZDogJHtyZXN1bHQuc3VjY2Vzc31gKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyByZXRyYWluKFxuICAgIGFnZW50SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBwcmVkaWN0aW9uVHlwZXM/OiBQcmVkaWN0aW9uVHlwZVtdO1xuICAgICAgbWluU2FtcGxlcz86IG51bWJlcjtcbiAgICB9ID0ge31cbiAgKTogUHJvbWlzZTx7XG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICByZXRyYWluZWRUeXBlczogUHJlZGljdGlvblR5cGVbXTtcbiAgICBza2lwcGVkVHlwZXM6IEFycmF5PHsgdHlwZTogUHJlZGljdGlvblR5cGU7IHJlYXNvbjogc3RyaW5nIH0+O1xuICAgIG5ld01ldHJpY3M6IENhbGlicmF0aW9uTWV0cmljc1tdO1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2NhbGlicmF0aW9uLyR7YWdlbnRJZH0vcmV0cmFpbmAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogb3B0aW9ucyxcbiAgICAgIGFwaVZlcnNpb246ICd2MycsXG4gICAgfSk7XG4gIH0sXG5cbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDYWxjdWxhdGUgQnJpZXIgc2NvcmUgZnJvbSBwcmVkaWN0aW9ucyBhbmQgb3V0Y29tZXNcbiAqIExvd2VyIGlzIGJldHRlciwgPDAuMSBpcyBjb25zaWRlcmVkIGdvb2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUJyaWVyU2NvcmUoXG4gIHByZWRpY3Rpb25zOiBBcnJheTx7IHByZWRpY3RlZDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9PlxuKTogbnVtYmVyIHtcbiAgaWYgKHByZWRpY3Rpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgY29uc3Qgc3VtID0gcHJlZGljdGlvbnMucmVkdWNlKChhY2MsIHsgcHJlZGljdGVkLCBhY3R1YWwgfSkgPT4ge1xuICAgIHJldHVybiBhY2MgKyBNYXRoLnBvdyhwcmVkaWN0ZWQgLSBhY3R1YWwsIDIpO1xuICB9LCAwKTtcblxuICByZXR1cm4gc3VtIC8gcHJlZGljdGlvbnMubGVuZ3RoO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBFeHBlY3RlZCBDYWxpYnJhdGlvbiBFcnJvciAoRUNFKVxuICogTWVhc3VyZXMgaG93IHdlbGwtY2FsaWJyYXRlZCBwcmVkaWN0aW9ucyBhcmUgYWNyb3NzIGNvbmZpZGVuY2UgYnVja2V0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRUNFKFxuICBwcmVkaWN0aW9uczogQXJyYXk8eyBwcmVkaWN0ZWQ6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfT4sXG4gIG51bUJ1Y2tldHM6IG51bWJlciA9IDEwXG4pOiBudW1iZXIge1xuICBpZiAocHJlZGljdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcblxuICBjb25zdCBidWNrZXRzOiBBcnJheTx7IHByZWRpY3Rpb25zOiBudW1iZXJbXTsgYWN0dWFsczogbnVtYmVyW10gfT4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1CdWNrZXRzOyBpKyspIHtcbiAgICBidWNrZXRzLnB1c2goeyBwcmVkaWN0aW9uczogW10sIGFjdHVhbHM6IFtdIH0pO1xuICB9XG5cbiAgLy8gQXNzaWduIHByZWRpY3Rpb25zIHRvIGJ1Y2tldHNcbiAgZm9yIChjb25zdCB7IHByZWRpY3RlZCwgYWN0dWFsIH0gb2YgcHJlZGljdGlvbnMpIHtcbiAgICBjb25zdCBidWNrZXRJbmRleCA9IE1hdGgubWluKFxuICAgICAgTWF0aC5mbG9vcihwcmVkaWN0ZWQgKiBudW1CdWNrZXRzKSxcbiAgICAgIG51bUJ1Y2tldHMgLSAxXG4gICAgKTtcbiAgICBidWNrZXRzW2J1Y2tldEluZGV4XS5wcmVkaWN0aW9ucy5wdXNoKHByZWRpY3RlZCk7XG4gICAgYnVja2V0c1tidWNrZXRJbmRleF0uYWN0dWFscy5wdXNoKGFjdHVhbCk7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgRUNFXG4gIGxldCBlY2UgPSAwO1xuICBmb3IgKGNvbnN0IGJ1Y2tldCBvZiBidWNrZXRzKSB7XG4gICAgaWYgKGJ1Y2tldC5wcmVkaWN0aW9ucy5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgYXZnUHJlZGljdGVkID1cbiAgICAgIGJ1Y2tldC5wcmVkaWN0aW9ucy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIGJ1Y2tldC5wcmVkaWN0aW9ucy5sZW5ndGg7XG4gICAgY29uc3QgYXZnQWN0dWFsID1cbiAgICAgIGJ1Y2tldC5hY3R1YWxzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gYnVja2V0LmFjdHVhbHMubGVuZ3RoO1xuICAgIGNvbnN0IHdlaWdodCA9IGJ1Y2tldC5wcmVkaWN0aW9ucy5sZW5ndGggLyBwcmVkaWN0aW9ucy5sZW5ndGg7XG5cbiAgICBlY2UgKz0gd2VpZ2h0ICogTWF0aC5hYnMoYXZnUHJlZGljdGVkIC0gYXZnQWN0dWFsKTtcbiAgfVxuXG4gIHJldHVybiBlY2U7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBtb2RlbCBpcyB3ZWxsLWNhbGlicmF0ZWQgYmFzZWQgb24gQnJpZXIgc2NvcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2VsbENhbGlicmF0ZWQoYnJpZXJTY29yZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiBicmllclNjb3JlIDwgMC4xO1xufVxuXG4vKipcbiAqIEdldCBjYWxpYnJhdGlvbiBxdWFsaXR5IGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWxpYnJhdGlvblF1YWxpdHkoXG4gIGJyaWVyU2NvcmU6IG51bWJlclxuKTogJ2V4Y2VsbGVudCcgfCAnZ29vZCcgfCAnZmFpcicgfCAncG9vcicge1xuICBpZiAoYnJpZXJTY29yZSA8IDAuMDUpIHJldHVybiAnZXhjZWxsZW50JztcbiAgaWYgKGJyaWVyU2NvcmUgPCAwLjEpIHJldHVybiAnZ29vZCc7XG4gIGlmIChicmllclNjb3JlIDwgMC4yKSByZXR1cm4gJ2ZhaXInO1xuICByZXR1cm4gJ3Bvb3InO1xufVxuXG4vKipcbiAqIEZvcm1hdCBCcmllciBzY29yZSBmb3IgZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QnJpZXJTY29yZShzY29yZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNjb3JlLnRvRml4ZWQoNCk7XG59XG4iXX0=
|
package/dist/api/claims.js
CHANGED
|
@@ -49,6 +49,7 @@ exports.claims = {
|
|
|
49
49
|
return (0, client_1.apiRequestWithData)('/analyses', {
|
|
50
50
|
method: 'POST',
|
|
51
51
|
body: options,
|
|
52
|
+
apiVersion: 'v3',
|
|
52
53
|
});
|
|
53
54
|
},
|
|
54
55
|
/**
|
|
@@ -60,7 +61,7 @@ exports.claims = {
|
|
|
60
61
|
* ```
|
|
61
62
|
*/
|
|
62
63
|
async getAnalysis(analysisId) {
|
|
63
|
-
return (0, client_1.apiRequestWithData)(`/analyses/${analysisId}
|
|
64
|
+
return (0, client_1.apiRequestWithData)(`/analyses/${analysisId}`, { apiVersion: 'v3' });
|
|
64
65
|
},
|
|
65
66
|
/**
|
|
66
67
|
* Get current analysis for a run
|
|
@@ -71,7 +72,7 @@ exports.claims = {
|
|
|
71
72
|
* ```
|
|
72
73
|
*/
|
|
73
74
|
async getRunAnalysis(runId) {
|
|
74
|
-
return (0, client_1.apiRequestWithData)(`/runs/${runId}/analysis
|
|
75
|
+
return (0, client_1.apiRequestWithData)(`/runs/${runId}/analysis`, { apiVersion: 'v3' });
|
|
75
76
|
},
|
|
76
77
|
/**
|
|
77
78
|
* Get analysis history for a run
|
|
@@ -82,7 +83,7 @@ exports.claims = {
|
|
|
82
83
|
* ```
|
|
83
84
|
*/
|
|
84
85
|
async getAnalysisHistory(runId) {
|
|
85
|
-
return (0, client_1.apiRequestWithData)(`/runs/${runId}/analyses
|
|
86
|
+
return (0, client_1.apiRequestWithData)(`/runs/${runId}/analyses`, { apiVersion: 'v3' });
|
|
86
87
|
},
|
|
87
88
|
/**
|
|
88
89
|
* Supersede an analysis with a new one
|
|
@@ -103,6 +104,7 @@ exports.claims = {
|
|
|
103
104
|
return (0, client_1.apiRequestWithData)(`/analyses/${analysisId}/supersede`, {
|
|
104
105
|
method: 'POST',
|
|
105
106
|
body: options,
|
|
107
|
+
apiVersion: 'v3',
|
|
106
108
|
});
|
|
107
109
|
},
|
|
108
110
|
/**
|
|
@@ -143,7 +145,7 @@ exports.claims = {
|
|
|
143
145
|
params.set('limit', String(options.limit));
|
|
144
146
|
if (options.offset)
|
|
145
147
|
params.set('offset', String(options.offset));
|
|
146
|
-
const response = await (0, client_1.apiRequest)(`/claims?${params.toString()}
|
|
148
|
+
const response = await (0, client_1.apiRequest)(`/claims?${params.toString()}`, { apiVersion: 'v3' });
|
|
147
149
|
return response.data;
|
|
148
150
|
},
|
|
149
151
|
/**
|
|
@@ -155,7 +157,7 @@ exports.claims = {
|
|
|
155
157
|
* ```
|
|
156
158
|
*/
|
|
157
159
|
async get(claimId) {
|
|
158
|
-
return (0, client_1.apiRequestWithData)(`/claims/${claimId}
|
|
160
|
+
return (0, client_1.apiRequestWithData)(`/claims/${claimId}`, { apiVersion: 'v3' });
|
|
159
161
|
},
|
|
160
162
|
/**
|
|
161
163
|
* Verify or reject a claim (human feedback)
|
|
@@ -179,6 +181,7 @@ exports.claims = {
|
|
|
179
181
|
return (0, client_1.apiRequestWithData)(`/claims/${claimId}/verify`, {
|
|
180
182
|
method: 'POST',
|
|
181
183
|
body: options,
|
|
184
|
+
apiVersion: 'v3',
|
|
182
185
|
});
|
|
183
186
|
},
|
|
184
187
|
/**
|
|
@@ -201,7 +204,7 @@ exports.claims = {
|
|
|
201
204
|
params.set('runId', options.runId);
|
|
202
205
|
if (options.analysisIds)
|
|
203
206
|
params.set('analysisIds', options.analysisIds.join(','));
|
|
204
|
-
return (0, client_1.apiRequestWithData)(`/claims/summary?${params.toString()}
|
|
207
|
+
return (0, client_1.apiRequestWithData)(`/claims/summary?${params.toString()}`, { apiVersion: 'v3' });
|
|
205
208
|
},
|
|
206
209
|
};
|
|
207
210
|
// ============================================================================
|
|
@@ -259,4 +262,4 @@ function groupClaimsByCategory(claimsList) {
|
|
|
259
262
|
}
|
|
260
263
|
return groups;
|
|
261
264
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9jbGFpbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQTBUSCx3QkFFQztBQUtELGtDQUVDO0FBS0QsZ0NBRUM7QUFLRCwwREFLQztBQUtELDhDQVFDO0FBS0Qsc0RBa0JDO0FBdFhELDJDQUFnRTtBQThFaEU7O0dBRUc7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkJHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUNqRCxPQUFPLElBQUEsMkJBQWtCLEVBQWlCLFdBQVcsRUFBRTtZQUNyRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsYUFBYSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsU0FBUyxLQUFLLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQWE7UUFhcEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFNBQVMsS0FBSyxXQUFXLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLFVBQWtCLEVBQ2xCLE9BR0M7UUFFRCxPQUFPLElBQUEsMkJBQWtCLEVBQUMsYUFBYSxVQUFVLFlBQVksRUFBRTtZQUM3RCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxP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RTtRQUNkLGNBQWMsRUFBRSxFQUFFO1FBQ2xCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsS0FBSyxFQUFFLEVBQUU7S0FDVixDQUFDO0lBRUYsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4wIC0gQ2xhaW1zIEFQSVxuICpcbiAqIEZhY3RzIHZzIEluZmVyZW5jZXMgQVBJIGZvciBhY2Nlc3NpbmcgYW5hbHlzaXMgY2xhaW1zXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuaW1wb3J0IHR5cGUge1xuICBDbGFpbSxcbiAgQ2xhaW1UeXBlLFxuICBDbGFpbUNhdGVnb3J5LFxuICBBbmFseXNpc1Jlc3VsdCxcbiAgQXBpUmVzcG9uc2UsXG4gIFBhZ2luYXRlZFJlc3BvbnNlLFxuICBFdmlkZW5jZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENMQUlNUyBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTGlzdCBjbGFpbXMgcXVlcnkgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDbGFpbXNPcHRpb25zIHtcbiAgcnVuSWQ/OiBzdHJpbmc7XG4gIGFuYWx5c2lzSWQ/OiBzdHJpbmc7XG4gIGNsYWltVHlwZT86IENsYWltVHlwZTtcbiAgY2xhaW1DYXRlZ29yeT86IENsYWltQ2F0ZWdvcnk7XG4gIG1pbkNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIGh1bWFuVmVyaWZpZWQ/OiBib29sZWFuO1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbmFseXNpcyBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQW5hbHlzaXNPcHRpb25zIHtcbiAgcnVuSWQ6IHN0cmluZztcbiAgbW9kZWxVc2VkPzogc3RyaW5nO1xuICBvdXRjb21lVmVyZGljdDogJ3N1Y2Nlc3MnIHwgJ3BhcnRpYWxfc3VjY2VzcycgfCAnZmFpbHVyZSc7XG4gIG91dGNvbWVDb25maWRlbmNlPzogbnVtYmVyO1xuICByb290Q2F1c2VDYXRlZ29yeT86IHN0cmluZztcbiAgcm9vdENhdXNlQ29uZmlkZW5jZT86IG51bWJlcjtcbiAgY2xhaW1zPzogQ3JlYXRlQ2xhaW1JbnB1dFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsYWltSW5wdXQge1xuICBjbGFpbVR5cGU6IENsYWltVHlwZTtcbiAgY2xhaW1DYXRlZ29yeTogQ2xhaW1DYXRlZ29yeTtcbiAgY2xhaW1UZXh0OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgY29uZmlkZW5jZUNhbGlicmF0aW9uPzogJ2NhbGlicmF0ZWQnIHwgJ3VuY2FsaWJyYXRlZCcgfCAnbmVlZHNfbW9yZV9kYXRhJztcbiAgZXZpZGVuY2U/OiBFdmlkZW5jZVJlZmVyZW5jZVtdO1xuICBpc0V4cGxhaW5hYmxlPzogYm9vbGVhbjtcbiAgcHJvYmFiaWxpdHlWYWx1ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGYWN0cyB2cyBpbmZlcmVuY2VzIHN1bW1hcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGYWN0c1ZzSW5mZXJlbmNlc1N1bW1hcnkge1xuICBhbmFseXNpc0lkczogc3RyaW5nW107XG4gIHRvdGFsQ2xhaW1zOiBudW1iZXI7XG4gIG9ic2VydmVkOiB7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBhdmdDb25maWRlbmNlOiBudW1iZXI7XG4gICAgY2F0ZWdvcmllczogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgfTtcbiAgaW5mZXJyZWQ6IHtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGF2Z0NvbmZpZGVuY2U6IG51bWJlcjtcbiAgICBjYXRlZ29yaWVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICB9O1xuICBjb21wdXRlZDoge1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgYXZnQ29uZmlkZW5jZTogbnVtYmVyO1xuICAgIGNhdGVnb3JpZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIH07XG4gIGh1bWFuVmVyaWZpZWRDb3VudDogbnVtYmVyO1xuICBodW1hblJlamVjdGVkQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDbGFpbXMgQVBJIGNsaWVudCBmb3IgZmFjdHMgdnMgaW5mZXJlbmNlcyBtYW5hZ2VtZW50XG4gKi9cbmV4cG9ydCBjb25zdCBjbGFpbXMgPSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgYW5hbHlzaXMgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYW5hbHlzaXMgPSBhd2FpdCBjbGFpbXMuY3JlYXRlQW5hbHlzaXMoe1xuICAgKiAgIHJ1bklkOiAncnVuX2FiYzEyMycsXG4gICAqICAgb3V0Y29tZVZlcmRpY3Q6ICdmYWlsdXJlJyxcbiAgICogICBvdXRjb21lQ29uZmlkZW5jZTogMC44NSxcbiAgICogICByb290Q2F1c2VDYXRlZ29yeTogJ3JldHJpZXZhbF9mYWlsdXJlJyxcbiAgICogICBjbGFpbXM6IFtcbiAgICogICAgIHtcbiAgICogICAgICAgY2xhaW1UeXBlOiAnb2JzZXJ2ZWQnLFxuICAgKiAgICAgICBjbGFpbUNhdGVnb3J5OiAncm9vdF9jYXVzZScsXG4gICAqICAgICAgIGNsYWltVGV4dDogJ1ZlY3RvciBzZWFyY2ggcmV0dXJuZWQgMCByZXN1bHRzJyxcbiAgICogICAgICAgY29uZmlkZW5jZTogMS4wLFxuICAgKiAgICAgICBldmlkZW5jZTogW3sgdHlwZTogJ3NwYW4nLCByZWZlcmVuY2VJZDogJ3NwYW5fMTIzJywgcmVsZXZhbmNlOiAnZGlyZWN0JywgY29uZmlkZW5jZTogMS4wIH1dLFxuICAgKiAgICAgfSxcbiAgICogICAgIHtcbiAgICogICAgICAgY2xhaW1UeXBlOiAnaW5mZXJyZWQnLFxuICAgKiAgICAgICBjbGFpbUNhdGVnb3J5OiAnY2h1cm5fcmlzaycsXG4gICAqICAgICAgIGNsYWltVGV4dDogJ0hpZ2ggY2h1cm4gcmlzayBkdWUgdG8gcmVwZWF0ZWQgZmFpbHVyZXMnLFxuICAgKiAgICAgICBjb25maWRlbmNlOiAwLjcsXG4gICAqICAgICB9LFxuICAgKiAgIF0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUFuYWx5c2lzKG9wdGlvbnM6IENyZWF0ZUFuYWx5c2lzT3B0aW9ucyk6IFByb21pc2U8QW5hbHlzaXNSZXN1bHQ+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPEFuYWx5c2lzUmVzdWx0PignL2FuYWx5c2VzJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYW4gYW5hbHlzaXMgYnkgSURcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpcygnYW5hbHlzaXNfYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0QW5hbHlzaXMoYW5hbHlzaXNJZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvYW5hbHlzZXMvJHthbmFseXNpc0lkfWApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBhbmFseXNpcyBmb3IgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5nZXRSdW5BbmFseXNpcygncnVuX2FiYzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldFJ1bkFuYWx5c2lzKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPEFuYWx5c2lzUmVzdWx0PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxBbmFseXNpc1Jlc3VsdD4oYC9ydW5zLyR7cnVuSWR9L2FuYWx5c2lzYCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBhbmFseXNpcyBoaXN0b3J5IGZvciBhIHJ1blxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGhpc3RvcnkgPSBhd2FpdCBjbGFpbXMuZ2V0QW5hbHlzaXNIaXN0b3J5KCdydW5fYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0QW5hbHlzaXNIaXN0b3J5KHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICBydW5JZDogc3RyaW5nO1xuICAgIGFuYWx5c2VzOiBBcnJheTx7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgYW5hbHlzaXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgICBtb2RlbFVzZWQ6IHN0cmluZztcbiAgICAgIG91dGNvbWVWZXJkaWN0OiBzdHJpbmc7XG4gICAgICBpc0N1cnJlbnQ6IGJvb2xlYW47XG4gICAgICBzdXBlcnNlZGVkQnk/OiBzdHJpbmc7XG4gICAgICBzdXBlcnNlc3Npb25SZWFzb24/OiBzdHJpbmc7XG4gICAgICBhbmFseXplZEF0OiBzdHJpbmc7XG4gICAgfT47XG4gIH0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvcnVucy8ke3J1bklkfS9hbmFseXNlc2ApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTdXBlcnNlZGUgYW4gYW5hbHlzaXMgd2l0aCBhIG5ldyBvbmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBuZXdBbmFseXNpcyA9IGF3YWl0IGNsYWltcy5zdXBlcnNlZGVBbmFseXNpcygnYW5hbHlzaXNfb2xkJywge1xuICAgKiAgIHJlYXNvbjogJ0ltcHJvdmVkIG1vZGVsIGFjY3VyYWN5JyxcbiAgICogICBuZXdBbmFseXNpczoge1xuICAgKiAgICAgb3V0Y29tZVZlcmRpY3Q6ICdzdWNjZXNzJyxcbiAgICogICAgIG91dGNvbWVDb25maWRlbmNlOiAwLjk1LFxuICAgKiAgICAgY2xhaW1zOiBbLi4uXSxcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdXBlcnNlZGVBbmFseXNpcyhcbiAgICBhbmFseXNpc0lkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVhc29uOiBzdHJpbmc7XG4gICAgICBuZXdBbmFseXNpczogT21pdDxDcmVhdGVBbmFseXNpc09wdGlvbnMsICdydW5JZCc+O1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IHN1cGVyc2VkZWRBbmFseXNpc0lkOiBzdHJpbmc7IG5ld0FuYWx5c2lzOiBBbmFseXNpc1Jlc3VsdCB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2FuYWx5c2VzLyR7YW5hbHlzaXNJZH0vc3VwZXJzZWRlYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBMaXN0IGNsYWltcyB3aXRoIGZpbHRlcnNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBHZXQgYWxsIGluZmVycmVkIGNsYWltcyB3aXRoIGhpZ2ggY29uZmlkZW5jZVxuICAgKiBjb25zdCB7IGNsYWltcyB9ID0gYXdhaXQgY2xhaW1zLmxpc3Qoe1xuICAgKiAgIGNsYWltVHlwZTogJ2luZmVycmVkJyxcbiAgICogICBtaW5Db25maWRlbmNlOiAwLjgsXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBHZXQgYWxsIGNodXJuIHJpc2sgY2xhaW1zIGZvciBhIHJ1blxuICAgKiBjb25zdCB7IGNsYWltcyB9ID0gYXdhaXQgY2xhaW1zLmxpc3Qoe1xuICAgKiAgIHJ1bklkOiAncnVuX2FiYzEyMycsXG4gICAqICAgY2xhaW1DYXRlZ29yeTogJ2NodXJuX3Jpc2snLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBsaXN0KFxuICAgIG9wdGlvbnM6IExpc3RDbGFpbXNPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTx7IGNsYWltczogQ2xhaW1bXTsgbGltaXQ6IG51bWJlcjsgb2Zmc2V0OiBudW1iZXI7IGhhc01vcmU6IGJvb2xlYW4gfT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0aW9ucy5ydW5JZCkgcGFyYW1zLnNldCgncnVuSWQnLCBvcHRpb25zLnJ1bklkKTtcbiAgICBpZiAob3B0aW9ucy5hbmFseXNpc0lkKSBwYXJhbXMuc2V0KCdhbmFseXNpc0lkJywgb3B0aW9ucy5hbmFseXNpc0lkKTtcbiAgICBpZiAob3B0aW9ucy5jbGFpbVR5cGUpIHBhcmFtcy5zZXQoJ2NsYWltVHlwZScsIG9wdGlvbnMuY2xhaW1UeXBlKTtcbiAgICBpZiAob3B0aW9ucy5jbGFpbUNhdGVnb3J5KSBwYXJhbXMuc2V0KCdjbGFpbUNhdGVnb3J5Jywgb3B0aW9ucy5jbGFpbUNhdGVnb3J5KTtcbiAgICBpZiAob3B0aW9ucy5taW5Db25maWRlbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5zZXQoJ21pbkNvbmZpZGVuY2UnLCBTdHJpbmcob3B0aW9ucy5taW5Db25maWRlbmNlKSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmh1bWFuVmVyaWZpZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zLnNldCgnaHVtYW5WZXJpZmllZCcsIFN0cmluZyhvcHRpb25zLmh1bWFuVmVyaWZpZWQpKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubGltaXQpIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdGlvbnMubGltaXQpKTtcbiAgICBpZiAob3B0aW9ucy5vZmZzZXQpIHBhcmFtcy5zZXQoJ29mZnNldCcsIFN0cmluZyhvcHRpb25zLm9mZnNldCkpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlSZXF1ZXN0PEFwaVJlc3BvbnNlPHsgY2xhaW1zOiBDbGFpbVtdOyBsaW1pdDogbnVtYmVyOyBvZmZzZXQ6IG51bWJlcjsgaGFzTW9yZTogYm9vbGVhbiB9Pj4oXG4gICAgICBgL2NsYWltcz8ke3BhcmFtcy50b1N0cmluZygpfWBcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhITtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgY2xhaW0gYnkgSURcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBjbGFpbSA9IGF3YWl0IGNsYWltcy5nZXQoJ2NsYWltX2FiYzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldChjbGFpbUlkOiBzdHJpbmcpOiBQcm9taXNlPENsYWltPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxDbGFpbT4oYC9jbGFpbXMvJHtjbGFpbUlkfWApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBWZXJpZnkgb3IgcmVqZWN0IGEgY2xhaW0gKGh1bWFuIGZlZWRiYWNrKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIENvbmZpcm0gYSBjbGFpbVxuICAgKiBhd2FpdCBjbGFpbXMudmVyaWZ5KCdjbGFpbV9hYmMxMjMnLCB7XG4gICAqICAgdmVyZGljdDogJ2NvbmZpcm1lZCcsXG4gICAqICAgbm90ZXM6ICdWZXJpZmllZCBhZ2FpbnN0IHRpY2tldCBoaXN0b3J5JyxcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIFJlamVjdCBhIGNsYWltXG4gICAqIGF3YWl0IGNsYWltcy52ZXJpZnkoJ2NsYWltX2FiYzEyMycsIHtcbiAgICogICB2ZXJkaWN0OiAncmVqZWN0ZWQnLFxuICAgKiAgIG5vdGVzOiAnQ3VzdG9tZXIgY29udGV4dCB3YXMgbWlzc2luZycsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHZlcmlmeShcbiAgICBjbGFpbUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgdmVyZGljdDogJ2NvbmZpcm1lZCcgfCAncmVqZWN0ZWQnIHwgJ21vZGlmaWVkJztcbiAgICAgIG5vdGVzPzogc3RyaW5nO1xuICAgICAgbW9kaWZpZWRUZXh0Pzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IGNsYWltSWQ6IHN0cmluZzsgdmVyZGljdDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9jbGFpbXMvJHtjbGFpbUlkfS92ZXJpZnlgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBmYWN0cyB2cyBpbmZlcmVuY2VzIHN1bW1hcnlcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBTdW1tYXJ5IGZvciBhIHNwZWNpZmljIHJ1blxuICAgKiBjb25zdCBzdW1tYXJ5ID0gYXdhaXQgY2xhaW1zLnN1bW1hcnkoeyBydW5JZDogJ3J1bl9hYmMxMjMnIH0pO1xuICAgKlxuICAgKiAvLyBTdW1tYXJ5IGZvciBtdWx0aXBsZSBhbmFseXNlc1xuICAgKiBjb25zdCBzdW1tYXJ5ID0gYXdhaXQgY2xhaW1zLnN1bW1hcnkoe1xuICAgKiAgIGFuYWx5c2lzSWRzOiBbJ2FuYWx5c2lzXzEnLCAnYW5hbHlzaXNfMiddLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdW1tYXJ5KFxuICAgIG9wdGlvbnM6IHsgcnVuSWQ/OiBzdHJpbmc7IGFuYWx5c2lzSWRzPzogc3RyaW5nW10gfSA9IHt9XG4gICk6IFByb21pc2U8RmFjdHNWc0luZmVyZW5jZXNTdW1tYXJ5PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRpb25zLnJ1bklkKSBwYXJhbXMuc2V0KCdydW5JZCcsIG9wdGlvbnMucnVuSWQpO1xuICAgIGlmIChvcHRpb25zLmFuYWx5c2lzSWRzKSBwYXJhbXMuc2V0KCdhbmFseXNpc0lkcycsIG9wdGlvbnMuYW5hbHlzaXNJZHMuam9pbignLCcpKTtcblxuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8RmFjdHNWc0luZmVyZW5jZXNTdW1tYXJ5PihcbiAgICAgIGAvY2xhaW1zL3N1bW1hcnk/JHtwYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgKTtcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGNsYWltIGlzIGEgZmFjdCAob2JzZXJ2ZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ZhY3QoY2xhaW06IENsYWltKTogYm9vbGVhbiB7XG4gIHJldHVybiBjbGFpbS5jbGFpbVR5cGUgPT09ICdvYnNlcnZlZCc7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBjbGFpbSBpcyBhbiBpbmZlcmVuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5mZXJlbmNlKGNsYWltOiBDbGFpbSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnaW5mZXJyZWQnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY2xhaW0gaXMgY29tcHV0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcHV0ZWQoY2xhaW06IENsYWltKTogYm9vbGVhbiB7XG4gIHJldHVybiBjbGFpbS5jbGFpbVR5cGUgPT09ICdjb21wdXRlZCc7XG59XG5cbi8qKlxuICogR2V0IGhpZ2ggY29uZmlkZW5jZSBjbGFpbXMgKD49IHRocmVzaG9sZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhpZ2hDb25maWRlbmNlQ2xhaW1zKFxuICBjbGFpbXNMaXN0OiBDbGFpbVtdLFxuICB0aHJlc2hvbGQ6IG51bWJlciA9IDAuOFxuKTogQ2xhaW1bXSB7XG4gIHJldHVybiBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jb25maWRlbmNlID49IHRocmVzaG9sZCk7XG59XG5cbi8qKlxuICogR3JvdXAgY2xhaW1zIGJ5IHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQ2xhaW1zQnlUeXBlKFxuICBjbGFpbXNMaXN0OiBDbGFpbVtdXG4pOiBSZWNvcmQ8Q2xhaW1UeXBlLCBDbGFpbVtdPiB7XG4gIHJldHVybiB7XG4gICAgb2JzZXJ2ZWQ6IGNsYWltc0xpc3QuZmlsdGVyKChjKSA9PiBjLmNsYWltVHlwZSA9PT0gJ29ic2VydmVkJyksXG4gICAgaW5mZXJyZWQ6IGNsYWltc0xpc3QuZmlsdGVyKChjKSA9PiBjLmNsYWltVHlwZSA9PT0gJ2luZmVycmVkJyksXG4gICAgY29tcHV0ZWQ6IGNsYWltc0xpc3QuZmlsdGVyKChjKSA9PiBjLmNsYWltVHlwZSA9PT0gJ2NvbXB1dGVkJyksXG4gIH07XG59XG5cbi8qKlxuICogR3JvdXAgY2xhaW1zIGJ5IGNhdGVnb3J5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncm91cENsYWltc0J5Q2F0ZWdvcnkoXG4gIGNsYWltc0xpc3Q6IENsYWltW11cbik6IFJlY29yZDxDbGFpbUNhdGVnb3J5LCBDbGFpbVtdPiB7XG4gIGNvbnN0IGdyb3VwczogUmVjb3JkPENsYWltQ2F0ZWdvcnksIENsYWltW10+ID0ge1xuICAgIG91dGNvbWU6IFtdLFxuICAgIHJvb3RfY2F1c2U6IFtdLFxuICAgIGN1c3RvbWVyX2ltcGFjdDogW10sXG4gICAgY2h1cm5fcmlzazogW10sXG4gICAgcmV2ZW51ZV9pbXBhY3Q6IFtdLFxuICAgIHF1YWxpdHk6IFtdLFxuICAgIG90aGVyOiBbXSxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGNsYWltIG9mIGNsYWltc0xpc3QpIHtcbiAgICBncm91cHNbY2xhaW0uY2xhaW1DYXRlZ29yeV0ucHVzaChjbGFpbSk7XG4gIH1cblxuICByZXR1cm4gZ3JvdXBzO1xufVxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9jbGFpbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQStUSCx3QkFFQztBQUtELGtDQUVDO0FBS0QsZ0NBRUM7QUFLRCwwREFLQztBQUtELDhDQVFDO0FBS0Qsc0RBa0JDO0FBM1hELDJDQUFnRTtBQThFaEU7O0dBRUc7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkJHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUNqRCxPQUFPLElBQUEsMkJBQWtCLEVBQWlCLFdBQVcsRUFBRTtZQUNyRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsYUFBYSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsU0FBUyxLQUFLLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQWE7UUFhcEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxLQUFLLENBQUMsaUJB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LEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUM7S0FDL0QsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxVQUFtQjtJQUVuQixNQUFNLE1BQU0sR0FBbUM7UUFDN0MsT0FBTyxFQUFFLEVBQUU7UUFDWCxVQUFVLEVBQUUsRUFBRTtRQUNkLGVBQWUsRUFBRSxFQUFFO1FBQ25CLFVBQVUsRUFBRSxFQUFFO1FBQ2QsY0FBYyxFQUFFLEVBQUU7UUFDbEIsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBDbGFpbXMgQVBJXG4gKlxuICogRmFjdHMgdnMgSW5mZXJlbmNlcyBBUEkgZm9yIGFjY2Vzc2luZyBhbmFseXNpcyBjbGFpbXNcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7XG4gIENsYWltLFxuICBDbGFpbVR5cGUsXG4gIENsYWltQ2F0ZWdvcnksXG4gIEFuYWx5c2lzUmVzdWx0LFxuICBBcGlSZXNwb25zZSxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG4gIEV2aWRlbmNlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9jb3JlL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ0xBSU1TIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBMaXN0IGNsYWltcyBxdWVyeSBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdENsYWltc09wdGlvbnMge1xuICBydW5JZD86IHN0cmluZztcbiAgYW5hbHlzaXNJZD86IHN0cmluZztcbiAgY2xhaW1UeXBlPzogQ2xhaW1UeXBlO1xuICBjbGFpbUNhdGVnb3J5PzogQ2xhaW1DYXRlZ29yeTtcbiAgbWluQ29uZmlkZW5jZT86IG51bWJlcjtcbiAgaHVtYW5WZXJpZmllZD86IGJvb2xlYW47XG4gIGxpbWl0PzogbnVtYmVyO1xuICBvZmZzZXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuYWx5c2lzIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVBbmFseXNpc09wdGlvbnMge1xuICBydW5JZDogc3RyaW5nO1xuICBtb2RlbFVzZWQ/OiBzdHJpbmc7XG4gIG91dGNvbWVWZXJkaWN0OiAnc3VjY2VzcycgfCAncGFydGlhbF9zdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgb3V0Y29tZUNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIHJvb3RDYXVzZUNhdGVnb3J5Pzogc3RyaW5nO1xuICByb290Q2F1c2VDb25maWRlbmNlPzogbnVtYmVyO1xuICBjbGFpbXM/OiBDcmVhdGVDbGFpbUlucHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xhaW1JbnB1dCB7XG4gIGNsYWltVHlwZTogQ2xhaW1UeXBlO1xuICBjbGFpbUNhdGVnb3J5OiBDbGFpbUNhdGVnb3J5O1xuICBjbGFpbVRleHQ6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xuICBjb25maWRlbmNlQ2FsaWJyYXRpb24/OiAnY2FsaWJyYXRlZCcgfCAndW5jYWxpYnJhdGVkJyB8ICduZWVkc19tb3JlX2RhdGEnO1xuICBldmlkZW5jZT86IEV2aWRlbmNlUmVmZXJlbmNlW107XG4gIGlzRXhwbGFpbmFibGU/OiBib29sZWFuO1xuICBwcm9iYWJpbGl0eVZhbHVlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZhY3RzIHZzIGluZmVyZW5jZXMgc3VtbWFyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeSB7XG4gIGFuYWx5c2lzSWRzOiBzdHJpbmdbXTtcbiAgdG90YWxDbGFpbXM6IG51bWJlcjtcbiAgb2JzZXJ2ZWQ6IHtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGF2Z0NvbmZpZGVuY2U6IG51bWJlcjtcbiAgICBjYXRlZ29yaWVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICB9O1xuICBpbmZlcnJlZDoge1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgYXZnQ29uZmlkZW5jZTogbnVtYmVyO1xuICAgIGNhdGVnb3JpZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIH07XG4gIGNvbXB1dGVkOiB7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBhdmdDb25maWRlbmNlOiBudW1iZXI7XG4gICAgY2F0ZWdvcmllczogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgfTtcbiAgaHVtYW5WZXJpZmllZENvdW50OiBudW1iZXI7XG4gIGh1bWFuUmVqZWN0ZWRDb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENsYWltcyBBUEkgY2xpZW50IGZvciBmYWN0cyB2cyBpbmZlcmVuY2VzIG1hbmFnZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGNsYWltcyA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBhbmFseXNpcyBmb3IgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5jcmVhdGVBbmFseXNpcyh7XG4gICAqICAgcnVuSWQ6ICdydW5fYWJjMTIzJyxcbiAgICogICBvdXRjb21lVmVyZGljdDogJ2ZhaWx1cmUnLFxuICAgKiAgIG91dGNvbWVDb25maWRlbmNlOiAwLjg1LFxuICAgKiAgIHJvb3RDYXVzZUNhdGVnb3J5OiAncmV0cmlldmFsX2ZhaWx1cmUnLFxuICAgKiAgIGNsYWltczogW1xuICAgKiAgICAge1xuICAgKiAgICAgICBjbGFpbVR5cGU6ICdvYnNlcnZlZCcsXG4gICAqICAgICAgIGNsYWltQ2F0ZWdvcnk6ICdyb290X2NhdXNlJyxcbiAgICogICAgICAgY2xhaW1UZXh0OiAnVmVjdG9yIHNlYXJjaCByZXR1cm5lZCAwIHJlc3VsdHMnLFxuICAgKiAgICAgICBjb25maWRlbmNlOiAxLjAsXG4gICAqICAgICAgIGV2aWRlbmNlOiBbeyB0eXBlOiAnc3BhbicsIHJlZmVyZW5jZUlkOiAnc3Bhbl8xMjMnLCByZWxldmFuY2U6ICdkaXJlY3QnLCBjb25maWRlbmNlOiAxLjAgfV0sXG4gICAqICAgICB9LFxuICAgKiAgICAge1xuICAgKiAgICAgICBjbGFpbVR5cGU6ICdpbmZlcnJlZCcsXG4gICAqICAgICAgIGNsYWltQ2F0ZWdvcnk6ICdjaHVybl9yaXNrJyxcbiAgICogICAgICAgY2xhaW1UZXh0OiAnSGlnaCBjaHVybiByaXNrIGR1ZSB0byByZXBlYXRlZCBmYWlsdXJlcycsXG4gICAqICAgICAgIGNvbmZpZGVuY2U6IDAuNyxcbiAgICogICAgIH0sXG4gICAqICAgXSxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlQW5hbHlzaXMob3B0aW9uczogQ3JlYXRlQW5hbHlzaXNPcHRpb25zKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KCcvYW5hbHlzZXMnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjMnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYW4gYW5hbHlzaXMgYnkgSURcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpcygnYW5hbHlzaXNfYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0QW5hbHlzaXMoYW5hbHlzaXNJZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvYW5hbHlzZXMvJHthbmFseXNpc0lkfWAsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgYW5hbHlzaXMgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYW5hbHlzaXMgPSBhd2FpdCBjbGFpbXMuZ2V0UnVuQW5hbHlzaXMoJ3J1bl9hYmMxMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRSdW5BbmFseXNpcyhydW5JZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvcnVucy8ke3J1bklkfS9hbmFseXNpc2AsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGFuYWx5c2lzIGhpc3RvcnkgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgaGlzdG9yeSA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpc0hpc3RvcnkoJ3J1bl9hYmMxMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRBbmFseXNpc0hpc3RvcnkocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgIHJ1bklkOiBzdHJpbmc7XG4gICAgYW5hbHlzZXM6IEFycmF5PHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBhbmFseXNpc1ZlcnNpb246IHN0cmluZztcbiAgICAgIG1vZGVsVXNlZDogc3RyaW5nO1xuICAgICAgb3V0Y29tZVZlcmRpY3Q6IHN0cmluZztcbiAgICAgIGlzQ3VycmVudDogYm9vbGVhbjtcbiAgICAgIHN1cGVyc2VkZWRCeT86IHN0cmluZztcbiAgICAgIHN1cGVyc2Vzc2lvblJlYXNvbj86IHN0cmluZztcbiAgICAgIGFuYWx5emVkQXQ6IHN0cmluZztcbiAgICB9PjtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9ydW5zLyR7cnVuSWR9L2FuYWx5c2VzYCwgeyBhcGlWZXJzaW9uOiAndjMnIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTdXBlcnNlZGUgYW4gYW5hbHlzaXMgd2l0aCBhIG5ldyBvbmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBuZXdBbmFseXNpcyA9IGF3YWl0IGNsYWltcy5zdXBlcnNlZGVBbmFseXNpcygnYW5hbHlzaXNfb2xkJywge1xuICAgKiAgIHJlYXNvbjogJ0ltcHJvdmVkIG1vZGVsIGFjY3VyYWN5JyxcbiAgICogICBuZXdBbmFseXNpczoge1xuICAgKiAgICAgb3V0Y29tZVZlcmRpY3Q6ICdzdWNjZXNzJyxcbiAgICogICAgIG91dGNvbWVDb25maWRlbmNlOiAwLjk1LFxuICAgKiAgICAgY2xhaW1zOiBbLi4uXSxcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdXBlcnNlZGVBbmFseXNpcyhcbiAgICBhbmFseXNpc0lkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVhc29uOiBzdHJpbmc7XG4gICAgICBuZXdBbmFseXNpczogT21pdDxDcmVhdGVBbmFseXNpc09wdGlvbnMsICdydW5JZCc+O1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IHN1cGVyc2VkZWRBbmFseXNpc0lkOiBzdHJpbmc7IG5ld0FuYWx5c2lzOiBBbmFseXNpc1Jlc3VsdCB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2FuYWx5c2VzLyR7YW5hbHlzaXNJZH0vc3VwZXJzZWRlYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgICAgYXBpVmVyc2lvbjogJ3YzJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdCBjbGFpbXMgd2l0aCBmaWx0ZXJzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gR2V0IGFsbCBpbmZlcnJlZCBjbGFpbXMgd2l0aCBoaWdoIGNvbmZpZGVuY2VcbiAgICogY29uc3QgeyBjbGFpbXMgfSA9IGF3YWl0IGNsYWltcy5saXN0KHtcbiAgICogICBjbGFpbVR5cGU6ICdpbmZlcnJlZCcsXG4gICAqICAgbWluQ29uZmlkZW5jZTogMC44LFxuICAgKiB9KTtcbiAgICpcbiAgICogLy8gR2V0IGFsbCBjaHVybiByaXNrIGNsYWltcyBmb3IgYSBydW5cbiAgICogY29uc3QgeyBjbGFpbXMgfSA9IGF3YWl0IGNsYWltcy5saXN0KHtcbiAgICogICBydW5JZDogJ3J1bl9hYmMxMjMnLFxuICAgKiAgIGNsYWltQ2F0ZWdvcnk6ICdjaHVybl9yaXNrJyxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgbGlzdChcbiAgICBvcHRpb25zOiBMaXN0Q2xhaW1zT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8eyBjbGFpbXM6IENsYWltW107IGxpbWl0OiBudW1iZXI7IG9mZnNldDogbnVtYmVyOyBoYXNNb3JlOiBib29sZWFuIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdGlvbnMucnVuSWQpIHBhcmFtcy5zZXQoJ3J1bklkJywgb3B0aW9ucy5ydW5JZCk7XG4gICAgaWYgKG9wdGlvbnMuYW5hbHlzaXNJZCkgcGFyYW1zLnNldCgnYW5hbHlzaXNJZCcsIG9wdGlvbnMuYW5hbHlzaXNJZCk7XG4gICAgaWYgKG9wdGlvbnMuY2xhaW1UeXBlKSBwYXJhbXMuc2V0KCdjbGFpbVR5cGUnLCBvcHRpb25zLmNsYWltVHlwZSk7XG4gICAgaWYgKG9wdGlvbnMuY2xhaW1DYXRlZ29yeSkgcGFyYW1zLnNldCgnY2xhaW1DYXRlZ29yeScsIG9wdGlvbnMuY2xhaW1DYXRlZ29yeSk7XG4gICAgaWYgKG9wdGlvbnMubWluQ29uZmlkZW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc2V0KCdtaW5Db25maWRlbmNlJywgU3RyaW5nKG9wdGlvbnMubWluQ29uZmlkZW5jZSkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5odW1hblZlcmlmaWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5zZXQoJ2h1bWFuVmVyaWZpZWQnLCBTdHJpbmcob3B0aW9ucy5odW1hblZlcmlmaWVkKSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxpbWl0KSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRpb25zLmxpbWl0KSk7XG4gICAgaWYgKG9wdGlvbnMub2Zmc2V0KSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0aW9ucy5vZmZzZXQpKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdDxBcGlSZXNwb25zZTx7IGNsYWltczogQ2xhaW1bXTsgbGltaXQ6IG51bWJlcjsgb2Zmc2V0OiBudW1iZXI7IGhhc01vcmU6IGJvb2xlYW4gfT4+KFxuICAgICAgYC9jbGFpbXM/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhITtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgY2xhaW0gYnkgSURcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBjbGFpbSA9IGF3YWl0IGNsYWltcy5nZXQoJ2NsYWltX2FiYzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldChjbGFpbUlkOiBzdHJpbmcpOiBQcm9taXNlPENsYWltPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxDbGFpbT4oYC9jbGFpbXMvJHtjbGFpbUlkfWAsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogVmVyaWZ5IG9yIHJlamVjdCBhIGNsYWltIChodW1hbiBmZWVkYmFjaylcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBDb25maXJtIGEgY2xhaW1cbiAgICogYXdhaXQgY2xhaW1zLnZlcmlmeSgnY2xhaW1fYWJjMTIzJywge1xuICAgKiAgIHZlcmRpY3Q6ICdjb25maXJtZWQnLFxuICAgKiAgIG5vdGVzOiAnVmVyaWZpZWQgYWdhaW5zdCB0aWNrZXQgaGlzdG9yeScsXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBSZWplY3QgYSBjbGFpbVxuICAgKiBhd2FpdCBjbGFpbXMudmVyaWZ5KCdjbGFpbV9hYmMxMjMnLCB7XG4gICAqICAgdmVyZGljdDogJ3JlamVjdGVkJyxcbiAgICogICBub3RlczogJ0N1c3RvbWVyIGNvbnRleHQgd2FzIG1pc3NpbmcnLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyB2ZXJpZnkoXG4gICAgY2xhaW1JZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHZlcmRpY3Q6ICdjb25maXJtZWQnIHwgJ3JlamVjdGVkJyB8ICdtb2RpZmllZCc7XG4gICAgICBub3Rlcz86IHN0cmluZztcbiAgICAgIG1vZGlmaWVkVGV4dD86IHN0cmluZztcbiAgICB9XG4gICk6IFByb21pc2U8eyBjbGFpbUlkOiBzdHJpbmc7IHZlcmRpY3Q6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvY2xhaW1zLyR7Y2xhaW1JZH0vdmVyaWZ5YCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgICAgYXBpVmVyc2lvbjogJ3YzJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGZhY3RzIHZzIGluZmVyZW5jZXMgc3VtbWFyeVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIFN1bW1hcnkgZm9yIGEgc3BlY2lmaWMgcnVuXG4gICAqIGNvbnN0IHN1bW1hcnkgPSBhd2FpdCBjbGFpbXMuc3VtbWFyeSh7IHJ1bklkOiAncnVuX2FiYzEyMycgfSk7XG4gICAqXG4gICAqIC8vIFN1bW1hcnkgZm9yIG11bHRpcGxlIGFuYWx5c2VzXG4gICAqIGNvbnN0IHN1bW1hcnkgPSBhd2FpdCBjbGFpbXMuc3VtbWFyeSh7XG4gICAqICAgYW5hbHlzaXNJZHM6IFsnYW5hbHlzaXNfMScsICdhbmFseXNpc18yJ10sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHN1bW1hcnkoXG4gICAgb3B0aW9uczogeyBydW5JZD86IHN0cmluZzsgYW5hbHlzaXNJZHM/OiBzdHJpbmdbXSB9ID0ge31cbiAgKTogUHJvbWlzZTxGYWN0c1ZzSW5mZXJlbmNlc1N1bW1hcnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdGlvbnMucnVuSWQpIHBhcmFtcy5zZXQoJ3J1bklkJywgb3B0aW9ucy5ydW5JZCk7XG4gICAgaWYgKG9wdGlvbnMuYW5hbHlzaXNJZHMpIHBhcmFtcy5zZXQoJ2FuYWx5c2lzSWRzJywgb3B0aW9ucy5hbmFseXNpc0lkcy5qb2luKCcsJykpO1xuXG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxGYWN0c1ZzSW5mZXJlbmNlc1N1bW1hcnk+KFxuICAgICAgYC9jbGFpbXMvc3VtbWFyeT8ke3BhcmFtcy50b1N0cmluZygpfWAsXG4gICAgICB7IGFwaVZlcnNpb246ICd2MycgfVxuICAgICk7XG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBjbGFpbSBpcyBhIGZhY3QgKG9ic2VydmVkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWN0KGNsYWltOiBDbGFpbSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnb2JzZXJ2ZWQnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY2xhaW0gaXMgYW4gaW5mZXJlbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0luZmVyZW5jZShjbGFpbTogQ2xhaW0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGNsYWltLmNsYWltVHlwZSA9PT0gJ2luZmVycmVkJztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGNsYWltIGlzIGNvbXB1dGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbXB1dGVkKGNsYWltOiBDbGFpbSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnY29tcHV0ZWQnO1xufVxuXG4vKipcbiAqIEdldCBoaWdoIGNvbmZpZGVuY2UgY2xhaW1zICg+PSB0aHJlc2hvbGQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWdoQ29uZmlkZW5jZUNsYWltcyhcbiAgY2xhaW1zTGlzdDogQ2xhaW1bXSxcbiAgdGhyZXNob2xkOiBudW1iZXIgPSAwLjhcbik6IENsYWltW10ge1xuICByZXR1cm4gY2xhaW1zTGlzdC5maWx0ZXIoKGMpID0+IGMuY29uZmlkZW5jZSA+PSB0aHJlc2hvbGQpO1xufVxuXG4vKipcbiAqIEdyb3VwIGNsYWltcyBieSB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncm91cENsYWltc0J5VHlwZShcbiAgY2xhaW1zTGlzdDogQ2xhaW1bXVxuKTogUmVjb3JkPENsYWltVHlwZSwgQ2xhaW1bXT4ge1xuICByZXR1cm4ge1xuICAgIG9ic2VydmVkOiBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jbGFpbVR5cGUgPT09ICdvYnNlcnZlZCcpLFxuICAgIGluZmVycmVkOiBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jbGFpbVR5cGUgPT09ICdpbmZlcnJlZCcpLFxuICAgIGNvbXB1dGVkOiBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jbGFpbVR5cGUgPT09ICdjb21wdXRlZCcpLFxuICB9O1xufVxuXG4vKipcbiAqIEdyb3VwIGNsYWltcyBieSBjYXRlZ29yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBDbGFpbXNCeUNhdGVnb3J5KFxuICBjbGFpbXNMaXN0OiBDbGFpbVtdXG4pOiBSZWNvcmQ8Q2xhaW1DYXRlZ29yeSwgQ2xhaW1bXT4ge1xuICBjb25zdCBncm91cHM6IFJlY29yZDxDbGFpbUNhdGVnb3J5LCBDbGFpbVtdPiA9IHtcbiAgICBvdXRjb21lOiBbXSxcbiAgICByb290X2NhdXNlOiBbXSxcbiAgICBjdXN0b21lcl9pbXBhY3Q6IFtdLFxuICAgIGNodXJuX3Jpc2s6IFtdLFxuICAgIHJldmVudWVfaW1wYWN0OiBbXSxcbiAgICBxdWFsaXR5OiBbXSxcbiAgICBvdGhlcjogW10sXG4gIH07XG5cbiAgZm9yIChjb25zdCBjbGFpbSBvZiBjbGFpbXNMaXN0KSB7XG4gICAgZ3JvdXBzW2NsYWltLmNsYWltQ2F0ZWdvcnldLnB1c2goY2xhaW0pO1xuICB9XG5cbiAgcmV0dXJuIGdyb3Vwcztcbn1cbiJdfQ==
|