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.
- package/LICENSE +21 -0
- package/README.md +227 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1249 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ai-analyze.d.ts +18 -0
- package/dist/commands/ai-analyze.d.ts.map +1 -0
- package/dist/commands/ai-analyze.js +226 -0
- package/dist/commands/ai-analyze.js.map +1 -0
- package/dist/commands/ai-enhance.d.ts +17 -0
- package/dist/commands/ai-enhance.d.ts.map +1 -0
- package/dist/commands/ai-enhance.js +278 -0
- package/dist/commands/ai-enhance.js.map +1 -0
- package/dist/commands/audit.d.ts +11 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +180 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auto.d.ts +27 -0
- package/dist/commands/auto.d.ts.map +1 -0
- package/dist/commands/auto.js +106 -0
- package/dist/commands/auto.js.map +1 -0
- package/dist/commands/bi-sync.d.ts +43 -0
- package/dist/commands/bi-sync.d.ts.map +1 -0
- package/dist/commands/bi-sync.js +224 -0
- package/dist/commands/bi-sync.js.map +1 -0
- package/dist/commands/chat.d.ts +6 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +227 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/check.d.ts +15 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +58 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/clear.d.ts +15 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +167 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/commit.d.ts +8 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +164 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/convert.d.ts +19 -0
- package/dist/commands/convert.d.ts.map +1 -0
- package/dist/commands/convert.js +102 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/credit.d.ts +13 -0
- package/dist/commands/credit.d.ts.map +1 -0
- package/dist/commands/credit.js +149 -0
- package/dist/commands/credit.js.map +1 -0
- package/dist/commands/edit-helper.d.ts +6 -0
- package/dist/commands/edit-helper.d.ts.map +1 -0
- package/dist/commands/edit-helper.js +55 -0
- package/dist/commands/edit-helper.js.map +1 -0
- package/dist/commands/edit.d.ts +14 -0
- package/dist/commands/edit.d.ts.map +1 -0
- package/dist/commands/edit.js +196 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/faf-auth.d.ts +10 -0
- package/dist/commands/faf-auth.d.ts.map +1 -0
- package/dist/commands/faf-auth.js +162 -0
- package/dist/commands/faf-auth.js.map +1 -0
- package/dist/commands/faf-dna.d.ts +9 -0
- package/dist/commands/faf-dna.d.ts.map +1 -0
- package/dist/commands/faf-dna.js +141 -0
- package/dist/commands/faf-dna.js.map +1 -0
- package/dist/commands/faf-log.d.ts +9 -0
- package/dist/commands/faf-log.d.ts.map +1 -0
- package/dist/commands/faf-log.js +135 -0
- package/dist/commands/faf-log.js.map +1 -0
- package/dist/commands/faf-recover.d.ts +3 -0
- package/dist/commands/faf-recover.d.ts.map +1 -0
- package/dist/commands/faf-recover.js +299 -0
- package/dist/commands/faf-recover.js.map +1 -0
- package/dist/commands/faf-update.d.ts +9 -0
- package/dist/commands/faf-update.d.ts.map +1 -0
- package/dist/commands/faf-update.js +68 -0
- package/dist/commands/faf-update.js.map +1 -0
- package/dist/commands/faq.d.ts +12 -0
- package/dist/commands/faq.d.ts.map +1 -0
- package/dist/commands/faq.js +84 -0
- package/dist/commands/faq.js.map +1 -0
- package/dist/commands/flow.d.ts +11 -0
- package/dist/commands/flow.d.ts.map +1 -0
- package/dist/commands/flow.js +117 -0
- package/dist/commands/flow.js.map +1 -0
- package/dist/commands/formats.d.ts +12 -0
- package/dist/commands/formats.d.ts.map +1 -0
- package/dist/commands/formats.js +109 -0
- package/dist/commands/formats.js.map +1 -0
- package/dist/commands/index.d.ts +14 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +443 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +202 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.d.ts +11 -0
- package/dist/commands/lint.d.ts.map +1 -0
- package/dist/commands/lint.js +269 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/mirror.d.ts +7 -0
- package/dist/commands/mirror.d.ts.map +1 -0
- package/dist/commands/mirror.js +130 -0
- package/dist/commands/mirror.js.map +1 -0
- package/dist/commands/score.d.ts +11 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +192 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/search.d.ts +16 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +174 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/share.d.ts +17 -0
- package/dist/commands/share.d.ts.map +1 -0
- package/dist/commands/share.js +260 -0
- package/dist/commands/share.js.map +1 -0
- package/dist/commands/show.d.ts +10 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +167 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/stacks.d.ts +51 -0
- package/dist/commands/stacks.d.ts.map +1 -0
- package/dist/commands/stacks.js +180 -0
- package/dist/commands/stacks.js.map +1 -0
- package/dist/commands/status.d.ts +13 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +158 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +11 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +300 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/todo.d.ts +14 -0
- package/dist/commands/todo.d.ts.map +1 -0
- package/dist/commands/todo.js +279 -0
- package/dist/commands/todo.js.map +1 -0
- package/dist/commands/trust.d.ts +33 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +316 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/validate.d.ts +11 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +100 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/verify.d.ts +36 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +194 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/version.d.ts +5 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +33 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/vibe.d.ts +7 -0
- package/dist/commands/vibe.d.ts.map +1 -0
- package/dist/commands/vibe.js +78 -0
- package/dist/commands/vibe.js.map +1 -0
- package/dist/converters/faf-converters.d.ts +43 -0
- package/dist/converters/faf-converters.d.ts.map +1 -0
- package/dist/converters/faf-converters.js +186 -0
- package/dist/converters/faf-converters.js.map +1 -0
- package/dist/engine-bridge.d.ts +35 -0
- package/dist/engine-bridge.d.ts.map +1 -0
- package/dist/engine-bridge.js +76 -0
- package/dist/engine-bridge.js.map +1 -0
- package/dist/engines/claude-todo-engine.d.ts +115 -0
- package/dist/engines/claude-todo-engine.d.ts.map +1 -0
- package/dist/engines/claude-todo-engine.js +346 -0
- package/dist/engines/claude-todo-engine.js.map +1 -0
- package/dist/engines/drop-coach.d.ts +64 -0
- package/dist/engines/drop-coach.d.ts.map +1 -0
- package/dist/engines/drop-coach.js +222 -0
- package/dist/engines/drop-coach.js.map +1 -0
- package/dist/engines/fab-formats-processor.d.ts +167 -0
- package/dist/engines/fab-formats-processor.d.ts.map +1 -0
- package/dist/engines/fab-formats-processor.js +1274 -0
- package/dist/engines/fab-formats-processor.js.map +1 -0
- package/dist/engines/faf-dna.d.ts +160 -0
- package/dist/engines/faf-dna.d.ts.map +1 -0
- package/dist/engines/faf-dna.js +522 -0
- package/dist/engines/faf-dna.js.map +1 -0
- package/dist/engines/relentless-context-extractor.d.ts +101 -0
- package/dist/engines/relentless-context-extractor.d.ts.map +1 -0
- package/dist/engines/relentless-context-extractor.js +625 -0
- package/dist/engines/relentless-context-extractor.js.map +1 -0
- package/dist/fix-once/colors.d.ts +83 -0
- package/dist/fix-once/colors.d.ts.map +1 -0
- package/dist/fix-once/colors.js +145 -0
- package/dist/fix-once/colors.js.map +1 -0
- package/dist/fix-once/types.d.ts +258 -0
- package/dist/fix-once/types.d.ts.map +1 -0
- package/dist/fix-once/types.js +26 -0
- package/dist/fix-once/types.js.map +1 -0
- package/dist/framework-detector.d.ts +286 -0
- package/dist/framework-detector.d.ts.map +1 -0
- package/dist/framework-detector.js +782 -0
- package/dist/framework-detector.js.map +1 -0
- package/dist/generators/faf-generator-championship.d.ts +11 -0
- package/dist/generators/faf-generator-championship.d.ts.map +1 -0
- package/dist/generators/faf-generator-championship.js +371 -0
- package/dist/generators/faf-generator-championship.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/output/experience-manager.d.ts +58 -0
- package/dist/output/experience-manager.d.ts.map +1 -0
- package/dist/output/experience-manager.js +212 -0
- package/dist/output/experience-manager.js.map +1 -0
- package/dist/schema/faf-schema.d.ts +92 -0
- package/dist/schema/faf-schema.d.ts.map +1 -0
- package/dist/schema/faf-schema.js +173 -0
- package/dist/schema/faf-schema.js.map +1 -0
- package/dist/scoring/championship-scorer.d.ts +114 -0
- package/dist/scoring/championship-scorer.d.ts.map +1 -0
- package/dist/scoring/championship-scorer.js +380 -0
- package/dist/scoring/championship-scorer.js.map +1 -0
- package/dist/scoring/score-calculator.d.ts +29 -0
- package/dist/scoring/score-calculator.d.ts.map +1 -0
- package/dist/scoring/score-calculator.js +520 -0
- package/dist/scoring/score-calculator.js.map +1 -0
- package/dist/telemetry/analytics.d.ts +74 -0
- package/dist/telemetry/analytics.d.ts.map +1 -0
- package/dist/telemetry/analytics.js +370 -0
- package/dist/telemetry/analytics.js.map +1 -0
- package/dist/utils/balance-visualizer.d.ts +38 -0
- package/dist/utils/balance-visualizer.d.ts.map +1 -0
- package/dist/utils/balance-visualizer.js +196 -0
- package/dist/utils/balance-visualizer.js.map +1 -0
- package/dist/utils/championship-style.d.ts +110 -0
- package/dist/utils/championship-style.d.ts.map +1 -0
- package/dist/utils/championship-style.js +213 -0
- package/dist/utils/championship-style.js.map +1 -0
- package/dist/utils/color-utils.d.ts +17 -0
- package/dist/utils/color-utils.d.ts.map +1 -0
- package/dist/utils/color-utils.js +96 -0
- package/dist/utils/color-utils.js.map +1 -0
- package/dist/utils/fab-formats-engine.d.ts +76 -0
- package/dist/utils/fab-formats-engine.d.ts.map +1 -0
- package/dist/utils/fab-formats-engine.js +424 -0
- package/dist/utils/fab-formats-engine.js.map +1 -0
- package/dist/utils/fafignore-parser.d.ts +21 -0
- package/dist/utils/fafignore-parser.d.ts.map +1 -0
- package/dist/utils/fafignore-parser.js +178 -0
- package/dist/utils/fafignore-parser.js.map +1 -0
- package/dist/utils/file-utils.d.ts +65 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +598 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/platform-detector.d.ts +31 -0
- package/dist/utils/platform-detector.d.ts.map +1 -0
- package/dist/utils/platform-detector.js +218 -0
- package/dist/utils/platform-detector.js.map +1 -0
- package/dist/utils/technical-credit.d.ts +36 -0
- package/dist/utils/technical-credit.d.ts.map +1 -0
- package/dist/utils/technical-credit.js +286 -0
- package/dist/utils/technical-credit.js.map +1 -0
- package/dist/utils/trust-cache.d.ts +29 -0
- package/dist/utils/trust-cache.d.ts.map +1 -0
- package/dist/utils/trust-cache.js +123 -0
- package/dist/utils/trust-cache.js.map +1 -0
- package/dist/utils/turbo-cat-knowledge.d.ts +82 -0
- package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -0
- package/dist/utils/turbo-cat-knowledge.js +1346 -0
- package/dist/utils/turbo-cat-knowledge.js.map +1 -0
- package/dist/utils/turbo-cat-pyramid.d.ts +38 -0
- package/dist/utils/turbo-cat-pyramid.d.ts.map +1 -0
- package/dist/utils/turbo-cat-pyramid.js +287 -0
- package/dist/utils/turbo-cat-pyramid.js.map +1 -0
- package/dist/utils/turbo-cat.d.ts +92 -0
- package/dist/utils/turbo-cat.d.ts.map +1 -0
- package/dist/utils/turbo-cat.js +412 -0
- package/dist/utils/turbo-cat.js.map +1 -0
- package/dist/utils/vibe-sync.d.ts +25 -0
- package/dist/utils/vibe-sync.d.ts.map +1 -0
- package/dist/utils/vibe-sync.js +169 -0
- package/dist/utils/vibe-sync.js.map +1 -0
- package/dist/utils/yaml-generator.d.ts +39 -0
- package/dist/utils/yaml-generator.d.ts.map +1 -0
- package/dist/utils/yaml-generator.js +345 -0
- package/dist/utils/yaml-generator.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BH,sCAuDC;AAKD,8BAiDC;AAKD,wCAaC;AAKD,gCAiBC;AA/KD,uCAAyB;AAEzB,2CAA6B;AAqB7B;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,EAAE,GAAG,uBAAuB,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,MAAM,CAAC;IAEtE,gBAAgB;IAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,EAAE,IAAI,6BAA6B,IAAI,CAAC,QAAQ,IAAI,CAAC;QACrD,EAAE,IAAI,mBAAmB,IAAI,CAAC,aAAa,IAAI,KAAK,MAAM,CAAC;IAC7D,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,EAAE,IAAI,0BAA0B,CAAC;QACjC,EAAE,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC3C,EAAE,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,eAAe,IAAI,CAAC;QAC9D,EAAE,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC;QAC5D,EAAE,IAAI,mBAAmB,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,eAAe,MAAM,CAAC;IAC/E,CAAC;IAED,QAAQ;IACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,EAAE,IAAI,2BAA2B,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClD,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC9B,EAAE,IAAI,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,IAAI,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;IACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,EAAE,IAAI,uBAAuB,CAAC;QAC9B,EAAE,IAAI,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,IAAI,CAAC;QAC5D,EAAE,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC;QAC1D,EAAE,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,MAAM,CAAC;IAC7D,CAAC;IAED,gBAAgB;IAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,IAAI,GAAG;QAAE,MAAM,GAAG,yBAAyB,CAAC;SAChD,IAAI,KAAK,IAAI,EAAE;QAAE,MAAM,GAAG,SAAS,CAAC;SACpC,IAAI,KAAK,IAAI,EAAE;QAAE,MAAM,GAAG,WAAW,CAAC;SACtC,IAAI,KAAK,IAAI,EAAE;QAAE,MAAM,GAAG,WAAW,CAAC;;QACtC,MAAM,GAAG,cAAc,CAAC;IAE7B,EAAE,IAAI,wBAAwB,MAAM,MAAM,CAAC;IAE3C,EAAE,IAAI,OAAO,CAAC;IACd,EAAE,IAAI,gDAAgD,CAAC;IAEvD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,GAAG,GAAG,sBAAsB,CAAC;IACjC,GAAG,IAAI,wBAAwB,CAAC;IAEhC,aAAa;IACb,GAAG,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,IAAI,CAAC;IACvD,GAAG,IAAI,UAAU,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,CAAC;IACnD,GAAG,IAAI,eAAe,IAAI,CAAC,aAAa,IAAI,KAAK,MAAM,CAAC;IAExD,kBAAkB;IAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,IAAI,mBAAmB,CAAC;QAC3B,GAAG,IAAI,mBAAmB,CAAC;QAC3B,GAAG,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QACtC,GAAG,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,eAAe,IAAI,CAAC;QACzD,GAAG,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC;QACvD,GAAG,IAAI,aAAa,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,eAAe,MAAM,CAAC;IAC1E,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,IAAI,oBAAoB,CAAC;QAC5B,GAAG,IAAI,oBAAoB,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClD,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC9B,GAAG,IAAI,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,IAAI,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/D,GAAG,IAAI,iBAAiB,CAAC;IACzB,GAAG,IAAI,iBAAiB,CAAC;IACzB,IAAI,KAAK,IAAI,GAAG;QAAE,GAAG,IAAI,oCAAoC,CAAC;SACzD,IAAI,KAAK,IAAI,EAAE;QAAE,GAAG,IAAI,8BAA8B,CAAC;SACvD,IAAI,KAAK,IAAI,EAAE;QAAE,GAAG,IAAI,kCAAkC,CAAC;SAC3D,IAAI,KAAK,IAAI,EAAE;QAAE,GAAG,IAAI,2BAA2B,CAAC;;QACpD,GAAG,IAAI,0BAA0B,CAAC;IAEvC,GAAG,IAAI,SAAS,CAAC;IACjB,GAAG,IAAI,4BAA4B,CAAC;IACpC,GAAG,IAAI,mCAAmC,CAAC;IAE3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAe,EAAE,MAAoB;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,MAAM,EAAE,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI;YAC/B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;YACxB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEvB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAe,EAAE,UAAsD,EAAE;IAClG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IAEtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI;QAC/B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;QACxB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,gBAAgB,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -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"}
|