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.
Files changed (55) hide show
  1. package/README.md +129 -0
  2. package/bin/cli.js +12 -0
  3. package/dist/ai/agent.d.ts +54 -0
  4. package/dist/ai/agent.d.ts.map +1 -0
  5. package/dist/ai/agent.js +141 -0
  6. package/dist/ai/agent.js.map +1 -0
  7. package/dist/ai/gemini-client.d.ts +37 -0
  8. package/dist/ai/gemini-client.d.ts.map +1 -0
  9. package/dist/ai/gemini-client.js +75 -0
  10. package/dist/ai/gemini-client.js.map +1 -0
  11. package/dist/ai/prompts.d.ts +25 -0
  12. package/dist/ai/prompts.d.ts.map +1 -0
  13. package/dist/ai/prompts.js +176 -0
  14. package/dist/ai/prompts.js.map +1 -0
  15. package/dist/auth/token-manager.d.ts +33 -0
  16. package/dist/auth/token-manager.d.ts.map +1 -0
  17. package/dist/auth/token-manager.js +97 -0
  18. package/dist/auth/token-manager.js.map +1 -0
  19. package/dist/commands/config.d.ts +12 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js +84 -0
  22. package/dist/commands/config.js.map +1 -0
  23. package/dist/commands/scan.d.ts +14 -0
  24. package/dist/commands/scan.d.ts.map +1 -0
  25. package/dist/commands/scan.js +110 -0
  26. package/dist/commands/scan.js.map +1 -0
  27. package/dist/core/executor.d.ts +33 -0
  28. package/dist/core/executor.d.ts.map +1 -0
  29. package/dist/core/executor.js +149 -0
  30. package/dist/core/executor.js.map +1 -0
  31. package/dist/core/framework-detector.d.ts +20 -0
  32. package/dist/core/framework-detector.d.ts.map +1 -0
  33. package/dist/core/framework-detector.js +155 -0
  34. package/dist/core/framework-detector.js.map +1 -0
  35. package/dist/core/scanner.d.ts +34 -0
  36. package/dist/core/scanner.d.ts.map +1 -0
  37. package/dist/core/scanner.js +172 -0
  38. package/dist/core/scanner.js.map +1 -0
  39. package/dist/core/security.d.ts +40 -0
  40. package/dist/core/security.d.ts.map +1 -0
  41. package/dist/core/security.js +118 -0
  42. package/dist/core/security.js.map +1 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +40 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/reporters/markdown.d.ts +25 -0
  48. package/dist/reporters/markdown.d.ts.map +1 -0
  49. package/dist/reporters/markdown.js +135 -0
  50. package/dist/reporters/markdown.js.map +1 -0
  51. package/dist/utils/logger.d.ts +50 -0
  52. package/dist/utils/logger.d.ts.map +1 -0
  53. package/dist/utils/logger.js +94 -0
  54. package/dist/utils/logger.js.map +1 -0
  55. 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
+ }