@ariso-ai/ivan 1.0.31 → 1.0.33

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 (38) hide show
  1. package/dist/database/migration.d.ts +2 -2
  2. package/dist/database/migration.d.ts.map +1 -1
  3. package/dist/database/migration.js.map +1 -1
  4. package/dist/database/migrations/017_create_pr_reviews_table.d.ts +3 -0
  5. package/dist/database/migrations/017_create_pr_reviews_table.d.ts.map +1 -0
  6. package/dist/database/migrations/017_create_pr_reviews_table.js +23 -0
  7. package/dist/database/migrations/017_create_pr_reviews_table.js.map +1 -0
  8. package/dist/database/migrations/index.d.ts.map +1 -1
  9. package/dist/database/migrations/index.js +3 -1
  10. package/dist/database/migrations/index.js.map +1 -1
  11. package/dist/database/types.d.ts +13 -0
  12. package/dist/database/types.d.ts.map +1 -1
  13. package/dist/index.js +27 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/learnings/database.d.ts.map +1 -1
  16. package/dist/learnings/database.js.map +1 -1
  17. package/dist/services/address-executor.d.ts.map +1 -1
  18. package/dist/services/address-executor.js +3 -2
  19. package/dist/services/address-executor.js.map +1 -1
  20. package/dist/services/git-interfaces.d.ts +3 -3
  21. package/dist/services/git-interfaces.d.ts.map +1 -1
  22. package/dist/services/pr-service-cli.d.ts +3 -3
  23. package/dist/services/pr-service-cli.d.ts.map +1 -1
  24. package/dist/services/pr-service-cli.js +7 -7
  25. package/dist/services/pr-service-cli.js.map +1 -1
  26. package/dist/services/pr-service-pat.d.ts +3 -3
  27. package/dist/services/pr-service-pat.d.ts.map +1 -1
  28. package/dist/services/pr-service-pat.js +7 -7
  29. package/dist/services/pr-service-pat.js.map +1 -1
  30. package/dist/services/review-executor.d.ts +2 -1
  31. package/dist/services/review-executor.d.ts.map +1 -1
  32. package/dist/services/review-executor.js +135 -114
  33. package/dist/services/review-executor.js.map +1 -1
  34. package/dist/web-server.d.ts +1 -0
  35. package/dist/web-server.d.ts.map +1 -1
  36. package/dist/web-server.js +393 -200
  37. package/dist/web-server.js.map +1 -1
  38. package/package.json +1 -1
@@ -14,7 +14,7 @@ export class PRServicePAT {
14
14
  this.owner = repoInfo.owner;
15
15
  this.repo = repoInfo.repo;
16
16
  }
