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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-to-faf.js","sourceRoot":"","sources":["../../../../src/engines/c-mirror/core/claude-to-faf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🎸 Event Emitter - The Power Chord Player
|
|
3
|
+
* Global singleton event emitter for all C-Mirror events
|
|
4
|
+
*
|
|
5
|
+
* Core emits events → Emitter broadcasts → Listeners react
|
|
6
|
+
* Terminal, Slack, Dashboard, Analytics all listen to the same chords
|
|
7
|
+
*/
|
|
8
|
+
import { EventEmitter } from 'events';
|
|
9
|
+
import { MirrorEvent, MirrorEventType } from './mirror-events';
|
|
10
|
+
/**
|
|
11
|
+
* Mirror Event Emitter
|
|
12
|
+
* Extended EventEmitter with type-safe event handling
|
|
13
|
+
*/
|
|
14
|
+
export declare class MirrorEventEmitter extends EventEmitter {
|
|
15
|
+
/**
|
|
16
|
+
* Emit a mirror event
|
|
17
|
+
* Broadcasts to both universal and specific listeners
|
|
18
|
+
*/
|
|
19
|
+
emitMirrorEvent(event: MirrorEvent): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get event category for grouped listening
|
|
22
|
+
*/
|
|
23
|
+
private getEventCategory;
|
|
24
|
+
/**
|
|
25
|
+
* Type-safe event listeners
|
|
26
|
+
*/
|
|
27
|
+
onMirrorEvent(type: MirrorEventType | 'mirror:event', listener: (event: MirrorEvent) => void): this;
|
|
28
|
+
onceMirrorEvent(type: MirrorEventType | 'mirror:event', listener: (event: MirrorEvent) => void): this;
|
|
29
|
+
offMirrorEvent(type: MirrorEventType | 'mirror:event', listener: (event: MirrorEvent) => void): this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Global singleton - ONE source of truth
|
|
33
|
+
* All C-Mirror operations use this single emitter
|
|
34
|
+
*/
|
|
35
|
+
export declare const mirrorEvents: MirrorEventEmitter;
|
|
36
|
+
//# sourceMappingURL=event-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../../../src/engines/c-mirror/core/events/event-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAczC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAInG,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIrG,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;CAGrG;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,oBAA2B,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 🎸 Event Emitter - The Power Chord Player
|
|
4
|
+
* Global singleton event emitter for all C-Mirror events
|
|
5
|
+
*
|
|
6
|
+
* Core emits events → Emitter broadcasts → Listeners react
|
|
7
|
+
* Terminal, Slack, Dashboard, Analytics all listen to the same chords
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.mirrorEvents = exports.MirrorEventEmitter = void 0;
|
|
11
|
+
const events_1 = require("events");
|
|
12
|
+
/**
|
|
13
|
+
* Mirror Event Emitter
|
|
14
|
+
* Extended EventEmitter with type-safe event handling
|
|
15
|
+
*/
|
|
16
|
+
class MirrorEventEmitter extends events_1.EventEmitter {
|
|
17
|
+
/**
|
|
18
|
+
* Emit a mirror event
|
|
19
|
+
* Broadcasts to both universal and specific listeners
|
|
20
|
+
*/
|
|
21
|
+
emitMirrorEvent(event) {
|
|
22
|
+
// Emit to universal listener (anyone who wants ALL events)
|
|
23
|
+
this.emit('mirror:event', event);
|
|
24
|
+
// Emit to specific type listeners
|
|
25
|
+
this.emit(event.type, event);
|
|
26
|
+
// Emit to category listeners
|
|
27
|
+
const category = this.getEventCategory(event.type);
|
|
28
|
+
if (category) {
|
|
29
|
+
this.emit(category, event);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get event category for grouped listening
|
|
34
|
+
*/
|
|
35
|
+
getEventCategory(type) {
|
|
36
|
+
if (type.startsWith('mirror:sync:'))
|
|
37
|
+
return 'mirror:sync';
|
|
38
|
+
if (type.startsWith('mirror:validation:'))
|
|
39
|
+
return 'mirror:validation';
|
|
40
|
+
if (type.startsWith('mirror:integrity:'))
|
|
41
|
+
return 'mirror:integrity';
|
|
42
|
+
if (type.startsWith('mirror:score:'))
|
|
43
|
+
return 'mirror:score';
|
|
44
|
+
if (type.startsWith('mirror:dna:'))
|
|
45
|
+
return 'mirror:dna';
|
|
46
|
+
if (type.startsWith('mirror:file:'))
|
|
47
|
+
return 'mirror:file';
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Type-safe event listeners
|
|
52
|
+
*/
|
|
53
|
+
onMirrorEvent(type, listener) {
|
|
54
|
+
return this.on(type, listener);
|
|
55
|
+
}
|
|
56
|
+
onceMirrorEvent(type, listener) {
|
|
57
|
+
return this.once(type, listener);
|
|
58
|
+
}
|
|
59
|
+
offMirrorEvent(type, listener) {
|
|
60
|
+
return this.off(type, listener);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.MirrorEventEmitter = MirrorEventEmitter;
|
|
64
|
+
/**
|
|
65
|
+
* Global singleton - ONE source of truth
|
|
66
|
+
* All C-Mirror operations use this single emitter
|
|
67
|
+
*/
|
|
68
|
+
exports.mirrorEvents = new MirrorEventEmitter();
|
|
69
|
+
// Increase max listeners for integrations (Slack, Dashboard, Analytics, etc.)
|
|
70
|
+
exports.mirrorEvents.setMaxListeners(50);
|
|
71
|
+
//# sourceMappingURL=event-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../../../../src/engines/c-mirror/core/events/event-emitter.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,mCAAsC;AAGtC;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,qBAAY;IAClD;;;OAGG;IACH,eAAe,CAAC,KAAkB;QAChC,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAEjC,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7B,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAqB;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,aAAa,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAAE,OAAO,mBAAmB,CAAC;QACtE,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,OAAO,kBAAkB,CAAC;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,cAAc,CAAC;QAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,YAAY,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,aAAa,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAsC,EAAE,QAAsC;QAC1F,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,IAAsC,EAAE,QAAsC;QAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,cAAc,CAAC,IAAsC,EAAE,QAAsC;QAC3F,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AA9CD,gDA8CC;AAED;;;GAGG;AACU,QAAA,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAErD,8EAA8E;AAC9E,oBAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -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,CA6K5G"}
|
|
@@ -0,0 +1,195 @@
|
|
|
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 parsedData = YAML.parse(fafContent);
|
|
70
|
+
// Handle empty or invalid .faf files with defaults
|
|
71
|
+
const fafData = (!parsedData || typeof parsedData !== 'object') ? {} : parsedData;
|
|
72
|
+
// Step 2: Extract core data
|
|
73
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
74
|
+
step: 'extracting-data',
|
|
75
|
+
progress: 30,
|
|
76
|
+
message: 'Extracting project context...'
|
|
77
|
+
}, { projectPath }));
|
|
78
|
+
const projectName = fafData.project?.name || 'Project';
|
|
79
|
+
const projectGoal = fafData.project?.goal;
|
|
80
|
+
const stack = fafData.instant_context?.tech_stack || 'Unknown';
|
|
81
|
+
const mainLanguage = fafData.instant_context?.main_language;
|
|
82
|
+
const frameworks = fafData.instant_context?.frameworks;
|
|
83
|
+
const whatBuilding = fafData.instant_context?.what_building;
|
|
84
|
+
const contextQuality = fafData.context_quality?.overall_assessment || 'Good';
|
|
85
|
+
const fafScore = fafData.faf_score;
|
|
86
|
+
const aiScore = fafData.ai_score;
|
|
87
|
+
const humanScore = fafData.human_score;
|
|
88
|
+
// Step 3: Generate Markdown structure
|
|
89
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
90
|
+
step: 'generating-markdown',
|
|
91
|
+
progress: 60,
|
|
92
|
+
message: 'Generating human-readable markdown...'
|
|
93
|
+
}, { projectPath }));
|
|
94
|
+
let claudeMd = `# 🏎️ CLAUDE.md - ${projectName} Persistent Context & Intelligence\n\n`;
|
|
95
|
+
// Project State Section
|
|
96
|
+
claudeMd += `## PROJECT STATE: ${contextQuality.toUpperCase()} 🚀\n`;
|
|
97
|
+
if (projectGoal) {
|
|
98
|
+
claudeMd += `**Current Position:** ${projectGoal}\n`;
|
|
99
|
+
}
|
|
100
|
+
claudeMd += `**Tyre Compound:** ULTRASOFT C5 (Maximum Performance)\n\n`;
|
|
101
|
+
claudeMd += `---\n\n`;
|
|
102
|
+
// Core Context Section
|
|
103
|
+
claudeMd += `## 🎨 CORE CONTEXT\n\n`;
|
|
104
|
+
// Project Identity
|
|
105
|
+
claudeMd += `### Project Identity\n`;
|
|
106
|
+
claudeMd += `- **Name:** ${projectName}\n`;
|
|
107
|
+
if (fafData.project?.description) {
|
|
108
|
+
claudeMd += `- **Description:** ${fafData.project.description}\n`;
|
|
109
|
+
}
|
|
110
|
+
claudeMd += `- **Stack:** ${stack}\n`;
|
|
111
|
+
claudeMd += `- **Quality:** F1-INSPIRED (Championship Performance)\n\n`;
|
|
112
|
+
// Technical Architecture
|
|
113
|
+
if (whatBuilding || mainLanguage || frameworks) {
|
|
114
|
+
claudeMd += `### Technical Architecture\n`;
|
|
115
|
+
if (whatBuilding) {
|
|
116
|
+
claudeMd += `- **What Building:** ${whatBuilding}\n`;
|
|
117
|
+
}
|
|
118
|
+
if (mainLanguage) {
|
|
119
|
+
claudeMd += `- **Main Language:** ${mainLanguage}\n`;
|
|
120
|
+
}
|
|
121
|
+
if (frameworks) {
|
|
122
|
+
claudeMd += `- **Frameworks:** ${frameworks}\n`;
|
|
123
|
+
}
|
|
124
|
+
claudeMd += `\n`;
|
|
125
|
+
}
|
|
126
|
+
// Key Files (if present)
|
|
127
|
+
if (fafData.key_files && Array.isArray(fafData.key_files) && fafData.key_files.length > 0) {
|
|
128
|
+
claudeMd += `### 🔧 Key Files\n`;
|
|
129
|
+
fafData.key_files.forEach((file, index) => {
|
|
130
|
+
claudeMd += `${index + 1}. **${file.path}** - ${file.purpose || 'Core file'}\n`;
|
|
131
|
+
});
|
|
132
|
+
claudeMd += `\n`;
|
|
133
|
+
}
|
|
134
|
+
// AI Instructions (if present)
|
|
135
|
+
if (fafData.ai?.instructions || fafData.ai?.priority_order) {
|
|
136
|
+
claudeMd += `### 🤖 AI Instructions\n`;
|
|
137
|
+
if (fafData.ai.instructions) {
|
|
138
|
+
claudeMd += `${fafData.ai.instructions}\n\n`;
|
|
139
|
+
}
|
|
140
|
+
if (fafData.ai.priority_order && Array.isArray(fafData.ai.priority_order)) {
|
|
141
|
+
claudeMd += `**Priority Order:**\n`;
|
|
142
|
+
fafData.ai.priority_order.forEach((item) => {
|
|
143
|
+
claudeMd += `- ${item}\n`;
|
|
144
|
+
});
|
|
145
|
+
claudeMd += `\n`;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Context Quality Status
|
|
149
|
+
claudeMd += `### 📊 Context Quality Status\n`;
|
|
150
|
+
claudeMd += `- **Overall Assessment:** ${contextQuality}\n`;
|
|
151
|
+
if (fafScore) {
|
|
152
|
+
claudeMd += `- **FAF Score:** ${fafScore}\n`;
|
|
153
|
+
}
|
|
154
|
+
if (aiScore !== undefined && humanScore !== undefined) {
|
|
155
|
+
claudeMd += `- **AI|HUMAN Balance:** AI:${aiScore} | HUMAN:${humanScore}\n`;
|
|
156
|
+
}
|
|
157
|
+
claudeMd += `- **Last Updated:** ${new Date().toISOString().split('T')[0]}\n\n`;
|
|
158
|
+
// Step 4: Add Championship Footer
|
|
159
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_PROGRESS, {
|
|
160
|
+
step: 'adding-footer',
|
|
161
|
+
progress: 90,
|
|
162
|
+
message: 'Adding championship footer...'
|
|
163
|
+
}, { projectPath }));
|
|
164
|
+
claudeMd += `---\n\n`;
|
|
165
|
+
claudeMd += `**STATUS: BI-SYNC ACTIVE 🔗 - Synchronized with .faf context!**\n\n`;
|
|
166
|
+
claudeMd += `*Last Sync: ${new Date().toISOString()}*\n`;
|
|
167
|
+
claudeMd += `*Sync Engine: F1-Inspired Software Engineering*\n`;
|
|
168
|
+
claudeMd += `*🏎️⚡️_championship_sync*\n`;
|
|
169
|
+
// Step 5: Complete
|
|
170
|
+
const duration = Date.now() - startTime;
|
|
171
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_COMPLETE, {
|
|
172
|
+
direction: 'faf-to-claude',
|
|
173
|
+
success: true,
|
|
174
|
+
filesChanged: ['CLAUDE.md']
|
|
175
|
+
}, {
|
|
176
|
+
projectPath,
|
|
177
|
+
duration,
|
|
178
|
+
score: aiScore !== undefined && humanScore !== undefined ? {
|
|
179
|
+
ai: aiScore,
|
|
180
|
+
human: humanScore,
|
|
181
|
+
total: fafScore ? parseInt(fafScore) : aiScore + humanScore
|
|
182
|
+
} : undefined
|
|
183
|
+
}));
|
|
184
|
+
return claudeMd;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
// EMIT: Error
|
|
188
|
+
event_emitter_1.mirrorEvents.emitMirrorEvent((0, mirror_events_1.createMirrorEvent)(mirror_events_1.MirrorEventType.SYNC_ERROR, {
|
|
189
|
+
direction: 'faf-to-claude',
|
|
190
|
+
error: error instanceof Error ? error.message : String(error)
|
|
191
|
+
}, { projectPath }));
|
|
192
|
+
throw error;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# 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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"}
|