nayan-ai 1.0.0-beta.4 → 1.0.0-beta.5

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 (61) hide show
  1. package/README.md +100 -14
  2. package/dist/cli.js +21 -157
  3. package/dist/cli.js.map +1 -1
  4. package/dist/common/claude.d.ts +6 -0
  5. package/dist/common/claude.js +180 -0
  6. package/dist/common/claude.js.map +1 -0
  7. package/dist/common/codex.d.ts +6 -0
  8. package/dist/common/codex.js +169 -0
  9. package/dist/common/codex.js.map +1 -0
  10. package/dist/common/github.d.ts +22 -0
  11. package/dist/common/github.js +153 -0
  12. package/dist/common/github.js.map +1 -0
  13. package/dist/common/logs.d.ts +15 -0
  14. package/dist/common/logs.js +154 -0
  15. package/dist/common/logs.js.map +1 -0
  16. package/dist/{types.d.ts → common/types.d.ts} +36 -1
  17. package/dist/common/types.js.map +1 -0
  18. package/dist/common/utils.d.ts +3 -0
  19. package/dist/common/utils.js +11 -0
  20. package/dist/common/utils.js.map +1 -0
  21. package/dist/index.d.ts +7 -6
  22. package/dist/index.js +6 -5
  23. package/dist/index.js.map +1 -1
  24. package/dist/{analyzer.d.ts → review/analyzer.d.ts} +1 -1
  25. package/dist/review/analyzer.js.map +1 -0
  26. package/dist/review/command.d.ts +2 -0
  27. package/dist/review/command.js +111 -0
  28. package/dist/review/command.js.map +1 -0
  29. package/dist/review/prompt.js.map +1 -0
  30. package/dist/scan/command.d.ts +2 -0
  31. package/dist/scan/command.js +700 -0
  32. package/dist/scan/command.js.map +1 -0
  33. package/dist/scan/fixer.d.ts +30 -0
  34. package/dist/scan/fixer.js +264 -0
  35. package/dist/scan/fixer.js.map +1 -0
  36. package/dist/scan/prompt.d.ts +4 -0
  37. package/dist/scan/prompt.js +175 -0
  38. package/dist/scan/prompt.js.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/analyzer.js.map +0 -1
  41. package/dist/claude.d.ts +0 -5
  42. package/dist/claude.js +0 -128
  43. package/dist/claude.js.map +0 -1
  44. package/dist/codex.d.ts +0 -5
  45. package/dist/codex.js +0 -129
  46. package/dist/codex.js.map +0 -1
  47. package/dist/github.d.ts +0 -15
  48. package/dist/github.js +0 -88
  49. package/dist/github.js.map +0 -1
  50. package/dist/logs.d.ts +0 -34
  51. package/dist/logs.js +0 -219
  52. package/dist/logs.js.map +0 -1
  53. package/dist/prompt.js.map +0 -1
  54. package/dist/repo.d.ts +0 -8
  55. package/dist/repo.js +0 -61
  56. package/dist/repo.js.map +0 -1
  57. package/dist/types.js.map +0 -1
  58. /package/dist/{types.js → common/types.js} +0 -0
  59. /package/dist/{analyzer.js → review/analyzer.js} +0 -0
  60. /package/dist/{prompt.d.ts → review/prompt.d.ts} +0 -0
  61. /package/dist/{prompt.js → review/prompt.js} +0 -0
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
- export { GitHubClient, parseFiles, parsePRReference } from './github.js';
2
- export { analyzeWithCodex } from './codex.js';
3
- export { analyzeWithClaude } from './claude.js';
4
- export { issuesToReviewComments, generateSummary } from './analyzer.js';
5
- export { cloneRepo, getGitDiff, getChangedFiles } from './repo.js';
1
+ export { parseFiles, parsePRReference, parseRepoReference, cloneRepo, cloneRepoForScan, getGitDiff, getChangedFiles, getPullRequest, getPullRequestFiles, postReview, postComment, } from './common/github.js';
2
+ export { analyzeWithCodex } from './common/codex.js';
3
+ export { analyzeWithClaude } from './common/claude.js';
4
+ export { issuesToReviewComments, generateSummary } from './review/analyzer.js';
5
+ export { reviewCommand } from './review/command.js';
6
+ export { scanCommand } from './scan/command.js';
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,WAAW,GAGZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { CodeIssue, ReviewComment } from './types.js';
1
+ import type { CodeIssue, ReviewComment } from '../common/types.js';
2
2
  export declare function issuesToReviewComments(issues: CodeIssue[]): ReviewComment[];
