faf-cli 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
- # faf-cli v3.0.0 - Championship Edition 🏆
1
+ # faf-cli v3.0.2 - Championship Edition 🏆
2
2
  with Turbo Cat 😽
3
3
 
4
4
  <div align="center">
5
5
 
6
6
  <img src="https://cdn.jsdelivr.net/npm/faf-cli@latest/assets/icons/orange-smiley.svg" alt="FAF Logo" width="64" />
7
7
 
8
- ## **FREE FOREVER** 🆓 • **10,000 Downloads** 🎉 • **TURBO-CAT Powered** 😽
8
+ ## **FREE FOR ALL DEVS** 🆓 • **Growing Fast** 📈 • **TURBO-CAT Powered** 😽
9
9
 
10
10
  **Project DNA ✨ for ANY AI** • **Instant Context** • **Zero Faff™**
11
11
 
@@ -24,7 +24,7 @@ with Turbo Cat 😽
24
24
 
25
25
  ### The Championship Release
26
26
 
27
- **Celebrating 10,000 downloads** with the biggest release yet:
27
+ **The biggest release yet:**
28
28
 
29
29
  - 🆓 **FREE FOREVER .faf Core-Engine** - 41 championship commands, always free, open source, MIT License
30
30
  - 💨 **TURBO Model Introduced** - Like VS Code + Copilot, Spotify Free + Premium, Zoom Basic + Pro
@@ -81,27 +81,65 @@ with Turbo Cat 😽
81
81
 
82
82
  ---
83
83
 
84
- ## 💎 Choose Your Speed
84
+ ## 😽 TURBO-CAT™ - Full Official Launch
85
85
 
86
- FAF follows the proven model:
86
+ **The Rapid Catalytic Converter - Now Purring at Full Power**
87
87
 
88
- <div align="center">
88
+ Introduced in v2.0.0, TURBO-CAT reaches full championship form in v3.0.0. This format discovery engine knows 153 validated formats organized in a perfect pyramid structure. From `.faf` at the apex to infrastructure configs at the base, it rapidly converts raw project formats into AI-ready intelligence at championship speed.
89
89
 
90
- ### Like **VS Code + Copilot** **Spotify Free + Premium** **Zoom Basic + Pro**
90
+ Like a catalytic converter in an exhaust system, TURBO-CAT transforms digital waste into clean, usable output.
91
+ Now fully unleashed and purring. 😽💨
91
92
 
92
- </div>
93
+ ```bash
94
+ faf formats
95
+ ```
96
+
97
+ ```
98
+ 😽 TURBO-CAT™ v3.0.0 - Now Purring at Full Power
99
+ (Introduced v2.0.0, Perfected v3.0.0)
100
+ ═══════════════════════════════════
101
+
102
+ ⚡️ Scanning project...
103
+
104
+ ✅ Found 10 formats in 68ms!
105
+
106
+ 📋 Discovered Formats (A-Z):
107
+ ✅ package.json
108
+ ✅ tsconfig.json
109
+ ✅ Dockerfile
110
+ ✅ .github/workflows
111
+ ✅ jest.config.js
112
+ ... and 5 more
113
+
114
+ 💡 Stack Signature: typescript
115
+ 🏆 Intelligence Score: 225
116
+
117
+ ────────────────────────────────────────
118
+ 😽 TURBO-CAT™: "Detection that'll make your stack PURRR!"
119
+ ────────────────────────────────────────
120
+ ```
121
+
122
+ **The Pyramid:** 153 formats across 17 levels. Each level unlocks new intelligence. **TURBO** reveals what TURBO-CAT really knows... 🤫
123
+
124
+ ---
125
+
126
+ ## 💨 FAF TURBO - World-Class Automation Intelligence
127
+
128
+ ### Like **VS Code + Copilot** • Same model that works!
129
+
130
+ <div align="center">
93
131
 
94
132
  <table>
95
133
  <tr>
96
134
  <td width="50%" valign="top">
97
135
 
