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 +134 -78
- package/dist/commands/auto.d.ts.map +1 -1
- package/dist/commands/auto.js +102 -0
- package/dist/commands/auto.js.map +1 -1
- package/dist/compiler/faf-compiler.d.ts.map +1 -1
- package/dist/compiler/faf-compiler.js +76 -4
- package/dist/compiler/faf-compiler.js.map +1 -1
- package/dist/core/platform-adapters.d.ts +76 -0
- package/dist/core/platform-adapters.d.ts.map +1 -0
- package/dist/core/platform-adapters.js +407 -0
- package/dist/core/platform-adapters.js.map +1 -0
- package/dist/core/universal-intelligence-generator.d.ts +156 -0
- package/dist/core/universal-intelligence-generator.d.ts.map +1 -0
- package/dist/core/universal-intelligence-generator.js +352 -0
- package/dist/core/universal-intelligence-generator.js.map +1 -0
- package/dist/tests/manual-validation.d.ts +8 -0
- package/dist/tests/manual-validation.d.ts.map +1 -0
- package/dist/tests/manual-validation.js +114 -0
- package/dist/tests/manual-validation.js.map +1 -0
- package/dist/utils/file-utils.d.ts +38 -0
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +148 -0
- package/dist/utils/file-utils.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# faf-cli v3.0.
|
|
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
|
|
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
|
-
**
|
|
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
|
-
##
|
|
84
|
+
## 😽 TURBO-CAT™ - Full Official Launch
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
**The Rapid Catalytic Converter - Now Purring at Full Power**
|
|
87
87
|
|
|
88
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
136
|
-
- n8n workflow parsing
|
|
137
|
-
- OpenAI
|
|
138
|
-
-
|
|
139
|
-
-
|
|
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
|
-
**
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
278
|
-
|
|
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
|
-
- ✅ **
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
- **
|
|
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.
|
|
741
|
+
## 🏁 v3.0.2 - Championship Edition
|
|
686
742
|
|
|
687
|
-
**FREE
|
|
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
|
-
|
|
753
|
+
The CLI is **FREE FOR ALL DEVS**.
|
|
698
754
|
|
|
699
|
-
|
|
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,
|
|
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"}
|
package/dist/commands/auto.js
CHANGED
|
@@ -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":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,
|
|
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":"AAAA;;;;;;GAMG;AAYH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,EAAE,EAAE,0BAA0B,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAoB;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAExD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,EAAE,CAA6B;;IAgBvC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAyC5C,UAAU;IAoBxB,OAAO,CAAC,KAAK;IA2Bb,OAAO,CAAC,OAAO;IAiCf,OAAO,CAAC,aAAa;YAgCP,QAAQ;YA2BR,QAAQ;IAsBtB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,QAAQ;IA6BhB,OAAO,CAAC,OAAO;
|
|
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,
|