faf-cli 2.4.3 → 2.4.5

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 (35) hide show
  1. package/README.md +20 -11
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +13 -4
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/enhance-real.d.ts.map +1 -1
  6. package/dist/commands/enhance-real.js +12 -1
  7. package/dist/commands/enhance-real.js.map +1 -1
  8. package/dist/commands/formats.d.ts.map +1 -1
  9. package/dist/commands/formats.js +3 -4
  10. package/dist/commands/formats.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +3 -7
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/tsa.d.ts +9 -0
  15. package/dist/commands/tsa.d.ts.map +1 -0
  16. package/dist/commands/tsa.js +60 -0
  17. package/dist/commands/tsa.js.map +1 -0
  18. package/dist/commands/version.d.ts.map +1 -1
  19. package/dist/commands/version.js +3 -4
  20. package/dist/commands/version.js.map +1 -1
  21. package/dist/commands/welcome.js +1 -1
  22. package/dist/commands/welcome.js.map +1 -1
  23. package/dist/engines/dependency-tsa.d.ts +89 -0
  24. package/dist/engines/dependency-tsa.d.ts.map +1 -0
  25. package/dist/engines/dependency-tsa.js +365 -0
  26. package/dist/engines/dependency-tsa.js.map +1 -0
  27. package/dist/utils/markdown-to-context.d.ts +28 -0
  28. package/dist/utils/markdown-to-context.d.ts.map +1 -0
  29. package/dist/utils/markdown-to-context.js +195 -0
  30. package/dist/utils/markdown-to-context.js.map +1 -0
  31. package/dist/utils/yaml-generator.d.ts +2 -0
  32. package/dist/utils/yaml-generator.d.ts.map +1 -1
  33. package/dist/utils/yaml-generator.js +30 -13
  34. package/dist/utils/yaml-generator.js.map +1 -1
  35. package/package.json +4 -5
@@ -0,0 +1,9 @@
1
+ /**
2
+ * šŸ›‚ faf tsa - Dependency Intelligence
3
+ * Understanding your project through its dependencies
4
+ */
5
+ export declare function tsaCommand(options: {
6
+ detailed?: boolean;
7
+ }): Promise<void>;
8
+ export declare function tsaQuickCheck(): Promise<number>;
9
+ //# sourceMappingURL=tsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsa.d.ts","sourceRoot":"","sources":["../../src/commands/tsa.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/E;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAWrD"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * šŸ›‚ faf tsa - Dependency Intelligence
4
+ * Understanding your project through its dependencies
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.tsaCommand = tsaCommand;
8
+ exports.tsaQuickCheck = tsaQuickCheck;
9
+ const dependency_tsa_1 = require("../engines/dependency-tsa");
10
+ const championship_style_1 = require("../utils/championship-style");
11
+ async function tsaCommand(options) {
12
+ try {
13
+ console.log();
14
+ console.log(championship_style_1.FAF_COLORS.fafCyan('šŸ›‚ FAF TSA - Dependency Intelligence'));
15
+ console.log(championship_style_1.FAF_COLORS.fafWhite('Analyzing your dependencies for context insights...'));
16
+ console.log();
17
+ const inspector = new dependency_tsa_1.DependencyTSA();
18
+ const report = await inspector.inspect();
19
+ // Display report
20
+ dependency_tsa_1.DependencyTSA.displayReport(report);
21
+ // Add to .faf context
22
+ if (report.contextScore < 70) {
23
+ console.log(championship_style_1.FAF_COLORS.fafOrange('šŸ” Your dependency story is complex'));
24
+ console.log(championship_style_1.FAF_COLORS.fafWhite('Run: faf tsa --detailed for full analysis'));
25
+ }
26
+ else {
27
+ console.log(championship_style_1.FAF_COLORS.fafGreen('✨ Clear dependency architecture detected!'));
28
+ }
29
+ // Show the secret sauce hint
30
+ if (options.detailed) {
31
+ console.log();
32
+ console.log(championship_style_1.FAF_COLORS.fafCyan('šŸ” How FAF TSA Works:'));
33
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' 1. Scans actual usage patterns'));
34
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' 2. Ranks dependencies by importance'));
35
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' 3. Detects architectural patterns'));
36
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' 4. Identifies migration/experimentation'));
37
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' 5. Provides context insights for AI'));
38
+ console.log();
39
+ console.log(championship_style_1.FAF_COLORS.fafOrange('Context intelligence nobody else provides!'));
40
+ }
41
+ }
42
+ catch (error) {
43
+ console.error('TSA Inspection failed:', error);
44
+ process.exit(1);
45
+ }
46
+ }
47
+ async function tsaQuickCheck() {
48
+ /**
49
+ * Quick TSA score for inclusion in .faf
50
+ */
51
+ try {
52
+ const inspector = new dependency_tsa_1.DependencyTSA();
53
+ const report = await inspector.inspect();
54
+ return report.contextScore;
55
+ }
56
+ catch {
57
+ return 0;
58
+ }
59
+ }
60
+ //# sourceMappingURL=tsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsa.js","sourceRoot":"","sources":["../../src/commands/tsa.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH,gCAsCC;AAED,sCAWC;AAtDD,8DAA0D;AAC1D,oEAAoE;AAE7D,KAAK,UAAU,UAAU,CAAC,OAA+B;IAC9D,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,SAAS,GAAG,IAAI,8BAAa,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAEzC,iBAAiB;QACjB,8BAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEpC,sBAAsB;QACtB,IAAI,MAAM,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAClF,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC;;OAEG;IACH,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,8BAAa,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAsB,cAAc,kBAsBnC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAsB,cAAc,kBAoBnC"}
@@ -10,12 +10,11 @@ exports.versionCommand = versionCommand;
10
10
  const chalk_1 = __importDefault(require("chalk"));
