faf-cli 3.0.4 → 3.0.6

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 (73) hide show
  1. package/README.md +46 -9
  2. package/dist/big-orange/bigo-push.d.ts +18 -0
  3. package/dist/big-orange/bigo-push.d.ts.map +1 -0
  4. package/dist/big-orange/bigo-push.js +88 -0
  5. package/dist/big-orange/bigo-push.js.map +1 -0
  6. package/dist/big-orange/compare.d.ts +11 -0
  7. package/dist/big-orange/compare.d.ts.map +1 -0
  8. package/dist/big-orange/compare.js +174 -0
  9. package/dist/big-orange/compare.js.map +1 -0
  10. package/dist/big-orange/faf-generator.d.ts +22 -0
  11. package/dist/big-orange/faf-generator.d.ts.map +1 -0
  12. package/dist/big-orange/faf-generator.js +215 -0
  13. package/dist/big-orange/faf-generator.js.map +1 -0
  14. package/dist/big-orange/index.d.ts +7 -0
  15. package/dist/big-orange/index.d.ts.map +1 -0
  16. package/dist/big-orange/index.js +96 -0
  17. package/dist/big-orange/index.js.map +1 -0
  18. package/dist/big-orange/types.d.ts +62 -0
  19. package/dist/big-orange/types.d.ts.map +1 -0
  20. package/dist/big-orange/types.js +7 -0
  21. package/dist/big-orange/types.js.map +1 -0
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +16 -0
  24. package/dist/cli.js.map +1 -1
  25. package/dist/commands/skills.d.ts +8 -0
  26. package/dist/commands/skills.d.ts.map +1 -0
  27. package/dist/commands/skills.js +43 -0
  28. package/dist/commands/skills.js.map +1 -0
  29. package/package.json +4 -1
  30. package/dist/commands/create.d.ts +0 -13
  31. package/dist/commands/create.d.ts.map +0 -1
  32. package/dist/commands/create.js +0 -78
  33. package/dist/commands/create.js.map +0 -1
  34. package/dist/core/platform-adapters.d.ts +0 -76
  35. package/dist/core/platform-adapters.d.ts.map +0 -1
  36. package/dist/core/platform-adapters.js +0 -407
  37. package/dist/core/platform-adapters.js.map +0 -1
  38. package/dist/core/universal-intelligence-generator.d.ts +0 -156
  39. package/dist/core/universal-intelligence-generator.d.ts.map +0 -1
  40. package/dist/core/universal-intelligence-generator.js +0 -352
  41. package/dist/core/universal-intelligence-generator.js.map +0 -1
  42. package/dist/enrichment/auto-corrector.d.ts +0 -28
  43. package/dist/enrichment/auto-corrector.d.ts.map +0 -1
  44. package/dist/enrichment/auto-corrector.js +0 -106
  45. package/dist/enrichment/auto-corrector.js.map +0 -1
  46. package/dist/enrichment/n8n-analyzer.d.ts +0 -259
  47. package/dist/enrichment/n8n-analyzer.d.ts.map +0 -1
  48. package/dist/enrichment/n8n-analyzer.js +0 -346
  49. package/dist/enrichment/n8n-analyzer.js.map +0 -1
  50. package/dist/enrichment/n8n-faf-generator.d.ts +0 -68
  51. package/dist/enrichment/n8n-faf-generator.d.ts.map +0 -1
  52. package/dist/enrichment/n8n-faf-generator.js +0 -354
  53. package/dist/enrichment/n8n-faf-generator.js.map +0 -1
  54. package/dist/enrichment/question-asker.d.ts +0 -22
  55. package/dist/enrichment/question-asker.d.ts.map +0 -1
  56. package/dist/enrichment/question-asker.js +0 -113
  57. package/dist/enrichment/question-asker.js.map +0 -1
  58. package/dist/enrichment/slot-filler.d.ts +0 -73
  59. package/dist/enrichment/slot-filler.d.ts.map +0 -1
  60. package/dist/enrichment/slot-filler.js +0 -253
  61. package/dist/enrichment/slot-filler.js.map +0 -1
  62. package/dist/scoring/championship-scorer.d.ts +0 -114
  63. package/dist/scoring/championship-scorer.d.ts.map +0 -1
  64. package/dist/scoring/championship-scorer.js +0 -380
  65. package/dist/scoring/championship-scorer.js.map +0 -1
  66. package/dist/scoring/score-calculator.d.ts +0 -29
  67. package/dist/scoring/score-calculator.d.ts.map +0 -1
  68. package/dist/scoring/score-calculator.js +0 -520
  69. package/dist/scoring/score-calculator.js.map +0 -1
  70. package/dist/tests/manual-validation.d.ts +0 -8
  71. package/dist/tests/manual-validation.d.ts.map +0 -1
  72. package/dist/tests/manual-validation.js +0 -114
  73. package/dist/tests/manual-validation.js.map +0 -1
