faf-mcp 1.3.1 → 2.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 (100) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/CLAUDE.md +5 -5
  3. package/README.md +70 -14
  4. package/assets/thumbnail.png +0 -0
  5. package/dist/src/faf-core/commands/agents.d.ts +29 -0
  6. package/dist/src/faf-core/commands/agents.js +140 -0
  7. package/dist/src/faf-core/commands/agents.js.map +1 -0
  8. package/dist/src/faf-core/commands/bi-sync.d.ts +9 -5
  9. package/dist/src/faf-core/commands/bi-sync.js +89 -85
  10. package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
  11. package/dist/src/faf-core/commands/conductor.d.ts +25 -0
  12. package/dist/src/faf-core/commands/conductor.js +157 -0
  13. package/dist/src/faf-core/commands/conductor.js.map +1 -0
  14. package/dist/src/faf-core/commands/cursor.d.ts +29 -0
  15. package/dist/src/faf-core/commands/cursor.js +134 -0
  16. package/dist/src/faf-core/commands/cursor.js.map +1 -0
  17. package/dist/src/faf-core/commands/gemini.d.ts +29 -0
  18. package/dist/src/faf-core/commands/gemini.js +133 -0
  19. package/dist/src/faf-core/commands/gemini.js.map +1 -0
  20. package/dist/src/faf-core/commands/git-context.d.ts +23 -0
  21. package/dist/src/faf-core/commands/git-context.js +66 -0
  22. package/dist/src/faf-core/commands/git-context.js.map +1 -0
  23. package/dist/src/faf-core/commands/human.d.ts +27 -0
  24. package/dist/src/faf-core/commands/human.js +183 -0
  25. package/dist/src/faf-core/commands/human.js.map +1 -0
  26. package/dist/src/faf-core/commands/readme.d.ts +47 -0
  27. package/dist/src/faf-core/commands/readme.js +361 -0
  28. package/dist/src/faf-core/commands/readme.js.map +1 -0
  29. package/dist/src/faf-core/engines/fab-formats-processor.js +3 -3
  30. package/dist/src/faf-core/engines/fab-formats-processor.js.map +1 -1
  31. package/dist/src/faf-core/engines/faf-dna.d.ts +1 -1
  32. package/dist/src/faf-core/engines/faf-dna.js +4 -3
  33. package/dist/src/faf-core/engines/faf-dna.js.map +1 -1
  34. package/dist/src/faf-core/generators/faf-generator-championship.js +9 -8
  35. package/dist/src/faf-core/generators/faf-generator-championship.js.map +1 -1
  36. package/dist/src/faf-core/parsers/agents-parser.d.ts +59 -0
  37. package/dist/src/faf-core/parsers/agents-parser.js +324 -0
  38. package/dist/src/faf-core/parsers/agents-parser.js.map +1 -0
  39. package/dist/src/faf-core/parsers/conductor-parser.d.ts +85 -0
  40. package/dist/src/faf-core/parsers/conductor-parser.js +293 -0
  41. package/dist/src/faf-core/parsers/conductor-parser.js.map +1 -0
  42. package/dist/src/faf-core/parsers/cursorrules-parser.d.ts +57 -0
  43. package/dist/src/faf-core/parsers/cursorrules-parser.js +317 -0
  44. package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -0
  45. package/dist/src/faf-core/parsers/faf-git-generator.d.ts +53 -0
  46. package/dist/src/faf-core/parsers/faf-git-generator.js +512 -0
  47. package/dist/src/faf-core/parsers/faf-git-generator.js.map +1 -0
  48. package/dist/src/faf-core/parsers/gemini-parser.d.ts +57 -0
  49. package/dist/src/faf-core/parsers/gemini-parser.js +263 -0
  50. package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -0
  51. package/dist/src/faf-core/parsers/github-extractor.d.ts +61 -0
  52. package/dist/src/faf-core/parsers/github-extractor.js +374 -0
  53. package/dist/src/faf-core/parsers/github-extractor.js.map +1 -0
  54. package/dist/src/faf-core/parsers/index.d.ts +12 -0
  55. package/dist/src/{compiler → faf-core/parsers}/index.js +10 -5
  56. package/dist/src/faf-core/parsers/index.js.map +1 -0
  57. package/dist/src/faf-core/parsers/slot-counter.d.ts +55 -0
  58. package/dist/src/faf-core/parsers/slot-counter.js +100 -0
  59. package/dist/src/faf-core/parsers/slot-counter.js.map +1 -0
  60. package/dist/src/faf-core/utils/balance-visualizer.js +3 -3
  61. package/dist/src/faf-core/utils/balance-visualizer.js.map +1 -1
  62. package/dist/src/handlers/championship-tools.d.ts +10 -5
  63. package/dist/src/handlers/championship-tools.js +259 -232
  64. package/dist/src/handlers/championship-tools.js.map +1 -1
  65. package/dist/src/handlers/engine-adapter.js +238 -5
  66. package/dist/src/handlers/engine-adapter.js.map +1 -1
  67. package/dist/src/handlers/tools.d.ts +61 -0
  68. package/dist/src/handlers/tools.js +2103 -102
  69. package/dist/src/handlers/tools.js.map +1 -1
  70. package/dist/src/index.js +0 -0
  71. package/dist/src/types/tool-visibility.js +51 -10
  72. package/dist/src/types/tool-visibility.js.map +1 -1
  73. package/dist/src/utils/championship-format.js +11 -9
  74. package/dist/src/utils/championship-format.js.map +1 -1
  75. package/dist/src/utils/path-resolver.js +56 -2
  76. package/dist/src/utils/path-resolver.js.map +1 -1
  77. package/dist/src/utils/visual-style.js +7 -5
  78. package/dist/src/utils/visual-style.js.map +1 -1
  79. package/dist/src/version.js +24 -11
  80. package/dist/src/version.js.map +1 -1
  81. package/package.json +5 -3
  82. package/project.faf +14 -18
  83. package/dist/index.json +0 -1
  84. package/dist/src/compiler/index.d.ts +0 -7
  85. package/dist/src/compiler/index.js.map +0 -1
  86. package/dist/src/compiler/scorer.d.ts +0 -53
  87. package/dist/src/compiler/scorer.js +0 -189
  88. package/dist/src/compiler/scorer.js.map +0 -1
  89. package/dist/src/compiler/slot-validator.d.ts +0 -32
  90. package/dist/src/compiler/slot-validator.js +0 -293
  91. package/dist/src/compiler/slot-validator.js.map +0 -1
  92. package/dist/src/compiler/type-detector.d.ts +0 -62
  93. package/dist/src/compiler/type-detector.js +0 -388
  94. package/dist/src/compiler/type-detector.js.map +0 -1
  95. package/dist/src/types/project-types.d.ts +0 -22
  96. package/dist/src/types/project-types.js +0 -85
  97. package/dist/src/types/project-types.js.map +0 -1
  98. package/dist/src/types/slots.d.ts +0 -39
  99. package/dist/src/types/slots.js +0 -162
  100. package/dist/src/types/slots.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"path-resolver.js","sourceRoot":"","sources":["../../../src/utils/path-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-resolver.js","sourceRoot":"","sources":["../../../src/utils/path-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8EH,4CAEC;AAKD,oDAGC;AAsCD,gDA2FC;AAKD,0DAKC;AAKD,oDASC;AAKD,wDAmBC;AAvQD,2CAA6B;AAC7B,uCAAyB;AACzB,uCAAyB;AAgBzB;;GAEG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,8BAA8B;SACvD,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,2BAA2B;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAwB;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,mBAAmB;IACnB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAErC,eAAe;gBACf,IAAI,QAAQ,KAAK,cAAc,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAChC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;wBACb,2CAA2C;wBAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAClC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC,qCAAqC;IACrC,MAAM,eAAe,GAAG;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAW,uBAAuB;QACnE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;KAC3B,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,SAAkB,EAClB,OAAwB;IAExB,iCAAiC;IACjC,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvE,yBAAyB;QACzB,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEzD,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,WAAW;YACX,WAAW;YACX,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAE3D,OAAO;gBACL,WAAW,EAAE,YAAY;gBACzB,WAAW;gBACX,WAAW;gBACX,MAAM,EAAE,WAAW;aACpB,CAAC;QACJ,CAAC;QAED,wDAAwD;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE1D,OAAO;YACL,WAAW;YACX,WAAW;YACX,WAAW;YACX,MAAM,EAAE,WAAW;SACpB,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,YAAY,EAAE,CAAC;QACjB,qCAAqC;QACrC,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAE3D,OAAO;gBACL,WAAW,EAAE,YAAY;gBACzB,WAAW;gBACX,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,cAAc;aACvB,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE1D,OAAO;YACL,WAAW;YACX,WAAW;YACX,WAAW,EAAE,YAAY;YACzB,MAAM,EAAE,cAAc;SACvB,CAAC;IACJ,CAAC;IAED,WAAW;IACX,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAE1D,OAAO;QACL,WAAW;QACX,WAAW;QACX,WAAW;QACX,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,4BAA4B;IAC5B,MAAM,cAAc,GAAG;QACrB,iBAAiB;QACjB,eAAe;QACf,eAAe;KAChB,CAAC;IAEF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,UAA0B;IAC/D,MAAM,WAAW,GAAG;QAClB,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,UAAU,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACzC,OAAO,GAAG,KAAK,uBAAuB,UAAU,CAAC,WAAW,mBAAmB,UAAU,CAAC,WAAW,GAAG,CAAC;IAC3G,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,0BAA0B,UAAU,CAAC,WAAW,mBAAmB,UAAU,CAAC,WAAW,oEAAoE,CAAC;IAC/K,CAAC;IAED,OAAO,GAAG,KAAK,iBAAiB,UAAU,CAAC,WAAW,GAAG,CAAC;AAC5D,CAAC"}
@@ -53,14 +53,16 @@ function getScoreMedal(score) {
53
53
  if (score >= 99)
54
54
  return { medal: '🥇', status: 'Gold' };
55
55
  if (score >= 95)
56
- return { medal: '🥈', status: 'Target 2 - Silver' };
56
+ return { medal: '🥈', status: 'Silver' };
57
57
  if (score >= 85)
58
- return { medal: '🥉', status: 'Target 1 - Bronze' };
58
+ return { medal: '🥉', status: 'Bronze' };
59
59
  if (score >= 70)
60
- return { medal: '🟢', status: 'GO! - Ready for Target 1' };
60
+ return { medal: '🟢', status: 'Green - Solid foundation' };
61
61
  if (score >= 55)
62
- return { medal: '🟡', status: 'Caution - Getting ready' };
63
- return { medal: '🔴', status: 'Stop - Needs work' };
62
+ return { medal: '🟡', status: 'Yellow - Needs improvement' };
63
+ if (score > 0)
64
+ return { medal: '🔴', status: 'Red - AI working blind' };
65
+ return { medal: '🤍', status: 'White - Empty' };
64
66
  }
65
67
  /**
66
68
  * Format score display with Championship Medal System
@@ -1 +1 @@
1
- {"version":3,"file":"visual-style.js","sourceRoot":"","sources":["../../../src/utils/visual-style.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visual-style.js","sourceRoot":"","sources":["../../../src/utils/visual-style.ts"],"names":[],"mappings":"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"}
@@ -17,18 +17,31 @@ function getVersion() {
17
17
  if (cachedVersion) {
18
18
  return cachedVersion;
19
19
  }
20
- try {
21
- // __dirname in compiled code is dist/src, so we need to go up two levels to reach package.json
22
- const packageJsonPath = (0, path_1.join)(__dirname, '..', '..', 'package.json');
23
- const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
24
- cachedVersion = packageJson.version;
25
- return cachedVersion;
26
- }
27
- catch (error) {
28
- // Fallback if package.json read fails (should never happen in production)
29
- console.error('Failed to read version from package.json:', error);
30
- return 'unknown';
20
+ // Try multiple possible locations for package.json
21
+ // - From dist/src (production): ../../package.json
22
+ // - From src (tests): ../package.json
23
+ // - From cwd (fallback): ./package.json
24
+ const possiblePaths = [
25
+ (0, path_1.join)(__dirname, '..', '..', 'package.json'),
26
+ (0, path_1.join)(__dirname, '..', 'package.json'),
27
+ (0, path_1.join)(process.cwd(), 'package.json'),
28
+ ];
29
+ for (const packageJsonPath of possiblePaths) {
30
+ try {
31
+ if ((0, fs_1.existsSync)(packageJsonPath)) {
32
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
33
+ if (packageJson.version) {
34
+ cachedVersion = packageJson.version;
35
+ return cachedVersion;
36
+ }
37
+ }
38
+ }
39
+ catch {
40
+ // Try next path
41
+ }
31
42
  }
43
+ // Fallback if all paths fail
44
+ return 'unknown';
32
45
  }
33
46
  /**
34
47
  * Version constant for convenience
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAaA,gCAgBC;AA7BD;;;GAGG;AACH,2BAAkC;AAClC,+BAA4B;AAE5B,IAAI,aAAa,GAAW,EAAE,CAAC;AAE/B;;;GAGG;AACH,SAAgB,UAAU;IACxB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,+FAA+F;QAC/F,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACU,QAAA,OAAO,GAAG,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAaA,gCA+BC;AA5CD;;;GAGG;AACH,2BAA8C;AAC9C,+BAA4B;AAE5B,IAAI,aAAa,GAAW,EAAE,CAAC;AAE/B;;;GAGG;AACH,SAAgB,UAAU;IACxB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,mDAAmD;IACnD,mDAAmD;IACnD,sCAAsC;IACtC,wCAAwC;IACxC,MAAM,aAAa,GAAG;QACpB,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;QAC3C,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;QACrC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;KACpC,CAAC;IAEF,KAAK,MAAM,eAAe,IAAI,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,IAAI,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;gBACvE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;oBACpC,OAAO,aAAa,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACU,QAAA,OAAO,GAAG,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faf-mcp",
3
- "version": "1.3.1",
3
+ "version": "2.0.0",
4
4
  "mcpName": "io.github.Wolfe-Jam/faf-mcp",
5
5
  "description": "faf-mcp | use>faf • IANA-registered format (application/vnd.faf+yaml) • Universal MCP server for Cursor, Windsurf, Cline, VS Code, and all platforms",
6
6
  "icon": "./assets/icons/faf-icon-256.png",
@@ -100,8 +100,10 @@
100
100
  "access": "public"
101
101
  },
102
102
  "dependencies": {
103
- "@modelcontextprotocol/sdk": "^1.20.1",
104
- "faf-cli": "^4.4.0",
103
+ "@modelcontextprotocol/sdk": "^1.27.1",
104
+ "cors": "^2.8.5",
105
+ "express": "^4.21.0",
106
+ "faf-cli": ">=4.4.0",
105
107
  "yaml": "^2.4.1"
106
108
  },
107
109
  "devDependencies": {
package/project.faf CHANGED
@@ -4,16 +4,13 @@ ai_score: 85%
4
4
  ai_confidence: HIGH
5
5
  ai_value: 30_seconds_replaces_20_minutes_of_questions
6
6
  ai_tldr:
7
- project: faf-mcp - "USE>FAF™ - IANA-registered format (application/vnd.faf+yaml)
8
- • Universal AI context • MCP server for all platforms • Start with 'Use
9
- FAF'"
7
+ project: faf-mcp - "USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal AI context • MCP server for all platforms • Start with 'Use FAF'"
10
8
  stack: CLI/TypeScript/TypeScript (tsc)/npm registry/Node.js
11
9
  quality_bar: ZERO_ERRORS_F1_STANDARDS
12
10
  current_focus: Production deployment preparation
13
11
  your_role: Build features with perfect context
14
12
  instant_context:
15
- what_building: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) •
16
- Universal AI context • MCP server for all platforms • Start with 'Use FAF'
13
+ what_building: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal AI context • MCP server for all platforms • Start with 'Use FAF'
17
14
  tech_stack: CLI/TypeScript/TypeScript (tsc)/npm registry/Node.js
18
15
  main_language: TypeScript
19
16
  deployment: npm registry
@@ -27,8 +24,7 @@ context_quality:
27
24
  missing_context: []
28
25
  project:
29
26
  name: faf-mcp
30
- goal: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal
31
- AI context • MCP server for all platforms • Start with 'Use FAF'
27
+ goal: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal AI context • MCP server for all platforms • Start with 'Use FAF'
32
28
  main_language: TypeScript
33
29
  type: cli-ts
34
30
  generated: 2025-11-13T20:02:03.291Z
@@ -36,8 +32,7 @@ project:
36
32
  revolution: 30 seconds replaces 20 minutes of questions
37
33
  brand: F1-Inspired Software Engineering - Championship AI Context
38
34
  ai_instructions:
39
- how_to_start: Just USE FAF - Start every prompt with 'Use FAF to...' and MCP
40
- tools handle the rest
35
+ how_to_start: Just USE FAF - Start every prompt with 'Use FAF to...' and MCP tools handle the rest
41
36
  priority_order:
42
37
  - 1. Read THIS .faf file first
43
38
  - 2. Check CLAUDE.md for session context
@@ -83,10 +78,10 @@ preferences:
83
78
  documentation: as_needed
84
79
  state:
85
80
  phase: development
86
- version: 1.3.0
87
- focus: production_deployment
81
+ version: 2.0.0
82
+ focus: interop_mcp_for_context
88
83
  status: green_flag
89
- next_milestone: npm_publication
84
+ next_milestone: npm_publish_v2
90
85
  blockers: null
91
86
  tags:
92
87
  auto_generated:
@@ -105,12 +100,12 @@ tags:
105
100
  user_defined: null
106
101
  human_context:
107
102
  who: Developers using Claude, Cursor, Windsurf, VS Code, Cline, and any MCP-compatible IDE
108
- what: Universal MCP server providing .faf context tools - 17 native tools + 40+ CLI fallback commands
103
+ what: Universal MCP server providing .faf context tools - 61 tools (25 core + 36 advanced), interop with AGENTS.md, .cursorrules, GEMINI.md
109
104
  why: Eliminate the 20-minute AI context tax - give AI instant project understanding in 30 seconds
110
105
  where: npm registry, MCP ecosystem, Claude Desktop, Cursor IDE, Windsurf Editor
111
- when: Production/Stable - v1.1.4 WJTTC certified
106
+ when: Production/Stable - v2.0.0 WJTTC certified (309/309 tests, 9 suites)
112
107
  how: npx faf-mcp or npm install -g faf-mcp, then add to your MCP config
113
- additional_context: IANA-registered format (application/vnd.faf+yaml), 15k+ downloads, official Anthropic MCP steward
108
+ additional_context: IANA-registered format (application/vnd.faf+yaml), The Interop MCP for Context, HTTP-SSE transport for Cursor/Windsurf/Cline
114
109
  context_score: 100
115
110
  total_prd_score: 100
116
111
  success_rate: 100%
@@ -128,9 +123,7 @@ faf_dna:
128
123
  birth_date: 2025-11-13T20:02:03.306Z
129
124
  current_score: 83
130
125
  projectName: faf-mcp
131
- projectGoal: faf-mcp | use>faf • IANA-registered format
132
- (application/vnd.faf+yaml) • Universal MCP server for Cursor, Windsurf, Cline,
133
- VS Code, and all platforms
126
+ projectGoal: faf-mcp | use>faf • IANA-registered format (application/vnd.faf+yaml) • Universal MCP server for Cursor, Windsurf, Cline, VS Code, and all platforms
134
127
  generated: 2025-12-18T20:38:25.477Z
135
128
  stack_signature: typescript-nodejs-javascript
136
129
  detected_frameworks:
@@ -144,3 +137,6 @@ turbo_cat_intelligence: 360
144
137
  stats:
145
138
  last_auto_time: 0.6
146
139
  times_run: 1
140
+ metadata:
141
+ last_claude_sync: 2026-03-07T17:36:56.430Z
142
+ bi_sync: active
package/dist/index.json DELETED
@@ -1 +0,0 @@
1
- {"note":"Placeholder for Vercel build"}
@@ -1,7 +0,0 @@
1
- /**
2
- * FAF Compiler Engine MK3
3
- * Championship-grade project type detection and scoring
4
- */
5
- export * from './type-detector';
6
- export * from './slot-validator';
7
- export * from './scorer';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/compiler/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,mDAAiC;AACjC,2CAAyB"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Compiler Engine Scorer - FAF Compiler Engine MK3
3
- * Championship-grade scoring with context-aware metrics
4
- */
5
- export interface ScoringResult {
6
- score: number;
7
- medal: 'trophy' | 'gold' | 'silver' | 'bronze' | 'red' | 'white';
8
- emoji: string;
9
- message: string;
10
- breakdown: {
11
- totalSlots: 21;
12
- relevantSlots: number;
13
- filledSlots: number;
14
- ignoredSlots: number;
15
- };
16
- nextMilestone: {
17
- targetScore: number;
18
- medal: string;
19
- emoji: string;
20
- slotsNeeded: number;
21
- message: string;
22
- } | null;
23
- }
24
- export declare class CompilerEngineScorer {
25
- /**
26
- * Calculate score with slotignore support
27
- */
28
- calculateScore(filledSlots: number, relevantSlots: number, slotignore: string[]): ScoringResult;
29
- /**
30
- * Determine medal from score
31
- */
32
- private getMedal;
33
- /**
34
- * Get medal emoji
35
- */
36
- private getMedalEmoji;
37
- /**
38
- * Generate contextual message
39
- */
40
- private getMessage;
41
- /**
42
- * Calculate next milestone
43
- */
44
- private getNextMilestone;
45
- /**
46
- * Format scoring result as human-readable text
47
- */
48
- formatResult(result: ScoringResult, projectType?: string): string;
49
- /**
50
- * Generate actionable suggestions based on score
51
- */
52
- generateSuggestions(score: number, _medal: string, _missingSlots: string[]): string[];
53
- }
@@ -1,189 +0,0 @@
1
- "use strict";
2
- /**
3
- * Compiler Engine Scorer - FAF Compiler Engine MK3
4
- * Championship-grade scoring with context-aware metrics
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.CompilerEngineScorer = void 0;
8
- class CompilerEngineScorer {
9
- /**
10
- * Calculate score with slotignore support
11
- */
12
- calculateScore(filledSlots, relevantSlots, slotignore) {
13
- // Calculate score: (filled / relevant) * 100
14
- const score = Math.round((filledSlots / relevantSlots) * 100);
15
- // Determine medal
16
- const medal = this.getMedal(score);
17
- const emoji = this.getMedalEmoji(medal);
18
- // Generate message
19
- const message = this.getMessage(score, filledSlots, relevantSlots, medal);
20
- // Calculate next milestone
21
- const nextMilestone = this.getNextMilestone(score, filledSlots, relevantSlots);
22
- return {
23
- score,
24
- medal,
25
- emoji,
26
- message,
27
- breakdown: {
28
- totalSlots: 21,
29
- relevantSlots,
30
- filledSlots,
31
- ignoredSlots: slotignore.length,
32
- },
33
- nextMilestone,
34
- };
35
- }
36
- /**
37
- * Determine medal from score
38
- */
39
- getMedal(score) {
40
- if (score >= 85)
41
- return 'trophy'; // Championship grade
42
- if (score >= 70)
43
- return 'gold'; // Podium grade
44
- if (score >= 55)
45
- return 'silver'; // Strong
46
- if (score >= 40)
47
- return 'bronze'; // Decent
48
- if (score >= 20)
49
- return 'red'; // Needs work
50
- return 'white'; // Just started
51
- }
52
- /**
53
- * Get medal emoji
54
- */
55
- getMedalEmoji(medal) {
56
- switch (medal) {
57
- case 'trophy': return '🏆';
58
- case 'gold': return '🥇';
59
- case 'silver': return '🥈';
60
- case 'bronze': return '🥉';
61
- case 'red': return '🔴';
62
- case 'white': return '🤍';
63
- default: return '⚪';
64
- }
65
- }
66
- /**
67
- * Generate contextual message
68
- */
69
- getMessage(score, filled, relevant, medal) {
70
- if (score === 100) {
71
- return `Perfect ${medal === 'trophy' ? 'Championship' : 'Project'} DNA! All ${filled}/${relevant} relevant slots filled.`;
72
- }
73
- if (score >= 85) {
74
- return `Championship grade! ${filled}/${relevant} slots filled. Podium performance!`;
75
- }
76
- if (score >= 70) {
77
- return `Podium grade! ${filled}/${relevant} slots filled. Strong AI context.`;
78
- }
79
- if (score >= 55) {
80
- return `Solid foundation. ${filled}/${relevant} slots filled. Keep going!`;
81
- }
82
- if (score >= 40) {
83
- return `Decent start. ${filled}/${relevant} slots filled. Room for improvement.`;
84
- }
85
- if (score >= 20) {
86
- return `Getting started. ${filled}/${relevant} slots filled. Focus on core context.`;
87
- }
88
- return `Just beginning. ${filled}/${relevant} slots filled. Add project basics first.`;
89
- }
90
- /**
91
- * Calculate next milestone
92
- */
93
- getNextMilestone(score, filled, relevant) {
94
- // Already at 100%
95
- if (score === 100) {
96
- return null;
97
- }
98
- // Define milestones
99
- const milestones = [
100
- { threshold: 85, name: 'trophy', emoji: '🏆', label: 'Championship Grade' },
101
- { threshold: 70, name: 'gold', emoji: '🥇', label: 'Podium Grade' },
102
- { threshold: 55, name: 'silver', emoji: '🥈', label: 'Solid Foundation' },
103
- { threshold: 40, name: 'bronze', emoji: '🥉', label: 'Decent Start' },
104
- { threshold: 20, name: 'red', emoji: '🔴', label: 'Getting Started' },
105
- ];
106
- // Find next milestone
107
- const nextMilestone = milestones.find(m => score < m.threshold);
108
- if (!nextMilestone) {
109
- // Already above all milestones, aim for 100%
110
- const slotsNeeded = relevant - filled;
111
- return {
112
- targetScore: 100,
113
- medal: 'trophy',
114
- emoji: '🏆',
115
- slotsNeeded,
116
- message: `Fill ${slotsNeeded} more slot${slotsNeeded === 1 ? '' : 's'} to reach 100% (Perfect!)`,
117
- };
118
- }
119
- // Calculate slots needed
120
- const targetFilled = Math.ceil((nextMilestone.threshold / 100) * relevant);
121
- const slotsNeeded = Math.max(1, targetFilled - filled);
122
- return {
123
- targetScore: nextMilestone.threshold,
124
- medal: nextMilestone.name,
125
- emoji: nextMilestone.emoji,
126
- slotsNeeded,
127
- message: `Fill ${slotsNeeded} more slot${slotsNeeded === 1 ? '' : 's'} to reach ${nextMilestone.threshold}% (${nextMilestone.label})`,
128
- };
129
- }
130
- /**
131
- * Format scoring result as human-readable text
132
- */
133
- formatResult(result, projectType) {
134
- const lines = [];
135
- // Header
136
- lines.push(`${result.emoji} Score: ${result.score}%`);
137
- lines.push('');
138
- // Message
139
- lines.push(result.message);
140
- lines.push('');
141
- // Breakdown
142
- lines.push('Breakdown:');
143
- lines.push(` Total Slots: ${result.breakdown.totalSlots}`);
144
- if (projectType) {
145
- lines.push(` Project Type: ${projectType}`);
146
- }
147
- lines.push(` Relevant Slots: ${result.breakdown.relevantSlots}`);
148
- lines.push(` Filled Slots: ${result.breakdown.filledSlots}`);
149
- if (result.breakdown.ignoredSlots > 0) {
150
- lines.push(` Ignored Slots: ${result.breakdown.ignoredSlots} (not applicable to this project type)`);
151
- }
152
- // Next milestone
153
- if (result.nextMilestone) {
154
- lines.push('');
155
- lines.push('Next Milestone:');
156
- lines.push(` ${result.nextMilestone.emoji} ${result.nextMilestone.message}`);
157
- }
158
- return lines.join('\n');
159
- }
160
- /**
161
- * Generate actionable suggestions based on score
162
- */
163
- generateSuggestions(score, _medal, _missingSlots) {
164
- const suggestions = [];
165
- if (score < 40) {
166
- suggestions.push('Start with core slots: project_identity, language, human_context');
167
- suggestions.push('Add basic documentation: README.md, CLAUDE.md');
168
- }
169
- if (score >= 40 && score < 70) {
170
- suggestions.push('Fill in your tech stack details (frontend, backend, database)');
171
- suggestions.push('Add build and deployment information');
172
- }
173
- if (score >= 70 && score < 85) {
174
- suggestions.push('Complete architecture details (auth, storage, caching)');
175
- suggestions.push('Add team workflow and CI/CD information');
176
- }
177
- if (score >= 85 && score < 100) {
178
- suggestions.push('Polish remaining slots for championship grade');
179
- suggestions.push('Ensure all documentation is up to date');
180
- }
181
- if (score === 100) {
182
- suggestions.push('Perfect! Consider sharing your .faf with the community');
183
- suggestions.push('Keep it updated as your project evolves');
184
- }
185
- return suggestions;
186
- }
187
- }
188
- exports.CompilerEngineScorer = CompilerEngineScorer;
189
- //# sourceMappingURL=scorer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../../src/compiler/scorer.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Slot Validator - FAF Compiler Engine MK3
3
- * Championship-grade slot validation with .faf content analysis
4
- */
5
- import { ValidationResult } from '../types/slots';
6
- import { ProjectType } from '../types/project-types';
7
- export declare class SlotValidator {
8
- /**
9
- * Validate all slots against project type
10
- */
11
- validate(fafContent: any, projectType: ProjectType): ValidationResult;
12
- /**
13
- * Check if a specific slot is filled in .faf content
14
- */
15
- private isSlotFilled;
16
- /**
17
- * Get the value of a slot from .faf content
18
- */
19
- private getSlotValue;
20
- /**
21
- * Helper: Check if fafContent has a specific framework
22
- */
23
- private hasFramework;
24
- /**
25
- * Determine medal from score
26
- */
27
- private getMedal;
28
- /**
29
- * Load and parse .faf file from directory
30
- */
31
- static loadFafFile(projectPath: string): Promise<any | null>;
32
- }