@agentworkforce/workload-router 0.2.0 → 0.3.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/generated/personas.d.ts +179 -0
- package/dist/generated/personas.d.ts.map +1 -1
- package/dist/generated/personas.js +137 -0
- package/dist/generated/personas.js.map +1 -1
- package/dist/index.d.ts +24 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +178 -34
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +176 -1
- package/dist/index.test.js.map +1 -1
- package/package.json +1 -1
- package/routing-profiles/default.json +20 -0
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { createHash } from 'node:crypto';
|
|
3
3
|
import { resolve as resolvePath } from 'node:path';
|
|
4
|
-
import { frontendImplementer, codeReviewer, architecturePlanner, requirementsAnalyst, debuggerPersona, securityReviewer, technicalWriter, verifierPersona, testStrategist, tddGuard, flakeHunter, opencodeWorkflowSpecialist, npmProvenancePublisher, cloudSandboxInfra } from './generated/personas.js';
|
|
4
|
+
import { frontendImplementer, codeReviewer, architecturePlanner, requirementsAnalyst, debuggerPersona, securityReviewer, technicalWriter, verifierPersona, testStrategist, tddGuard, flakeHunter, opencodeWorkflowSpecialist, npmProvenancePublisher, cloudSandboxInfra, sageSlackEgressMigrator, sageProactiveRewirer, cloudSlackProxyGuard, agentRelayE2eConductor, capabilityDiscoverer } from './generated/personas.js';
|
|
5
5
|
import defaultRoutingProfileJson from '../routing-profiles/default.json' with { type: 'json' };
|
|
6
6
|
export const HARNESS_VALUES = ['opencode', 'codex', 'claude'];
|
|
7
7
|
export const PERSONA_TIERS = ['best', 'best-value', 'minimum'];
|
|
@@ -19,7 +19,12 @@ export const PERSONA_INTENTS = [
|
|
|
19
19
|
'flake-investigation',
|
|
20
20
|
'opencode-workflow-correctness',
|
|
21
21
|
'npm-provenance',
|
|
22
|
-
'cloud-sandbox-infra'
|
|
22
|
+
'cloud-sandbox-infra',
|
|
23
|
+
'sage-slack-egress-migration',
|
|
24
|
+
'sage-proactive-rewire',
|
|
25
|
+
'cloud-slack-proxy-guard',
|
|
26
|
+
'sage-cloud-e2e-conduction',
|
|
27
|
+
'capability-discovery'
|
|
23
28
|
];
|
|
24
29
|
// ---------------------------------------------------------------------------
|
|
25
30
|
// Skill materialization
|
|
@@ -37,7 +42,7 @@ export const PERSONA_INTENTS = [
|
|
|
37
42
|
// `materializeSkills` is a pure function: it returns the install plan but
|
|
38
43
|
// never touches the filesystem or spawns processes. Callers (relay workflows,
|
|
39
44
|
// the OpenClaw spawner, ad-hoc scripts) decide how to execute it.
|
|
40
|
-
export const SKILL_SOURCE_KINDS = ['prpm'];
|
|
45
|
+
export const SKILL_SOURCE_KINDS = ['prpm', 'skill.sh'];
|
|
41
46
|
export const HARNESS_SKILL_TARGETS = {
|
|
42
47
|
claude: { asFlag: 'claude', dir: '.claude/skills' },
|
|
43
48
|
codex: { asFlag: 'codex', dir: '.agents/skills' },
|
|
@@ -63,27 +68,120 @@ class CapturedCommandError extends Error {
|
|
|
63
68
|
}
|
|
64
69
|
const PRPM_URL_RE = /^https?:\/\/prpm\.dev\/packages\/([^/\s?#]+)\/([^/\s?#]+)\/?(?:[?#].*)?$/i;
|
|
65
70
|
const PRPM_BARE_REF_RE = /^([^/\s]+)\/([^/\s]+)$/;
|
|
66
|
-
function
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
function lastSegment(ref) {
|
|
72
|
+
const slash = ref.lastIndexOf('/');
|
|
73
|
+
return slash >= 0 ? ref.slice(slash + 1) : ref;
|
|
74
|
+
}
|
|
75
|
+
const prpmProvider = {
|
|
76
|
+
kind: 'prpm',
|
|
77
|
+
parse(source) {
|
|
78
|
+
const urlMatch = source.match(PRPM_URL_RE);
|
|
79
|
+
if (urlMatch) {
|
|
80
|
+
const ref = `${urlMatch[1]}/${urlMatch[2]}`;
|
|
81
|
+
return { kind: 'prpm', packageRef: ref, installedName: lastSegment(ref) };
|
|
82
|
+
}
|
|
83
|
+
const bareMatch = source.match(PRPM_BARE_REF_RE);
|
|
84
|
+
if (bareMatch) {
|
|
85
|
+
return { kind: 'prpm', packageRef: source, installedName: lastSegment(source) };
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
},
|
|
89
|
+
buildInstallCommand(ref, harness) {
|
|
90
|
+
const target = HARNESS_SKILL_TARGETS[harness];
|
|
91
|
+
return Object.freeze([
|
|
92
|
+
'npx',
|
|
93
|
+
'-y',
|
|
94
|
+
'prpm',
|
|
95
|
+
'install',
|
|
96
|
+
ref.packageRef,
|
|
97
|
+
'--as',
|
|
98
|
+
target.asFlag
|
|
99
|
+
]);
|
|
100
|
+
},
|
|
101
|
+
cleanupPaths(ref, harness) {
|
|
102
|
+
const target = HARNESS_SKILL_TARGETS[harness];
|
|
103
|
+
return Object.freeze([`${target.dir}/${ref.installedName}`]);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
// skill.sh source form: `<github-url>#<skill-name>`
|
|
107
|
+
// Example: `https://github.com/vercel-labs/skills#find-skills`
|
|
108
|
+
const SKILL_SH_URL_RE = /^(https?:\/\/github\.com\/[^/\s?#]+\/[^/\s?#]+?)(?:\.git)?#([^\s?#]+)$/i;
|
|
109
|
+
/**
|
|
110
|
+
* Paths `npx skills add` writes per install. Mirrors the on-disk layout from
|
|
111
|
+
* a live `npx -y skills add ... -y` run (universal dir + harness-side
|
|
112
|
+
* symlinks). `skills-lock.json` is deliberately excluded so repeat runs can
|
|
113
|
+
* re-resolve from the lock instead of refetching sources.
|
|
114
|
+
*/
|
|
115
|
+
function skillShArtifactPaths(installedName) {
|
|
116
|
+
return Object.freeze([
|
|
117
|
+
`.agents/skills/${installedName}`,
|
|
118
|
+
`.claude/skills/${installedName}`,
|
|
119
|
+
`.factory/skills/${installedName}`,
|
|
120
|
+
`.kiro/skills/${installedName}`,
|
|
121
|
+
`skills/${installedName}`
|
|
122
|
+
]);
|
|
123
|
+
}
|
|
124
|
+
const skillShProvider = {
|
|
125
|
+
kind: 'skill.sh',
|
|
126
|
+
parse(source) {
|
|
127
|
+
const match = source.match(SKILL_SH_URL_RE);
|
|
128
|
+
if (!match) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
const [, repoUrl, skillName] = match;
|
|
132
|
+
return {
|
|
133
|
+
kind: 'skill.sh',
|
|
134
|
+
// packageRef preserves the full `<repo>#<skill>` shape so the command builder
|
|
135
|
+
// can reconstruct both halves without re-parsing the original source.
|
|
136
|
+
packageRef: `${repoUrl}#${skillName}`,
|
|
137
|
+
installedName: skillName
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
buildInstallCommand(ref) {
|
|
141
|
+
const [repoUrl, skillName] = ref.packageRef.split('#');
|
|
142
|
+
return Object.freeze([
|
|
143
|
+
'npx',
|
|
144
|
+
'-y',
|
|
145
|
+
'skills',
|
|
146
|
+
'add',
|
|
147
|
+
repoUrl,
|
|
148
|
+
'--skill',
|
|
149
|
+
skillName,
|
|
150
|
+
'-y'
|
|
151
|
+
]);
|
|
152
|
+
},
|
|
153
|
+
cleanupPaths(ref) {
|
|
154
|
+
// skill.sh installs the same universal dir + harness symlinks regardless
|
|
155
|
+
// of which agent is the "host" — clean all of them so nothing leaks into
|
|
156
|
+
// `.claude/`, `.agents/`, etc. after the persona run.
|
|
157
|
+
return skillShArtifactPaths(ref.installedName);
|
|
70
158
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
159
|
+
};
|
|
160
|
+
const SKILL_PROVIDERS = Object.freeze([prpmProvider, skillShProvider]);
|
|
161
|
+
function resolveSkillSource(source) {
|
|
162
|
+
for (const provider of SKILL_PROVIDERS) {
|
|
163
|
+
const parsed = provider.parse(source);
|
|
164
|
+
if (parsed) {
|
|
165
|
+
return parsed;
|
|
166
|
+
}
|
|
74
167
|
}
|
|
75
168
|
throw new Error(`Unsupported skill source: ${source}. ` +
|
|
76
|
-
`Supported forms: prpm.dev package URL (https://prpm.dev/packages/<scope>/<name>) ` +
|
|
77
|
-
`
|
|
169
|
+
`Supported forms: prpm.dev package URL (https://prpm.dev/packages/<scope>/<name>), ` +
|
|
170
|
+
`bare "<scope>/<name>" prpm reference, ` +
|
|
171
|
+
`or skill.sh github URL with skill fragment (https://github.com/<org>/<repo>#<skill>).`);
|
|
78
172
|
}
|
|
79
|
-
function
|
|
80
|
-
const
|
|
81
|
-
|
|
173
|
+
function providerFor(kind) {
|
|
174
|
+
const provider = SKILL_PROVIDERS.find((p) => p.kind === kind);
|
|
175
|
+
if (!provider) {
|
|
176
|
+
throw new Error(`No skill provider registered for kind: ${kind}`);
|
|
177
|
+
}
|
|
178
|
+
return provider;
|
|
82
179
|
}
|
|
83
180
|
/**
|
|
84
181
|
* Given a set of persona skills and the harness the persona will run under,
|
|
85
|
-
* produce the concrete install plan: which
|
|
86
|
-
*
|
|
182
|
+
* produce the concrete install plan: which install invocations to run, where
|
|
183
|
+
* the skill will land on disk, and which artifact paths should be cleaned up
|
|
184
|
+
* after the persona run to keep the workspace tidy.
|
|
87
185
|
*
|
|
88
186
|
* Pure function — does not execute commands or touch the filesystem.
|
|
89
187
|
*/
|
|
@@ -93,26 +191,27 @@ export function materializeSkills(skills, harness) {
|
|
|
93
191
|
throw new Error(`No skill install target configured for harness: ${harness}`);
|
|
94
192
|
}
|
|
95
193
|
const installs = skills.map((skill) => {
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
const
|
|
194
|
+
const resolved = resolveSkillSource(skill.source);
|
|
195
|
+
const provider = providerFor(resolved.kind);
|
|
196
|
+
const installCommand = provider.buildInstallCommand(resolved, harness);
|
|
197
|
+
const cleanupPaths = provider.cleanupPaths(resolved, harness);
|
|
198
|
+
// For prompt-injection fallback we still want a single canonical manifest
|
|
199
|
+
// path. prpm installs into the harness target dir; skill.sh installs into
|
|
200
|
+
// its universal `.agents/skills` dir regardless of harness, so key off
|
|
201
|
+
// whichever cleanup path ends in the installed name.
|
|
202
|
+
const installedDir = resolved.kind === 'skill.sh'
|
|
203
|
+
? `.agents/skills/${resolved.installedName}`
|
|
204
|
+
: `${target.dir}/${resolved.installedName}`;
|
|
99
205
|
return {
|
|
100
206
|
skillId: skill.id,
|
|
101
207
|
source: skill.source,
|
|
102
|
-
sourceKind: kind,
|
|
103
|
-
packageRef,
|
|
208
|
+
sourceKind: resolved.kind,
|
|
209
|
+
packageRef: resolved.packageRef,
|
|
104
210
|
harness,
|
|
105
|
-
installCommand
|
|
106
|
-
'npx',
|
|
107
|
-
'-y',
|
|
108
|
-
'prpm',
|
|
109
|
-
'install',
|
|
110
|
-
packageRef,
|
|
111
|
-
'--as',
|
|
112
|
-
target.asFlag
|
|
113
|
-
]),
|
|
211
|
+
installCommand,
|
|
114
212
|
installedDir,
|
|
115
|
-
installedManifest: `${installedDir}/SKILL.md
|
|
213
|
+
installedManifest: `${installedDir}/SKILL.md`,
|
|
214
|
+
cleanupPaths
|
|
116
215
|
};
|
|
117
216
|
});
|
|
118
217
|
return { harness, installs };
|
|
@@ -142,6 +241,23 @@ function buildInstallArtifacts(plan) {
|
|
|
142
241
|
installCommandString
|
|
143
242
|
};
|
|
144
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Post-run cleanup: one shell command that removes every ephemeral artifact
|
|
246
|
+
* path declared across all installs in the plan. Runs AFTER the agent step so
|
|
247
|
+
* the agent can still read skill manifests off disk during execution. The
|
|
248
|
+
* provider lockfile is deliberately not in the path set, so repeat runs keep
|
|
249
|
+
* cached resolution.
|
|
250
|
+
*
|
|
251
|
+
* Empty plans return `:` (shell no-op) to keep the post-step shape uniform.
|
|
252
|
+
*/
|
|
253
|
+
function buildCleanupArtifacts(plan) {
|
|
254
|
+
const allPaths = plan.installs.flatMap((install) => [...install.cleanupPaths]);
|
|
255
|
+
const cleanupCommandString = allPaths.length === 0 ? ':' : `rm -rf ${allPaths.map(shellEscape).join(' ')}`;
|
|
256
|
+
return {
|
|
257
|
+
cleanupCommand: Object.freeze(['sh', '-c', cleanupCommandString]),
|
|
258
|
+
cleanupCommandString
|
|
259
|
+
};
|
|
260
|
+
}
|
|
145
261
|
function buildExecutionTask(systemPrompt, task, inputs) {
|
|
146
262
|
const sections = [`System Instructions:\n${systemPrompt.trim()}`, `Task:\n${task.trim()}`];
|
|
147
263
|
if (inputs && Object.keys(inputs).length > 0) {
|
|
@@ -530,7 +646,12 @@ export const personaCatalog = {
|
|
|
530
646
|
'flake-investigation': parsePersonaSpec(flakeHunter, 'flake-investigation'),
|
|
531
647
|
'opencode-workflow-correctness': parsePersonaSpec(opencodeWorkflowSpecialist, 'opencode-workflow-correctness'),
|
|
532
648
|
'npm-provenance': parsePersonaSpec(npmProvenancePublisher, 'npm-provenance'),
|
|
533
|
-
'cloud-sandbox-infra': parsePersonaSpec(cloudSandboxInfra, 'cloud-sandbox-infra')
|
|
649
|
+
'cloud-sandbox-infra': parsePersonaSpec(cloudSandboxInfra, 'cloud-sandbox-infra'),
|
|
650
|
+
'sage-slack-egress-migration': parsePersonaSpec(sageSlackEgressMigrator, 'sage-slack-egress-migration'),
|
|
651
|
+
'sage-proactive-rewire': parsePersonaSpec(sageProactiveRewirer, 'sage-proactive-rewire'),
|
|
652
|
+
'cloud-slack-proxy-guard': parsePersonaSpec(cloudSlackProxyGuard, 'cloud-slack-proxy-guard'),
|
|
653
|
+
'sage-cloud-e2e-conduction': parsePersonaSpec(agentRelayE2eConductor, 'sage-cloud-e2e-conduction'),
|
|
654
|
+
'capability-discovery': parsePersonaSpec(capabilityDiscoverer, 'capability-discovery')
|
|
534
655
|
};
|
|
535
656
|
export const routingProfiles = {
|
|
536
657
|
default: parseRoutingProfile(defaultRoutingProfileJson, 'routingProfiles.default')
|
|
@@ -651,12 +772,15 @@ export function usePersona(intent, options = {}) {
|
|
|
651
772
|
? materializeSkillsFor(selection)
|
|
652
773
|
: materializeSkills(selection.skills, effectiveHarness);
|
|
653
774
|
const { installCommand, installCommandString } = buildInstallArtifacts(installPlan);
|
|
775
|
+
const { cleanupCommand, cleanupCommandString } = buildCleanupArtifacts(installPlan);
|
|
654
776
|
const frozenSelection = deepFreeze(selection);
|
|
655
777
|
const frozenInstallPlan = deepFreeze(installPlan);
|
|
656
778
|
const frozenInstall = Object.freeze({
|
|
657
779
|
plan: frozenInstallPlan,
|
|
658
780
|
command: installCommand,
|
|
659
|
-
commandString: installCommandString
|
|
781
|
+
commandString: installCommandString,
|
|
782
|
+
cleanupCommand,
|
|
783
|
+
cleanupCommandString
|
|
660
784
|
});
|
|
661
785
|
const sendMessage = (task, sendMessageOptions = {}) => {
|
|
662
786
|
const runId = createDeferred();
|
|
@@ -674,6 +798,7 @@ export function usePersona(intent, options = {}) {
|
|
|
674
798
|
const stepName = sanitizeExecutionName(sendMessageOptions.name ?? `${frozenSelection.personaId}-${hash8(task)}`);
|
|
675
799
|
const workflowName = `use-persona-${stepName}`;
|
|
676
800
|
const installStepName = `${stepName}-install-skills`;
|
|
801
|
+
const cleanupStepName = `${stepName}-cleanup-skills`;
|
|
677
802
|
const workingDirectory = resolvePath(sendMessageOptions.workingDirectory ?? process.cwd());
|
|
678
803
|
const timeoutMs = Math.max(1, Math.round((sendMessageOptions.timeoutSeconds ??
|
|
679
804
|
frozenSelection.runtime.harnessSettings.timeoutSeconds) * 1000));
|
|
@@ -758,6 +883,25 @@ export function usePersona(intent, options = {}) {
|
|
|
758
883
|
verification: { type: 'exit_code', value: '0' },
|
|
759
884
|
...(shouldInstallSkills ? { dependsOn: [installStepName] } : {})
|
|
760
885
|
});
|
|
886
|
+
// Post-agent cleanup: removes the ephemeral skill artifact paths the
|
|
887
|
+
// provider scattered during the install step. Only runs when this
|
|
888
|
+
// sendMessage owns the install (Mode A) AND the agent step completed
|
|
889
|
+
// — if the agent step fails or is skipped, the dag runner will skip
|
|
890
|
+
// this step too, which is fine because (a) failure diagnostics stay
|
|
891
|
+
// on disk for the user to inspect, and (b) `rm -rf` is idempotent so
|
|
892
|
+
// a follow-up run can re-clean. The lockfile is deliberately not in
|
|
893
|
+
// cleanupPaths, so repeat runs still benefit from cached resolution.
|
|
894
|
+
if (shouldInstallSkills && frozenInstall.cleanupCommandString !== ':') {
|
|
895
|
+
builder.step(cleanupStepName, {
|
|
896
|
+
type: 'deterministic',
|
|
897
|
+
command: frozenInstall.cleanupCommandString,
|
|
898
|
+
cwd: workingDirectory,
|
|
899
|
+
timeoutMs,
|
|
900
|
+
captureOutput: true,
|
|
901
|
+
failOnError: false,
|
|
902
|
+
dependsOn: [stepName]
|
|
903
|
+
});
|
|
904
|
+
}
|
|
761
905
|
if (abortController.signal.aborted) {
|
|
762
906
|
runner.abort();
|
|
763
907
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACzS,OAAO,yBAAyB,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB;IACpB,QAAQ;IACR,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,qBAAqB;IACrB,+BAA+B;IAC/B,gBAAgB;IAChB,qBAAqB;CACb,CAAC;AAwDX,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,8DAA8D;AAC9D,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,kEAAkE;AAElE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAU,CAAC;AAWpD,MAAM,CAAC,MAAM,qBAAqB,GAAwC;IACxE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE;IACnD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE;IACjD,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;CACjD,CAAC;AA6MF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,MAAM,CAAgB;IACtB,KAAK,CAAW;IAEzB,YAAY,OAAe,EAAE,MAAqB,EAAE,KAAe;QACjE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAgBD,MAAM,oBAAqB,SAAQ,KAAK;IAC7B,OAAO,CAAiB;IAEjC,YAAY,OAAe,EAAE,OAAuB;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,WAAW,GACf,2EAA2E,CAAC;AAC9E,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAOlD,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,IAAI;QACrC,mFAAmF;QACnF,uCAAuC,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,OAAgB;IAEhB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAgB,EAAE;QAClD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;QACtD,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,OAAO;YACP,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK;gBACL,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,MAAM;gBACN,MAAM,CAAC,MAAM;aACd,CAAsB;YACvB,YAAY;YACZ,iBAAiB,EAAE,GAAG,YAAY,WAAW;SAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA2B;IAC9D,OAAO,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA0B;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA8B;IAI3D,MAAM,oBAAoB,GACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhG,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAsB;QACtF,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,YAAoB,EACpB,IAAY,EACZ,MAAkD;IAElD,MAAM,QAAQ,GAAG,CAAC,yBAAyB,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3F,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,SAAS,GAAG,KAAK;SACpB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,SAAS,IAAI,WAAW,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAkC,CAAC;IACvC,IAAI,QAAgC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAA2B;IACjD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAM,CAAC;IACnC,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAM,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,MAA+B,EAAE,UAA2B;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OASjC;IACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACpF,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QACvC,IAAI,YAAwC,CAAC;QAE7C,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,YAAY,GAAG,SAAS,CAAC;oBACzB,SAAS,EAAE,CAAC;gBACd,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,SAAS,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,CAAC;QAEZ,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;YACvC,OAAO,EAAE,CAAC;YACV,MAAM,OAAO,GAAmB;gBAC9B,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,UAAoC,IAAI,IAAI;aAC1D,CAAC;YAEF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;gBACtD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CACJ,IAAI,oBAAoB,CACtB,2BAA2B,SAAS,IAAI,SAAS,IAAI,EACrD,OAAO,CACR,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAyC,EACzC,OAUC,EACD,YAAuF;IAEvF,MAAM,OAAO,GAAG,KAAK,EACnB,QAAgB,EAChB,OAAe,EACf,IAAc,EACd,GAAW,EACX,SAAkB,EAClB,cAAc,GAAG,KAAK,EACG,EAAE;QAC3B,MAAM,cAAc,GAAmB;YACrC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;gBACvC,OAAO;gBACP,IAAI;gBACJ,GAAG;gBACH,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;oBAClD,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC9B,cAAc,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,cAAc,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;oBACtC,CAAC;oBACD,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;oBAClD,OAAO,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC1C,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;aACF,CAAC,CAAC;YACH,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,oBAAoB,CAC5B,SAAS,QAAQ,sBAAsB,OAAO,CAAC,QAAQ,EAAE,EACzD,OAAO,CACR,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,KAAsC,CAAC,OAAO,CAAC;YACxH,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS;YAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAc,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC1F,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAC,IAAI,EACT,OAAO,EACP,IAAI,EACJ,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EACpC,SAAS,EACT,QAAQ,CAAC,GAAG,KAAK,UAAU,CAC5B,CAAC;YACF,OAAO,OAAO,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG;YACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,CAAC,IAAI,EAAE,eAAe,CAAC,EACvB,WAAW,CAAC,GAAG,CAAC,EAChB,IAAI,CAAC,SAAS,CACf,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;aAChC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAgB,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAoB,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,OAAe;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAEhE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4BAA4B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mCAAmC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oCAAoC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC;IACtD,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oDAAoD,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,2DAA2D,CAAC,CAAC;IACzF,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK;QACL,YAAY;QACZ,eAAe,EAAE;YACf,SAAS,EAAE,SAAyC;YACpD,cAAc;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,OAAe;IAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,+BAA+B,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,GAAG,OAAO,IAAI,GAAG,GAAG,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,oBAAoB,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAC1C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,gCAAgC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,oCAAoC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,yCAAyC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,cAA6B;IACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,0BAA0B,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,0CAA0C,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,2BAA2B,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,WAAW,GAAG,EAAyC,CAAC;IAC9D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,cAAc,WAAW,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,cAAc,UAAU,CAAC,CAAC;IAE9E,OAAO;QACL,EAAE;QACF,MAAM;QACN,WAAW;QACX,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,OAAe;IAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC3C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,gCAAgC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,yCAAyC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4BAA4B,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,aAAa,GAAG,EAA+C,CAAC;IACtE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,YAAY,MAAM,oBAAoB,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,YAAY,MAAM,yBAAyB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,YAAY,MAAM,uCAAuC,CAAC,CAAC;QACvF,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,EAAE;QACF,WAAW;QACX,OAAO,EAAE,aAAa;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,oBAAoB,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IACjF,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChD,mBAAmB,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC/E,uBAAuB,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IACvF,SAAS,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC;IACzD,iBAAiB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACxE,aAAa,EAAE,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC;IACjE,YAAY,EAAE,gBAAgB,CAAC,eAAe,EAAE,cAAc,CAAC;IAC/D,eAAe,EAAE,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC;IAClE,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAChE,qBAAqB,EAAE,gBAAgB,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC3E,+BAA+B,EAAE,gBAAgB,CAC/C,0BAA0B,EAC1B,+BAA+B,CAChC;IACD,gBAAgB,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;IAC5E,qBAAqB,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;CAClF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CAC1E,CAAC;AAIX,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,UAA6C,SAAS;IAC1G,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrF,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,GAAG,WAAW,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE;KAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB,EAAE,OAAoB,YAAY;IAC1F,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,IAAI;QACJ,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,yBAAyB,IAAI,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,UAII,EAAE;IAEN,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI;QAChC,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAEzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1E,MAAM,SAAS,GACb,gBAAgB,KAAK,aAAa,CAAC,OAAO,CAAC,OAAO;QAChD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC;YACE,GAAG,aAAa;YAChB,OAAO,EAAE;gBACP,GAAG,aAAa,CAAC,OAAO;gBACxB,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAC;IAER,MAAM,WAAW,GACf,gBAAgB,KAAK,aAAa,CAAC,OAAO,CAAC,OAAO;QAChD,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE5D,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpF,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,cAAc;QACvB,aAAa,EAAE,oBAAoB;KACpC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,qBAAqC,EAAE,EAAoB,EAAE;QAC9F,MAAM,KAAK,GAAG,cAAc,EAAU,CAAC;QACvC,iFAAiF;QACjF,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,sEAAsE;QACtE,6DAA6D;QAC7D,wEAAwE;QACxE,oEAAoE;QACpE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,qBAAqB,CACpC,kBAAkB,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;QACF,MAAM,YAAY,GAAG,eAAe,QAAQ,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,GAAG,QAAQ,iBAAiB,CAAC;QACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC,kBAAkB,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,CAAC,EACD,IAAI,CAAC,KAAK,CACR,CAAC,kBAAkB,CAAC,cAAc;YAChC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,IAAI,CACjE,CACF,CAAC;QACF,MAAM,mBAAmB,GACvB,kBAAkB,CAAC,aAAa,KAAK,KAAK,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;QACvD,IAAI,YAAgC,CAAC;QACrC,IAAI,aAAiC,CAAC;QACtC,IAAI,eAA2C,CAAC;QAEhD,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,EAAE;YAC7C,IAAI,eAAe,EAAE,CAAC;gBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;gBAC9B,eAAe,GAAG,SAAS,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,KAAK,IAA4B,EAAE;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CACjF,4BAA4B,CAC7B,CAAC;gBACF,MAAM,QAAQ,GAAG,mBAAmB,CAClC,YAAY,EACZ;oBACE,GAAG,EAAE,gBAAgB;oBACrB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE;oBAClD,MAAM,EAAE,eAAe,CAAC,MAAM;oBAC9B,WAAW,EAAE,CAAC,eAAe,EAAE,EAAE;wBAC/B,IAAI,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;4BACrE,OAAO;wBACT,CAAC;wBAED,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;wBACxD,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC5B,CAAC;oBACD,cAAc,EAAE,CAAC,gBAAgB,EAAE,EAAE;wBACnC,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;4BAClC,YAAY,EAAE,CAAC;wBACjB,CAAC;oBACH,CAAC;oBACD,UAAU,EAAE,kBAAkB,CAAC,UAAU;iBAC1C,EACD,YAAY,CACb,CAAC;gBACF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;oBAChC,GAAG,EAAE,gBAAgB;oBACrB,EAAE,EAAE,IAAI,kBAAkB,EAAE;oBAC5B,QAAQ;iBACT,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACjC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC9B,CAAC;oBAED,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;wBACjE,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAC3B,CAAC;wBACD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC;gBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;qBACnC,WAAW,CAAC,gCAAgC,eAAe,CAAC,SAAS,EAAE,CAAC;qBACxE,OAAO,CAAC,KAAK,CAAC;qBACd,OAAO,CAAC,SAAS,CAAC;qBAClB,YAAY,CAAC,KAAK,CAAC;qBACnB,KAAK,CAAC,SAAS,EAAE;oBAChB,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO;oBACpC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK;oBACpC,IAAI,EAAE,eAAe,CAAC,SAAS;oBAC/B,MAAM,EAAE,QAAQ;oBAChB,WAAW,EAAE,KAAK;oBAClB,SAAS;iBACV,CAAC,CAAC;gBAEL,IAAI,mBAAmB,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;wBAC5B,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,oBAAoB;wBAC7B,GAAG,EAAE,gBAAgB;wBACrB,SAAS;wBACT,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACrB,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,kBAAkB,CACtB,eAAe,CAAC,OAAO,CAAC,YAAY,EACpC,IAAI,EACJ,kBAAkB,CAAC,MAAM,CAC1B;oBACD,GAAG,EAAE,gBAAgB;oBACrB,SAAS;oBACT,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;oBAC/C,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE,CAAC,CAAC;gBAEH,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAmB,CAAC;gBACzE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC;gBAED,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5F,MAAM,OAAO,GAAG,cAAc,IAAI,eAAe,CAAC;gBAClD,MAAM,MAAM,GAAkB;oBAC5B,MAAM,EACJ,GAAG,CAAC,MAAM,KAAK,WAAW;wBACxB,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;4BACpD,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW;gCAC1B,CAAC,CAAC,WAAW;gCACb,CAAC,CAAC,QAAQ;oBAClB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;oBAC7B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;oBAC7B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;oBACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClE,aAAa,EAAE,GAAG,CAAC,EAAE;oBACrB,QAAQ;iBACT,CAAC;gBAEF,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC;oBACtE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;oBACjC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,qBAAqB,CAC7B,GAAG,CAAC,KAAK,IAAI,sCAAsC,QAAQ,GAAG,EAC9D,MAAM,CACP,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,eAAe,EAAE,CAAC;oBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;gBAChC,CAAC;gBACD,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YAClC,MAAM,CAAC,MAAe;gBACpB,YAAY,GAAG,MAAM,CAAC;gBACtB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,EAAE,KAAK,CAAC,OAAO;SACrB,CAAqB,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,aAAa;QACtB,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import test from 'node:test';
|
|
2
2
|
import assert from 'node:assert/strict';
|
|
3
|
-
import { chmodSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { chmodSync, existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { HARNESS_SKILL_TARGETS, HARNESS_VALUES, PersonaExecutionError, materializeSkills, materializeSkillsFor, personaCatalog, resolvePersona, resolvePersonaByTier, usePersona } from './index.js';
|
|
@@ -84,6 +84,26 @@ test('resolves review from custom routing profile rule', () => {
|
|
|
84
84
|
'cloud-sandbox-infra': {
|
|
85
85
|
tier: 'best',
|
|
86
86
|
rationale: 'infra changes need deep reasoning'
|
|
87
|
+
},
|
|
88
|
+
'sage-slack-egress-migration': {
|
|
89
|
+
tier: 'best-value',
|
|
90
|
+
rationale: 'migration wiring can use the balanced default'
|
|
91
|
+
},
|
|
92
|
+
'sage-proactive-rewire': {
|
|
93
|
+
tier: 'best-value',
|
|
94
|
+
rationale: 'rewiring work is configuration-heavy rather than max-depth by default'
|
|
95
|
+
},
|
|
96
|
+
'cloud-slack-proxy-guard': {
|
|
97
|
+
tier: 'best-value',
|
|
98
|
+
rationale: 'proxy guard checks usually fit the balanced default tier'
|
|
99
|
+
},
|
|
100
|
+
'sage-cloud-e2e-conduction': {
|
|
101
|
+
tier: 'best-value',
|
|
102
|
+
rationale: 'e2e conduction benefits from strong reasoning without the highest-cost default'
|
|
103
|
+
},
|
|
104
|
+
'capability-discovery': {
|
|
105
|
+
tier: 'best-value',
|
|
106
|
+
rationale: 'lightweight discovery work'
|
|
87
107
|
}
|
|
88
108
|
}
|
|
89
109
|
});
|
|
@@ -199,6 +219,112 @@ test('materializeSkillsFor derives an install plan from a resolved persona', ()
|
|
|
199
219
|
const cmd = plan.installs[0].installCommand.join(' ');
|
|
200
220
|
assert.match(cmd, /prpm install @prpm\/npm-trusted-publishing --as /);
|
|
201
221
|
});
|
|
222
|
+
test('materializeSkills emits a skill.sh install for a github#skill source', () => {
|
|
223
|
+
const plan = materializeSkills([
|
|
224
|
+
{
|
|
225
|
+
id: 'skill.sh/find-skills',
|
|
226
|
+
source: 'https://github.com/vercel-labs/skills#find-skills',
|
|
227
|
+
description: 'skill.sh discovery skill'
|
|
228
|
+
}
|
|
229
|
+
], 'claude');
|
|
230
|
+
assert.equal(plan.installs.length, 1);
|
|
231
|
+
const [install] = plan.installs;
|
|
232
|
+
assert.equal(install.sourceKind, 'skill.sh');
|
|
233
|
+
assert.equal(install.packageRef, 'https://github.com/vercel-labs/skills#find-skills');
|
|
234
|
+
assert.deepEqual([...install.installCommand], ['npx', '-y', 'skills', 'add', 'https://github.com/vercel-labs/skills', '--skill', 'find-skills', '-y']);
|
|
235
|
+
// skill.sh uses a single universal content dir regardless of harness.
|
|
236
|
+
assert.equal(install.installedDir, '.agents/skills/find-skills');
|
|
237
|
+
assert.equal(install.installedManifest, '.agents/skills/find-skills/SKILL.md');
|
|
238
|
+
// Cleanup should target every harness symlink + the universal dir, but
|
|
239
|
+
// never the lockfile itself.
|
|
240
|
+
assert.deepEqual([...install.cleanupPaths], [
|
|
241
|
+
'.agents/skills/find-skills',
|
|
242
|
+
'.claude/skills/find-skills',
|
|
243
|
+
'.factory/skills/find-skills',
|
|
244
|
+
'.kiro/skills/find-skills',
|
|
245
|
+
'skills/find-skills'
|
|
246
|
+
]);
|
|
247
|
+
assert.ok(!install.cleanupPaths.includes('skills-lock.json'));
|
|
248
|
+
});
|
|
249
|
+
test('prpm installs carry a harness-scoped cleanup path (not the lockfile)', () => {
|
|
250
|
+
const plan = materializeSkills([
|
|
251
|
+
{
|
|
252
|
+
id: 'prpm/npm-trusted-publishing',
|
|
253
|
+
source: '@prpm/npm-trusted-publishing',
|
|
254
|
+
description: 'bare ref form'
|
|
255
|
+
}
|
|
256
|
+
], 'codex');
|
|
257
|
+
const [install] = plan.installs;
|
|
258
|
+
assert.deepEqual([...install.cleanupPaths], ['.agents/skills/npm-trusted-publishing']);
|
|
259
|
+
assert.ok(!install.cleanupPaths.includes('prpm.lock'));
|
|
260
|
+
});
|
|
261
|
+
test('usePersona install command never embeds cleanup (agent must read skills first)', () => {
|
|
262
|
+
// Regression guard: previously buildInstallArtifacts inlined `&& rm -rf` into
|
|
263
|
+
// the install step, which ran BEFORE the agent step and deleted skill files
|
|
264
|
+
// the agent needed to read. Cleanup now lives on a separate post-agent step
|
|
265
|
+
// and on install.cleanupCommandString for Mode B callers.
|
|
266
|
+
const context = usePersona('npm-provenance');
|
|
267
|
+
assert.doesNotMatch(context.install.commandString, /rm -rf/);
|
|
268
|
+
assert.match(context.install.commandString, /prpm install @prpm\/npm-trusted-publishing --as [a-z]+/);
|
|
269
|
+
});
|
|
270
|
+
test('usePersona exposes a post-run cleanupCommandString targeting skill artifact paths', () => {
|
|
271
|
+
const context = usePersona('npm-provenance');
|
|
272
|
+
assert.ok(Array.isArray(context.install.cleanupCommand));
|
|
273
|
+
assert.equal(context.install.cleanupCommand[0], 'sh');
|
|
274
|
+
assert.match(context.install.cleanupCommandString, /^rm -rf /);
|
|
275
|
+
assert.match(context.install.cleanupCommandString, /npm-trusted-publishing/);
|
|
276
|
+
// The provider lockfile must never be cleaned — repeat runs depend on it.
|
|
277
|
+
assert.doesNotMatch(context.install.cleanupCommandString, /prpm\.lock|skills-lock\.json/);
|
|
278
|
+
});
|
|
279
|
+
test('usePersona cleanupCommandString chains paths from every install in the plan', () => {
|
|
280
|
+
const context = usePersona('capability-discovery');
|
|
281
|
+
const cleanup = context.install.cleanupCommandString;
|
|
282
|
+
// Both the skill.sh symlink set and the prpm per-harness dir should appear
|
|
283
|
+
// in a single rm -rf chain.
|
|
284
|
+
assert.match(cleanup, /^rm -rf /);
|
|
285
|
+
assert.match(cleanup, /find-skills/);
|
|
286
|
+
assert.match(cleanup, /self-improving/);
|
|
287
|
+
// Cover every skill.sh harness symlink, not just the universal dir.
|
|
288
|
+
assert.match(cleanup, /\.agents\/skills\/find-skills/);
|
|
289
|
+
assert.match(cleanup, /\.claude\/skills\/find-skills/);
|
|
290
|
+
assert.match(cleanup, /\.factory\/skills\/find-skills/);
|
|
291
|
+
assert.match(cleanup, /\.kiro\/skills\/find-skills/);
|
|
292
|
+
});
|
|
293
|
+
test('usePersona cleanupCommandString is a shell no-op when the persona declares no skills', () => {
|
|
294
|
+
const context = usePersona('architecture-plan');
|
|
295
|
+
assert.equal(context.install.cleanupCommandString, ':');
|
|
296
|
+
});
|
|
297
|
+
test('resolves capability-discovery persona carrying both skill.sh and prpm skills', () => {
|
|
298
|
+
const selection = resolvePersona('capability-discovery');
|
|
299
|
+
assert.equal(selection.personaId, 'capability-discoverer');
|
|
300
|
+
assert.equal(selection.tier, 'best-value');
|
|
301
|
+
assert.equal(selection.skills.length, 2);
|
|
302
|
+
const byId = new Map(selection.skills.map((s) => [s.id, s]));
|
|
303
|
+
const skillSh = byId.get('skill.sh/find-skills');
|
|
304
|
+
assert.ok(skillSh, 'missing skill.sh/find-skills skill');
|
|
305
|
+
assert.equal(skillSh.source, 'https://github.com/vercel-labs/skills#find-skills');
|
|
306
|
+
const prpm = byId.get('prpm/self-improving');
|
|
307
|
+
assert.ok(prpm, 'missing prpm/self-improving skill');
|
|
308
|
+
assert.match(prpm.source, /prpm\.dev\/packages\/@prpm\/self-improving/);
|
|
309
|
+
});
|
|
310
|
+
test('materializeSkillsFor capability-discovery plans both installs under one shell chain with cleanup', () => {
|
|
311
|
+
const selection = resolvePersona('capability-discovery');
|
|
312
|
+
const plan = materializeSkillsFor(selection);
|
|
313
|
+
assert.equal(plan.installs.length, 2);
|
|
314
|
+
const byKind = new Map(plan.installs.map((i) => [i.sourceKind, i]));
|
|
315
|
+
const skillShInstall = byKind.get('skill.sh');
|
|
316
|
+
const prpmInstall = byKind.get('prpm');
|
|
317
|
+
assert.ok(skillShInstall, 'missing skill.sh install');
|
|
318
|
+
assert.ok(prpmInstall, 'missing prpm install');
|
|
319
|
+
assert.deepEqual([...skillShInstall.installCommand], ['npx', '-y', 'skills', 'add', 'https://github.com/vercel-labs/skills', '--skill', 'find-skills', '-y']);
|
|
320
|
+
assert.equal(prpmInstall.packageRef, '@prpm/self-improving');
|
|
321
|
+
const context = usePersona('capability-discovery');
|
|
322
|
+
const cmd = context.install.commandString;
|
|
323
|
+
// Both installs should be chained back-to-back with `&&`, with NO inline
|
|
324
|
+
// cleanup — cleanup lives on a separate post-agent step.
|
|
325
|
+
assert.match(cmd, /skills add https:\/\/github\.com\/vercel-labs\/skills --skill find-skills -y && npx -y prpm install @prpm\/self-improving/);
|
|
326
|
+
assert.doesNotMatch(cmd, /rm -rf/);
|
|
327
|
+
});
|
|
202
328
|
test('materializeSkills rejects unknown skill sources', () => {
|
|
203
329
|
assert.throws(() => materializeSkills([
|
|
204
330
|
{
|
|
@@ -295,6 +421,55 @@ process.stdout.write('agent-after-install');
|
|
|
295
421
|
rmSync(dir, { recursive: true, force: true });
|
|
296
422
|
}
|
|
297
423
|
});
|
|
424
|
+
test('usePersona.sendMessage keeps skill files on disk for the agent, then cleans them up after', async () => {
|
|
425
|
+
// Regression guard for the Devin-flagged P1: cleanup used to be chained
|
|
426
|
+
// into the install step with `&& rm -rf`, so by the time the agent step
|
|
427
|
+
// ran the skill manifest was already gone. This test:
|
|
428
|
+
// 1. Uses a fake `npx` that writes a stub SKILL.md into the exact path
|
|
429
|
+
// listed in the install plan's cleanupPaths (simulating prpm install).
|
|
430
|
+
// 2. Uses a fake `codex` that asserts the SKILL.md IS present and
|
|
431
|
+
// captures its location, then writes an agent-ran sentinel.
|
|
432
|
+
// 3. Asserts that after sendMessage settles, the cleanupPaths have been
|
|
433
|
+
// removed — proving the post-agent cleanup step ran.
|
|
434
|
+
const dir = mkdtempSync(join(tmpdir(), 'use-persona-cleanup-'));
|
|
435
|
+
try {
|
|
436
|
+
// The install plan cleanupPaths for npm-provenance under codex is
|
|
437
|
+
// `.agents/skills/npm-trusted-publishing`. The fake npx must materialize
|
|
438
|
+
// a SKILL.md inside that dir so the agent can verify it.
|
|
439
|
+
writeNodeExecutable(dir, 'npx', `
|
|
440
|
+
const { mkdirSync, writeFileSync } = require('node:fs');
|
|
441
|
+
const path = require('node:path');
|
|
442
|
+
const skillDir = path.join(process.cwd(), '.agents/skills/npm-trusted-publishing');
|
|
443
|
+
mkdirSync(skillDir, { recursive: true });
|
|
444
|
+
writeFileSync(path.join(skillDir, 'SKILL.md'), '# npm trusted publishing', 'utf8');
|
|
445
|
+
`);
|
|
446
|
+
writeNodeExecutable(dir, 'codex', `
|
|
447
|
+
const { existsSync, writeFileSync } = require('node:fs');
|
|
448
|
+
const skillPath = '.agents/skills/npm-trusted-publishing/SKILL.md';
|
|
449
|
+
if (!existsSync(skillPath)) {
|
|
450
|
+
process.stderr.write('SKILL.md missing during agent step');
|
|
451
|
+
process.exit(9);
|
|
452
|
+
}
|
|
453
|
+
writeFileSync('agent-saw-skill.txt', 'yes', 'utf8');
|
|
454
|
+
process.stdout.write('agent-read-skill');
|
|
455
|
+
`);
|
|
456
|
+
const context = usePersona('npm-provenance', { harness: 'codex' });
|
|
457
|
+
// Sanity check: plan must say this is the path we expect to verify.
|
|
458
|
+
assert.deepEqual(context.install.plan.installs[0]?.cleanupPaths, ['.agents/skills/npm-trusted-publishing']);
|
|
459
|
+
const result = await context.sendMessage('Configure publishing', {
|
|
460
|
+
workingDirectory: dir,
|
|
461
|
+
env: buildEnv(dir)
|
|
462
|
+
});
|
|
463
|
+
assert.equal(result.status, 'completed');
|
|
464
|
+
// Agent must have seen the skill during its run.
|
|
465
|
+
assert.equal(readFileSync(join(dir, 'agent-saw-skill.txt'), 'utf8'), 'yes');
|
|
466
|
+
// Post-agent cleanup must have removed the skill artifact path.
|
|
467
|
+
assert.equal(existsSync(join(dir, '.agents/skills/npm-trusted-publishing')), false, 'cleanup step should have removed the skill artifact dir after the agent ran');
|
|
468
|
+
}
|
|
469
|
+
finally {
|
|
470
|
+
rmSync(dir, { recursive: true, force: true });
|
|
471
|
+
}
|
|
472
|
+
});
|
|
298
473
|
test('usePersona.sendMessage maps non-zero exits to PersonaExecutionError with captured stderr', async () => {
|
|
299
474
|
const dir = mkdtempSync(join(tmpdir(), 'use-persona-fail-'));
|
|
300
475
|
try {
|