faf-mcp 2.3.1 → 3.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 (177) hide show
  1. package/CHANGELOG.md +26 -3
  2. package/CLAUDE.md +6 -6
  3. package/README.md +71 -72
  4. package/dist/src/faf-core/commands/bi-sync.d.ts +1 -3
  5. package/dist/src/faf-core/commands/bi-sync.js +21 -64
  6. package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
  7. package/dist/src/faf-core/commands/sync.js.map +1 -1
  8. package/dist/src/faf-core/engines/dependency-tsa.js.map +1 -1
  9. package/dist/src/faf-core/fix-once/colors.js +1 -1
  10. package/dist/src/faf-core/fix-once/colors.js.map +1 -1
  11. package/dist/src/faf-core/parsers/agents-parser.d.ts +15 -0
  12. package/dist/src/faf-core/parsers/agents-parser.js +29 -123
  13. package/dist/src/faf-core/parsers/agents-parser.js.map +1 -1
  14. package/dist/src/faf-core/parsers/conductor-parser.js +1 -1
  15. package/dist/src/faf-core/parsers/conductor-parser.js.map +1 -1
  16. package/dist/src/faf-core/parsers/cursorrules-parser.d.ts +15 -0
  17. package/dist/src/faf-core/parsers/cursorrules-parser.js +54 -111
  18. package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -1
  19. package/dist/src/faf-core/parsers/faf-git-generator.js +0 -1
  20. package/dist/src/faf-core/parsers/faf-git-generator.js.map +1 -1
  21. package/dist/src/faf-core/parsers/gemini-parser.d.ts +10 -0
  22. package/dist/src/faf-core/parsers/gemini-parser.js +19 -77
  23. package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -1
  24. package/dist/src/handlers/engine-adapter.d.ts +13 -12
  25. package/dist/src/handlers/engine-adapter.js +103 -682
  26. package/dist/src/handlers/engine-adapter.js.map +1 -1
  27. package/dist/src/handlers/resources.d.ts +19 -1
  28. package/dist/src/handlers/resources.js +108 -23
  29. package/dist/src/handlers/resources.js.map +1 -1
  30. package/dist/src/handlers/skills.d.ts +70 -0
  31. package/dist/src/handlers/skills.js +174 -0
  32. package/dist/src/handlers/skills.js.map +1 -0
  33. package/dist/src/handlers/tools.d.ts +41 -5
  34. package/dist/src/handlers/tools.js +213 -258
  35. package/dist/src/handlers/tools.js.map +1 -1
  36. package/dist/src/server.d.ts +4 -0
  37. package/dist/src/server.js +51 -6
  38. package/dist/src/server.js.map +1 -1
  39. package/dist/src/utils/faf-cli-bridge.d.ts +2 -0
  40. package/dist/src/utils/faf-cli-bridge.js +16 -0
  41. package/dist/src/utils/faf-cli-bridge.js.map +1 -1
  42. package/package.json +16 -13
  43. package/project.faf +11 -6
  44. package/scripts/check-engines.mjs +53 -0
  45. package/scripts/sync-version.js +33 -19
  46. package/skills/faf-ide/SKILL.md +40 -0
  47. package/dist/src/config/visibility.d.ts +0 -41
  48. package/dist/src/config/visibility.js +0 -158
  49. package/dist/src/config/visibility.js.map +0 -1
  50. package/dist/src/faf-core/commands/audit.d.ts +0 -21
  51. package/dist/src/faf-core/commands/audit.js +0 -83
  52. package/dist/src/faf-core/commands/audit.js.map +0 -1
  53. package/dist/src/faf-core/commands/auto.d.ts +0 -25
  54. package/dist/src/faf-core/commands/auto.js +0 -74
  55. package/dist/src/faf-core/commands/auto.js.map +0 -1
  56. package/dist/src/faf-core/commands/doctor.d.ts +0 -17
  57. package/dist/src/faf-core/commands/doctor.js +0 -198
  58. package/dist/src/faf-core/commands/doctor.js.map +0 -1
  59. package/dist/src/faf-core/commands/enhance.d.ts +0 -46
  60. package/dist/src/faf-core/commands/enhance.js +0 -360
  61. package/dist/src/faf-core/commands/enhance.js.map +0 -1
  62. package/dist/src/faf-core/commands/formats.d.ts +0 -22
  63. package/dist/src/faf-core/commands/formats.js +0 -117
  64. package/dist/src/faf-core/commands/formats.js.map +0 -1
  65. package/dist/src/faf-core/commands/human.d.ts +0 -27
  66. package/dist/src/faf-core/commands/human.js +0 -183
  67. package/dist/src/faf-core/commands/human.js.map +0 -1
  68. package/dist/src/faf-core/commands/init.d.ts +0 -26
  69. package/dist/src/faf-core/commands/init.js +0 -114
  70. package/dist/src/faf-core/commands/init.js.map +0 -1
  71. package/dist/src/faf-core/commands/innit.d.ts +0 -7
  72. package/dist/src/faf-core/commands/innit.js +0 -13
  73. package/dist/src/faf-core/commands/innit.js.map +0 -1
  74. package/dist/src/faf-core/commands/migrate.d.ts +0 -15
  75. package/dist/src/faf-core/commands/migrate.js +0 -86
  76. package/dist/src/faf-core/commands/migrate.js.map +0 -1
  77. package/dist/src/faf-core/commands/quick.d.ts +0 -16
  78. package/dist/src/faf-core/commands/quick.js +0 -184
  79. package/dist/src/faf-core/commands/quick.js.map +0 -1
  80. package/dist/src/faf-core/commands/readme.d.ts +0 -47
  81. package/dist/src/faf-core/commands/readme.js +0 -361
  82. package/dist/src/faf-core/commands/readme.js.map +0 -1
  83. package/dist/src/faf-core/commands/score.d.ts +0 -47
  84. package/dist/src/faf-core/commands/score.js +0 -49
  85. package/dist/src/faf-core/commands/score.js.map +0 -1
  86. package/dist/src/faf-core/commands/update.d.ts +0 -12
  87. package/dist/src/faf-core/commands/update.js +0 -46
  88. package/dist/src/faf-core/commands/update.js.map +0 -1
  89. package/dist/src/faf-core/commands/validate.d.ts +0 -21
  90. package/dist/src/faf-core/commands/validate.js +0 -81
  91. package/dist/src/faf-core/commands/validate.js.map +0 -1
  92. package/dist/src/faf-core/compiler/faf-compiler.d.ts +0 -138
  93. package/dist/src/faf-core/compiler/faf-compiler.js +0 -1362
  94. package/dist/src/faf-core/compiler/faf-compiler.js.map +0 -1
  95. package/dist/src/faf-core/engines/fab-formats-processor.d.ts +0 -166
  96. package/dist/src/faf-core/engines/fab-formats-processor.js +0 -1274
  97. package/dist/src/faf-core/engines/fab-formats-processor.js.map +0 -1
  98. package/dist/src/faf-core/engines/faf-dna.d.ts +0 -159
  99. package/dist/src/faf-core/engines/faf-dna.js +0 -555
  100. package/dist/src/faf-core/engines/faf-dna.js.map +0 -1
  101. package/dist/src/faf-core/engines/relentless-context-extractor.d.ts +0 -100
  102. package/dist/src/faf-core/engines/relentless-context-extractor.js +0 -625
  103. package/dist/src/faf-core/engines/relentless-context-extractor.js.map +0 -1
  104. package/dist/src/faf-core/fix-once/types.d.ts +0 -257
  105. package/dist/src/faf-core/fix-once/types.js +0 -26
  106. package/dist/src/faf-core/fix-once/types.js.map +0 -1
  107. package/dist/src/faf-core/generators/faf-generator-championship.d.ts +0 -16
  108. package/dist/src/faf-core/generators/faf-generator-championship.js +0 -463
  109. package/dist/src/faf-core/generators/faf-generator-championship.js.map +0 -1
  110. package/dist/src/faf-core/inject.d.ts +0 -19
  111. package/dist/src/faf-core/inject.js +0 -57
  112. package/dist/src/faf-core/inject.js.map +0 -1
  113. package/dist/src/faf-core/parsers/index.d.ts +0 -12
  114. package/dist/src/faf-core/parsers/index.js +0 -29
  115. package/dist/src/faf-core/parsers/index.js.map +0 -1
  116. package/dist/src/faf-core/utils/balance-visualizer.d.ts +0 -37
  117. package/dist/src/faf-core/utils/balance-visualizer.js +0 -197
  118. package/dist/src/faf-core/utils/balance-visualizer.js.map +0 -1
  119. package/dist/src/faf-core/utils/championship-style.d.ts +0 -109
  120. package/dist/src/faf-core/utils/championship-style.js +0 -219
  121. package/dist/src/faf-core/utils/championship-style.js.map +0 -1
  122. package/dist/src/faf-core/utils/chrome-extension-detector.d.ts +0 -73
  123. package/dist/src/faf-core/utils/chrome-extension-detector.js +0 -268
  124. package/dist/src/faf-core/utils/chrome-extension-detector.js.map +0 -1
  125. package/dist/src/faf-core/utils/platform-detector.d.ts +0 -30
  126. package/dist/src/faf-core/utils/platform-detector.js +0 -218
  127. package/dist/src/faf-core/utils/platform-detector.js.map +0 -1
  128. package/dist/src/faf-core/utils/technical-credit.d.ts +0 -35
  129. package/dist/src/faf-core/utils/technical-credit.js +0 -286
  130. package/dist/src/faf-core/utils/technical-credit.js.map +0 -1
  131. package/dist/src/faf-core/utils/yaml-generator.d.ts +0 -41
  132. package/dist/src/faf-core/utils/yaml-generator.js +0 -360
  133. package/dist/src/faf-core/utils/yaml-generator.js.map +0 -1
  134. package/dist/src/handlers/behavioral-instruction.d.ts +0 -16
  135. package/dist/src/handlers/behavioral-instruction.js +0 -43
  136. package/dist/src/handlers/behavioral-instruction.js.map +0 -1
  137. package/dist/src/handlers/championship-tools.d.ts +0 -116
  138. package/dist/src/handlers/championship-tools.js +0 -2320
  139. package/dist/src/handlers/championship-tools.js.map +0 -1
  140. package/dist/src/handlers/cloud-handler.d.ts +0 -59
  141. package/dist/src/handlers/cloud-handler.js +0 -348
  142. package/dist/src/handlers/cloud-handler.js.map +0 -1
  143. package/dist/src/handlers/tool-registry.d.ts +0 -23
  144. package/dist/src/handlers/tool-registry.js +0 -68
  145. package/dist/src/handlers/tool-registry.js.map +0 -1
  146. package/dist/src/handlers/tool-types.d.ts +0 -167
  147. package/dist/src/handlers/tool-types.js +0 -7
  148. package/dist/src/handlers/tool-types.js.map +0 -1
  149. package/dist/src/test-all-functions.d.ts +0 -15
  150. package/dist/src/test-all-functions.js +0 -163
  151. package/dist/src/test-all-functions.js.map +0 -1
  152. package/dist/src/types/mcp-tools.d.ts +0 -53
  153. package/dist/src/types/mcp-tools.js +0 -77
  154. package/dist/src/types/mcp-tools.js.map +0 -1
  155. package/dist/src/types/tool-visibility.d.ts +0 -36
  156. package/dist/src/types/tool-visibility.js +0 -551
  157. package/dist/src/types/tool-visibility.js.map +0 -1
  158. package/dist/src/utils/auto-path-detection.d.ts +0 -26
  159. package/dist/src/utils/auto-path-detection.js +0 -198
  160. package/dist/src/utils/auto-path-detection.js.map +0 -1
  161. package/dist/src/utils/championship-format.d.ts +0 -30
  162. package/dist/src/utils/championship-format.js +0 -81
  163. package/dist/src/utils/championship-format.js.map +0 -1
  164. package/dist/src/utils/cli-detector.d.ts +0 -17
  165. package/dist/src/utils/cli-detector.js +0 -247
  166. package/dist/src/utils/cli-detector.js.map +0 -1
  167. package/dist/src/utils/display-protocol.d.ts +0 -57
  168. package/dist/src/utils/display-protocol.js +0 -131
  169. package/dist/src/utils/display-protocol.js.map +0 -1
  170. package/dist/src/utils/username-detector.d.ts +0 -27
  171. package/dist/src/utils/username-detector.js +0 -90
  172. package/dist/src/utils/username-detector.js.map +0 -1
  173. package/dist/src/utils/visual-style.d.ts +0 -62
  174. package/dist/src/utils/visual-style.js +0 -166
  175. package/dist/src/utils/visual-style.js.map +0 -1
  176. package/scripts/postinstall.js +0 -50
  177. 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>;