@@ -1,520 +0,0 @@
1
- "use strict";
2
- /**
3
- * 📊 .faf Scoring Calculator
4
- * Championship scoring with FAB-FORMATS Power Unit
5
- * 150+ file handlers delivering 86%+ scores!
6
- */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.calculateFafScore = calculateFafScore;
12
- const fab_formats_processor_1 = require("../engines/fab-formats-processor");
13
- const path_1 = __importDefault(require("path"));
14
- // NO WEIGHTS - UI uses direct slot counting
15
- // Total slots = PC (15) + PD (6) + FILE (dynamic)
16
- // const UI_STRUCTURE = {
17
- // project_components: 15, // The 15 technical fields
18
- // project_details: 6, // The 6 W's
19
- // files: 0, // Dynamic based on file intelligence
20
- // };
21
- /**
22
- * Calculate .faf score for v2.5.0 nested_snake format with fab-formats discovery
23
- */
24
- async function calculateFafScore(fafData, projectPath) {
25
- // 🚨 CRITICAL: Handle null/undefined data safely
26
- if (!fafData || typeof fafData !== 'object') {
27
- fafData = {};
28
- }
29
- // CHAMPIONSHIP ENGINE: FAB-FORMATS Power Unit from web (86% scores!)
30
- // This is the REAL engine, not simplified version
31
- // 150+ file handlers with deep intelligence extraction
32
- let discoveredContext = {};
33
- if (projectPath) {
34
- try {
35
- // Fire up the championship engine! 🏎️
36
- const projectDir = path_1.default.dirname(projectPath);
37
- const fabProcessor = new fab_formats_processor_1.FabFormatsProcessor();
38
- const analysis = await fabProcessor.processFiles(projectDir);
39
- // Championship Context Extraction - Fill ALL the slots!
40
- if (analysis.context) {
41
- const ctx = analysis.context;
42
- // Project slots (core identity)
43
- if (ctx.projectName && !fafData.project?.name) {
44
- if (!fafData.project)
45
- fafData.project = {};
46
- fafData.project.name = ctx.projectName;
47
- }
48
- if (ctx.projectGoal && !fafData.project?.goal) {
49
- if (!fafData.project)
50
- fafData.project = {};
51
- fafData.project.goal = ctx.projectGoal;
52
- }
53
- if (ctx.mainLanguage && !fafData.project?.main_language) {
54
- if (!fafData.project)
55
- fafData.project = {};
56
- fafData.project.main_language = ctx.mainLanguage;
57
- }
58
- // Stack slots (technical architecture)
59
- if (!fafData.stack)
60
- fafData.stack = {};
61
- if (ctx.framework && !fafData.stack.frontend) {
62
- fafData.stack.frontend = ctx.framework;
63
- }
64
- if (ctx.backend && !fafData.stack.backend) {
65
- fafData.stack.backend = ctx.backend;
66
- }
67
- if (ctx.server && !fafData.stack.server) {
68
- fafData.stack.server = ctx.server;
69
- }
70
- if (ctx.database && !fafData.stack.database) {
71
- fafData.stack.database = ctx.database;
72
- }
73
- if (ctx.hosting && !fafData.stack.hosting) {
74
- fafData.stack.hosting = ctx.hosting;
75
- }
76
- // Build slots (development tools)
77
- if (!fafData.build)
78
- fafData.build = {};
79
- if (ctx.buildTool && !fafData.build.tool) {
80
- fafData.build.tool = ctx.buildTool;
81
- }
82
- if (ctx.packageManager && !fafData.build.package_manager) {
83
- fafData.build.package_manager = ctx.packageManager;
84
- }
85
- if (ctx.testFramework && !fafData.build.test_framework) {
86
- fafData.build.test_framework = ctx.testFramework;
87
- }
88
- if (ctx.linter && !fafData.build.linter) {
89
- fafData.build.linter = ctx.linter;
90
- }
91
- // Human context slots (6 W's)
92
- if (!fafData.human)
93
- fafData.human = {};
94
- if (ctx.targetUser && !fafData.human.who) {
95
- fafData.human.who = ctx.targetUser;
96
- }
97
- if (ctx.coreProblem && !fafData.human.what) {
98
- fafData.human.what = ctx.coreProblem;
99
- }
100
- if (ctx.missionPurpose && !fafData.human.why) {
101
- fafData.human.why = ctx.missionPurpose;
102
- }
103
- if (ctx.deploymentMarket && !fafData.human.where) {
104
- fafData.human.where = ctx.deploymentMarket;
105
- }
106
- if (ctx.timeline && !fafData.human.when) {
107
- fafData.human.when = ctx.timeline;
108
- }
109
- if (ctx.approach && !fafData.human.how) {
110
- fafData.human.how = ctx.approach;
111
- }
112
- }
113
- // Process intelligence from each file result
114
- if (analysis.results && analysis.results.length > 0) {
115
- // Track quality for bonus scoring
116
- const hasExceptional = analysis.results.some((r) => r.metadata?.grade === 'EXCEPTIONAL');
117
- const hasProfessional = analysis.results.some((r) => r.metadata?.grade === 'PROFESSIONAL');
118
- // Apply quality bonuses
119
- if (hasExceptional) {
120
- // EXCEPTIONAL quality = major score boost
121
- discoveredContext.qualityBonus = 30;
122
- }
123
- else if (hasProfessional) {
124
- discoveredContext.qualityBonus = 20;
125
- }
126
- // Store discovery metadata
127
- discoveredContext.filesAnalyzed = analysis.results.length;
128
- discoveredContext.totalIntelligence = analysis.totalBonus;
129
- }
130
- }
131
- catch (error) {
132
- // Log the error so we can see what's wrong with TURBO-CAT
133
- console.error('TURBO-CAT Discovery failed:', error);
134
- }
135
- }
136
- // LEGACY/FALLBACK: Only calculate if no embedded score (older formats)
137
- let pcSlots = 0;
138
- // Map v2.5.0 nested fields to scoring logic (now enhanced with fab-formats discovery!)
139
- const projectName = fafData.project?.name || fafData.projectName || discoveredContext.projectName;
140
- const projectGoal = fafData.project?.goal || fafData.instant_context?.what_building || fafData.projectGoal || discoveredContext.projectGoal;
141
- const mainLanguage = fafData.instant_context?.main_language || fafData.project?.main_language || fafData.mainLanguage || discoveredContext.mainLanguage;
142
- const framework = fafData.stack?.frontend || fafData.framework;
143
- const cssFramework = fafData.stack?.css_framework || fafData.cssFramework;
144
- const uiLibrary = fafData.stack?.ui_library || fafData.uiLibrary;
145
- const stateManagement = fafData.stack?.state_management || fafData.stateManagement;
146
- const backend = fafData.stack?.backend || fafData.backend;
147
- const apiType = fafData.stack?.api_type || fafData.apiType;
148
- const server = fafData.stack?.runtime || fafData.server;
149
- const database = fafData.stack?.database || fafData.database;
150
- const connection = fafData.stack?.connection || fafData.connection;
151
- const hosting = fafData.stack?.hosting || fafData.instant_context?.deployment || fafData.hosting;
152
- const buildTool = fafData.stack?.build || fafData.buildTool;
153
- const cicd = fafData.stack?.cicd || fafData.cicd;
154
- if (projectName?.length >= 3) {
155
- pcSlots++;
156
- }
157
- if (projectGoal && projectGoal !== 'Project development and deployment') {
158
- pcSlots++;
159
- }
160
- if (mainLanguage && mainLanguage !== 'Unknown') {
161
- pcSlots++;
162
- }
163
- if (framework && framework !== 'None') {
164
- pcSlots++;
165
- }
166
- if (cssFramework && cssFramework !== 'None') {
167
- pcSlots++;
168
- }
169
- if (uiLibrary && uiLibrary !== 'None') {
170
- pcSlots++;
171
- }
172
- if (stateManagement && stateManagement !== 'None') {
173
- pcSlots++;
174
- }
175
- if (backend && backend !== 'None') {
176
- pcSlots++;
177
- }
178
- if (apiType && apiType !== 'REST API') {
179
- pcSlots++;
180
- }
181
- if (server && server !== 'None') {
182
- pcSlots++;
183
- }
184
- if (database && database !== 'None') {
185
- pcSlots++;
186
- }
187
- if (connection && connection !== 'None') {
188
- pcSlots++;
189
- }
190
- if (hosting && hosting !== 'None') {
191
- pcSlots++;
192
- }
193
- if (buildTool && buildTool !== 'None') {
194
- pcSlots++;
195
- }
196
- if (cicd && cicd !== 'None') {
197
- pcSlots++;
198
- }
199
- // Count PD slots (6 max) - Updated for v2.5.0 nested format
200
- let pdSlots = 0;
201
- // Map v2.5.0 human_context fields to scoring logic (handle nested objects)
202
- const hasWho = fafData.human_context?.who &&
203
- (typeof fafData.human_context.who === 'object' ||
204
- (typeof fafData.human_context.who === 'string' && fafData.human_context.who !== 'Not specified'));
205
- const hasWhat = fafData.human_context?.what &&
206
- (typeof fafData.human_context.what === 'object' ||
207
- (typeof fafData.human_context.what === 'string' && fafData.human_context.what !== 'Not specified'));
208
- const hasWhy = fafData.human_context?.why &&
209
- (typeof fafData.human_context.why === 'object' ||
210
- (typeof fafData.human_context.why === 'string' && fafData.human_context.why !== 'Not specified'));
211
- const hasWhere = fafData.human_context?.where &&
212
- (typeof fafData.human_context.where === 'object' ||
213
- (typeof fafData.human_context.where === 'string' && fafData.human_context.where !== 'Not specified'));
214
- const hasWhen = fafData.human_context?.when &&
215
- (typeof fafData.human_context.when === 'object' ||
216
- (typeof fafData.human_context.when === 'string' && fafData.human_context.when !== 'Not specified'));
217
- const hasHow = fafData.human_context?.how &&
218
- (typeof fafData.human_context.how === 'object' ||
219
- (typeof fafData.human_context.how === 'string' && fafData.human_context.how !== 'Not specified'));
220
- if (hasWho) {
221
- pdSlots++;
222
- }
223
- if (hasWhat) {
224
- pdSlots++;
225
- }
226
- if (hasWhy) {
227
- pdSlots++;
228
- }
229
- if (hasWhere) {
230
- pdSlots++;
231
- }
232
- if (hasWhen) {
233
- pdSlots++;
234
- }
235
- if (hasHow) {
236
- pdSlots++;
237
- }
238
- // Count FILE slots (if files are present) - simplified for CLI
239
- let fileSlots = 0;
240
- if (fafData.files && Array.isArray(fafData.files)) {
241
- // Basic file intelligence scoring for CLI
242
- const totalIntelligence = fafData.files.reduce((sum, file) => sum + (file.intelligenceBonus || 0), 0);
243
- if (totalIntelligence >= 150) {
244
- fileSlots += 15;
245
- }
246
- else if (totalIntelligence >= 100) {
247
- fileSlots += 10;
248
- }
249
- else if (totalIntelligence >= 70) {
250
- fileSlots += 7;
251
- }
252
- else if (totalIntelligence >= 50) {
253
- fileSlots += 5;
254
- }
255
- else if (totalIntelligence >= 30) {
256
- fileSlots += 3;
257
- }
258
- else if (totalIntelligence > 0) {
259
- fileSlots += Math.ceil(totalIntelligence / 10);
260
- }
261
- }
262
- const filledSlots = pcSlots + pdSlots + fileSlots;
263
- const totalSlots = 15 + 6 + fileSlots; // PC + PD + dynamic FILE
264
- // Calculate percentage EXACTLY like UI
265
- const percentage = totalSlots > 0 ? Math.min(100, Math.round((filledSlots / totalSlots) * 100)) : 0;
266
- // Generate section scores for detailed view
267
- const sectionScores = {
268
- project: {
269
- percentage: Math.round((pcSlots / 15) * 100),
270
- filled: pcSlots,
271
- total: 15,
272
- missing: getProjectComponentsMissing(fafData),
273
- },
274
- human_context: {
275
- percentage: Math.round((pdSlots / 6) * 100),
276
- filled: pdSlots,
277
- total: 6,
278
- missing: getProjectDetailsMissing(fafData),
279
- },
280
- };
281
- // Add AI instructions section if present
282
- if (fafData.ai_instructions) {
283
- const aiSlots = calculateAIInstructionsScore(fafData.ai_instructions);
284
- sectionScores.ai_instructions = aiSlots;
285
- }
286
- // Add technical context section if present
287
- if (fafData.technical_context) {
288
- const techSlots = calculateTechnicalContextScore(fafData.technical_context);
289
- sectionScores.technical_context = techSlots;
290
- }
291
- // Generate suggestions
292
- const suggestions = [];
293
- if (pcSlots < 15 && sectionScores.project) {
294
- const missing = sectionScores.project.missing.slice(0, 2);
295
- if (missing.length > 0) {
296
- suggestions.push(`Add ${missing.join(" and ")} to project components`);
297
- }
298
- }
299
- if (pdSlots < 6 && sectionScores.human_context) {
300
- const missing = sectionScores.human_context.missing.slice(0, 2);
301
- if (missing.length > 0) {
302
- suggestions.push(`Add ${missing.join(" and ")} to human context (6 W's)`);
303
- }
304
- }
305
- // Quality indicators - simplified
306
- const qualityIndicators = {
307
- hasAiInstructions: false, // Not used in UI format
308
- hasHumanContext: pdSlots > 0,
309
- hasFreshTimestamp: isTimestampFresh(fafData.generated),
310
- hasQualityPreferences: false, // Not used in UI format
311
- };
312
- return {
313
- totalScore: percentage,
314
- filledSlots,
315
- totalSlots,
316
- sectionScores,
317
- suggestions: suggestions.slice(0, 10),
318
- qualityIndicators,
319
- };
320
- }
321
- /**
322
- * Get missing Project Components fields (v2.5.0 format)
323
- */
324
- function getProjectComponentsMissing(fafData) {
325
- const missing = [];
326
- // Use same mapping logic as scoring
327
- const projectName = fafData.project?.name || fafData.projectName;
328
- const projectGoal = fafData.project?.goal || fafData.instant_context?.what_building || fafData.projectGoal;
329
- const mainLanguage = fafData.instant_context?.main_language || fafData.project?.main_language || fafData.mainLanguage;
330
- const framework = fafData.stack?.frontend || fafData.framework;
331
- const cssFramework = fafData.stack?.css_framework || fafData.cssFramework;
332
- const uiLibrary = fafData.stack?.ui_library || fafData.uiLibrary;
333
- const stateManagement = fafData.stack?.state_management || fafData.stateManagement;
334
- const backend = fafData.stack?.backend || fafData.backend;
335
- const apiType = fafData.stack?.api_type || fafData.apiType;
336
- const server = fafData.stack?.runtime || fafData.server;
337
- const database = fafData.stack?.database || fafData.database;
338
- const connection = fafData.stack?.connection || fafData.connection;
339
- const hosting = fafData.stack?.hosting || fafData.instant_context?.deployment || fafData.hosting;
340
- const buildTool = fafData.stack?.build || fafData.buildTool;
341
- const cicd = fafData.stack?.cicd || fafData.cicd;
342
- if (!projectName || projectName.length < 3) {
343
- missing.push("project.name");
344
- }
345
- if (!projectGoal || projectGoal === 'Project development and deployment') {
346
- missing.push("project.goal");
347
- }
348
- if (!mainLanguage || mainLanguage === 'Unknown') {
349
- missing.push("main_language");
350
- }
351
- if (!framework || framework === 'None') {
352
- missing.push("stack.frontend");
353
- }
354
- if (!cssFramework || cssFramework === 'None') {
355
- missing.push("stack.css_framework");
356
- }
357
- if (!uiLibrary || uiLibrary === 'None') {
358
- missing.push("stack.ui_library");
359
- }
360
- if (!stateManagement || stateManagement === 'None') {
361
- missing.push("stack.state_management");
362
- }
363
- if (!backend || backend === 'None') {
364
- missing.push("stack.backend");
365
- }
366
- if (!apiType || apiType === 'REST API') {
367
- missing.push("stack.api_type");
368
- }
369
- if (!server || server === 'None') {
370
- missing.push("stack.runtime");
371
- }
372
- if (!database || database === 'None') {
373
- missing.push("stack.database");
374
- }
375
- if (!connection || connection === 'None') {
376
- missing.push("stack.connection");
377
- }
378
- if (!hosting || hosting === 'None') {
379
- missing.push("stack.hosting");
380
- }
381
- if (!buildTool || buildTool === 'None') {
382
- missing.push("stack.build");
383
- }
384
- if (!cicd || cicd === 'None') {
385
- missing.push("stack.cicd");
386
- }
387
- return missing;
388
- }
389
- /**
390
- * Get missing Project Details (6 W's) fields (v2.5.0 format)
391
- */
392
- function getProjectDetailsMissing(fafData) {
393
- const missing = [];
394
- // Use same mapping logic as scoring
395
- const targetUser = fafData.human_context?.who || fafData.targetUser;
396
- const coreProblem = fafData.human_context?.what || fafData.coreProblem;
397
- const missionPurpose = fafData.human_context?.why || fafData.missionPurpose;
398
- const deploymentMarket = fafData.human_context?.where || fafData.deploymentMarket;
399
- const timeline = fafData.human_context?.when || fafData.timeline;
400
- const approach = fafData.human_context?.how || fafData.approach;
401
- if (!targetUser || targetUser === 'Not specified') {
402
- missing.push("human_context.who (WHO)");
403
- }
404
- if (!coreProblem || coreProblem === 'Not specified') {
405
- missing.push("human_context.what (WHAT)");
406
- }
407
- if (!missionPurpose || missionPurpose === 'Not specified') {
408
- missing.push("human_context.why (WHY)");
409
- }
410
- if (!deploymentMarket || deploymentMarket === 'Not specified') {
411
- missing.push("human_context.where (WHERE)");
412
- }
413
- if (!timeline || timeline === 'Not specified') {
414
- missing.push("human_context.when (WHEN)");
415
- }
416
- if (!approach || approach === 'Not specified') {
417
- missing.push("human_context.how (HOW)");
418
- }
419
- return missing;
420
- }
421
- /**
422
- * Calculate AI Instructions section score
423
- */
424
- function calculateAIInstructionsScore(aiInstructions) {
425
- let filled = 0;
426
- const total = 5; // 5 key AI instruction elements
427
- const missing = [];
428
- if (aiInstructions.priority) {
429
- filled++;
430
- }
431
- else {
432
- missing.push('ai_instructions.priority');
433
- }
434
- if (aiInstructions.message) {
435
- filled++;
436
- }
437
- else {
438
- missing.push('ai_instructions.message');
439
- }
440
- if (aiInstructions.guidelines && Array.isArray(aiInstructions.guidelines) && aiInstructions.guidelines.length > 0) {
441
- filled++;
442
- }
443
- else {
444
- missing.push('ai_instructions.guidelines');
445
- }
446
- if (aiInstructions.priority_order) {
447
- filled++;
448
- }
449
- else {
450
- missing.push('ai_instructions.priority_order');
451
- }
452
- if (aiInstructions.working_style) {
453
- filled++;
454
- }
455
- else {
456
- missing.push('ai_instructions.working_style');
457
- }
458
- return {
459
- percentage: Math.round((filled / total) * 100),
460
- filled,
461
- total,
462
- missing
463
- };
464
- }
465
- /**
466
- * Calculate Technical Context section score
467
- */
468
- function calculateTechnicalContextScore(techContext) {
469
- let filled = 0;
470
- const total = 4; // 4 key technical context elements
471
- const missing = [];
472
- if (techContext.architecture) {
473
- filled++;
474
- }
475
- else {
476
- missing.push('technical_context.architecture');
477
- }
478
- if (techContext.tech_stack) {
479
- filled++;
480
- }
481
- else {
482
- missing.push('technical_context.tech_stack');
483
- }
484
- if (techContext.key_files && Array.isArray(techContext.key_files) && techContext.key_files.length > 0) {
485
- filled++;
486
- }
487
- else {
488
- missing.push('technical_context.key_files');
489
- }
490
- if (techContext.patterns || techContext.infrastructure) {
491
- filled++;
492
- }
493
- else {
494
- missing.push('technical_context.patterns');
495
- }
496
- return {
497
- percentage: Math.round((filled / total) * 100),
498
- filled,
499
- total,
500
- missing
501
- };
502
- }
503
- /**
504
- * Check if timestamp is fresh (within 30 days)
505
- */
506
- function isTimestampFresh(timestamp) {
507
- if (!timestamp) {
508
- return false;
509
- }
510
- try {
511
- const date = new Date(timestamp);
512
- const now = new Date();
513
- const daysDiff = Math.abs(now.getTime() - date.getTime()) / (1000 * 60 * 60 * 24);
514
- return daysDiff <= 30;
515
- }
516
- catch {
517
- return false;
518
- }
519
- }
520
- //# sourceMappingURL=score-calculator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"score-calculator.js","sourceRoot":"","sources":["../../src/scoring/score-calculator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * 🏆 MANUAL VALIDATION SCRIPT
3
- *
4
- * Quick test to validate the universal pattern works with real data
5
- * Run this to see the pattern in action!
6
- */
7
- export {};
8
- //# sourceMappingURL=manual-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manual-validation.d.ts","sourceRoot":"","sources":["../../src/tests/manual-validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}