@girardelli/architect 1.3.0 → 2.1.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.
Files changed (58) hide show
  1. package/README.md +111 -112
  2. package/dist/agent-generator.d.ts +95 -0
  3. package/dist/agent-generator.d.ts.map +1 -0
  4. package/dist/agent-generator.js +1295 -0
  5. package/dist/agent-generator.js.map +1 -0
  6. package/dist/cli.js +76 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/html-reporter.d.ts +8 -2
  9. package/dist/html-reporter.d.ts.map +1 -1
  10. package/dist/html-reporter.js +470 -5
  11. package/dist/html-reporter.js.map +1 -1
  12. package/dist/index.d.ts +26 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +25 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/refactor-engine.d.ts +18 -0
  17. package/dist/refactor-engine.d.ts.map +1 -0
  18. package/dist/refactor-engine.js +86 -0
  19. package/dist/refactor-engine.js.map +1 -0
  20. package/dist/refactor-reporter.d.ts +20 -0
  21. package/dist/refactor-reporter.d.ts.map +1 -0
  22. package/dist/refactor-reporter.js +389 -0
  23. package/dist/refactor-reporter.js.map +1 -0
  24. package/dist/rules/barrel-optimizer.d.ts +13 -0
  25. package/dist/rules/barrel-optimizer.d.ts.map +1 -0
  26. package/dist/rules/barrel-optimizer.js +77 -0
  27. package/dist/rules/barrel-optimizer.js.map +1 -0
  28. package/dist/rules/dead-code-detector.d.ts +21 -0
  29. package/dist/rules/dead-code-detector.d.ts.map +1 -0
  30. package/dist/rules/dead-code-detector.js +117 -0
  31. package/dist/rules/dead-code-detector.js.map +1 -0
  32. package/dist/rules/hub-splitter.d.ts +13 -0
  33. package/dist/rules/hub-splitter.d.ts.map +1 -0
  34. package/dist/rules/hub-splitter.js +110 -0
  35. package/dist/rules/hub-splitter.js.map +1 -0
  36. package/dist/rules/import-organizer.d.ts +13 -0
  37. package/dist/rules/import-organizer.d.ts.map +1 -0
  38. package/dist/rules/import-organizer.js +85 -0
  39. package/dist/rules/import-organizer.js.map +1 -0
  40. package/dist/rules/module-grouper.d.ts +13 -0
  41. package/dist/rules/module-grouper.d.ts.map +1 -0
  42. package/dist/rules/module-grouper.js +110 -0
  43. package/dist/rules/module-grouper.js.map +1 -0
  44. package/dist/types.d.ts +51 -0
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/agent-generator.ts +1401 -0
  48. package/src/cli.ts +83 -2
  49. package/src/html-reporter.ts +496 -6
  50. package/src/index.ts +39 -1
  51. package/src/refactor-engine.ts +117 -0
  52. package/src/refactor-reporter.ts +408 -0
  53. package/src/rules/barrel-optimizer.ts +97 -0
  54. package/src/rules/dead-code-detector.ts +132 -0
  55. package/src/rules/hub-splitter.ts +123 -0
  56. package/src/rules/import-organizer.ts +98 -0
  57. package/src/rules/module-grouper.ts +124 -0
  58. package/src/types.ts +52 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IACzF,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACxG,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC,CAAC;CAC7E;AAED,cAAM,SAAU,YAAW,gBAAgB;IACnC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgE3D,OAAO,CAAC,eAAe;IA6BjB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB7C,KAAK,CACT,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAQ5D,YAAY,CAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IASpE,MAAM,CACV,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAQpD,OAAO,CAAC,mBAAmB;CAiG5B;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC;AAEzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ import { ArchitectureScorer } from './scorer.js';
5
5
  import { DiagramGenerator } from './diagram.js';
6
6
  import { ReportGenerator } from './reporter.js';
7
7
  import { HtmlReportGenerator } from './html-reporter.js';
8
+ import { RefactorEngine } from './refactor-engine.js';
9
+ import { AgentGenerator } from './agent-generator.js';
8
10
  import { ConfigLoader } from './config.js';
