faf-cli 2.4.7 โ 2.4.9
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/dist/cli.js +0 -0
- package/dist/commands/ai-analyze.js +32 -35
- package/dist/commands/ai-analyze.js.map +1 -1
- package/dist/commands/ai-enhance.js +19 -22
- package/dist/commands/ai-enhance.js.map +1 -1
- package/dist/commands/audit.js +18 -21
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/auto.js +30 -33
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/chat.js +2 -2
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/convert.js +13 -16
- package/dist/commands/convert.js.map +1 -1
- package/dist/commands/doctor.js +11 -14
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit-helper.js +23 -26
- package/dist/commands/edit-helper.js.map +1 -1
- package/dist/commands/enhance-real.js +46 -46
- package/dist/commands/enhance-real.js.map +1 -1
- package/dist/commands/faq.js +12 -12
- package/dist/commands/faq.js.map +1 -1
- package/dist/commands/formats.js +6 -9
- package/dist/commands/formats.js.map +1 -1
- package/dist/commands/index.js +11 -14
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.js +12 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/lint.js +18 -21
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/notifications.js +3 -6
- package/dist/commands/notifications.js.map +1 -1
- package/dist/commands/quick.js +18 -21
- package/dist/commands/quick.js.map +1 -1
- package/dist/commands/score-v3.js +28 -31
- package/dist/commands/score-v3.js.map +1 -1
- package/dist/commands/score.js +26 -29
- package/dist/commands/score.js.map +1 -1
- package/dist/commands/show.js +25 -28
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/sync.js +17 -20
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/trust.js +31 -31
- package/dist/commands/trust.js.map +1 -1
- package/dist/commands/verify.js +21 -21
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/version.js +6 -9
- package/dist/commands/version.js.map +1 -1
- package/dist/commands/vibe.js +2 -5
- package/dist/commands/vibe.js.map +1 -1
- package/dist/commands/welcome.js +15 -18
- package/dist/commands/welcome.js.map +1 -1
- package/dist/tests/test-chrome-fuzzy.js +7 -10
- package/dist/tests/test-chrome-fuzzy.js.map +1 -1
- package/dist/utils/announcements.js +27 -27
- package/dist/utils/announcements.js.map +1 -1
- package/dist/utils/chrome-extension-confirmer.js +5 -5
- package/dist/utils/chrome-extension-confirmer.js.map +1 -1
- package/dist/utils/color-utils.d.ts +6 -6
- package/dist/utils/color-utils.js +20 -23
- package/dist/utils/color-utils.js.map +1 -1
- package/dist/utils/email-opt-in.js +22 -22
- package/dist/utils/email-opt-in.js.map +1 -1
- package/dist/utils/feedback-messages.d.ts +1 -1
- package/dist/utils/feedback-messages.d.ts.map +1 -1
- package/dist/utils/feedback-messages.js +32 -35
- package/dist/utils/feedback-messages.js.map +1 -1
- package/dist/utils/native-cli-parser.d.ts +4 -1
- package/dist/utils/native-cli-parser.d.ts.map +1 -1
- package/dist/utils/native-cli-parser.js +6 -2
- package/dist/utils/native-cli-parser.js.map +1 -1
- package/dist/utils/score-header.js +7 -10
- package/dist/utils/score-header.js.map +1 -1
- package/dist/utils/update-checker.js +2 -2
- package/dist/utils/update-checker.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/about.d.ts +0 -10
- package/dist/commands/about.d.ts.map +0 -1
- package/dist/commands/about.js +0 -249
- package/dist/commands/about.js.map +0 -1
- package/dist/commands/art.d.ts +0 -10
- package/dist/commands/art.d.ts.map +0 -1
- package/dist/commands/art.js +0 -130
- package/dist/commands/art.js.map +0 -1
- package/dist/commands/email.d.ts +0 -23
- package/dist/commands/email.d.ts.map +0 -1
- package/dist/commands/email.js +0 -183
- package/dist/commands/email.js.map +0 -1
- package/dist/commands/license-config.d.ts +0 -10
- package/dist/commands/license-config.d.ts.map +0 -1
- package/dist/commands/license-config.js +0 -140
- package/dist/commands/license-config.js.map +0 -1
- package/dist/commands/license.d.ts +0 -7
- package/dist/commands/license.d.ts.map +0 -1
- package/dist/commands/license.js +0 -60
- package/dist/commands/license.js.map +0 -1
- package/dist/commands/submit-art.d.ts +0 -25
- package/dist/commands/submit-art.d.ts.map +0 -1
- package/dist/commands/submit-art.js +0 -348
- package/dist/commands/submit-art.js.map +0 -1
- package/dist/commands/subscribe.d.ts +0 -12
- package/dist/commands/subscribe.d.ts.map +0 -1
- package/dist/commands/subscribe.js +0 -38
- package/dist/commands/subscribe.js.map +0 -1
- package/dist/engine/engine-loader.d.ts +0 -24
- package/dist/engine/engine-loader.d.ts.map +0 -1
- package/dist/engine/engine-loader.js +0 -156
- package/dist/engine/engine-loader.js.map +0 -1
- package/dist/engine-bridge.d.ts +0 -38
- package/dist/engine-bridge.d.ts.map +0 -1
- package/dist/engine-bridge.js +0 -71
- package/dist/engine-bridge.js.map +0 -1
- package/dist/engine-mk2/mk2-core.d.ts +0 -38
- package/dist/engine-mk2/mk2-core.d.ts.map +0 -1
- package/dist/engine-mk2/mk2-core.js +0 -217
- package/dist/engine-mk2/mk2-core.js.map +0 -1
- package/dist/license/license-config.d.ts +0 -59
- package/dist/license/license-config.d.ts.map +0 -1
- package/dist/license/license-config.js +0 -263
- package/dist/license/license-config.js.map +0 -1
- package/dist/license/license-controller.d.ts +0 -41
- package/dist/license/license-controller.d.ts.map +0 -1
- package/dist/license/license-controller.js +0 -243
- package/dist/license/license-controller.js.map +0 -1
- package/dist/utils/art-gallery.d.ts +0 -66
- package/dist/utils/art-gallery.d.ts.map +0 -1
- package/dist/utils/art-gallery.js +0 -320
- package/dist/utils/art-gallery.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -27
- package/dist/utils/error-handler.d.ts.map +0 -1
- package/dist/utils/error-handler.js +0 -152
- package/dist/utils/error-handler.js.map +0 -1
- package/dist/utils/score-indicators.d.ts +0 -47
- package/dist/utils/score-indicators.d.ts.map +0 -1
- package/dist/utils/score-indicators.js +0 -197
- package/dist/utils/score-indicators.js.map +0 -1
package/dist/commands/score.js
CHANGED
|
@@ -36,12 +36,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
return result;
|
|
37
37
|
};
|
|
38
38
|
})();
|
|
39
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
-
};
|
|
42
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
40
|
exports.scoreFafFile = scoreFafFile;
|
|
44
|
-
const
|
|
41
|
+
const colors_1 = require("../fix-once/colors");
|
|
45
42
|
const fs_1 = require("fs");
|
|
46
43
|
const YAML = __importStar(require("yaml"));
|
|
47
44
|
const score_calculator_1 = require("../scoring/score-calculator");
|
|
@@ -93,16 +90,16 @@ async function scoreFafFile(file, options = {}) {
|
|
|
93
90
|
}
|
|
94
91
|
if (!fafPath) {
|
|
95
92
|
if (file) {
|
|
96
|
-
console.error(
|
|
97
|
-
console.log(
|
|
93
|
+
console.error(colors_1.chalk.red(`โ No .faf file found at: ${file}`));
|
|
94
|
+
console.log(colors_1.chalk.yellow(`๐ก Check the path or run "faf init" in that directory`));
|
|
98
95
|
}
|
|
99
96
|
else {
|
|
100
|
-
console.error(
|
|
101
|
-
console.log(
|
|
97
|
+
console.error(colors_1.chalk.red("โ No .faf file found in current directory"));
|
|
98
|
+
console.log(colors_1.chalk.yellow('๐ก Run "faf init" to create one'));
|
|
102
99
|
}
|
|
103
100
|
process.exit(1);
|
|
104
101
|
}
|
|
105
|
-
console.log(
|
|
102
|
+
console.log(colors_1.chalk.blue(`๐ Scoring: ${fafPath}`));
|
|
106
103
|
// Read and parse .faf file
|
|
107
104
|
const content = await fs_1.promises.readFile(fafPath, "utf-8");
|
|
108
105
|
const fafData = YAML.parse(content);
|
|
@@ -122,8 +119,8 @@ async function scoreFafFile(file, options = {}) {
|
|
|
122
119
|
const scoreColor = (0, color_utils_1.getScoreColor)(percentage);
|
|
123
120
|
const scoreEmoji = (0, color_utils_1.getScoreEmoji)(percentage);
|
|
124
121
|
const scoreText = `${scoreEmoji} Score: ${percentage}%`;
|
|
125
|
-
console.log(scoreColor(
|
|
126
|
-
console.log(
|
|
122
|
+
console.log(scoreColor(colors_1.chalk.bold(scoreText)));
|
|
123
|
+
console.log(colors_1.chalk.gray(' Run "faf init" to create DNA tracking'));
|
|
127
124
|
}
|
|
128
125
|
// Show AI|HUMAN Balance visualization
|
|
129
126
|
console.log('\n' + 'โ'.repeat(50));
|
|
@@ -143,41 +140,41 @@ async function scoreFafFile(file, options = {}) {
|
|
|
143
140
|
}
|
|
144
141
|
});
|
|
145
142
|
if (missingItems.length > 0 && !options.details) {
|
|
146
|
-
console.log(
|
|
143
|
+
console.log(colors_1.chalk.gray("\n Missing for higher score:"));
|
|
147
144
|
missingItems.slice(0, 5).forEach((item) => {
|
|
148
|
-
console.log(
|
|
145
|
+
console.log(colors_1.chalk.gray(` โข ${item}`));
|
|
149
146
|
});
|
|
150
|
-
console.log(
|
|
147
|
+
console.log(colors_1.chalk.cyan('\n ๐ก Run "faf score --details" for complete breakdown'));
|
|
151
148
|
}
|
|
152
149
|
// VIBE Progression Path (for low-scoring prototypes)
|
|
153
150
|
const detector = new platform_detector_1.PlatformDetector();
|
|
154
151
|
const platform = await detector.detectPlatform();
|
|
155
152
|
if (platform.tier === 'vibe' && percentage < 70) {
|
|
156
153
|
console.log();
|
|
157
|
-
console.log(
|
|
154
|
+
console.log(colors_1.chalk.bold.cyan('โก๏ธ FAF VIBE PROGRESSION PATH:'));
|
|
158
155
|
console.log(vibe_sync_1.VibeSync.getProgressionMessage(percentage));
|
|
159
156
|
}
|
|
160
157
|
// Detailed breakdown
|
|
161
158
|
if (options.details) {
|
|
162
|
-
console.log(
|
|
159
|
+
console.log(colors_1.chalk.blue("\n๐ Detailed Breakdown:"));
|
|
163
160
|
Object.entries(scoreResult.sectionScores).forEach(([section, score]) => {
|
|
164
161
|
const sectionPercentage = Math.round(score.percentage);
|
|
165
162
|
const sectionColor = sectionPercentage >= 70
|
|
166
|
-
?
|
|
163
|
+
? colors_1.chalk.green
|
|
167
164
|
: sectionPercentage >= 40
|
|
168
|
-
?
|
|
169
|
-
:
|
|
165
|
+
? colors_1.chalk.yellow
|
|
166
|
+
: colors_1.chalk.red;
|
|
170
167
|
console.log(` ${sectionColor(section)}: ${sectionPercentage}% (${score.filled}/${score.total})`);
|
|
171
168
|
if (score.missing.length > 0) {
|
|
172
|
-
console.log(
|
|
169
|
+
console.log(colors_1.chalk.gray(` Missing: ${score.missing.join(", ")}`));
|
|
173
170
|
}
|
|
174
171
|
});
|
|
175
172
|
// Improvement suggestions
|
|
176
173
|
if (percentage < 100) {
|
|
177
|
-
console.log(
|
|
174
|
+
console.log(colors_1.chalk.blue("\n๐ก Quick Wins:"));
|
|
178
175
|
const suggestions = scoreResult.suggestions.slice(0, 3);
|
|
179
176
|
suggestions.forEach((suggestion, index) => {
|
|
180
|
-
console.log(
|
|
177
|
+
console.log(colors_1.chalk.yellow(` ${index + 1}. ${suggestion}`));
|
|
181
178
|
});
|
|
182
179
|
}
|
|
183
180
|
}
|
|
@@ -185,27 +182,27 @@ async function scoreFafFile(file, options = {}) {
|
|
|
185
182
|
if (options.minimum) {
|
|
186
183
|
const minimumScore = parseInt(options.minimum);
|
|
187
184
|
if (percentage < minimumScore) {
|
|
188
|
-
console.error(
|
|
185
|
+
console.error(colors_1.chalk.red(`\n๐จ Score below minimum threshold (${minimumScore}%)`));
|
|
189
186
|
process.exit(1);
|
|
190
187
|
}
|
|
191
188
|
}
|
|
192
189
|
// Success message
|
|
193
190
|
if (percentage === 100) {
|
|
194
|
-
console.log(
|
|
191
|
+
console.log(colors_1.chalk.green.bold("\n๐ Perfect .faf file! Ready for AI collaboration!"));
|
|
195
192
|
}
|
|
196
193
|
else if (percentage >= 80) {
|
|
197
|
-
console.log(
|
|
194
|
+
console.log(colors_1.chalk.green("\nโจ Excellent .faf file! Minor improvements possible."));
|
|
198
195
|
}
|
|
199
196
|
else if (percentage >= 60) {
|
|
200
|
-
console.log(
|
|
197
|
+
console.log(colors_1.chalk.yellow("\n๐ Good .faf file! Some gaps to fill."));
|
|
201
198
|
}
|
|
202
199
|
else {
|
|
203
|
-
console.log(
|
|
200
|
+
console.log(colors_1.chalk.red("\nโ ๏ธ .faf file needs improvement for optimal AI context."));
|
|
204
201
|
}
|
|
205
202
|
}
|
|
206
203
|
catch (error) {
|
|
207
|
-
console.error(
|
|
208
|
-
console.error(
|
|
204
|
+
console.error(colors_1.chalk.red("๐ฅ Scoring failed:"));
|
|
205
|
+
console.error(colors_1.chalk.red(error instanceof Error ? error.message : String(error)));
|
|
209
206
|
process.exit(1);
|
|
210
207
|
}
|
|
211
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/commands/score.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/commands/score.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/show.js
CHANGED
|
@@ -36,12 +36,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
return result;
|
|
37
37
|
};
|
|
38
38
|
})();
|
|
39
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
-
};
|
|
42
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
40
|
exports.showFafScoreCard = showFafScoreCard;
|
|
44
|
-
const
|
|
41
|
+
const colors_1 = require("../fix-once/colors");
|
|
45
42
|
const fs_1 = require("fs");
|
|
46
43
|
const YAML = __importStar(require("yaml"));
|
|
47
44
|
const score_calculator_1 = require("../scoring/score-calculator");
|
|
@@ -53,8 +50,8 @@ async function showFafScoreCard(directory, options = {}) {
|
|
|
53
50
|
// Find .faf file in directory
|
|
54
51
|
const fafPath = await (0, file_utils_1.findFafFile)(targetDir);
|
|
55
52
|
if (!fafPath) {
|
|
56
|
-
console.log(
|
|
57
|
-
console.log(
|
|
53
|
+
console.log(colors_1.chalk.red("โ No .faf file found"));
|
|
54
|
+
console.log(colors_1.chalk.yellow('๐ก Run "faf init" to create one'));
|
|
58
55
|
process.exit(1);
|
|
59
56
|
}
|
|
60
57
|
// Read and parse .faf file
|
|
@@ -104,63 +101,63 @@ ${scoreResult.suggestions.slice(0, 3).map((s, i) => `${i + 1}. ${s}`).join('\n')
|
|
|
104
101
|
// Formatted console output
|
|
105
102
|
const scoreColor = (0, color_utils_1.getScoreColor)(percentage);
|
|
106
103
|
const scoreEmoji = (0, color_utils_1.getScoreEmoji)(percentage);
|
|
107
|
-
console.log(
|
|
108
|
-
console.log(
|
|
104
|
+
console.log(colors_1.chalk.bold.blue("\n๐๏ธ FAF Championship Score Card"));
|
|
105
|
+
console.log(colors_1.chalk.bold.blue("================================\n"));
|
|
109
106
|
// Score display
|
|
110
|
-
console.log(scoreColor(
|
|
107
|
+
console.log(scoreColor(colors_1.chalk.bold(`${scoreEmoji} Project Score: ${percentage}/100`)));
|
|
111
108
|
// Status message
|
|
112
109
|
if (percentage >= 99) {
|
|
113
|
-
console.log(
|
|
110
|
+
console.log(colors_1.chalk.green.bold("๐ CHAMPIONSHIP STATUS ACHIEVED!"));
|
|
114
111
|
}
|
|
115
112
|
else if (percentage >= 80) {
|
|
116
|
-
console.log(
|
|
113
|
+
console.log(colors_1.chalk.green("โจ Excellent AI Context!"));
|
|
117
114
|
}
|
|
118
115
|
else if (percentage >= 60) {
|
|
119
|
-
console.log(
|
|
116
|
+
console.log(colors_1.chalk.yellow("๐ Good Foundation"));
|
|
120
117
|
}
|
|
121
118
|
else {
|
|
122
|
-
console.log(
|
|
119
|
+
console.log(colors_1.chalk.red("โ ๏ธ Needs Enhancement"));
|
|
123
120
|
}
|
|
124
121
|
// Project details
|
|
125
|
-
console.log(
|
|
122
|
+
console.log(colors_1.chalk.blue("\n๐ Project Details:"));
|
|
126
123
|
// Handle both string and object formats for project name
|
|
127
124
|
const projectName = typeof fafData.project === 'object' && fafData.project?.name
|
|
128
125
|
? fafData.project.name
|
|
129
126
|
: (typeof fafData.project === 'string' ? fafData.project : 'Unknown');
|
|
130
|
-
console.log(` Name: ${
|
|
131
|
-
console.log(` Version: ${
|
|
127
|
+
console.log(` Name: ${colors_1.chalk.white(projectName)}`);
|
|
128
|
+
console.log(` Version: ${colors_1.chalk.white(fafData.version || '1.0.0')}`);
|
|
132
129
|
// Handle both string and object formats for stack
|
|
133
130
|
const stackName = typeof fafData.stack === 'object' && fafData.stack?.name
|
|
134
131
|
? fafData.stack.name
|
|
135
132
|
: (typeof fafData.stack === 'string' ? fafData.stack :
|
|
136
133
|
(fafData.instant_context?.tech_stack || 'Not specified'));
|
|
137
|
-
console.log(` Stack: ${
|
|
134
|
+
console.log(` Stack: ${colors_1.chalk.white(stackName)}`);
|
|
138
135
|
if (fafData.ai_models) {
|
|
139
|
-
console.log(` AI Models: ${
|
|
136
|
+
console.log(` AI Models: ${colors_1.chalk.white(fafData.ai_models.join(', '))}`);
|
|
140
137
|
}
|
|
141
138
|
// Score breakdown
|
|
142
|
-
console.log(
|
|
139
|
+
console.log(colors_1.chalk.blue("\n๐ Score Breakdown:"));
|
|
143
140
|
Object.entries(scoreResult.sectionScores).forEach(([section, score]) => {
|
|
144
141
|
const sectionPercentage = Math.round(score.percentage);
|
|
145
|
-
const sectionColor = sectionPercentage >= 70 ?
|
|
146
|
-
sectionPercentage >= 40 ?
|
|
147
|
-
|
|
142
|
+
const sectionColor = sectionPercentage >= 70 ? colors_1.chalk.green :
|
|
143
|
+
sectionPercentage >= 40 ? colors_1.chalk.yellow :
|
|
144
|
+
colors_1.chalk.red;
|
|
148
145
|
console.log(` ${sectionColor(section)}: ${sectionPercentage}% (${score.filled}/${score.total})`);
|
|
149
146
|
});
|
|
150
147
|
// Next steps if not perfect
|
|
151
148
|
if (percentage < 100) {
|
|
152
|
-
console.log(
|
|
149
|
+
console.log(colors_1.chalk.blue("\n๐ก Next Steps:"));
|
|
153
150
|
scoreResult.suggestions.slice(0, 3).forEach((suggestion, index) => {
|
|
154
|
-
console.log(
|
|
151
|
+
console.log(colors_1.chalk.yellow(` ${index + 1}. ${suggestion}`));
|
|
155
152
|
});
|
|
156
153
|
}
|
|
157
|
-
console.log(
|
|
158
|
-
console.log(
|
|
154
|
+
console.log(colors_1.chalk.gray("\n---"));
|
|
155
|
+
console.log(colors_1.chalk.gray("๐๏ธ FAF Engine | Championship Grade Context"));
|
|
159
156
|
}
|
|
160
157
|
}
|
|
161
158
|
catch (error) {
|
|
162
|
-
console.log(
|
|
163
|
-
console.log(
|
|
159
|
+
console.log(colors_1.chalk.red("๐ฅ Show command failed:"));
|
|
160
|
+
console.log(colors_1.chalk.red(error instanceof Error ? error.message : String(error)));
|
|
164
161
|
process.exit(1);
|
|
165
162
|
}
|
|
166
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -36,12 +36,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
return result;
|
|
37
37
|
};
|
|
38
38
|
})();
|
|
39
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
-
};
|
|
42
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
40
|
exports.syncFafFile = syncFafFile;
|
|
44
|
-
const
|
|
41
|
+
const colors_1 = require("../fix-once/colors");
|
|
45
42
|
const fs_1 = require("fs");
|
|
46
43
|
const YAML = __importStar(require("yaml"));
|
|
47
44
|
const file_utils_1 = require("../utils/file-utils");
|
|
@@ -49,45 +46,45 @@ async function syncFafFile(file, options = {}) {
|
|
|
49
46
|
try {
|
|
50
47
|
const fafPath = file || (await (0, file_utils_1.findFafFile)());
|
|
51
48
|
if (!fafPath) {
|
|
52
|
-
console.log(
|
|
53
|
-
console.log(
|
|
49
|
+
console.log(colors_1.chalk.red("โ No .faf file found"));
|
|
50
|
+
console.log(colors_1.chalk.yellow('๐ก Run "faf init" to create one'));
|
|
54
51
|
process.exit(1);
|
|
55
52
|
}
|
|
56
|
-
console.log(
|
|
53
|
+
console.log(colors_1.chalk.blue(`๐ Syncing: ${fafPath}`));
|
|
57
54
|
// Read current .faf file
|
|
58
55
|
const content = await fs_1.promises.readFile(fafPath, "utf-8");
|
|
59
56
|
const fafData = YAML.parse(content);
|
|
60
57
|
// Detect changes
|
|
61
58
|
const changes = await detectProjectChanges(fafData);
|
|
62
59
|
if (changes.length === 0) {
|
|
63
|
-
console.log(
|
|
60
|
+
console.log(colors_1.chalk.green("โ๏ธ .faf file is up to date"));
|
|
64
61
|
return;
|
|
65
62
|
}
|
|
66
63
|
// Show detected changes
|
|
67
|
-
console.log(
|
|
64
|
+
console.log(colors_1.chalk.yellow(`โก Found ${changes.length} potential updates:`));
|
|
68
65
|
changes.forEach((change, index) => {
|
|
69
|
-
console.log(
|
|
66
|
+
console.log(colors_1.chalk.yellow(` ${index + 1}. ${change.description}`));
|
|
70
67
|
if (change.oldValue !== change.newValue) {
|
|
71
|
-
console.log(
|
|
68
|
+
console.log(colors_1.chalk.gray(` ${change.oldValue} โ ${change.newValue}`));
|
|
72
69
|
}
|
|
73
70
|
});
|
|
74
71
|
if (options.dryRun) {
|
|
75
|
-
console.log(
|
|
72
|
+
console.log(colors_1.chalk.blue("\n๐ Dry run complete - no changes applied"));
|
|
76
73
|
return;
|
|
77
74
|
}
|
|
78
75
|
// Apply changes
|
|
79
76
|
if (options.auto) {
|
|
80
|
-
console.log(
|
|
77
|
+
console.log(colors_1.chalk.blue("\n๐ค Auto-applying changes..."));
|
|
81
78
|
// Create backup before applying changes
|
|
82
79
|
const backupPath = `${fafPath}.backup-${Date.now()}`;
|
|
83
80
|
await fs_1.promises.copyFile(fafPath, backupPath);
|
|
84
|
-
console.log(
|
|
81
|
+
console.log(colors_1.chalk.dim(`๐ Backup created: ${backupPath}`));
|
|
85
82
|
applyChanges(fafData, changes);
|
|
86
83
|
}
|
|
87
84
|
else {
|
|
88
85
|
// Interactive mode (simplified for now)
|
|
89
|
-
console.log(
|
|
90
|
-
console.log(
|
|
86
|
+
console.log(colors_1.chalk.yellow("\n๐ก Run with --auto to apply changes automatically"));
|
|
87
|
+
console.log(colors_1.chalk.yellow(" Or edit .faf file manually"));
|
|
91
88
|
return;
|
|
92
89
|
}
|
|
93
90
|
// Update generated timestamp
|
|
@@ -95,12 +92,12 @@ async function syncFafFile(file, options = {}) {
|
|
|
95
92
|
// Write updated .faf file
|
|
96
93
|
const updatedContent = YAML.stringify(fafData);
|
|
97
94
|
await fs_1.promises.writeFile(fafPath, updatedContent, "utf-8");
|
|
98
|
-
console.log(
|
|
99
|
-
console.log(
|
|
95
|
+
console.log(colors_1.chalk.green("โ๏ธ .faf file synced successfully"));
|
|
96
|
+
console.log(colors_1.chalk.gray(` Applied ${changes.length} changes`));
|
|
100
97
|
}
|
|
101
98
|
catch (error) {
|
|
102
|
-
console.log(
|
|
103
|
-
console.log(
|
|
99
|
+
console.log(colors_1.chalk.red("๐ฅ Sync failed:"));
|
|
100
|
+
console.log(colors_1.chalk.red(error instanceof Error ? error.message : String(error)));
|
|
104
101
|
process.exit(1);
|
|
105
102
|
}
|
|
106
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/trust.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.displayTrustDashboard = displayTrustDashboard;
|
|
|
14
14
|
exports.trustCommand = trustCommand;
|
|
15
15
|
const fs_1 = require("fs");
|
|
16
16
|
const path_1 = __importDefault(require("path"));
|
|
17
|
-
const
|
|
17
|
+
const colors_1 = require("../fix-once/colors");
|
|
18
18
|
const file_utils_1 = require("../utils/file-utils");
|
|
19
19
|
const score_calculator_1 = require("../scoring/score-calculator");
|
|
20
20
|
const trust_cache_1 = require("../utils/trust-cache");
|
|
@@ -136,34 +136,34 @@ async function displayTrustDashboard(fafPath, trustScore, detailed = false) {
|
|
|
136
136
|
const { overall, contextCompleteness, aiCompatibility, freshnessScore } = trustScore;
|
|
137
137
|
// Choose emoji and color based on trust level
|
|
138
138
|
let trustEmoji = '๐งก';
|
|
139
|
-
let trustColor =
|
|
139
|
+
let trustColor = colors_1.chalk.green;
|
|
140
140
|
let trustMessage = 'LOCKED & LOADED';
|
|
141
141
|
if (overall >= 90) {
|
|
142
142
|
trustEmoji = '๐งก';
|
|
143
|
-
trustColor =
|
|
143
|
+
trustColor = colors_1.chalk.green.bold;
|
|
144
144
|
trustMessage = 'LOCKED & LOADED';
|
|
145
145
|
}
|
|
146
146
|
else if (overall >= 75) {
|
|
147
147
|
trustEmoji = '๐ก';
|
|
148
|
-
trustColor =
|
|
148
|
+
trustColor = colors_1.chalk.yellow;
|
|
149
149
|
trustMessage = 'GOOD TO GO';
|
|
150
150
|
}
|
|
151
151
|
else if (overall >= 50) {
|
|
152
152
|
trustEmoji = '๐ ';
|
|
153
|
-
trustColor =
|
|
153
|
+
trustColor = colors_1.chalk.yellow;
|
|
154
154
|
trustMessage = 'NEEDS WORK';
|
|
155
155
|
}
|
|
156
156
|
else {
|
|
157
157
|
trustEmoji = '๐ด';
|
|
158
|
-
trustColor =
|
|
158
|
+
trustColor = colors_1.chalk.red;
|
|
159
159
|
trustMessage = 'NEEDS ATTENTION';
|
|
160
160
|
}
|
|
161
161
|
// Main Trust Dashboard
|
|
162
162
|
console.log();
|
|
163
|
-
console.log(
|
|
164
|
-
console.log(
|
|
165
|
-
console.log(
|
|
166
|
-
console.log(`${
|
|
163
|
+
console.log(colors_1.chalk.cyan('โโ AI TRUST DASHBOARD โโโโโโโโโโโโโโโโโโโโ'));
|
|
164
|
+
console.log(colors_1.chalk.cyan('โ') + trustColor(` ${trustEmoji} TRUST LEVEL: ${overall}% (${trustMessage})`) + ' '.repeat(Math.max(0, 40 - ` ${trustEmoji} TRUST LEVEL: ${overall}% (${trustMessage})`.length)) + colors_1.chalk.cyan('โ'));
|
|
165
|
+
console.log(colors_1.chalk.cyan('โ โ'));
|
|
166
|
+
console.log(`${colors_1.chalk.cyan('โ')} AI UNDERSTANDING STATUS: ${colors_1.chalk.cyan('โ')}`);
|
|
167
167
|
// Get verification status from cache
|
|
168
168
|
const cachedResults = await (0, trust_cache_1.getTrustCache)(fafPath);
|
|
169
169
|
let claudeStatus, chatgptStatus, geminiStatus;
|
|
@@ -179,17 +179,17 @@ async function displayTrustDashboard(fafPath, trustScore, detailed = false) {
|
|
|
179
179
|
chatgptStatus = aiCompatibility >= 80 ? 'โ๏ธ ChatGPT - Perfect context ' : aiCompatibility >= 60 ? '๐ก ChatGPT - Good context ' : '๐ด ChatGPT - Needs improvement ';
|
|
180
180
|
geminiStatus = aiCompatibility >= 80 ? 'โ๏ธ Gemini - Perfect context ' : aiCompatibility >= 60 ? '๐ก Gemini - Good context ' : '๐ด Gemini - Needs improvement ';
|
|
181
181
|
}
|
|
182
|
-
console.log(`${
|
|
183
|
-
console.log(`${
|
|
184
|
-
console.log(`${
|
|
185
|
-
console.log(
|
|
182
|
+
console.log(`${colors_1.chalk.cyan('โ')} ${claudeStatus} ${colors_1.chalk.cyan('โ')}`);
|
|
183
|
+
console.log(`${colors_1.chalk.cyan('โ')} ${chatgptStatus} ${colors_1.chalk.cyan('โ')}`);
|
|
184
|
+
console.log(`${colors_1.chalk.cyan('โ')} ${geminiStatus} ${colors_1.chalk.cyan('โ')}`);
|
|
185
|
+
console.log(colors_1.chalk.cyan('โ โ'));
|
|
186
186
|
// Action message
|
|
187
187
|
const actionMessage = overall >= 85 ? '๐ GO BUILD: Context locked & loaded ' : '๐ง ACTION: Improve context quality ';
|
|
188
|
-
console.log(`${
|
|
189
|
-
console.log(
|
|
188
|
+
console.log(`${colors_1.chalk.cyan('โ')} ${actionMessage} ${colors_1.chalk.cyan('โ')}`);
|
|
189
|
+
console.log(colors_1.chalk.cyan('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ'));
|
|
190
190
|
if (detailed) {
|
|
191
191
|
console.log();
|
|
192
|
-
console.log(
|
|
192
|
+
console.log(colors_1.chalk.cyan('๐ Detailed Trust Metrics:'));
|
|
193
193
|
console.log(` Context Completeness: ${contextCompleteness}%`);
|
|
194
194
|
console.log(` AI Compatibility: ${aiCompatibility}%`);
|
|
195
195
|
console.log(` Freshness Score: ${freshnessScore}%`);
|
|
@@ -198,20 +198,20 @@ async function displayTrustDashboard(fafPath, trustScore, detailed = false) {
|
|
|
198
198
|
// Actionable suggestions
|
|
199
199
|
if (overall < 85) {
|
|
200
200
|
console.log();
|
|
201
|
-
console.log(
|
|
201
|
+
console.log(colors_1.chalk.yellow('๐ก Trust Boosters:'));
|
|
202
202
|
if (contextCompleteness < 75) {
|
|
203
|
-
console.log(
|
|
203
|
+
console.log(colors_1.chalk.dim(' โข Run `faf init` to improve context completeness'));
|
|
204
204
|
}
|
|
205
205
|
if (freshnessScore < 50) {
|
|
206
|
-
console.log(
|
|
206
|
+
console.log(colors_1.chalk.dim(' โข Run `faf sync` to refresh stale information'));
|
|
207
207
|
}
|
|
208
208
|
if (!cachedResults) {
|
|
209
|
-
console.log(
|
|
209
|
+
console.log(colors_1.chalk.dim(' โข Run `faf verify` to test AI understanding and update scores'));
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
else if (cachedResults) {
|
|
213
213
|
console.log();
|
|
214
|
-
console.log(
|
|
214
|
+
console.log(colors_1.chalk.green('โ๏ธ Verified by AI models - context is championship grade!'));
|
|
215
215
|
}
|
|
216
216
|
console.log();
|
|
217
217
|
}
|
|
@@ -220,7 +220,7 @@ async function displayTrustDashboard(fafPath, trustScore, detailed = false) {
|
|
|
220
220
|
// =====================================
|
|
221
221
|
async function showConfidenceMode(fafPath) {
|
|
222
222
|
const trustScore = await calculateTrustScore(fafPath);
|
|
223
|
-
console.log(
|
|
223
|
+
console.log(colors_1.chalk.cyan('๐ค AI Confidence Analysis'));
|
|
224
224
|
console.log(`โโ Claude Confidence: ${trustScore.aiCompatibility}%`);
|
|
225
225
|
console.log(`โโ Context Completeness: ${trustScore.contextCompleteness}%`);
|
|
226
226
|
console.log(`โโ Overall AI Trust: ${trustScore.overall}%`);
|
|
@@ -231,7 +231,7 @@ async function showConfidenceMode(fafPath) {
|
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
async function showGarageMode(fafPath) {
|
|
234
|
-
console.log(
|
|
234
|
+
console.log(colors_1.chalk.green('๐ง Safe Experimentation Garage'));
|
|
235
235
|
console.log('โโ Backup created: .faf.garage-backup');
|
|
236
236
|
console.log('โโ Safe to experiment with context changes');
|
|
237
237
|
console.log('โโ Restore anytime with: faf trust --panic');
|
|
@@ -241,7 +241,7 @@ async function showGarageMode(fafPath) {
|
|
|
241
241
|
await fs_1.promises.writeFile(backupPath, fafContent);
|
|
242
242
|
}
|
|
243
243
|
async function showPanicMode(fafPath) {
|
|
244
|
-
console.log(
|
|
244
|
+
console.log(colors_1.chalk.red('๐จ Emergency Context Repair'));
|
|
245
245
|
// Look for backup files
|
|
246
246
|
const backupPath = `${fafPath}.garage-backup`;
|
|
247
247
|
const backupExists = await fs_1.promises.access(backupPath).then(() => true).catch(() => false);
|
|
@@ -258,7 +258,7 @@ async function showPanicMode(fafPath) {
|
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
async function showQualityMode(fafPath) {
|
|
261
|
-
console.log(
|
|
261
|
+
console.log(colors_1.chalk.blue('๐ก๏ธ Quality Check Mode'));
|
|
262
262
|
console.log('โโ Running comprehensive quality checks...');
|
|
263
263
|
const trustScore = await calculateTrustScore(fafPath);
|
|
264
264
|
// Just show the score
|
|
@@ -271,8 +271,8 @@ async function trustCommand(options = {}) {
|
|
|
271
271
|
try {
|
|
272
272
|
const fafPath = await (0, file_utils_1.findFafFile)();
|
|
273
273
|
if (!fafPath) {
|
|
274
|
-
console.log(
|
|
275
|
-
console.log(
|
|
274
|
+
console.log(colors_1.chalk.red('โ No .faf file found in current directory or parent directories'));
|
|
275
|
+
console.log(colors_1.chalk.dim('๐ก Run `faf init` to generate your first .faf file'));
|
|
276
276
|
return; // Let analytics wrapper handle footer display
|
|
277
277
|
}
|
|
278
278
|
// Handle specific trust modes
|
|
@@ -292,18 +292,18 @@ async function trustCommand(options = {}) {
|
|
|
292
292
|
await showQualityMode(fafPath);
|
|
293
293
|
return;
|
|
294
294
|
}
|
|
295
|
-
console.log(
|
|
295
|
+
console.log(colors_1.chalk.dim(`๐งก Calculating trust for: ${path_1.default.relative(process.cwd(), fafPath)}`));
|
|
296
296
|
const startTime = Date.now();
|
|
297
297
|
const trustScore = await calculateTrustScore(fafPath);
|
|
298
298
|
const duration = Date.now() - startTime;
|
|
299
299
|
await displayTrustDashboard(fafPath, trustScore, options.detailed);
|
|
300
300
|
// Performance indicator (should be <300ms)
|
|
301
301
|
if (options.detailed) {
|
|
302
|
-
console.log(
|
|
302
|
+
console.log(colors_1.chalk.dim(`โก Performance: ${duration}ms`));
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
catch (error) {
|
|
306
|
-
console.error(
|
|
306
|
+
console.error(colors_1.chalk.red('โ Error calculating trust score:'), error);
|
|
307
307
|
process.exit(1);
|
|
308
308
|
}
|
|
309
309
|
}
|