faf-mcp 1.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 +34 -0
- package/CLAUDE.md +73 -0
- package/LICENSE +22 -0
- package/README.md +165 -0
- package/assets/Project-faf-pckg-json-README.png +0 -0
- package/assets/icons/faf-icon-128.png +0 -0
- package/assets/icons/faf-icon-256.png +0 -0
- package/assets/icons/faf-icon-48.png +0 -0
- package/assets/icons/faf-icon-512.png +0 -0
- package/assets/icons/orange-smiley.svg +6 -0
- package/dist/src/compiler/index.d.ts +7 -0
- package/dist/src/compiler/index.js +24 -0
- package/dist/src/compiler/index.js.map +1 -0
- package/dist/src/compiler/scorer.d.ts +53 -0
- package/dist/src/compiler/scorer.js +189 -0
- package/dist/src/compiler/scorer.js.map +1 -0
- package/dist/src/compiler/slot-validator.d.ts +32 -0
- package/dist/src/compiler/slot-validator.js +293 -0
- package/dist/src/compiler/slot-validator.js.map +1 -0
- package/dist/src/compiler/type-detector.d.ts +62 -0
- package/dist/src/compiler/type-detector.js +388 -0
- package/dist/src/compiler/type-detector.js.map +1 -0
- package/dist/src/config/visibility.d.ts +41 -0
- package/dist/src/config/visibility.js +158 -0
- package/dist/src/config/visibility.js.map +1 -0
- package/dist/src/faf-core/commands/audit.d.ts +21 -0
- package/dist/src/faf-core/commands/audit.js +83 -0
- package/dist/src/faf-core/commands/audit.js.map +1 -0
- package/dist/src/faf-core/commands/auto.d.ts +25 -0
- package/dist/src/faf-core/commands/auto.js +74 -0
- package/dist/src/faf-core/commands/auto.js.map +1 -0
- package/dist/src/faf-core/commands/bi-sync.d.ts +26 -0
- package/dist/src/faf-core/commands/bi-sync.js +157 -0
- package/dist/src/faf-core/commands/bi-sync.js.map +1 -0
- package/dist/src/faf-core/commands/doctor.d.ts +17 -0
- package/dist/src/faf-core/commands/doctor.js +198 -0
- package/dist/src/faf-core/commands/doctor.js.map +1 -0
- package/dist/src/faf-core/commands/enhance.d.ts +46 -0
- package/dist/src/faf-core/commands/enhance.js +360 -0
- package/dist/src/faf-core/commands/enhance.js.map +1 -0
- package/dist/src/faf-core/commands/formats.d.ts +22 -0
- package/dist/src/faf-core/commands/formats.js +117 -0
- package/dist/src/faf-core/commands/formats.js.map +1 -0
- package/dist/src/faf-core/commands/init.d.ts +26 -0
- package/dist/src/faf-core/commands/init.js +114 -0
- package/dist/src/faf-core/commands/init.js.map +1 -0
- package/dist/src/faf-core/commands/innit.d.ts +7 -0
- package/dist/src/faf-core/commands/innit.js +13 -0
- package/dist/src/faf-core/commands/innit.js.map +1 -0
- package/dist/src/faf-core/commands/migrate.d.ts +15 -0
- package/dist/src/faf-core/commands/migrate.js +86 -0
- package/dist/src/faf-core/commands/migrate.js.map +1 -0
- package/dist/src/faf-core/commands/quick.d.ts +16 -0
- package/dist/src/faf-core/commands/quick.js +184 -0
- package/dist/src/faf-core/commands/quick.js.map +1 -0
- package/dist/src/faf-core/commands/score.d.ts +47 -0
- package/dist/src/faf-core/commands/score.js +49 -0
- package/dist/src/faf-core/commands/score.js.map +1 -0
- package/dist/src/faf-core/commands/sync.d.ts +16 -0
- package/dist/src/faf-core/commands/sync.js +210 -0
- package/dist/src/faf-core/commands/sync.js.map +1 -0
- package/dist/src/faf-core/commands/update.d.ts +12 -0
- package/dist/src/faf-core/commands/update.js +46 -0
- package/dist/src/faf-core/commands/update.js.map +1 -0
- package/dist/src/faf-core/commands/validate.d.ts +21 -0
- package/dist/src/faf-core/commands/validate.js +81 -0
- package/dist/src/faf-core/commands/validate.js.map +1 -0
- package/dist/src/faf-core/compiler/faf-compiler.d.ts +138 -0
- package/dist/src/faf-core/compiler/faf-compiler.js +794 -0
- package/dist/src/faf-core/compiler/faf-compiler.js.map +1 -0
- package/dist/src/faf-core/engines/dependency-tsa.d.ts +88 -0
- package/dist/src/faf-core/engines/dependency-tsa.js +361 -0
- package/dist/src/faf-core/engines/dependency-tsa.js.map +1 -0
- package/dist/src/faf-core/engines/fab-formats-processor.d.ts +166 -0
- package/dist/src/faf-core/engines/fab-formats-processor.js +1274 -0
- package/dist/src/faf-core/engines/fab-formats-processor.js.map +1 -0
- package/dist/src/faf-core/engines/faf-dna.d.ts +159 -0
- package/dist/src/faf-core/engines/faf-dna.js +554 -0
- package/dist/src/faf-core/engines/faf-dna.js.map +1 -0
- package/dist/src/faf-core/engines/relentless-context-extractor.d.ts +100 -0
- package/dist/src/faf-core/engines/relentless-context-extractor.js +625 -0
- package/dist/src/faf-core/engines/relentless-context-extractor.js.map +1 -0
- package/dist/src/faf-core/fix-once/colors.d.ts +104 -0
- package/dist/src/faf-core/fix-once/colors.js +236 -0
- package/dist/src/faf-core/fix-once/colors.js.map +1 -0
- package/dist/src/faf-core/fix-once/types.d.ts +257 -0
- package/dist/src/faf-core/fix-once/types.js +26 -0
- package/dist/src/faf-core/fix-once/types.js.map +1 -0
- package/dist/src/faf-core/fix-once/yaml.d.ts +57 -0
- package/dist/src/faf-core/fix-once/yaml.js +172 -0
- package/dist/src/faf-core/fix-once/yaml.js.map +1 -0
- package/dist/src/faf-core/generators/faf-generator-championship.d.ts +16 -0
- package/dist/src/faf-core/generators/faf-generator-championship.js +462 -0
- package/dist/src/faf-core/generators/faf-generator-championship.js.map +1 -0
- package/dist/src/faf-core/utils/balance-visualizer.d.ts +37 -0
- package/dist/src/faf-core/utils/balance-visualizer.js +197 -0
- package/dist/src/faf-core/utils/balance-visualizer.js.map +1 -0
- package/dist/src/faf-core/utils/championship-style.d.ts +109 -0
- package/dist/src/faf-core/utils/championship-style.js +219 -0
- package/dist/src/faf-core/utils/championship-style.js.map +1 -0
- package/dist/src/faf-core/utils/chrome-extension-detector.d.ts +73 -0
- package/dist/src/faf-core/utils/chrome-extension-detector.js +268 -0
- package/dist/src/faf-core/utils/chrome-extension-detector.js.map +1 -0
- package/dist/src/faf-core/utils/fafignore-parser.d.ts +20 -0
- package/dist/src/faf-core/utils/fafignore-parser.js +178 -0
- package/dist/src/faf-core/utils/fafignore-parser.js.map +1 -0
- package/dist/src/faf-core/utils/file-utils.d.ts +112 -0
- package/dist/src/faf-core/utils/file-utils.js +846 -0
- package/dist/src/faf-core/utils/file-utils.js.map +1 -0
- package/dist/src/faf-core/utils/native-file-finder.d.ts +115 -0
- package/dist/src/faf-core/utils/native-file-finder.js +211 -0
- package/dist/src/faf-core/utils/native-file-finder.js.map +1 -0
- package/dist/src/faf-core/utils/platform-detector.d.ts +30 -0
- package/dist/src/faf-core/utils/platform-detector.js +218 -0
- package/dist/src/faf-core/utils/platform-detector.js.map +1 -0
- package/dist/src/faf-core/utils/technical-credit.d.ts +35 -0
- package/dist/src/faf-core/utils/technical-credit.js +286 -0
- package/dist/src/faf-core/utils/technical-credit.js.map +1 -0
- package/dist/src/faf-core/utils/yaml-generator.d.ts +41 -0
- package/dist/src/faf-core/utils/yaml-generator.js +360 -0
- package/dist/src/faf-core/utils/yaml-generator.js.map +1 -0
- package/dist/src/handlers/behavioral-instruction.d.ts +16 -0
- package/dist/src/handlers/behavioral-instruction.js +43 -0
- package/dist/src/handlers/behavioral-instruction.js.map +1 -0
- package/dist/src/handlers/championship-tools.d.ts +113 -0
- package/dist/src/handlers/championship-tools.js +2602 -0
- package/dist/src/handlers/championship-tools.js.map +1 -0
- package/dist/src/handlers/engine-adapter.d.ts +28 -0
- package/dist/src/handlers/engine-adapter.js +603 -0
- package/dist/src/handlers/engine-adapter.js.map +1 -0
- package/dist/src/handlers/fileHandler.d.ts +36 -0
- package/dist/src/handlers/fileHandler.js +246 -0
- package/dist/src/handlers/fileHandler.js.map +1 -0
- package/dist/src/handlers/resources.d.ts +18 -0
- package/dist/src/handlers/resources.js +78 -0
- package/dist/src/handlers/resources.js.map +1 -0
- package/dist/src/handlers/tool-registry.d.ts +23 -0
- package/dist/src/handlers/tool-registry.js +68 -0
- package/dist/src/handlers/tool-registry.js.map +1 -0
- package/dist/src/handlers/tool-types.d.ts +167 -0
- package/dist/src/handlers/tool-types.js +7 -0
- package/dist/src/handlers/tool-types.js.map +1 -0
- package/dist/src/handlers/tools.d.ts +25 -0
- package/dist/src/handlers/tools.js +1168 -0
- package/dist/src/handlers/tools.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +17 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/server.d.ts +28 -0
- package/dist/src/server.js +179 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/test-all-functions.d.ts +15 -0
- package/dist/src/test-all-functions.js +163 -0
- package/dist/src/test-all-functions.js.map +1 -0
- package/dist/src/types/mcp-tools.d.ts +53 -0
- package/dist/src/types/mcp-tools.js +77 -0
- package/dist/src/types/mcp-tools.js.map +1 -0
- package/dist/src/types/project-types.d.ts +22 -0
- package/dist/src/types/project-types.js +85 -0
- package/dist/src/types/project-types.js.map +1 -0
- package/dist/src/types/slots.d.ts +39 -0
- package/dist/src/types/slots.js +162 -0
- package/dist/src/types/slots.js.map +1 -0
- package/dist/src/types/tool-visibility.d.ts +36 -0
- package/dist/src/types/tool-visibility.js +510 -0
- package/dist/src/types/tool-visibility.js.map +1 -0
- package/dist/src/utils/auto-path-detection.d.ts +26 -0
- package/dist/src/utils/auto-path-detection.js +198 -0
- package/dist/src/utils/auto-path-detection.js.map +1 -0
- package/dist/src/utils/championship-format.d.ts +30 -0
- package/dist/src/utils/championship-format.js +79 -0
- package/dist/src/utils/championship-format.js.map +1 -0
- package/dist/src/utils/cli-detector.d.ts +20 -0
- package/dist/src/utils/cli-detector.js +230 -0
- package/dist/src/utils/cli-detector.js.map +1 -0
- package/dist/src/utils/display-protocol.d.ts +57 -0
- package/dist/src/utils/display-protocol.js +131 -0
- package/dist/src/utils/display-protocol.js.map +1 -0
- package/dist/src/utils/faf-file-finder.d.ts +59 -0
- package/dist/src/utils/faf-file-finder.js +139 -0
- package/dist/src/utils/faf-file-finder.js.map +1 -0
- package/dist/src/utils/fuzzy-detector.d.ts +56 -0
- package/dist/src/utils/fuzzy-detector.js +221 -0
- package/dist/src/utils/fuzzy-detector.js.map +1 -0
- package/dist/src/utils/path-resolver.d.ts +51 -0
- package/dist/src/utils/path-resolver.js +214 -0
- package/dist/src/utils/path-resolver.js.map +1 -0
- package/dist/src/utils/type-guards.d.ts +9 -0
- package/dist/src/utils/type-guards.js +27 -0
- package/dist/src/utils/type-guards.js.map +1 -0
- package/dist/src/utils/username-detector.d.ts +27 -0
- package/dist/src/utils/username-detector.js +90 -0
- package/dist/src/utils/username-detector.js.map +1 -0
- package/dist/src/utils/visual-style.d.ts +62 -0
- package/dist/src/utils/visual-style.js +164 -0
- package/dist/src/utils/visual-style.js.map +1 -0
- package/dist/src/version.d.ts +9 -0
- package/dist/src/version.js +37 -0
- package/dist/src/version.js.map +1 -0
- package/package.json +114 -0
- package/scripts/discord-sync-curated.js +233 -0
- package/scripts/discord-sync-final.js +218 -0
- package/scripts/discord-sync-simple.js +175 -0
- package/scripts/discord-sync-working.js +187 -0
- package/scripts/discord-sync.js +181 -0
- package/scripts/postinstall.js +46 -0
- package/skill/SKILL.md +385 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 💎 Technical Credit System - Revolutionary credit generation instead of debt
|
|
3
|
+
* Transform developer psychology from anxiety to confidence
|
|
4
|
+
*/
|
|
5
|
+
export interface TechnicalCredit {
|
|
6
|
+
current: number;
|
|
7
|
+
earned: CreditSource[];
|
|
8
|
+
impact: string[];
|
|
9
|
+
trending: 'up' | 'down' | 'stable';
|
|
10
|
+
lastUpdated: Date;
|
|
11
|
+
}
|
|
12
|
+
export interface CreditSource {
|
|
13
|
+
action: string;
|
|
14
|
+
points: number;
|
|
15
|
+
timestamp: Date;
|
|
16
|
+
impact: string;
|
|
17
|
+
category: CreditCategory;
|
|
18
|
+
}
|
|
19
|
+
export type CreditCategory = 'context_improvement' | 'ai_compatibility' | 'performance' | 'completeness' | 'sync_harmony' | 'stack_discovery' | 'trust_building';
|
|
20
|
+
/**
|
|
21
|
+
* Load current technical credit status
|
|
22
|
+
*/
|
|
23
|
+
export declare function loadTechnicalCredit(fafPath?: string): Promise<TechnicalCredit>;
|
|
24
|
+
/**
|
|
25
|
+
* Award technical credit for specific actions
|
|
26
|
+
*/
|
|
27
|
+
export declare function awardCredit(action: string, category: CreditCategory, impact: string, fafPath?: string): Promise<number>;
|
|
28
|
+
/**
|
|
29
|
+
* Display technical credit dashboard
|
|
30
|
+
*/
|
|
31
|
+
export declare function displayCreditDashboard(fafPath?: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Auto-award credit for common actions
|
|
34
|
+
*/
|
|
35
|
+
export declare function autoAwardCredit(trigger: 'init_success' | 'score_improved' | 'sync_success' | 'validation_passed' | 'ai_happy', fafPath?: string): Promise<void>;
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 💎 Technical Credit System - Revolutionary credit generation instead of debt
|
|
4
|
+
* Transform developer psychology from anxiety to confidence
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.loadTechnicalCredit = loadTechnicalCredit;
|
|
11
|
+
exports.awardCredit = awardCredit;
|
|
12
|
+
exports.displayCreditDashboard = displayCreditDashboard;
|
|
13
|
+
exports.autoAwardCredit = autoAwardCredit;
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
|
+
const os_1 = __importDefault(require("os"));
|
|
17
|
+
const championship_style_1 = require("./championship-style");
|
|
18
|
+
// Credit scoring system
|
|
19
|
+
const CREDIT_VALUES = {
|
|
20
|
+
context_improvement: 5,
|
|
21
|
+
ai_compatibility: 8,
|
|
22
|
+
performance: 3,
|
|
23
|
+
completeness: 6,
|
|
24
|
+
sync_harmony: 4,
|
|
25
|
+
stack_discovery: 7,
|
|
26
|
+
trust_building: 10
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Get technical credit cache file path
|
|
30
|
+
*/
|
|
31
|
+
function getCreditCachePath() {
|
|
32
|
+
const cacheDir = path_1.default.join(os_1.default.homedir(), '.faf-cli-cache');
|
|
33
|
+
return path_1.default.join(cacheDir, 'technical-credit.json');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Ensure cache directory exists
|
|
37
|
+
*/
|
|
38
|
+
async function ensureCacheDir() {
|
|
39
|
+
const cacheDir = path_1.default.dirname(getCreditCachePath());
|
|
40
|
+
try {
|
|
41
|
+
await fs_1.promises.mkdir(cacheDir, { recursive: true });
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Directory already exists, ignore
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Load current technical credit status
|
|
49
|
+
*/
|
|
50
|
+
async function loadTechnicalCredit(fafPath) {
|
|
51
|
+
try {
|
|
52
|
+
const cachePath = getCreditCachePath();
|
|
53
|
+
const cacheData = await fs_1.promises.readFile(cachePath, 'utf-8');
|
|
54
|
+
const allCredits = JSON.parse(cacheData);
|
|
55
|
+
// Get credit for specific project or global
|
|
56
|
+
const projectKey = fafPath ? path_1.default.resolve(fafPath) : 'global';
|
|
57
|
+
const credit = allCredits[projectKey];
|
|
58
|
+
if (!credit) {
|
|
59
|
+
return createInitialCredit();
|
|
60
|
+
}
|
|
61
|
+
// Convert timestamps back to Date objects
|
|
62
|
+
credit.lastUpdated = new Date(credit.lastUpdated);
|
|
63
|
+
credit.earned = credit.earned.map((source) => ({
|
|
64
|
+
...source,
|
|
65
|
+
timestamp: new Date(source.timestamp)
|
|
66
|
+
}));
|
|
67
|
+
return credit;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return createInitialCredit();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create initial credit state
|
|
75
|
+
*/
|
|
76
|
+
function createInitialCredit() {
|
|
77
|
+
return {
|
|
78
|
+
current: 0,
|
|
79
|
+
earned: [],
|
|
80
|
+
impact: [],
|
|
81
|
+
trending: 'stable',
|
|
82
|
+
lastUpdated: new Date()
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Award technical credit for specific actions
|
|
87
|
+
*/
|
|
88
|
+
async function awardCredit(action, category, impact, fafPath) {
|
|
89
|
+
try {
|
|
90
|
+
await ensureCacheDir();
|
|
91
|
+
// Load current credit
|
|
92
|
+
const credit = await loadTechnicalCredit(fafPath);
|
|
93
|
+
// Calculate points
|
|
94
|
+
const points = CREDIT_VALUES[category];
|
|
95
|
+
// Add new credit source
|
|
96
|
+
const newSource = {
|
|
97
|
+
action,
|
|
98
|
+
points,
|
|
99
|
+
timestamp: new Date(),
|
|
100
|
+
impact,
|
|
101
|
+
category
|
|
102
|
+
};
|
|
103
|
+
credit.earned.push(newSource);
|
|
104
|
+
credit.current += points;
|
|
105
|
+
credit.impact.push(impact);
|
|
106
|
+
credit.lastUpdated = new Date();
|
|
107
|
+
// Calculate trending
|
|
108
|
+
const recentEarnings = credit.earned
|
|
109
|
+
.filter(s => Date.now() - s.timestamp.getTime() < 7 * 24 * 60 * 60 * 1000) // Last 7 days
|
|
110
|
+
.reduce((sum, s) => sum + s.points, 0);
|
|
111
|
+
if (recentEarnings > 20) {
|
|
112
|
+
credit.trending = 'up';
|
|
113
|
+
}
|
|
114
|
+
else if (recentEarnings < 5) {
|
|
115
|
+
credit.trending = 'down';
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
credit.trending = 'stable';
|
|
119
|
+
}
|
|
120
|
+
// Save updated credit (will silently fail if no permissions)
|
|
121
|
+
await saveTechnicalCredit(credit, fafPath);
|
|
122
|
+
// Check if we can actually write to cache before showing message
|
|
123
|
+
const cacheDir = path_1.default.join(require('os').homedir(), '.faf-cli-cache');
|
|
124
|
+
try {
|
|
125
|
+
await fs_1.promises.access(cacheDir, fs_1.promises.constants.W_OK);
|
|
126
|
+
// Only show achievement message if we have write access
|
|
127
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.gem} ${championship_style_1.BRAND_MESSAGES.achievement} +${points} points`));
|
|
128
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(`└─ ${impact}`));
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// No write access - skip the message
|
|
132
|
+
}
|
|
133
|
+
return points;
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
// Silently fail - technical credit is optional
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Save technical credit to cache
|
|
142
|
+
*/
|
|
143
|
+
async function saveTechnicalCredit(credit, fafPath) {
|
|
144
|
+
try {
|
|
145
|
+
const cachePath = getCreditCachePath();
|
|
146
|
+
// Load existing cache
|
|
147
|
+
let allCredits = {};
|
|
148
|
+
try {
|
|
149
|
+
const existing = await fs_1.promises.readFile(cachePath, 'utf-8');
|
|
150
|
+
allCredits = JSON.parse(existing);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// Cache doesn't exist yet, start fresh
|
|
154
|
+
}
|
|
155
|
+
// Update credit for specific project or global
|
|
156
|
+
const projectKey = fafPath ? path_1.default.resolve(fafPath) : 'global';
|
|
157
|
+
allCredits[projectKey] = credit;
|
|
158
|
+
// Save updated cache
|
|
159
|
+
await fs_1.promises.writeFile(cachePath, JSON.stringify(allCredits, null, 2));
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
// Silently fail - technical credit is optional and shouldn't scare newbies
|
|
163
|
+
// The error is usually just permission issues in sandboxed environments
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Display technical credit dashboard
|
|
168
|
+
*/
|
|
169
|
+
async function displayCreditDashboard(fafPath) {
|
|
170
|
+
const credit = await loadTechnicalCredit(fafPath);
|
|
171
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.gem} Technical Credit Dashboard`));
|
|
172
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan('├─────────────────────────────────'));
|
|
173
|
+
// Current balance with trending indicator
|
|
174
|
+
const trendingEmoji = credit.trending === 'up' ? '📈' :
|
|
175
|
+
credit.trending === 'down' ? '📉' : '➡️';
|
|
176
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Balance: ${championship_style_1.FAF_COLORS.fafGreen(`${credit.current} credits`)} ${trendingEmoji}`);
|
|
177
|
+
// Credit level
|
|
178
|
+
const level = getCreditLevel(credit.current);
|
|
179
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Level: ${level.name} ${level.emoji}`);
|
|
180
|
+
// Recent earnings
|
|
181
|
+
const recentEarnings = credit.earned
|
|
182
|
+
.filter(s => Date.now() - s.timestamp.getTime() < 7 * 24 * 60 * 60 * 1000)
|
|
183
|
+
.length;
|
|
184
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Recent Activity: ${recentEarnings} actions (7 days)`);
|
|
185
|
+
// Top credit sources
|
|
186
|
+
if (credit.earned.length > 0) {
|
|
187
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Top Sources:`);
|
|
188
|
+
const topSources = credit.earned
|
|
189
|
+
.slice(-3)
|
|
190
|
+
.reverse();
|
|
191
|
+
topSources.forEach(source => {
|
|
192
|
+
const timeAgo = getTimeAgo(source.timestamp);
|
|
193
|
+
console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}+${source.points} ${source.impact} (${timeAgo})`);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan('└─────────────────────────────────'));
|
|
197
|
+
// Championship message
|
|
198
|
+
if (credit.current >= 100) {
|
|
199
|
+
console.log();
|
|
200
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.trophy} ${championship_style_1.BRAND_MESSAGES.podium_celebration}`));
|
|
201
|
+
}
|
|
202
|
+
else if (credit.trending === 'up') {
|
|
203
|
+
console.log();
|
|
204
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.chart_up} Keep building credit! Next milestone: ${getNextMilestone(credit.current)} credits`));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get credit level based on points
|
|
209
|
+
*/
|
|
210
|
+
function getCreditLevel(points) {
|
|
211
|
+
if (points >= 200) {
|
|
212
|
+
return { name: 'Championship', emoji: '🏆' };
|
|
213
|
+
}
|
|
214
|
+
if (points >= 100) {
|
|
215
|
+
return { name: 'Professional', emoji: '💎' };
|
|
216
|
+
}
|
|
217
|
+
if (points >= 50) {
|
|
218
|
+
return { name: 'Advanced', emoji: '⚡️' };
|
|
219
|
+
}
|
|
220
|
+
if (points >= 20) {
|
|
221
|
+
return { name: 'Developing', emoji: '🚀' };
|
|
222
|
+
}
|
|
223
|
+
if (points >= 5) {
|
|
224
|
+
return { name: 'Started', emoji: '🌱' };
|
|
225
|
+
}
|
|
226
|
+
return { name: 'Beginner', emoji: '🏁' };
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get next milestone
|
|
230
|
+
*/
|
|
231
|
+
function getNextMilestone(current) {
|
|
232
|
+
const milestones = [5, 20, 50, 100, 200];
|
|
233
|
+
return milestones.find(m => m > current) || current + 100;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get human readable time ago
|
|
237
|
+
*/
|
|
238
|
+
function getTimeAgo(date) {
|
|
239
|
+
const now = new Date();
|
|
240
|
+
const diffMs = now.getTime() - date.getTime();
|
|
241
|
+
const diffMins = Math.floor(diffMs / (1000 * 60));
|
|
242
|
+
const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
|
|
243
|
+
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
244
|
+
if (diffMins < 60) {
|
|
245
|
+
return `${diffMins}m ago`;
|
|
246
|
+
}
|
|
247
|
+
if (diffHours < 24) {
|
|
248
|
+
return `${diffHours}h ago`;
|
|
249
|
+
}
|
|
250
|
+
return `${diffDays}d ago`;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Auto-award credit for common actions
|
|
254
|
+
*/
|
|
255
|
+
async function autoAwardCredit(trigger, fafPath) {
|
|
256
|
+
const actions = {
|
|
257
|
+
init_success: {
|
|
258
|
+
action: 'Created .faf file',
|
|
259
|
+
category: 'context_improvement',
|
|
260
|
+
impact: 'Perfect AI context established'
|
|
261
|
+
},
|
|
262
|
+
score_improved: {
|
|
263
|
+
action: 'Improved context score',
|
|
264
|
+
category: 'completeness',
|
|
265
|
+
impact: 'Better AI understanding achieved'
|
|
266
|
+
},
|
|
267
|
+
sync_success: {
|
|
268
|
+
action: 'Synchronized files',
|
|
269
|
+
category: 'sync_harmony',
|
|
270
|
+
impact: 'Bi-sync harmony maintained'
|
|
271
|
+
},
|
|
272
|
+
validation_passed: {
|
|
273
|
+
action: 'Validation successful',
|
|
274
|
+
category: 'context_improvement',
|
|
275
|
+
impact: 'Context quality verified'
|
|
276
|
+
},
|
|
277
|
+
ai_happy: {
|
|
278
|
+
action: 'AI happiness improved',
|
|
279
|
+
category: 'ai_compatibility',
|
|
280
|
+
impact: 'AI trust and confidence boosted'
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
const config = actions[trigger];
|
|
284
|
+
await awardCredit(config.action, config.category, config.impact, fafPath);
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=technical-credit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"technical-credit.js","sourceRoot":"","sources":["../../../../src/faf-core/utils/technical-credit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI-Optimized YAML Generator v2.5.0
|
|
3
|
+
* Generates .faf files with instant AI onboarding structure
|
|
4
|
+
*/
|
|
5
|
+
export declare function unescapeFromYaml(value: string): string;
|
|
6
|
+
export declare function escapeForYaml(value: string | undefined): string;
|
|
7
|
+
export declare function generateFafContent(projectData: {
|
|
8
|
+
projectName: string;
|
|
9
|
+
projectGoal?: string | undefined;
|
|
10
|
+
mainLanguage: string;
|
|
11
|
+
framework: string;
|
|
12
|
+
cssFramework?: string;
|
|
13
|
+
uiLibrary?: string;
|
|
14
|
+
stateManagement?: string;
|
|
15
|
+
backend: string;
|
|
16
|
+
apiType: string;
|
|
17
|
+
server: string;
|
|
18
|
+
database: string;
|
|
19
|
+
connection: string;
|
|
20
|
+
hosting: string;
|
|
21
|
+
buildTool: string;
|
|
22
|
+
packageManager?: string;
|
|
23
|
+
cicd: string;
|
|
24
|
+
fafScore: number;
|
|
25
|
+
slotBasedPercentage: number;
|
|
26
|
+
projectType?: string;
|
|
27
|
+
targetUser?: string;
|
|
28
|
+
coreProblem?: string;
|
|
29
|
+
missionPurpose?: string;
|
|
30
|
+
deploymentMarket?: string;
|
|
31
|
+
timeline?: string;
|
|
32
|
+
approach?: string;
|
|
33
|
+
additionalWho?: string[];
|
|
34
|
+
additionalWhat?: string[];
|
|
35
|
+
additionalWhy?: string[];
|
|
36
|
+
additionalWhere?: string[];
|
|
37
|
+
additionalWhen?: string[];
|
|
38
|
+
additionalHow?: string[];
|
|
39
|
+
projectDetailsScore?: number;
|
|
40
|
+
projectSuccessRate?: number;
|
|
41
|
+
}): string;
|