faf-mcp 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/CLAUDE.md +3 -3
  3. package/README.md +8 -7
  4. package/dist/src/cli.js +2 -15
  5. package/dist/src/cli.js.map +1 -1
  6. package/dist/src/faf-core/commands/bi-sync.js +3 -2
  7. package/dist/src/faf-core/commands/bi-sync.js.map +1 -1
  8. package/dist/src/faf-core/compiler/faf-compiler.js +65 -6
  9. package/dist/src/faf-core/compiler/faf-compiler.js.map +1 -1
  10. package/dist/src/faf-core/inject.d.ts +19 -0
  11. package/dist/src/faf-core/inject.js +57 -0
  12. package/dist/src/faf-core/inject.js.map +1 -0
  13. package/dist/src/faf-core/parsers/agents-parser.js +3 -2
  14. package/dist/src/faf-core/parsers/agents-parser.js.map +1 -1
  15. package/dist/src/faf-core/parsers/cursorrules-parser.js +6 -2
  16. package/dist/src/faf-core/parsers/cursorrules-parser.js.map +1 -1
  17. package/dist/src/faf-core/parsers/gemini-parser.js +3 -2
  18. package/dist/src/faf-core/parsers/gemini-parser.js.map +1 -1
  19. package/dist/src/handlers/championship-tools.js +11 -11
  20. package/dist/src/handlers/championship-tools.js.map +1 -1
  21. package/dist/src/handlers/cloud-handler.js +1 -1
  22. package/dist/src/handlers/cloud-handler.js.map +1 -1
  23. package/dist/src/handlers/fileHandler.js +31 -22
  24. package/dist/src/handlers/fileHandler.js.map +1 -1
  25. package/dist/src/handlers/tools.js +105 -127
  26. package/dist/src/handlers/tools.js.map +1 -1
  27. package/dist/src/server.d.ts +2 -4
  28. package/dist/src/server.js +10 -93
  29. package/dist/src/server.js.map +1 -1
  30. package/dist/src/utils/safe-path.d.ts +66 -0
  31. package/dist/src/utils/safe-path.js +203 -0
  32. package/dist/src/utils/safe-path.js.map +1 -0
  33. package/package.json +2 -5
  34. package/project.faf +3 -3
  35. package/scripts/check-stylesheet-drift.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <!-- faf: faf-mcp | TypeScript | mcp-server | FAF MCP IDE Edition — persistent project context for Cursor, Windsurf, Cline, VS Code -->
2
- <!-- faf: doc=changelog | latest=v2.1.1 | canonical=project.faf | family=FAF -->
2
+ <!-- faf: doc=changelog | latest=v2.1.3 | canonical=project.faf | family=FAF -->
3
3
 
4
4
  # Changelog
5
5
 
@@ -8,6 +8,35 @@ All notable changes to faf-mcp will be documented in this file.
8
8
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
9
9
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
10
10
 
