codex-orchestrator 0.1.27 → 0.1.29
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/CHANGELOG.md +9 -0
- package/README.md +11 -2
- package/dist/src/cli.js +28 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/github/gh-issue-adapter.d.ts +2 -1
- package/dist/src/github/gh-issue-adapter.d.ts.map +1 -1
- package/dist/src/github/gh-issue-adapter.js +9 -0
- package/dist/src/github/gh-issue-adapter.js.map +1 -1
- package/dist/src/github/issues.d.ts +29 -0
- package/dist/src/github/issues.d.ts.map +1 -1
- package/dist/src/github/issues.js +75 -0
- package/dist/src/github/issues.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/runner/doctor-command.d.ts +2 -0
- package/dist/src/runner/doctor-command.d.ts.map +1 -1
- package/dist/src/runner/doctor-command.js +40 -10
- package/dist/src/runner/doctor-command.js.map +1 -1
- package/dist/src/runner/recovery.d.ts +1 -1
- package/dist/src/runner/recovery.d.ts.map +1 -1
- package/dist/src/runner/recovery.js +6 -3
- package/dist/src/runner/recovery.js.map +1 -1
- package/dist/src/setup/codex-command-resolver.d.ts +10 -0
- package/dist/src/setup/codex-command-resolver.d.ts.map +1 -0
- package/dist/src/setup/codex-command-resolver.js +91 -0
- package/dist/src/setup/codex-command-resolver.js.map +1 -0
- package/dist/src/setup/prompt-sync.d.ts +13 -0
- package/dist/src/setup/prompt-sync.d.ts.map +1 -0
- package/dist/src/setup/prompt-sync.js +219 -0
- package/dist/src/setup/prompt-sync.js.map +1 -0
- package/dist/src/setup/setup-command.d.ts +5 -0
- package/dist/src/setup/setup-command.d.ts.map +1 -1
- package/dist/src/setup/setup-command.js +41 -29
- package/dist/src/setup/setup-command.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { execFile } from 'node:child_process';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
4
|
import { promisify } from 'node:util';
|
|
5
5
|
import { validateConfig } from '../config/schema.js';
|
|
6
|
+
import { resolveCodexCommand } from './codex-command-resolver.js';
|
|
6
7
|
import { GhCliLabelAdapter } from './github-label-adapter.js';
|
|
7
8
|
import { planLabels } from './labels.js';
|
|
8
9
|
import { assertNoRuntimeState, buildProjectConfig, mergeExistingProjectConfig, projectConfigPath, readExistingConfig, writeProjectConfig, } from './project-config.js';
|
|
10
|
+
import { checkPromptFiles, syncPromptFiles } from './prompt-sync.js';
|
|
9
11
|
import { resolveWorkflowConfigs, workflowDefinitions } from './workflows.js';
|
|
10
12
|
const execFileAsync = promisify(execFile);
|
|
11
13
|
export async function runSetupCommand(options) {
|
|
@@ -21,6 +23,7 @@ export async function runSetupCommand(options) {
|
|
|
21
23
|
}
|
|
22
24
|
const prepareLabels = options.prepareLabels ? 'create-missing' : 'report-only';
|
|
23
25
|
const workflows = await resolveWorkflowConfigs();
|
|
26
|
+
const discoveredCodexCommand = await (options.codexCommandResolver ?? resolveCodexCommand)();
|
|
24
27
|
const defaultConfig = buildProjectConfig({
|
|
25
28
|
owner,
|
|
26
29
|
repo,
|
|
@@ -28,6 +31,7 @@ export async function runSetupCommand(options) {
|
|
|
28
31
|
workflows,
|
|
29
32
|
});
|
|
30
33
|
const config = mergeExistingProjectConfig(defaultConfig, existingConfig);
|
|
34
|
+
persistDiscoveredCodexCommand(config, discoveredCodexCommand);
|
|
31
35
|
const validation = validateConfig(config);
|
|
32
36
|
if (!validation.ok) {
|
|
33
37
|
throw new Error(`Generated config is invalid: ${validation.errors.join('; ')}`);
|
|
@@ -35,22 +39,41 @@ export async function runSetupCommand(options) {
|
|
|
35
39
|
const adapter = options.labelAdapter ?? new GhCliLabelAdapter(owner, repo);
|
|
36
40
|
const labelPlan = await planLabels(adapter, config.github.labels, prepareLabels, dryRun);
|
|
37
41
|
const promptFiles = workflowDefinitions.map((definition) => join(options.targetRoot, definition.promptPath));
|
|
38
|
-
|
|
42
|
+
const promptSyncMode = options.promptSyncMode ?? (options.replacePackageSkills ? 'replace' : 'auto');
|
|
43
|
+
let promptSync;
|
|
44
|
+
if (dryRun) {
|
|
45
|
+
promptSync = await checkPromptFiles(options.targetRoot, promptSyncMode);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
39
48
|
await writeProjectConfig(options.targetRoot, config);
|
|
40
|
-
await
|
|
49
|
+
promptSync = await syncPromptFiles(options.targetRoot, promptSyncMode);
|
|
41
50
|
await ensureRuntimeGitignoreEntries(options.targetRoot, config);
|
|
42
51
|
await ensurePackageScripts(options.targetRoot);
|
|
43
52
|
}
|
|
44
|
-
const output = formatSetupOutput(configPath, labelPlan, config, promptFiles, dryRun);
|
|
53
|
+
const output = formatSetupOutput(configPath, labelPlan, config, promptFiles, dryRun, promptSync);
|
|
45
54
|
return {
|
|
46
55
|
config,
|
|
47
56
|
configPath,
|
|
48
57
|
dryRun,
|
|
49
58
|
labelPlan,
|
|
50
59
|
promptFiles,
|
|
60
|
+
promptSync,
|
|
51
61
|
output,
|
|
52
62
|
};
|
|
53
63
|
}
|
|
64
|
+
function persistDiscoveredCodexCommand(config, discoveredCodexCommand) {
|
|
65
|
+
if (!discoveredCodexCommand) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (config.codex.command === 'codex') {
|
|
69
|
+
config.codex.command = discoveredCodexCommand;
|
|
70
|
+
}
|
|
71
|
+
for (const profile of Object.values(config.codex.profiles ?? {})) {
|
|
72
|
+
if (profile?.command === 'codex') {
|
|
73
|
+
profile.command = discoveredCodexCommand;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
54
77
|
const packageScripts = {
|
|
55
78
|
'orchestrator:doctor': 'codex-orchestrator doctor --target .',
|
|
56
79
|
'orchestrator:status': 'codex-orchestrator status --target .',
|
|
@@ -122,7 +145,7 @@ function normalizeExistingGitignoreLine(line) {
|
|
|
122
145
|
}
|
|
123
146
|
return gitignoreDirectory(trimmed);
|
|
124
147
|
}
|
|
125
|
-
function formatSetupOutput(configPath, labelPlan, config, promptFiles, dryRun) {
|
|
148
|
+
function formatSetupOutput(configPath, labelPlan, config, promptFiles, dryRun, promptSync) {
|
|
126
149
|
const workflowLines = Object.entries(config.workflows)
|
|
127
150
|
.map(([id, workflow]) => ` - ${id}: ${workflow.source}`)
|
|
128
151
|
.join('\n');
|
|
@@ -137,6 +160,7 @@ function formatSetupOutput(configPath, labelPlan, config, promptFiles, dryRun) {
|
|
|
137
160
|
workflowLines,
|
|
138
161
|
'prompts:',
|
|
139
162
|
promptSummary,
|
|
163
|
+
formatPromptSync(promptSync),
|
|
140
164
|
`checks: ${Object.keys(config.checks).join(', ')}`,
|
|
141
165
|
`gitignore runtime entries: ${runtimeGitignoreEntries(config).join(', ')}`,
|
|
142
166
|
`codex command: ${config.codex.command} ${config.codex.args.join(' ')}`,
|
|
@@ -146,31 +170,19 @@ function formatSetupOutput(configPath, labelPlan, config, promptFiles, dryRun) {
|
|
|
146
170
|
'setup will not commit or open a pull request',
|
|
147
171
|
].join('\n');
|
|
148
172
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const sourceName = definition.promptPath.replace('.codex-orchestrator/prompts/workflows/', '');
|
|
153
|
-
await copyPrompt(join('workflows', sourceName), join(targetRoot, definition.promptPath), replacePackageSkills);
|
|
173
|
+
function formatPromptSync(promptSync) {
|
|
174
|
+
if (!promptSync) {
|
|
175
|
+
return 'prompt sync: dry-run';
|
|
154
176
|
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const source = new URL(`../../../prompts/${relativePromptPath}`, import.meta.url);
|
|
159
|
-
if (replacePackageSkills) {
|
|
160
|
-
await cp(source, destination, { force: true });
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
try {
|
|
164
|
-
await readFile(destination, 'utf8');
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
168
|
-
const content = await readFile(source, 'utf8');
|
|
169
|
-
await writeFile(destination, content, 'utf8');
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
throw error;
|
|
177
|
+
const line = `prompt sync: ${promptSync.installed.length} installed, ${promptSync.updated.length} updated, ${promptSync.preserved.length} preserved, ${promptSync.conflicts.length} conflict`;
|
|
178
|
+
if (promptSync.conflicts.length === 0) {
|
|
179
|
+
return line;
|
|
173
180
|
}
|
|
181
|
+
return [
|
|
182
|
+
line,
|
|
183
|
+
`prompt conflicts: ${promptSync.conflicts.join(', ')}`,
|
|
184
|
+
'Run setup --sync-prompts=merge or --sync-prompts=replace to resolve package prompt updates.',
|
|
185
|
+
].join('\n');
|
|
174
186
|
}
|
|
175
187
|
function readExistingString(config, section, key) {
|
|
176
188
|
const sectionValue = config?.[section];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../../src/setup/setup-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../../src/setup/setup-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAA8C,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAwB1C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE5D,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAErC,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,kBAAkB,EAAE,KAAK,CAAC;IACxH,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,kBAAkB,EAAE,IAAI,CAAC;IAEpH,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;IAC/H,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC/E,MAAM,SAAS,GAAG,MAAM,sBAAsB,EAAE,CAAC;IACjD,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,EAAE,CAAC;IAC7F,MAAM,aAAa,GAAG,kBAAkB,CAAC;QACvC,KAAK;QACL,IAAI;QACJ,aAAa;QACb,SAAS;KACV,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,0BAA0B,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzE,6BAA6B,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7G,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrG,IAAI,UAAwC,CAAC;IAE7C,IAAI,MAAM,EAAE,CAAC;QACX,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,UAAU,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACvE,MAAM,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEjG,OAAO;QACL,MAAM;QACN,UAAU;QACV,MAAM;QACN,SAAS;QACT,WAAW;QACX,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,MAA+B,EAC/B,sBAA0C;IAE1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,sBAAsB,CAAC;IAChD,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,OAAO,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAA2B;IAC7C,qBAAqB,EAAE,sCAAsC;IAC7D,qBAAqB,EAAE,sCAAsC;IAC7D,0BAA0B,EAAE,6CAA6C;IACzE,qBAAqB,EAAE,8EAA8E;IACrG,0BAA0B,EAAE,qFAAqF;IACjH,0BAA0B,EAAE,oGAAoG;IAChI,0BAA0B,EAAE,2FAA2F;CACxH,CAAC;AAEF,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IACpD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IACnE,MAAM,eAAe,GAAG,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;QACpI,CAAC,CAAC,WAAW,CAAC,OAAkC;QAChD,CAAC,CAAC,EAAE,CAAC;IAEP,WAAW,CAAC,OAAO,GAAG;QACpB,GAAG,cAAc;QACjB,GAAG,eAAe;KACnB,CAAC;IACF,MAAM,SAAS,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,UAAkB,EAAE,MAA+B;IAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC5E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC5F,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAClC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC;IACb,MAAM,SAAS,CACb,aAAa,EACb,GAAG,QAAQ,GAAG,MAAM,uCAAuC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACxF,MAAM,CACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC;AACrF,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA+B;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACxB,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/C,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC3C,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,SAAoB,EACpB,MAA+B,EAC/B,WAAqB,EACrB,MAAe,EACf,UAAwC;IAExC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACxF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1E,OAAO;QACL,WAAW,UAAU,EAAE;QACvB,SAAS,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE;QACvC,WAAW,SAAS,CAAC,MAAM,EAAE;QAC7B,mBAAmB,aAAa,EAAE;QAClC,YAAY;QACZ,aAAa;QACb,UAAU;QACV,aAAa;QACb,gBAAgB,CAAC,UAAU,CAAC;QAC5B,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClD,8BAA8B,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1E,kBAAkB,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACvE,kBAAkB,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;QACtG,kBAAkB,MAAM,CAAC,YAAY,CAAC,gBAAgB,KAAK,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE;QAC/F,4BAA4B;QAC5B,8CAA8C;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAwC;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,UAAU,CAAC,SAAS,CAAC,MAAM,eAAe,UAAU,CAAC,OAAO,CAAC,MAAM,aAAa,UAAU,CAAC,SAAS,CAAC,MAAM,eAAe,UAAU,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC;IAC9L,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI;QACJ,qBAAqB,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACtD,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,MAA2C,EAC3C,OAAe,EACf,GAAW;IAEX,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAI,YAAwC,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,UAAkB;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7F,OAAO,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,MAAM,QAAQ,GAAG;QACf,sDAAsD;QACtD,+CAA+C;QAC/C,wDAAwD;KACzD,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|