@joeytheman/gemini-mcp-tool 2.2.0 → 2.3.1
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/README.md +10 -7
- package/dist/__tests__/agyModelSteps.test.d.ts +2 -0
- package/dist/__tests__/agyModelSteps.test.d.ts.map +1 -0
- package/dist/__tests__/agyModelSteps.test.js +58 -0
- package/dist/__tests__/agyModelSteps.test.js.map +1 -0
- package/dist/__tests__/capture-script.chromium.test.d.ts +2 -0
- package/dist/__tests__/capture-script.chromium.test.d.ts.map +1 -0
- package/dist/__tests__/capture-script.chromium.test.js +235 -0
- package/dist/__tests__/capture-script.chromium.test.js.map +1 -0
- package/dist/__tests__/layout-snippet.chromium.test.d.ts +2 -0
- package/dist/__tests__/layout-snippet.chromium.test.d.ts.map +1 -0
- package/dist/__tests__/layout-snippet.chromium.test.js +333 -0
- package/dist/__tests__/layout-snippet.chromium.test.js.map +1 -0
- package/dist/__tests__/layout-snippet.test.d.ts +2 -0
- package/dist/__tests__/layout-snippet.test.d.ts.map +1 -0
- package/dist/__tests__/layout-snippet.test.js +12 -0
- package/dist/__tests__/layout-snippet.test.js.map +1 -0
- package/dist/__tests__/live-pass.test.js +531 -7
- package/dist/__tests__/live-pass.test.js.map +1 -1
- package/dist/__tests__/screen-review.test.js +111 -2
- package/dist/__tests__/screen-review.test.js.map +1 -1
- package/dist/__tests__/server-progress.test.d.ts +2 -0
- package/dist/__tests__/server-progress.test.d.ts.map +1 -0
- package/dist/__tests__/server-progress.test.js +63 -0
- package/dist/__tests__/server-progress.test.js.map +1 -0
- package/dist/__tests__/server.test.js +1 -8
- package/dist/__tests__/server.test.js.map +1 -1
- package/dist/__tests__/simple-tools.test.js +8 -3
- package/dist/__tests__/simple-tools.test.js.map +1 -1
- package/dist/__tests__/tools.test.js +29 -1
- package/dist/__tests__/tools.test.js.map +1 -1
- package/dist/__tests__/utils/agyExecutor.test.js +176 -61
- package/dist/__tests__/utils/agyExecutor.test.js.map +1 -1
- package/dist/__tests__/utils/commandExecutor.test.js +155 -1
- package/dist/__tests__/utils/commandExecutor.test.js.map +1 -1
- package/dist/__tests__/utils/progressUpdates.test.d.ts +2 -0
- package/dist/__tests__/utils/progressUpdates.test.d.ts.map +1 -0
- package/dist/__tests__/utils/progressUpdates.test.js +62 -0
- package/dist/__tests__/utils/progressUpdates.test.js.map +1 -0
- package/dist/constants.d.ts +33 -10
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +42 -10
- package/dist/constants.js.map +1 -1
- package/dist/index.js +19 -94
- package/dist/index.js.map +1 -1
- package/dist/layoutCheckSnippet.generated.d.ts +2 -0
- package/dist/layoutCheckSnippet.generated.d.ts.map +1 -0
- package/dist/layoutCheckSnippet.generated.js +3 -0
- package/dist/layoutCheckSnippet.generated.js.map +1 -0
- package/dist/tools/ask-gemini.tool.d.ts.map +1 -1
- package/dist/tools/ask-gemini.tool.js +6 -5
- package/dist/tools/ask-gemini.tool.js.map +1 -1
- package/dist/tools/brainstorm.tool.d.ts.map +1 -1
- package/dist/tools/brainstorm.tool.js +2 -1
- package/dist/tools/brainstorm.tool.js.map +1 -1
- package/dist/tools/live-pass.tool.d.ts +24 -1
- package/dist/tools/live-pass.tool.d.ts.map +1 -1
- package/dist/tools/live-pass.tool.js +174 -52
- package/dist/tools/live-pass.tool.js.map +1 -1
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +2 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/screen-review.tool.d.ts +3 -0
- package/dist/tools/screen-review.tool.d.ts.map +1 -1
- package/dist/tools/screen-review.tool.js +42 -8
- package/dist/tools/screen-review.tool.js.map +1 -1
- package/dist/tools/simple-tools.d.ts.map +1 -1
- package/dist/tools/simple-tools.js +6 -2
- package/dist/tools/simple-tools.js.map +1 -1
- package/dist/utils/agyExecutor.d.ts +9 -1
- package/dist/utils/agyExecutor.d.ts.map +1 -1
- package/dist/utils/agyExecutor.js +54 -48
- package/dist/utils/agyExecutor.js.map +1 -1
- package/dist/utils/agyModelSteps.d.ts +5 -0
- package/dist/utils/agyModelSteps.d.ts.map +1 -0
- package/dist/utils/agyModelSteps.js +33 -0
- package/dist/utils/agyModelSteps.js.map +1 -0
- package/dist/utils/artifactFile.d.ts +6 -0
- package/dist/utils/artifactFile.d.ts.map +1 -0
- package/dist/utils/artifactFile.js +55 -0
- package/dist/utils/artifactFile.js.map +1 -0
- package/dist/utils/captureScript.d.ts +24 -0
- package/dist/utils/captureScript.d.ts.map +1 -0
- package/dist/utils/captureScript.js +83 -0
- package/dist/utils/captureScript.js.map +1 -0
- package/dist/utils/commandExecutor.d.ts +7 -1
- package/dist/utils/commandExecutor.d.ts.map +1 -1
- package/dist/utils/commandExecutor.js +154 -22
- package/dist/utils/commandExecutor.js.map +1 -1
- package/dist/utils/gitCheckout.d.ts +14 -0
- package/dist/utils/gitCheckout.d.ts.map +1 -0
- package/dist/utils/gitCheckout.js +36 -0
- package/dist/utils/gitCheckout.js.map +1 -0
- package/dist/utils/layoutCheck.d.ts +58 -0
- package/dist/utils/layoutCheck.d.ts.map +1 -0
- package/dist/utils/layoutCheck.js +84 -0
- package/dist/utils/layoutCheck.js.map +1 -0
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progressUpdates.d.ts +14 -0
- package/dist/utils/progressUpdates.d.ts.map +1 -0
- package/dist/utils/progressUpdates.js +40 -0
- package/dist/utils/progressUpdates.js.map +1 -0
- package/package.json +18 -13
- package/dist/__tests__/utils/agyTranscriptRecovery.test.d.ts +0 -2
- package/dist/__tests__/utils/agyTranscriptRecovery.test.d.ts.map +0 -1
- package/dist/__tests__/utils/agyTranscriptRecovery.test.js +0 -127
- package/dist/__tests__/utils/agyTranscriptRecovery.test.js.map +0 -1
- package/dist/utils/agyTranscriptRecovery.d.ts +0 -16
- package/dist/utils/agyTranscriptRecovery.d.ts.map +0 -1
- package/dist/utils/agyTranscriptRecovery.js +0 -149
- package/dist/utils/agyTranscriptRecovery.js.map +0 -1
|
@@ -4,11 +4,16 @@ import * as path from 'path';
|
|
|
4
4
|
import { execFile } from 'child_process';
|
|
5
5
|
import { promisify } from 'util';
|
|
6
6
|
import { formatZodIssues } from './registry.js';
|
|
7
|
-
import { deniedActionsSummary, executeAgyJson, formatAgyUsageLine, formatConversationLine, toAgyJsonSchema, } from '../utils/agyExecutor.js';
|
|
7
|
+
import { deniedActionsSummary, executeAgyJson, formatAgyUsageLine, formatConversationLine, printTimeoutSchema, toAgyJsonSchema, } from '../utils/agyExecutor.js';
|
|
8
8
|
import { bulletList, section, renderUnparsableEnvelope, formatWorkingTreeSection, failWithWorkingTree } from '../utils/agyReport.js';
|
|
9
9
|
import { isWithin, resolveWorkingDirectory, realpathOfExistingPrefix } from '../utils/fileReferences.js';
|
|
10
10
|
import { snapshotWorkingTree, diffWorkingTree } from '../utils/gitStatusGuard.js';
|
|
11
|
-
import {
|
|
11
|
+
import { checkArtifactFile, hasImageSignature, IMAGE_FILE } from '../utils/artifactFile.js';
|
|
12
|
+
import { readCheckout } from '../utils/gitCheckout.js';
|
|
13
|
+
import { formatLayoutEntry, layoutFileName, readLayoutCheck } from '../utils/layoutCheck.js';
|
|
14
|
+
import { buildCaptureScript, parseViewport, saveLayoutFunction } from '../utils/captureScript.js';
|
|
15
|
+
import { countAgyModelSteps, formatModelSteps } from '../utils/agyModelSteps.js';
|
|
16
|
+
import { ERROR_MESSAGES, LIVE_PASS, MODELS, MODEL_CHOICE_DESCRIPTION, PRINT_TIMEOUT_CEILING_NOTE } from '../constants.js';
|
|
12
17
|
const execFileAsync = promisify(execFile);
|
|
13
18
|
const PUBLISH_MAX_BUFFER = 10 * 1024 * 1024;
|
|
14
19
|
const PUBLISH_TIMEOUT_MS = 5 * 60 * 1000;
|
|
@@ -17,18 +22,18 @@ const FILES_PLACEHOLDER = '{files}';
|
|
|
17
22
|
export const livePassTargetSchema = z.object({
|
|
18
23
|
screen: z.string().min(1).describe("Screen or route name, e.g. 'orders' or 'settings/profile'."),
|
|
19
24
|
state: z.string().min(1).describe("State to capture, e.g. 'default', 'empty', 'offline', 'error', 'sheet-open'."),
|
|
20
|
-
viewport: z.string().min(1).describe("Viewport as WxH, e.g. '390x844' or '1280x800'. For the maestro driver, the device form factor."),
|
|
25
|
+
viewport: z.string().min(1).describe("Viewport as WxH, e.g. '390x844' or '1280x800', which the playwright driver requires. For the maestro driver, the device form factor."),
|
|
21
26
|
expected: z.string().min(1).describe("What this frame must show for a PASS. For an intentional error/empty/offline state, name the reason text and the recovery affordance."),
|
|
22
27
|
});
|
|
23
28
|
export const livePassArgsSchema = z.object({
|
|
24
29
|
targets: z.array(livePassTargetSchema).min(1).describe("Every frame the pass must produce. The verdict is derived from this list: a target that produced no frame fails the pass, whether Gemini skipped it with a reason or never reported it at all — a skip explains missing evidence, it does not excuse it."),
|
|
25
30
|
brief: z.string().refine(value => value.trim().length > 0, ERROR_MESSAGES.LIVE_PASS_NO_BRIEF)
|
|
26
|
-
.describe("
|
|
31
|
+
.describe("Every fact Gemini needs, because it may not read code to find one: the app's start URL or app id, any link a user arrives by (an invite, email or share link) with where it comes from, the served-branch marker, and per target the user path, the labels or testIDs on it, the seed account and ids, and how long toasts and pending states stay on screen. A target whose fact is missing is skipped with 'brief missing: <fact>'."),
|
|
27
32
|
workingDirectory: z.string().min(1).describe("Absolute path to the worktree under test. Used as the agy cwd and workspace root; must exist and must not be a filesystem root."),
|
|
28
33
|
artifactDir: z.string().optional().describe("Absolute directory for the captured PNGs and manifest.json. Must be strictly inside workingDirectory. Defaults to <workingDirectory>/.live-pass/<timestamp>."),
|
|
29
34
|
driver: z.enum(['playwright', 'maestro']).describe("Which MCP server Gemini drives: 'playwright' for web, 'maestro' for a booted simulator."),
|
|
30
35
|
model: z.string().default(MODELS.MEDIUM).describe(`${MODEL_CHOICE_DESCRIPTION} Defaults to '${MODELS.MEDIUM}'.`),
|
|
31
|
-
printTimeout:
|
|
36
|
+
printTimeout: printTimeoutSchema.default(LIVE_PASS.DEFAULT_PRINT_TIMEOUT).describe(`agy --print-timeout for the whole walk. A full pass takes minutes. ${PRINT_TIMEOUT_CEILING_NOTE}`),
|
|
32
37
|
yolo: z.boolean().default(true).describe("Pass --dangerously-skip-permissions so Gemini may drive its MCP servers unattended. Without it agy denies the tool calls and the pass is BLOCKED. Refused when workingDirectory is a filesystem root."),
|
|
33
38
|
publishCommand: z.string().optional().describe("Optional shell command run in code after validation, with {files} replaced by the shell-quoted paths of the frames that validated OK. Its stdout is returned as PR markdown. Never run on a BLOCKED pass."),
|
|
34
39
|
conversationId: z.string().min(1).optional().describe("Resume a previous pass so Gemini can report deltas (resolved / regressions / changes) against what it saw then. The browser or simulator still starts fresh."),
|
|
@@ -44,8 +49,18 @@ export const livePassArgsSchema = z.object({
|
|
|
44
49
|
});
|
|
45
50
|
}
|
|
46
51
|
seen.add(key);
|
|
52
|
+
if (value.driver === 'playwright' && !parseViewport(target.viewport)) {
|
|
53
|
+
ctx.addIssue({
|
|
54
|
+
code: 'custom',
|
|
55
|
+
message: webViewportError(target.viewport),
|
|
56
|
+
path: ['targets', index, 'viewport'],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
47
59
|
});
|
|
48
60
|
});
|
|
61
|
+
function webViewportError(viewport) {
|
|
62
|
+
return `${ERROR_MESSAGES.LIVE_PASS_WEB_VIEWPORT}. Received '${viewport}'.`;
|
|
63
|
+
}
|
|
49
64
|
// ------------------------------------------------------------ result schema
|
|
50
65
|
const frameSchema = z.object({
|
|
51
66
|
file: z.string().describe("Absolute path of the PNG you saved for this frame."),
|
|
@@ -55,6 +70,7 @@ const frameSchema = z.object({
|
|
|
55
70
|
viewport: z.string().describe("The requested target's viewport string, copied exactly."),
|
|
56
71
|
verdict: z.enum(['PASS', 'FAIL']),
|
|
57
72
|
observed: z.string().describe("What the image actually shows, in your own words, after opening it."),
|
|
73
|
+
link_source: z.string().optional().describe("Only when this target began at a link the brief says the user arrives by: the brief's words naming where that link comes from, quoted."),
|
|
58
74
|
});
|
|
59
75
|
const findingSchema = z.object({
|
|
60
76
|
severity: z.enum(['BLOCKER', 'MAJOR', 'MINOR']),
|
|
@@ -118,32 +134,87 @@ export function prescribedFrameNames(targets) {
|
|
|
118
134
|
}
|
|
119
135
|
return byTarget;
|
|
120
136
|
}
|
|
121
|
-
function
|
|
122
|
-
const
|
|
137
|
+
export function prescribedTargetFiles(targets, artifactDir) {
|
|
138
|
+
const files = new Map();
|
|
139
|
+
for (const [key, frameName] of prescribedFrameNames(targets)) {
|
|
140
|
+
files.set(key, {
|
|
141
|
+
frameName,
|
|
142
|
+
frame: path.join(artifactDir, frameName),
|
|
143
|
+
capture: path.join(artifactDir, frameName.replace(/\.png$/, LIVE_PASS.CAPTURE_FILE_SUFFIX)),
|
|
144
|
+
layout: path.join(artifactDir, layoutFileName(frameName)),
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
return files;
|
|
148
|
+
}
|
|
149
|
+
export function writeCaptureScripts(targets, artifactDir) {
|
|
150
|
+
const files = prescribedTargetFiles(targets, artifactDir);
|
|
151
|
+
for (const target of targets) {
|
|
152
|
+
const viewport = parseViewport(target.viewport);
|
|
153
|
+
if (!viewport)
|
|
154
|
+
throw new Error(webViewportError(target.viewport));
|
|
155
|
+
const { frameName, frame, capture } = files.get(targetKey(target));
|
|
156
|
+
fs.rmSync(capture, { force: true });
|
|
157
|
+
fs.writeFileSync(capture, buildCaptureScript({ viewport, frameFile: frame, key: frameName }), { flag: 'wx' });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function renderTargets(targets, artifactDir, driver) {
|
|
161
|
+
const files = prescribedTargetFiles(targets, artifactDir);
|
|
123
162
|
return targets
|
|
124
|
-
.map((target, index) =>
|
|
125
|
-
|
|
126
|
-
|
|
163
|
+
.map((target, index) => {
|
|
164
|
+
const { frameName, frame, capture, layout } = files.get(targetKey(target));
|
|
165
|
+
const lines = [
|
|
166
|
+
`${index + 1}. screen: ${target.screen} | state: ${target.state} | viewport: ${target.viewport}`,
|
|
167
|
+
` expected: ${target.expected}`,
|
|
168
|
+
` file: ${frame}`,
|
|
169
|
+
];
|
|
170
|
+
if (driver === 'playwright') {
|
|
171
|
+
lines.push(` capture: ${capture}`, ` layout: ${layout}`, ` save layout: ${saveLayoutFunction(frameName)}`);
|
|
172
|
+
}
|
|
173
|
+
return lines.join('\n');
|
|
174
|
+
})
|
|
127
175
|
.join('\n');
|
|
128
176
|
}
|
|
129
177
|
const PLAYWRIGHT_PROCEDURE = `Driver: the "${LIVE_PASS.PLAYWRIGHT_MCP_NAME}" MCP server.
|
|
178
|
+
browser_navigate opens only the URLs the "User path" section allows.
|
|
130
179
|
For each target, in order:
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
180
|
+
- Reach it as the "User path" section says.
|
|
181
|
+
- Locate each control cheaply, in this order: a testID the brief names, as target [data-testid="<testID>"]; then browser_find with its visible label; then browser_snapshot with a target and a small depth scoped to that region. Never take a full-page snapshot just to look around, and never copy a snapshot or accessibility tree into your answer.
|
|
182
|
+
- Native dialogs such as window.confirm and window.alert block the page: accept or dismiss each with browser_handle_dialog right after the click that opened it.
|
|
183
|
+
- Wait until the marker the brief names for that state is present. Never capture a page that still shows a spinner or skeleton when a content state was requested.
|
|
184
|
+
- Capture it: browser_run_code_unsafe with filename set to the exact absolute path printed as "capture:" for that target below. Never pass code, never write, edit or read a capture file, and never reuse another target's file. The capture sets the target's viewport and grows a scrolling screen taller, a few times at most and up to ${LIVE_PASS.CAPTURE_MAX_HEIGHT} px, until its scroll area fits; a screen that still scrolls after that is shot as it stands. It saves the screenshot to that target's "file:" path, measures the layout, and restores the viewport. It answers "saved <file> at <width>x<height>"; an added "; layout not measured: <error>" or "; viewport not restored: <error>" still saved the frame.
|
|
185
|
+
- Right after it, save the layout check: browser_evaluate with function set to the "save layout:" function printed for that target, copied verbatim, and filename set to the exact absolute path printed as "layout:" for that target. Do not open that file or report on it: the caller reads it.
|
|
186
|
+
- If a capture returns an error, add the target to "skipped" with the error text. Never fall back to browser_take_screenshot.
|
|
187
|
+
- Scroll a virtualized list to its end before asserting that something is absent.
|
|
188
|
+
- browser_evaluate runs only the "save layout:" functions and browser_run_code_unsafe only the "capture:" files. Neither is used to click, type, navigate, or set storage, cookies or app state.`;
|
|
189
|
+
const PLAYWRIGHT_CHEAT_SHEET = `## Tool cheat sheet (the installed parameters: never read tool schemas or Playwright source)
|
|
190
|
+
"target" is a ref from browser_find or browser_snapshot (such as e12) or a unique selector such as [data-testid="save"].
|
|
191
|
+
- browser_navigate {url}
|
|
192
|
+
- browser_click {target, element?, doubleClick?, button?, modifiers?}
|
|
193
|
+
- browser_type {target, text, submit?, slowly?}: submit presses Enter afterwards.
|
|
194
|
+
- browser_fill_form {fields: [{target, name, type: textbox | checkbox | radio | combobox | slider, value}]}: a checkbox value is "true" or "false"; a combobox value is the option's text.
|
|
195
|
+
- browser_select_option {target, values: [...]}
|
|
196
|
+
- browser_press_key {key}: such as Enter, Escape, Tab, ArrowDown.
|
|
197
|
+
- browser_handle_dialog {accept, promptText?}
|
|
198
|
+
- browser_wait_for {text? | textGone? | time?}: time is in seconds, at most 30.
|
|
199
|
+
- browser_find {text | regex}: searches the accessibility snapshot and returns the matching nodes with their refs.
|
|
200
|
+
- browser_snapshot {target?, depth?, boxes?}
|
|
201
|
+
- browser_run_code_unsafe {filename}: filename is absolute.
|
|
202
|
+
- browser_evaluate {function, filename}: the return value is written to filename as JSON instead of returned to you.`;
|
|
140
203
|
const MAESTRO_PROCEDURE = `Driver: the "${LIVE_PASS.MAESTRO_MCP_NAME}" MCP server.
|
|
141
204
|
For each target, in order:
|
|
142
|
-
- list_devices first and use the returned
|
|
143
|
-
-
|
|
205
|
+
- list_devices first and use the returned device_id for every later call. Never guess a device.
|
|
206
|
+
- Reach each state as the "User path" section says, with inline YAML flows: launchApp only to open the app at the start, then tapOn and inputText; openLink only for a link arrival that section allows.
|
|
207
|
+
- Locate controls by the testID the brief names (id:), then by the full visible text inspect_screen reports (text:).
|
|
208
|
+
- inspect_screen to confirm the state settled.
|
|
144
209
|
- Never use take_screenshot for evidence: it returns an image inline and saves nothing.
|
|
145
|
-
- After each settled state, shell out: xcrun simctl io <
|
|
210
|
+
- After each settled state, shell out: xcrun simctl io <device_id, the simulator UDID> screenshot <the exact absolute path printed as "file:" for that target below>. Never invent a filename and never reuse another target's file.
|
|
146
211
|
- Only one driver may own a simulator at a time. If the device is busy, record the target as skipped with that reason rather than fighting for it — the pass then FAILS for missing evidence, which is the honest outcome. Never fabricate or reuse a frame.`;
|
|
212
|
+
const MAESTRO_CHEAT_SHEET = `## Tool cheat sheet (the installed parameters: never read tool schemas)
|
|
213
|
+
- list_devices {}: returns the device_id every other call needs.
|
|
214
|
+
- run {device_id, yaml, env?}: an inline flow, such as "- tapOn:\\n id: save" or "- inputText: hello".
|
|
215
|
+
- inspect_screen {device_id}: the view hierarchy as compact JSON with abbreviated keys (b bounds, txt text, rid resource id, a11y accessibility label). Selectors take id:, text:, index:, below:, above:, leftOf:, rightOf: — never the abbreviated keys. text: is a full-string, case-insensitive regex: copy txt verbatim or end it with ".*".
|
|
216
|
+
- take_screenshot {device_id}: returns an image inline; never evidence.
|
|
217
|
+
- cheat_sheet {}: Maestro flow syntax, only when a command above is not enough.`;
|
|
147
218
|
const RESUMED_DELTA_SECTION = `## Delta reporting (this conversation has an earlier pass)
|
|
148
219
|
Compare against the frames and findings you reported earlier in this conversation.
|
|
149
220
|
- A defect you reported before that is now fixed goes in "resolved".
|
|
@@ -151,9 +222,16 @@ Compare against the frames and findings you reported earlier in this conversatio
|
|
|
151
222
|
- A difference that is neither (a moved control, changed copy that reads correctly) goes in "changes".
|
|
152
223
|
- A new defect goes in "findings".
|
|
153
224
|
Never put an improvement in "findings" or "regressions". The browser or simulator starts fresh: walk every target again, do not answer from memory.`;
|
|
225
|
+
function renderCheckout(checkout) {
|
|
226
|
+
if (!checkout)
|
|
227
|
+
return '- Checkout under test: not a git checkout with a commit, so rely on the brief\'s marker alone.';
|
|
228
|
+
const branch = checkout.branch ?? 'a detached HEAD';
|
|
229
|
+
return `- Checkout under test: ${branch} at ${checkout.head}. Read for you, so never run git.`;
|
|
230
|
+
}
|
|
154
231
|
export function buildLivePassPrompt(config) {
|
|
155
|
-
const { brief, driver, targets, workingDirectory, artifactDir, resumed } = config;
|
|
232
|
+
const { brief, driver, targets, workingDirectory, artifactDir, checkout, resumed } = config;
|
|
156
233
|
const procedure = driver === 'maestro' ? MAESTRO_PROCEDURE : PLAYWRIGHT_PROCEDURE;
|
|
234
|
+
const cheatSheet = driver === 'maestro' ? MAESTRO_CHEAT_SHEET : PLAYWRIGHT_CHEAT_SHEET;
|
|
157
235
|
return `# Live UI pass
|
|
158
236
|
|
|
159
237
|
You are walking a running application, capturing screenshots, looking at them yourself, and reporting what you saw as text. The caller never opens an image, so everything you see in a screenshot must become a sentence in your answer.
|
|
@@ -161,19 +239,38 @@ Your answer is ONLY the schema JSON. No prose before or after it, no markdown fe
|
|
|
161
239
|
|
|
162
240
|
## Environment
|
|
163
241
|
- Artifact directory (write here, and only here): ${artifactDir}
|
|
164
|
-
- Working directory
|
|
165
|
-
|
|
166
|
-
- Never edit product code, never create or modify files outside the artifact directory, and never run a git command
|
|
242
|
+
- Working directory: ${workingDirectory}. It is only where you run: read, list and glob nothing outside the artifact directory.
|
|
243
|
+
${renderCheckout(checkout)}
|
|
244
|
+
- Never edit product code, never create or modify files outside the artifact directory, and never run a git command.
|
|
245
|
+
|
|
246
|
+
## Scope
|
|
247
|
+
Everything you need is in this prompt, the brief, and what the app shows you.
|
|
248
|
+
- Never read product source, tests, docs, config, tool schemas or tool source. Never query a database. Never run a shell command except the capture command the procedure names and removing a stale file at a target's own "file:" path.
|
|
249
|
+
- Never read code to work out why something failed. Report what you saw.
|
|
250
|
+
|
|
251
|
+
## User path
|
|
252
|
+
- The pass opens the app once, at its start URL (or by launching it on a device), as the brief names it.
|
|
253
|
+
- A target may begin at a link of its own only when the brief says the user arrives by that link, such as an invite, email or share link, and names where the link comes from. Open it as following that link would, and quote the brief's words naming the source in that frame's "link_source".
|
|
254
|
+
- Every other target is reached by taps from the previous screen: sign in through the sign-in form, tap through the navigation, and fill and submit forms. Any other URL or deep link in the brief is context, never a navigation target.
|
|
255
|
+
- A reload, only where the brief makes one part of the path, opens the URL the page is already on.
|
|
256
|
+
- No script that clicks, navigates, or sets storage, cookies or app state for you.
|
|
257
|
+
|
|
258
|
+
## Dead ends
|
|
259
|
+
- When the path to a target breaks (a control is missing, a tap does nothing, a screen errors), stop that target and add it to "skipped" with the step where the path broke, such as "step 3: tapped Save, nothing happened". A dead end a user would hit is also a finding.
|
|
260
|
+
- When the brief lacks a fact you need (a label or testID, a seed account or id, which tab), add the target to "skipped" with "brief missing: <the fact>". Never search the code for it.
|
|
167
261
|
|
|
168
262
|
## Procedure
|
|
169
263
|
${procedure}
|
|
170
264
|
|
|
265
|
+
${cheatSheet}
|
|
266
|
+
|
|
171
267
|
## Targets
|
|
172
268
|
Capture exactly these, use these exact screen / state / viewport strings in your frames, and save each one to its own "file:" path — copied verbatim into that frame's "file". One file per target: a file that answers two targets is treated as no evidence at all.
|
|
173
|
-
${renderTargets(targets, artifactDir)}
|
|
269
|
+
${renderTargets(targets, artifactDir, driver)}
|
|
174
270
|
|
|
175
271
|
## Served-branch check first
|
|
176
|
-
Before any capture, confirm the running app
|
|
272
|
+
Before any capture, confirm the running app shows the served-branch marker the brief describes. If it does not, or you cannot find it, stop, set verdict BLOCKED, and explain in served_branch_check. Never report on an app you cannot identify.
|
|
273
|
+
The checkout above is context. Set BLOCKED over it only when the marker names a branch or commit that contradicts it. A detached HEAD never contradicts a branch name, and a short commit hash matches the full one it begins.
|
|
177
274
|
|
|
178
275
|
## Evidence discipline
|
|
179
276
|
- Open every PNG you saved and describe it in "observed". "observed" is what the image shows, not what you expected it to show.
|
|
@@ -203,23 +300,6 @@ ${brief}`;
|
|
|
203
300
|
function frameAbsolutePath(file, artifactDir) {
|
|
204
301
|
return realpathOfExistingPrefix(path.isAbsolute(file) ? file : path.resolve(artifactDir, file));
|
|
205
302
|
}
|
|
206
|
-
function checkFrameFile(absFile, artifactDir, runStartMs) {
|
|
207
|
-
if (!isWithin(artifactDir, absFile))
|
|
208
|
-
return 'OUTSIDE';
|
|
209
|
-
try {
|
|
210
|
-
const stat = fs.statSync(absFile);
|
|
211
|
-
if (!stat.isFile())
|
|
212
|
-
return 'MISSING';
|
|
213
|
-
if (stat.size === 0)
|
|
214
|
-
return 'EMPTY';
|
|
215
|
-
if (stat.mtimeMs < runStartMs - LIVE_PASS.FRESHNESS_TOLERANCE_MS)
|
|
216
|
-
return 'STALE';
|
|
217
|
-
return 'OK';
|
|
218
|
-
}
|
|
219
|
-
catch {
|
|
220
|
-
return 'MISSING';
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
303
|
function readManifestProblems(artifactDir, frameCount, runStartMs) {
|
|
224
304
|
const manifestPath = path.join(artifactDir, LIVE_PASS.MANIFEST_FILE);
|
|
225
305
|
let raw;
|
|
@@ -255,7 +335,7 @@ function readManifestProblems(artifactDir, frameCount, runStartMs) {
|
|
|
255
335
|
function listCaptures(artifactDir) {
|
|
256
336
|
try {
|
|
257
337
|
return fs.readdirSync(artifactDir)
|
|
258
|
-
.filter(name =>
|
|
338
|
+
.filter(name => IMAGE_FILE.test(name))
|
|
259
339
|
.map(name => path.join(artifactDir, name));
|
|
260
340
|
}
|
|
261
341
|
catch {
|
|
@@ -272,9 +352,11 @@ export function validateFrames(result, artifactDir, runStartMs, targets = []) {
|
|
|
272
352
|
const expectedName = prescribed.get(targetKey(frame));
|
|
273
353
|
// A second frame pointing at the same file is one screenshot answering two
|
|
274
354
|
// targets — no evidence for either, however good the picture is.
|
|
275
|
-
const
|
|
276
|
-
|
|
277
|
-
:
|
|
355
|
+
const fileStatus = checkArtifactFile(absFile, artifactDir, runStartMs);
|
|
356
|
+
const status = claimedBy.has(absFile) ? 'DUPLICATE'
|
|
357
|
+
: !IMAGE_FILE.test(absFile) ? 'NOT_IMAGE'
|
|
358
|
+
: fileStatus !== 'OK' ? fileStatus
|
|
359
|
+
: hasImageSignature(absFile) ? 'OK' : 'NOT_IMAGE';
|
|
278
360
|
claimedBy.add(absFile);
|
|
279
361
|
const misnamed = Boolean(expectedName) && path.basename(absFile) !== expectedName;
|
|
280
362
|
if (misnamed) {
|
|
@@ -393,7 +475,34 @@ export async function runPublishCommand(command, okFiles, cwd) {
|
|
|
393
475
|
};
|
|
394
476
|
}
|
|
395
477
|
}
|
|
396
|
-
|
|
478
|
+
/** Each web target's layout file, read from its prescribed path. Never throws. */
|
|
479
|
+
export function readLayoutChecks(targets, artifactDir, runStartMs) {
|
|
480
|
+
const files = prescribedTargetFiles(targets, artifactDir);
|
|
481
|
+
return targets.map(target => ({
|
|
482
|
+
target,
|
|
483
|
+
check: readLayoutCheck(files.get(targetKey(target)).layout, artifactDir, runStartMs, parseViewport(target.viewport)?.width),
|
|
484
|
+
}));
|
|
485
|
+
}
|
|
486
|
+
export function formatLayoutSection(checks) {
|
|
487
|
+
const lines = checks.map(({ target, check }) => {
|
|
488
|
+
const label = `${target.screen} / ${target.state} / ${target.viewport}`;
|
|
489
|
+
if (!check.report)
|
|
490
|
+
return `- ${label}: not run (${check.status}: ${check.file} ${check.problem})`;
|
|
491
|
+
const { entries, clamped, found } = check.report;
|
|
492
|
+
if (entries.length === 0 && clamped.length === 0)
|
|
493
|
+
return `- ${label}: clean`;
|
|
494
|
+
const listed = found > entries.length ? ` (${found} found, first ${entries.length} listed)` : '';
|
|
495
|
+
const polluted = entries.some(entry => entry.kind === 'dev-overlay')
|
|
496
|
+
? ' (a framework dev overlay was on screen: this frame is polluted)'
|
|
497
|
+
: '';
|
|
498
|
+
return [
|
|
499
|
+
`- ${label}: ${found} ${found === 1 ? 'entry' : 'entries'}${listed}${polluted}`,
|
|
500
|
+
...entries.map(entry => ` - ${formatLayoutEntry(entry)}`),
|
|
501
|
+
...clamped.map(entry => ` - capped (line clamp / ellipsis): ${formatLayoutEntry(entry)}`),
|
|
502
|
+
].join('\n');
|
|
503
|
+
});
|
|
504
|
+
return section('Layout checks (measured in the page)', lines.join('\n'));
|
|
505
|
+
}
|
|
397
506
|
export function formatLivePassReport(input) {
|
|
398
507
|
const { envelope, result, decision, validation, coverage, driver, model, artifactDir } = input;
|
|
399
508
|
const statusById = new Map(validation.checks.map(check => [check.file, check.status]));
|
|
@@ -406,13 +515,15 @@ export function formatLivePassReport(input) {
|
|
|
406
515
|
parts.push(headline);
|
|
407
516
|
parts.push(`driver: ${driver} · model: ${model} · artifacts: ${artifactDir}`);
|
|
408
517
|
parts.push(formatAgyUsageLine(envelope));
|
|
518
|
+
parts.push(formatModelSteps(input.modelSteps, result.frames.length));
|
|
409
519
|
parts.push(section('Why', bulletList(decision.reasons)));
|
|
410
520
|
parts.push(section('Served-branch check', result.served_branch_check || '- not reported'));
|
|
411
521
|
parts.push(section('Summary', result.summary || '- not reported'));
|
|
412
522
|
parts.push(section('Frames', bulletList(result.frames.map(frame => {
|
|
413
523
|
const abs = frameAbsolutePath(frame.file, artifactDir);
|
|
524
|
+
const arrival = frame.link_source ? `\n arrived by link: ${frame.link_source}` : '';
|
|
414
525
|
return `${frame.verdict} [${statusById.get(abs) ?? 'UNKNOWN'}] ${frame.screen} / ${frame.state} / ${frame.viewport}\n` +
|
|
415
|
-
` file: ${abs}\n expected: ${frame.expected}\n observed: ${frame.observed}`;
|
|
526
|
+
` file: ${abs}${arrival}\n expected: ${frame.expected}\n observed: ${frame.observed}`;
|
|
416
527
|
}))));
|
|
417
528
|
const renderFindings = (items) => bulletList(items.map(item => `${item.severity} ${item.screen}: ${item.description}${item.evidence_file ? ` (${item.evidence_file})` : ''}`));
|
|
418
529
|
const renderNotes = (items) => bulletList(items.map(item => `${item.screen}: ${item.description}${item.evidence_file ? ` (${item.evidence_file})` : ''}`));
|
|
@@ -432,6 +543,8 @@ export function formatLivePassReport(input) {
|
|
|
432
543
|
validationLines.push(`frames matching no requested target: ${coverage.extraFrames.join(', ')}`);
|
|
433
544
|
}
|
|
434
545
|
parts.push(section('Validation', bulletList(validationLines)));
|
|
546
|
+
if (input.layoutChecks)
|
|
547
|
+
parts.push(formatLayoutSection(input.layoutChecks));
|
|
435
548
|
if (input.deniedActions) {
|
|
436
549
|
parts.push(section('Denied actions', `- ${input.deniedActions}`));
|
|
437
550
|
}
|
|
@@ -478,13 +591,16 @@ export const livePassTool = {
|
|
|
478
591
|
readOnlyHint: false,
|
|
479
592
|
openWorldHint: true,
|
|
480
593
|
},
|
|
481
|
-
execute: async (args, onProgress) => {
|
|
594
|
+
execute: async (args, onProgress, signal) => {
|
|
482
595
|
const input = livePassArgsSchema.parse(args);
|
|
483
596
|
const workingDirectory = resolveWorkingDirectory(input.workingDirectory);
|
|
484
597
|
const artifactDir = resolveArtifactDir(workingDirectory, input.artifactDir);
|
|
485
598
|
fs.mkdirSync(artifactDir, { recursive: true });
|
|
599
|
+
if (input.driver === 'playwright')
|
|
600
|
+
writeCaptureScripts(input.targets, artifactDir);
|
|
486
601
|
const runStartMs = Date.now();
|
|
487
602
|
const before = await snapshotWorkingTree(workingDirectory);
|
|
603
|
+
const checkout = await readCheckout(workingDirectory);
|
|
488
604
|
const afterWorkingTree = async () => diffWorkingTree(before, await snapshotWorkingTree(workingDirectory), { ignoreDirectory: artifactDir });
|
|
489
605
|
let envelope;
|
|
490
606
|
try {
|
|
@@ -494,6 +610,7 @@ export const livePassTool = {
|
|
|
494
610
|
targets: input.targets,
|
|
495
611
|
workingDirectory,
|
|
496
612
|
artifactDir,
|
|
613
|
+
checkout,
|
|
497
614
|
resumed: Boolean(input.conversationId),
|
|
498
615
|
}), {
|
|
499
616
|
model: input.model,
|
|
@@ -504,6 +621,7 @@ export const livePassTool = {
|
|
|
504
621
|
cwd: workingDirectory,
|
|
505
622
|
jsonSchema: LIVE_PASS_RESULT_SCHEMA_TEXT,
|
|
506
623
|
noCache: true,
|
|
624
|
+
signal,
|
|
507
625
|
}, onProgress);
|
|
508
626
|
}
|
|
509
627
|
catch (error) {
|
|
@@ -542,6 +660,10 @@ export const livePassTool = {
|
|
|
542
660
|
deniedActions,
|
|
543
661
|
workingTree,
|
|
544
662
|
publish,
|
|
663
|
+
modelSteps: envelope.conversation_id ? await countAgyModelSteps(envelope.conversation_id) : null,
|
|
664
|
+
layoutChecks: input.driver === 'playwright'
|
|
665
|
+
? readLayoutChecks(input.targets, artifactDir, runStartMs)
|
|
666
|
+
: undefined,
|
|
545
667
|
});
|
|
546
668
|
},
|
|
547
669
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-pass.tool.js","sourceRoot":"","sources":["../../src/tools/live-pass.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"live-pass.tool.js","sourceRoot":"","sources":["../../src/tools/live-pass.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAe,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACrI,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAA2B,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,YAAY,EAAiB,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE1H,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACzC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC,6EAA6E;AAE7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8EAA8E,CAAC;IACjH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sIAAsI,CAAC;IAC5K,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uIAAuI,CAAC;CAC9K,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0PAA0P,CAAC;IAClT,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC;SAC1F,QAAQ,CAAC,uaAAua,CAAC;IACpb,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iIAAiI,CAAC;IAC/K,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8JAA8J,CAAC;IAC3M,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,yFAAyF,CAAC;IAC7I,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,wBAAwB,iBAAiB,MAAM,CAAC,MAAM,IAAI,CAAC;IAChH,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,sEAAsE,0BAA0B,EAAE,CAAC;IACtL,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uMAAuM,CAAC;IACjP,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2MAA2M,CAAC;IAC3P,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8JAA8J,CAAC;CACtN,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qBAAqB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,QAAQ,EAAE;gBACpF,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;aACzB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC1C,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,GAAG,cAAc,CAAC,sBAAsB,eAAe,QAAQ,IAAI,CAAC;AAC7E,CAAC;AAKD,6EAA6E;AAE7E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACpF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC1E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACxF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IACpG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wIAAwI,CAAC;CACtL,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;IAC7H,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,0GAA0G,CAAC;IACxJ,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qHAAqH,CAAC;IAC7J,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qGAAqG,CAAC;IAC5I,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACvE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAClF,MAAM,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;AAElF,6EAA6E;AAE7E,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,SAAS,CAAC,MAA2D;IAC5E,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAA2D;IACvF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA8D;IAE9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,MAAM,MAAM,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AASD,MAAM,UAAU,qBAAqB,CAAC,OAAyB,EAAE,WAAmB;IAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC3F,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAyB,EAAE,WAAmB;IAChF,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAgB,CAAC;QAClF,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAyB,EAAE,WAAmB,EAAE,MAAgC;IACrG,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAgB,CAAC;QAC1F,MAAM,KAAK,GAAG;YACZ,GAAG,KAAK,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,QAAQ,EAAE;YAChG,gBAAgB,MAAM,CAAC,QAAQ,EAAE;YACjC,YAAY,KAAK,EAAE;SACpB,CAAC;QACF,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CACR,eAAe,OAAO,EAAE,EACxB,cAAc,MAAM,EAAE,EACtB,mBAAmB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CACnD,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,oBAAoB,GAAG,gBAAgB,SAAS,CAAC,mBAAmB;;;;;;;8UAOoQ,SAAS,CAAC,kBAAkB;;;;iMAIzK,CAAC;AAElM,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;qHAasF,CAAC;AAEtH,MAAM,iBAAiB,GAAG,gBAAgB,SAAS,CAAC,gBAAgB;;;;;;;;6PAQyL,CAAC;AAE9P,MAAM,mBAAmB,GAAG;;;;;gFAKoD,CAAC;AAEjF,MAAM,qBAAqB,GAAG;;;;;;oJAMsH,CAAC;AAErJ,SAAS,cAAc,CAAC,QAAyB;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,gGAAgG,CAAC;IACvH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,iBAAiB,CAAC;IACpD,OAAO,0BAA0B,MAAM,OAAO,QAAQ,CAAC,IAAI,mCAAmC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAQnC;IACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC5F,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAClF,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAEvF,OAAO;;;;;;oDAM2C,WAAW;uBACxC,gBAAgB;EACrC,cAAc,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;EAoBxB,SAAS;;EAET,UAAU;;;;EAIV,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;QAiBrC,WAAW,IAAI,SAAS,CAAC,aAAa,2DAA2D,MAAM;;;;;;EAM7G,OAAO,CAAC,CAAC,CAAC,KAAK,qBAAqB,IAAI,CAAC,CAAC,CAAC,4FAA4F;;EAEvI,KAAK,EAAE,CAAC;AACV,CAAC;AAwBD;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IAC1D,OAAO,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,UAAkB,EAAE,UAAkB;IACvF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACrE,IAAI,GAAW,CAAC;IAChB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7C,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,SAAS,CAAC,aAAa,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,IAAI,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,sBAAsB,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,SAAS,CAAC,aAAa,0DAA0D,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,SAAS,CAAC,aAAa,oBAAoB,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,cAAc,GAAI,MAA+B,EAAE,MAAM,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,SAAS,CAAC,aAAa,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,SAAS,CAAC,aAAa,UAAU,cAAc,CAAC,MAAM,kCAAkC,UAAU,EAAE,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB;IACvC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC;aAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAC5B,MAAsB,EACtB,WAAmB,EACnB,UAAkB,EAClB,UAA4B,EAAE;IAE9B,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAiB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACrD,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACvE,MAAM,MAAM,GAAgB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;YAC9D,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;gBACzC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU;oBAClC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QACpD,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC;QAClF,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,KAAK,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,gBAAgB,YAAY,EAAE,CAAC,CAAC;QACnG,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG;QACf,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW;YACxF,CAAC,CAAC,mCAAmC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG;YACpF,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG,CAAC;QACxE,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;KACvE,CAAC;IAEF,OAAO;QACL,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/E,QAAQ;QACR,KAAK;QACL,kBAAkB,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnF,CAAC;AACJ,CAAC;AAQD,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAAC,OAAyB,EAAE,MAAsB;IAC7E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAiD,EAAE,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;SAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACnD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AAQD,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,KAK7B;IACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,aAAa;QAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,aAAa,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAEzF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,MAAM,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACtG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,aAAa,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC7C,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO;KACR,CAAC;AACJ,CAAC;AAaD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA2B,EAC3B,OAAiB,EACjB,GAAW;IAEX,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB,EAAE,CAAC;IACzG,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACzD,GAAG;YACH,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QACH,yEAAyE;QACzE,oEAAoE;QACpE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAA+E,CAAC;QAChG,OAAO;YACL,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACrC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACxD,QAAQ,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACjE,CAAC;IACJ,CAAC;AACH,CAAC;AASD,kFAAkF;AAClF,MAAM,UAAU,gBAAgB,CAC9B,OAAyB,EACzB,WAAmB,EACnB,UAAkB;IAElB,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM;QACN,KAAK,EAAE,eAAe,CAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;KAC7I,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,KAAK,cAAc,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;QAElG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,KAAK,SAAS,CAAC;QAC7E,MAAM,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,iBAAiB,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAClE,CAAC,CAAC,kEAAkE;YACpE,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,GAAG,QAAQ,EAAE;YAC/E,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,uCAAuC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,sCAAsC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAepC;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC/F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,QAAQ;QACrD,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,EAAE;QACpC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,qBAAqB,QAAQ,CAAC,QAAQ,GAAG,CAAC;IAE9E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,aAAa,KAAK,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAEnE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAChE,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,IAAI;YACpH,WAAW,GAAG,GAAG,OAAO,iBAAiB,KAAK,CAAC,QAAQ,iBAAiB,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,cAAc,GAAG,CAAC,KAAiC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACxF,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClH,MAAM,WAAW,GAAG,CAAC,KAAiC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACrF,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAEjG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC;QACvC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClE,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,QAAQ,+BAA+B,CAAC;KAC5H,CAAC,CAAC,CAAC,CAAC;IAEL,MAAM,eAAe,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,eAAe,CAAC,IAAI,CAAC,oCAAoC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,wCAAwC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAE/D,IAAI,KAAK,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAE5E,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,IAAI,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEvD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,KAAK,CAAC;YACtD,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,sCAAsC;YAC1D,CAAC,CAAC,4BAA4B,OAAO,CAAC,QAAQ,IAAI,SAAS,OAAO,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;SAAM,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,8BAA8B,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,6EAA6E;AAE7E,SAAS,kBAAkB,CAAC,gBAAwB,EAAE,SAAkB;IACtE,8EAA8E;IAC9E,2EAA2E;IAC3E,qEAAqE;IACrE,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAEtG,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/C,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;QACpC,QAAQ,KAAK,gBAAgB,CAAC;IAChC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC,sBAAsB,eAAe,SAAS,IAAI,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,iRAAiR;IAC9R,SAAS,EAAE,kBAAkB;IAC7B,MAAM,EAAE;QACN,WAAW,EAAE,2NAA2N;KACzO;IACD,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE;QACX,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,IAAI;KACpB;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5E,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;YAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAEtD,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,eAAe,CAClD,MAAM,EACN,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,EAAE,eAAe,EAAE,WAAW,EAAE,CACjC,CAAC;QAEF,IAAI,QAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,cAAc,CAC7B,mBAAmB,CAAC;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,gBAAgB;gBAChB,WAAW;gBACX,QAAQ;gBACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;aACvC,CAAC,EACF;gBACE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;gBACnD,GAAG,EAAE,gBAAgB;gBACrB,UAAU,EAAE,4BAA4B;gBACxC,OAAO,EAAE,IAAI;gBACb,MAAM;aACP,EACD,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,2EAA2E;YAC3E,mBAAmB,CAAC,KAAK,EAAE,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,0EAA0E;QAC1E,kDAAkD;QAClD,MAAM,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAE7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,wBAAwB,CACtB,QAAQ,EACR,sBAAsB,EACtB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7B,cAAc,WAAW,EAAE,CAC5B;gBACD,wBAAwB,CAAC,WAAW,CAAC;aACtC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3B,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QAEhF,oEAAoE;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,kBAAkB,EAAE;YAC3F,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAExF,OAAO,oBAAoB,CAAC;YAC1B,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW;YACX,aAAa;YACb,WAAW;YACX,OAAO;YACP,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;YAChG,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,YAAY;gBACzC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;gBAC1D,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface UnifiedTool {
|
|
|
29
29
|
required: boolean;
|
|
30
30
|
}>;
|
|
31
31
|
};
|
|
32
|
-
execute: (args: ToolArguments, onProgress?: (newOutput: string) => void) => Promise<string>;
|
|
32
|
+
execute: (args: ToolArguments, onProgress?: (newOutput: string) => void, signal?: AbortSignal) => Promise<string>;
|
|
33
33
|
category?: 'simple' | 'gemini' | 'utility';
|
|
34
34
|
/** MCP tool annotations for AI assistants */
|
|
35
35
|
annotations?: ToolAnnotations;
|
|
@@ -40,6 +40,6 @@ export declare function getToolDefinitions(): Tool[];
|
|
|
40
40
|
export declare function getPromptDefinitions(): Prompt[];
|
|
41
41
|
/** Zod issues as `path: message` lines, for error text and schema-mismatch reports. */
|
|
42
42
|
export declare function formatZodIssues(error: ZodError): string[];
|
|
43
|
-
export declare function executeTool(toolName: string, args: ToolArguments, onProgress?: (newOutput: string) => void): Promise<string>;
|
|
43
|
+
export declare function executeTool(toolName: string, args: ToolArguments, onProgress?: (newOutput: string) => void, signal?: AbortSignal): Promise<string>;
|
|
44
44
|
export declare function getPromptMessage(toolName: string, args: Record<string, any>): string;
|
|
45
45
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAK,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAK,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,6CAA6C;IAC7C,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,EAAO,CAAC;AAC9C,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AACD,wBAAgB,kBAAkB,IAAI,IAAI,EAAE,CAkB3C;AAcD,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAQ/C;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,CAEzD;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,EACxC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAsBpF"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -44,14 +44,14 @@ export function getPromptDefinitions() {
|
|
|
44
44
|
export function formatZodIssues(error) {
|
|
45
45
|
return error.issues.map(issue => `${issue.path.join('.')}: ${issue.message}`);
|
|
46
46
|
}
|
|
47
|
-
export async function executeTool(toolName, args, onProgress) {
|
|
47
|
+
export async function executeTool(toolName, args, onProgress, signal) {
|
|
48
48
|
const tool = toolRegistry.find(t => t.name === toolName);
|
|
49
49
|
if (!tool) {
|
|
50
50
|
throw new Error(`Unknown tool: ${toolName}`);
|
|
51
51
|
}
|
|
52
52
|
try {
|
|
53
53
|
const validatedArgs = tool.zodSchema.parse(args);
|
|
54
|
-
return tool.execute(validatedArgs, onProgress);
|
|
54
|
+
return tool.execute(validatedArgs, onProgress, signal);
|
|
55
55
|
}
|
|
56
56
|
catch (error) {
|
|
57
57
|
if (error instanceof ZodError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAgB,QAAQ,EAAE,MAAM,KAAK,CAAC;AAuChD,MAAM,CAAC,MAAM,YAAY,GAAkB,EAAE,CAAC;AAC9C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACrD,CAAC;AACD,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7B,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAwB,CAAC;QAC1F,MAAM,WAAW,GAAwB;YACvC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE;YACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;SACpC,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAkB;IAChD,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAwB,CAAC;IACrF,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE3C,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAgB,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG,IAAI,YAAY;QACpD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,YAAY;SAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,MAAO,CAAC,WAAW;QACrC,SAAS,EAAE,IAAI,CAAC,MAAO,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;KAC5E,CAAC,CAAC,CAAC;AACR,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export declare const screenReviewArgsSchema: z.ZodObject<{
|
|
|
13
13
|
images: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
14
|
changedRoutes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15
15
|
routeFile: z.ZodOptional<z.ZodString>;
|
|
16
|
+
baseRef: z.ZodOptional<z.ZodString>;
|
|
16
17
|
model: z.ZodDefault<z.ZodString>;
|
|
17
18
|
printTimeout: z.ZodDefault<z.ZodString>;
|
|
18
19
|
yolo: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -87,6 +88,7 @@ export declare function buildScreenReviewPrompt(config: {
|
|
|
87
88
|
images?: string[];
|
|
88
89
|
routeFile?: string;
|
|
89
90
|
changedRoutes?: string[];
|
|
91
|
+
mergeBase?: string;
|
|
90
92
|
}): string;
|
|
91
93
|
export interface ReviewDecision {
|
|
92
94
|
verdict: 'APPROVE' | 'REQUEST_CHANGES';
|
|
@@ -109,6 +111,7 @@ export declare function formatScreenReviewReport(input: {
|
|
|
109
111
|
decision: ReviewDecision;
|
|
110
112
|
deniedActions: string;
|
|
111
113
|
workingTree: WorkingTreeDiff;
|
|
114
|
+
modelSteps: number | null;
|
|
112
115
|
}): string;
|
|
113
116
|
export declare function formatScreenPlanReport(input: {
|
|
114
117
|
envelope: AgyJsonEnvelope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-review.tool.d.ts","sourceRoot":"","sources":["../../src/tools/screen-review.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"screen-review.tool.d.ts","sourceRoot":"","sources":["../../src/tools/screen-review.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAkBxG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBA4DjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAatE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWnC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAgBjC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,gCAAgC,yBAA4C,CAAC;AAC1F,eAAO,MAAM,8BAA8B,yBAA0C,CAAC;AAwBtF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAgDT;AAID,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwBD,uGAAuG;AACvG,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,GAAE,MAAM,EAAO,GAC3B,cAAc,CAyDhB;AAWD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,CAgDT;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,eAAe,CAAC;CAC9B,GAAG,MAAM,CAqCT;AAID,eAAO,MAAM,gBAAgB,EAAE,WAwG9B,CAAC"}
|