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.
Files changed (100) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/CLAUDE.md +5 -5
  3. package/README.md +70 -14
  4. package/assets/thumbnail.png +0 -0
  5. package/dist/src/faf-core/commands/agents.d.ts +29 -0
  6. package/dist/src/faf-core/commands/agents.js +140 -0
  7. package/dist/src/faf-core/commands/agents.js.map +1 -0
  8. package/dist/src/faf-core/commands/bi-sync.d.ts +9 -5
  9. package/dist/src/faf-core/commands/bi-sync.js +89 -85
  10. package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
  11. package/dist/src/faf-core/commands/conductor.d.ts +25 -0
  12. package/dist/src/faf-core/commands/conductor.js +157 -0
  13. package/dist/src/faf-core/commands/conductor.js.map +1 -0
  14. package/dist/src/faf-core/commands/cursor.d.ts +29 -0
  15. package/dist/src/faf-core/commands/cursor.js +134 -0
  16. package/dist/src/faf-core/commands/cursor.js.map +1 -0
  17. package/dist/src/faf-core/commands/gemini.d.ts +29 -0
  18. package/dist/src/faf-core/commands/gemini.js +133 -0
  19. package/dist/src/faf-core/commands/gemini.js.map +1 -0
  20. package/dist/src/faf-core/commands/git-context.d.ts +23 -0
  21. package/dist/src/faf-core/commands/git-context.js +66 -0
  22. package/dist/src/faf-core/commands/git-context.js.map +1 -0
  23. package/dist/src/faf-core/commands/human.d.ts +27 -0
  24. package/dist/src/faf-core/commands/human.js +183 -0
  25. package/dist/src/faf-core/commands/human.js.map +1 -0
  26. package/dist/src/faf-core/commands/readme.d.ts +47 -0
  27. package/dist/src/faf-core/commands/readme.js +361 -0
  28. package/dist/src/faf-core/commands/readme.js.map +1 -0
  29. package/dist/src/faf-core/engines/fab-formats-processor.js +3 -3
  30. package/dist/src/faf-core/engines/fab-formats-processor.js.map +1 -1
  31. package/dist/src/faf-core/engines/faf-dna.d.ts +1 -1
  32. package/dist/src/faf-core/engines/faf-dna.js +4 -3
  33. package/dist/src/faf-core/engines/faf-dna.js.map +1 -1
  34. package/dist/src/faf-core/generators/faf-generator-championship.js +9 -8
  35. package/dist/src/faf-core/generators/faf-generator-championship.js.map +1 -1
  36. package/dist/src/faf-core/parsers/agents-parser.d.ts +59 -0
  37. package/dist/src/faf-core/parsers/agents-parser.js +324 -0
  38. package/dist/src/faf-core/parsers/agents-parser.js.map +1 -0
  39. package/dist/src/faf-core/parsers/conductor-parser.d.ts +85 -0
  40. package/dist/src/faf-core/parsers/conductor-parser.js +293 -0
  41. package/dist/src/faf-core/parsers/conductor-parser.js.map +1 -0
  42. package/dist/src/faf-core/parsers/cursorrules-parser.d.ts +57 -0
  43. package/dist/src/faf-core/parsers/cursorrules-parser.js +317 -0
  44. package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -0
  45. package/dist/src/faf-core/parsers/faf-git-generator.d.ts +53 -0
  46. package/dist/src/faf-core/parsers/faf-git-generator.js +512 -0
  47. package/dist/src/faf-core/parsers/faf-git-generator.js.map +1 -0
  48. package/dist/src/faf-core/parsers/gemini-parser.d.ts +57 -0
  49. package/dist/src/faf-core/parsers/gemini-parser.js +263 -0
  50. package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -0
  51. package/dist/src/faf-core/parsers/github-extractor.d.ts +61 -0
  52. package/dist/src/faf-core/parsers/github-extractor.js +374 -0
  53. package/dist/src/faf-core/parsers/github-extractor.js.map +1 -0
  54. package/dist/src/faf-core/parsers/index.d.ts +12 -0
  55. package/dist/src/{compiler โ†’ faf-core/parsers}/index.js +10 -5
  56. package/dist/src/faf-core/parsers/index.js.map +1 -0
  57. package/dist/src/faf-core/parsers/slot-counter.d.ts +55 -0
  58. package/dist/src/faf-core/parsers/slot-counter.js +100 -0
  59. package/dist/src/faf-core/parsers/slot-counter.js.map +1 -0
  60. package/dist/src/faf-core/utils/balance-visualizer.js +3 -3
  61. package/dist/src/faf-core/utils/balance-visualizer.js.map +1 -1
  62. package/dist/src/handlers/championship-tools.d.ts +10 -5
  63. package/dist/src/handlers/championship-tools.js +259 -232
  64. package/dist/src/handlers/championship-tools.js.map +1 -1
  65. package/dist/src/handlers/engine-adapter.js +238 -5
  66. package/dist/src/handlers/engine-adapter.js.map +1 -1
  67. package/dist/src/handlers/tools.d.ts +61 -0
  68. package/dist/src/handlers/tools.js +2103 -102
  69. package/dist/src/handlers/tools.js.map +1 -1
  70. package/dist/src/index.js +0 -0
  71. package/dist/src/types/tool-visibility.js +51 -10
  72. package/dist/src/types/tool-visibility.js.map +1 -1
  73. package/dist/src/utils/championship-format.js +11 -9
  74. package/dist/src/utils/championship-format.js.map +1 -1
  75. package/dist/src/utils/path-resolver.js +56 -2
  76. package/dist/src/utils/path-resolver.js.map +1 -1
  77. package/dist/src/utils/visual-style.js +7 -5
  78. package/dist/src/utils/visual-style.js.map +1 -1
  79. package/dist/src/version.js +24 -11
  80. package/dist/src/version.js.map +1 -1
  81. package/package.json +5 -3
  82. package/project.faf +14 -18
  83. package/dist/index.json +0 -1
  84. package/dist/src/compiler/index.d.ts +0 -7
  85. package/dist/src/compiler/index.js.map +0 -1
  86. package/dist/src/compiler/scorer.d.ts +0 -53
  87. package/dist/src/compiler/scorer.js +0 -189
  88. package/dist/src/compiler/scorer.js.map +0 -1
  89. package/dist/src/compiler/slot-validator.d.ts +0 -32
  90. package/dist/src/compiler/slot-validator.js +0 -293
  91. package/dist/src/compiler/slot-validator.js.map +0 -1
  92. package/dist/src/compiler/type-detector.d.ts +0 -62
  93. package/dist/src/compiler/type-detector.js +0 -388
  94. package/dist/src/compiler/type-detector.js.map +0 -1
  95. package/dist/src/types/project-types.d.ts +0 -22
  96. package/dist/src/types/project-types.js +0 -85
  97. package/dist/src/types/project-types.js.map +0 -1
  98. package/dist/src/types/slots.d.ts +0 -39
  99. package/dist/src/types/slots.js +0 -162
  100. package/dist/src/types/slots.js.map +0 -1
