agent-nuvira 3.3.16 → 3.3.18
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/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +10 -2
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/prompt-assembly.js +2 -2
- package/dist/agents/prompt-assembly.js.map +1 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +25 -2
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +5 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/state.d.ts +22 -0
- package/dist/cli/state.d.ts.map +1 -0
- package/dist/cli/state.js +156 -0
- package/dist/cli/state.js.map +1 -0
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +21 -4
- package/dist/cli/trace.js.map +1 -1
- package/dist/inference/model-validator.d.ts.map +1 -1
- package/dist/inference/model-validator.js +64 -2
- package/dist/inference/model-validator.js.map +1 -1
- package/dist/learning/failure-bookkeeping.d.ts +5 -2
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +30 -2
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/provider-fallback.d.ts +6 -3
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +22 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +17 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +8 -0
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/turn-report.d.ts +37 -1
- package/dist/learning/turn-report.d.ts.map +1 -1
- package/dist/learning/turn-report.js +61 -3
- package/dist/learning/turn-report.js.map +1 -1
- package/dist/learning/working-state.d.ts +79 -3
- package/dist/learning/working-state.d.ts.map +1 -1
- package/dist/learning/working-state.js +199 -6
- package/dist/learning/working-state.js.map +1 -1
- package/dist/tools/child-agent-runtime.js +3 -2
- package/dist/tools/child-agent-runtime.js.map +1 -1
- package/dist/tools/edit-verification.d.ts +60 -5
- package/dist/tools/edit-verification.d.ts.map +1 -1
- package/dist/tools/edit-verification.js +333 -48
- package/dist/tools/edit-verification.js.map +1 -1
- package/dist/tools/loop-project-context.js +2 -2
- package/dist/tools/loop-project-context.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +34 -0
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +83 -6
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +47 -3
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +21 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/web-dashboard/public/assets/{index-goRHl73H.js → index-UJ1VG4JG.js} +86 -86
- package/src/web-dashboard/public/assets/{index-goRHl73H.js.map → index-UJ1VG4JG.js.map} +1 -1
- package/src/web-dashboard/public/assets/{index-tK8Y2qHB.css → index-cBWT2qxn.css} +1 -1
- package/src/web-dashboard/public/index.html +2 -2
|
@@ -73,6 +73,45 @@ export interface ToolCallEvidence {
|
|
|
73
73
|
* on the real check — it is not demoted for the parse step it contains.
|
|
74
74
|
*/
|
|
75
75
|
export declare function isParseOnlyCheck(evidence: ToolCallEvidence): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Where do this command's checks actually RUN?
|
|
78
|
+
*
|
|
79
|
+
* `cd src/web-dashboard && npm test` → that package. `npm --prefix x run test`
|
|
80
|
+
* → x. `npm run test:dashboard` → wherever the root script it names goes, which
|
|
81
|
+
* is how a project declares the canonical check for a nested package. Anything
|
|
82
|
+
* else runs at `cwd`.
|
|
83
|
+
*
|
|
84
|
+
* One level of script indirection only (depth < 2), so a self-referential or
|
|
85
|
+
* pathological chain cannot loop.
|
|
86
|
+
*/
|
|
87
|
+
export declare function checkRootFor(command: string, cwd: string, depth?: number): string;
|
|
88
|
+
/**
|
|
89
|
+
* WHICH of the changed files did this turn's verification actually EXERCISE?
|
|
90
|
+
*
|
|
91
|
+
* This is the per-file truth the gate's boolean and the working-state ledger's
|
|
92
|
+
* debt both derive from, so the two can never disagree about what was covered.
|
|
93
|
+
*
|
|
94
|
+
* A file counts when some successful observation either:
|
|
95
|
+
* - NAMES it (`grep … style.css`, `node --check script.js` — the parse filter
|
|
96
|
+
* below removes the syntax-only shapes), OR
|
|
97
|
+
* - is the `test` pipeline, judged by the same coverage rule as a generic
|
|
98
|
+
* command at the project root (see {@link checkRootFor}), OR
|
|
99
|
+
* - is a real `browser` run — a live observation of the running app, which is
|
|
100
|
+
* precisely the check a component change needs, so it is never narrowed, OR
|
|
101
|
+
* - is a generic project check whose ROOT covers the file (`npm test` at the
|
|
102
|
+
* root covers root files; the nested package's own script covers its own).
|
|
103
|
+
*/
|
|
104
|
+
/**
|
|
105
|
+
* NOTE ON `needsVerification` vs the per-file split. The gate asks ONE question —
|
|
106
|
+
* "did anything observe this turn's result?" — and spends one bounded nudge; the
|
|
107
|
+
* split says WHICH files are still owed a check. They are deliberately not the
|
|
108
|
+
* same predicate: a turn that covered three of four files is not a turn with no
|
|
109
|
+
* verification at all, and firing the nudge on it would ask again for work the
|
|
110
|
+
* model already did. The outstanding file is carried by `unverifiedPaths`
|
|
111
|
+
* instead (the ledger's debt and the next turn's block), which is where it can
|
|
112
|
+
* be acted on; `needsVerification` stays what it always was.
|
|
113
|
+
*/
|
|
114
|
+
export declare function verifiedPathsFor(evidence: readonly ToolCallEvidence[], changedFiles: readonly string[], cwd?: string): string[];
|
|
76
115
|
/**
|
|
77
116
|
* Did this turn's verification actually EXERCISE the artifact it changed?
|
|
78
117
|
*
|
|
@@ -80,24 +119,34 @@ export declare function isParseOnlyCheck(evidence: ToolCallEvidence): boolean;
|
|
|
80
119
|
* marked a turn "verified" (the same class of false positive the gate exists to
|
|
81
120
|
* prevent). A run counts only when it:
|
|
82
121
|
* - is the `test` pipeline or a real `browser` run (inherently project-wide), OR
|
|
83
|
-
* - runs a generic project check (`npm test`, typecheck, build, linter)
|
|
84
|
-
*
|
|
85
|
-
*
|
|
122
|
+
* - runs a generic project check (`npm test`, typecheck, build, linter) that
|
|
123
|
+
* COVERS the changed file (see {@link checkRootFor} for the nested-package
|
|
124
|
+
* rule this gained), OR
|
|
125
|
+
* - names one of the files the turn changed (e.g. `grep … style.css`).
|
|
86
126
|
*
|
|
87
127
|
* When the turn's changed paths are UNKNOWN, it falls back to "any successful
|
|
88
128
|
* verification counts" — the pre-strictening behaviour — so an unidentifiable
|
|
89
129
|
* mutation is never falsely flagged.
|
|
130
|
+
*
|
|
131
|
+
* Delegates to {@link verifiedPathsFor} rather than re-implementing the rule, so
|
|
132
|
+
* the gate and the per-file debt cannot drift apart.
|
|
90
133
|
*/
|
|
91
|
-
export declare function verificationExercisedArtifact(evidence: readonly ToolCallEvidence[], changedFiles: readonly string[]): boolean;
|
|
134
|
+
export declare function verificationExercisedArtifact(evidence: readonly ToolCallEvidence[], changedFiles: readonly string[], cwd?: string): boolean;
|
|
92
135
|
/**
|
|
93
136
|
* Full edit assessment for a turn: what mutated, what verified, and whether a
|
|
94
137
|
* verification still OWED. This is the single call the loop uses so the gate,
|
|
95
138
|
* the nudge and the honesty flag can never disagree.
|
|
139
|
+
*
|
|
140
|
+
* `verifiedPaths` / `unverifiedPaths` are the PER-FILE split of the same
|
|
141
|
+
* judgement; the caller records them in the working-state ledger so the debt it
|
|
142
|
+
* owes is a set of paths rather than a bare count.
|
|
96
143
|
*/
|
|
97
|
-
export declare function assessEditActivity(toolsRun: readonly string[], evidence?: readonly ToolCallEvidence[], changedFiles?: readonly string[]): {
|
|
144
|
+
export declare function assessEditActivity(toolsRun: readonly string[], evidence?: readonly ToolCallEvidence[], changedFiles?: readonly string[], cwd?: string): {
|
|
98
145
|
mutations: string[];
|
|
99
146
|
verifications: string[];
|
|
100
147
|
needsVerification: boolean;
|
|
148
|
+
verifiedPaths: string[];
|
|
149
|
+
unverifiedPaths: string[];
|
|
101
150
|
};
|
|
102
151
|
/**
|
|
103
152
|
* True when the answer asserts a completed CODE change that no verification
|
|
@@ -126,6 +175,12 @@ export interface AvailableCheck {
|
|
|
126
175
|
label: string;
|
|
127
176
|
/** Higher = observes more. Used only for ordering. */
|
|
128
177
|
strength: number;
|
|
178
|
+
/**
|
|
179
|
+
* Absolute directory this check COVERS — the package it runs in. Absent means
|
|
180
|
+
* the project root. Used to prefer the check that actually covers the files a
|
|
181
|
+
* turn changed (`npm run test:dashboard` over `npm test` for a dashboard file).
|
|
182
|
+
*/
|
|
183
|
+
root?: string;
|
|
129
184
|
}
|
|
130
185
|
/**
|
|
131
186
|
* Which verification checks does THIS project actually have?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-verification.d.ts","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"edit-verification.d.ts","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* a model — because "the strongest check" is a property of THIS project, and a
|
|
26
26
|
* nudge that names it is actionable where a generic preference order is not.
|
|
27
27
|
*/
|
|
28
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
29
|
-
import { join } from 'node:path';
|
|
28
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
29
|
+
import { dirname, join, relative, resolve } from 'node:path';
|
|
30
30
|
/**
|
|
31
31
|
* Tools that CHANGE the workspace. A turn that ran one of these has produced
|
|
32
32
|
* a claim about reality that only a verification run can support.
|
|
@@ -89,7 +89,7 @@ export function classifyEditActivity(toolsRun) {
|
|
|
89
89
|
* session report "verified" after running `node -c script.js`. See
|
|
90
90
|
* `PARSE_ONLY_RE` below for why that cannot count.
|
|
91
91
|
*/
|
|
92
|
-
const GENERIC_VERIFY_RE = /\b(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|build|lint|typecheck|check|ci)\b|\b(?:tsc|vitest|jest|pytest|mocha|cargo\s+test|go\s+test|gradle|mvn|make)\b/i;
|
|
92
|
+
const GENERIC_VERIFY_RE = /\b(?:npm|pnpm|yarn|bun)\s+(?:--prefix[=\s]+\S+\s+)?(?:run\s+)?(?:test|build|lint|typecheck|check|ci)\b|\b(?:tsc|vitest|jest|pytest|mocha|cargo\s+test|go\s+test|gradle|mvn|make)\b/i;
|
|
93
93
|
/**
|
|
94
94
|
* Commands that only PARSE the files they are handed. They prove the source is
|
|
95
95
|
* syntactically valid and nothing else.
|
|
@@ -130,6 +130,216 @@ export function isParseOnlyCheck(evidence) {
|
|
|
130
130
|
const text = evidenceText(evidence);
|
|
131
131
|
return PARSE_ONLY_RE.test(text) && !GENERIC_VERIFY_RE.test(text);
|
|
132
132
|
}
|
|
133
|
+
// ─── WHICH CHECK COVERS WHICH FILE (the nested-package rule) ────────────────
|
|
134
|
+
/**
|
|
135
|
+
* Runner configs that mean "this directory has its OWN suite", script or not.
|
|
136
|
+
* Mirrors the markers `detectAvailableChecks` already accepts one level down.
|
|
137
|
+
*/
|
|
138
|
+
const OWN_TEST_CONFIG_FILES = [
|
|
139
|
+
'vitest.config.ts', 'vitest.config.mts', 'vitest.config.js', 'vitest.config.mjs',
|
|
140
|
+
'jest.config.js', 'jest.config.ts', 'jest.config.cjs', 'jest.config.mjs',
|
|
141
|
+
'pytest.ini', 'Cargo.toml', 'go.mod',
|
|
142
|
+
];
|
|
143
|
+
/** Does this path exist as a file? (Never throws.) */
|
|
144
|
+
function fileExists(path) {
|
|
145
|
+
try {
|
|
146
|
+
return existsSync(path);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Does this directory declare its OWN test command — i.e. a suite that an
|
|
154
|
+
* ANCESTOR's generic check will not run? Deliberately test-shaped only: a bare
|
|
155
|
+
* `package.json` (a deps-only stub) has no suite, so a change under it is still
|
|
156
|
+
* judged the old, permissive way.
|
|
157
|
+
*/
|
|
158
|
+
function packageHasOwnTests(dir) {
|
|
159
|
+
if (!fileExists(join(dir, 'package.json'))) {
|
|
160
|
+
// No manifest, but a runner config is still a suite of its own.
|
|
161
|
+
return OWN_TEST_CONFIG_FILES.some((f) => fileExists(join(dir, f)));
|
|
162
|
+
}
|
|
163
|
+
const pkg = readJsonSafe(join(dir, 'package.json'));
|
|
164
|
+
const scripts = (pkg?.scripts ?? {});
|
|
165
|
+
for (const k of ['test', 'tests']) {
|
|
166
|
+
if (typeof scripts[k] === 'string' && String(scripts[k]).trim().length > 0)
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
return OWN_TEST_CONFIG_FILES.some((f) => fileExists(join(dir, f)));
|
|
170
|
+
}
|
|
171
|
+
/** Memoized package-script bodies, so the gate does not re-read per changed file. */
|
|
172
|
+
const packageScriptCache = new Map();
|
|
173
|
+
/** The `scripts` object of a package, or {} (memoized, never throws). */
|
|
174
|
+
function packageScripts(dir) {
|
|
175
|
+
const cached = packageScriptCache.get(dir);
|
|
176
|
+
if (cached)
|
|
177
|
+
return cached;
|
|
178
|
+
const pkg = fileExists(join(dir, 'package.json')) ? readJsonSafe(join(dir, 'package.json')) : null;
|
|
179
|
+
const scripts = (pkg?.scripts ?? {}) || {};
|
|
180
|
+
packageScriptCache.set(dir, scripts);
|
|
181
|
+
return scripts;
|
|
182
|
+
}
|
|
183
|
+
/** npm/pnpm/yarn subcommands that are NOT package scripts. */
|
|
184
|
+
const RESERVED_SUBCOMMANDS = new Set([
|
|
185
|
+
'install', 'i', 'ci', 'ls', 'list', 'view', 'info', 'show', 'publish', 'pack', 'exec', 'x',
|
|
186
|
+
'audit', 'outdated', 'why', 'init', 'create', 'config', 'link', 'unlink', 'update', 'up',
|
|
187
|
+
'dedupe', 'prune', 'fund', 'doctor', 'cache', 'login', 'logout', 'owner', 'root', 'prefix',
|
|
188
|
+
'add', 'remove', 'rm', 'dlx', 'import', 'rebuild', 'help',
|
|
189
|
+
]);
|
|
190
|
+
/** The script a `npm run <name>` / `npm test` style command invokes, or null. */
|
|
191
|
+
function scriptNameOf(text) {
|
|
192
|
+
const m = /^\s*(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?([A-Za-z0-9:_-]+)\b/.exec(text.trim());
|
|
193
|
+
if (!m)
|
|
194
|
+
return null;
|
|
195
|
+
const name = m[1];
|
|
196
|
+
return RESERVED_SUBCOMMANDS.has(name) ? null : name;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Where do this command's checks actually RUN?
|
|
200
|
+
*
|
|
201
|
+
* `cd src/web-dashboard && npm test` → that package. `npm --prefix x run test`
|
|
202
|
+
* → x. `npm run test:dashboard` → wherever the root script it names goes, which
|
|
203
|
+
* is how a project declares the canonical check for a nested package. Anything
|
|
204
|
+
* else runs at `cwd`.
|
|
205
|
+
*
|
|
206
|
+
* One level of script indirection only (depth < 2), so a self-referential or
|
|
207
|
+
* pathological chain cannot loop.
|
|
208
|
+
*/
|
|
209
|
+
export function checkRootFor(command, cwd, depth = 0) {
|
|
210
|
+
const text = String(command ?? '');
|
|
211
|
+
const cd = /\bcd\s+(?:--\s+)?(?:"([^"]+)"|'([^']+)'|([^\s&;|)]+))/.exec(text);
|
|
212
|
+
const cdTarget = cd?.[1] ?? cd?.[2] ?? cd?.[3];
|
|
213
|
+
if (cdTarget)
|
|
214
|
+
return resolve(cwd, cdTarget);
|
|
215
|
+
const prefix = /--prefix[=\s]+(?:"([^"]+)"|'([^']+)'|([^\s&;|)]+))/.exec(text);
|
|
216
|
+
const prefixTarget = prefix?.[1] ?? prefix?.[2] ?? prefix?.[3];
|
|
217
|
+
if (prefixTarget)
|
|
218
|
+
return resolve(cwd, prefixTarget);
|
|
219
|
+
if (depth < 2) {
|
|
220
|
+
const name = scriptNameOf(text);
|
|
221
|
+
if (name) {
|
|
222
|
+
const body = packageScripts(cwd)[name];
|
|
223
|
+
if (typeof body === 'string' && body.trim())
|
|
224
|
+
return checkRootFor(body, cwd, depth + 1);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return resolve(cwd);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Is `fileAbs` covered by a generic check rooted at `rootAbs`?
|
|
231
|
+
*
|
|
232
|
+
* The walk is the whole rule: start at the file's own directory and climb to
|
|
233
|
+
* the check root; if any package on the way declares its OWN test command, the
|
|
234
|
+
* ancestor's check does not run it, so the answer is NO.
|
|
235
|
+
*/
|
|
236
|
+
function pathCoveredByRoot(fileAbs, rootAbs) {
|
|
237
|
+
const under = relative(rootAbs, fileAbs);
|
|
238
|
+
if (under === '' || under.startsWith('..'))
|
|
239
|
+
return false;
|
|
240
|
+
let cur = dirname(fileAbs);
|
|
241
|
+
for (;;) {
|
|
242
|
+
const rel = relative(rootAbs, cur);
|
|
243
|
+
if (rel === '' || rel.startsWith('..'))
|
|
244
|
+
return true; // reached (or passed) the check root
|
|
245
|
+
if (packageHasOwnTests(cur))
|
|
246
|
+
return false;
|
|
247
|
+
const parent = dirname(cur);
|
|
248
|
+
if (parent === cur)
|
|
249
|
+
return true;
|
|
250
|
+
cur = parent;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Does this command's check cover this changed file?
|
|
255
|
+
*
|
|
256
|
+
* `foreign` = the file is outside the project root entirely. We do not judge
|
|
257
|
+
* those (there is nothing to compare against), so the previous permissive
|
|
258
|
+
* answer stands rather than inventing a stricter rule with no evidence behind
|
|
259
|
+
* it — the same stance the empty-`changedFiles` fallback takes.
|
|
260
|
+
*/
|
|
261
|
+
function commandCoversFile(command, fileAbs, cwdAbs, foreign) {
|
|
262
|
+
if (foreign)
|
|
263
|
+
return true;
|
|
264
|
+
const root = checkRootFor(command, cwdAbs);
|
|
265
|
+
return pathCoveredByRoot(fileAbs, root);
|
|
266
|
+
}
|
|
267
|
+
/** The `command` argument of an executed run (falls back to the result text). */
|
|
268
|
+
function commandOf(e) {
|
|
269
|
+
const a = e.args;
|
|
270
|
+
const c = a?.command ?? a?.cmd;
|
|
271
|
+
return typeof c === 'string' ? c : (e.result ?? '');
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* WHICH of the changed files did this turn's verification actually EXERCISE?
|
|
275
|
+
*
|
|
276
|
+
* This is the per-file truth the gate's boolean and the working-state ledger's
|
|
277
|
+
* debt both derive from, so the two can never disagree about what was covered.
|
|
278
|
+
*
|
|
279
|
+
* A file counts when some successful observation either:
|
|
280
|
+
* - NAMES it (`grep … style.css`, `node --check script.js` — the parse filter
|
|
281
|
+
* below removes the syntax-only shapes), OR
|
|
282
|
+
* - is the `test` pipeline, judged by the same coverage rule as a generic
|
|
283
|
+
* command at the project root (see {@link checkRootFor}), OR
|
|
284
|
+
* - is a real `browser` run — a live observation of the running app, which is
|
|
285
|
+
* precisely the check a component change needs, so it is never narrowed, OR
|
|
286
|
+
* - is a generic project check whose ROOT covers the file (`npm test` at the
|
|
287
|
+
* root covers root files; the nested package's own script covers its own).
|
|
288
|
+
*/
|
|
289
|
+
/**
|
|
290
|
+
* NOTE ON `needsVerification` vs the per-file split. The gate asks ONE question —
|
|
291
|
+
* "did anything observe this turn's result?" — and spends one bounded nudge; the
|
|
292
|
+
* split says WHICH files are still owed a check. They are deliberately not the
|
|
293
|
+
* same predicate: a turn that covered three of four files is not a turn with no
|
|
294
|
+
* verification at all, and firing the nudge on it would ask again for work the
|
|
295
|
+
* model already did. The outstanding file is carried by `unverifiedPaths`
|
|
296
|
+
* instead (the ledger's debt and the next turn's block), which is where it can
|
|
297
|
+
* be acted on; `needsVerification` stays what it always was.
|
|
298
|
+
*/
|
|
299
|
+
export function verifiedPathsFor(evidence, changedFiles, cwd = process.cwd()) {
|
|
300
|
+
const observed = evidence.filter((e) => !isParseOnlyCheck(e));
|
|
301
|
+
if (observed.length === 0)
|
|
302
|
+
return [];
|
|
303
|
+
const cwdAbs = resolve(cwd);
|
|
304
|
+
const covered = [];
|
|
305
|
+
for (const f of changedFiles) {
|
|
306
|
+
if (!f)
|
|
307
|
+
continue;
|
|
308
|
+
const fileAbs = resolve(cwdAbs, f);
|
|
309
|
+
const foreign = relative(cwdAbs, fileAbs).startsWith('..');
|
|
310
|
+
const base = f.split(/[\\/]/).pop() ?? '';
|
|
311
|
+
let hit = false;
|
|
312
|
+
for (const e of observed) {
|
|
313
|
+
if (e.tool === 'browser') {
|
|
314
|
+
hit = true;
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
if (e.tool === 'test') {
|
|
318
|
+
if (commandCoversFile('npm test', fileAbs, cwdAbs, foreign)) {
|
|
319
|
+
hit = true;
|
|
320
|
+
break;
|
|
321
|
+
}
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
const text = evidenceText(e);
|
|
325
|
+
if (base && text.includes(base)) {
|
|
326
|
+
hit = true;
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
if (f && text.includes(f)) {
|
|
330
|
+
hit = true;
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
if (GENERIC_VERIFY_RE.test(text) && commandCoversFile(commandOf(e), fileAbs, cwdAbs, foreign)) {
|
|
334
|
+
hit = true;
|
|
335
|
+
break;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
if (hit)
|
|
339
|
+
covered.push(f);
|
|
340
|
+
}
|
|
341
|
+
return covered;
|
|
342
|
+
}
|
|
133
343
|
/**
|
|
134
344
|
* Did this turn's verification actually EXERCISE the artifact it changed?
|
|
135
345
|
*
|
|
@@ -137,55 +347,50 @@ export function isParseOnlyCheck(evidence) {
|
|
|
137
347
|
* marked a turn "verified" (the same class of false positive the gate exists to
|
|
138
348
|
* prevent). A run counts only when it:
|
|
139
349
|
* - is the `test` pipeline or a real `browser` run (inherently project-wide), OR
|
|
140
|
-
* - runs a generic project check (`npm test`, typecheck, build, linter)
|
|
141
|
-
*
|
|
142
|
-
*
|
|
350
|
+
* - runs a generic project check (`npm test`, typecheck, build, linter) that
|
|
351
|
+
* COVERS the changed file (see {@link checkRootFor} for the nested-package
|
|
352
|
+
* rule this gained), OR
|
|
353
|
+
* - names one of the files the turn changed (e.g. `grep … style.css`).
|
|
143
354
|
*
|
|
144
355
|
* When the turn's changed paths are UNKNOWN, it falls back to "any successful
|
|
145
356
|
* verification counts" — the pre-strictening behaviour — so an unidentifiable
|
|
146
357
|
* mutation is never falsely flagged.
|
|
358
|
+
*
|
|
359
|
+
* Delegates to {@link verifiedPathsFor} rather than re-implementing the rule, so
|
|
360
|
+
* the gate and the per-file debt cannot drift apart.
|
|
147
361
|
*/
|
|
148
|
-
export function verificationExercisedArtifact(evidence, changedFiles) {
|
|
362
|
+
export function verificationExercisedArtifact(evidence, changedFiles, cwd = process.cwd()) {
|
|
149
363
|
// A parse check observes syntax, never behaviour — drop it before judging,
|
|
150
364
|
// so it can satisfy neither the relevance match nor the file-name match.
|
|
151
|
-
|
|
152
|
-
if (observed.length === 0)
|
|
365
|
+
if (evidence.filter((e) => !isParseOnlyCheck(e)).length === 0)
|
|
153
366
|
return false;
|
|
154
367
|
// Unknown changed paths → cannot judge relevance; don't cry wolf.
|
|
155
368
|
if (changedFiles.length === 0)
|
|
156
369
|
return true;
|
|
157
|
-
|
|
158
|
-
for (const f of changedFiles) {
|
|
159
|
-
if (!f)
|
|
160
|
-
continue;
|
|
161
|
-
names.add(f);
|
|
162
|
-
const base = f.split(/[\\/]/).pop();
|
|
163
|
-
if (base)
|
|
164
|
-
names.add(base);
|
|
165
|
-
}
|
|
166
|
-
for (const e of observed) {
|
|
167
|
-
if (e.tool === 'test' || e.tool === 'browser')
|
|
168
|
-
return true;
|
|
169
|
-
const text = evidenceText(e);
|
|
170
|
-
if (GENERIC_VERIFY_RE.test(text))
|
|
171
|
-
return true;
|
|
172
|
-
for (const n of names) {
|
|
173
|
-
if (n && text.includes(n))
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return false;
|
|
370
|
+
return verifiedPathsFor(evidence, changedFiles, cwd).length > 0;
|
|
178
371
|
}
|
|
179
372
|
/**
|
|
180
373
|
* Full edit assessment for a turn: what mutated, what verified, and whether a
|
|
181
374
|
* verification still OWED. This is the single call the loop uses so the gate,
|
|
182
375
|
* the nudge and the honesty flag can never disagree.
|
|
376
|
+
*
|
|
377
|
+
* `verifiedPaths` / `unverifiedPaths` are the PER-FILE split of the same
|
|
378
|
+
* judgement; the caller records them in the working-state ledger so the debt it
|
|
379
|
+
* owes is a set of paths rather than a bare count.
|
|
183
380
|
*/
|
|
184
|
-
export function assessEditActivity(toolsRun, evidence = [], changedFiles = []) {
|
|
381
|
+
export function assessEditActivity(toolsRun, evidence = [], changedFiles = [], cwd = process.cwd()) {
|
|
185
382
|
const base = classifyEditActivity(toolsRun);
|
|
186
|
-
if (base.mutations.length === 0)
|
|
187
|
-
return { ...base, needsVerification: false };
|
|
188
|
-
|
|
383
|
+
if (base.mutations.length === 0) {
|
|
384
|
+
return { ...base, needsVerification: false, verifiedPaths: [], unverifiedPaths: [] };
|
|
385
|
+
}
|
|
386
|
+
const verifiedPaths = verifiedPathsFor(evidence, changedFiles, cwd);
|
|
387
|
+
const covered = new Set(verifiedPaths);
|
|
388
|
+
return {
|
|
389
|
+
...base,
|
|
390
|
+
needsVerification: !verificationExercisedArtifact(evidence, changedFiles, cwd),
|
|
391
|
+
verifiedPaths,
|
|
392
|
+
unverifiedPaths: changedFiles.filter((f) => f && !covered.has(f)),
|
|
393
|
+
};
|
|
189
394
|
}
|
|
190
395
|
/** A sentence that is future/interrogative/negated is NOT a completed claim. */
|
|
191
396
|
const NON_CLAIM_CONTEXT_RE = /\b(?:not|n't|never|unable|cannot|can't|couldn't|didn't|won't|will|would|should|could|can|may|might|going to|about to|try(?:ing)? to|attempt|if you|let me|shall i|should i|do you want|i'?ll|next|then)\b/i;
|
|
@@ -255,14 +460,42 @@ function readJsonSafe(path) {
|
|
|
255
460
|
return null;
|
|
256
461
|
}
|
|
257
462
|
}
|
|
258
|
-
/**
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
463
|
+
/** Directories never walked looking for nested packages. */
|
|
464
|
+
const NESTED_SKIP_DIRS = new Set([
|
|
465
|
+
'node_modules', 'dist', 'build', 'out', 'coverage', 'vendor', 'target', '.git', '.next',
|
|
466
|
+
]);
|
|
467
|
+
/** How deep a nested package may sit (`src/web-dashboard`, `examples/sdk` = 2). */
|
|
468
|
+
const NESTED_MAX_DEPTH = 2;
|
|
469
|
+
/**
|
|
470
|
+
* Relative paths of packages nested under `cwd` (bounded depth, no vendor dirs).
|
|
471
|
+
* Dot-directories are skipped, so a checked-in toolchain cache (`.vscode-test`)
|
|
472
|
+
* is never mistaken for a package in the project.
|
|
473
|
+
*/
|
|
474
|
+
function findNestedPackages(cwd) {
|
|
475
|
+
const found = [];
|
|
476
|
+
const walk = (rel, depth) => {
|
|
477
|
+
if (depth > NESTED_MAX_DEPTH)
|
|
478
|
+
return;
|
|
479
|
+
let entries = [];
|
|
480
|
+
try {
|
|
481
|
+
entries = readdirSync(join(cwd, rel), { withFileTypes: true });
|
|
482
|
+
}
|
|
483
|
+
catch {
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
for (const entry of entries) {
|
|
487
|
+
if (!entry.isDirectory())
|
|
488
|
+
continue;
|
|
489
|
+
if (entry.name.startsWith('.') || NESTED_SKIP_DIRS.has(entry.name))
|
|
490
|
+
continue;
|
|
491
|
+
const child = rel ? `${rel}/${entry.name}` : entry.name;
|
|
492
|
+
if (fileExists(join(cwd, child, 'package.json')))
|
|
493
|
+
found.push(child);
|
|
494
|
+
walk(child, depth + 1);
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
walk('', 1);
|
|
498
|
+
return found;
|
|
266
499
|
}
|
|
267
500
|
/**
|
|
268
501
|
* Which verification checks does THIS project actually have?
|
|
@@ -280,10 +513,11 @@ function fileExists(path) {
|
|
|
280
513
|
*/
|
|
281
514
|
export function detectAvailableChecks(cwd) {
|
|
282
515
|
const checks = [];
|
|
283
|
-
const add = (command, label, strength) => {
|
|
516
|
+
const add = (command, label, strength, root) => {
|
|
284
517
|
if (!checks.some((c) => c.command === command))
|
|
285
|
-
checks.push({ command, label, strength });
|
|
518
|
+
checks.push({ command, label, strength, ...(root ? { root } : {}) });
|
|
286
519
|
};
|
|
520
|
+
const cwdAbs = resolve(cwd);
|
|
287
521
|
const pkg = fileExists(join(cwd, 'package.json')) ? readJsonSafe(join(cwd, 'package.json')) : null;
|
|
288
522
|
const scripts = (pkg?.scripts ?? {}) || {};
|
|
289
523
|
const hasScript = (k) => typeof scripts[k] === 'string' && String(scripts[k]).trim().length > 0;
|
|
@@ -327,6 +561,33 @@ export function detectAvailableChecks(cwd) {
|
|
|
327
561
|
// A typechecker with no script is still the strongest static observation.
|
|
328
562
|
if (fileExists(join(cwd, 'tsconfig.json')))
|
|
329
563
|
add('npx tsc --noEmit', 'a tsconfig.json', 70);
|
|
564
|
+
// ── NESTED PACKAGES (a monorepo's own suites) ───────────────────────────
|
|
565
|
+
// A root `npm test` does NOT run a nested package's suite, so a project that
|
|
566
|
+
// has one has already declared the command that does — a root script that
|
|
567
|
+
// `cd`s into it (`"test:dashboard": "cd src/web-dashboard && npm test"`).
|
|
568
|
+
// Name THAT: it is the canonical way this project checks that package, so the
|
|
569
|
+
// model has nothing to invent.
|
|
570
|
+
const coveredRoots = new Set();
|
|
571
|
+
for (const [name, body] of Object.entries(scripts)) {
|
|
572
|
+
if (typeof body !== 'string' || !body.trim())
|
|
573
|
+
continue;
|
|
574
|
+
if (!GENERIC_VERIFY_RE.test(body))
|
|
575
|
+
continue;
|
|
576
|
+
const root = checkRootFor(body, cwdAbs);
|
|
577
|
+
if (root === cwdAbs || !fileExists(join(root, 'package.json')))
|
|
578
|
+
continue;
|
|
579
|
+
coveredRoots.add(root);
|
|
580
|
+
const where = relative(cwdAbs, root) || '.';
|
|
581
|
+
add(`npm run ${name}`, `the "${name}" script in package.json (covers ${where})`, 100, root);
|
|
582
|
+
}
|
|
583
|
+
// A nested package with its own suite and NO root script for it: the suite
|
|
584
|
+
// exists, so name the direct command instead of leaving it invisible.
|
|
585
|
+
for (const rel of findNestedPackages(cwdAbs)) {
|
|
586
|
+
const abs = join(cwdAbs, rel);
|
|
587
|
+
if (coveredRoots.has(abs) || !packageHasOwnTests(abs))
|
|
588
|
+
continue;
|
|
589
|
+
add(`cd ${rel} && npm test`, `the project in ${rel} (its own test command)`, 100, abs);
|
|
590
|
+
}
|
|
330
591
|
return checks.sort((a, b) => b.strength - a.strength);
|
|
331
592
|
}
|
|
332
593
|
/**
|
|
@@ -377,9 +638,25 @@ export function isProseArtifactPath(path) {
|
|
|
377
638
|
return PROSE_ARTIFACT_EXTENSIONS.has(clean.slice(dot));
|
|
378
639
|
}
|
|
379
640
|
export function verificationNudgeFor(cwd, changedFiles = []) {
|
|
380
|
-
const
|
|
641
|
+
const cwdAbs = resolve(cwd);
|
|
381
642
|
const allChanged = changedFiles.filter(Boolean);
|
|
382
643
|
const changed = allChanged.slice(0, 5);
|
|
644
|
+
// ORDER BY RELEVANCE, not strength alone. In a monorepo the strongest check
|
|
645
|
+
// for the project (`npm test`) is not the check that covers the file that
|
|
646
|
+
// changed — the nested package's own suite is. Preferring a check the files are
|
|
647
|
+
// not under would send the model to run a suite that cannot see its change.
|
|
648
|
+
const coversChanged = (c) => {
|
|
649
|
+
if (allChanged.length === 0)
|
|
650
|
+
return false;
|
|
651
|
+
const root = c.root ?? cwdAbs;
|
|
652
|
+
return allChanged.some((f) => {
|
|
653
|
+
const abs = resolve(cwdAbs, f);
|
|
654
|
+
if (relative(cwdAbs, abs).startsWith('..'))
|
|
655
|
+
return false;
|
|
656
|
+
return pathCoveredByRoot(abs, root) && relative(root, abs) !== '';
|
|
657
|
+
});
|
|
658
|
+
};
|
|
659
|
+
const checks = [...detectAvailableChecks(cwd)].sort((a, b) => Number(coversChanged(b)) - Number(coversChanged(a)) || b.strength - a.strength);
|
|
383
660
|
// A WRITING deliverable is verified by its CONTENT, not by a test/build/run —
|
|
384
661
|
// none of those apply to prose, and asking for them sent a weak model into
|
|
385
662
|
// empty retries. Say what the check actually is, so it converges in one step.
|
|
@@ -405,12 +682,20 @@ export function verificationNudgeFor(cwd, changedFiles = []) {
|
|
|
405
682
|
'report what it showed. If even that is impossible, say so explicitly and do NOT claim ' +
|
|
406
683
|
'the change works.');
|
|
407
684
|
}
|
|
408
|
-
const
|
|
409
|
-
|
|
685
|
+
const best = checks.slice(0, 3);
|
|
686
|
+
const list = best
|
|
410
687
|
.map((c, i) => ` ${i + 1}. \`${c.command}\` — ${c.label}`)
|
|
411
688
|
.join('\n');
|
|
689
|
+
// Say WHEN the first check is the one that covers this change, so a monorepo
|
|
690
|
+
// turn does not answer a nested package's change with the root suite (a suite
|
|
691
|
+
// that cannot see it). Only asserted when it is true of the files shown.
|
|
692
|
+
const top = best[0];
|
|
693
|
+
const coversLine = top && coversChanged(top)
|
|
694
|
+
? `\n\`${top.command}\` is the check that COVERS the file(s) you changed; the others ` +
|
|
695
|
+
'run a different part of the repository and cannot observe this change.\n'
|
|
696
|
+
: '';
|
|
412
697
|
return (`${head}\n` +
|
|
413
|
-
`This project's strongest available checks, best first
|
|
698
|
+
`This project's strongest available checks, best first:${coversLine}\n${list}\n` +
|
|
414
699
|
'Run the strongest one and report what it showed. If it does not apply to this change, say ' +
|
|
415
700
|
'which you tried and why. If none of them runs, say so explicitly and do NOT claim the ' +
|
|
416
701
|
'change works.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-verification.js","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edit-verification.js","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAExF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,cAAc;IACd,MAAM;IACN,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA2B;IAK9D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C,IAAI,kBAAkB,CAAC,IAAI,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,SAAS;QACT,aAAa;QACb,oEAAoE;QACpE,iBAAiB,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;KACtE,CAAC;AACJ,CAAC;AAUD;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GACrB,qLAAqL,CAAC;AAExL;;;;;;;;;;;;;;GAcG;AACH,MAAM,aAAa,GACjB,sKAAsK,CAAC;AAEzK,+EAA+E;AAC/E,SAAS,YAAY,CAAC,CAAmB;IACvC,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACX,IAAI,CAAC;YACH,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA0B;IACzD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,qBAAqB,GAAG;IAC5B,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB;IAChF,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB;IACxE,YAAY,EAAE,YAAY,EAAE,QAAQ;CAC5B,CAAC;AAEX,sDAAsD;AACtD,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,gEAAgE;QAChE,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAA4B,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1F,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,qFAAqF;AACrF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAEtE,yEAAyE;AACzE,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnG,MAAM,OAAO,GAAI,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAA6B,IAAI,EAAE,CAAC;IACxE,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8DAA8D;AAC9D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAC1F,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI;IACxF,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IAC1F,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;CAC1D,CAAC,CAAC;AAEH,iFAAiF;AACjF,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,CAAC,GAAG,4DAA4D,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,GAAW,EAAE,KAAK,GAAG,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEpD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,OAAe;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,SAAS,CAAC;QACR,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,qCAAqC;QAC1F,IAAI,kBAAkB,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,EAAE,OAAgB;IAC3F,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,iFAAiF;AACjF,SAAS,SAAS,CAAC,CAAmB;IACpC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAwD,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAqC,EACrC,YAA+B,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC1C,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM;YACR,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC5D,GAAG,GAAG,IAAI,CAAC;oBACX,MAAM;gBACR,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM;YACR,CAAC;YACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC9F,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAqC,EACrC,YAA+B,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,kEAAkE;IAClE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA2B,EAC3B,WAAwC,EAAE,EAC1C,eAAkC,EAAE,EACpC,MAAc,OAAO,CAAC,GAAG,EAAE;IAQ3B,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IACvF,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,OAAO;QACL,GAAG,IAAI;QACP,iBAAiB,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC;QAC9E,aAAa;QACb,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,oBAAoB,GACxB,4MAA4M,CAAC;AAE/M;;;;;;;GAOG;AACH,MAAM,cAAc,GAAsB;IACxC,yEAAyE;IACzE,uTAAuT;IACvT,wCAAwC;IACxC,6JAA6J;IAC7J,kFAAkF;IAClF,wTAAwT;IACxT,gEAAgE;IAChE,8OAA8O;IAC9O,mEAAmE;IACnE,yOAAyO;IACzO,yCAAyC;IACzC,mIAAmI;IACnI,uCAAuC;IACvC,+GAA+G;CAChH,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,YAA+B,EAC/B,gBAAmC;IAEnC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,kEAAkE;IAClE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,2DAA2D;IAC3D,IAAI,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACpE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACjD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAuBD,kFAAkF;AAClF,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAA4B,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;CACxF,CAAC,CAAC;AACH,mFAAmF;AACnF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAa,EAAQ,EAAE;QAChD,IAAI,KAAK,GAAG,gBAAgB;YAAE,OAAO;QACrC,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACxD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,QAAgB,EAAE,IAAa,EAAQ,EAAE;QACpF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnG,MAAM,OAAO,GAAI,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAA6B,IAAI,EAAE,CAAC;IACxE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjH,wEAAwE;IACxE,IAAI,SAAS,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,UAAU,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC;IACjF,IAAI,SAAS,CAAC,OAAO,CAAC;QAAE,GAAG,CAAC,UAAU,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;IACnF,IAAI,SAAS,CAAC,WAAW,CAAC;QAAE,GAAG,CAAC,mBAAmB,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC;IACnG,IAAI,SAAS,CAAC,YAAY,CAAC;QAAE,GAAG,CAAC,oBAAoB,EAAE,yCAAyC,EAAE,EAAE,CAAC,CAAC;IACtG,IAAI,SAAS,CAAC,OAAO,CAAC;QAAE,GAAG,CAAC,eAAe,EAAE,oCAAoC,EAAE,EAAE,CAAC,CAAC;IACvF,IAAI,SAAS,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,cAAc,EAAE,mCAAmC,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,SAAS,CAAC,OAAO,CAAC;QAAE,GAAG,CAAC,eAAe,EAAE,oCAAoC,EAAE,EAAE,CAAC,CAAC;IAEvF,6EAA6E;IAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,EAAE,CAAC;YACjF,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvC,MAAM;YACR,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC9F,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,QAAQ,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAE,GAAG,CAAC,YAAY,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAClF,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAAE,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAAE,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAE3F,2EAA2E;IAC3E,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,8EAA8E;IAC9E,+BAA+B;IAC/B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAAE,SAAS;QACzE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QAC5C,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,IAAI,oCAAoC,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IACD,2EAA2E;IAC3E,sEAAsE;IACtE,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;YAAE,SAAS;QAChE,GAAG,CAAC,MAAM,GAAG,cAAc,EAAE,kBAAkB,GAAG,yBAAyB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,qFAAqF;IACrF,6EAA6E;IAC7E,gFAAgF;IAChF,8EAA8E;IAC9E,sDAAsD,CAAC;AAEzD;;;;;;;;;;GAUG;AACH;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;CAC7E,CAAC,CAAC;AAEH,gEAAgE;AAChE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,eAAkC,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC,4EAA4E;IAC5E,0EAA0E;IAC1E,gFAAgF;IAChF,4EAA4E;IAC5E,MAAM,aAAa,GAAG,CAAC,CAAiB,EAAW,EAAE;QACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;QAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzD,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CACzF,CAAC;IAEF,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,CACL,8CAA8C;YAC9C,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,oFAAoF;YACpF,0FAA0F;YAC1F,+FAA+F;YAC/F,6FAA6F;YAC7F,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GACR,6BAA6B;QAC7B,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,wFAAwF;QACxF,4FAA4F;QAC5F,uEAAuE,CAAC;IAE1E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,GAAG,IAAI,IAAI;YACX,wFAAwF;YACxF,0FAA0F;YAC1F,0FAA0F;YAC1F,wFAAwF;YACxF,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1D,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,UAAU,GACd,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC;QACvB,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,kEAAkE;YACpF,0EAA0E;QAC5E,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,CACL,GAAG,IAAI,IAAI;QACX,yDAAyD,UAAU,KAAK,IAAI,IAAI;QAChF,4FAA4F;QAC5F,wFAAwF;QACxF,eAAe,CAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,yFAAyF;IACzF,wFAAwF;IACxF,2FAA2F;IAC3F,gCAAgC,CAAC;AAEnC,MAAM,CAAC,MAAM,qBAAqB,GAChC,gFAAgF;IAChF,kFAAkF;IAClF,oFAAoF;IACpF,sFAAsF;IACtF,+EAA+E;IAC/E,kFAAkF;IAClF,uDAAuD,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAsB;IACrD,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,uEAAuE,aAAa,EAAE;QACxF,CAAC,CAAC,sFAAsF,CAAC;IAC3F,OAAO,CACL,gGAAgG;QAChG,oGAAoG;QACpG,uBAAuB,GAAG,WAAW,GAAG,4DAA4D;QACpG,qFAAqF,CACtF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,8EAA8E;IAC9E,gFAAgF;IAChF,gBAAgB,CAAC"}
|