11
11
  const championship_style_1 = require("../utils/championship-style");
12
12
  async function versionCommand() {
13
- // Show the FAF banner
14
- console.log((0, championship_style_1.generateFAFHeader)());
13
+ // FAF banner is now shown by cli.ts - removed duplicate
15
14
  const version = require('../../package.json').version;
16
15
  console.log();
17
- console.log(championship_style_1.FAF_COLORS.fafCyan(`šŸ† FAF Championship Edition`));
18
- console.log(championship_style_1.FAF_COLORS.fafCyan(`════════════════════════════`));
16
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`šŸ† FAF Podium Edition šŸ`));
17
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`══════════════════════════`));
19
18
  console.log();
20
19
  console.log(championship_style_1.FAF_COLORS.fafOrange(` Version: ${version}`));
21
20
  console.log(championship_style_1.FAF_COLORS.fafGreen(` Engine: MK2 āš”ļø`));
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAKH,wCAsBC;AAzBD,kDAA0B;AAC1B,oEAA4E;AAErE,KAAK,UAAU,cAAc;IAClC,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,IAAA,sCAAiB,GAAE,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAEtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,SAAS,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAKH,wCAoBC;AAvBD,kDAA0B;AAC1B,oEAA4E;AAErE,KAAK,UAAU,cAAc;IAClC,wDAAwD;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAEtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,SAAS,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
@@ -51,7 +51,7 @@ async function welcomeCommand() {
51
51
  console.log();
52
52
  console.log(championship_style_1.FAF_COLORS.fafCyan('━'.repeat(50)));
53
53
  console.log();
54
- console.log(championship_style_1.FAF_COLORS.fafOrange(` šŸ‘‹ Welcome to FAF - The JPEG for AIā„¢`));
54
+ console.log(championship_style_1.FAF_COLORS.fafOrange(` šŸ‘‹ Welcome to FAF - Project DNA for AI✨`));
55
55
  console.log();
56
56
  console.log(championship_style_1.FAF_COLORS.fafCyan('━'.repeat(50)));
57
57
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
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
+ }
89
+ //# sourceMappingURL=dependency-tsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-tsa.d.ts","sourceRoot":"","sources":["../../src/engines/dependency-tsa.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,YAAY,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,WAAW,GAAE,MAAsB;IAW/C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAsBnC;;OAEG;YACW,cAAc;IAwC5B;;OAEG;YACW,YAAY;IAiD1B;;OAEG;YACW,kBAAkB;IAsBhC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAuDtB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;CA0C9C"}
@@ -0,0 +1,365 @@
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 glob_1 = require("glob");
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
+ const patterns = [
126
+ `**/*.{js,jsx,ts,tsx}`, // Source files
127
+ `!node_modules/**`, // Exclude node_modules
128
+ `!dist/**`, // Exclude build
129
+ `!build/**` // Exclude build
130
+ ];
131
+ const files = await (0, glob_1.glob)(patterns[0], {
132
+ cwd: this.projectRoot,
133
+ ignore: patterns.slice(1).map(p => p.substring(1))
134
+ });
135
+ const locations = [];
136
+ let importCount = 0;
137
+ for (const file of files) {
138
+ const filePath = path.join(this.projectRoot, file);
139
+ const content = fs.readFileSync(filePath, 'utf-8');
140
+ // Check for various import patterns
141
+ const importPatterns = [
142
+ `require\\(['"\`]${pkg}['"\`]\\)`,
143
+ `require\\(['"\`]${pkg}/`,
144
+ `from ['"\`]${pkg}['"\`]`,
145
+ `from ['"\`]${pkg}/`,
146
+ `import\\(['"\`]${pkg}['"\`]\\)`,
147
+ `import\\(['"\`]${pkg}/`
148
+ ];
149
+ for (const pattern of importPatterns) {
150
+ const regex = new RegExp(pattern, 'g');
151
+ const matches = content.match(regex);
152
+ if (matches) {
153
+ importCount += matches.length;
154
+ if (!locations.includes(file)) {
155
+ locations.push(file);
156
+ }
157
+ }
158
+ }
159
+ }
160
+ return {
161
+ importCount,
162
+ fileCount: locations.length,
163
+ locations
164
+ };
165
+ }
166
+ /**
167
+ * šŸ•µļø Gather intelligence about package
168
+ */
169
+ async gatherIntelligence(pkg) {
170
+ const intelligence = {};
171
+ // Skip npm view for now - it's too slow
172
+ // In production, this would be cached/batched
173
+ // Check for known alternatives
174
+ intelligence.alternatives = this.findAlternatives(pkg);
175
+ // Simple bloat score based on known heavy packages
176
+ const heavyPackages = {
177
+ 'moment': 50,
178
+ 'lodash': 30,
179
+ 'inquirer': 40,
180
+ 'webpack': 60,
181
+ 'react': 35
182
+ };
183
+ intelligence.bloatScore = heavyPackages[pkg] || 10;
184
+ return intelligence;
185
+ }
186
+ /**
187
+ * šŸ” Detect duplicate functionality
188
+ */
189
+ detectDuplicates() {
190
+ const duplicates = {};
191
+ // Known duplicate patterns
192
+ const duplicatePatterns = {
193
+ 'http_clients': ['axios', 'request', 'node-fetch', 'got', 'superagent'],
194
+ 'date_libraries': ['moment', 'dayjs', 'date-fns', 'luxon'],
195
+ 'promise_libraries': ['bluebird', 'q', 'when', 'async'],
196
+ 'test_frameworks': ['mocha', 'jest', 'jasmine', 'ava', 'tape'],
197
+ 'bundlers': ['webpack', 'parcel', 'rollup', 'esbuild', 'vite'],
198
+ 'utility_libraries': ['lodash', 'underscore', 'ramda']
199
+ };
200
+ const deps = Object.keys({
201
+ ...this.packageJson.dependencies || {},
202
+ ...this.packageJson.devDependencies || {}
203
+ });
204
+ for (const [category, packages] of Object.entries(duplicatePatterns)) {
205
+ const found = packages.filter(pkg => deps.includes(pkg));
206
+ if (found.length > 1) {
207
+ duplicates[category] = found;
208
+ }
209
+ }
210
+ return duplicates;
211
+ }
212
+ /**
213
+ * šŸ’” Find known alternatives
214
+ */
215
+ findAlternatives(pkg) {
216
+ const alternatives = {
217
+ 'request': ['axios', 'node-fetch', 'native fetch'],
218
+ 'moment': ['dayjs', 'date-fns', 'Intl.DateTimeFormat'],
219
+ 'lodash': ['native methods', 'ramda'],
220
+ 'underscore': ['lodash', 'native methods'],
221
+ 'body-parser': ['express built-in'],
222
+ 'async': ['native promises', 'async/await']
223
+ };
224
+ return alternatives[pkg] || [];
225
+ }
226
+ /**
227
+ * šŸ” Check if package is duplicate
228
+ */
229
+ isDuplicate(pkg) {
230
+ const duplicateGroups = [
231
+ ['axios', 'request', 'node-fetch', 'got'],
232
+ ['moment', 'dayjs', 'date-fns'],
233
+ ['lodash', 'underscore', 'ramda']
234
+ ];
235
+ for (const group of duplicateGroups) {
236
+ if (group.includes(pkg)) {
237
+ const deps = Object.keys(this.packageJson.dependencies || {});
238
+ const count = group.filter(p => deps.includes(p)).length;
239
+ if (count > 1)
240
+ return true;
241
+ }
242
+ }
243
+ return false;
244
+ }
245
+ /**
246
+ * šŸ“Š Get usage pattern description
247
+ */
248
+ getUsagePattern(usage) {
249
+ if (usage.fileCount > 10)
250
+ return 'widely distributed';
251
+ if (usage.fileCount > 5)
252
+ return 'moderately distributed';
253
+ if (usage.fileCount > 1)
254
+ return 'limited distribution';
255
+ return 'single location';
256
+ }
257
+ /**
258
+ * šŸ·ļø Get package category
259
+ */
260
+ getPackageCategory(pkg) {
261
+ const categories = {
262
+ 'HTTP libraries': ['axios', 'request', 'node-fetch', 'got'],
263
+ 'date handling': ['moment', 'dayjs', 'date-fns'],
264
+ 'utility libraries': ['lodash', 'underscore', 'ramda'],
265
+ 'testing': ['jest', 'mocha', 'jasmine'],
266
+ 'build tools': ['webpack', 'vite', 'rollup'],
267
+ 'type checking': ['@types/*', 'typescript'],
268
+ 'linting': ['eslint', 'prettier', 'tslint']
269
+ };
270
+ for (const [category, packages] of Object.entries(categories)) {
271
+ if (packages.some(p => pkg.includes(p.replace('*', '')))) {
272
+ return category;
273
+ }
274
+ }
275
+ return 'general';
276
+ }
277
+ /**
278
+ * šŸ“‹ Generate final TSA report
279
+ */
280
+ generateReport(patterns) {
281
+ const core = this.inspectionResults.filter(r => r.status === 'CORE').length;
282
+ const active = this.inspectionResults.filter(r => r.status === 'ACTIVE').length;
283
+ const dormant = this.inspectionResults.filter(r => r.status === 'DORMANT').length;
284
+ const legacy = this.inspectionResults.filter(r => r.status === 'LEGACY').length;
285
+ const totalPackages = this.inspectionResults.length;
286
+ const contextScore = Math.round((core + active) / totalPackages * 100);
287
+ const insights = [];
288
+ // Generate insights about the project
289
+ if (core > 0) {
290
+ const corePackages = this.inspectionResults.filter(r => r.status === 'CORE').map(r => r.package);
291
+ insights.push(`Core stack: ${corePackages.slice(0, 3).join(', ')}`);
292
+ }
293
+ if (dormant > 0) {
294
+ insights.push(`${dormant} configured packages not actively used - possibly for tooling/CI`);
295
+ }
296
+ if (Object.keys(patterns).length > 0) {
297
+ for (const [category, packages] of Object.entries(patterns)) {
298
+ insights.push(`Multiple ${category}: ${packages.join(' + ')} - possible migration or experimentation`);
299
+ }
300
+ }
301
+ // Detect interesting patterns
302
+ const hasStripe = this.inspectionResults.some(r => r.package.includes('stripe'));
303
+ const hasAuth = this.inspectionResults.some(r => r.package.includes('auth') || r.package.includes('passport') || r.package.includes('jwt'));
304
+ if (hasStripe && !hasAuth) {
305
+ insights.push('Has Stripe but no auth packages - interesting payment architecture');
306
+ }
307
+ const hasLint = this.inspectionResults.some(r => r.package.includes('eslint'));
308
+ const lintUsage = this.inspectionResults.find(r => r.package.includes('eslint'));
309
+ if (hasLint && lintUsage?.status === 'DORMANT') {
310
+ insights.push('ESLint configured but not imported - aspirational code quality?');
311
+ }
312
+ return {
313
+ totalPackages,
314
+ core,
315
+ active,
316
+ dormant,
317
+ legacy,
318
+ patterns,
319
+ contextScore,
320
+ insights,
321
+ inspections: this.inspectionResults
322
+ };
323
+ }
324
+ /**
325
+ * šŸ“Š Display TSA Report
326
+ */
327
+ static displayReport(report) {
328
+ console.log('\nšŸ›‚ ═══════════════════════════════════════════════');
329
+ console.log(' FAF TSA - DEPENDENCY INTELLIGENCE REPORT');
330
+ console.log('═══════════════════════════════════════════════\n');
331
+ console.log(`šŸ“¦ Total Packages Analyzed: ${report.totalPackages}`);
332
+ console.log(`⭐ CORE: ${report.core} (heavily used)`);
333
+ console.log(`āœ… ACTIVE: ${report.active} (in use)`);
334
+ console.log(`šŸ’¤ DORMANT: ${report.dormant} (configured but not imported)`);
335
+ console.log(`šŸ›ļø LEGACY: ${report.legacy} (historical)`);
336
+ console.log();
337
+ console.log(`šŸ“Š Context Score: ${report.contextScore}% (understanding of project)`);
338
+ console.log();
339
+ if (Object.keys(report.patterns).length > 0) {
340
+ console.log('šŸ” Patterns Detected:');
341
+ for (const [category, packages] of Object.entries(report.patterns)) {
342
+ console.log(` ${category}: ${packages.join(' + ')}`);
343
+ }
344
+ console.log();
345
+ }
346
+ if (report.insights.length > 0) {
347
+ console.log('šŸ’” Project Insights:');
348
+ report.insights.forEach(insight => {
349
+ console.log(` • ${insight}`);
350
+ });
351
+ console.log();
352
+ }
353
+ // Show dormant details for context
354
+ const dormantPackages = report.inspections.filter(i => i.status === 'DORMANT');
355
+ if (dormantPackages.length > 0) {
356
+ console.log('šŸ’¤ Dormant Packages (configured but not imported):');
357
+ dormantPackages.forEach(pkg => {
358
+ console.log(` • ${pkg.package}: ${pkg.insight}`);
359
+ });
360
+ }
361
+ console.log('\nšŸ“ Use --detailed flag for complete dependency breakdown');
362
+ }
363
+ }
364
+ exports.DependencyTSA = DependencyTSA;
365
+ //# sourceMappingURL=dependency-tsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-tsa.js","sourceRoot":"","sources":["../../src/engines/dependency-tsa.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,+BAA4B;AAkC5B,MAAa,aAAa;IAChB,WAAW,CAAS;IACpB,WAAW,CAAM;IACjB,iBAAiB,GAA2B,EAAE,CAAC;IAEvD,YAAY,cAAsB,OAAO,CAAC,GAAG,EAAE;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE;YACtC,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE;SAC1C,CAAC;QAEF,gCAAgC;QAChC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAiB,CAAC,CAAC;QACpD,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEzC,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,OAAe;QACvD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAExD,uCAAuC;QACvC,IAAI,MAAM,GAA6C,QAAQ,CAAC;QAEhE,kDAAkD;QAClD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,SAAS,CAAC;YACnB,OAAO,GAAG,4DAA4D,CAAC;QACzE,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAClC,MAAM,GAAG,MAAM,CAAC;YAChB,OAAO,GAAG,0BAA0B,KAAK,CAAC,WAAW,aAAa,KAAK,CAAC,SAAS,QAAQ,CAAC;QAC5F,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,GAAG,QAAQ,CAAC;YAClB,OAAO,GAAG,4BAA4B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/E,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,GAAG,QAAQ,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,WAAW,QAAQ,uCAAuC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,QAAQ,CAAC;YAClB,OAAO,GAAG,aAAa,KAAK,CAAC,SAAS,YAAY,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,GAAG;YACZ,OAAO;YACP,MAAM;YACN,KAAK;YACL,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,GAAW;QACpC,MAAM,QAAQ,GAAG;YACf,sBAAsB,EAAE,eAAe;YACvC,kBAAkB,EAAO,uBAAuB;YAChD,UAAU,EAAe,gBAAgB;YACzC,WAAW,CAAc,gBAAgB;SAC1C,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAA,WAAI,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACpC,GAAG,EAAE,IAAI,CAAC,WAAW;YACrB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEnD,oCAAoC;YACpC,MAAM,cAAc,GAAG;gBACrB,mBAAmB,GAAG,WAAW;gBACjC,mBAAmB,GAAG,GAAG;gBACzB,cAAc,GAAG,QAAQ;gBACzB,cAAc,GAAG,GAAG;gBACpB,kBAAkB,GAAG,WAAW;gBAChC,kBAAkB,GAAG,GAAG;aACzB,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,OAAO,EAAE,CAAC;oBACZ,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW;YACX,SAAS,EAAE,SAAS,CAAC,MAAM;YAC3B,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,MAAM,YAAY,GAAyC,EAAE,CAAC;QAE9D,wCAAwC;QACxC,8CAA8C;QAE9C,+BAA+B;QAC/B,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEvD,mDAAmD;QACnD,MAAM,aAAa,GAA2B;YAC5C,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,YAAY,CAAC,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEnD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,UAAU,GAA6B,EAAE,CAAC;QAEhD,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG;YACxB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC;YACvE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;YAC1D,mBAAmB,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC;YACvD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;YAC9D,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;YAC9D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC;SACvD,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACvB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE;YACtC,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE;SAC1C,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,GAAW;QAClC,MAAM,YAAY,GAA6B;YAC7C,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC;YAClD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC;YACtD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC;YACrC,YAAY,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YAC1C,aAAa,EAAE,CAAC,kBAAkB,CAAC;YACnC,OAAO,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;SAC5C,CAAC;QAEF,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAW;QAC7B,MAAM,eAAe,GAAG;YACtB,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;YACzC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;YAC/B,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC;SAClC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,IAAI,KAAK,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAoC;QAC1D,IAAI,KAAK,CAAC,SAAS,GAAG,EAAE;YAAE,OAAO,oBAAoB,CAAC;QACtD,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;YAAE,OAAO,wBAAwB,CAAC;QACzD,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;YAAE,OAAO,sBAAsB,CAAC;QACvD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,GAAW;QACpC,MAAM,UAAU,GAA6B;YAC3C,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;YAC3D,eAAe,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;YAChD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC;YACtD,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;YACvC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC5C,eAAe,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;YAC3C,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;SAC5C,CAAC;QAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAkC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAEhF,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,sCAAsC;QACtC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjG,QAAQ,CAAC,IAAI,CAAC,eAAe,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,kEAAkE,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,QAAQ,CAAC,IAAI,CAAC,YAAY,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzG,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1F,CAAC;QACF,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,IAAI,OAAO,IAAI,SAAS,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QACnF,CAAC;QAED,OAAO;YACL,aAAa;YACb,IAAI;YACJ,MAAM;YACN,OAAO;YACP,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,QAAQ;YACR,WAAW,EAAE,IAAI,CAAC,iBAAiB;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAiB;QACpC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,iBAAiB,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,eAAe,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,YAAY,8BAA8B,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,mCAAmC;QACnC,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC/E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;CACF;AA5WD,sCA4WC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Markdown to Context Extractor
3
+ * Converts ANY markdown to structured YAML and extracts relevant context
4
+ */
5
+ interface ExtractedContext {
6
+ title?: string;
7
+ description?: string;
8
+ techStack?: string[];
9
+ goals?: string[];
10
+ features?: string[];
11
+ commands?: Record<string, string>;
12
+ dependencies?: string[];
13
+ raw?: Record<string, any>;
14
+ }
15
+ /**
16
+ * Parse markdown and extract structured context
17
+ */
18
+ export declare function markdownToContext(markdown: string): ExtractedContext;
19
+ /**
20
+ * Convert extracted context to FAF-compatible structure
21
+ */
22
+ export declare function contextToFafData(context: ExtractedContext): Partial<any>;
23
+ /**
24
+ * Smart README ingestion - extract only valuable context
25
+ */
26
+ export declare function ingestReadme(readmePath: string): Promise<Partial<any>>;
27
+ export {};
28
+ //# sourceMappingURL=markdown-to-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-to-context.d.ts","sourceRoot":"","sources":["../../src/utils/markdown-to-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAiFpE;AA2BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAUxE;AAqBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAK5E"}