greenbump 0.7.0 → 0.9.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.
- package/README.md +73 -15
- package/README.zh-CN.md +37 -4
- package/dist/action/github.test.js +37 -0
- package/dist/action/github.test.js.map +1 -0
- package/dist/action/main.js +19 -4
- package/dist/action/main.js.map +1 -1
- package/dist/agent/calllog.js +23 -0
- package/dist/agent/calllog.js.map +1 -0
- package/dist/agent/calllog.test.js +77 -0
- package/dist/agent/calllog.test.js.map +1 -0
- package/dist/agent/fixer.js +246 -29
- package/dist/agent/fixer.js.map +1 -1
- package/dist/agent/fixer.test.js +299 -0
- package/dist/agent/fixer.test.js.map +1 -1
- package/dist/agent/guard.js +37 -0
- package/dist/agent/guard.js.map +1 -0
- package/dist/agent/guard.test.js +48 -0
- package/dist/agent/guard.test.js.map +1 -0
- package/dist/agent/provider-anthropic.js +2 -2
- package/dist/agent/provider-anthropic.js.map +1 -1
- package/dist/agent/provider-openai.js +2 -2
- package/dist/agent/provider-openai.js.map +1 -1
- package/dist/benchmarks/run.js +0 -0
- package/dist/benchmarks/run.js.map +1 -0
- package/dist/cli/interactive.js +46 -11
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli.js +37 -7
- package/dist/cli.js.map +1 -1
- package/dist/engine/analyzers/changelog-parser.js +51 -2
- package/dist/engine/analyzers/changelog-parser.js.map +1 -1
- package/dist/engine/batch.js +54 -10
- package/dist/engine/batch.js.map +1 -1
- package/dist/engine/cache/manager.js +19 -1
- package/dist/engine/cache/manager.js.map +1 -1
- package/dist/engine/cache/manager.test.js +17 -0
- package/dist/engine/cache/manager.test.js.map +1 -1
- package/dist/engine/change-detector.js +52 -23
- package/dist/engine/change-detector.js.map +1 -1
- package/dist/engine/change-detector.test.js +72 -0
- package/dist/engine/change-detector.test.js.map +1 -0
- package/dist/engine/changelog.js +22 -2
- package/dist/engine/changelog.js.map +1 -1
- package/dist/engine/changelog.test.js +31 -0
- package/dist/engine/changelog.test.js.map +1 -0
- package/dist/engine/checks.js +10 -4
- package/dist/engine/checks.js.map +1 -1
- package/dist/engine/context/optimizer.js +14 -44
- package/dist/engine/context/optimizer.js.map +1 -1
- package/dist/engine/context/optimizer.test.js +23 -1
- package/dist/engine/context/optimizer.test.js.map +1 -1
- package/dist/engine/ecosystems/cargo.js +2 -1
- package/dist/engine/ecosystems/cargo.js.map +1 -1
- package/dist/engine/ecosystems/conan.js +2 -1
- package/dist/engine/ecosystems/conan.js.map +1 -1
- package/dist/engine/ecosystems/elm.js +2 -1
- package/dist/engine/ecosystems/elm.js.map +1 -1
- package/dist/engine/ecosystems/gradle.js +2 -1
- package/dist/engine/ecosystems/gradle.js.map +1 -1
- package/dist/engine/ecosystems/http.js +18 -0
- package/dist/engine/ecosystems/http.js.map +1 -0
- package/dist/engine/ecosystems/maven.js +2 -1
- package/dist/engine/ecosystems/maven.js.map +1 -1
- package/dist/engine/ecosystems/swiftpm.js +2 -1
- package/dist/engine/ecosystems/swiftpm.js.map +1 -1
- package/dist/engine/exec.js +37 -7
- package/dist/engine/exec.js.map +1 -1
- package/dist/engine/exec.test.js +36 -0
- package/dist/engine/exec.test.js.map +1 -0
- package/dist/engine/fixer/patterns.js +55 -18
- package/dist/engine/fixer/patterns.js.map +1 -1
- package/dist/engine/fixer/patterns.test.js +95 -1
- package/dist/engine/fixer/patterns.test.js.map +1 -1
- package/dist/engine/git.js +38 -16
- package/dist/engine/git.js.map +1 -1
- package/dist/engine/git.test.js +51 -1
- package/dist/engine/git.test.js.map +1 -1
- package/dist/engine/perf/metrics.js +44 -57
- package/dist/engine/perf/metrics.js.map +1 -1
- package/dist/engine/run.js +141 -15
- package/dist/engine/run.js.map +1 -1
- package/dist/engine/run.test.js +65 -1
- package/dist/engine/run.test.js.map +1 -1
- package/dist/engine/sandbox/docker-manager.js +52 -26
- package/dist/engine/sandbox/docker-manager.js.map +1 -1
- package/dist/engine/sandbox/template-generator.js +0 -4
- package/dist/engine/sandbox/template-generator.js.map +1 -1
- package/dist/engine/sandbox/template-generator.test.js +16 -0
- package/dist/engine/sandbox/template-generator.test.js.map +1 -0
- package/dist/engine/scan/benchmark-crosscheck.test.js +116 -0
- package/dist/engine/scan/benchmark-crosscheck.test.js.map +1 -0
- package/dist/engine/scan/detect.js +96 -0
- package/dist/engine/scan/detect.js.map +1 -0
- package/dist/engine/scan/impact.js +128 -0
- package/dist/engine/scan/impact.js.map +1 -0
- package/dist/engine/scan/impact.test.js +217 -0
- package/dist/engine/scan/impact.test.js.map +1 -0
- package/dist/engine/scan/indexer.js +129 -0
- package/dist/engine/scan/indexer.js.map +1 -0
- package/dist/engine/scan/indexer.test.js +149 -0
- package/dist/engine/scan/indexer.test.js.map +1 -0
- package/dist/engine/scan/probes.js +92 -0
- package/dist/engine/scan/probes.js.map +1 -0
- package/dist/engine/scan/probes.test.js +100 -0
- package/dist/engine/scan/probes.test.js.map +1 -0
- package/dist/engine/verify.js +41 -58
- package/dist/engine/verify.js.map +1 -1
- package/dist/engine/verify.test.js +49 -0
- package/dist/engine/verify.test.js.map +1 -0
- package/dist/format.js +96 -0
- package/dist/format.js.map +1 -1
- package/dist/format.test.js +53 -0
- package/dist/format.test.js.map +1 -0
- package/dist/pr.test.js +48 -0
- package/dist/pr.test.js.map +1 -0
- package/package.json +4 -4
- package/dist/engine/dep-graph.js +0 -101
- package/dist/engine/dep-graph.js.map +0 -1
- package/dist/engine/staged-fix.js +0 -108
- package/dist/engine/staged-fix.js.map +0 -1
- package/dist/engine/stages.js +0 -125
- package/dist/engine/stages.js.map +0 -1
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Staged fix orchestrator for v0.4.0
|
|
3
|
-
*
|
|
4
|
-
* This module provides a multi-stage fix strategy that:
|
|
5
|
-
* 1. Builds a dependency graph to identify affected files
|
|
6
|
-
* 2. Categorizes files into stages (config → types → source)
|
|
7
|
-
* 3. Fixes each stage independently with incremental commits
|
|
8
|
-
* 4. Allows rollback to the last successful stage on failure
|
|
9
|
-
*
|
|
10
|
-
* Usage: pass --staged flag to enable staged fix mode
|
|
11
|
-
*/
|
|
12
|
-
import { buildDependencyGraph, organizeLayers } from "./dep-graph.js";
|
|
13
|
-
import { COMMON_STAGES, categorizeFilesByStage } from "./stages.js";
|
|
14
|
-
import { commitStage } from "./git.js";
|
|
15
|
-
import { runFixLoop } from "../agent/fixer.js";
|
|
16
|
-
import { runChecks } from "./checks.js";
|
|
17
|
-
/**
|
|
18
|
-
* Run a staged fix: break the fix into multiple stages, fix each independently,
|
|
19
|
-
* and commit after each successful stage.
|
|
20
|
-
*/
|
|
21
|
-
export async function runStagedFix(opts) {
|
|
22
|
-
const log = opts.onLog ?? (() => { });
|
|
23
|
-
const { cwd, pm, dep } = opts;
|
|
24
|
-
// 1. Build dependency graph
|
|
25
|
-
log("📊 building dependency graph…");
|
|
26
|
-
const nodes = await buildDependencyGraph(cwd, dep);
|
|
27
|
-
if (nodes.length === 0) {
|
|
28
|
-
log("⚠️ dependency graph empty, falling back to single-stage fix");
|
|
29
|
-
return await runSingleStageFix(opts);
|
|
30
|
-
}
|
|
31
|
-
const layers = organizeLayers(nodes);
|
|
32
|
-
log(`📊 found ${layers.length} dependency layers, ${nodes.length} files total`);
|
|
33
|
-
// 2. Categorize files by stage
|
|
34
|
-
const stageFiles = await categorizeFilesByStage(cwd, COMMON_STAGES);
|
|
35
|
-
const stages = COMMON_STAGES.filter((stage) => {
|
|
36
|
-
const files = stageFiles.get(stage.name) || [];
|
|
37
|
-
return files.length > 0;
|
|
38
|
-
});
|
|
39
|
-
if (stages.length === 0) {
|
|
40
|
-
log("⚠️ no files matched any stage patterns, falling back to single-stage fix");
|
|
41
|
-
return await runSingleStageFix(opts);
|
|
42
|
-
}
|
|
43
|
-
log(`🔧 identified ${stages.length} stages: ${stages.map(s => s.name).join(" → ")}`);
|
|
44
|
-
// 3. Fix each stage
|
|
45
|
-
let totalRounds = 0;
|
|
46
|
-
let totalInputTokens = 0;
|
|
47
|
-
let totalOutputTokens = 0;
|
|
48
|
-
const allEditedFiles = [];
|
|
49
|
-
for (let i = 0; i < stages.length; i++) {
|
|
50
|
-
const stage = stages[i];
|
|
51
|
-
const files = stageFiles.get(stage.name) || [];
|
|
52
|
-
log(`\n🔧 Stage ${i + 1}/${stages.length}: ${stage.name} (${files.length} files)`);
|
|
53
|
-
// Run fix loop for this stage only
|
|
54
|
-
// (In a full implementation, we'd pass a file filter to the fix loop)
|
|
55
|
-
const stageResult = await runFixLoop({
|
|
56
|
-
...opts,
|
|
57
|
-
onLog: (msg) => log(` ${msg}`),
|
|
58
|
-
});
|
|
59
|
-
totalRounds += stageResult.rounds;
|
|
60
|
-
totalInputTokens += stageResult.usage.inputTokens;
|
|
61
|
-
totalOutputTokens += stageResult.usage.outputTokens;
|
|
62
|
-
allEditedFiles.push(...stageResult.editedFiles);
|
|
63
|
-
// Validate stage
|
|
64
|
-
const passed = await stage.validator(cwd);
|
|
65
|
-
if (!passed) {
|
|
66
|
-
log(`❌ Stage ${i + 1} validation failed`);
|
|
67
|
-
return {
|
|
68
|
-
fixed: false,
|
|
69
|
-
completedStages: i,
|
|
70
|
-
totalStages: stages.length,
|
|
71
|
-
failedStage: stage.name,
|
|
72
|
-
rounds: totalRounds,
|
|
73
|
-
usage: { inputTokens: totalInputTokens, outputTokens: totalOutputTokens },
|
|
74
|
-
editedFiles: allEditedFiles,
|
|
75
|
-
budgetExceeded: stageResult.budgetExceeded,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
// Commit this stage
|
|
79
|
-
await commitStage(cwd, stage.name, i + 1, stages.length);
|
|
80
|
-
log(`✓ Stage ${i + 1} completed and committed`);
|
|
81
|
-
}
|
|
82
|
-
// Final validation
|
|
83
|
-
const finalCheck = await runChecks(pm, cwd, opts.checkOverrides);
|
|
84
|
-
return {
|
|
85
|
-
fixed: finalCheck.ok,
|
|
86
|
-
completedStages: stages.length,
|
|
87
|
-
totalStages: stages.length,
|
|
88
|
-
rounds: totalRounds,
|
|
89
|
-
usage: { inputTokens: totalInputTokens, outputTokens: totalOutputTokens },
|
|
90
|
-
editedFiles: allEditedFiles,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Fallback: run a single fix loop without staging (same as v0.3.0 behavior)
|
|
95
|
-
*/
|
|
96
|
-
async function runSingleStageFix(opts) {
|
|
97
|
-
const result = await runFixLoop(opts);
|
|
98
|
-
return {
|
|
99
|
-
fixed: result.fixed,
|
|
100
|
-
completedStages: result.fixed ? 1 : 0,
|
|
101
|
-
totalStages: 1,
|
|
102
|
-
rounds: result.rounds,
|
|
103
|
-
usage: result.usage,
|
|
104
|
-
editedFiles: result.editedFiles,
|
|
105
|
-
budgetExceeded: result.budgetExceeded,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=staged-fix.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"staged-fix.js","sourceRoot":"","sources":["../../src/engine/staged-fix.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/stages.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { pathExists } from "./ecosystems/types.js";
|
|
3
|
-
import { exec } from "node:child_process";
|
|
4
|
-
import { promisify } from "node:util";
|
|
5
|
-
import { glob } from "glob";
|
|
6
|
-
const execAsync = promisify(exec);
|
|
7
|
-
/**
|
|
8
|
-
* Common staged fix strategy for most projects:
|
|
9
|
-
* 1. Configuration files (package.json, tsconfig.json, webpack.config.js)
|
|
10
|
-
* 2. Type definitions (*.d.ts, types/)
|
|
11
|
-
* 3. Source code (*.ts, *.tsx, *.js, *.jsx)
|
|
12
|
-
*/
|
|
13
|
-
export const COMMON_STAGES = [
|
|
14
|
-
{
|
|
15
|
-
name: "Configuration",
|
|
16
|
-
filePatterns: [
|
|
17
|
-
"**/package.json",
|
|
18
|
-
"**/tsconfig.json",
|
|
19
|
-
"**/tsconfig.*.json",
|
|
20
|
-
"**/webpack.config.js",
|
|
21
|
-
"**/webpack.*.js",
|
|
22
|
-
"**/.eslintrc.*",
|
|
23
|
-
"**/babel.config.*",
|
|
24
|
-
"**/vite.config.*",
|
|
25
|
-
"**/rollup.config.*",
|
|
26
|
-
],
|
|
27
|
-
validator: async (cwd) => {
|
|
28
|
-
// Check if config files are syntactically valid
|
|
29
|
-
return await validateConfigSyntax(cwd);
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "Type Definitions",
|
|
34
|
-
filePatterns: [
|
|
35
|
-
"**/*.d.ts",
|
|
36
|
-
"**/types/**/*.ts",
|
|
37
|
-
"**/@types/**/*.ts",
|
|
38
|
-
],
|
|
39
|
-
validator: async (cwd) => {
|
|
40
|
-
// Check if TypeScript types are valid
|
|
41
|
-
if (await pathExists(join(cwd, "tsconfig.json"))) {
|
|
42
|
-
try {
|
|
43
|
-
await execAsync("npx tsc --noEmit", { cwd, timeout: 60000 });
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return true; // No TypeScript, skip
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "Source Code",
|
|
55
|
-
filePatterns: [
|
|
56
|
-
"**/*.ts",
|
|
57
|
-
"**/*.tsx",
|
|
58
|
-
"**/*.js",
|
|
59
|
-
"**/*.jsx",
|
|
60
|
-
// Exclude already handled files
|
|
61
|
-
"!**/*.d.ts",
|
|
62
|
-
"!**/types/**",
|
|
63
|
-
"!**/@types/**",
|
|
64
|
-
"!**/node_modules/**",
|
|
65
|
-
"!**/dist/**",
|
|
66
|
-
"!**/build/**",
|
|
67
|
-
"!**/*.test.*",
|
|
68
|
-
"!**/*.spec.*",
|
|
69
|
-
],
|
|
70
|
-
validator: async (cwd) => {
|
|
71
|
-
// Source code stage succeeds if tests pass
|
|
72
|
-
// (This will be checked by the main fix loop)
|
|
73
|
-
return true; // Delegated to main validator
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
];
|
|
77
|
-
async function validateConfigSyntax(cwd) {
|
|
78
|
-
// Check if package.json is valid JSON
|
|
79
|
-
try {
|
|
80
|
-
const pkgPath = join(cwd, "package.json");
|
|
81
|
-
if (await pathExists(pkgPath)) {
|
|
82
|
-
const fs = await import("node:fs/promises");
|
|
83
|
-
const content = await fs.readFile(pkgPath, "utf8");
|
|
84
|
-
JSON.parse(content); // Will throw if invalid
|
|
85
|
-
}
|
|
86
|
-
// Check if tsconfig.json is valid JSON
|
|
87
|
-
const tsconfigPath = join(cwd, "tsconfig.json");
|
|
88
|
-
if (await pathExists(tsconfigPath)) {
|
|
89
|
-
const fs = await import("node:fs/promises");
|
|
90
|
-
const content = await fs.readFile(tsconfigPath, "utf8");
|
|
91
|
-
JSON.parse(content); // Will throw if invalid
|
|
92
|
-
}
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Match files against a set of glob patterns.
|
|
101
|
-
*/
|
|
102
|
-
export async function matchFiles(cwd, patterns) {
|
|
103
|
-
const allMatches = new Set();
|
|
104
|
-
for (const pattern of patterns) {
|
|
105
|
-
const matches = await glob(pattern, {
|
|
106
|
-
cwd,
|
|
107
|
-
absolute: false,
|
|
108
|
-
ignore: ["**/node_modules/**", "**/dist/**", "**/build/**"],
|
|
109
|
-
});
|
|
110
|
-
matches.forEach((m) => allMatches.add(m));
|
|
111
|
-
}
|
|
112
|
-
return Array.from(allMatches);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Determine which files belong to which stage based on glob patterns.
|
|
116
|
-
*/
|
|
117
|
-
export async function categorizeFilesByStage(cwd, stages) {
|
|
118
|
-
const stageFiles = new Map();
|
|
119
|
-
for (const stage of stages) {
|
|
120
|
-
const files = await matchFiles(cwd, stage.filePatterns);
|
|
121
|
-
stageFiles.set(stage.name, files);
|
|
122
|
-
}
|
|
123
|
-
return stageFiles;
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=stages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/engine/stages.ts"],"names":[],"mappings":"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"}
|