claude-faf-mcp 3.3.3 → 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 CHANGED
@@ -5,6 +5,21 @@ 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
+
8
23
  ## [3.3.3] - 2025-11-27
9
24
 
10
25
  ### Fixed
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 50 tools - Persistent project context that integrates seamlessly with Claude Desktop workflows
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
  [![NPM Downloads](https://img.shields.io/npm/dt/claude-faf-mcp?label=total%20downloads&color=00CCFF)](https://www.npmjs.com/package/claude-faf-mcp)
12
12
  [![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?logo=discord&logoColor=white)](https://discord.com/invite/56fPBUJKfk)
@@ -34,14 +34,14 @@ At 55% you are building your project with half a blueprint and basically flippin
34
34
 
35
35
  📊 CORE INTELLIGENCE 🎯 CONTEXT DELIVERY
36
36
  ├─ Project DNA [██████] 100% ├─ MCP Protocol [██████] 100%
37
- ├─ Architecture Map [██████] 100% ├─ 50 Native Tools [██████] 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
42
  ├─ 16.2x Speedup [██████] 100% ├─ Zero Dependencies [██████] 100%
43
43
  ├─ 19ms Avg Execution [██████] 100% ├─ Bundled Engine [██████] 100%
44
- ├─ 50/50 Tools Active [██████] 100% ├─ Direct Function [██████] 100%
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
@@ -92,12 +92,14 @@ At 55% you are building your project with half a blueprint and basically flippin
92
92
 
93
93
  ## 🛠️ Core Features
94
94
 
95
- ### 51 MCP Tools (100% Standalone)
95
+ ### 52 MCP Tools (100% Standalone)
96
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)
97
99
  - **faf_enhance** - Intelligent enhancement with auto-detection
98
100
  - **faf_read** - Parse and validate FAF files
99
101
  - **faf_write** - Create/update FAF with validation
100
- - **faf_score** - AI-readiness scoring engine
102
+ - **faf_score** - AI-readiness scoring engine (with subsite auto-detection)
101
103
  - **faf_compress** - Intelligent size optimization
102
104
  - **14 bundled commands** - Zero CLI dependencies, 16.2x faster
103
105
 
@@ -121,7 +123,7 @@ At 55% you are building your project with half a blueprint and basically flippin
121
123
  - **[Full Documentation](https://wolfe-jam.github.io/claude-faf-mcp/)** - Complete guide
122
124
  - **[FAQ](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/FAQ.md)** - Common questions
123
125
  - **[Getting Started](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/getting-started.md)** - Installation & setup
124
- - **[MCP Tools Reference](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/mcp-tools.md)** - All 50 tools
126
+ - **[MCP Tools Reference](https://github.com/Wolfe-Jam/claude-faf-mcp/blob/main/docs/mcp-tools.md)** - All 52 tools
125
127
  - **[Website](https://faf.one)** - faf.one
126
128
  - **[Discord Community](https://discord.com/invite/56fPBUJKfk)** - Join the discussion
127
129
 
@@ -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)
@@ -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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"}
@@ -3,6 +3,11 @@ import { FafEngineAdapter } from './engine-adapter';
3
3
  export declare class FafToolHandler {
4
4
  private engineAdapter;
5
5
  constructor(engineAdapter: FafEngineAdapter);
6
+ /**
7
+ * Get the project path - uses explicit path if provided, otherwise returns current context
8
+ * If an explicit path is provided, it also sets the session context for subsequent calls
9
+ */
10
+ private getProjectPath;
6
11
  listTools(): Promise<{
7
12
  tools: Tool[];
8
13
  }>;
@@ -22,4 +27,9 @@ export declare class FafToolHandler {
22
27
  private handleFafFriday;
23
28
  private handleFafGuide;
24
29
  private handleFafList;
30
+ private handleFafReadme;
31
+ private extractSixWsFromReadme;
32
+ private handleFafHumanAdd;
33
+ private handleFafCheck;
34
+ private handleFafContext;
25
35
  }
@@ -37,6 +37,7 @@ exports.FafToolHandler = void 0;
37
37
  const fileHandler_1 = require("./fileHandler");
38
38
  const fs = __importStar(require("fs"));
39
39
  const os = __importStar(require("os"));
40
+ const pathModule = __importStar(require("path"));
40
41
  const fuzzy_detector_1 = require("../utils/fuzzy-detector");
41
42
  const faf_file_finder_js_1 = require("../utils/faf-file-finder.js");
42
43
  const version_1 = require("../version");
@@ -46,6 +47,30 @@ class FafToolHandler {
46
47
  constructor(engineAdapter) {
47
48
  this.engineAdapter = engineAdapter;
48
49
  }
50
+ /**
51
+ * Get the project path - uses explicit path if provided, otherwise returns current context
52
+ * If an explicit path is provided, it also sets the session context for subsequent calls
53
+ */
54
+ getProjectPath(explicitPath) {
55
+ if (explicitPath) {
56
+ // Expand tilde
57
+ const expandedPath = explicitPath.startsWith('~')
58
+ ? pathModule.join(os.homedir(), explicitPath.slice(1))
59
+ : explicitPath;
60
+ // Resolve to absolute path
61
+ const resolvedPath = pathModule.resolve(expandedPath);
62
+ // If it's a file path, get the directory
63
+ const projectDir = fs.existsSync(resolvedPath) && fs.statSync(resolvedPath).isFile()
64
+ ? pathModule.dirname(resolvedPath)
65
+ : resolvedPath;
66
+ // Set as the new session context
67
+ if (fs.existsSync(projectDir)) {
68
+ this.engineAdapter.setWorkingDirectory(projectDir);
69
+ }
70
+ return projectDir;
71
+ }
72
+ return this.engineAdapter.getWorkingDirectory();
73
+ }
49
74
  async listTools() {
50
75
  return {
51
76
  tools: [
@@ -72,7 +97,9 @@ class FafToolHandler {
72
97
  description: 'Check if your project has project.faf (THE JPEG for AI) - Shows AI-readability status 🧡⚡️',
73
98
  inputSchema: {
74
99
  type: 'object',
75
- properties: {},
100
+ properties: {
101
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
102
+ },
76
103
  additionalProperties: false
77
104
  }
78
105
  },
@@ -82,7 +109,8 @@ class FafToolHandler {
82
109
  inputSchema: {
83
110
  type: 'object',
84
111
  properties: {
85
- details: { type: 'boolean', description: 'Include detailed breakdown and improvement suggestions' }
112
+ details: { type: 'boolean', description: 'Include detailed breakdown and improvement suggestions' },
113
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
86
114
  },
87
115
  additionalProperties: false
88
116
  }
@@ -116,7 +144,9 @@ class FafToolHandler {
116
144
  description: 'Sync project.faf (THE JPEG for AI) with CLAUDE.md - Bi-directional context 🧡⚡️',
117
145
  inputSchema: {
118
146
  type: 'object',
119
- properties: {},
147
+ properties: {
148
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
149
+ },
120
150
  additionalProperties: false
121
151
  }
122
152
  },
@@ -129,7 +159,8 @@ class FafToolHandler {
129
159
  model: { type: 'string', description: 'Target AI model: claude|chatgpt|gemini|universal (default: claude)' },
130
160
  focus: { type: 'string', description: 'Enhancement focus: claude-optimal|human-context|ai-instructions|completeness' },
131
161
  consensus: { type: 'boolean', description: 'Build consensus from multiple AI models' },
132
- dryRun: { type: 'boolean', description: 'Preview enhancement without applying changes' }
162
+ dryRun: { type: 'boolean', description: 'Preview enhancement without applying changes' },
163
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
133
164
  },
134
165
  additionalProperties: false
135
166
  }
@@ -142,7 +173,8 @@ class FafToolHandler {
142
173
  properties: {
143
174
  auto: { type: 'boolean', description: 'Enable automatic synchronization' },
144
175
  watch: { type: 'boolean', description: 'Start real-time file watching for changes' },
145
- force: { type: 'boolean', description: 'Force overwrite conflicting changes' }
176
+ force: { type: 'boolean', description: 'Force overwrite conflicting changes' },
177
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
146
178
  },
147
179
  additionalProperties: false
148
180
  }
@@ -264,6 +296,61 @@ class FafToolHandler {
264
296
  properties: {},
265
297
  additionalProperties: false
266
298
  }
299
+ },
300
+ {
301
+ name: 'faf_readme',
302
+ description: '📖 Extract 6 Ws (Who/What/Why/Where/When/How) from README.md into human_context - Smart pattern matching 🧡⚡️',
303
+ inputSchema: {
304
+ type: 'object',
305
+ properties: {
306
+ apply: { type: 'boolean', description: 'Apply extracted content to project.faf (default: preview only)' },
307
+ force: { type: 'boolean', description: 'Overwrite existing human_context values (default: only fill empty slots)' },
308
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
309
+ },
310
+ additionalProperties: false
311
+ }
312
+ },
313
+ {
314
+ name: 'faf_human_add',
315
+ description: '🧡 Add a human_context field (who/what/why/where/when/how) - Non-interactive for MCP 🧡⚡️',
316
+ inputSchema: {
317
+ type: 'object',
318
+ properties: {
319
+ field: {
320
+ type: 'string',
321
+ enum: ['who', 'what', 'why', 'where', 'when', 'how'],
322
+ description: 'The 6 W field to set'
323
+ },
324
+ value: { type: 'string', description: 'The value to set for the field' },
325
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
326
+ },
327
+ required: ['field', 'value'],
328
+ additionalProperties: false
329
+ }
330
+ },
331
+ {
332
+ name: 'faf_check',
333
+ description: '🔍 Quality inspection for human_context fields + field protection - Shows empty/generic/good/excellent ratings 🧡⚡️',
334
+ inputSchema: {
335
+ type: 'object',
336
+ properties: {
337
+ protect: { type: 'boolean', description: 'Lock good/excellent fields from being overwritten' },
338
+ unlock: { type: 'boolean', description: 'Remove all field protections' },
339
+ path: { type: 'string', description: 'Project path. Sets session context for subsequent calls.' }
340
+ },
341
+ additionalProperties: false
342
+ }
343
+ },
344
+ {
345
+ name: 'faf_context',
346
+ description: '📂 Set or view active project context - Path is remembered for subsequent faf_ calls 🧡⚡️',
347
+ inputSchema: {
348
+ type: 'object',
349
+ properties: {
350
+ path: { type: 'string', description: 'Set active project path. If omitted, shows current context.' }
351
+ },
352
+ additionalProperties: false
353
+ }
267
354
  }
268
355
  ]
269
356
  };
@@ -296,8 +383,15 @@ class FafToolHandler {
296
383
  return await this.handleFafAbout(args);
297
384
  case 'faf_what':
298
385
  return await this.handleFafWhat(args);
299
- case 'faf_read':
300
- return await fileHandler_1.fileHandlers.faf_read(args);
386
+ case 'faf_read': {
387
+ // Handle faf_read specially to set context when reading project.faf files
388
+ const readResult = await fileHandler_1.fileHandlers.faf_read(args);
389
+ // If reading a project.faf file, set the session context
390
+ if (args?.path && (args.path.includes('project.faf') || args.path.endsWith('.faf'))) {
391
+ this.getProjectPath(args.path);
392
+ }
393
+ return readResult;
394
+ }
301
395
  case 'faf_chat':
302
396
  return await this.handleFafChat(args);
303
397
  case 'faf_friday':
@@ -308,13 +402,21 @@ class FafToolHandler {
308
402
  return await this.handleFafList(args);
309
403
  case 'faf_guide':
310
404
  return await this.handleFafGuide(args);
405
+ case 'faf_readme':
406
+ return await this.handleFafReadme(args);
407
+ case 'faf_human_add':
408
+ return await this.handleFafHumanAdd(args);
409
+ case 'faf_check':
410
+ return await this.handleFafCheck(args);
411
+ case 'faf_context':
412
+ return await this.handleFafContext(args);
311
413
  default:
312
414
  throw new Error(`Unknown tool: ${name}`);
313
415
  }
314
416
  }
315
- async handleFafStatus(_args) {
417
+ async handleFafStatus(args) {
316
418
  // Native implementation - no CLI needed!
317
- const cwd = this.engineAdapter.getWorkingDirectory();
419
+ const cwd = this.getProjectPath(args?.path);
318
420
  try {
319
421
  const fafResult = await (0, faf_file_finder_js_1.findFafFile)(cwd);
320
422
  if (!fafResult) {
@@ -348,8 +450,8 @@ class FafToolHandler {
348
450
  try {
349
451
  const fs = await import('fs').then(m => m.promises);
350
452
  const path = await import('path');
351
- // Get current working directory from engine adapter (smart detection)
352
- const cwd = this.engineAdapter.getWorkingDirectory();
453
+ // Get current working directory - uses path param or session context
454
+ const cwd = this.getProjectPath(args?.path);
353
455
  // Score calculation components
354
456
  let score = 0;
355
457
  const details = [];
@@ -616,7 +718,11 @@ package_manager: ${projectData.package_manager}` : ''}
616
718
  }]
617
719
  };
618
720
  }
619
- async handleFafSync(_args) {
721
+ async handleFafSync(args) {
722
+ // Set project context if path provided
723
+ if (args?.path) {
724
+ this.getProjectPath(args.path);
725
+ }
620
726
  const result = await this.engineAdapter.callEngine('sync');
621
727
  if (!result.success) {
622
728
  return {
@@ -638,6 +744,10 @@ package_manager: ${projectData.package_manager}` : ''}
638
744
  };
639
745
  }
640
746
  async handleFafEnhance(args) {
747
+ // Set project context if path provided
748
+ if (args?.path) {
749
+ this.getProjectPath(args.path);
750
+ }
641
751
  const enhanceArgs = [];
642
752
  // Default to Claude optimization if no model specified
643
753
  const model = args?.model || 'claude';
@@ -672,6 +782,10 @@ package_manager: ${projectData.package_manager}` : ''}
672
782
  };
673
783
  }
674
784
  async handleFafBiSync(args) {
785
+ // Set project context if path provided
786
+ if (args?.path) {
787
+ this.getProjectPath(args.path);
788
+ }
675
789
  const biSyncArgs = [];
676
790
  if (args?.auto) {
677
791
  biSyncArgs.push('--auto');
@@ -1144,6 +1258,294 @@ All work: \`faf init\`, \`faf init new\`, \`faf init --new\`, \`faf init -new\`
1144
1258
  };
1145
1259
  }
1146
1260
  }
1261
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1262
+ // NEW: Human Context Tools (v3.2.0 parity)
1263
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1264
+ async handleFafReadme(args) {
1265
+ try {
1266
+ const path = await import('path');
1267
+ const cwd = this.getProjectPath(args?.path);
1268
+ // Find README.md
1269
+ const readmePath = path.join(cwd, 'README.md');
1270
+ if (!fs.existsSync(readmePath)) {
1271
+ return {
1272
+ content: [{
1273
+ type: 'text',
1274
+ text: `📖 FAF README Extraction:\n\n❌ No README.md found in ${cwd}\n💡 Create a README.md first`
1275
+ }],
1276
+ isError: true
1277
+ };
1278
+ }
1279
+ // Find project.faf
1280
+ const fafResult = await (0, faf_file_finder_js_1.findFafFile)(cwd);
1281
+ if (!fafResult) {
1282
+ return {
1283
+ content: [{
1284
+ type: 'text',
1285
+ text: `📖 FAF README Extraction:\n\n❌ No project.faf found in ${cwd}\n💡 Run faf_init first`
1286
+ }],
1287
+ isError: true
1288
+ };
1289
+ }
1290
+ // Read README content
1291
+ const readmeContent = fs.readFileSync(readmePath, 'utf-8');
1292
+ // Extract 6 Ws using simple pattern matching
1293
+ const extracted = this.extractSixWsFromReadme(readmeContent);
1294
+ if (!args?.apply) {
1295
+ // Preview mode
1296
+ let output = `📖 FAF README Extraction (Preview)\n\n`;
1297
+ output += `Found in README.md:\n`;
1298
+ for (const [field, value] of Object.entries(extracted)) {
1299
+ if (value) {
1300
+ output += ` ${field.toUpperCase()}: ${value}\n`;
1301
+ }
1302
+ }
1303
+ output += `\n💡 Use apply: true to save to project.faf`;
1304
+ return { content: [{ type: 'text', text: output }] };
1305
+ }
1306
+ // Apply mode - update project.faf
1307
+ const fafContent = fs.readFileSync(fafResult.path, 'utf-8');
1308
+ const yaml = await import('yaml');
1309
+ const fafData = yaml.parse(fafContent) || {};
1310
+ if (!fafData.human_context) {
1311
+ fafData.human_context = {};
1312
+ }
1313
+ let appliedCount = 0;
1314
+ for (const [field, value] of Object.entries(extracted)) {
1315
+ if (value) {
1316
+ const existingValue = fafData.human_context[field];
1317
+ if (!existingValue || args?.force) {
1318
+ fafData.human_context[field] = value;
1319
+ appliedCount++;
1320
+ }
1321
+ }
1322
+ }
1323
+ fs.writeFileSync(fafResult.path, yaml.stringify(fafData), 'utf-8');
1324
+ return {
1325
+ content: [{
1326
+ type: 'text',
1327
+ text: `📖 FAF README Extraction:\n\n✅ Applied ${appliedCount} field(s) to human_context\n📁 Updated: ${fafResult.filename}`
1328
+ }]
1329
+ };
1330
+ }
1331
+ catch (error) {
1332
+ return {
1333
+ content: [{ type: 'text', text: `📖 FAF README Extraction:\n\n❌ Error: ${error.message}` }],
1334
+ isError: true
1335
+ };
1336
+ }
1337
+ }
1338
+ extractSixWsFromReadme(content) {
1339
+ const result = {
1340
+ who: null, what: null, why: null, where: null, when: null, how: null
1341
+ };
1342
+ // WHAT: First paragraph after title
1343
+ const whatMatch = content.match(/^#\s+[^\n]+\n+(?:\*\*[^*]+\*\*\n+)?([A-Z][^#\n]{30,})/m);
1344
+ if (whatMatch)
1345
+ result.what = whatMatch[1].trim().substring(0, 200);
1346
+ // WHO: Look for "team", "company", "by", "for"
1347
+ const whoMatch = content.match(/(?:built by|created by|maintained by|for|team)\s+([^\n.]{10,50})/i);
1348
+ if (whoMatch)
1349
+ result.who = whoMatch[1].trim();
1350
+ // WHY: Look for "because", "to", benefits
1351
+ const whyMatch = content.match(/(?:because|to help|enables|allows|makes it)\s+([^\n.]{15,100})/i);
1352
+ if (whyMatch)
1353
+ result.why = whyMatch[1].trim();
1354
+ // WHERE: Look for deployment/runtime mentions
1355
+ const whereMatch = content.match(/(?:runs on|deployed to|works with|for)\s+(browser|server|edge|npm|cargo|cloud|local)/i);
1356
+ if (whereMatch)
1357
+ result.where = whereMatch[0].trim();
1358
+ // WHEN: Look for version, date
1359
+ const whenMatch = content.match(/(?:version|v)\s*(\d+\.\d+(?:\.\d+)?)/i);
1360
+ if (whenMatch)
1361
+ result.when = `v${whenMatch[1]}`;
1362
+ // HOW: Look for install/run commands
1363
+ const howMatch = content.match(/(?:npm install|cargo|pip install|brew install)\s+[^\n]+/i);
1364
+ if (howMatch)
1365
+ result.how = howMatch[0].trim();
1366
+ return result;
1367
+ }
1368
+ async handleFafHumanAdd(args) {
1369
+ try {
1370
+ const { field, value } = args;
1371
+ if (!field || !value) {
1372
+ return {
1373
+ content: [{
1374
+ type: 'text',
1375
+ text: `🧡 FAF Human Set:\n\n❌ Both field and value are required\n💡 Example: field="who", value="Development team"`
1376
+ }],
1377
+ isError: true
1378
+ };
1379
+ }
1380
+ const validFields = ['who', 'what', 'why', 'where', 'when', 'how'];
1381
+ if (!validFields.includes(field)) {
1382
+ return {
1383
+ content: [{
1384
+ type: 'text',
1385
+ text: `🧡 FAF Human Set:\n\n❌ Invalid field: ${field}\n💡 Valid fields: ${validFields.join(', ')}`
1386
+ }],
1387
+ isError: true
1388
+ };
1389
+ }
1390
+ const cwd = this.getProjectPath(args?.path);
1391
+ const fafResult = await (0, faf_file_finder_js_1.findFafFile)(cwd);
1392
+ if (!fafResult) {
1393
+ return {
1394
+ content: [{
1395
+ type: 'text',
1396
+ text: `🧡 FAF Human Add:\n\n❌ No project.faf found in ${cwd}\n💡 Run faf_init first`
1397
+ }],
1398
+ isError: true
1399
+ };
1400
+ }
1401
+ const fafContent = fs.readFileSync(fafResult.path, 'utf-8');
1402
+ const yaml = await import('yaml');
1403
+ const fafData = yaml.parse(fafContent) || {};
1404
+ if (!fafData.human_context) {
1405
+ fafData.human_context = {};
1406
+ }
1407
+ fafData.human_context[field] = value;
1408
+ fs.writeFileSync(fafResult.path, yaml.stringify(fafData), 'utf-8');
1409
+ return {
1410
+ content: [{
1411
+ type: 'text',
1412
+ text: `🧡 FAF Human Set:\n\n✅ Set ${field.toUpperCase()} = "${value}"\n📁 Updated: ${fafResult.filename}`
1413
+ }]
1414
+ };
1415
+ }
1416
+ catch (error) {
1417
+ return {
1418
+ content: [{ type: 'text', text: `🧡 FAF Human Set:\n\n❌ Error: ${error.message}` }],
1419
+ isError: true
1420
+ };
1421
+ }
1422
+ }
1423
+ async handleFafCheck(args) {
1424
+ try {
1425
+ const cwd = this.getProjectPath(args?.path);
1426
+ const fafResult = await (0, faf_file_finder_js_1.findFafFile)(cwd);
1427
+ if (!fafResult) {
1428
+ return {
1429
+ content: [{
1430
+ type: 'text',
1431
+ text: `🔍 FAF Check:\n\n❌ No project.faf found in ${cwd}\n💡 Run faf_init first`
1432
+ }],
1433
+ isError: true
1434
+ };
1435
+ }
1436
+ const fafContent = fs.readFileSync(fafResult.path, 'utf-8');
1437
+ const yaml = await import('yaml');
1438
+ const fafData = yaml.parse(fafContent) || {};
1439
+ const humanContext = fafData.human_context || {};
1440
+ const protectedFields = fafData._protected_fields || [];
1441
+ const fields = ['who', 'what', 'why', 'where', 'when', 'how'];
1442
+ // Handle --unlock
1443
+ if (args?.unlock) {
1444
+ fafData._protected_fields = [];
1445
+ fs.writeFileSync(fafResult.path, yaml.stringify(fafData), 'utf-8');
1446
+ return {
1447
+ content: [{
1448
+ type: 'text',
1449
+ text: `🔓 FAF Check:\n\n✅ All fields unlocked\n📁 Updated: ${fafResult.filename}`
1450
+ }]
1451
+ };
1452
+ }
1453
+ // Assess quality
1454
+ const assessField = (value) => {
1455
+ if (!value || value.trim() === '')
1456
+ return 'empty';
1457
+ if (value.length < 10)
1458
+ return 'generic';
1459
+ if (value.length > 20)
1460
+ return 'good';
1461
+ return 'generic';
1462
+ };
1463
+ const qualities = {};
1464
+ for (const field of fields) {
1465
+ qualities[field] = assessField(humanContext[field]);
1466
+ }
1467
+ // Handle --protect
1468
+ if (args?.protect) {
1469
+ const toProtect = fields.filter(f => qualities[f] === 'good' || qualities[f] === 'excellent');
1470
+ if (toProtect.length === 0) {
1471
+ return {
1472
+ content: [{
1473
+ type: 'text',
1474
+ text: `🔒 FAF Check:\n\n⚠️ No fields qualify for protection (need good or excellent quality)`
1475
+ }]
1476
+ };
1477
+ }
1478
+ fafData._protected_fields = [...new Set([...protectedFields, ...toProtect])];
1479
+ fs.writeFileSync(fafResult.path, yaml.stringify(fafData), 'utf-8');
1480
+ return {
1481
+ content: [{
1482
+ type: 'text',
1483
+ text: `🔒 FAF Check:\n\n✅ Protected ${toProtect.length} field(s): ${toProtect.join(', ')}\n📁 Updated: ${fafResult.filename}`
1484
+ }]
1485
+ };
1486
+ }
1487
+ // Default: show quality report
1488
+ const icons = {
1489
+ empty: '⬜', generic: '🟡', good: '🟢', excellent: '💎'
1490
+ };
1491
+ let output = `🔍 FAF Human Context Quality\n\n`;
1492
+ for (const field of fields) {
1493
+ const q = qualities[field];
1494
+ const locked = protectedFields.includes(field) ? '🔒' : ' ';
1495
+ const value = humanContext[field] || '(empty)';
1496
+ const displayValue = value.length > 40 ? value.substring(0, 37) + '...' : value;
1497
+ output += `${icons[q]} ${locked} ${field.toUpperCase().padEnd(6)} ${displayValue}\n`;
1498
+ }
1499
+ const goodCount = fields.filter(f => qualities[f] === 'good' || qualities[f] === 'excellent').length;
1500
+ const emptyCount = fields.filter(f => qualities[f] === 'empty').length;
1501
+ output += `\n📊 Quality: ${Math.round((goodCount / fields.length) * 100)}%\n`;
1502
+ if (protectedFields.length > 0) {
1503
+ output += `🔒 Protected: ${protectedFields.join(', ')}\n`;
1504
+ }
1505
+ if (emptyCount > 0) {
1506
+ output += `\n💡 Use faf_readme or faf_human_add to fill empty slots`;
1507
+ }
1508
+ return { content: [{ type: 'text', text: output }] };
1509
+ }
1510
+ catch (error) {
1511
+ return {
1512
+ content: [{ type: 'text', text: `🔍 FAF Check:\n\n❌ Error: ${error.message}` }],
1513
+ isError: true
1514
+ };
1515
+ }
1516
+ }
1517
+ async handleFafContext(args) {
1518
+ try {
1519
+ if (args?.path) {
1520
+ // Set the new context
1521
+ const newPath = this.getProjectPath(args.path);
1522
+ const fafResult = await (0, faf_file_finder_js_1.findFafFile)(newPath);
1523
+ return {
1524
+ content: [{
1525
+ type: 'text',
1526
+ text: `📂 FAF Context Set:\n\n✅ Active project: ${newPath}\n${fafResult ? `✅ project.faf found: ${fafResult.filename}` : '⚠️ No project.faf in this directory'}\n\n💡 Subsequent faf_* calls will use this context`
1527
+ }]
1528
+ };
1529
+ }
1530
+ else {
1531
+ // Show current context
1532
+ const currentPath = this.engineAdapter.getWorkingDirectory();
1533
+ const fafResult = await (0, faf_file_finder_js_1.findFafFile)(currentPath);
1534
+ return {
1535
+ content: [{
1536
+ type: 'text',
1537
+ text: `📂 FAF Current Context:\n\n📁 Active project: ${currentPath}\n${fafResult ? `✅ project.faf: ${fafResult.filename}` : '⚠️ No project.faf found'}\n\n💡 Use path parameter to change context`
1538
+ }]
1539
+ };
1540
+ }
1541
+ }
1542
+ catch (error) {
1543
+ return {
1544
+ content: [{ type: 'text', text: `📂 FAF Context:\n\n❌ Error: ${error.message}` }],
1545
+ isError: true
1546
+ };
1547
+ }
1548
+ }
1147
1549
  }
1148
1550
  exports.FafToolHandler = FafToolHandler;
1149
1551
  //# sourceMappingURL=tools.js.map
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-faf-mcp",
3
- "version": "3.3.3",
3
+ "version": "3.3.4",
4
4
  "mcpName": "io.github.Wolfe-Jam/claude-faf-mcp",
5
5
  "description": "IANA-registered format (application/vnd.faf+yaml) • Persistent project context • MCP server for Claude Desktop • MIT License",
6
6
  "icon": "./assets/icons/faf-icon-256.png",