17
- async getSpecificPRWithIssues(prNumber) {
17
+ async getSpecificPRWithIssues(prNumber, ignoreReplies = false) {
18
18
  try {
19
19
  // Get specific PR
20
20
  const pr = await this.githubClient.getPR(this.owner, this.repo, prNumber);
@@ -37,7 +37,7 @@ export class PRServicePAT {
37
37
  testOrLintFailures: []
38
38
  };
39
39
  // Check for unaddressed comments
40
- const comments = await this.getUnaddressedComments(pr.number);
40
+ const comments = await this.getUnaddressedComments(pr.number, ignoreReplies);
41
41
  if (comments.length > 0) {
42
42
  pullRequest.hasUnaddressedComments = true;
43
43
  pullRequest.unaddressedComments = comments;
@@ -70,7 +70,7 @@ export class PRServicePAT {
70
70
  throw error;
71
71
  }
72
72
  }
73
- async getOpenPRsWithIssues(fromUser) {
73
+ async getOpenPRsWithIssues(fromUser, ignoreReplies = false) {
74
74
  try {
75
75
  // Get all open PRs, optionally filtered by author
76
76
  const prs = await this.githubClient.listPRs(this.owner, this.repo, {
@@ -92,7 +92,7 @@ export class PRServicePAT {
92
92
  testOrLintFailures: []
93
93
  };
94
94
  // Check for unaddressed comments
95
- const comments = await this.getUnaddressedComments(pr.number);
95
+ const comments = await this.getUnaddressedComments(pr.number, ignoreReplies);
96
96
  if (comments.length > 0) {
97
97
  pullRequest.hasUnaddressedComments = true;
98
98
  pullRequest.unaddressedComments = comments;
@@ -120,7 +120,7 @@ export class PRServicePAT {
120
120
  throw error;
121
121
  }
122
122
  }
123
- async getUnaddressedComments(prNumber) {
123
+ async getUnaddressedComments(prNumber, ignoreReplies = false) {
124
124
  try {
125
125
  // Get review threads using GraphQL
126
126
  const threads = await this.githubClient.getReviewThreads(this.owner, this.repo, prNumber);
@@ -139,8 +139,8 @@ export class PRServicePAT {
139
139
  const firstComment = comments[0];
140
140
  // Check if there are replies (more than one comment in thread)
141
141
  const hasReplies = comments.length > 1;
142
- if (!hasReplies && firstComment.path) {
143
- // Only include if it's an inline code comment (has a path) and has no replies
142
+ if ((!hasReplies || ignoreReplies) && firstComment.path) {
143
+ // Only include if it's an inline code comment (has a path) and has no replies (unless ignoreReplies)
144
144
  unaddressedComments.push({
145
145
  id: firstComment.databaseId
146
146
  ? firstComment.databaseId.toString()
@@ -1 +1 @@
1
- {"version":3,"file":"pr-service-pat.js","sourceRoot":"","sources":["../../src/services/pr-service-pat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr-service-pat.js","sourceRoot":"","sources":["../../src/services/pr-service-pat.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  export declare class ReviewExecutor {
2
2
  private dbManager;
3
+ private claudeExecutor;
4
+ private repositoryManager;
3
5
  constructor();
4
6
  executeReviews(prNumbers: number[]): Promise<void>;
5
7
  private reviewPR;
6
- private extractReviewContent;
7
8
  }
8
9
  //# sourceMappingURL=review-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-executor.d.ts","sourceRoot":"","sources":["../../src/services/review-executor.ts"],"names":[],"mappings":"AAMA,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAkB;;IAM7B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAgB1C,QAAQ;IAyItB,OAAO,CAAC,oBAAoB;CAc7B"}
1
+ {"version":3,"file":"review-executor.d.ts","sourceRoot":"","sources":["../../src/services/review-executor.ts"],"names":[],"mappings":"AA6BA,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAqB;;IAQxC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAoD1C,QAAQ;CAkIvB"}
@@ -1,159 +1,180 @@
1
+ import { randomUUID } from 'crypto';
1
2
  import { execSync } from 'child_process';
2
3
  import chalk from 'chalk';
3
- import { randomUUID } from 'crypto';
4
4
  import { DatabaseManager } from '../database.js';
5
5
  import { ExecutorFactory } from './executor-factory.js';
6
+ import { createGitManager, createRepositoryManager } from './service-factory.js';
7
+ const REVIEW_SYSTEM_PROMPT = `You are a principal engineer reviewing a pull request. Your job is to provide a thorough, actionable code review.
8
+
9
+ Focus on:
10
+ - Correctness: bugs, logic errors, edge cases, incorrect assumptions
11
+ - Security: vulnerabilities, improper input handling, exposed secrets
12
+ - Performance: inefficient algorithms, unnecessary work, missing indexes
13
+ - Maintainability: overly complex code, missing error handling, unclear logic
14
+ - Conventions: adherence to existing patterns in the codebase
15
+
16
+ Be specific and concrete. For each issue, explain:
17
+ 1. What the problem is
18
+ 2. Why it matters
19
+ 3. How to fix it (with a code example when helpful)
20
+
21
+ Format your review with clear sections. Start with a brief summary, then list issues by severity (critical, major, minor, nit). If there are no significant issues, say so clearly.`;
6
22
  export class ReviewExecutor {
7
23
  dbManager;
24
+ claudeExecutor;
25
+ repositoryManager;
8
26
  constructor() {
9
27
  this.dbManager = new DatabaseManager();
28
+ this.claudeExecutor = ExecutorFactory.getExecutor();
29
+ this.repositoryManager = createRepositoryManager();
10
30
  }
11
31
  async executeReviews(prNumbers) {
12
- const workingDir = process.cwd();
13
- console.log(chalk.blue.bold(`🔍 Reviewing ${prNumbers.length} PR(s)...`));
14
- console.log('');
15
- for (const prNumber of prNumbers) {
16
- await this.reviewPR(prNumber, workingDir);
32
+ try {
33
+ await this.claudeExecutor.validateClaudeCodeInstallation();
34
+ console.log(chalk.green('✅ Claude Code SDK configured'));
35
+ const workingDir = await this.repositoryManager.getValidWorkingDirectory();
36
+ const gitManager = createGitManager(workingDir);
37
+ gitManager.validateGitHubCliInstallation();
38
+ console.log(chalk.green('✅ GitHub CLI is installed'));
39
+ gitManager.validateGitHubCliAuthentication();
40
+ console.log(chalk.green('✅ GitHub CLI is authenticated'));
41
+ const repoInfo = this.repositoryManager.getRepositoryInfo(workingDir);
42
+ console.log(chalk.blue(`📂 Working in: ${repoInfo.name}`));
17
43
  console.log('');
44
+ const repository = await this.repositoryManager.getOrCreateRepository(workingDir);
45
+ const jobUuid = randomUUID();
46
+ const jobDescription = `PR Review - ${prNumbers.map((n) => `#${n}`).join(', ')} - ${new Date().toLocaleDateString()}`;
47
+ const db = this.dbManager.getKysely();
48
+ await db
49
+ .insertInto('jobs')
50
+ .values({
51
+ uuid: jobUuid,
52
+ description: jobDescription,
53
+ created_at: new Date().toISOString(),
54
+ directory: workingDir,
55
+ repository_id: repository.id
56
+ })
57
+ .execute();
58
+ console.log(chalk.blue.bold(`📝 Starting reviews for ${prNumbers.length} PR(s)...`));
59
+ console.log('');
60
+ for (const prNumber of prNumbers) {
61
+ await this.reviewPR(prNumber, jobUuid, repository.id, workingDir, gitManager);
62
+ }
63
+ console.log('');
64
+ console.log(chalk.green.bold('🎉 All reviews completed!'));
65
+ }
66
+ finally {
67
+ this.dbManager.close();
68
+ this.repositoryManager.close();
18
69
  }
19
- this.dbManager.close();
20
- console.log(chalk.green.bold('✅ All reviews completed!'));
21
- console.log(chalk.gray('Run "ivan web" to view reviews in the dashboard.'));
22
70
  }
23
- async reviewPR(prNumber, workingDir) {
24
- const db = this.dbManager.getKysely();
25
- const now = new Date().toISOString();
71
+ async reviewPR(prNumber, jobUuid, repositoryId, workingDir, gitManager) {
72
+ console.log(chalk.blue.bold(`🔍 Reviewing PR #${prNumber}...`));
26
73
  const reviewUuid = randomUUID();
27
- console.log(chalk.blue(`📋 Reviewing PR #${prNumber}...`));
28
- // Fetch PR metadata
29
- let prUrl = null;
74
+ const db = this.dbManager.getKysely();
30
75
  let prTitle = null;
31
- let repositoryId = null;
32
- try {
33
- const prJson = execSync(`gh pr view ${prNumber} --json number,title,url`, { cwd: workingDir, encoding: 'utf-8' });
34
- const pr = JSON.parse(prJson);
35
- prUrl = pr.url;
36
- prTitle = pr.title;
37
- console.log(chalk.gray(` Title: ${prTitle}`));
38
- console.log(chalk.gray(` URL: ${prUrl}`));
39
- }
40
- catch (error) {
41
- console.error(chalk.red(`❌ Failed to fetch PR #${prNumber} metadata:`), error);
42
- }
43
- // Look up repository_id from the DB
76
+ let prUrl = null;
77
+ let prBranch = null;
44
78
  try {
45
- const remoteUrl = execSync('git config --get remote.origin.url', {
46
- cwd: workingDir,
47
- encoding: 'utf-8'
48
- }).trim();
49
- const repo = await db
50
- .selectFrom('repositories')
51
- .select('id')
52
- .where('remote_url', '=', remoteUrl)
53
- .executeTakeFirst();
54
- if (repo)
55
- repositoryId = repo.id;
79
+ const prJson = execSync(`gh pr view ${prNumber} --json number,title,url,state,headRefName`, { cwd: workingDir, encoding: 'utf-8' });
80
+ const prInfo = JSON.parse(prJson);
81
+ if (prInfo.state !== 'OPEN') {
82
+ console.log(chalk.yellow(`⚠️ PR #${prNumber} is not open (status: ${prInfo.state}), skipping`));
83
+ return;
84
+ }
85
+ prTitle = prInfo.title;
86
+ prUrl = prInfo.url;
87
+ prBranch = prInfo.headRefName;
88
+ console.log(chalk.gray(` ${prTitle} (${prBranch})`));
56
89
  }
57
- catch {
58
- // Ignore repository may not be registered
90
+ catch (err) {
91
+ console.log(chalk.red(`❌ Could not fetch PR #${prNumber}: ${err}`));
92
+ return;
59
93
  }
60
- // Create the review record as 'running'
61
- await db
62
- .insertInto('reviews')
63
- .values({
94
+ const review = {
64
95
  uuid: reviewUuid,
96
+ job_uuid: jobUuid,
65
97
  pr_number: prNumber,
66
98
  pr_url: prUrl,
67
99
  pr_title: prTitle,
100
+ status: 'not_started',
101
+ review_log: null,
102
+ review_output: null,
68
103
  repository_id: repositoryId,
69
- status: 'running',
70
- review_content: null,
71
- execution_log: null,
72
- created_at: now,
73
- updated_at: now
74
- })
104
+ created_at: new Date().toISOString()
105
+ };
106
+ await db.insertInto('pr_reviews').values(review).execute();
107
+ await db
108
+ .updateTable('pr_reviews')
109
+ .set({ status: 'active' })
110
+ .where('uuid', '=', reviewUuid)
75
111
  .execute();
76
- // Build the review prompt using the PR diff
77
- let prDiff = '';
78
- let prFiles = '';
112
+ // Create a worktree for the PR branch so Claude can read the actual code
113
+ let worktreePath = null;
79
114
  try {
80
- prDiff = execSync(`gh pr diff ${prNumber}`, {
81
- cwd: workingDir,
82
- encoding: 'utf-8',
83
- maxBuffer: 10 * 1024 * 1024
84
- });
115
+ console.log(chalk.cyan(` Creating worktree for branch: ${prBranch}`));
116
+ worktreePath = await gitManager.createWorktree(prBranch ?? '');
117
+ gitManager.switchToWorktree(worktreePath);
85
118
  }
86
- catch (error) {
87
- console.warn(chalk.yellow(` ⚠️ Could not fetch diff for PR #${prNumber}`));
119
+ catch (err) {
120
+ console.log(chalk.red(`❌ Could not create worktree for PR #${prNumber}: ${err}`));
121
+ await db
122
+ .updateTable('pr_reviews')
123
+ .set({ status: 'failed', review_log: String(err) })
124
+ .where('uuid', '=', reviewUuid)
125
+ .execute();
126
+ return;
88
127
  }
89
128
  try {
90
- prFiles = execSync(`gh pr view ${prNumber} --json files --jq '.files[].path'`, { cwd: workingDir, encoding: 'utf-8' });
91
- }
92
- catch {
93
- // Ignore
94
- }
95
- const prompt = `You are a senior software engineer performing a thorough code review of PR #${prNumber}.
96
-
97
- ${prTitle ? `PR Title: ${prTitle}` : ''}
98
- ${prUrl ? `PR URL: ${prUrl}` : ''}
99
- ${prFiles ? `\nChanged files:\n${prFiles}` : ''}
129
+ const reviewPrompt = `Please review PR #${prNumber}: "${prTitle}" (${prUrl}).
100
130
 
101
- ${prDiff ? `\nDiff:\n\`\`\`diff\n${prDiff}\n\`\`\`` : 'No diff available review the PR branch directly.'}
131
+ You are currently checked out on the PR branch \`${prBranch}\`. Use your tools to read the code and understand what this PR changes. You can use git commands to see the diff against the base branch (e.g. \`git diff main...HEAD\` or \`git log --oneline main..HEAD\`).
102
132
 
103
- Please review this pull request and provide:
104
- 1. A brief summary of what the PR does
105
- 2. Potential bugs or logic errors
106
- 3. Security concerns (if any)
107
- 4. Code quality and maintainability issues
108
- 5. Suggestions for improvement
109
- 6. Overall verdict: Approve / Request Changes / Comment
133
+ Provide a thorough code review covering:
134
+ - What the PR does and whether the implementation is correct
135
+ - Any bugs, logic errors, or edge cases
136
+ - Security concerns
137
+ - Performance issues
138
+ - Adherence to codebase conventions and patterns
139
+ - Anything else worth calling out
110
140
 
111
- Format your review clearly with sections and be specific about file and line references where applicable.
112
- After completing your review, output the final review as plain text starting with the line: "## Code Review: PR #${prNumber}"`;
113
- try {
114
- const executor = ExecutorFactory.getExecutor();
115
- executor.quietMode = false;
116
- const { log, lastMessage } = await executor.executeTask(prompt, workingDir);
117
- // Extract the review content from the last message or log
118
- const reviewContent = this.extractReviewContent(lastMessage, log, prNumber);
141
+ Be specific and actionable. Reference file names and line numbers where relevant.`;
142
+ const result = await this.claudeExecutor.executeTurn(reviewPrompt, worktreePath, {
143
+ systemPrompt: REVIEW_SYSTEM_PROMPT,
144
+ readOnly: true,
145
+ permissionMode: 'plan'
146
+ });
119
147
  await db
120
- .updateTable('reviews')
148
+ .updateTable('pr_reviews')
121
149
  .set({
122
150
  status: 'completed',
123
- review_content: reviewContent,
124
- execution_log: log,
125
- updated_at: new Date().toISOString()
151
+ review_log: result.log,
152
+ review_output: result.lastMessage
126
153
  })
127
154
  .where('uuid', '=', reviewUuid)
128
155
  .execute();
129
- console.log(chalk.green(` ✅ Review for PR #${prNumber} completed.`));
156
+ console.log(chalk.green(`✅ Review completed for PR #${prNumber}`));
130
157
  }
131
- catch (error) {
132
- const errorMsg = error instanceof Error ? error.message : String(error);
158
+ catch (err) {
159
+ console.log(chalk.red(`❌ Review failed for PR #${prNumber}: ${err}`));
133
160
  await db
134
- .updateTable('reviews')
135
- .set({
136
- status: 'failed',
137
- execution_log: errorMsg,
138
- updated_at: new Date().toISOString()
139
- })
161
+ .updateTable('pr_reviews')
162
+ .set({ status: 'failed', review_log: String(err) })
140
163
  .where('uuid', '=', reviewUuid)
141
164
  .execute();
142
- console.error(chalk.red(` ❌ Review for PR #${prNumber} failed: ${errorMsg}`));
143
165
  }
144
- }
145
- extractReviewContent(lastMessage, log, prNumber) {
146
- const marker = `## Code Review: PR #${prNumber}`;
147
- // Try to find the structured review in the last message first
148
- const inLast = lastMessage.indexOf(marker);
149
- if (inLast !== -1)
150
- return lastMessage.slice(inLast);
151
- // Fall back to scanning the execution log
152
- const inLog = log.indexOf(marker);
153
- if (inLog !== -1)
154
- return log.slice(inLog);
155
- // If Claude didn't use the marker, return the last message as-is
156
- return lastMessage || log;
166
+ finally {
167
+ // Always clean up the worktree
168
+ if (worktreePath) {
169
+ try {
170
+ gitManager.switchToOriginalDir();
171
+ await gitManager.removeWorktree(prBranch ?? '');
172
+ }
173
+ catch (err) {
174
+ console.log(chalk.yellow(`⚠️ Could not clean up worktree: ${err}`));
175
+ }
176
+ }
177
+ }
157
178
  }
158
179
  }
159
180
  //# sourceMappingURL=review-executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-executor.js","sourceRoot":"","sources":["../../src/services/review-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-executor.js","sourceRoot":"","sources":["../../src/services/review-executor.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare class WebServer {
8
8
  private setupRoutes;
9
9
  private getJobs;
10
10
  private getJobTasks;
11
+ private getJobReviews;
11
12
  private getMainHTML;
12
13
  start(): Promise<void>;
13
14
  stop(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,GAAE,MAAa;IAQ/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;YAWL,OAAO;YAmBP,WAAW;IAgCzB,OAAO,CAAC,WAAW;IA0YZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC"}
1
+ {"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,GAAE,MAAa;IAQ/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;YAYL,OAAO;YAmBP,WAAW;YAgCX,aAAa;IAgC3B,OAAO,CAAC,WAAW;IAijBZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC"}