faf-mcp 1.3.1 → 2.0.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.
- package/CHANGELOG.md +32 -0
- package/CLAUDE.md +5 -5
- package/README.md +70 -14
- package/assets/thumbnail.png +0 -0
- package/dist/src/faf-core/commands/agents.d.ts +29 -0
- package/dist/src/faf-core/commands/agents.js +140 -0
- package/dist/src/faf-core/commands/agents.js.map +1 -0
- package/dist/src/faf-core/commands/bi-sync.d.ts +9 -5
- package/dist/src/faf-core/commands/bi-sync.js +89 -85
- package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
- package/dist/src/faf-core/commands/conductor.d.ts +25 -0
- package/dist/src/faf-core/commands/conductor.js +157 -0
- package/dist/src/faf-core/commands/conductor.js.map +1 -0
- package/dist/src/faf-core/commands/cursor.d.ts +29 -0
- package/dist/src/faf-core/commands/cursor.js +134 -0
- package/dist/src/faf-core/commands/cursor.js.map +1 -0
- package/dist/src/faf-core/commands/gemini.d.ts +29 -0
- package/dist/src/faf-core/commands/gemini.js +133 -0
- package/dist/src/faf-core/commands/gemini.js.map +1 -0
- package/dist/src/faf-core/commands/git-context.d.ts +23 -0
- package/dist/src/faf-core/commands/git-context.js +66 -0
- package/dist/src/faf-core/commands/git-context.js.map +1 -0
- package/dist/src/faf-core/commands/human.d.ts +27 -0
- package/dist/src/faf-core/commands/human.js +183 -0
- package/dist/src/faf-core/commands/human.js.map +1 -0
- package/dist/src/faf-core/commands/readme.d.ts +47 -0
- package/dist/src/faf-core/commands/readme.js +361 -0
- package/dist/src/faf-core/commands/readme.js.map +1 -0
- package/dist/src/faf-core/engines/fab-formats-processor.js +3 -3
- package/dist/src/faf-core/engines/fab-formats-processor.js.map +1 -1
- package/dist/src/faf-core/engines/faf-dna.d.ts +1 -1
- package/dist/src/faf-core/engines/faf-dna.js +4 -3
- package/dist/src/faf-core/engines/faf-dna.js.map +1 -1
- package/dist/src/faf-core/generators/faf-generator-championship.js +9 -8
- package/dist/src/faf-core/generators/faf-generator-championship.js.map +1 -1
- package/dist/src/faf-core/parsers/agents-parser.d.ts +59 -0
- package/dist/src/faf-core/parsers/agents-parser.js +324 -0
- package/dist/src/faf-core/parsers/agents-parser.js.map +1 -0
- package/dist/src/faf-core/parsers/conductor-parser.d.ts +85 -0
- package/dist/src/faf-core/parsers/conductor-parser.js +293 -0
- package/dist/src/faf-core/parsers/conductor-parser.js.map +1 -0
- package/dist/src/faf-core/parsers/cursorrules-parser.d.ts +57 -0
- package/dist/src/faf-core/parsers/cursorrules-parser.js +317 -0
- package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -0
- package/dist/src/faf-core/parsers/faf-git-generator.d.ts +53 -0
- package/dist/src/faf-core/parsers/faf-git-generator.js +512 -0
- package/dist/src/faf-core/parsers/faf-git-generator.js.map +1 -0
- package/dist/src/faf-core/parsers/gemini-parser.d.ts +57 -0
- package/dist/src/faf-core/parsers/gemini-parser.js +263 -0
- package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -0
- package/dist/src/faf-core/parsers/github-extractor.d.ts +61 -0
- package/dist/src/faf-core/parsers/github-extractor.js +374 -0
- package/dist/src/faf-core/parsers/github-extractor.js.map +1 -0
- package/dist/src/faf-core/parsers/index.d.ts +12 -0
- package/dist/src/{compiler → faf-core/parsers}/index.js +10 -5
- package/dist/src/faf-core/parsers/index.js.map +1 -0
- package/dist/src/faf-core/parsers/slot-counter.d.ts +55 -0
- package/dist/src/faf-core/parsers/slot-counter.js +100 -0
- package/dist/src/faf-core/parsers/slot-counter.js.map +1 -0
- package/dist/src/faf-core/utils/balance-visualizer.js +3 -3
- package/dist/src/faf-core/utils/balance-visualizer.js.map +1 -1
- package/dist/src/handlers/championship-tools.d.ts +10 -5
- package/dist/src/handlers/championship-tools.js +259 -232
- package/dist/src/handlers/championship-tools.js.map +1 -1
- package/dist/src/handlers/engine-adapter.js +238 -5
- package/dist/src/handlers/engine-adapter.js.map +1 -1
- package/dist/src/handlers/tools.d.ts +61 -0
- package/dist/src/handlers/tools.js +2103 -102
- package/dist/src/handlers/tools.js.map +1 -1
- package/dist/src/index.js +0 -0
- package/dist/src/types/tool-visibility.js +51 -10
- package/dist/src/types/tool-visibility.js.map +1 -1
- package/dist/src/utils/championship-format.js +11 -9
- package/dist/src/utils/championship-format.js.map +1 -1
- package/dist/src/utils/path-resolver.js +56 -2
- package/dist/src/utils/path-resolver.js.map +1 -1
- package/dist/src/utils/visual-style.js +7 -5
- package/dist/src/utils/visual-style.js.map +1 -1
- package/dist/src/version.js +24 -11
- package/dist/src/version.js.map +1 -1
- package/package.json +5 -3
- package/project.faf +14 -18
- package/dist/index.json +0 -1
- package/dist/src/compiler/index.d.ts +0 -7
- package/dist/src/compiler/index.js.map +0 -1
- package/dist/src/compiler/scorer.d.ts +0 -53
- package/dist/src/compiler/scorer.js +0 -189
- package/dist/src/compiler/scorer.js.map +0 -1
- package/dist/src/compiler/slot-validator.d.ts +0 -32
- package/dist/src/compiler/slot-validator.js +0 -293
- package/dist/src/compiler/slot-validator.js.map +0 -1
- package/dist/src/compiler/type-detector.d.ts +0 -62
- package/dist/src/compiler/type-detector.js +0 -388
- package/dist/src/compiler/type-detector.js.map +0 -1
- package/dist/src/types/project-types.d.ts +0 -22
- package/dist/src/types/project-types.js +0 -85
- package/dist/src/types/project-types.js.map +0 -1
- package/dist/src/types/slots.d.ts +0 -39
- package/dist/src/types/slots.js +0 -162
- package/dist/src/types/slots.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-resolver.js","sourceRoot":"","sources":["../../../src/utils/path-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8EH,4CAEC;AAKD,oDAGC;
|
|
1
|
+
{"version":3,"file":"path-resolver.js","sourceRoot":"","sources":["../../../src/utils/path-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,14 +53,16 @@ function getScoreMedal(score) {
|
|
|
53
53
|
if (score >= 99)
|
|
54
54
|
return { medal: '🥇', status: 'Gold' };
|
|
55
55
|
if (score >= 95)
|
|
56
|
-
return { medal: '🥈', status: '
|
|
56
|
+
return { medal: '🥈', status: 'Silver' };
|
|
57
57
|
if (score >= 85)
|
|
58
|
-
return { medal: '🥉', status: '
|
|
58
|
+
return { medal: '🥉', status: 'Bronze' };
|
|
59
59
|
if (score >= 70)
|
|
60
|
-
return { medal: '🟢', status: '
|
|
60
|
+
return { medal: '🟢', status: 'Green - Solid foundation' };
|
|
61
61
|
if (score >= 55)
|
|
62
|
-
return { medal: '🟡', status: '
|
|
63
|
-
|
|
62
|
+
return { medal: '🟡', status: 'Yellow - Needs improvement' };
|
|
63
|
+
if (score > 0)
|
|
64
|
+
return { medal: '🔴', status: 'Red - AI working blind' };
|
|
65
|
+
return { medal: '🤍', status: 'White - Empty' };
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
68
|
* Format score display with Championship Medal System
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-style.js","sourceRoot":"","sources":["../../../src/utils/visual-style.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmBH,8CASC;AAKD,wCAOC;AAKD,
|
|
1
|
+
{"version":3,"file":"visual-style.js","sourceRoot":"","sources":["../../../src/utils/visual-style.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.js
CHANGED
|
@@ -17,18 +17,31 @@ function getVersion() {
|
|
|
17
17
|
if (cachedVersion) {
|
|
18
18
|
return cachedVersion;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
// Try multiple possible locations for package.json
|
|
21
|
+
// - From dist/src (production): ../../package.json
|
|
22
|
+
// - From src (tests): ../package.json
|
|
23
|
+
// - From cwd (fallback): ./package.json
|
|
24
|
+
const possiblePaths = [
|
|
25
|
+
(0, path_1.join)(__dirname, '..', '..', 'package.json'),
|
|
26
|
+
(0, path_1.join)(__dirname, '..', 'package.json'),
|
|
27
|
+
(0, path_1.join)(process.cwd(), 'package.json'),
|
|
28
|
+
];
|
|
29
|
+
for (const packageJsonPath of possiblePaths) {
|
|
30
|
+
try {
|
|
31
|
+
if ((0, fs_1.existsSync)(packageJsonPath)) {
|
|
32
|
+
const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
|
|
33
|
+
if (packageJson.version) {
|
|
34
|
+
cachedVersion = packageJson.version;
|
|
35
|
+
return cachedVersion;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Try next path
|
|
41
|
+
}
|
|
31
42
|
}
|
|
43
|
+
// Fallback if all paths fail
|
|
44
|
+
return 'unknown';
|
|
32
45
|
}
|
|
33
46
|
/**
|
|
34
47
|
* Version constant for convenience
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAaA,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAaA,gCA+BC;AA5CD;;;GAGG;AACH,2BAA8C;AAC9C,+BAA4B;AAE5B,IAAI,aAAa,GAAW,EAAE,CAAC;AAE/B;;;GAGG;AACH,SAAgB,UAAU;IACxB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,mDAAmD;IACnD,mDAAmD;IACnD,sCAAsC;IACtC,wCAAwC;IACxC,MAAM,aAAa,GAAG;QACpB,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;QAC3C,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC;QACrC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;KACpC,CAAC;IAEF,KAAK,MAAM,eAAe,IAAI,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,IAAI,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;gBACvE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;oBACpC,OAAO,aAAa,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACU,QAAA,OAAO,GAAG,UAAU,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "faf-mcp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"mcpName": "io.github.Wolfe-Jam/faf-mcp",
|
|
5
5
|
"description": "faf-mcp | use>faf • IANA-registered format (application/vnd.faf+yaml) • Universal MCP server for Cursor, Windsurf, Cline, VS Code, and all platforms",
|
|
6
6
|
"icon": "./assets/icons/faf-icon-256.png",
|
|
@@ -100,8 +100,10 @@
|
|
|
100
100
|
"access": "public"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
104
|
-
"
|
|
103
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
104
|
+
"cors": "^2.8.5",
|
|
105
|
+
"express": "^4.21.0",
|
|
106
|
+
"faf-cli": ">=4.4.0",
|
|
105
107
|
"yaml": "^2.4.1"
|
|
106
108
|
},
|
|
107
109
|
"devDependencies": {
|
package/project.faf
CHANGED
|
@@ -4,16 +4,13 @@ ai_score: 85%
|
|
|
4
4
|
ai_confidence: HIGH
|
|
5
5
|
ai_value: 30_seconds_replaces_20_minutes_of_questions
|
|
6
6
|
ai_tldr:
|
|
7
|
-
project: faf-mcp - "USE>FAF™ - IANA-registered format (application/vnd.faf+yaml)
|
|
8
|
-
• Universal AI context • MCP server for all platforms • Start with 'Use
|
|
9
|
-
FAF'"
|
|
7
|
+
project: faf-mcp - "USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal AI context • MCP server for all platforms • Start with 'Use FAF'"
|
|
10
8
|
stack: CLI/TypeScript/TypeScript (tsc)/npm registry/Node.js
|
|
11
9
|
quality_bar: ZERO_ERRORS_F1_STANDARDS
|
|
12
10
|
current_focus: Production deployment preparation
|
|
13
11
|
your_role: Build features with perfect context
|
|
14
12
|
instant_context:
|
|
15
|
-
what_building: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) •
|
|
16
|
-
Universal AI context • MCP server for all platforms • Start with 'Use FAF'
|
|
13
|
+
what_building: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal AI context • MCP server for all platforms • Start with 'Use FAF'
|
|
17
14
|
tech_stack: CLI/TypeScript/TypeScript (tsc)/npm registry/Node.js
|
|
18
15
|
main_language: TypeScript
|
|
19
16
|
deployment: npm registry
|
|
@@ -27,8 +24,7 @@ context_quality:
|
|
|
27
24
|
missing_context: []
|
|
28
25
|
project:
|
|
29
26
|
name: faf-mcp
|
|
30
|
-
goal: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal
|
|
31
|
-
AI context • MCP server for all platforms • Start with 'Use FAF'
|
|
27
|
+
goal: USE>FAF™ - IANA-registered format (application/vnd.faf+yaml) • Universal AI context • MCP server for all platforms • Start with 'Use FAF'
|
|
32
28
|
main_language: TypeScript
|
|
33
29
|
type: cli-ts
|
|
34
30
|
generated: 2025-11-13T20:02:03.291Z
|
|
@@ -36,8 +32,7 @@ project:
|
|
|
36
32
|
revolution: 30 seconds replaces 20 minutes of questions
|
|
37
33
|
brand: F1-Inspired Software Engineering - Championship AI Context
|
|
38
34
|
ai_instructions:
|
|
39
|
-
how_to_start: Just USE FAF - Start every prompt with 'Use FAF to...' and MCP
|
|
40
|
-
tools handle the rest
|
|
35
|
+
how_to_start: Just USE FAF - Start every prompt with 'Use FAF to...' and MCP tools handle the rest
|
|
41
36
|
priority_order:
|
|
42
37
|
- 1. Read THIS .faf file first
|
|
43
38
|
- 2. Check CLAUDE.md for session context
|
|
@@ -83,10 +78,10 @@ preferences:
|
|
|
83
78
|
documentation: as_needed
|
|
84
79
|
state:
|
|
85
80
|
phase: development
|
|
86
|
-
version:
|
|
87
|
-
focus:
|
|
81
|
+
version: 2.0.0
|
|
82
|
+
focus: interop_mcp_for_context
|
|
88
83
|
status: green_flag
|
|
89
|
-
next_milestone:
|
|
84
|
+
next_milestone: npm_publish_v2
|
|
90
85
|
blockers: null
|
|
91
86
|
tags:
|
|
92
87
|
auto_generated:
|
|
@@ -105,12 +100,12 @@ tags:
|
|
|
105
100
|
user_defined: null
|
|
106
101
|
human_context:
|
|
107
102
|
who: Developers using Claude, Cursor, Windsurf, VS Code, Cline, and any MCP-compatible IDE
|
|
108
|
-
what: Universal MCP server providing .faf context tools -
|
|
103
|
+
what: Universal MCP server providing .faf context tools - 61 tools (25 core + 36 advanced), interop with AGENTS.md, .cursorrules, GEMINI.md
|
|
109
104
|
why: Eliminate the 20-minute AI context tax - give AI instant project understanding in 30 seconds
|
|
110
105
|
where: npm registry, MCP ecosystem, Claude Desktop, Cursor IDE, Windsurf Editor
|
|
111
|
-
when: Production/Stable -
|
|
106
|
+
when: Production/Stable - v2.0.0 WJTTC certified (309/309 tests, 9 suites)
|
|
112
107
|
how: npx faf-mcp or npm install -g faf-mcp, then add to your MCP config
|
|
113
|
-
additional_context: IANA-registered format (application/vnd.faf+yaml),
|
|
108
|
+
additional_context: IANA-registered format (application/vnd.faf+yaml), The Interop MCP for Context, HTTP-SSE transport for Cursor/Windsurf/Cline
|
|
114
109
|
context_score: 100
|
|
115
110
|
total_prd_score: 100
|
|
116
111
|
success_rate: 100%
|
|
@@ -128,9 +123,7 @@ faf_dna:
|
|
|
128
123
|
birth_date: 2025-11-13T20:02:03.306Z
|
|
129
124
|
current_score: 83
|
|
130
125
|
projectName: faf-mcp
|
|
131
|
-
projectGoal: faf-mcp | use>faf • IANA-registered format
|
|
132
|
-
(application/vnd.faf+yaml) • Universal MCP server for Cursor, Windsurf, Cline,
|
|
133
|
-
VS Code, and all platforms
|
|
126
|
+
projectGoal: faf-mcp | use>faf • IANA-registered format (application/vnd.faf+yaml) • Universal MCP server for Cursor, Windsurf, Cline, VS Code, and all platforms
|
|
134
127
|
generated: 2025-12-18T20:38:25.477Z
|
|
135
128
|
stack_signature: typescript-nodejs-javascript
|
|
136
129
|
detected_frameworks:
|
|
@@ -144,3 +137,6 @@ turbo_cat_intelligence: 360
|
|
|
144
137
|
stats:
|
|
145
138
|
last_auto_time: 0.6
|
|
146
139
|
times_run: 1
|
|
140
|
+
metadata:
|
|
141
|
+
last_claude_sync: 2026-03-07T17:36:56.430Z
|
|
142
|
+
bi_sync: active
|
package/dist/index.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"note":"Placeholder for Vercel build"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/compiler/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,mDAAiC;AACjC,2CAAyB"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compiler Engine Scorer - FAF Compiler Engine MK3
|
|
3
|
-
* Championship-grade scoring with context-aware metrics
|
|
4
|
-
*/
|
|
5
|
-
export interface ScoringResult {
|
|
6
|
-
score: number;
|
|
7
|
-
medal: 'trophy' | 'gold' | 'silver' | 'bronze' | 'red' | 'white';
|
|
8
|
-
emoji: string;
|
|
9
|
-
message: string;
|
|
10
|
-
breakdown: {
|
|
11
|
-
totalSlots: 21;
|
|
12
|
-
relevantSlots: number;
|
|
13
|
-
filledSlots: number;
|
|
14
|
-
ignoredSlots: number;
|
|
15
|
-
};
|
|
16
|
-
nextMilestone: {
|
|
17
|
-
targetScore: number;
|
|
18
|
-
medal: string;
|
|
19
|
-
emoji: string;
|
|
20
|
-
slotsNeeded: number;
|
|
21
|
-
message: string;
|
|
22
|
-
} | null;
|
|
23
|
-
}
|
|
24
|
-
export declare class CompilerEngineScorer {
|
|
25
|
-
/**
|
|
26
|
-
* Calculate score with slotignore support
|
|
27
|
-
*/
|
|
28
|
-
calculateScore(filledSlots: number, relevantSlots: number, slotignore: string[]): ScoringResult;
|
|
29
|
-
/**
|
|
30
|
-
* Determine medal from score
|
|
31
|
-
*/
|
|
32
|
-
private getMedal;
|
|
33
|
-
/**
|
|
34
|
-
* Get medal emoji
|
|
35
|
-
*/
|
|
36
|
-
private getMedalEmoji;
|
|
37
|
-
/**
|
|
38
|
-
* Generate contextual message
|
|
39
|
-
*/
|
|
40
|
-
private getMessage;
|
|
41
|
-
/**
|
|
42
|
-
* Calculate next milestone
|
|
43
|
-
*/
|
|
44
|
-
private getNextMilestone;
|
|
45
|
-
/**
|
|
46
|
-
* Format scoring result as human-readable text
|
|
47
|
-
*/
|
|
48
|
-
formatResult(result: ScoringResult, projectType?: string): string;
|
|
49
|
-
/**
|
|
50
|
-
* Generate actionable suggestions based on score
|
|
51
|
-
*/
|
|
52
|
-
generateSuggestions(score: number, _medal: string, _missingSlots: string[]): string[];
|
|
53
|
-
}
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Compiler Engine Scorer - FAF Compiler Engine MK3
|
|
4
|
-
* Championship-grade scoring with context-aware metrics
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.CompilerEngineScorer = void 0;
|
|
8
|
-
class CompilerEngineScorer {
|
|
9
|
-
/**
|
|
10
|
-
* Calculate score with slotignore support
|
|
11
|
-
*/
|
|
12
|
-
calculateScore(filledSlots, relevantSlots, slotignore) {
|
|
13
|
-
// Calculate score: (filled / relevant) * 100
|
|
14
|
-
const score = Math.round((filledSlots / relevantSlots) * 100);
|
|
15
|
-
// Determine medal
|
|
16
|
-
const medal = this.getMedal(score);
|
|
17
|
-
const emoji = this.getMedalEmoji(medal);
|
|
18
|
-
// Generate message
|
|
19
|
-
const message = this.getMessage(score, filledSlots, relevantSlots, medal);
|
|
20
|
-
// Calculate next milestone
|
|
21
|
-
const nextMilestone = this.getNextMilestone(score, filledSlots, relevantSlots);
|
|
22
|
-
return {
|
|
23
|
-
score,
|
|
24
|
-
medal,
|
|
25
|
-
emoji,
|
|
26
|
-
message,
|
|
27
|
-
breakdown: {
|
|
28
|
-
totalSlots: 21,
|
|
29
|
-
relevantSlots,
|
|
30
|
-
filledSlots,
|
|
31
|
-
ignoredSlots: slotignore.length,
|
|
32
|
-
},
|
|
33
|
-
nextMilestone,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Determine medal from score
|
|
38
|
-
*/
|
|
39
|
-
getMedal(score) {
|
|
40
|
-
if (score >= 85)
|
|
41
|
-
return 'trophy'; // Championship grade
|
|
42
|
-
if (score >= 70)
|
|
43
|
-
return 'gold'; // Podium grade
|
|
44
|
-
if (score >= 55)
|
|
45
|
-
return 'silver'; // Strong
|
|
46
|
-
if (score >= 40)
|
|
47
|
-
return 'bronze'; // Decent
|
|
48
|
-
if (score >= 20)
|
|
49
|
-
return 'red'; // Needs work
|
|
50
|
-
return 'white'; // Just started
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Get medal emoji
|
|
54
|
-
*/
|
|
55
|
-
getMedalEmoji(medal) {
|
|
56
|
-
switch (medal) {
|
|
57
|
-
case 'trophy': return '🏆';
|
|
58
|
-
case 'gold': return '🥇';
|
|
59
|
-
case 'silver': return '🥈';
|
|
60
|
-
case 'bronze': return '🥉';
|
|
61
|
-
case 'red': return '🔴';
|
|
62
|
-
case 'white': return '🤍';
|
|
63
|
-
default: return '⚪';
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Generate contextual message
|
|
68
|
-
*/
|
|
69
|
-
getMessage(score, filled, relevant, medal) {
|
|
70
|
-
if (score === 100) {
|
|
71
|
-
return `Perfect ${medal === 'trophy' ? 'Championship' : 'Project'} DNA! All ${filled}/${relevant} relevant slots filled.`;
|
|
72
|
-
}
|
|
73
|
-
if (score >= 85) {
|
|
74
|
-
return `Championship grade! ${filled}/${relevant} slots filled. Podium performance!`;
|
|
75
|
-
}
|
|
76
|
-
if (score >= 70) {
|
|
77
|
-
return `Podium grade! ${filled}/${relevant} slots filled. Strong AI context.`;
|
|
78
|
-
}
|
|
79
|
-
if (score >= 55) {
|
|
80
|
-
return `Solid foundation. ${filled}/${relevant} slots filled. Keep going!`;
|
|
81
|
-
}
|
|
82
|
-
if (score >= 40) {
|
|
83
|
-
return `Decent start. ${filled}/${relevant} slots filled. Room for improvement.`;
|
|
84
|
-
}
|
|
85
|
-
if (score >= 20) {
|
|
86
|
-
return `Getting started. ${filled}/${relevant} slots filled. Focus on core context.`;
|
|
87
|
-
}
|
|
88
|
-
return `Just beginning. ${filled}/${relevant} slots filled. Add project basics first.`;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Calculate next milestone
|
|
92
|
-
*/
|
|
93
|
-
getNextMilestone(score, filled, relevant) {
|
|
94
|
-
// Already at 100%
|
|
95
|
-
if (score === 100) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
// Define milestones
|
|
99
|
-
const milestones = [
|
|
100
|
-
{ threshold: 85, name: 'trophy', emoji: '🏆', label: 'Championship Grade' },
|
|
101
|
-
{ threshold: 70, name: 'gold', emoji: '🥇', label: 'Podium Grade' },
|
|
102
|
-
{ threshold: 55, name: 'silver', emoji: '🥈', label: 'Solid Foundation' },
|
|
103
|
-
{ threshold: 40, name: 'bronze', emoji: '🥉', label: 'Decent Start' },
|
|
104
|
-
{ threshold: 20, name: 'red', emoji: '🔴', label: 'Getting Started' },
|
|
105
|
-
];
|
|
106
|
-
// Find next milestone
|
|
107
|
-
const nextMilestone = milestones.find(m => score < m.threshold);
|
|
108
|
-
if (!nextMilestone) {
|
|
109
|
-
// Already above all milestones, aim for 100%
|
|
110
|
-
const slotsNeeded = relevant - filled;
|
|
111
|
-
return {
|
|
112
|
-
targetScore: 100,
|
|
113
|
-
medal: 'trophy',
|
|
114
|
-
emoji: '🏆',
|
|
115
|
-
slotsNeeded,
|
|
116
|
-
message: `Fill ${slotsNeeded} more slot${slotsNeeded === 1 ? '' : 's'} to reach 100% (Perfect!)`,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
// Calculate slots needed
|
|
120
|
-
const targetFilled = Math.ceil((nextMilestone.threshold / 100) * relevant);
|
|
121
|
-
const slotsNeeded = Math.max(1, targetFilled - filled);
|
|
122
|
-
return {
|
|
123
|
-
targetScore: nextMilestone.threshold,
|
|
124
|
-
medal: nextMilestone.name,
|
|
125
|
-
emoji: nextMilestone.emoji,
|
|
126
|
-
slotsNeeded,
|
|
127
|
-
message: `Fill ${slotsNeeded} more slot${slotsNeeded === 1 ? '' : 's'} to reach ${nextMilestone.threshold}% (${nextMilestone.label})`,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Format scoring result as human-readable text
|
|
132
|
-
*/
|
|
133
|
-
formatResult(result, projectType) {
|
|
134
|
-
const lines = [];
|
|
135
|
-
// Header
|
|
136
|
-
lines.push(`${result.emoji} Score: ${result.score}%`);
|
|
137
|
-
lines.push('');
|
|
138
|
-
// Message
|
|
139
|
-
lines.push(result.message);
|
|
140
|
-
lines.push('');
|
|
141
|
-
// Breakdown
|
|
142
|
-
lines.push('Breakdown:');
|
|
143
|
-
lines.push(` Total Slots: ${result.breakdown.totalSlots}`);
|
|
144
|
-
if (projectType) {
|
|
145
|
-
lines.push(` Project Type: ${projectType}`);
|
|
146
|
-
}
|
|
147
|
-
lines.push(` Relevant Slots: ${result.breakdown.relevantSlots}`);
|
|
148
|
-
lines.push(` Filled Slots: ${result.breakdown.filledSlots}`);
|
|
149
|
-
if (result.breakdown.ignoredSlots > 0) {
|
|
150
|
-
lines.push(` Ignored Slots: ${result.breakdown.ignoredSlots} (not applicable to this project type)`);
|
|
151
|
-
}
|
|
152
|
-
// Next milestone
|
|
153
|
-
if (result.nextMilestone) {
|
|
154
|
-
lines.push('');
|
|
155
|
-
lines.push('Next Milestone:');
|
|
156
|
-
lines.push(` ${result.nextMilestone.emoji} ${result.nextMilestone.message}`);
|
|
157
|
-
}
|
|
158
|
-
return lines.join('\n');
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Generate actionable suggestions based on score
|
|
162
|
-
*/
|
|
163
|
-
generateSuggestions(score, _medal, _missingSlots) {
|
|
164
|
-
const suggestions = [];
|
|
165
|
-
if (score < 40) {
|
|
166
|
-
suggestions.push('Start with core slots: project_identity, language, human_context');
|
|
167
|
-
suggestions.push('Add basic documentation: README.md, CLAUDE.md');
|
|
168
|
-
}
|
|
169
|
-
if (score >= 40 && score < 70) {
|
|
170
|
-
suggestions.push('Fill in your tech stack details (frontend, backend, database)');
|
|
171
|
-
suggestions.push('Add build and deployment information');
|
|
172
|
-
}
|
|
173
|
-
if (score >= 70 && score < 85) {
|
|
174
|
-
suggestions.push('Complete architecture details (auth, storage, caching)');
|
|
175
|
-
suggestions.push('Add team workflow and CI/CD information');
|
|
176
|
-
}
|
|
177
|
-
if (score >= 85 && score < 100) {
|
|
178
|
-
suggestions.push('Polish remaining slots for championship grade');
|
|
179
|
-
suggestions.push('Ensure all documentation is up to date');
|
|
180
|
-
}
|
|
181
|
-
if (score === 100) {
|
|
182
|
-
suggestions.push('Perfect! Consider sharing your .faf with the community');
|
|
183
|
-
suggestions.push('Keep it updated as your project evolves');
|
|
184
|
-
}
|
|
185
|
-
return suggestions;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
exports.CompilerEngineScorer = CompilerEngineScorer;
|
|
189
|
-
//# sourceMappingURL=scorer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../../src/compiler/scorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Slot Validator - FAF Compiler Engine MK3
|
|
3
|
-
* Championship-grade slot validation with .faf content analysis
|
|
4
|
-
*/
|
|
5
|
-
import { ValidationResult } from '../types/slots';
|
|
6
|
-
import { ProjectType } from '../types/project-types';
|
|
7
|
-
export declare class SlotValidator {
|
|
8
|
-
/**
|
|
9
|
-
* Validate all slots against project type
|
|
10
|
-
*/
|
|
11
|
-
validate(fafContent: any, projectType: ProjectType): ValidationResult;
|
|
12
|
-
/**
|
|
13
|
-
* Check if a specific slot is filled in .faf content
|
|
14
|
-
*/
|
|
15
|
-
private isSlotFilled;
|
|
16
|
-
/**
|
|
17
|
-
* Get the value of a slot from .faf content
|
|
18
|
-
*/
|
|
19
|
-
private getSlotValue;
|
|
20
|
-
/**
|
|
21
|
-
* Helper: Check if fafContent has a specific framework
|
|
22
|
-
*/
|
|
23
|
-
private hasFramework;
|
|
24
|
-
/**
|
|
25
|
-
* Determine medal from score
|
|
26
|
-
*/
|
|
27
|
-
private getMedal;
|
|
28
|
-
/**
|
|
29
|
-
* Load and parse .faf file from directory
|
|
30
|
-
*/
|
|
31
|
-
static loadFafFile(projectPath: string): Promise<any | null>;
|
|
32
|
-
}
|