faf-mcp 2.3.1 → 3.0.1

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 (196) hide show
  1. package/CHANGELOG.md +49 -4
  2. package/CLAUDE.md +10 -6
  3. package/README.md +95 -86
  4. package/dist/src/faf-core/commands/agents.d.ts +2 -2
  5. package/dist/src/faf-core/commands/agents.js +2 -2
  6. package/dist/src/faf-core/commands/claude.d.ts +31 -0
  7. package/dist/src/faf-core/commands/{bi-sync.js → claude.js} +39 -77
  8. package/dist/src/faf-core/commands/claude.js.map +1 -0
  9. package/dist/src/faf-core/commands/conductor.d.ts +1 -1
  10. package/dist/src/faf-core/commands/conductor.js +1 -1
  11. package/dist/src/faf-core/commands/cursor.d.ts +2 -2
  12. package/dist/src/faf-core/commands/cursor.js +2 -2
  13. package/dist/src/faf-core/commands/gemini.d.ts +2 -2
  14. package/dist/src/faf-core/commands/gemini.js +2 -2
  15. package/dist/src/faf-core/commands/git-context.d.ts +1 -1
  16. package/dist/src/faf-core/commands/git-context.js +2 -2
  17. package/dist/src/faf-core/commands/git-context.js.map +1 -1
  18. package/dist/src/faf-core/commands/sync.js.map +1 -1
  19. package/dist/src/faf-core/engines/dependency-tsa.js.map +1 -1
  20. package/dist/src/faf-core/fix-once/colors.js +1 -1
  21. package/dist/src/faf-core/fix-once/colors.js.map +1 -1
  22. package/dist/src/faf-core/parsers/agents-parser.d.ts +17 -1
  23. package/dist/src/faf-core/parsers/agents-parser.js +31 -124
  24. package/dist/src/faf-core/parsers/agents-parser.js.map +1 -1
  25. package/dist/src/faf-core/parsers/conductor-parser.d.ts +1 -1
  26. package/dist/src/faf-core/parsers/conductor-parser.js +2 -2
  27. package/dist/src/faf-core/parsers/conductor-parser.js.map +1 -1
  28. package/dist/src/faf-core/parsers/cursorrules-parser.d.ts +17 -1
  29. package/dist/src/faf-core/parsers/cursorrules-parser.js +56 -112
  30. package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -1
  31. package/dist/src/faf-core/parsers/faf-git-generator.d.ts +1 -1
  32. package/dist/src/faf-core/parsers/faf-git-generator.js +6 -6
  33. package/dist/src/faf-core/parsers/faf-git-generator.js.map +1 -1
  34. package/dist/src/faf-core/parsers/gemini-parser.d.ts +12 -1
  35. package/dist/src/faf-core/parsers/gemini-parser.js +21 -78
  36. package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -1
  37. package/dist/src/faf-core/parsers/github-extractor.d.ts +1 -1
  38. package/dist/src/faf-core/parsers/github-extractor.js +1 -1
  39. package/dist/src/faf-core/parsers/slot-counter.d.ts +1 -1
  40. package/dist/src/faf-core/parsers/slot-counter.js +1 -1
  41. package/dist/src/handlers/engine-adapter.d.ts +13 -12
  42. package/dist/src/handlers/engine-adapter.js +105 -683
  43. package/dist/src/handlers/engine-adapter.js.map +1 -1
  44. package/dist/src/handlers/resources.d.ts +19 -1
  45. package/dist/src/handlers/resources.js +108 -23
  46. package/dist/src/handlers/resources.js.map +1 -1
  47. package/dist/src/handlers/skills.d.ts +70 -0
  48. package/dist/src/handlers/skills.js +174 -0
  49. package/dist/src/handlers/skills.js.map +1 -0
  50. package/dist/src/handlers/tools.d.ts +43 -7
  51. package/dist/src/handlers/tools.js +300 -375
  52. package/dist/src/handlers/tools.js.map +1 -1
  53. package/dist/src/server.d.ts +4 -0
  54. package/dist/src/server.js +51 -6
  55. package/dist/src/server.js.map +1 -1
  56. package/dist/src/utils/faf-cli-bridge.d.ts +14 -8
  57. package/dist/src/utils/faf-cli-bridge.js +28 -8
  58. package/dist/src/utils/faf-cli-bridge.js.map +1 -1
  59. package/package.json +18 -15
  60. package/project.faf +14 -9
  61. package/scripts/check-engines.mjs +53 -0
  62. package/scripts/sync-version.js +33 -19
  63. package/skills/faf-ide/SKILL.md +40 -0
  64. package/dist/src/config/visibility.d.ts +0 -41
  65. package/dist/src/config/visibility.js +0 -158
  66. package/dist/src/config/visibility.js.map +0 -1
  67. package/dist/src/faf-core/commands/audit.d.ts +0 -21
  68. package/dist/src/faf-core/commands/audit.js +0 -83
  69. package/dist/src/faf-core/commands/audit.js.map +0 -1
  70. package/dist/src/faf-core/commands/auto.d.ts +0 -25
  71. package/dist/src/faf-core/commands/auto.js +0 -74
  72. package/dist/src/faf-core/commands/auto.js.map +0 -1
  73. package/dist/src/faf-core/commands/bi-sync.d.ts +0 -31
  74. package/dist/src/faf-core/commands/bi-sync.js.map +0 -1
  75. package/dist/src/faf-core/commands/doctor.d.ts +0 -17
  76. package/dist/src/faf-core/commands/doctor.js +0 -198
  77. package/dist/src/faf-core/commands/doctor.js.map +0 -1
  78. package/dist/src/faf-core/commands/enhance.d.ts +0 -46
  79. package/dist/src/faf-core/commands/enhance.js +0 -360
  80. package/dist/src/faf-core/commands/enhance.js.map +0 -1
  81. package/dist/src/faf-core/commands/formats.d.ts +0 -22
  82. package/dist/src/faf-core/commands/formats.js +0 -117
  83. package/dist/src/faf-core/commands/formats.js.map +0 -1
  84. package/dist/src/faf-core/commands/human.d.ts +0 -27
  85. package/dist/src/faf-core/commands/human.js +0 -183
  86. package/dist/src/faf-core/commands/human.js.map +0 -1
  87. package/dist/src/faf-core/commands/init.d.ts +0 -26
  88. package/dist/src/faf-core/commands/init.js +0 -114
  89. package/dist/src/faf-core/commands/init.js.map +0 -1
  90. package/dist/src/faf-core/commands/innit.d.ts +0 -7
  91. package/dist/src/faf-core/commands/innit.js +0 -13
  92. package/dist/src/faf-core/commands/innit.js.map +0 -1
  93. package/dist/src/faf-core/commands/migrate.d.ts +0 -15
  94. package/dist/src/faf-core/commands/migrate.js +0 -86
  95. package/dist/src/faf-core/commands/migrate.js.map +0 -1
  96. package/dist/src/faf-core/commands/quick.d.ts +0 -16
  97. package/dist/src/faf-core/commands/quick.js +0 -184
  98. package/dist/src/faf-core/commands/quick.js.map +0 -1
  99. package/dist/src/faf-core/commands/readme.d.ts +0 -47
  100. package/dist/src/faf-core/commands/readme.js +0 -361
  101. package/dist/src/faf-core/commands/readme.js.map +0 -1
  102. package/dist/src/faf-core/commands/score.d.ts +0 -47
  103. package/dist/src/faf-core/commands/score.js +0 -49
  104. package/dist/src/faf-core/commands/score.js.map +0 -1
  105. package/dist/src/faf-core/commands/update.d.ts +0 -12
  106. package/dist/src/faf-core/commands/update.js +0 -46
  107. package/dist/src/faf-core/commands/update.js.map +0 -1
  108. package/dist/src/faf-core/commands/validate.d.ts +0 -21
  109. package/dist/src/faf-core/commands/validate.js +0 -81
  110. package/dist/src/faf-core/commands/validate.js.map +0 -1
  111. package/dist/src/faf-core/compiler/faf-compiler.d.ts +0 -138
  112. package/dist/src/faf-core/compiler/faf-compiler.js +0 -1362
  113. package/dist/src/faf-core/compiler/faf-compiler.js.map +0 -1
  114. package/dist/src/faf-core/engines/fab-formats-processor.d.ts +0 -166
  115. package/dist/src/faf-core/engines/fab-formats-processor.js +0 -1274
  116. package/dist/src/faf-core/engines/fab-formats-processor.js.map +0 -1
  117. package/dist/src/faf-core/engines/faf-dna.d.ts +0 -159
  118. package/dist/src/faf-core/engines/faf-dna.js +0 -555
  119. package/dist/src/faf-core/engines/faf-dna.js.map +0 -1
  120. package/dist/src/faf-core/engines/relentless-context-extractor.d.ts +0 -100
  121. package/dist/src/faf-core/engines/relentless-context-extractor.js +0 -625
  122. package/dist/src/faf-core/engines/relentless-context-extractor.js.map +0 -1
  123. package/dist/src/faf-core/fix-once/types.d.ts +0 -257
  124. package/dist/src/faf-core/fix-once/types.js +0 -26
  125. package/dist/src/faf-core/fix-once/types.js.map +0 -1
  126. package/dist/src/faf-core/generators/faf-generator-championship.d.ts +0 -16
  127. package/dist/src/faf-core/generators/faf-generator-championship.js +0 -463
  128. package/dist/src/faf-core/generators/faf-generator-championship.js.map +0 -1
  129. package/dist/src/faf-core/inject.d.ts +0 -19
  130. package/dist/src/faf-core/inject.js +0 -57
  131. package/dist/src/faf-core/inject.js.map +0 -1
  132. package/dist/src/faf-core/parsers/index.d.ts +0 -12
  133. package/dist/src/faf-core/parsers/index.js +0 -29
  134. package/dist/src/faf-core/parsers/index.js.map +0 -1
  135. package/dist/src/faf-core/utils/balance-visualizer.d.ts +0 -37
  136. package/dist/src/faf-core/utils/balance-visualizer.js +0 -197
  137. package/dist/src/faf-core/utils/balance-visualizer.js.map +0 -1
  138. package/dist/src/faf-core/utils/championship-style.d.ts +0 -109
  139. package/dist/src/faf-core/utils/championship-style.js +0 -219
  140. package/dist/src/faf-core/utils/championship-style.js.map +0 -1
  141. package/dist/src/faf-core/utils/chrome-extension-detector.d.ts +0 -73
  142. package/dist/src/faf-core/utils/chrome-extension-detector.js +0 -268
  143. package/dist/src/faf-core/utils/chrome-extension-detector.js.map +0 -1
  144. package/dist/src/faf-core/utils/platform-detector.d.ts +0 -30
  145. package/dist/src/faf-core/utils/platform-detector.js +0 -218
  146. package/dist/src/faf-core/utils/platform-detector.js.map +0 -1
  147. package/dist/src/faf-core/utils/technical-credit.d.ts +0 -35
  148. package/dist/src/faf-core/utils/technical-credit.js +0 -286
  149. package/dist/src/faf-core/utils/technical-credit.js.map +0 -1
  150. package/dist/src/faf-core/utils/yaml-generator.d.ts +0 -41
  151. package/dist/src/faf-core/utils/yaml-generator.js +0 -360
  152. package/dist/src/faf-core/utils/yaml-generator.js.map +0 -1
  153. package/dist/src/handlers/behavioral-instruction.d.ts +0 -16
  154. package/dist/src/handlers/behavioral-instruction.js +0 -43
  155. package/dist/src/handlers/behavioral-instruction.js.map +0 -1
  156. package/dist/src/handlers/championship-tools.d.ts +0 -116
  157. package/dist/src/handlers/championship-tools.js +0 -2320
  158. package/dist/src/handlers/championship-tools.js.map +0 -1
  159. package/dist/src/handlers/cloud-handler.d.ts +0 -59
  160. package/dist/src/handlers/cloud-handler.js +0 -348
  161. package/dist/src/handlers/cloud-handler.js.map +0 -1
  162. package/dist/src/handlers/tool-registry.d.ts +0 -23
  163. package/dist/src/handlers/tool-registry.js +0 -68
  164. package/dist/src/handlers/tool-registry.js.map +0 -1
  165. package/dist/src/handlers/tool-types.d.ts +0 -167
  166. package/dist/src/handlers/tool-types.js +0 -7
  167. package/dist/src/handlers/tool-types.js.map +0 -1
  168. package/dist/src/test-all-functions.d.ts +0 -15
  169. package/dist/src/test-all-functions.js +0 -163
  170. package/dist/src/test-all-functions.js.map +0 -1
  171. package/dist/src/types/mcp-tools.d.ts +0 -53
  172. package/dist/src/types/mcp-tools.js +0 -77
  173. package/dist/src/types/mcp-tools.js.map +0 -1
  174. package/dist/src/types/tool-visibility.d.ts +0 -36
  175. package/dist/src/types/tool-visibility.js +0 -551
  176. package/dist/src/types/tool-visibility.js.map +0 -1
  177. package/dist/src/utils/auto-path-detection.d.ts +0 -26
  178. package/dist/src/utils/auto-path-detection.js +0 -198
  179. package/dist/src/utils/auto-path-detection.js.map +0 -1
  180. package/dist/src/utils/championship-format.d.ts +0 -30
  181. package/dist/src/utils/championship-format.js +0 -81
  182. package/dist/src/utils/championship-format.js.map +0 -1
  183. package/dist/src/utils/cli-detector.d.ts +0 -17
  184. package/dist/src/utils/cli-detector.js +0 -247
  185. package/dist/src/utils/cli-detector.js.map +0 -1
  186. package/dist/src/utils/display-protocol.d.ts +0 -57
  187. package/dist/src/utils/display-protocol.js +0 -131
  188. package/dist/src/utils/display-protocol.js.map +0 -1
  189. package/dist/src/utils/username-detector.d.ts +0 -27
  190. package/dist/src/utils/username-detector.js +0 -90
  191. package/dist/src/utils/username-detector.js.map +0 -1
  192. package/dist/src/utils/visual-style.d.ts +0 -62
  193. package/dist/src/utils/visual-style.js +0 -166
  194. package/dist/src/utils/visual-style.js.map +0 -1
  195. package/scripts/postinstall.js +0 -50
  196. package/skill/SKILL.md +0 -385
