mstro-app 0.4.4 → 0.4.11
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/server/server-setup.js +1 -1
- package/dist/server/server-setup.js.map +1 -1
- package/dist/server/services/auth.d.ts.map +1 -1
- package/dist/server/services/auth.js +4 -2
- package/dist/server/services/auth.js.map +1 -1
- package/dist/server/services/instances.js +1 -1
- package/dist/server/services/instances.js.map +1 -1
- package/dist/server/services/plan/config-installer.d.ts +5 -14
- package/dist/server/services/plan/config-installer.d.ts.map +1 -1
- package/dist/server/services/plan/config-installer.js +14 -72
- package/dist/server/services/plan/config-installer.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts +15 -8
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +95 -59
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.d.ts +17 -0
- package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -0
- package/dist/server/services/plan/issue-prompt-builder.js +73 -0
- package/dist/server/services/plan/issue-prompt-builder.js.map +1 -0
- package/dist/server/services/plan/parser-core.d.ts.map +1 -1
- package/dist/server/services/plan/parser-core.js +9 -0
- package/dist/server/services/plan/parser-core.js.map +1 -1
- package/dist/server/services/plan/types.d.ts +2 -0
- package/dist/server/services/plan/types.d.ts.map +1 -1
- package/dist/server/services/platform.d.ts +1 -0
- package/dist/server/services/platform.d.ts.map +1 -1
- package/dist/server/services/platform.js +3 -7
- package/dist/server/services/platform.js.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.js +5 -4
- package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-handlers.js +2 -2
- package/dist/server/services/websocket/git-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-pr-handlers.d.ts +1 -1
- package/dist/server/services/websocket/git-pr-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-pr-handlers.js +2 -2
- package/dist/server/services/websocket/git-pr-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +12 -0
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/quality-complexity.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-complexity.js +5 -7
- package/dist/server/services/websocket/quality-complexity.js.map +1 -1
- package/dist/server/services/websocket/quality-linting.d.ts +1 -1
- package/dist/server/services/websocket/quality-linting.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-linting.js +16 -11
- package/dist/server/services/websocket/quality-linting.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.d.ts +14 -3
- package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +87 -23
- package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
- package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-service.js +62 -39
- package/dist/server/services/websocket/quality-service.js.map +1 -1
- package/dist/server/services/websocket/quality-types.d.ts +2 -0
- package/dist/server/services/websocket/quality-types.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-types.js.map +1 -1
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +3 -0
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/package.json +1 -1
- package/server/server-setup.ts +1 -1
- package/server/services/auth.ts +3 -2
- package/server/services/instances.ts +1 -1
- package/server/services/plan/config-installer.ts +13 -72
- package/server/services/plan/executor.ts +105 -61
- package/server/services/plan/issue-prompt-builder.ts +92 -0
- package/server/services/plan/parser-core.ts +8 -0
- package/server/services/plan/types.ts +2 -0
- package/server/services/platform.ts +3 -8
- package/server/services/websocket/file-explorer-handlers.ts +7 -3
- package/server/services/websocket/git-handlers.ts +3 -3
- package/server/services/websocket/git-pr-handlers.ts +3 -3
- package/server/services/websocket/handler.ts +12 -0
- package/server/services/websocket/quality-complexity.ts +5 -7
- package/server/services/websocket/quality-linting.ts +17 -10
- package/server/services/websocket/quality-review-agent.ts +95 -23
- package/server/services/websocket/quality-service.ts +70 -39
- package/server/services/websocket/quality-types.ts +2 -0
- package/server/services/websocket/session-handlers.ts +3 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
2
|
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
|
-
import {
|
|
4
|
-
import { join, relative } from 'node:path';
|
|
3
|
+
import { relative } from 'node:path';
|
|
5
4
|
import { runCommand } from './quality-tools.js';
|
|
6
5
|
import { biomeDiagToFinding, isBiomeComplexityDiagnostic, isEslintComplexityRule } from './quality-types.js';
|
|
7
6
|
function newLintAccumulator() {
|
|
@@ -47,7 +46,7 @@ function processEslintMessage(msg, filePath, dirPath, acc) {
|
|
|
47
46
|
acc.warnings++;
|
|
48
47
|
acc.findings.push({
|
|
49
48
|
severity: msg.severity === 2 ? 'high' : 'medium',
|
|
50
|
-
category: '
|
|
49
|
+
category: 'lint',
|
|
51
50
|
file: relative(dirPath, filePath),
|
|
52
51
|
line: msg.line ?? null,
|
|
53
52
|
title: msg.ruleId || 'Lint issue',
|
|
@@ -70,12 +69,17 @@ async function lintWithEslint(dirPath, acc) {
|
|
|
70
69
|
acc.warnings += (result.stderr.match(/warning/gi) || []).length;
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
|
-
async function lintNode(dirPath, acc) {
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
async function lintNode(dirPath, acc, installed) {
|
|
73
|
+
// Use installed tools list to decide which linter to run, not config file presence.
|
|
74
|
+
// This fixes monorepo scenarios where the config is in a subdirectory.
|
|
75
|
+
const hasBiome = !installed || installed.has('biome');
|
|
76
|
+
const hasEslint = !installed || installed.has('eslint');
|
|
77
|
+
if (hasBiome) {
|
|
76
78
|
await lintWithBiome(dirPath, acc);
|
|
79
|
+
if (acc.ran)
|
|
80
|
+
return;
|
|
77
81
|
}
|
|
78
|
-
|
|
82
|
+
if (hasEslint) {
|
|
79
83
|
await lintWithEslint(dirPath, acc);
|
|
80
84
|
}
|
|
81
85
|
}
|
|
@@ -94,7 +98,7 @@ async function lintPython(dirPath, acc) {
|
|
|
94
98
|
acc.warnings++;
|
|
95
99
|
acc.findings.push({
|
|
96
100
|
severity: sev,
|
|
97
|
-
category: '
|
|
101
|
+
category: 'lint',
|
|
98
102
|
file: item.filename ? relative(dirPath, item.filename) : '',
|
|
99
103
|
line: item.location?.row ?? null,
|
|
100
104
|
title: item.code || 'Lint issue',
|
|
@@ -118,7 +122,7 @@ function processClippyMessage(msg, acc) {
|
|
|
118
122
|
const code = message.code;
|
|
119
123
|
acc.findings.push({
|
|
120
124
|
severity: level === 'error' ? 'high' : 'medium',
|
|
121
|
-
category: '
|
|
125
|
+
category: 'lint',
|
|
122
126
|
file: span?.file_name || '',
|
|
123
127
|
line: span?.line_start ?? null,
|
|
124
128
|
title: code?.code || 'Clippy',
|
|
@@ -155,10 +159,11 @@ function computeLintScore(totalErrors, totalWarnings, totalLines) {
|
|
|
155
159
|
score = Math.max(0, 15 - (penaltyPerKloc - 50) * 0.3);
|
|
156
160
|
return Math.round(Math.max(0, Math.min(100, score)));
|
|
157
161
|
}
|
|
158
|
-
export async function analyzeLinting(dirPath, ecosystems, files) {
|
|
162
|
+
export async function analyzeLinting(dirPath, ecosystems, files, installedToolNames) {
|
|
159
163
|
const acc = newLintAccumulator();
|
|
164
|
+
const installed = installedToolNames ? new Set(installedToolNames) : null;
|
|
160
165
|
if (ecosystems.includes('node'))
|
|
161
|
-
await lintNode(dirPath, acc);
|
|
166
|
+
await lintNode(dirPath, acc, installed);
|
|
162
167
|
if (ecosystems.includes('python'))
|
|
163
168
|
await lintPython(dirPath, acc);
|
|
164
169
|
if (ecosystems.includes('rust'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-linting.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-linting.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"quality-linting.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-linting.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,21 @@ export interface CodeReviewFinding {
|
|
|
10
10
|
description: string;
|
|
11
11
|
suggestion?: string;
|
|
12
12
|
}
|
|
13
|
-
export declare function buildCodeReviewPrompt(dirPath: string
|
|
14
|
-
|
|
13
|
+
export declare function buildCodeReviewPrompt(dirPath: string, cliFindings?: Array<{
|
|
14
|
+
severity: string;
|
|
15
|
+
category: string;
|
|
16
|
+
file: string;
|
|
17
|
+
line: number | null;
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
}>): string;
|
|
21
|
+
export interface CodeReviewResult {
|
|
15
22
|
findings: CodeReviewFinding[];
|
|
16
23
|
summary: string;
|
|
17
|
-
|
|
24
|
+
score: number | null;
|
|
25
|
+
grade: string | null;
|
|
26
|
+
scoreRationale: string | null;
|
|
27
|
+
}
|
|
28
|
+
export declare function parseCodeReviewResponse(response: string): CodeReviewResult;
|
|
18
29
|
export declare function handleCodeReview(ctx: HandlerContext, ws: WSContext, reportPath: string, dirPath: string, workingDir: string, activeReviews: Set<string>, getPersistence: (dir: string) => QualityPersistence): Promise<void>;
|
|
19
30
|
//# sourceMappingURL=quality-review-agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-review-agent.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-review-agent.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAAC;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"quality-review-agent.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-review-agent.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAAC;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAgFjM;AAiCD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAe1E;AAuCD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,SAAS,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,kBAAkB,GAClD,OAAO,CAAC,IAAI,CAAC,CAuGf"}
|
|
@@ -9,28 +9,61 @@ import { runWithFileLogger } from '../../cli/headless/headless-logger.js';
|
|
|
9
9
|
import { HeadlessRunner } from '../../cli/headless/index.js';
|
|
10
10
|
import { recomputeWithAiReview } from './quality-service.js';
|
|
11
11
|
// ── Prompt ────────────────────────────────────────────────────
|
|
12
|
-
export function buildCodeReviewPrompt(dirPath) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
export function buildCodeReviewPrompt(dirPath, cliFindings) {
|
|
13
|
+
const cliFindingsSection = cliFindings && cliFindings.length > 0
|
|
14
|
+
? `\n## CLI Tool Findings (already detected)\n\nThe following issues were found by automated CLI tools (linters, formatters, complexity analyzers). Review these for context — they are already included in the final report. Focus your analysis on DEEPER issues these tools cannot detect.\n\n${cliFindings.slice(0, 50).map((f, i) => `${i + 1}. [${f.severity.toUpperCase()}] ${f.category} — ${f.file}${f.line ? `:${f.line}` : ''} — ${f.title}: ${f.description}`).join('\n')}\n${cliFindings.length > 50 ? `\n...and ${cliFindings.length - 50} more issues from CLI tools.\n` : ''}`
|
|
15
|
+
: '';
|
|
16
|
+
return `You are a senior staff engineer performing a rigorous, honest code review. Your job is to surface the most impactful quality bottlenecks — the issues a principal engineer would flag in a code review. Be critical and objective. Do NOT inflate scores.
|
|
16
17
|
|
|
18
|
+
IMPORTANT: Your current working directory is "${dirPath}". Only review files within this directory.
|
|
19
|
+
${cliFindingsSection}
|
|
17
20
|
## Review Process
|
|
18
21
|
|
|
19
|
-
1. **Discover**: Use Glob to find source files (e.g. "**/*.{ts,tsx,js,py,rs,go,java,rb,php}"). Understand the project structure.
|
|
22
|
+
1. **Discover**: Use Glob to find source files (e.g. "**/*.{ts,tsx,js,py,rs,go,java,rb,php}"). Understand the project structure.
|
|
20
23
|
2. **Read**: Read the most important files — entry points, core modules, handlers, services. Prioritize files with recent git changes (\`git diff --name-only HEAD~5\` via Bash if available).
|
|
21
|
-
3. **Analyze**: Look for real, actionable issues across these categories:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
24
|
+
3. **Analyze**: Look for real, actionable issues across ALL of these categories:
|
|
25
|
+
|
|
26
|
+
### Architecture
|
|
27
|
+
- What is the current architecture (monolith, microservices, layered, etc.)?
|
|
28
|
+
- Are there architectural violations? (e.g., presentation layer directly accessing data layer, circular dependencies between modules)
|
|
29
|
+
- Is there proper separation of concerns?
|
|
30
|
+
- Are there god objects or god modules that do too much?
|
|
31
|
+
|
|
32
|
+
### SOLID / OOP Principles
|
|
33
|
+
- **SRP**: Classes/modules with multiple unrelated responsibilities
|
|
34
|
+
- **OCP**: Code that requires modification instead of extension for new features
|
|
35
|
+
- **LSP**: Subtypes that don't properly substitute for their base types
|
|
36
|
+
- **ISP**: Interfaces/contracts that force implementations to depend on methods they don't use
|
|
37
|
+
- **DIP**: High-level modules directly depending on low-level modules instead of abstractions
|
|
38
|
+
|
|
39
|
+
### Security
|
|
40
|
+
- Injection vulnerabilities (SQL, XSS, command), hardcoded secrets/credentials, auth bypasses, insecure crypto, path traversal, SSRF, unsafe deserialization
|
|
41
|
+
|
|
42
|
+
### Bugs & Logic
|
|
43
|
+
- Null/undefined errors, race conditions, logic errors, unhandled edge cases, off-by-one errors, resource leaks, incorrect error handling, incorrect algorithms
|
|
44
|
+
|
|
45
|
+
### Performance
|
|
46
|
+
- N+1 queries, unnecessary re-renders, missing memoization, blocking I/O in hot paths, unbounded data structures, missing pagination
|
|
26
47
|
|
|
27
48
|
## Rules
|
|
28
49
|
|
|
29
50
|
- Only report findings you are >80% confident about. No speculative or low-confidence issues.
|
|
30
|
-
- Focus on bugs and security over style
|
|
51
|
+
- Focus on architecture, SOLID violations, bugs, and security over style nits.
|
|
31
52
|
- Each finding MUST reference a specific file and line number. Do not report vague or file-level issues.
|
|
32
|
-
- Limit to the
|
|
53
|
+
- Limit to the 25 most important findings, ranked by severity.
|
|
33
54
|
- Do NOT modify any files. This is a read-only review.
|
|
55
|
+
- Be HONEST about the overall quality. A codebase with serious issues should score low.
|
|
56
|
+
|
|
57
|
+
## Scoring Guidelines
|
|
58
|
+
|
|
59
|
+
After your analysis, provide an honest overall quality score (0-100) and letter grade:
|
|
60
|
+
- **A (90-100)**: Excellent — clean architecture, minimal issues, well-tested, follows best practices
|
|
61
|
+
- **B (80-89)**: Good — solid code with minor issues, mostly well-structured
|
|
62
|
+
- **C (70-79)**: Adequate — functional but has notable quality issues that should be addressed
|
|
63
|
+
- **D (60-69)**: Below average — significant issues in architecture, testing, or code quality
|
|
64
|
+
- **F (0-59)**: Poor — serious problems: security vulnerabilities, broken architecture, major bugs, or unmaintainable code
|
|
65
|
+
|
|
66
|
+
Consider ALL findings (both CLI tool findings and your own) when determining the score. The score should reflect the overall state of the codebase honestly. A project with 50+ linting errors, formatting issues, complex functions, AND architectural problems should NOT score above 70.
|
|
34
67
|
|
|
35
68
|
## Output
|
|
36
69
|
|
|
@@ -38,10 +71,13 @@ After your analysis, output EXACTLY one JSON code block with your findings. No o
|
|
|
38
71
|
|
|
39
72
|
\`\`\`json
|
|
40
73
|
{
|
|
74
|
+
"score": 72,
|
|
75
|
+
"grade": "C",
|
|
76
|
+
"scoreRationale": "Brief explanation of why this score was given, referencing key issues",
|
|
41
77
|
"findings": [
|
|
42
78
|
{
|
|
43
79
|
"severity": "critical|high|medium|low",
|
|
44
|
-
"category": "security|bugs|performance|
|
|
80
|
+
"category": "architecture|oop|security|bugs|performance|logic",
|
|
45
81
|
"file": "relative/path/to/file.ts",
|
|
46
82
|
"line": 42,
|
|
47
83
|
"title": "Short title describing the issue",
|
|
@@ -55,7 +91,7 @@ After your analysis, output EXACTLY one JSON code block with your findings. No o
|
|
|
55
91
|
}
|
|
56
92
|
// ── Response parsing ──────────────────────────────────────────
|
|
57
93
|
const VALID_SEVERITIES = new Set(['critical', 'high', 'medium', 'low']);
|
|
58
|
-
const VALID_CATEGORIES = new Set(['security', 'bugs', 'performance', 'maintainability']);
|
|
94
|
+
const VALID_CATEGORIES = new Set(['architecture', 'oop', 'security', 'bugs', 'performance', 'logic', 'maintainability']);
|
|
59
95
|
function normalizeFinding(f) {
|
|
60
96
|
if (typeof f.file !== 'string' || typeof f.title !== 'string')
|
|
61
97
|
return null;
|
|
@@ -88,10 +124,13 @@ export function parseCodeReviewResponse(response) {
|
|
|
88
124
|
const rawFindings = Array.isArray(parsed.findings) ? parsed.findings : [];
|
|
89
125
|
const findings = rawFindings.map(normalizeFinding).filter((f) => f !== null);
|
|
90
126
|
const summary = typeof parsed.summary === 'string' ? parsed.summary : `Found ${findings.length} issue(s).`;
|
|
91
|
-
|
|
127
|
+
const score = typeof parsed.score === 'number' ? Math.max(0, Math.min(100, Math.round(parsed.score))) : null;
|
|
128
|
+
const grade = typeof parsed.grade === 'string' ? parsed.grade : null;
|
|
129
|
+
const scoreRationale = typeof parsed.scoreRationale === 'string' ? parsed.scoreRationale : null;
|
|
130
|
+
return { findings, summary, score, grade, scoreRationale };
|
|
92
131
|
}
|
|
93
132
|
catch {
|
|
94
|
-
return { findings: [], summary: 'Failed to parse code review results.' };
|
|
133
|
+
return { findings: [], summary: 'Failed to parse code review results.', score: null, grade: null, scoreRationale: null };
|
|
95
134
|
}
|
|
96
135
|
}
|
|
97
136
|
// ── Progress tracking ─────────────────────────────────────────
|
|
@@ -142,9 +181,21 @@ export async function handleCodeReview(ctx, ws, reportPath, dirPath, workingDir,
|
|
|
142
181
|
type: 'qualityCodeReviewProgress',
|
|
143
182
|
data: { path: reportPath, message: 'Starting AI code review...' },
|
|
144
183
|
});
|
|
184
|
+
// Load CLI findings from the existing report to pass to the AI reviewer
|
|
185
|
+
let cliFindings;
|
|
186
|
+
try {
|
|
187
|
+
const persistence = getPersistence(workingDir);
|
|
188
|
+
const existingReport = persistence.loadReport(reportPath);
|
|
189
|
+
if (existingReport?.findings) {
|
|
190
|
+
cliFindings = existingReport.findings;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Continue without CLI findings if persistence fails
|
|
195
|
+
}
|
|
145
196
|
const runner = new HeadlessRunner({
|
|
146
197
|
workingDir: dirPath,
|
|
147
|
-
directPrompt: buildCodeReviewPrompt(dirPath),
|
|
198
|
+
directPrompt: buildCodeReviewPrompt(dirPath, cliFindings),
|
|
148
199
|
stallWarningMs: 120_000,
|
|
149
200
|
stallKillMs: 600_000,
|
|
150
201
|
stallHardCapMs: 900_000,
|
|
@@ -171,26 +222,39 @@ export async function handleCodeReview(ctx, ws, reportPath, dirPath, workingDir,
|
|
|
171
222
|
data: { path: reportPath, message: 'Generating review report...' },
|
|
172
223
|
});
|
|
173
224
|
const responseText = result.assistantResponse || '';
|
|
174
|
-
const
|
|
175
|
-
//
|
|
225
|
+
const reviewResult = parseCodeReviewResponse(responseText);
|
|
226
|
+
// Use AI-determined score if available, otherwise fall back to recomputation
|
|
176
227
|
let updatedResults = null;
|
|
177
228
|
try {
|
|
178
229
|
const persistence = getPersistence(workingDir);
|
|
179
230
|
const existingReport = persistence.loadReport(reportPath);
|
|
180
231
|
if (existingReport) {
|
|
181
|
-
|
|
182
|
-
|
|
232
|
+
if (reviewResult.score !== null && reviewResult.grade !== null) {
|
|
233
|
+
// Use the AI-determined score and grade directly
|
|
234
|
+
updatedResults = {
|
|
235
|
+
...existingReport,
|
|
236
|
+
overall: reviewResult.score,
|
|
237
|
+
grade: reviewResult.grade,
|
|
238
|
+
codeReview: reviewResult.findings,
|
|
239
|
+
scoreRationale: reviewResult.scoreRationale ?? undefined,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
// Fallback: recompute with weighted formula
|
|
244
|
+
updatedResults = recomputeWithAiReview(existingReport, reviewResult.findings);
|
|
245
|
+
updatedResults = { ...updatedResults, codeReview: reviewResult.findings };
|
|
246
|
+
}
|
|
183
247
|
persistence.saveReport(reportPath, updatedResults);
|
|
184
248
|
persistence.appendHistory(updatedResults, reportPath);
|
|
185
249
|
}
|
|
186
|
-
persistence.saveCodeReview(reportPath, findings, summary);
|
|
250
|
+
persistence.saveCodeReview(reportPath, reviewResult.findings, reviewResult.summary);
|
|
187
251
|
}
|
|
188
252
|
catch {
|
|
189
253
|
// Persistence failure should not break the review flow
|
|
190
254
|
}
|
|
191
255
|
ctx.send(ws, {
|
|
192
256
|
type: 'qualityCodeReview',
|
|
193
|
-
data: { path: reportPath, findings, summary, results: updatedResults },
|
|
257
|
+
data: { path: reportPath, findings: reviewResult.findings, summary: reviewResult.summary, results: updatedResults },
|
|
194
258
|
});
|
|
195
259
|
}
|
|
196
260
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-review-agent.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-review-agent.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAe7D,iEAAiE;AAEjE,MAAM,UAAU,qBAAqB,CAAC,OAAe;
|
|
1
|
+
{"version":3,"file":"quality-review-agent.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-review-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-service.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAA8G,KAAK,cAAc,EAAE,KAAK,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAErM,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-service.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAA8G,KAAK,cAAc,EAAE,KAAK,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAErM,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8JnH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EACrC,UAAU,EAAE,MAAM,GACjB,MAAM,CAUR;AAqBD,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;AAEhE,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,gBAAgB,EAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC,cAAc,CAAC,CAkHzB;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GACtC,cAAc,CA8BhB"}
|
|
@@ -6,47 +6,69 @@ import { analyzeLinting } from './quality-linting.js';
|
|
|
6
6
|
import { collectSourceFiles, detectEcosystem, runCommand } from './quality-tools.js';
|
|
7
7
|
import { FILE_LENGTH_THRESHOLD, hasInstalledToolInCategory, TOTAL_STEPS } from './quality-types.js';
|
|
8
8
|
export { detectEcosystem, detectTools, installTools } from './quality-tools.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
async function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
function newFmtAccumulator() {
|
|
10
|
+
return { totalFiles: 0, passingFiles: 0, ran: false, findings: [] };
|
|
11
|
+
}
|
|
12
|
+
async function fmtNode(dirPath, files, acc) {
|
|
13
|
+
const result = await runCommand('npx', ['prettier', '--check', '.'], dirPath);
|
|
14
|
+
acc.ran = true;
|
|
15
|
+
const unformatted = result.stdout.split('\n').filter((l) => l.trim() && !l.startsWith('Checking'));
|
|
16
|
+
const nodeFiles = files.filter((f) => ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(extname(f.path)));
|
|
17
|
+
acc.totalFiles += nodeFiles.length;
|
|
18
|
+
acc.passingFiles += Math.max(0, nodeFiles.length - unformatted.length);
|
|
19
|
+
for (const filePath of unformatted) {
|
|
20
|
+
if (!filePath.trim())
|
|
21
|
+
continue;
|
|
22
|
+
const rel = filePath.startsWith('/') ? filePath.replace(`${dirPath}/`, '') : filePath;
|
|
23
|
+
acc.findings.push({ severity: 'low', category: 'format', file: rel, line: null, title: 'File not formatted', description: 'Does not match Prettier formatting rules.' });
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
25
|
+
}
|
|
26
|
+
async function fmtPython(dirPath, files, acc) {
|
|
27
|
+
const result = await runCommand('black', ['--check', '--quiet', '.'], dirPath);
|
|
28
|
+
acc.ran = true;
|
|
29
|
+
const pyFiles = files.filter((f) => ['.py', '.pyi'].includes(extname(f.path)));
|
|
30
|
+
acc.totalFiles += pyFiles.length;
|
|
31
|
+
if (result.exitCode === 0) {
|
|
32
|
+
acc.passingFiles += pyFiles.length;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const reformatLines = result.stderr.split('\n').filter((l) => l.includes('would reformat'));
|
|
36
|
+
acc.passingFiles += Math.max(0, pyFiles.length - reformatLines.length);
|
|
37
|
+
for (const line of reformatLines) {
|
|
38
|
+
const match = line.match(/would reformat (.+)/);
|
|
39
|
+
if (match)
|
|
40
|
+
acc.findings.push({ severity: 'low', category: 'format', file: match[1].trim(), line: null, title: 'File not formatted', description: 'Does not match Black formatting rules.' });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function fmtRust(dirPath, files, acc) {
|
|
44
|
+
const result = await runCommand('cargo', ['fmt', '--check'], dirPath);
|
|
45
|
+
acc.ran = true;
|
|
46
|
+
const rsFiles = files.filter((f) => extname(f.path) === '.rs');
|
|
47
|
+
acc.totalFiles += rsFiles.length;
|
|
48
|
+
if (result.exitCode === 0) {
|
|
49
|
+
acc.passingFiles += rsFiles.length;
|
|
50
|
+
return;
|
|
36
51
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (result.exitCode === 0)
|
|
43
|
-
passingFiles += rsFiles.length;
|
|
52
|
+
const diffLines = result.stdout.split('\n').filter((l) => l.startsWith('Diff in'));
|
|
53
|
+
for (const line of diffLines) {
|
|
54
|
+
const match = line.match(/Diff in (.+?) at/);
|
|
55
|
+
if (match)
|
|
56
|
+
acc.findings.push({ severity: 'low', category: 'format', file: match[1].trim(), line: null, title: 'File not formatted', description: 'Does not match rustfmt formatting rules.' });
|
|
44
57
|
}
|
|
45
|
-
|
|
46
|
-
|
|
58
|
+
}
|
|
59
|
+
async function analyzeFormatting(dirPath, ecosystems, files) {
|
|
60
|
+
const acc = newFmtAccumulator();
|
|
61
|
+
if (ecosystems.includes('node'))
|
|
62
|
+
await fmtNode(dirPath, files, acc);
|
|
63
|
+
if (ecosystems.includes('python'))
|
|
64
|
+
await fmtPython(dirPath, files, acc);
|
|
65
|
+
if (ecosystems.includes('rust'))
|
|
66
|
+
await fmtRust(dirPath, files, acc);
|
|
67
|
+
if (!acc.ran || acc.totalFiles === 0) {
|
|
68
|
+
return { score: 0, available: false, issueCount: 0, findings: [] };
|
|
47
69
|
}
|
|
48
|
-
const score = Math.round((passingFiles / totalFiles) * 100);
|
|
49
|
-
return { score, available: true, issueCount: totalFiles - passingFiles };
|
|
70
|
+
const score = Math.round((acc.passingFiles / acc.totalFiles) * 100);
|
|
71
|
+
return { score, available: true, issueCount: acc.totalFiles - acc.passingFiles, findings: acc.findings.slice(0, 50) };
|
|
50
72
|
}
|
|
51
73
|
// ============================================================================
|
|
52
74
|
// File Length Analysis
|
|
@@ -142,14 +164,14 @@ export async function runQualityScan(dirPath, onProgress, installedToolNames) {
|
|
|
142
164
|
progress('Running linters', 2);
|
|
143
165
|
const hasLinter = !installedSet || hasInstalledToolInCategory(installedSet, ecosystems, 'linter');
|
|
144
166
|
const lintResult = hasLinter
|
|
145
|
-
? await analyzeLinting(dirPath, ecosystems, files)
|
|
167
|
+
? await analyzeLinting(dirPath, ecosystems, files, installedToolNames)
|
|
146
168
|
: { score: 0, findings: [], available: false, issueCount: 0 };
|
|
147
169
|
// Step 3: Check formatting (only if a formatter is installed)
|
|
148
170
|
progress('Checking formatting', 3);
|
|
149
171
|
const hasFormatter = !installedSet || hasInstalledToolInCategory(installedSet, ecosystems, 'formatter');
|
|
150
172
|
const fmtResult = hasFormatter
|
|
151
173
|
? await analyzeFormatting(dirPath, ecosystems, files)
|
|
152
|
-
: { score: 0, available: false, issueCount: 0 };
|
|
174
|
+
: { score: 0, available: false, issueCount: 0, findings: [] };
|
|
153
175
|
// Step 4: Analyze complexity (using real tools: Biome, ESLint, radon)
|
|
154
176
|
progress('Analyzing complexity', 4);
|
|
155
177
|
const complexityResult = await analyzeComplexity(dirPath, ecosystems, installedToolNames);
|
|
@@ -214,6 +236,7 @@ export async function runQualityScan(dirPath, onProgress, installedToolNames) {
|
|
|
214
236
|
const overall = computeOverallScore(categories);
|
|
215
237
|
const allFindings = [
|
|
216
238
|
...lintResult.findings,
|
|
239
|
+
...fmtResult.findings,
|
|
217
240
|
...complexityResult.findings,
|
|
218
241
|
...fileLengthResult.findings,
|
|
219
242
|
...funcLengthResult.findings,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-service.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quality-service.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-types.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-types.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-types.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-types.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;
|
|
1
|
+
{"version":3,"file":"quality-types.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AA8DhE,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,uBAAuB,EAAE;QAClH,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,+BAA+B,EAAE;QACjI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,yBAAyB,EAAE;QAC3H,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;KACzH;IACD,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,0CAA0C,EAAE;QAC1H,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,4CAA4C,EAAE;QACjI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,4CAA4C,EAAE;KACnI;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,6BAA6B,EAAE;QAC1H,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,8BAA8B,EAAE;KACxH;IACD,EAAE,EAAE;QACF,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,4EAA4E,EAAE;QAC9K,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE;KACnG;IACD,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,wBAAwB,EAAE;QAClH,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,0BAA0B,EAAE;KAC5H;IACD,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,qBAAqB,EAAE;QACzG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE;KAC1G;IACD,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC5C,KAAK,EAAE,MAAM;IACb,KAAK;IACL,KAAK;IACL,OAAO,EAAE,KAAK;IACd,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IACjC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;IAC/D,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IACvD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B,MAAM,UAAU,0BAA0B,CACxC,YAAyB,EACzB,UAAuB,EACvB,QAAiC;IAEjC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,CAA0B;IACpE,OAAO,CAAE,CAAC,CAAC,QAAmB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiC;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAA0B,EAAE,QAAoC;IACjG,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,QAAkB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAA+C,CAAC;IACnE,MAAM,IAAI,GAAI,QAAQ,EAAE,IAAgC,IAAI,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAI,IAAI,CAAC,KAAiC,IAAI,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAuD,CAAC;IAC1E,MAAM,IAAI,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAO,EAAE,IAAe,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACvF,MAAM,QAAQ,GAAG,CAAE,CAAC,CAAC,QAAmB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;IAC5E,OAAO;QACL,QAAQ,EAAE,GAAG;QACb,QAAQ;QACR,IAAI,EAAG,QAAQ,EAAE,IAAe,IAAI,EAAE;QACtC,IAAI,EAAG,KAAK,CAAC,IAAe,IAAI,IAAI;QACpC,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC"}
|