faf-cli 4.2.0 → 4.2.2
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 +50 -0
- package/dist/commands/auto.d.ts.map +1 -1
- package/dist/commands/auto.js +10 -2
- package/dist/commands/auto.js.map +1 -1
- package/dist/compiler/faf-compiler.d.ts +13 -0
- package/dist/compiler/faf-compiler.d.ts.map +1 -1
- package/dist/compiler/faf-compiler.js +16 -2
- package/dist/compiler/faf-compiler.js.map +1 -1
- package/dist/engines/relentless-context-extractor.d.ts +4 -0
- package/dist/engines/relentless-context-extractor.d.ts.map +1 -1
- package/dist/engines/relentless-context-extractor.js +190 -128
- package/dist/engines/relentless-context-extractor.js.map +1 -1
- package/dist/generators/faf-generator-championship.d.ts.map +1 -1
- package/dist/generators/faf-generator-championship.js +49 -17
- package/dist/generators/faf-generator-championship.js.map +1 -1
- package/dist/utils/turbo-cat-knowledge.d.ts +7 -0
- package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -1
- package/dist/utils/turbo-cat-knowledge.js +10 -1
- package/dist/utils/turbo-cat-knowledge.js.map +1 -1
- package/dist/utils/yaml-generator.d.ts +1 -0
- package/dist/utils/yaml-generator.d.ts.map +1 -1
- package/dist/utils/yaml-generator.js +8 -3
- package/dist/utils/yaml-generator.js.map +1 -1
- package/package.json +1 -1
- package/project.faf +45 -53
|
@@ -126,28 +126,36 @@ class RelentlessContextExtractor {
|
|
|
126
126
|
* 🎯 RELENTLESS WHO EXTRACTION - Fight for user context!
|
|
127
127
|
*/
|
|
128
128
|
extractWHO() {
|
|
129
|
-
// TIER 1:
|
|
129
|
+
// TIER 1: AUTHORITATIVE - package.json author
|
|
130
|
+
if (this.packageJson?.author) {
|
|
131
|
+
const author = typeof this.packageJson.author === 'string'
|
|
132
|
+
? this.packageJson.author
|
|
133
|
+
: this.packageJson.author.name || this.packageJson.author.email || '';
|
|
134
|
+
if (author.length > 0) {
|
|
135
|
+
return {
|
|
136
|
+
value: `${author} team`,
|
|
137
|
+
confidence: 'CERTAIN',
|
|
138
|
+
source: 'Package author (authoritative)',
|
|
139
|
+
needsUserInput: false
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// TIER 2: README - Specific "for X" patterns with minimum length
|
|
144
|
+
const cleanedReadme = this.getCleanedReadme();
|
|
130
145
|
const certainPatterns = [
|
|
131
|
-
/for\s+([\w\s]+(?:developers?|engineers?|teams?|companies?|organizations?))/gi,
|
|
132
|
-
/
|
|
133
|
-
/
|
|
134
|
-
/perfect\s+for\s+([^.,\n]+)/gi,
|
|
135
|
-
/target(?:ing|ed|s)?\s+(?:at|to|for)?\s*([^.,\n]+)/gi,
|
|
136
|
-
/helps?\s+([^.,\n]+(?:developers?|engineers?|teams?))/gi,
|
|
137
|
-
/enables?\s+([^.,\n]+)\s+to/gi,
|
|
138
|
-
/empowers?\s+([^.,\n]+)/gi
|
|
146
|
+
/(?:built|designed|created)\s+(?:specifically\s+)?for\s+([\w\s]+(?:developers?|engineers?|teams?|companies?|organizations?))/gi,
|
|
147
|
+
/target\s+(?:audience|users?)(?:\s+is)?\s*:?\s*([\w\s]+)/gi,
|
|
148
|
+
/perfect\s+for\s+([\w\s]+(?:developers?|engineers?|teams?))/gi
|
|
139
149
|
];
|
|
140
150
|
for (const pattern of certainPatterns) {
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
+
const match = cleanedReadme.match(pattern);
|
|
152
|
+
if (match && match[1] && match[1].length > 5) {
|
|
153
|
+
return {
|
|
154
|
+
value: this.cleanExtractedText(match[1]),
|
|
155
|
+
confidence: 'CERTAIN',
|
|
156
|
+
source: 'README target audience',
|
|
157
|
+
needsUserInput: false
|
|
158
|
+
};
|
|
151
159
|
}
|
|
152
160
|
}
|
|
153
161
|
// TIER 2: PROBABLE - Medium confidence
|
|
@@ -195,42 +203,32 @@ class RelentlessContextExtractor {
|
|
|
195
203
|
* 🎯 RELENTLESS WHAT EXTRACTION - Core problem/purpose
|
|
196
204
|
*/
|
|
197
205
|
extractWHAT() {
|
|
198
|
-
// TIER 1:
|
|
199
|
-
|
|
200
|
-
/solves?\s+(?:the\s+)?(?:problem\s+of\s+)?([^.,\n]+)/gi,
|
|
201
|
-
/addresses?\s+(?:the\s+)?(?:issue\s+of\s+)?([^.,\n]+)/gi,
|
|
202
|
-
/fixes?\s+([^.,\n]+)/gi,
|
|
203
|
-
/eliminates?\s+([^.,\n]+)/gi,
|
|
204
|
-
/prevents?\s+([^.,\n]+)/gi,
|
|
205
|
-
/(?:core|main|primary)\s+(?:problem|issue|challenge)(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
|
|
206
|
-
/pain\s+points?\s*:?\s*([^.,\n]+)/gi
|
|
207
|
-
];
|
|
208
|
-
for (const pattern of certainPatterns) {
|
|
209
|
-
const matches = this.fileContent.matchAll(pattern);
|
|
210
|
-
for (const match of matches) {
|
|
211
|
-
if (match[1] && match[1].length > 10) {
|
|
212
|
-
return {
|
|
213
|
-
value: this.cleanExtractedText(match[1]),
|
|
214
|
-
confidence: 'CERTAIN',
|
|
215
|
-
source: 'Problem statement',
|
|
216
|
-
needsUserInput: false
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// TIER 2: PROBABLE - Feature descriptions
|
|
206
|
+
// TIER 1: AUTHORITATIVE - package.json description
|
|
207
|
+
// Manifest files are the source of truth, ALWAYS prioritize them
|
|
222
208
|
const description = this.packageJson?.description || '';
|
|
223
209
|
if (description.length > 20) {
|
|
224
210
|
return {
|
|
225
211
|
value: description,
|
|
212
|
+
confidence: 'CERTAIN',
|
|
213
|
+
source: 'Package description (authoritative)',
|
|
214
|
+
needsUserInput: false
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
// TIER 2: README - But skip HTML/badges and extract carefully
|
|
218
|
+
const cleanedReadme = this.getCleanedReadme();
|
|
219
|
+
// Try to extract from specific sections first
|
|
220
|
+
const purposeSection = cleanedReadme.match(/##?\s+(?:Purpose|What|About|Overview)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
|
|
221
|
+
if (purposeSection && purposeSection[1] && purposeSection[1].length > 20) {
|
|
222
|
+
return {
|
|
223
|
+
value: this.cleanExtractedText(purposeSection[1]),
|
|
226
224
|
confidence: 'PROBABLE',
|
|
227
|
-
source: '
|
|
225
|
+
source: 'README Purpose section',
|
|
228
226
|
needsUserInput: true
|
|
229
227
|
};
|
|
230
228
|
}
|
|
231
|
-
//
|
|
232
|
-
const firstPara =
|
|
233
|
-
if (firstPara && firstPara[1]) {
|
|
229
|
+
// Try first paragraph after skipping HTML/badges
|
|
230
|
+
const firstPara = cleanedReadme.match(/^(.+?)(?:\n\n|\n##?|$)/s);
|
|
231
|
+
if (firstPara && firstPara[1] && firstPara[1].length > 30) {
|
|
234
232
|
return {
|
|
235
233
|
value: this.cleanExtractedText(firstPara[1]),
|
|
236
234
|
confidence: 'PROBABLE',
|
|
@@ -238,7 +236,25 @@ class RelentlessContextExtractor {
|
|
|
238
236
|
needsUserInput: true
|
|
239
237
|
};
|
|
240
238
|
}
|
|
241
|
-
// TIER 3:
|
|
239
|
+
// TIER 3: Problem statement patterns - More specific, minimum length 30 chars
|
|
240
|
+
const certainPatterns = [
|
|
241
|
+
/(?:core|main|primary)\s+(?:problem|issue|challenge)(?:\s+is)?\s*:?\s*([^.\n]{30,})/gi,
|
|
242
|
+
/pain\s+points?\s*:?\s*([^.\n]{30,})/gi,
|
|
243
|
+
/solves?\s+(?:the\s+)?(?:problem\s+of\s+)?([^.\n]{30,})/gi,
|
|
244
|
+
/(?:purpose|mission)(?:\s+is)?\s*:?\s*([^.\n]{30,})/gi
|
|
245
|
+
];
|
|
246
|
+
for (const pattern of certainPatterns) {
|
|
247
|
+
const match = cleanedReadme.match(pattern);
|
|
248
|
+
if (match && match[1]) {
|
|
249
|
+
return {
|
|
250
|
+
value: this.cleanExtractedText(match[1]),
|
|
251
|
+
confidence: 'PROBABLE',
|
|
252
|
+
source: 'Problem statement',
|
|
253
|
+
needsUserInput: true
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// TIER 4: INFERRED - From project name
|
|
242
258
|
if (this.packageJson?.name) {
|
|
243
259
|
const inferredPurpose = this.inferPurposeFromName(this.packageJson.name);
|
|
244
260
|
return {
|
|
@@ -260,47 +276,44 @@ class RelentlessContextExtractor {
|
|
|
260
276
|
* 🎯 RELENTLESS WHY EXTRACTION - Mission/purpose
|
|
261
277
|
*/
|
|
262
278
|
extractWHY() {
|
|
263
|
-
|
|
279
|
+
const cleanedReadme = this.getCleanedReadme();
|
|
280
|
+
// TIER 1: CERTAIN - Explicit mission/purpose sections
|
|
281
|
+
const missionSection = cleanedReadme.match(/##?\s+(?:Mission|Purpose|Why|Vision)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
|
|
282
|
+
if (missionSection && missionSection[1] && missionSection[1].length > 20) {
|
|
283
|
+
return {
|
|
284
|
+
value: this.cleanExtractedText(missionSection[1]),
|
|
285
|
+
confidence: 'CERTAIN',
|
|
286
|
+
source: 'README Mission section',
|
|
287
|
+
needsUserInput: false
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
// TIER 2: PROBABLE - Specific mission/goal patterns with minimum length
|
|
264
291
|
const certainPatterns = [
|
|
265
|
-
/(?:our\s+)?mission(?:\s+is)?\s*:?\s*([
|
|
266
|
-
/(?:
|
|
267
|
-
/(?:
|
|
268
|
-
/(?:we\s+)?aim(?:\s+to)?\s+([^.,\n]+)/gi,
|
|
269
|
-
/(?:we\s+)?strive(?:\s+to)?\s+([^.,\n]+)/gi,
|
|
270
|
-
/because\s+([^.,\n]+)/gi,
|
|
271
|
-
/so\s+that\s+([^.,\n]+)/gi
|
|
292
|
+
/(?:our\s+)?(?:mission|purpose|goal)(?:\s+is)?\s*:?\s*([^.\n]{30,})/gi,
|
|
293
|
+
/(?:we\s+)?(?:aim|strive)(?:\s+to)?\s+([^.\n]{30,})/gi,
|
|
294
|
+
/(?:built|created|designed)\s+(?:because|to)\s+([^.\n]{30,})/gi
|
|
272
295
|
];
|
|
273
296
|
for (const pattern of certainPatterns) {
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
};
|
|
283
|
-
}
|
|
297
|
+
const match = cleanedReadme.match(pattern);
|
|
298
|
+
if (match && match[1]) {
|
|
299
|
+
return {
|
|
300
|
+
value: this.cleanExtractedText(match[1]),
|
|
301
|
+
confidence: 'PROBABLE',
|
|
302
|
+
source: 'Mission statement',
|
|
303
|
+
needsUserInput: true
|
|
304
|
+
};
|
|
284
305
|
}
|
|
285
306
|
}
|
|
286
|
-
// TIER
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
if (match[1] && match[1].length > 15) {
|
|
297
|
-
return {
|
|
298
|
-
value: `To ${this.cleanExtractedText(match[1])}`,
|
|
299
|
-
confidence: 'PROBABLE',
|
|
300
|
-
source: 'Benefit statement',
|
|
301
|
-
needsUserInput: true
|
|
302
|
-
};
|
|
303
|
-
}
|
|
307
|
+
// TIER 3: Check package.json keywords for mission clues
|
|
308
|
+
if (this.packageJson?.keywords && Array.isArray(this.packageJson.keywords)) {
|
|
309
|
+
const keywords = this.packageJson.keywords.join(', ');
|
|
310
|
+
if (keywords.length > 20) {
|
|
311
|
+
return {
|
|
312
|
+
value: `To enable ${keywords}`,
|
|
313
|
+
confidence: 'INFERRED',
|
|
314
|
+
source: 'Package keywords',
|
|
315
|
+
needsUserInput: true
|
|
316
|
+
};
|
|
304
317
|
}
|
|
305
318
|
}
|
|
306
319
|
// HONEST SCORING: 0% is a valid score - no fake placeholders
|
|
@@ -315,7 +328,17 @@ class RelentlessContextExtractor {
|
|
|
315
328
|
* 🎯 RELENTLESS WHERE EXTRACTION - Deployment/market
|
|
316
329
|
*/
|
|
317
330
|
extractWHERE() {
|
|
318
|
-
// Check package.json
|
|
331
|
+
// TIER 1: AUTHORITATIVE - Check package.json repository and npm registry
|
|
332
|
+
if (this.packageJson?.name) {
|
|
333
|
+
// If it's an npm package, it's on npm registry
|
|
334
|
+
return {
|
|
335
|
+
value: 'npm registry + GitHub',
|
|
336
|
+
confidence: 'CERTAIN',
|
|
337
|
+
source: 'Package registry (authoritative)',
|
|
338
|
+
needsUserInput: false
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
// TIER 2: Check package.json homepage
|
|
319
342
|
if (this.packageJson?.homepage) {
|
|
320
343
|
const url = this.packageJson.homepage;
|
|
321
344
|
if (url.includes('vercel')) {
|
|
@@ -337,24 +360,24 @@ class RelentlessContextExtractor {
|
|
|
337
360
|
needsUserInput: true
|
|
338
361
|
};
|
|
339
362
|
}
|
|
340
|
-
// Check for cloud indicators
|
|
363
|
+
// TIER 3: Check for cloud indicators
|
|
341
364
|
if (this.techStack.has('aws-sdk')) {
|
|
342
|
-
return this.createContext('AWS Cloud', '
|
|
365
|
+
return this.createContext('AWS Cloud', 'PROBABLE', true);
|
|
343
366
|
}
|
|
344
367
|
if (this.techStack.has('@google-cloud/storage')) {
|
|
345
|
-
return this.createContext('Google Cloud', '
|
|
368
|
+
return this.createContext('Google Cloud', 'PROBABLE', true);
|
|
346
369
|
}
|
|
347
370
|
if (this.techStack.has('@azure/storage-blob')) {
|
|
348
|
-
return this.createContext('Azure Cloud', '
|
|
371
|
+
return this.createContext('Azure Cloud', 'PROBABLE', true);
|
|
349
372
|
}
|
|
350
|
-
// Check for deployment
|
|
373
|
+
// TIER 4: Check README for deployment mentions
|
|
374
|
+
const cleanedReadme = this.getCleanedReadme();
|
|
351
375
|
const deploymentPatterns = [
|
|
352
|
-
/deploy(?:ed|ing|ment)?\s+(?:to|on|at)\s+([^.,\n]
|
|
353
|
-
/hosted?\s+(?:on|at)\s+([^.,\n]
|
|
354
|
-
/runs?\s+(?:on|in)\s+([^.,\n]+)/gi
|
|
376
|
+
/deploy(?:ed|ing|ment)?\s+(?:to|on|at)\s+([^.,\n]{10,})/gi,
|
|
377
|
+
/hosted?\s+(?:on|at)\s+([^.,\n]{10,})/gi
|
|
355
378
|
];
|
|
356
379
|
for (const pattern of deploymentPatterns) {
|
|
357
|
-
const match =
|
|
380
|
+
const match = cleanedReadme.match(pattern);
|
|
358
381
|
if (match && match[1]) {
|
|
359
382
|
return {
|
|
360
383
|
value: this.cleanExtractedText(match[1]),
|
|
@@ -376,15 +399,35 @@ class RelentlessContextExtractor {
|
|
|
376
399
|
* 🎯 RELENTLESS WHEN EXTRACTION - Timeline/schedule
|
|
377
400
|
*/
|
|
378
401
|
extractWHEN() {
|
|
379
|
-
//
|
|
402
|
+
// TIER 1: Check version for stage inference (AUTHORITATIVE)
|
|
403
|
+
const version = this.packageJson?.version;
|
|
404
|
+
if (version) {
|
|
405
|
+
if (version.startsWith('0.')) {
|
|
406
|
+
return this.createContext('Pre-release/Beta phase', 'CERTAIN', false);
|
|
407
|
+
}
|
|
408
|
+
else if (parseFloat(version) >= 1.0) {
|
|
409
|
+
return this.createContext('Production/Stable', 'CERTAIN', false);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
// TIER 2: Look for specific timeline sections in README
|
|
413
|
+
const cleanedReadme = this.getCleanedReadme();
|
|
414
|
+
const roadmapSection = cleanedReadme.match(/##?\s+(?:Roadmap|Timeline|Schedule)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
|
|
415
|
+
if (roadmapSection && roadmapSection[1] && roadmapSection[1].length > 15) {
|
|
416
|
+
return {
|
|
417
|
+
value: this.cleanExtractedText(roadmapSection[1]),
|
|
418
|
+
confidence: 'PROBABLE',
|
|
419
|
+
source: 'README Roadmap section',
|
|
420
|
+
needsUserInput: true
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
// TIER 3: Look for timeline indicators (minimum length to avoid fragments)
|
|
380
424
|
const timelinePatterns = [
|
|
381
|
-
/(?:
|
|
382
|
-
/(?:launching|releasing|
|
|
383
|
-
/(?:expected|planned|scheduled)\s+(?:for|by|on)\s+([^.,\n]
|
|
384
|
-
/(?:MVP|beta|alpha|v1)\s+(?:by|in|on)\s+([^.,\n]+)/gi
|
|
425
|
+
/(?:launch|release)(?:\s+date)?(?:\s+is)?\s*:?\s*([^.,\n]{15,})/gi,
|
|
426
|
+
/(?:launching|releasing|shipping)\s+(?:in|on|by)\s+([^.,\n]{10,})/gi,
|
|
427
|
+
/(?:expected|planned|scheduled)\s+(?:for|by|on)\s+([^.,\n]{10,})/gi
|
|
385
428
|
];
|
|
386
429
|
for (const pattern of timelinePatterns) {
|
|
387
|
-
const match =
|
|
430
|
+
const match = cleanedReadme.match(pattern);
|
|
388
431
|
if (match && match[1]) {
|
|
389
432
|
return {
|
|
390
433
|
value: this.cleanExtractedText(match[1]),
|
|
@@ -394,16 +437,6 @@ class RelentlessContextExtractor {
|
|
|
394
437
|
};
|
|
395
438
|
}
|
|
396
439
|
}
|
|
397
|
-
// Check version for stage inference
|
|
398
|
-
const version = this.packageJson?.version;
|
|
399
|
-
if (version) {
|
|
400
|
-
if (version.startsWith('0.')) {
|
|
401
|
-
return this.createContext('Pre-release/Beta phase', 'INFERRED', true);
|
|
402
|
-
}
|
|
403
|
-
else if (version.startsWith('1.')) {
|
|
404
|
-
return this.createContext('Production/Stable', 'INFERRED', true);
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
440
|
// HONEST SCORING: 0% is a valid score - no fake placeholders
|
|
408
441
|
return {
|
|
409
442
|
value: '',
|
|
@@ -416,17 +449,35 @@ class RelentlessContextExtractor {
|
|
|
416
449
|
* 🎯 RELENTLESS HOW EXTRACTION - Approach/methodology
|
|
417
450
|
*/
|
|
418
451
|
extractHOW() {
|
|
419
|
-
//
|
|
452
|
+
// TIER 1: Infer from tech stack (AUTHORITATIVE for technical approach)
|
|
453
|
+
const approach = this.inferApproachFromTech();
|
|
454
|
+
if (approach) {
|
|
455
|
+
return {
|
|
456
|
+
value: approach,
|
|
457
|
+
confidence: 'CERTAIN',
|
|
458
|
+
source: 'Tech stack analysis (authoritative)',
|
|
459
|
+
needsUserInput: false
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
// TIER 2: Look for methodology sections in README
|
|
463
|
+
const cleanedReadme = this.getCleanedReadme();
|
|
464
|
+
const methodSection = cleanedReadme.match(/##?\s+(?:Approach|Methodology|How|Architecture)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
|
|
465
|
+
if (methodSection && methodSection[1] && methodSection[1].length > 20) {
|
|
466
|
+
return {
|
|
467
|
+
value: this.cleanExtractedText(methodSection[1]),
|
|
468
|
+
confidence: 'PROBABLE',
|
|
469
|
+
source: 'README Methodology section',
|
|
470
|
+
needsUserInput: true
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
// TIER 3: Look for methodology patterns (minimum length to avoid fragments)
|
|
420
474
|
const methodPatterns = [
|
|
421
|
-
/(?:
|
|
422
|
-
/(?:
|
|
423
|
-
/(?:
|
|
424
|
-
/(?:uses?|utilizes?|leverages?)\s+([^.,\n]+)/gi,
|
|
425
|
-
/approach(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
|
|
426
|
-
/methodology(?:\s+is)?\s*:?\s*([^.,\n]+)/gi
|
|
475
|
+
/(?:approach|methodology)(?:\s+is)?\s*:?\s*([^.\n]{20,})/gi,
|
|
476
|
+
/(?:built|created|developed)\s+(?:using|with)\s+([^.\n]{20,})/gi,
|
|
477
|
+
/(?:powered|driven)\s+by\s+([^.\n]{15,})/gi
|
|
427
478
|
];
|
|
428
479
|
for (const pattern of methodPatterns) {
|
|
429
|
-
const match =
|
|
480
|
+
const match = cleanedReadme.match(pattern);
|
|
430
481
|
if (match && match[1]) {
|
|
431
482
|
return {
|
|
432
483
|
value: this.cleanExtractedText(match[1]),
|
|
@@ -436,16 +487,6 @@ class RelentlessContextExtractor {
|
|
|
436
487
|
};
|
|
437
488
|
}
|
|
438
489
|
}
|
|
439
|
-
// Infer from tech stack
|
|
440
|
-
const approach = this.inferApproachFromTech();
|
|
441
|
-
if (approach) {
|
|
442
|
-
return {
|
|
443
|
-
value: approach,
|
|
444
|
-
confidence: 'INFERRED',
|
|
445
|
-
source: 'Tech stack analysis',
|
|
446
|
-
needsUserInput: true
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
490
|
// HONEST SCORING: 0% is a valid score - no fake placeholders
|
|
450
491
|
return {
|
|
451
492
|
value: '',
|
|
@@ -563,6 +604,27 @@ class RelentlessContextExtractor {
|
|
|
563
604
|
}
|
|
564
605
|
return todos;
|
|
565
606
|
}
|
|
607
|
+
/**
|
|
608
|
+
* Helper: Get cleaned README with HTML/badges removed
|
|
609
|
+
*/
|
|
610
|
+
getCleanedReadme() {
|
|
611
|
+
let cleaned = this.readmeContent;
|
|
612
|
+
// Remove HTML tags and badge images
|
|
613
|
+
cleaned = cleaned.replace(/<[^>]+>/g, '');
|
|
614
|
+
cleaned = cleaned.replace(/!\[.*?\]\(.*?\)/g, '');
|
|
615
|
+
cleaned = cleaned.replace(/\[!\[.*?\]\(.*?\)\]\(.*?\)/g, '');
|
|
616
|
+
// Remove badge URLs
|
|
617
|
+
cleaned = cleaned.replace(/https?:\/\/img\.shields\.io\/[^\s)]+/g, '');
|
|
618
|
+
cleaned = cleaned.replace(/https?:\/\/badge[^\s)]+/g, '');
|
|
619
|
+
// Remove excessive newlines
|
|
620
|
+
cleaned = cleaned.replace(/\n{3,}/g, '\n\n');
|
|
621
|
+
// Skip to first markdown heading or content
|
|
622
|
+
const contentStart = cleaned.search(/^#{1,2}\s+\w+|\n\n[A-Z]/m);
|
|
623
|
+
if (contentStart > 0) {
|
|
624
|
+
cleaned = cleaned.substring(contentStart);
|
|
625
|
+
}
|
|
626
|
+
return cleaned.trim();
|
|
627
|
+
}
|
|
566
628
|
/**
|
|
567
629
|
* Helper: Infer audience from tech stack
|
|
568
630
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relentless-context-extractor.js","sourceRoot":"","sources":["../../src/engines/relentless-context-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relentless-context-extractor.js","sourceRoot":"","sources":["../../src/engines/relentless-context-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faf-generator-championship.d.ts","sourceRoot":"","sources":["../../src/generators/faf-generator-championship.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"faf-generator-championship.d.ts","sourceRoot":"","sources":["../../src/generators/faf-generator-championship.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAqgBjB"}
|
|
@@ -61,6 +61,10 @@ async function generateFafFromProject(options) {
|
|
|
61
61
|
if (descMatch) {
|
|
62
62
|
pyprojectData.description = descMatch[1];
|
|
63
63
|
}
|
|
64
|
+
const versionMatch = content.match(/version\s*=\s*"([^"]+)"/);
|
|
65
|
+
if (versionMatch) {
|
|
66
|
+
pyprojectData.version = versionMatch[1];
|
|
67
|
+
}
|
|
64
68
|
}
|
|
65
69
|
catch {
|
|
66
70
|
// Continue without pyproject.toml data
|
|
@@ -267,6 +271,10 @@ async function generateFafFromProject(options) {
|
|
|
267
271
|
if (descMatch) {
|
|
268
272
|
cargoTomlData.description = descMatch[1];
|
|
269
273
|
}
|
|
274
|
+
const versionMatch = cargoContent.match(/^version\s*=\s*"([^"]+)"/m);
|
|
275
|
+
if (versionMatch) {
|
|
276
|
+
cargoTomlData.version = versionMatch[1];
|
|
277
|
+
}
|
|
270
278
|
}
|
|
271
279
|
catch {
|
|
272
280
|
// No Cargo.toml or can't read it
|
|
@@ -290,18 +298,24 @@ async function generateFafFromProject(options) {
|
|
|
290
298
|
contextSlotsFilled['build_tool'] = 'Cargo';
|
|
291
299
|
contextSlotsFilled['package_manager'] = 'Cargo';
|
|
292
300
|
contextSlotsFilled['runtime'] = 'Native binary';
|
|
293
|
-
//
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
contextSlotsFilled['
|
|
298
|
-
|
|
299
|
-
|
|
301
|
+
// 🎯 SLOT-IGNORE: Rust CLI tools don't need web frontend or databases
|
|
302
|
+
// Setting to 'None' = slot-ignore (like .gitignore, .fafignore)
|
|
303
|
+
// Score: (Filled + Ignored) / 21 = allows 100% without inapplicable slots
|
|
304
|
+
// See docs/SLOT-IGNORE.md for specification
|
|
305
|
+
contextSlotsFilled['css_framework'] = 'None';
|
|
306
|
+
contextSlotsFilled['ui_library'] = 'None';
|
|
307
|
+
contextSlotsFilled['database'] = 'None';
|
|
308
|
+
contextSlotsFilled['frontend'] = 'None';
|
|
309
|
+
// Cargo.toml is AUTHORITATIVE for Rust - always override FAB/README guesses
|
|
310
|
+
if (cargoTomlData.name) {
|
|
300
311
|
contextSlotsFilled['project_name'] = cargoTomlData.name;
|
|
301
312
|
}
|
|
302
|
-
if (cargoTomlData.description
|
|
313
|
+
if (cargoTomlData.description) {
|
|
303
314
|
contextSlotsFilled['project_goal'] = cargoTomlData.description;
|
|
304
315
|
}
|
|
316
|
+
if (cargoTomlData.version) {
|
|
317
|
+
contextSlotsFilled['version'] = cargoTomlData.version;
|
|
318
|
+
}
|
|
305
319
|
}
|
|
306
320
|
if (isNodeCLI) {
|
|
307
321
|
// Smart slot reuse for CLI projects
|
|
@@ -339,6 +353,14 @@ async function generateFafFromProject(options) {
|
|
|
339
353
|
else if (deps?.oclif) {
|
|
340
354
|
contextSlotsFilled['cli_framework'] = 'oclif';
|
|
341
355
|
}
|
|
356
|
+
// 🎯 SLOT-IGNORE: CLI tools don't need database/frontend/css
|
|
357
|
+
// Like .gitignore for files, slot-ignore marks slots as "not applicable"
|
|
358
|
+
// Setting to 'None' tells scoring: "We checked. Doesn't apply. That's correct."
|
|
359
|
+
// See docs/SLOT-IGNORE.md for full specification
|
|
360
|
+
contextSlotsFilled['database'] = 'None';
|
|
361
|
+
if (!contextSlotsFilled['frontend']) {
|
|
362
|
+
contextSlotsFilled['frontend'] = 'None'; // Unless already set
|
|
363
|
+
}
|
|
342
364
|
// Detect runtime (Bun takes priority if bun.lockb exists)
|
|
343
365
|
if (isBunProject) {
|
|
344
366
|
contextSlotsFilled['runtime'] = 'Bun';
|
|
@@ -381,25 +403,34 @@ async function generateFafFromProject(options) {
|
|
|
381
403
|
contextSlotsFilled['runtime'] = 'Bun';
|
|
382
404
|
contextSlotsFilled['package_manager'] = 'Bun';
|
|
383
405
|
}
|
|
384
|
-
//
|
|
385
|
-
if (packageData.name
|
|
406
|
+
// package.json is AUTHORITATIVE - always override FAB/README guesses
|
|
407
|
+
if (packageData.name) {
|
|
386
408
|
contextSlotsFilled['project_name'] = packageData.name;
|
|
387
409
|
}
|
|
388
|
-
if (packageData.description
|
|
410
|
+
if (packageData.description) {
|
|
389
411
|
contextSlotsFilled['project_goal'] = packageData.description;
|
|
390
412
|
}
|
|
391
|
-
|
|
392
|
-
|
|
413
|
+
if (packageData.version) {
|
|
414
|
+
contextSlotsFilled['version'] = packageData.version;
|
|
415
|
+
}
|
|
416
|
+
// pyproject.toml is AUTHORITATIVE for Python - always override FAB/README guesses
|
|
417
|
+
if (pyprojectData.name) {
|
|
393
418
|
contextSlotsFilled['project_name'] = pyprojectData.name;
|
|
394
419
|
}
|
|
395
|
-
if (pyprojectData.description
|
|
420
|
+
if (pyprojectData.description) {
|
|
396
421
|
contextSlotsFilled['project_goal'] = pyprojectData.description;
|
|
397
422
|
}
|
|
398
|
-
|
|
399
|
-
|
|
423
|
+
if (pyprojectData.version) {
|
|
424
|
+
contextSlotsFilled['version'] = pyprojectData.version;
|
|
425
|
+
}
|
|
426
|
+
// Apply README data ONLY if package.json/pyproject.toml/Cargo.toml don't have it
|
|
427
|
+
// package.json/Cargo.toml/pyproject.toml are AUTHORITATIVE for name/description
|
|
428
|
+
if (readmeData.projectName && !contextSlotsFilled['project_name'] &&
|
|
429
|
+
!packageData.name && !pyprojectData.name && !cargoTomlData.name) {
|
|
400
430
|
contextSlotsFilled['project_name'] = readmeData.projectName;
|
|
401
431
|
}
|
|
402
|
-
if (readmeData.description && !contextSlotsFilled['project_goal']
|
|
432
|
+
if (readmeData.description && !contextSlotsFilled['project_goal'] &&
|
|
433
|
+
!packageData.description && !pyprojectData.description && !cargoTomlData.description) {
|
|
403
434
|
contextSlotsFilled['project_goal'] = readmeData.description;
|
|
404
435
|
}
|
|
405
436
|
if (readmeData.targetUser && !contextSlotsFilled['who']) {
|
|
@@ -503,6 +534,7 @@ async function generateFafFromProject(options) {
|
|
|
503
534
|
// HONEST SCORING: No fake defaults - 0% is a valid score!
|
|
504
535
|
const fafData = {
|
|
505
536
|
projectName: contextSlotsFilled['project_name'] || path_1.default.basename(projectRoot),
|
|
537
|
+
version: contextSlotsFilled['version'] || undefined,
|
|
506
538
|
projectGoal: contextSlotsFilled['project_goal'] || undefined,
|
|
507
539
|
mainLanguage: contextSlotsFilled['main_language'] || undefined,
|
|
508
540
|
framework: contextSlotsFilled['framework'] || undefined,
|