11
+ ## [Unreleased]
12
+
13
+ **Interop now enhances your files.** The same solid, structured `.faf` data is prefixed to the top of your context files for rapid AI consumption upfront — and your Markdown stays in the instruction lane. Most important for `.cursorrules`, which IDE users hand-maintain.
14
+
15
+ ### Changed
16
+
17
+ - **Non-destructive interop.** `faf_cursor`, `faf_agents`, `faf_gemini`, and `faf_sync` now inject a structured `.faf` block at the top of .cursorrules, AGENTS.md, GEMINI.md, and CLAUDE.md and preserve everything you've written below. Re-runs update the block in place (idempotent); existing faf-generated files upgrade cleanly in one pass.
18
+
19
+ ## [2.1.3] - 2026-06-11
20
+
21
+ ### Security
22
+ - **Path confinement on every caller-supplied `path` argument (CWE-22 / CWE-73 / CWE-200).** The shared `getProjectPath()` chokepoint (feeding the `.faf` tools) and the `faf_read` / `faf_write` file tools resolved a caller path straight into a filesystem read/write with no confinement — so an absolute path or `../` traversal could read any file the server process could read (e.g. `/etc/passwd`, `~/.ssh/id_rsa`) or write outside the project. New `safe-path.ts` confines reads to `.faf` / `.fafm` context files and general file ops to the project root (cwd + system temp; override with `FAF_ALLOWED_ROOTS`), canonicalizes through symlinks (closing the symlink bypass), and rejects traversal/absolute escapes; `callTool()` gains a central PATH-DENIED guard. Reported via coordinated disclosure by Zhihao Zhang (Worcester Polytechnic Institute). Adds a security regression suite (incl. symlink bypass).
23
+
24
+ ## [2.1.2] - 2026-06-08
25
+
26
+ MCP capability completeness — the stdio server now answers every capability it
27
+ advertises. Strict clients (Cursor, Windsurf, Cline) and Glama's Inspector probe
28
+ each advertised capability; a `-32601` flags the server even when tools work.
29
+
30
+ ### Fixed
31
+
32
+ - **`resources/templates/list` now returns `{ resourceTemplates: [] }`** instead
33
+ of `-32601`. Registered `ListResourceTemplatesRequestSchema` (`src/server.ts`).
34
+ - **Dropped unbacked `subscribe: true`** from the advertised `resources`
35
+ capability (no subscribe handler exists) → `resources: { listChanged: true }`.
36
+ `/info` payload aligned.
37
+
38
+ No tool changes. Also added `glama.json` for explicit directory metadata.
39
+
11
40
  ## [2.1.1] - 2026-05-26
12
41
 
13
42
  Loop closed on truthful, single-sourced scoring. The active MCP handler
package/CLAUDE.md CHANGED
@@ -11,9 +11,9 @@ The Interop MCP for Context. Universal .faf MCP server for Cursor, Windsurf, Cli
11
11
 
12
12
  - **Language:** TypeScript
13
13
  - **Backend:** MCP SDK (TS)
14
- - **Api Type:** MCP (stdio/HTTP-SSE)
14
+ - **Api Type:** MCP (stdio + Streamable HTTP)
15
15
  - **Runtime:** Node.js >=18
16
- - **Hosting:** Vercel
16
+ - **Hosting:** npm + Cloudflare edge
17
17
  - **Build:** TypeScript (tsc)
18
18
  - **Cicd:** GitHub Actions
19
19
  - **Package Manager:** npm
@@ -23,7 +23,7 @@ The Interop MCP for Context. Universal .faf MCP server for Cursor, Windsurf, Cli
23
23
  - **Who:** Developers using Claude, Cursor, Windsurf, VS Code, Cline, and any MCP-compatible IDE
24
24
  - **What:** Universal MCP server providing .faf context tools — 25 core + 36 advanced, interop with AGENTS.md, .cursorrules, GEMINI.md
25
25
  - **Why:** Eliminate the 20-minute AI context tax — give AI instant project understanding in 30 seconds
26
- - **Where:** Vercel web (faf-mcp.vercel.app) · npm · MCP Registry · any MCP-compatible IDE — people get it how they wish
26
+ - **Where:** npm · MCP Registry · Cloudflare edge (ide.faf.one/mcp/v1) · any MCP-compatible IDE — people get it how they wish
27
27
  - **When:** Production/Stable — v2.0.0 WJTTC certified (309/309 tests, 9 suites)
28
28
  - **How:** npx faf-mcp or npm install -g faf-mcp, then add to your MCP config
29
29
 
package/README.md CHANGED
@@ -9,15 +9,16 @@
9
9
  </div>
10
10
  </div>
11
11
 
