@nebutra/next-unicorn-skill 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +96 -9
  3. package/README.zh-CN.md +474 -0
  4. package/SKILL.md +132 -30
  5. package/dist/analyzer/code-organization-analyzer.d.ts +26 -0
  6. package/dist/analyzer/code-organization-analyzer.d.ts.map +1 -0
  7. package/dist/analyzer/code-organization-analyzer.js +389 -0
  8. package/dist/analyzer/code-organization-analyzer.js.map +1 -0
  9. package/dist/analyzer/pattern-catalog.d.ts.map +1 -1
  10. package/dist/analyzer/pattern-catalog.js +33 -0
  11. package/dist/analyzer/pattern-catalog.js.map +1 -1
  12. package/dist/analyzer/scanner.d.ts +2 -0
  13. package/dist/analyzer/scanner.d.ts.map +1 -1
  14. package/dist/analyzer/scanner.js +16 -1
  15. package/dist/analyzer/scanner.js.map +1 -1
  16. package/dist/analyzer/structure-analyzer.d.ts +3 -1
  17. package/dist/analyzer/structure-analyzer.d.ts.map +1 -1
  18. package/dist/analyzer/structure-analyzer.js.map +1 -1
  19. package/dist/index.d.ts +24 -86
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +160 -157
  22. package/dist/index.js.map +1 -1
  23. package/dist/pr-creator/pr-executor.d.ts +2 -0
  24. package/dist/pr-creator/pr-executor.d.ts.map +1 -1
  25. package/dist/pr-creator/pr-executor.js +26 -1
  26. package/dist/pr-creator/pr-executor.js.map +1 -1
  27. package/dist/schemas/input.schema.d.ts +4 -4
  28. package/dist/schemas/input.schema.d.ts.map +1 -1
  29. package/dist/schemas/input.schema.js +1 -0
  30. package/dist/schemas/input.schema.js.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/auditor/ux-auditor.d.ts +0 -29
  33. package/dist/auditor/ux-auditor.d.ts.map +0 -1
  34. package/dist/auditor/ux-auditor.js +0 -250
  35. package/dist/auditor/ux-auditor.js.map +0 -1
  36. package/dist/planner/migration-planner.d.ts +0 -52
  37. package/dist/planner/migration-planner.d.ts.map +0 -1
  38. package/dist/planner/migration-planner.js +0 -156
  39. package/dist/planner/migration-planner.js.map +0 -1
  40. package/dist/pr-creator/pr-description-builder.d.ts +0 -23
  41. package/dist/pr-creator/pr-description-builder.d.ts.map +0 -1
  42. package/dist/pr-creator/pr-description-builder.js +0 -187
  43. package/dist/pr-creator/pr-description-builder.js.map +0 -1
  44. package/dist/scorer/impact-scorer.d.ts +0 -71
  45. package/dist/scorer/impact-scorer.d.ts.map +0 -1
  46. package/dist/scorer/impact-scorer.js +0 -178
  47. package/dist/scorer/impact-scorer.js.map +0 -1
  48. package/dist/security/vuln-report-builder.d.ts +0 -18
  49. package/dist/security/vuln-report-builder.d.ts.map +0 -1
  50. package/dist/security/vuln-report-builder.js +0 -141
  51. package/dist/security/vuln-report-builder.js.map +0 -1
  52. package/dist/updater/changelog-verifier.d.ts +0 -29
  53. package/dist/updater/changelog-verifier.d.ts.map +0 -1
  54. package/dist/updater/changelog-verifier.js +0 -80
  55. package/dist/updater/changelog-verifier.js.map +0 -1
  56. package/dist/updater/update-plan-builder.d.ts +0 -23
  57. package/dist/updater/update-plan-builder.d.ts.map +0 -1
  58. package/dist/updater/update-plan-builder.js +0 -93
  59. package/dist/updater/update-plan-builder.js.map +0 -1
  60. package/dist/updater/update-scorer.d.ts +0 -51
  61. package/dist/updater/update-scorer.d.ts.map +0 -1
  62. package/dist/updater/update-scorer.js +0 -166
  63. package/dist/updater/update-scorer.js.map +0 -1
  64. package/dist/utils/constraint-filter.d.ts +0 -44
  65. package/dist/utils/constraint-filter.d.ts.map +0 -1
  66. package/dist/utils/constraint-filter.js +0 -69
  67. package/dist/utils/constraint-filter.js.map +0 -1
  68. package/dist/utils/serializer.d.ts +0 -17
  69. package/dist/utils/serializer.d.ts.map +0 -1
  70. package/dist/utils/serializer.js +0 -24
  71. package/dist/utils/serializer.js.map +0 -1
  72. package/dist/utils/skill-parser.d.ts +0 -29
  73. package/dist/utils/skill-parser.d.ts.map +0 -1
  74. package/dist/utils/skill-parser.js +0 -175
  75. package/dist/utils/skill-parser.js.map +0 -1
