claude-faf-mcp 3.3.2 → 3.3.4
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/CHANGELOG.md +28 -0
- package/CLAUDE.md +29 -0
- package/README.md +29 -13
- package/dist/src/faf-core/commands/audit.d.ts +1 -1
- package/dist/src/faf-core/commands/audit.js +1 -1
- package/dist/src/faf-core/commands/audit.js.map +1 -1
- package/dist/src/faf-core/commands/auto.js +35 -1
- package/dist/src/faf-core/commands/auto.js.map +1 -1
- package/dist/src/faf-core/commands/bi-sync.d.ts +1 -1
- package/dist/src/faf-core/commands/bi-sync.js +1 -1
- package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
- package/dist/src/faf-core/commands/formats.d.ts +1 -1
- package/dist/src/faf-core/commands/formats.js +1 -1
- package/dist/src/faf-core/commands/formats.js.map +1 -1
- package/dist/src/faf-core/commands/init.js +2 -1
- package/dist/src/faf-core/commands/init.js.map +1 -1
- package/dist/src/faf-core/commands/sync.js.map +1 -1
- package/dist/src/faf-core/commands/update.d.ts +1 -1
- package/dist/src/faf-core/commands/update.js +1 -1
- package/dist/src/faf-core/commands/update.js.map +1 -1
- package/dist/src/faf-core/commands/validate.d.ts +1 -1
- package/dist/src/faf-core/commands/validate.js +1 -1
- package/dist/src/faf-core/commands/validate.js.map +1 -1
- package/dist/src/faf-core/compiler/faf-compiler.js +43 -0
- package/dist/src/faf-core/compiler/faf-compiler.js.map +1 -1
- package/dist/src/faf-core/engines/dependency-tsa.js.map +1 -1
- package/dist/src/faf-core/engines/fab-formats-processor.js +3 -3
- package/dist/src/faf-core/engines/fab-formats-processor.js.map +1 -1
- package/dist/src/faf-core/engines/faf-dna.d.ts +1 -1
- package/dist/src/faf-core/engines/faf-dna.js +4 -3
- package/dist/src/faf-core/engines/faf-dna.js.map +1 -1
- package/dist/src/faf-core/fix-once/colors.js +1 -0
- package/dist/src/faf-core/fix-once/colors.js.map +1 -1
- package/dist/src/faf-core/generators/faf-generator-championship.js +7 -7
- package/dist/src/faf-core/generators/faf-generator-championship.js.map +1 -1
- package/dist/src/faf-core/utils/balance-visualizer.js +3 -3
- package/dist/src/faf-core/utils/balance-visualizer.js.map +1 -1
- package/dist/src/faf-core/utils/championship-style.js +1 -0
- package/dist/src/faf-core/utils/championship-style.js.map +1 -1
- package/dist/src/faf-core/utils/platform-detector.js +1 -1
- package/dist/src/faf-core/utils/platform-detector.js.map +1 -1
- package/dist/src/faf-core/utils/technical-credit.js +1 -0
- package/dist/src/faf-core/utils/technical-credit.js.map +1 -1
- package/dist/src/handlers/championship-tools.js +90 -133
- package/dist/src/handlers/championship-tools.js.map +1 -1
- package/dist/src/handlers/tools.d.ts +10 -0
- package/dist/src/handlers/tools.js +417 -14
- package/dist/src/handlers/tools.js.map +1 -1
- package/dist/src/server.js.map +1 -1
- package/dist/src/types/tool-visibility.js +1 -1
- package/dist/src/types/tool-visibility.js.map +1 -1
- package/dist/src/utils/auto-path-detection.js +1 -1
- package/dist/src/utils/auto-path-detection.js.map +1 -1
- package/dist/src/utils/visual-style.js +7 -5
- package/dist/src/utils/visual-style.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,34 @@ All notable changes to claude-faf-mcp will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.3.4] - 2025-12-01
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Subsite Auto-Detection** - Smart scoring for static HTML subsites
|
|
12
|
+
- Pattern detection: No `package.json` + has `index.html`
|
|
13
|
+
- Auto-ignores package.json-derived stack slots (backend, api_type, runtime, database, etc.)
|
|
14
|
+
- Subsites can achieve 100% score without manual configuration
|
|
15
|
+
- Auto-fills: `stack.frontend`, `stack.hosting`, `stack.build`, `stack.cicd`
|
|
16
|
+
- Ideal for landing pages, demos, documentation subsites
|
|
17
|
+
- **Path Context Enhancement** - All action tools now support explicit `path` parameter
|
|
18
|
+
- `faf_context` tool for explicit session context management
|
|
19
|
+
- Auto-set context when reading .faf files via `faf_read`
|
|
20
|
+
- Session state persists for subsequent calls
|
|
21
|
+
- **faf_human_add** - Renamed from `faf_human_set` for consistency with CLI
|
|
22
|
+
|
|
23
|
+
## [3.3.3] - 2025-11-27
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Tier System Alignment** - Synchronized Mk3 tier system across all code paths
|
|
27
|
+
- JSON output now uses canonical tier names (Trophy, Gold, Silver, Bronze, Green, Yellow, Red, White)
|
|
28
|
+
- Fixed 0% edge case to show White tier (🤍)
|
|
29
|
+
- All scorecard renders now use unified `getScoreMedal()` function
|
|
30
|
+
- **Removed Unauthorized Branding** - Cleaned up hallucinated F1/racing terminology
|
|
31
|
+
- Removed "Championship", "Podium Edition", "Race ready", "Pit Stop" from user-facing output
|
|
32
|
+
- Tool descriptions updated to neutral language
|
|
33
|
+
- Help text now shows proper Mk3 tier system
|
|
34
|
+
- **README Cleanup** - Removed F1 branding, aligned with code changes
|
|
35
|
+
|
|
8
36
|
## [3.3.2] - 2025-11-16
|
|
9
37
|
|
|
10
38
|
### Fixed
|
package/CLAUDE.md
CHANGED
|
@@ -57,6 +57,35 @@ Any LLM → IANA Format → Open Protocol
|
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
60
|
+
## 🚨 CODE CHANGE PROTOCOL - MANDATORY 🚨
|
|
61
|
+
|
|
62
|
+
**CRITICAL RULE: DO NOT WRITE CODE UNLESS EXPLICITLY AUTHORIZED**
|
|
63
|
+
|
|
64
|
+
Before making ANY code changes:
|
|
65
|
+
1. **DESCRIBE** what you plan to change
|
|
66
|
+
2. **WAIT** for explicit approval ("GO!", "YES", "Do it")
|
|
67
|
+
3. **ONLY THEN** write the code
|
|
68
|
+
|
|
69
|
+
**What counts as "code changes":**
|
|
70
|
+
- Adding new features
|
|
71
|
+
- Modifying existing functionality
|
|
72
|
+
- Changing user-facing text/messages
|
|
73
|
+
- Adding branding, emojis, or styling
|
|
74
|
+
- Refactoring
|
|
75
|
+
|
|
76
|
+
**What does NOT need approval:**
|
|
77
|
+
- Reading files to answer questions
|
|
78
|
+
- Running tests
|
|
79
|
+
- Checking versions
|
|
80
|
+
- Research and exploration
|
|
81
|
+
|
|
82
|
+
**Why this matters:**
|
|
83
|
+
- The F1 hallucination incident (v3.3.3) showed AI adding unauthorized branding
|
|
84
|
+
- User-facing output must be controlled by wolfejam
|
|
85
|
+
- Trust requires permission-based coding
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
60
89
|
## 🚨 NPM PUBLISH PROTOCOL - MANDATORY 🚨
|
|
61
90
|
|
|
62
91
|
**CRITICAL RULE: `npm publish` IS FORBIDDEN WITHOUT APPROVAL**
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
|
-
> Official MCP server for .FAF (Foundational AI-context Format) with
|
|
9
|
+
> Official MCP server for .FAF (Foundational AI-context Format) with 52 tools - Persistent project context that integrates seamlessly with Claude Desktop workflows
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/claude-faf-mcp)
|
|
12
12
|
[](https://discord.com/invite/56fPBUJKfk)
|
|
@@ -29,25 +29,38 @@ At 55% you are building your project with half a blueprint and basically flippin
|
|
|
29
29
|
|
|
30
30
|
```
|
|
31
31
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
32
|
-
|
|
32
|
+
🏆 FAF AI-READINESS SCORE: 100/100
|
|
33
33
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
34
|
|
|
35
35
|
📊 CORE INTELLIGENCE 🎯 CONTEXT DELIVERY
|
|
36
36
|
├─ Project DNA [██████] 100% ├─ MCP Protocol [██████] 100%
|
|
37
|
-
├─ Architecture Map [██████] 100% ├─
|
|
37
|
+
├─ Architecture Map [██████] 100% ├─ 52 Native Tools [██████] 100%
|
|
38
38
|
├─ Domain Model [██████] 100% ├─ IANA Format [██████] 100%
|
|
39
39
|
└─ Version Tracking [██████] 100% └─ Universal Context [██████] 100%
|
|
40
40
|
|
|
41
41
|
🚀 PERFORMANCE ⚡ STANDALONE OPERATION
|
|
42
|
-
├─ 16.2x
|
|
42
|
+
├─ 16.2x Speedup [██████] 100% ├─ Zero Dependencies [██████] 100%
|
|
43
43
|
├─ 19ms Avg Execution [██████] 100% ├─ Bundled Engine [██████] 100%
|
|
44
|
-
├─
|
|
44
|
+
├─ 52/52 Tools Active [██████] 100% ├─ Direct Function [██████] 100%
|
|
45
45
|
└─ Zero Memory Leaks [██████] 100% └─ 14 Bundled Cmds [██████] 100%
|
|
46
46
|
|
|
47
|
-
🏆
|
|
47
|
+
🏆 Status: Trophy - Perfect AI context
|
|
48
48
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
### Tier System
|
|
52
|
+
|
|
53
|
+
| Tier | Score | Emoji | Meaning |
|
|
54
|
+
|------|-------|-------|---------|
|
|
55
|
+
| **Trophy** | 100% | 🏆 | Perfect AI context |
|
|
56
|
+
| **Gold** | 99%+ | 🥇 | Exceptional |
|
|
57
|
+
| **Silver** | 95%+ | 🥈 | Top tier - Excellent |
|
|
58
|
+
| **Bronze** | 85%+ | 🥉 | Strong - Production ready |
|
|
59
|
+
| **Green** | 70%+ | 🟢 | Good - Solid foundation |
|
|
60
|
+
| **Yellow** | 55%+ | 🟡 | Caution - Needs improvement |
|
|
61
|
+
| **Red** | <55% | 🔴 | Critical - AI working blind |
|
|
62
|
+
| **White** | 0% | 🤍 | Empty - No context |
|
|
63
|
+
|
|
51
64
|
---
|
|
52
65
|
|
|
53
66
|
## ⚡ Quick Start
|
|
@@ -79,12 +92,14 @@ At 55% you are building your project with half a blueprint and basically flippin
|
|
|
79
92
|
|
|
80
93
|
## 🛠️ Core Features
|
|
81
94
|
|
|
82
|
-
###
|
|
95
|
+
### 52 MCP Tools (100% Standalone)
|
|
83
96
|
- **faf_quick** - Lightning-fast project.faf creation (3ms avg)
|
|
97
|
+
- **faf_readme** - Smart 6 Ws extraction from README.md (+25-35% score boost)
|
|
98
|
+
- **faf_human_add** - Non-interactive human context entry (Claude Code compatible)
|
|
84
99
|
- **faf_enhance** - Intelligent enhancement with auto-detection
|
|
85
100
|
- **faf_read** - Parse and validate FAF files
|
|
86
101
|
- **faf_write** - Create/update FAF with validation
|
|
87
|
-
- **faf_score** - AI-readiness scoring engine
|
|
102
|
+
- **faf_score** - AI-readiness scoring engine (with subsite auto-detection)
|
|
88
103
|
- **faf_compress** - Intelligent size optimization
|
|
89
104
|
- **14 bundled commands** - Zero CLI dependencies, 16.2x faster
|
|
90
105
|
|
|
@@ -94,11 +109,11 @@ At 55% you are building your project with half a blueprint and basically flippin
|
|
|
94
109
|
- Universal AI context protocol
|
|
95
110
|
- Cross-platform compatibility
|
|
96
111
|
|
|
97
|
-
###
|
|
112
|
+
### Performance
|
|
98
113
|
- **16.2x faster** than CLI versions (direct function calls vs process spawning)
|
|
99
114
|
- **19ms average** execution across all bundled commands
|
|
100
115
|
- **Fastest: 1ms** (formats command)
|
|
101
|
-
- **Zero memory leaks**
|
|
116
|
+
- **Zero memory leaks**
|
|
102
117
|
|
|
103
118
|
---
|
|
104
119
|
|
|
@@ -108,7 +123,7 @@ At 55% you are building your project with half a blueprint and basically flippin
|
|
|
108
123
|
- **[Full Documentation](https://wolfe-jam.github.io/claude-faf-mcp/)** - Complete guide
|
|
109
124
|
- **[FAQ](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/FAQ.md)** - Common questions
|
|
110
125
|
- **[Getting Started](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/getting-started.md)** - Installation & setup
|
|
111
|
-
- **[MCP Tools Reference](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/mcp-tools.md)** - All
|
|
126
|
+
- **[MCP Tools Reference](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/mcp-tools.md)** - All 52 tools
|
|
112
127
|
- **[Website](https://faf.one)** - faf.one
|
|
113
128
|
- **[Discord Community](https://discord.com/invite/56fPBUJKfk)** - Join the discussion
|
|
114
129
|
|
|
@@ -124,7 +139,7 @@ At 55% you are building your project with half a blueprint and basically flippin
|
|
|
124
139
|
|
|
125
140
|
**Zero Setup Tax** - One file (`project.faf`) eliminates AI context setup across your entire team
|
|
126
141
|
|
|
127
|
-
**
|
|
142
|
+
**Quality Engineering** - Strict TypeScript, zero runtime errors
|
|
128
143
|
|
|
129
144
|
---
|
|
130
145
|
|
|
@@ -132,6 +147,7 @@ At 55% you are building your project with half a blueprint and basically flippin
|
|
|
132
147
|
|
|
133
148
|
- **[FAF Format Spec](https://github.com/Wolfe-Jam/faf)** - Official IANA specification
|
|
134
149
|
- **[FAF CLI](https://github.com/Wolfe-Jam/faf-cli)** - Command-line tooling
|
|
150
|
+
- **[faf-wasm](https://www.npmjs.com/package/faf-wasm)** - WASM SDK for scoring (<5ms)
|
|
135
151
|
- **[Chrome Extension](https://chromewebstore.google.com/detail/lnecebepmpjpilldfmndnaofbfjkjlkm)** - Browser integration
|
|
136
152
|
- **[faf.one](https://faf.one)** - Official website and documentation
|
|
137
153
|
|
|
@@ -143,6 +159,6 @@ MIT License - Free and open source
|
|
|
143
159
|
|
|
144
160
|
---
|
|
145
161
|
|
|
146
|
-
**Built
|
|
162
|
+
**Built for speed and reliability** ⚡
|
|
147
163
|
|
|
148
164
|
*"It's so logical if it didn't exist, AI would have built it itself" — Claude*
|
|
@@ -18,4 +18,4 @@ export interface AuditResult {
|
|
|
18
18
|
strengths: string[];
|
|
19
19
|
message: string;
|
|
20
20
|
}
|
|
21
|
-
export declare function auditFafFile(projectPath?: string,
|
|
21
|
+
export declare function auditFafFile(projectPath?: string, _options?: AuditOptions): Promise<AuditResult>;
|
|
@@ -9,7 +9,7 @@ const fs_1 = require("fs");
|
|
|
9
9
|
const yaml_1 = require("../fix-once/yaml");
|
|
10
10
|
const file_utils_1 = require("../utils/file-utils");
|
|
11
11
|
const faf_compiler_1 = require("../compiler/faf-compiler");
|
|
12
|
-
async function auditFafFile(projectPath,
|
|
12
|
+
async function auditFafFile(projectPath, _options = {}) {
|
|
13
13
|
try {
|
|
14
14
|
const fafPath = projectPath ? `${projectPath}/project.faf` : await (0, file_utils_1.findFafFile)();
|
|
15
15
|
if (!fafPath || !await (0, file_utils_1.fileExists)(fafPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/audit.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAyBH,oCA4EC;AAnGD,2BAAoC;AACpC,2CAAsD;AACtD,oDAA8D;AAC9D,2DAAuD;AAoBhD,KAAK,UAAU,YAAY,CAAC,WAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/audit.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAyBH,oCA4EC;AAnGD,2BAAoC;AACpC,2CAAsD;AACtD,oDAA8D;AAC9D,2DAAuD;AAoBhD,KAAK,UAAU,YAAY,CAAC,WAAoB,EAAE,WAAyB,EAAE;IAClF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,cAAc,CAAC,CAAC,CAAC,MAAM,IAAA,wBAAW,GAAE,CAAC;QAEjF,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;gBACzF,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,2BAA2B;aACrC,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAA,YAAS,EAAC,OAAO,CAAC,CAAC;QAEnC,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,0BAAW,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,8BAA8B,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACzG,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,GAAG,EAAE,+BAA+B,EAAE,CAAC,CAAC;QAC7G,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,kBAAkB;QAClB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/B,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/B,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAElD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK;YACL,MAAM;YACN,SAAS;YACT,OAAO,EAAE,2BAA2B,WAAW,CAAC,KAAK,aAAa,KAAK,GAAG;SAC3E,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;YAChG,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -4,8 +4,42 @@
|
|
|
4
4
|
* Simplified version without interactive prompts
|
|
5
5
|
* No console output, returns structured data
|
|
6
6
|
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
7
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
41
|
exports.autoCommand = autoCommand;
|
|
42
|
+
const os = __importStar(require("os"));
|
|
9
43
|
const file_utils_js_1 = require("../utils/file-utils.js");
|
|
10
44
|
const init_js_1 = require("./init.js");
|
|
11
45
|
const score_js_1 = require("./score.js");
|
|
@@ -18,7 +52,7 @@ async function autoCommand(directory, options = {}) {
|
|
|
18
52
|
const startTime = Date.now();
|
|
19
53
|
try {
|
|
20
54
|
const targetDir = directory || process.cwd();
|
|
21
|
-
const homeDir =
|
|
55
|
+
const homeDir = os.homedir();
|
|
22
56
|
// CRITICAL: Prevent running in home or root directory
|
|
23
57
|
if (!directory && (targetDir === homeDir || targetDir === '/')) {
|
|
24
58
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/auto.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/auto.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,kCAoEC;AA5FD,uCAAyB;AACzB,0DAAqD;AACrD,uCAAoD;AACpD,yCAAuD;AAgBvD;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAC/B,SAAkB,EAClB,UAAuB,EAAE;IAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAE7B,sDAAsD;QACtD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,iDAAiD;gBACxD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAW,EAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,UAAkC,CAAC;QACvC,IAAI,OAAe,CAAC;QAEpB,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,2BAA2B;YAC3B,UAAU,GAAG,MAAM,IAAA,qBAAW,EAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAEpE,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBAClD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM;oBACb,UAAU;oBACV,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,aAAa;oBACxC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACjC,CAAC;YACJ,CAAC;YAED,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,WAAW,CAAC;QACxB,CAAC;QAED,yBAAyB;QACzB,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAY,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,UAAU;YACjB,UAAU;YACV,WAAW;YACX,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAEpF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,YAAY;YACnB,QAAQ;SACT,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -23,4 +23,4 @@ export declare function fafToClaudeMd(fafContent: string): string;
|
|
|
23
23
|
/**
|
|
24
24
|
* 🔗 Main Bi-Sync function
|
|
25
25
|
*/
|
|
26
|
-
export declare function syncBiDirectional(projectPath?: string,
|
|
26
|
+
export declare function syncBiDirectional(projectPath?: string, _options?: BiSyncOptions): Promise<BiSyncResult>;
|
|
@@ -101,7 +101,7 @@ function fafToClaudeMd(fafContent) {
|
|
|
101
101
|
/**
|
|
102
102
|
* 🔗 Main Bi-Sync function
|
|
103
103
|
*/
|
|
104
|
-
async function syncBiDirectional(projectPath,
|
|
104
|
+
async function syncBiDirectional(projectPath, _options = {}) {
|
|
105
105
|
const startTime = Date.now();
|
|
106
106
|
const result = {
|
|
107
107
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bi-sync.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/bi-sync.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,sCA2DC;AAKD,8CA6DC;AArJD,
|
|
1
|
+
{"version":3,"file":"bi-sync.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/bi-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,4 +19,4 @@ export interface FormatsResult {
|
|
|
19
19
|
}>;
|
|
20
20
|
message: string;
|
|
21
21
|
}
|
|
22
|
-
export declare function formatsCommand(projectPath?: string,
|
|
22
|
+
export declare function formatsCommand(projectPath?: string, _options?: FormatsOptions): Promise<FormatsResult>;
|
|
@@ -40,7 +40,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
40
40
|
exports.formatsCommand = formatsCommand;
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
42
|
const file_utils_1 = require("../utils/file-utils");
|
|
43
|
-
async function formatsCommand(projectPath,
|
|
43
|
+
async function formatsCommand(projectPath, _options = {}) {
|
|
44
44
|
try {
|
|
45
45
|
const projectRoot = projectPath || process.cwd();
|
|
46
46
|
const startTime = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/formats.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
40
40
|
exports.initFafFile = initFafFile;
|
|
41
41
|
const fs_1 = require("fs");
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
|
+
const os = __importStar(require("os"));
|
|
43
44
|
const file_utils_js_1 = require("../utils/file-utils.js");
|
|
44
45
|
const faf_generator_championship_js_1 = require("../generators/faf-generator-championship.js");
|
|
45
46
|
const fafignore_parser_js_1 = require("../utils/fafignore-parser.js");
|
|
@@ -52,7 +53,7 @@ async function initFafFile(projectPath, options = {}) {
|
|
|
52
53
|
const startTime = Date.now();
|
|
53
54
|
try {
|
|
54
55
|
const projectRoot = projectPath || process.cwd();
|
|
55
|
-
const homeDir =
|
|
56
|
+
const homeDir = os.homedir();
|
|
56
57
|
// CRITICAL: Prevent running in home or root directory
|
|
57
58
|
if (!projectPath && (projectRoot === homeDir || projectRoot === '/')) {
|
|
58
59
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/init.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/sync.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BH,kCAyEC;AAnGD,2BAAoC;AACpC,2CAA6B;AAC7B,2CAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,4 @@ export interface UpdateResult {
|
|
|
9
9
|
updated: boolean;
|
|
10
10
|
message: string;
|
|
11
11
|
}
|
|
12
|
-
export declare function updateFafFile(projectPath?: string,
|
|
12
|
+
export declare function updateFafFile(projectPath?: string, _options?: UpdateOptions): Promise<UpdateResult>;
|
|
@@ -7,7 +7,7 @@ exports.updateFafFile = updateFafFile;
|
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const yaml_1 = require("../fix-once/yaml");
|
|
9
9
|
const file_utils_1 = require("../utils/file-utils");
|
|
10
|
-
async function updateFafFile(projectPath,
|
|
10
|
+
async function updateFafFile(projectPath, _options = {}) {
|
|
11
11
|
try {
|
|
12
12
|
const fafPath = projectPath ? `${projectPath}/project.faf` : await (0, file_utils_1.findFafFile)();
|
|
13
13
|
if (!fafPath || !await (0, file_utils_1.fileExists)(fafPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/update.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgBH,sCAyCC;AAvDD,2BAAoC;AACpC,2CAAkF;AAClF,oDAA8D;AAYvD,KAAK,UAAU,aAAa,CAAC,WAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/update.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgBH,sCAyCC;AAvDD,2BAAoC;AACpC,2CAAkF;AAClF,oDAA8D;AAYvD,KAAK,UAAU,aAAa,CAAC,WAAoB,EAAE,WAA0B,EAAE;IACpF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,cAAc,CAAC,CAAC,CAAC,MAAM,IAAA,wBAAW,GAAE,CAAC;QAEjF,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,2BAA2B;aACrC,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAA,YAAS,EAAC,OAAO,CAAC,CAAC;QAEnC,kBAAkB;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC;QAE/C,qBAAqB;QACrB,MAAM,cAAc,GAAG,IAAA,gBAAa,EAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,aAAE,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAErD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2CAA2C;SACrD,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -18,4 +18,4 @@ export interface ValidateResult {
|
|
|
18
18
|
warnings: ValidationError[];
|
|
19
19
|
message: string;
|
|
20
20
|
}
|
|
21
|
-
export declare function validateFafFile(projectPath?: string,
|
|
21
|
+
export declare function validateFafFile(projectPath?: string, _options?: ValidateOptions): Promise<ValidateResult>;
|
|
@@ -8,7 +8,7 @@ exports.validateFafFile = validateFafFile;
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const yaml_1 = require("../fix-once/yaml");
|
|
10
10
|
const file_utils_1 = require("../utils/file-utils");
|
|
11
|
-
async function validateFafFile(projectPath,
|
|
11
|
+
async function validateFafFile(projectPath, _options = {}) {
|
|
12
12
|
try {
|
|
13
13
|
const fafPath = projectPath ? `${projectPath}/project.faf` : await (0, file_utils_1.findFafFile)();
|
|
14
14
|
if (!fafPath || !await (0, file_utils_1.fileExists)(fafPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/validate.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAyBH,0CA6EC;AApGD,2BAAoC;AACpC,2CAAsD;AACtD,oDAA8D;AAqBvD,KAAK,UAAU,eAAe,CAAC,WAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -247,6 +247,16 @@ class FafCompiler {
|
|
|
247
247
|
if (ctx.buildTool)
|
|
248
248
|
discovered.buildTool = ctx.buildTool;
|
|
249
249
|
}
|
|
250
|
+
// Subsite detection: no package.json + has index.html = static subsite
|
|
251
|
+
const fs = await import('fs/promises');
|
|
252
|
+
const hasPackageJson = await fs.access(path.join(projectDir, 'package.json')).then(() => true).catch(() => false);
|
|
253
|
+
const hasIndexHtml = await fs.access(path.join(projectDir, 'index.html')).then(() => true).catch(() => false);
|
|
254
|
+
if (!hasPackageJson && hasIndexHtml) {
|
|
255
|
+
discovered.isSubsite = true;
|
|
256
|
+
if (process.env.FAF_DEBUG) {
|
|
257
|
+
console.log('[DEBUG] Subsite detected: no package.json + has index.html');
|
|
258
|
+
}
|
|
259
|
+
}
|
|
250
260
|
return discovered;
|
|
251
261
|
}
|
|
252
262
|
removeDefaults(data, changes) {
|
|
@@ -363,6 +373,39 @@ class FafCompiler {
|
|
|
363
373
|
this.addSlot(slots, 'stack.build', ast.stack.build, 'string', 'discovered', 1);
|
|
364
374
|
// Leave backend, database, cicd as "None" - legitimate for static sites
|
|
365
375
|
}
|
|
376
|
+
// Subsite auto-fill: Static HTML without package.json (auto-detected via _discovered.isSubsite)
|
|
377
|
+
// These are minimal pages like landing pages, demos, documentation subsites
|
|
378
|
+
// Only score: project (3) + universal stack (4) + human (6) = 13 slots max
|
|
379
|
+
if (projectType === 'subsite' || ast._discovered?.isSubsite) {
|
|
380
|
+
if (process.env.FAF_DEBUG) {
|
|
381
|
+
console.log('[DEBUG] Subsite mode: auto-ignoring package.json-derived stack slots');
|
|
382
|
+
}
|
|
383
|
+
if (!ast.stack)
|
|
384
|
+
ast.stack = {};
|
|
385
|
+
// Auto-fill subsite context
|
|
386
|
+
if (!ast.stack.frontend)
|
|
387
|
+
ast.stack.frontend = 'HTML/CSS/JavaScript';
|
|
388
|
+
if (!ast.stack.hosting)
|
|
389
|
+
ast.stack.hosting = 'Static Hosting';
|
|
390
|
+
if (!ast.stack.build)
|
|
391
|
+
ast.stack.build = 'None (static files)';
|
|
392
|
+
if (!ast.stack.cicd)
|
|
393
|
+
ast.stack.cicd = 'None (static subsite)';
|
|
394
|
+
// Only add universal stack slots for subsites (skip frontend/backend specific slots)
|
|
395
|
+
this.addSlot(slots, 'stack.frontend', ast.stack.frontend, 'string', 'discovered', 1);
|
|
396
|
+
this.addSlot(slots, 'stack.hosting', ast.stack.hosting, 'string', 'discovered', 1);
|
|
397
|
+
this.addSlot(slots, 'stack.build', ast.stack.build, 'string', 'discovered', 1);
|
|
398
|
+
this.addSlot(slots, 'stack.cicd', ast.stack.cicd, 'string', 'discovered', 1);
|
|
399
|
+
// Human context slots (6) - always applicable
|
|
400
|
+
this.addSlot(slots, 'human.who', ast.human_context?.who, 'string', 'original', 1);
|
|
401
|
+
this.addSlot(slots, 'human.what', ast.human_context?.what, 'string', 'original', 1);
|
|
402
|
+
this.addSlot(slots, 'human.why', ast.human_context?.why, 'string', 'original', 1);
|
|
403
|
+
this.addSlot(slots, 'human.where', ast.human_context?.where, 'string', 'original', 1);
|
|
404
|
+
this.addSlot(slots, 'human.when', ast.human_context?.when, 'string', 'original', 1);
|
|
405
|
+
this.addSlot(slots, 'human.how', ast.human_context?.how, 'string', 'original', 1);
|
|
406
|
+
// Return early - subsites don't need other stack slots
|
|
407
|
+
return slots;
|
|
408
|
+
}
|
|
366
409
|
// n8n Workflow auto-fill: Map n8n-specific fields to standard 21-slot system
|
|
367
410
|
if (projectType === 'n8n-workflow') {
|
|
368
411
|
// Map n8n context to existing stack slots (efficient, no slot inflation)
|