faf-cli 2.1.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 (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/cli.d.ts +8 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +1249 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/ai-analyze.d.ts +18 -0
  8. package/dist/commands/ai-analyze.d.ts.map +1 -0
  9. package/dist/commands/ai-analyze.js +226 -0
  10. package/dist/commands/ai-analyze.js.map +1 -0
  11. package/dist/commands/ai-enhance.d.ts +17 -0
  12. package/dist/commands/ai-enhance.d.ts.map +1 -0
  13. package/dist/commands/ai-enhance.js +278 -0
  14. package/dist/commands/ai-enhance.js.map +1 -0
  15. package/dist/commands/audit.d.ts +11 -0
  16. package/dist/commands/audit.d.ts.map +1 -0
  17. package/dist/commands/audit.js +180 -0
  18. package/dist/commands/audit.js.map +1 -0
  19. package/dist/commands/auto.d.ts +27 -0
  20. package/dist/commands/auto.d.ts.map +1 -0
  21. package/dist/commands/auto.js +106 -0
  22. package/dist/commands/auto.js.map +1 -0
  23. package/dist/commands/bi-sync.d.ts +43 -0
  24. package/dist/commands/bi-sync.d.ts.map +1 -0
  25. package/dist/commands/bi-sync.js +224 -0
  26. package/dist/commands/bi-sync.js.map +1 -0
  27. package/dist/commands/chat.d.ts +6 -0
  28. package/dist/commands/chat.d.ts.map +1 -0
  29. package/dist/commands/chat.js +227 -0
  30. package/dist/commands/chat.js.map +1 -0
  31. package/dist/commands/check.d.ts +15 -0
  32. package/dist/commands/check.d.ts.map +1 -0
  33. package/dist/commands/check.js +58 -0
  34. package/dist/commands/check.js.map +1 -0
  35. package/dist/commands/clear.d.ts +15 -0
  36. package/dist/commands/clear.d.ts.map +1 -0
  37. package/dist/commands/clear.js +167 -0
  38. package/dist/commands/clear.js.map +1 -0
  39. package/dist/commands/commit.d.ts +8 -0
  40. package/dist/commands/commit.d.ts.map +1 -0
  41. package/dist/commands/commit.js +164 -0
  42. package/dist/commands/commit.js.map +1 -0
  43. package/dist/commands/convert.d.ts +19 -0
  44. package/dist/commands/convert.d.ts.map +1 -0
  45. package/dist/commands/convert.js +102 -0
  46. package/dist/commands/convert.js.map +1 -0
  47. package/dist/commands/credit.d.ts +13 -0
  48. package/dist/commands/credit.d.ts.map +1 -0
  49. package/dist/commands/credit.js +149 -0
  50. package/dist/commands/credit.js.map +1 -0
  51. package/dist/commands/edit-helper.d.ts +6 -0
  52. package/dist/commands/edit-helper.d.ts.map +1 -0
  53. package/dist/commands/edit-helper.js +55 -0
  54. package/dist/commands/edit-helper.js.map +1 -0
  55. package/dist/commands/edit.d.ts +14 -0
  56. package/dist/commands/edit.d.ts.map +1 -0
  57. package/dist/commands/edit.js +196 -0
  58. package/dist/commands/edit.js.map +1 -0
  59. package/dist/commands/faf-auth.d.ts +10 -0
  60. package/dist/commands/faf-auth.d.ts.map +1 -0
  61. package/dist/commands/faf-auth.js +162 -0
  62. package/dist/commands/faf-auth.js.map +1 -0
  63. package/dist/commands/faf-dna.d.ts +9 -0
  64. package/dist/commands/faf-dna.d.ts.map +1 -0
  65. package/dist/commands/faf-dna.js +141 -0
  66. package/dist/commands/faf-dna.js.map +1 -0
  67. package/dist/commands/faf-log.d.ts +9 -0
  68. package/dist/commands/faf-log.d.ts.map +1 -0
  69. package/dist/commands/faf-log.js +135 -0
  70. package/dist/commands/faf-log.js.map +1 -0
  71. package/dist/commands/faf-recover.d.ts +3 -0
  72. package/dist/commands/faf-recover.d.ts.map +1 -0
  73. package/dist/commands/faf-recover.js +299 -0
  74. package/dist/commands/faf-recover.js.map +1 -0
  75. package/dist/commands/faf-update.d.ts +9 -0
  76. package/dist/commands/faf-update.d.ts.map +1 -0
  77. package/dist/commands/faf-update.js +68 -0
  78. package/dist/commands/faf-update.js.map +1 -0
  79. package/dist/commands/faq.d.ts +12 -0
  80. package/dist/commands/faq.d.ts.map +1 -0
  81. package/dist/commands/faq.js +84 -0
  82. package/dist/commands/faq.js.map +1 -0
  83. package/dist/commands/flow.d.ts +11 -0
  84. package/dist/commands/flow.d.ts.map +1 -0
  85. package/dist/commands/flow.js +117 -0
  86. package/dist/commands/flow.js.map +1 -0
  87. package/dist/commands/formats.d.ts +12 -0
  88. package/dist/commands/formats.d.ts.map +1 -0
  89. package/dist/commands/formats.js +109 -0
  90. package/dist/commands/formats.js.map +1 -0
  91. package/dist/commands/index.d.ts +14 -0
  92. package/dist/commands/index.d.ts.map +1 -0
  93. package/dist/commands/index.js +443 -0
  94. package/dist/commands/index.js.map +1 -0
  95. package/dist/commands/init.d.ts +14 -0
  96. package/dist/commands/init.d.ts.map +1 -0
  97. package/dist/commands/init.js +202 -0
  98. package/dist/commands/init.js.map +1 -0
  99. package/dist/commands/lint.d.ts +11 -0
  100. package/dist/commands/lint.d.ts.map +1 -0
  101. package/dist/commands/lint.js +269 -0
  102. package/dist/commands/lint.js.map +1 -0
  103. package/dist/commands/mirror.d.ts +7 -0
  104. package/dist/commands/mirror.d.ts.map +1 -0
  105. package/dist/commands/mirror.js +130 -0
  106. package/dist/commands/mirror.js.map +1 -0
  107. package/dist/commands/score.d.ts +11 -0
  108. package/dist/commands/score.d.ts.map +1 -0
  109. package/dist/commands/score.js +192 -0
  110. package/dist/commands/score.js.map +1 -0
  111. package/dist/commands/search.d.ts +16 -0
  112. package/dist/commands/search.d.ts.map +1 -0
  113. package/dist/commands/search.js +174 -0
  114. package/dist/commands/search.js.map +1 -0
  115. package/dist/commands/share.d.ts +17 -0
  116. package/dist/commands/share.d.ts.map +1 -0
  117. package/dist/commands/share.js +260 -0
  118. package/dist/commands/share.js.map +1 -0
  119. package/dist/commands/show.d.ts +10 -0
  120. package/dist/commands/show.d.ts.map +1 -0
  121. package/dist/commands/show.js +167 -0
  122. package/dist/commands/show.js.map +1 -0
  123. package/dist/commands/stacks.d.ts +51 -0
  124. package/dist/commands/stacks.d.ts.map +1 -0
  125. package/dist/commands/stacks.js +180 -0
  126. package/dist/commands/stacks.js.map +1 -0
  127. package/dist/commands/status.d.ts +13 -0
  128. package/dist/commands/status.d.ts.map +1 -0
  129. package/dist/commands/status.js +158 -0
  130. package/dist/commands/status.js.map +1 -0
  131. package/dist/commands/sync.d.ts +11 -0
  132. package/dist/commands/sync.d.ts.map +1 -0
  133. package/dist/commands/sync.js +300 -0
  134. package/dist/commands/sync.js.map +1 -0
  135. package/dist/commands/todo.d.ts +14 -0
  136. package/dist/commands/todo.d.ts.map +1 -0
  137. package/dist/commands/todo.js +279 -0
  138. package/dist/commands/todo.js.map +1 -0
  139. package/dist/commands/trust.d.ts +33 -0
  140. package/dist/commands/trust.d.ts.map +1 -0
  141. package/dist/commands/trust.js +316 -0
  142. package/dist/commands/trust.js.map +1 -0
  143. package/dist/commands/validate.d.ts +11 -0
  144. package/dist/commands/validate.d.ts.map +1 -0
  145. package/dist/commands/validate.js +100 -0
  146. package/dist/commands/validate.js.map +1 -0
  147. package/dist/commands/verify.d.ts +36 -0
  148. package/dist/commands/verify.d.ts.map +1 -0
  149. package/dist/commands/verify.js +194 -0
  150. package/dist/commands/verify.js.map +1 -0
  151. package/dist/commands/version.d.ts +5 -0
  152. package/dist/commands/version.d.ts.map +1 -0
  153. package/dist/commands/version.js +33 -0
  154. package/dist/commands/version.js.map +1 -0
  155. package/dist/commands/vibe.d.ts +7 -0
  156. package/dist/commands/vibe.d.ts.map +1 -0
  157. package/dist/commands/vibe.js +78 -0
  158. package/dist/commands/vibe.js.map +1 -0
  159. package/dist/converters/faf-converters.d.ts +43 -0
  160. package/dist/converters/faf-converters.d.ts.map +1 -0
  161. package/dist/converters/faf-converters.js +186 -0
  162. package/dist/converters/faf-converters.js.map +1 -0
  163. package/dist/engine-bridge.d.ts +35 -0
  164. package/dist/engine-bridge.d.ts.map +1 -0
  165. package/dist/engine-bridge.js +76 -0
  166. package/dist/engine-bridge.js.map +1 -0
  167. package/dist/engines/claude-todo-engine.d.ts +115 -0
  168. package/dist/engines/claude-todo-engine.d.ts.map +1 -0
  169. package/dist/engines/claude-todo-engine.js +346 -0
  170. package/dist/engines/claude-todo-engine.js.map +1 -0
  171. package/dist/engines/drop-coach.d.ts +64 -0
  172. package/dist/engines/drop-coach.d.ts.map +1 -0
  173. package/dist/engines/drop-coach.js +222 -0
  174. package/dist/engines/drop-coach.js.map +1 -0
  175. package/dist/engines/fab-formats-processor.d.ts +167 -0
  176. package/dist/engines/fab-formats-processor.d.ts.map +1 -0
  177. package/dist/engines/fab-formats-processor.js +1274 -0
  178. package/dist/engines/fab-formats-processor.js.map +1 -0
  179. package/dist/engines/faf-dna.d.ts +160 -0
  180. package/dist/engines/faf-dna.d.ts.map +1 -0
  181. package/dist/engines/faf-dna.js +522 -0
  182. package/dist/engines/faf-dna.js.map +1 -0
  183. package/dist/engines/relentless-context-extractor.d.ts +101 -0
  184. package/dist/engines/relentless-context-extractor.d.ts.map +1 -0
  185. package/dist/engines/relentless-context-extractor.js +625 -0
  186. package/dist/engines/relentless-context-extractor.js.map +1 -0
  187. package/dist/fix-once/colors.d.ts +83 -0
  188. package/dist/fix-once/colors.d.ts.map +1 -0
  189. package/dist/fix-once/colors.js +145 -0
  190. package/dist/fix-once/colors.js.map +1 -0
  191. package/dist/fix-once/types.d.ts +258 -0
  192. package/dist/fix-once/types.d.ts.map +1 -0
  193. package/dist/fix-once/types.js +26 -0
  194. package/dist/fix-once/types.js.map +1 -0
  195. package/dist/framework-detector.d.ts +286 -0
  196. package/dist/framework-detector.d.ts.map +1 -0
  197. package/dist/framework-detector.js +782 -0
  198. package/dist/framework-detector.js.map +1 -0
  199. package/dist/generators/faf-generator-championship.d.ts +11 -0
  200. package/dist/generators/faf-generator-championship.d.ts.map +1 -0
  201. package/dist/generators/faf-generator-championship.js +371 -0
  202. package/dist/generators/faf-generator-championship.js.map +1 -0
  203. package/dist/index.d.ts +18 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +34 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/output/experience-manager.d.ts +58 -0
  208. package/dist/output/experience-manager.d.ts.map +1 -0
  209. package/dist/output/experience-manager.js +212 -0
  210. package/dist/output/experience-manager.js.map +1 -0
  211. package/dist/schema/faf-schema.d.ts +92 -0
  212. package/dist/schema/faf-schema.d.ts.map +1 -0
  213. package/dist/schema/faf-schema.js +173 -0
  214. package/dist/schema/faf-schema.js.map +1 -0
  215. package/dist/scoring/championship-scorer.d.ts +114 -0
  216. package/dist/scoring/championship-scorer.d.ts.map +1 -0
  217. package/dist/scoring/championship-scorer.js +380 -0
  218. package/dist/scoring/championship-scorer.js.map +1 -0
  219. package/dist/scoring/score-calculator.d.ts +29 -0
  220. package/dist/scoring/score-calculator.d.ts.map +1 -0
  221. package/dist/scoring/score-calculator.js +520 -0
  222. package/dist/scoring/score-calculator.js.map +1 -0
  223. package/dist/telemetry/analytics.d.ts +74 -0
  224. package/dist/telemetry/analytics.d.ts.map +1 -0
  225. package/dist/telemetry/analytics.js +370 -0
  226. package/dist/telemetry/analytics.js.map +1 -0
  227. package/dist/utils/balance-visualizer.d.ts +38 -0
  228. package/dist/utils/balance-visualizer.d.ts.map +1 -0
  229. package/dist/utils/balance-visualizer.js +196 -0
  230. package/dist/utils/balance-visualizer.js.map +1 -0
  231. package/dist/utils/championship-style.d.ts +110 -0
  232. package/dist/utils/championship-style.d.ts.map +1 -0
  233. package/dist/utils/championship-style.js +213 -0
  234. package/dist/utils/championship-style.js.map +1 -0
  235. package/dist/utils/color-utils.d.ts +17 -0
  236. package/dist/utils/color-utils.d.ts.map +1 -0
  237. package/dist/utils/color-utils.js +96 -0
  238. package/dist/utils/color-utils.js.map +1 -0
  239. package/dist/utils/fab-formats-engine.d.ts +76 -0
  240. package/dist/utils/fab-formats-engine.d.ts.map +1 -0
  241. package/dist/utils/fab-formats-engine.js +424 -0
  242. package/dist/utils/fab-formats-engine.js.map +1 -0
  243. package/dist/utils/fafignore-parser.d.ts +21 -0
  244. package/dist/utils/fafignore-parser.d.ts.map +1 -0
  245. package/dist/utils/fafignore-parser.js +178 -0
  246. package/dist/utils/fafignore-parser.js.map +1 -0
  247. package/dist/utils/file-utils.d.ts +65 -0
  248. package/dist/utils/file-utils.d.ts.map +1 -0
  249. package/dist/utils/file-utils.js +598 -0
  250. package/dist/utils/file-utils.js.map +1 -0
  251. package/dist/utils/platform-detector.d.ts +31 -0
  252. package/dist/utils/platform-detector.d.ts.map +1 -0
  253. package/dist/utils/platform-detector.js +218 -0
  254. package/dist/utils/platform-detector.js.map +1 -0
  255. package/dist/utils/technical-credit.d.ts +36 -0
  256. package/dist/utils/technical-credit.d.ts.map +1 -0
  257. package/dist/utils/technical-credit.js +286 -0
  258. package/dist/utils/technical-credit.js.map +1 -0
  259. package/dist/utils/trust-cache.d.ts +29 -0
  260. package/dist/utils/trust-cache.d.ts.map +1 -0
  261. package/dist/utils/trust-cache.js +123 -0
  262. package/dist/utils/trust-cache.js.map +1 -0
  263. package/dist/utils/turbo-cat-knowledge.d.ts +82 -0
  264. package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -0
  265. package/dist/utils/turbo-cat-knowledge.js +1346 -0
  266. package/dist/utils/turbo-cat-knowledge.js.map +1 -0
  267. package/dist/utils/turbo-cat-pyramid.d.ts +38 -0
  268. package/dist/utils/turbo-cat-pyramid.d.ts.map +1 -0
  269. package/dist/utils/turbo-cat-pyramid.js +287 -0
  270. package/dist/utils/turbo-cat-pyramid.js.map +1 -0
  271. package/dist/utils/turbo-cat.d.ts +92 -0
  272. package/dist/utils/turbo-cat.d.ts.map +1 -0
  273. package/dist/utils/turbo-cat.js +412 -0
  274. package/dist/utils/turbo-cat.js.map +1 -0
  275. package/dist/utils/vibe-sync.d.ts +25 -0
  276. package/dist/utils/vibe-sync.d.ts.map +1 -0
  277. package/dist/utils/vibe-sync.js +169 -0
  278. package/dist/utils/vibe-sync.js.map +1 -0
  279. package/dist/utils/yaml-generator.d.ts +39 -0
  280. package/dist/utils/yaml-generator.d.ts.map +1 -0
  281. package/dist/utils/yaml-generator.js +345 -0
  282. package/dist/utils/yaml-generator.js.map +1 -0
  283. package/package.json +96 -0
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * 🤖 AI Verification System - The Trust Builder
4
+ * Tests .faf context with Claude, ChatGPT, and Gemini to prove AI understanding
5
+ *
6
+ * Mission: Transform "🔴 Needs improvement" → "☑️ Perfect context"
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.verifyWithAI = verifyWithAI;
13
+ exports.displayVerificationResults = displayVerificationResults;
14
+ exports.updateTrustWithVerification = updateTrustWithVerification;
15
+ exports.verifyCommand = verifyCommand;
16
+ const fs_1 = require("fs");
17
+ const path_1 = __importDefault(require("path"));
18
+ const chalk_1 = __importDefault(require("chalk"));
19
+ const file_utils_1 = require("../utils/file-utils");
20
+ const trust_cache_1 = require("../utils/trust-cache");
21
+ const yaml_1 = __importDefault(require("yaml"));
22
+ /**
23
+ * Mock AI verification for development (will be replaced with real API calls)
24
+ */
25
+ async function mockAIVerification(model, fafContent) {
26
+ const startTime = Date.now();
27
+ // Simulate API delay
28
+ await new Promise(resolve => setTimeout(resolve, Math.random() * 1000 + 500));
29
+ const fafData = yaml_1.default.parse(fafContent);
30
+ // Analyze content quality
31
+ const hasProjectGoal = fafData?.project?.goal && !fafData.project.goal.includes('!CI');
32
+ const hasStack = fafData?.instant_context?.tech_stack;
33
+ const hasClearDescription = fafData?.instant_context?.what_building;
34
+ let confidence = 0;
35
+ const suggestions = [];
36
+ // Calculate confidence based on content quality
37
+ if (hasProjectGoal) {
38
+ confidence += 40;
39
+ }
40
+ if (hasStack) {
41
+ confidence += 30;
42
+ }
43
+ if (hasClearDescription) {
44
+ confidence += 30;
45
+ }
46
+ // Add some model-specific variation
47
+ const modelVariation = {
48
+ 'claude': Math.random() * 10 - 5, // -5 to +5
49
+ 'chatgpt': Math.random() * 8 - 4, // -4 to +4
50
+ 'gemini': Math.random() * 12 - 6 // -6 to +6
51
+ };
52
+ confidence += modelVariation[model] || 0;
53
+ confidence = Math.max(0, Math.min(100, Math.round(confidence)));
54
+ // Generate understanding based on actual content
55
+ let understanding = '';
56
+ if (fafData?.instant_context?.what_building) {
57
+ understanding = `This is ${fafData.instant_context.what_building}. `;
58
+ }
59
+ if (fafData?.instant_context?.tech_stack) {
60
+ understanding += `Built with ${fafData.instant_context.tech_stack}. `;
61
+ }
62
+ if (fafData?.project?.goal) {
63
+ understanding += `The goal is ${fafData.project.goal}.`;
64
+ }
65
+ if (!understanding) {
66
+ understanding = "Limited context available - need more project details.";
67
+ suggestions.push("Add clear project description");
68
+ suggestions.push("Specify main technology stack");
69
+ suggestions.push("Define project goals and objectives");
70
+ }
71
+ return {
72
+ model,
73
+ understood: confidence > 70,
74
+ confidence,
75
+ understanding: understanding.trim(),
76
+ suggestions: suggestions.length > 0 ? suggestions : undefined,
77
+ responseTime: Date.now() - startTime
78
+ };
79
+ }
80
+ /**
81
+ * Test .faf context with multiple AI models
82
+ */
83
+ async function verifyWithAI(fafPath, options = {}) {
84
+ const models = options.models || ['claude', 'chatgpt', 'gemini'];
85
+ const fafContent = await fs_1.promises.readFile(fafPath, 'utf-8');
86
+ console.log(chalk_1.default.cyan('🤖 Testing AI understanding across all models...'));
87
+ console.log();
88
+ const results = [];
89
+ // Test with each AI model
90
+ for (const model of models) {
91
+ try {
92
+ console.log(chalk_1.default.dim(` Testing with ${model}...`));
93
+ const result = await mockAIVerification(model, fafContent);
94
+ results.push(result);
95
+ }
96
+ catch (error) {
97
+ results.push({
98
+ model,
99
+ understood: false,
100
+ confidence: 0,
101
+ understanding: `Error testing with ${model}: ${error}`,
102
+ responseTime: 0
103
+ });
104
+ }
105
+ }
106
+ return results;
107
+ }
108
+ /**
109
+ * Display verification results with beautiful formatting
110
+ */
111
+ function displayVerificationResults(results, detailed = false) {
112
+ console.log();
113
+ for (const result of results) {
114
+ const statusEmoji = result.understood ? '☑️' : result.confidence > 50 ? '🟡' : '🔴';
115
+ const statusText = result.understood ? 'Perfect context' : result.confidence > 50 ? 'Good context' : 'Needs improvement';
116
+ const modelName = result.model.charAt(0).toUpperCase() + result.model.slice(1);
117
+ console.log(`${statusEmoji} ${modelName}: ${statusText} (${result.confidence}% confidence)`);
118
+ if (detailed) {
119
+ console.log(chalk_1.default.dim(` Understanding: "${result.understanding}"`));
120
+ if (result.responseTime) {
121
+ console.log(chalk_1.default.dim(` Response time: ${result.responseTime}ms`));
122
+ }
123
+ if (result.suggestions) {
124
+ console.log(chalk_1.default.dim(' Suggestions:'));
125
+ result.suggestions.forEach(suggestion => {
126
+ console.log(chalk_1.default.dim(` • ${suggestion}`));
127
+ });
128
+ }
129
+ console.log();
130
+ }
131
+ }
132
+ // Calculate overall trust level
133
+ const avgConfidence = Math.round(results.reduce((sum, r) => sum + r.confidence, 0) / results.length);
134
+ const allUnderstood = results.every(r => r.understood);
135
+ console.log();
136
+ if (allUnderstood) {
137
+ console.log(chalk_1.default.green.bold('🎉 All AIs understand your project correctly!'));
138
+ console.log(chalk_1.default.green(`Trust Level: ${avgConfidence}% - LOCKED & LOADED`));
139
+ }
140
+ else {
141
+ const understoodCount = results.filter(r => r.understood).length;
142
+ console.log(chalk_1.default.yellow(`📊 ${understoodCount}/${results.length} AIs have good understanding`));
143
+ console.log(chalk_1.default.yellow(`Trust Level: ${avgConfidence}% - Needs work`));
144
+ console.log();
145
+ console.log(chalk_1.default.cyan('💡 Trust Boosters:'));
146
+ console.log(chalk_1.default.dim(' • Run `faf init --force` to regenerate with better context'));
147
+ console.log(chalk_1.default.dim(' • Add more specific project details to your .faf file'));
148
+ console.log(chalk_1.default.dim(' • Use `faf sync` to update with latest changes'));
149
+ }
150
+ }
151
+ /**
152
+ * Update Trust Dashboard with verification results
153
+ */
154
+ async function updateTrustWithVerification(fafPath, results) {
155
+ const avgConfidence = Math.round(results.reduce((sum, r) => sum + r.confidence, 0) / results.length);
156
+ // Save verification results to cache for Trust Dashboard integration
157
+ await (0, trust_cache_1.saveTrustCache)(fafPath, results);
158
+ console.log(chalk_1.default.dim(`🔄 Updated AI compatibility score: ${avgConfidence}%`));
159
+ return avgConfidence;
160
+ }
161
+ /**
162
+ * Main verify command handler
163
+ */
164
+ async function verifyCommand(options = {}) {
165
+ try {
166
+ const fafPath = await (0, file_utils_1.findFafFile)();
167
+ if (!fafPath) {
168
+ console.log(chalk_1.default.red('❌ No .faf file found in current directory or parent directories'));
169
+ console.log(chalk_1.default.dim('💡 Run `faf init` to generate your first .faf file'));
170
+ process.exit(1);
171
+ }
172
+ console.log(chalk_1.default.dim(`🔍 Verifying context: ${path_1.default.relative(process.cwd(), fafPath)}`));
173
+ const startTime = Date.now();
174
+ const results = await verifyWithAI(fafPath, options);
175
+ const duration = Date.now() - startTime;
176
+ displayVerificationResults(results, options.detailed);
177
+ // Update trust score
178
+ await updateTrustWithVerification(fafPath, results);
179
+ if (options.detailed) {
180
+ console.log();
181
+ console.log(chalk_1.default.dim(`⚡ Verification completed in ${duration}ms`));
182
+ }
183
+ // Exit with appropriate code
184
+ const allGood = results.every(r => r.understood);
185
+ if (!allGood) {
186
+ process.exit(1);
187
+ }
188
+ }
189
+ catch (error) {
190
+ console.error(chalk_1.default.red('❌ Error during AI verification:'), error);
191
+ process.exit(1);
192
+ }
193
+ }
194
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 🏆 faf version - Show version with MK2 Engine status
3
+ */
4
+ export declare function versionCommand(): Promise<void>;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAsB,cAAc,kBAsBnC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * 🏆 faf version - Show version with MK2 Engine status
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.versionCommand = versionCommand;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const championship_style_1 = require("../utils/championship-style");
12
+ async function versionCommand() {
13
+ // Show the FAF banner
14
+ console.log((0, championship_style_1.generateFAFHeader)());
15
+ const version = require('../../package.json').version;
16
+ console.log();
17
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`🏆 FAF Championship Edition`));
18
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`════════════════════════════`));
19
+ console.log();
20
+ console.log(championship_style_1.FAF_COLORS.fafOrange(` Version: ${version}`));
21
+ console.log(championship_style_1.FAF_COLORS.fafGreen(` Engine: MK2 ⚡️`));
22
+ console.log(championship_style_1.FAF_COLORS.fafCyan(` TURBO-CAT: ACTIVE 😽`));
23
+ console.log();
24
+ console.log(chalk_1.default.gray(` 154 Validated Formats`));
25
+ console.log(chalk_1.default.gray(` <200ms Performance`));
26
+ console.log(chalk_1.default.gray(` Trust-Driven Development`));
27
+ console.log();
28
+ console.log(chalk_1.default.gray('─'.repeat(40)));
29
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`🏎️ "STOP faffing About!"`));
30
+ console.log(chalk_1.default.gray('─'.repeat(40)));
31
+ console.log();
32
+ }
33
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAKH,wCAsBC;AAzBD,kDAA0B;AAC1B,oEAA4E;AAErE,KAAK,UAAU,cAAc;IAClC,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,IAAA,sCAAiB,GAAE,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAEtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,SAAS,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * ⚡️ FAF VIBE Command - For No-Code/Low-Code Builders
3
+ * Detects platform and shows special $9 tier eligibility
4
+ */
5
+ export declare function vibeCommand(options?: any): Promise<void>;
6
+ export default vibeCommand;
7
+ //# sourceMappingURL=vibe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.d.ts","sourceRoot":"","sources":["../../src/commands/vibe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,wBAAsB,WAAW,CAAC,OAAO,GAAE,GAAQ,iBAoElD;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * ⚡️ FAF VIBE Command - For No-Code/Low-Code Builders
4
+ * Detects platform and shows special $9 tier eligibility
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.vibeCommand = vibeCommand;
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const platform_detector_1 = require("../utils/platform-detector");
13
+ const championship_style_1 = require("../utils/championship-style");
14
+ const turbo_cat_1 = require("../utils/turbo-cat");
15
+ async function vibeCommand(options = {}) {
16
+ console.log();
17
+ console.log(championship_style_1.FAF_COLORS.fafOrange('⚡️ FAF VIBE - No-Code Builder Edition 😽'));
18
+ console.log(championship_style_1.FAF_COLORS.fafCyan('━'.repeat(45)));
19
+ const detector = new platform_detector_1.PlatformDetector();
20
+ const platform = await detector.detectPlatform();
21
+ const pricing = detector.getPricingTier(platform);
22
+ console.log();
23
+ if (platform.detected) {
24
+ console.log(championship_style_1.FAF_COLORS.fafGreen(`✓ Platform Detected!`));
25
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Platform: ${chalk_1.default.bold(platform.platform)}`));
26
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Confidence: ${platform.confidence}%`));
27
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Indicators: ${platform.indicators.join(', ')}`));
28
+ console.log();
29
+ if (platform.tier === 'vibe') {
30
+ console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.lightning} FAF VIBE ELIGIBLE! ${championship_style_1.FAF_ICONS.turbo_cat}`));
31
+ console.log(championship_style_1.FAF_COLORS.fafGreen(` ${championship_style_1.FAF_ICONS.gem} Special Price: $${pricing.price}/month FOREVER`));
32
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` ${championship_style_1.FAF_ICONS.rocket} Same features as $100 Pro Plan`));
33
+ console.log(championship_style_1.FAF_COLORS.fafCyan(` ${championship_style_1.FAF_ICONS.heart_orange} Because builders come in all forms`));
34
+ console.log();
35
+ console.log(championship_style_1.FAF_COLORS.fafOrange(' ⚠️ LIMITED TIME OFFER - Lock it in NOW!'));
36
+ // Show TURBO-CAT message
37
+ console.log();
38
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.turbo_cat} TURBO-CAT says:`) +
39
+ championship_style_1.FAF_COLORS.fafWhite(' "Meow! Let\'s make your AI happy!"'));
40
+ }
41
+ else {
42
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.trophy} ${pricing.name}`));
43
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Professional pricing: $${pricing.price}/month`));
44
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` F1-Inspired Software Engineering`));
45
+ }
46
+ }
47
+ else {
48
+ console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.magnify} No platform detected`));
49
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' Running in standard environment'));
50
+ console.log();
51
+ console.log(championship_style_1.FAF_COLORS.fafCyan('FAF VIBE is for no-code/low-code platforms:'));
52
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' • Replit'));
53
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' • Lovable'));
54
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' • Wix/Base44'));
55
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' • Glitch'));
56
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' • CodeSandbox'));
57
+ console.log(championship_style_1.FAF_COLORS.fafWhite(' • Stackblitz'));
58
+ console.log();
59
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.trophy} Professional Plan: $100/month`));
60
+ }
61
+ // Show quick TURBO-CAT discovery preview
62
+ if (options.preview) {
63
+ console.log();
64
+ console.log(championship_style_1.FAF_COLORS.fafCyan('━'.repeat(45)));
65
+ console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.turbo_cat} TURBO-CAT Format Discovery:`));
66
+ const turboCat = new turbo_cat_1.TurboCat();
67
+ const discovery = await turboCat.discoverFormats(process.cwd());
68
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Discovered: ${discovery.discoveredFormats.length} formats`));
69
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Intelligence: ${discovery.totalIntelligenceScore}%`));
70
+ console.log(championship_style_1.FAF_COLORS.fafWhite(` Stack: ${discovery.stackSignature}`));
71
+ }
72
+ console.log();
73
+ console.log(championship_style_1.FAF_COLORS.fafCyan('━'.repeat(45)));
74
+ console.log(championship_style_1.FAF_COLORS.fafWhite('⚡️ This is FAF VIBE - Lightning not rainbows!'));
75
+ console.log();
76
+ }
77
+ exports.default = vibeCommand;
78
+ //# sourceMappingURL=vibe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.js","sourceRoot":"","sources":["../../src/commands/vibe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 🏆 GOLDEN RULE CONVERTERS
3
+ * One Way Output: .faf = YAML ONLY
4
+ * Converters: YAML → MD, YAML → TXT
5
+ */
6
+ export interface FafData {
7
+ ai_scoring_system?: string;
8
+ ai_score?: string;
9
+ ai_confidence?: string;
10
+ project?: {
11
+ name?: string;
12
+ goal?: string;
13
+ version?: string;
14
+ main_language?: string;
15
+ };
16
+ stack?: any;
17
+ state?: {
18
+ phase?: string;
19
+ version?: string;
20
+ status?: string;
21
+ };
22
+ [key: string]: any;
23
+ }
24
+ /**
25
+ * 🏁 Convert .faf YAML to Markdown
26
+ */
27
+ export declare function fafToMarkdown(fafPath: string): string;
28
+ /**
29
+ * 🏁 Convert .faf YAML to Plain Text
30
+ */
31
+ export declare function fafToText(fafPath: string): string;
32
+ /**
33
+ * 🏁 Save converted output
34
+ */
35
+ export declare function saveConversion(fafPath: string, format: 'md' | 'txt'): string;
36
+ /**
37
+ * 🏁 CLI-friendly converter
38
+ */
39
+ export declare function convertFaf(fafPath: string, options?: {
40
+ format?: 'md' | 'txt';
41
+ output?: string;
42
+ }): string;
43
+ //# sourceMappingURL=faf-converters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-converters.d.ts","sourceRoot":"","sources":["../../src/converters/faf-converters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,OAAO;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuDrD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiDjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAa5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,UAiBnG"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * 🏆 GOLDEN RULE CONVERTERS
4
+ * One Way Output: .faf = YAML ONLY
5
+ * Converters: YAML → MD, YAML → TXT
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.fafToMarkdown = fafToMarkdown;
42
+ exports.fafToText = fafToText;
43
+ exports.saveConversion = saveConversion;
44
+ exports.convertFaf = convertFaf;
45
+ const fs = __importStar(require("fs"));
46
+ const yaml = __importStar(require("yaml"));
47
+ /**
48
+ * 🏁 Convert .faf YAML to Markdown
49
+ */
50
+ function fafToMarkdown(fafPath) {
51
+ const yamlContent = fs.readFileSync(fafPath, 'utf-8');
52
+ const data = yaml.parse(yamlContent);
53
+ let md = `# 🏎️ FAF Context - ${data.project?.name || 'Project'}\n\n`;
54
+ // Score section
55
+ if (data.ai_score) {
56
+ md += `## 📊 AI Readiness Score: ${data.ai_score}\n`;
57
+ md += `**Confidence:** ${data.ai_confidence || 'N/A'}\n\n`;
58
+ }
59
+ // Project overview
60
+ if (data.project) {
61
+ md += `## 🎯 Project Overview\n`;
62
+ md += `- **Name:** ${data.project.name}\n`;
63
+ md += `- **Goal:** ${data.project.goal || 'Not specified'}\n`;
64
+ md += `- **Version:** ${data.project.version || '1.0.0'}\n`;
65
+ md += `- **Language:** ${data.project.main_language || 'Not specified'}\n\n`;
66
+ }
67
+ // Stack
68
+ if (data.stack) {
69
+ md += `## 🛠️ Technology Stack\n`;
70
+ Object.entries(data.stack).forEach(([key, value]) => {
71
+ if (value && value !== 'None') {
72
+ md += `- **${key}:** ${value}\n`;
73
+ }
74
+ });
75
+ md += '\n';
76
+ }
77
+ // State
78
+ if (data.state) {
79
+ md += `## 📍 Current State\n`;
80
+ md += `- **Phase:** ${data.state.phase || 'development'}\n`;
81
+ md += `- **Version:** ${data.state.version || '1.0.0'}\n`;
82
+ md += `- **Status:** ${data.state.status || 'active'}\n\n`;
83
+ }
84
+ // PODIUM Status
85
+ const score = parseInt(data.ai_score?.replace('%', '') || '0');
86
+ let podium = '';
87
+ if (score >= 105)
88
+ podium = '🏆 TROPHY (Big Orange!)';
89
+ else if (score >= 99)
90
+ podium = '🥇 GOLD';
91
+ else if (score >= 95)
92
+ podium = '🥈 SILVER';
93
+ else if (score >= 85)
94
+ podium = '🥉 BRONZE';
95
+ else
96
+ podium = '🏗️ BUILDING';
97
+ md += `## 🏁 PODIUM Status: ${podium}\n\n`;
98
+ md += `---\n`;
99
+ md += `*Generated from .faf YAML - The Golden Rule*\n`;
100
+ return md;
101
+ }
102
+ /**
103
+ * 🏁 Convert .faf YAML to Plain Text
104
+ */
105
+ function fafToText(fafPath) {
106
+ const yamlContent = fs.readFileSync(fafPath, 'utf-8');
107
+ const data = yaml.parse(yamlContent);
108
+ let txt = `FAF CONTEXT REPORT\n`;
109
+ txt += `==================\n\n`;
110
+ // Basic info
111
+ txt += `Project: ${data.project?.name || 'Unknown'}\n`;
112
+ txt += `Score: ${data.ai_score || 'Not scored'}\n`;
113
+ txt += `Confidence: ${data.ai_confidence || 'N/A'}\n\n`;
114
+ // Project details
115
+ if (data.project) {
116
+ txt += `PROJECT DETAILS\n`;
117
+ txt += `---------------\n`;
118
+ txt += `Name: ${data.project.name}\n`;
119
+ txt += `Goal: ${data.project.goal || 'Not specified'}\n`;
120
+ txt += `Version: ${data.project.version || '1.0.0'}\n`;
121
+ txt += `Language: ${data.project.main_language || 'Not specified'}\n\n`;
122
+ }
123
+ // Stack (simplified)
124
+ if (data.stack) {
125
+ txt += `TECHNOLOGY STACK\n`;
126
+ txt += `----------------\n`;
127
+ Object.entries(data.stack).forEach(([key, value]) => {
128
+ if (value && value !== 'None') {
129
+ txt += `${key}: ${value}\n`;
130
+ }
131
+ });
132
+ txt += '\n';
133
+ }
134
+ // Score interpretation
135
+ const score = parseInt(data.ai_score?.replace('%', '') || '0');
136
+ txt += `PODIUM STATUS\n`;
137
+ txt += `-------------\n`;
138
+ if (score >= 105)
139
+ txt += 'TROPHY - Big Orange Achievement!\n';
140
+ else if (score >= 99)
141
+ txt += 'GOLD - Championship Ready!\n';
142
+ else if (score >= 95)
143
+ txt += 'SILVER - Excellent Foundation!\n';
144
+ else if (score >= 85)
145
+ txt += 'BRONZE - Good Progress!\n';
146
+ else
147
+ txt += 'BUILDING - Keep Going!\n';
148
+ txt += `\n---\n`;
149
+ txt += `Generated from .faf YAML\n`;
150
+ txt += `The Golden Rule: One Way Output\n`;
151
+ return txt;
152
+ }
153
+ /**
154
+ * 🏁 Save converted output
155
+ */
156
+ function saveConversion(fafPath, format) {
157
+ const outputPath = fafPath.replace('.faf', `.faf.${format}`);
158
+ try {
159
+ const converted = format === 'md'
160
+ ? fafToMarkdown(fafPath)
161
+ : fafToText(fafPath);
162
+ fs.writeFileSync(outputPath, converted);
163
+ return outputPath;
164
+ }
165
+ catch (error) {
166
+ throw new Error(`Conversion failed: ${error.message}`);
167
+ }
168
+ }
169
+ /**
170
+ * 🏁 CLI-friendly converter
171
+ */
172
+ function convertFaf(fafPath, options = {}) {
173
+ const format = options.format || 'md';
174
+ if (!fs.existsSync(fafPath)) {
175
+ throw new Error(`File not found: ${fafPath}`);
176
+ }
177
+ const converted = format === 'md'
178
+ ? fafToMarkdown(fafPath)
179
+ : fafToText(fafPath);
180
+ if (options.output) {
181
+ fs.writeFileSync(options.output, converted);
182
+ return `Converted to ${options.output}`;
183
+ }
184
+ return converted;
185
+ }
186
+ //# sourceMappingURL=faf-converters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-converters.js","sourceRoot":"","sources":["../../src/converters/faf-converters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 🚀 faf-engine Integration Bridge
3
+ * Connects the CLI to the independent faf-engine Mk-1
4
+ */
5
+ import { FafEngine } from '@faf/engine';
6
+ import type { FafData, FafScore, ContextOnDemandResult } from '@faf/engine';
7
+ export { FafEngine } from '@faf/engine';
8
+ export type { FafData, FafScore, ContextOnDemandResult } from '@faf/engine';
9
+ /**
10
+ * Create a CLI-configured engine instance
11
+ */
12
+ export declare function createCLIEngine(projectDir?: string): FafEngine;
13
+ /**
14
+ * Bridge function for existing CLI score command
15
+ */
16
+ export declare function scoreWithEngine(fafFilePath: string): Promise<FafScore>;
17
+ /**
18
+ * Bridge function for existing CLI init command
19
+ */
20
+ export declare function generateWithEngine(projectDir?: string): Promise<ContextOnDemandResult>;
21
+ /**
22
+ * Bridge function for existing CLI validate command
23
+ */
24
+ export declare function validateWithEngine(fafFilePath: string): Promise<import("@faf/engine").FafValidation>;
25
+ /**
26
+ * Compatibility layer for existing CLI functions
27
+ */
28
+ export declare const EngineBridge: {
29
+ createEngine: typeof createCLIEngine;
30
+ score: typeof scoreWithEngine;
31
+ generate: typeof generateWithEngine;
32
+ validate: typeof validateWithEngine;
33
+ enhance(fafData: FafData, apiKey?: string): Promise<FafData>;
34
+ };
35
+ //# sourceMappingURL=engine-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-bridge.d.ts","sourceRoot":"","sources":["../src/engine-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAM9D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAI5E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG5F;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,gDAI3D;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;qBAUA,OAAO,WAAW,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgBnE,CAAC"}