faf-cli 3.0.1 → 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 +154 -25
- 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
|
|
@@ -123,6 +123,83 @@ faf formats
|
|
|
123
123
|
|
|
124
124
|
---
|
|
125
125
|
|
|
126
|
+
## 💨 FAF TURBO - World-Class Automation Intelligence
|
|
127
|
+
|
|
128
|
+
### Like **VS Code + Copilot** • Same model that works!
|
|
129
|
+
|
|
130
|
+
<div align="center">
|
|
131
|
+
|
|
132
|
+
<table>
|
|
133
|
+
<tr>
|
|
134
|
+
<td width="50%" valign="top">
|
|
135
|
+
|
|
136
|
+
### **FAF v3.0.2 (FREE FOR ALL DEVS)** 🆓
|
|
137
|
+
|
|
138
|
+
✅ **41 Championship Commands**
|
|
139
|
+
- Project initialization & auto-detection
|
|
140
|
+
- TURBO-CAT format discovery (153 formats)
|
|
141
|
+
- Birth DNA lifecycle tracking
|
|
142
|
+
- AI readiness scoring (0-100%)
|
|
143
|
+
- Context-mirroring (bi-sync)
|
|
144
|
+
- Health checks & diagnostics
|
|
145
|
+
|
|
146
|
+
✅ **Performance**
|
|
147
|
+
- <50ms command execution
|
|
148
|
+
- 8ms bi-sync (championship speed)
|
|
149
|
+
- F1-inspired engineering
|
|
150
|
+
- 0ms operations achieved
|
|
151
|
+
|
|
152
|
+
✅ **Universal Compatibility**
|
|
153
|
+
- Works with Claude, Codex CLI, Gemini CLI, Cursor
|
|
154
|
+
- Mac, Linux, Windows support
|
|
155
|
+
- Open source, MIT licensed
|
|
156
|
+
- Growing developer community
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
npm install -g faf-cli
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
</td>
|
|
163
|
+
<td width="50%" valign="top">
|
|
164
|
+
|
|
165
|
+
### **FAF v3.0.2 TURBO** 💨
|
|
166
|
+
|
|
167
|
+
✅ **Everything in FREE, Plus:**
|
|
168
|
+
|
|
169
|
+
🧬 **Deep Format Intelligence**
|
|
170
|
+
- Pyramid-level insights (17 levels deep)
|
|
171
|
+
- Cross-format relationship analysis
|
|
172
|
+
- Stack health diagnostics
|
|
173
|
+
- Migration path recommendations
|
|
174
|
+
|
|
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
|
|
181
|
+
|
|
182
|
+
🏆 **Premium Features**
|
|
183
|
+
- Priority support & service plans
|
|
184
|
+
- Advanced TURBO-CAT capabilities
|
|
185
|
+
- Enterprise integrations
|
|
186
|
+
- Early access to new features
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
Learn more: faf.one/turbo
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
</td>
|
|
193
|
+
</tr>
|
|
194
|
+
</table>
|
|
195
|
+
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
**TURBO**: Where automation platforms (n8n, Make, Opal) get championship AI context.
|
|
199
|
+
**Foundational first, universal by default.**
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
126
203
|
## 🚀 Quick Start
|
|
127
204
|
|
|
128
205
|
```bash
|
|
@@ -191,21 +268,41 @@ We created this tool together across thousands of conversations. Yet without pro
|
|
|
191
268
|
|
|
192
269
|
Universal, shareable AI context that works with **Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor** - regardless of your stack, size, or setup.
|
|
193
270
|
|
|
194
|
-
###
|
|
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
|
|
280
|
+
|
|
281
|
+
**This isn't about saving 20 minutes at setup.**
|
|
195
282
|
|
|
196
|
-
|
|
197
|
-
- ❌
|
|
198
|
-
- ❌
|
|
199
|
-
- ❌
|
|
200
|
-
- ❌
|
|
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**
|
|
201
289
|
|
|
202
|
-
|
|
290
|
+
**It's not a one-time config. It's a relationship.**
|
|
203
291
|
|
|
204
|
-
|
|
205
|
-
|
|
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
|
|
206
304
|
- ✅ **Works with every AI** - Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor, all of them
|
|
207
|
-
- ✅ **
|
|
208
|
-
- ✅ **Persistent memory** - Never explain your project again
|
|
305
|
+
- ✅ **Team alignment** - Everyone (human AND AI) on the same page
|
|
209
306
|
|
|
210
307
|
---
|
|
211
308
|
|
|
@@ -298,7 +395,7 @@ faf lint # Fix formatting issues
|
|
|
298
395
|
|
|
299
396
|
## 🤖 Works with AI Assistants
|
|
300
397
|
|
|
301
|
-
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.
|
|
302
399
|
|
|
303
400
|
**PLUS AI-Automation platforms:** n8n, OpenAI Builder, Google Opal, Make.com
|
|
304
401
|
|
|
@@ -423,7 +520,7 @@ faf auto -q
|
|
|
423
520
|
## 📊 Technical Specs
|
|
424
521
|
|
|
425
522
|
```yaml
|
|
426
|
-
Version: 3.0.
|
|
523
|
+
Version: 3.0.2 - Championship Edition
|
|
427
524
|
Performance: <50ms all commands, 18ms avg, 8ms bi-sync, 0ms operations achieved
|
|
428
525
|
Engine: FAF-Engine-Mk3
|
|
429
526
|
TURBO-CAT: v3.0.0 - Full Power (Introduced v2.0.0, 153 validated formats)
|
|
@@ -438,9 +535,42 @@ Automation: n8n workflows, OpenAI Builder, Google Opal, Make.com - AI-Automat
|
|
|
438
535
|
|
|
439
536
|
---
|
|
440
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
|
+
|
|
441
571
|
## 🏆 WJTTC Championship Testing
|
|
442
572
|
|
|
443
|
-
**FAF CLI v3.0.
|
|
573
|
+
**FAF CLI v3.0.2 is WJTTC GOLD Certified** - tested to F1-grade standards.
|
|
444
574
|
|
|
445
575
|
### What is WJTTC?
|
|
446
576
|
**WolfeJam Technical & Testing Center** - F1-inspired testing methodology ensuring championship-grade reliability.
|
|
@@ -541,7 +671,7 @@ npm link
|
|
|
541
671
|
|
|
542
672
|
We welcome contributions! Join our [community discussions](https://github.com/Wolfe-Jam/faf-cli/discussions) or submit issues/PRs.
|
|
543
673
|
|
|
544
|
-
**Join
|
|
674
|
+
**Join our growing community** using `.faf` to accelerate their AI workflows:
|
|
545
675
|
- Share your projects
|
|
546
676
|
- Get help from the community
|
|
547
677
|
- Request features
|
|
@@ -553,12 +683,11 @@ We welcome contributions! Join our [community discussions](https://github.com/Wo
|
|
|
553
683
|
|
|
554
684
|
**Position your brand alongside the universal AI context standard.**
|
|
555
685
|
|
|
556
|
-
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.
|
|
557
687
|
|
|
558
688
|
### 📈 Growth Momentum
|
|
559
689
|
|
|
560
|
-
- **
|
|
561
|
-
- **4,600 CLI downloads** - Rapid CLI adoption
|
|
690
|
+
- **Rapid adoption** - See live stats on npm
|
|
562
691
|
- **Category leader** - First universal AI context standard
|
|
563
692
|
- **Enterprise traction** - Infrastructure-level adoption
|
|
564
693
|
- **BIG-3 validated** - Tested and endorsed by Google Gemini, Anthropic Claude, OpenAI Codex
|
|
@@ -609,9 +738,9 @@ Copy cats? Why bother.
|
|
|
609
738
|
|
|
610
739
|
<div align="center">
|
|
611
740
|
|
|
612
|
-
## 🏁 v3.0.
|
|
741
|
+
## 🏁 v3.0.2 - Championship Edition
|
|
613
742
|
|
|
614
|
-
**FREE
|
|
743
|
+
**FREE FOR ALL DEVS** 🆓 • **TURBO-CAT Powered** 😽 • **Growing Fast** 📈
|
|
615
744
|
|
|
616
745
|
Made with 🧡 by **[wolfejam](https://github.com/Wolfe-Jam)**
|
|
617
746
|
|
|
@@ -621,8 +750,8 @@ Made with 🧡 by **[wolfejam](https://github.com/Wolfe-Jam)**
|
|
|
621
750
|
|
|
622
751
|
---
|
|
623
752
|
|
|
624
|
-
The CLI is **FREE
|
|
753
|
+
The CLI is **FREE FOR ALL DEVS**.
|
|
625
754
|
|
|
626
|
-
Love it? **TURBO** for advanced features
|
|
755
|
+
Love it? **TURBO** for advanced features, ready for once you've kicked the tires! 😽💨
|
|
627
756
|
|
|
628
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,
|