nayan-ai 1.0.0-beta.3 → 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.
- package/README.md +101 -14
- package/dist/cli.js +21 -157
- package/dist/cli.js.map +1 -1
- package/dist/common/claude.d.ts +6 -0
- package/dist/common/claude.js +180 -0
- package/dist/common/claude.js.map +1 -0
- package/dist/common/codex.d.ts +6 -0
- package/dist/common/codex.js +169 -0
- package/dist/common/codex.js.map +1 -0
- package/dist/common/github.d.ts +22 -0
- package/dist/common/github.js +153 -0
- package/dist/common/github.js.map +1 -0
- package/dist/common/logs.d.ts +15 -0
- package/dist/common/logs.js +154 -0
- package/dist/common/logs.js.map +1 -0
- package/dist/{types.d.ts → common/types.d.ts} +36 -1
- package/dist/common/types.js.map +1 -0
- package/dist/common/utils.d.ts +3 -0
- package/dist/common/utils.js +11 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/{analyzer.d.ts → review/analyzer.d.ts} +1 -1
- package/dist/review/analyzer.js.map +1 -0
- package/dist/review/command.d.ts +2 -0
- package/dist/review/command.js +111 -0
- package/dist/review/command.js.map +1 -0
- package/dist/review/prompt.js.map +1 -0
- package/dist/scan/command.d.ts +2 -0
- package/dist/scan/command.js +700 -0
- package/dist/scan/command.js.map +1 -0
- package/dist/scan/fixer.d.ts +30 -0
- package/dist/scan/fixer.js +264 -0
- package/dist/scan/fixer.js.map +1 -0
- package/dist/scan/prompt.d.ts +4 -0
- package/dist/scan/prompt.js +175 -0
- package/dist/scan/prompt.js.map +1 -0
- package/package.json +2 -2
- package/dist/analyzer.js.map +0 -1
- package/dist/claude.d.ts +0 -5
- package/dist/claude.js +0 -128
- package/dist/claude.js.map +0 -1
- package/dist/codex.d.ts +0 -5
- package/dist/codex.js +0 -129
- package/dist/codex.js.map +0 -1
- package/dist/github.d.ts +0 -15
- package/dist/github.js +0 -88
- package/dist/github.js.map +0 -1
- package/dist/logs.d.ts +0 -34
- package/dist/logs.js +0 -219
- package/dist/logs.js.map +0 -1
- package/dist/prompt.js.map +0 -1
- package/dist/repo.d.ts +0 -8
- package/dist/repo.js +0 -61
- package/dist/repo.js.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{types.js → common/types.js} +0 -0
- /package/dist/{analyzer.js → review/analyzer.js} +0 -0
- /package/dist/{prompt.d.ts → review/prompt.d.ts} +0 -0
- /package/dist/{prompt.js → review/prompt.js} +0 -0
package/dist/claude.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'child_process';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { getReviewPrompt } from './prompt.js';
|
|
4
|
-
export async function analyzeWithClaude(repoPath, baseBranch = 'origin/main', options) {
|
|
5
|
-
const response = await runClaudeExec(repoPath, baseBranch, options);
|
|
6
|
-
return parseClaudeResponse(response);
|
|
7
|
-
}
|
|
8
|
-
async function runClaudeExec(repoPath, baseBranch, options) {
|
|
9
|
-
const prompt = getReviewPrompt(baseBranch);
|
|
10
|
-
return new Promise((resolve, reject) => {
|
|
11
|
-
// Use claude with -p for print mode and --output-format json
|
|
12
|
-
const args = [
|
|
13
|
-
'-p',
|
|
14
|
-
'--output-format', 'json',
|
|
15
|
-
'--dangerously-skip-permissions',
|
|
16
|
-
prompt
|
|
17
|
-
];
|
|
18
|
-
if (options.verbose) {
|
|
19
|
-
console.log(`\n[Claude] Running: claude ${args.slice(0, 3).join(' ')} "<prompt>"`);
|
|
20
|
-
console.log(`[Claude] Working directory: ${repoPath}`);
|
|
21
|
-
}
|
|
22
|
-
const startTime = Date.now();
|
|
23
|
-
const child = spawn('claude', args, {
|
|
24
|
-
cwd: repoPath,
|
|
25
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
26
|
-
});
|
|
27
|
-
let stdout = '';
|
|
28
|
-
let stderr = '';
|
|
29
|
-
child.stdout.on('data', (data) => {
|
|
30
|
-
const chunk = data.toString();
|
|
31
|
-
stdout += chunk;
|
|
32
|
-
if (options.verbose) {
|
|
33
|
-
process.stdout.write(chunk);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
// Show progress dots
|
|
37
|
-
process.stdout.write(chalk.gray('.'));
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
child.stderr.on('data', (data) => {
|
|
41
|
-
const chunk = data.toString();
|
|
42
|
-
stderr += chunk;
|
|
43
|
-
if (options.verbose) {
|
|
44
|
-
process.stderr.write(chunk);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
child.on('close', (code) => {
|
|
48
|
-
const elapsed = Date.now() - startTime;
|
|
49
|
-
if (!options.verbose) {
|
|
50
|
-
console.log(); // New line after progress dots
|
|
51
|
-
}
|
|
52
|
-
console.log(`\n[Claude] Completed in ${(elapsed / 1000).toFixed(1)}s`);
|
|
53
|
-
if (code !== 0) {
|
|
54
|
-
const errorMsg = stderr || stdout || 'Unknown error';
|
|
55
|
-
reject(new Error(`Claude review failed (exit ${code}): ${errorMsg.slice(0, 500)}`));
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
resolve(stdout);
|
|
59
|
-
});
|
|
60
|
-
child.on('error', (err) => {
|
|
61
|
-
if (err.code === 'ENOENT') {
|
|
62
|
-
reject(new Error('claude CLI not found. Install Claude Code CLI first: https://code.claude.com'));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
reject(err);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
function parseClaudeResponse(response) {
|
|
70
|
-
// Claude with --output-format json outputs a JSON object with result field
|
|
71
|
-
let parseError = null;
|
|
72
|
-
try {
|
|
73
|
-
const parsed = JSON.parse(response);
|
|
74
|
-
// Claude JSON output has a 'result' field with the text response
|
|
75
|
-
const text = parsed.result || parsed.text || response;
|
|
76
|
-
// Try to extract JSON from the text
|
|
77
|
-
const jsonMatch = text.match(/\{\s*"issues"\s*:\s*\[[\s\S]*?\]\s*\}/);
|
|
78
|
-
if (jsonMatch) {
|
|
79
|
-
const issuesJson = JSON.parse(jsonMatch[0]);
|
|
80
|
-
if (issuesJson.issues && Array.isArray(issuesJson.issues)) {
|
|
81
|
-
return issuesJson.issues
|
|
82
|
-
.filter((item) => item.message)
|
|
83
|
-
.map((item) => ({
|
|
84
|
-
filename: item.filename || 'unknown',
|
|
85
|
-
line: item.line || 0,
|
|
86
|
-
category: item.category || 'functionality',
|
|
87
|
-
severity: item.severity || 'info',
|
|
88
|
-
message: item.message,
|
|
89
|
-
suggestion: item.suggestion,
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
parseError = err;
|
|
96
|
-
}
|
|
97
|
-
// Fallback: try to find raw JSON in the response
|
|
98
|
-
const jsonMatch = response.match(/\{\s*"issues"\s*:\s*\[[\s\S]*?\]\s*\}/);
|
|
99
|
-
if (jsonMatch) {
|
|
100
|
-
try {
|
|
101
|
-
const parsed = JSON.parse(jsonMatch[0]);
|
|
102
|
-
return (parsed.issues || [])
|
|
103
|
-
.filter((item) => item.message)
|
|
104
|
-
.map((item) => ({
|
|
105
|
-
filename: item.filename || 'unknown',
|
|
106
|
-
line: item.line || 0,
|
|
107
|
-
category: item.category || 'functionality',
|
|
108
|
-
severity: item.severity || 'info',
|
|
109
|
-
message: item.message,
|
|
110
|
-
suggestion: item.suggestion,
|
|
111
|
-
}));
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
parseError = err;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
// If we couldn't parse any issues and there was an error, log it
|
|
118
|
-
if (parseError) {
|
|
119
|
-
console.warn(chalk.yellow(`\n⚠ Warning: Failed to parse Claude response: ${parseError.message}`));
|
|
120
|
-
console.warn(chalk.gray(` Response preview: ${response.slice(0, 200)}...`));
|
|
121
|
-
}
|
|
122
|
-
else if (response.trim() && !response.includes('"issues"')) {
|
|
123
|
-
console.warn(chalk.yellow(`\n⚠ Warning: Claude response does not contain expected issues format`));
|
|
124
|
-
console.warn(chalk.gray(` Response preview: ${response.slice(0, 200)}...`));
|
|
125
|
-
}
|
|
126
|
-
return [];
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=claude.js.map
|
package/dist/claude.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/codex.d.ts
DELETED
package/dist/codex.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'child_process';
|
|
2
|
-
import { logProcessor } from './logs.js';
|
|
3
|
-
import { getReviewPrompt } from './prompt.js';
|
|
4
|
-
export async function analyzeWithCodex(repoPath, baseBranch = 'origin/main', options) {
|
|
5
|
-
const response = await runCodexExec(repoPath, baseBranch, options);
|
|
6
|
-
return parseCodexResponse(response);
|
|
7
|
-
}
|
|
8
|
-
async function runCodexExec(repoPath, baseBranch, options) {
|
|
9
|
-
const prompt = getReviewPrompt(baseBranch);
|
|
10
|
-
return new Promise((resolve, reject) => {
|
|
11
|
-
// Use codex exec with --json for structured output
|
|
12
|
-
const args = ['@openai/codex', 'exec', '--json', '--full-auto', prompt];
|
|
13
|
-
if (options.verbose) {
|
|
14
|
-
console.log(`\n[Codex] Running: npx ${args.join(' ')}`);
|
|
15
|
-
console.log(`[Codex] Working directory: ${repoPath}`);
|
|
16
|
-
}
|
|
17
|
-
const startTime = Date.now();
|
|
18
|
-
const child = spawn('npx', args, {
|
|
19
|
-
cwd: repoPath,
|
|
20
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
21
|
-
});
|
|
22
|
-
let stdout = '';
|
|
23
|
-
let stderr = '';
|
|
24
|
-
// Reset log processor for new analysis
|
|
25
|
-
logProcessor.reset();
|
|
26
|
-
child.stdout.on('data', (data) => {
|
|
27
|
-
const chunk = data.toString();
|
|
28
|
-
stdout += chunk;
|
|
29
|
-
// Parse JSONL and show progress
|
|
30
|
-
for (const line of chunk.split('\n')) {
|
|
31
|
-
if (!line.trim())
|
|
32
|
-
continue;
|
|
33
|
-
try {
|
|
34
|
-
const event = JSON.parse(line);
|
|
35
|
-
if (options.verbose) {
|
|
36
|
-
console.log(JSON.stringify(event, null, 2));
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
// Use log processor for nice interactive output
|
|
40
|
-
logProcessor.processEvent(event);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// Not JSON
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
child.stderr.on('data', (data) => {
|
|
49
|
-
const chunk = data.toString();
|
|
50
|
-
stderr += chunk;
|
|
51
|
-
if (options.verbose) {
|
|
52
|
-
process.stderr.write(chunk);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
child.on('close', (code) => {
|
|
56
|
-
const elapsed = Date.now() - startTime;
|
|
57
|
-
console.log(`\n[Codex] Completed in ${(elapsed / 1000).toFixed(1)}s`);
|
|
58
|
-
if (code !== 0) {
|
|
59
|
-
const errorMsg = stderr || stdout || 'Unknown error';
|
|
60
|
-
reject(new Error(`Codex review failed (exit ${code}): ${errorMsg.slice(0, 500)}`));
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
resolve(stdout);
|
|
64
|
-
});
|
|
65
|
-
child.on('error', (err) => {
|
|
66
|
-
if (err.code === 'ENOENT') {
|
|
67
|
-
reject(new Error('npx not found. Install Node.js/npm (Node 18+) to run nayan-ai.'));
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
reject(err);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
function parseCodexResponse(response) {
|
|
75
|
-
// codex exec --json outputs JSONL - parse each line looking for agent_message with issues
|
|
76
|
-
const lines = response.split('\n');
|
|
77
|
-
for (const line of lines) {
|
|
78
|
-
if (!line.trim())
|
|
79
|
-
continue;
|
|
80
|
-
try {
|
|
81
|
-
const event = JSON.parse(line);
|
|
82
|
-
// Look for agent_message in item.completed events
|
|
83
|
-
if (event.type === 'item.completed' && event.item?.type === 'agent_message') {
|
|
84
|
-
const text = event.item.text;
|
|
85
|
-
if (text) {
|
|
86
|
-
// Parse the JSON from the agent's message
|
|
87
|
-
const issuesJson = JSON.parse(text);
|
|
88
|
-
if (issuesJson.issues && Array.isArray(issuesJson.issues)) {
|
|
89
|
-
return issuesJson.issues
|
|
90
|
-
.filter((item) => item.message)
|
|
91
|
-
.map((item) => ({
|
|
92
|
-
filename: item.filename || 'unknown',
|
|
93
|
-
line: item.line || 0,
|
|
94
|
-
category: item.category || 'functionality',
|
|
95
|
-
severity: item.severity || 'info',
|
|
96
|
-
message: item.message,
|
|
97
|
-
suggestion: item.suggestion,
|
|
98
|
-
}));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
// Not valid JSON, skip
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Fallback: try to find raw JSON in the response
|
|
108
|
-
const jsonMatch = response.match(/\{\s*"issues"\s*:\s*\[[\s\S]*?\]\s*\}/);
|
|
109
|
-
if (jsonMatch) {
|
|
110
|
-
try {
|
|
111
|
-
const parsed = JSON.parse(jsonMatch[0]);
|
|
112
|
-
return (parsed.issues || [])
|
|
113
|
-
.filter((item) => item.message)
|
|
114
|
-
.map((item) => ({
|
|
115
|
-
filename: item.filename || 'unknown',
|
|
116
|
-
line: item.line || 0,
|
|
117
|
-
category: item.category || 'functionality',
|
|
118
|
-
severity: item.severity || 'info',
|
|
119
|
-
message: item.message,
|
|
120
|
-
suggestion: item.suggestion,
|
|
121
|
-
}));
|
|
122
|
-
}
|
|
123
|
-
catch {
|
|
124
|
-
// ignore
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return [];
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=codex.js.map
|
package/dist/codex.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
|
package/dist/github.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PRInfo, PullRequest, PullRequestFile, FileChange, ReviewComment } from './types.js';
|
|
2
|
-
export declare class GitHubClient {
|
|
3
|
-
private token;
|
|
4
|
-
private apiBase;
|
|
5
|
-
constructor(token: string, githubUrl?: string);
|
|
6
|
-
private fetch;
|
|
7
|
-
getPullRequest(pr: PRInfo): Promise<PullRequest>;
|
|
8
|
-
getPullRequestFiles(pr: PRInfo): Promise<PullRequestFile[]>;
|
|
9
|
-
postReview(pr: PRInfo, commitId: string, body: string, comments: ReviewComment[]): Promise<void>;
|
|
10
|
-
postComment(pr: PRInfo, body: string): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
export declare function parseFiles(files: PullRequestFile[]): FileChange[];
|
|
13
|
-
export declare function parsePRReference(input: string): PRInfo & {
|
|
14
|
-
githubUrl?: string;
|
|
15
|
-
};
|
package/dist/github.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
export class GitHubClient {
|
|
2
|
-
token;
|
|
3
|
-
apiBase;
|
|
4
|
-
constructor(token, githubUrl) {
|
|
5
|
-
this.token = token;
|
|
6
|
-
this.apiBase = githubUrl
|
|
7
|
-
? `${githubUrl.replace(/\/$/, '')}/api/v3`
|
|
8
|
-
: 'https://api.github.com';
|
|
9
|
-
}
|
|
10
|
-
async fetch(endpoint, options = {}) {
|
|
11
|
-
const url = `${this.apiBase}${endpoint}`;
|
|
12
|
-
const response = await fetch(url, {
|
|
13
|
-
...options,
|
|
14
|
-
headers: {
|
|
15
|
-
'Accept': 'application/vnd.github.v3+json',
|
|
16
|
-
'Authorization': `Bearer ${this.token}`,
|
|
17
|
-
'User-Agent': 'nayan-ai',
|
|
18
|
-
...options.headers,
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
if (!response.ok) {
|
|
22
|
-
const body = await response.text();
|
|
23
|
-
throw new Error(`GitHub API error (${response.status}): ${body}`);
|
|
24
|
-
}
|
|
25
|
-
return response.json();
|
|
26
|
-
}
|
|
27
|
-
async getPullRequest(pr) {
|
|
28
|
-
return this.fetch(`/repos/${pr.owner}/${pr.repo}/pulls/${pr.number}`);
|
|
29
|
-
}
|
|
30
|
-
async getPullRequestFiles(pr) {
|
|
31
|
-
return this.fetch(`/repos/${pr.owner}/${pr.repo}/pulls/${pr.number}/files?per_page=100`);
|
|
32
|
-
}
|
|
33
|
-
async postReview(pr, commitId, body, comments) {
|
|
34
|
-
await this.fetch(`/repos/${pr.owner}/${pr.repo}/pulls/${pr.number}/reviews`, {
|
|
35
|
-
method: 'POST',
|
|
36
|
-
headers: { 'Content-Type': 'application/json' },
|
|
37
|
-
body: JSON.stringify({
|
|
38
|
-
commit_id: commitId,
|
|
39
|
-
body,
|
|
40
|
-
event: 'COMMENT',
|
|
41
|
-
comments,
|
|
42
|
-
}),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
async postComment(pr, body) {
|
|
46
|
-
await this.fetch(`/repos/${pr.owner}/${pr.repo}/issues/${pr.number}/comments`, {
|
|
47
|
-
method: 'POST',
|
|
48
|
-
headers: { 'Content-Type': 'application/json' },
|
|
49
|
-
body: JSON.stringify({ body }),
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
export function parseFiles(files) {
|
|
54
|
-
return files
|
|
55
|
-
.filter((f) => !!f.patch)
|
|
56
|
-
.map((f) => ({
|
|
57
|
-
filename: f.filename,
|
|
58
|
-
patch: f.patch,
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
export function parsePRReference(input) {
|
|
62
|
-
// Full URL: https://github.com/owner/repo/pull/123 or https://enterprise.example.com/owner/repo/pull/123
|
|
63
|
-
const urlMatch = input.match(/^(https?:\/\/[^/]+)\/([^/]+)\/([^/]+)\/pull\/(\d+)/);
|
|
64
|
-
if (urlMatch) {
|
|
65
|
-
const baseUrl = urlMatch[1];
|
|
66
|
-
// Only github.com (exactly) is public GitHub, everything else is enterprise
|
|
67
|
-
const isEnterprise = !baseUrl.match(/^https?:\/\/(www\.)?github\.com$/i);
|
|
68
|
-
return {
|
|
69
|
-
owner: urlMatch[2],
|
|
70
|
-
repo: urlMatch[3],
|
|
71
|
-
number: parseInt(urlMatch[4], 10),
|
|
72
|
-
githubUrl: isEnterprise ? baseUrl : undefined,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
// Short reference: owner/repo#123
|
|
76
|
-
const shortMatch = input.match(/^([^/]+)\/([^#]+)#(\d+)$/);
|
|
77
|
-
if (shortMatch) {
|
|
78
|
-
return {
|
|
79
|
-
owner: shortMatch[1],
|
|
80
|
-
repo: shortMatch[2],
|
|
81
|
-
number: parseInt(shortMatch[3], 10),
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
throw new Error('Invalid PR reference. Use:\n' +
|
|
85
|
-
' - https://github.com/owner/repo/pull/123\n' +
|
|
86
|
-
' - owner/repo#123');
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=github.js.map
|
package/dist/github.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
package/dist/logs.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export interface CodexEvent {
|
|
2
|
-
type: string;
|
|
3
|
-
item?: {
|
|
4
|
-
id?: string;
|
|
5
|
-
type?: string;
|
|
6
|
-
text?: string;
|
|
7
|
-
command?: string;
|
|
8
|
-
aggregated_output?: string;
|
|
9
|
-
exit_code?: number | null;
|
|
10
|
-
status?: string;
|
|
11
|
-
};
|
|
12
|
-
thread_id?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare class LogProcessor {
|
|
15
|
-
private seenFiles;
|
|
16
|
-
private currentPhase;
|
|
17
|
-
private currentSpinner;
|
|
18
|
-
private fileCount;
|
|
19
|
-
private analyzedCount;
|
|
20
|
-
processEvent(event: CodexEvent): void;
|
|
21
|
-
private startSpinner;
|
|
22
|
-
private succeedSpinner;
|
|
23
|
-
private stopSpinner;
|
|
24
|
-
private logAndSpin;
|
|
25
|
-
private handleItemStarted;
|
|
26
|
-
private handleItemCompleted;
|
|
27
|
-
private handleReasoning;
|
|
28
|
-
private wrapText;
|
|
29
|
-
private handleCommandCompleted;
|
|
30
|
-
private extractFilePath;
|
|
31
|
-
private setPhase;
|
|
32
|
-
reset(): void;
|
|
33
|
-
}
|
|
34
|
-
export declare const logProcessor: LogProcessor;
|
package/dist/logs.js
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import ora from 'ora';
|
|
3
|
-
export class LogProcessor {
|
|
4
|
-
seenFiles = new Set();
|
|
5
|
-
currentPhase = '';
|
|
6
|
-
currentSpinner = null;
|
|
7
|
-
fileCount = 0;
|
|
8
|
-
analyzedCount = 0;
|
|
9
|
-
processEvent(event) {
|
|
10
|
-
switch (event.type) {
|
|
11
|
-
case 'thread.started':
|
|
12
|
-
this.startSpinner('Starting analysis...');
|
|
13
|
-
break;
|
|
14
|
-
case 'turn.started':
|
|
15
|
-
// Silent - just marks the start of a turn
|
|
16
|
-
break;
|
|
17
|
-
case 'item.completed':
|
|
18
|
-
this.handleItemCompleted(event);
|
|
19
|
-
break;
|
|
20
|
-
case 'item.started':
|
|
21
|
-
this.handleItemStarted(event);
|
|
22
|
-
break;
|
|
23
|
-
case 'turn.completed':
|
|
24
|
-
// Analysis complete - handled elsewhere
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
startSpinner(text) {
|
|
29
|
-
this.stopSpinner();
|
|
30
|
-
this.currentSpinner = ora({
|
|
31
|
-
text: chalk.cyan(text),
|
|
32
|
-
prefixText: ' ',
|
|
33
|
-
spinner: 'dots'
|
|
34
|
-
}).start();
|
|
35
|
-
}
|
|
36
|
-
succeedSpinner(text) {
|
|
37
|
-
if (this.currentSpinner) {
|
|
38
|
-
this.currentSpinner.succeed(text ? chalk.green(text) : undefined);
|
|
39
|
-
this.currentSpinner = null;
|
|
40
|
-
}
|
|
41
|
-
else if (text) {
|
|
42
|
-
console.log(chalk.green(` ✔ ${text}`));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
stopSpinner() {
|
|
46
|
-
if (this.currentSpinner) {
|
|
47
|
-
this.currentSpinner.stop();
|
|
48
|
-
this.currentSpinner = null;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
logAndSpin(text) {
|
|
52
|
-
// First, succeed the current spinner to print it
|
|
53
|
-
if (this.currentSpinner) {
|
|
54
|
-
this.currentSpinner.succeed();
|
|
55
|
-
}
|
|
56
|
-
// Then start a new spinner with the new text
|
|
57
|
-
this.currentSpinner = ora({
|
|
58
|
-
text: chalk.cyan(text),
|
|
59
|
-
prefixText: ' ',
|
|
60
|
-
spinner: 'dots'
|
|
61
|
-
}).start();
|
|
62
|
-
}
|
|
63
|
-
handleItemStarted(event) {
|
|
64
|
-
const item = event.item;
|
|
65
|
-
if (!item)
|
|
66
|
-
return;
|
|
67
|
-
if (item.type === 'command_execution' && item.command) {
|
|
68
|
-
const cmd = item.command;
|
|
69
|
-
// Git diff command
|
|
70
|
-
if (cmd.includes('git diff')) {
|
|
71
|
-
this.setPhase('diff');
|
|
72
|
-
this.logAndSpin('Checking differences...');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
handleItemCompleted(event) {
|
|
77
|
-
const item = event.item;
|
|
78
|
-
if (!item)
|
|
79
|
-
return;
|
|
80
|
-
if (item.type === 'reasoning' && item.text) {
|
|
81
|
-
this.handleReasoning(item.text);
|
|
82
|
-
}
|
|
83
|
-
else if (item.type === 'command_execution') {
|
|
84
|
-
this.handleCommandCompleted(item);
|
|
85
|
-
}
|
|
86
|
-
else if (item.type === 'agent_message') {
|
|
87
|
-
this.succeedSpinner('Analysis complete');
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
handleReasoning(text) {
|
|
91
|
-
// Clean up the reasoning text - remove ** markers
|
|
92
|
-
const cleanText = text.replace(/\*\*/g, '').trim();
|
|
93
|
-
if (!cleanText)
|
|
94
|
-
return;
|
|
95
|
-
// Split into title (first line/sentence) and details
|
|
96
|
-
const lines = cleanText.split('\n').filter(Boolean);
|
|
97
|
-
// Check if it's a short title or has additional content
|
|
98
|
-
if (lines.length === 1 && cleanText.length < 80) {
|
|
99
|
-
// Short reasoning - just show as spinner
|
|
100
|
-
this.logAndSpin(`💭 ${cleanText}`);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
// Long reasoning - extract title and show details as bullet points
|
|
104
|
-
let title = lines[0];
|
|
105
|
-
let details = '';
|
|
106
|
-
// If single line but long, split at first semicolon or period after 40 chars
|
|
107
|
-
if (lines.length === 1) {
|
|
108
|
-
const splitMatch = cleanText.match(/^(.{30,80}?[;.])\s*(.+)$/);
|
|
109
|
-
if (splitMatch) {
|
|
110
|
-
title = splitMatch[1];
|
|
111
|
-
details = splitMatch[2];
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
details = lines.slice(1).join(' ');
|
|
116
|
-
}
|
|
117
|
-
// Show title with spinner
|
|
118
|
-
this.logAndSpin(`💭 ${title}`);
|
|
119
|
-
// If there are details, print them as indented bullet points
|
|
120
|
-
if (details) {
|
|
121
|
-
// Succeed current spinner first
|
|
122
|
-
if (this.currentSpinner) {
|
|
123
|
-
this.currentSpinner.succeed();
|
|
124
|
-
this.currentSpinner = null;
|
|
125
|
-
}
|
|
126
|
-
// Print details indented
|
|
127
|
-
const detailLines = this.wrapText(details, 70);
|
|
128
|
-
detailLines.forEach(line => {
|
|
129
|
-
console.log(chalk.dim(` ${line}`));
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
wrapText(text, maxWidth) {
|
|
135
|
-
const words = text.split(' ');
|
|
136
|
-
const lines = [];
|
|
137
|
-
let currentLine = '';
|
|
138
|
-
for (const word of words) {
|
|
139
|
-
if (currentLine.length + word.length + 1 <= maxWidth) {
|
|
140
|
-
currentLine += (currentLine ? ' ' : '') + word;
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
if (currentLine)
|
|
144
|
-
lines.push(currentLine);
|
|
145
|
-
currentLine = word;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (currentLine)
|
|
149
|
-
lines.push(currentLine);
|
|
150
|
-
return lines;
|
|
151
|
-
}
|
|
152
|
-
handleCommandCompleted(item) {
|
|
153
|
-
if (!item)
|
|
154
|
-
return;
|
|
155
|
-
const cmd = item.command || '';
|
|
156
|
-
const output = item.aggregated_output || '';
|
|
157
|
-
// Git diff completed - show changed files count
|
|
158
|
-
if (cmd.includes('git diff') && output) {
|
|
159
|
-
const diffFiles = output.match(/diff --git a\/([^\s]+)/g);
|
|
160
|
-
if (diffFiles && diffFiles.length > 0) {
|
|
161
|
-
this.fileCount = diffFiles.length;
|
|
162
|
-
this.succeedSpinner(`Found ${diffFiles.length} changed files`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// File listing with rg --files
|
|
166
|
-
if (cmd.includes('rg --files') && output) {
|
|
167
|
-
const files = output.trim().split('\n').filter(Boolean);
|
|
168
|
-
if (files.length > 0) {
|
|
169
|
-
this.succeedSpinner(`Identified ${files.length} files to analyze`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
// File reading commands - extract and show file path
|
|
173
|
-
const fileMatch = this.extractFilePath(cmd);
|
|
174
|
-
if (fileMatch && !this.seenFiles.has(fileMatch)) {
|
|
175
|
-
this.seenFiles.add(fileMatch);
|
|
176
|
-
this.analyzedCount++;
|
|
177
|
-
this.logAndSpin(`📄 Analyzing ${fileMatch}`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
extractFilePath(cmd) {
|
|
181
|
-
// Skip git commands - they're not file reads
|
|
182
|
-
if (cmd.includes('git '))
|
|
183
|
-
return null;
|
|
184
|
-
// Match patterns like:
|
|
185
|
-
// sed -n '1,260p' path/to/file.tsx
|
|
186
|
-
// nl -ba path/to/file.ts
|
|
187
|
-
// cat path/to/file.ts
|
|
188
|
-
const patterns = [
|
|
189
|
-
/sed\s+-n\s+'[^']+'\s+([^\s|]+\.[a-z]{1,4})/i,
|
|
190
|
-
/nl\s+-ba\s+([^\s|]+\.[a-z]{1,4})/i,
|
|
191
|
-
/cat\s+([^\s|]+\.[a-z]{1,4})/i,
|
|
192
|
-
];
|
|
193
|
-
for (const pattern of patterns) {
|
|
194
|
-
const match = cmd.match(pattern);
|
|
195
|
-
if (match && match[1]) {
|
|
196
|
-
// Skip if it's a glob pattern or doesn't look like a real file
|
|
197
|
-
if (match[1].includes('*'))
|
|
198
|
-
continue;
|
|
199
|
-
// Must have a proper file extension (1-4 chars)
|
|
200
|
-
if (!/\.[a-z]{1,4}$/i.test(match[1]))
|
|
201
|
-
continue;
|
|
202
|
-
return match[1];
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
setPhase(phase) {
|
|
208
|
-
this.currentPhase = phase;
|
|
209
|
-
}
|
|
210
|
-
reset() {
|
|
211
|
-
this.stopSpinner();
|
|
212
|
-
this.seenFiles.clear();
|
|
213
|
-
this.currentPhase = '';
|
|
214
|
-
this.fileCount = 0;
|
|
215
|
-
this.analyzedCount = 0;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
export const logProcessor = new LogProcessor();
|
|
219
|
-
//# sourceMappingURL=logs.js.map
|
package/dist/logs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO;;wBAEe,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAwE2B,CAAC;AAC9D,CAAC"}
|