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