@modelprofile.com/flexharness 13.1.1 → 13.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.flexharness.cachewarm.d.ts +64 -0
- package/dist_ts/classes.flexharness.cachewarm.js +353 -0
- package/dist_ts/classes.flexharness.callbacks.js +2 -1
- package/dist_ts/classes.flexharness.core.d.ts +4 -1
- package/dist_ts/classes.flexharness.core.js +9 -3
- package/dist_ts/classes.flexharness.d.ts +10 -1
- package/dist_ts/classes.flexharness.deletion.js +2 -1
- package/dist_ts/classes.flexharness.js +14 -1
- package/dist_ts/classes.flexharness.lifecycle.js +4 -1
- package/dist_ts/classes.flexharness.prompts.d.ts +1 -1
- package/dist_ts/classes.flexharness.prompts.js +28 -9
- package/dist_ts/classes.flexharness.reversions.d.ts +2 -0
- package/dist_ts/classes.flexharness.reversions.js +7 -2
- package/dist_ts/classes.flexharness.runs.js +25 -3
- package/dist_ts/interfaces.d.ts +89 -1
- package/dist_ts/interfaces.flexharness.d.ts +15 -0
- package/dist_ts/interfaces.js +1 -1
- package/dist_ts/plugins.d.ts +1 -1
- package/dist_ts/plugins.js +1 -1
- package/dist_ts/utils.harnessoptions.d.ts +8 -1
- package/dist_ts/utils.harnessoptions.js +50 -6
- package/dist_ts/utils.json.js +9 -2
- package/dist_ts/utils.sessionpreview.d.ts +3 -3
- package/dist_ts/utils.sessionpreview.js +5 -5
- package/dist_ts_chat_harness/classes.transcript.js +17 -4
- package/dist_ts_chat_harness/functions.mapping.d.ts +1 -0
- package/dist_ts_chat_harness/functions.mapping.js +5 -2
- package/package.json +3 -3
- package/readme.md +27 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.cachewarm.ts +433 -0
- package/ts/classes.flexharness.callbacks.ts +1 -0
- package/ts/classes.flexharness.core.ts +8 -1
- package/ts/classes.flexharness.deletion.ts +1 -0
- package/ts/classes.flexharness.lifecycle.ts +3 -0
- package/ts/classes.flexharness.prompts.ts +25 -6
- package/ts/classes.flexharness.reversions.ts +7 -1
- package/ts/classes.flexharness.runs.ts +20 -2
- package/ts/classes.flexharness.ts +21 -0
- package/ts/interfaces.flexharness.ts +16 -0
- package/ts/interfaces.ts +100 -1
- package/ts/plugins.ts +1 -0
- package/ts/readme.md +27 -0
- package/ts/utils.harnessoptions.ts +74 -5
- package/ts/utils.json.ts +8 -1
- package/ts/utils.sessionpreview.ts +4 -4
- package/ts_chat_harness/classes.transcript.ts +14 -3
- package/ts_chat_harness/functions.mapping.ts +3 -1
- package/ts_chat_harness/readme.md +1 -0
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export interface ICodeSandboxEngine {
|
|
|
74
74
|
export declare const importCodeSandboxEngine: () => Promise<ICodeSandboxEngine>;
|
|
75
75
|
import { AgentEventStoreConflictError, AgentPendingInputQueue, applyAgentEventChange, assertAgentEventChange, assertAttachmentResolver, AgentPendingInputRejectedError, AgentSession, AgentToolCallScheduler, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, isGenerationInModelContext, modelMessagesToAgentEvents, tool, validateAgentEventArchive, validateAgentEventSnapshot, z } from '@modelprofile.com/flexharness-agent';
|
|
76
76
|
export { AgentEventStoreConflictError, AgentPendingInputQueue, applyAgentEventChange, assertAgentEventChange, assertAttachmentResolver, AgentPendingInputRejectedError, AgentSession, AgentToolCallScheduler, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, isGenerationInModelContext, modelMessagesToAgentEvents, tool, validateAgentEventArchive, validateAgentEventSnapshot, z, };
|
|
77
|
-
export type { IAgentAppliedInput, IAgentResolvedAttachment, ISmartAiCacheDispatch, IAgentEventArchive, IAgentEventChange, IAgentContextCompactionOptions, IAgentEventSnapshot, IAgentEventStore, IAgentGenerateResult, IAgentGenerationHandle, IAgentGenerationLease, IAgentRetryEvent, IAgentRunResult, IAgentSession, IAgentSessionOptions, IAgentToolCallUpdateEvent, IAgentToolExecutionOptions, IAgentRuntimeEventPayload, IGenerationBegunEvent, IGenerationExecutionCompletedEvent, IGenerationExecutionStartedEvent, IGenerationOutcomeEvent, IToolExecutionContext, IToolExecutionIntentEvent, IToolJobSnapshot, IToolJobState, IToolJobStore, IToolPermissionRequest, TAgentContextBuilder, TAgentContextCompactor, TAgentEvent, TAgentGenerationOutcome, TAgentModelCallUsage, TAgentModelCallUsageEvent, TAgentObservedModelCallUsage, TAgentRetryReason, TAgentToolCallFinishEvent, TAgentToolExecutionReconciliationOptions, } from '@modelprofile.com/flexharness-agent';
|
|
77
|
+
export type { IAgentAppliedInput, IAgentResolvedAttachment, ISmartAiCacheDispatch, TSmartAiCacheBudgetBasis, IAgentEventArchive, IAgentEventChange, IAgentContextCompactionOptions, IAgentEventSnapshot, IAgentEventStore, IAgentGenerateResult, IAgentGenerationHandle, IAgentGenerationLease, IAgentRetryEvent, IAgentRunResult, IAgentSession, IAgentSessionOptions, IAgentToolCallUpdateEvent, IAgentToolExecutionOptions, IAgentRuntimeEventPayload, IGenerationBegunEvent, IGenerationExecutionCompletedEvent, IGenerationExecutionStartedEvent, IGenerationOutcomeEvent, IToolExecutionContext, IToolExecutionIntentEvent, IToolJobSnapshot, IToolJobState, IToolJobStore, IToolPermissionRequest, TAgentContextBuilder, TAgentContextCompactor, TAgentEvent, TAgentGenerationOutcome, TAgentModelCallUsage, TAgentModelCallUsageEvent, TAgentObservedModelCallUsage, TAgentRetryReason, TAgentToolCallFinishEvent, TAgentToolExecutionReconciliationOptions, } from '@modelprofile.com/flexharness-agent';
|
|
78
78
|
import { getSmartAiCacheWaitMs, isModelLimitError, isModelLimitInfo } from '@modelprofile.com/flexharness-models';
|
|
79
79
|
export { getSmartAiCacheWaitMs, isModelLimitError, isModelLimitInfo };
|
|
80
80
|
export type { IModelLimitInfo } from '@modelprofile.com/flexharness-models';
|
package/dist_ts/plugins.js
CHANGED
|
@@ -26,4 +26,4 @@ import { AgentEventStoreConflictError, AgentPendingInputQueue, applyAgentEventCh
|
|
|
26
26
|
export { AgentEventStoreConflictError, AgentPendingInputQueue, applyAgentEventChange, assertAgentEventChange, assertAttachmentResolver, AgentPendingInputRejectedError, AgentSession, AgentToolCallScheduler, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, isGenerationInModelContext, modelMessagesToAgentEvents, tool, validateAgentEventArchive, validateAgentEventSnapshot, z, };
|
|
27
27
|
import { getSmartAiCacheWaitMs, isModelLimitError, isModelLimitInfo } from '@modelprofile.com/flexharness-models';
|
|
28
28
|
export { getSmartAiCacheWaitMs, isModelLimitError, isModelLimitInfo };
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUV2RCxvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFrRXJEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssSUFBaUMsRUFBRTtJQUM3RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUM5RCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUk7S0FDakYsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFDOUIsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsSUFBSSxFQUNKLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsQ0FBQyxHQUNGLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLElBQUksRUFDSix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLENBQUMsR0FDRixDQUFDO0FBMkNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWxILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IFlexAgentSessionPolicy, IFlexAttachmentResolver, IFlexCallbackLimits, IFlexHarnessOptions, IFlexHarnessStores, IFlexJsonLimits, IFlexPromptQueueLimits, IFlexResultLimits, IFlexReversionLimits, IFlexSlashCommandHandlerRegistration, IFlexSlashCommandTemplateRegistration, IFlexCodeModeLimits, IFlexSubagentDefinition, IFlexToolCatalogOptions, TFlexSlashCommandRegistration } from './interfaces.js';
|
|
1
|
+
import type { IFlexAgentSessionPolicy, IFlexAttachmentResolver, IFlexCacheWarmClock, IFlexCallbackLimits, IFlexHarnessOptions, IFlexHarnessStores, IFlexJsonLimits, IFlexPromptQueueLimits, IFlexResultLimits, IFlexReversionLimits, IFlexSlashCommandHandlerRegistration, IFlexSlashCommandTemplateRegistration, IFlexCodeModeLimits, IFlexSubagentDefinition, IFlexToolCatalogOptions, TFlexSlashCommandRegistration } from './interfaces.js';
|
|
2
2
|
export type TRegisteredSlashCommand<TScope> = Readonly<IFlexSlashCommandTemplateRegistration> | Readonly<IFlexSlashCommandHandlerRegistration<TScope>>;
|
|
3
3
|
export interface INormalizedProjectManagementTools {
|
|
4
4
|
readonly task: boolean;
|
|
@@ -8,6 +8,12 @@ export interface INormalizedProjectManagementTools {
|
|
|
8
8
|
export interface INormalizedBuiltInTools {
|
|
9
9
|
readonly renameSession: boolean;
|
|
10
10
|
readonly projectManagement?: INormalizedProjectManagementTools;
|
|
11
|
+
readonly cacheWarm: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface INormalizedCacheWarmOptions {
|
|
14
|
+
readonly maxDurationMs: number;
|
|
15
|
+
readonly maxOutputTokens: number;
|
|
16
|
+
readonly clock: IFlexCacheWarmClock;
|
|
11
17
|
}
|
|
12
18
|
export declare const maxSubagentNameBytes = 128;
|
|
13
19
|
export declare function normalizeAllowedTools(names: readonly string[] | undefined, label?: string): readonly string[] | undefined;
|
|
@@ -22,6 +28,7 @@ export interface INormalizedToolCatalogOptions {
|
|
|
22
28
|
export declare function normalizeToolCatalogOptions(options: IFlexToolCatalogOptions | undefined): INormalizedToolCatalogOptions;
|
|
23
29
|
export declare function normalizeBuiltInTools(options: IFlexHarnessOptions<unknown>['builtInTools']): INormalizedBuiltInTools;
|
|
24
30
|
export declare function normalizeSlashCommands<TScope>(registrations: readonly TFlexSlashCommandRegistration<TScope>[] | undefined): ReadonlyMap<string, TRegisteredSlashCommand<TScope>>;
|
|
31
|
+
export declare function normalizeCacheWarmOptions(input: IFlexHarnessOptions<unknown>['cacheWarm']): INormalizedCacheWarmOptions;
|
|
25
32
|
export declare function resolveBoundedPositiveInteger(value: number | undefined, name: string, defaultValue: number, maximum: number): number;
|
|
26
33
|
export declare function resolveReversionMaintenanceTimeoutMs<TScope>(options: IFlexHarnessOptions<TScope>): number;
|
|
27
34
|
export declare function resolveCallbackLimits(limits?: IFlexCallbackLimits): Required<IFlexCallbackLimits>;
|
|
@@ -3,6 +3,11 @@ import * as plugins from './plugins.js';
|
|
|
3
3
|
import { FLEX_CODE_MODE_DEFAULT_LIMITS, FLEX_CODE_MODE_MAXIMUM_LIMITS, FLEX_RESULT_LIMITS, FLEX_REVERSION_DEFAULT_LIMITS, FLEX_TOOL_CATALOG_DEFAULT_OUTPUT_TYPE_DEPTH, FLEX_TOOL_CATALOG_LIMITS, FLEX_REVERSION_MAXIMUM_LIMITS, } from './interfaces.js';
|
|
4
4
|
import { FLEX_SLASH_COMMAND_MAX_INPUT_BYTES, isReservedSlashCommandName, isValidSlashCommandName, } from './utils.slashcommands.js';
|
|
5
5
|
import { validateUtf8String } from './utils.validation.js';
|
|
6
|
+
const defaultCacheWarmMaxDurationMs = 4 * 60 * 60 * 1000;
|
|
7
|
+
// One call warms for at most a day; a host extends it by calling again.
|
|
8
|
+
const maximumCacheWarmMaxDurationMs = 24 * 60 * 60 * 1000;
|
|
9
|
+
const defaultCacheWarmMaxOutputTokens = 1024;
|
|
10
|
+
const maximumCacheWarmMaxOutputTokens = 32_768;
|
|
6
11
|
const DEFAULT_CALLBACK_LIMITS = {
|
|
7
12
|
maxEvents: 10_000,
|
|
8
13
|
maxOutputBytes: 1024 * 1024,
|
|
@@ -158,7 +163,7 @@ function normalizeCodeModeLimits(codeMode) {
|
|
|
158
163
|
}
|
|
159
164
|
export function normalizeBuiltInTools(options) {
|
|
160
165
|
if (options === undefined)
|
|
161
|
-
return Object.freeze({ renameSession: false });
|
|
166
|
+
return Object.freeze({ renameSession: false, cacheWarm: false });
|
|
162
167
|
if (!options
|
|
163
168
|
|| typeof options !== 'object'
|
|
164
169
|
|| Array.isArray(options)
|
|
@@ -166,15 +171,20 @@ export function normalizeBuiltInTools(options) {
|
|
|
166
171
|
throw new FlexHarnessValidationError('builtInTools must be a plain object.');
|
|
167
172
|
}
|
|
168
173
|
const unsupported = Object.keys(options)
|
|
169
|
-
.find((key) => !['renameSession', 'projectManagement'].includes(key));
|
|
174
|
+
.find((key) => !['renameSession', 'projectManagement', 'cacheWarm'].includes(key));
|
|
170
175
|
if (unsupported)
|
|
171
176
|
throw new FlexHarnessValidationError(`builtInTools does not support "${unsupported}".`);
|
|
172
|
-
|
|
173
|
-
|
|
177
|
+
for (const key of ['renameSession', 'cacheWarm']) {
|
|
178
|
+
if (options[key] !== undefined && typeof options[key] !== 'boolean') {
|
|
179
|
+
throw new FlexHarnessValidationError(`builtInTools.${key} must be a boolean.`);
|
|
180
|
+
}
|
|
174
181
|
}
|
|
175
182
|
const projectManagement = options.projectManagement;
|
|
176
183
|
if (projectManagement === undefined) {
|
|
177
|
-
return Object.freeze({
|
|
184
|
+
return Object.freeze({
|
|
185
|
+
renameSession: options.renameSession ?? false,
|
|
186
|
+
cacheWarm: options.cacheWarm ?? false,
|
|
187
|
+
});
|
|
178
188
|
}
|
|
179
189
|
if (!projectManagement
|
|
180
190
|
|| typeof projectManagement !== 'object'
|
|
@@ -194,6 +204,7 @@ export function normalizeBuiltInTools(options) {
|
|
|
194
204
|
}
|
|
195
205
|
return Object.freeze({
|
|
196
206
|
renameSession: options.renameSession ?? false,
|
|
207
|
+
cacheWarm: options.cacheWarm ?? false,
|
|
197
208
|
projectManagement: Object.freeze({
|
|
198
209
|
task: projectManagement.task ?? true,
|
|
199
210
|
goal: projectManagement.goal ?? true,
|
|
@@ -265,6 +276,39 @@ export function normalizeSlashCommands(registrations) {
|
|
|
265
276
|
}
|
|
266
277
|
return Object.freeze(normalized);
|
|
267
278
|
}
|
|
279
|
+
const systemCacheWarmClock = Object.freeze({
|
|
280
|
+
now: () => Date.now(),
|
|
281
|
+
setTimeout: (callback, delayMs) => {
|
|
282
|
+
const handle = setTimeout(callback, delayMs);
|
|
283
|
+
// A warm period never holds the process open.
|
|
284
|
+
handle.unref?.();
|
|
285
|
+
return handle;
|
|
286
|
+
},
|
|
287
|
+
clearTimeout: (handle) => clearTimeout(handle),
|
|
288
|
+
});
|
|
289
|
+
export function normalizeCacheWarmOptions(input) {
|
|
290
|
+
if (input !== undefined && !isPlainOptions(input)) {
|
|
291
|
+
throw new FlexHarnessValidationError('cacheWarm must be a plain object.');
|
|
292
|
+
}
|
|
293
|
+
const options = input ?? {};
|
|
294
|
+
const unsupported = Object.keys(options)
|
|
295
|
+
.find((key) => !['maxDurationMs', 'maxOutputTokens', 'clock'].includes(key));
|
|
296
|
+
if (unsupported)
|
|
297
|
+
throw new FlexHarnessValidationError(`cacheWarm does not support "${unsupported}".`);
|
|
298
|
+
const clock = options.clock ?? systemCacheWarmClock;
|
|
299
|
+
if (!clock
|
|
300
|
+
|| typeof clock !== 'object'
|
|
301
|
+
|| typeof clock.now !== 'function'
|
|
302
|
+
|| typeof clock.setTimeout !== 'function'
|
|
303
|
+
|| typeof clock.clearTimeout !== 'function') {
|
|
304
|
+
throw new FlexHarnessValidationError('cacheWarm.clock must provide now, setTimeout and clearTimeout.');
|
|
305
|
+
}
|
|
306
|
+
return Object.freeze({
|
|
307
|
+
maxDurationMs: resolveBoundedPositiveInteger(options.maxDurationMs, 'cacheWarm.maxDurationMs', defaultCacheWarmMaxDurationMs, maximumCacheWarmMaxDurationMs),
|
|
308
|
+
maxOutputTokens: resolveBoundedPositiveInteger(options.maxOutputTokens, 'cacheWarm.maxOutputTokens', defaultCacheWarmMaxOutputTokens, maximumCacheWarmMaxOutputTokens),
|
|
309
|
+
clock,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
268
312
|
export function resolveBoundedPositiveInteger(value, name, defaultValue, maximum) {
|
|
269
313
|
const resolved = value ?? defaultValue;
|
|
270
314
|
if (!Number.isSafeInteger(resolved) || resolved < 1 || resolved > maximum) {
|
|
@@ -384,4 +428,4 @@ export function requireHarnessStores(stores) {
|
|
|
384
428
|
}
|
|
385
429
|
return stores;
|
|
386
430
|
}
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuaGFybmVzc29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91dGlscy5oYXJuZXNzb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLDZCQUE2QixFQUM3QiwyQ0FBMkMsRUFDM0Msd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUM5QixNQUFNLGlCQUFpQixDQUFDO0FBa0J6QixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQix1QkFBdUIsR0FDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWlCM0QsTUFBTSx1QkFBdUIsR0FBa0M7SUFDN0QsU0FBUyxFQUFFLE1BQU07SUFDakIsY0FBYyxFQUFFLElBQUksR0FBRyxJQUFJO0lBQzNCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUM7QUFDRixNQUFNLDJCQUEyQixHQUFxQztJQUNwRSwrQkFBK0IsRUFBRSxFQUFFO0lBQ25DLDZCQUE2QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMvQyxvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLHdCQUF3QixFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMzQyw0QkFBNEIsRUFBRSxFQUFFO0NBQ2pDLENBQUM7QUFDRixNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDeEMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUM7QUFDekMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFDdEMsTUFBTSxz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
|
|
431
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuaGFybmVzc29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91dGlscy5oYXJuZXNzb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLDZCQUE2QixFQUM3QiwyQ0FBMkMsRUFDM0Msd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUM5QixNQUFNLGlCQUFpQixDQUFDO0FBb0J6QixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQix1QkFBdUIsR0FDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQXdCM0QsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDekQsd0VBQXdFO0FBQ3hFLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQzFELE1BQU0sK0JBQStCLEdBQUcsSUFBSSxDQUFDO0FBQzdDLE1BQU0sK0JBQStCLEdBQUcsTUFBTSxDQUFDO0FBRS9DLE1BQU0sdUJBQXVCLEdBQWtDO0lBQzdELFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUMzQixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDO0FBQ0YsTUFBTSwyQkFBMkIsR0FBcUM7SUFDcEUsK0JBQStCLEVBQUUsRUFBRTtJQUNuQyw2QkFBNkIsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDL0Msb0JBQW9CLEVBQUUsRUFBRTtJQUN4Qix3QkFBd0IsRUFBRSxHQUFHLEdB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
|