12
+ [![npm](https://img.shields.io/npm/v/faf-mcp?color=00CCFF)](https://www.npmjs.com/package/faf-mcp)
13
+ [![FAF Trophy 100%](https://img.shields.io/badge/FAF-%F0%9F%8F%86%20100%25-000000?labelColor=FF6B35)](https://faf.one)
12
14
  [![IANA: vnd.faf+yaml](https://img.shields.io/badge/IANA-vnd.faf%2Byaml-00D4D4)](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml)
13
15
  [![DOI: Context paper](https://img.shields.io/badge/DOI-Context%20paper-FF6B35)](https://doi.org/10.5281/zenodo.18251362)
14
16
 
15
- **Home:** [faf-mcp.vercel.app](https://faf-mcp.vercel.app)
17
+ **Home:** [wolfe-jam.github.io/faf-mcp](https://wolfe-jam.github.io/faf-mcp/) · **Hosted MCP endpoint:** `https://ide.faf.one/mcp/v1` (Streamable HTTP)
16
18
 
17
19
  The MCP you didn't realise you needed, or wanted but didn't know who to ask, is here. Building on 62,000+ downloads across the FAF ecosystem, we bring you faf-mcp to cure your syncing pain and fuel your chosen AI with optimized context, on-demand.
18
20
 
19
21
  [![CI](https://github.com/Wolfe-Jam/faf-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Wolfe-Jam/faf-mcp/actions/workflows/ci.yml)
20
- [![npm version](https://img.shields.io/npm/v/faf-mcp?color=00CCFF)](https://www.npmjs.com/package/faf-mcp)
21
22
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
22
23
  [![project.faf](https://img.shields.io/badge/project.faf-inside-00D4D4)](https://github.com/Wolfe-Jam/faf)
23
24
 
@@ -41,13 +42,13 @@ You maintain `.cursorrules`. Your teammate uses `AGENTS.md`. Someone on the team
41
42
  ### Quick Start
42
43
 
43
44
  ```bash
44
- npx faf-mcp
45
+ bunx faf-mcp
45
46
  ```
46
47
 
47
48
  Add to your MCP config:
48
49
 
49
50
  ```json
50
- {"mcpServers": {"faf": {"command": "npx", "args": ["-y", "faf-mcp"]}}}
51
+ {"mcpServers": {"faf": {"command": "bunx", "args": ["faf-mcp"]}}}
51
52
  ```
52
53
 
53
54
  | Platform | Config File |
@@ -66,18 +67,18 @@ Add to your MCP config:
66
67
  |------|--------|----------|
67
68
  | **Hosted** | [mcpaas.live](https://mcpaas.live) | Zero-install, point any MCP client to the URL |
68
69
  | **Self-Deploy** | [Deploy to Vercel](https://vercel.com/new?repository-url=https://github.com/Wolfe-Jam/faf-mcp) | Your own instance, full control |
69
- | **Local** | `npx faf-mcp` | IDE integration via stdio transport |
70
+ | **Local** | `bunx faf-mcp` | IDE integration via stdio transport |
70
71
 
71
72
  ### Hosted (mcpaas.live)
72
73
 
73
- Point your MCP client to `https://mcpaas.live/sse` — no install, no config, no maintenance. Served from 300+ Cloudflare edges with sub-ms cold starts via 2.7KB Zig-WASM engine.
74
+ Point your MCP client to `https://ide.faf.one/mcp/v1` — no install, no config, no maintenance. Served from 300+ Cloudflare edges with sub-ms cold starts via 2.7KB Zig-WASM engine.
74
75
 
75
76
  ### Self-Deploy (Vercel)
76
77
 
77
78
  Deploy your own MCP server on Vercel in one click. Once deployed, your server exposes:
78
79
  - `/health` — Health check
79
80
  - `/info` — Server metadata + tool list
80
- - `/sse` — MCP Server-Sent Events transport
81
+ - `/mcp/v1` — MCP Streamable HTTP transport
81
82
 
82
83
  ### Local (npm)
83
84
 
package/dist/src/cli.js CHANGED
@@ -2,28 +2,15 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const server_1 = require("./server");
5
- // Parse command line arguments
6
- const args = process.argv.slice(2);
7
- const transportIndex = args.indexOf('--transport');
8
- const portIndex = args.indexOf('--port');
9
- const transport = transportIndex >= 0 ? args[transportIndex + 1] : 'stdio';
10
- const port = portIndex >= 0 ? parseInt(args[portIndex + 1], 10) : 3001;
11
5
  async function main() {
12
6
  const server = new server_1.FafMcpServer({
13
- transport,
14
- port,
7
+ transport: 'stdio',
15
8
  fafEnginePath: 'faf',
16
9
  debug: true,
17
10
  cors: true
18
11
  });
19
12
  await server.start();
20
- console.log(`FAF MCP Server started in ${transport} mode`);
21
- if (transport === 'http-sse') {
22
- console.log(`Endpoints:`);
23
- console.log(` Health: http://localhost:${port}/health`);
24
- console.log(` Info: http://localhost:${port}/info`);
25
- console.log(` SSE: http://localhost:${port}/sse`);
26
- }
13
+ console.log('FAF MCP Server started in stdio mode');
27
14
  }
28
15
  main().catch((error) => {
29
16
  console.error('Failed to start MCP server:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,qCAAwC;AAExC,+BAA+B;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEzC,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAyB,CAAC,CAAC,CAAC,OAAO,CAAC;AACnG,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEvE,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC;QAC9B,SAAS;QACT,IAAI;QACJ,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,OAAO,CAAC,CAAC;IAC3D,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,SAAS,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,MAAM,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,qCAAwC;AAExC,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC;QAC9B,SAAS,EAAE,OAAO;QAClB,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -45,6 +45,7 @@ const path = __importStar(require("path"));
45
45
  const fs_1 = require("fs");
46
46
  const file_utils_1 = require("../utils/file-utils");
47
47
  const agents_js_1 = require("./agents.js");
48
+ const inject_1 = require("../inject");
48
49
  const cursor_js_1 = require("./cursor.js");
49
50
  const gemini_js_1 = require("./gemini.js");
50
51
  /**
@@ -134,7 +135,7 @@ async function syncBiDirectional(projectPath, _options = {}) {
134
135
  if (!claudeMdExists) {
135
136
  // Create CLAUDE.md from project.faf
136
137
  const claudeMdContent = fafToClaudeMd(fafContent);
137
- await fs_1.promises.writeFile(claudeMdPath, claudeMdContent, 'utf-8');
138
+ await (0, inject_1.injectFafBlock)(claudeMdPath, claudeMdContent);
138
139
  result.success = true;
139
140
  result.direction = 'faf-to-claude';
140
141
  result.filesChanged.push('CLAUDE.md');
@@ -143,7 +144,7 @@ async function syncBiDirectional(projectPath, _options = {}) {
143
144
  else {
144
145
  // Both files exist - update CLAUDE.md from project.faf
145
146
  const claudeMdContent = fafToClaudeMd(fafContent);
146
- await fs_1.promises.writeFile(claudeMdPath, claudeMdContent, 'utf-8');
147
+ await (0, inject_1.injectFafBlock)(claudeMdPath, claudeMdContent);
147
148
  result.success = true;
148
149
  result.direction = 'faf-to-claude';
149
150
  result.filesChanged.push('CLAUDE.md');
@@ -1 +1 @@
1
- {"version":3,"file":"bi-sync.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/bi-sync.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCH,sCA2DC;AAKD,8CAuGC;AAtMD,2CAAsD;AACtD,2CAA6B;AAC7B,2BAAoC;AACpC,oDAA8D;AAC9D,2CAAkD;AAClD,2CAAkD;AAClD,2CAAkD;AAsBlD;;GAEG;AACH,SAAgB,aAAa,CAAC,UAAkB;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,YAAS,EAAC,UAAU,CAAC,CAAC;QAEtC,IAAI,QAAQ,GAAG,qBAAqB,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,wCAAwC,CAAC;QAE/G,gBAAgB;QAChB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,QAAQ,IAAI,qBAAqB,OAAO,CAAC,eAAe,EAAE,kBAAkB,IAAI,QAAQ,OAAO,CAAC;YAChG,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACzB,QAAQ,IAAI,yBAAyB,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YAChE,CAAC;YACD,QAAQ,IAAI,2DAA2D,CAAC;YACxE,QAAQ,IAAI,SAAS,CAAC;QACxB,CAAC;QAED,eAAe;QACf,QAAQ,IAAI,wBAAwB,CAAC;QAErC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,QAAQ,IAAI,wBAAwB,CAAC;YACrC,QAAQ,IAAI,eAAe,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC;YACjE,IAAI,OAAO,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC;gBACxC,QAAQ,IAAI,gBAAgB,OAAO,CAAC,eAAe,CAAC,UAAU,IAAI,CAAC;YACrE,CAAC;YACD,QAAQ,IAAI,2DAA2D,CAAC;QAC1E,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,QAAQ,IAAI,8BAA8B,CAAC;YAC3C,IAAI,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;gBAC1C,QAAQ,IAAI,wBAAwB,OAAO,CAAC,eAAe,CAAC,aAAa,IAAI,CAAC;YAChF,CAAC;YACD,IAAI,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;gBAC1C,QAAQ,IAAI,wBAAwB,OAAO,CAAC,eAAe,CAAC,aAAa,IAAI,CAAC;YAChF,CAAC;YACD,QAAQ,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,kBAAkB;QAClB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,QAAQ,IAAI,iCAAiC,CAAC;YAC9C,QAAQ,IAAI,6BAA6B,OAAO,CAAC,eAAe,CAAC,kBAAkB,IAAI,MAAM,IAAI,CAAC;YAClG,QAAQ,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClF,CAAC;QAED,sBAAsB;QACtB,QAAQ,IAAI,SAAS,CAAC;QACtB,QAAQ,IAAI,qEAAqE,CAAC;QAClF,QAAQ,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC;QACzD,QAAQ,IAAI,mDAAmD,CAAC;QAChE,QAAQ,IAAI,6BAA6B,CAAC;QAE1C,OAAO,QAAQ,CAAC;IAElB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CAAC,WAAoB,EAAE,WAA0B,EAAE;IACxF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAiB;QAC3B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,wBAAW,GAAE,CAAC;QAE1F,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,gDAAgD,CAAC;YAClE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAExD,oBAAoB;QACpB,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;QAEtD,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAA,YAAS,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAE/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,oCAAoC;YACpC,MAAM,eAAe,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,aAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAE3D,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC;YACnC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,GAAG,qDAAqD,YAAY,EAAE,CAAC;QAEvF,CAAC;aAAM,CAAC;YACN,uDAAuD;YACvD,MAAM,eAAe,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,aAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAE3D,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC;YACnC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,GAAG,4DAA4D,YAAY,EAAE,CAAC;QAC9F,CAAC;QAED,uDAAuD;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC;QAEjD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAmB,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;YACjD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAmB,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAmB,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,IAAI,mBAAmB,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvG,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,OAAO,MAAM,CAAC;IAEhB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,MAAM,CAAC,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;QACxE,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"bi-sync.js","sourceRoot":"","sources":["../../../../src/faf-core/commands/bi-sync.ts"],"names":[],"mappings":"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"}
@@ -830,17 +830,76 @@ class FafCompiler {
830
830
  slots: ir,
831
831
  metadata: { compiled: new Date().toISOString() }
832
832
  };
833
- // Calculate from IR
833
+ // --- Mk4 Kernel Scoring (WASM) — canonical, aligned with faf-cli/claude/grok ---
834
+ // The Bouncer: type detection → applicable slots → slotignored for the rest,
835
+ // then kernel.score_faf() returns the canonical Mk4 score. This replaces the
836
+ // old pure-TS scorer, which used its own denominator and diverged from
837
+ // canonical on partial .faf files. TS stays as a fallback when the kernel
838
+ // isn't available. (Same path as claude-faf-mcp / grok-faf-mcp.)
839
+ let mk4Score = null;
840
+ let mk4Filled = null;
841
+ let mk4Total = null;
842
+ try {
843
+ const kernel = require('faf-scoring-kernel');
844
+ const { stringify } = require('yaml');
845
+ const projectType = this.detectProjectTypeFromContext(ast);
846
+ const applicableSlots = getSlotsForType(projectType);
847
+ const userIgnored = parseSlotIgnore(ast);
848
+ const allSlotPaths = [
849
+ ...ALL_SLOTS.project,
850
+ ...ALL_SLOTS.frontend,
851
+ ...ALL_SLOTS.backend,
852
+ ...ALL_SLOTS.universal,
853
+ ...ALL_SLOTS.human
854
+ ];
855
+ const normalizedAst = JSON.parse(JSON.stringify(ast));
856
+ delete normalizedAst._discovered;
857
+ const setSlotIgnored = (slotPath) => {
858
+ const parts = slotPath.split('.');
859
+ if (parts[0] === 'project') {
860
+ if (!normalizedAst.project)
861
+ normalizedAst.project = {};
862
+ normalizedAst.project[parts[1]] = 'slotignored';
863
+ }
864
+ else if (parts[0] === 'stack') {
865
+ if (!normalizedAst.stack)
866
+ normalizedAst.stack = {};
867
+ normalizedAst.stack[parts[1]] = 'slotignored';
868
+ }
869
+ else if (parts[0] === 'human') {
870
+ if (!normalizedAst.human_context)
871
+ normalizedAst.human_context = {};
872
+ normalizedAst.human_context[parts[1]] = 'slotignored';
873
+ }
874
+ };
875
+ for (const slotPath of allSlotPaths) {
876
+ if (!applicableSlots.includes(slotPath) || userIgnored.includes(slotPath)) {
877
+ setSlotIgnored(slotPath);
878
+ }
879
+ }
880
+ const normalizedYaml = stringify(normalizedAst);
881
+ const kernelResult = JSON.parse(kernel.score_faf(normalizedYaml));
882
+ mk4Score = kernelResult.score;
883
+ mk4Filled = kernelResult.populated;
884
+ mk4Total = kernelResult.active;
885
+ }
886
+ catch (err) {
887
+ if (process.env.FAF_DEBUG) {
888
+ const message = err instanceof Error ? err.message : String(err);
889
+ console.log(`[DEBUG] Mk4 kernel unavailable, using Mk3.1 TS fallback: ${message}`);
890
+ }
891
+ }
892
+ // Mk4 score when available, otherwise the Mk3.1 TS fallback
834
893
  const slots = this.calculateSlots(ir);
835
- const score = this.calculateScore(slots);
894
+ const fallbackScore = this.calculateScore(slots);
836
895
  const result = {
837
- score: Math.round(score),
838
- filled: slots.filled,
839
- total: slots.total,
896
+ score: mk4Score !== null ? mk4Score : Math.round(fallbackScore),
897
+ filled: mk4Filled !== null ? mk4Filled : slots.filled,
898
+ total: mk4Total !== null ? mk4Total : slots.total,
840
899
  breakdown: slots.breakdown
841
900
  };
842
901
  this.recordPass('generate', start, ast, result, [
843
- `Generated score: ${result.score}% (${result.filled}/${result.total} slots)`
902
+ `Generated score: ${result.score}% (${result.filled}/${result.total} slots, ${mk4Score !== null ? 'Mk4 WASM' : 'Mk3.1 TS'})`
844
903
  ]);
845
904
  return result;
846
905
  }
@@ -1 +1 @@
1
- {"version":3,"file":"faf-compiler.js","sourceRoot":"","sources":["../../../../src/faf-core/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"faf-compiler.js","sourceRoot":"","sources":["../../../../src/faf-core/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Block markers for the faf-managed front section. Markdown files use HTML
3
+ * comments; non-markdown files (.cursorrules) pass hash-comment markers.
4
+ */
5
+ export declare const FAF_START = "<!-- faf:start -->";
6
+ export declare const FAF_END = "<!-- faf:end -->";
7
+ /**
8
+ * Non-destructively write a faf-managed block into a file.
9
+ *
10
+ * - no file -> create it with just the block
11
+ * - markers present -> replace ONLY between them (update in place)
12
+ * - legacy faf file (metastamp, no markers) -> reclaim in place (no duplication)
13
+ * - genuine user file -> prefix the block; preserve everything below
14
+ *
15
+ * Idempotent: re-runs update the block, never duplicate or destroy user content.
16
+ * faf owns what's between the markers; the user owns everything else.
17
+ * Enhance, never replace.
18
+ */
19
+ export declare function injectFafBlock(path: string, block: string, start?: string, end?: string): Promise<void>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FAF_END = exports.FAF_START = void 0;
4
+ exports.injectFafBlock = injectFafBlock;
5
+ const fs_1 = require("fs");
6
+ /**
7
+ * Block markers for the faf-managed front section. Markdown files use HTML
8
+ * comments; non-markdown files (.cursorrules) pass hash-comment markers.
9
+ */
10
+ exports.FAF_START = '<!-- faf:start -->';
11
+ exports.FAF_END = '<!-- faf:end -->';
12
+ /**
13
+ * faf's own metastamp fingerprint. Every faf-generated file begins with it and a
14
+ * user never hand-writes it — so a markerless file led by it is legacy faf output
15
+ * we can safely reclaim, never genuine user content.
16
+ */
17
+ const FAF_METASTAMP = '<!-- faf:';
18
+ /**
19
+ * Non-destructively write a faf-managed block into a file.
20
+ *
21
+ * - no file -> create it with just the block
22
+ * - markers present -> replace ONLY between them (update in place)
23
+ * - legacy faf file (metastamp, no markers) -> reclaim in place (no duplication)
24
+ * - genuine user file -> prefix the block; preserve everything below
25
+ *
26
+ * Idempotent: re-runs update the block, never duplicate or destroy user content.
27
+ * faf owns what's between the markers; the user owns everything else.
28
+ * Enhance, never replace.
29
+ */
30
+ async function injectFafBlock(path, block, start = exports.FAF_START, end = exports.FAF_END) {
31
+ const wrapped = `${start}\n${block.trim()}\n${end}`;
32
+ let existing = null;
33
+ try {
34
+ existing = await fs_1.promises.readFile(path, 'utf-8');
35
+ }
36
+ catch {
37
+ existing = null; // file does not exist yet
38
+ }
39
+ if (existing === null) {
40
+ await fs_1.promises.writeFile(path, `${wrapped}\n`, 'utf-8');
41
+ return;
42
+ }
43
+ const s = existing.indexOf(start);
44
+ const e = existing.indexOf(end);
45
+ if (s !== -1 && e !== -1 && e > s) {
46
+ await fs_1.promises.writeFile(path, existing.slice(0, s) + wrapped + existing.slice(e + end.length), 'utf-8');
47
+ return;
48
+ }
49
+ if (existing.trimStart().startsWith(FAF_METASTAMP)) {
50
+ // Legacy faf output — reclaim in place, no duplication.
51
+ await fs_1.promises.writeFile(path, `${wrapped}\n`, 'utf-8');
52
+ return;
53
+ }
54
+ // Genuine user file — prefix the block, preserve everything.
55
+ await fs_1.promises.writeFile(path, `${wrapped}\n\n${existing}`, 'utf-8');
56
+ }
57
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/faf-core/inject.ts"],"names":[],"mappings":";;;AA4BA,wCAmCC;AA/DD,2BAAoC;AAEpC;;;GAGG;AACU,QAAA,SAAS,GAAG,oBAAoB,CAAC;AACjC,QAAA,OAAO,GAAG,kBAAkB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,aAAa,GAAG,WAAW,CAAC;AAElC;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,KAAa,EACb,QAAgB,iBAAS,EACzB,MAAc,eAAO;IAErB,MAAM,OAAO,GAAG,GAAG,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;IAEpD,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC,CAAC,0BAA0B;IAC7C,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,wDAAwD;QACxD,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,MAAM,aAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,OAAO,OAAO,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
@@ -23,6 +23,7 @@ exports.detectAgentsMd = detectAgentsMd;
23
23
  exports.detectGlobalAgentsMd = detectGlobalAgentsMd;
24
24
  const fs_1 = require("fs");
25
25
  const path_1 = __importDefault(require("path"));
26
+ const inject_1 = require("../inject");
26
27
  // ============================================================================
27
28
  // Parsing
28
29
  // ============================================================================
@@ -278,9 +279,9 @@ async function agentsExport(fafContent, outputPath) {
278
279
  lines.push('---');
279
280
  lines.push(`*Generated from project.faf by faf-mcp — ${new Date().toISOString().split('T')[0]}*`);
280
281
  lines.push('');
281
- // Write file
282
+ // Write file — non-destructive: inject/update the faf block, preserve the rest.
282
283
  const content = lines.join('\n');
283
- await fs_1.promises.writeFile(outputPath, content);
284
+ await (0, inject_1.injectFafBlock)(outputPath, content);
284
285
  return {
285
286
  success: true,
286
287
  filePath: outputPath,