faf-cli 2.4.21 ā 2.5.1
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 +244 -129
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto.d.ts.map +1 -1
- package/dist/commands/auto.js +63 -2
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/bi-sync.d.ts +9 -6
- package/dist/commands/bi-sync.d.ts.map +1 -1
- package/dist/commands/bi-sync.js +31 -16
- package/dist/commands/bi-sync.js.map +1 -1
- package/dist/commands/index.js +1 -6
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/score-v3.d.ts.map +1 -1
- package/dist/commands/score-v3.js +12 -6
- package/dist/commands/score-v3.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +17 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/compiler/faf-compiler.js +1 -1
- package/dist/engines/c-mirror/broadcast/terminal-display.d.ts +23 -0
- package/dist/engines/c-mirror/broadcast/terminal-display.d.ts.map +1 -0
- package/dist/engines/c-mirror/broadcast/terminal-display.js +193 -0
- package/dist/engines/c-mirror/broadcast/terminal-display.js.map +1 -0
- package/dist/engines/c-mirror/core/claude-to-faf.d.ts +28 -0
- package/dist/engines/c-mirror/core/claude-to-faf.d.ts.map +1 -0
- package/dist/engines/c-mirror/core/claude-to-faf.js +222 -0
- package/dist/engines/c-mirror/core/claude-to-faf.js.map +1 -0
- package/dist/engines/c-mirror/core/events/event-emitter.d.ts +36 -0
- package/dist/engines/c-mirror/core/events/event-emitter.d.ts.map +1 -0
- package/dist/engines/c-mirror/core/events/event-emitter.js +71 -0
- package/dist/engines/c-mirror/core/events/event-emitter.js.map +1 -0
- package/dist/engines/c-mirror/core/events/mirror-events.d.ts +103 -0
- package/dist/engines/c-mirror/core/events/mirror-events.d.ts.map +1 -0
- package/dist/engines/c-mirror/core/events/mirror-events.js +65 -0
- package/dist/engines/c-mirror/core/events/mirror-events.js.map +1 -0
- package/dist/engines/c-mirror/core/faf-to-claude.d.ts +18 -0
- package/dist/engines/c-mirror/core/faf-to-claude.d.ts.map +1 -0
- package/dist/engines/c-mirror/core/faf-to-claude.js +195 -0
- package/dist/engines/c-mirror/core/faf-to-claude.js.map +1 -0
- package/dist/engines/c-mirror/core/interfaces.d.ts +153 -0
- package/dist/engines/c-mirror/core/interfaces.d.ts.map +1 -0
- package/dist/engines/c-mirror/core/interfaces.js +8 -0
- package/dist/engines/c-mirror/core/interfaces.js.map +1 -0
- package/dist/engines/c-mirror/core/mirror-engine.d.ts +48 -0
- package/dist/engines/c-mirror/core/mirror-engine.d.ts.map +1 -0
- package/dist/engines/c-mirror/core/mirror-engine.js +273 -0
- package/dist/engines/c-mirror/core/mirror-engine.js.map +1 -0
- package/dist/engines/c-mirror/faf-extensions/faf-mirror.d.ts +31 -0
- package/dist/engines/c-mirror/faf-extensions/faf-mirror.d.ts.map +1 -0
- package/dist/engines/c-mirror/faf-extensions/faf-mirror.js +101 -0
- package/dist/engines/c-mirror/faf-extensions/faf-mirror.js.map +1 -0
- package/dist/engines/c-mirror/strategies/atomic-write.d.ts +34 -0
- package/dist/engines/c-mirror/strategies/atomic-write.d.ts.map +1 -0
- package/dist/engines/c-mirror/strategies/atomic-write.js +132 -0
- package/dist/engines/c-mirror/strategies/atomic-write.js.map +1 -0
- package/dist/engines/faf-dna.d.ts.map +1 -1
- package/dist/engines/faf-dna.js +33 -14
- package/dist/engines/faf-dna.js.map +1 -1
- package/dist/utils/championship-core.d.ts +127 -0
- package/dist/utils/championship-core.d.ts.map +1 -0
- package/dist/utils/championship-core.js +205 -0
- package/dist/utils/championship-core.js.map +1 -0
- package/dist/utils/championship-style.d.ts +2 -2
- package/dist/utils/championship-style.d.ts.map +1 -1
- package/dist/utils/championship-style.js +8 -6
- package/dist/utils/championship-style.js.map +1 -1
- package/dist/utils/color-utils.d.ts.map +1 -1
- package/dist/utils/color-utils.js +29 -11
- package/dist/utils/color-utils.js.map +1 -1
- package/dist/utils/yaml-generator.d.ts.map +1 -1
- package/dist/utils/yaml-generator.js +9 -4
- package/dist/utils/yaml-generator.js.map +1 -1
- package/package.json +18 -3
|
@@ -42,13 +42,11 @@ const colors_1 = require("../fix-once/colors");
|
|
|
42
42
|
const faf_compiler_1 = require("../compiler/faf-compiler");
|
|
43
43
|
const file_utils_1 = require("../utils/file-utils");
|
|
44
44
|
const faf_dna_1 = require("../engines/faf-dna");
|
|
45
|
+
const championship_style_1 = require("../utils/championship-style");
|
|
45
46
|
const path = __importStar(require("path"));
|
|
46
47
|
async function scoreCommandV3(file, options = {}) {
|
|
47
|
-
//
|
|
48
|
+
// Quiet mode check
|
|
48
49
|
const isQuiet = process.argv.includes('--quiet');
|
|
49
|
-
if (!isQuiet) {
|
|
50
|
-
console.log(colors_1.chalk.blue("\nšļø FAF Score Compiler v3.0\n"));
|
|
51
|
-
}
|
|
52
50
|
try {
|
|
53
51
|
// Find .faf file
|
|
54
52
|
let fafPath;
|
|
@@ -131,12 +129,20 @@ async function scoreCommandV3(file, options = {}) {
|
|
|
131
129
|
});
|
|
132
130
|
}
|
|
133
131
|
}
|
|
134
|
-
// Main score display
|
|
135
|
-
console.log(colors_1.chalk.blue(`š Scoring: ${fafPath}`));
|
|
136
132
|
// Try to show with DNA (birth weight)
|
|
137
133
|
const projectPath = path.dirname(fafPath);
|
|
138
134
|
const dnaManager = new faf_dna_1.FafDNAManager(projectPath);
|
|
139
135
|
const dna = await dnaManager.load();
|
|
136
|
+
// Show ASCII header with scoreboard title
|
|
137
|
+
if (!isQuiet) {
|
|
138
|
+
const { getScoreMedal } = require('../utils/championship-core');
|
|
139
|
+
const { medal } = getScoreMedal(result.score);
|
|
140
|
+
const birthWeight = dna ? dna.birthCertificate.birthWeight : 0;
|
|
141
|
+
const scoreboardTitle = colors_1.chalk.bold(`Birth: ${birthWeight}% | ${medal} ${result.score}/100`);
|
|
142
|
+
console.log((0, championship_style_1.generateFAFHeader)(scoreboardTitle));
|
|
143
|
+
}
|
|
144
|
+
// Main score display
|
|
145
|
+
console.log(colors_1.chalk.cyan(`Scoring: ${fafPath}`));
|
|
140
146
|
if (dna) {
|
|
141
147
|
(0, faf_dna_1.displayScoreWithBirthWeight)(result.score, dna.birthCertificate.birthWeight, dna.birthCertificate.born, { showGrowth: true, showJourney: true });
|
|
142
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-v3.js","sourceRoot":"","sources":["../../src/commands/score-v3.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,MAAM,WAAW,aAAa;CAE7B;AA6ID;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCnD"}
|
package/dist/commands/status.js
CHANGED
|
@@ -16,6 +16,8 @@ const colors_1 = require("../fix-once/colors");
|
|
|
16
16
|
const file_utils_1 = require("../utils/file-utils");
|
|
17
17
|
const trust_1 = require("./trust");
|
|
18
18
|
const championship_style_1 = require("../utils/championship-style");
|
|
19
|
+
const color_utils_1 = require("../utils/color-utils");
|
|
20
|
+
const championship_core_1 = require("../utils/championship-core");
|
|
19
21
|
/**
|
|
20
22
|
* Get quick status overview for .faf file
|
|
21
23
|
*/
|
|
@@ -82,6 +84,11 @@ async function checkClaudeMd(projectDir) {
|
|
|
82
84
|
return false;
|
|
83
85
|
}
|
|
84
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Get tier information for current score and next target
|
|
89
|
+
* NOW USING CHAMPIONSHIP CORE - The DNA both brothers share! š
|
|
90
|
+
*/
|
|
91
|
+
const getTierInfo = championship_core_1.getTierInfo;
|
|
85
92
|
/**
|
|
86
93
|
* š Championship Status Dashboard - <38ms Performance Target
|
|
87
94
|
*/
|
|
@@ -92,9 +99,17 @@ function displayStatus(fafPath, status, hasClaudeMd, duration) {
|
|
|
92
99
|
const speedEmoji = duration <= championship_style_1.PERFORMANCE_STANDARDS.status_command ? championship_style_1.FAF_ICONS.trophy : championship_style_1.FAF_ICONS.lightning;
|
|
93
100
|
// Calculate Technical Credit (mock for now)
|
|
94
101
|
const technicalCredit = Math.floor((trustScore - 50) / 10) * 5;
|
|
102
|
+
// Get medal emoji and tier info
|
|
103
|
+
const medal = (0, color_utils_1.getScoreEmoji)(trustScore);
|
|
104
|
+
const tierInfo = getTierInfo(trustScore);
|
|
105
|
+
console.log();
|
|
106
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan('šļø FAF Status'));
|
|
107
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan('āāāāāāāāāāāā'));
|
|
108
|
+
console.log(`Score: ${trustScore}% ${medal} ${tierInfo.current}`);
|
|
109
|
+
if (tierInfo.next && tierInfo.nextTarget) {
|
|
110
|
+
console.log(`Next: ${tierInfo.nextTarget}% ${tierInfo.nextMedal} ${tierInfo.next} (${tierInfo.nextTarget - trustScore}% to go!)`);
|
|
111
|
+
}
|
|
95
112
|
console.log();
|
|
96
|
-
console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.chart_up} Project Status ${speedEmoji} (${performanceGrade})`));
|
|
97
|
-
console.log(`${championship_style_1.FAF_COLORS.fafCyan('āā ')}${championship_style_1.FAF_ICONS.gem} .faf Context: ${(0, championship_style_1.formatTrustLevel)(trustScore)}`);
|
|
98
113
|
console.log(`${championship_style_1.FAF_COLORS.fafCyan('āā ')}${championship_style_1.FAF_ICONS.robot} AI Readiness: ${trustScore >= 80 ? 'āļø Optimized' : 'š” Improving'}`);
|
|
99
114
|
console.log(`${championship_style_1.FAF_COLORS.fafCyan('āā ')}${championship_style_1.FAF_ICONS.file} Files Tracked: ${lines} lines`);
|
|
100
115
|
console.log(`${championship_style_1.FAF_COLORS.fafCyan('āā ')}${championship_style_1.FAF_ICONS.zap} Performance: ${(0, championship_style_1.formatPerformance)(duration)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -450,7 +450,7 @@ class FafCompiler {
|
|
|
450
450
|
ast.stack?.framework === 'Chrome Extension') {
|
|
451
451
|
// Log if fuzzy matching helped
|
|
452
452
|
if (goalDetection.confidence === 'medium' || whatDetection.confidence === 'medium') {
|
|
453
|
-
console.log('
|
|
453
|
+
console.log('ā”ļø Chrome Extension detected via fuzzy matching');
|
|
454
454
|
}
|
|
455
455
|
return 'chrome-extension';
|
|
456
456
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* š„ļø Terminal Display - Event Listener
|
|
3
|
+
* Listens to mirror events and displays championship output
|
|
4
|
+
*
|
|
5
|
+
* This is ONE listener - Terminal is not special, just first
|
|
6
|
+
* Other listeners: Slack, Dashboard, Analytics all get the same events
|
|
7
|
+
*
|
|
8
|
+
* Principles:
|
|
9
|
+
* - Championship communication (never "might", always "synchronized")
|
|
10
|
+
* - Build confidence ("It's always right, it's got it")
|
|
11
|
+
* - Show score first (top line)
|
|
12
|
+
* - Progress indicators
|
|
13
|
+
* - Success messages with next steps
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Start listening to mirror events and display in terminal
|
|
17
|
+
*/
|
|
18
|
+
export declare function startTerminalDisplay(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Stop listening (cleanup)
|
|
21
|
+
*/
|
|
22
|
+
export declare function stopTerminalDisplay(): void;
|
|
23
|
+
//# sourceMappingURL=terminal-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-display.d.ts","sourceRoot":"","sources":["../../../../src/engines/c-mirror/broadcast/terminal-display.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* š„ļø Terminal Display - Event Listener
|
|
4
|
+
* Listens to mirror events and displays championship output
|
|
5
|
+
*
|
|
6
|
+
* This is ONE listener - Terminal is not special, just first
|
|
7
|
+
* Other listeners: Slack, Dashboard, Analytics all get the same events
|
|
8
|
+
*
|
|
9
|
+
* Principles:
|
|
10
|
+
* - Championship communication (never "might", always "synchronized")
|
|
11
|
+
* - Build confidence ("It's always right, it's got it")
|
|
12
|
+
* - Show score first (top line)
|
|
13
|
+
* - Progress indicators
|
|
14
|
+
* - Success messages with next steps
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.startTerminalDisplay = startTerminalDisplay;
|
|
18
|
+
exports.stopTerminalDisplay = stopTerminalDisplay;
|
|
19
|
+
const event_emitter_1 = require("../core/events/event-emitter");
|
|
20
|
+
const mirror_events_1 = require("../core/events/mirror-events");
|
|
21
|
+
const championship_style_1 = require("../../../utils/championship-style");
|
|
22
|
+
/**
|
|
23
|
+
* Start listening to mirror events and display in terminal
|
|
24
|
+
*/
|
|
25
|
+
function startTerminalDisplay() {
|
|
26
|
+
// Listen to all events
|
|
27
|
+
event_emitter_1.mirrorEvents.onMirrorEvent('mirror:event', handleMirrorEvent);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Stop listening (cleanup)
|
|
31
|
+
*/
|
|
32
|
+
function stopTerminalDisplay() {
|
|
33
|
+
event_emitter_1.mirrorEvents.removeAllListeners('mirror:event');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Handle a mirror event and display appropriately
|
|
37
|
+
*/
|
|
38
|
+
function handleMirrorEvent(event) {
|
|
39
|
+
switch (event.type) {
|
|
40
|
+
case mirror_events_1.MirrorEventType.SYNC_START:
|
|
41
|
+
handleSyncStart(event);
|
|
42
|
+
break;
|
|
43
|
+
case mirror_events_1.MirrorEventType.SYNC_PROGRESS:
|
|
44
|
+
handleSyncProgress(event);
|
|
45
|
+
break;
|
|
46
|
+
case mirror_events_1.MirrorEventType.SYNC_COMPLETE:
|
|
47
|
+
handleSyncComplete(event);
|
|
48
|
+
break;
|
|
49
|
+
case mirror_events_1.MirrorEventType.SYNC_ERROR:
|
|
50
|
+
handleSyncError(event);
|
|
51
|
+
break;
|
|
52
|
+
case mirror_events_1.MirrorEventType.INTEGRITY_PERFECT:
|
|
53
|
+
handleIntegrityPerfect(event);
|
|
54
|
+
break;
|
|
55
|
+
case mirror_events_1.MirrorEventType.INTEGRITY_FAILED:
|
|
56
|
+
handleIntegrityFailed(event);
|
|
57
|
+
break;
|
|
58
|
+
case mirror_events_1.MirrorEventType.SCORE_UPDATE:
|
|
59
|
+
handleScoreUpdate(event);
|
|
60
|
+
break;
|
|
61
|
+
case mirror_events_1.MirrorEventType.ERROR:
|
|
62
|
+
handleError(event);
|
|
63
|
+
break;
|
|
64
|
+
case mirror_events_1.MirrorEventType.WARNING:
|
|
65
|
+
handleWarning(event);
|
|
66
|
+
break;
|
|
67
|
+
// Add more handlers as needed
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Sync start
|
|
72
|
+
*/
|
|
73
|
+
function handleSyncStart(event) {
|
|
74
|
+
const direction = event.data.direction || 'unknown';
|
|
75
|
+
const arrow = direction === 'faf-to-claude' ? 'ā' : direction === 'claude-to-faf' ? 'ā' : 'ā';
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan('š C-MIRROR LIVE'));
|
|
78
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan('āāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
79
|
+
// Show score first if available
|
|
80
|
+
if (event.metadata.score) {
|
|
81
|
+
const { ai, human, total } = event.metadata.score;
|
|
82
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(`šļø Score: ${total}% | AI:${ai} HUMAN:${human}`));
|
|
83
|
+
}
|
|
84
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('āā')} Syncing ${arrow} ${direction}...`);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Sync progress
|
|
88
|
+
*/
|
|
89
|
+
function handleSyncProgress(event) {
|
|
90
|
+
const { step, progress, message } = event.data;
|
|
91
|
+
// Progress bar
|
|
92
|
+
const barWidth = 24;
|
|
93
|
+
const filled = Math.floor((progress / 100) * barWidth);
|
|
94
|
+
const empty = barWidth - filled;
|
|
95
|
+
const bar = 'ā'.repeat(filled) + 'ā'.repeat(empty);
|
|
96
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('āā')} ${bar} ${progress}% - ${message || step}`);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Sync complete
|
|
100
|
+
*/
|
|
101
|
+
function handleSyncComplete(event) {
|
|
102
|
+
const { success, filesChanged } = event.data;
|
|
103
|
+
const duration = event.metadata.duration || 0;
|
|
104
|
+
const speedIcon = duration < 40 ? 'šļø' : duration < 100 ? 'š' : 'š';
|
|
105
|
+
console.log(`${championship_style_1.FAF_COLORS.fafGreen('āā')} ${championship_style_1.FAF_ICONS.party} Synchronized in ${duration}ms ${speedIcon}`);
|
|
106
|
+
if (filesChanged && filesChanged.length > 0) {
|
|
107
|
+
console.log(` Files: ${filesChanged.join(', ')}`);
|
|
108
|
+
}
|
|
109
|
+
// Show score if available
|
|
110
|
+
if (event.metadata.score) {
|
|
111
|
+
const { ai, human, total } = event.metadata.score;
|
|
112
|
+
console.log('');
|
|
113
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(`āļø Balance: AI:${ai}% | HUMAN:${human}%`));
|
|
114
|
+
// Championship status
|
|
115
|
+
if (total >= 100) {
|
|
116
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen('š CHAMPIONSHIP! Perfect 100% + 50|50 balance'));
|
|
117
|
+
}
|
|
118
|
+
else if (total >= 99) {
|
|
119
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen('š„ GOLD! 99% achieved'));
|
|
120
|
+
}
|
|
121
|
+
else if (ai === 50 && human === 50) {
|
|
122
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen('āļø Perfect 50|50 balance!'));
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const diff = Math.abs(ai - human);
|
|
126
|
+
if (diff > 10) {
|
|
127
|
+
const higher = ai > human ? 'AI' : 'HUMAN';
|
|
128
|
+
const lower = ai > human ? 'HUMAN' : 'AI';
|
|
129
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(`š” Tip: Add ${lower} context to balance with ${higher}`));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
console.log('');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Sync error
|
|
137
|
+
*/
|
|
138
|
+
function handleSyncError(event) {
|
|
139
|
+
const { error, direction } = event.data;
|
|
140
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.shield} Sync failed: ${error}`));
|
|
141
|
+
console.log(` Direction: ${direction}`);
|
|
142
|
+
if (event.data.recoverable) {
|
|
143
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(' Restored from backup - original files untouched'));
|
|
144
|
+
}
|
|
145
|
+
console.log('');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Integrity perfect
|
|
149
|
+
*/
|
|
150
|
+
function handleIntegrityPerfect(event) {
|
|
151
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen('ā
Integrity: PERFECT'));
|
|
152
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(' Mirror verified - zero slippage'));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Integrity failed
|
|
156
|
+
*/
|
|
157
|
+
function handleIntegrityFailed(event) {
|
|
158
|
+
const { error } = event.data;
|
|
159
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange('ā ļø Integrity: FAILED'));
|
|
160
|
+
console.log(` Error: ${error}`);
|
|
161
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(' Run `faf trust` to diagnose'));
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Score update
|
|
165
|
+
*/
|
|
166
|
+
function handleScoreUpdate(event) {
|
|
167
|
+
if (!event.metadata.score)
|
|
168
|
+
return;
|
|
169
|
+
const { ai, human, total } = event.metadata.score;
|
|
170
|
+
console.log('');
|
|
171
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange('š SCORE UPDATE'));
|
|
172
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(` Total: ${total}%`));
|
|
173
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(` AI: ${ai} | HUMAN: ${human}`));
|
|
174
|
+
console.log('');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Error
|
|
178
|
+
*/
|
|
179
|
+
function handleError(event) {
|
|
180
|
+
const { message, recoverable } = event.data;
|
|
181
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(`ā Error: ${message}`));
|
|
182
|
+
if (recoverable) {
|
|
183
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(' Recoverable - no data lost'));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Warning
|
|
188
|
+
*/
|
|
189
|
+
function handleWarning(event) {
|
|
190
|
+
const { message } = event.data;
|
|
191
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(`ā ļø Warning: ${message}`));
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=terminal-display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-display.js","sourceRoot":"","sources":["../../../../src/engines/c-mirror/broadcast/terminal-display.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* š CLAUDE.md to FAF Transformation
|
|
3
|
+
* Reverse conversion: Markdown (CLAUDE.md) ā YAML (.faf)
|
|
4
|
+
*
|
|
5
|
+
* This is THE reverse transformation for true bidirectional mirroring
|
|
6
|
+
* Intelligently merges human edits back into .faf structure
|
|
7
|
+
*
|
|
8
|
+
* Key principle: CLAUDE.md edits to human context flow back into .faf
|
|
9
|
+
* .faf technical fields are preserved (never overwritten)
|
|
10
|
+
*
|
|
11
|
+
* Emits events at each step for broad broadcasting
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Convert CLAUDE.md Markdown content back to .faf YAML format
|
|
15
|
+
*
|
|
16
|
+
* Strategy:
|
|
17
|
+
* - Parse CLAUDE.md for human-edited context
|
|
18
|
+
* - Merge into existing .faf structure
|
|
19
|
+
* - Preserve .faf technical fields (scoring, DNA, etc.)
|
|
20
|
+
* - Update human_context section with CLAUDE.md changes
|
|
21
|
+
*
|
|
22
|
+
* @param claudeContent - Raw CLAUDE.md content (Markdown)
|
|
23
|
+
* @param existingFafData - Existing .faf parsed data (to merge into)
|
|
24
|
+
* @param projectPath - Project root path for event metadata
|
|
25
|
+
* @returns Updated .faf YAML content
|
|
26
|
+
*/
|
|
27
|
+
export declare function claudeMdToFaf(claudeContent: string, existingFafData: any, projectPath?: string): Promise<string>;
|
|
28
|
+
//# sourceMappingURL=claude-to-faf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-to-faf.d.ts","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/claude-to-faf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,GAAG,EACpB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,MAAM,CAAC,CAuIjB"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* š CLAUDE.md to FAF Transformation
|
|
4
|
+
* Reverse conversion: Markdown (CLAUDE.md) ā YAML (.faf)
|
|
5
|
+
*
|
|
6
|
+
* This is THE reverse transformation for true bidirectional mirroring
|
|
7
|
+
* Intelligently merges human edits back into .faf structure
|
|
8
|
+
*
|
|
9
|
+
* Key principle: CLAUDE.md edits to human context flow back into .faf
|
|
10
|
+
* .faf technical fields are preserved (never overwritten)
|
|
11
|
+
*
|
|
12
|
+
* Emits events at each step for broad broadcasting
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.claudeMdToFaf = claudeMdToFaf;
|
|
49
|
+
const YAML = __importStar(require("yaml"));
|
|
50
|
+
const event_emitter_1 = require("./events/event-emitter");
|
|
51
|
+
const mirror_events_1 = require("./events/mirror-events");
|
|
52
|
+
/**
|
|
53
|
+
* Convert CLAUDE.md Markdown content back to .faf YAML format
|
|
54
|
+
*
|
|
55
|
+
* Strategy:
|
|
56
|
+
* - Parse CLAUDE.md for human-edited context
|
|
57
|
+
* - Merge into existing .faf structure
|
|
58
|
+
* - Preserve .faf technical fields (scoring, DNA, etc.)
|
|
59
|
+
* - Update human_context section with CLAUDE.md changes
|
|
60
|
+
*
|
|
61
|
+
* @param claudeContent - Raw CLAUDE.md content (Markdown)
|
|
62
|
+
* @param existingFafData - Existing .faf parsed data (to merge into)
|
|
63
|
+
* @param projectPath - Project root path for event metadata
|
|
64
|
+
* @returns Updated .faf YAML content
|
|
65
|
+
*/
|
|
66
|
+
async function claudeMdToFaf(claudeContent, existingFafData, projectPath = process.cwd()) {
|
|
67
|
+
const startTime = Date.now();
|
|
68
|
+
// EMIT: Starting conversion
|
|
69
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_START, {
|
|
70
|
+
direction: 'claude-to-faf'
|
|
71
|
+
}, { projectPath }));
|
|
72
|
+
try {
|
|
73
|
+
// Step 1: Parse Markdown
|
|
74
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
75
|
+
step: 'parsing-markdown',
|
|
76
|
+
progress: 10,
|
|
77
|
+
message: 'Parsing CLAUDE.md content...'
|
|
78
|
+
}, { projectPath }));
|
|
79
|
+
const extracted = extractFromClaudeMd(claudeContent);
|
|
80
|
+
// Step 2: Merge into existing .faf
|
|
81
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
82
|
+
step: 'merging-data',
|
|
83
|
+
progress: 40,
|
|
84
|
+
message: 'Merging human context updates...'
|
|
85
|
+
}, { projectPath }));
|
|
86
|
+
// Create updated .faf data (preserve existing, merge new)
|
|
87
|
+
const updatedFaf = { ...existingFafData };
|
|
88
|
+
// Update project section (if changed in CLAUDE.md)
|
|
89
|
+
if (extracted.projectName && extracted.projectName !== existingFafData.project?.name) {
|
|
90
|
+
if (!updatedFaf.project)
|
|
91
|
+
updatedFaf.project = {};
|
|
92
|
+
updatedFaf.project.name = extracted.projectName;
|
|
93
|
+
}
|
|
94
|
+
if (extracted.projectGoal) {
|
|
95
|
+
if (!updatedFaf.project)
|
|
96
|
+
updatedFaf.project = {};
|
|
97
|
+
updatedFaf.project.goal = extracted.projectGoal;
|
|
98
|
+
}
|
|
99
|
+
if (extracted.projectDescription) {
|
|
100
|
+
if (!updatedFaf.project)
|
|
101
|
+
updatedFaf.project = {};
|
|
102
|
+
updatedFaf.project.description = extracted.projectDescription;
|
|
103
|
+
}
|
|
104
|
+
// Update instant_context (if changed)
|
|
105
|
+
if (extracted.techStack) {
|
|
106
|
+
if (!updatedFaf.instant_context)
|
|
107
|
+
updatedFaf.instant_context = {};
|
|
108
|
+
updatedFaf.instant_context.tech_stack = extracted.techStack;
|
|
109
|
+
}
|
|
110
|
+
if (extracted.mainLanguage) {
|
|
111
|
+
if (!updatedFaf.instant_context)
|
|
112
|
+
updatedFaf.instant_context = {};
|
|
113
|
+
updatedFaf.instant_context.main_language = extracted.mainLanguage;
|
|
114
|
+
}
|
|
115
|
+
if (extracted.whatBuilding) {
|
|
116
|
+
if (!updatedFaf.instant_context)
|
|
117
|
+
updatedFaf.instant_context = {};
|
|
118
|
+
updatedFaf.instant_context.what_building = extracted.whatBuilding;
|
|
119
|
+
}
|
|
120
|
+
// Update key_files (if present)
|
|
121
|
+
if (extracted.keyFiles && extracted.keyFiles.length > 0) {
|
|
122
|
+
updatedFaf.key_files = extracted.keyFiles;
|
|
123
|
+
}
|
|
124
|
+
// Step 3: Update metadata
|
|
125
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
126
|
+
step: 'updating-metadata',
|
|
127
|
+
progress: 70,
|
|
128
|
+
message: 'Updating sync metadata...'
|
|
129
|
+
}, { projectPath }));
|
|
130
|
+
// Add/update metadata section
|
|
131
|
+
if (!updatedFaf.metadata) {
|
|
132
|
+
updatedFaf.metadata = {};
|
|
133
|
+
}
|
|
134
|
+
updatedFaf.metadata.last_claude_sync = new Date().toISOString();
|
|
135
|
+
updatedFaf.metadata.bi_sync = 'active';
|
|
136
|
+
// Step 4: Generate YAML
|
|
137
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
138
|
+
step: 'generating-yaml',
|
|
139
|
+
progress: 90,
|
|
140
|
+
message: 'Generating .faf YAML...'
|
|
141
|
+
}, { projectPath }));
|
|
142
|
+
const yamlContent = YAML.stringify(updatedFaf, {
|
|
143
|
+
indent: 2,
|
|
144
|
+
lineWidth: 0, // No line wrapping
|
|
145
|
+
minContentWidth: 0
|
|
146
|
+
});
|
|
147
|
+
// Step 5: Complete
|
|
148
|
+
const duration = Date.now() - startTime;
|
|
149
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_COMPLETE, {
|
|
150
|
+
direction: 'claude-to-faf',
|
|
151
|
+
success: true,
|
|
152
|
+
filesChanged: ['.faf']
|
|
153
|
+
}, {
|
|
154
|
+
projectPath,
|
|
155
|
+
duration,
|
|
156
|
+
score: updatedFaf.ai_score !== undefined && updatedFaf.human_score !== undefined ? {
|
|
157
|
+
ai: updatedFaf.ai_score,
|
|
158
|
+
human: updatedFaf.human_score,
|
|
159
|
+
total: updatedFaf.faf_score ? parseInt(updatedFaf.faf_score) : updatedFaf.ai_score + updatedFaf.human_score
|
|
160
|
+
} : undefined
|
|
161
|
+
}));
|
|
162
|
+
return yamlContent;
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
// EMIT: Error
|
|
166
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_ERROR, {
|
|
167
|
+
direction: 'claude-to-faf',
|
|
168
|
+
error: error instanceof Error ? error.message : String(error)
|
|
169
|
+
}, { projectPath }));
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Extract structured data from CLAUDE.md markdown
|
|
175
|
+
*
|
|
176
|
+
* This is a simple parser - can be enhanced later for more sophisticated parsing
|
|
177
|
+
*/
|
|
178
|
+
function extractFromClaudeMd(content) {
|
|
179
|
+
const extracted = {};
|
|
180
|
+
// Extract project name from title
|
|
181
|
+
const titleMatch = content.match(/# šļø CLAUDE\.md - (.+?) Persistent Context/);
|
|
182
|
+
if (titleMatch) {
|
|
183
|
+
extracted.projectName = titleMatch[1].trim();
|
|
184
|
+
}
|
|
185
|
+
// Extract project goal
|
|
186
|
+
const goalMatch = content.match(/\*\*Current Position:\*\* (.+)/);
|
|
187
|
+
if (goalMatch) {
|
|
188
|
+
extracted.projectGoal = goalMatch[1].trim();
|
|
189
|
+
}
|
|
190
|
+
// Extract description
|
|
191
|
+
const descMatch = content.match(/- \*\*Description:\*\* (.+)/);
|
|
192
|
+
if (descMatch) {
|
|
193
|
+
extracted.projectDescription = descMatch[1].trim();
|
|
194
|
+
}
|
|
195
|
+
// Extract stack
|
|
196
|
+
const stackMatch = content.match(/- \*\*Stack:\*\* (.+)/);
|
|
197
|
+
if (stackMatch) {
|
|
198
|
+
extracted.techStack = stackMatch[1].trim();
|
|
199
|
+
}
|
|
200
|
+
// Extract main language
|
|
201
|
+
const langMatch = content.match(/- \*\*Main Language:\*\* (.+)/);
|
|
202
|
+
if (langMatch) {
|
|
203
|
+
extracted.mainLanguage = langMatch[1].trim();
|
|
204
|
+
}
|
|
205
|
+
// Extract what building
|
|
206
|
+
const buildingMatch = content.match(/- \*\*What Building:\*\* (.+)/);
|
|
207
|
+
if (buildingMatch) {
|
|
208
|
+
extracted.whatBuilding = buildingMatch[1].trim();
|
|
209
|
+
}
|
|
210
|
+
// Extract key files (simple pattern - can be enhanced)
|
|
211
|
+
const keyFilesMatch = content.match(/### š§ Key Files\n((?:.+\n?)+?)(?:\n###|\n\n|$)/);
|
|
212
|
+
if (keyFilesMatch) {
|
|
213
|
+
const filesText = keyFilesMatch[1];
|
|
214
|
+
const fileMatches = filesText.matchAll(/\d+\. \*\*(.+?)\*\* - (.+)/g);
|
|
215
|
+
extracted.keyFiles = Array.from(fileMatches).map(match => ({
|
|
216
|
+
path: match[1].trim(),
|
|
217
|
+
purpose: match[2].trim()
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
return extracted;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=claude-to-faf.js.map
|