98
- ### **FAF v3.0.0 (FREE FOREVER to all Developers)** 🆓
136
+ ### **FAF v3.0.2 (FREE FOR ALL DEVS)** 🆓
99
137
 
100
138
  ✅ **41 Championship Commands**
101
139
  - Project initialization & auto-detection
102
140
  - TURBO-CAT format discovery (153 formats)
103
141
  - Birth DNA lifecycle tracking
104
- - AI readiness scoring
142
+ - AI readiness scoring (0-100%)
105
143
  - Context-mirroring (bi-sync)
106
144
  - Health checks & diagnostics
107
145
 
@@ -109,11 +147,13 @@ FAF follows the proven model:
109
147
  - <50ms command execution
110
148
  - 8ms bi-sync (championship speed)
111
149
  - F1-inspired engineering
150
+ - 0ms operations achieved
112
151
 
113
152
  ✅ **Universal Compatibility**
114
153
  - Works with Claude, Codex CLI, Gemini CLI, Cursor
115
154
  - Mac, Linux, Windows support
116
155
  - Open source, MIT licensed
156
+ - Growing developer community
117
157
 
118
158
  ```bash
119
159
  npm install -g faf-cli
@@ -122,7 +162,7 @@ npm install -g faf-cli
122
162
  </td>
123
163
  <td width="50%" valign="top">
124
164
 
125
- ### **FAF v3.0.0 TURBO** 💨
165
+ ### **FAF v3.0.2 TURBO** 💨
126
166
 
127
167
  ✅ **Everything in FREE, Plus:**
128
168
 
@@ -132,11 +172,12 @@ npm install -g faf-cli
132
172
  - Stack health diagnostics
133
173
  - Migration path recommendations
134
174
 
135
- 🔮 **Workflow Analysis**
136
- - n8n workflow parsing
137
- - OpenAI schema analysis
138
- - OPAL format processing
139
- - Custom format support
175
+ 🤖 **Universal Automation Intelligence**
176
+ - **n8n workflow parsing** - RAG, ETL, Multi-Agent patterns
177
+ - **OpenAI Assistants** - GPT Actions & function schemas
178
+ - **Google Opal** - Visual mini-app workflows
179
+ - **Make.com scenarios** - Module & integration analysis
180
+ - **FOUNDATIONAL FIRST** - ONE pattern for ALL platforms
140
181
 
141
182
  🏆 **Premium Features**
142
183
  - Priority support & service plans
@@ -152,47 +193,10 @@ Learn more: faf.one/turbo
152
193
  </tr>
153
194
  </table>
154
195
 
155
- ---
156
-
157
- ## 😽 TURBO-CAT™ - Full Official Launch
158
-
159
- **The Rapid Catalytic Converter - Now Purring at Full Power**
160
-
161
- Introduced in v2.0.0, TURBO-CAT reaches full championship form in v3.0.0. This format discovery engine knows 153 validated formats organized in a perfect pyramid structure. From `.faf` at the apex to infrastructure configs at the base, it rapidly converts raw project formats into AI-ready intelligence at championship speed.
162
-
163
- Like a catalytic converter in an exhaust system, TURBO-CAT transforms digital waste into clean, usable output.
164
- Now fully unleashed and purring. 😽💨
165
-
166
- ```bash
167
- faf formats
168
- ```
169
-
170
- ```
171
- 😽 TURBO-CAT™ v3.0.0 - Now Purring at Full Power
172
- (Introduced v2.0.0, Perfected v3.0.0)
173
- ═══════════════════════════════════
174
-
175
- ⚡️ Scanning project...
176
-
177
- ✅ Found 10 formats in 68ms!
178
-
179
- 📋 Discovered Formats (A-Z):
180
- ✅ package.json
181
- ✅ tsconfig.json
182
- ✅ Dockerfile
183
- ✅ .github/workflows
184
- ✅ jest.config.js
185
- ... and 5 more
186
-
187
- 💡 Stack Signature: typescript
188
- 🏆 Intelligence Score: 225
189
-
190
- ────────────────────────────────────────
191
- 😽 TURBO-CAT™: "Detection that'll make your stack PURRR!"
192
- ────────────────────────────────────────
193
- ```
196
+ </div>
194
197
 
195
- **The Pyramid:** 153 formats across 17 levels. Each level unlocks new intelligence. **TURBO** reveals what TURBO-CAT really knows... 🤫
198
+ **TURBO**: Where automation platforms (n8n, Make, Opal) get championship AI context.
199
+ **Foundational first, universal by default.**
196
200
 
197
201
  ---
198
202
 
@@ -264,21 +268,41 @@ We created this tool together across thousands of conversations. Yet without pro
264
268
 
265
269
  Universal, shareable AI context that works with **Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor** - regardless of your stack, size, or setup.
266
270
 
267
- ### The Problem
271
+ ### Why Context Quality Matters
272
+
273
+ **At 99% context quality**, AI knows exactly what you're building and helps at optimal levels—trusted decisions, accurate suggestions, championship performance.
274
+
275
+ **At 55% context quality**, you're flipping a coin on every decision. It's like handing a builder only half a blueprint and discussing it in a totally foreign language.
276
+
277
+ FAF's **Professional 0→99% Podium Scoring System** makes context collection measurable, fun, and championship-grade. Track your project's evolution from 🤍 Heart (0%) to 🏆 Trophy (100%).
278
+
279
+ ### The REAL Problem: Project Health
268
280
 
269
- - 20+ minutes explaining projects to AI
270
- - ❌ AI gives wrong answers without context
271
- - ❌ Manual copy/paste every session
272
- - ❌ Context lost between conversations
273
- - ❌ "Can you remind me what this project does?"
281
+ **This isn't about saving 20 minutes at setup.**
274
282
 
275
- ### The Solution
283
+ Running projects on LOW AI context leads to:
284
+ - ❌ **Project death** (worst case)
285
+ - ❌ **Delays, costs, stress, heartache, disappointment**
286
+ - ❌ **Wasted time, resources, and money**
287
+ - ❌ **Poor outcomes for stakeholders and users**
288
+ - ❌ **Burnout from constant re-explaining**
276
289
 
277
- - ✅ **30 seconds** from zero to complete AI understanding
278
- - ✅ **One command** creates perfect context
290
+ **It's not a one-time config. It's a relationship.**
291
+
292
+ A healthy Human + AI collaboration requires **high-quality, persistent context**. Without it, every interaction is a gamble. Every decision is questionable. Every suggestion needs verification.
293
+
294
+ **Ignoring poor context on your project is like not brushing your child's teeth.**
295
+
296
+ You're gonna end up with a **CAVITY**.
297
+
298
+ ### The Solution: Project DNA
299
+
300
+ - ✅ **Championship context** (85-99% quality scores)
301
+ - ✅ **Persistent intelligence** - AI remembers your project perfectly
302
+ - ✅ **Seamless collaboration** - Human + AI working together optimally
303
+ - ✅ **Project health monitoring** - Track context quality over time
279
304
  - ✅ **Works with every AI** - Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor, all of them
280
- - ✅ **Share with your team** - Instant project onboarding
281
- - ✅ **Persistent memory** - Never explain your project again
305
+ - ✅ **Team alignment** - Everyone (human AND AI) on the same page
282
306
 
283
307
  ---
284
308
 
@@ -371,7 +395,7 @@ faf lint # Fix formatting issues
371
395
 
372
396
  ## 🤖 Works with AI Assistants
373
397
 
374
- FAF v3.0.0 fully supports **Claude Code, Warp, Cursor, Copilot, Windsurf, OpenAI Codex CLI, Gemini CLI** and ALL AI coding assistants.
398
+ FAF v3.0.2 fully supports **Claude Code, Warp, Cursor, Copilot, Windsurf, OpenAI Codex CLI, Gemini CLI** and ALL AI coding assistants.
375
399
 
376
400
  **PLUS AI-Automation platforms:** n8n, OpenAI Builder, Google Opal, Make.com
377
401
 
@@ -496,7 +520,7 @@ faf auto -q
496
520
  ## 📊 Technical Specs
497
521
 
498
522
  ```yaml
