faf-mcp 2.3.0 → 3.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 (178) hide show
  1. package/CHANGELOG.md +42 -3
  2. package/CLAUDE.md +7 -7
  3. package/README.md +73 -74
  4. package/dist/src/faf-core/commands/bi-sync.d.ts +1 -3
  5. package/dist/src/faf-core/commands/bi-sync.js +21 -64
  6. package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
  7. package/dist/src/faf-core/commands/sync.js.map +1 -1
  8. package/dist/src/faf-core/engines/dependency-tsa.js.map +1 -1
  9. package/dist/src/faf-core/fix-once/colors.js +1 -1
  10. package/dist/src/faf-core/fix-once/colors.js.map +1 -1
  11. package/dist/src/faf-core/parsers/agents-parser.d.ts +15 -0
  12. package/dist/src/faf-core/parsers/agents-parser.js +29 -123
  13. package/dist/src/faf-core/parsers/agents-parser.js.map +1 -1
  14. package/dist/src/faf-core/parsers/conductor-parser.js +1 -1
  15. package/dist/src/faf-core/parsers/conductor-parser.js.map +1 -1
  16. package/dist/src/faf-core/parsers/cursorrules-parser.d.ts +15 -0
  17. package/dist/src/faf-core/parsers/cursorrules-parser.js +54 -111
  18. package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -1
  19. package/dist/src/faf-core/parsers/faf-git-generator.js +0 -1
  20. package/dist/src/faf-core/parsers/faf-git-generator.js.map +1 -1
  21. package/dist/src/faf-core/parsers/gemini-parser.d.ts +10 -0
  22. package/dist/src/faf-core/parsers/gemini-parser.js +19 -77
  23. package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -1
  24. package/dist/src/handlers/engine-adapter.d.ts +13 -12
  25. package/dist/src/handlers/engine-adapter.js +124 -688
  26. package/dist/src/handlers/engine-adapter.js.map +1 -1
  27. package/dist/src/handlers/resources.d.ts +19 -1
  28. package/dist/src/handlers/resources.js +108 -23
  29. package/dist/src/handlers/resources.js.map +1 -1
  30. package/dist/src/handlers/skills.d.ts +70 -0
  31. package/dist/src/handlers/skills.js +174 -0
  32. package/dist/src/handlers/skills.js.map +1 -0
  33. package/dist/src/handlers/tools.d.ts +41 -5
  34. package/dist/src/handlers/tools.js +213 -258
  35. package/dist/src/handlers/tools.js.map +1 -1
  36. package/dist/src/server.d.ts +4 -0
  37. package/dist/src/server.js +51 -6
  38. package/dist/src/server.js.map +1 -1
  39. package/dist/src/utils/faf-cli-bridge.d.ts +2 -0
  40. package/dist/src/utils/faf-cli-bridge.js +16 -0
  41. package/dist/src/utils/faf-cli-bridge.js.map +1 -1
  42. package/package.json +17 -14
  43. package/project.faf +23 -5
  44. package/scripts/check-engines.mjs +53 -0
  45. package/scripts/run-tests.sh +54 -0
  46. package/scripts/sync-version.js +33 -19
  47. package/skills/faf-ide/SKILL.md +40 -0
  48. package/dist/src/config/visibility.d.ts +0 -41
  49. package/dist/src/config/visibility.js +0 -158
  50. package/dist/src/config/visibility.js.map +0 -1
  51. package/dist/src/faf-core/commands/audit.d.ts +0 -21
  52. package/dist/src/faf-core/commands/audit.js +0 -83
  53. package/dist/src/faf-core/commands/audit.js.map +0 -1
  54. package/dist/src/faf-core/commands/auto.d.ts +0 -25
  55. package/dist/src/faf-core/commands/auto.js +0 -74
  56. package/dist/src/faf-core/commands/auto.js.map +0 -1
  57. package/dist/src/faf-core/commands/doctor.d.ts +0 -17
  58. package/dist/src/faf-core/commands/doctor.js +0 -198
  59. package/dist/src/faf-core/commands/doctor.js.map +0 -1
  60. package/dist/src/faf-core/commands/enhance.d.ts +0 -46
  61. package/dist/src/faf-core/commands/enhance.js +0 -360
  62. package/dist/src/faf-core/commands/enhance.js.map +0 -1
  63. package/dist/src/faf-core/commands/formats.d.ts +0 -22
  64. package/dist/src/faf-core/commands/formats.js +0 -117
  65. package/dist/src/faf-core/commands/formats.js.map +0 -1
  66. package/dist/src/faf-core/commands/human.d.ts +0 -27
  67. package/dist/src/faf-core/commands/human.js +0 -183
  68. package/dist/src/faf-core/commands/human.js.map +0 -1
  69. package/dist/src/faf-core/commands/init.d.ts +0 -26
  70. package/dist/src/faf-core/commands/init.js +0 -114
  71. package/dist/src/faf-core/commands/init.js.map +0 -1
  72. package/dist/src/faf-core/commands/innit.d.ts +0 -7
  73. package/dist/src/faf-core/commands/innit.js +0 -13
  74. package/dist/src/faf-core/commands/innit.js.map +0 -1
  75. package/dist/src/faf-core/commands/migrate.d.ts +0 -15
  76. package/dist/src/faf-core/commands/migrate.js +0 -86
  77. package/dist/src/faf-core/commands/migrate.js.map +0 -1
  78. package/dist/src/faf-core/commands/quick.d.ts +0 -16
  79. package/dist/src/faf-core/commands/quick.js +0 -184
  80. package/dist/src/faf-core/commands/quick.js.map +0 -1
  81. package/dist/src/faf-core/commands/readme.d.ts +0 -47
  82. package/dist/src/faf-core/commands/readme.js +0 -361
  83. package/dist/src/faf-core/commands/readme.js.map +0 -1
  84. package/dist/src/faf-core/commands/score.d.ts +0 -47
  85. package/dist/src/faf-core/commands/score.js +0 -49
  86. package/dist/src/faf-core/commands/score.js.map +0 -1
  87. package/dist/src/faf-core/commands/update.d.ts +0 -12
  88. package/dist/src/faf-core/commands/update.js +0 -46
  89. package/dist/src/faf-core/commands/update.js.map +0 -1
  90. package/dist/src/faf-core/commands/validate.d.ts +0 -21
  91. package/dist/src/faf-core/commands/validate.js +0 -81
  92. package/dist/src/faf-core/commands/validate.js.map +0 -1
  93. package/dist/src/faf-core/compiler/faf-compiler.d.ts +0 -138
  94. package/dist/src/faf-core/compiler/faf-compiler.js +0 -1362
  95. package/dist/src/faf-core/compiler/faf-compiler.js.map +0 -1
  96. package/dist/src/faf-core/engines/fab-formats-processor.d.ts +0 -166
  97. package/dist/src/faf-core/engines/fab-formats-processor.js +0 -1274
  98. package/dist/src/faf-core/engines/fab-formats-processor.js.map +0 -1
  99. package/dist/src/faf-core/engines/faf-dna.d.ts +0 -159
  100. package/dist/src/faf-core/engines/faf-dna.js +0 -555
  101. package/dist/src/faf-core/engines/faf-dna.js.map +0 -1
  102. package/dist/src/faf-core/engines/relentless-context-extractor.d.ts +0 -100
  103. package/dist/src/faf-core/engines/relentless-context-extractor.js +0 -625
  104. package/dist/src/faf-core/engines/relentless-context-extractor.js.map +0 -1
  105. package/dist/src/faf-core/fix-once/types.d.ts +0 -257
  106. package/dist/src/faf-core/fix-once/types.js +0 -26
  107. package/dist/src/faf-core/fix-once/types.js.map +0 -1
  108. package/dist/src/faf-core/generators/faf-generator-championship.d.ts +0 -16
  109. package/dist/src/faf-core/generators/faf-generator-championship.js +0 -463
  110. package/dist/src/faf-core/generators/faf-generator-championship.js.map +0 -1
  111. package/dist/src/faf-core/inject.d.ts +0 -19
  112. package/dist/src/faf-core/inject.js +0 -57
  113. package/dist/src/faf-core/inject.js.map +0 -1
  114. package/dist/src/faf-core/parsers/index.d.ts +0 -12
  115. package/dist/src/faf-core/parsers/index.js +0 -29
  116. package/dist/src/faf-core/parsers/index.js.map +0 -1
  117. package/dist/src/faf-core/utils/balance-visualizer.d.ts +0 -37
  118. package/dist/src/faf-core/utils/balance-visualizer.js +0 -197
  119. package/dist/src/faf-core/utils/balance-visualizer.js.map +0 -1
  120. package/dist/src/faf-core/utils/championship-style.d.ts +0 -109
  121. package/dist/src/faf-core/utils/championship-style.js +0 -219
  122. package/dist/src/faf-core/utils/championship-style.js.map +0 -1
  123. package/dist/src/faf-core/utils/chrome-extension-detector.d.ts +0 -73
  124. package/dist/src/faf-core/utils/chrome-extension-detector.js +0 -268
  125. package/dist/src/faf-core/utils/chrome-extension-detector.js.map +0 -1
  126. package/dist/src/faf-core/utils/platform-detector.d.ts +0 -30
  127. package/dist/src/faf-core/utils/platform-detector.js +0 -218
  128. package/dist/src/faf-core/utils/platform-detector.js.map +0 -1
  129. package/dist/src/faf-core/utils/technical-credit.d.ts +0 -35
  130. package/dist/src/faf-core/utils/technical-credit.js +0 -286
  131. package/dist/src/faf-core/utils/technical-credit.js.map +0 -1
  132. package/dist/src/faf-core/utils/yaml-generator.d.ts +0 -41
  133. package/dist/src/faf-core/utils/yaml-generator.js +0 -360
  134. package/dist/src/faf-core/utils/yaml-generator.js.map +0 -1
  135. package/dist/src/handlers/behavioral-instruction.d.ts +0 -16
  136. package/dist/src/handlers/behavioral-instruction.js +0 -43
  137. package/dist/src/handlers/behavioral-instruction.js.map +0 -1
  138. package/dist/src/handlers/championship-tools.d.ts +0 -116
  139. package/dist/src/handlers/championship-tools.js +0 -2320
  140. package/dist/src/handlers/championship-tools.js.map +0 -1
  141. package/dist/src/handlers/cloud-handler.d.ts +0 -59
  142. package/dist/src/handlers/cloud-handler.js +0 -348
  143. package/dist/src/handlers/cloud-handler.js.map +0 -1
  144. package/dist/src/handlers/tool-registry.d.ts +0 -23
  145. package/dist/src/handlers/tool-registry.js +0 -68
  146. package/dist/src/handlers/tool-registry.js.map +0 -1
  147. package/dist/src/handlers/tool-types.d.ts +0 -167
  148. package/dist/src/handlers/tool-types.js +0 -7
  149. package/dist/src/handlers/tool-types.js.map +0 -1
  150. package/dist/src/test-all-functions.d.ts +0 -15
  151. package/dist/src/test-all-functions.js +0 -163
  152. package/dist/src/test-all-functions.js.map +0 -1
  153. package/dist/src/types/mcp-tools.d.ts +0 -53
  154. package/dist/src/types/mcp-tools.js +0 -77
  155. package/dist/src/types/mcp-tools.js.map +0 -1
  156. package/dist/src/types/tool-visibility.d.ts +0 -36
  157. package/dist/src/types/tool-visibility.js +0 -551
  158. package/dist/src/types/tool-visibility.js.map +0 -1
  159. package/dist/src/utils/auto-path-detection.d.ts +0 -26
  160. package/dist/src/utils/auto-path-detection.js +0 -198
  161. package/dist/src/utils/auto-path-detection.js.map +0 -1
  162. package/dist/src/utils/championship-format.d.ts +0 -30
  163. package/dist/src/utils/championship-format.js +0 -81
  164. package/dist/src/utils/championship-format.js.map +0 -1
  165. package/dist/src/utils/cli-detector.d.ts +0 -17
  166. package/dist/src/utils/cli-detector.js +0 -247
  167. package/dist/src/utils/cli-detector.js.map +0 -1
  168. package/dist/src/utils/display-protocol.d.ts +0 -57
  169. package/dist/src/utils/display-protocol.js +0 -131
  170. package/dist/src/utils/display-protocol.js.map +0 -1
  171. package/dist/src/utils/username-detector.d.ts +0 -27
  172. package/dist/src/utils/username-detector.js +0 -90
  173. package/dist/src/utils/username-detector.js.map +0 -1
  174. package/dist/src/utils/visual-style.d.ts +0 -62
  175. package/dist/src/utils/visual-style.js +0 -166
  176. package/dist/src/utils/visual-style.js.map +0 -1
  177. package/scripts/postinstall.js +0 -50
  178. package/skill/SKILL.md +0 -385
