claude-faf-mcp 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,9 +12,29 @@ Transform your projects into AI-optimized collaboration spaces with **C.O.R.E (C
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-Strict%20Mode-blue)](https://www.typescriptlang.org/)
13
13
  [![F1-Inspired](https://img.shields.io/badge/Philosophy-F1--Inspired-red)](https://github.com/faf-dev/claude-faf-mcp)
14
14
 
15
+ ## šŸŠ ZERO FAF | FAFFLESS AI
16
+
17
+ **We ARE the C in MCP.** Vitamin Context for healthy AI. Iāš”šŸŠ
18
+
15
19
  ## šŸ¤– What is Claude FAF MCP?
16
20
 
17
- The **Claude FAF MCP Server** is a Model Context Protocol (MCP) server that provides Claude with intelligent project context and AI-powered enhancements. It bridges your project files with Claude's understanding through the **FAF (Fast, Adaptive, and Friendly)** context system.
21
+ The **Claude FAF MCP Server** provides 33 honest file operations for Claude Desktop. **ENJOY this in Desktop - FAF CLI will be right behind it!**
22
+
23
+ Currently delivers:
24
+ - āœ… Native file operations (read, write, list, etc.)
25
+ - āœ… <50ms performance guaranteed
26
+ - āœ… Works WITHOUT external dependencies
27
+ - šŸ”œ Full FAF CLI integration coming soon for scoring & enhancement
28
+
29
+ ### šŸ’” PRO TIP: The Perfect Workflow
30
+
31
+ **Drop a project file → Instant context!** Here's the flow:
32
+ 1. Drop your `package.json`, `requirements.txt`, or `README.md` into Claude
33
+ 2. Claude instantly knows what you're working on
34
+ 3. For new projects: Claude creates `claude.md`, you create `.faf`
35
+ 4. The AI-Context becomes **permanent glue** - your project understanding persists!
36
+
37
+ *"Once you drop that first file, the context sticks. No more explaining your project every chat!"*
18
38
 
19
39
  ### Key Benefits
20
40
 
@@ -65,11 +85,6 @@ ls -la /Users/wolfejam/faf-test-environment/DESKTOP_MCP_TESTS/
65
85
  ### Prerequisites
66
86
 
67
87
  - Node.js 18+
68
- - [FAF CLI](https://www.npmjs.com/package/faf-cli) installed globally
69
-
70
- ```bash
71
- npm install -g faf-cli
72
- ```
73
88
 
74
89
  ### Installation
75
90
 
@@ -14,6 +14,8 @@ export declare class FafEngineAdapter {
14
14
  private parseOutput;
15
15
  checkHealth(): Promise<boolean>;
16
16
  getWorkingDirectory(): string;
17
+ setWorkingDirectory(dir: string): void;
18
+ updateWorkingDirectoryFromPath(filePath: string): void;
17
19
  getEnginePath(): string;
18
20
  }
19
21
  //# sourceMappingURL=engine-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-adapter.d.ts","sourceRoot":"","sources":["../../src/handlers/engine-adapter.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAS;gBAErB,UAAU,GAAE,MAAc,EAAE,OAAO,GAAE,MAAc;IAM/D,OAAO,CAAC,wBAAwB;IAiC1B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAyEhF,OAAO,CAAC,WAAW;IAab,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,mBAAmB,IAAI,MAAM;IAK7B,aAAa,IAAI,MAAM;CAGxB"}
1
+ {"version":3,"file":"engine-adapter.d.ts","sourceRoot":"","sources":["../../src/handlers/engine-adapter.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAS;gBAErB,UAAU,GAAE,MAAc,EAAE,OAAO,GAAE,MAAc;IAM/D,OAAO,CAAC,wBAAwB;IA8D1B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAyEhF,OAAO,CAAC,WAAW;IAab,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOtC,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAWtD,aAAa,IAAI,MAAM;CAGxB"}
@@ -62,36 +62,62 @@ class FafEngineAdapter {
62
62
  this.workingDirectory = this.findBestWorkingDirectory();
63
63
  }
64
64
  findBestWorkingDirectory() {
65
- // Try to find the most appropriate directory for FAF operations
66
- const currentDir = process.cwd();
67
- const homeDir = process.env.HOME;
68
- // Check if current directory has .faf or is writable
69
- if (fs.existsSync(path.join(currentDir, '.faf'))) {
70
- return currentDir;
65
+ // Priority 1: Environment variable for explicit control
66
+ if (process.env.FAF_WORKING_DIR) {
67
+ const envDir = process.env.FAF_WORKING_DIR;
68
+ if (fs.existsSync(envDir)) {
69
+ return envDir;
70
+ }
71
71
  }
72
- // Check if current directory is writable
73
- try {
74
- const testFile = path.join(currentDir, '.faf-test-write');
75
- fs.writeFileSync(testFile, 'test');
76
- fs.unlinkSync(testFile);
77
- return currentDir;
72
+ // Priority 2: MCP might pass a working directory hint
73
+ if (process.env.MCP_WORKING_DIR) {
74
+ const mcpDir = process.env.MCP_WORKING_DIR;
75
+ if (fs.existsSync(mcpDir)) {
76
+ return mcpDir;
77
+ }
78
78
  }
79
- catch {
80
- // Current directory not writable, try home directory
81
- if (homeDir && fs.existsSync(homeDir)) {
82
- try {
83
- const testFile = path.join(homeDir, '.faf-test-write');
84
- fs.writeFileSync(testFile, 'test');
85
- fs.unlinkSync(testFile);
86
- return homeDir;
87
- }
88
- catch {
89
- // Fall back to /tmp
90
- return '/tmp';
79
+ // Priority 3: Check common project locations
80
+ const homeDir = process.env.HOME || process.env.USERPROFILE;
81
+ if (homeDir) {
82
+ // Check for common project directories
83
+ const projectPaths = [
84
+ path.join(homeDir, 'projects'),
85
+ path.join(homeDir, 'Projects'),
86
+ path.join(homeDir, 'dev'),
87
+ path.join(homeDir, 'Dev'),
88
+ path.join(homeDir, 'workspace'),
89
+ path.join(homeDir, 'FAF'),
90
+ homeDir
91
+ ];
92
+ for (const projPath of projectPaths) {
93
+ if (fs.existsSync(projPath)) {
94
+ try {
95
+ const testFile = path.join(projPath, '.faf-test-write');
96
+ fs.writeFileSync(testFile, 'test');
97
+ fs.unlinkSync(testFile);
98
+ return projPath;
99
+ }
100
+ catch {
101
+ // Not writable, continue
102
+ }
91
103
  }
92
104
  }
93
- return '/tmp';
94
105
  }
106
+ // Priority 4: Current directory if not root
107
+ const currentDir = process.cwd();
108
+ if (currentDir !== '/' && fs.existsSync(currentDir)) {
109
+ try {
110
+ const testFile = path.join(currentDir, '.faf-test-write');
111
+ fs.writeFileSync(testFile, 'test');
112
+ fs.unlinkSync(testFile);
113
+ return currentDir;
114
+ }
115
+ catch {
116
+ // Not writable
117
+ }
118
+ }
119
+ // Fall back to home or temp
120
+ return homeDir || '/tmp';
95
121
  }
96
122
  async callEngine(command, args = []) {
97
123
  const startTime = Date.now();
@@ -182,6 +208,21 @@ class FafEngineAdapter {
182
208
  getWorkingDirectory() {
183
209
  return this.workingDirectory;
184
210
  }
211
+ setWorkingDirectory(dir) {
212
+ if (fs.existsSync(dir)) {
213
+ this.workingDirectory = dir;
214
+ }
215
+ }
216
+ // Auto-detect from file path (when file operations occur)
217
+ updateWorkingDirectoryFromPath(filePath) {
218
+ const dir = path.dirname(filePath);
219
+ if (dir && dir !== '/' && fs.existsSync(dir)) {
220
+ // Only update if it's a real project directory
221
+ if (dir.includes('Users') || dir.includes('home') || dir.includes('projects')) {
222
+ this.workingDirectory = dir;
223
+ }
224
+ }
225
+ }
185
226
  // Get the engine path being used
186
227
  getEnginePath() {
187
228
  return this.enginePath;
@@ -1 +1 @@
1
- {"version":3,"file":"engine-adapter.js","sourceRoot":"","sources":["../../src/handlers/engine-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine-adapter.js","sourceRoot":"","sources":["../../src/handlers/engine-adapter.ts"],"names":[],"mappings":"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"}
@@ -201,8 +201,8 @@ class FafToolHandler {
201
201
  const fs = await import('fs').then(m => m.promises);
202
202
  const path = await import('path');
203
203
  const os = await import('os');
204
- // Get current working directory
205
- const cwd = process.cwd();
204
+ // Get current working directory from engine adapter (smart detection)
205
+ const cwd = this.engineAdapter.getWorkingDirectory();
206
206
  // Score calculation components
207
207
  let score = 0;
208
208
  const maxScore = 99; // Technical max - only Claude can grant 100%
@@ -510,7 +510,7 @@ class FafToolHandler {
510
510
  const { exec } = await import('child_process');
511
511
  const { promisify } = await import('util');
512
512
  const execAsync = promisify(exec);
513
- const cwd = process.cwd();
513
+ const cwd = this.engineAdapter.getWorkingDirectory();
514
514
  const debugInfo = {
515
515
  workingDirectory: cwd,
516
516
  canWrite: false,
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/handlers/tools.ts"],"names":[],"mappings":";;;AAEA,+CAA6C;AAE7C,MAAa,cAAc;IACL;IAApB,YAAoB,aAA+B;QAA/B,kBAAa,GAAb,aAAa,CAAkB;IAAG,CAAC;IAEvD,KAAK,CAAC,SAAS;QACb,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,4GAA4G;oBACzH,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;wBACd,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,4GAA4G;oBACzH,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wDAAwD,EAAE;yBACpG;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,kGAAkG;oBAC/G,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE;yBACnF;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,0FAA0F;oBACvG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;wBACd,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,qFAAqF;oBAClG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;wBACd,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,yFAAyF;oBACtG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oEAAoE,EAAE;4BAC5G,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8EAA8E,EAAE;4BACtH,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE;4BACtF,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8CAA8C,EAAE;yBACzF;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,4FAA4F;oBACzG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kCAAkC,EAAE;4BAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;4BACpF,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;yBAC/E;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,sEAAsE;oBACnF,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE;4BACjE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE;4BAChE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;4BACpE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;yBACpE;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,4FAA4F;oBACzG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;wBACd,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,oDAAoD;oBACjE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,wCAAwC;6BACtD;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;wBAClB,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,mDAAmD;oBAChE,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,yCAAyC;6BACvD;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8BAA8B;6BAC5C;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;wBAC7B,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;aACQ;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAS;QACpC,mBAAmB;QACnB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,YAAY;gBACf,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,WAAW;gBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,UAAU;gBACb,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,WAAW;gBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,UAAU;gBACb,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,aAAa;gBAChB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAK,aAAa;gBAChB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,WAAW;gBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,WAAW;gBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,UAAU;gBACb,OAAO,MAAM,0BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAK,WAAW;gBACd,OAAO,MAAM,0BAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAS;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0DAA0D,MAAM,CAAC,KAAK,EAAE;qBAC/E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oCAAoC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBAC/E,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAS;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9B,sEAAsE;YACtE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAErD,+BAA+B;YAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,6CAA6C;YAClE,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,qCAAqC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzB,MAAM,GAAG,IAAI,CAAC;gBACd,KAAK,IAAI,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC7C,CAAC;YAED,qCAAqC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5B,SAAS,GAAG,IAAI,CAAC;gBACjB,KAAK,IAAI,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC7C,CAAC;YAED,qCAAqC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5B,SAAS,GAAG,IAAI,CAAC;gBACjB,KAAK,IAAI,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC/C,CAAC;YAED,+DAA+D;YAC/D,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3F,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;oBACtC,cAAc,GAAG,IAAI,CAAC;oBACtB,KAAK,IAAI,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;gBACtB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACnD,CAAC;YAED,6EAA6E;YAC7E,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACvD,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAE7D,kEAAkE;oBAClE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACrE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAE9E,IAAI,OAAO,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;wBACvC,yBAAyB;wBACzB,kBAAkB,GAAG,IAAI,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;YACH,CAAC;YAED,oBAAoB;YACpB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,kBAAkB,EAAE,CAAC;gBACvB,+BAA+B;gBAC/B,MAAM,GAAG,+DAA+D,CAAC;gBACzE,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtC,MAAM,IAAI,4BAA4B,CAAC;oBACvC,MAAM,IAAI,qDAAqD,CAAC;oBAChE,MAAM,IAAI,wDAAwD,CAAC;gBACrE,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBACvB,0BAA0B;gBAC1B,MAAM,GAAG,mEAAmE,CAAC;gBAC7E,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM,IAAI,sEAAsE,CAAC;gBACnF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,gBAAgB;gBAChB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,KAAK,GAAG,EAAE,CAAC;gBAEf,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;oBACrB,MAAM,GAAG,WAAW,CAAC;oBACrB,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;qBAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;oBAC5B,MAAM,GAAG,WAAW,CAAC;oBACrB,KAAK,GAAG,GAAG,CAAC;gBACd,CAAC;qBAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;oBAC5B,MAAM,GAAG,MAAM,CAAC;oBAChB,KAAK,GAAG,GAAG,CAAC;gBACd,CAAC;qBAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;oBAC5B,MAAM,GAAG,WAAW,CAAC;oBACrB,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,iBAAiB,CAAC;oBAC3B,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;gBAED,4BAA4B;gBAC5B,MAAM,GAAG,iBAAiB,UAAU,MAAM,KAAK,IAAI,MAAM,kBAAkB,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC;gBAErH,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;wBACpB,MAAM,IAAI,2BAA2B,CAAC;wBACtC,IAAI,CAAC,MAAM;4BAAE,MAAM,IAAI,2CAA2C,CAAC;wBACnE,IAAI,CAAC,SAAS;4BAAE,MAAM,IAAI,uCAAuC,CAAC;wBAClE,IAAI,CAAC,SAAS;4BAAE,MAAM,IAAI,yCAAyC,CAAC;wBACpE,IAAI,CAAC,cAAc;4BAAE,MAAM,IAAI,oCAAoC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;qBACb,CAAC;aACH,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,8CAA8C;YAC9C,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,+DAA+D,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,8EAA8E,CAAC,CAAC,CAAC,EAAE,EAAE;qBAC3K,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAS;QACnC,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0DAA0D,MAAM,CAAC,KAAK,EAAE;qBAC/E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oCAAoC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBAC/E,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAS;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6DAA6D,MAAM,CAAC,KAAK,EAAE;qBAClF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBACjF,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAS;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0CAA0C,MAAM,CAAC,KAAK,EAAE;qBAC/D,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,0BAA0B,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBACrE,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAS;QACtC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,uDAAuD;QACvD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEnC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oDAAoD,MAAM,CAAC,KAAK,EAAE;qBACzE,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iCAAiC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBAC5E,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAS;QACrC,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gDAAgD,MAAM,CAAC,KAAK,EAAE;qBACrE,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBACxE,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAS;QACpC,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,4CAA4C,MAAM,CAAC,KAAK,EAAE;qBACjE,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,2BAA2B,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;iBACtE,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAS;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG;gBAChB,gBAAgB,EAAE,GAAG;gBACrB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAqB;gBACjC,UAAU,EAAE,IAAqB;gBACjC,WAAW,EAAE,EAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;gBAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;aAC5C,CAAC;YAEF,0BAA0B;YAC1B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5F,CAAC;YAED,6BAA6B;YAC7B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;gBACtD,IAAI,QAAQ,GAAG,WAAW,CAAC;gBAE3B,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;oBACzB,uBAAuB;oBACvB,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC9C,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnD,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC3D,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;wBAC1B,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1F,CAAC;YAED,+BAA+B;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,WAAW,GAAG;;wBAEF,SAAS,CAAC,gBAAgB;wBAC1B,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;EAC3D,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,SAAS,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,uBAAuB,SAAS,CAAC,UAAU;oBAClH,SAAS,CAAC,UAAU,IAAI,aAAa;kBACvC,SAAS,CAAC,UAAU,IAAI,SAAS;EACjD,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B;mBAC/I,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;;;;;;CAMtG,CAAC;YAEI,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW;qBAClB,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAC9F,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA9mBD,wCA8mBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-faf-mcp",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "We ARE the C in MCP. Iāš”šŸŠ - The formula that changes everything. .faf is Context.",
5
5
  "main": "dist/server.js",
6
6
  "bin": {
@@ -38,36 +38,65 @@ export class FafEngineAdapter {
38
38
  }
39
39
 
40
40
  private findBestWorkingDirectory(): string {
41
- // Try to find the most appropriate directory for FAF operations
42
- const currentDir = process.cwd();
43
- const homeDir = process.env.HOME;
44
-
45
- // Check if current directory has .faf or is writable
46
- if (fs.existsSync(path.join(currentDir, '.faf'))) {
47
- return currentDir;
41
+ // Priority 1: Environment variable for explicit control
42
+ if (process.env.FAF_WORKING_DIR) {
43
+ const envDir = process.env.FAF_WORKING_DIR;
44
+ if (fs.existsSync(envDir)) {
45
+ return envDir;
46
+ }
48
47
  }
49
-
50
- // Check if current directory is writable
51
- try {
52
- const testFile = path.join(currentDir, '.faf-test-write');
53
- fs.writeFileSync(testFile, 'test');
54
- fs.unlinkSync(testFile);
55
- return currentDir;
56
- } catch {
57
- // Current directory not writable, try home directory
58
- if (homeDir && fs.existsSync(homeDir)) {
59
- try {
60
- const testFile = path.join(homeDir, '.faf-test-write');
61
- fs.writeFileSync(testFile, 'test');
62
- fs.unlinkSync(testFile);
63
- return homeDir;
64
- } catch {
65
- // Fall back to /tmp
66
- return '/tmp';
48
+
49
+ // Priority 2: MCP might pass a working directory hint
50
+ if (process.env.MCP_WORKING_DIR) {
51
+ const mcpDir = process.env.MCP_WORKING_DIR;
52
+ if (fs.existsSync(mcpDir)) {
53
+ return mcpDir;
54
+ }
55
+ }
56
+
57
+ // Priority 3: Check common project locations
58
+ const homeDir = process.env.HOME || process.env.USERPROFILE;
59
+ if (homeDir) {
60
+ // Check for common project directories
61
+ const projectPaths = [
62
+ path.join(homeDir, 'projects'),
63
+ path.join(homeDir, 'Projects'),
64
+ path.join(homeDir, 'dev'),
65
+ path.join(homeDir, 'Dev'),
66
+ path.join(homeDir, 'workspace'),
67
+ path.join(homeDir, 'FAF'),
68
+ homeDir
69
+ ];
70
+
71
+ for (const projPath of projectPaths) {
72
+ if (fs.existsSync(projPath)) {
73
+ try {
74
+ const testFile = path.join(projPath, '.faf-test-write');
75
+ fs.writeFileSync(testFile, 'test');
76
+ fs.unlinkSync(testFile);
77
+ return projPath;
78
+ } catch {
79
+ // Not writable, continue
80
+ }
67
81
  }
68
82
  }
69
- return '/tmp';
70
83
  }
84
+
85
+ // Priority 4: Current directory if not root
86
+ const currentDir = process.cwd();
87
+ if (currentDir !== '/' && fs.existsSync(currentDir)) {
88
+ try {
89
+ const testFile = path.join(currentDir, '.faf-test-write');
90
+ fs.writeFileSync(testFile, 'test');
91
+ fs.unlinkSync(testFile);
92
+ return currentDir;
93
+ } catch {
94
+ // Not writable
95
+ }
96
+ }
97
+
98
+ // Fall back to home or temp
99
+ return homeDir || '/tmp';
71
100
  }
72
101
 
73
102
  async callEngine(command: string, args: string[] = []): Promise<FafEngineResult> {
@@ -169,6 +198,23 @@ export class FafEngineAdapter {
169
198
  getWorkingDirectory(): string {
170
199
  return this.workingDirectory;
171
200
  }
201
+
202
+ setWorkingDirectory(dir: string): void {
203
+ if (fs.existsSync(dir)) {
204
+ this.workingDirectory = dir;
205
+ }
206
+ }
207
+
208
+ // Auto-detect from file path (when file operations occur)
209
+ updateWorkingDirectoryFromPath(filePath: string): void {
210
+ const dir = path.dirname(filePath);
211
+ if (dir && dir !== '/' && fs.existsSync(dir)) {
212
+ // Only update if it's a real project directory
213
+ if (dir.includes('Users') || dir.includes('home') || dir.includes('projects')) {
214
+ this.workingDirectory = dir;
215
+ }
216
+ }
217
+ }
172
218
 
173
219
  // Get the engine path being used
174
220
  getEnginePath(): string {
@@ -206,8 +206,8 @@ export class FafToolHandler {
206
206
  const path = await import('path');
207
207
  const os = await import('os');
208
208
 
209
- // Get current working directory
210
- const cwd = process.cwd();
209
+ // Get current working directory from engine adapter (smart detection)
210
+ const cwd = this.engineAdapter.getWorkingDirectory();
211
211
 
212
212
  // Score calculation components
213
213
  let score = 0;
@@ -540,8 +540,8 @@ export class FafToolHandler {
540
540
  const { exec } = await import('child_process');
541
541
  const { promisify } = await import('util');
542
542
  const execAsync = promisify(exec);
543
-
544
- const cwd = process.cwd();
543
+
544
+ const cwd = this.engineAdapter.getWorkingDirectory();
545
545
  const debugInfo = {
546
546
  workingDirectory: cwd,
547
547
  canWrite: false,