499
- Version: 3.0.0 - Championship Edition
523
+ Version: 3.0.2 - Championship Edition
500
524
  Performance: <50ms all commands, 18ms avg, 8ms bi-sync, 0ms operations achieved
501
525
  Engine: FAF-Engine-Mk3
502
526
  TURBO-CAT: v3.0.0 - Full Power (Introduced v2.0.0, 153 validated formats)
@@ -511,9 +535,42 @@ Automation: n8n workflows, OpenAI Builder, Google Opal, Make.com - AI-Automat
511
535
 
512
536
  ---
513
537
 
538
+ ## 🏎️ The .faf Pattern
539
+
540
+ ### Why .faf vs RAG?
541
+
542
+ **.faf is pre-indexed intelligence.** Do the work once, use it forever.
543
+
544
+ | Aspect | RAG Approach | .faf Approach |
545
+ |--------|-------------|---------------|
546
+ | **Indexing** | Runtime embedding (slow, $$) | One-time at creation (fast, free) |
547
+ | **Retrieval** | Vector search per query ($$) | Instant file read (free) |
548
+ | **Quality** | Probabilistic, incomplete | Structured, validated, scored |
549
+ | **Latency** | Seconds (embedding + search) | Milliseconds (<50ms) |
550
+ | **Cost** | Per-query fees | Zero runtime cost |
551
+ | **Versioning** | Difficult | Git-friendly YAML |
552
+
553
+ **.faf is RAG's output—captured once, reused infinitely.** Championship efficiency.
554
+
555
+ ### Universal Pattern
556
+
557
+ Every source follows the same pattern:
558
+
559
+ ```
560
+ interrogation → extraction → filtering → generation → .faf
561
+ ```
562
+
563
+ **In FREE CLI:** Code projects → .faf (all languages, frameworks, stacks)
564
+
565
+ **In TURBO:** Automation platforms → .faf (n8n, OpenAI Assistants, Opal, Make.com)
566
+
567
+ Same pattern. Same output. Universal by design.
568
+
569
+ ---
570
+
514
571
  ## 🏆 WJTTC Championship Testing
