vantaverse-ai-reviewer 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -0
- package/bin/cli.js +12 -0
- package/dist/ai/agent.d.ts +54 -0
- package/dist/ai/agent.d.ts.map +1 -0
- package/dist/ai/agent.js +141 -0
- package/dist/ai/agent.js.map +1 -0
- package/dist/ai/gemini-client.d.ts +37 -0
- package/dist/ai/gemini-client.d.ts.map +1 -0
- package/dist/ai/gemini-client.js +75 -0
- package/dist/ai/gemini-client.js.map +1 -0
- package/dist/ai/prompts.d.ts +25 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +176 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/auth/token-manager.d.ts +33 -0
- package/dist/auth/token-manager.d.ts.map +1 -0
- package/dist/auth/token-manager.js +97 -0
- package/dist/auth/token-manager.js.map +1 -0
- package/dist/commands/config.d.ts +12 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +84 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/scan.d.ts +14 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +110 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/core/executor.d.ts +33 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/core/executor.js +149 -0
- package/dist/core/executor.js.map +1 -0
- package/dist/core/framework-detector.d.ts +20 -0
- package/dist/core/framework-detector.d.ts.map +1 -0
- package/dist/core/framework-detector.js +155 -0
- package/dist/core/framework-detector.js.map +1 -0
- package/dist/core/scanner.d.ts +34 -0
- package/dist/core/scanner.d.ts.map +1 -0
- package/dist/core/scanner.js +172 -0
- package/dist/core/scanner.js.map +1 -0
- package/dist/core/security.d.ts +40 -0
- package/dist/core/security.d.ts.map +1 -0
- package/dist/core/security.js +118 -0
- package/dist/core/security.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/reporters/markdown.d.ts +25 -0
- package/dist/reporters/markdown.d.ts.map +1 -0
- package/dist/reporters/markdown.js +135 -0
- package/dist/reporters/markdown.js.map +1 -0
- package/dist/utils/logger.d.ts +50 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +94 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Reporter - Generate the final report
|
|
3
|
+
*/
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
/**
|
|
7
|
+
* Generate the full markdown report
|
|
8
|
+
*/
|
|
9
|
+
export function generateMarkdownReport(result, metadata) {
|
|
10
|
+
const lines = [];
|
|
11
|
+
// Header
|
|
12
|
+
lines.push('# 🤖 AI Code Review Report');
|
|
13
|
+
lines.push('');
|
|
14
|
+
lines.push('> Generated by AI Code Reviewer powered by Gemini AI');
|
|
15
|
+
lines.push('');
|
|
16
|
+
// Project Info Table
|
|
17
|
+
lines.push('## 📊 Project Information');
|
|
18
|
+
lines.push('');
|
|
19
|
+
lines.push('| Property | Value |');
|
|
20
|
+
lines.push('|----------|-------|');
|
|
21
|
+
lines.push(`| Framework | ${metadata.framework.displayName} |`);
|
|
22
|
+
lines.push(`| Files Scanned | ${metadata.scanResult.files.length} |`);
|
|
23
|
+
lines.push(`| Total Size | ${(metadata.scanResult.totalSize / 1024).toFixed(1)} KB |`);
|
|
24
|
+
lines.push(`| AI Model | ${metadata.modelName} |`);
|
|
25
|
+
lines.push(`| Generated | ${metadata.generatedAt.toISOString()} |`);
|
|
26
|
+
lines.push(`| Analysis Duration | ${(result.duration / 1000).toFixed(1)}s |`);
|
|
27
|
+
lines.push(`| Tokens Used | ${result.totalTokens.toLocaleString()} |`);
|
|
28
|
+
lines.push('');
|
|
29
|
+
// Repository Context
|
|
30
|
+
if (Object.keys(result.context).length > 0) {
|
|
31
|
+
lines.push('### 📁 Repository Context');
|
|
32
|
+
lines.push('');
|
|
33
|
+
for (const [key, value] of Object.entries(result.context)) {
|
|
34
|
+
if (value) {
|
|
35
|
+
lines.push(`- **${key.replace(/_/g, ' ')}**: ${value}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
lines.push('');
|
|
39
|
+
}
|
|
40
|
+
// Type Errors
|
|
41
|
+
if (result.typeErrors.length > 0) {
|
|
42
|
+
lines.push('### ⚠️ TypeScript Errors');
|
|
43
|
+
lines.push('');
|
|
44
|
+
lines.push('```');
|
|
45
|
+
for (const error of result.typeErrors.slice(0, 10)) {
|
|
46
|
+
lines.push(error);
|
|
47
|
+
}
|
|
48
|
+
if (result.typeErrors.length > 10) {
|
|
49
|
+
lines.push(`... and ${result.typeErrors.length - 10} more`);
|
|
50
|
+
}
|
|
51
|
+
lines.push('```');
|
|
52
|
+
lines.push('');
|
|
53
|
+
}
|
|
54
|
+
// Lint Issues
|
|
55
|
+
if (result.lintIssues.length > 0) {
|
|
56
|
+
lines.push('### 📋 Lint Issues');
|
|
57
|
+
lines.push('');
|
|
58
|
+
lines.push('```');
|
|
59
|
+
for (const issue of result.lintIssues.slice(0, 10)) {
|
|
60
|
+
lines.push(issue);
|
|
61
|
+
}
|
|
62
|
+
if (result.lintIssues.length > 10) {
|
|
63
|
+
lines.push(`... and ${result.lintIssues.length - 10} more`);
|
|
64
|
+
}
|
|
65
|
+
lines.push('```');
|
|
66
|
+
lines.push('');
|
|
67
|
+
}
|
|
68
|
+
lines.push('---');
|
|
69
|
+
lines.push('');
|
|
70
|
+
// Analysis Sections
|
|
71
|
+
for (const section of result.sections) {
|
|
72
|
+
lines.push(`## ${section.title}`);
|
|
73
|
+
lines.push('');
|
|
74
|
+
// Files analyzed note
|
|
75
|
+
if (section.filesAnalyzed.length > 0) {
|
|
76
|
+
lines.push(`<details>`);
|
|
77
|
+
lines.push(`<summary>📂 Files analyzed (${section.filesAnalyzed.length})</summary>`);
|
|
78
|
+
lines.push('');
|
|
79
|
+
for (const file of section.filesAnalyzed) {
|
|
80
|
+
lines.push(`- \`${file}\``);
|
|
81
|
+
}
|
|
82
|
+
lines.push('');
|
|
83
|
+
lines.push('</details>');
|
|
84
|
+
lines.push('');
|
|
85
|
+
}
|
|
86
|
+
// Section content from AI
|
|
87
|
+
lines.push(section.content);
|
|
88
|
+
lines.push('');
|
|
89
|
+
lines.push('---');
|
|
90
|
+
lines.push('');
|
|
91
|
+
}
|
|
92
|
+
// Footer
|
|
93
|
+
lines.push('## 📝 Notes');
|
|
94
|
+
lines.push('');
|
|
95
|
+
lines.push('- This report was generated automatically by AI analysis');
|
|
96
|
+
lines.push('- Not all issues may be actual bugs - use your judgment');
|
|
97
|
+
lines.push('- Consider running again after making changes for updated analysis');
|
|
98
|
+
lines.push('');
|
|
99
|
+
lines.push('---');
|
|
100
|
+
lines.push('');
|
|
101
|
+
lines.push(`*Report generated on ${metadata.generatedAt.toLocaleString()}*`);
|
|
102
|
+
return lines.join('\n');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Write report to file
|
|
106
|
+
*/
|
|
107
|
+
export async function writeReport(content, outputPath) {
|
|
108
|
+
const absolutePath = path.resolve(outputPath);
|
|
109
|
+
await fs.promises.writeFile(absolutePath, content, 'utf-8');
|
|
110
|
+
return absolutePath;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Generate JSON report
|
|
114
|
+
*/
|
|
115
|
+
export function generateJsonReport(result, metadata) {
|
|
116
|
+
return {
|
|
117
|
+
version: '1.0',
|
|
118
|
+
generatedAt: metadata.generatedAt.toISOString(),
|
|
119
|
+
framework: metadata.framework.name,
|
|
120
|
+
filesScanned: metadata.scanResult.files.length,
|
|
121
|
+
modelName: metadata.modelName,
|
|
122
|
+
duration: result.duration,
|
|
123
|
+
tokensUsed: result.totalTokens,
|
|
124
|
+
context: result.context,
|
|
125
|
+
typeErrors: result.typeErrors,
|
|
126
|
+
lintIssues: result.lintIssues,
|
|
127
|
+
sections: result.sections.map(s => ({
|
|
128
|
+
type: s.type,
|
|
129
|
+
title: s.title,
|
|
130
|
+
filesAnalyzed: s.filesAnalyzed,
|
|
131
|
+
content: s.content
|
|
132
|
+
}))
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/reporters/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger - Pretty console output utilities
|
|
3
|
+
*/
|
|
4
|
+
import { type Ora } from 'ora';
|
|
5
|
+
export type LogLevel = 'info' | 'success' | 'warning' | 'error' | 'debug';
|
|
6
|
+
/**
|
|
7
|
+
* Log a message with appropriate styling
|
|
8
|
+
*/
|
|
9
|
+
export declare function log(level: LogLevel, message: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* Log info message
|
|
12
|
+
*/
|
|
13
|
+
export declare function info(message: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Log success message
|
|
16
|
+
*/
|
|
17
|
+
export declare function success(message: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Log warning message
|
|
20
|
+
*/
|
|
21
|
+
export declare function warn(message: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Log error message
|
|
24
|
+
*/
|
|
25
|
+
export declare function error(message: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Log debug message (only if DEBUG env is set)
|
|
28
|
+
*/
|
|
29
|
+
export declare function debug(message: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Create a spinner
|
|
32
|
+
*/
|
|
33
|
+
export declare function spinner(text: string): Ora;
|
|
34
|
+
/**
|
|
35
|
+
* Print a section header
|
|
36
|
+
*/
|
|
37
|
+
export declare function header(text: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Print a divider
|
|
40
|
+
*/
|
|
41
|
+
export declare function divider(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Print project info banner
|
|
44
|
+
*/
|
|
45
|
+
export declare function banner(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Print stats in a nice format
|
|
48
|
+
*/
|
|
49
|
+
export declare function stats(items: Record<string, string | number>): void;
|
|
50
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAU1E;;GAEG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAMzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIzC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,IAAI,CAO7B;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAIlE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger - Pretty console output utilities
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import ora from 'ora';
|
|
6
|
+
const PREFIX = {
|
|
7
|
+
info: chalk.blue('ℹ'),
|
|
8
|
+
success: chalk.green('✓'),
|
|
9
|
+
warning: chalk.yellow('⚠'),
|
|
10
|
+
error: chalk.red('✖'),
|
|
11
|
+
debug: chalk.gray('⚙')
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Log a message with appropriate styling
|
|
15
|
+
*/
|
|
16
|
+
export function log(level, message) {
|
|
17
|
+
console.log(`${PREFIX[level]} ${message}`);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Log info message
|
|
21
|
+
*/
|
|
22
|
+
export function info(message) {
|
|
23
|
+
log('info', message);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Log success message
|
|
27
|
+
*/
|
|
28
|
+
export function success(message) {
|
|
29
|
+
log('success', chalk.green(message));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Log warning message
|
|
33
|
+
*/
|
|
34
|
+
export function warn(message) {
|
|
35
|
+
log('warning', chalk.yellow(message));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Log error message
|
|
39
|
+
*/
|
|
40
|
+
export function error(message) {
|
|
41
|
+
log('error', chalk.red(message));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Log debug message (only if DEBUG env is set)
|
|
45
|
+
*/
|
|
46
|
+
export function debug(message) {
|
|
47
|
+
if (process.env.DEBUG) {
|
|
48
|
+
log('debug', chalk.gray(message));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a spinner
|
|
53
|
+
*/
|
|
54
|
+
export function spinner(text) {
|
|
55
|
+
return ora({
|
|
56
|
+
text,
|
|
57
|
+
color: 'cyan',
|
|
58
|
+
spinner: 'dots'
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Print a section header
|
|
63
|
+
*/
|
|
64
|
+
export function header(text) {
|
|
65
|
+
console.log();
|
|
66
|
+
console.log(chalk.bold.cyan(`━━━ ${text} ━━━`));
|
|
67
|
+
console.log();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Print a divider
|
|
71
|
+
*/
|
|
72
|
+
export function divider() {
|
|
73
|
+
console.log(chalk.gray('─'.repeat(50)));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Print project info banner
|
|
77
|
+
*/
|
|
78
|
+
export function banner() {
|
|
79
|
+
console.log();
|
|
80
|
+
console.log(chalk.cyan.bold(' ╔═══════════════════════════════════╗'));
|
|
81
|
+
console.log(chalk.cyan.bold(' ║') + chalk.white.bold(' 🤖 AI Code Reviewer ') + chalk.cyan.bold('║'));
|
|
82
|
+
console.log(chalk.cyan.bold(' ║') + chalk.gray(' Powered by Gemini AI ') + chalk.cyan.bold('║'));
|
|
83
|
+
console.log(chalk.cyan.bold(' ╚═══════════════════════════════════╝'));
|
|
84
|
+
console.log();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Print stats in a nice format
|
|
88
|
+
*/
|
|
89
|
+
export function stats(items) {
|
|
90
|
+
for (const [key, value] of Object.entries(items)) {
|
|
91
|
+
console.log(` ${chalk.gray(key + ':')} ${chalk.white(value)}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vantaverse-ai-reviewer",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AI-powered code review CLI - analyze your codebase with Gemini AI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"vantaverse-ai-reviewer": "./bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"files": [
|
|
12
|
+
"bin",
|
|
13
|
+
"dist",
|
|
14
|
+
"templates"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"dev": "tsc --watch",
|
|
19
|
+
"start": "node bin/cli.js",
|
|
20
|
+
"test": "vitest",
|
|
21
|
+
"prepublishOnly": "npm run build"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"ai",
|
|
25
|
+
"code-review",
|
|
26
|
+
"gemini",
|
|
27
|
+
"cli",
|
|
28
|
+
"testing",
|
|
29
|
+
"security",
|
|
30
|
+
"accessibility"
|
|
31
|
+
],
|
|
32
|
+
"author": "",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=18.0.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@google/generative-ai": "^0.21.0",
|
|
39
|
+
"chalk": "^5.3.0",
|
|
40
|
+
"commander": "^12.1.0",
|
|
41
|
+
"conf": "^13.0.1",
|
|
42
|
+
"glob": "^11.0.0",
|
|
43
|
+
"inquirer": "^12.0.0",
|
|
44
|
+
"ora": "^8.1.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^22.0.0",
|
|
48
|
+
"typescript": "^5.6.0",
|
|
49
|
+
"vitest": "^2.1.0"
|
|
50
|
+
}
|
|
51
|
+
}
|