@@ -1,268 +0,0 @@
1
- "use strict";
2
- /**
3
- * 🎯 Chrome Extension Fuzzy Detection - Google-style intelligence
4
- * "Did you mean Chrome Extension?"
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ChromeExtensionDetector = void 0;
8
- /**
9
- * Google-style fuzzy matching for Chrome Extension detection
10
- * Handles typos, abbreviations, and variations
11
- */
12
- class ChromeExtensionDetector {
13
- // High confidence patterns (exact matches)
14
- static HIGH_CONFIDENCE = [
15
- 'chrome extension',
16
- 'browser extension',
17
- 'chrome addon',
18
- 'chrome plugin',
19
- 'web extension',
20
- 'manifest v3',
21
- 'manifest v2'
22
- ];
23
- // Medium confidence patterns (close matches, abbreviations)
24
- static MEDIUM_CONFIDENCE = [
25
- 'chrome ext',
26
- 'chr ext',
27
- 'chrome-ext',
28
- 'chr extension',
29
- 'extension for chrome',
30
- 'chrome browser extension',
31
- 'google chrome extension',
32
- 'chromium extension',
33
- 'edge extension', // Edge uses same APIs
34
- 'browser addon',
35
- 'browser plug-in'
36
- ];
37
- // Low confidence patterns (needs confirmation)
38
- static LOW_CONFIDENCE = [
39
- 'extension',
40
- 'ext',
41
- 'addon',
42
- 'plugin',
43
- 'chrome',
44
- 'browser',
45
- 'popup',
46
- 'content script',
47
- 'background script',
48
- 'browser action',
49
- 'page action'
50
- ];
51
- // Common typos and their corrections
52
- static TYPO_CORRECTIONS = {
53
- 'chrom extension': 'chrome extension',
54
- 'chrome extention': 'chrome extension',
55
- 'chrome exension': 'chrome extension',
56
- 'chrome extenstion': 'chrome extension',
57
- 'crome extension': 'chrome extension',
58
- 'chrome extnsion': 'chrome extension',
59
- 'chorme extension': 'chrome extension',
60
- 'chrome etension': 'chrome extension',
61
- 'chormeextension': 'chrome extension',
62
- 'chromeext': 'chrome extension',
63
- 'c-ext': 'chrome extension',
64
- 'c.ext': 'chrome extension',
65
- 'ch ext': 'chrome extension',
66
- 'chr-ext': 'chrome extension',
67
- 'chrome-extension': 'chrome extension',
68
- 'chrome_extension': 'chrome extension'
69
- };
70
- /**
71
- * Detect if text refers to a Chrome Extension with Google-style intelligence
72
- */
73
- static detect(text) {
74
- if (!text) {
75
- return { detected: false, confidence: 'none', needsConfirmation: false };
76
- }
77
- const normalized = text.toLowerCase().trim();
78
- // Step 1: Check for typos and auto-correct
79
- const corrected = this.correctTypos(normalized);
80
- if (corrected !== normalized) {
81
- // We auto-corrected a typo
82
- return {
83
- detected: true,
84
- confidence: 'medium',
85
- suggestion: `Chrome Extension (auto-corrected from "${text}")`,
86
- needsConfirmation: false
87
- };
88
- }
89
- // Step 2: Check high confidence patterns
90
- for (const pattern of this.HIGH_CONFIDENCE) {
91
- if (normalized.includes(pattern)) {
92
- return {
93
- detected: true,
94
- confidence: 'high',
95
- needsConfirmation: false
96
- };
97
- }
98
- }
99
- // Step 3: Check medium confidence patterns
100
- for (const pattern of this.MEDIUM_CONFIDENCE) {
101
- if (normalized.includes(pattern) ||
102
- this.fuzzyMatch(normalized, pattern)) {
103
- return {
104
- detected: true,
105
- confidence: 'medium',
106
- suggestion: 'Chrome Extension',
107
- needsConfirmation: true // "Did you mean Chrome Extension?"
108
- };
109
- }
110
- }
111
- // Step 4: Check low confidence patterns
112
- for (const pattern of this.LOW_CONFIDENCE) {
113
- if (normalized.includes(pattern)) {
114
- // Only suggest if there's additional context
115
- if (this.hasExtensionContext(normalized)) {
116
- return {
117
- detected: false,
118
- confidence: 'low',
119
- suggestion: 'Chrome Extension',
120
- needsConfirmation: true
121
- };
122
- }
123
- }
124
- }
125
- // Step 5: Check for split/spaced variations
126
- if (this.hasSpacedPattern(normalized)) {
127
- return {
128
- detected: true,
129
- confidence: 'medium',
130
- suggestion: 'Chrome Extension',
131
- needsConfirmation: true
132
- };
133
- }
134
- return { detected: false, confidence: 'none', needsConfirmation: false };
135
- }
136
- /**
137
- * Correct common typos
138
- */
139
- static correctTypos(text) {
140
- // Direct typo lookup
141
- if (this.TYPO_CORRECTIONS[text]) {
142
- return this.TYPO_CORRECTIONS[text];
143
- }
144
- // Check if any typo pattern is in the text
145
- for (const [typo, correction] of Object.entries(this.TYPO_CORRECTIONS)) {
146
- if (text.includes(typo)) {
147
- return text.replace(typo, correction);
148
- }
149
- }
150
- return text;
151
- }
152
- /**
153
- * Fuzzy match with Levenshtein distance
154
- */
155
- static fuzzyMatch(text, pattern, threshold = 3) {
156
- // Check if text contains something close to pattern
157
- const words = text.split(/\s+/);
158
- for (const word of words) {
159
- if (this.levenshteinDistance(word, pattern) <= threshold) {
160
- return true;
161
- }
162
- }
163
- // Check the whole phrase
164
- return this.levenshteinDistance(text, pattern) <= threshold;
165
- }
166
- /**
167
- * Calculate Levenshtein distance between two strings
168
- */
169
- static levenshteinDistance(a, b) {
170
- const matrix = [];
171
- for (let i = 0; i <= b.length; i++) {
172
- matrix[i] = [i];
173
- }
174
- for (let j = 0; j <= a.length; j++) {
175
- matrix[0][j] = j;
176
- }
177
- for (let i = 1; i <= b.length; i++) {
178
- for (let j = 1; j <= a.length; j++) {
179
- if (b.charAt(i - 1) === a.charAt(j - 1)) {
180
- matrix[i][j] = matrix[i - 1][j - 1];
181
- }
182
- else {
183
- matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
184
- matrix[i][j - 1] + 1, // insertion
185
- matrix[i - 1][j] + 1 // deletion
186
- );
187
- }
188
- }
189
- }
190
- return matrix[b.length][a.length];
191
- }
192
- /**
193
- * Check for extension-related context
194
- */
195
- static hasExtensionContext(text) {
196
- const contextWords = [
197
- 'tab', 'popup', 'browser', 'chrome', 'manifest',
198
- 'content', 'background', 'inject', 'page', 'action',
199
- 'storage', 'permissions', 'google', 'store'
200
- ];
201
- return contextWords.some(word => text.includes(word));
202
- }
203
- /**
204
- * Check for spaced patterns like "c e" or "ch ext"
205
- */
206
- static hasSpacedPattern(text) {
207
- const spacedPatterns = [
208
- /c\s+e\s+x?\s*t/, // c e, c e x t
209
- /ch\s+ext/, // ch ext
210
- /chr\s+ext/, // chr ext
211
- /ext\s+for\s+chr/, // ext for chr
212
- /chrome\s+ex\b/ // chrome ex
213
- ];
214
- return spacedPatterns.some(pattern => pattern.test(text));
215
- }
216
- /**
217
- * Get user-friendly confirmation message
218
- */
219
- static getConfirmationMessage(result) {
220
- if (!result.needsConfirmation) {
221
- return null;
222
- }
223
- if (result.confidence === 'medium') {
224
- return `Did you mean: Chrome Extension? (detected "${result.suggestion}")`;
225
- }
226
- if (result.confidence === 'low') {
227
- return `Possible Chrome Extension detected. Did you mean to create a Chrome Extension?`;
228
- }
229
- return null;
230
- }
231
- /**
232
- * Check if project has Chrome Extension files (for validation)
233
- */
234
- static hasExtensionFiles(files) {
235
- const extensionFiles = [
236
- 'manifest.json',
237
- 'popup.html',
238
- 'popup.js',
239
- 'background.js',
240
- 'content.js',
241
- 'options.html',
242
- 'service-worker.js'
243
- ];
244
- return files.some(file => extensionFiles.some(extFile => file.endsWith(extFile)));
245
- }
246
- }
247
- exports.ChromeExtensionDetector = ChromeExtensionDetector;
248
- /**
249
- * Examples of detection:
250
- *
251
- * HIGH confidence (auto-accept):
252
- * - "chrome extension" → ✅
253
- * - "browser extension" → ✅
254
- *
255
- * MEDIUM confidence (needs confirmation):
256
- * - "chr ext" → "Did you mean Chrome Extension?"
257
- * - "c ext" → "Did you mean Chrome Extension?"
258
- * - "CE" → "Did you mean Chrome Extension?"
259
- *
260
- * TYPO correction (auto-fix):
261
- * - "chrom extention" → ✅ (corrected)
262
- * - "chrome extnsion" → ✅ (corrected)
263
- *
264
- * LOW confidence (suggest if context):
265
- * - "extension for managing tabs" → "Possible Chrome Extension?"
266
- * - "popup manager" → "Possible Chrome Extension?"
267
- */
268
- //# sourceMappingURL=chrome-extension-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chrome-extension-detector.js","sourceRoot":"","sources":["../../../../src/faf-core/utils/chrome-extension-detector.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * FAF VIBE Platform Detector ⚡️😽
3
- * Detects no-code/low-code platforms for simplified $9 tier
4
- */
5
- export interface PlatformInfo {
6
- platform: string;
7
- tier: 'vibe' | 'pro';
8
- detected: boolean;
9
- confidence: number;
10
- indicators: string[];
11
- }
12
- export declare class PlatformDetector {
13
- private readonly VIBE_PLATFORMS;
14
- /**
15
- * Detect if running on a FAF VIBE eligible platform
16
- */
17
- detectPlatform(projectPath?: string): Promise<PlatformInfo>;
18
- /**
19
- * Get pricing tier based on platform
20
- */
21
- getPricingTier(platform: PlatformInfo): {
22
- price: number;
23
- name: string;
24
- emoji: string;
25
- };
26
- /**
27
- * Get platform-specific messaging
28
- */
29
- getPlatformMessage(platform: PlatformInfo): string;
30
- }
@@ -1,218 +0,0 @@
1
- "use strict";
2
- /**
3
- * FAF VIBE Platform Detector ⚡️😽
4
- * Detects no-code/low-code platforms for simplified $9 tier
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.PlatformDetector = void 0;
41
- const fs = __importStar(require("fs"));
42
- const path = __importStar(require("path"));
43
- class PlatformDetector {
44
- VIBE_PLATFORMS = [
45
- {
46
- name: 'Replit',
47
- indicators: [
48
- '.replit',
49
- 'replit.nix',
50
- process.env.REPL_ID,
51
- process.env.REPL_OWNER,
52
- process.env.REPLIT_DB_URL
53
- ]
54
- },
55
- {
56
- name: 'Lovable',
57
- indicators: [
58
- '.lovable',
59
- 'lovable.json',
60
- process.env.LOVABLE_PROJECT_ID
61
- ]
62
- },
63
- {
64
- name: 'Wix',
65
- indicators: [
66
- 'wix.config.json',
67
- '.wix',
68
- process.env.WIX_INSTANCE_ID
69
- ]
70
- },
71
- {
72
- name: 'Base44',
73
- indicators: [
74
- 'base44.json',
75
- '.base44'
76
- ]
77
- },
78
- {
79
- name: 'Glitch',
80
- indicators: [
81
- '.glitch-assets',
82
- 'watch.json',
83
- process.env.PROJECT_DOMAIN,
84
- process.env.PROJECT_ID
85
- ]
86
- },
87
- {
88
- name: 'CodeSandbox',
89
- indicators: [
90
- 'sandbox.config.json',
91
- '.codesandbox',
92
- process.env.CODESANDBOX_ENV
93
- ]
94
- },
95
- {
96
- name: 'Stackblitz',
97
- indicators: [
98
- '.stackblitzrc',
99
- process.env.STACKBLITZ_ENV
100
- ]
101
- },
102
- {
103
- name: 'Warp',
104
- indicators: [
105
- process.env.WARP_USE_SSH_AGENT,
106
- process.env.WARP_DEV
107
- ]
108
- }
109
- ];
110
- /**
111
- * Detect if running on a FAF VIBE eligible platform
112
- */
113
- async detectPlatform(projectPath) {
114
- const basePath = projectPath || process.cwd();
115
- // Check each VIBE platform
116
- for (const platform of this.VIBE_PLATFORMS) {
117
- const foundIndicators = [];
118
- for (const indicator of platform.indicators) {
119
- if (typeof indicator === 'string') {
120
- // Check for files
121
- if (!indicator.startsWith('process.env')) {
122
- const filePath = path.join(basePath, indicator);
123
- try {
124
- if (fs.existsSync(filePath)) {
125
- foundIndicators.push(indicator);
126
- }
127
- }
128
- catch { }
129
- }
130
- else {
131
- // Check environment variables
132
- const envVar = indicator.replace('process.env.', '');
133
- if (process.env[envVar]) {
134
- foundIndicators.push(envVar);
135
- }
136
- }
137
- }
138
- }
139
- // If we found any indicators, it's a VIBE platform
140
- if (foundIndicators.length > 0) {
141
- const confidence = Math.min(100, foundIndicators.length * 33);
142
- return {
143
- platform: platform.name,
144
- tier: 'vibe',
145
- detected: true,
146
- confidence,
147
- indicators: foundIndicators
148
- };
149
- }
150
- }
151
- // Check for traditional dev environments (Pro tier)
152
- const proIndicators = [];
153
- // VS Code
154
- if (process.env.VSCODE_CLI || process.env.TERM_PROGRAM === 'vscode') {
155
- proIndicators.push('VS Code');
156
- }
157
- // Cursor
158
- if (process.env.CURSOR_EDITOR) {
159
- proIndicators.push('Cursor');
160
- }
161
- // Git repository
162
- if (fs.existsSync(path.join(basePath, '.git'))) {
163
- proIndicators.push('Git');
164
- }
165
- // Local development
166
- if (!process.env.CI && !process.env.CONTAINER_ID) {
167
- proIndicators.push('Local Development');
168
- }
169
- if (proIndicators.length > 0) {
170
- return {
171
- platform: 'Professional Development Environment',
172
- tier: 'pro',
173
- detected: true,
174
- confidence: 95,
175
- indicators: proIndicators
176
- };
177
- }
178
- // No platform detected
179
- return {
180
- platform: 'Unknown',
181
- tier: 'pro', // Default to pro
182
- detected: false,
183
- confidence: 0,
184
- indicators: []
185
- };
186
- }
187
- /**
188
- * Get pricing tier based on platform
189
- */
190
- getPricingTier(platform) {
191
- if (platform.tier === 'vibe') {
192
- return {
193
- price: 9,
194
- name: 'FAF VIBE',
195
- emoji: '⚡️'
196
- };
197
- }
198
- return {
199
- price: 100,
200
- name: 'FAF Professional',
201
- emoji: '🏎️'
202
- };
203
- }
204
- /**
205
- * Get platform-specific messaging
206
- */
207
- getPlatformMessage(platform) {
208
- if (!platform.detected) {
209
- return '🏎️ FAF Professional - Championship Context for Serious Developers';
210
- }
211
- if (platform.tier === 'vibe') {
212
- return `⚡️ FAF VIBE on ${platform.platform}! No-code builder special: $9/month FOREVER! 😽`;
213
- }
214
- return '🏎️ FAF Professional - F1-Inspired Software Engineering';
215
- }
216
- }
217
- exports.PlatformDetector = PlatformDetector;
218
- //# sourceMappingURL=platform-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform-detector.js","sourceRoot":"","sources":["../../../../src/faf-core/utils/platform-detector.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
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>;