faf-cli 2.5.2 → 2.5.4
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/README.md +65 -12
- package/assets/birth-dna-12-percent.png +0 -0
- package/assets/faf-init-demo.gif +0 -0
- package/assets/growth-to-89-percent.png +0 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +0 -59
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto.js +2 -2
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/faf-auth.js +4 -4
- package/dist/commands/faf-auth.js.map +1 -1
- package/dist/commands/faf-dna.js +3 -3
- package/dist/commands/faf-dna.js.map +1 -1
- package/dist/commands/faf-log.js +6 -6
- package/dist/commands/faf-log.js.map +1 -1
- package/dist/commands/faf-update.js +1 -1
- package/dist/commands/faf-update.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +32 -21
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/score-v3.js +3 -3
- package/dist/commands/score-v3.js.map +1 -1
- package/dist/commands/score.d.ts.map +1 -1
- package/dist/commands/score.js +8 -198
- package/dist/commands/score.js.map +1 -1
- package/dist/compiler/faf-compiler.d.ts.map +1 -1
- package/dist/compiler/faf-compiler.js +6 -10
- package/dist/compiler/faf-compiler.js.map +1 -1
- package/dist/engines/faf-dna.d.ts +9 -9
- package/dist/engines/faf-dna.d.ts.map +1 -1
- package/dist/engines/faf-dna.js +39 -26
- package/dist/engines/faf-dna.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/score-header.d.ts +1 -1
- package/dist/utils/score-header.d.ts.map +1 -1
- package/dist/utils/score-header.js +2 -2
- package/dist/utils/score-header.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faf-update.js","sourceRoot":"","sources":["../../src/commands/faf-update.ts"],"names":[],"mappings":";;AACA;;;;;GAKG;;AAEH,qDAAgD;AAChD,gDAAmD;AACnD,+CAA4C;AAE5C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,uBAAa,CAAC,WAAW,CAAC,CAAC;QAElD,WAAW;QACX,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAE3B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"faf-update.js","sourceRoot":"","sources":["../../src/commands/faf-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2BH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2BH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,iBAyN1B"}
|
package/dist/commands/init.js
CHANGED
|
@@ -117,40 +117,40 @@ async function initFafFile(projectPath, options = {}) {
|
|
|
117
117
|
console.log();
|
|
118
118
|
// Award technical credit for successful initialization
|
|
119
119
|
await (0, technical_credit_1.autoAwardCredit)('init_success', outputPath);
|
|
120
|
-
// REVOLUTIONARY: Score CLAUDE.md ONLY for
|
|
120
|
+
// REVOLUTIONARY: Score CLAUDE.md ONLY for Birth DNA!
|
|
121
121
|
// This is the TRUE starting point - what AI sees initially
|
|
122
122
|
console.log();
|
|
123
|
-
console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.magic_wand} Analyzing CLAUDE.md for
|
|
123
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.magic_wand} Analyzing CLAUDE.md for Birth DNA...`));
|
|
124
124
|
const claudeMdPath = path_1.default.join(projectRoot, 'CLAUDE.md');
|
|
125
|
-
let
|
|
125
|
+
let birthDNA = 0;
|
|
126
126
|
let fromClaudeMD = false;
|
|
127
127
|
if (await (0, file_utils_1.fileExists)(claudeMdPath)) {
|
|
128
|
-
// Score ONLY CLAUDE.md for
|
|
128
|
+
// Score ONLY CLAUDE.md for Birth DNA
|
|
129
129
|
const claudeMdContent = await fs_1.promises.readFile(claudeMdPath, 'utf-8');
|
|
130
130
|
const claudeMdAnalysis = await fab_formats_processor_1.fabFormatsProcessor.processFiles(projectRoot);
|
|
131
|
-
// Calculate
|
|
131
|
+
// Calculate Birth DNA from CLAUDE.md context quality
|
|
132
132
|
// Low scores are GOOD - they show the journey!
|
|
133
133
|
if (claudeMdContent.length < 100) {
|
|
134
|
-
|
|
134
|
+
birthDNA = 5; // Almost empty CLAUDE.md
|
|
135
135
|
}
|
|
136
136
|
else if (claudeMdContent.includes('FAF')) {
|
|
137
|
-
|
|
137
|
+
birthDNA = 22; // Has some FAF context
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
140
|
-
|
|
140
|
+
birthDNA = 12; // Generic CLAUDE.md
|
|
141
141
|
}
|
|
142
142
|
fromClaudeMD = true;
|
|
143
|
-
console.log(championship_style_1.FAF_COLORS.fafOrange(` Birth
|
|
143
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(` Birth DNA from CLAUDE.md: ${birthDNA}%`));
|
|
144
144
|
console.log(championship_style_1.FAF_COLORS.fafWhite(` (Low scores are normal - they show your growth journey!)`));
|
|
145
145
|
}
|
|
146
146
|
else {
|
|
147
|
-
// No CLAUDE.md - use minimal
|
|
148
|
-
|
|
149
|
-
console.log(championship_style_1.FAF_COLORS.fafOrange(` No CLAUDE.md found -
|
|
147
|
+
// No CLAUDE.md - use minimal Birth DNA
|
|
148
|
+
birthDNA = 0;
|
|
149
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(` No CLAUDE.md found - Birth DNA: ${birthDNA}%`));
|
|
150
150
|
}
|
|
151
151
|
// Initialize FAF DNA with birth certificate
|
|
152
152
|
const dnaManager = new faf_dna_1.FafDNAManager(projectRoot);
|
|
153
|
-
const dna = await dnaManager.birth(
|
|
153
|
+
const dna = await dnaManager.birth(birthDNA, fromClaudeMD);
|
|
154
154
|
console.log();
|
|
155
155
|
console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.dna} FAF DNA created with birth certificate!`));
|
|
156
156
|
console.log(championship_style_1.FAF_COLORS.fafWhite(` Certificate: ${dna.birthCertificate.certificate}`));
|
|
@@ -159,21 +159,32 @@ async function initFafFile(projectPath, options = {}) {
|
|
|
159
159
|
const compiler = new faf_compiler_1.FafCompiler();
|
|
160
160
|
const scoreResult = await compiler.compile(outputPath);
|
|
161
161
|
const currentScore = fafData.faf_score ? parseInt(fafData.faf_score.replace('%', '')) : Math.round(scoreResult.score || 0);
|
|
162
|
-
// Record first growth if different from
|
|
163
|
-
if (currentScore !==
|
|
162
|
+
// Record first growth if different from Birth DNA
|
|
163
|
+
if (currentScore !== birthDNA) {
|
|
164
164
|
await dnaManager.recordGrowth(currentScore, ['Initial .faf generation from project']);
|
|
165
165
|
}
|
|
166
|
+
// Add faf_dna section to .faf file for faf auto to read
|
|
167
|
+
const updatedFafData = {
|
|
168
|
+
...fafData,
|
|
169
|
+
faf_dna: {
|
|
170
|
+
birth_dna: birthDNA,
|
|
171
|
+
birth_certificate: dna.birthCertificate.certificate,
|
|
172
|
+
birth_date: dna.birthCertificate.born.toISOString(),
|
|
173
|
+
current_score: currentScore
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
await fs_1.promises.writeFile(outputPath, YAML.stringify(updatedFafData), 'utf-8');
|
|
166
177
|
// Show ASCII header with scoreboard
|
|
167
178
|
if (!options.quiet) {
|
|
168
179
|
const { getScoreMedal } = require('../utils/championship-core');
|
|
169
180
|
const { medal } = getScoreMedal(currentScore);
|
|
170
|
-
const scoreboardTitle = colors_1.chalk.bold(`Birth: ${
|
|
181
|
+
const scoreboardTitle = colors_1.chalk.bold(`Birth: ${birthDNA}% | ${medal} ${currentScore}/100`);
|
|
171
182
|
console.log();
|
|
172
183
|
console.log((0, championship_style_1.generateFAFHeader)(scoreboardTitle));
|
|
173
184
|
}
|
|
174
|
-
// Display with
|
|
185
|
+
// Display with Birth DNA
|
|
175
186
|
console.log();
|
|
176
|
-
(0, faf_dna_1.
|
|
187
|
+
(0, faf_dna_1.displayScoreWithBirthDNA)(currentScore, birthDNA, dna.birthCertificate.born, { showGrowth: true });
|
|
177
188
|
// Show AI|HUMAN Balance
|
|
178
189
|
const balance = balance_visualizer_1.BalanceVisualizer.calculateBalance(fafData);
|
|
179
190
|
console.log(championship_style_1.FAF_COLORS.fafWhite(`${championship_style_1.FAF_ICONS.balance} Balance: `) + balance_visualizer_1.BalanceVisualizer.generateCompactBalance(balance));
|
|
@@ -196,10 +207,10 @@ async function initFafFile(projectPath, options = {}) {
|
|
|
196
207
|
console.log(`${championship_style_1.FAF_COLORS.fafCyan(' 4. ')}faf trust --detailed${championship_style_1.FAF_COLORS.fafCyan(' - Boost AI happiness')}`);
|
|
197
208
|
console.log(`${championship_style_1.FAF_COLORS.fafCyan(' 5. ')}faf log${championship_style_1.FAF_COLORS.fafCyan(' - View your context evolution')}`);
|
|
198
209
|
// Growth-focused messaging
|
|
199
|
-
const growth = currentScore -
|
|
210
|
+
const growth = currentScore - birthDNA;
|
|
200
211
|
if (growth > 0) {
|
|
201
212
|
console.log();
|
|
202
|
-
console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.rocket} Already improved +${growth}% from
|
|
213
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.rocket} Already improved +${growth}% from Birth DNA!`));
|
|
203
214
|
}
|
|
204
215
|
if (currentScore < 70) {
|
|
205
216
|
console.log(championship_style_1.FAF_COLORS.fafOrange(` ${championship_style_1.FAF_ICONS.precision} Target 70%+ for championship AI context`));
|
|
@@ -208,7 +219,7 @@ async function initFafFile(projectPath, options = {}) {
|
|
|
208
219
|
console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.party} Championship performance achieved! ${championship_style_1.FAF_ICONS.trophy}`));
|
|
209
220
|
}
|
|
210
221
|
console.log();
|
|
211
|
-
console.log(championship_style_1.FAF_COLORS.fafWhite(`Your FAF journey has begun: ${
|
|
222
|
+
console.log(championship_style_1.FAF_COLORS.fafWhite(`Your FAF journey has begun: ${birthDNA}% → ${currentScore}%`));
|
|
212
223
|
// Prompt for email opt-in (first time users only, respects quiet mode)
|
|
213
224
|
await (0, email_opt_in_1.promptEmailOptIn)({ quiet: options.quiet });
|
|
214
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCH,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,14 +137,14 @@ async function scoreCommandV3(file, options = {}) {
|
|
|
137
137
|
if (!isQuiet) {
|
|
138
138
|
const { getScoreMedal } = require('../utils/championship-core');
|
|
139
139
|
const { medal } = getScoreMedal(result.score);
|
|
140
|
-
const
|
|
141
|
-
const scoreboardTitle = colors_1.chalk.bold(`Birth: ${
|
|
140
|
+
const birthDNA = dna ? dna.birthCertificate.birthDNA : 0;
|
|
141
|
+
const scoreboardTitle = colors_1.chalk.bold(`Birth: ${birthDNA}% | ${medal} ${result.score}/100`);
|
|
142
142
|
console.log((0, championship_style_1.generateFAFHeader)(scoreboardTitle));
|
|
143
143
|
}
|
|
144
144
|
// Main score display
|
|
145
145
|
console.log(colors_1.chalk.cyan(`Scoring: ${fafPath}`));
|
|
146
146
|
if (dna) {
|
|
147
|
-
(0, faf_dna_1.
|
|
147
|
+
(0, faf_dna_1.displayScoreWithBirthDNA)(result.score, dna.birthCertificate.birthDNA, dna.birthCertificate.born, { showGrowth: true, showJourney: true });
|
|
148
148
|
}
|
|
149
149
|
else {
|
|
150
150
|
// Simple display
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-v3.js","sourceRoot":"","sources":["../../src/commands/score-v3.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBH,wCA8JC;AA9KD,+CAA2C;AAC3C,2DAAuD;AACvD,oDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"score-v3.js","sourceRoot":"","sources":["../../src/commands/score-v3.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/commands/score.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/commands/score.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,iBAS3E"}
|
package/dist/commands/score.js
CHANGED
|
@@ -3,207 +3,17 @@
|
|
|
3
3
|
* 📈 faf score - Scoring Command
|
|
4
4
|
* Calculates .faf completeness score with detailed breakdown
|
|
5
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
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
7
|
exports.scoreFafFile = scoreFafFile;
|
|
41
|
-
const colors_1 = require("../fix-once/colors");
|
|
42
|
-
const fs_1 = require("fs");
|
|
43
|
-
const YAML = __importStar(require("yaml"));
|
|
44
|
-
const score_calculator_1 = require("../scoring/score-calculator");
|
|
45
|
-
const file_utils_1 = require("../utils/file-utils");
|
|
46
|
-
const color_utils_1 = require("../utils/color-utils");
|
|
47
|
-
const balance_visualizer_1 = require("../utils/balance-visualizer");
|
|
48
|
-
const faf_dna_1 = require("../engines/faf-dna");
|
|
49
|
-
const path = __importStar(require("path"));
|
|
50
|
-
const platform_detector_1 = require("../utils/platform-detector");
|
|
51
|
-
const vibe_sync_1 = require("../utils/vibe-sync");
|
|
52
8
|
const score_v3_1 = require("./score-v3");
|
|
53
9
|
async function scoreFafFile(file, options = {}) {
|
|
54
|
-
// Always use compiler-based scoring
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
checksum: options.checksum,
|
|
63
|
-
verbose: options.details
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
// Legacy scoring (deprecated path)
|
|
67
|
-
try {
|
|
68
|
-
let fafPath = null;
|
|
69
|
-
if (file) {
|
|
70
|
-
// Check if the provided path is a directory
|
|
71
|
-
try {
|
|
72
|
-
const stats = await fs_1.promises.stat(file);
|
|
73
|
-
if (stats.isDirectory()) {
|
|
74
|
-
// Find .faf file in the specified directory
|
|
75
|
-
fafPath = await (0, file_utils_1.findFafFile)(file);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// Use the file path directly
|
|
79
|
-
fafPath = file;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// If stat fails, try to use it as a file path
|
|
84
|
-
fafPath = file;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
// Find .faf file in current directory
|
|
89
|
-
fafPath = await (0, file_utils_1.findFafFile)();
|
|
90
|
-
}
|
|
91
|
-
if (!fafPath) {
|
|
92
|
-
if (file) {
|
|
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`));
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
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'));
|
|
99
|
-
}
|
|
100
|
-
process.exit(1);
|
|
101
|
-
}
|
|
102
|
-
console.log(colors_1.chalk.blue(`📈 Scoring: ${fafPath}`));
|
|
103
|
-
// Read and parse .faf file
|
|
104
|
-
const content = await fs_1.promises.readFile(fafPath, "utf-8");
|
|
105
|
-
const fafData = YAML.parse(content);
|
|
106
|
-
// Calculate score with fab-formats discovery for enhanced context!
|
|
107
|
-
const scoreResult = await (0, score_calculator_1.calculateFafScore)(fafData, fafPath);
|
|
108
|
-
const percentage = Math.round(scoreResult.totalScore);
|
|
109
|
-
// Load DNA to get birth weight - THE VALUE STORY!
|
|
110
|
-
const projectPath = path.dirname(fafPath);
|
|
111
|
-
const dnaManager = new faf_dna_1.FafDNAManager(projectPath);
|
|
112
|
-
const dna = await dnaManager.load();
|
|
113
|
-
if (dna) {
|
|
114
|
-
// ALWAYS show birth weight - this is the value visualization!
|
|
115
|
-
(0, faf_dna_1.displayScoreWithBirthWeight)(percentage, dna.birthCertificate.birthWeight, dna.birthCertificate.born, { showGrowth: true, showJourney: true });
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
// Fallback to old display if no DNA yet
|
|
119
|
-
const scoreColor = (0, color_utils_1.getScoreColor)(percentage);
|
|
120
|
-
const scoreEmoji = (0, color_utils_1.getScoreEmoji)(percentage);
|
|
121
|
-
const scoreText = `${scoreEmoji} Score: ${percentage}%`;
|
|
122
|
-
console.log(scoreColor(colors_1.chalk.bold(scoreText)));
|
|
123
|
-
console.log(colors_1.chalk.gray(' Run "faf init" to create DNA tracking'));
|
|
124
|
-
}
|
|
125
|
-
// Show AI|HUMAN Balance visualization
|
|
126
|
-
console.log('\n' + '─'.repeat(50));
|
|
127
|
-
const balance = balance_visualizer_1.BalanceVisualizer.calculateBalance(fafData);
|
|
128
|
-
console.log(balance_visualizer_1.BalanceVisualizer.generateBalanceBar(balance));
|
|
129
|
-
console.log('─'.repeat(50));
|
|
130
|
-
// Show achievement message if applicable
|
|
131
|
-
const achievement = balance_visualizer_1.BalanceVisualizer.getAchievementMessage(balance);
|
|
132
|
-
if (achievement) {
|
|
133
|
-
console.log('\n' + achievement);
|
|
134
|
-
}
|
|
135
|
-
// Always show key missing items for transparency
|
|
136
|
-
const missingItems = [];
|
|
137
|
-
Object.entries(scoreResult.sectionScores).forEach(([, score]) => {
|
|
138
|
-
if (score.missing.length > 0 && score.percentage < 100) {
|
|
139
|
-
missingItems.push(...score.missing.slice(0, 2)); // Top 2 from each section
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
if (missingItems.length > 0 && !options.details) {
|
|
143
|
-
console.log(colors_1.chalk.gray("\n Missing for higher score:"));
|
|
144
|
-
missingItems.slice(0, 5).forEach((item) => {
|
|
145
|
-
console.log(colors_1.chalk.gray(` • ${item}`));
|
|
146
|
-
});
|
|
147
|
-
console.log(colors_1.chalk.cyan('\n 💡 Run "faf score --details" for complete breakdown'));
|
|
148
|
-
}
|
|
149
|
-
// VIBE Progression Path (for low-scoring prototypes)
|
|
150
|
-
const detector = new platform_detector_1.PlatformDetector();
|
|
151
|
-
const platform = await detector.detectPlatform();
|
|
152
|
-
if (platform.tier === 'vibe' && percentage < 70) {
|
|
153
|
-
console.log();
|
|
154
|
-
console.log(colors_1.chalk.bold.cyan('⚡️ FAF VIBE PROGRESSION PATH:'));
|
|
155
|
-
console.log(vibe_sync_1.VibeSync.getProgressionMessage(percentage));
|
|
156
|
-
}
|
|
157
|
-
// Detailed breakdown
|
|
158
|
-
if (options.details) {
|
|
159
|
-
console.log(colors_1.chalk.blue("\n📊 Detailed Breakdown:"));
|
|
160
|
-
Object.entries(scoreResult.sectionScores).forEach(([section, score]) => {
|
|
161
|
-
const sectionPercentage = Math.round(score.percentage);
|
|
162
|
-
const sectionColor = sectionPercentage >= 70
|
|
163
|
-
? colors_1.chalk.green
|
|
164
|
-
: sectionPercentage >= 40
|
|
165
|
-
? colors_1.chalk.yellow
|
|
166
|
-
: colors_1.chalk.red;
|
|
167
|
-
console.log(` ${sectionColor(section)}: ${sectionPercentage}% (${score.filled}/${score.total})`);
|
|
168
|
-
if (score.missing.length > 0) {
|
|
169
|
-
console.log(colors_1.chalk.gray(` Missing: ${score.missing.join(", ")}`));
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
// Improvement suggestions
|
|
173
|
-
if (percentage < 100) {
|
|
174
|
-
console.log(colors_1.chalk.blue("\n💡 Quick Wins:"));
|
|
175
|
-
const suggestions = scoreResult.suggestions.slice(0, 3);
|
|
176
|
-
suggestions.forEach((suggestion, index) => {
|
|
177
|
-
console.log(colors_1.chalk.yellow(` ${index + 1}. ${suggestion}`));
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// Check minimum threshold (only if explicitly provided)
|
|
182
|
-
if (options.minimum) {
|
|
183
|
-
const minimumScore = parseInt(options.minimum);
|
|
184
|
-
if (percentage < minimumScore) {
|
|
185
|
-
console.error(colors_1.chalk.red(`\n🚨 Score below minimum threshold (${minimumScore}%)`));
|
|
186
|
-
process.exit(1);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
// Success message
|
|
190
|
-
if (percentage === 100) {
|
|
191
|
-
console.log(colors_1.chalk.green.bold("\n🎉 Perfect .faf file! Ready for AI collaboration!"));
|
|
192
|
-
}
|
|
193
|
-
else if (percentage >= 80) {
|
|
194
|
-
console.log(colors_1.chalk.green("\n✨ Excellent .faf file! Minor improvements possible."));
|
|
195
|
-
}
|
|
196
|
-
else if (percentage >= 60) {
|
|
197
|
-
console.log(colors_1.chalk.yellow("\n👍 Good .faf file! Some gaps to fill."));
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
console.log(colors_1.chalk.red("\n⚠️ .faf file needs improvement for optimal AI context."));
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
console.error(colors_1.chalk.red("💥 Scoring failed:"));
|
|
205
|
-
console.error(colors_1.chalk.red(error instanceof Error ? error.message : String(error)));
|
|
206
|
-
process.exit(1);
|
|
207
|
-
}
|
|
10
|
+
// Always use compiler-based scoring (Mk3)
|
|
11
|
+
return (0, score_v3_1.scoreCommandV3)(file, {
|
|
12
|
+
trace: options.trace,
|
|
13
|
+
verify: options.verify,
|
|
14
|
+
breakdown: options.breakdown,
|
|
15
|
+
checksum: options.checksum,
|
|
16
|
+
verbose: options.details
|
|
17
|
+
});
|
|
208
18
|
}
|
|
209
19
|
//# sourceMappingURL=score.js.map
|
|
@@ -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":";AAAA;;;GAGG;;AAcH,oCASC;AArBD,yCAA4C;AAYrC,KAAK,UAAU,YAAY,CAAC,IAAa,EAAE,UAAwB,EAAE;IAC1E,0CAA0C;IAC1C,OAAO,IAAA,yBAAc,EAAC,IAAI,EAAE;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faf-compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/faf-compiler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"faf-compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -443,22 +443,18 @@ class FafCompiler {
|
|
|
443
443
|
const goal = (ast.project?.goal || '').toLowerCase();
|
|
444
444
|
const what = (ast.human_context?.what || '').toLowerCase();
|
|
445
445
|
const mainLanguage = (ast.project?.main_language || '').toLowerCase();
|
|
446
|
-
// Chrome Extension
|
|
446
|
+
// CLI tool indicators (check BEFORE Chrome Extension to avoid false positives)
|
|
447
|
+
if (goal.includes('cli') || what.includes('cli') ||
|
|
448
|
+
goal.includes('command line') || what.includes('command line')) {
|
|
449
|
+
return 'cli-tool';
|
|
450
|
+
}
|
|
451
|
+
// Chrome Extension detection with fuzzy matching (only if not CLI)
|
|
447
452
|
const goalDetection = chrome_extension_detector_1.ChromeExtensionDetector.detect(goal);
|
|
448
453
|
const whatDetection = chrome_extension_detector_1.ChromeExtensionDetector.detect(what);
|
|
449
454
|
if (goalDetection.detected || whatDetection.detected ||
|
|
450
455
|
ast.stack?.framework === 'Chrome Extension') {
|
|
451
|
-
// Log if fuzzy matching helped
|
|
452
|
-
if (goalDetection.confidence === 'medium' || whatDetection.confidence === 'medium') {
|
|
453
|
-
console.log('⚡️ Chrome Extension detected via fuzzy matching');
|
|
454
|
-
}
|
|
455
456
|
return 'chrome-extension';
|
|
456
457
|
}
|
|
457
|
-
// CLI tool indicators
|
|
458
|
-
if (goal.includes('cli') || what.includes('cli') ||
|
|
459
|
-
goal.includes('command line') || what.includes('command line')) {
|
|
460
|
-
return 'cli-tool';
|
|
461
|
-
}
|
|
462
458
|
// Library indicators
|
|
463
459
|
if (goal.includes('library') || what.includes('library') ||
|
|
464
460
|
goal.includes('package') || what.includes('npm package')) {
|