@@ -1,360 +0,0 @@
1
- "use strict";
2
- /**
3
- * ⚡ FAF Enhance - MCP-native interactive enhancement
4
- * Combines auto-detection with intelligent MCP questionnaire
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.enhanceCommand = enhanceCommand;
41
- exports.enhanceWithAnswers = enhanceWithAnswers;
42
- const fs_1 = require("fs");
43
- const path = __importStar(require("path"));
44
- const yaml_1 = require("../fix-once/yaml");
45
- const file_utils_1 = require("../utils/file-utils");
46
- const score_1 = require("./score");
47
- /**
48
- * Auto-detect improvements from project files
49
- */
50
- async function autoDetectImprovements(projectPath, fafData) {
51
- const improvements = [];
52
- const updates = {};
53
- // Check for package.json
54
- const packageJsonPath = path.join(projectPath, 'package.json');
55
- if (await (0, file_utils_1.fileExists)(packageJsonPath)) {
56
- const pkgContent = await fs_1.promises.readFile(packageJsonPath, 'utf-8');
57
- const pkg = JSON.parse(pkgContent);
58
- // Detect version
59
- if (pkg.version && !fafData.project?.version) {
60
- updates['project.version'] = pkg.version;
61
- improvements.push('version');
62
- }
63
- // Detect testing
64
- if (pkg.scripts?.test && !fafData.stack?.testing) {
65
- updates['stack.testing'] = 'jest/vitest';
66
- improvements.push('testing');
67
- }
68
- // Detect dependencies for framework detection
69
- if (pkg.dependencies || pkg.devDependencies) {
70
- const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
71
- // Frontend frameworks
72
- if (allDeps.react && !fafData.stack?.frontend) {
73
- updates['stack.frontend'] = 'React';
74
- improvements.push('frontend');
75
- }
76
- else if (allDeps.vue && !fafData.stack?.frontend) {
77
- updates['stack.frontend'] = 'Vue';
78
- improvements.push('frontend');
79
- }
80
- else if (allDeps.svelte && !fafData.stack?.frontend) {
81
- updates['stack.frontend'] = 'Svelte';
82
- improvements.push('frontend');
83
- }
84
- // Backend
85
- if (allDeps.express && !fafData.stack?.backend) {
86
- updates['stack.backend'] = 'Express';
87
- improvements.push('backend');
88
- }
89
- // Database
90
- if (allDeps.mongoose && !fafData.stack?.database) {
91
- updates['stack.database'] = 'MongoDB';
92
- improvements.push('database');
93
- }
94
- else if (allDeps.pg && !fafData.stack?.database) {
95
- updates['stack.database'] = 'PostgreSQL';
96
- improvements.push('database');
97
- }
98
- }
99
- }
100
- // Detect main language from files
101
- if (!fafData.project?.main_language) {
102
- const hasTS = await (0, file_utils_1.fileExists)(path.join(projectPath, 'tsconfig.json'));
103
- const hasPy = await (0, file_utils_1.fileExists)(path.join(projectPath, 'requirements.txt')) ||
104
- await (0, file_utils_1.fileExists)(path.join(projectPath, 'setup.py'));
105
- if (hasTS) {
106
- updates['project.main_language'] = 'TypeScript';
107
- improvements.push('mainLanguage');
108
- }
109
- else if (hasPy) {
110
- updates['project.main_language'] = 'Python';
111
- improvements.push('mainLanguage');
112
- }
113
- }
114
- return { improvements, updates };
115
- }
116
- /**
117
- * Generate questions for missing 6 W's
118
- */
119
- function generateQuestions(fafData) {
120
- const questions = [];
121
- if (!fafData.human_context?.who) {
122
- questions.push({
123
- id: 'who',
124
- question: 'WHO will use this project?',
125
- header: 'Target Users',
126
- description: 'Specify your target audience (developers, data scientists, designers, end users, etc.)',
127
- defaultValue: 'developers',
128
- required: true
129
- });
130
- }
131
- if (!fafData.human_context?.what) {
132
- questions.push({
133
- id: 'what',
134
- question: 'WHAT problem does this project solve?',
135
- header: 'Core Problem',
136
- description: 'Describe the specific problem or need this project addresses',
137
- required: true
138
- });
139
- }
140
- if (!fafData.human_context?.why) {
141
- questions.push({
142
- id: 'why',
143
- question: 'WHY is this project important?',
144
- header: 'Value/Impact',
145
- description: 'Explain the value or impact this project creates',
146
- required: true
147
- });
148
- }
149
- if (!fafData.human_context?.where) {
150
- questions.push({
151
- id: 'where',
152
- question: 'WHERE will this project be deployed/used?',
153
- header: 'Environment',
154
- description: 'Specify the deployment context (cloud, browser, mobile, on-premise, etc.)',
155
- defaultValue: 'cloud',
156
- required: false
157
- });
158
- }
159
- if (!fafData.human_context?.when) {
160
- questions.push({
161
- id: 'when',
162
- question: 'WHEN do you need this completed?',
163
- header: 'Timeline',
164
- description: 'Specify the timeline or urgency (now, Q1 2025, ongoing, etc.)',
165
- defaultValue: 'ongoing',
166
- required: false
167
- });
168
- }
169
- if (!fafData.human_context?.how) {
170
- questions.push({
171
- id: 'how',
172
- question: 'HOW will you build this?',
173
- header: 'Approach',
174
- description: 'Describe your development methodology (agile, iterative, waterfall, etc.)',
175
- defaultValue: 'agile',
176
- required: false
177
- });
178
- }
179
- return questions;
180
- }
181
- /**
182
- * Apply answers to project.faf
183
- */
184
- function applyAnswers(fafData, answers) {
185
- const applied = [];
186
- if (!fafData.human_context) {
187
- fafData.human_context = {};
188
- }
189
- if (answers.who) {
190
- fafData.human_context.who = answers.who;
191
- applied.push('who');
192
- }
193
- if (answers.what) {
194
- fafData.human_context.what = answers.what;
195
- applied.push('what');
196
- }
197
- if (answers.why) {
198
- fafData.human_context.why = answers.why;
199
- applied.push('why');
200
- }
201
- if (answers.where) {
202
- fafData.human_context.where = answers.where;
203
- applied.push('where');
204
- }
205
- if (answers.when) {
206
- fafData.human_context.when = answers.when;
207
- applied.push('when');
208
- }
209
- if (answers.how) {
210
- fafData.human_context.how = answers.how;
211
- applied.push('how');
212
- }
213
- // Apply stack improvements
214
- if (!fafData.stack) {
215
- fafData.stack = {};
216
- }
217
- if (answers.frontend && !fafData.stack.frontend) {
218
- fafData.stack.frontend = answers.frontend;
219
- applied.push('frontend');
220
- }
221
- if (answers.backend && !fafData.stack.backend) {
222
- fafData.stack.backend = answers.backend;
223
- applied.push('backend');
224
- }
225
- if (answers.database && !fafData.stack.database) {
226
- fafData.stack.database = answers.database;
227
- applied.push('database');
228
- }
229
- if (answers.hosting && !fafData.stack.hosting) {
230
- fafData.stack.hosting = answers.hosting;
231
- applied.push('hosting');
232
- }
233
- return applied;
234
- }
235
- /**
236
- * Calculate score using real FafCompiler
237
- */
238
- async function calculateScore(projectPath) {
239
- const fafPath = path.join(projectPath, 'project.faf');
240
- const result = await (0, score_1.scoreFafFile)(fafPath);
241
- return result.score;
242
- }
243
- /**
244
- * Main enhance command - auto-detect mode
245
- */
246
- async function enhanceCommand(projectPath, options = {}) {
247
- try {
248
- // Find project.faf
249
- const fafPath = path.join(projectPath, 'project.faf');
250
- if (!(await (0, file_utils_1.fileExists)(fafPath))) {
251
- return {
252
- success: false,
253
- initialScore: 0,
254
- finalScore: 0,
255
- improvements: [],
256
- message: 'No project.faf found. Run faf_init first.'
257
- };
258
- }
259
- // Read and parse
260
- const content = await fs_1.promises.readFile(fafPath, 'utf-8');
261
- const fafData = (0, yaml_1.parse)(content);
262
- const initialScore = await calculateScore(projectPath);
263
- // Auto-detect improvements
264
- const { improvements, updates } = await autoDetectImprovements(projectPath, fafData);
265
- // Apply auto-detected updates
266
- for (const [key, value] of Object.entries(updates)) {
267
- const keys = key.split('.');
268
- let target = fafData;
269
- for (let i = 0; i < keys.length - 1; i++) {
270
- if (!target[keys[i]]) {
271
- target[keys[i]] = {};
272
- }
273
- target = target[keys[i]];
274
- }
275
- target[keys[keys.length - 1]] = value;
276
- }
277
- // Check if questions needed
278
- const questions = generateQuestions(fafData);
279
- // If auto-fill only or no questions, finish here
280
- if (options.autoFill || questions.length === 0 || !options.interactive) {
281
- // Update metadata
282
- if (!fafData.meta) {
283
- fafData.meta = {};
284
- }
285
- fafData.meta.last_enhanced = new Date().toISOString();
286
- fafData.meta.enhanced_by = 'faf-enhance-auto';
287
- // Write back
288
- const yamlContent = (0, yaml_1.stringify)(fafData);
289
- await fs_1.promises.writeFile(fafPath, yamlContent, 'utf-8');
290
- const finalScore = await calculateScore(projectPath);
291
- return {
292
- success: true,
293
- initialScore,
294
- finalScore,
295
- improvements,
296
- message: improvements.length > 0
297
- ? `Auto-enhanced: ${improvements.join(', ')}. Score: ${initialScore}% → ${finalScore}%`
298
- : `Already optimized. Score: ${finalScore}%`
299
- };
300
- }
301
- // Return with questions for interactive mode
302
- return {
303
- success: true,
304
- initialScore,
305
- finalScore: initialScore,
306
- improvements,
307
- questionsNeeded: questions,
308
- message: `Auto-detected ${improvements.length} improvements. ${questions.length} questions needed for full enhancement.`
309
- };
310
- }
311
- catch (error) {
312
- return {
313
- success: false,
314
- initialScore: 0,
315
- finalScore: 0,
316
- improvements: [],
317
- message: error instanceof Error ? error.message : 'Enhancement failed'
318
- };
319
- }
320
- }
321
- /**
322
- * Apply interactive answers and finalize enhancement
323
- */
324
- async function enhanceWithAnswers(projectPath, answers) {
325
- try {
326
- const fafPath = path.join(projectPath, 'project.faf');
327
- const content = await fs_1.promises.readFile(fafPath, 'utf-8');
328
- const fafData = (0, yaml_1.parse)(content);
329
- const initialScore = await calculateScore(projectPath);
330
- // Apply answers
331
- const applied = applyAnswers(fafData, answers);
332
- // Update metadata
333
- if (!fafData.meta) {
334
- fafData.meta = {};
335
- }
336
- fafData.meta.last_enhanced = new Date().toISOString();
337
- fafData.meta.enhanced_by = 'faf-enhance-interactive';
338
- // Write back
339
- const yamlContent = (0, yaml_1.stringify)(fafData);
340
- await fs_1.promises.writeFile(fafPath, yamlContent, 'utf-8');
341
- const finalScore = await calculateScore(projectPath);
342
- return {
343
- success: true,
344
- initialScore,
345
- finalScore,
346
- improvements: applied,
347
- message: `Enhanced with ${applied.length} answers. Score: ${initialScore}% → ${finalScore}%`
348
- };
349
- }
350
- catch (error) {
351
- return {
352
- success: false,
353
- initialScore: 0,
354
- finalScore: 0,
355
- improvements: [],
356
- message: error instanceof Error ? error.message : 'Enhancement failed'
357
- };
358
- }
359
- }
360
- //# sourceMappingURL=enhance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhance.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/enhance.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 🏆 faf formats - TURBO-CAT Format Discovery Command (Mk3 Bundled)
3
- * Lists all discovered formats in the project
4
- */
5
- export interface FormatsOptions {
6
- export?: boolean;
7
- json?: boolean;
8
- category?: boolean;
9
- }
10
- export interface FormatsResult {
11
- success: boolean;
12
- totalFormats: number;
13
- stackSignature: string;
14
- intelligenceScore: number;
15
- formats: Array<{
16
- fileName: string;
17
- category: string;
18
- confidence: string;
19
- }>;
20
- message: string;
21
- }
22
- export declare function formatsCommand(projectPath?: string, options?: FormatsOptions): Promise<FormatsResult>;
@@ -1,117 +0,0 @@
1
- "use strict";
2
- /**
3
- * 🏆 faf formats - TURBO-CAT Format Discovery Command (Mk3 Bundled)
4
- * Lists all discovered formats in the project
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.formatsCommand = formatsCommand;
41
- const path = __importStar(require("path"));
42
- const file_utils_1 = require("../utils/file-utils");
43
- async function formatsCommand(projectPath, options = {}) {
44
- try {
45
- const projectRoot = projectPath || process.cwd();
46
- const startTime = Date.now();
47
- // Simple format detection - check for common files
48
- const commonFormats = [
49
- 'package.json',
50
- 'tsconfig.json',
51
- 'README.md',
52
- '.gitignore',
53
- 'vite.config.ts',
54
- 'svelte.config.js',
55
- 'tailwind.config.js',
56
- 'Dockerfile',
57
- '.env',
58
- 'project.faf',
59
- '.faf'
60
- ];
61
- const foundFormats = [];
62
- for (const format of commonFormats) {
63
- const filePath = path.join(projectRoot, format);
64
- if (await (0, file_utils_1.fileExists)(filePath)) {
65
- foundFormats.push({
66
- fileName: format,
67
- category: categorizeFormat(format),
68
- confidence: 'confirmed'
69
- });
70
- }
71
- }
72
- const elapsedTime = Date.now() - startTime;
73
- return {
74
- success: true,
75
- totalFormats: foundFormats.length,
76
- stackSignature: 'Detected',
77
- intelligenceScore: foundFormats.length * 5,
78
- formats: foundFormats,
79
- message: `Found ${foundFormats.length} formats in ${elapsedTime}ms`
80
- };
81
- }
82
- catch (error) {
83
- return {
84
- success: false,
85
- totalFormats: 0,
86
- stackSignature: 'Unknown',
87
- intelligenceScore: 0,
88
- formats: [],
89
- message: error instanceof Error ? error.message : 'Format discovery failed'
90
- };
91
- }
92
- }
93
- function categorizeFormat(fileName) {
94
- if (fileName.includes('json') || fileName.includes('yaml') || fileName.includes('toml')) {
95
- return 'Config';
96
- }
97
- else if (fileName.includes('.ts') || fileName.includes('.js') || fileName.includes('.py')) {
98
- return 'Code';
99
- }
100
- else if (fileName.includes('.md') || fileName.includes('README')) {
101
- return 'Documentation';
102
- }
103
- else if (fileName.includes('test') || fileName.includes('spec')) {
104
- return 'Testing';
105
- }
106
- else if (fileName.includes('workflow') || fileName.includes('jenkins')) {
107
- return 'CI/CD';
108
- }
109
- else if (fileName.includes('docker') || fileName.includes('compose')) {
110
- return 'Container';
111
- }
112
- else if (fileName.includes('.sql') || fileName.includes('migration')) {
113
- return 'Database';
114
- }
115
- return 'Other';
116
- }
117
- //# sourceMappingURL=formats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/formats.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Human Context Management - MCP Bundled Version
3
- * Non-interactive YAML merge for MCP context
4
- */
5
- export interface HumanAddOptions {
6
- yaml?: string;
7
- field?: string;
8
- value?: string;
9
- merge?: boolean;
10
- }
11
- export interface HumanAddResult {
12
- success: boolean;
13
- message: string;
14
- fieldsUpdated?: string[];
15
- score?: number;
16
- error?: string;
17
- }
18
- /**
19
- * Add or update human_context in project.faf
20
- * MCP-compatible non-interactive version
21
- */
22
- export declare function humanAddCommand(projectPath: string, options?: HumanAddOptions): Promise<HumanAddResult>;
23
- /**
24
- * Set a single human_context field
25
- * Convenience wrapper for single field updates
26
- */
27
- export declare function humanSetCommand(projectPath: string, field: string, value: string): Promise<HumanAddResult>;