9
11
  import { relative } from 'path';
10
12
  class Architect {
@@ -57,6 +59,28 @@ class Architect {
57
59
  // Normalize paths to be relative to project root
58
60
  return this.relativizePaths(report, projectPath);
59
61
  }
62
+ /**
63
+ * Generate a refactoring plan from an analysis report.
64
+ * Uses Tier 1 (rule engine) and Tier 2 (AST) transforms.
65
+ */
66
+ refactor(report, projectPath) {
67
+ const engine = new RefactorEngine();
68
+ return engine.analyze(report, projectPath);
69
+ }
70
+ /**
71
+ * Generate or audit .agent/ directory for a project.
72
+ */
73
+ agents(report, plan, projectPath, outputDir) {
74
+ const generator = new AgentGenerator();
75
+ return generator.generate(report, plan, projectPath, outputDir);
76
+ }
77
+ /**
78
+ * Suggest agents without writing files — dry-run for unified report.
79
+ */
80
+ suggestAgents(report, plan, projectPath) {
81
+ const generator = new AgentGenerator();
82
+ return generator.suggest(report, plan, projectPath);
83
+ }
60
84
  relativizePaths(report, basePath) {
61
85
  const rel = (p) => {
62
86
  if (p.startsWith('/') || p.startsWith('\\')) {
@@ -200,5 +224,5 @@ class Architect {
200
224
  }
201
225
  }
202
226
  export const architect = new Architect();
203
- export { ProjectScanner, ArchitectureAnalyzer, AntiPatternDetector, ArchitectureScorer, DiagramGenerator, ReportGenerator, HtmlReportGenerator, ConfigLoader, };
227
+ export { ProjectScanner, ArchitectureAnalyzer, AntiPatternDetector, ArchitectureScorer, DiagramGenerator, ReportGenerator, HtmlReportGenerator, AgentGenerator, ConfigLoader, };
204
228
  //# sourceMappingURL=index.js.map
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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"}
@@ -0,0 +1,18 @@
1
+ import { AnalysisReport, RefactoringPlan } from './types.js';
2
+ /**
3
+ * Refactoring Engine v2.0
4
+ * Orchestrates Tier 1 (rule-based) and Tier 2 (AST) refactoring rules.
5
+ */
6
+ export declare class RefactorEngine {
7
+ private rules;
8
+ constructor();
9
+ /**
10
+ * Analyze a project and generate a refactoring plan.
11
+ */
12
+ analyze(report: AnalysisReport, projectPath: string): RefactoringPlan;
13
+ /**
14
+ * Estimates the architecture score after applying all refactoring steps.
15
+ */
16
+ private estimateScoreAfter;
17
+ }
18
+ //# sourceMappingURL=refactor-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refactor-engine.d.ts","sourceRoot":"","sources":["../src/refactor-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,eAAe,EAIhB,MAAM,YAAY,CAAC;AASpB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAiB;;IAa9B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe;IA8CrE;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA6B3B"}
@@ -0,0 +1,86 @@
1
+ // ── Tier 1 Rules ──
2
+ import { HubSplitterRule } from './rules/hub-splitter.js';
3
+ import { BarrelOptimizerRule } from './rules/barrel-optimizer.js';
4
+ import { ImportOrganizerRule } from './rules/import-organizer.js';
5
+ import { ModuleGrouperRule } from './rules/module-grouper.js';
6
+ import { DeadCodeDetectorRule } from './rules/dead-code-detector.js';
7
+ /**
8
+ * Refactoring Engine v2.0
9
+ * Orchestrates Tier 1 (rule-based) and Tier 2 (AST) refactoring rules.
10
+ */
11
+ export class RefactorEngine {
12
+ constructor() {
13
+ this.rules = [
14
+ // Tier 1: Rule Engine (pattern matching)
15
+ new HubSplitterRule(),
16
+ new BarrelOptimizerRule(),
17
+ new ImportOrganizerRule(),
18
+ new ModuleGrouperRule(),
19
+ new DeadCodeDetectorRule(),
20
+ ];
21
+ }
22
+ /**
23
+ * Analyze a project and generate a refactoring plan.
24
+ */
25
+ analyze(report, projectPath) {
26
+ const allSteps = [];
27
+ let stepId = 1;
28
+ // Run each rule
29
+ for (const rule of this.rules) {
30
+ const steps = rule.analyze(report, projectPath);
31
+ for (const step of steps) {
32
+ step.id = stepId++;
33
+ allSteps.push(step);
34
+ }
35
+ }
36
+ // Sort by priority
37
+ const priorityOrder = {
38
+ CRITICAL: 0,
39
+ HIGH: 1,
40
+ MEDIUM: 2,
41
+ LOW: 3,
42
+ };
43
+ allSteps.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
44
+ // Re-number after sorting
45
+ allSteps.forEach((s, i) => (s.id = i + 1));
46
+ // Calculate total operations
47
+ const totalOperations = allSteps.reduce((sum, s) => sum + s.operations.length, 0);
48
+ // Estimate score after refactoring
49
+ const estimatedScoreAfter = this.estimateScoreAfter(report, allSteps);
50
+ return {
51
+ timestamp: new Date().toISOString(),
52
+ projectPath,
53
+ currentScore: report.score,
54
+ estimatedScoreAfter,
55
+ steps: allSteps,
56
+ totalOperations,
57
+ tier1Steps: allSteps.filter((s) => s.tier === 1).length,
58
+ tier2Steps: allSteps.filter((s) => s.tier === 2).length,
59
+ };
60
+ }
61
+ /**
62
+ * Estimates the architecture score after applying all refactoring steps.
63
+ */
64
+ estimateScoreAfter(report, steps) {
65
+ const breakdown = { ...report.score.breakdown };
66
+ for (const step of steps) {
67
+ for (const impact of step.scoreImpact) {
68
+ if (impact.metric in breakdown) {
69
+ // Use estimated after value, capped at 95
70
+ const key = impact.metric;
71
+ breakdown[key] = Math.min(95, Math.max(breakdown[key], impact.after));
72
+ }
73
+ }
74
+ }
75
+ // Recalculate overall with same weights
76
+ const overall = Math.round(breakdown.modularity * 0.4 +
77
+ breakdown.coupling * 0.25 +
78
+ breakdown.cohesion * 0.2 +
79
+ breakdown.layering * 0.15);
80
+ return {
81
+ overall: Math.min(100, overall),
82
+ breakdown,
83
+ };
84
+ }
85
+ }
86
+ //# sourceMappingURL=refactor-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refactor-engine.js","sourceRoot":"","sources":["../src/refactor-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { RefactoringPlan } from './types.js';
2
+ /**
3
+ * Generates interactive HTML report for refactoring plans.
4
+ * Includes step-by-step roadmap, score predictions, and file operation previews.
5
+ */
6
+ export declare class RefactorReportGenerator {
7
+ generateHtml(plan: RefactoringPlan): string;
8
+ private scoreColor;
9
+ private escapeHtml;
10
+ private opColor;
11
+ private opIcon;
12
+ private renderHeader;
13
+ private renderScoreComparison;
14
+ private renderSummaryStats;
15
+ private renderRoadmap;
16
+ private renderStep;
17
+ private renderFooter;
18
+ private getStyles;
19
+ }
20
+ //# sourceMappingURL=refactor-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refactor-reporter.d.ts","sourceRoot":"","sources":["../src/refactor-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA+B,MAAM,YAAY,CAAC;AAE1E;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM;IAqB3C,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,qBAAqB;IAwD7B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;CA0KlB"}
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Generates interactive HTML report for refactoring plans.
3
+ * Includes step-by-step roadmap, score predictions, and file operation previews.
4
+ */
5
+ export class RefactorReportGenerator {
6
+ generateHtml(plan) {
7
+ return `<!DOCTYPE html>
8
+ <html lang="en">
9
+ <head>
10
+ <meta charset="UTF-8">
11
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
12
+ <title>Architect Refactoring Plan</title>
13
+ ${this.getStyles()}
14
+ </head>
15
+ <body>
16
+ ${this.renderHeader(plan)}
17
+ <div class="container">
18
+ ${this.renderScoreComparison(plan)}
19
+ ${this.renderSummaryStats(plan)}
20
+ ${this.renderRoadmap(plan)}
21
+ </div>
22
+ ${this.renderFooter()}
23
+ </body>
24
+ </html>`;
25
+ }
26
+ scoreColor(score) {
27
+ if (score >= 70)
28
+ return '#22c55e';
29
+ if (score >= 50)
30
+ return '#f59e0b';
31
+ return '#ef4444';
32
+ }
33
+ escapeHtml(text) {
34
+ return text
35
+ .replace(/&/g, '&amp;')
36
+ .replace(/</g, '&lt;')
37
+ .replace(/>/g, '&gt;')
38
+ .replace(/"/g, '&quot;');
39
+ }
40
+ opColor(type) {
41
+ switch (type) {
42
+ case 'CREATE': return '#22c55e';
43
+ case 'MOVE': return '#3b82f6';
44
+ case 'MODIFY': return '#f59e0b';
45
+ case 'DELETE': return '#ef4444';
46
+ default: return '#64748b';
47
+ }
48
+ }
49
+ opIcon(type) {
50
+ switch (type) {
51
+ case 'CREATE': return '➕';
52
+ case 'MOVE': return '📦';
53
+ case 'MODIFY': return '✏️';
54
+ case 'DELETE': return '🗑️';
55
+ default: return '📄';
56
+ }
57
+ }
58
+ renderHeader(plan) {
59
+ const date = new Date(plan.timestamp).toLocaleDateString('en-US', {
60
+ year: 'numeric', month: 'long', day: 'numeric',
61
+ });
62
+ return `
63
+ <div class="header">
64
+ <h1>🔧 Architect — Refactoring Plan</h1>
65
+ <p class="subtitle">Actionable roadmap to improve your architecture</p>
66
+ <div class="meta">
67
+ <span>📂 <strong>${this.escapeHtml(plan.projectPath)}</strong></span>
68
+ <span>📋 <strong>${plan.steps.length}</strong> steps</span>
69
+ <span>🔄 <strong>${plan.totalOperations}</strong> operations</span>
70
+ <span>📅 <strong>${date}</strong></span>
71
+ </div>
72
+ </div>`;
73
+ }
74
+ renderScoreComparison(plan) {
75
+ const current = plan.currentScore;
76
+ const estimated = plan.estimatedScoreAfter;
77
+ const improvement = estimated.overall - current.overall;
78
+ const metrics = Object.keys(current.breakdown);
79
+ const bars = metrics.map(metric => {
80
+ const before = current.breakdown[metric];
81
+ const after = estimated.breakdown[metric];
82
+ const diff = after - before;
83
+ return `
84
+ <div class="comparison-row">
85
+ <div class="metric-name">${metric}</div>
86
+ <div class="metric-bars">
87
+ <div class="bar-before" style="width: ${before}%; background: ${this.scoreColor(before)}40">
88
+ <span>${before}</span>
89
+ </div>
90
+ <div class="bar-after" style="width: ${after}%; background: ${this.scoreColor(after)}">
91
+ <span>${after}</span>
92
+ </div>
93
+ </div>
94
+ <div class="metric-diff" style="color: ${diff > 0 ? '#22c55e' : '#64748b'}">
95
+ ${diff > 0 ? `+${diff}` : diff === 0 ? '—' : diff}
96
+ </div>
97
+ </div>`;
98
+ }).join('');
99
+ return `
100
+ <h2 class="section-title">📊 Score Prediction</h2>
101
+ <div class="card score-comparison">
102
+ <div class="score-pair">
103
+ <div class="score-box">
104
+ <div class="score-num" style="color: ${this.scoreColor(current.overall)}">${current.overall}</div>
105
+ <div class="score-label">Current</div>
106
+ </div>
107
+ <div class="score-arrow">
108
+ <svg width="60" height="30" viewBox="0 0 60 30">
109
+ <path d="M5 15 L45 15 M40 8 L48 15 L40 22" stroke="#818cf8" stroke-width="2.5" fill="none"/>
110
+ </svg>
111
+ </div>
112
+ <div class="score-box">
113
+ <div class="score-num" style="color: ${this.scoreColor(estimated.overall)}">${estimated.overall}</div>
114
+ <div class="score-label">Estimated</div>
115
+ </div>
116
+ <div class="score-diff" style="color: #22c55e">+${improvement} pts</div>
117
+ </div>
118
+ <div class="score-bars-section">
119
+ <div class="bars-legend">
120
+ <span class="legend-tag before">Before</span>
121
+ <span class="legend-tag after">After</span>
122
+ </div>
123
+ ${bars}
124
+ </div>
125
+ </div>`;
126
+ }
127
+ renderSummaryStats(plan) {
128
+ const criticalCount = plan.steps.filter(s => s.priority === 'CRITICAL').length;
129
+ const highCount = plan.steps.filter(s => s.priority === 'HIGH').length;
130
+ const mediumCount = plan.steps.filter(s => s.priority === 'MEDIUM').length;
131
+ const lowCount = plan.steps.filter(s => s.priority === 'LOW').length;
132
+ return `
133
+ <div class="stats-grid">
134
+ <div class="stat-card">
135
+ <div class="value">${plan.steps.length}</div>
136
+ <div class="label">Total Steps</div>
137
+ </div>
138
+ <div class="stat-card">
139
+ <div class="value">${plan.tier1Steps}</div>
140
+ <div class="label">Tier 1 (Rules)</div>
141
+ </div>
142
+ <div class="stat-card">
143
+ <div class="value">${plan.tier2Steps}</div>
144
+ <div class="label">Tier 2 (AST)</div>
145
+ </div>
146
+ <div class="stat-card">
147
+ <div class="value">${plan.totalOperations}</div>
148
+ <div class="label">File Operations</div>
149
+ </div>
150
+ </div>
151
+ <div class="priority-bar">
152
+ ${criticalCount ? `<div class="prio-seg prio-critical" style="flex: ${criticalCount}">🔴 ${criticalCount}</div>` : ''}
153
+ ${highCount ? `<div class="prio-seg prio-high" style="flex: ${highCount}">🟠 ${highCount}</div>` : ''}
154
+ ${mediumCount ? `<div class="prio-seg prio-medium" style="flex: ${mediumCount}">🔵 ${mediumCount}</div>` : ''}
155
+ ${lowCount ? `<div class="prio-seg prio-low" style="flex: ${lowCount}">🟢 ${lowCount}</div>` : ''}
156
+ </div>`;
157
+ }
158
+ renderRoadmap(plan) {
159
+ if (plan.steps.length === 0) {
160
+ return `
161
+ <h2 class="section-title">✅ No Refactoring Needed</h2>
162
+ <div class="card success-card">
163
+ <p>Your architecture is clean! No refactoring suggestions at this time.</p>
164
+ </div>`;
165
+ }
166
+ const stepsHtml = plan.steps.map(step => this.renderStep(step)).join('');
167
+ return `
168
+ <h2 class="section-title">🗺️ Refactoring Roadmap</h2>
169
+ <div class="roadmap">
170
+ ${stepsHtml}
171
+ </div>`;
172
+ }
173
+ renderStep(step) {
174
+ const operationsHtml = step.operations.map(op => `
175
+ <div class="operation">
176
+ <span class="op-icon">${this.opIcon(op.type)}</span>
177
+ <span class="op-badge" style="background: ${this.opColor(op.type)}20; color: ${this.opColor(op.type)}; border: 1px solid ${this.opColor(op.type)}40">${op.type}</span>
178
+ <code class="op-path">${this.escapeHtml(op.path)}</code>
179
+ ${op.newPath ? `<span class="op-arrow">→</span> <code class="op-path">${this.escapeHtml(op.newPath)}</code>` : ''}
180
+ <div class="op-desc">${this.escapeHtml(op.description)}</div>
181
+ </div>
182
+ `).join('');
183
+ const impactHtml = step.scoreImpact.map(i => `<span class="impact-tag">${i.metric}: ${i.before}→${i.after} <span class="impact-diff">+${i.after - i.before}</span></span>`).join('');
184
+ return `
185
+ <div class="step-card" data-priority="${step.priority}">
186
+ <div class="step-header">
187
+ <div class="step-number">${step.id}</div>
188
+ <div class="step-info">
189
+ <div class="step-title-row">
190
+ <h3>${this.escapeHtml(step.title)}</h3>
191
+ <span class="severity-badge severity-${step.priority}">${step.priority}</span>
192
+ <span class="tier-badge">Tier ${step.tier}</span>
193
+ </div>
194
+ <p class="step-desc">${this.escapeHtml(step.description)}</p>
195
+ <details class="step-details">
196
+ <summary>📖 Why?</summary>
197
+ <p class="rationale">${this.escapeHtml(step.rationale)}</p>
198
+ </details>
199
+ </div>
200
+ </div>
201
+ <div class="step-operations">
202
+ <h4>📋 Operations (${step.operations.length})</h4>
203
+ ${operationsHtml}
204
+ </div>
205
+ <div class="step-impact">
206
+ <h4>📈 Score Impact</h4>
207
+ <div class="impact-tags">${impactHtml}</div>
208
+ </div>
209
+ </div>`;
210
+ }
211
+ renderFooter() {
212
+ return `
213
+ <div class="footer">
214
+ <p>Generated by <a href="https://github.com/camilooscargbaptista/architect">🏗️ Architect v2.0</a> — Refactoring Engine</p>
215
+ <p>By <strong>Camilo Girardelli</strong> · <a href="https://www.girardellitecnologia.com">Girardelli Tecnologia</a></p>
216
+ </div>`;
217
+ }
218
+ getStyles() {
219
+ return `<style>
220
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
221
+ * { margin: 0; padding: 0; box-sizing: border-box; }
222
+ body {
223
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
224
+ background: #0f172a; color: #e2e8f0; line-height: 1.6; min-height: 100vh;
225
+ }
226
+ .container { max-width: 1100px; margin: 0 auto; padding: 2rem; }
227
+
228
+ .header {
229
+ text-align: center; padding: 3rem 2rem;
230
+ background: linear-gradient(135deg, #1e293b 0%, #0f172a 50%, #1e1b4b 100%);
231
+ border-bottom: 1px solid #334155; margin-bottom: 2rem;
232
+ }
233
+ .header h1 {
234
+ font-size: 2.5rem; font-weight: 900;
235
+ background: linear-gradient(135deg, #818cf8, #c084fc, #f472b6);
236
+ -webkit-background-clip: text; -webkit-text-fill-color: transparent;
237
+ margin-bottom: 0.5rem;
238
+ }
239
+ .header .subtitle { color: #94a3b8; font-size: 1.1rem; font-weight: 300; }
240
+ .header .meta {
241
+ margin-top: 1rem; display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap;
242
+ }
243
+ .header .meta span {
244
+ background: #1e293b; padding: 0.4rem 1rem; border-radius: 99px;
245
+ font-size: 0.85rem; color: #94a3b8; border: 1px solid #334155;
246
+ }
247
+ .header .meta span strong { color: #e2e8f0; }
248
+
249
+ .section-title {
250
+ font-size: 1.4rem; font-weight: 700; margin: 2.5rem 0 1rem;
251
+ display: flex; align-items: center; gap: 0.5rem;
252
+ }
253
+
254
+ .card {
255
+ background: #1e293b; border-radius: 16px; border: 1px solid #334155;
256
+ padding: 1.5rem; margin-bottom: 1rem;
257
+ }
258
+ .success-card { border-color: #22c55e40; color: #22c55e; text-align: center; padding: 2rem; }
259
+
260
+ /* Score Comparison */
261
+ .score-comparison { padding: 2rem; }
262
+ .score-pair {
263
+ display: flex; align-items: center; justify-content: center; gap: 1.5rem;
264
+ margin-bottom: 2rem; flex-wrap: wrap;
265
+ }
266
+ .score-box { text-align: center; }
267
+ .score-num { font-size: 3.5rem; font-weight: 900; line-height: 1; }
268
+ .score-label { font-size: 0.85rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; }
269
+ .score-diff { font-size: 1.5rem; font-weight: 700; }
270
+
271
+ .bars-legend { display: flex; gap: 1rem; margin-bottom: 0.5rem; }
272
+ .legend-tag { font-size: 0.75rem; padding: 0.2rem 0.6rem; border-radius: 6px; }
273
+ .legend-tag.before { background: rgba(255,255,255,0.05); color: #94a3b8; }
274
+ .legend-tag.after { background: rgba(129,140,248,0.2); color: #818cf8; }
275
+
276
+ .comparison-row {
277
+ display: flex; align-items: center; gap: 1rem; margin-bottom: 0.5rem;
278
+ }
279
+ .metric-name { width: 100px; font-size: 0.8rem; text-transform: uppercase; color: #94a3b8; font-weight: 600; }
280
+ .metric-bars { flex: 1; position: relative; height: 30px; }
281
+ .bar-before, .bar-after {
282
+ position: absolute; top: 0; left: 0; height: 15px; border-radius: 4px;
283
+ display: flex; align-items: center; padding-left: 6px;
284
+ font-size: 0.7rem; font-weight: 600; transition: width 1s ease;
285
+ }
286
+ .bar-before { top: 0; }
287
+ .bar-after { top: 16px; }
288
+ .metric-diff { width: 50px; text-align: right; font-weight: 700; font-size: 0.85rem; }
289
+
290
+ /* Stats */
291
+ .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
292
+ .stat-card {
293
+ background: linear-gradient(135deg, #1e293b, #0f172a);
294
+ border: 1px solid #334155; border-radius: 16px; padding: 1.5rem; text-align: center;
295
+ }
296
+ .stat-card .value {
297
+ font-size: 2rem; font-weight: 800;
298
+ background: linear-gradient(135deg, #818cf8, #c084fc);
299
+ -webkit-background-clip: text; -webkit-text-fill-color: transparent;
300
+ }
301
+ .stat-card .label { font-size: 0.85rem; color: #94a3b8; margin-top: 0.3rem; }
302
+
303
+ .priority-bar {
304
+ display: flex; border-radius: 12px; overflow: hidden; height: 32px; margin-bottom: 2rem;
305
+ }
306
+ .prio-seg {
307
+ display: flex; align-items: center; justify-content: center;
308
+ font-size: 0.75rem; font-weight: 600;
309
+ }
310
+ .prio-critical { background: #ef444430; color: #ef4444; }
311
+ .prio-high { background: #f59e0b30; color: #f59e0b; }
312
+ .prio-medium { background: #3b82f630; color: #60a5fa; }
313
+ .prio-low { background: #22c55e30; color: #22c55e; }
314
+
315
+ /* Steps */
316
+ .roadmap { display: flex; flex-direction: column; gap: 1rem; }
317
+ .step-card {
318
+ background: #1e293b; border-radius: 16px; border: 1px solid #334155;
319
+ padding: 1.5rem; transition: border-color 0.2s;
320
+ }
321
+ .step-card:hover { border-color: #818cf8; }
322
+ .step-header { display: flex; gap: 1rem; margin-bottom: 1rem; }
323
+ .step-number {
324
+ width: 40px; height: 40px; border-radius: 50%;
325
+ background: linear-gradient(135deg, #818cf8, #c084fc);
326
+ display: flex; align-items: center; justify-content: center;
327
+ font-weight: 800; font-size: 1rem; color: white; flex-shrink: 0;
328
+ }
329
+ .step-info { flex: 1; }
330
+ .step-title-row { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
331
+ .step-title-row h3 { font-size: 1.1rem; font-weight: 700; }
332
+ .step-desc { color: #94a3b8; font-size: 0.9rem; margin-top: 0.3rem; }
333
+
334
+ .severity-badge {
335
+ display: inline-block; padding: 0.15rem 0.5rem; border-radius: 99px;
336
+ font-size: 0.65rem; font-weight: 600; letter-spacing: 0.5px;
337
+ }
338
+ .severity-CRITICAL { background: #dc262620; color: #ef4444; border: 1px solid #ef444440; }
339
+ .severity-HIGH { background: #f59e0b20; color: #f59e0b; border: 1px solid #f59e0b40; }
340
+ .severity-MEDIUM { background: #3b82f620; color: #60a5fa; border: 1px solid #60a5fa40; }
341
+ .severity-LOW { background: #22c55e20; color: #22c55e; border: 1px solid #22c55e40; }
342
+
343
+ .tier-badge {
344
+ background: #818cf815; color: #818cf8; border: 1px solid #818cf830;
345
+ padding: 0.15rem 0.5rem; border-radius: 99px; font-size: 0.65rem; font-weight: 600;
346
+ }
347
+
348
+ .step-details { margin-top: 0.5rem; }
349
+ .step-details summary { cursor: pointer; color: #818cf8; font-size: 0.85rem; font-weight: 500; }
350
+ .rationale { color: #64748b; font-size: 0.85rem; margin-top: 0.3rem; font-style: italic; }
351
+
352
+ .step-operations { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #334155; }
353
+ .step-operations h4 { font-size: 0.85rem; color: #94a3b8; margin-bottom: 0.5rem; }
354
+ .operation { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 0.5rem; flex-wrap: wrap; }
355
+ .op-icon { font-size: 0.9rem; }
356
+ .op-badge { padding: 0.1rem 0.4rem; border-radius: 6px; font-size: 0.65rem; font-weight: 700; }
357
+ .op-path { background: #0f172a; padding: 1px 6px; border-radius: 4px; font-size: 0.8rem; color: #c084fc; }
358
+ .op-arrow { color: #818cf8; font-weight: 700; }
359
+ .op-desc { width: 100%; color: #64748b; font-size: 0.8rem; padding-left: 1.8rem; }
360
+
361
+ .step-impact { margin-top: 0.5rem; }
362
+ .step-impact h4 { font-size: 0.85rem; color: #94a3b8; margin-bottom: 0.3rem; }
363
+ .impact-tags { display: flex; gap: 0.5rem; flex-wrap: wrap; }
364
+ .impact-tag {
365
+ background: #22c55e10; color: #22c55e; border: 1px solid #22c55e30;
366
+ padding: 0.2rem 0.6rem; border-radius: 8px; font-size: 0.75rem; font-weight: 500;
367
+ }
368
+ .impact-diff { font-weight: 700; }
369
+
370
+ .footer {
371
+ text-align: center; padding: 2rem; color: #475569; font-size: 0.85rem;
372
+ border-top: 1px solid #1e293b; margin-top: 3rem;
373
+ }
374
+ .footer a { color: #818cf8; text-decoration: none; }
375
+
376
+ @media (max-width: 768px) {
377
+ .stats-grid { grid-template-columns: repeat(2, 1fr); }
378
+ .score-pair { flex-direction: column; }
379
+ .container { padding: 1rem; }
380
+ }
381
+
382
+ @media print {
383
+ body { background: white; color: #1e293b; }
384
+ .card, .step-card, .stat-card { background: white; border-color: #e2e8f0; }
385
+ }
386
+ </style>`;
387
+ }
388
+ }
389
+ //# sourceMappingURL=refactor-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refactor-reporter.js","sourceRoot":"","sources":["../src/refactor-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { AnalysisReport, RefactorRule, RefactorStep } from '../types.js';
2
+ /**
3
+ * Barrel Optimizer Rule (Tier 1)
4
+ * Analyzes barrel files (__init__.py, index.ts) and suggests optimization.
5
+ * Barrel files that re-export everything create unnecessary coupling.
6
+ */
7
+ export declare class BarrelOptimizerRule implements RefactorRule {
8
+ name: string;
9
+ tier: 1;
10
+ private static readonly BARREL_FILES;
11
+ analyze(report: AnalysisReport, projectPath: string): RefactorStep[];
12
+ }
13
+ //# sourceMappingURL=barrel-optimizer.d.ts.map