faf-mcp 1.0.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 (207) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/CLAUDE.md +73 -0
  3. package/LICENSE +22 -0
  4. package/README.md +165 -0
  5. package/assets/Project-faf-pckg-json-README.png +0 -0
  6. package/assets/icons/faf-icon-128.png +0 -0
  7. package/assets/icons/faf-icon-256.png +0 -0
  8. package/assets/icons/faf-icon-48.png +0 -0
  9. package/assets/icons/faf-icon-512.png +0 -0
  10. package/assets/icons/orange-smiley.svg +6 -0
  11. package/dist/src/compiler/index.d.ts +7 -0
  12. package/dist/src/compiler/index.js +24 -0
  13. package/dist/src/compiler/index.js.map +1 -0
  14. package/dist/src/compiler/scorer.d.ts +53 -0
  15. package/dist/src/compiler/scorer.js +189 -0
  16. package/dist/src/compiler/scorer.js.map +1 -0
  17. package/dist/src/compiler/slot-validator.d.ts +32 -0
  18. package/dist/src/compiler/slot-validator.js +293 -0
  19. package/dist/src/compiler/slot-validator.js.map +1 -0
  20. package/dist/src/compiler/type-detector.d.ts +62 -0
  21. package/dist/src/compiler/type-detector.js +388 -0
  22. package/dist/src/compiler/type-detector.js.map +1 -0
  23. package/dist/src/config/visibility.d.ts +41 -0
  24. package/dist/src/config/visibility.js +158 -0
  25. package/dist/src/config/visibility.js.map +1 -0
  26. package/dist/src/faf-core/commands/audit.d.ts +21 -0
  27. package/dist/src/faf-core/commands/audit.js +83 -0
  28. package/dist/src/faf-core/commands/audit.js.map +1 -0
  29. package/dist/src/faf-core/commands/auto.d.ts +25 -0
  30. package/dist/src/faf-core/commands/auto.js +74 -0
  31. package/dist/src/faf-core/commands/auto.js.map +1 -0
  32. package/dist/src/faf-core/commands/bi-sync.d.ts +26 -0
  33. package/dist/src/faf-core/commands/bi-sync.js +157 -0
  34. package/dist/src/faf-core/commands/bi-sync.js.map +1 -0
  35. package/dist/src/faf-core/commands/doctor.d.ts +17 -0
  36. package/dist/src/faf-core/commands/doctor.js +198 -0
  37. package/dist/src/faf-core/commands/doctor.js.map +1 -0
  38. package/dist/src/faf-core/commands/enhance.d.ts +46 -0
  39. package/dist/src/faf-core/commands/enhance.js +360 -0
  40. package/dist/src/faf-core/commands/enhance.js.map +1 -0
  41. package/dist/src/faf-core/commands/formats.d.ts +22 -0
  42. package/dist/src/faf-core/commands/formats.js +117 -0
  43. package/dist/src/faf-core/commands/formats.js.map +1 -0
  44. package/dist/src/faf-core/commands/init.d.ts +26 -0
  45. package/dist/src/faf-core/commands/init.js +114 -0
  46. package/dist/src/faf-core/commands/init.js.map +1 -0
  47. package/dist/src/faf-core/commands/innit.d.ts +7 -0
  48. package/dist/src/faf-core/commands/innit.js +13 -0
  49. package/dist/src/faf-core/commands/innit.js.map +1 -0
  50. package/dist/src/faf-core/commands/migrate.d.ts +15 -0
  51. package/dist/src/faf-core/commands/migrate.js +86 -0
  52. package/dist/src/faf-core/commands/migrate.js.map +1 -0
  53. package/dist/src/faf-core/commands/quick.d.ts +16 -0
  54. package/dist/src/faf-core/commands/quick.js +184 -0
  55. package/dist/src/faf-core/commands/quick.js.map +1 -0
  56. package/dist/src/faf-core/commands/score.d.ts +47 -0
  57. package/dist/src/faf-core/commands/score.js +49 -0
  58. package/dist/src/faf-core/commands/score.js.map +1 -0
  59. package/dist/src/faf-core/commands/sync.d.ts +16 -0
  60. package/dist/src/faf-core/commands/sync.js +210 -0
  61. package/dist/src/faf-core/commands/sync.js.map +1 -0
  62. package/dist/src/faf-core/commands/update.d.ts +12 -0
  63. package/dist/src/faf-core/commands/update.js +46 -0
  64. package/dist/src/faf-core/commands/update.js.map +1 -0
  65. package/dist/src/faf-core/commands/validate.d.ts +21 -0
  66. package/dist/src/faf-core/commands/validate.js +81 -0
  67. package/dist/src/faf-core/commands/validate.js.map +1 -0
  68. package/dist/src/faf-core/compiler/faf-compiler.d.ts +138 -0
  69. package/dist/src/faf-core/compiler/faf-compiler.js +794 -0
  70. package/dist/src/faf-core/compiler/faf-compiler.js.map +1 -0
  71. package/dist/src/faf-core/engines/dependency-tsa.d.ts +88 -0
  72. package/dist/src/faf-core/engines/dependency-tsa.js +361 -0
  73. package/dist/src/faf-core/engines/dependency-tsa.js.map +1 -0
  74. package/dist/src/faf-core/engines/fab-formats-processor.d.ts +166 -0
  75. package/dist/src/faf-core/engines/fab-formats-processor.js +1274 -0
  76. package/dist/src/faf-core/engines/fab-formats-processor.js.map +1 -0
  77. package/dist/src/faf-core/engines/faf-dna.d.ts +159 -0
  78. package/dist/src/faf-core/engines/faf-dna.js +554 -0
  79. package/dist/src/faf-core/engines/faf-dna.js.map +1 -0
  80. package/dist/src/faf-core/engines/relentless-context-extractor.d.ts +100 -0
  81. package/dist/src/faf-core/engines/relentless-context-extractor.js +625 -0
  82. package/dist/src/faf-core/engines/relentless-context-extractor.js.map +1 -0
  83. package/dist/src/faf-core/fix-once/colors.d.ts +104 -0
  84. package/dist/src/faf-core/fix-once/colors.js +236 -0
  85. package/dist/src/faf-core/fix-once/colors.js.map +1 -0
  86. package/dist/src/faf-core/fix-once/types.d.ts +257 -0
  87. package/dist/src/faf-core/fix-once/types.js +26 -0
  88. package/dist/src/faf-core/fix-once/types.js.map +1 -0
  89. package/dist/src/faf-core/fix-once/yaml.d.ts +57 -0
  90. package/dist/src/faf-core/fix-once/yaml.js +172 -0
  91. package/dist/src/faf-core/fix-once/yaml.js.map +1 -0
  92. package/dist/src/faf-core/generators/faf-generator-championship.d.ts +16 -0
  93. package/dist/src/faf-core/generators/faf-generator-championship.js +462 -0
  94. package/dist/src/faf-core/generators/faf-generator-championship.js.map +1 -0
  95. package/dist/src/faf-core/utils/balance-visualizer.d.ts +37 -0
  96. package/dist/src/faf-core/utils/balance-visualizer.js +197 -0
  97. package/dist/src/faf-core/utils/balance-visualizer.js.map +1 -0
  98. package/dist/src/faf-core/utils/championship-style.d.ts +109 -0
  99. package/dist/src/faf-core/utils/championship-style.js +219 -0
  100. package/dist/src/faf-core/utils/championship-style.js.map +1 -0
  101. package/dist/src/faf-core/utils/chrome-extension-detector.d.ts +73 -0
  102. package/dist/src/faf-core/utils/chrome-extension-detector.js +268 -0
  103. package/dist/src/faf-core/utils/chrome-extension-detector.js.map +1 -0
  104. package/dist/src/faf-core/utils/fafignore-parser.d.ts +20 -0
  105. package/dist/src/faf-core/utils/fafignore-parser.js +178 -0
  106. package/dist/src/faf-core/utils/fafignore-parser.js.map +1 -0
  107. package/dist/src/faf-core/utils/file-utils.d.ts +112 -0
  108. package/dist/src/faf-core/utils/file-utils.js +846 -0
  109. package/dist/src/faf-core/utils/file-utils.js.map +1 -0
  110. package/dist/src/faf-core/utils/native-file-finder.d.ts +115 -0
  111. package/dist/src/faf-core/utils/native-file-finder.js +211 -0
  112. package/dist/src/faf-core/utils/native-file-finder.js.map +1 -0
  113. package/dist/src/faf-core/utils/platform-detector.d.ts +30 -0
  114. package/dist/src/faf-core/utils/platform-detector.js +218 -0
  115. package/dist/src/faf-core/utils/platform-detector.js.map +1 -0
  116. package/dist/src/faf-core/utils/technical-credit.d.ts +35 -0
  117. package/dist/src/faf-core/utils/technical-credit.js +286 -0
  118. package/dist/src/faf-core/utils/technical-credit.js.map +1 -0
  119. package/dist/src/faf-core/utils/yaml-generator.d.ts +41 -0
  120. package/dist/src/faf-core/utils/yaml-generator.js +360 -0
  121. package/dist/src/faf-core/utils/yaml-generator.js.map +1 -0
  122. package/dist/src/handlers/behavioral-instruction.d.ts +16 -0
  123. package/dist/src/handlers/behavioral-instruction.js +43 -0
  124. package/dist/src/handlers/behavioral-instruction.js.map +1 -0
  125. package/dist/src/handlers/championship-tools.d.ts +113 -0
  126. package/dist/src/handlers/championship-tools.js +2602 -0
  127. package/dist/src/handlers/championship-tools.js.map +1 -0
  128. package/dist/src/handlers/engine-adapter.d.ts +28 -0
  129. package/dist/src/handlers/engine-adapter.js +603 -0
  130. package/dist/src/handlers/engine-adapter.js.map +1 -0
  131. package/dist/src/handlers/fileHandler.d.ts +36 -0
  132. package/dist/src/handlers/fileHandler.js +246 -0
  133. package/dist/src/handlers/fileHandler.js.map +1 -0
  134. package/dist/src/handlers/resources.d.ts +18 -0
  135. package/dist/src/handlers/resources.js +78 -0
  136. package/dist/src/handlers/resources.js.map +1 -0
  137. package/dist/src/handlers/tool-registry.d.ts +23 -0
  138. package/dist/src/handlers/tool-registry.js +68 -0
  139. package/dist/src/handlers/tool-registry.js.map +1 -0
  140. package/dist/src/handlers/tool-types.d.ts +167 -0
  141. package/dist/src/handlers/tool-types.js +7 -0
  142. package/dist/src/handlers/tool-types.js.map +1 -0
  143. package/dist/src/handlers/tools.d.ts +25 -0
  144. package/dist/src/handlers/tools.js +1168 -0
  145. package/dist/src/handlers/tools.js.map +1 -0
  146. package/dist/src/index.d.ts +2 -0
  147. package/dist/src/index.js +17 -0
  148. package/dist/src/index.js.map +1 -0
  149. package/dist/src/server.d.ts +28 -0
  150. package/dist/src/server.js +179 -0
  151. package/dist/src/server.js.map +1 -0
  152. package/dist/src/test-all-functions.d.ts +15 -0
  153. package/dist/src/test-all-functions.js +163 -0
  154. package/dist/src/test-all-functions.js.map +1 -0
  155. package/dist/src/types/mcp-tools.d.ts +53 -0
  156. package/dist/src/types/mcp-tools.js +77 -0
  157. package/dist/src/types/mcp-tools.js.map +1 -0
  158. package/dist/src/types/project-types.d.ts +22 -0
  159. package/dist/src/types/project-types.js +85 -0
  160. package/dist/src/types/project-types.js.map +1 -0
  161. package/dist/src/types/slots.d.ts +39 -0
  162. package/dist/src/types/slots.js +162 -0
  163. package/dist/src/types/slots.js.map +1 -0
  164. package/dist/src/types/tool-visibility.d.ts +36 -0
  165. package/dist/src/types/tool-visibility.js +510 -0
  166. package/dist/src/types/tool-visibility.js.map +1 -0
  167. package/dist/src/utils/auto-path-detection.d.ts +26 -0
  168. package/dist/src/utils/auto-path-detection.js +198 -0
  169. package/dist/src/utils/auto-path-detection.js.map +1 -0
  170. package/dist/src/utils/championship-format.d.ts +30 -0
  171. package/dist/src/utils/championship-format.js +79 -0
  172. package/dist/src/utils/championship-format.js.map +1 -0
  173. package/dist/src/utils/cli-detector.d.ts +20 -0
  174. package/dist/src/utils/cli-detector.js +230 -0
  175. package/dist/src/utils/cli-detector.js.map +1 -0
  176. package/dist/src/utils/display-protocol.d.ts +57 -0
  177. package/dist/src/utils/display-protocol.js +131 -0
  178. package/dist/src/utils/display-protocol.js.map +1 -0
  179. package/dist/src/utils/faf-file-finder.d.ts +59 -0
  180. package/dist/src/utils/faf-file-finder.js +139 -0
  181. package/dist/src/utils/faf-file-finder.js.map +1 -0
  182. package/dist/src/utils/fuzzy-detector.d.ts +56 -0
  183. package/dist/src/utils/fuzzy-detector.js +221 -0
  184. package/dist/src/utils/fuzzy-detector.js.map +1 -0
  185. package/dist/src/utils/path-resolver.d.ts +51 -0
  186. package/dist/src/utils/path-resolver.js +214 -0
  187. package/dist/src/utils/path-resolver.js.map +1 -0
  188. package/dist/src/utils/type-guards.d.ts +9 -0
  189. package/dist/src/utils/type-guards.js +27 -0
  190. package/dist/src/utils/type-guards.js.map +1 -0
  191. package/dist/src/utils/username-detector.d.ts +27 -0
  192. package/dist/src/utils/username-detector.js +90 -0
  193. package/dist/src/utils/username-detector.js.map +1 -0
  194. package/dist/src/utils/visual-style.d.ts +62 -0
  195. package/dist/src/utils/visual-style.js +164 -0
  196. package/dist/src/utils/visual-style.js.map +1 -0
  197. package/dist/src/version.d.ts +9 -0
  198. package/dist/src/version.js +37 -0
  199. package/dist/src/version.js.map +1 -0
  200. package/package.json +114 -0
  201. package/scripts/discord-sync-curated.js +233 -0
  202. package/scripts/discord-sync-final.js +218 -0
  203. package/scripts/discord-sync-simple.js +175 -0
  204. package/scripts/discord-sync-working.js +187 -0
  205. package/scripts/discord-sync.js +181 -0
  206. package/scripts/postinstall.js +46 -0
  207. package/skill/SKILL.md +385 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-compiler.js","sourceRoot":"","sources":["../../../../src/faf-core/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * šŸ›‚ FAF TSA - Dependency Intelligence
