faf-mcp 2.3.1 → 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 (177) hide show
  1. package/CHANGELOG.md +26 -3
  2. package/CLAUDE.md +6 -6
  3. package/README.md +71 -72
  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 +103 -682
  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 +16 -13
  43. package/project.faf +11 -6
  44. package/scripts/check-engines.mjs +53 -0
  45. package/scripts/sync-version.js +33 -19
  46. package/skills/faf-ide/SKILL.md +40 -0
  47. package/dist/src/config/visibility.d.ts +0 -41
  48. package/dist/src/config/visibility.js +0 -158
  49. package/dist/src/config/visibility.js.map +0 -1
  50. package/dist/src/faf-core/commands/audit.d.ts +0 -21
  51. package/dist/src/faf-core/commands/audit.js +0 -83
  52. package/dist/src/faf-core/commands/audit.js.map +0 -1
  53. package/dist/src/faf-core/commands/auto.d.ts +0 -25
  54. package/dist/src/faf-core/commands/auto.js +0 -74
  55. package/dist/src/faf-core/commands/auto.js.map +0 -1
  56. package/dist/src/faf-core/commands/doctor.d.ts +0 -17
  57. package/dist/src/faf-core/commands/doctor.js +0 -198
  58. package/dist/src/faf-core/commands/doctor.js.map +0 -1
  59. package/dist/src/faf-core/commands/enhance.d.ts +0 -46
  60. package/dist/src/faf-core/commands/enhance.js +0 -360
  61. package/dist/src/faf-core/commands/enhance.js.map +0 -1
  62. package/dist/src/faf-core/commands/formats.d.ts +0 -22
  63. package/dist/src/faf-core/commands/formats.js +0 -117
  64. package/dist/src/faf-core/commands/formats.js.map +0 -1
  65. package/dist/src/faf-core/commands/human.d.ts +0 -27
  66. package/dist/src/faf-core/commands/human.js +0 -183
  67. package/dist/src/faf-core/commands/human.js.map +0 -1
  68. package/dist/src/faf-core/commands/init.d.ts +0 -26
  69. package/dist/src/faf-core/commands/init.js +0 -114
  70. package/dist/src/faf-core/commands/init.js.map +0 -1
  71. package/dist/src/faf-core/commands/innit.d.ts +0 -7
  72. package/dist/src/faf-core/commands/innit.js +0 -13
  73. package/dist/src/faf-core/commands/innit.js.map +0 -1
  74. package/dist/src/faf-core/commands/migrate.d.ts +0 -15
  75. package/dist/src/faf-core/commands/migrate.js +0 -86
  76. package/dist/src/faf-core/commands/migrate.js.map +0 -1
  77. package/dist/src/faf-core/commands/quick.d.ts +0 -16
  78. package/dist/src/faf-core/commands/quick.js +0 -184
  79. package/dist/src/faf-core/commands/quick.js.map +0 -1
  80. package/dist/src/faf-core/commands/readme.d.ts +0 -47
  81. package/dist/src/faf-core/commands/readme.js +0 -361
  82. package/dist/src/faf-core/commands/readme.js.map +0 -1
  83. package/dist/src/faf-core/commands/score.d.ts +0 -47
  84. package/dist/src/faf-core/commands/score.js +0 -49
  85. package/dist/src/faf-core/commands/score.js.map +0 -1
  86. package/dist/src/faf-core/commands/update.d.ts +0 -12
  87. package/dist/src/faf-core/commands/update.js +0 -46
  88. package/dist/src/faf-core/commands/update.js.map +0 -1
  89. package/dist/src/faf-core/commands/validate.d.ts +0 -21
  90. package/dist/src/faf-core/commands/validate.js +0 -81
  91. package/dist/src/faf-core/commands/validate.js.map +0 -1
  92. package/dist/src/faf-core/compiler/faf-compiler.d.ts +0 -138
  93. package/dist/src/faf-core/compiler/faf-compiler.js +0 -1362
  94. package/dist/src/faf-core/compiler/faf-compiler.js.map +0 -1
  95. package/dist/src/faf-core/engines/fab-formats-processor.d.ts +0 -166
  96. package/dist/src/faf-core/engines/fab-formats-processor.js +0 -1274
  97. package/dist/src/faf-core/engines/fab-formats-processor.js.map +0 -1
  98. package/dist/src/faf-core/engines/faf-dna.d.ts +0 -159
  99. package/dist/src/faf-core/engines/faf-dna.js +0 -555
  100. package/dist/src/faf-core/engines/faf-dna.js.map +0 -1
  101. package/dist/src/faf-core/engines/relentless-context-extractor.d.ts +0 -100
  102. package/dist/src/faf-core/engines/relentless-context-extractor.js +0 -625
  103. package/dist/src/faf-core/engines/relentless-context-extractor.js.map +0 -1
  104. package/dist/src/faf-core/fix-once/types.d.ts +0 -257
  105. package/dist/src/faf-core/fix-once/types.js +0 -26
  106. package/dist/src/faf-core/fix-once/types.js.map +0 -1
  107. package/dist/src/faf-core/generators/faf-generator-championship.d.ts +0 -16
  108. package/dist/src/faf-core/generators/faf-generator-championship.js +0 -463
  109. package/dist/src/faf-core/generators/faf-generator-championship.js.map +0 -1
  110. package/dist/src/faf-core/inject.d.ts +0 -19
  111. package/dist/src/faf-core/inject.js +0 -57
  112. package/dist/src/faf-core/inject.js.map +0 -1
  113. package/dist/src/faf-core/parsers/index.d.ts +0 -12
  114. package/dist/src/faf-core/parsers/index.js +0 -29
  115. package/dist/src/faf-core/parsers/index.js.map +0 -1
  116. package/dist/src/faf-core/utils/balance-visualizer.d.ts +0 -37
  117. package/dist/src/faf-core/utils/balance-visualizer.js +0 -197
  118. package/dist/src/faf-core/utils/balance-visualizer.js.map +0 -1
  119. package/dist/src/faf-core/utils/championship-style.d.ts +0 -109
  120. package/dist/src/faf-core/utils/championship-style.js +0 -219
  121. package/dist/src/faf-core/utils/championship-style.js.map +0 -1
  122. package/dist/src/faf-core/utils/chrome-extension-detector.d.ts +0 -73
  123. package/dist/src/faf-core/utils/chrome-extension-detector.js +0 -268
  124. package/dist/src/faf-core/utils/chrome-extension-detector.js.map +0 -1
  125. package/dist/src/faf-core/utils/platform-detector.d.ts +0 -30
  126. package/dist/src/faf-core/utils/platform-detector.js +0 -218
  127. package/dist/src/faf-core/utils/platform-detector.js.map +0 -1
  128. package/dist/src/faf-core/utils/technical-credit.d.ts +0 -35
  129. package/dist/src/faf-core/utils/technical-credit.js +0 -286
  130. package/dist/src/faf-core/utils/technical-credit.js.map +0 -1
  131. package/dist/src/faf-core/utils/yaml-generator.d.ts +0 -41
  132. package/dist/src/faf-core/utils/yaml-generator.js +0 -360
  133. package/dist/src/faf-core/utils/yaml-generator.js.map +0 -1
  134. package/dist/src/handlers/behavioral-instruction.d.ts +0 -16
  135. package/dist/src/handlers/behavioral-instruction.js +0 -43
  136. package/dist/src/handlers/behavioral-instruction.js.map +0 -1
  137. package/dist/src/handlers/championship-tools.d.ts +0 -116
  138. package/dist/src/handlers/championship-tools.js +0 -2320
  139. package/dist/src/handlers/championship-tools.js.map +0 -1
  140. package/dist/src/handlers/cloud-handler.d.ts +0 -59
  141. package/dist/src/handlers/cloud-handler.js +0 -348
  142. package/dist/src/handlers/cloud-handler.js.map +0 -1
  143. package/dist/src/handlers/tool-registry.d.ts +0 -23
  144. package/dist/src/handlers/tool-registry.js +0 -68
  145. package/dist/src/handlers/tool-registry.js.map +0 -1
  146. package/dist/src/handlers/tool-types.d.ts +0 -167
  147. package/dist/src/handlers/tool-types.js +0 -7
  148. package/dist/src/handlers/tool-types.js.map +0 -1
  149. package/dist/src/test-all-functions.d.ts +0 -15
  150. package/dist/src/test-all-functions.js +0 -163
  151. package/dist/src/test-all-functions.js.map +0 -1
  152. package/dist/src/types/mcp-tools.d.ts +0 -53
  153. package/dist/src/types/mcp-tools.js +0 -77
  154. package/dist/src/types/mcp-tools.js.map +0 -1
  155. package/dist/src/types/tool-visibility.d.ts +0 -36
  156. package/dist/src/types/tool-visibility.js +0 -551
  157. package/dist/src/types/tool-visibility.js.map +0 -1
  158. package/dist/src/utils/auto-path-detection.d.ts +0 -26
  159. package/dist/src/utils/auto-path-detection.js +0 -198
  160. package/dist/src/utils/auto-path-detection.js.map +0 -1
  161. package/dist/src/utils/championship-format.d.ts +0 -30
  162. package/dist/src/utils/championship-format.js +0 -81
  163. package/dist/src/utils/championship-format.js.map +0 -1
  164. package/dist/src/utils/cli-detector.d.ts +0 -17
  165. package/dist/src/utils/cli-detector.js +0 -247
  166. package/dist/src/utils/cli-detector.js.map +0 -1
  167. package/dist/src/utils/display-protocol.d.ts +0 -57
  168. package/dist/src/utils/display-protocol.js +0 -131
  169. package/dist/src/utils/display-protocol.js.map +0 -1
  170. package/dist/src/utils/username-detector.d.ts +0 -27
  171. package/dist/src/utils/username-detector.js +0 -90
  172. package/dist/src/utils/username-detector.js.map +0 -1
  173. package/dist/src/utils/visual-style.d.ts +0 -62
  174. package/dist/src/utils/visual-style.js +0 -166
  175. package/dist/src/utils/visual-style.js.map +0 -1
  176. package/scripts/postinstall.js +0 -50
  177. 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>;