faf-cli 2.4.21 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +244 -129
  2. package/dist/cli.js +1 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/auto.d.ts.map +1 -1
  5. package/dist/commands/auto.js +63 -2
  6. package/dist/commands/auto.js.map +1 -1
  7. package/dist/commands/bi-sync.d.ts +9 -6
  8. package/dist/commands/bi-sync.d.ts.map +1 -1
  9. package/dist/commands/bi-sync.js +31 -16
  10. package/dist/commands/bi-sync.js.map +1 -1
  11. package/dist/commands/index.js +1 -6
  12. package/dist/commands/index.js.map +1 -1
  13. package/dist/commands/status.d.ts.map +1 -1
  14. package/dist/commands/status.js +17 -2
  15. package/dist/commands/status.js.map +1 -1
  16. package/dist/engines/c-mirror/broadcast/terminal-display.d.ts +23 -0
  17. package/dist/engines/c-mirror/broadcast/terminal-display.d.ts.map +1 -0
  18. package/dist/engines/c-mirror/broadcast/terminal-display.js +193 -0
  19. package/dist/engines/c-mirror/broadcast/terminal-display.js.map +1 -0
  20. package/dist/engines/c-mirror/core/claude-to-faf.d.ts +28 -0
  21. package/dist/engines/c-mirror/core/claude-to-faf.d.ts.map +1 -0
  22. package/dist/engines/c-mirror/core/claude-to-faf.js +222 -0
  23. package/dist/engines/c-mirror/core/claude-to-faf.js.map +1 -0
  24. package/dist/engines/c-mirror/core/events/event-emitter.d.ts +36 -0
  25. package/dist/engines/c-mirror/core/events/event-emitter.d.ts.map +1 -0
  26. package/dist/engines/c-mirror/core/events/event-emitter.js +71 -0
  27. package/dist/engines/c-mirror/core/events/event-emitter.js.map +1 -0
  28. package/dist/engines/c-mirror/core/events/mirror-events.d.ts +103 -0
  29. package/dist/engines/c-mirror/core/events/mirror-events.d.ts.map +1 -0
  30. package/dist/engines/c-mirror/core/events/mirror-events.js +65 -0
  31. package/dist/engines/c-mirror/core/events/mirror-events.js.map +1 -0
  32. package/dist/engines/c-mirror/core/faf-to-claude.d.ts +18 -0
  33. package/dist/engines/c-mirror/core/faf-to-claude.d.ts.map +1 -0
  34. package/dist/engines/c-mirror/core/faf-to-claude.js +193 -0
  35. package/dist/engines/c-mirror/core/faf-to-claude.js.map +1 -0
  36. package/dist/engines/c-mirror/core/interfaces.d.ts +153 -0
  37. package/dist/engines/c-mirror/core/interfaces.d.ts.map +1 -0
  38. package/dist/engines/c-mirror/core/interfaces.js +8 -0
  39. package/dist/engines/c-mirror/core/interfaces.js.map +1 -0
  40. package/dist/engines/c-mirror/core/mirror-engine.d.ts +48 -0
  41. package/dist/engines/c-mirror/core/mirror-engine.d.ts.map +1 -0
  42. package/dist/engines/c-mirror/core/mirror-engine.js +272 -0
  43. package/dist/engines/c-mirror/core/mirror-engine.js.map +1 -0
  44. package/dist/engines/c-mirror/faf-extensions/faf-mirror.d.ts +31 -0
  45. package/dist/engines/c-mirror/faf-extensions/faf-mirror.d.ts.map +1 -0
  46. package/dist/engines/c-mirror/faf-extensions/faf-mirror.js +101 -0
  47. package/dist/engines/c-mirror/faf-extensions/faf-mirror.js.map +1 -0
  48. package/dist/engines/c-mirror/strategies/atomic-write.d.ts +34 -0
  49. package/dist/engines/c-mirror/strategies/atomic-write.d.ts.map +1 -0
  50. package/dist/engines/c-mirror/strategies/atomic-write.js +132 -0
  51. package/dist/engines/c-mirror/strategies/atomic-write.js.map +1 -0
  52. package/dist/utils/championship-core.d.ts +127 -0
  53. package/dist/utils/championship-core.d.ts.map +1 -0
  54. package/dist/utils/championship-core.js +203 -0
  55. package/dist/utils/championship-core.js.map +1 -0
  56. package/dist/utils/championship-style.d.ts.map +1 -1
  57. package/dist/utils/championship-style.js +3 -1
  58. package/dist/utils/championship-style.js.map +1 -1
  59. package/dist/utils/color-utils.d.ts.map +1 -1
  60. package/dist/utils/color-utils.js +29 -11
  61. package/dist/utils/color-utils.js.map +1 -1
  62. package/dist/utils/yaml-generator.d.ts.map +1 -1
  63. package/dist/utils/yaml-generator.js +9 -4
  64. package/dist/utils/yaml-generator.js.map +1 -1
  65. package/package.json +18 -3
