@rasensio/aidlc 1.61.0 → 1.63.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/autopilot/driver.d.ts +23 -2
- package/dist/autopilot/driver.d.ts.map +1 -1
- package/dist/autopilot/driver.js +233 -23
- package/dist/autopilot/driver.js.map +1 -1
- package/dist/autopilot/presets.d.ts +32 -1
- package/dist/autopilot/presets.d.ts.map +1 -1
- package/dist/autopilot/presets.js +21 -1
- package/dist/autopilot/presets.js.map +1 -1
- package/dist/autopilot/questions.d.ts +13 -7
- package/dist/autopilot/questions.d.ts.map +1 -1
- package/dist/autopilot/questions.js +62 -7
- package/dist/autopilot/questions.js.map +1 -1
- package/dist/autopilot/run.d.ts +11 -1
- package/dist/autopilot/run.d.ts.map +1 -1
- package/dist/autopilot/run.js +18 -2
- package/dist/autopilot/run.js.map +1 -1
- package/dist/autopilot/state.d.ts +20 -1
- package/dist/autopilot/state.d.ts.map +1 -1
- package/dist/autopilot/state.js.map +1 -1
- package/dist/autopilot/stops.d.ts +62 -0
- package/dist/autopilot/stops.d.ts.map +1 -0
- package/dist/autopilot/stops.js +98 -0
- package/dist/autopilot/stops.js.map +1 -0
- package/dist/autopilot/team.d.ts +4 -1
- package/dist/autopilot/team.d.ts.map +1 -1
- package/dist/autopilot/team.js +14 -1
- package/dist/autopilot/team.js.map +1 -1
- package/dist/commands/autopilot.d.ts +27 -1
- package/dist/commands/autopilot.d.ts.map +1 -1
- package/dist/commands/autopilot.js +120 -10
- package/dist/commands/autopilot.js.map +1 -1
- package/dist/commands/init.js +3 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/spec.d.ts.map +1 -1
- package/dist/commands/spec.js +3 -1
- package/dist/commands/spec.js.map +1 -1
- package/dist/setup/work-mode.d.ts +1 -1
- package/dist/setup/work-mode.d.ts.map +1 -1
- package/dist/spec/delta.d.ts.map +1 -1
- package/dist/spec/delta.js +11 -2
- package/dist/spec/delta.js.map +1 -1
- package/dist/spec/fold.d.ts.map +1 -1
- package/dist/spec/fold.js +6 -0
- package/dist/spec/fold.js.map +1 -1
- package/dist/spec/types.d.ts +2 -0
- package/dist/spec/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where autopilot stops and waits for a person (autopilot-stop-controls/AC-1).
|
|
3
|
+
*
|
|
4
|
+
* Two settings. `stop_at` is the last step autopilot takes for an item: `pr` opens
|
|
5
|
+
* the pull request and waits for a person to merge it, `merge` merges without the
|
|
6
|
+
* release step, `release` merges and releases. `pause_after` names the phases after
|
|
7
|
+
* which the agent stops and the item waits for `aidlc autopilot approve`.
|
|
8
|
+
*
|
|
9
|
+
* Every place a value enters — team file, machine file, setup flags, run flags —
|
|
10
|
+
* goes through the parsers here, so `AIDLC_PAUSE_AFTER` can only ever carry a name
|
|
11
|
+
* from {@link PAUSE_PHASES}.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
export const STOP_AT = ['pr', 'merge', 'release'];
|
|
16
|
+
/** In lifecycle order: the earliest unapproved one is the one waited on (autopilot-stop-controls/AC-13). */
|
|
17
|
+
export const PAUSE_PHASES = ['requirements', 'design', 'implementation', 'testing'];
|
|
18
|
+
/** The flag text that {@link parsePauseFlag} reads back. */
|
|
19
|
+
export function pauseFlag(pauses) {
|
|
20
|
+
return pauses.length === 0 ? 'none' : pauses.join(',');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* What an absent key meant before stops existed, so a config saved earlier, or an
|
|
24
|
+
* item tracked since then, behaves as it did (autopilot-stop-controls/AC-3, AC-6).
|
|
25
|
+
*/
|
|
26
|
+
export const LEGACY_STOPS = Object.freeze({ stop_at: 'release', pause_after: [] });
|
|
27
|
+
export function parseStopAt(value) {
|
|
28
|
+
return typeof value === 'string' && STOP_AT.includes(value) ? value : undefined;
|
|
29
|
+
}
|
|
30
|
+
/** A list of allowed phase names, deduplicated and in lifecycle order; anything else is undefined. */
|
|
31
|
+
export function parsePauseAfter(value) {
|
|
32
|
+
if (!Array.isArray(value))
|
|
33
|
+
return undefined;
|
|
34
|
+
if (!value.every((v) => typeof v === 'string' && PAUSE_PHASES.includes(v)))
|
|
35
|
+
return undefined;
|
|
36
|
+
return PAUSE_PHASES.filter((p) => value.includes(p));
|
|
37
|
+
}
|
|
38
|
+
/** Flag text: `none` is no pauses, otherwise comma-separated phase names. */
|
|
39
|
+
export function parsePauseFlag(text) {
|
|
40
|
+
const t = text.trim();
|
|
41
|
+
if (t === 'none')
|
|
42
|
+
return [];
|
|
43
|
+
const names = t.split(',').map((s) => s.trim());
|
|
44
|
+
if (names.some((n) => n === ''))
|
|
45
|
+
return undefined;
|
|
46
|
+
return parsePauseAfter(names);
|
|
47
|
+
}
|
|
48
|
+
/** The stops a config sets, key by key; an absent or invalid key keeps its legacy value. */
|
|
49
|
+
export function stopsInForce(config) {
|
|
50
|
+
return {
|
|
51
|
+
stop_at: parseStopAt(config?.stop_at) ?? LEGACY_STOPS.stop_at,
|
|
52
|
+
pause_after: parsePauseAfter(config?.pause_after) ?? [...LEGACY_STOPS.pause_after],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Whether a config sets either stop key validly. */
|
|
56
|
+
export function setsStops(config) {
|
|
57
|
+
return parseStopAt(config?.stop_at) !== undefined || parsePauseAfter(config?.pause_after) !== undefined;
|
|
58
|
+
}
|
|
59
|
+
const STOP_AT_WORDS = {
|
|
60
|
+
pr: 'wait at the pull request for you to merge it',
|
|
61
|
+
merge: 'merge when CI passes, no release',
|
|
62
|
+
release: 'merge and run the release step',
|
|
63
|
+
};
|
|
64
|
+
export function describePauses(pauses) {
|
|
65
|
+
return pauses.length === 0 ? 'no pauses' : `pause after ${pauses.join(', ')}`;
|
|
66
|
+
}
|
|
67
|
+
export function describeStopAt(stop) {
|
|
68
|
+
return STOP_AT_WORDS[stop];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The line `aidlc autopilot run` prints on every start. With neither key set it
|
|
72
|
+
* says what that means, so nobody finds out from the merged pull request
|
|
73
|
+
* (autopilot-stop-controls/AC-5).
|
|
74
|
+
*/
|
|
75
|
+
export function stopsLine(config) {
|
|
76
|
+
if (!setsStops(config)) {
|
|
77
|
+
return 'stops: none set — each item is merged and released with no review; `aidlc autopilot setup` sets them';
|
|
78
|
+
}
|
|
79
|
+
const s = stopsInForce(config);
|
|
80
|
+
return `stops: ${describePauses(s.pause_after)}; ${describeStopAt(s.stop_at)}`;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* An item's paused phases not yet approved, in lifecycle order. Read through the
|
|
84
|
+
* allowlist rather than trusting the list: it comes back from `state.json`, which
|
|
85
|
+
* is a file a person can edit.
|
|
86
|
+
*/
|
|
87
|
+
function unapproved(stops, approved) {
|
|
88
|
+
return PAUSE_PHASES.filter((p) => stops.pause_after.includes(p) && !approved.includes(p));
|
|
89
|
+
}
|
|
90
|
+
/** The earliest paused phase that is complete and not yet approved, or null. */
|
|
91
|
+
export function pendingReview(stops, approved, complete) {
|
|
92
|
+
return unapproved(stops, approved).find(complete) ?? null;
|
|
93
|
+
}
|
|
94
|
+
/** `AIDLC_PAUSE_AFTER` for the agent (autopilot-stop-controls/AC-11). */
|
|
95
|
+
export function pauseEnv(stops, approved) {
|
|
96
|
+
return unapproved(stops, approved).join(',');
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=stops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stops.js","sourceRoot":"","sources":["../../src/autopilot/stops.ts"],"names":[],"mappings":"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"}
|
package/dist/autopilot/team.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Team defaults for autopilot: the `autopilot:` section of the committed
|
|
3
3
|
* `.aidlc/config.yaml` (init-sets-work-mode/AC-21..AC-23).
|
|
4
4
|
*
|
|
5
|
-
* Only the cost cap
|
|
5
|
+
* Only the cost cap, the release step and the stops are team decisions. The agent, its
|
|
6
6
|
* permissions and how many items build at once belong to the machine that runs
|
|
7
7
|
* them, so those keys are never read from a committed file — a clone must not be
|
|
8
8
|
* able to hand an agent full access on somebody else's machine.
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @module
|
|
11
11
|
*/
|
|
12
12
|
import type { AutopilotConfig } from './state.js';
|
|
13
|
+
import { type PausePhase, type StopAt } from './stops.js';
|
|
13
14
|
/**
|
|
14
15
|
* Preset names, never a command: a name resolved against `releasePresets` can only
|
|
15
16
|
* select a command the code already offers (init-sets-work-mode/AC-18).
|
|
@@ -20,6 +21,8 @@ export interface TeamDefaults {
|
|
|
20
21
|
/** null = no cap. */
|
|
21
22
|
cost_cap_usd?: number | null;
|
|
22
23
|
release?: TeamReleaseId;
|
|
24
|
+
stop_at?: StopAt;
|
|
25
|
+
pause_after?: PausePhase[];
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* The validated `autopilot:` section of `<projectRoot>/.aidlc/config.yaml`. Never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAgC,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAExF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wCAAyC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CA6BlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,GAClB,eAAe,GAAG,IAAI,CAWxB"}
|
package/dist/autopilot/team.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Team defaults for autopilot: the `autopilot:` section of the committed
|
|
3
3
|
* `.aidlc/config.yaml` (init-sets-work-mode/AC-21..AC-23).
|
|
4
4
|
*
|
|
5
|
-
* Only the cost cap
|
|
5
|
+
* Only the cost cap, the release step and the stops are team decisions. The agent, its
|
|
6
6
|
* permissions and how many items build at once belong to the machine that runs
|
|
7
7
|
* them, so those keys are never read from a committed file — a clone must not be
|
|
8
8
|
* able to hand an agent full access on somebody else's machine.
|
|
@@ -13,6 +13,7 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { parse as parseYaml } from 'yaml';
|
|
15
15
|
import { releasePresets } from './presets.js';
|
|
16
|
+
import { parsePauseAfter, parseStopAt } from './stops.js';
|
|
16
17
|
/**
|
|
17
18
|
* Preset names, never a command: a name resolved against `releasePresets` can only
|
|
18
19
|
* select a command the code already offers (init-sets-work-mode/AC-18).
|
|
@@ -50,6 +51,14 @@ export function loadTeamDefaults(projectRoot) {
|
|
|
50
51
|
if (typeof raw.release === 'string' && releasePresets(projectRoot).some((r) => r.id === raw.release)) {
|
|
51
52
|
team.release = raw.release;
|
|
52
53
|
}
|
|
54
|
+
// A stop the team got wrong is ignored like a bad cap, never half-applied
|
|
55
|
+
// (autopilot-stop-controls/AC-2).
|
|
56
|
+
const stopAt = parseStopAt(raw.stop_at);
|
|
57
|
+
if (stopAt !== undefined)
|
|
58
|
+
team.stop_at = stopAt;
|
|
59
|
+
const pauses = parsePauseAfter(raw.pause_after);
|
|
60
|
+
if (pauses !== undefined)
|
|
61
|
+
team.pause_after = pauses;
|
|
53
62
|
return team;
|
|
54
63
|
}
|
|
55
64
|
/**
|
|
@@ -70,6 +79,10 @@ export function withTeamDefaults(machine, team, projectRoot) {
|
|
|
70
79
|
if (preset)
|
|
71
80
|
base.release_command = preset.command;
|
|
72
81
|
}
|
|
82
|
+
if (team.stop_at !== undefined)
|
|
83
|
+
base.stop_at = team.stop_at;
|
|
84
|
+
if (team.pause_after !== undefined)
|
|
85
|
+
base.pause_after = team.pause_after;
|
|
73
86
|
return { ...base, ...machine };
|
|
74
87
|
}
|
|
75
88
|
//# sourceMappingURL=team.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
* `aidlc autopilot` — work the backlog in the background, on request
|
|
3
3
|
* (autopilot-on-demand/AC-1..AC-13).
|
|
4
4
|
*
|
|
5
|
-
* - `setup` — pick the agent, parallelism, cost cap
|
|
5
|
+
* - `setup` — pick the agent, parallelism, cost cap, where it stops for a person,
|
|
6
|
+
* and the release step from lists.
|
|
6
7
|
* - `run` — start one background run for `--items n` or `--all`, and return.
|
|
7
8
|
* - `stop` — create the STOP file; the run ends at its next step.
|
|
8
9
|
* - `pause` — freeze the run and its agents where they stand; `resume` thaws them.
|
|
9
10
|
* - `status` — the active run and every tracked item.
|
|
11
|
+
* - `approve` — carry on an item paused for review (autopilot-stop-controls).
|
|
12
|
+
* - `forget` — stop tracking an item finished or abandoned by hand.
|
|
10
13
|
* - `tick` — one pass, in the foreground; kept for debugging.
|
|
11
14
|
*
|
|
12
15
|
* The driver acts in the primary checkout (merges and releases happen on its
|
|
@@ -17,10 +20,13 @@
|
|
|
17
20
|
import { Command } from 'commander';
|
|
18
21
|
import { type Prompter } from '../core/prompt.js';
|
|
19
22
|
import { type AutopilotConfig, type AutopilotPaths, type RunRecord } from '../autopilot/state.js';
|
|
23
|
+
import { type StopOverrides } from '../autopilot/stops.js';
|
|
20
24
|
export interface SetupOptions {
|
|
21
25
|
agent?: string;
|
|
22
26
|
parallel?: string;
|
|
23
27
|
costCap?: string;
|
|
28
|
+
pauseAfter?: string;
|
|
29
|
+
stopAt?: string;
|
|
24
30
|
release?: string;
|
|
25
31
|
nonInteractive?: boolean;
|
|
26
32
|
}
|
|
@@ -40,18 +46,38 @@ export type SetupOutcome = {
|
|
|
40
46
|
* agent's permissions on the user's behalf.
|
|
41
47
|
*/
|
|
42
48
|
export declare function runSetup(repo: string, p: AutopilotPaths, opts: SetupOptions, prompt?: Prompter): Promise<SetupOutcome>;
|
|
49
|
+
export declare function describeConfig(p: AutopilotPaths, c: AutopilotConfig): string;
|
|
43
50
|
/**
|
|
44
51
|
* `aidlc autopilot setup`. `aidlc init` asks the same four questions through
|
|
45
52
|
* `askAutopilotQuestions` and saves the answers per home instead
|
|
46
53
|
* (init-sets-work-mode/AC-16, AC-20).
|
|
47
54
|
*/
|
|
48
55
|
export declare function setupCommand(opts: SetupOptions, prompt?: Prompter): Promise<number>;
|
|
56
|
+
/** `--stop-at` and `--pause-after`, or the message naming the valid values (autopilot-stop-controls/AC-4, AC-8). */
|
|
57
|
+
export declare function parseStopFlags(opts: {
|
|
58
|
+
stopAt?: string;
|
|
59
|
+
pauseAfter?: string;
|
|
60
|
+
}): {
|
|
61
|
+
ok: true;
|
|
62
|
+
stops: StopOverrides;
|
|
63
|
+
} | {
|
|
64
|
+
ok: false;
|
|
65
|
+
reason: string;
|
|
66
|
+
};
|
|
67
|
+
/** The stops a run started now would apply: team, then machine, then its flags (autopilot-stop-controls/AC-5). */
|
|
68
|
+
export declare function runStopsLine(repo: string, p: AutopilotPaths, stops: StopOverrides): string;
|
|
49
69
|
/**
|
|
50
70
|
* `aidlc autopilot forget <instance>` — stop tracking an item finished or
|
|
51
71
|
* abandoned by hand, so the next run does not try to merge it again
|
|
52
72
|
* (autopilot-merge-lane-stalls-on-conflicts/AC-17, AC-18).
|
|
53
73
|
*/
|
|
54
74
|
export declare function forgetCommand(name: string): number;
|
|
75
|
+
/**
|
|
76
|
+
* `aidlc autopilot approve <instance>` — approve the phase an item paused after, so
|
|
77
|
+
* the next pass carries it on. Only autopilot's own state changes
|
|
78
|
+
* (autopilot-stop-controls/AC-16, AC-17).
|
|
79
|
+
*/
|
|
80
|
+
export declare function approveCommand(name: string): number;
|
|
55
81
|
/** The run half of `status`: whether a run is active and what it has left (autopilot-on-demand/AC-9). */
|
|
56
82
|
export declare function runStatusLines(run: RunRecord | null): string[];
|
|
57
83
|
export declare function registerAutopilot(program: Command): Command;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"autopilot.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA0BnE,OAAO,EAQL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EASL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AA+C/B,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQjG;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,cAAc,EACjB,IAAI,EAAE,YAAY,EAClB,MAAM,GAAE,QAA0B,GACjC,OAAO,CAAC,YAAY,CAAC,CAsEvB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAY5E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,QAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1G;AAgBD,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAajJ;AAED,kHAAkH;AAClH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAQ1F;AAgID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBnD;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAI9D;AAmCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAuF3D"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
* `aidlc autopilot` — work the backlog in the background, on request
|
|
3
3
|
* (autopilot-on-demand/AC-1..AC-13).
|
|
4
4
|
*
|
|
5
|
-
* - `setup` — pick the agent, parallelism, cost cap
|
|
5
|
+
* - `setup` — pick the agent, parallelism, cost cap, where it stops for a person,
|
|
6
|
+
* and the release step from lists.
|
|
6
7
|
* - `run` — start one background run for `--items n` or `--all`, and return.
|
|
7
8
|
* - `stop` — create the STOP file; the run ends at its next step.
|
|
8
9
|
* - `pause` — freeze the run and its agents where they stand; `resume` thaws them.
|
|
9
10
|
* - `status` — the active run and every tracked item.
|
|
11
|
+
* - `approve` — carry on an item paused for review (autopilot-stop-controls).
|
|
12
|
+
* - `forget` — stop tracking an item finished or abandoned by hand.
|
|
10
13
|
* - `tick` — one pass, in the foreground; kept for debugging.
|
|
11
14
|
*
|
|
12
15
|
* The driver acts in the primary checkout (merges and releases happen on its
|
|
@@ -19,12 +22,14 @@ import { mkdirSync, writeFileSync } from 'node:fs';
|
|
|
19
22
|
import { primaryWorkingTree } from '../concurrency/common-dir.js';
|
|
20
23
|
import { defaultPrompter } from '../core/prompt.js';
|
|
21
24
|
import { resolveProjectRoot } from '../core/project-root.js';
|
|
22
|
-
import { forgetItem, statusLines, tick } from '../autopilot/driver.js';
|
|
23
|
-
import { AGENT_PRESETS, COST_CAP_CHOICES, PARALLEL_CHOICES, agentPreset, releasePresets, } from '../autopilot/presets.js';
|
|
25
|
+
import { approveItem, forgetItem, statusLines, tick } from '../autopilot/driver.js';
|
|
26
|
+
import { AGENT_PRESETS, COST_CAP_CHOICES, PARALLEL_CHOICES, PAUSE_CHOICES, STOP_AT_CHOICES, agentPreset, releasePresets, } from '../autopilot/presets.js';
|
|
24
27
|
import { currentSystem, identify, livePause, pauseRun, pauseStatusLines, processTable, realPauseDeps, resumeRun, } from '../autopilot/pause.js';
|
|
25
28
|
import { askAutopilotQuestions, recommended } from '../autopilot/questions.js';
|
|
26
29
|
import { activeRun, realCtx, runLoop, spawnLoopDetached, startRun } from '../autopilot/run.js';
|
|
27
30
|
import { autopilotDir, autopilotPaths, loadConfig, loadState, saveConfig, saveState, withLock, } from '../autopilot/state.js';
|
|
31
|
+
import { PAUSE_PHASES, STOP_AT, describePauses, describeStopAt, parsePauseFlag, parseStopAt, stopsInForce, stopsLine, } from '../autopilot/stops.js';
|
|
32
|
+
import { loadTeamDefaults, withTeamDefaults } from '../autopilot/team.js';
|
|
28
33
|
/** The primary checkout and the autopilot directory, or null outside a git repo. */
|
|
29
34
|
function locate(cwd = resolveProjectRoot()) {
|
|
30
35
|
const dir = autopilotDir(cwd);
|
|
@@ -52,6 +57,8 @@ function pausedNow(p) {
|
|
|
52
57
|
}
|
|
53
58
|
}
|
|
54
59
|
const PAUSED = 'the run is paused — `aidlc autopilot resume` continues it';
|
|
60
|
+
const STOP_AT_HELP = STOP_AT.join(', ');
|
|
61
|
+
const PAUSE_HELP = `comma-separated phases from ${PAUSE_PHASES.join(', ')}, or "none"`;
|
|
55
62
|
const stamp = (line) => {
|
|
56
63
|
process.stdout.write(`${new Date().toISOString()} ${line}\n`);
|
|
57
64
|
};
|
|
@@ -71,7 +78,7 @@ function parseCostCap(value) {
|
|
|
71
78
|
*/
|
|
72
79
|
export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
|
|
73
80
|
const releases = releasePresets(repo);
|
|
74
|
-
const flagged = [opts.agent, opts.parallel, opts.costCap, opts.release].some((v) => v !== undefined);
|
|
81
|
+
const flagged = [opts.agent, opts.parallel, opts.costCap, opts.pauseAfter, opts.stopAt, opts.release].some((v) => v !== undefined);
|
|
75
82
|
const ask = !flagged && !opts.nonInteractive;
|
|
76
83
|
if (ask && !prompt.interactive()) {
|
|
77
84
|
return {
|
|
@@ -82,6 +89,10 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
|
|
|
82
89
|
let agentId = opts.agent ?? recommended(AGENT_PRESETS).id;
|
|
83
90
|
let parallel = opts.parallel ?? recommended(PARALLEL_CHOICES).value;
|
|
84
91
|
let costCap = opts.costCap ?? recommended(COST_CAP_CHOICES).value;
|
|
92
|
+
// The recommended stops are the defaults: a fresh setup waits for a person
|
|
93
|
+
// (autopilot-stop-controls/AC-8).
|
|
94
|
+
let pauses = opts.pauseAfter ?? recommended(PAUSE_CHOICES).value;
|
|
95
|
+
let stopAtText = opts.stopAt ?? recommended(STOP_AT_CHOICES).value;
|
|
85
96
|
let releaseId = opts.release ?? recommended(releases).id;
|
|
86
97
|
let customCommand = null;
|
|
87
98
|
if (ask) {
|
|
@@ -89,12 +100,12 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
|
|
|
89
100
|
// Shared with `aidlc init` (init-sets-work-mode/AC-8). No "(current)" extras here:
|
|
90
101
|
// setup has always offered the plain lists and still does (AC-20).
|
|
91
102
|
const picks = await askAutopilotQuestions(prompt, releases, {
|
|
92
|
-
initial: { agent: agentId, parallel, costCap, release: releaseId },
|
|
103
|
+
initial: { agent: agentId, parallel, costCap, pauses, stopAt: stopAtText, release: releaseId },
|
|
93
104
|
extras: {},
|
|
94
105
|
});
|
|
95
106
|
if (picks === null)
|
|
96
107
|
return { ok: false, reason: 'setup cancelled — nothing written' };
|
|
97
|
-
({ agent: agentId, parallel, costCap, release: releaseId, customCommand } = picks);
|
|
108
|
+
({ agent: agentId, parallel, costCap, pauses, stopAt: stopAtText, release: releaseId, customCommand } = picks);
|
|
98
109
|
}
|
|
99
110
|
const preset = agentPreset(agentId);
|
|
100
111
|
if (customCommand === null && preset === undefined) {
|
|
@@ -107,6 +118,14 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
|
|
|
107
118
|
if (capUsd === undefined) {
|
|
108
119
|
return { ok: false, reason: `--cost-cap must be a positive number of dollars or "none", not "${costCap}"` };
|
|
109
120
|
}
|
|
121
|
+
const pauseAfter = parsePauseFlag(pauses);
|
|
122
|
+
if (pauseAfter === undefined) {
|
|
123
|
+
return { ok: false, reason: `--pause-after takes ${PAUSE_HELP}, not "${pauses}"` };
|
|
124
|
+
}
|
|
125
|
+
const stopAt = parseStopAt(stopAtText);
|
|
126
|
+
if (stopAt === undefined) {
|
|
127
|
+
return { ok: false, reason: `--stop-at must be one of ${STOP_AT_HELP}, not "${stopAtText}"` };
|
|
128
|
+
}
|
|
110
129
|
const release = releases.find((r) => r.id === releaseId);
|
|
111
130
|
if (release === undefined) {
|
|
112
131
|
return { ok: false, reason: `unknown release step "${releaseId}" — choose one of: ${releases.map((r) => r.id).join(', ')}` };
|
|
@@ -117,6 +136,8 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
|
|
|
117
136
|
agent_platform: customCommand ? 'claude-code' : preset.platform,
|
|
118
137
|
max_parallel: Number(parallel),
|
|
119
138
|
cost_cap_usd: capUsd,
|
|
139
|
+
pause_after: pauseAfter,
|
|
140
|
+
stop_at: stopAt,
|
|
120
141
|
release_command: release.command,
|
|
121
142
|
};
|
|
122
143
|
saveConfig(p, config);
|
|
@@ -124,12 +145,15 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
|
|
|
124
145
|
prompt.outro(`saved ${p.config}`);
|
|
125
146
|
return { ok: true, config };
|
|
126
147
|
}
|
|
127
|
-
function describeConfig(p, c) {
|
|
148
|
+
export function describeConfig(p, c) {
|
|
149
|
+
const stops = stopsInForce(c);
|
|
128
150
|
return [
|
|
129
151
|
`autopilot config written to ${p.config}`,
|
|
130
152
|
` agent: ${(c.agent_command ?? []).join(' ')}`,
|
|
131
153
|
` parallel: ${c.max_parallel}`,
|
|
132
154
|
` cost cap: ${c.cost_cap_usd === null ? 'none' : `$${c.cost_cap_usd} per item`}`,
|
|
155
|
+
` pauses: ${describePauses(stops.pause_after)}`,
|
|
156
|
+
` stop at: ${describeStopAt(stops.stop_at)}`,
|
|
133
157
|
` release: ${c.release_command ? c.release_command.join(' ') : 'merge only'}`,
|
|
134
158
|
'start a run with `aidlc autopilot run --items <n>` or `--all`',
|
|
135
159
|
].join('\n');
|
|
@@ -153,6 +177,34 @@ export async function setupCommand(opts, prompt = defaultPrompter) {
|
|
|
153
177
|
process.stdout.write(`${describeConfig(where.paths, r.config)}\n`);
|
|
154
178
|
return 0;
|
|
155
179
|
}
|
|
180
|
+
/** `--stop-at` and `--pause-after`, or the message naming the valid values (autopilot-stop-controls/AC-4, AC-8). */
|
|
181
|
+
export function parseStopFlags(opts) {
|
|
182
|
+
const stops = {};
|
|
183
|
+
if (opts.stopAt !== undefined) {
|
|
184
|
+
const stopAt = parseStopAt(opts.stopAt);
|
|
185
|
+
if (stopAt === undefined)
|
|
186
|
+
return { ok: false, reason: `--stop-at must be one of ${STOP_AT_HELP}, not "${opts.stopAt}"` };
|
|
187
|
+
stops.stop_at = stopAt;
|
|
188
|
+
}
|
|
189
|
+
if (opts.pauseAfter !== undefined) {
|
|
190
|
+
const pauses = parsePauseFlag(opts.pauseAfter);
|
|
191
|
+
if (pauses === undefined)
|
|
192
|
+
return { ok: false, reason: `--pause-after takes ${PAUSE_HELP}, not "${opts.pauseAfter}"` };
|
|
193
|
+
stops.pause_after = pauses;
|
|
194
|
+
}
|
|
195
|
+
return { ok: true, stops };
|
|
196
|
+
}
|
|
197
|
+
/** The stops a run started now would apply: team, then machine, then its flags (autopilot-stop-controls/AC-5). */
|
|
198
|
+
export function runStopsLine(repo, p, stops) {
|
|
199
|
+
let machine = null;
|
|
200
|
+
try {
|
|
201
|
+
machine = loadConfig(p);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// startRun reports an unreadable config; the line falls back to the team's
|
|
205
|
+
}
|
|
206
|
+
return stopsLine({ ...withTeamDefaults(machine ?? {}, loadTeamDefaults(repo), repo), ...stops });
|
|
207
|
+
}
|
|
156
208
|
async function runCommand(opts) {
|
|
157
209
|
if ((opts.items === undefined) === !opts.all) {
|
|
158
210
|
process.stderr.write('say how much to do: --items <n> or --all\n');
|
|
@@ -168,12 +220,26 @@ async function runCommand(opts) {
|
|
|
168
220
|
process.stderr.write(`--interval must be at least 1 second, not "${opts.interval}"\n`);
|
|
169
221
|
return 2;
|
|
170
222
|
}
|
|
223
|
+
const flags = parseStopFlags(opts);
|
|
224
|
+
if (!flags.ok) {
|
|
225
|
+
process.stderr.write(`${flags.reason}\n`);
|
|
226
|
+
return 2;
|
|
227
|
+
}
|
|
228
|
+
const stops = flags.stops;
|
|
171
229
|
const where = needRepo();
|
|
172
230
|
if (where === null)
|
|
173
231
|
return 1;
|
|
174
232
|
const { repo, paths: p } = where;
|
|
175
233
|
if (opts.foreground) {
|
|
176
|
-
const result = await runLoop(p, {
|
|
234
|
+
const result = await runLoop(p, {
|
|
235
|
+
limit,
|
|
236
|
+
intervalSec,
|
|
237
|
+
log: opts.log ?? '',
|
|
238
|
+
pid: process.pid,
|
|
239
|
+
startedAt: new Date().toISOString(),
|
|
240
|
+
identity: identify(process.pid),
|
|
241
|
+
stops,
|
|
242
|
+
}, { ctx: () => realCtx(repo, p, false, stamp), sleep: (ms) => new Promise((r) => setTimeout(r, ms)) });
|
|
177
243
|
if (result === 'already-running') {
|
|
178
244
|
stamp('another run is active — this one exits without doing anything');
|
|
179
245
|
return 1;
|
|
@@ -184,13 +250,14 @@ async function runCommand(opts) {
|
|
|
184
250
|
process.stderr.write(`${PAUSED}\n`);
|
|
185
251
|
return 1;
|
|
186
252
|
}
|
|
187
|
-
const r = startRun(p, limit, intervalSec, { spawnLoop: (args, log) => spawnLoopDetached(args, log, repo), now: () => Date.now() });
|
|
253
|
+
const r = startRun(p, limit, intervalSec, { spawnLoop: (args, log) => spawnLoopDetached(args, log, repo), now: () => Date.now() }, stops);
|
|
188
254
|
if (!r.ok) {
|
|
189
255
|
process.stderr.write(`${r.reason}\n`);
|
|
190
256
|
return 1;
|
|
191
257
|
}
|
|
192
258
|
process.stdout.write([
|
|
193
259
|
`autopilot running in the background (pid ${r.pid}) — ${limit === null ? 'every ready item' : `the next ${limit} item(s)`}`,
|
|
260
|
+
runStopsLine(repo, p, stops),
|
|
194
261
|
...(r.resumed.length > 0 ? [`resumed: ${r.resumed.join(', ')}`] : []),
|
|
195
262
|
`log: ${r.log}`,
|
|
196
263
|
'watch: aidlc autopilot status',
|
|
@@ -282,6 +349,38 @@ export function forgetCommand(name) {
|
|
|
282
349
|
process.stdout.write(`forgot ${item.name} (was ${item.step}${item.pr ? `, PR #${item.pr}` : ''}); nothing else was changed\n`);
|
|
283
350
|
return 0;
|
|
284
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* `aidlc autopilot approve <instance>` — approve the phase an item paused after, so
|
|
354
|
+
* the next pass carries it on. Only autopilot's own state changes
|
|
355
|
+
* (autopilot-stop-controls/AC-16, AC-17).
|
|
356
|
+
*/
|
|
357
|
+
export function approveCommand(name) {
|
|
358
|
+
const where = needRepo();
|
|
359
|
+
if (where === null)
|
|
360
|
+
return 1;
|
|
361
|
+
const p = where.paths;
|
|
362
|
+
const pass = withLock(p, () => Date.now(), () => {
|
|
363
|
+
const state = loadState(p);
|
|
364
|
+
const r = approveItem(state, name);
|
|
365
|
+
if (r.ok)
|
|
366
|
+
saveState(p, state);
|
|
367
|
+
return r;
|
|
368
|
+
});
|
|
369
|
+
if (pass.locked) {
|
|
370
|
+
process.stderr.write('another autopilot pass holds the lock — try again in a minute\n');
|
|
371
|
+
return 1;
|
|
372
|
+
}
|
|
373
|
+
const r = pass.value;
|
|
374
|
+
if (!r.ok) {
|
|
375
|
+
process.stderr.write(`${r.reason}\n`);
|
|
376
|
+
return 1;
|
|
377
|
+
}
|
|
378
|
+
const lines = [`approved ${r.item.name} after ${r.phase}; the next pass carries it on`];
|
|
379
|
+
if (activeRun(p) === null)
|
|
380
|
+
lines.push('no run is active — the next `aidlc autopilot run` carries it on');
|
|
381
|
+
process.stdout.write(`${lines.join('\n')}\n`);
|
|
382
|
+
return 0;
|
|
383
|
+
}
|
|
285
384
|
/** The run half of `status`: whether a run is active and what it has left (autopilot-on-demand/AC-9). */
|
|
286
385
|
export function runStatusLines(run) {
|
|
287
386
|
if (run === null)
|
|
@@ -329,10 +428,12 @@ export function registerAutopilot(program) {
|
|
|
329
428
|
.description('Work the backlog in the background: set up, run, watch, pause, stop');
|
|
330
429
|
group
|
|
331
430
|
.command('setup')
|
|
332
|
-
.description('Choose the agent, how many items build at once, a cost cap and the release step')
|
|
431
|
+
.description('Choose the agent, how many items build at once, a cost cap, where autopilot stops for you, and the release step')
|
|
333
432
|
.option('--agent <preset>', `Agent preset (${AGENT_PRESETS.map((a) => a.id).join(', ')})`)
|
|
334
433
|
.option('--parallel <n>', 'Items building at once: 1 or 2')
|
|
335
434
|
.option('--cost-cap <usd>', 'Stop an item past this many dollars, or "none"')
|
|
435
|
+
.option('--pause-after <phases>', `Pause for review after: ${PAUSE_HELP}`)
|
|
436
|
+
.option('--stop-at <step>', `The last step autopilot takes: ${STOP_AT_HELP}`)
|
|
336
437
|
.option('--release <preset>', 'After a merge: repo-script or merge-only')
|
|
337
438
|
.option('--non-interactive', 'No prompts; recommended choices for anything not flagged')
|
|
338
439
|
.action(async (opts) => {
|
|
@@ -344,6 +445,8 @@ export function registerAutopilot(program) {
|
|
|
344
445
|
.option('--items <n>', 'Stop after this many items are released or held')
|
|
345
446
|
.option('--all', 'Keep going until nothing is ready and nothing is in flight')
|
|
346
447
|
.option('--interval <seconds>', 'Seconds between passes', '60')
|
|
448
|
+
.option('--stop-at <step>', `For the items this run starts, the last step autopilot takes: ${STOP_AT_HELP}`)
|
|
449
|
+
.option('--pause-after <phases>', `For the items this run starts, pause for review after: ${PAUSE_HELP}`)
|
|
347
450
|
// The detached loop runs as `run --foreground`; nobody types these.
|
|
348
451
|
.addOption(new Option('--foreground').hideHelp())
|
|
349
452
|
.addOption(new Option('--log <file>').hideHelp())
|
|
@@ -374,6 +477,13 @@ export function registerAutopilot(program) {
|
|
|
374
477
|
.action(() => {
|
|
375
478
|
process.exitCode = statusCommand();
|
|
376
479
|
});
|
|
480
|
+
group
|
|
481
|
+
.command('approve')
|
|
482
|
+
.description('Approve the phase an item paused after for review, so the run carries it on')
|
|
483
|
+
.argument('<instance>', 'Instance name, as `aidlc autopilot status` shows it')
|
|
484
|
+
.action((instance) => {
|
|
485
|
+
process.exitCode = approveCommand(instance);
|
|
486
|
+
});
|
|
377
487
|
group
|
|
378
488
|
.command('forget')
|
|
379
489
|
.description('Stop tracking an item you finished or abandoned by hand')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,SAAS,GAGV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,GAKT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,SAAS,GAEV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAO1E,oFAAoF;AACpF,SAAS,MAAM,CAAC,MAAc,kBAAkB,EAAE;IAChD,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;IACvB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QACnG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uFAAuF;AACvF,SAAS,SAAS,CAAC,CAAiB;IAClC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,2DAA2D,CAAC;AAE3E,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,UAAU,GAAG,+BAA+B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAEvF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAQ,EAAE;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;AAChE,CAAC,CAAC;AAkBF,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,CAAiB,EACjB,IAAkB,EAClB,SAAmB,eAAe;IAElC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACnI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAC7C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QACjC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uHAAuH;SAChI,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;IAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC;IACpE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC;IAClE,2EAA2E;IAC3E,kCAAkC;IAClC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;IACjE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;IACnE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IACzD,IAAI,aAAa,GAAoB,IAAI,CAAC;IAE1C,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,mFAAmF;QACnF,mEAAmE;QACnE,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE;YAC1D,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE;YAC9F,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;QACtF,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,aAAa,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,OAAO,sBAAsB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAClI,CAAC;IACD,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,QAAQ,GAAG,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mEAAmE,OAAO,GAAG,EAAE,CAAC;IAC9G,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,UAAU,UAAU,MAAM,GAAG,EAAE,CAAC;IACrF,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,YAAY,UAAU,UAAU,GAAG,EAAE,CAAC;IAChG,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,SAAS,sBAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC/H,CAAC;IAED,MAAM,MAAM,GAAoB;QAC9B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxB,aAAa,EAAE,aAAa,IAAI,MAAO,CAAC,OAAO;QAC/C,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAO,CAAC,QAAQ;QAChE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC9B,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,OAAO,CAAC,OAAO;KACjC,CAAC;IACF,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,IAAI,GAAG;QAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAiB,EAAE,CAAkB;IAClE,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO;QACL,+BAA+B,CAAC,CAAC,MAAM,EAAE;QACzC,eAAe,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClD,eAAe,CAAC,CAAC,YAAY,EAAE;QAC/B,eAAe,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,WAAW,EAAE;QACjF,eAAe,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;QAClD,eAAe,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC9C,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE;QAC/E,+DAA+D;KAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAkB,EAAE,SAAmB,eAAe;IACvF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;IACvB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QACnG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC;AACX,CAAC;AAgBD,oHAAoH;AACpH,MAAM,UAAU,cAAc,CAAC,IAA8C;IAC3E,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,YAAY,UAAU,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACzH,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,UAAU,UAAU,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACtH,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,CAAiB,EAAE,KAAoB;IAChF,IAAI,OAAO,GAA2B,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IACD,OAAO,SAAS,CAAC,EAAE,GAAG,gBAAgB,CAAC,OAAO,IAAI,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAgB;IACxC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;QACvF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,CAAC,EACD;YACE,KAAK;YACL,WAAW;YACX,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;YACnB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC/B,KAAK;SACN,EACD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACpG,CAAC;QACF,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACjC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1I,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,4CAA4C,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,EAAE;QAC3H,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,WAAW,CAAC,CAAC,GAAG,EAAE;QAClB,gCAAgC;QAChC,wFAAwF;QACxF,8BAA8B;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CACpB,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,GAAG,6BAA6B,CAAC,CAAC,CAAC,sDAAsD;QAC5H,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,GAAG,qBAAqB,CAAC;QAC/E,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,qFAAqF;KACtF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,CAAc;IACjC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAC1B,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,sCAAsC;QAC7E,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,0GAA0G;YAC1I,6CAA6C,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,GAAG,kCAAkC,CAAC,CAAC,GAAG,0BAA0B,CAAC;AACrJ,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,WAAW,CAAC,CAAC,MAAM,sFAAsF;QACzG,GAAG,OAAO;QACV,uDAAuD;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CACpB,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,4BAA4B,CAAC,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;IAC5F,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAyB,EAAE;QACpE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO;YAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACxF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;IACxB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,uDAAuD,CAAC,CAAC;QAChH,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;IAC/H,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,EAAE;YAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACxF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,+BAA+B,CAAC,CAAC;IACxF,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IACzG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,gBAAgB,CAAC;IAChJ,OAAO,CAAC,oBAAoB,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,WAAW,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,MAAM,KAAK,GAAG,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,IAA0B;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACtF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,qEAAqE,CAAC,CAAC;IAEtF,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iHAAiH,CAAC;SAC9H,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACzF,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;SAC1D,MAAM,CAAC,kBAAkB,EAAE,gDAAgD,CAAC;SAC5E,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,UAAU,EAAE,CAAC;SACzE,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,YAAY,EAAE,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,CAAC;SACxE,MAAM,CAAC,mBAAmB,EAAE,0DAA0D,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;QACnC,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,aAAa,EAAE,iDAAiD,CAAC;SACxE,MAAM,CAAC,OAAO,EAAE,4DAA4D,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,wBAAwB,EAAE,IAAI,CAAC;SAC9D,MAAM,CAAC,kBAAkB,EAAE,iEAAiE,YAAY,EAAE,CAAC;SAC3G,MAAM,CAAC,wBAAwB,EAAE,0DAA0D,UAAU,EAAE,CAAC;QACzG,oEAAoE;SACnE,SAAS,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;SAChD,SAAS,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;QACjC,OAAO,CAAC,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wEAAwE,CAAC;SACrF,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,QAAQ,GAAG,YAAY,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,QAAQ,GAAG,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,QAAQ,GAAG,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6EAA6E,CAAC;SAC1F,QAAQ,CAAC,YAAY,EAAE,qDAAqD,CAAC;SAC7E,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC3B,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yDAAyD,CAAC;SACtE,QAAQ,CAAC,YAAY,EAAE,qDAAqD,CAAC;SAC7E,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC3B,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,CAAC,IAA0B,EAAE,EAAE;QACrC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC;AACf,CAAC"}
|