@@ -0,0 +1,374 @@
1
+ "use strict";
2
+ /**
3
+ * GitHub Repository Metadata Extractor
4
+ *
5
+ * Fetches rich metadata from GitHub repos without cloning.
6
+ * Uses GitHub API v3 (no auth needed for public repos, 60 req/hr limit).
7
+ *
8
+ * Ported from faf-cli for claude-faf-mcp v4.5.0
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.parseGitHubUrl = parseGitHubUrl;
12
+ exports.fetchGitHubMetadata = fetchGitHubMetadata;
13
+ exports.fetchGitHubFileTree = fetchGitHubFileTree;
14
+ exports.fetchGitHubFileContent = fetchGitHubFileContent;
15
+ exports.detectStackFromMetadata = detectStackFromMetadata;
16
+ exports.calculateRepoQualityScore = calculateRepoQualityScore;
17
+ /**
18
+ * Build GitHub API headers, with auth token if available
19
+ */
20
+ function githubHeaders() {
21
+ const headers = {
22
+ 'Accept': 'application/vnd.github.v3+json',
23
+ 'User-Agent': 'claude-faf-mcp',
24
+ };
25
+ const token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
26
+ if (token) {
27
+ headers['Authorization'] = `token ${token}`;
28
+ }
29
+ return headers;
30
+ }
31
+ /**
32
+ * Parse GitHub URL to extract owner and repo
33
+ */
34
+ function parseGitHubUrl(url) {
35
+ try {
36
+ // Handle different URL formats:
37
+ // https://github.com/owner/repo
38
+ // github.com/owner/repo
39
+ // owner/repo
40
+ // Strip query parameters and hash fragments first
41
+ const cleanedUrl = url.split('?')[0].split('#')[0];
42
+ // First, check if it's actually a GitHub URL (if it contains a domain)
43
+ if (cleanedUrl.includes('://') || cleanedUrl.includes('.com')) {
44
+ // Extract domain to validate it's GitHub
45
+ const domainMatch = cleanedUrl.match(/^(?:https?:\/\/)?(?:www\.)?([^/]+)/);
46
+ if (domainMatch && domainMatch[1] !== 'github.com') {
47
+ return null; // Not a GitHub URL
48
+ }
49
+ }
50
+ // Clean the URL: remove protocol and GitHub domain (with or without www)
51
+ const cleanUrl = cleanedUrl
52
+ .replace(/^https?:\/\//, '')
53
+ .replace(/^www\./, '')
54
+ .replace(/^github\.com\//, '');
55
+ const parts = cleanUrl.split('/').filter(Boolean);
56
+ if (parts.length >= 2) {
57
+ const owner = parts[0];
58
+ let repo = parts[1];
59
+ // Strip .git extension if present
60
+ repo = repo.replace(/\.git$/, '');
61
+ return { owner, repo };
62
+ }
63
+ return null;
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ }
69
+ /**
70
+ * Fetch repository metadata from GitHub API
71
+ * (No auth required for public repos, 60 requests/hour limit)
72
+ */
73
+ async function fetchGitHubMetadata(owner, repo, includeFiles = false) {
74
+ const apiUrl = `https://api.github.com/repos/${owner}/${repo}`;
75
+ try {
76
+ const response = await fetch(apiUrl, {
77
+ headers: githubHeaders()
78
+ });
79
+ if (!response.ok) {
80
+ if (response.status === 404) {
81
+ throw new Error(`Repository ${owner}/${repo} not found`);
82
+ }
83
+ if (response.status === 403) {
84
+ throw new Error('GitHub API rate limit exceeded. Try again later or set GITHUB_TOKEN.');
85
+ }
86
+ throw new Error(`GitHub API error: ${response.status} ${response.statusText}`);
87
+ }
88
+ const data = await response.json();
89
+ // Extract metadata
90
+ const metadata = {
91
+ owner,
92
+ repo,
93
+ url: `https://github.com/${owner}/${repo}`,
94
+ description: data.description || undefined,
95
+ topics: data.topics || undefined,
96
+ stars: formatNumber(data.stargazers_count),
97
+ forks: formatNumber(data.forks_count),
98
+ license: data.license?.spdx_id || data.license?.name || undefined,
99
+ lastUpdated: data.updated_at || data.pushed_at || undefined,
100
+ defaultBranch: data.default_branch || 'main',
101
+ openIssues: data.open_issues_count || 0,
102
+ watchers: data.watchers_count || 0,
103
+ };
104
+ // Fetch language breakdown
105
+ if (data.languages_url) {
106
+ const langResponse = await fetch(data.languages_url, {
107
+ headers: githubHeaders()
108
+ });
109
+ if (langResponse.ok) {
110
+ const languages = await langResponse.json();
111
+ const total = Object.values(languages).reduce((sum, bytes) => sum + bytes, 0);
112
+ metadata.languages = Object.entries(languages)
113
+ .map(([lang, bytes]) => {
114
+ const percentage = ((bytes / total) * 100).toFixed(1);
115
+ return `${lang} (${percentage}%)`;
116
+ })
117
+ .sort((a, b) => {
118
+ const aPercent = parseFloat(a.match(/\((.+)%\)/)?.[1] || '0');
119
+ const bPercent = parseFloat(b.match(/\((.+)%\)/)?.[1] || '0');
120
+ return bPercent - aPercent;
121
+ });
122
+ }
123
+ }
124
+ // Check for common files (if requested)
125
+ if (includeFiles) {
126
+ const fileChecks = await Promise.allSettled([
127
+ checkFileExists(owner, repo, 'README.md', metadata.defaultBranch),
128
+ checkFileExists(owner, repo, 'package.json', metadata.defaultBranch),
129
+ checkFileExists(owner, repo, 'tsconfig.json', metadata.defaultBranch),
130
+ checkFileExists(owner, repo, 'Dockerfile', metadata.defaultBranch),
131
+ ]);
132
+ metadata.readme = fileChecks[0].status === 'fulfilled' && fileChecks[0].value;
133
+ metadata.hasPackageJson = fileChecks[1].status === 'fulfilled' && fileChecks[1].value;
134
+ metadata.hasTsConfig = fileChecks[2].status === 'fulfilled' && fileChecks[2].value;
135
+ metadata.hasDockerfile = fileChecks[3].status === 'fulfilled' && fileChecks[3].value;
136
+ }
137
+ return metadata;
138
+ }
139
+ catch (error) {
140
+ if (error instanceof Error) {
141
+ throw error;
142
+ }
143
+ throw new Error(`Failed to fetch GitHub metadata: ${String(error)}`);
144
+ }
145
+ }
146
+ /**
147
+ * Check if a file exists in the repository
148
+ */
149
+ async function checkFileExists(owner, repo, filePath, branch = 'main') {
150
+ const url = `https://api.github.com/repos/${owner}/${repo}/contents/${filePath}?ref=${branch}`;
151
+ try {
152
+ const response = await fetch(url, {
153
+ headers: githubHeaders()
154
+ });
155
+ return response.ok;
156
+ }
157
+ catch {
158
+ return false;
159
+ }
160
+ }
161
+ /**
162
+ * Fetch repository file tree
163
+ */
164
+ async function fetchGitHubFileTree(owner, repo, branch = 'main', treePath = '') {
165
+ const url = `https://api.github.com/repos/${owner}/${repo}/contents/${treePath}?ref=${branch}`;
166
+ try {
167
+ const response = await fetch(url, {
168
+ headers: githubHeaders()
169
+ });
170
+ if (!response.ok) {
171
+ throw new Error(`Failed to fetch file tree: ${response.status}`);
172
+ }
173
+ const data = await response.json();
174
+ // API returns an array for directories, object for files
175
+ const items = Array.isArray(data) ? data : [data];
176
+ return items.map((item) => ({
177
+ path: item.path,
178
+ type: item.type === 'dir' ? 'dir' : 'file',
179
+ size: item.size,
180
+ url: item.html_url,
181
+ }));
182
+ }
183
+ catch {
184
+ return [];
185
+ }
186
+ }
187
+ /**
188
+ * Format large numbers with K/M suffix
189
+ */
190
+ function formatNumber(num) {
191
+ if (num >= 1_000_000) {
192
+ return `${(num / 1_000_000).toFixed(1)}M`;
193
+ }
194
+ if (num >= 1_000) {
195
+ return `${(num / 1_000).toFixed(1)}K`;
196
+ }
197
+ return num.toString();
198
+ }
199
+ /**
200
+ * Fetch file content from GitHub repository
201
+ */
202
+ async function fetchGitHubFileContent(owner, repo, filePath, branch = 'main') {
203
+ const url = `https://api.github.com/repos/${owner}/${repo}/contents/${filePath}?ref=${branch}`;
204
+ try {
205
+ const response = await fetch(url, {
206
+ headers: githubHeaders()
207
+ });
208
+ if (!response.ok) {
209
+ return null;
210
+ }
211
+ const data = await response.json();
212
+ // GitHub API returns base64-encoded content
213
+ if (data.content && data.encoding === 'base64') {
214
+ return Buffer.from(data.content, 'base64').toString('utf-8');
215
+ }
216
+ return null;
217
+ }
218
+ catch {
219
+ return null;
220
+ }
221
+ }
222
+ /**
223
+ * Detect framework/stack from repository metadata
224
+ */
225
+ function detectStackFromMetadata(metadata) {
226
+ const stacks = [];
227
+ // From topics
228
+ if (metadata.topics) {
229
+ const topicMap = {
230
+ 'react': 'React',
231
+ 'nextjs': 'Next.js',
232
+ 'vue': 'Vue',
233
+ 'svelte': 'Svelte',
234
+ 'angular': 'Angular',
235
+ 'typescript': 'TypeScript',
236
+ 'javascript': 'JavaScript',
237
+ 'nodejs': 'Node.js',
238
+ 'docker': 'Docker',
239
+ 'kubernetes': 'Kubernetes',
240
+ };
241
+ for (const topic of metadata.topics) {
242
+ const normalized = topic.toLowerCase();
243
+ if (topicMap[normalized]) {
244
+ stacks.push(topicMap[normalized]);
245
+ }
246
+ }
247
+ }
248
+ // From languages
249
+ if (metadata.languages) {
250
+ for (const lang of metadata.languages) {
251
+ const language = lang.split(' ')[0]; // Extract "TypeScript" from "TypeScript (85.3%)"
252
+ if (!stacks.includes(language)) {
253
+ stacks.push(language);
254
+ }
255
+ }
256
+ }
257
+ // From file presence
258
+ if (metadata.hasPackageJson) {
259
+ if (!stacks.includes('Node.js')) {
260
+ stacks.push('Node.js');
261
+ }
262
+ }
263
+ if (metadata.hasTsConfig) {
264
+ if (!stacks.includes('TypeScript')) {
265
+ stacks.push('TypeScript');
266
+ }
267
+ }
268
+ if (metadata.hasDockerfile) {
269
+ if (!stacks.includes('Docker')) {
270
+ stacks.push('Docker');
271
+ }
272
+ }
273
+ return stacks;
274
+ }
275
+ /**
276
+ * Generate quality score based on metadata
277
+ */
278
+ function calculateRepoQualityScore(metadata) {
279
+ let score = 0;
280
+ // Stars (max 30 points)
281
+ const stars = parseStars(metadata.stars);
282
+ if (stars >= 10000) {
283
+ score += 30;
284
+ }
285
+ else if (stars >= 5000) {
286
+ score += 25;
287
+ }
288
+ else if (stars >= 1000) {
289
+ score += 20;
290
+ }
291
+ else if (stars >= 500) {
292
+ score += 15;
293
+ }
294
+ else if (stars >= 100) {
295
+ score += 10;
296
+ }
297
+ else if (stars >= 10) {
298
+ score += 5;
299
+ }
300
+ // Has description (10 points)
301
+ if (metadata.description && metadata.description.length > 10) {
302
+ score += 10;
303
+ }
304
+ // Has topics (10 points)
305
+ if (metadata.topics && metadata.topics.length > 0) {
306
+ score += 10;
307
+ }
308
+ // Has license (10 points)
309
+ if (metadata.license) {
310
+ score += 10;
311
+ }
312
+ // Has README (10 points)
313
+ if (metadata.readme) {
314
+ score += 10;
315
+ }
316
+ // Recent activity (10 points)
317
+ if (metadata.lastUpdated) {
318
+ const lastUpdate = new Date(metadata.lastUpdated);
319
+ const now = new Date();
320
+ const daysSinceUpdate = (now.getTime() - lastUpdate.getTime()) / (1000 * 60 * 60 * 24);
321
+ if (daysSinceUpdate < 30) {
322
+ score += 10;
323
+ }
324
+ else if (daysSinceUpdate < 90) {
325
+ score += 7;
326
+ }
327
+ else if (daysSinceUpdate < 180) {
328
+ score += 5;
329
+ }
330
+ else if (daysSinceUpdate < 365) {
331
+ score += 3;
332
+ }
333
+ }
334
+ // Has package.json (5 points)
335
+ if (metadata.hasPackageJson) {
336
+ score += 5;
337
+ }
338
+ // Has TypeScript (5 points)
339
+ if (metadata.hasTsConfig) {
340
+ score += 5;
341
+ }
342
+ // Language diversity (10 points)
343
+ if (metadata.languages) {
344
+ if (metadata.languages.length >= 3) {
345
+ score += 10;
346
+ }
347
+ else if (metadata.languages.length >= 2) {
348
+ score += 5;
349
+ }
350
+ }
351
+ return Math.min(100, score);
352
+ }
353
+ /**
354
+ * Parse star count string to number
355
+ */
356
+ function parseStars(stars) {
357
+ if (!stars) {
358
+ return 0;
359
+ }
360
+ const match = stars.match(/^([\d.]+)([KM]?)$/);
361
+ if (!match) {
362
+ return 0;
363
+ }
364
+ const num = parseFloat(match[1]);
365
+ const suffix = match[2];
366
+ if (suffix === 'K') {
367
+ return num * 1000;
368
+ }
369
+ if (suffix === 'M') {
370
+ return num * 1_000_000;
371
+ }
372
+ return num;
373
+ }
374
+ //# sourceMappingURL=github-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-extractor.js","sourceRoot":"","sources":["../../../../src/faf-core/parsers/github-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Parsers Index - v4.5.0 Interop Edition
3
+ *
4
+ * Re-exports all parser modules for convenient access.
5
+ */
6
+ export * from './agents-parser.js';
7
+ export * from './cursorrules-parser.js';
8
+ export * from './gemini-parser.js';
9
+ export * from './conductor-parser.js';
10
+ export * from './slot-counter.js';
11
+ export * from './github-extractor.js';
12
+ export * from './faf-git-generator.js';
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  /**
3
- * FAF Compiler Engine MK3
4
- * Championship-grade project type detection and scoring
3
+ * Parsers Index - v4.5.0 Interop Edition
4
+ *
5
+ * Re-exports all parser modules for convenient access.
5
6
  */
6
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
8
  if (k2 === undefined) k2 = k;
@@ -18,7 +19,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
20
  };
20
21
  Object.defineProperty(exports, "__esModule", { value: true });
21
- __exportStar(require("./type-detector"), exports);
22
- __exportStar(require("./slot-validator"), exports);
23
- __exportStar(require("./scorer"), exports);
22
+ __exportStar(require("./agents-parser.js"), exports);
23
+ __exportStar(require("./cursorrules-parser.js"), exports);
24
+ __exportStar(require("./gemini-parser.js"), exports);
25
+ __exportStar(require("./conductor-parser.js"), exports);
26
+ __exportStar(require("./slot-counter.js"), exports);
27
+ __exportStar(require("./github-extractor.js"), exports);
28
+ __exportStar(require("./faf-git-generator.js"), exports);
24
29
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/faf-core/parsers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,qDAAmC;AACnC,0DAAwC;AACxC,qDAAmC;AACnC,wDAAsC;AACtC,oDAAkC;AAClC,wDAAsC;AACtC,yDAAuC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Slot-Based Scoring
3
+ *
4
+ * Implements the advertised formula: (Filled + Ignored) / 21 * 100
5
+ *
6
+ * Ported from faf-cli for claude-faf-mcp v4.5.0
7
+ */
8
+ export interface SlotCount {
9
+ filled: number;
10
+ ignored: number;
11
+ missing: number;
12
+ score: number;
13
+ filledSlots: string[];
14
+ ignoredSlots: string[];
15
+ missingSlots: string[];
16
+ }
17
+ /**
18
+ * Check if a slot value should be counted as "ignored"
19
+ */
20
+ export declare function isIgnored(value: any): boolean;
21
+ /**
22
+ * Check if a slot value should be counted as "filled"
23
+ */
24
+ export declare function isFilled(value: any): boolean;
25
+ /**
26
+ * Count actual slots and calculate REAL score
27
+ *
28
+ * Pass in the actual values being used in the FAF file
29
+ *
30
+ * @param slots - Object with all 21 slot values
31
+ * @returns Slot count and score
32
+ */
33
+ export declare function countSlots(slots: {
34
+ projectName?: any;
35
+ projectGoal?: any;
36
+ mainLanguage?: any;
37
+ projectType?: any;
38
+ who?: any;
39
+ what?: any;
40
+ why?: any;
41
+ where?: any;
42
+ when?: any;
43
+ how?: any;
44
+ frontend?: any;
45
+ uiLibrary?: any;
46
+ backend?: any;
47
+ runtime?: any;
48
+ database?: any;
49
+ build?: any;
50
+ packageManager?: any;
51
+ apiType?: any;
52
+ hosting?: any;
53
+ cicd?: any;
54
+ cssFramework?: any;
55
+ }): SlotCount;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * Slot-Based Scoring
4
+ *
5
+ * Implements the advertised formula: (Filled + Ignored) / 21 * 100
6
+ *
7
+ * Ported from faf-cli for claude-faf-mcp v4.5.0
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.isIgnored = isIgnored;
11
+ exports.isFilled = isFilled;
12
+ exports.countSlots = countSlots;
13
+ /**
14
+ * Check if a slot value should be counted as "ignored"
15
+ */
16
+ function isIgnored(value) {
17
+ if (value === null || value === undefined) {
18
+ return false;
19
+ }
20
+ const normalized = String(value).toLowerCase().trim();
21
+ return normalized === 'slotignored' ||
22
+ normalized === 'none' ||
23
+ normalized === 'unknown' ||
24
+ normalized === 'not specified' ||
25
+ normalized === 'n/a';
26
+ }
27
+ /**
28
+ * Check if a slot value should be counted as "filled"
29
+ */
30
+ function isFilled(value) {
31
+ if (value === null || value === undefined || value === '') {
32
+ return false;
33
+ }
34
+ // Not ignored and has a value = filled
35
+ return !isIgnored(value);
36
+ }
37
+ /**
38
+ * Count actual slots and calculate REAL score
39
+ *
40
+ * Pass in the actual values being used in the FAF file
41
+ *
42
+ * @param slots - Object with all 21 slot values
43
+ * @returns Slot count and score
44
+ */
45
+ function countSlots(slots) {
46
+ const filled = [];
47
+ const ignored = [];
48
+ const missing = [];
49
+ // Map to slot names
50
+ const slotMap = [
51
+ // Project (4)
52
+ ['project.name', slots.projectName],
53
+ ['project.goal', slots.projectGoal],
54
+ ['project.main_language', slots.mainLanguage],
55
+ ['project.type', slots.projectType],
56
+ // Human context (6)
57
+ ['human_context.who', slots.who],
58
+ ['human_context.what', slots.what],
59
+ ['human_context.why', slots.why],
60
+ ['human_context.where', slots.where],
61
+ ['human_context.when', slots.when],
62
+ ['human_context.how', slots.how],
63
+ // Stack (11)
64
+ ['stack.frontend', slots.frontend],
65
+ ['stack.ui_library', slots.uiLibrary],
66
+ ['stack.backend', slots.backend],
67
+ ['stack.runtime', slots.runtime],
68
+ ['stack.database', slots.database],
69
+ ['stack.build', slots.build],
70
+ ['stack.package_manager', slots.packageManager],
71
+ ['stack.api_type', slots.apiType],
72
+ ['stack.hosting', slots.hosting],
73
+ ['stack.cicd', slots.cicd],
74
+ ['stack.css_framework', slots.cssFramework],
75
+ ];
76
+ // Count each slot
77
+ for (const [slotName, value] of slotMap) {
78
+ if (isIgnored(value)) {
79
+ ignored.push(slotName);
80
+ }
81
+ else if (isFilled(value)) {
82
+ filled.push(slotName);
83
+ }
84
+ else {
85
+ missing.push(slotName);
86
+ }
87
+ }
88
+ // Calculate REAL score: (Filled + Ignored) / 21 * 100
89
+ const score = Math.round(((filled.length + ignored.length) / 21) * 100);
90
+ return {
91
+ filled: filled.length,
92
+ ignored: ignored.length,
93
+ missing: missing.length,
94
+ score,
95
+ filledSlots: filled,
96
+ ignoredSlots: ignored,
97
+ missingSlots: missing
98
+ };
99
+ }
100
+ //# sourceMappingURL=slot-counter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-counter.js","sourceRoot":"","sources":["../../../../src/faf-core/parsers/slot-counter.ts"],"names":[],"mappings":"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"}
@@ -88,14 +88,14 @@ class BalanceVisualizer {
88
88
  // Calculate proportional split (matching fafdev.tools logic)
89
89
  const totalContext = aiPercentage + humanPercentage;
90
90
  let aiProportion;
91
- let humanProportion;
91
+ let _humanProportion;
92
92
  if (totalContext === 0) {
93
93
  aiProportion = 50;
94
- humanProportion = 50;
94
+ _humanProportion = 50;
95
95
  }
96
96
  else {
97
97
  aiProportion = Math.round((aiPercentage / totalContext) * 100);
98
- humanProportion = 100 - aiProportion;
98
+ _humanProportion = 100 - aiProportion;
99
99
  }
100
100
  // Build the visual bar
101
101
  const lines = [];
@@ -1 +1 @@
1
- {"version":3,"file":"balance-visualizer.js","sourceRoot":"","sources":["../../../../src/faf-core/utils/balance-visualizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance-visualizer.js","sourceRoot":"","sources":["../../../../src/faf-core/utils/balance-visualizer.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,16 @@ export declare class ChampionshipToolHandler {
59
59
  private handleTodo;
60
60
  private handleChat;
61
61
  private handleQuick;
62
+ /**
63
+ * ๐Ÿงก Handle human_context add/merge
64
+ * For 6Ws Builder workflow: user fills faf.one/6ws, pastes YAML here
65
+ */
66
+ private handleHumanAdd;
67
+ /**
68
+ * ๐Ÿ“„ Handle README context extraction
69
+ * Extract 6 Ws from existing README.md and optionally merge into project.faf
70
+ */
71
+ private handleReadme;
62
72
  private handleShare;
63
73
  private handleEnhance;
64
74
  private handleAnalyze;
@@ -110,9 +120,4 @@ export declare class ChampionshipToolHandler {
110
120
  * Calculate current AI-Readiness score quietly
111
121
  */
112
122
  private calculateScore;
113
- private handleCloudPublish;
114
- private handleCloudFetch;
115
- private handleCloudList;
116
- private handleCloudSearch;
117
- private handleCloudShare;
118
123
  }