@modelprofile.com/flexharness 9.7.0 → 9.9.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.d.ts +1 -0
- package/dist_ts/classes.flexharness.js +115 -8
- package/dist_ts/interfaces.d.ts +23 -1
- package/dist_ts/interfaces.js +1 -1
- package/dist_ts/utils.harnessoptions.d.ts +1 -0
- package/dist_ts/utils.harnessoptions.js +30 -2
- package/dist_ts_document/index.d.ts +67 -2
- package/dist_ts_document/index.js +203 -21
- package/dist_ts_document/plugins.d.ts +35 -0
- package/dist_ts_document/plugins.js +6 -1
- package/package.json +7 -3
- package/readme.md +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.ts +128 -7
- package/ts/interfaces.ts +26 -0
- package/ts/readme.md +1 -1
- package/ts/utils.harnessoptions.ts +31 -1
- package/ts_document/index.ts +310 -22
- package/ts_document/plugins.ts +35 -0
- package/ts_document/readme.md +39 -2
package/dist_ts/interfaces.d.ts
CHANGED
|
@@ -424,8 +424,22 @@ export interface IFlexPermissionRequest extends IFlexPermissionRequestInput, IFl
|
|
|
424
424
|
sessionId: string;
|
|
425
425
|
runId: string;
|
|
426
426
|
createdAt: string;
|
|
427
|
+
/** A bound policy requires an explicit response and disallows remembered approval. */
|
|
428
|
+
requiresExplicitResponse?: true;
|
|
427
429
|
}
|
|
428
430
|
export type TFlexPermissionDecision = 'once' | 'always' | 'reject';
|
|
431
|
+
export type TFlexSessionPermissionPolicyDecision = 'inherit' | 'allow' | 'ask' | 'deny';
|
|
432
|
+
export interface IFlexSessionPermissionPolicyContext<TScope> extends IFlexSessionGeneration {
|
|
433
|
+
readonly scopeId: string;
|
|
434
|
+
readonly scope: TScope;
|
|
435
|
+
readonly storageKey: string;
|
|
436
|
+
readonly sessionId: string;
|
|
437
|
+
readonly runId: string;
|
|
438
|
+
readonly configurationRef: string;
|
|
439
|
+
readonly agent?: string;
|
|
440
|
+
readonly request: Readonly<IFlexPermissionRequest>;
|
|
441
|
+
readonly signal: AbortSignal;
|
|
442
|
+
}
|
|
429
443
|
export interface IFlexToolProviderContext<TScope> extends IFlexSessionGeneration {
|
|
430
444
|
scopeId: string;
|
|
431
445
|
scope: TScope;
|
|
@@ -602,6 +616,10 @@ export interface IFlexSessionConfigurationResolverContext<TScope> extends IFlexS
|
|
|
602
616
|
export interface IFlexResolvedSessionConfiguration<TScope> {
|
|
603
617
|
subagents?: readonly IFlexSubagentDefinition[];
|
|
604
618
|
slashCommands?: readonly TFlexSlashCommandRegistration<TScope>[];
|
|
619
|
+
/** Exact model-facing names permitted for this bound session; omitted means unrestricted. */
|
|
620
|
+
allowedTools?: readonly string[];
|
|
621
|
+
/** Evaluated for each request before a remembered grant can be reused. */
|
|
622
|
+
permissionPolicy?: (context: IFlexSessionPermissionPolicyContext<TScope>) => TFlexSessionPermissionPolicyDecision | Promise<TFlexSessionPermissionPolicyDecision>;
|
|
605
623
|
}
|
|
606
624
|
export interface IFlexSessionConfigurationResolver<TScope> {
|
|
607
625
|
resolveSessionConfiguration(context: IFlexSessionConfigurationResolverContext<TScope>): Promise<IFlexResolvedSessionConfiguration<TScope>> | IFlexResolvedSessionConfiguration<TScope>;
|
|
@@ -861,7 +879,7 @@ export interface IFlexUndoSessionResult {
|
|
|
861
879
|
export interface IFlexRedoSessionResult {
|
|
862
880
|
restoredRunId: string;
|
|
863
881
|
}
|
|
864
|
-
export type TFlexExternalErrorSource = 'modelResolver' | 'sessionConfigurationResolver' | 'toolProvider' | 'delegatedRunAdmissionProvider' | 'toolExecution' | 'toolCallback' | 'toolCleanup' | 'agentSession' | 'persistence' | 'slashCommand' | 'turnReversion';
|
|
882
|
+
export type TFlexExternalErrorSource = 'modelResolver' | 'sessionConfigurationResolver' | 'permissionPolicy' | 'toolProvider' | 'delegatedRunAdmissionProvider' | 'toolExecution' | 'toolCallback' | 'toolCleanup' | 'agentSession' | 'persistence' | 'slashCommand' | 'turnReversion';
|
|
865
883
|
export interface IFlexExternalErrorContext {
|
|
866
884
|
source: TFlexExternalErrorSource;
|
|
867
885
|
scopeId: string;
|
|
@@ -957,6 +975,8 @@ export interface IFlexSubagentDefinition {
|
|
|
957
975
|
modelHint?: string;
|
|
958
976
|
system?: string;
|
|
959
977
|
maxSteps?: number;
|
|
978
|
+
/** Exact model-facing names permitted for this agent; omitted means unrestricted. */
|
|
979
|
+
allowedTools?: readonly string[];
|
|
960
980
|
}
|
|
961
981
|
export interface IFlexProjectManagementBuiltInToolsOptions {
|
|
962
982
|
task?: boolean;
|
|
@@ -1088,6 +1108,8 @@ export interface IFlexPermissionResolvedEvent extends IFlexEventBase {
|
|
|
1088
1108
|
readonly runId: string;
|
|
1089
1109
|
readonly request: IFlexPermissionRequest;
|
|
1090
1110
|
readonly decision: TFlexPermissionDecision;
|
|
1111
|
+
/** Present when a bound policy resolved the request without making it pending. */
|
|
1112
|
+
readonly origin?: 'policy';
|
|
1091
1113
|
}
|
|
1092
1114
|
export interface IFlexRunFinishedEvent extends IFlexEventBase {
|
|
1093
1115
|
readonly type: 'run.finished';
|
package/dist_ts/interfaces.js
CHANGED
|
@@ -46,4 +46,4 @@ export const FLEX_REVERSION_MAX_AFFECTED_WORKSPACES = 64;
|
|
|
46
46
|
export const FLEX_REVERSION_WORKSPACE_ID_MAX_BYTES = 512;
|
|
47
47
|
export const FLEX_REVERSION_WORKSPACE_LABEL_MAX_BYTES = 2048;
|
|
48
48
|
export const FLEX_REVERSION_REASON_CODE_MAX_BYTES = 128;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbVJBLHlGQUF5RjtBQUN6RixNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUQsY0FBYyxFQUFFLENBQUM7SUFDakIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixlQUFlLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2pDLFlBQVksRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUN6Qix5QkFBeUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUk7Q0FDekMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM5RCxjQUFjLEVBQUUsRUFBRTtJQUNsQixxQkFBcUIsRUFBRSxNQUFNO0lBQzdCLGVBQWUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDbEMsWUFBWSxFQUFFLElBQUksR0FBRyxJQUFJO0lBQ3pCLHlCQUF5QixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUMxQyxDQUFDLENBQUM7QUFnY0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsQ0FBVSxDQUFDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSwwQ0FBMEMsR0FBRyxJQUFJLENBQUM7QUFPL0QsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQUcsSUFBSSxDQUFDO0FBeUQ3RCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzFELFlBQVksRUFBRSxDQUFDLEdBQUcsSUFBSTtJQUN0QixrQkFBa0IsRUFBRSxHQUFHLEdBQUcsSUFBSTtJQUM5QixtQkFBbUIsRUFBRSxDQUFDLEdBQUcsSUFBSTtJQUM3QixjQUFjLEVBQUUsR0FBRztJQUNuQixRQUFRLEVBQUUsR0FBRztJQUNiLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGdCQUFnQixFQUFFLElBQUksR0FBRyxJQUFJO0NBQzlCLENBQUMsQ0FBQztBQStMSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3pELGlCQUFpQixFQUFFLEdBQUc7SUFDdEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QiwyQkFBMkIsRUFBRSxJQUFJO0NBQ2xDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekQsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixXQUFXLEVBQUUsSUFBSTtJQUNqQixpQkFBaUIsRUFBRSxNQUFNO0lBQ3pCLDJCQUEyQixFQUFFLE1BQU07Q0FDcEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxFQUFFLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsR0FBRyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLElBQUksQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxHQUFHLENBQUMifQ==
|
|
@@ -10,6 +10,7 @@ export interface INormalizedBuiltInTools {
|
|
|
10
10
|
readonly projectManagement?: INormalizedProjectManagementTools;
|
|
11
11
|
}
|
|
12
12
|
export declare const maxSubagentNameBytes = 128;
|
|
13
|
+
export declare function normalizeAllowedTools(names: readonly string[] | undefined, label?: string): readonly string[] | undefined;
|
|
13
14
|
export declare function normalizeSubagents(definitions: readonly IFlexSubagentDefinition[] | undefined): ReadonlyMap<string, Readonly<IFlexSubagentDefinition>>;
|
|
14
15
|
export declare function normalizeBuiltInTools(options: IFlexHarnessOptions<unknown>['builtInTools']): INormalizedBuiltInTools;
|
|
15
16
|
export declare function normalizeSlashCommands<TScope>(registrations: readonly TFlexSlashCommandRegistration<TScope>[] | undefined): ReadonlyMap<string, TRegisteredSlashCommand<TScope>>;
|
|
@@ -19,11 +19,36 @@ export const maxSubagentNameBytes = 128;
|
|
|
19
19
|
const maxSubagentDescriptionBytes = 2048;
|
|
20
20
|
const maxSubagentModelHintBytes = 512;
|
|
21
21
|
const maxSubagentSystemBytes = 64 * 1024;
|
|
22
|
+
const maxAllowedToolNames = 128;
|
|
23
|
+
const maxAllowedToolNameBytes = 512;
|
|
24
|
+
const toolNameControlPattern = /[\u0000-\u001f\u007f-\u009f]/u;
|
|
25
|
+
const toolNameUnpairedSurrogatePattern = /[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;
|
|
22
26
|
const maxSlashCommandRegistrations = 128;
|
|
23
27
|
const maxSlashCommandDescriptionBytes = 2048;
|
|
24
28
|
const maxSlashCommandTemplateBytes = FLEX_SLASH_COMMAND_MAX_INPUT_BYTES;
|
|
25
29
|
const defaultReversionMaintenanceTimeoutMs = 30_000;
|
|
26
30
|
const maximumReversionMaintenanceTimeoutMs = 30 * 60 * 1000;
|
|
31
|
+
export function normalizeAllowedTools(names, label = 'allowedTools') {
|
|
32
|
+
if (names === undefined)
|
|
33
|
+
return undefined;
|
|
34
|
+
if (!Array.isArray(names) || names.length > maxAllowedToolNames) {
|
|
35
|
+
throw new FlexHarnessValidationError(`${label} must be an array with at most ${maxAllowedToolNames} names.`);
|
|
36
|
+
}
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
const normalized = [];
|
|
39
|
+
for (let index = 0; index < names.length; index++) {
|
|
40
|
+
const name = names[index];
|
|
41
|
+
validateUtf8String(name, `${label}[${index}]`, maxAllowedToolNameBytes, true);
|
|
42
|
+
if (toolNameControlPattern.test(name) || toolNameUnpairedSurrogatePattern.test(name)) {
|
|
43
|
+
throw new FlexHarnessValidationError(`${label}[${index}] must be a well-formed name without control characters.`);
|
|
44
|
+
}
|
|
45
|
+
if (seen.has(name))
|
|
46
|
+
throw new FlexHarnessValidationError(`${label} contains duplicate name "${name}".`);
|
|
47
|
+
seen.add(name);
|
|
48
|
+
normalized.push(name);
|
|
49
|
+
}
|
|
50
|
+
return Object.freeze(normalized);
|
|
51
|
+
}
|
|
27
52
|
export function normalizeSubagents(definitions) {
|
|
28
53
|
if (definitions === undefined)
|
|
29
54
|
return new Map();
|
|
@@ -39,7 +64,7 @@ export function normalizeSubagents(definitions) {
|
|
|
39
64
|
|| ![Object.prototype, null].includes(Object.getPrototypeOf(definition))) {
|
|
40
65
|
throw new FlexHarnessValidationError(`subagents[${index}] must be a plain object.`);
|
|
41
66
|
}
|
|
42
|
-
const unsupported = Object.keys(definition).find((key) => !['name', 'description', 'modelHint', 'system', 'maxSteps'].includes(key));
|
|
67
|
+
const unsupported = Object.keys(definition).find((key) => !['name', 'description', 'modelHint', 'system', 'maxSteps', 'allowedTools'].includes(key));
|
|
43
68
|
if (unsupported) {
|
|
44
69
|
throw new FlexHarnessValidationError(`subagents[${index}] does not support "${unsupported}".`);
|
|
45
70
|
}
|
|
@@ -64,6 +89,9 @@ export function normalizeSubagents(definitions) {
|
|
|
64
89
|
...(definition.modelHint === undefined ? {} : { modelHint: definition.modelHint }),
|
|
65
90
|
...(definition.system === undefined ? {} : { system: definition.system }),
|
|
66
91
|
...(definition.maxSteps === undefined ? {} : { maxSteps: definition.maxSteps }),
|
|
92
|
+
...(definition.allowedTools === undefined ? {} : {
|
|
93
|
+
allowedTools: normalizeAllowedTools(definition.allowedTools, `subagents[${index}].allowedTools`),
|
|
94
|
+
}),
|
|
67
95
|
}));
|
|
68
96
|
}
|
|
69
97
|
return Object.freeze(normalized);
|
|
@@ -270,4 +298,4 @@ export function requireHarnessStores(stores) {
|
|
|
270
298
|
}
|
|
271
299
|
return stores;
|
|
272
300
|
}
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuaGFybmVzc29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91dGlscy5oYXJuZXNzb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsR0FDOUIsTUFBTSxpQkFBaUIsQ0FBQztBQWF6QixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQix1QkFBdUIsR0FDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWlCM0QsTUFBTSx1QkFBdUIsR0FBa0M7SUFDN0QsU0FBUyxFQUFFLE1BQU07SUFDakIsY0FBYyxFQUFFLElBQUksR0FBRyxJQUFJO0lBQzNCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUM7QUFDRixNQUFNLDJCQUEyQixHQUFxQztJQUNwRSwrQkFBK0IsRUFBRSxFQUFFO0lBQ25DLDZCQUE2QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMvQyxvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLHdCQUF3QixFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMzQyw0QkFBNEIsRUFBRSxFQUFFO0NBQ2pDLENBQUM7QUFDRixNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDeEMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUM7QUFDekMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxDQUFDO0FBQ3pDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxDQUFDO0FBQzdD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
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuaGFybmVzc29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91dGlscy5oYXJuZXNzb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsR0FDOUIsTUFBTSxpQkFBaUIsQ0FBQztBQWF6QixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQix1QkFBdUIsR0FDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWlCM0QsTUFBTSx1QkFBdUIsR0FBa0M7SUFDN0QsU0FBUyxFQUFFLE1BQU07SUFDakIsY0FBYyxFQUFFLElBQUksR0FBRyxJQUFJO0lBQzNCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUM7QUFDRixNQUFNLDJCQUEyQixHQUFxQztJQUNwRSwrQkFBK0IsRUFBRSxFQUFFO0lBQ25DLDZCQUE2QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMvQyxvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLHdCQUF3QixFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMzQyw0QkFBNEIsRUFBRSxFQUFFO0NBQ2pDLENBQUM7QUFDRixNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDeEMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUM7QUFDekMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsK0JBQStCLENBQUM7QUFDL0QsTUFBTSxnQ0FBZ0MsR0FBRyx5RUFBeUUsQ0FBQztBQUNuSCxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQztBQUN6QyxNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQztBQUM3QyxNQUFNLDRCQUE0QixHQUFHLGtDQUFrQyxDQUFDO0FBQ3hFLE1BQU0sb0NBQW9DLEdBQUcsTUFBTSxDQUFDO0FBQ3BELE1BQU0sb0NBQW9DLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFNUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxLQUFvQyxFQUNwQyxLQUFLLEdBQUcsY0FBYztJQUV0QixJQUFJLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLEtBQUssa0NBQWtDLG1CQUFtQixTQUFTLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMvQixNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEtBQUssR0FBRyxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JGLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLDBEQUEwRCxDQUFDLENBQUM7UUFDcEgsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFBRSxNQUFNLElBQUksMEJBQTBCLENBQUMsR0FBRyxLQUFLLDZCQUE2QixJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsV0FBMkQ7SUFFM0QsSUFBSSxXQUFXLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDL0UsTUFBTSxJQUFJLDBCQUEwQixDQUNsQywyQ0FBMkMsc0JBQXNCLGVBQWUsQ0FDakYsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBNkMsQ0FBQztJQUN4RSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxJQUNFLENBQUMsVUFBVTtlQUNSLE9BQU8sVUFBVSxLQUFLLFFBQVE7ZUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7ZUFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsRUFDeEUsQ0FBQztZQUNELE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxhQUFhLEtBQUssMkJBQTJCLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQ25HLENBQUM7UUFDRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxhQUFhLEtBQUssdUJBQXVCLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDakcsQ0FBQztRQUNELGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxLQUFLLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RixrQkFBa0IsQ0FDaEIsVUFBVSxDQUFDLFdBQVcsRUFDdEIsYUFBYSxLQUFLLGVBQWUsRUFDakMsMkJBQTJCLENBQzVCLENBQUM7UUFDRixJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsa0JBQWtCLENBQ2hCLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLGFBQWEsS0FBSyxhQUFhLEVBQy9CLHlCQUF5QixDQUMxQixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxrQkFBa0IsQ0FDaEIsVUFBVSxDQUFDLE1BQU0sRUFDakIsYUFBYSxLQUFLLFVBQVUsRUFDNUIsc0JBQXNCLENBQ3ZCLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFDRSxVQUFVLENBQUMsUUFBUSxLQUFLLFNBQVM7ZUFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQzFFLENBQUM7WUFDRCxNQUFNLElBQUksMEJBQTBCLENBQUMsYUFBYSxLQUFLLHdDQUF3QyxDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksMEJBQTBCLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ25DLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEYsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6RSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9FLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0MsWUFBWSxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxLQUFLLGdCQUFnQixDQUFDO2FBQ2pHLENBQUM7U0FDSCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsT0FBcUQ7SUFFckQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLElBQ0UsQ0FBQyxPQUFPO1dBQ0wsT0FBTyxPQUFPLEtBQUssUUFBUTtXQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztXQUN0QixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNyRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLDBCQUEwQixDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3JDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksV0FBVztRQUFFLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxrQ0FBa0MsV0FBVyxJQUFJLENBQUMsQ0FBQztJQUN6RyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLE9BQU8sT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0RixNQUFNLElBQUksMEJBQTBCLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7SUFDcEQsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxJQUNFLENBQUMsaUJBQWlCO1dBQ2YsT0FBTyxpQkFBaUIsS0FBSyxRQUFRO1dBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7V0FDaEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUMvRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLDBCQUEwQixDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUNELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUM1RCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksMEJBQTBCLENBQ2xDLG9EQUFvRCx3QkFBd0IsSUFBSSxDQUNqRixDQUFDO0lBQ0osQ0FBQztJQUNELEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBVSxFQUFFLENBQUM7UUFDMUQsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLElBQUksT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4RixNQUFNLElBQUksMEJBQTBCLENBQUMsa0NBQWtDLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUNuRyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQixhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSxLQUFLO1FBQzdDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksSUFBSSxJQUFJO1lBQ3BDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLElBQUksSUFBSTtZQUNwQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsVUFBVSxJQUFJLElBQUk7U0FDakQsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGFBQTJFO0lBRTNFLElBQUksYUFBYSxLQUFLLFNBQVM7UUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sSUFBSSwwQkFBMEIsQ0FDbEMsK0NBQStDLDRCQUE0QixpQkFBaUIsQ0FDN0YsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBMkMsQ0FBQztJQUN0RSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzFELE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUNFLENBQUMsWUFBWTtlQUNWLE9BQU8sWUFBWSxLQUFLLFFBQVE7ZUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7ZUFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDMUUsQ0FBQztZQUNELE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxpQkFBaUIsS0FBSywyQkFBMkIsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRixNQUFNLFNBQVMsR0FBRyxXQUFXO1lBQzNCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlDLE1BQU0sSUFBSSwwQkFBMEIsQ0FDbEMsaUJBQWlCLEtBQUssbURBQW1ELENBQzFFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxPQUFPLFlBQVksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekYsTUFBTSxJQUFJLDBCQUEwQixDQUFDLGlCQUFpQixLQUFLLG9CQUFvQixDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUNELElBQUksMEJBQTBCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLDBCQUEwQixDQUNsQyxrQkFBa0IsWUFBWSxDQUFDLElBQUksZ0JBQWdCLENBQ3BELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyw0QkFBNEIsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQyxrQkFBa0IsQ0FDaEIsWUFBWSxDQUFDLFdBQVcsRUFDeEIsaUJBQWlCLEtBQUssZUFBZSxFQUNyQywrQkFBK0IsRUFDL0IsSUFBSSxDQUNMLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3ZDLGtCQUFrQixDQUNoQixRQUFRLEVBQ1IsaUJBQWlCLEtBQUssWUFBWSxFQUNsQyw0QkFBNEIsRUFDNUIsSUFBSSxDQUNMLENBQUM7WUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUN2QixHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsS0FBSyxTQUFTO29CQUN4QyxDQUFDLENBQUMsRUFBRTtvQkFDSixDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxRQUFRO2FBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDckMsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxJQUFJLDBCQUEwQixDQUFDLGlCQUFpQixLQUFLLCtCQUErQixDQUFDLENBQUM7WUFDOUYsQ0FBQztZQUNELFVBQVUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUM5QyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7Z0JBQ3ZCLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxLQUFLLFNBQVM7b0JBQ3hDLENBQUMsQ0FBQyxFQUFFO29CQUNKLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzlDLE9BQU87YUFDUixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLEtBQXlCLEVBQ3pCLElBQVksRUFDWixZQUFvQixFQUNwQixPQUFlO0lBRWYsTUFBTSxRQUFRLEdBQUcsS0FBSyxJQUFJLFlBQVksQ0FBQztJQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxJQUFJLFFBQVEsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMxRSxNQUFNLElBQUksMEJBQTBCLENBQUMsR0FBRyxJQUFJLHNDQUFzQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxPQUFvQztJQUVwQyxPQUFPLDZCQUE2QixDQUNsQyxPQUFPLENBQUMsNkJBQTZCO1dBQ2hDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSwrQkFBK0IsRUFDaEUsK0JBQStCLEVBQy9CLG9DQUFvQyxFQUNwQyxvQ0FBb0MsQ0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsU0FBOEIsRUFBRTtJQUNwRSxNQUFNLFFBQVEsR0FBRztRQUNmLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLHVCQUF1QixDQUFDLFNBQVM7UUFDaEUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksdUJBQXVCLENBQUMsY0FBYztRQUMvRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSx1QkFBdUIsQ0FBQyxRQUFRO0tBQzlELENBQUM7SUFDRixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLElBQUksMEJBQTBCLENBQUMsa0JBQWtCLElBQUksOEJBQThCLENBQUMsQ0FBQztRQUM3RixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFNBQWlDLEVBQUU7SUFFbkMsTUFBTSxRQUFRLEdBQUc7UUFDZiwrQkFBK0IsRUFBRSxNQUFNLENBQUMsK0JBQStCO2VBQ2xFLDJCQUEyQixDQUFDLCtCQUErQjtRQUNoRSw2QkFBNkIsRUFBRSxNQUFNLENBQUMsNkJBQTZCO2VBQzlELDJCQUEyQixDQUFDLDZCQUE2QjtRQUM5RCxvQkFBb0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CO2VBQzVDLDJCQUEyQixDQUFDLG9CQUFvQjtRQUNyRCx3QkFBd0IsRUFBRSxNQUFNLENBQUMsd0JBQXdCO2VBQ3BELDJCQUEyQixDQUFDLHdCQUF3QjtRQUN6RCw0QkFBNEIsRUFBRSxNQUFNLENBQUMsNEJBQTRCO2VBQzVELDJCQUEyQixDQUFDLDRCQUE0QjtLQUM5RCxDQUFDO0lBQ0YsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLDBCQUEwQixDQUFDLHFCQUFxQixJQUFJLDhCQUE4QixDQUFDLENBQUM7UUFDaEcsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUErQixFQUFFO0lBRWpDLE1BQU0sUUFBUSxHQUFHO1FBQ2YsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixJQUFJLDZCQUE2QixDQUFDLGlCQUFpQjtRQUM5RixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSw2QkFBNkIsQ0FBQyxXQUFXO1FBQzVFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSw2QkFBNkIsQ0FBQyxpQkFBaUI7UUFDOUYsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLDJCQUEyQjtlQUMxRCw2QkFBNkIsQ0FBQywyQkFBMkI7S0FDL0QsQ0FBQztJQUNGLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsNkJBQTZCLENBQUMsSUFBa0MsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQ2pFLE1BQU0sSUFBSSwwQkFBMEIsQ0FDbEMsbUJBQW1CLElBQUksc0NBQXNDLE9BQU8sR0FBRyxDQUN4RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxTQUEwQyxFQUFFO0lBRTVDLE9BQU87UUFDTCxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pGLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDL0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6RixHQUFHLENBQUMsTUFBTSxDQUFDLHVCQUF1QixLQUFLLFNBQVM7WUFDOUMsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNoRSxHQUFHLENBQUMsTUFBTSxDQUFDLHdCQUF3QixLQUFLLFNBQVM7WUFDL0MsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsRSxHQUFHLENBQUMsTUFBTSxDQUFDLCtCQUErQixLQUFLLFNBQVM7WUFDdEQsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUNoRixHQUFHLENBQUMsTUFBTSxDQUFDLGdDQUFnQyxLQUFLLFNBQVM7WUFDdkQsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUNsRixHQUFHLENBQUMsTUFBTSxDQUFDLHlCQUF5QixLQUFLLFNBQVM7WUFDaEQsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQztLQUNyRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUEwQjtJQUM3RCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQztJQUNwRCxJQUNFLENBQUMsaUJBQWlCO1dBQ2YsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLEtBQUssVUFBVTtXQUM1QyxPQUFPLGlCQUFpQixDQUFDLElBQUksS0FBSyxVQUFVO1dBQzVDLE9BQU8saUJBQWlCLENBQUMsZ0JBQWdCLEtBQUssVUFBVTtXQUN4RCxPQUFPLGlCQUFpQixDQUFDLGNBQWMsS0FBSyxVQUFVLEVBQ3pELENBQUM7UUFDRCxNQUFNLElBQUksMEJBQTBCLENBQ2xDLHNGQUFzRixDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
|
|
@@ -18,6 +18,11 @@ export interface IDocumentRequestOptions {
|
|
|
18
18
|
* refused.
|
|
19
19
|
*/
|
|
20
20
|
maxPages?: number;
|
|
21
|
+
/**
|
|
22
|
+
* The longest edge, in pixels, of an image document as it is sent to the model; a larger image is
|
|
23
|
+
* scaled down to it. Defaults to `DEFAULT_MAX_IMAGE_EDGE`.
|
|
24
|
+
*/
|
|
25
|
+
maxImageEdge?: number;
|
|
21
26
|
/**
|
|
22
27
|
* Called once for every model call of the request, as soon as its usage is known, whatever the
|
|
23
28
|
* request's outcome: `reported` with the provider's usage, or `unreported` with the reason when
|
|
@@ -31,7 +36,19 @@ export interface IDocumentOptions extends IDocumentRequestOptions {
|
|
|
31
36
|
model: plugins.TSmartAiLanguageModel;
|
|
32
37
|
systemMessage?: string;
|
|
33
38
|
userMessage: string;
|
|
34
|
-
|
|
39
|
+
/** PDFs, rendered page by page. The model sees their pages first, in the order given. */
|
|
40
|
+
pdfDocuments?: Uint8Array[];
|
|
41
|
+
/**
|
|
42
|
+
* Images, after the PDFs' pages, in the order given: JPEG, PNG, WebP, GIF, TIFF (every page) and
|
|
43
|
+
* AVIF. A JPEG, PNG or WebP within `maxImageEdge` and `MAX_IMAGE_BYTES` that needs no turning is
|
|
44
|
+
* sent as it is. Any other is turned upright by its EXIF orientation, scaled down to fit
|
|
45
|
+
* `maxImageEdge` and sent as JPEG (from a JPEG or AVIF, transparency on white) or PNG, for this
|
|
46
|
+
* request only. Each image and each TIFF page is a page of the request. Refused with
|
|
47
|
+
* `DocumentFormatError` before the model is called: an image that cannot be read, a format outside
|
|
48
|
+
* these, HEIC (not decodable here), a GIF or WebP of more than one frame, an AVIF of more than one
|
|
49
|
+
* image, and an image or TIFF page of more than `MAX_IMAGE_PIXELS`. Needs the optional peer dependency `sharp`.
|
|
50
|
+
*/
|
|
51
|
+
imageDocuments?: Uint8Array[];
|
|
35
52
|
messageHistory?: plugins.ModelMessage[];
|
|
36
53
|
}
|
|
37
54
|
export interface IPdfTextExtractionOptions extends IDocumentRequestOptions {
|
|
@@ -51,7 +68,10 @@ export interface IDocumentUsage {
|
|
|
51
68
|
export interface IDocumentAnalysisResult {
|
|
52
69
|
text: string;
|
|
53
70
|
usage: IDocumentUsage;
|
|
54
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Pages sent to the model: the PDFs' rendered pages and the images' pages. A PDF page that renders
|
|
73
|
+
* to an empty image is not sent.
|
|
74
|
+
*/
|
|
55
75
|
pageCount: number;
|
|
56
76
|
}
|
|
57
77
|
export interface IDocumentPageLimitErrorDetails {
|
|
@@ -78,6 +98,51 @@ export declare class DocumentPageLimitError extends Error {
|
|
|
78
98
|
readonly documentIndex: number;
|
|
79
99
|
constructor(details: IDocumentPageLimitErrorDetails, options?: ErrorOptions);
|
|
80
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* The longest edge, in pixels, of an image sent to the model when a request names none: Anthropic's
|
|
103
|
+
* 2000 pixels per side for a request with more than 20 images, the tightest of the limits above.
|
|
104
|
+
*/
|
|
105
|
+
export declare const DEFAULT_MAX_IMAGE_EDGE = 2000;
|
|
106
|
+
/**
|
|
107
|
+
* The most bytes of one image sent to the model: 5 000 000 characters once base64-encoded, within
|
|
108
|
+
* Anthropic's 5 MB per image on Amazon Bedrock and Google Cloud, the smallest of the limits above.
|
|
109
|
+
*/
|
|
110
|
+
export declare const MAX_IMAGE_BYTES = 3750000;
|
|
111
|
+
/**
|
|
112
|
+
* The most pixels (width times height) of one image or TIFF page that is decoded: an A3 page scanned
|
|
113
|
+
* at 600 dpi has about 70 million. The images come from mail and uploads, so a larger one is refused
|
|
114
|
+
* from its header, before it is decoded, instead of being given sharp's own limit of about 268 million.
|
|
115
|
+
*/
|
|
116
|
+
export declare const MAX_IMAGE_PIXELS = 100000000;
|
|
117
|
+
/** Why an image document is refused. */
|
|
118
|
+
export type TDocumentFormatRefusal =
|
|
119
|
+
/** it could not be read at all */
|
|
120
|
+
'unreadable'
|
|
121
|
+
/** it is a format this component does not read */
|
|
122
|
+
| 'unsupported'
|
|
123
|
+
/** it is HEIC, which the prebuilt sharp cannot decode */
|
|
124
|
+
| 'heic'
|
|
125
|
+
/** it is a GIF or WebP of more than one frame: frames are no pages, and none is dropped */
|
|
126
|
+
| 'animated'
|
|
127
|
+
/** it is an AVIF container of more than one image: which of them is the document is not known, and none is dropped */
|
|
128
|
+
| 'multiple_images'
|
|
129
|
+
/** it has more pixels than `MAX_IMAGE_PIXELS` */
|
|
130
|
+
| 'too_many_pixels'
|
|
131
|
+
/** it stays larger than `MAX_IMAGE_BYTES` after scaling */
|
|
132
|
+
| 'too_large';
|
|
133
|
+
/** An image document this component does not read; the model was not called. */
|
|
134
|
+
export declare class DocumentFormatError extends Error {
|
|
135
|
+
/** Zero-based position, in the request's documents (the PDFs first, then the images), of the image. */
|
|
136
|
+
readonly documentIndex: number;
|
|
137
|
+
/** The format the image was read as, or null when it could not be read at all. */
|
|
138
|
+
readonly format: string | null;
|
|
139
|
+
readonly reason: TDocumentFormatRefusal;
|
|
140
|
+
constructor(message: string, details: {
|
|
141
|
+
documentIndex: number;
|
|
142
|
+
format: string | null;
|
|
143
|
+
reason: TDocumentFormatRefusal;
|
|
144
|
+
}, options?: ErrorOptions);
|
|
145
|
+
}
|
|
81
146
|
/** The model-based PDF OCR recipe formerly provided by SmartOCR. */
|
|
82
147
|
export declare function extractTextFromPdf(pdfDocument: Uint8Array, options: IPdfTextExtractionOptions): Promise<string>;
|
|
83
148
|
/** `extractTextFromPdf` that also returns the request's token usage and the pages sent. */
|