instar 1.3.764 → 1.3.765
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/core/ClaudeCliIntelligenceProvider.d.ts +15 -0
- package/dist/core/ClaudeCliIntelligenceProvider.d.ts.map +1 -1
- package/dist/core/ClaudeCliIntelligenceProvider.js +111 -23
- package/dist/core/ClaudeCliIntelligenceProvider.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +49 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/crossModelReviewer.d.ts +188 -9
- package/dist/core/crossModelReviewer.d.ts.map +1 -1
- package/dist/core/crossModelReviewer.js +360 -18
- package/dist/core/crossModelReviewer.js.map +1 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/package.json +1 -1
- package/scripts/model-registry-freshness.manifest.json +8 -0
- package/skills/spec-converge/SKILL.md +4 -2
- package/skills/spec-converge/scripts/cross-model-review.mjs +36 -6
- package/src/data/builtin-manifest.json +19 -19
- package/upgrades/1.3.765.md +63 -0
- package/upgrades/side-effects/reviewer-door-rewiring-inc1.md +198 -0
|
@@ -44,14 +44,17 @@
|
|
|
44
44
|
* - `TRUSTED_REVIEWER_FRAMEWORKS` — the provider allowlist (no spec egress
|
|
45
45
|
* to untrusted/custom endpoints).
|
|
46
46
|
*/
|
|
47
|
+
import { execFileSync } from 'node:child_process';
|
|
47
48
|
import crypto from 'node:crypto';
|
|
48
49
|
import fs from 'node:fs';
|
|
49
50
|
import os from 'node:os';
|
|
50
51
|
import path from 'node:path';
|
|
51
|
-
import { detectCodexPath, detectGeminiPath } from './Config.js';
|
|
52
|
+
import { detectCodexPath, detectGeminiPath, detectClaudePath } from './Config.js';
|
|
52
53
|
import { validateRule1 } from '../providers/adapters/openai-codex/credentials.js';
|
|
53
54
|
import { resolveCliModelFlag } from '../providers/adapters/openai-codex/models.js';
|
|
54
55
|
import { resolveCliModelFlag as resolveGeminiModelFlag } from '../providers/adapters/gemini-cli/models.js';
|
|
56
|
+
import { resolveDevAgentGate } from './devAgentGate.js';
|
|
57
|
+
import { ClaudeForbiddenError } from './claudeForbiddenGuard.js';
|
|
55
58
|
import { buildIntelligenceProvider, } from './intelligenceProviderFactory.js';
|
|
56
59
|
// ── Constants (tunable) ─────────────────────────────────────────────────
|
|
57
60
|
/**
|
|
@@ -171,6 +174,7 @@ export function detectCodexReviewer(inputs = {}) {
|
|
|
171
174
|
available: true,
|
|
172
175
|
framework: 'codex-cli',
|
|
173
176
|
model: resolveCliModelFlag(REVIEW_MODEL_TIER),
|
|
177
|
+
crossFamily: true,
|
|
174
178
|
};
|
|
175
179
|
}
|
|
176
180
|
/**
|
|
@@ -232,8 +236,138 @@ export function detectGeminiReviewer(inputs = {}) {
|
|
|
232
236
|
available: true,
|
|
233
237
|
framework: 'gemini-cli',
|
|
234
238
|
model: resolveGeminiModelFlag(REVIEW_MODEL_TIER),
|
|
239
|
+
crossFamily: true,
|
|
235
240
|
};
|
|
236
241
|
}
|
|
242
|
+
// ── Claude clean-door reviewer (REVIEWER-DOOR-REWIRING §1) ───────────────
|
|
243
|
+
/**
|
|
244
|
+
* The concrete default model the Anthropic clean-door reviewer pins
|
|
245
|
+
* (REVIEWER-DOOR-REWIRING §1.3). NEVER the tier word `'capable'` — that resolves
|
|
246
|
+
* to opus (`src/core/models.ts`), the measured-penalized `opus × coding-harness`
|
|
247
|
+
* pair this reviewer family exists to move OFF. Registered in
|
|
248
|
+
* `scripts/model-registry-freshness.manifest.json` under the strict (CI-gating)
|
|
249
|
+
* freshness lint, so a rotted pin fails CI (the anti-rot ratchet); the
|
|
250
|
+
* degraded-loud no-silent-fallback path (§1.3) is the second, runtime guarantee.
|
|
251
|
+
*/
|
|
252
|
+
export const CLAUDE_REVIEWER_DEFAULT_MODEL = 'claude-fable-5';
|
|
253
|
+
/**
|
|
254
|
+
* The accept-set a config override (`specConverge.reviewers.anthropic.model`) is
|
|
255
|
+
* validated against (§1.3). A concrete-but-non-frontier id — e.g.
|
|
256
|
+
* `claude-opus-4-8` — is REJECTED (`override-not-frontier`), never silently
|
|
257
|
+
* honored, because a misconfigured override could otherwise re-pin the reviewer
|
|
258
|
+
* to opus and re-create the exact door-penalty gap this spec closes. Kept fresh
|
|
259
|
+
* by the same freshness lint that pins `CLAUDE_REVIEWER_DEFAULT_MODEL`, so this
|
|
260
|
+
* "derived-from-the-manifest frontier set" stays current structurally rather than
|
|
261
|
+
* by willpower (Structure > Willpower).
|
|
262
|
+
*/
|
|
263
|
+
export const CLAUDE_REVIEWER_FRONTIER_MODELS = [CLAUDE_REVIEWER_DEFAULT_MODEL];
|
|
264
|
+
/** The default Claude config-home path (`$CLAUDE_CONFIG_DIR` or `~/.claude`). */
|
|
265
|
+
function defaultClaudeConfigHome(env = process.env) {
|
|
266
|
+
return env['CLAUDE_CONFIG_DIR'] || path.join(os.homedir(), '.claude');
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Detect a Claude clean-door reviewer (REVIEWER-DOOR-REWIRING §1.2). Reports
|
|
270
|
+
* "installed-and-configured" — NOT entitlement-verified: usable auth,
|
|
271
|
+
* subscription tier, and Fable-5 entitlement are INVOCATION-time `degraded`
|
|
272
|
+
* results (§1.4), never detection reasons. Detection reasons are the purely
|
|
273
|
+
* static presence set only: `claude-not-installed` / `claude-config-missing` /
|
|
274
|
+
* `claude-forbidden`. NEVER throws; all inputs injectable (mirrors codex/gemini).
|
|
275
|
+
*/
|
|
276
|
+
export function detectClaudeReviewer(inputs = {}) {
|
|
277
|
+
// 1. claude-code allowed on this agent? (A claude-forbidden agent must never
|
|
278
|
+
// detect the family available — §1.2. Absent enabledFrameworks ⇒ allowed.)
|
|
279
|
+
if (inputs.enabledFrameworks && !inputs.enabledFrameworks.includes('claude-code')) {
|
|
280
|
+
return { available: false, reason: 'claude-forbidden', crossFamily: false };
|
|
281
|
+
}
|
|
282
|
+
// 2. Binary present?
|
|
283
|
+
const claudePath = inputs.claudePathDetected !== undefined ? inputs.claudePathDetected : detectClaudePath();
|
|
284
|
+
if (!claudePath) {
|
|
285
|
+
return { available: false, reason: 'claude-not-installed', crossFamily: false };
|
|
286
|
+
}
|
|
287
|
+
// 3. Config-home present?
|
|
288
|
+
const configHomePresent = inputs.claudeConfigHomePresent !== undefined
|
|
289
|
+
? inputs.claudeConfigHomePresent
|
|
290
|
+
: fs.existsSync(defaultClaudeConfigHome());
|
|
291
|
+
if (!configHomePresent) {
|
|
292
|
+
return { available: false, reason: 'claude-config-missing', crossFamily: false };
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
available: true,
|
|
296
|
+
framework: 'claude-code',
|
|
297
|
+
// The default pin; the config-override validation happens at INVOCATION
|
|
298
|
+
// (§1.4) so detection stays purely presence-based. crossFamily:false — Claude
|
|
299
|
+
// reviewing Claude is a clean-door second read, NOT a cross-model opinion (§5).
|
|
300
|
+
model: CLAUDE_REVIEWER_DEFAULT_MODEL,
|
|
301
|
+
crossFamily: false,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Resolve the Claude reviewer's concrete model (§1.3), with NO silent fallback:
|
|
306
|
+
* 1. a config override (`specConverge.reviewers.anthropic.model`) if set — it
|
|
307
|
+
* MUST be a concrete id (`isConcreteReviewerModel`) AND a member of the
|
|
308
|
+
* frontier accept-set (`CLAUDE_REVIEWER_FRONTIER_MODELS`); a non-frontier
|
|
309
|
+
* concrete id (e.g. `claude-opus-4-8`) is REJECTED (`override-not-frontier`);
|
|
310
|
+
* 2. else the default pin `CLAUDE_REVIEWER_DEFAULT_MODEL` (`claude-fable-5`).
|
|
311
|
+
* A rejected override degrades the round LOUDLY (§1.4) — it is never coerced to
|
|
312
|
+
* a default, because a config typo silently re-opening the door penalty is
|
|
313
|
+
* exactly the "strongest model isn't actually reviewing" gap this spec closes.
|
|
314
|
+
*/
|
|
315
|
+
export function resolveClaudeReviewerModel(config) {
|
|
316
|
+
const override = config?.specConverge?.reviewers?.anthropic?.model;
|
|
317
|
+
if (typeof override === 'string' && override.trim().length > 0) {
|
|
318
|
+
const id = override.trim();
|
|
319
|
+
if (!isConcreteReviewerModel(id)) {
|
|
320
|
+
return { ok: false, reason: 'override-not-concrete', model: id };
|
|
321
|
+
}
|
|
322
|
+
if (!CLAUDE_REVIEWER_FRONTIER_MODELS.includes(id)) {
|
|
323
|
+
return { ok: false, reason: 'override-not-frontier', model: id };
|
|
324
|
+
}
|
|
325
|
+
return { ok: true, model: id };
|
|
326
|
+
}
|
|
327
|
+
return { ok: true, model: CLAUDE_REVIEWER_DEFAULT_MODEL };
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Runtime hardening preflight (§1.4): does the INSTALLED Claude CLI actually
|
|
331
|
+
* ACCEPT the required inbound-safety hardening flags (`--allowedTools ''`,
|
|
332
|
+
* `--strict-mcp-config`)? A fleet machine may run a drifted CLI that renamed or
|
|
333
|
+
* dropped a flag, so the reviewer verifies support on EACH machine at runtime
|
|
334
|
+
* and is NEVER run unhardened. FAIL-CLOSED: an unresolvable binary, an exec
|
|
335
|
+
* error, or a `--help` output missing either flag ⇒ `false` (degrade, never run
|
|
336
|
+
* unsafe). Cached per process; `__resetClaudeHardeningPreflightCache()` for tests.
|
|
337
|
+
*/
|
|
338
|
+
let _claudeHardeningPreflightCache = null;
|
|
339
|
+
export function claudeSupportsReviewerHardening(claudePath) {
|
|
340
|
+
if (_claudeHardeningPreflightCache !== null)
|
|
341
|
+
return _claudeHardeningPreflightCache;
|
|
342
|
+
let supported = false;
|
|
343
|
+
try {
|
|
344
|
+
const bin = claudePath ?? detectClaudePath();
|
|
345
|
+
if (bin) {
|
|
346
|
+
// lint-allow-sync-spawn: one-shot CLI capability probe (`claude --help`),
|
|
347
|
+
// cached per-process (runs at most once), invoked only from the reviewer
|
|
348
|
+
// path driven by the spec-converge SKILL script — a short-lived CLI process,
|
|
349
|
+
// never the server event loop.
|
|
350
|
+
const help = execFileSync(bin, ['--help'], {
|
|
351
|
+
encoding: 'utf-8',
|
|
352
|
+
timeout: 10_000,
|
|
353
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
354
|
+
});
|
|
355
|
+
supported = help.includes('--allowedTools') && help.includes('--strict-mcp-config');
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
catch {
|
|
359
|
+
// @silent-fallback-ok — fail-CLOSED: an inconclusive preflight is treated as
|
|
360
|
+
// UNSUPPORTED so the reviewer degrades (`hardening-unsupported`) rather than
|
|
361
|
+
// running the untrusted-text review without the security boundary.
|
|
362
|
+
supported = false;
|
|
363
|
+
}
|
|
364
|
+
_claudeHardeningPreflightCache = supported;
|
|
365
|
+
return supported;
|
|
366
|
+
}
|
|
367
|
+
/** Test helper — clear the per-process hardening-preflight cache. */
|
|
368
|
+
export function __resetClaudeHardeningPreflightCache() {
|
|
369
|
+
_claudeHardeningPreflightCache = null;
|
|
370
|
+
}
|
|
237
371
|
/**
|
|
238
372
|
* Fail-loud model canary (Piece 3). A cross-model review must run on a
|
|
239
373
|
* CONCRETE model id — never a bare tier word that fell through a
|
|
@@ -259,6 +393,7 @@ export function isConcreteReviewerModel(model) {
|
|
|
259
393
|
*/
|
|
260
394
|
const codexReviewer = {
|
|
261
395
|
id: 'codex-cli',
|
|
396
|
+
crossFamily: true,
|
|
262
397
|
detect: (inputs) => detectCodexReviewer(inputs),
|
|
263
398
|
review: async (args) => {
|
|
264
399
|
const detection = args.detectionOverride ?? detectCodexReviewer();
|
|
@@ -273,6 +408,7 @@ const codexReviewer = {
|
|
|
273
408
|
model,
|
|
274
409
|
reason: 'model-resolution-canary',
|
|
275
410
|
flag: `cross-model-review: codex-cli:${model} (degraded: model-resolution-canary)`,
|
|
411
|
+
crossFamily: true,
|
|
276
412
|
};
|
|
277
413
|
}
|
|
278
414
|
// Build (or accept an injected) provider. The factory wraps it in the
|
|
@@ -289,6 +425,7 @@ const codexReviewer = {
|
|
|
289
425
|
model,
|
|
290
426
|
reason: 'provider-unavailable',
|
|
291
427
|
flag: `cross-model-review: codex-cli:${model} (degraded: provider-unavailable)`,
|
|
428
|
+
crossFamily: true,
|
|
292
429
|
};
|
|
293
430
|
}
|
|
294
431
|
let raw;
|
|
@@ -307,6 +444,7 @@ const codexReviewer = {
|
|
|
307
444
|
model,
|
|
308
445
|
reason,
|
|
309
446
|
flag: `cross-model-review: codex-cli:${model} (degraded: ${reason})`,
|
|
447
|
+
crossFamily: true,
|
|
310
448
|
};
|
|
311
449
|
}
|
|
312
450
|
const parsed = parseReviewerReply(raw, tag);
|
|
@@ -317,6 +455,7 @@ const codexReviewer = {
|
|
|
317
455
|
verdict: parsed.verdict,
|
|
318
456
|
findings: [parsed],
|
|
319
457
|
flag: `cross-model-review: codex-cli:${model}`,
|
|
458
|
+
crossFamily: true,
|
|
320
459
|
};
|
|
321
460
|
},
|
|
322
461
|
};
|
|
@@ -328,6 +467,7 @@ const codexReviewer = {
|
|
|
328
467
|
*/
|
|
329
468
|
const geminiReviewer = {
|
|
330
469
|
id: 'gemini-cli',
|
|
470
|
+
crossFamily: true,
|
|
331
471
|
detect: (inputs) => detectGeminiReviewer(inputs),
|
|
332
472
|
review: async (args) => {
|
|
333
473
|
const detection = args.detectionOverride ?? detectGeminiReviewer();
|
|
@@ -342,6 +482,7 @@ const geminiReviewer = {
|
|
|
342
482
|
model,
|
|
343
483
|
reason: 'model-resolution-canary',
|
|
344
484
|
flag: `cross-model-review: gemini-cli:${model} (degraded: model-resolution-canary)`,
|
|
485
|
+
crossFamily: true,
|
|
345
486
|
};
|
|
346
487
|
}
|
|
347
488
|
// Build (or accept an injected) provider. The factory wraps it in the
|
|
@@ -358,6 +499,7 @@ const geminiReviewer = {
|
|
|
358
499
|
model,
|
|
359
500
|
reason: 'provider-unavailable',
|
|
360
501
|
flag: `cross-model-review: gemini-cli:${model} (degraded: provider-unavailable)`,
|
|
502
|
+
crossFamily: true,
|
|
361
503
|
};
|
|
362
504
|
}
|
|
363
505
|
let raw;
|
|
@@ -376,6 +518,7 @@ const geminiReviewer = {
|
|
|
376
518
|
model,
|
|
377
519
|
reason,
|
|
378
520
|
flag: `cross-model-review: gemini-cli:${model} (degraded: ${reason})`,
|
|
521
|
+
crossFamily: true,
|
|
379
522
|
};
|
|
380
523
|
}
|
|
381
524
|
const parsed = parseReviewerReply(raw, tag);
|
|
@@ -386,6 +529,135 @@ const geminiReviewer = {
|
|
|
386
529
|
verdict: parsed.verdict,
|
|
387
530
|
findings: [parsed],
|
|
388
531
|
flag: `cross-model-review: gemini-cli:${model}`,
|
|
532
|
+
crossFamily: true,
|
|
533
|
+
};
|
|
534
|
+
},
|
|
535
|
+
};
|
|
536
|
+
/**
|
|
537
|
+
* The Claude clean-door reviewer entry (REVIEWER-DOOR-REWIRING §1). The headline
|
|
538
|
+
* change: the strongest available Anthropic model (`claude-fable-5`) reads the
|
|
539
|
+
* spec through the clean `claude -p` door instead of never reading it at all.
|
|
540
|
+
*
|
|
541
|
+
* This is a SECOND READ, not a cross-model opinion — `crossFamily: false` (§5).
|
|
542
|
+
* The call is hardened to codex-door parity for the untrusted-text review (§1.4):
|
|
543
|
+
* `reviewerHardening` makes `ClaudeCliIntelligenceProvider` run with empty
|
|
544
|
+
* allowed-tools + `--strict-mcp-config` + a neutral scratch cwd + the prompt via
|
|
545
|
+
* stdin + an env allowlist that strips agent secrets. The model argument is the
|
|
546
|
+
* CONCRETE resolved pin (never the tier word `'capable'`, which resolves to opus).
|
|
547
|
+
*/
|
|
548
|
+
const claudeReviewer = {
|
|
549
|
+
id: 'claude-code',
|
|
550
|
+
crossFamily: false,
|
|
551
|
+
detect: (inputs) => detectClaudeReviewer(inputs),
|
|
552
|
+
review: async (args) => {
|
|
553
|
+
// Model resolution + override validation (§1.3) — no silent fallback.
|
|
554
|
+
const resolution = resolveClaudeReviewerModel(args.reviewerConfig);
|
|
555
|
+
if (!resolution.ok) {
|
|
556
|
+
return {
|
|
557
|
+
status: 'degraded',
|
|
558
|
+
framework: 'claude-code',
|
|
559
|
+
model: resolution.model,
|
|
560
|
+
reason: resolution.reason,
|
|
561
|
+
flag: `clean-door-anthropic-review: claude-code:${resolution.model} (degraded: ${resolution.reason})`,
|
|
562
|
+
crossFamily: false,
|
|
563
|
+
};
|
|
564
|
+
}
|
|
565
|
+
const model = resolution.model;
|
|
566
|
+
const tag = `clean-door:claude-code:${model}`;
|
|
567
|
+
// Fail-loud model canary (§1.4): NEVER review on a tier word — passing
|
|
568
|
+
// 'capable' here would silently resolve to opus, the penalized pair.
|
|
569
|
+
if (!isConcreteReviewerModel(model)) {
|
|
570
|
+
return {
|
|
571
|
+
status: 'degraded',
|
|
572
|
+
framework: 'claude-code',
|
|
573
|
+
model,
|
|
574
|
+
reason: 'model-resolution-canary',
|
|
575
|
+
flag: `clean-door-anthropic-review: claude-code:${model} (degraded: model-resolution-canary)`,
|
|
576
|
+
crossFamily: false,
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
// Runtime hardening preflight (§1.4) — fail-CLOSED on THIS machine's CLI, not
|
|
580
|
+
// just CI. If the installed CLI does not accept the hardening flags, the
|
|
581
|
+
// reviewer is NEVER run unhardened.
|
|
582
|
+
const hardeningSupported = args.hardeningSupportedOverride !== undefined
|
|
583
|
+
? args.hardeningSupportedOverride
|
|
584
|
+
: claudeSupportsReviewerHardening();
|
|
585
|
+
if (!hardeningSupported) {
|
|
586
|
+
return {
|
|
587
|
+
status: 'degraded',
|
|
588
|
+
framework: 'claude-code',
|
|
589
|
+
model,
|
|
590
|
+
reason: 'hardening-unsupported',
|
|
591
|
+
flag: `clean-door-anthropic-review: claude-code:${model} (degraded: hardening-unsupported)`,
|
|
592
|
+
crossFamily: false,
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
// Build (or accept an injected) provider. Unlike codex/gemini,
|
|
596
|
+
// ClaudeCliIntelligenceProvider's constructor THROWS on a claude-forbidden
|
|
597
|
+
// agent — wrap construction so a throw maps to `degraded`, never escapes (§1.4).
|
|
598
|
+
let provider;
|
|
599
|
+
try {
|
|
600
|
+
provider =
|
|
601
|
+
args.providerOverride ??
|
|
602
|
+
(args.claudeProviderFactory
|
|
603
|
+
? args.claudeProviderFactory()
|
|
604
|
+
: buildIntelligenceProvider({ framework: 'claude-code' }));
|
|
605
|
+
}
|
|
606
|
+
catch (err) {
|
|
607
|
+
const reason = err instanceof ClaudeForbiddenError ? 'claude-forbidden' : classifyReviewFailure(err);
|
|
608
|
+
return {
|
|
609
|
+
status: 'degraded',
|
|
610
|
+
framework: 'claude-code',
|
|
611
|
+
model,
|
|
612
|
+
reason,
|
|
613
|
+
flag: `clean-door-anthropic-review: claude-code:${model} (degraded: ${reason})`,
|
|
614
|
+
crossFamily: false,
|
|
615
|
+
};
|
|
616
|
+
}
|
|
617
|
+
if (!provider) {
|
|
618
|
+
return {
|
|
619
|
+
status: 'degraded',
|
|
620
|
+
framework: 'claude-code',
|
|
621
|
+
model,
|
|
622
|
+
reason: 'provider-unavailable',
|
|
623
|
+
flag: `clean-door-anthropic-review: claude-code:${model} (degraded: provider-unavailable)`,
|
|
624
|
+
crossFamily: false,
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
let raw;
|
|
628
|
+
try {
|
|
629
|
+
raw = await provider.evaluate(args.promptText, {
|
|
630
|
+
// The CONCRETE pin travels via reviewerHardening.model (§1.4) — never
|
|
631
|
+
// options.model (a tier word). reviewerHardening also flips the claude
|
|
632
|
+
// provider into the inbound-safety lockdown.
|
|
633
|
+
reviewerHardening: { model },
|
|
634
|
+
timeoutMs: args.timeoutMs,
|
|
635
|
+
attribution: { component: 'crossModelReviewer' },
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
catch (err) {
|
|
639
|
+
const reason = classifyReviewFailure(err);
|
|
640
|
+
return {
|
|
641
|
+
status: 'degraded',
|
|
642
|
+
framework: 'claude-code',
|
|
643
|
+
model,
|
|
644
|
+
reason,
|
|
645
|
+
flag: `clean-door-anthropic-review: claude-code:${model} (degraded: ${reason})`,
|
|
646
|
+
crossFamily: false,
|
|
647
|
+
};
|
|
648
|
+
}
|
|
649
|
+
const parsed = parseReviewerReply(raw, tag);
|
|
650
|
+
return {
|
|
651
|
+
status: 'ok',
|
|
652
|
+
framework: 'claude-code',
|
|
653
|
+
model,
|
|
654
|
+
verdict: parsed.verdict,
|
|
655
|
+
findings: [parsed],
|
|
656
|
+
// A clean-door second read gets its OWN disclosure field — NEVER the
|
|
657
|
+
// `cross-model-review:` flag (§5.5). A copy-paste of this into frontmatter
|
|
658
|
+
// cannot forge the cross-model field.
|
|
659
|
+
flag: `clean-door-anthropic-review: claude-code:${model}`,
|
|
660
|
+
crossFamily: false,
|
|
389
661
|
};
|
|
390
662
|
},
|
|
391
663
|
};
|
|
@@ -398,7 +670,47 @@ const geminiReviewer = {
|
|
|
398
670
|
export const SUPPORTED_REVIEWER_FRAMEWORKS = [
|
|
399
671
|
codexReviewer,
|
|
400
672
|
geminiReviewer,
|
|
673
|
+
// The Anthropic clean-door family (REVIEWER-DOOR-REWIRING §1). ALWAYS in the
|
|
674
|
+
// registry (so `isCrossFamilyReviewerFramework` can classify its id), but the
|
|
675
|
+
// ACTIVE set filters it by the developmentAgent config gate
|
|
676
|
+
// (`resolveActiveReviewerFrameworks`) — dark on the fleet, live on a dev agent.
|
|
677
|
+
claudeReviewer,
|
|
401
678
|
];
|
|
679
|
+
/**
|
|
680
|
+
* Is the Anthropic clean-door reviewer family enabled on this agent
|
|
681
|
+
* (REVIEWER-DOOR-REWIRING §1.5)? Resolves through the standard developmentAgent
|
|
682
|
+
* gate: `specConverge.reviewers.anthropic.enabled` OMITTED ⇒ live on a
|
|
683
|
+
* development agent, dark on the fleet; an explicit value always wins. Absent
|
|
684
|
+
* config ⇒ fleet-dark (byte-identical `[codex, gemini]`).
|
|
685
|
+
*/
|
|
686
|
+
export function isAnthropicReviewerEnabled(config) {
|
|
687
|
+
return resolveDevAgentGate(config?.specConverge?.reviewers?.anthropic?.enabled, config);
|
|
688
|
+
}
|
|
689
|
+
/**
|
|
690
|
+
* The reviewer frameworks ACTIVE for this agent, config-gated. codex + gemini
|
|
691
|
+
* are always active; the claude clean-door family is active only when
|
|
692
|
+
* `isAnthropicReviewerEnabled(config)`. This is the seam the detection paths
|
|
693
|
+
* iterate — so a fleet agent (no dev flag, no explicit enable) never sees the
|
|
694
|
+
* claude family, preserving today's exact `[codex, gemini]` behavior.
|
|
695
|
+
*/
|
|
696
|
+
export function resolveActiveReviewerFrameworks(config) {
|
|
697
|
+
return SUPPORTED_REVIEWER_FRAMEWORKS.filter((f) => f.id === 'claude-code' ? isAnthropicReviewerEnabled(config) : true);
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
700
|
+
* Is `id` a CROSS-MODEL (non-Claude) reviewer family (REVIEWER-DOOR-REWIRING §5)?
|
|
701
|
+
* Resolves against the FULL registry (independent of the config gate — this is a
|
|
702
|
+
* classification of the id, not an enablement check), returning the entry's
|
|
703
|
+
* `crossFamily`. Fail-CLOSED: an unknown / unresolvable / undefined id resolves
|
|
704
|
+
* `false` (it can NEVER gain cross-model status by a lookup miss). This is the
|
|
705
|
+
* single predicate the aggregate flag, both detection paths, and the 7-day
|
|
706
|
+
* baseline all key on — so the claude family can never launder any of them.
|
|
707
|
+
*/
|
|
708
|
+
export function isCrossFamilyReviewerFramework(id) {
|
|
709
|
+
if (!id)
|
|
710
|
+
return false;
|
|
711
|
+
const entry = SUPPORTED_REVIEWER_FRAMEWORKS.find((f) => f.id === id);
|
|
712
|
+
return entry?.crossFamily === true;
|
|
713
|
+
}
|
|
402
714
|
/**
|
|
403
715
|
* Trusted-provider allowlist (Piece 3 — no spec egress to untrusted
|
|
404
716
|
* endpoints). The registry only ever carries FIRST-PARTY OAuth CLI adapters:
|
|
@@ -408,8 +720,20 @@ export const SUPPORTED_REVIEWER_FRAMEWORKS = [
|
|
|
408
720
|
* cross-model review for exactly this reason — its provider may be a custom
|
|
409
721
|
* endpoint. A framework id outside this list is refused by the script
|
|
410
722
|
* wrapper (`--family`) with reason `untrusted-framework`.
|
|
723
|
+
*
|
|
724
|
+
* The invariant is "the spec text goes ONLY to the endpoint the OPERATOR THEMSELVES
|
|
725
|
+
* configured for that first-party CLI" (REVIEWER-DOOR-REWIRING §2.2) — NOT "no
|
|
726
|
+
* base-URL endpoint ever": each first-party CLI honors the operator's OWN
|
|
727
|
+
* `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL`/`GEMINI_BASE_URL`, which is the operator's
|
|
728
|
+
* own trusted proxy. A third-party aggregator (OpenRouter) inserted by ADDING an
|
|
729
|
+
* adapter is categorically different and stays out — that is why OpenRouter is
|
|
730
|
+
* declined (§2). `claude-code` is added here (the clean-door family needs the
|
|
731
|
+
* `--family claude-code` egress check to pass) — COUPLED ATOMICALLY with swapping
|
|
732
|
+
* the 7-day baseline predicate off `isTrustedReviewerFramework` and onto
|
|
733
|
+
* `isCrossFamilyReviewerFramework` (§5.4), so this addition can NEVER let a
|
|
734
|
+
* claude-only activation satisfy the externals-mandatory baseline.
|
|
411
735
|
*/
|
|
412
|
-
export const TRUSTED_REVIEWER_FRAMEWORKS = ['codex-cli', 'gemini-cli'];
|
|
736
|
+
export const TRUSTED_REVIEWER_FRAMEWORKS = ['codex-cli', 'gemini-cli', 'claude-code'];
|
|
413
737
|
/** Is `id` on the trusted first-party reviewer allowlist? */
|
|
414
738
|
export function isTrustedReviewerFramework(id) {
|
|
415
739
|
return TRUSTED_REVIEWER_FRAMEWORKS.includes(id);
|
|
@@ -425,14 +749,15 @@ export function isTrustedReviewerFramework(id) {
|
|
|
425
749
|
* SIGNAL-ONLY: never throws, never blocks. A `false` simply routes the skill
|
|
426
750
|
* to the internal-only fallback (spec §4).
|
|
427
751
|
*/
|
|
428
|
-
export function detectCrossModelReviewer(inputs = {}) {
|
|
429
|
-
|
|
752
|
+
export function detectCrossModelReviewer(inputs = {}, config) {
|
|
753
|
+
const active = resolveActiveReviewerFrameworks(config);
|
|
754
|
+
for (const framework of active) {
|
|
430
755
|
const result = framework.detect(inputs);
|
|
431
756
|
if (result.available)
|
|
432
757
|
return result;
|
|
433
758
|
}
|
|
434
759
|
// Nothing available. Surface the preference-leader's specific reason.
|
|
435
|
-
const leader =
|
|
760
|
+
const leader = active[0];
|
|
436
761
|
if (leader)
|
|
437
762
|
return leader.detect(inputs);
|
|
438
763
|
return { available: false, reason: 'no-supported-framework' };
|
|
@@ -445,9 +770,9 @@ export function detectCrossModelReviewer(inputs = {}) {
|
|
|
445
770
|
*
|
|
446
771
|
* SIGNAL-ONLY: never throws, never blocks.
|
|
447
772
|
*/
|
|
448
|
-
export function detectAllCrossModelReviewers(inputs = {}) {
|
|
773
|
+
export function detectAllCrossModelReviewers(inputs = {}, config) {
|
|
449
774
|
const available = [];
|
|
450
|
-
for (const framework of
|
|
775
|
+
for (const framework of resolveActiveReviewerFrameworks(config)) {
|
|
451
776
|
const result = framework.detect(inputs);
|
|
452
777
|
if (result.available)
|
|
453
778
|
available.push(result);
|
|
@@ -655,9 +980,14 @@ export function aggregateRoundOutcomes(rounds, opts = {}) {
|
|
|
655
980
|
// No rounds recorded at all — treat as no external reviewer available.
|
|
656
981
|
return buildCrossModelFlag('unavailable', 'no-rounds-recorded');
|
|
657
982
|
}
|
|
658
|
-
// Any successful round → the spec received a real external opinion.
|
|
659
|
-
//
|
|
660
|
-
|
|
983
|
+
// Any successful CROSS-MODEL round → the spec received a real external opinion.
|
|
984
|
+
// ONLY `crossFamily: true` successes count toward the cross-model flag
|
|
985
|
+
// (REVIEWER-DOOR-REWIRING §5.2): a claude-only success (`crossFamily: false`)
|
|
986
|
+
// can NEVER launder a clean `cross-model-review` flag — it aggregates to
|
|
987
|
+
// `degraded-all-rounds`/`unavailable` exactly as today, and is disclosed
|
|
988
|
+
// separately in `clean-door-anthropic-review`. Fail-CLOSED on an absent field.
|
|
989
|
+
// Use the LAST successful round's flag (the freshest pass on the most-converged spec).
|
|
990
|
+
const successful = rounds.filter((r) => r.status === 'ok' && r.crossFamily === true);
|
|
661
991
|
if (successful.length > 0) {
|
|
662
992
|
const last = successful[successful.length - 1];
|
|
663
993
|
return { status: 'available', flag: last.flag, ...(last.reason ? { reason: last.reason } : {}) };
|
|
@@ -683,20 +1013,26 @@ export function aggregateRoundOutcomes(rounds, opts = {}) {
|
|
|
683
1013
|
* `providerOverride` exist for tests; production omits them.
|
|
684
1014
|
*/
|
|
685
1015
|
export async function runCrossModelReview(args) {
|
|
686
|
-
const detection = detectCrossModelReviewer(args.detectInputs);
|
|
1016
|
+
const detection = detectCrossModelReviewer(args.detectInputs, args.config);
|
|
687
1017
|
if (!detection.available) {
|
|
688
1018
|
const flag = buildCrossModelFlag('unavailable', detection.reason);
|
|
689
1019
|
return {
|
|
690
1020
|
status: 'unavailable',
|
|
691
1021
|
reason: detection.reason,
|
|
692
1022
|
flag: flag.flag,
|
|
1023
|
+
crossFamily: isCrossFamilyReviewerFramework(detection.framework),
|
|
693
1024
|
};
|
|
694
1025
|
}
|
|
695
|
-
const framework =
|
|
1026
|
+
const framework = resolveActiveReviewerFrameworks(args.config).find((f) => f.id === detection.framework);
|
|
696
1027
|
if (!framework) {
|
|
697
|
-
// Defensive: detection named a framework with no registry entry.
|
|
1028
|
+
// Defensive: detection named a framework with no active registry entry.
|
|
698
1029
|
const flag = buildCrossModelFlag('unavailable', 'no-supported-framework');
|
|
699
|
-
return {
|
|
1030
|
+
return {
|
|
1031
|
+
status: 'unavailable',
|
|
1032
|
+
reason: 'no-supported-framework',
|
|
1033
|
+
flag: flag.flag,
|
|
1034
|
+
crossFamily: false,
|
|
1035
|
+
};
|
|
700
1036
|
}
|
|
701
1037
|
return framework.review({
|
|
702
1038
|
promptText: args.assembled.promptText,
|
|
@@ -704,6 +1040,7 @@ export async function runCrossModelReview(args) {
|
|
|
704
1040
|
// Hand the already-computed detection down so the entry never re-probes
|
|
705
1041
|
// the host (and tests stay hermetic to the injected inputs).
|
|
706
1042
|
detectionOverride: detection,
|
|
1043
|
+
...(args.config ? { reviewerConfig: args.config } : {}),
|
|
707
1044
|
...(args.providerOverride ? { providerOverride: args.providerOverride } : {}),
|
|
708
1045
|
});
|
|
709
1046
|
}
|
|
@@ -790,11 +1127,16 @@ export function wasNonClaudeFrameworkActiveWithin(stateDir, lookbackDays, now) {
|
|
|
790
1127
|
continue;
|
|
791
1128
|
const frameworks = parsed.frameworks;
|
|
792
1129
|
if (frameworks && typeof frameworks === 'object') {
|
|
793
|
-
// Only
|
|
794
|
-
//
|
|
795
|
-
//
|
|
1130
|
+
// Only CROSS-MODEL (non-Claude) reviewer framework ids count toward the
|
|
1131
|
+
// baseline (REVIEWER-DOOR-REWIRING §5.4 — swapped off
|
|
1132
|
+
// `isTrustedReviewerFramework` ATOMICALLY with adding `claude-code` to
|
|
1133
|
+
// TRUSTED). Keying on `isCrossFamilyReviewerFramework` is load-bearing:
|
|
1134
|
+
// `claude-code` is now TRUSTED (its egress is allowed) but is NOT
|
|
1135
|
+
// cross-family, so a claude-only activation must NEVER satisfy the
|
|
1136
|
+
// externals-mandatory baseline. A stray/hand-written non-cross-family
|
|
1137
|
+
// key likewise can't flip the decision.
|
|
796
1138
|
const entries = Object.entries(frameworks);
|
|
797
|
-
if (entries.some(([id, v]) => v === true &&
|
|
1139
|
+
if (entries.some(([id, v]) => v === true && isCrossFamilyReviewerFramework(id))) {
|
|
798
1140
|
return true;
|
|
799
1141
|
}
|
|
800
1142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossModelReviewer.js","sourceRoot":"","sources":["../../src/core/crossModelReviewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAC3G,OAAO,EACL,yBAAyB,GAE1B,MAAM,kCAAkC,CAAC;AAE1C,2EAA2E;AAE3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsB;IAC5D,qBAAqB;IACrB,sCAAsC;IACtC,oBAAoB;IACpB,kBAAkB;CACV,CAAC;AAEX;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,2BAA2B,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAwC;IAExC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,SAAkB,CAAC;AA0D7C,mEAAmE;AACnE,SAAS,mBAAmB,CAAC,GAAsB;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,YAAoB;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4C,CAAC;QAC1E,OAAO,OAAO,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACnG,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACxG,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAErE,qBAAqB;IACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAC7D,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,0EAA0E;QAC1E,4EAA4E;QAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACrE,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,2BAA2B;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwD,CAAC;QACtF,MAAM,cAAc,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACtF,OAAO,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,2EAA2E;QAC3E,sCAAsC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACtC,MAAM,UAAU,GACd,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3F,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,IAAI,2BAA2B,EAAE,CAAC;IAE/E,qBAAqB;IACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IAC9D,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,sBAAsB,CAAC,iBAAiB,CAAC;KACjD,CAAC;AACJ,CAAC;AAiED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,aAAa,GAA+B;IAChD,EAAE,EAAE,WAAW;IACf,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,mBAAmB,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,yBAAyB,KAAK,EAAE,CAAC;QAE7C,iEAAiE;QACjE,iEAAiE;QACjE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,WAAW;gBACtB,KAAK;gBACL,MAAM,EAAE,yBAAyB;gBACjC,IAAI,EAAE,iCAAiC,KAAK,sCAAsC;aACnF,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,wEAAwE;QACxE,6CAA6C;QAC7C,MAAM,QAAQ,GACZ,IAAI,CAAC,gBAAgB;YACrB,yBAAyB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,+DAA+D;YAC/D,oEAAoE;YACpE,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,WAAW;gBACtB,KAAK;gBACL,MAAM,EAAE,sBAAsB;gBAC9B,IAAI,EAAE,iCAAiC,KAAK,mCAAmC;aAChF,CAAC;QACJ,CAAC;QAED,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC7C,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,oCAAoC;aACvF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,WAAW;gBACtB,KAAK;gBACL,MAAM;gBACN,IAAI,EAAE,iCAAiC,KAAK,eAAe,MAAM,GAAG;aACrE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,WAAW;YACtB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,iCAAiC,KAAK,EAAE;SAC/C,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,cAAc,GAA+B;IACjD,EAAE,EAAE,YAAY;IAChB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,0BAA0B,KAAK,EAAE,CAAC;QAE9C,iEAAiE;QACjE,iEAAiE;QACjE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,MAAM,EAAE,yBAAyB;gBACjC,IAAI,EAAE,kCAAkC,KAAK,sCAAsC;aACpF,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,wEAAwE;QACxE,6CAA6C;QAC7C,MAAM,QAAQ,GACZ,IAAI,CAAC,gBAAgB;YACrB,yBAAyB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,+DAA+D;YAC/D,oEAAoE;YACpE,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,MAAM,EAAE,sBAAsB;gBAC9B,IAAI,EAAE,kCAAkC,KAAK,mCAAmC;aACjF,CAAC;QACJ,CAAC;QAED,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC7C,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,oCAAoC;aACvF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,MAAM;gBACN,IAAI,EAAE,kCAAkC,KAAK,eAAe,MAAM,GAAG;aACtE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,YAAY;YACvB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,kCAAkC,KAAK,EAAE;SAChD,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAiC;IACzE,aAAa;IACb,cAAc;CACf,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAE1F,6DAA6D;AAC7D,MAAM,UAAU,0BAA0B,CAAC,EAAU;IACnD,OAAO,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAiC,EAAE;IAEnC,KAAK,MAAM,SAAS,IAAI,6BAA6B,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC;IACtC,CAAC;IACD,sEAAsE;IACtE,MAAM,MAAM,GAAG,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAAiC,EAAE;IAEnC,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,KAAK,MAAM,SAAS,IAAI,6BAA6B,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2EAA2E;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,qEAAqE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtF,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAE3E;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,WAAmB;IACjE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,kEAAkE;YACxE,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,kDAAkD,IAAI,EAAE;YAC9D,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,WAAW;QACrB,OAAO;QACP,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,4DAA4D;IAC5D,MAAM,WAAW,GAAG,IAAI;SACrB,KAAK,CAAC,IAAI,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,oEAAoE;IACpE,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAiCD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA4B;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,oBAAoB,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,GAAG,QAAQ,8BAA8B,MAAM,CAAC,QAAQ,SAAS,MAAM,CAAC,YAAY,IAAI,CAAC;IAExG,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,OAAO,GAAG,6BAA6B,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAEpE,2EAA2E;IAC3E,0EAA0E;IAC1E,yCAAyC;IACzC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,kBAAkB,GAAG,CAAC,IAAI,QAAQ,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,IAAI,IAAI,QAAQ,CAAC;YACjB,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,yEAAyE;QACzE,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,qEAAqE;gBACrE,wDAAwD;gBACxD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC1F,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC;gBACpC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,4DAA4D;gBAC5D,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QAED,6DAA6D;QAC7D,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QACzE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,IAAI,CACR,0EAA0E;YACxE,KAAK;YACL,uEAAuE;YACvE,6CAA6C,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO;QACL,UAAU;QACV,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;KAC9C,CAAC;AACJ,CAAC;AAkCD;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAqE,EACrE,MAAe;IAEf,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,MAAM,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,MAAM,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAwB,EACxB,OAAyC,EAAE;IAE3C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,uEAAuE;QACvE,OAAO,mBAAmB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAClE,CAAC;IAED,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAChE,IAAI,WAAW,EAAE,CAAC;QAChB,mEAAmE;QACnE,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAChF,OAAO,mBAAmB,CAAC,qBAAqB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,oDAAoD;IACpD,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IACtF,OAAO,mBAAmB,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAKzC;IACC,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,iEAAiE;QACjE,MAAM,IAAI,GAAG,mBAAmB,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;QAC1E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACtF,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC;QACtB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,iBAAiB;QAC9C,wEAAwE;QACxE,6DAA6D;QAC7D,iBAAiB,EAAE,SAAS;QAC5B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAE3E;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,yEAAyE;IACzE,mEAAmE;IACnE,+BAA+B;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAiBD,+DAA+D;AAC/D,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,oCAAoC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oCAAoC,CAClD,QAAgB,EAChB,WAA2C;IAE3C,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC7C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9C,UAAU,EAAE,WAAW,CAAC,UAAU;KACnC,CAAC,CAAC;IACH,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,IAAI,KAAK,CAAC,MAAM,GAAG,4BAA4B,EAAE,CAAC;QAChD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iCAAiC,CAC/C,QAAgB,EAChB,YAAoB,EACpB,GAAU;IAEV,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAClF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2C,CAAC;gBAC1E,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM;oBAAE,SAAS;gBAClD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACrC,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACjD,oEAAoE;oBACpE,kEAAkE;oBAClE,gEAAgE;oBAChE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAqC,CAAC,CAAC;oBACtE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC5E,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0EAA0E;gBAC1E,sEAAsE;gBACtE,yEAAyE;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,qEAAqE;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"crossModelReviewer.js","sourceRoot":"","sources":["../../src/core/crossModelReviewer.ts"],"names":[],"mappings":"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"}
|