3
3
  export declare function generateSummary(issues: CodeIssue[]): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/review/analyzer.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,MAAmB;IACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAE/G,IAAI,IAAI,GAAG,GAAG,YAAY,MAAM,YAAY,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC;QACnG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,IAAI,0BAA0B,KAAK,CAAC,UAAU,EAAE,CAAC;QACvD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,OAAgB;YACtB,IAAI;SACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,uEAAuE,CAAC;IACjF,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;QACnD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;QACvD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;KAClD,CAAC;IAEF,IAAI,OAAO,GAAG,4CAA4C,MAAM,CAAC,MAAM,6BAA6B,CAAC;IAErG,yCAAyC;IACzC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,kBAAkB,UAAU,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC;QAC5D,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACvG,OAAO,IAAI,KAAK,IAAI,QAAQ,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC;YACnF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,IAAI,WAAW,KAAK,CAAC,UAAU,GAAG,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,oBAAoB,UAAU,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC;QAChE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACvG,OAAO,IAAI,KAAK,IAAI,QAAQ,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC;YACnF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,IAAI,WAAW,KAAK,CAAC,UAAU,GAAG,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,gBAAgB,UAAU,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACvG,OAAO,IAAI,KAAK,IAAI,QAAQ,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC;YACnF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,IAAI,WAAW,KAAK,CAAC,UAAU,GAAG,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ReviewOptions } from '../common/types.js';
