patchpilots 0.5.0 → 0.5.2
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 +57 -8
- package/action/format-comment.cjs +239 -0
- package/action/run.sh +76 -0
- package/action.yml +61 -0
- package/dist/src/core/orchestrator.d.ts +6 -0
- package/dist/src/core/orchestrator.js +65 -0
- package/dist/src/core/orchestrator.js.map +1 -1
- package/dist/src/utils/logger.js +5 -5
- package/dist/src/utils/logger.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -29,18 +29,28 @@ A team of AI agents that reviews and improves your code automatically.
|
|
|
29
29
|
|
|
30
30
|
Built for solo developers and hobby projects — when you don't have a team to review your PRs, PatchPilots is your crew.
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Use it 3 ways
|
|
33
33
|
|
|
34
|
+
### `npx` — no install, one-off
|
|
34
35
|
```bash
|
|
35
36
|
npx patchpilots audit ./src
|
|
36
37
|
```
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
### Global install — your machine, any project
|
|
40
40
|
```bash
|
|
41
41
|
npm install -g patchpilots
|
|
42
|
+
patchpilots audit ./src
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### GitHub Action — automatic on every PR
|
|
46
|
+
```yaml
|
|
47
|
+
- uses: alavesa/patchpilots@main
|
|
48
|
+
with:
|
|
49
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
42
50
|
```
|
|
43
51
|
|
|
52
|
+
All three use the same package. The CLI runs locally, the Action runs on GitHub's servers. Same agents, same output.
|
|
53
|
+
|
|
44
54
|
## The Killer Feature
|
|
45
55
|
|
|
46
56
|
**`patchpilots audit`** — run all 7 agents in one command. No other tool does this.
|
|
@@ -50,10 +60,10 @@ npx patchpilots audit ./src --write
|
|
|
50
60
|
```
|
|
51
61
|
|
|
52
62
|
```
|
|
53
|
-
🧠 Planner → 🔍 Reviewer → 🔒 Security → ✨ Coder → 🧪 Tester → 📝 Docs
|
|
63
|
+
⚡ TypeScript → 🧠 Planner → 🔍 Reviewer → 🔒 Security → ✨ Coder → 🧪 Tester → 📝 Docs
|
|
54
64
|
```
|
|
55
65
|
|
|
56
|
-
One command gives you:
|
|
66
|
+
One command gives you: TypeScript pre-check (free), implementation plan, code review, security audit, auto-fixes, unit tests, and documentation. Skip what you don't need:
|
|
57
67
|
|
|
58
68
|
```bash
|
|
59
69
|
npx patchpilots audit ./src --skip plan,docs --write
|
|
@@ -97,7 +107,9 @@ npx patchpilots plan ./src --task "add authentication"
|
|
|
97
107
|
|
|
98
108
|
### `patchpilots audit <path>`
|
|
99
109
|
|
|
100
|
-
Runs all agents in sequence: plan → review → security → improve → test → docs.
|
|
110
|
+
Runs all agents in sequence: **TypeScript pre-check** → plan → review → security → improve → test → docs.
|
|
111
|
+
|
|
112
|
+
Before any AI agent runs, PatchPilots executes `tsc --noEmit` to catch TypeScript errors instantly — unused imports, type mismatches, missing arguments. These findings are free (no API tokens) and get merged into the review results.
|
|
101
113
|
|
|
102
114
|
| Option | Description |
|
|
103
115
|
|--------|-------------|
|
|
@@ -112,7 +124,7 @@ Runs all agents in sequence: plan → review → security → improve → test
|
|
|
112
124
|
|
|
113
125
|
### `patchpilots review <path>`
|
|
114
126
|
|
|
115
|
-
|
|
127
|
+
Runs a TypeScript pre-check, then analyzes your code with AI. Findings grouped by file, color-coded by severity.
|
|
116
128
|
|
|
117
129
|
| Option | Description |
|
|
118
130
|
|--------|-------------|
|
|
@@ -260,6 +272,43 @@ Config resolution order: CLI flags > project `.patchpilots.json` > global `~/.pa
|
|
|
260
272
|
|
|
261
273
|
TypeScript, JavaScript, JSX/TSX, Python, Go, Rust, Java, Ruby, PHP, C/C++, C#, Swift, Kotlin, HTML, CSS, SCSS, Vue, Svelte.
|
|
262
274
|
|
|
275
|
+
## GitHub Action
|
|
276
|
+
|
|
277
|
+
Auto-review every PR with one workflow file:
|
|
278
|
+
|
|
279
|
+
```yaml
|
|
280
|
+
# .github/workflows/patchpilots.yml
|
|
281
|
+
name: PatchPilots Review
|
|
282
|
+
on:
|
|
283
|
+
pull_request:
|
|
284
|
+
types: [opened, synchronize]
|
|
285
|
+
|
|
286
|
+
permissions:
|
|
287
|
+
contents: read
|
|
288
|
+
pull-requests: write
|
|
289
|
+
|
|
290
|
+
jobs:
|
|
291
|
+
review:
|
|
292
|
+
runs-on: ubuntu-latest
|
|
293
|
+
steps:
|
|
294
|
+
- uses: actions/checkout@v4
|
|
295
|
+
- uses: alavesa/patchpilots@v1
|
|
296
|
+
with:
|
|
297
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
298
|
+
path: './src'
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
The action posts findings as a PR comment (updated on each push, no spam). Critical findings fail the check by default.
|
|
302
|
+
|
|
303
|
+
| Input | Default | Description |
|
|
304
|
+
|-------|---------|-------------|
|
|
305
|
+
| `anthropic_api_key` | (required) | Your Anthropic API key |
|
|
306
|
+
| `path` | `./src` | Path to review |
|
|
307
|
+
| `model` | `claude-sonnet-4-6` | Claude model to use |
|
|
308
|
+
| `skip` | | Agents to skip (e.g. `plan,test,docs`) |
|
|
309
|
+
| `severity` | `info` | Minimum severity to report |
|
|
310
|
+
| `fail_on_critical` | `true` | Fail the check on critical findings |
|
|
311
|
+
|
|
263
312
|
## Powered by Claude API
|
|
264
313
|
|
|
265
314
|
- **Structured outputs** — guaranteed schema compliance via JSON schema enforcement
|
|
@@ -298,7 +347,7 @@ Adding a new agent is one file + three methods.
|
|
|
298
347
|
- [x] 18 file types supported
|
|
299
348
|
|
|
300
349
|
### Next up
|
|
301
|
-
- [
|
|
350
|
+
- [x] **GitHub Action** — auto-review PRs and post findings as comments
|
|
302
351
|
- [ ] **Parallel file review** — review in batches instead of one giant prompt
|
|
303
352
|
- [ ] **Smart model routing** — Haiku for Docs/Tester, Sonnet for Reviewer/Coder
|
|
304
353
|
- [x] **Custom agents** — define your own agents via `.patchpilots.json`
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Converts PatchPilots AuditResult JSON into a GitHub markdown comment.
|
|
5
|
+
* Zero dependencies — runs on any Node.js 18+.
|
|
6
|
+
*
|
|
7
|
+
* Usage: node format-comment.js /path/to/result.json
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const fs = require("fs");
|
|
11
|
+
const path = require("path");
|
|
12
|
+
|
|
13
|
+
const MAX_FINDINGS = 50;
|
|
14
|
+
const MAX_PATCHES = 30;
|
|
15
|
+
|
|
16
|
+
const SEVERITY_EMOJI = {
|
|
17
|
+
critical: ":red_circle:",
|
|
18
|
+
high: ":orange_circle:",
|
|
19
|
+
warning: ":yellow_circle:",
|
|
20
|
+
medium: ":yellow_circle:",
|
|
21
|
+
info: ":blue_circle:",
|
|
22
|
+
low: ":blue_circle:",
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
function severityEmoji(severity) {
|
|
26
|
+
return SEVERITY_EMOJI[severity] || ":white_circle:";
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function escapeMarkdown(text) {
|
|
30
|
+
if (!text) return "";
|
|
31
|
+
return text.replace(/\|/g, "\\|").replace(/\n/g, " ");
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function truncate(text, max = 120) {
|
|
35
|
+
if (!text) return "";
|
|
36
|
+
const clean = text.replace(/\n/g, " ");
|
|
37
|
+
return clean.length > max ? clean.slice(0, max) + "..." : clean;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// --- Sections ---
|
|
41
|
+
|
|
42
|
+
function formatHeader(result) {
|
|
43
|
+
const lines = [];
|
|
44
|
+
lines.push("<!-- patchpilots-report -->");
|
|
45
|
+
lines.push("# PatchPilots Audit Report");
|
|
46
|
+
lines.push("");
|
|
47
|
+
lines.push(
|
|
48
|
+
`**Risk Score:** ${result.riskScore?.toUpperCase() || "N/A"} | ` +
|
|
49
|
+
`**Findings:** ${result.totalFindings || 0} | ` +
|
|
50
|
+
`**Patches:** ${result.totalPatches || 0}`
|
|
51
|
+
);
|
|
52
|
+
lines.push("");
|
|
53
|
+
return lines.join("\n");
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function formatPlan(plan) {
|
|
57
|
+
if (!plan || !plan.tasks || plan.tasks.length === 0) return "";
|
|
58
|
+
const lines = [];
|
|
59
|
+
lines.push("## :brain: Plan");
|
|
60
|
+
lines.push("");
|
|
61
|
+
if (plan.goal) {
|
|
62
|
+
lines.push(`> ${plan.goal}`);
|
|
63
|
+
lines.push("");
|
|
64
|
+
}
|
|
65
|
+
for (const task of plan.tasks) {
|
|
66
|
+
const complexity =
|
|
67
|
+
task.estimatedComplexity === "complex"
|
|
68
|
+
? ":red_circle:"
|
|
69
|
+
: task.estimatedComplexity === "moderate"
|
|
70
|
+
? ":yellow_circle:"
|
|
71
|
+
: ":green_circle:";
|
|
72
|
+
lines.push(
|
|
73
|
+
`${task.id}. ${complexity} **${task.title}** \\[${task.priority}\\]`
|
|
74
|
+
);
|
|
75
|
+
if (task.description) lines.push(` ${truncate(task.description, 200)}`);
|
|
76
|
+
}
|
|
77
|
+
lines.push("");
|
|
78
|
+
return lines.join("\n");
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function formatReview(review) {
|
|
82
|
+
if (!review || !review.findings || review.findings.length === 0) {
|
|
83
|
+
return "## :mag: Code Review\n\n:white_check_mark: No issues found.\n\n";
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const lines = [];
|
|
87
|
+
lines.push(`## :mag: Code Review (${review.findings.length} findings)`);
|
|
88
|
+
lines.push("");
|
|
89
|
+
lines.push("| Severity | File | Finding | Suggestion |");
|
|
90
|
+
lines.push("|----------|------|---------|------------|");
|
|
91
|
+
|
|
92
|
+
const shown = review.findings.slice(0, MAX_FINDINGS);
|
|
93
|
+
for (const f of shown) {
|
|
94
|
+
const loc = f.line ? `\`${f.file}:${f.line}\`` : `\`${f.file}\``;
|
|
95
|
+
lines.push(
|
|
96
|
+
`| ${severityEmoji(f.severity)} ${f.severity} | ${loc} | ${escapeMarkdown(f.title)} | ${escapeMarkdown(truncate(f.suggestion || f.description, 100))} |`
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (review.findings.length > MAX_FINDINGS) {
|
|
101
|
+
lines.push("");
|
|
102
|
+
lines.push(
|
|
103
|
+
`*... and ${review.findings.length - MAX_FINDINGS} more findings*`
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
lines.push("");
|
|
108
|
+
return lines.join("\n");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function formatSecurity(security) {
|
|
112
|
+
if (!security || !security.findings || security.findings.length === 0) {
|
|
113
|
+
return "## :lock: Security Audit\n\n:white_check_mark: No security issues found.\n\n";
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const lines = [];
|
|
117
|
+
lines.push(
|
|
118
|
+
`## :lock: Security Audit (${security.findings.length} findings)`
|
|
119
|
+
);
|
|
120
|
+
lines.push("");
|
|
121
|
+
lines.push("| Severity | File | Category | Finding | Remediation |");
|
|
122
|
+
lines.push("|----------|------|----------|---------|-------------|");
|
|
123
|
+
|
|
124
|
+
const shown = security.findings.slice(0, MAX_FINDINGS);
|
|
125
|
+
for (const f of shown) {
|
|
126
|
+
const loc = f.line ? `\`${f.file}:${f.line}\`` : `\`${f.file}\``;
|
|
127
|
+
const cat = f.cwe ? `${f.category} (${f.cwe})` : f.category;
|
|
128
|
+
lines.push(
|
|
129
|
+
`| ${severityEmoji(f.severity)} ${f.severity} | ${loc} | ${escapeMarkdown(cat)} | ${escapeMarkdown(f.title)} | ${escapeMarkdown(truncate(f.remediation, 100))} |`
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (security.findings.length > MAX_FINDINGS) {
|
|
134
|
+
lines.push("");
|
|
135
|
+
lines.push(
|
|
136
|
+
`*... and ${security.findings.length - MAX_FINDINGS} more findings*`
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
lines.push("");
|
|
141
|
+
return lines.join("\n");
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function formatPatches(coder) {
|
|
145
|
+
if (
|
|
146
|
+
!coder ||
|
|
147
|
+
!coder.improvedFiles ||
|
|
148
|
+
coder.improvedFiles.length === 0
|
|
149
|
+
) {
|
|
150
|
+
return "";
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const lines = [];
|
|
154
|
+
let totalPatches = 0;
|
|
155
|
+
for (const f of coder.improvedFiles) totalPatches += f.patches.length;
|
|
156
|
+
|
|
157
|
+
lines.push(`## :sparkles: Suggested Improvements (${totalPatches} patches)`);
|
|
158
|
+
lines.push("");
|
|
159
|
+
|
|
160
|
+
let patchCount = 0;
|
|
161
|
+
for (const file of coder.improvedFiles) {
|
|
162
|
+
if (patchCount >= MAX_PATCHES) {
|
|
163
|
+
lines.push(
|
|
164
|
+
`*... and more patches across remaining files*`
|
|
165
|
+
);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
lines.push(
|
|
170
|
+
`<details>\n<summary><strong>${file.path}</strong> (${file.patches.length} patches)</summary>\n`
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
for (const patch of file.patches) {
|
|
174
|
+
if (patchCount >= MAX_PATCHES) break;
|
|
175
|
+
lines.push(`**${escapeMarkdown(patch.description)}**`);
|
|
176
|
+
lines.push("```diff");
|
|
177
|
+
for (const line of patch.find.split("\n")) {
|
|
178
|
+
lines.push(`- ${line}`);
|
|
179
|
+
}
|
|
180
|
+
for (const line of patch.replace.split("\n")) {
|
|
181
|
+
lines.push(`+ ${line}`);
|
|
182
|
+
}
|
|
183
|
+
lines.push("```");
|
|
184
|
+
lines.push("");
|
|
185
|
+
patchCount++;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
lines.push("</details>\n");
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
lines.push("");
|
|
192
|
+
return lines.join("\n");
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
function formatTests(tests) {
|
|
196
|
+
if (!tests || !tests.testFiles || tests.testFiles.length === 0) return "";
|
|
197
|
+
const totalTests = tests.testFiles.reduce((s, f) => s + f.testCount, 0);
|
|
198
|
+
return `## :test_tube: Tests\n\n${totalTests} tests generated across ${tests.testFiles.length} file(s).\n\n`;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function formatDocs(docs) {
|
|
202
|
+
if (!docs || !docs.docs || docs.docs.length === 0) return "";
|
|
203
|
+
return `## :memo: Documentation\n\n${docs.docs.length} file(s) documented.\n\n`;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function formatFooter(result) {
|
|
207
|
+
const lines = [];
|
|
208
|
+
lines.push("---");
|
|
209
|
+
lines.push(
|
|
210
|
+
`<sub>Generated by <a href="https://github.com/alavesa/patchpilots">PatchPilots</a> ` +
|
|
211
|
+
`| ${result.totalFindings || 0} findings | ${result.totalPatches || 0} patches | risk: ${result.riskScore || "none"}</sub>`
|
|
212
|
+
);
|
|
213
|
+
return lines.join("\n");
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// --- Main ---
|
|
217
|
+
|
|
218
|
+
function formatComment(result) {
|
|
219
|
+
return [
|
|
220
|
+
formatHeader(result),
|
|
221
|
+
formatPlan(result.plan),
|
|
222
|
+
formatReview(result.review),
|
|
223
|
+
formatSecurity(result.security),
|
|
224
|
+
formatPatches(result.coder),
|
|
225
|
+
formatTests(result.tests),
|
|
226
|
+
formatDocs(result.docs),
|
|
227
|
+
formatFooter(result),
|
|
228
|
+
].join("");
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
const filePath = process.argv[2];
|
|
232
|
+
if (!filePath) {
|
|
233
|
+
console.error("Usage: node format-comment.js <result.json>");
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
const raw = fs.readFileSync(path.resolve(filePath), "utf-8");
|
|
238
|
+
const result = JSON.parse(raw);
|
|
239
|
+
process.stdout.write(formatComment(result));
|
package/action/run.sh
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Build CLI flags
|
|
5
|
+
FLAGS="--json --severity ${INPUT_SEVERITY}"
|
|
6
|
+
if [ -n "${INPUT_MODEL}" ]; then FLAGS="${FLAGS} --model ${INPUT_MODEL}"; fi
|
|
7
|
+
if [ -n "${INPUT_SKIP}" ]; then FLAGS="${FLAGS} --skip ${INPUT_SKIP}"; fi
|
|
8
|
+
|
|
9
|
+
echo "::group::Running PatchPilots audit"
|
|
10
|
+
echo "Path: ${INPUT_PATH}"
|
|
11
|
+
echo "Model: ${INPUT_MODEL}"
|
|
12
|
+
echo "Severity: ${INPUT_SEVERITY}"
|
|
13
|
+
echo "Skip: ${INPUT_SKIP:-none}"
|
|
14
|
+
|
|
15
|
+
# Run patchpilots audit — JSON goes to stdout, logs to stderr
|
|
16
|
+
# shellcheck disable=SC2086
|
|
17
|
+
RESULT=$(patchpilots audit "${INPUT_PATH}" ${FLAGS} 2>/dev/null) || true
|
|
18
|
+
|
|
19
|
+
echo "::endgroup::"
|
|
20
|
+
|
|
21
|
+
# If no output, warn and exit
|
|
22
|
+
if [ -z "${RESULT}" ] || ! echo "${RESULT}" | jq empty 2>/dev/null; then
|
|
23
|
+
echo "::warning::PatchPilots produced no valid JSON output"
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# Save raw JSON
|
|
28
|
+
echo "${RESULT}" > /tmp/patchpilots-result.json
|
|
29
|
+
|
|
30
|
+
# Format as markdown comment
|
|
31
|
+
COMMENT=$(node "${GITHUB_ACTION_PATH}/action/format-comment.cjs" /tmp/patchpilots-result.json)
|
|
32
|
+
|
|
33
|
+
# Post or update PR comment
|
|
34
|
+
PR_NUMBER=$(jq -r '.pull_request.number // empty' "${GITHUB_EVENT_PATH}" 2>/dev/null || echo "")
|
|
35
|
+
|
|
36
|
+
if [ -n "${PR_NUMBER}" ]; then
|
|
37
|
+
# Look for existing PatchPilots comment to update (avoid spam)
|
|
38
|
+
EXISTING=$(gh api "repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/comments" \
|
|
39
|
+
--jq '.[] | select(.body | startswith("<!-- patchpilots-report -->")) | .id' \
|
|
40
|
+
| head -1 || echo "")
|
|
41
|
+
|
|
42
|
+
if [ -n "${EXISTING}" ]; then
|
|
43
|
+
echo "Updating existing PatchPilots comment..."
|
|
44
|
+
gh api "repos/${GITHUB_REPOSITORY}/issues/comments/${EXISTING}" \
|
|
45
|
+
-X PATCH -f body="${COMMENT}"
|
|
46
|
+
else
|
|
47
|
+
echo "Posting PatchPilots comment..."
|
|
48
|
+
gh pr comment "${PR_NUMBER}" --body "${COMMENT}"
|
|
49
|
+
fi
|
|
50
|
+
else
|
|
51
|
+
echo "::warning::Not running in a PR context — printing results to log"
|
|
52
|
+
echo "${COMMENT}"
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
# Set outputs
|
|
56
|
+
TOTAL_FINDINGS=$(echo "${RESULT}" | jq -r '.totalFindings // 0')
|
|
57
|
+
TOTAL_PATCHES=$(echo "${RESULT}" | jq -r '.totalPatches // 0')
|
|
58
|
+
RISK_SCORE=$(echo "${RESULT}" | jq -r '.riskScore // "none"')
|
|
59
|
+
|
|
60
|
+
echo "total_findings=${TOTAL_FINDINGS}" >> "${GITHUB_OUTPUT}"
|
|
61
|
+
echo "total_patches=${TOTAL_PATCHES}" >> "${GITHUB_OUTPUT}"
|
|
62
|
+
echo "risk_score=${RISK_SCORE}" >> "${GITHUB_OUTPUT}"
|
|
63
|
+
|
|
64
|
+
# Fail on critical findings if configured
|
|
65
|
+
if [ "${INPUT_FAIL_ON_CRITICAL}" = "true" ]; then
|
|
66
|
+
REVIEW_CRITICAL=$(echo "${RESULT}" | jq '[(.review.findings // [])[] | select(.severity == "critical")] | length')
|
|
67
|
+
SECURITY_CRITICAL=$(echo "${RESULT}" | jq '[(.security.findings // [])[] | select(.severity == "critical")] | length')
|
|
68
|
+
TOTAL_CRITICAL=$((REVIEW_CRITICAL + SECURITY_CRITICAL))
|
|
69
|
+
|
|
70
|
+
if [ "${TOTAL_CRITICAL}" -gt 0 ]; then
|
|
71
|
+
echo "::error::PatchPilots found ${TOTAL_CRITICAL} critical finding(s)"
|
|
72
|
+
exit 1
|
|
73
|
+
fi
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
echo "PatchPilots audit complete: ${TOTAL_FINDINGS} findings, ${TOTAL_PATCHES} patches, risk=${RISK_SCORE}"
|
package/action.yml
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: 'PatchPilots Code Review'
|
|
2
|
+
description: 'AI-powered code review with 7 specialized agents — review, security, improve, test, docs in one command'
|
|
3
|
+
author: 'Piia Alavesa'
|
|
4
|
+
|
|
5
|
+
branding:
|
|
6
|
+
icon: 'shield'
|
|
7
|
+
color: 'blue'
|
|
8
|
+
|
|
9
|
+
inputs:
|
|
10
|
+
anthropic_api_key:
|
|
11
|
+
description: 'Anthropic API key'
|
|
12
|
+
required: true
|
|
13
|
+
path:
|
|
14
|
+
description: 'Path to review (relative to repo root)'
|
|
15
|
+
required: false
|
|
16
|
+
default: './src'
|
|
17
|
+
model:
|
|
18
|
+
description: 'Claude model to use'
|
|
19
|
+
required: false
|
|
20
|
+
default: 'claude-sonnet-4-6'
|
|
21
|
+
skip:
|
|
22
|
+
description: 'Agents to skip (comma-separated: plan,test,docs)'
|
|
23
|
+
required: false
|
|
24
|
+
default: ''
|
|
25
|
+
severity:
|
|
26
|
+
description: 'Minimum severity to report (critical, warning, info)'
|
|
27
|
+
required: false
|
|
28
|
+
default: 'info'
|
|
29
|
+
fail_on_critical:
|
|
30
|
+
description: 'Fail the check if critical findings exist'
|
|
31
|
+
required: false
|
|
32
|
+
default: 'true'
|
|
33
|
+
|
|
34
|
+
outputs:
|
|
35
|
+
total_findings:
|
|
36
|
+
description: 'Total number of findings'
|
|
37
|
+
total_patches:
|
|
38
|
+
description: 'Total number of suggested patches'
|
|
39
|
+
risk_score:
|
|
40
|
+
description: 'Overall risk score (critical, high, medium, low, none)'
|
|
41
|
+
|
|
42
|
+
runs:
|
|
43
|
+
using: 'composite'
|
|
44
|
+
steps:
|
|
45
|
+
- uses: actions/setup-node@v4
|
|
46
|
+
with:
|
|
47
|
+
node-version: '20'
|
|
48
|
+
- name: Install PatchPilots
|
|
49
|
+
run: npm install -g patchpilots
|
|
50
|
+
shell: bash
|
|
51
|
+
- name: Run audit and post results
|
|
52
|
+
run: bash ${{ github.action_path }}/action/run.sh
|
|
53
|
+
shell: bash
|
|
54
|
+
env:
|
|
55
|
+
ANTHROPIC_API_KEY: ${{ inputs.anthropic_api_key }}
|
|
56
|
+
INPUT_PATH: ${{ inputs.path }}
|
|
57
|
+
INPUT_MODEL: ${{ inputs.model }}
|
|
58
|
+
INPUT_SKIP: ${{ inputs.skip }}
|
|
59
|
+
INPUT_SEVERITY: ${{ inputs.severity }}
|
|
60
|
+
INPUT_FAIL_ON_CRITICAL: ${{ inputs.fail_on_critical }}
|
|
61
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
@@ -17,6 +17,12 @@ export declare class Orchestrator {
|
|
|
17
17
|
constructor(config: PatchPilotsConfig);
|
|
18
18
|
private printCost;
|
|
19
19
|
private createStreamCallback;
|
|
20
|
+
/**
|
|
21
|
+
* Run local static analysis (tsc --noEmit) before AI agents.
|
|
22
|
+
* Returns findings for any TypeScript errors found — these are
|
|
23
|
+
* free to detect and don't need AI.
|
|
24
|
+
*/
|
|
25
|
+
private runTypeScriptCheck;
|
|
20
26
|
review(targetPath: string, options?: OrchestratorOptions): Promise<ReviewResult>;
|
|
21
27
|
improve(targetPath: string, options?: OrchestratorOptions): Promise<{
|
|
22
28
|
review: ReviewResult;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, copyFileSync } from "node:fs";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
|
+
import { execSync } from "node:child_process";
|
|
3
4
|
import { LLMClient } from "./llm-client.js";
|
|
4
5
|
import { ReviewerAgent } from "../agents/reviewer.js";
|
|
5
6
|
import { CoderAgent } from "../agents/coder.js";
|
|
@@ -39,6 +40,42 @@ export class Orchestrator {
|
|
|
39
40
|
}
|
|
40
41
|
};
|
|
41
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Run local static analysis (tsc --noEmit) before AI agents.
|
|
45
|
+
* Returns findings for any TypeScript errors found — these are
|
|
46
|
+
* free to detect and don't need AI.
|
|
47
|
+
*/
|
|
48
|
+
runTypeScriptCheck(targetPath) {
|
|
49
|
+
const absPath = resolve(targetPath);
|
|
50
|
+
try {
|
|
51
|
+
execSync("npx tsc --noEmit 2>&1", { cwd: absPath, encoding: "utf-8", timeout: 30000 });
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const output = err.stdout ?? "";
|
|
56
|
+
if (!output.trim())
|
|
57
|
+
return [];
|
|
58
|
+
const findings = [];
|
|
59
|
+
const lines = output.split("\n").filter(l => l.includes("error TS"));
|
|
60
|
+
for (const line of lines) {
|
|
61
|
+
// Parse: src/file.tsx(10,5): error TS6133: 'X' is declared but its value is never read.
|
|
62
|
+
const match = line.match(/^(.+?)\((\d+),\d+\):\s*error\s+(TS\d+):\s*(.+)$/);
|
|
63
|
+
if (match) {
|
|
64
|
+
const [, file, lineNum, code, message] = match;
|
|
65
|
+
findings.push({
|
|
66
|
+
file,
|
|
67
|
+
line: parseInt(lineNum, 10),
|
|
68
|
+
severity: code === "TS2554" || code === "TS2345" ? "critical" : "warning",
|
|
69
|
+
category: "bug",
|
|
70
|
+
title: `TypeScript ${code}: ${message.slice(0, 80)}`,
|
|
71
|
+
description: message,
|
|
72
|
+
suggestion: code === "TS6133" ? "Remove the unused import" : "Fix the type error",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return findings;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
42
79
|
async review(targetPath, options = {}) {
|
|
43
80
|
log.step("Collecting files...");
|
|
44
81
|
const files = await collectFiles(targetPath, this.config);
|
|
@@ -51,6 +88,15 @@ export class Orchestrator {
|
|
|
51
88
|
for (const f of files)
|
|
52
89
|
log.verbose(` ${f.path}`);
|
|
53
90
|
}
|
|
91
|
+
// Pre-flight: run TypeScript compiler check (free, instant)
|
|
92
|
+
log.step("⚡ Running TypeScript pre-check...");
|
|
93
|
+
const tsFindings = this.runTypeScriptCheck(targetPath);
|
|
94
|
+
if (tsFindings.length > 0) {
|
|
95
|
+
log.warn(`Found ${tsFindings.length} TypeScript error(s) before AI review`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
log.info("TypeScript check passed");
|
|
99
|
+
}
|
|
54
100
|
// Load project memory
|
|
55
101
|
const memory = loadMemory(targetPath);
|
|
56
102
|
const memoryContext = buildMemoryContext(memory);
|
|
@@ -65,6 +111,11 @@ export class Orchestrator {
|
|
|
65
111
|
summary: results.map(r => r.summary).join(" "),
|
|
66
112
|
}), onToken);
|
|
67
113
|
const reviewResult = result.data;
|
|
114
|
+
// Merge TypeScript pre-check findings into review results
|
|
115
|
+
if (tsFindings.length > 0) {
|
|
116
|
+
reviewResult.findings = [...tsFindings, ...reviewResult.findings];
|
|
117
|
+
reviewResult.summary = `TypeScript: ${tsFindings.length} error(s). ${reviewResult.summary}`;
|
|
118
|
+
}
|
|
68
119
|
this.costTracker.track("Reviewer", result.tokensUsed);
|
|
69
120
|
if (options.verbose) {
|
|
70
121
|
console.error(""); // newline after dots
|
|
@@ -328,6 +379,15 @@ export class Orchestrator {
|
|
|
328
379
|
return securityResult;
|
|
329
380
|
}
|
|
330
381
|
async audit(targetPath, options = {}) {
|
|
382
|
+
// Pre-flight: TypeScript check
|
|
383
|
+
log.step("⚡ Running TypeScript pre-check...");
|
|
384
|
+
const tsFindings = this.runTypeScriptCheck(targetPath);
|
|
385
|
+
if (tsFindings.length > 0) {
|
|
386
|
+
log.warn(`Found ${tsFindings.length} TypeScript error(s) before AI audit`);
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
log.info("TypeScript check passed");
|
|
390
|
+
}
|
|
331
391
|
const skip = new Set(options.skip ?? []);
|
|
332
392
|
const files = await collectFiles(targetPath, this.config);
|
|
333
393
|
if (files.length === 0) {
|
|
@@ -360,6 +420,11 @@ export class Orchestrator {
|
|
|
360
420
|
const reviewer = new ReviewerAgent(this.llmClient);
|
|
361
421
|
const reviewRaw = await reviewer.executeBatched(context, (results) => ({ findings: results.flatMap(r => r.findings), summary: results.map(r => r.summary).join(" ") }), onToken);
|
|
362
422
|
const reviewResult = reviewRaw.data;
|
|
423
|
+
// Merge TypeScript pre-check findings into audit review results
|
|
424
|
+
if (tsFindings.length > 0) {
|
|
425
|
+
reviewResult.findings = [...tsFindings, ...reviewResult.findings];
|
|
426
|
+
reviewResult.summary = `TypeScript: ${tsFindings.length} error(s). ${reviewResult.summary}`;
|
|
427
|
+
}
|
|
363
428
|
this.costTracker.track("Reviewer", reviewRaw.tokensUsed);
|
|
364
429
|
if (options.verbose) {
|
|
365
430
|
console.error("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils/logger.js
CHANGED
|
@@ -5,24 +5,24 @@ export function setVerbose(enabled) {
|
|
|
5
5
|
}
|
|
6
6
|
export const log = {
|
|
7
7
|
info(message) {
|
|
8
|
-
console.
|
|
8
|
+
console.error(chalk.blue("ℹ"), message);
|
|
9
9
|
},
|
|
10
10
|
success(message) {
|
|
11
|
-
console.
|
|
11
|
+
console.error(chalk.green("✓"), message);
|
|
12
12
|
},
|
|
13
13
|
warn(message) {
|
|
14
|
-
console.
|
|
14
|
+
console.error(chalk.yellow("⚠"), message);
|
|
15
15
|
},
|
|
16
16
|
error(message) {
|
|
17
17
|
console.error(chalk.red("✗"), message);
|
|
18
18
|
},
|
|
19
19
|
verbose(message) {
|
|
20
20
|
if (verboseMode) {
|
|
21
|
-
console.
|
|
21
|
+
console.error(chalk.gray("→"), chalk.gray(message));
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
step(message) {
|
|
25
|
-
console.
|
|
25
|
+
console.error(chalk.cyan("●"), message);
|
|
26
26
|
},
|
|
27
27
|
};
|
|
28
28
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,WAAW,GAAG,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,WAAW,GAAG,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,OAAe;QACrB,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "patchpilots",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "A team of AI agents that reviews and improves your code automatically",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
"types": "./dist/src/index.d.ts",
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
|
+
"action",
|
|
14
|
+
"action.yml",
|
|
13
15
|
"README.md",
|
|
14
16
|
"LICENSE"
|
|
15
17
|
],
|