feat: implement webhook path autofixer and improve node similarity service

- Add webhook path auto-generation for nodes missing path configuration
  - Generates UUID for both 'path' parameter and 'webhookId' field
  - Conditionally updates typeVersion to 2.1 only when < 2.1
  - High confidence fix (95%) as UUID generation is deterministic

- Fix critical security and performance issues in NodeSimilarityService:
  - Replace regex patterns with string-based matching to prevent ReDoS attacks
  - Add cache invalidation with version tracking to prevent memory leaks
  - Optimize Levenshtein distance algorithm from O(m*n) space to O(n)
  - Add early termination for performance improvement
  - Extract magic numbers into named constants

- Add comprehensive documentation for n8n_autofix_workflow tool
  - Document all fix types including new webhook-missing-path
  - Include examples, best practices, and warnings
  - Integrate with MCP tool documentation system

- Create node-type-utils for centralized type normalization
  - Eliminate code duplication across services
  - Consistent handling of package prefixes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-09-24 11:18:13 +02:00
parent 627c0144a4
commit 0c31f12372
6 changed files with 697 additions and 123 deletions

View File

@@ -270,6 +270,41 @@ export const n8nManagementTools: ToolDefinition[] = [
required: ['id']
}
},
{
name: 'n8n_autofix_workflow',
description: `Automatically fix common workflow validation errors. Preview fixes or apply them. Fixes expression format, typeVersion, error output config, webhook paths.`,
inputSchema: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'Workflow ID to fix'
},
applyFixes: {
type: 'boolean',
description: 'Apply fixes to workflow (default: false - preview mode)'
},
fixTypes: {
type: 'array',
description: 'Types of fixes to apply (default: all)',
items: {
type: 'string',
enum: ['expression-format', 'typeversion-correction', 'error-output-config', 'node-type-correction', 'webhook-missing-path']
}
},
confidenceThreshold: {
type: 'string',
enum: ['high', 'medium', 'low'],
description: 'Minimum confidence level for fixes (default: medium)'
},
maxFixes: {
type: 'number',
description: 'Maximum number of fixes to apply (default: 50)'
}
},
required: ['id']
}
},
// Execution Management Tools
{