2
+ export declare const reviewCommand: (prUrl: string, options: ReviewOptions) => Promise<void>;
@@ -0,0 +1,111 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { parseFiles, parsePRReference, cloneRepo, getPullRequest, getPullRequestFiles, postReview, postComment, } from '../common/github.js';
4
+ import { issuesToReviewComments, generateSummary } from './analyzer.js';
5
+ import { analyzeWithCodex } from '../common/codex.js';
6
+ import { analyzeWithClaude } from '../common/claude.js';
7
+ import { getReviewPrompt } from './prompt.js';
8
+ import { VALID_LLM_PROVIDERS, checkLLMAvailability } from '../common/utils.js';
9
+ export const reviewCommand = async (prUrl, options) => {
10
+ try {
11
+ if (!VALID_LLM_PROVIDERS.includes(options.llm)) {
12
+ console.error(chalk.red(`Error: Invalid LLM provider '${options.llm}'. Valid options: ${VALID_LLM_PROVIDERS.join(', ')}`));
13
+ process.exit(1);
14
+ }
15
+ checkLLMAvailability(options.llm);
16
+ const prInfo = parsePRReference(prUrl);
17
+ const { githubUrl } = prInfo;
18
+ const githubConfig = { token: options.token, githubUrl };
19
+ console.log(chalk.bold.blue('\n🤖 Nayan AI - PR Reviewer'));
20
+ console.log('━'.repeat(40));
21
+ console.log(` Repository: ${chalk.cyan(`${prInfo.owner}/${prInfo.repo}`)}`);
22
+ console.log(` PR Number: ${chalk.cyan(`#${prInfo.number}`)}`);
23
+ if (githubUrl)
24
+ console.log(` GitHub: ${chalk.cyan(githubUrl)}`);
25
+ if (options.dry)
26
+ console.log(` Mode: ${chalk.yellow('Dry Run (no comments will be posted)')}`);
27
+ console.log('━'.repeat(40) + '\n');
28
+ let spinner = ora('Fetching PR details...').start();
29
+ const pr = await getPullRequest(githubConfig, prInfo);
30
+ spinner.succeed(`PR: ${pr.title}`);
31
+ spinner = ora('Fetching changed files...').start();
32
+ const files = await getPullRequestFiles(githubConfig, prInfo);
33
+ const fileChanges = parseFiles(files);
34
+ spinner.succeed(`Found ${fileChanges.length} files with changes`);
35
+ spinner = ora('Cloning repository...').start();
36
+ const repo = await cloneRepo(prInfo, options.token, githubUrl);
37
+ let issues;
38
+ try {
39
+ spinner.succeed('Repository cloned');
40
+ const llmName = options.llm === 'claude' ? 'Claude Code' : 'Codex';
41
+ console.log(chalk.cyan(`Running code review with ${llmName} CLI...\n`));
42
+ const prompt = getReviewPrompt('origin/main');
43
+ const llmOptions = { verbose: options.verbose };
44
+ issues = options.llm === 'claude'
45
+ ? await analyzeWithClaude(repo.path, prompt, llmOptions)
46
+ : await analyzeWithCodex(repo.path, prompt, llmOptions);
47
+ console.log(chalk.green(`\n✔ Analysis complete: ${issues.length} issues found`));
48
+ }
49
+ finally {
50
+ await repo.cleanup();
51
+ }
52
+ console.log(chalk.bold('\n📋 Review Summary'));
53
+ console.log('─'.repeat(41));
54
+ if (options.format === 'json') {
55
+ console.log(JSON.stringify(issues, null, 2));
56
+ }
57
+ else {
58
+ printIssuesSummary(issues);
59
+ }
60
+ if (!options.dry) {
61
+ spinner = ora('Posting review to GitHub...').start();
62
+ const summary = generateSummary(issues);
63
+ if (options.inline) {
64
+ const reviewComments = issuesToReviewComments(issues);
65
+ await postReview(githubConfig, prInfo, pr.head.sha, summary, reviewComments);
66
+ spinner.succeed('Inline review posted to GitHub');
67
+ }
68
+ else {
69
+ await postComment(githubConfig, prInfo, summary);
70
+ spinner.succeed('Review summary posted to GitHub');
71
+ }
72
+ }
73
+ else {
74
+ console.log(chalk.yellow('\nDry run mode - no comments posted to GitHub'));
75
+ }
76
+ console.log(chalk.green('\n✅ Review complete!\n'));
77
+ }
78
+ catch (error) {
79
+ console.error(chalk.red('\nError:'), error instanceof Error ? error.message : String(error));
80
+ process.exit(1);
81
+ }
82
+ };
83
+ const getIssueIcon = (category) => category === 'functionality' ? '🐛' : category === 'readability' ? '📖' : '⚡';
84
+ const printIssue = (issue, colorFn) => {
85
+ console.log(colorFn(` ${getIssueIcon(issue.category)} ${issue.filename}:${issue.line}`));
86
+ console.log(` ${issue.message}`);
87
+ if (issue.suggestion)
88
+ console.log(chalk.dim(` 💡 ${issue.suggestion}`));
89
+ };
90
+ const printIssuesSummary = (issues) => {
91
+ if (issues.length === 0) {
92
+ console.log(chalk.green(' No issues found! The code looks good.'));
93
+ return;
94
+ }
95
+ const errors = issues.filter((i) => i.severity === 'error');
96
+ const warnings = issues.filter((i) => i.severity === 'warning');
97
+ const infos = issues.filter((i) => i.severity === 'info');
98
+ if (errors.length > 0) {
99
+ console.log(chalk.red.bold(`\n 🔴 Errors (${errors.length}):`));
100
+ errors.forEach((issue) => printIssue(issue, chalk.red));
101
+ }
102
+ if (warnings.length > 0) {
103
+ console.log(chalk.yellow.bold(`\n 🟡 Warnings (${warnings.length}):`));
104
+ warnings.forEach((issue) => printIssue(issue, chalk.yellow));
105
+ }
106
+ if (infos.length > 0) {
107
+ console.log(chalk.blue.bold(`\n 🔵 Info (${infos.length}):`));
108
+ infos.forEach((issue) => printIssue(issue, chalk.blue));
109
+ }
110
+ };
111
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/review/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/review/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO;;wBAEe,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAwE2B,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ScanOptions } from '../common/types.js';
2
+ export declare const scanCommand: (repoUrl: string, options: ScanOptions) => Promise<void>;