@nebutra/next-unicorn-skill 1.0.4 → 1.0.6
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 +82 -51
- package/SKILL.md +13 -19
- package/dist/index.d.ts +22 -86
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +159 -157
- package/dist/index.js.map +1 -1
- package/dist/pr-creator/pr-executor.d.ts +2 -0
- package/dist/pr-creator/pr-executor.d.ts.map +1 -1
- package/dist/pr-creator/pr-executor.js +26 -1
- package/dist/pr-creator/pr-executor.js.map +1 -1
- package/dist/verifier/context7.d.ts +24 -10
- package/dist/verifier/context7.d.ts.map +1 -1
- package/dist/verifier/context7.js +63 -34
- package/dist/verifier/context7.js.map +1 -1
- package/package.json +1 -1
- package/dist/auditor/ux-auditor.d.ts +0 -29
- package/dist/auditor/ux-auditor.d.ts.map +0 -1
- package/dist/auditor/ux-auditor.js +0 -250
- package/dist/auditor/ux-auditor.js.map +0 -1
- package/dist/planner/migration-planner.d.ts +0 -52
- package/dist/planner/migration-planner.d.ts.map +0 -1
- package/dist/planner/migration-planner.js +0 -156
- package/dist/planner/migration-planner.js.map +0 -1
- package/dist/pr-creator/pr-description-builder.d.ts +0 -23
- package/dist/pr-creator/pr-description-builder.d.ts.map +0 -1
- package/dist/pr-creator/pr-description-builder.js +0 -187
- package/dist/pr-creator/pr-description-builder.js.map +0 -1
- package/dist/scorer/impact-scorer.d.ts +0 -71
- package/dist/scorer/impact-scorer.d.ts.map +0 -1
- package/dist/scorer/impact-scorer.js +0 -178
- package/dist/scorer/impact-scorer.js.map +0 -1
- package/dist/security/vuln-report-builder.d.ts +0 -18
- package/dist/security/vuln-report-builder.d.ts.map +0 -1
- package/dist/security/vuln-report-builder.js +0 -141
- package/dist/security/vuln-report-builder.js.map +0 -1
- package/dist/updater/changelog-verifier.d.ts +0 -29
- package/dist/updater/changelog-verifier.d.ts.map +0 -1
- package/dist/updater/changelog-verifier.js +0 -80
- package/dist/updater/changelog-verifier.js.map +0 -1
- package/dist/updater/update-plan-builder.d.ts +0 -23
- package/dist/updater/update-plan-builder.d.ts.map +0 -1
- package/dist/updater/update-plan-builder.js +0 -93
- package/dist/updater/update-plan-builder.js.map +0 -1
- package/dist/updater/update-scorer.d.ts +0 -51
- package/dist/updater/update-scorer.d.ts.map +0 -1
- package/dist/updater/update-scorer.js +0 -166
- package/dist/updater/update-scorer.js.map +0 -1
- package/dist/utils/constraint-filter.d.ts +0 -44
- package/dist/utils/constraint-filter.d.ts.map +0 -1
- package/dist/utils/constraint-filter.js +0 -69
- package/dist/utils/constraint-filter.js.map +0 -1
- package/dist/utils/serializer.d.ts +0 -17
- package/dist/utils/serializer.d.ts.map +0 -1
- package/dist/utils/serializer.js +0 -24
- package/dist/utils/serializer.js.map +0 -1
- package/dist/utils/skill-parser.d.ts +0 -29
- package/dist/utils/skill-parser.d.ts.map +0 -1
- package/dist/utils/skill-parser.js +0 -175
- package/dist/utils/skill-parser.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -5,62 +5,38 @@
|
|
|
5
5
|
* replaced by third-party libraries. Library recommendations are provided
|
|
6
6
|
* by the caller (AI agent or programmatic client) — NOT hardcoded.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Redundant modules removed (Occam's Razor):
|
|
9
|
+
* - impact-scorer → inlined (trivial math)
|
|
10
|
+
* - migration-planner → inlined (group-by-risk + sort)
|
|
11
|
+
* - ux-auditor → AI-agent-driven (Claude reads package.json better)
|
|
12
|
+
* - constraint-filter → inlined (Set.has)
|
|
13
|
+
* - serializer → inlined (JSON.stringify)
|
|
14
|
+
* - update-scorer, update-plan-builder, changelog-verifier → simplified
|
|
15
|
+
* - pr-description-builder → AI agent writes better PR descriptions
|
|
16
|
+
* - skill-parser, vuln-report-builder → dead code deleted
|
|
11
17
|
*/
|
|
12
18
|
import { ZodError } from 'zod';
|
|
13
19
|
import { InputSchema } from './schemas/input.schema.js';
|
|
14
20
|
import { scanCodebase } from './analyzer/scanner.js';
|
|
15
21
|
import { verifyRecommendation, verifyAllRecommendations, } from './verifier/context7.js';
|
|
16
|
-
import { computeImpactScore } from './scorer/impact-scorer.js';
|
|
17
|
-
import { buildMigrationPlan } from './planner/migration-planner.js';
|
|
18
|
-
import { auditUxCompleteness } from './auditor/ux-auditor.js';
|
|
19
|
-
import { filterByLicense, detectDependencyConflicts, } from './utils/constraint-filter.js';
|
|
20
|
-
import { serializeOutput, prettyPrint } from './utils/serializer.js';
|
|
21
22
|
import { checkPeerDependencies, } from './checker/peer-dependency-checker.js';
|
|
22
23
|
import { scanVulnerabilities } from './security/vulnerability-scanner.js';
|
|
23
24
|
import { applyUpdatePolicy } from './updater/update-policy.js';
|
|
24
|
-
import { verifyChangelog } from './updater/changelog-verifier.js';
|
|
25
|
-
import { scoreUpdate } from './updater/update-scorer.js';
|
|
26
|
-
import { buildUpdatePlan } from './updater/update-plan-builder.js';
|
|
27
25
|
import { planPRs } from './pr-creator/pr-strategy.js';
|
|
28
26
|
import { executePRPlans } from './pr-creator/pr-executor.js';
|
|
29
27
|
// ---------------------------------------------------------------------------
|
|
30
28
|
// Version
|
|
31
29
|
// ---------------------------------------------------------------------------
|
|
32
|
-
export const VERSION = '1.0.
|
|
33
|
-
export { analyzeStructure } from './analyzer/structure-analyzer.js';
|
|
30
|
+
export const VERSION = '1.0.6';
|
|
34
31
|
export { scanCodebase } from './analyzer/scanner.js';
|
|
32
|
+
export { analyzeStructure } from './analyzer/structure-analyzer.js';
|
|
35
33
|
export { getPatternCatalog } from './analyzer/pattern-catalog.js';
|
|
36
34
|
// ---------------------------------------------------------------------------
|
|
37
35
|
// analyze — main orchestrator
|
|
38
36
|
// ---------------------------------------------------------------------------
|
|
39
|
-
/**
|
|
40
|
-
* Run the full Next-Unicorn analysis pipeline.
|
|
41
|
-
*
|
|
42
|
-
* Pipeline steps:
|
|
43
|
-
* 1. Validate input with InputSchema Zod schema
|
|
44
|
-
* 2. Scan codebase with scanCodebase
|
|
45
|
-
* 2.5 Get library recommendations from the recommender (AI agent / caller)
|
|
46
|
-
* 3. Verify recommendations with Context7
|
|
47
|
-
* 4. Score each detection
|
|
48
|
-
* 5. Build RecommendedChange objects
|
|
49
|
-
* 6. Apply dependency conflict detection
|
|
50
|
-
* 6.5 Vulnerability scanning (optional — Phase 2)
|
|
51
|
-
* 7. Apply license filtering
|
|
52
|
-
* 8. Build migration plan
|
|
53
|
-
* 9. Audit UX completeness
|
|
54
|
-
* 10. Auto-update existing dependencies (optional — Phase 2)
|
|
55
|
-
* 11. Assemble OutputSchema, serialize
|
|
56
|
-
* 12. PR auto-creation (optional — Phase 2)
|
|
57
|
-
* 13. Return result
|
|
58
|
-
*/
|
|
59
37
|
export async function analyze(options) {
|
|
60
38
|
const { input, context7Client, recommender } = options;
|
|
61
|
-
// -------------------------------------------------------------------------
|
|
62
39
|
// Step 1: Validate input
|
|
63
|
-
// -------------------------------------------------------------------------
|
|
64
40
|
let validatedInput;
|
|
65
41
|
try {
|
|
66
42
|
validatedInput = InputSchema.parse(input);
|
|
@@ -73,48 +49,41 @@ export async function analyze(options) {
|
|
|
73
49
|
issues: err.errors,
|
|
74
50
|
};
|
|
75
51
|
}
|
|
76
|
-
return {
|
|
77
|
-
success: false,
|
|
78
|
-
error: `Input validation failed: ${String(err)}`,
|
|
79
|
-
};
|
|
52
|
+
return { success: false, error: `Input validation failed: ${String(err)}` };
|
|
80
53
|
}
|
|
81
|
-
// -------------------------------------------------------------------------
|
|
82
54
|
// Step 2: Scan codebase
|
|
83
|
-
// -------------------------------------------------------------------------
|
|
84
55
|
const scanResult = await scanCodebase(validatedInput);
|
|
85
|
-
//
|
|
86
|
-
// Step 2.5: Get library recommendations from the recommender
|
|
87
|
-
// -------------------------------------------------------------------------
|
|
56
|
+
// Step 2.5: Get library recommendations
|
|
88
57
|
const libraryRecs = scanResult.detections.map((detection) => recommender(detection));
|
|
89
|
-
// -------------------------------------------------------------------------
|
|
90
58
|
// Step 3: Verify recommendations with Context7
|
|
91
|
-
// -------------------------------------------------------------------------
|
|
92
59
|
const verificationItems = scanResult.detections.map((detection, i) => {
|
|
93
60
|
const rec = libraryRecs[i];
|
|
94
|
-
return rec
|
|
95
|
-
? { libraryName: rec.library, useCase: detection.patternCategory }
|
|
96
|
-
: null;
|
|
61
|
+
return rec ? { libraryName: rec.library, useCase: detection.patternCategory } : null;
|
|
97
62
|
});
|
|
98
63
|
const verificationMap = await verifyAllRecommendations(context7Client, verificationItems);
|
|
99
|
-
//
|
|
100
|
-
// Step 4 & 5: Score each detection and build RecommendedChange objects
|
|
101
|
-
// -------------------------------------------------------------------------
|
|
64
|
+
// Step 4 & 5: Score + build RecommendedChange (inlined)
|
|
102
65
|
const recommendations = [];
|
|
103
66
|
for (let i = 0; i < scanResult.detections.length; i++) {
|
|
104
67
|
const detection = scanResult.detections[i];
|
|
105
68
|
const rec = libraryRecs[i];
|
|
106
69
|
if (!rec)
|
|
107
|
-
continue;
|
|
70
|
+
continue;
|
|
108
71
|
const verification = verificationMap.get(i) ?? {
|
|
109
72
|
status: 'unavailable',
|
|
110
73
|
note: 'No verification result available',
|
|
111
74
|
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
75
|
+
// Inline scoring: confidence → base score, uniform across dimensions
|
|
76
|
+
const baseScore = Math.max(1, Math.min(10, Math.round(3 + detection.confidenceScore * 4)));
|
|
77
|
+
const composite = Math.round(baseScore * 10) / 10;
|
|
78
|
+
// Inline risk derivation
|
|
79
|
+
const migrationRisk = verification.status === 'unavailable' ? 'high'
|
|
80
|
+
: detection.confidenceScore >= 0.7 && verification.status === 'verified' ? 'low'
|
|
81
|
+
: detection.confidenceScore >= 0.4 ? 'medium'
|
|
82
|
+
: 'high';
|
|
83
|
+
// Inline effort estimation
|
|
84
|
+
const lineCount = detection.lineRange.end - detection.lineRange.start + 1;
|
|
85
|
+
const riskMul = migrationRisk === 'low' ? 1.0 : migrationRisk === 'medium' ? 1.5 : 2.5;
|
|
86
|
+
const estimatedEffort = Math.round((2.0 + lineCount * 0.1) * riskMul * 10) / 10;
|
|
118
87
|
recommendations.push({
|
|
119
88
|
currentImplementation: {
|
|
120
89
|
filePath: detection.filePath,
|
|
@@ -133,20 +102,28 @@ export async function analyze(options) {
|
|
|
133
102
|
alternatives: rec.alternatives,
|
|
134
103
|
},
|
|
135
104
|
domain: detection.domain,
|
|
136
|
-
impactScores:
|
|
137
|
-
|
|
138
|
-
|
|
105
|
+
impactScores: {
|
|
106
|
+
scalability: baseScore,
|
|
107
|
+
performance: baseScore,
|
|
108
|
+
security: baseScore,
|
|
109
|
+
maintainability: baseScore,
|
|
110
|
+
feature_richness: baseScore,
|
|
111
|
+
ux: baseScore,
|
|
112
|
+
ui_aesthetics: baseScore,
|
|
113
|
+
composite,
|
|
114
|
+
},
|
|
115
|
+
migrationRisk,
|
|
116
|
+
estimatedEffort,
|
|
139
117
|
verificationStatus: verification.status,
|
|
140
118
|
verificationNote: verification.note,
|
|
141
119
|
});
|
|
142
120
|
}
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
// Step 6.25:
|
|
149
|
-
// -------------------------------------------------------------------------
|
|
121
|
+
// Step 6: Dependency conflict detection (inlined)
|
|
122
|
+
const conflictChecked = recommendations.map((rec) => {
|
|
123
|
+
const existing = validatedInput.projectMetadata.currentLibraries[rec.recommendedLibrary.name];
|
|
124
|
+
return existing !== undefined ? { ...rec, migrationRisk: 'high' } : rec;
|
|
125
|
+
});
|
|
126
|
+
// Step 6.25: Peer dependency check
|
|
150
127
|
let peerWarnings = [];
|
|
151
128
|
let peerCheckedRecommendations = conflictChecked;
|
|
152
129
|
try {
|
|
@@ -158,13 +135,10 @@ export async function analyze(options) {
|
|
|
158
135
|
peerCheckedRecommendations = peerCheckResult.recommendations;
|
|
159
136
|
}
|
|
160
137
|
catch {
|
|
161
|
-
// Unexpected error — fall back to empty warnings and original recommendations
|
|
162
138
|
peerWarnings = [];
|
|
163
139
|
peerCheckedRecommendations = conflictChecked;
|
|
164
140
|
}
|
|
165
|
-
//
|
|
166
|
-
// Step 6.5: Vulnerability scanning (optional — Phase 2)
|
|
167
|
-
// -------------------------------------------------------------------------
|
|
141
|
+
// Step 6.5: Vulnerability scanning (optional)
|
|
168
142
|
let vulnerabilityReport;
|
|
169
143
|
if (options.vulnClient) {
|
|
170
144
|
const defaultEcosystem = detectDefaultEcosystem(validatedInput.projectMetadata.packageManagers);
|
|
@@ -192,35 +166,73 @@ export async function analyze(options) {
|
|
|
192
166
|
serviceUnavailable: vulnResult.serviceUnavailable,
|
|
193
167
|
};
|
|
194
168
|
}
|
|
195
|
-
//
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
169
|
+
// Step 7: License filtering (inlined)
|
|
170
|
+
const licenseAllowlist = validatedInput.constraints.licenseAllowlist;
|
|
171
|
+
const allowSet = new Set(licenseAllowlist);
|
|
172
|
+
const exclusions = [];
|
|
173
|
+
const filteredRecommendations = licenseAllowlist.length === 0
|
|
174
|
+
? [...peerCheckedRecommendations]
|
|
175
|
+
: peerCheckedRecommendations.filter((rec) => {
|
|
176
|
+
if (allowSet.has(rec.recommendedLibrary.license))
|
|
177
|
+
return true;
|
|
178
|
+
exclusions.push({
|
|
179
|
+
libraryName: rec.recommendedLibrary.name,
|
|
180
|
+
license: rec.recommendedLibrary.license,
|
|
181
|
+
reason: `License "${rec.recommendedLibrary.license}" is not in the allowlist [${licenseAllowlist.join(', ')}]`,
|
|
182
|
+
});
|
|
183
|
+
return false;
|
|
184
|
+
});
|
|
185
|
+
// Step 8: Migration plan (inlined — group by risk, sort by file + composite)
|
|
186
|
+
const riskGroups = {
|
|
187
|
+
low: [], medium: [], high: [],
|
|
188
|
+
};
|
|
189
|
+
for (let i = 0; i < filteredRecommendations.length; i++) {
|
|
190
|
+
const rec = filteredRecommendations[i];
|
|
191
|
+
riskGroups[rec.migrationRisk].push({ index: i, rec });
|
|
192
|
+
}
|
|
193
|
+
for (const risk of ['low', 'medium', 'high']) {
|
|
194
|
+
riskGroups[risk].sort((a, b) => {
|
|
195
|
+
const f = a.rec.currentImplementation.filePath.localeCompare(b.rec.currentImplementation.filePath);
|
|
196
|
+
return f !== 0 ? f : b.rec.impactScores.composite - a.rec.impactScores.composite;
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const riskNames = { low: 'Low-Risk Quick Wins', medium: 'Medium-Risk Improvements', high: 'High-Risk Transformations' };
|
|
200
|
+
const phases = ['low', 'medium', 'high']
|
|
201
|
+
.filter((r) => riskGroups[r].length > 0)
|
|
202
|
+
.map((risk, idx) => ({
|
|
203
|
+
phase: idx + 1,
|
|
204
|
+
name: riskNames[risk],
|
|
205
|
+
steps: riskGroups[risk].map((item) => {
|
|
206
|
+
const step = {
|
|
207
|
+
recommendationIndex: item.index,
|
|
208
|
+
description: `Replace ${item.rec.currentImplementation.patternCategory} in ${item.rec.currentImplementation.filePath} with ${item.rec.recommendedLibrary.name}${risk === 'high' ? ' using adapter strategy' : risk === 'low' ? ' (quick win)' : ''}`,
|
|
209
|
+
};
|
|
210
|
+
if (risk === 'high') {
|
|
211
|
+
step.adapterStrategy = item.rec.adapterStrategy ?? {
|
|
212
|
+
wrapperInterface: `I${item.rec.currentImplementation.patternCategory}Adapter`,
|
|
213
|
+
legacyCode: item.rec.currentImplementation.filePath,
|
|
214
|
+
targetLibrary: item.rec.recommendedLibrary.name,
|
|
215
|
+
description: `Adapter wrapping legacy ${item.rec.currentImplementation.patternCategory} implementation to transition to ${item.rec.recommendedLibrary.name}`,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
return step;
|
|
219
|
+
}),
|
|
220
|
+
}));
|
|
221
|
+
const deletionChecklist = filteredRecommendations.map((rec) => ({
|
|
222
|
+
filePath: rec.currentImplementation.filePath,
|
|
223
|
+
lineRange: rec.currentImplementation.lineRange,
|
|
224
|
+
reason: `Replaced ${rec.currentImplementation.patternCategory} with ${rec.recommendedLibrary.name}`,
|
|
225
|
+
}));
|
|
226
|
+
// Step 9: UX audit — AI-agent-driven (empty default, agent fills via options.uxAudit)
|
|
227
|
+
const uxAudit = options.uxAudit ?? [];
|
|
228
|
+
// Step 10: Auto-update (simplified — uses update-policy, skips removed scorer/builder)
|
|
210
229
|
let updatePlan;
|
|
211
|
-
if (validatedInput.updatePolicy?.enabled &&
|
|
212
|
-
options.registryClient) {
|
|
230
|
+
if (validatedInput.updatePolicy?.enabled && options.registryClient) {
|
|
213
231
|
const policy = validatedInput.updatePolicy;
|
|
214
232
|
const defaultEcosystem = detectDefaultEcosystem(validatedInput.projectMetadata.packageManagers);
|
|
215
233
|
try {
|
|
216
|
-
|
|
217
|
-
const queries = Object.entries(validatedInput.projectMetadata.currentLibraries).map(([name, version]) => ({
|
|
218
|
-
ecosystem: defaultEcosystem,
|
|
219
|
-
packageName: name,
|
|
220
|
-
currentVersion: version,
|
|
221
|
-
}));
|
|
234
|
+
const queries = Object.entries(validatedInput.projectMetadata.currentLibraries).map(([name, version]) => ({ ecosystem: defaultEcosystem, packageName: name, currentVersion: version }));
|
|
222
235
|
const versionInfoMap = await options.registryClient.getVersionInfoBatch(queries);
|
|
223
|
-
// Apply update policy
|
|
224
236
|
const candidates = applyUpdatePolicy(versionInfoMap, {
|
|
225
237
|
defaultStrategy: policy.defaultStrategy,
|
|
226
238
|
packageOverrides: policy.packageOverrides,
|
|
@@ -229,57 +241,67 @@ export async function analyze(options) {
|
|
|
229
241
|
groupRelatedPackages: policy.groupRelatedPackages,
|
|
230
242
|
pinned: policy.pinned,
|
|
231
243
|
}, defaultEcosystem);
|
|
232
|
-
//
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
244
|
+
// Simplified: build update items with defaults (AI agent enriches)
|
|
245
|
+
const updates = candidates.map((c) => ({
|
|
246
|
+
packageName: c.packageName,
|
|
247
|
+
ecosystem: c.ecosystem,
|
|
248
|
+
currentVersion: c.currentVersion,
|
|
249
|
+
targetVersion: c.targetVersion,
|
|
250
|
+
updateType: c.updateType,
|
|
251
|
+
urgency: 'routine',
|
|
252
|
+
breakingRisk: 'none',
|
|
253
|
+
impactScores: { scalability: 5, performance: 5, security: 5, maintainability: 5, feature_richness: 5, ux: 5, ui_aesthetics: 5, composite: 5 },
|
|
254
|
+
estimatedEffort: 0.5,
|
|
255
|
+
hasBreakingChanges: false,
|
|
256
|
+
vulnFixCount: 0,
|
|
257
|
+
groupKey: c.groupKey,
|
|
238
258
|
}));
|
|
239
|
-
|
|
240
|
-
|
|
259
|
+
const groupMap = new Map();
|
|
260
|
+
for (const item of updates) {
|
|
261
|
+
if (item.groupKey) {
|
|
262
|
+
const g = groupMap.get(item.groupKey) ?? [];
|
|
263
|
+
g.push(item);
|
|
264
|
+
groupMap.set(item.groupKey, g);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
updatePlan = {
|
|
268
|
+
updates,
|
|
269
|
+
groups: [...groupMap.entries()]
|
|
270
|
+
.filter(([, items]) => items.length > 1)
|
|
271
|
+
.map(([groupKey, items]) => ({ groupKey, items, urgency: 'routine' })),
|
|
272
|
+
summary: {
|
|
273
|
+
totalUpdatesAvailable: updates.length,
|
|
274
|
+
critical: 0,
|
|
275
|
+
urgent: 0,
|
|
276
|
+
recommended: 0,
|
|
277
|
+
routine: updates.length,
|
|
278
|
+
estimatedTotalEffort: updates.reduce((sum, u) => sum + u.estimatedEffort, 0),
|
|
279
|
+
},
|
|
280
|
+
};
|
|
241
281
|
}
|
|
242
282
|
catch {
|
|
243
|
-
// Registry unavailable — skip update plan silently
|
|
244
283
|
updatePlan = undefined;
|
|
245
284
|
}
|
|
246
285
|
}
|
|
247
|
-
//
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
// Compute lines saved estimate from deletion checklist
|
|
251
|
-
const linesSavedEstimate = migrationPlan.deletionChecklist.reduce((total, item) => {
|
|
252
|
-
if (item.lineRange) {
|
|
286
|
+
// Step 11: Assemble output
|
|
287
|
+
const linesSavedEstimate = deletionChecklist.reduce((total, item) => {
|
|
288
|
+
if (item.lineRange)
|
|
253
289
|
return total + (item.lineRange.end - item.lineRange.start + 1);
|
|
254
|
-
}
|
|
255
290
|
return total;
|
|
256
291
|
}, 0);
|
|
257
|
-
|
|
258
|
-
const filesToDelete = [
|
|
259
|
-
...new Set(migrationPlan.deletionChecklist.map((item) => item.filePath)),
|
|
260
|
-
];
|
|
292
|
+
const filesToDelete = [...new Set(deletionChecklist.map((item) => item.filePath))];
|
|
261
293
|
const output = {
|
|
262
294
|
recommendedChanges: filteredRecommendations,
|
|
263
295
|
filesToDelete,
|
|
264
296
|
linesSavedEstimate,
|
|
265
|
-
uxAudit
|
|
266
|
-
migrationPlan: {
|
|
267
|
-
phases: migrationPlan.phases,
|
|
268
|
-
deletionChecklist: migrationPlan.deletionChecklist,
|
|
269
|
-
peerDependencyWarnings: peerWarnings,
|
|
270
|
-
},
|
|
271
|
-
// Gap analysis — verify each gap recommendation with Context7
|
|
297
|
+
uxAudit,
|
|
298
|
+
migrationPlan: { phases, deletionChecklist, peerDependencyWarnings: peerWarnings },
|
|
272
299
|
gapAnalysis: await verifyGaps(options.gaps, context7Client),
|
|
273
|
-
// Phase 2 optional sections
|
|
274
300
|
vulnerabilityReport,
|
|
275
301
|
updatePlan,
|
|
276
302
|
};
|
|
277
|
-
//
|
|
278
|
-
|
|
279
|
-
// -------------------------------------------------------------------------
|
|
280
|
-
if (validatedInput.prPolicy?.enabled &&
|
|
281
|
-
options.platformClient &&
|
|
282
|
-
options.gitOps) {
|
|
303
|
+
// Step 12: PR auto-creation (optional)
|
|
304
|
+
if (validatedInput.prPolicy?.enabled && options.platformClient && options.gitOps) {
|
|
283
305
|
const prPolicy = validatedInput.prPolicy;
|
|
284
306
|
const prPlans = planPRs({
|
|
285
307
|
output,
|
|
@@ -305,47 +327,27 @@ export async function analyze(options) {
|
|
|
305
327
|
});
|
|
306
328
|
output.pullRequests = prResults;
|
|
307
329
|
}
|
|
308
|
-
//
|
|
309
|
-
// Step 13: Serialize and return
|
|
310
|
-
// -------------------------------------------------------------------------
|
|
311
|
-
const json = serializeOutput(output);
|
|
312
|
-
const prettyJson = prettyPrint(output);
|
|
330
|
+
// Step 13: Return
|
|
313
331
|
return {
|
|
314
332
|
success: true,
|
|
315
333
|
output,
|
|
316
334
|
scanResult,
|
|
317
|
-
json,
|
|
318
|
-
prettyJson,
|
|
335
|
+
json: JSON.stringify(output),
|
|
336
|
+
prettyJson: JSON.stringify(output, null, 2),
|
|
319
337
|
exclusions,
|
|
320
338
|
};
|
|
321
339
|
}
|
|
322
340
|
// ---------------------------------------------------------------------------
|
|
323
341
|
// Helpers
|
|
324
342
|
// ---------------------------------------------------------------------------
|
|
325
|
-
/**
|
|
326
|
-
* Detect default ecosystem from package manager list.
|
|
327
|
-
*/
|
|
328
343
|
function detectDefaultEcosystem(packageManagers) {
|
|
329
|
-
const
|
|
330
|
-
npm: 'npm',
|
|
331
|
-
pnpm: 'npm',
|
|
332
|
-
yarn: 'npm',
|
|
333
|
-
bun: 'npm',
|
|
334
|
-
pip: 'PyPI',
|
|
335
|
-
cargo: 'crates.io',
|
|
336
|
-
go: 'Go',
|
|
337
|
-
};
|
|
344
|
+
const map = { npm: 'npm', pnpm: 'npm', yarn: 'npm', bun: 'npm', pip: 'PyPI', cargo: 'crates.io', go: 'Go' };
|
|
338
345
|
for (const pm of packageManagers) {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
return eco;
|
|
346
|
+
if (map[pm])
|
|
347
|
+
return map[pm];
|
|
342
348
|
}
|
|
343
349
|
return 'npm';
|
|
344
350
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Verify gap recommendations with Context7 — same quality guarantee as
|
|
347
|
-
* replacement recommendations. Returns undefined if no gaps provided.
|
|
348
|
-
*/
|
|
349
351
|
async function verifyGaps(gaps, client) {
|
|
350
352
|
if (!gaps || gaps.length === 0)
|
|
351
353
|
return undefined;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD,OAAO,EAAE,YAAY,EAAmC,MAAM,uBAAuB,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,GAGtB,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAsF/B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACnD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEvD,yBAAyB;IACzB,IAAI,cAA2B,CAAC;IAChC,IAAI,CAAC;QACH,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,4BAA4B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChF,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;IAEtD,wCAAwC;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAErF,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACnE,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAE1F,wDAAwD;IACxD,MAAM,eAAe,GAAwB,EAAE,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC7C,MAAM,EAAE,aAAsB;YAC9B,IAAI,EAAE,kCAAkC;SACzC,CAAC;QAEF,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAElD,yBAAyB;QACzB,MAAM,aAAa,GACjB,YAAY,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM;YAC9C,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;gBAChF,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ;oBAC7C,CAAC,CAAC,MAAM,CAAC;QAEX,2BAA2B;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACvF,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAEhF,eAAe,CAAC,IAAI,CAAC;YACnB,qBAAqB,EAAE;gBACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,eAAe,EAAE,SAAS,CAAC,eAAe;aAC3C;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;aAC/B;YACD,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,YAAY,EAAE;gBACZ,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,SAAS;gBACnB,eAAe,EAAE,SAAS;gBAC1B,gBAAgB,EAAE,SAAS;gBAC3B,EAAE,EAAE,SAAS;gBACb,aAAa,EAAE,SAAS;gBACxB,SAAS;aACV;YACD,aAAa;YACb,eAAe;YACf,kBAAkB,EAAE,YAAY,CAAC,MAAM;YACvC,gBAAgB,EAAE,YAAY,CAAC,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9F,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,IAAI,YAAY,GAA4B,EAAE,CAAC;IAC/C,IAAI,0BAA0B,GAAwB,eAAe,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,QAAQ,GAA2B,OAAO,CAAC,sBAAsB,IAAI;YACzE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC;QACF,MAAM,eAAe,GAAG,MAAM,qBAAqB,CACjD,eAAe,EACf,cAAc,CAAC,eAAe,CAAC,gBAAgB,EAC/C,QAAQ,CACT,CAAC;QACF,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;QACxC,0BAA0B,GAAG,eAAe,CAAC,eAAe,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,EAAE,CAAC;QAClB,0BAA0B,GAAG,eAAe,CAAC;IAC/C,CAAC;IAED,8CAA8C;IAC9C,IAAI,mBAA2C,CAAC;IAChD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,cAAc,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAChG,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C;YACE,gBAAgB,EAAE,cAAc,CAAC,eAAe,CAAC,gBAAgB;YACjE,kBAAkB,EAAE,0BAA0B;YAC9C,MAAM,EAAE,MAAM;YACd,gBAAgB;SACjB,EACD,OAAO,CAAC,UAAU,CACnB,CAAC;QACF,mBAAmB,GAAG;YACpB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE;gBACnC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO;gBAChC,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ;gBAClC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS;gBACpC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO;gBAChC,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;aAC3C,CAAC,CAAC;YACH,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;SAClD,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAC3D,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC;QACjC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC;gBACd,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,IAAI;gBACxC,OAAO,EAAE,GAAG,CAAC,kBAAkB,CAAC,OAAO;gBACvC,MAAM,EAAE,YAAY,GAAG,CAAC,kBAAkB,CAAC,OAAO,8BAA8B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC/G,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IAEP,6EAA6E;IAC7E,MAAM,UAAU,GAAqE;QACnF,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;KAC9B,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,uBAAuB,CAAC,CAAC,CAAE,CAAC;QACxC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,EAAE,CAAC;QACtD,UAAU,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACnG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;IACxH,MAAM,MAAM,GAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAW;SAChD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACnB,KAAK,EAAE,GAAG,GAAG,CAAC;QACd,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;QACrB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,IAAI,GAAyK;gBACjL,mBAAmB,EAAE,IAAI,CAAC,KAAK;gBAC/B,WAAW,EAAE,WAAW,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,eAAe,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,SAAS,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE;aACrP,CAAC;YACF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI;oBACjD,gBAAgB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,eAAe,SAAS;oBAC7E,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ;oBACnD,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI;oBAC/C,WAAW,EAAE,2BAA2B,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,eAAe,oCAAoC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE;iBAC7J,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH,CAAC,CAAC,CAAC;IACN,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,QAAQ;QAC5C,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,SAAS;QAC9C,MAAM,EAAE,YAAY,GAAG,CAAC,qBAAqB,CAAC,eAAe,SAAS,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE;KACpG,CAAC,CAAC,CAAC;IAEJ,sFAAsF;IACtF,MAAM,OAAO,GAAkB,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IAErD,uFAAuF;IACvF,IAAI,UAAkC,CAAC;IACvC,IAAI,cAAc,CAAC,YAAY,EAAE,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC;QAC3C,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,cAAc,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAChG,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACjF,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CACnG,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,iBAAiB,CAAC,cAAc,EAAE;gBACnD,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;gBACjD,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,EAAE,gBAAgB,CAAC,CAAC;YAErB,mEAAmE;YACnE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,SAAkB;gBAC3B,YAAY,EAAE,MAAe;gBAC7B,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC7I,eAAe,EAAE,GAAG;gBACpB,kBAAkB,EAAE,KAAK;gBACzB,YAAY,EAAE,CAAC;gBACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,UAAU,GAAG;gBACX,OAAO;gBACP,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;qBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAkB,EAAE,CAAC,CAAC;gBACjF,OAAO,EAAE;oBACP,qBAAqB,EAAE,OAAO,CAAC,MAAM;oBACrC,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,CAAC;oBACT,WAAW,EAAE,CAAC;oBACd,OAAO,EAAE,OAAO,CAAC,MAAM;oBACvB,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;iBAC7E;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAClE,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnF,MAAM,MAAM,GAAiB;QAC3B,kBAAkB,EAAE,uBAAuB;QAC3C,aAAa;QACb,kBAAkB;QAClB,OAAO;QACP,aAAa,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE;QAClF,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;QAC3D,mBAAmB;QACnB,UAAU;KACX,CAAC;IAEF,uCAAuC;IACvC,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC;YACtB,MAAM;YACN,MAAM,EAAE;gBACN,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;YACrC,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,kBAAkB;IAClB,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM;QACN,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,UAAU;KACX,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,eAAyB;IACvD,MAAM,GAAG,GAA2B,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACpI,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,EAAE,CAAE,CAAC;IAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAqC,EACrC,MAAsB;IAEtB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAChG,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,GAAG;YACN,kBAAkB,EAAE;gBAClB,GAAG,GAAG,CAAC,kBAAkB;gBACzB,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB;aACrF;YACD,kBAAkB,EAAE,MAAM,CAAC,MAAM;YACjC,gBAAgB,EAAE,MAAM,CAAC,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -8,6 +8,8 @@ import type { PRResult, PRSummary } from '../schemas/output.schema.js';
|
|
|
8
8
|
import type { PRPlan } from './pr-strategy.js';
|
|
9
9
|
import type { PlatformClient } from './platform-client.js';
|
|
10
10
|
import type { GitOperations } from './git-operations.js';
|
|
11
|
+
export declare function buildPRTitle(plan: PRPlan): string;
|
|
12
|
+
export declare function buildPRDescription(plan: PRPlan): string;
|
|
11
13
|
export interface PRExecutionResult {
|
|
12
14
|
created: PRResult[];
|
|
13
15
|
summary: PRSummary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-executor.d.ts","sourceRoot":"","sources":["../../src/pr-creator/pr-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pr-executor.d.ts","sourceRoot":"","sources":["../../src/pr-creator/pr-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASjD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYvD;AAMD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAMD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAuG5B"}
|
|
@@ -4,7 +4,32 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Requirements: 12.5, 12.9
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
// PR title/description generation inlined — AI agent writes better descriptions
|
|
8
|
+
export function buildPRTitle(plan) {
|
|
9
|
+
const count = plan.items.length;
|
|
10
|
+
switch (plan.type) {
|
|
11
|
+
case 'security-update': return `fix(deps): patch ${count} security vulnerabilit${count === 1 ? 'y' : 'ies'}`;
|
|
12
|
+
case 'dependency-update': return `chore(deps): update ${count} dependenc${count === 1 ? 'y' : 'ies'}`;
|
|
13
|
+
case 'migration': return `refactor: migrate ${count} hand-rolled implementation${count === 1 ? '' : 's'}`;
|
|
14
|
+
case 'grouped-update': return `chore(deps): update ${plan.items[0]?.kind === 'update' ? plan.items[0].update.packageName : 'dependencies'} group`;
|
|
15
|
+
default: return `chore(deps): update ${count} item${count === 1 ? '' : 's'}`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function buildPRDescription(plan) {
|
|
19
|
+
const lines = [`## ${buildPRTitle(plan)}`, '', `This PR contains ${plan.items.length} change(s).`, ''];
|
|
20
|
+
for (const item of plan.items) {
|
|
21
|
+
if (item.kind === 'update') {
|
|
22
|
+
lines.push(`- Update \`${item.update.packageName}\` ${item.update.currentVersion} → ${item.update.targetVersion}`);
|
|
23
|
+
}
|
|
24
|
+
else if (item.kind === 'security') {
|
|
25
|
+
lines.push(`- Fix \`${item.update.packageName}\` (security)`);
|
|
26
|
+
}
|
|
27
|
+
else if (item.kind === 'migration') {
|
|
28
|
+
lines.push(`- Migrate \`${item.recommendation.currentImplementation.patternCategory}\` in \`${item.recommendation.currentImplementation.filePath}\``);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return lines.join('\n');
|
|
32
|
+
}
|
|
8
33
|
// ---------------------------------------------------------------------------
|
|
9
34
|
// executePRPlans
|
|
10
35
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-executor.js","sourceRoot":"","sources":["../../src/pr-creator/pr-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pr-executor.js","sourceRoot":"","sources":["../../src/pr-creator/pr-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,11 +11,27 @@ export interface VerificationResult {
|
|
|
11
11
|
/**
|
|
12
12
|
* Client interface for Context7 MCP integration.
|
|
13
13
|
* Designed for easy mocking in tests — the real implementation calls
|
|
14
|
-
* Context7 MCP tools (`resolve-library-id` and `
|
|
14
|
+
* Context7 MCP tools (`resolve-library-id` and `query-docs`).
|
|
15
|
+
*
|
|
16
|
+
* Per Context7 best practices:
|
|
17
|
+
* - resolveLibraryId accepts both query (for ranking) and libraryName
|
|
18
|
+
* - getLibraryDocs accepts libraryId and query
|
|
19
|
+
* - Implementations should handle 202 (processing), 301 (redirect), 429 (rate limit)
|
|
15
20
|
*/
|
|
16
21
|
export interface Context7Client {
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a library name to a Context7-compatible library ID.
|
|
24
|
+
* @param libraryName — the library to search for
|
|
25
|
+
* @param query — the user's question/task (used by Context7 to rank results)
|
|
26
|
+
* @returns library ID string, or null if not found
|
|
27
|
+
*/
|
|
28
|
+
resolveLibraryId(libraryName: string, query?: string): Promise<string | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Fetch documentation for a library by its Context7 ID.
|
|
31
|
+
* @param libraryId — Context7-compatible library ID (e.g., "/vercel/next.js")
|
|
32
|
+
* @param query — the question/task to get relevant docs for
|
|
33
|
+
*/
|
|
34
|
+
getLibraryDocs(libraryId: string, query: string): Promise<{
|
|
19
35
|
url: string;
|
|
20
36
|
version: string;
|
|
21
37
|
} | null>;
|
|
@@ -25,14 +41,14 @@ export interface Context7Client {
|
|
|
25
41
|
*
|
|
26
42
|
* Flow:
|
|
27
43
|
* 1. Call `resolveLibraryId` to get the canonical library ID.
|
|
28
|
-
* - If it returns `null` → status "unverified" (library not found).
|
|
29
|
-
* - If it throws → retry
|
|
44
|
+
* - If it returns `null` → status "unverified" (library not found / 404).
|
|
45
|
+
* - If it throws → retry with exponential backoff (handles 429, 202, 5xx).
|
|
46
|
+
* - After max retries → status "unavailable".
|
|
30
47
|
* 2. Call `getLibraryDocs` with the library ID and use case.
|
|
31
48
|
* - If it returns docs → status "verified" with URL and version.
|
|
32
49
|
* - If it returns `null` → status "unverified" (use case not confirmed).
|
|
33
|
-
* - If it throws → retry
|
|
34
|
-
*
|
|
35
|
-
* Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 9.5
|
|
50
|
+
* - If it throws → retry with exponential backoff.
|
|
51
|
+
* - After max retries → status "unavailable".
|
|
36
52
|
*/
|
|
37
53
|
export declare function verifyRecommendation(client: Context7Client, libraryName: string, useCase: string): Promise<VerificationResult>;
|
|
38
54
|
/**
|
|
@@ -52,8 +68,6 @@ export interface VerificationItem {
|
|
|
52
68
|
*
|
|
53
69
|
* Processes each item independently — a failure for one library does
|
|
54
70
|
* not affect others. Returns a Map keyed by detection index.
|
|
55
|
-
*
|
|
56
|
-
* Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 9.5
|
|
57
71
|
*/
|
|
58
72
|
export declare function verifyAllRecommendations(client: Context7Client, items: Array<VerificationItem | null>): Promise<Map<number, VerificationResult>>;
|
|
59
73
|
//# sourceMappingURL=context7.d.ts.map
|