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,412 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 😽 TURBO-CAT™ (Turbo Catalytic Analysis Technology) v1.0.0
|
|
4
|
+
* 134-Format Intelligence Catalyst with F1-Inspired Performance
|
|
5
|
+
*
|
|
6
|
+
* Like a catalytic converter for code - transforms raw file discoveries into pure intelligence!
|
|
7
|
+
* "From dirty exhaust to clean boost" - 134 formats, 2-layer scan, <50ms delivery
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TurboCat = void 0;
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
|
+
const glob_1 = require("glob");
|
|
17
|
+
// 😽 Import TURBO-CAT Knowledge Chamber - 134 Format Catalyst
|
|
18
|
+
const turbo_cat_knowledge_1 = require("./turbo-cat-knowledge");
|
|
19
|
+
/**
|
|
20
|
+
* 🔍 TWO-LAYERED DISCOVERY ENGINE
|
|
21
|
+
* Layer 1: Direct format scanning
|
|
22
|
+
* Layer 2: Content confirmation & usage validation
|
|
23
|
+
*/
|
|
24
|
+
class TurboCat {
|
|
25
|
+
knowledgeBase = turbo_cat_knowledge_1.KNOWLEDGE_BASE;
|
|
26
|
+
/**
|
|
27
|
+
* 😽 TURBO-CAT DUAL-STAGE CATALYST
|
|
28
|
+
* Stage 1: Raw format intake (like air intake)
|
|
29
|
+
* Stage 2: Catalytic conversion to intelligence (like exhaust treatment)
|
|
30
|
+
*/
|
|
31
|
+
async discoverFormats(projectDir = process.cwd()) {
|
|
32
|
+
const discoveredFormats = [];
|
|
33
|
+
// LAYER 1: Format Discovery (based on proven two-layered file search)
|
|
34
|
+
const foundFormats = await this.layerOneFormatScan(projectDir);
|
|
35
|
+
// LAYER 2: F1-OPTIMIZED Content Confirmation (parallel validation)
|
|
36
|
+
const confirmationPromises = foundFormats.map(async (formatResult) => {
|
|
37
|
+
const confirmed = await this.layerTwoContentConfirmation(formatResult);
|
|
38
|
+
return {
|
|
39
|
+
...formatResult,
|
|
40
|
+
confirmed
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
// 🏎️ F1-OPTIMIZATION: Parallel confirmation with timeout
|
|
44
|
+
const discoveredFormatsArray = await Promise.allSettled(confirmationPromises);
|
|
45
|
+
discoveredFormats.push(...discoveredFormatsArray
|
|
46
|
+
.filter(result => result.status === 'fulfilled')
|
|
47
|
+
.map(result => result.value));
|
|
48
|
+
// Analyze results
|
|
49
|
+
return this.analyzeFormats(discoveredFormats);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* LAYER 1: Hybrid format scanning (fs.readdir + glob for optimal performance)
|
|
53
|
+
*/
|
|
54
|
+
async layerOneFormatScan(projectDir) {
|
|
55
|
+
const results = [];
|
|
56
|
+
// PHASE 1A: fs.readdir for known config files (fast, precise)
|
|
57
|
+
await this.scanConfigFiles(projectDir, results);
|
|
58
|
+
// PHASE 1B: glob for pattern-based discovery (broader, efficient)
|
|
59
|
+
await this.scanPatternFiles(projectDir, results);
|
|
60
|
+
return results;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* PHASE 1A: Use fs.readdir for known config files (optimal for specific files)
|
|
64
|
+
*/
|
|
65
|
+
async scanConfigFiles(projectDir, results) {
|
|
66
|
+
let currentDir = path_1.default.resolve(projectDir);
|
|
67
|
+
// Check up to 10 parent directories (same as .faf search)
|
|
68
|
+
for (let i = 0; i < 10; i++) {
|
|
69
|
+
try {
|
|
70
|
+
// Fast directory scan using fs.readdir (optimal for specific files)
|
|
71
|
+
const files = await fs_1.promises.readdir(currentDir);
|
|
72
|
+
// Check each file against known config files
|
|
73
|
+
for (const file of files) {
|
|
74
|
+
const formatInfo = this.knowledgeBase[file];
|
|
75
|
+
if (formatInfo) {
|
|
76
|
+
const fullPath = path_1.default.join(currentDir, file);
|
|
77
|
+
let fileStats = {};
|
|
78
|
+
try {
|
|
79
|
+
const stats = await fs_1.promises.stat(fullPath);
|
|
80
|
+
fileStats = {
|
|
81
|
+
fileSize: stats.size,
|
|
82
|
+
lastModified: stats.mtime,
|
|
83
|
+
discovered: new Date()
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Continue without stats
|
|
88
|
+
}
|
|
89
|
+
results.push({
|
|
90
|
+
fileName: file,
|
|
91
|
+
formatType: file,
|
|
92
|
+
frameworks: formatInfo.frameworks,
|
|
93
|
+
slotMappings: formatInfo.slots || {},
|
|
94
|
+
priority: formatInfo.priority,
|
|
95
|
+
intelligence: formatInfo.intelligence,
|
|
96
|
+
confirmed: false, // Will be confirmed in Layer 2
|
|
97
|
+
filePath: fullPath,
|
|
98
|
+
...fileStats
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Move to parent directory (proven .faf technique)
|
|
103
|
+
const parentDir = path_1.default.dirname(currentDir);
|
|
104
|
+
if (parentDir === currentDir) {
|
|
105
|
+
break; // Reached filesystem root
|
|
106
|
+
}
|
|
107
|
+
currentDir = parentDir;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Skip this directory if we can't read it (robust error handling)
|
|
111
|
+
const parentDir = path_1.default.dirname(currentDir);
|
|
112
|
+
if (parentDir === currentDir) {
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
currentDir = parentDir;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* PHASE 1B: F1-OPTIMIZED pattern scanning (performance-first approach)
|
|
121
|
+
*/
|
|
122
|
+
async scanPatternFiles(projectDir, results) {
|
|
123
|
+
try {
|
|
124
|
+
// 🏎️ F1-OPTIMIZATION: Single glob with multiple extensions (10x faster)
|
|
125
|
+
const files = await new Promise((resolve, reject) => {
|
|
126
|
+
(0, glob_1.glob)('**/*.{py,ts,tsx,js,jsx,svelte,vue}', {
|
|
127
|
+
cwd: projectDir,
|
|
128
|
+
ignore: ['node_modules/**', '.git/**', 'dist/**', 'build/**', 'venv/**', '__pycache__/**'],
|
|
129
|
+
absolute: true,
|
|
130
|
+
nodir: true // Only files, skip directories
|
|
131
|
+
}, (err, matches) => {
|
|
132
|
+
if (err) {
|
|
133
|
+
reject(err);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
resolve(matches.slice(0, 10)); // Limit total files for speed
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
// 🏎️ F1-OPTIMIZATION: Process files in parallel batches
|
|
141
|
+
const batchSize = 3;
|
|
142
|
+
for (let i = 0; i < files.length; i += batchSize) {
|
|
143
|
+
const batch = files.slice(i, i + batchSize);
|
|
144
|
+
// Process batch in parallel
|
|
145
|
+
await Promise.all(batch.map(async (filePath) => {
|
|
146
|
+
const ext = path_1.default.extname(filePath);
|
|
147
|
+
const formatInfo = this.knowledgeBase[`*${ext}`];
|
|
148
|
+
if (formatInfo && !results.some(r => r.filePath === filePath)) {
|
|
149
|
+
results.push({
|
|
150
|
+
fileName: path_1.default.basename(filePath),
|
|
151
|
+
formatType: ext,
|
|
152
|
+
frameworks: formatInfo.frameworks,
|
|
153
|
+
slotMappings: formatInfo.slots || {},
|
|
154
|
+
priority: formatInfo.priority,
|
|
155
|
+
intelligence: formatInfo.intelligence,
|
|
156
|
+
confirmed: false,
|
|
157
|
+
filePath
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// Graceful fallback if glob fails
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Extract deep intelligence from package.json - THE KILLER FEATURE!
|
|
169
|
+
* This is what makes FAB-FORMATS so powerful!
|
|
170
|
+
*/
|
|
171
|
+
async extractPackageJsonIntelligence(content) {
|
|
172
|
+
try {
|
|
173
|
+
const pkg = JSON.parse(content);
|
|
174
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies, ...pkg.peerDependencies };
|
|
175
|
+
// Calculate quality score like FAB-FORMATS does!
|
|
176
|
+
let score = 0;
|
|
177
|
+
const detectedFrameworks = [];
|
|
178
|
+
// TIER 1: Essential metadata (30 points)
|
|
179
|
+
if (pkg.name)
|
|
180
|
+
score += 10;
|
|
181
|
+
if (pkg.description)
|
|
182
|
+
score += 10;
|
|
183
|
+
if (pkg.version)
|
|
184
|
+
score += 5;
|
|
185
|
+
if (pkg.author || pkg.license)
|
|
186
|
+
score += 5;
|
|
187
|
+
// TIER 2: Scripts showing development maturity (30 points)
|
|
188
|
+
const scripts = pkg.scripts || {};
|
|
189
|
+
if (scripts.dev || scripts.start)
|
|
190
|
+
score += 10;
|
|
191
|
+
if (scripts.build)
|
|
192
|
+
score += 10;
|
|
193
|
+
if (scripts.test || scripts.check)
|
|
194
|
+
score += 10;
|
|
195
|
+
// TIER 3: Dependencies showing tech stack (40 points)
|
|
196
|
+
const depCount = Object.keys(allDeps).length;
|
|
197
|
+
if (depCount >= 15)
|
|
198
|
+
score += 20;
|
|
199
|
+
else if (depCount >= 8)
|
|
200
|
+
score += 15;
|
|
201
|
+
else if (depCount >= 3)
|
|
202
|
+
score += 10;
|
|
203
|
+
else if (depCount >= 1)
|
|
204
|
+
score += 5;
|
|
205
|
+
// TIER 4: Modern toolchain detection (50 points)
|
|
206
|
+
if (allDeps['typescript'] || allDeps['@types/node'])
|
|
207
|
+
score += 10;
|
|
208
|
+
if (allDeps['vite'] || allDeps['webpack'] || allDeps['rollup'])
|
|
209
|
+
score += 10;
|
|
210
|
+
if (allDeps['vitest'] || allDeps['jest'] || allDeps['playwright'])
|
|
211
|
+
score += 10;
|
|
212
|
+
if (allDeps['eslint'] || allDeps['prettier'])
|
|
213
|
+
score += 10;
|
|
214
|
+
if (allDeps['tailwindcss'] || allDeps['@emotion/styled'])
|
|
215
|
+
score += 10;
|
|
216
|
+
// TIER 5: Framework detection (MASSIVE BONUS: 50 points)
|
|
217
|
+
if (allDeps['svelte'] || allDeps['@sveltejs/kit']) {
|
|
218
|
+
score += 25;
|
|
219
|
+
detectedFrameworks.push('Svelte');
|
|
220
|
+
}
|
|
221
|
+
if (allDeps['react'] || allDeps['next']) {
|
|
222
|
+
score += 20;
|
|
223
|
+
detectedFrameworks.push('React');
|
|
224
|
+
}
|
|
225
|
+
if (allDeps['vue'] || allDeps['nuxt']) {
|
|
226
|
+
score += 20;
|
|
227
|
+
detectedFrameworks.push('Vue');
|
|
228
|
+
}
|
|
229
|
+
if (allDeps['@angular/core']) {
|
|
230
|
+
score += 15;
|
|
231
|
+
detectedFrameworks.push('Angular');
|
|
232
|
+
}
|
|
233
|
+
if (allDeps['astro']) {
|
|
234
|
+
score += 20;
|
|
235
|
+
detectedFrameworks.push('Astro');
|
|
236
|
+
}
|
|
237
|
+
// Return the intelligence object that score-calculator expects!
|
|
238
|
+
return {
|
|
239
|
+
name: pkg.name,
|
|
240
|
+
description: pkg.description,
|
|
241
|
+
version: pkg.version,
|
|
242
|
+
scripts: pkg.scripts,
|
|
243
|
+
dependencies: allDeps,
|
|
244
|
+
author: pkg.author,
|
|
245
|
+
license: pkg.license,
|
|
246
|
+
repository: pkg.repository,
|
|
247
|
+
frameworks: detectedFrameworks,
|
|
248
|
+
score: Math.min(score, 150), // Cap at 150
|
|
249
|
+
depCount,
|
|
250
|
+
hasTests: !!(scripts.test || scripts.check),
|
|
251
|
+
hasBuild: !!scripts.build,
|
|
252
|
+
hasTypeScript: !!(allDeps['typescript'] || allDeps['@types/node']),
|
|
253
|
+
hasLinting: !!(allDeps['eslint'] || allDeps['prettier']),
|
|
254
|
+
hasStyling: !!(allDeps['tailwindcss'] || allDeps['@emotion/styled'] || allDeps['styled-components'])
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* LAYER 2: F1-OPTIMIZED Content confirmation WITH INTELLIGENCE EXTRACTION!
|
|
263
|
+
*/
|
|
264
|
+
async layerTwoContentConfirmation(format) {
|
|
265
|
+
try {
|
|
266
|
+
// 🏎️ F1-OPTIMIZATION: Skip content reading for low-priority formats
|
|
267
|
+
if (format.priority < 15 && Math.random() > 0.5) {
|
|
268
|
+
return true; // Assume valid for speed on low-priority formats
|
|
269
|
+
}
|
|
270
|
+
// 🏎️ F1-OPTIMIZATION: Read only first 1KB for most files (10x faster)
|
|
271
|
+
const maxBytes = format.formatType.endsWith('.json') || format.formatType === 'Dockerfile' ? 2048 : 1024;
|
|
272
|
+
const buffer = Buffer.alloc(maxBytes);
|
|
273
|
+
const fd = await fs_1.promises.open(format.filePath, 'r');
|
|
274
|
+
const { bytesRead } = await fd.read(buffer, 0, maxBytes, 0);
|
|
275
|
+
await fd.close();
|
|
276
|
+
const content = buffer.slice(0, bytesRead).toString('utf-8');
|
|
277
|
+
// For package.json, we ALWAYS read and extract intelligence
|
|
278
|
+
if (format.formatType === 'package.json') {
|
|
279
|
+
const fullContent = await fs_1.promises.readFile(format.filePath, 'utf-8');
|
|
280
|
+
const intelligence = await this.extractPackageJsonIntelligence(fullContent);
|
|
281
|
+
if (intelligence) {
|
|
282
|
+
format.intelligence = intelligence; // Store extracted data
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
// 🏎️ F1-OPTIMIZATION: Fast validation with early exit
|
|
288
|
+
switch (format.formatType) {
|
|
289
|
+
case 'requirements.txt':
|
|
290
|
+
return content.split('\n').some(line => line.trim() && !line.startsWith('#'));
|
|
291
|
+
case 'svelte.config.js':
|
|
292
|
+
return content.includes('svelte') || content.includes('@sveltejs');
|
|
293
|
+
case 'tsconfig.json':
|
|
294
|
+
return content.includes('compilerOptions');
|
|
295
|
+
case 'Dockerfile':
|
|
296
|
+
return content.includes('FROM');
|
|
297
|
+
case '.py':
|
|
298
|
+
return content.length > 10; // Quick length check
|
|
299
|
+
case '.ts':
|
|
300
|
+
return content.includes('import') || content.includes('export') || content.includes('interface');
|
|
301
|
+
case '.svelte':
|
|
302
|
+
return content.includes('<script') || content.includes('<template');
|
|
303
|
+
case '.js':
|
|
304
|
+
return content.includes('function') || content.includes('const') || content.includes('import');
|
|
305
|
+
default:
|
|
306
|
+
return content.length > 0;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
return false; // File issues = not confirmed
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Confirm package.json contains actual dependencies
|
|
315
|
+
*/
|
|
316
|
+
confirmPackageJsonUsage(content) {
|
|
317
|
+
try {
|
|
318
|
+
const pkg = JSON.parse(content);
|
|
319
|
+
return !!(pkg.dependencies || pkg.devDependencies || pkg.scripts);
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Confirm requirements.txt has actual Python packages
|
|
327
|
+
*/
|
|
328
|
+
confirmRequirementsUsage(content) {
|
|
329
|
+
const lines = content.split('\n').filter(line => line.trim() && !line.startsWith('#'));
|
|
330
|
+
return lines.length > 0;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Analyze discovered formats and generate intelligence
|
|
334
|
+
*/
|
|
335
|
+
analyzeFormats(formats) {
|
|
336
|
+
const confirmedFormats = formats.filter(f => f.confirmed);
|
|
337
|
+
const totalIntelligenceScore = confirmedFormats.reduce((sum, f) => sum + f.priority, 0);
|
|
338
|
+
// Calculate framework confidence
|
|
339
|
+
const frameworkConfidence = {};
|
|
340
|
+
confirmedFormats.forEach(format => {
|
|
341
|
+
format.frameworks.forEach(framework => {
|
|
342
|
+
frameworkConfidence[framework] = (frameworkConfidence[framework] || 0) + format.priority;
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
// Generate slot fill recommendations
|
|
346
|
+
const slotFillRecommendations = {};
|
|
347
|
+
confirmedFormats.forEach(format => {
|
|
348
|
+
Object.entries(format.slotMappings).forEach(([slot, value]) => {
|
|
349
|
+
if (!slotFillRecommendations[slot] || format.priority > 20) {
|
|
350
|
+
slotFillRecommendations[slot] = value;
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
// 📊 STACKTISTICS: Generate stack signature from detected frameworks
|
|
355
|
+
const stackSignature = this.generateStackSignature(confirmedFormats, frameworkConfidence);
|
|
356
|
+
return {
|
|
357
|
+
discoveredFormats: formats,
|
|
358
|
+
totalIntelligenceScore,
|
|
359
|
+
confirmedFormats,
|
|
360
|
+
frameworkConfidence,
|
|
361
|
+
slotFillRecommendations,
|
|
362
|
+
stackSignature
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* 📊 STACKTISTICS: Generate stack signature from detected formats
|
|
367
|
+
* Simple, fast, and extends existing fab-formats intelligence
|
|
368
|
+
*/
|
|
369
|
+
generateStackSignature(confirmedFormats, frameworkConfidence) {
|
|
370
|
+
// Get top 3 frameworks by confidence (simple approach)
|
|
371
|
+
const topFrameworks = Object.entries(frameworkConfidence)
|
|
372
|
+
.sort(([, a], [, b]) => b - a)
|
|
373
|
+
.slice(0, 3)
|
|
374
|
+
.map(([framework]) => framework.toLowerCase().replace(/[^a-z0-9]/g, ''));
|
|
375
|
+
// Special case mappings for common stacks
|
|
376
|
+
const signature = topFrameworks.join('-');
|
|
377
|
+
// Known stack patterns (simple lookup - no complexity added)
|
|
378
|
+
const knownStacks = {
|
|
379
|
+
'nextjs-tailwind-vercel': 'next-tailwind-vercel',
|
|
380
|
+
'nextjs-tailwindcss-vercel': 'next-tailwind-vercel',
|
|
381
|
+
'svelte-sveltekit-tailwind': 'svelte5-tailwind',
|
|
382
|
+
'react-nextjs-tailwind': 'next-tailwind',
|
|
383
|
+
'python-fastapi-postgresql': 'fastapi-postgres',
|
|
384
|
+
'python-fastapi-sqlite': 'fastapi-sqlite',
|
|
385
|
+
'typescript-nodejs-express': 'node-express-ts'
|
|
386
|
+
};
|
|
387
|
+
return knownStacks[signature] || signature || 'unknown-stack';
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Get top framework recommendation
|
|
391
|
+
*/
|
|
392
|
+
getTopFramework(analysis) {
|
|
393
|
+
const frameworks = Object.entries(analysis.frameworkConfidence);
|
|
394
|
+
if (frameworks.length === 0) {
|
|
395
|
+
return null;
|
|
396
|
+
}
|
|
397
|
+
const [framework, confidence] = frameworks.reduce((max, current) => current[1] > max[1] ? current : max);
|
|
398
|
+
return { framework, confidence };
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Generate human-readable summary
|
|
402
|
+
*/
|
|
403
|
+
generateSummary(analysis) {
|
|
404
|
+
const topFramework = this.getTopFramework(analysis);
|
|
405
|
+
const confirmedCount = analysis.confirmedFormats.length;
|
|
406
|
+
const totalScore = analysis.totalIntelligenceScore;
|
|
407
|
+
return `😽 TURBO-CAT Analysis: ${confirmedCount} confirmed formats, ${totalScore} intelligence boost. ` +
|
|
408
|
+
`Top framework: ${topFramework?.framework || 'Unknown'} (${topFramework?.confidence || 0}% confidence)`;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
exports.TurboCat = TurboCat;
|
|
412
|
+
//# sourceMappingURL=turbo-cat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turbo-cat.js","sourceRoot":"","sources":["../../src/utils/turbo-cat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FAF VIBE Sync - Alternative sync targets for no-file-system platforms
|
|
3
|
+
* When there's no CLAUDE.md, we sync to platform-native locations
|
|
4
|
+
*/
|
|
5
|
+
export interface VibeSyncTarget {
|
|
6
|
+
platform: string;
|
|
7
|
+
target: string;
|
|
8
|
+
method: 'file' | 'env' | 'api' | 'clipboard';
|
|
9
|
+
instructions: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class VibeSync {
|
|
12
|
+
/**
|
|
13
|
+
* Get sync target based on platform
|
|
14
|
+
*/
|
|
15
|
+
static getSyncTarget(platform: string): VibeSyncTarget;
|
|
16
|
+
/**
|
|
17
|
+
* Perform platform-specific sync
|
|
18
|
+
*/
|
|
19
|
+
static syncContext(content: string, platform: string, projectPath: string): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Generate VIBE progression message
|
|
22
|
+
*/
|
|
23
|
+
static getProgressionMessage(currentScore: number): string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=vibe-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe-sync.d.ts","sourceRoot":"","sources":["../../src/utils/vibe-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,QAAQ;IACnB;;OAEG;WACW,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAqD7D;;OAEG;WACiB,WAAW,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAuCnB;;OAEG;WACW,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CA+BlE"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* FAF VIBE Sync - Alternative sync targets for no-file-system platforms
|
|
4
|
+
* When there's no CLAUDE.md, we sync to platform-native locations
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.VibeSync = void 0;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
class VibeSync {
|
|
44
|
+
/**
|
|
45
|
+
* Get sync target based on platform
|
|
46
|
+
*/
|
|
47
|
+
static getSyncTarget(platform) {
|
|
48
|
+
switch (platform.toLowerCase()) {
|
|
49
|
+
case 'replit':
|
|
50
|
+
return {
|
|
51
|
+
platform: 'Replit',
|
|
52
|
+
target: '.faf-context.md', // Visible in file tree
|
|
53
|
+
method: 'file',
|
|
54
|
+
instructions: 'FAF syncs to .faf-context.md - Share this with any AI!'
|
|
55
|
+
};
|
|
56
|
+
case 'lovable':
|
|
57
|
+
return {
|
|
58
|
+
platform: 'Lovable',
|
|
59
|
+
target: 'README.faf.md', // Shows in their UI
|
|
60
|
+
method: 'file',
|
|
61
|
+
instructions: 'Copy README.faf.md content to Claude/ChatGPT for instant context'
|
|
62
|
+
};
|
|
63
|
+
case 'wix':
|
|
64
|
+
case 'base44':
|
|
65
|
+
return {
|
|
66
|
+
platform: 'Wix/Base44',
|
|
67
|
+
target: 'Clipboard',
|
|
68
|
+
method: 'clipboard',
|
|
69
|
+
instructions: 'FAF copied context to clipboard - Paste in any AI!'
|
|
70
|
+
};
|
|
71
|
+
case 'glitch':
|
|
72
|
+
return {
|
|
73
|
+
platform: 'Glitch',
|
|
74
|
+
target: '.env',
|
|
75
|
+
method: 'env',
|
|
76
|
+
instructions: 'FAF context in .env as FAF_CONTEXT (copy to AI)'
|
|
77
|
+
};
|
|
78
|
+
case 'codesandbox':
|
|
79
|
+
return {
|
|
80
|
+
platform: 'CodeSandbox',
|
|
81
|
+
target: 'faf-context.json',
|
|
82
|
+
method: 'file',
|
|
83
|
+
instructions: 'Context saved to faf-context.json for AI sharing'
|
|
84
|
+
};
|
|
85
|
+
default:
|
|
86
|
+
return {
|
|
87
|
+
platform: 'Professional',
|
|
88
|
+
target: 'CLAUDE.md',
|
|
89
|
+
method: 'file',
|
|
90
|
+
instructions: 'Synced to CLAUDE.md for Claude Desktop and other AI tools'
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Perform platform-specific sync
|
|
96
|
+
*/
|
|
97
|
+
static async syncContext(content, platform, projectPath) {
|
|
98
|
+
const target = this.getSyncTarget(platform);
|
|
99
|
+
try {
|
|
100
|
+
switch (target.method) {
|
|
101
|
+
case 'file':
|
|
102
|
+
const filePath = path.join(projectPath, target.target);
|
|
103
|
+
await fs.promises.writeFile(filePath, content);
|
|
104
|
+
return true;
|
|
105
|
+
case 'env':
|
|
106
|
+
// For .env files, add as multiline string
|
|
107
|
+
const envPath = path.join(projectPath, '.env');
|
|
108
|
+
const envContent = `\n# FAF Context for AI\nFAF_CONTEXT="${content.replace(/"/g, '\\"')}"\n`;
|
|
109
|
+
await fs.promises.appendFile(envPath, envContent);
|
|
110
|
+
return true;
|
|
111
|
+
case 'clipboard':
|
|
112
|
+
// Use clipboardy or similar
|
|
113
|
+
console.log('📋 Context ready for clipboard (install clipboardy for auto-copy)');
|
|
114
|
+
console.log('\n--- COPY BELOW FOR AI ---\n');
|
|
115
|
+
console.log(content);
|
|
116
|
+
console.log('\n--- END CONTEXT ---\n');
|
|
117
|
+
return true;
|
|
118
|
+
case 'api':
|
|
119
|
+
// Future: POST to FAF cloud service
|
|
120
|
+
console.log('API sync coming soon!');
|
|
121
|
+
return false;
|
|
122
|
+
default:
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
console.error('Sync failed:', error);
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Generate VIBE progression message
|
|
133
|
+
*/
|
|
134
|
+
static getProgressionMessage(currentScore) {
|
|
135
|
+
if (currentScore < 40) {
|
|
136
|
+
return `
|
|
137
|
+
🎯 Your Prototype Score: ${currentScore}%
|
|
138
|
+
📈 With FAF VIBE: Could reach 65%+
|
|
139
|
+
🚀 With Claude Desktop: Could reach 85%+
|
|
140
|
+
|
|
141
|
+
You're building something cool! Let FAF help you level up:
|
|
142
|
+
1. Run 'faf enhance' to boost your score
|
|
143
|
+
2. Add more context about your decisions
|
|
144
|
+
3. Consider Claude Desktop for bi-directional sync
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
else if (currentScore < 70) {
|
|
148
|
+
return `
|
|
149
|
+
✨ Your Score: ${currentScore}% - Getting Professional!
|
|
150
|
+
📈 With Claude Desktop: Could reach 85%+
|
|
151
|
+
|
|
152
|
+
You're on the path to championship context:
|
|
153
|
+
1. Add technical decisions to your .faf
|
|
154
|
+
2. Document your architecture choices
|
|
155
|
+
3. Get Claude Desktop for seamless AI workflow
|
|
156
|
+
`;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return `
|
|
160
|
+
🏆 Championship Score: ${currentScore}%!
|
|
161
|
+
|
|
162
|
+
You've graduated from prototype to professional!
|
|
163
|
+
Consider the $100 Pro plan for enterprise features.
|
|
164
|
+
`;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.VibeSync = VibeSync;
|
|
169
|
+
//# sourceMappingURL=vibe-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe-sync.js","sourceRoot":"","sources":["../../src/utils/vibe-sync.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAS7B,MAAa,QAAQ;IACnB;;OAEG;IACI,MAAM,CAAC,aAAa,CAAC,QAAgB;QAC1C,QAAO,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO;oBACL,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,iBAAiB,EAAG,uBAAuB;oBACnD,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,wDAAwD;iBACvE,CAAC;YAEJ,KAAK,SAAS;gBACZ,OAAO;oBACL,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,eAAe,EAAG,oBAAoB;oBAC9C,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,kEAAkE;iBACjF,CAAC;YAEJ,KAAK,KAAK,CAAC;YACX,KAAK,QAAQ;gBACX,OAAO;oBACL,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,WAAW;oBACnB,YAAY,EAAE,oDAAoD;iBACnE,CAAC;YAEJ,KAAK,QAAQ;gBACX,OAAO;oBACL,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,KAAK;oBACb,YAAY,EAAE,iDAAiD;iBAChE,CAAC;YAEJ,KAAK,aAAa;gBAChB,OAAO;oBACL,QAAQ,EAAE,aAAa;oBACvB,MAAM,EAAE,kBAAkB;oBAC1B,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,kDAAkD;iBACjE,CAAC;YAEJ;gBACE,OAAO;oBACL,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,2DAA2D;iBAC1E,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAC7B,OAAe,EACf,QAAgB,EAChB,WAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,QAAO,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,MAAM;oBACT,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBAEd,KAAK,KAAK;oBACR,0CAA0C;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oBAC/C,MAAM,UAAU,GAAG,wCAAwC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;oBAC7F,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAClD,OAAO,IAAI,CAAC;gBAEd,KAAK,WAAW;oBACd,4BAA4B;oBAC5B,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;oBACjF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;oBACvC,OAAO,IAAI,CAAC;gBAEd,KAAK,KAAK;oBACR,oCAAoC;oBACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACrC,OAAO,KAAK,CAAC;gBAEf;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,qBAAqB,CAAC,YAAoB;QACtD,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO;2BACc,YAAY;;;;;;;;CAQtC,CAAC;QACE,CAAC;aAAM,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;YAC7B,OAAO;gBACG,YAAY;;;;;;;CAO3B,CAAC;QACE,CAAC;aAAM,CAAC;YACN,OAAO;yBACY,YAAY;;;;CAIpC,CAAC;QACE,CAAC;IACH,CAAC;CACF;AAzID,4BAyIC"}
|