@@ -0,0 +1,103 @@
1
+ /**
2
+ * 🔊 Mirror Events - The Power Chords
3
+ * Lowest-level event system for C-Mirror
4
+ * All mirror operations emit events that broadcast broadly
5
+ *
6
+ * Events flow: Core → Event Emitter → Listeners (Terminal, Slack, Dashboard, etc.)
7
+ *
8
+ * This is the foundation - everything else listens to these power chords
9
+ */
10
+ /**
11
+ * Event types - All possible mirror events
12
+ */
13
+ export declare enum MirrorEventType {
14
+ SYNC_START = "mirror:sync:start",
15
+ SYNC_PROGRESS = "mirror:sync:progress",
16
+ SYNC_COMPLETE = "mirror:sync:complete",
17
+ SYNC_ERROR = "mirror:sync:error",
18
+ VALIDATION_START = "mirror:validation:start",
19
+ VALIDATION_PROGRESS = "mirror:validation:progress",
20
+ VALIDATION_COMPLETE = "mirror:validation:complete",
21
+ VALIDATION_ERROR = "mirror:validation:error",
22
+ INTEGRITY_CHECK = "mirror:integrity:check",
23
+ INTEGRITY_PERFECT = "mirror:integrity:perfect",
24
+ INTEGRITY_DEGRADED = "mirror:integrity:degraded",
25
+ INTEGRITY_FAILED = "mirror:integrity:failed",
26
+ SCORE_UPDATE = "mirror:score:update",
27
+ SCORE_MILESTONE = "mirror:score:milestone",
28
+ SCORE_DROP = "mirror:score:drop",
29
+ DNA_LOG = "mirror:dna:log",
30
+ DNA_CHECKPOINT = "mirror:dna:checkpoint",
31
+ DNA_RESTORE = "mirror:dna:restore",
32
+ FILE_READ = "mirror:file:read",
33
+ FILE_WRITE = "mirror:file:write",
34
+ FILE_BACKUP = "mirror:file:backup",
35
+ ERROR = "mirror:error",
36
+ WARNING = "mirror:warning"
37
+ }
38
+ /**
39
+ * Sync direction
40
+ */
41
+ export type SyncDirection = 'faf-to-claude' | 'claude-to-faf' | 'bidirectional' | 'none';
42
+ /**
43
+ * Integrity status
44
+ */
45
+ export type IntegrityStatus = 'perfect' | 'degraded' | 'failed';
46
+ /**
47
+ * Score data
48
+ */
49
+ export interface ScoreData {
50
+ ai: number;
51
+ human: number;
52
+ total: number;
53
+ }
54
+ /**
55
+ * Event metadata - Always included
56
+ */
57
+ export interface EventMetadata {
58
+ projectPath: string;
59
+ timestamp: Date;
60
+ score?: ScoreData;
61
+ duration?: number;
62
+ integrity?: IntegrityStatus;
63
+ direction?: SyncDirection;
64
+ }
65
+ /**
66
+ * Mirror Event - The universal event structure
67
+ */
68
+ export interface MirrorEvent {
69
+ type: MirrorEventType;
70
+ timestamp: Date;
71
+ data: any;
72
+ metadata: EventMetadata;
73
+ }
74
+ /**
75
+ * Sync progress data
76
+ */
77
+ export interface SyncProgressData {
78
+ step: string;
79
+ progress: number;
80
+ message?: string;
81
+ }
82
+ /**
83
+ * Validation result data
84
+ */
85
+ export interface ValidationResultData {
86
+ valid: boolean;
87
+ errors?: string[];
88
+ warnings?: string[];
89
+ }
90
+ /**
91
+ * Error data
92
+ */
93
+ export interface ErrorData {
94
+ message: string;
95
+ code?: string;
96
+ stack?: string;
97
+ recoverable?: boolean;
98
+ }
99
+ /**
100
+ * Create a mirror event (helper)
101
+ */
102
+ export declare function createMirrorEvent(type: MirrorEventType, data: any, metadata?: Partial<EventMetadata>): MirrorEvent;
103
+ //# sourceMappingURL=mirror-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-events.d.ts","sourceRoot":"","sources":["../../../../../src/engines/c-mirror/core/events/mirror-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,oBAAY,eAAe;IAEzB,UAAU,sBAAsB;IAChC,aAAa,yBAAyB;IACtC,aAAa,yBAAyB;IACtC,UAAU,sBAAsB;IAGhC,gBAAgB,4BAA4B;IAC5C,mBAAmB,+BAA+B;IAClD,mBAAmB,+BAA+B;IAClD,gBAAgB,4BAA4B;IAG5C,eAAe,2BAA2B;IAC1C,iBAAiB,6BAA6B;IAC9C,kBAAkB,8BAA8B;IAChD,gBAAgB,4BAA4B;IAG5C,YAAY,wBAAwB;IACpC,eAAe,2BAA2B;IAC1C,UAAU,sBAAsB;IAGhC,OAAO,mBAAmB;IAC1B,cAAc,0BAA0B;IACxC,WAAW,uBAAuB;IAGlC,SAAS,qBAAqB;IAC9B,UAAU,sBAAsB;IAChC,WAAW,uBAAuB;IAGlC,KAAK,iBAAiB;IACtB,OAAO,mBAAmB;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE,OAAO,CAAC,aAAa,CAAM,GACpC,WAAW,CAWb"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * 🔊 Mirror Events - The Power Chords
4
+ * Lowest-level event system for C-Mirror
5
+ * All mirror operations emit events that broadcast broadly
6
+ *
7
+ * Events flow: Core → Event Emitter → Listeners (Terminal, Slack, Dashboard, etc.)
8
+ *
9
+ * This is the foundation - everything else listens to these power chords
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MirrorEventType = void 0;
13
+ exports.createMirrorEvent = createMirrorEvent;
14
+ /**
15
+ * Event types - All possible mirror events
16
+ */
17
+ var MirrorEventType;
18
+ (function (MirrorEventType) {
19
+ // Sync lifecycle
20
+ MirrorEventType["SYNC_START"] = "mirror:sync:start";
21
+ MirrorEventType["SYNC_PROGRESS"] = "mirror:sync:progress";
22
+ MirrorEventType["SYNC_COMPLETE"] = "mirror:sync:complete";
23
+ MirrorEventType["SYNC_ERROR"] = "mirror:sync:error";
24
+ // Validation lifecycle
25
+ MirrorEventType["VALIDATION_START"] = "mirror:validation:start";
26
+ MirrorEventType["VALIDATION_PROGRESS"] = "mirror:validation:progress";
27
+ MirrorEventType["VALIDATION_COMPLETE"] = "mirror:validation:complete";
28
+ MirrorEventType["VALIDATION_ERROR"] = "mirror:validation:error";
29
+ // Integrity checks
30
+ MirrorEventType["INTEGRITY_CHECK"] = "mirror:integrity:check";
31
+ MirrorEventType["INTEGRITY_PERFECT"] = "mirror:integrity:perfect";
32
+ MirrorEventType["INTEGRITY_DEGRADED"] = "mirror:integrity:degraded";
33
+ MirrorEventType["INTEGRITY_FAILED"] = "mirror:integrity:failed";
34
+ // Score updates
35
+ MirrorEventType["SCORE_UPDATE"] = "mirror:score:update";
36
+ MirrorEventType["SCORE_MILESTONE"] = "mirror:score:milestone";
37
+ MirrorEventType["SCORE_DROP"] = "mirror:score:drop";
38
+ // DNA chain
39
+ MirrorEventType["DNA_LOG"] = "mirror:dna:log";
40
+ MirrorEventType["DNA_CHECKPOINT"] = "mirror:dna:checkpoint";
41
+ MirrorEventType["DNA_RESTORE"] = "mirror:dna:restore";
42
+ // File operations
43
+ MirrorEventType["FILE_READ"] = "mirror:file:read";
44
+ MirrorEventType["FILE_WRITE"] = "mirror:file:write";
45
+ MirrorEventType["FILE_BACKUP"] = "mirror:file:backup";
46
+ // Errors
47
+ MirrorEventType["ERROR"] = "mirror:error";
48
+ MirrorEventType["WARNING"] = "mirror:warning";
49
+ })(MirrorEventType || (exports.MirrorEventType = MirrorEventType = {}));
50
+ /**
51
+ * Create a mirror event (helper)
52
+ */
53
+ function createMirrorEvent(type, data, metadata = {}) {
54
+ return {
55
+ type,
56
+ timestamp: new Date(),
57
+ data,
58
+ metadata: {
59
+ projectPath: metadata.projectPath || process.cwd(),
60
+ timestamp: new Date(),
61
+ ...metadata
62
+ }
63
+ };
64
+ }
65
+ //# sourceMappingURL=mirror-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-events.js","sourceRoot":"","sources":["../../../../../src/engines/c-mirror/core/events/mirror-events.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAoHH,8CAeC;AAjID;;GAEG;AACH,IAAY,eAqCX;AArCD,WAAY,eAAe;IACzB,iBAAiB;IACjB,mDAAgC,CAAA;IAChC,yDAAsC,CAAA;IACtC,yDAAsC,CAAA;IACtC,mDAAgC,CAAA;IAEhC,uBAAuB;IACvB,+DAA4C,CAAA;IAC5C,qEAAkD,CAAA;IAClD,qEAAkD,CAAA;IAClD,+DAA4C,CAAA;IAE5C,mBAAmB;IACnB,6DAA0C,CAAA;IAC1C,iEAA8C,CAAA;IAC9C,mEAAgD,CAAA;IAChD,+DAA4C,CAAA;IAE5C,gBAAgB;IAChB,uDAAoC,CAAA;IACpC,6DAA0C,CAAA;IAC1C,mDAAgC,CAAA;IAEhC,YAAY;IACZ,6CAA0B,CAAA;IAC1B,2DAAwC,CAAA;IACxC,qDAAkC,CAAA;IAElC,kBAAkB;IAClB,iDAA8B,CAAA;IAC9B,mDAAgC,CAAA;IAChC,qDAAkC,CAAA;IAElC,SAAS;IACT,yCAAsB,CAAA;IACtB,6CAA0B,CAAA;AAC5B,CAAC,EArCW,eAAe,+BAAf,eAAe,QAqC1B;AAuED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,IAAqB,EACrB,IAAS,EACT,WAAmC,EAAE;IAErC,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI;QACJ,QAAQ,EAAE;YACR,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;YAClD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,GAAG,QAAQ;SACZ;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 🔗 FAF to CLAUDE.md Transformation
3
+ * Core conversion: YAML (.faf) → Markdown (CLAUDE.md)
4
+ *
5
+ * This is THE transformation that makes Context-Mirroring work
6
+ * Preserves structure AND readability - zero slippage
7
+ *
8
+ * Emits events at each step for broad broadcasting
9
+ */
10
+ /**
11
+ * Convert .faf YAML content to CLAUDE.md Markdown format
12
+ *
13
+ * @param fafContent - Raw .faf file content (YAML)
14
+ * @param projectPath - Project root path for event metadata
15
+ * @returns Beautiful CLAUDE.md markdown content
16
+ */
17
+ export declare function fafToClaudeMd(fafContent: string, projectPath?: string): Promise<string>;
18
+ //# sourceMappingURL=faf-to-claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-to-claude.d.ts","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/faf-to-claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0K5G"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ /**
3
+ * 🔗 FAF to CLAUDE.md Transformation
4
+ * Core conversion: YAML (.faf) → Markdown (CLAUDE.md)
5
+ *
6
+ * This is THE transformation that makes Context-Mirroring work
7
+ * Preserves structure AND readability - zero slippage
8
+ *
9
+ * Emits events at each step for broad broadcasting
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.fafToClaudeMd = fafToClaudeMd;
46
+ const YAML = __importStar(require("yaml"));
47
+ const event_emitter_1 = require("./events/event-emitter");
48
+ const mirror_events_1 = require("./events/mirror-events");
49
+ /**
50
+ * Convert .faf YAML content to CLAUDE.md Markdown format
51
+ *
52
+ * @param fafContent - Raw .faf file content (YAML)
53
+ * @param projectPath - Project root path for event metadata
54
+ * @returns Beautiful CLAUDE.md markdown content
55
+ */
56
+ async function fafToClaudeMd(fafContent, projectPath = process.cwd()) {
57
+ const startTime = Date.now();
58
+ // EMIT: Starting conversion
59
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_START, {
60
+ direction: 'faf-to-claude'
61
+ }, { projectPath }));
62
+ try {
63
+ // Step 1: Parse YAML
64
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
65
+ step: 'parsing-yaml',
66
+ progress: 10,
67
+ message: 'Parsing .faf YAML structure...'
68
+ }, { projectPath }));
69
+ const fafData = YAML.parse(fafContent);
70
+ // Step 2: Extract core data
71
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
72
+ step: 'extracting-data',
73
+ progress: 30,
74
+ message: 'Extracting project context...'
75
+ }, { projectPath }));
76
+ const projectName = fafData.project?.name || 'Project';
77
+ const projectGoal = fafData.project?.goal;
78
+ const stack = fafData.instant_context?.tech_stack || 'Unknown';
79
+ const mainLanguage = fafData.instant_context?.main_language;
80
+ const frameworks = fafData.instant_context?.frameworks;
81
+ const whatBuilding = fafData.instant_context?.what_building;
82
+ const contextQuality = fafData.context_quality?.overall_assessment || 'Good';
83
+ const fafScore = fafData.faf_score;
84
+ const aiScore = fafData.ai_score;
85
+ const humanScore = fafData.human_score;
86
+ // Step 3: Generate Markdown structure
87
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
88
+ step: 'generating-markdown',
89
+ progress: 60,
90
+ message: 'Generating human-readable markdown...'
91
+ }, { projectPath }));
92
+ let claudeMd = `# 🏎️ CLAUDE.md - ${projectName} Persistent Context & Intelligence\n\n`;
93
+ // Project State Section
94
+ claudeMd += `## PROJECT STATE: ${contextQuality.toUpperCase()} 🚀\n`;
95
+ if (projectGoal) {
96
+ claudeMd += `**Current Position:** ${projectGoal}\n`;
97
+ }
98
+ claudeMd += `**Tyre Compound:** ULTRASOFT C5 (Maximum Performance)\n\n`;
99
+ claudeMd += `---\n\n`;
100
+ // Core Context Section
101
+ claudeMd += `## 🎨 CORE CONTEXT\n\n`;
102
+ // Project Identity
103
+ claudeMd += `### Project Identity\n`;
104
+ claudeMd += `- **Name:** ${projectName}\n`;
105
+ if (fafData.project?.description) {
106
+ claudeMd += `- **Description:** ${fafData.project.description}\n`;
107
+ }
108
+ claudeMd += `- **Stack:** ${stack}\n`;
109
+ claudeMd += `- **Quality:** F1-INSPIRED (Championship Performance)\n\n`;
110
+ // Technical Architecture
111
+ if (whatBuilding || mainLanguage || frameworks) {
112
+ claudeMd += `### Technical Architecture\n`;
113
+ if (whatBuilding) {
114
+ claudeMd += `- **What Building:** ${whatBuilding}\n`;
115
+ }
116
+ if (mainLanguage) {
117
+ claudeMd += `- **Main Language:** ${mainLanguage}\n`;
118
+ }
119
+ if (frameworks) {
120
+ claudeMd += `- **Frameworks:** ${frameworks}\n`;
121
+ }
122
+ claudeMd += `\n`;
123
+ }
124
+ // Key Files (if present)
125
+ if (fafData.key_files && Array.isArray(fafData.key_files) && fafData.key_files.length > 0) {
126
+ claudeMd += `### 🔧 Key Files\n`;
127
+ fafData.key_files.forEach((file, index) => {
128
+ claudeMd += `${index + 1}. **${file.path}** - ${file.purpose || 'Core file'}\n`;
129
+ });
130
+ claudeMd += `\n`;
131
+ }
132
+ // AI Instructions (if present)
133
+ if (fafData.ai?.instructions || fafData.ai?.priority_order) {
134
+ claudeMd += `### 🤖 AI Instructions\n`;
135
+ if (fafData.ai.instructions) {
136
+ claudeMd += `${fafData.ai.instructions}\n\n`;
137
+ }
138
+ if (fafData.ai.priority_order && Array.isArray(fafData.ai.priority_order)) {
139
+ claudeMd += `**Priority Order:**\n`;
140
+ fafData.ai.priority_order.forEach((item) => {
141
+ claudeMd += `- ${item}\n`;
142
+ });
143
+ claudeMd += `\n`;
144
+ }
145
+ }
146
+ // Context Quality Status
147
+ claudeMd += `### 📊 Context Quality Status\n`;
148
+ claudeMd += `- **Overall Assessment:** ${contextQuality}\n`;
149
+ if (fafScore) {
150
+ claudeMd += `- **FAF Score:** ${fafScore}\n`;
151
+ }
152
+ if (aiScore !== undefined && humanScore !== undefined) {
153
+ claudeMd += `- **AI|HUMAN Balance:** AI:${aiScore} | HUMAN:${humanScore}\n`;
154
+ }
155
+ claudeMd += `- **Last Updated:** ${new Date().toISOString().split('T')[0]}\n\n`;
156
+ // Step 4: Add Championship Footer
157
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
158
+ step: 'adding-footer',
159
+ progress: 90,
160
+ message: 'Adding championship footer...'
161
+ }, { projectPath }));
162
+ claudeMd += `---\n\n`;
163
+ claudeMd += `**STATUS: BI-SYNC ACTIVE 🔗 - Synchronized with .faf context!**\n\n`;
164
+ claudeMd += `*Last Sync: ${new Date().toISOString()}*\n`;
165
+ claudeMd += `*Sync Engine: F1-Inspired Software Engineering*\n`;
166
+ claudeMd += `*🏎️⚡️_championship_sync*\n`;
167
+ // Step 5: Complete
168
+ const duration = Date.now() - startTime;
169
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_COMPLETE, {
170
+ direction: 'faf-to-claude',
171
+ success: true,
172
+ filesChanged: ['CLAUDE.md']
173
+ }, {
174
+ projectPath,
175
+ duration,
176
+ score: aiScore !== undefined && humanScore !== undefined ? {
177
+ ai: aiScore,
178
+ human: humanScore,
179
+ total: fafScore ? parseInt(fafScore) : aiScore + humanScore
180
+ } : undefined
181
+ }));
182
+ return claudeMd;
183
+ }
184
+ catch (error) {
185
+ // EMIT: Error
186
+ event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_ERROR, {
187
+ direction: 'faf-to-claude',
188
+ error: error instanceof Error ? error.message : String(error)
189
+ }, { projectPath }));
190
+ throw error;
191
+ }
192
+ }
193
+ //# sourceMappingURL=faf-to-claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-to-claude.js","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/faf-to-claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * 🏗️ C-Mirror Core Interfaces
3
+ * TypeScript strict mode - All interfaces for the mirror system
4
+ * Extraction-ready: Generic, reusable, well-defined
5
+ */
6
+ import { SyncDirection, IntegrityStatus, ScoreData } from './events/mirror-events';
7
+ /**
8
+ * Mirror Configuration
9
+ */
10
+ export interface IMirrorConfig {
11
+ structuredFile: string;
12
+ readableFile: string;
13
+ projectPath?: string;
14
+ schema?: IYAMLSchema;
15
+ validators?: IValidator[];
16
+ dnaChain?: IDNAChainConfig;
17
+ conflictStrategy?: ConflictStrategy;
18
+ atomicWrites?: boolean;
19
+ selfHealing?: boolean;
20
+ silent?: boolean;
21
+ }
22
+ /**
23
+ * Mirror Result
24
+ */
25
+ export interface IMirrorResult {
26
+ success: boolean;
27
+ direction: SyncDirection;
28
+ filesChanged: string[];
29
+ conflicts: string[];
30
+ duration: number;
31
+ integrity: IntegrityStatus;
32
+ score?: ScoreData;
33
+ error?: string;
34
+ }
35
+ /**
36
+ * YAML Schema Interface
37
+ */
38
+ export interface IYAMLSchema {
39
+ requiredFields: string[];
40
+ optionalFields: string[];
41
+ validate(data: any): SchemaValidationResult;
42
+ }
43
+ /**
44
+ * Schema Validation Result
45
+ */
46
+ export interface SchemaValidationResult {
47
+ valid: boolean;
48
+ errors: string[];
49
+ warnings: string[];
50
+ }
51
+ /**
52
+ * Validator Interface
53
+ */
54
+ export interface IValidator {
55
+ name: string;
56
+ description?: string;
57
+ validate(data: any): ValidationResult;
58
+ }
59
+ /**
60
+ * Validation Result
61
+ */
62
+ export interface ValidationResult {
63
+ valid: boolean;
64
+ errors?: string[];
65
+ warnings?: string[];
66
+ metadata?: Record<string, any>;
67
+ }
68
+ /**
69
+ * DNA Chain Configuration
70
+ */
71
+ export interface IDNAChainConfig {
72
+ enabled: boolean;
73
+ path?: string;
74
+ logLevel?: 'minimal' | 'standard' | 'verbose';
75
+ maxEntries?: number;
76
+ }
77
+ /**
78
+ * DNA Chain Entry
79
+ */
80
+ export interface IDNAChainEntry {
81
+ timestamp: Date;
82
+ event: string;
83
+ score?: ScoreData;
84
+ integrity: IntegrityStatus;
85
+ filesChanged: string[];
86
+ duration: number;
87
+ metadata?: Record<string, any>;
88
+ }
89
+ /**
90
+ * Conflict Resolution Strategy
91
+ */
92
+ export type ConflictStrategy = 'faf-wins' | 'claude-wins' | 'merge' | 'prompt' | 'abort';
93
+ /**
94
+ * File State (for conflict detection)
95
+ */
96
+ export interface FileState {
97
+ path: string;
98
+ exists: boolean;
99
+ modified?: Date;
100
+ size?: number;
101
+ hash?: string;
102
+ }
103
+ /**
104
+ * Conflict
105
+ */
106
+ export interface Conflict {
107
+ type: 'both-modified' | 'missing-file' | 'schema-mismatch' | 'validation-failed';
108
+ file1: FileState;
109
+ file2: FileState;
110
+ message: string;
111
+ }
112
+ /**
113
+ * Merge Result
114
+ */
115
+ export interface MergeResult {
116
+ success: boolean;
117
+ merged: any;
118
+ conflicts: string[];
119
+ warnings: string[];
120
+ }
121
+ /**
122
+ * Integrity Status
123
+ */
124
+ export interface IntegrityCheckResult {
125
+ status: IntegrityStatus;
126
+ checks: {
127
+ yamlValid: boolean;
128
+ markdownValid: boolean;
129
+ roundTripValid: boolean;
130
+ scoreAccurate: boolean;
131
+ };
132
+ errors: string[];
133
+ warnings: string[];
134
+ }
135
+ /**
136
+ * Restore Options
137
+ */
138
+ export interface RestoreOptions {
139
+ fromDNA?: boolean;
140
+ timestamp?: Date;
141
+ entryIndex?: number;
142
+ dryRun?: boolean;
143
+ }
144
+ /**
145
+ * Restore Result
146
+ */
147
+ export interface RestoreResult {
148
+ success: boolean;
149
+ filesRestored: string[];
150
+ scoreRestored?: ScoreData;
151
+ error?: string;
152
+ }
153
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * 🏗️ C-Mirror Core Interfaces
4
+ * TypeScript strict mode - All interfaces for the mirror system
5
+ * Extraction-ready: Generic, reusable, well-defined
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/interfaces.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * 🔗 Mirror Engine - The Orchestrator
3
+ * Coordinates all C-Mirror operations
4
+ *
5
+ * This is the main engine that:
6
+ * - Detects which files need syncing
7
+ * - Calls the transformation functions
8
+ * - Uses atomic writes for safety
9
+ * - Emits events for broadcasting
10
+ * - Ensures zero slippage
11
+ *
12
+ * Usage:
13
+ * const engine = new MirrorEngine(config);
14
+ * const result = await engine.sync();
15
+ */
16
+ import { IMirrorConfig, IMirrorResult } from './interfaces';
17
+ export declare class MirrorEngine {
18
+ private config;
19
+ private projectPath;
20
+ constructor(config: IMirrorConfig);
21
+ /**
22
+ * Main sync operation
23
+ * Intelligently syncs .faf ↔ CLAUDE.md
24
+ */
25
+ sync(): Promise<IMirrorResult>;
26
+ /**
27
+ * Analyze file states to determine what needs syncing
28
+ */
29
+ private analyzeFiles;
30
+ /**
31
+ * Determine sync strategy based on file states
32
+ */
33
+ private determineSyncStrategy;
34
+ /**
35
+ * Sync .faf → CLAUDE.md
36
+ */
37
+ private syncFafToClaude;
38
+ /**
39
+ * Sync CLAUDE.md → .faf
40
+ */
41
+ private syncClaudeToFaf;
42
+ /**
43
+ * Verify integrity after sync
44
+ * Ensures mirror is perfect
45
+ */
46
+ private verifyIntegrity;
47
+ }
48
+ //# sourceMappingURL=mirror-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-engine.d.ts","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/mirror-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAa,MAAM,cAAc,CAAC;AAOvE,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,aAAa;IASjC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IA2EpC;;OAEG;YACW,YAAY;IA4B1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,eAAe;IAwB7B;;;OAGG;YACW,eAAe;CAiD9B"}