515
572
 
516
- **FAF CLI v3.0.0 is WJTTC GOLD Certified** - tested to F1-grade standards.
573
+ **FAF CLI v3.0.2 is WJTTC GOLD Certified** - tested to F1-grade standards.
517
574
 
518
575
  ### What is WJTTC?
519
576
  **WolfeJam Technical & Testing Center** - F1-inspired testing methodology ensuring championship-grade reliability.
@@ -614,7 +671,7 @@ npm link
614
671
 
615
672
  We welcome contributions! Join our [community discussions](https://github.com/Wolfe-Jam/faf-cli/discussions) or submit issues/PRs.
616
673
 
617
- **Join 10,000+ developers** using `.faf` to accelerate their AI workflows:
674
+ **Join our growing community** using `.faf` to accelerate their AI workflows:
618
675
  - Share your projects
619
676
  - Get help from the community
620
677
  - Request features
@@ -626,12 +683,11 @@ We welcome contributions! Join our [community discussions](https://github.com/Wo
626
683
 
627
684
  **Position your brand alongside the universal AI context standard.**
628
685
 
629
- FAF CLI is defining a new category: **Universal AI Context Infrastructure**. With 10,000+ downloads, BIG-3 AI validation (Google, Anthropic, OpenAI), and adoption by leading AI development tools, FAF is becoming foundational infrastructure for the AI development ecosystem.
686
+ FAF CLI is defining a new category: **Universal AI Context Infrastructure**. With BIG-3 AI validation (Google, Anthropic, OpenAI) and adoption by leading AI development tools, FAF is becoming foundational infrastructure for the AI development ecosystem.
630
687
 
631
688
  ### 📈 Growth Momentum
632
689
 
633
- - **10,000+ total downloads** - Milestone reached (MCP + CLI combined)
634
- - **4,600 CLI downloads** - Rapid CLI adoption
690
+ - **Rapid adoption** - See live stats on npm
635
691
  - **Category leader** - First universal AI context standard
636
692
  - **Enterprise traction** - Infrastructure-level adoption
637
693
  - **BIG-3 validated** - Tested and endorsed by Google Gemini, Anthropic Claude, OpenAI Codex
@@ -682,9 +738,9 @@ Copy cats? Why bother.
682
738
 
683
739
  <div align="center">
684
740
 
685
- ## 🏁 v3.0.0 - Championship Edition
741
+ ## 🏁 v3.0.2 - Championship Edition
686
742
 
687
- **FREE FOREVER** 🆓 • **TURBO-CAT Powered** 😽 • **10,000 Downloads** 🎉
743
+ **FREE FOR ALL DEVS** 🆓 • **TURBO-CAT Powered** 😽 • **Growing Fast** 📈
688
744
 
689
745
  Made with 🧡 by **[wolfejam](https://github.com/Wolfe-Jam)**
690
746
 
@@ -694,8 +750,8 @@ Made with 🧡 by **[wolfejam](https://github.com/Wolfe-Jam)**
694
750
 
695
751
  ---
696
752
 
697
- **Like VS Code + Copilot** **Like Spotify Free + Premium** • **Like Zoom Basic + Pro**
753
+ The CLI is **FREE FOR ALL DEVS**.
698
754
 
699
- The engine is FREE FOREVER. TURBO unlocks the pyramid. 😽🔺
755
+ Love it? **TURBO** for advanced features, ready for once you've kicked the tires! 😽💨
700
756
 
701
757
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/commands/auto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,iBAkH9E;;AAED;;;;;;;;;;;;;;GAcG"}
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/commands/auto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,iBA6O9E;;AAED;;;;;;;;;;;;;;GAcG"}
@@ -61,6 +61,108 @@ async function autoCommand(directory, options = {}) {
61
61
  return;
62
62
  }
63
63
  try {
64
+ // Step 0: Check for platform workflows (funnel to TURBO)
65
+ const { findN8nWorkflows, findMakeScenarios, findOpalMiniApps, findOpenAIAssistants } = await Promise.resolve().then(() => __importStar(require('../utils/file-utils')));
66
+ // Check n8n workflows
67
+ const n8nWorkflows = await findN8nWorkflows(targetDir);
68
+ if (n8nWorkflows.length > 0) {
69
+ console.log(colors_1.chalk.yellow(`\n⚠️ n8n workflow detected: ${colors_1.chalk.white(n8nWorkflows[0])}`));
70
+ console.log(colors_1.chalk.cyan(`\n💡 Fancy an 85% or even a 99%? 🏎️💨`));
71
+ console.log(colors_1.chalk.white(` faf turbo analyze "${n8nWorkflows[0]}"`));
72
+ console.log(colors_1.chalk.gray(`\n🏆 TURBO: 48% → 85%+ (with bi-sync) <3 seconds!`));
73
+ console.log(colors_1.chalk.gray(` vs. standard auto: 25% (generic detection)\n`));
74
+ const readline = await Promise.resolve().then(() => __importStar(require('readline')));
75
+ const rl = readline.createInterface({
76
+ input: process.stdin,
77
+ output: process.stdout
78
+ });
79
+ const answer = await new Promise((resolve) => {
80
+ rl.question(colors_1.chalk.cyan('Continue with standard auto (not recommended)? [y/N]: '), resolve);
81
+ });
82
+ rl.close();
83
+ if (answer.toLowerCase() !== 'y') {
84
+ console.log(colors_1.chalk.green(`\n✨ Run this instead:`));
85
+ console.log(colors_1.chalk.white(` faf turbo analyze "${n8nWorkflows[0]}"`));
86
+ console.log();
87
+ process.exit(0);
88
+ }
89
+ console.log(colors_1.chalk.gray('\n⚠️ Proceeding with standard auto (n8n intelligence will be missed)...\n'));
90
+ }
91
+ // Check Make.com scenarios
92
+ const makeScenarios = await findMakeScenarios(targetDir);
93
+ if (makeScenarios.length > 0) {
94
+ console.log(colors_1.chalk.yellow(`\n⚠️ Make.com scenario detected: ${colors_1.chalk.white(makeScenarios[0])}`));
95
+ console.log(colors_1.chalk.cyan(`\n💡 Fancy an 85% or even a 99%? 🏎️💨`));
96
+ console.log(colors_1.chalk.white(` faf turbo analyze "${makeScenarios[0]}"`));
97
+ console.log(colors_1.chalk.gray(`\n🏆 TURBO: 50% → 85%+ (with bi-sync) <3 seconds!`));
98
+ console.log(colors_1.chalk.gray(` vs. standard auto: 25% (generic detection)\n`));
99
+ const readline = await Promise.resolve().then(() => __importStar(require('readline')));
100
+ const rl = readline.createInterface({
101
+ input: process.stdin,
102
+ output: process.stdout
103
+ });
104
+ const answer = await new Promise((resolve) => {
105
+ rl.question(colors_1.chalk.cyan('Continue with standard auto (not recommended)? [y/N]: '), resolve);
106
+ });
107
+ rl.close();
108
+ if (answer.toLowerCase() !== 'y') {
109
+ console.log(colors_1.chalk.green(`\n✨ Run this instead:`));
110
+ console.log(colors_1.chalk.white(` faf turbo analyze "${makeScenarios[0]}"`));
111
+ console.log();
112
+ process.exit(0);
113
+ }
114
+ console.log(colors_1.chalk.gray('\n⚠️ Proceeding with standard auto (Make.com intelligence will be missed)...\n'));
115
+ }
116
+ // Check Google Opal mini-apps
117
+ const opalMiniApps = await findOpalMiniApps(targetDir);
118
+ if (opalMiniApps.length > 0) {
119
+ console.log(colors_1.chalk.yellow(`\n⚠️ Google Opal mini-app detected: ${colors_1.chalk.white(opalMiniApps[0])}`));
120
+ console.log(colors_1.chalk.cyan(`\n💡 Fancy an 85% or even a 99%? 🏎️💨`));
121
+ console.log(colors_1.chalk.white(` faf turbo analyze "${opalMiniApps[0]}"`));
122
+ console.log(colors_1.chalk.gray(`\n🏆 TURBO: 45% → 85%+ (with bi-sync) <3 seconds!`));
123
+ console.log(colors_1.chalk.gray(` vs. standard auto: 25% (generic detection)\n`));
124
+ const readline = await Promise.resolve().then(() => __importStar(require('readline')));
125
+ const rl = readline.createInterface({
126
+ input: process.stdin,
127
+ output: process.stdout
128
+ });
129
+ const answer = await new Promise((resolve) => {
130
+ rl.question(colors_1.chalk.cyan('Continue with standard auto (not recommended)? [y/N]: '), resolve);
131
+ });
132
+ rl.close();
133
+ if (answer.toLowerCase() !== 'y') {
134
+ console.log(colors_1.chalk.green(`\n✨ Run this instead:`));
135
+ console.log(colors_1.chalk.white(` faf turbo analyze "${opalMiniApps[0]}"`));
136
+ console.log();
137
+ process.exit(0);
138
+ }
139
+ console.log(colors_1.chalk.gray('\n⚠️ Proceeding with standard auto (Google Opal intelligence will be missed)...\n'));
140
+ }
141
+ // Check OpenAI Assistants
142
+ const openaiAssistants = await findOpenAIAssistants(targetDir);
143
+ if (openaiAssistants.length > 0) {
144
+ console.log(colors_1.chalk.yellow(`\n⚠️ OpenAI Assistant detected: ${colors_1.chalk.white(openaiAssistants[0])}`));
145
+ console.log(colors_1.chalk.cyan(`\n💡 Fancy an 85% or even a 99%? 🏎️💨`));
146
+ console.log(colors_1.chalk.white(` faf turbo analyze "${openaiAssistants[0]}"`));
147
+ console.log(colors_1.chalk.gray(`\n🏆 TURBO: 55% → 85%+ (with bi-sync) <3 seconds!`));
148
+ console.log(colors_1.chalk.gray(` vs. standard auto: 25% (generic detection)\n`));
149
+ const readline = await Promise.resolve().then(() => __importStar(require('readline')));
150
+ const rl = readline.createInterface({
151
+ input: process.stdin,
152
+ output: process.stdout
153
+ });
154
+ const answer = await new Promise((resolve) => {
155
+ rl.question(colors_1.chalk.cyan('Continue with standard auto (not recommended)? [y/N]: '), resolve);
156
+ });
157
+ rl.close();
158
+ if (answer.toLowerCase() !== 'y') {
159
+ console.log(colors_1.chalk.green(`\n✨ Run this instead:`));
160
+ console.log(colors_1.chalk.white(` faf turbo analyze "${openaiAssistants[0]}"`));
161
+ console.log();
162
+ process.exit(0);
163
+ }
164
+ console.log(colors_1.chalk.gray('\n⚠️ Proceeding with standard auto (OpenAI intelligence will be missed)...\n'));
165
+ }
64
166
  // Step 1: Check if .faf exists
65
167
  let fafPath = await (0, file_utils_1.findFafFile)(targetDir);
66
168
  // Get scores for header display
@@ -1 +1 @@
1
- {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/commands/auto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/commands/auto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"faf-compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"faf-compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
@@ -295,14 +295,25 @@ class FafCompiler {
295
295
  }
296
296
  buildIR(ast) {
297
297
  const slots = [];
298
- // Project slots (3)
299
- this.addSlot(slots, 'project.name', ast.project?.name, 'string', 'original', 1);
300
- this.addSlot(slots, 'project.goal', ast.project?.goal, 'string', 'original', 1);
301
- this.addSlot(slots, 'project.main_language', ast.project?.main_language, 'string', 'original', 1);
302
298
  // Detect project type to determine applicable stack slots
303
299
  const projectType = this.detectProjectTypeFromContext(ast);
300
+ if (process.env.FAF_DEBUG) {
301
+ console.log(`\n[DEBUG] Project type detected: ${projectType}`);
302
+ }
304
303
  const isFrontendProject = this.requiresFrontendStack(projectType);
305
304
  const isBackendProject = this.requiresBackendStack(projectType);
305
+ // Auto-fill project.main_language for n8n workflows BEFORE reading slots
306
+ if (projectType === 'n8n-workflow') {
307
+ if (!ast.project)
308
+ ast.project = {};
309
+ if (!ast.project.main_language) {
310
+ ast.project.main_language = ast.tech_stack?.primary_language || 'JSON (workflow definition)';
311
+ }
312
+ }
313
+ // Project slots (3)
314
+ this.addSlot(slots, 'project.name', ast.project?.name, 'string', 'original', 1);
315
+ this.addSlot(slots, 'project.goal', ast.project?.goal, 'string', 'original', 1);
316
+ this.addSlot(slots, 'project.main_language', ast.project?.main_language, 'string', 'original', 1);
306
317
  // Chrome Extension auto-fill: If it's a Chrome Extension, intelligently fill slots
307
318
  if (projectType === 'chrome-extension') {
308
319
  // Auto-fill Chrome Extension technical context
@@ -335,6 +346,55 @@ class FafCompiler {
335
346
  this.addSlot(slots, 'stack.build', ast.stack.build, 'string', 'original', 1);
336
347
  }
337
348
  }
349
+ // n8n Workflow auto-fill: Map n8n-specific fields to standard 21-slot system
350
+ if (projectType === 'n8n-workflow') {
351
+ // Map n8n context to existing stack slots (efficient, no slot inflation)
352
+ if (!ast.stack)
353
+ ast.stack = {};
354
+ // Runtime = workflow engine
355
+ if (!ast.stack.runtime) {
356
+ ast.stack.runtime = ast.tech_stack?.workflow_engine || 'n8n';
357
+ }
358
+ // Backend = n8n server runtime
359
+ if (!ast.stack.backend) {
360
+ ast.stack.backend = 'Node.js (n8n server)';
361
+ }
362
+ // API type = n8n trigger types
363
+ if (!ast.stack.api_type) {
364
+ ast.stack.api_type = 'Webhooks + HTTP';
365
+ }
366
+ // Database = vector DB or workflow state
367
+ if (!ast.stack.database) {
368
+ ast.stack.database = ast.tech_stack?.infrastructure?.vector_db || 'Workflow State';
369
+ }
370
+ // Hosting = deployment location
371
+ if (!ast.stack.hosting) {
372
+ ast.stack.hosting = 'n8n Cloud';
373
+ }
374
+ // Build tool = how workflows are created
375
+ if (!ast.stack.build) {
376
+ ast.stack.build = 'n8n Visual Editor';
377
+ }
378
+ // Connection = integrations (maps to stack.connection slot)
379
+ if (!ast.stack.connection && ast.tech_stack?.integrations) {
380
+ ast.stack.connection = Array.isArray(ast.tech_stack.integrations)
381
+ ? ast.tech_stack.integrations.join(', ')
382
+ : String(ast.tech_stack.integrations);
383
+ }
384
+ // Add n8n-specific slots (maps to standard 21-slot system)
385
+ // Backend slots (5)
386
+ this.addSlot(slots, 'stack.runtime', ast.stack.runtime, 'string', 'discovered', 1);
387
+ this.addSlot(slots, 'stack.backend', ast.stack.backend, 'string', 'discovered', 1);
388
+ this.addSlot(slots, 'stack.api_type', ast.stack.api_type, 'string', 'discovered', 1);
389
+ this.addSlot(slots, 'stack.database', ast.stack.database, 'string', 'discovered', 1);
390
+ this.addSlot(slots, 'stack.connection', ast.stack.connection, 'string', 'original', 1);
391
+ // Frontend slots (4) - n8n workflows don't have frontend, but we still count them
392
+ this.addSlot(slots, 'stack.frontend', ast.stack?.frontend, 'string', 'original', 1);
393
+ this.addSlot(slots, 'stack.css_framework', ast.stack?.css_framework, 'string', 'original', 1);
394
+ this.addSlot(slots, 'stack.ui_library', ast.stack?.ui_library, 'string', 'original', 1);
395
+ this.addSlot(slots, 'stack.state_management', ast.stack?.state_management, 'string', 'original', 1);
396
+ // Universal slots (3) will be added below (hosting, build, cicd)
397
+ }
338
398
  // Stack slots - only add relevant ones based on project type
339
399
  if (isFrontendProject) {
340
400
  this.addSlot(slots, 'stack.frontend', ast.stack?.frontend, 'string', 'original', 1);
@@ -381,7 +441,19 @@ class FafCompiler {
381
441
  return slots;
382
442
  }
383
443
  addSlot(slots, path, value, type, source, weight) {
444
+ // Deduplication: Check if slot path already exists
445
+ const exists = slots.some(slot => slot.path === path);
446
+ if (exists) {
447
+ if (process.env.FAF_DEBUG) {
448
+ console.log(`[DEBUG] Skipped duplicate slot: ${path}`);
449
+ }
450
+ return; // Skip duplicate slot
451
+ }
384
452
  const filled = this.isSlotFilled(value);
453
+ if (process.env.FAF_DEBUG) {
454
+ const valueStr = JSON.stringify(value) || '';
455
+ console.log(`[DEBUG] Added slot: ${path} | filled: ${filled} | value: ${valueStr.substring(0, 50)}`);
456
+ }
385
457
  slots.push({
386
458
  id: `slot_${slots.length + 1}`,
387
459
  path,