3
+ * Context enrichment through dependency analysis
4
+ *
5
+ * "We're INSPECTORS, not trash collectors"
6
+ * We ignore the trash and focus on the important stuff
7
+ * Understanding your project's story through its dependencies
8
+ * NEVER delete - just provide intelligence about what matters
9
+ */
10
+ export interface DependencyInspection {
11
+ package: string;
12
+ version: string;
13
+ status: 'CORE' | 'ACTIVE' | 'DORMANT' | 'LEGACY';
14
+ usage: {
15
+ importCount: number;
16
+ fileCount: number;
17
+ locations: string[];
18
+ };
19
+ intelligence: {
20
+ category?: string;
21
+ purpose?: string;
22
+ alternatives?: string[];
23
+ bloatScore?: number;
24
+ pattern?: string;
25
+ };
26
+ insight: string;
27
+ }
28
+ export interface TSAReport {
29
+ totalPackages: number;
30
+ core: number;
31
+ active: number;
32
+ dormant: number;
33
+ legacy: number;
34
+ patterns: Record<string, string[]>;
35
+ contextScore: number;
36
+ insights: string[];
37
+ inspections: DependencyInspection[];
38
+ }
39
+ export declare class DependencyTSA {
40
+ private projectRoot;
41
+ private packageJson;
42
+ private inspectionResults;
43
+ constructor(projectRoot?: string);
44
+ /**
45
+ * šŸ” Full TSA Inspection
46
+ */
47
+ inspect(): Promise<TSAReport>;
48
+ /**
49
+ * šŸ”Ž Inspect individual package
50
+ */
51
+ private inspectPackage;
52
+ /**
53
+ * šŸ“Š Analyze actual usage in codebase
54
+ */
55
+ private analyzeUsage;
56
+ /**
57
+ * šŸ•µļø Gather intelligence about package
58
+ */
59
+ private gatherIntelligence;
60
+ /**
61
+ * šŸ” Detect duplicate functionality
62
+ */
63
+ private detectDuplicates;
64
+ /**
65
+ * šŸ’” Find known alternatives
66
+ */
67
+ private findAlternatives;
68
+ /**
69
+ * šŸ” Check if package is duplicate
70
+ */
71
+ private isDuplicate;
72
+ /**
73
+ * šŸ“Š Get usage pattern description
74
+ */
75
+ private getUsagePattern;
76
+ /**
77
+ * šŸ·ļø Get package category
78
+ */
79
+ private getPackageCategory;
80
+ /**
81
+ * šŸ“‹ Generate final TSA report
82
+ */
83
+ private generateReport;
84
+ /**
85
+ * šŸ“Š Display TSA Report
86
+ */
87
+ static displayReport(report: TSAReport): void;
88
+ }
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ /**
3
+ * šŸ›‚ FAF TSA - Dependency Intelligence
4
+ * Context enrichment through dependency analysis
5
+ *
6
+ * "We're INSPECTORS, not trash collectors"
7
+ * We ignore the trash and focus on the important stuff
8
+ * Understanding your project's story through its dependencies
9
+ * NEVER delete - just provide intelligence about what matters
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.DependencyTSA = void 0;
46
+ const fs = __importStar(require("fs"));
47
+ const path = __importStar(require("path"));
48
+ const native_file_finder_1 = require("../utils/native-file-finder");
49
+ class DependencyTSA {
50
+ projectRoot;
51
+ packageJson;
52
+ inspectionResults = [];
53
+ constructor(projectRoot = process.cwd()) {
54
+ this.projectRoot = projectRoot;
55
+ const packageJsonPath = path.join(projectRoot, 'package.json');
56
+ if (!fs.existsSync(packageJsonPath)) {
57
+ throw new Error('No package.json found - nothing to inspect!');
58
+ }
59
+ this.packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
60
+ }
61
+ /**
62
+ * šŸ” Full TSA Inspection
63
+ */
64
+ async inspect() {
65
+ console.log('šŸ›‚ FAF TSA - Beginning dependency inspection...');
66
+ const allDeps = {
67
+ ...this.packageJson.dependencies || {},
68
+ ...this.packageJson.devDependencies || {}
69
+ };
70
+ // Phase 1: Scan each dependency
71
+ for (const [pkg, version] of Object.entries(allDeps)) {
72
+ await this.inspectPackage(pkg, version);
73
+ }
74
+ // Phase 2: Detect duplicates and patterns
75
+ const patterns = this.detectDuplicates();
76
+ // Phase 3: Calculate scores
77
+ const report = this.generateReport(patterns);
78
+ return report;
79
+ }
80
+ /**
81
+ * šŸ”Ž Inspect individual package
82
+ */
83
+ async inspectPackage(pkg, version) {
84
+ console.log(` Inspecting ${pkg}...`);
85
+ const usage = await this.analyzeUsage(pkg);
86
+ const intelligence = await this.gatherIntelligence(pkg);
87
+ // Determine status based on inspection
88
+ let status = 'ACTIVE';
89
+ // TSA Context Engine - Understanding, not judging
90
+ let insight = '';
91
+ if (usage.importCount === 0) {
92
+ status = 'DORMANT';
93
+ insight = `Not imported but configured - possibly for tooling/scripts`;
94
+ }
95
+ else if (usage.importCount > 10) {
96
+ status = 'CORE';
97
+ insight = `Core dependency - used ${usage.importCount} times in ${usage.fileCount} files`;
98
+ }
99
+ else if (usage.importCount === 1 && usage.fileCount === 1) {
100
+ status = 'ACTIVE';
101
+ insight = `Single-purpose - used in ${usage.locations[0] || 'one location'}`;
102
+ }
103
+ else if (this.isDuplicate(pkg)) {
104
+ status = 'ACTIVE';
105
+ const category = this.getPackageCategory(pkg);
106
+ insight = `Part of ${category} pattern - multiple solutions present`;
107
+ }
108
+ else {
109
+ status = 'ACTIVE';
110
+ insight = `Active in ${usage.fileCount} files - ${this.getUsagePattern(usage)}`;
111
+ }
112
+ this.inspectionResults.push({
113
+ package: pkg,
114
+ version,
115
+ status,
116
+ usage,
117
+ intelligence,
118
+ insight
119
+ });
120
+ }
121
+ /**
122
+ * šŸ“Š Analyze actual usage in codebase
123
+ */
124
+ async analyzeUsage(pkg) {
125
+ // Use native file finder instead of glob - DC VICTORY!
126
+ const files = await (0, native_file_finder_1.findSourceFiles)(this.projectRoot, {
127
+ types: 'all', // Gets js, jsx, ts, tsx, and more
128
+ ignore: ['node_modules', 'dist', 'build'],
129
+ maxFiles: 1000 // Reasonable limit for performance
130
+ });
131
+ const locations = [];
132
+ let importCount = 0;
133
+ for (const file of files) {
134
+ const filePath = path.join(this.projectRoot, file);
135
+ const content = fs.readFileSync(filePath, 'utf-8');
136
+ // Check for various import patterns
137
+ const importPatterns = [
138
+ `require\\(['"\`]${pkg}['"\`]\\)`,
139
+ `require\\(['"\`]${pkg}/`,
140
+ `from ['"\`]${pkg}['"\`]`,
141
+ `from ['"\`]${pkg}/`,
142
+ `import\\(['"\`]${pkg}['"\`]\\)`,
143
+ `import\\(['"\`]${pkg}/`
144
+ ];
145
+ for (const pattern of importPatterns) {
146
+ const regex = new RegExp(pattern, 'g');
147
+ const matches = content.match(regex);
148
+ if (matches) {
149
+ importCount += matches.length;
150
+ if (!locations.includes(file)) {
151
+ locations.push(file);
152
+ }
153
+ }
154
+ }
155
+ }
156
+ return {
157
+ importCount,
158
+ fileCount: locations.length,
159
+ locations
160
+ };
161
+ }
162
+ /**
163
+ * šŸ•µļø Gather intelligence about package
164
+ */
165
+ async gatherIntelligence(pkg) {
166
+ const intelligence = {};
167
+ // Skip npm view for now - it's too slow
168
+ // In production, this would be cached/batched
169
+ // Check for known alternatives
170
+ intelligence.alternatives = this.findAlternatives(pkg);
171
+ // Simple bloat score based on known heavy packages
172
+ const heavyPackages = {
173
+ 'moment': 50,
174
+ 'lodash': 30,
175
+ 'inquirer': 40,
176
+ 'webpack': 60,
177
+ 'react': 35
178
+ };
179
+ intelligence.bloatScore = heavyPackages[pkg] || 10;
180
+ return intelligence;
181
+ }
182
+ /**
183
+ * šŸ” Detect duplicate functionality
184
+ */
185
+ detectDuplicates() {
186
+ const duplicates = {};
187
+ // Known duplicate patterns
188
+ const duplicatePatterns = {
189
+ 'http_clients': ['axios', 'request', 'node-fetch', 'got', 'superagent'],
190
+ 'date_libraries': ['moment', 'dayjs', 'date-fns', 'luxon'],
191
+ 'promise_libraries': ['bluebird', 'q', 'when', 'async'],
192
+ 'test_frameworks': ['mocha', 'jest', 'jasmine', 'ava', 'tape'],
193
+ 'bundlers': ['webpack', 'parcel', 'rollup', 'esbuild', 'vite'],
194
+ 'utility_libraries': ['lodash', 'underscore', 'ramda']
195
+ };
196
+ const deps = Object.keys({
197
+ ...this.packageJson.dependencies || {},
198
+ ...this.packageJson.devDependencies || {}
199
+ });
200
+ for (const [category, packages] of Object.entries(duplicatePatterns)) {
201
+ const found = packages.filter(pkg => deps.includes(pkg));
202
+ if (found.length > 1) {
203
+ duplicates[category] = found;
204
+ }
205
+ }
206
+ return duplicates;
207
+ }
208
+ /**
209
+ * šŸ’” Find known alternatives
210
+ */
211
+ findAlternatives(pkg) {
212
+ const alternatives = {
213
+ 'request': ['axios', 'node-fetch', 'native fetch'],
214
+ 'moment': ['dayjs', 'date-fns', 'Intl.DateTimeFormat'],
215
+ 'lodash': ['native methods', 'ramda'],
216
+ 'underscore': ['lodash', 'native methods'],
217
+ 'body-parser': ['express built-in'],
218
+ 'async': ['native promises', 'async/await']
219
+ };
220
+ return alternatives[pkg] || [];
221
+ }
222
+ /**
223
+ * šŸ” Check if package is duplicate
224
+ */
225
+ isDuplicate(pkg) {
226
+ const duplicateGroups = [
227
+ ['axios', 'request', 'node-fetch', 'got'],
228
+ ['moment', 'dayjs', 'date-fns'],
229
+ ['lodash', 'underscore', 'ramda']
230
+ ];
231
+ for (const group of duplicateGroups) {
232
+ if (group.includes(pkg)) {
233
+ const deps = Object.keys(this.packageJson.dependencies || {});
234
+ const count = group.filter(p => deps.includes(p)).length;
235
+ if (count > 1)
236
+ return true;
237
+ }
238
+ }
239
+ return false;
240
+ }
241
+ /**
242
+ * šŸ“Š Get usage pattern description
243
+ */
244
+ getUsagePattern(usage) {
245
+ if (usage.fileCount > 10)
246
+ return 'widely distributed';
247
+ if (usage.fileCount > 5)
248
+ return 'moderately distributed';
249
+ if (usage.fileCount > 1)
250
+ return 'limited distribution';
251
+ return 'single location';
252
+ }
253
+ /**
254
+ * šŸ·ļø Get package category
255
+ */
256
+ getPackageCategory(pkg) {
257
+ const categories = {
258
+ 'HTTP libraries': ['axios', 'request', 'node-fetch', 'got'],
259
+ 'date handling': ['moment', 'dayjs', 'date-fns'],
260
+ 'utility libraries': ['lodash', 'underscore', 'ramda'],
261
+ 'testing': ['jest', 'mocha', 'jasmine'],
262
+ 'build tools': ['webpack', 'vite', 'rollup'],
263
+ 'type checking': ['@types/*', 'typescript'],
264
+ 'linting': ['eslint', 'prettier', 'tslint']
265
+ };
266
+ for (const [category, packages] of Object.entries(categories)) {
267
+ if (packages.some(p => pkg.includes(p.replace('*', '')))) {
268
+ return category;
269
+ }
270
+ }
271
+ return 'general';
272
+ }
273
+ /**
274
+ * šŸ“‹ Generate final TSA report
275
+ */
276
+ generateReport(patterns) {
277
+ const core = this.inspectionResults.filter(r => r.status === 'CORE').length;
278
+ const active = this.inspectionResults.filter(r => r.status === 'ACTIVE').length;
279
+ const dormant = this.inspectionResults.filter(r => r.status === 'DORMANT').length;
280
+ const legacy = this.inspectionResults.filter(r => r.status === 'LEGACY').length;
281
+ const totalPackages = this.inspectionResults.length;
282
+ const contextScore = Math.round((core + active) / totalPackages * 100);
283
+ const insights = [];
284
+ // Generate insights about the project
285
+ if (core > 0) {
286
+ const corePackages = this.inspectionResults.filter(r => r.status === 'CORE').map(r => r.package);
287
+ insights.push(`Core stack: ${corePackages.slice(0, 3).join(', ')}`);
288
+ }
289
+ if (dormant > 0) {
290
+ insights.push(`${dormant} configured packages not actively used - possibly for tooling/CI`);
291
+ }
292
+ if (Object.keys(patterns).length > 0) {
293
+ for (const [category, packages] of Object.entries(patterns)) {
294
+ insights.push(`Multiple ${category}: ${packages.join(' + ')} - possible migration or experimentation`);
295
+ }
296
+ }
297
+ // Detect interesting patterns
298
+ const hasStripe = this.inspectionResults.some(r => r.package.includes('stripe'));
299
+ const hasAuth = this.inspectionResults.some(r => r.package.includes('auth') || r.package.includes('passport') || r.package.includes('jwt'));
300
+ if (hasStripe && !hasAuth) {
301
+ insights.push('Has Stripe but no auth packages - interesting payment architecture');
302
+ }
303
+ const hasLint = this.inspectionResults.some(r => r.package.includes('eslint'));
304
+ const lintUsage = this.inspectionResults.find(r => r.package.includes('eslint'));
305
+ if (hasLint && lintUsage?.status === 'DORMANT') {
306
+ insights.push('ESLint configured but not imported - aspirational code quality?');
307
+ }
308
+ return {
309
+ totalPackages,
310
+ core,
311
+ active,
312
+ dormant,
313
+ legacy,
314
+ patterns,
315
+ contextScore,
316
+ insights,
317
+ inspections: this.inspectionResults
318
+ };
319
+ }
320
+ /**
321
+ * šŸ“Š Display TSA Report
322
+ */
323
+ static displayReport(report) {
324
+ console.log('\nšŸ›‚ ═══════════════════════════════════════════════');
325
+ console.log(' FAF TSA - DEPENDENCY INTELLIGENCE REPORT');
326
+ console.log('═══════════════════════════════════════════════\n');
327
+ console.log(`šŸ“¦ Total Packages Analyzed: ${report.totalPackages}`);
328
+ console.log(`⭐ CORE: ${report.core} (heavily used)`);
329
+ console.log(`āœ… ACTIVE: ${report.active} (in use)`);
330
+ console.log(`šŸ’¤ DORMANT: ${report.dormant} (configured but not imported)`);
331
+ console.log(`šŸ›ļø LEGACY: ${report.legacy} (historical)`);
332
+ console.log();
333
+ console.log(`šŸ“Š Context Score: ${report.contextScore}% (understanding of project)`);
334
+ console.log();
335
+ if (Object.keys(report.patterns).length > 0) {
336
+ console.log('šŸ” Patterns Detected:');
337
+ for (const [category, packages] of Object.entries(report.patterns)) {
338
+ console.log(` ${category}: ${packages.join(' + ')}`);
339
+ }
340
+ console.log();
341
+ }
342
+ if (report.insights.length > 0) {
343
+ console.log('šŸ’” Project Insights:');
344
+ report.insights.forEach(insight => {
345
+ console.log(` • ${insight}`);
346
+ });
347
+ console.log();
348
+ }
349
+ // Show dormant details for context
350
+ const dormantPackages = report.inspections.filter(i => i.status === 'DORMANT');
351
+ if (dormantPackages.length > 0) {
352
+ console.log('šŸ’¤ Dormant Packages (configured but not imported):');
353
+ dormantPackages.forEach(pkg => {
354
+ console.log(` • ${pkg.package}: ${pkg.insight}`);
355
+ });
356
+ }
357
+ console.log('\nšŸ“ Use --detailed flag for complete dependency breakdown');
358
+ }
359
+ }
360
+ exports.DependencyTSA = DependencyTSA;
361
+ //# sourceMappingURL=dependency-tsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-tsa.js","sourceRoot":"","sources":["../../../../src/faf-core/engines/dependency-tsa.ts"],"names":[],"mappings":"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"}