package/dist/index.js CHANGED
@@ -5,62 +5,39 @@
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
- * This is the orchestrator that wires the full pipeline:
9
- * validate inputscan recommend (caller) → verify → score → plan →
10
- * audit filter vuln scan → auto-update serialize → PR creation
8
+ * Redundant modules removed (Occam's Razor):
9
+ * - impact-scorerinlined (trivial math)
10
+ * - migration-plannerinlined (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.5';
33
- export { analyzeStructure } from './analyzer/structure-analyzer.js';
30
+ export const VERSION = '1.0.7';
34
31
  export { scanCodebase } from './analyzer/scanner.js';
32
+ export { analyzeStructure } from './analyzer/structure-analyzer.js';
33
+ export { analyzeCodeOrganization } from './analyzer/code-organization-analyzer.js';
35
34
  export { getPatternCatalog } from './analyzer/pattern-catalog.js';
36
35
  // ---------------------------------------------------------------------------
37
36
  // analyze — main orchestrator
38
37
  // ---------------------------------------------------------------------------
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
38
  export async function analyze(options) {
60
39
  const { input, context7Client, recommender } = options;
61
- // -------------------------------------------------------------------------
62
40
  // Step 1: Validate input
63
- // -------------------------------------------------------------------------
64
41
  let validatedInput;
65
42
  try {
66
43
  validatedInput = InputSchema.parse(input);
@@ -73,48 +50,41 @@ export async function analyze(options) {
73
50
  issues: err.errors,
74
51
  };
75
52
  }
76
- return {
77
- success: false,
78
- error: `Input validation failed: ${String(err)}`,
79
- };
53
+ return { success: false, error: `Input validation failed: ${String(err)}` };
80
54
  }
81
- // -------------------------------------------------------------------------
82
55
  // Step 2: Scan codebase
83
- // -------------------------------------------------------------------------
84
56
  const scanResult = await scanCodebase(validatedInput);
85
- // -------------------------------------------------------------------------
86
- // Step 2.5: Get library recommendations from the recommender
87
- // -------------------------------------------------------------------------
57
+ // Step 2.5: Get library recommendations
88
58
  const libraryRecs = scanResult.detections.map((detection) => recommender(detection));
89
- // -------------------------------------------------------------------------
90
59
  // Step 3: Verify recommendations with Context7
91
- // -------------------------------------------------------------------------
92
60
  const verificationItems = scanResult.detections.map((detection, i) => {
93
61
  const rec = libraryRecs[i];
94
- return rec
95
- ? { libraryName: rec.library, useCase: detection.patternCategory }
96
- : null;
62
+ return rec ? { libraryName: rec.library, useCase: detection.patternCategory } : null;
97
63
  });
98
64
  const verificationMap = await verifyAllRecommendations(context7Client, verificationItems);
99
- // -------------------------------------------------------------------------
100
- // Step 4 & 5: Score each detection and build RecommendedChange objects
101
- // -------------------------------------------------------------------------
65
+ // Step 4 & 5: Score + build RecommendedChange (inlined)
102
66
  const recommendations = [];
103
67
  for (let i = 0; i < scanResult.detections.length; i++) {
104
68
  const detection = scanResult.detections[i];
105
69
  const rec = libraryRecs[i];
106
70
  if (!rec)
107
- continue; // Skip detections without recommendations
71
+ continue;
108
72
  const verification = verificationMap.get(i) ?? {
109
73
  status: 'unavailable',
110
74
  note: 'No verification result available',
111
75
  };
112
- const scoringOutput = computeImpactScore({
113
- detection,
114
- verification,
115
- weights: validatedInput.impactWeights,
116
- priorityFocusAreas: validatedInput.priorityFocusAreas,
117
- });
76
+ // Inline scoring: confidence → base score, uniform across dimensions
77
+ const baseScore = Math.max(1, Math.min(10, Math.round(3 + detection.confidenceScore * 4)));
78
+ const composite = Math.round(baseScore * 10) / 10;
79
+ // Inline risk derivation
80
+ const migrationRisk = verification.status === 'unavailable' ? 'high'
81
+ : detection.confidenceScore >= 0.7 && verification.status === 'verified' ? 'low'
82
+ : detection.confidenceScore >= 0.4 ? 'medium'
83
+ : 'high';
84
+ // Inline effort estimation
85
+ const lineCount = detection.lineRange.end - detection.lineRange.start + 1;
86
+ const riskMul = migrationRisk === 'low' ? 1.0 : migrationRisk === 'medium' ? 1.5 : 2.5;
87
+ const estimatedEffort = Math.round((2.0 + lineCount * 0.1) * riskMul * 10) / 10;
118
88
  recommendations.push({
119
89
  currentImplementation: {
120
90
  filePath: detection.filePath,
@@ -133,20 +103,28 @@ export async function analyze(options) {
133
103
  alternatives: rec.alternatives,
134
104
  },
135
105
  domain: detection.domain,
136
- impactScores: scoringOutput.scores,
137
- migrationRisk: scoringOutput.migrationRisk,
138
- estimatedEffort: scoringOutput.estimatedEffort,
106
+ impactScores: {
107
+ scalability: baseScore,
108
+ performance: baseScore,
109
+ security: baseScore,
110
+ maintainability: baseScore,
111
+ feature_richness: baseScore,
112
+ ux: baseScore,
113
+ ui_aesthetics: baseScore,
114
+ composite,
115
+ },
116
+ migrationRisk,
117
+ estimatedEffort,
139
118
  verificationStatus: verification.status,
140
119
  verificationNote: verification.note,
141
120
  });
142
121
  }
143
- // -------------------------------------------------------------------------
144
- // Step 6: Apply dependency conflict detection
145
- // -------------------------------------------------------------------------
146
- const conflictChecked = detectDependencyConflicts(recommendations, validatedInput.projectMetadata.currentLibraries);
147
- // -------------------------------------------------------------------------
148
- // Step 6.25: Check peer dependencies
149
- // -------------------------------------------------------------------------
122
+ // Step 6: Dependency conflict detection (inlined)
123
+ const conflictChecked = recommendations.map((rec) => {
124
+ const existing = validatedInput.projectMetadata.currentLibraries[rec.recommendedLibrary.name];
125
+ return existing !== undefined ? { ...rec, migrationRisk: 'high' } : rec;
126
+ });
127
+ // Step 6.25: Peer dependency check
150
128
  let peerWarnings = [];
151
129
  let peerCheckedRecommendations = conflictChecked;
152
130
  try {
@@ -158,13 +136,10 @@ export async function analyze(options) {
158
136
  peerCheckedRecommendations = peerCheckResult.recommendations;
159
137
  }
160
138
  catch {
161
- // Unexpected error — fall back to empty warnings and original recommendations
162
139
  peerWarnings = [];
163
140
  peerCheckedRecommendations = conflictChecked;
164
141
  }
165
- // -------------------------------------------------------------------------
166
- // Step 6.5: Vulnerability scanning (optional — Phase 2)
167
- // -------------------------------------------------------------------------
142
+ // Step 6.5: Vulnerability scanning (optional)
168
143
  let vulnerabilityReport;
169
144
  if (options.vulnClient) {
170
145
  const defaultEcosystem = detectDefaultEcosystem(validatedInput.projectMetadata.packageManagers);
@@ -192,35 +167,73 @@ export async function analyze(options) {
192
167
  serviceUnavailable: vulnResult.serviceUnavailable,
193
168
  };
194
169
  }
195
- // -------------------------------------------------------------------------
196
- // Step 7: Apply license filtering
197
- // -------------------------------------------------------------------------
198
- const { recommendations: filteredRecommendations, exclusions } = filterByLicense(peerCheckedRecommendations, validatedInput.constraints.licenseAllowlist);
199
- // -------------------------------------------------------------------------
200
- // Step 8: Build migration plan
201
- // -------------------------------------------------------------------------
202
- const migrationPlan = buildMigrationPlan(filteredRecommendations);
203
- // -------------------------------------------------------------------------
204
- // Step 9: Audit UX completeness
205
- // -------------------------------------------------------------------------
206
- const uxAuditResult = auditUxCompleteness(scanResult, validatedInput.projectMetadata);
207
- // -------------------------------------------------------------------------
208
- // Step 10: Auto-update existing dependencies (optional — Phase 2)
209
- // -------------------------------------------------------------------------
170
+ // Step 7: License filtering (inlined)
171
+ const licenseAllowlist = validatedInput.constraints.licenseAllowlist;
172
+ const allowSet = new Set(licenseAllowlist);
173
+ const exclusions = [];
174
+ const filteredRecommendations = licenseAllowlist.length === 0
175
+ ? [...peerCheckedRecommendations]
176
+ : peerCheckedRecommendations.filter((rec) => {
177
+ if (allowSet.has(rec.recommendedLibrary.license))
178
+ return true;
179
+ exclusions.push({
180
+ libraryName: rec.recommendedLibrary.name,
181
+ license: rec.recommendedLibrary.license,
182
+ reason: `License "${rec.recommendedLibrary.license}" is not in the allowlist [${licenseAllowlist.join(', ')}]`,
183
+ });
184
+ return false;
185
+ });
186
+ // Step 8: Migration plan (inlined — group by risk, sort by file + composite)
187
+ const riskGroups = {
188
+ low: [], medium: [], high: [],
189
+ };
190
+ for (let i = 0; i < filteredRecommendations.length; i++) {
191
+ const rec = filteredRecommendations[i];
192
+ riskGroups[rec.migrationRisk].push({ index: i, rec });
193
+ }
194
+ for (const risk of ['low', 'medium', 'high']) {
195
+ riskGroups[risk].sort((a, b) => {
196
+ const f = a.rec.currentImplementation.filePath.localeCompare(b.rec.currentImplementation.filePath);
197
+ return f !== 0 ? f : b.rec.impactScores.composite - a.rec.impactScores.composite;
198
+ });
199
+ }
200
+ const riskNames = { low: 'Low-Risk Quick Wins', medium: 'Medium-Risk Improvements', high: 'High-Risk Transformations' };
201
+ const phases = ['low', 'medium', 'high']
202
+ .filter((r) => riskGroups[r].length > 0)
203
+ .map((risk, idx) => ({
204
+ phase: idx + 1,
205
+ name: riskNames[risk],
206
+ steps: riskGroups[risk].map((item) => {
207
+ const step = {
208
+ recommendationIndex: item.index,
209
+ 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)' : ''}`,
210
+ };
211
+ if (risk === 'high') {
212
+ step.adapterStrategy = item.rec.adapterStrategy ?? {
213
+ wrapperInterface: `I${item.rec.currentImplementation.patternCategory}Adapter`,
214
+ legacyCode: item.rec.currentImplementation.filePath,
215
+ targetLibrary: item.rec.recommendedLibrary.name,
216
+ description: `Adapter wrapping legacy ${item.rec.currentImplementation.patternCategory} implementation to transition to ${item.rec.recommendedLibrary.name}`,
217
+ };
218
+ }
219
+ return step;
220
+ }),
221
+ }));
222
+ const deletionChecklist = filteredRecommendations.map((rec) => ({
223
+ filePath: rec.currentImplementation.filePath,
224
+ lineRange: rec.currentImplementation.lineRange,
225
+ reason: `Replaced ${rec.currentImplementation.patternCategory} with ${rec.recommendedLibrary.name}`,
226
+ }));
227
+ // Step 9: UX audit — AI-agent-driven (empty default, agent fills via options.uxAudit)
228
+ const uxAudit = options.uxAudit ?? [];
229
+ // Step 10: Auto-update (simplified — uses update-policy, skips removed scorer/builder)
210
230
  let updatePlan;
211
- if (validatedInput.updatePolicy?.enabled &&
212
- options.registryClient) {
231
+ if (validatedInput.updatePolicy?.enabled && options.registryClient) {
213
232
  const policy = validatedInput.updatePolicy;
214
233
  const defaultEcosystem = detectDefaultEcosystem(validatedInput.projectMetadata.packageManagers);
215
234
  try {
216
- // Fetch version info for all current libraries
217
- const queries = Object.entries(validatedInput.projectMetadata.currentLibraries).map(([name, version]) => ({
218
- ecosystem: defaultEcosystem,
219
- packageName: name,
220
- currentVersion: version,
221
- }));
235
+ const queries = Object.entries(validatedInput.projectMetadata.currentLibraries).map(([name, version]) => ({ ecosystem: defaultEcosystem, packageName: name, currentVersion: version }));
222
236
  const versionInfoMap = await options.registryClient.getVersionInfoBatch(queries);
223
- // Apply update policy
224
237
  const candidates = applyUpdatePolicy(versionInfoMap, {
225
238
  defaultStrategy: policy.defaultStrategy,
226
239
  packageOverrides: policy.packageOverrides,
@@ -229,57 +242,67 @@ export async function analyze(options) {
229
242
  groupRelatedPackages: policy.groupRelatedPackages,
230
243
  pinned: policy.pinned,
231
244
  }, defaultEcosystem);
232
- // Verify changelogs via Context7
233
- const changelogs = await Promise.all(candidates.map((c) => verifyChangelog(context7Client, c.packageName, c.currentVersion, c.targetVersion)));
234
- // Score each update
235
- const scores = candidates.map((candidate, index) => scoreUpdate({
236
- candidate,
237
- changelog: changelogs[index],
245
+ // Simplified: build update items with defaults (AI agent enriches)
246
+ const updates = candidates.map((c) => ({
247
+ packageName: c.packageName,
248
+ ecosystem: c.ecosystem,
249
+ currentVersion: c.currentVersion,
250
+ targetVersion: c.targetVersion,
251
+ updateType: c.updateType,
252
+ urgency: 'routine',
253
+ breakingRisk: 'none',
254
+ impactScores: { scalability: 5, performance: 5, security: 5, maintainability: 5, feature_richness: 5, ux: 5, ui_aesthetics: 5, composite: 5 },
255
+ estimatedEffort: 0.5,
256
+ hasBreakingChanges: false,
257
+ vulnFixCount: 0,
258
+ groupKey: c.groupKey,
238
259
  }));
239
- // Build update plan
240
- updatePlan = buildUpdatePlan(candidates, scores, changelogs);
260
+ const groupMap = new Map();
261
+ for (const item of updates) {
262
+ if (item.groupKey) {
263
+ const g = groupMap.get(item.groupKey) ?? [];
264
+ g.push(item);
265
+ groupMap.set(item.groupKey, g);
266
+ }
267
+ }
268
+ updatePlan = {
269
+ updates,
270
+ groups: [...groupMap.entries()]
271
+ .filter(([, items]) => items.length > 1)
272
+ .map(([groupKey, items]) => ({ groupKey, items, urgency: 'routine' })),
273
+ summary: {
274
+ totalUpdatesAvailable: updates.length,
275
+ critical: 0,
276
+ urgent: 0,
277
+ recommended: 0,
278
+ routine: updates.length,
279
+ estimatedTotalEffort: updates.reduce((sum, u) => sum + u.estimatedEffort, 0),
280
+ },
281
+ };
241
282
  }
242
283
  catch {
243
- // Registry unavailable — skip update plan silently
244
284
  updatePlan = undefined;
245
285
  }
246
286
  }
247
- // -------------------------------------------------------------------------
248
- // Step 11: Assemble OutputSchema
249
- // -------------------------------------------------------------------------
250
- // Compute lines saved estimate from deletion checklist
251
- const linesSavedEstimate = migrationPlan.deletionChecklist.reduce((total, item) => {
252
- if (item.lineRange) {
287
+ // Step 11: Assemble output
288
+ const linesSavedEstimate = deletionChecklist.reduce((total, item) => {
289
+ if (item.lineRange)
253
290
  return total + (item.lineRange.end - item.lineRange.start + 1);
254
- }
255
291
  return total;
256
292
  }, 0);
257
- // Collect files to delete from the deletion checklist
258
- const filesToDelete = [
259
- ...new Set(migrationPlan.deletionChecklist.map((item) => item.filePath)),
260
- ];
293
+ const filesToDelete = [...new Set(deletionChecklist.map((item) => item.filePath))];
261
294
  const output = {
262
295
  recommendedChanges: filteredRecommendations,
263
296
  filesToDelete,
264
297
  linesSavedEstimate,
265
- uxAudit: uxAuditResult.items,
266
- migrationPlan: {
267
- phases: migrationPlan.phases,
268
- deletionChecklist: migrationPlan.deletionChecklist,
269
- peerDependencyWarnings: peerWarnings,
270
- },
271
- // Gap analysis — verify each gap recommendation with Context7
298
+ uxAudit,
299
+ migrationPlan: { phases, deletionChecklist, peerDependencyWarnings: peerWarnings },
272
300
  gapAnalysis: await verifyGaps(options.gaps, context7Client),
273
- // Phase 2 optional sections
274
301
  vulnerabilityReport,
275
302
  updatePlan,
276
303
  };
277
- // -------------------------------------------------------------------------
278
- // Step 12: PR auto-creation (optional — Phase 2)
279
- // -------------------------------------------------------------------------
280
- if (validatedInput.prPolicy?.enabled &&
281
- options.platformClient &&
282
- options.gitOps) {
304
+ // Step 12: PR auto-creation (optional)
305
+ if (validatedInput.prPolicy?.enabled && options.platformClient && options.gitOps) {
283
306
  const prPolicy = validatedInput.prPolicy;
284
307
  const prPlans = planPRs({
285
308
  output,
@@ -305,47 +328,27 @@ export async function analyze(options) {
305
328
  });
306
329
  output.pullRequests = prResults;
307
330
  }
308
- // -------------------------------------------------------------------------
309
- // Step 13: Serialize and return
310
- // -------------------------------------------------------------------------
311
- const json = serializeOutput(output);
312
- const prettyJson = prettyPrint(output);
331
+ // Step 13: Return
313
332
  return {
314
333
  success: true,
315
334
  output,
316
335
  scanResult,
317
- json,
318
- prettyJson,
336
+ json: JSON.stringify(output),
337
+ prettyJson: JSON.stringify(output, null, 2),
319
338
  exclusions,
320
339
  };
321
340
  }
322
341
  // ---------------------------------------------------------------------------
323
342
  // Helpers
324
343
  // ---------------------------------------------------------------------------
325
- /**
326
- * Detect default ecosystem from package manager list.
327
- */
328
344
  function detectDefaultEcosystem(packageManagers) {
329
- const ecosystemMap = {
330
- npm: 'npm',
331
- pnpm: 'npm',
332
- yarn: 'npm',
333
- bun: 'npm',
334
- pip: 'PyPI',
335
- cargo: 'crates.io',
336
- go: 'Go',
337
- };
345
+ const map = { npm: 'npm', pnpm: 'npm', yarn: 'npm', bun: 'npm', pip: 'PyPI', cargo: 'crates.io', go: 'Go' };
338
346
  for (const pm of packageManagers) {
339
- const eco = ecosystemMap[pm];
340
- if (eco)
341
- return eco;
347
+ if (map[pm])
348
+ return map[pm];
342
349
  }
343
350
  return 'npm';
344
351
  }
345
- /**
346
- * Verify gap recommendations with Context7 — same quality guarantee as
347
- * replacement recommendations. Returns undefined if no gaps provided.
348
- */
349
352
  async function verifyGaps(gaps, client) {
350
353
  if (!gaps || gaps.length === 0)
351
354
  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":"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"}
@@ -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;AAOzD,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"}
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
- import { buildPRTitle, buildPRDescription } from './pr-description-builder.js';
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":"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"}
1
+ {"version":3,"file":"pr-executor.js","sourceRoot":"","sources":["../../src/pr-creator/pr-executor.ts"],"names":[],"mappings":"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"}