@path58/n8n-mcp 0.1.0
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/AGENT_INSTALL.md +223 -0
- package/CHANGELOG.md +38 -0
- package/LICENSE +21 -0
- package/README.md +187 -0
- package/dist/autofix/suggestion-fixers/deprecated-node-fixer.js +465 -0
- package/dist/autofix/suggestion-fixers/deprecated-node-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/fixer-registry.js +495 -0
- package/dist/autofix/suggestion-fixers/fixer-registry.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l1-structure-fixer.js +639 -0
- package/dist/autofix/suggestion-fixers/l1-structure-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l4-connection-fixer.js +449 -0
- package/dist/autofix/suggestion-fixers/l4-connection-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l5-parameter-fixer.js +575 -0
- package/dist/autofix/suggestion-fixers/l5-parameter-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l5-typeversion-fixer.js +431 -0
- package/dist/autofix/suggestion-fixers/l5-typeversion-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l5-webhook-path-fixer.js +356 -0
- package/dist/autofix/suggestion-fixers/l5-webhook-path-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l6-ai-tool-variant-fixer.js +618 -0
- package/dist/autofix/suggestion-fixers/l6-ai-tool-variant-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/l6-pattern-fixer.js +1475 -0
- package/dist/autofix/suggestion-fixers/l6-pattern-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/llm-fixer.js +716 -0
- package/dist/autofix/suggestion-fixers/llm-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/missing-credential-fixer.js +336 -0
- package/dist/autofix/suggestion-fixers/missing-credential-fixer.js.map +1 -0
- package/dist/autofix/suggestion-fixers/types.js +29 -0
- package/dist/autofix/suggestion-fixers/types.js.map +1 -0
- package/dist/autofix/suggestion-fixers/typo-fixer.js +197 -0
- package/dist/autofix/suggestion-fixers/typo-fixer.js.map +1 -0
- package/dist/classification/certification-engine.js +208 -0
- package/dist/classification/certification-engine.js.map +1 -0
- package/dist/classification/feedback-collector.js +516 -0
- package/dist/classification/feedback-collector.js.map +1 -0
- package/dist/classification/l5-parameter-analyzer.js +670 -0
- package/dist/classification/l5-parameter-analyzer.js.map +1 -0
- package/dist/classification/l6-graph-analyzer.js +613 -0
- package/dist/classification/l6-graph-analyzer.js.map +1 -0
- package/dist/classification/severity-classifier.js +237 -0
- package/dist/classification/severity-classifier.js.map +1 -0
- package/dist/config/env.js +280 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/env.schema.js +234 -0
- package/dist/config/env.schema.js.map +1 -0
- package/dist/config/scraperEnv.js +55 -0
- package/dist/config/scraperEnv.js.map +1 -0
- package/dist/db/postgresClient.js +38 -0
- package/dist/db/postgresClient.js.map +1 -0
- package/dist/db/scraperDb.js +6 -0
- package/dist/db/scraperDb.js.map +1 -0
- package/dist/db/scraperPostgresClient.js +118 -0
- package/dist/db/scraperPostgresClient.js.map +1 -0
- package/dist/db/validationRepository.js +55 -0
- package/dist/db/validationRepository.js.map +1 -0
- package/dist/db/validatorPostgresClient.js +248 -0
- package/dist/db/validatorPostgresClient.js.map +1 -0
- package/dist/db/workflowInstanceMappingRepository.js +128 -0
- package/dist/db/workflowInstanceMappingRepository.js.map +1 -0
- package/dist/errors/AppError.js +156 -0
- package/dist/errors/AppError.js.map +1 -0
- package/dist/errors/index.js +7 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/factory/error-to-problem-mappers.js +385 -0
- package/dist/factory/error-to-problem-mappers.js.map +1 -0
- package/dist/factory/gap-recorder.js +260 -0
- package/dist/factory/gap-recorder.js.map +1 -0
- package/dist/factory/problem-recorder.js +94 -0
- package/dist/factory/problem-recorder.js.map +1 -0
- package/dist/factory/warning-to-gap-mappers.js +493 -0
- package/dist/factory/warning-to-gap-mappers.js.map +1 -0
- package/dist/factory/workflow-normalizer.js +247 -0
- package/dist/factory/workflow-normalizer.js.map +1 -0
- package/dist/mcp/adapters/catalog.js +13 -0
- package/dist/mcp/adapters/catalog.js.map +1 -0
- package/dist/mcp/adapters/index.js +36 -0
- package/dist/mcp/adapters/index.js.map +1 -0
- package/dist/mcp/adapters/supabase-catalog.js +467 -0
- package/dist/mcp/adapters/supabase-catalog.js.map +1 -0
- package/dist/mcp/adapters/test-catalog-adapter.js +100 -0
- package/dist/mcp/adapters/test-catalog-adapter.js.map +1 -0
- package/dist/mcp/adapters/validation.js +258 -0
- package/dist/mcp/adapters/validation.js.map +1 -0
- package/dist/mcp/build-email-workflow.js +113 -0
- package/dist/mcp/build-email-workflow.js.map +1 -0
- package/dist/mcp/config.js +22 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/formatters/errors.js +217 -0
- package/dist/mcp/formatters/errors.js.map +1 -0
- package/dist/mcp/formatters/index.js +12 -0
- package/dist/mcp/formatters/index.js.map +1 -0
- package/dist/mcp/formatters/response.js +141 -0
- package/dist/mcp/formatters/response.js.map +1 -0
- package/dist/mcp/quick-test.js +33 -0
- package/dist/mcp/quick-test.js.map +1 -0
- package/dist/mcp/server.js +70 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/test-mcp-error.js +81 -0
- package/dist/mcp/test-mcp-error.js.map +1 -0
- package/dist/mcp/test-mcp.js +80 -0
- package/dist/mcp/test-mcp.js.map +1 -0
- package/dist/mcp/tools/fixes/expression-fixes.js +166 -0
- package/dist/mcp/tools/fixes/expression-fixes.js.map +1 -0
- package/dist/mcp/tools/fixes/flow-fixes.js +155 -0
- package/dist/mcp/tools/fixes/flow-fixes.js.map +1 -0
- package/dist/mcp/tools/fixes/index.js +91 -0
- package/dist/mcp/tools/fixes/index.js.map +1 -0
- package/dist/mcp/tools/fixes/node-fixes.js +233 -0
- package/dist/mcp/tools/fixes/node-fixes.js.map +1 -0
- package/dist/mcp/tools/fixes/parameter-fixes.js +277 -0
- package/dist/mcp/tools/fixes/parameter-fixes.js.map +1 -0
- package/dist/mcp/tools/fixes/types.js +10 -0
- package/dist/mcp/tools/fixes/types.js.map +1 -0
- package/dist/mcp/tools/handlers/check-parameter.js +300 -0
- package/dist/mcp/tools/handlers/check-parameter.js.map +1 -0
- package/dist/mcp/tools/handlers/find-similar-pattern.js +121 -0
- package/dist/mcp/tools/handlers/find-similar-pattern.js.map +1 -0
- package/dist/mcp/tools/handlers/get-node-info.js +131 -0
- package/dist/mcp/tools/handlers/get-node-info.js.map +1 -0
- package/dist/mcp/tools/handlers/get-operation-schema.js +141 -0
- package/dist/mcp/tools/handlers/get-operation-schema.js.map +1 -0
- package/dist/mcp/tools/handlers/list-nodes.js +126 -0
- package/dist/mcp/tools/handlers/list-nodes.js.map +1 -0
- package/dist/mcp/tools/handlers/list-operations.js +138 -0
- package/dist/mcp/tools/handlers/list-operations.js.map +1 -0
- package/dist/mcp/tools/handlers/suggest-fix.js +120 -0
- package/dist/mcp/tools/handlers/suggest-fix.js.map +1 -0
- package/dist/mcp/tools/handlers/validate-workflow.js +92 -0
- package/dist/mcp/tools/handlers/validate-workflow.js.map +1 -0
- package/dist/mcp/tools/index.js +190 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/schemas.js +195 -0
- package/dist/mcp/tools/schemas.js.map +1 -0
- package/dist/mcp/tools/validate.js +95 -0
- package/dist/mcp/tools/validate.js.map +1 -0
- package/dist/mcp/types/mcp.js +7 -0
- package/dist/mcp/types/mcp.js.map +1 -0
- package/dist/mcp/utils/timeout.js +78 -0
- package/dist/mcp/utils/timeout.js.map +1 -0
- package/dist/services/BatchProcessor.js +433 -0
- package/dist/services/BatchProcessor.js.map +1 -0
- package/dist/services/CheckpointManager.js +281 -0
- package/dist/services/CheckpointManager.js.map +1 -0
- package/dist/services/CostCalculator.js +211 -0
- package/dist/services/CostCalculator.js.map +1 -0
- package/dist/services/EmbeddingCache.js +68 -0
- package/dist/services/EmbeddingCache.js.map +1 -0
- package/dist/services/EmbeddingService.js +143 -0
- package/dist/services/EmbeddingService.js.map +1 -0
- package/dist/services/RankingService.js +81 -0
- package/dist/services/RankingService.js.map +1 -0
- package/dist/services/RedisCache.js +376 -0
- package/dist/services/RedisCache.js.map +1 -0
- package/dist/services/RedisCatalogCache.js +680 -0
- package/dist/services/RedisCatalogCache.js.map +1 -0
- package/dist/services/ResumeManager.js +252 -0
- package/dist/services/ResumeManager.js.map +1 -0
- package/dist/services/SearchService.js +282 -0
- package/dist/services/SearchService.js.map +1 -0
- package/dist/services/SemanticCatalogSearch.js +405 -0
- package/dist/services/SemanticCatalogSearch.js.map +1 -0
- package/dist/services/ValidationCache.js +157 -0
- package/dist/services/ValidationCache.js.map +1 -0
- package/dist/services/WorkflowPipelineService.js +1997 -0
- package/dist/services/WorkflowPipelineService.js.map +1 -0
- package/dist/services/catalog/index.js +34 -0
- package/dist/services/catalog/index.js.map +1 -0
- package/dist/services/catalog/interfaces.js +17 -0
- package/dist/services/catalog/interfaces.js.map +1 -0
- package/dist/services/catalog/loaders.js +169 -0
- package/dist/services/catalog/loaders.js.map +1 -0
- package/dist/services/catalog/types.js +138 -0
- package/dist/services/catalog/types.js.map +1 -0
- package/dist/services/documentation-normalization/docUrlUtils.js +88 -0
- package/dist/services/documentation-normalization/docUrlUtils.js.map +1 -0
- package/dist/services/error-quality/ErrorQualityService.js +262 -0
- package/dist/services/error-quality/ErrorQualityService.js.map +1 -0
- package/dist/services/error-quality/analyzers/CredentialAnalyzer.js +260 -0
- package/dist/services/error-quality/analyzers/CredentialAnalyzer.js.map +1 -0
- package/dist/services/error-quality/analyzers/IssuePredictor.js +380 -0
- package/dist/services/error-quality/analyzers/IssuePredictor.js.map +1 -0
- package/dist/services/error-quality/analyzers/MockCoverageAnalyzer.js +267 -0
- package/dist/services/error-quality/analyzers/MockCoverageAnalyzer.js.map +1 -0
- package/dist/services/error-quality/data/ErrorPatternSeeder.js +963 -0
- package/dist/services/error-quality/data/ErrorPatternSeeder.js.map +1 -0
- package/dist/services/error-quality/index.js +25 -0
- package/dist/services/error-quality/index.js.map +1 -0
- package/dist/services/error-quality/reports/ReportGenerator.js +343 -0
- package/dist/services/error-quality/reports/ReportGenerator.js.map +1 -0
- package/dist/services/error-quality/taxonomy/ErrorTaxonomy.js +698 -0
- package/dist/services/error-quality/taxonomy/ErrorTaxonomy.js.map +1 -0
- package/dist/services/error-quality/types.js +11 -0
- package/dist/services/error-quality/types.js.map +1 -0
- package/dist/services/progress/ProgressTracker.js +288 -0
- package/dist/services/progress/ProgressTracker.js.map +1 -0
- package/dist/services/progress/formatters.js +122 -0
- package/dist/services/progress/formatters.js.map +1 -0
- package/dist/services/progress/index.js +36 -0
- package/dist/services/progress/index.js.map +1 -0
- package/dist/services/progress/types.js +7 -0
- package/dist/services/progress/types.js.map +1 -0
- package/dist/services/search/embeddingGenerator.js +112 -0
- package/dist/services/search/embeddingGenerator.js.map +1 -0
- package/dist/types/aiCapabilities.js +7 -0
- package/dist/types/aiCapabilities.js.map +1 -0
- package/dist/types/aiConfigSchema.js +7 -0
- package/dist/types/aiConfigSchema.js.map +1 -0
- package/dist/utils/bannerLogger.js +186 -0
- package/dist/utils/bannerLogger.js.map +1 -0
- package/dist/utils/bannerService.js +23 -0
- package/dist/utils/bannerService.js.map +1 -0
- package/dist/utils/bannerServiceAdapter.js +54 -0
- package/dist/utils/bannerServiceAdapter.js.map +1 -0
- package/dist/utils/batchLogger.js +171 -0
- package/dist/utils/batchLogger.js.map +1 -0
- package/dist/utils/bottomStickyBanner.js +239 -0
- package/dist/utils/bottomStickyBanner.js.map +1 -0
- package/dist/utils/credentialMatcher.js +206 -0
- package/dist/utils/credentialMatcher.js.map +1 -0
- package/dist/utils/credentialNormalizer.js +442 -0
- package/dist/utils/credentialNormalizer.js.map +1 -0
- package/dist/utils/integratedBannerLogger.js +59 -0
- package/dist/utils/integratedBannerLogger.js.map +1 -0
- package/dist/utils/n8nSourceGit.js +195 -0
- package/dist/utils/n8nSourceGit.js.map +1 -0
- package/dist/utils/nodeTypeNormalizer.js +131 -0
- package/dist/utils/nodeTypeNormalizer.js.map +1 -0
- package/dist/utils/openaiClient.js +397 -0
- package/dist/utils/openaiClient.js.map +1 -0
- package/dist/utils/productionLogger.js +16 -0
- package/dist/utils/productionLogger.js.map +1 -0
- package/dist/utils/progressBarBanner.js +132 -0
- package/dist/utils/progressBarBanner.js.map +1 -0
- package/dist/utils/scriptHeartbeat.js +117 -0
- package/dist/utils/scriptHeartbeat.js.map +1 -0
- package/dist/utils/scriptLogger.js +125 -0
- package/dist/utils/scriptLogger.js.map +1 -0
- package/dist/utils/scriptRunner.js +95 -0
- package/dist/utils/scriptRunner.js.map +1 -0
- package/dist/utils/scriptTimeout.js +128 -0
- package/dist/utils/scriptTimeout.js.map +1 -0
- package/dist/utils/scriptWrapper.js +219 -0
- package/dist/utils/scriptWrapper.js.map +1 -0
- package/dist/utils/stickyBanner.js +226 -0
- package/dist/utils/stickyBanner.js.map +1 -0
- package/dist/utils/terminalSpinner.js +97 -0
- package/dist/utils/terminalSpinner.js.map +1 -0
- package/dist/utils/threeLineBanner.js +427 -0
- package/dist/utils/threeLineBanner.js.map +1 -0
- package/dist/utils/validatorCheckpointManager.js +170 -0
- package/dist/utils/validatorCheckpointManager.js.map +1 -0
- package/dist/utils/validatorConnectionManager.js +124 -0
- package/dist/utils/validatorConnectionManager.js.map +1 -0
- package/dist/validation/catalog.js +56 -0
- package/dist/validation/catalog.js.map +1 -0
- package/dist/validation/config/deprecated-nodes.js +234 -0
- package/dist/validation/config/deprecated-nodes.js.map +1 -0
- package/dist/validation/config/l6-severity.js +227 -0
- package/dist/validation/config/l6-severity.js.map +1 -0
- package/dist/validation/config/terminal-nodes.js +132 -0
- package/dist/validation/config/terminal-nodes.js.map +1 -0
- package/dist/validation/config/unreachable-nodes.js +67 -0
- package/dist/validation/config/unreachable-nodes.js.map +1 -0
- package/dist/validation/core.js +47 -0
- package/dist/validation/core.js.map +1 -0
- package/dist/validation/docExtraction.js +12 -0
- package/dist/validation/docExtraction.js.map +1 -0
- package/dist/validation/dryRunMockRunner.js +128 -0
- package/dist/validation/dryRunMockRunner.js.map +1 -0
- package/dist/validation/fixtureEngine.js +61 -0
- package/dist/validation/fixtureEngine.js.map +1 -0
- package/dist/validation/index.js +15 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/k-levels/k2-blockers.js +222 -0
- package/dist/validation/k-levels/k2-blockers.js.map +1 -0
- package/dist/validation/l1-structure.js +296 -0
- package/dist/validation/l1-structure.js.map +1 -0
- package/dist/validation/l2-nodes.js +282 -0
- package/dist/validation/l2-nodes.js.map +1 -0
- package/dist/validation/l3-credentials.js +322 -0
- package/dist/validation/l3-credentials.js.map +1 -0
- package/dist/validation/l4-connections.js +698 -0
- package/dist/validation/l4-connections.js.map +1 -0
- package/dist/validation/l5-parameters.js +803 -0
- package/dist/validation/l5-parameters.js.map +1 -0
- package/dist/validation/l6-checks/ai-tool-variants.js +407 -0
- package/dist/validation/l6-checks/ai-tool-variants.js.map +1 -0
- package/dist/validation/l6-checks/catalog-checks.js +260 -0
- package/dist/validation/l6-checks/catalog-checks.js.map +1 -0
- package/dist/validation/l6-checks/data-contracts.js +197 -0
- package/dist/validation/l6-checks/data-contracts.js.map +1 -0
- package/dist/validation/l6-checks/deprecation.js +133 -0
- package/dist/validation/l6-checks/deprecation.js.map +1 -0
- package/dist/validation/l6-checks/error-handling.js +193 -0
- package/dist/validation/l6-checks/error-handling.js.map +1 -0
- package/dist/validation/l6-checks/expression-syntax.js +387 -0
- package/dist/validation/l6-checks/expression-syntax.js.map +1 -0
- package/dist/validation/l6-checks/flow-integrity.js +504 -0
- package/dist/validation/l6-checks/flow-integrity.js.map +1 -0
- package/dist/validation/l6-checks/index.js +106 -0
- package/dist/validation/l6-checks/index.js.map +1 -0
- package/dist/validation/l6-checks/loops.js +370 -0
- package/dist/validation/l6-checks/loops.js.map +1 -0
- package/dist/validation/l6-checks/performance.js +182 -0
- package/dist/validation/l6-checks/performance.js.map +1 -0
- package/dist/validation/l6-checks/security.js +273 -0
- package/dist/validation/l6-checks/security.js.map +1 -0
- package/dist/validation/l6-patterns.js +472 -0
- package/dist/validation/l6-patterns.js.map +1 -0
- package/dist/validation/mockLevelResolver.js +95 -0
- package/dist/validation/mockLevelResolver.js.map +1 -0
- package/dist/validation/n8nApiClient.js +21 -0
- package/dist/validation/n8nApiClient.js.map +1 -0
- package/dist/validation/n8nCli.js +87 -0
- package/dist/validation/n8nCli.js.map +1 -0
- package/dist/validation/types.js +8 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/usageStats.js +82 -0
- package/dist/validation/usageStats.js.map +1 -0
- package/package.json +274 -0
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutoFixer Registry
|
|
3
|
+
*
|
|
4
|
+
* RAG-2.2.92.4: Auto-fix Engine
|
|
5
|
+
* Central registry for all suggestion-based fixers.
|
|
6
|
+
* Coordinates fix application and records results to fix_history.
|
|
7
|
+
*
|
|
8
|
+
* @module suggestion-fixers/fixer-registry
|
|
9
|
+
* @created 2026-01-21
|
|
10
|
+
*/
|
|
11
|
+
import { TypoFixer, typoFixer } from './typo-fixer.js';
|
|
12
|
+
import { DeprecatedNodeFixer, DeprecatedNodeHandler, deprecatedNodeFixer, deprecatedNodeHandler, } from './deprecated-node-fixer.js';
|
|
13
|
+
import { MissingCredentialFixer, missingCredentialFixer } from './missing-credential-fixer.js';
|
|
14
|
+
import { L1OrphanConnectionFixer, L1MissingConnectionsFixer, L1MissingFieldFixer, L1PositionFixer, L1DuplicateNodeNameFixer, l1OrphanConnectionFixer, l1MissingConnectionsFixer, l1MissingFieldFixer, l1PositionFixer, l1DuplicateNodeNameFixer, } from './l1-structure-fixer.js';
|
|
15
|
+
import { L4CircularConnectionFixer, L4InvalidPatternFixer, L4MissingInputConnectionFixer, l4CircularConnectionFixer, l4InvalidPatternFixer, l4MissingInputConnectionFixer, } from './l4-connection-fixer.js';
|
|
16
|
+
import { L5MissingParameterFixer, L5InvalidParameterFixer, L5UnknownParameterFixer, l5MissingParameterFixer, l5InvalidParameterFixer, l5UnknownParameterFixer, } from './l5-parameter-fixer.js';
|
|
17
|
+
import { L5WebhookPathFixer, l5WebhookPathFixer, } from './l5-webhook-path-fixer.js';
|
|
18
|
+
import { L5TypeVersionFixer, l5TypeVersionFixer, } from './l5-typeversion-fixer.js';
|
|
19
|
+
import { L6RetryFixer, L6ErrorOutputFixer, L6DeadEndFixerV2, L6ExpressionFixer, L6TriggerFixer, L6HardcodedUrlHandler, L6UnreachableNodeFixerV2, l6RetryFixer, l6ErrorOutputFixer, l6DeadEndFixerV2, l6ExpressionFixer, l6TriggerFixer, l6HardcodedUrlHandler, l6UnreachableNodeFixerV2, l6PatternFixers, DEAD_END_FIXER_CONFIG, UNREACHABLE_FIXER_CONFIG, } from './l6-pattern-fixer.js';
|
|
20
|
+
import { L6AIToolVariantFixer, l6AIToolVariantFixer, } from './l6-ai-tool-variant-fixer.js';
|
|
21
|
+
import { LLMFixer, createLLMFixer } from './llm-fixer.js';
|
|
22
|
+
import { validatorQuery } from '../../db/validatorPostgresClient.js';
|
|
23
|
+
import { retryDbQuery } from '@tsvika58/shared-utilities/retry';
|
|
24
|
+
import { logger } from '@tsvika58/shared-utilities/logging';
|
|
25
|
+
/**
|
|
26
|
+
* RAG-2.2.108.3: Get L6 fix confidence threshold from environment or use default
|
|
27
|
+
* Environment variable: L6_FIX_CONFIDENCE_THRESHOLD (default: 0.85)
|
|
28
|
+
*/
|
|
29
|
+
function getL6FixConfidenceThreshold() {
|
|
30
|
+
const envValue = process.env.L6_FIX_CONFIDENCE_THRESHOLD;
|
|
31
|
+
if (envValue) {
|
|
32
|
+
const parsed = parseFloat(envValue);
|
|
33
|
+
if (!isNaN(parsed) && parsed >= 0 && parsed <= 1) {
|
|
34
|
+
return parsed;
|
|
35
|
+
}
|
|
36
|
+
logger.warn('Invalid L6_FIX_CONFIDENCE_THRESHOLD value, using default', {
|
|
37
|
+
envValue,
|
|
38
|
+
default: 0.85,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return 0.85;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Default configuration
|
|
45
|
+
* RAG-2.2.108.3: confidenceThreshold is now configurable via L6_FIX_CONFIDENCE_THRESHOLD env var
|
|
46
|
+
*/
|
|
47
|
+
const DEFAULT_CONFIG = {
|
|
48
|
+
confidenceThreshold: getL6FixConfidenceThreshold(),
|
|
49
|
+
recordFixes: true,
|
|
50
|
+
validateAfterFix: true,
|
|
51
|
+
maxFixesPerPass: 10,
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* AutoFixerRegistry - Central registry and coordinator for suggestion-based fixers
|
|
55
|
+
*
|
|
56
|
+
* Manages the collection of fixers and coordinates fix application.
|
|
57
|
+
* Records all fix attempts to factory.fix_history for audit trail.
|
|
58
|
+
*/
|
|
59
|
+
export class AutoFixerRegistry {
|
|
60
|
+
fixers = new Map();
|
|
61
|
+
config;
|
|
62
|
+
/** Cache: problem_code → candidate fixers that declare support via supportedCodes */
|
|
63
|
+
fixersByCode = new Map();
|
|
64
|
+
/** Cache: getAllFixers() result, invalidated on registerFixer() */
|
|
65
|
+
cachedFixerArray = null;
|
|
66
|
+
/**
|
|
67
|
+
* Create a new AutoFixerRegistry
|
|
68
|
+
* @param config - Optional configuration override
|
|
69
|
+
*/
|
|
70
|
+
constructor(config) {
|
|
71
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
72
|
+
// Register default fixers
|
|
73
|
+
this.registerFixer(typoFixer);
|
|
74
|
+
this.registerFixer(deprecatedNodeFixer);
|
|
75
|
+
// RAG-2.2.93.14: Handler for deprecated nodes WITHOUT replacements (version warnings)
|
|
76
|
+
this.registerFixer(deprecatedNodeHandler);
|
|
77
|
+
this.registerFixer(missingCredentialFixer);
|
|
78
|
+
// Register L1 structure fixers (RAG-2.2.93.4, RAG-2.2.106.3)
|
|
79
|
+
this.registerFixer(l1OrphanConnectionFixer);
|
|
80
|
+
this.registerFixer(l1MissingConnectionsFixer);
|
|
81
|
+
this.registerFixer(l1MissingFieldFixer);
|
|
82
|
+
this.registerFixer(l1PositionFixer);
|
|
83
|
+
this.registerFixer(l1DuplicateNodeNameFixer);
|
|
84
|
+
// Register L4 connection fixers (RAG-2.2.93.7)
|
|
85
|
+
this.registerFixer(l4CircularConnectionFixer);
|
|
86
|
+
this.registerFixer(l4InvalidPatternFixer);
|
|
87
|
+
this.registerFixer(l4MissingInputConnectionFixer);
|
|
88
|
+
// Register L5 parameter fixers (RAG-2.2.93.8)
|
|
89
|
+
this.registerFixer(l5MissingParameterFixer);
|
|
90
|
+
this.registerFixer(l5InvalidParameterFixer);
|
|
91
|
+
this.registerFixer(l5UnknownParameterFixer);
|
|
92
|
+
// Register L5 webhook path fixer (RAG-4.7.2)
|
|
93
|
+
this.registerFixer(l5WebhookPathFixer);
|
|
94
|
+
// Register L5 typeVersion fixer (RAG-4.7.1)
|
|
95
|
+
this.registerFixer(l5TypeVersionFixer);
|
|
96
|
+
// Register L6 pattern fixers (RAG-2.2.93.9)
|
|
97
|
+
// RAG-2.2.108.3: Use V2 fixers for unreachable and dead-end nodes with confidence tiers
|
|
98
|
+
this.registerFixer(l6RetryFixer);
|
|
99
|
+
this.registerFixer(l6ErrorOutputFixer);
|
|
100
|
+
this.registerFixer(l6DeadEndFixerV2); // V2: terminal detection + position-based (RAG-2.2.108.2)
|
|
101
|
+
this.registerFixer(l6ExpressionFixer);
|
|
102
|
+
this.registerFixer(l6TriggerFixer);
|
|
103
|
+
this.registerFixer(l6HardcodedUrlHandler);
|
|
104
|
+
this.registerFixer(l6UnreachableNodeFixerV2); // V2: position-based with confidence tiers (RAG-2.2.108.1)
|
|
105
|
+
// Register L6 AI Tool Variant fixer (RAG-4.7.3)
|
|
106
|
+
this.registerFixer(l6AIToolVariantFixer);
|
|
107
|
+
// RAG-9.4.3v2: LLMFixer registered LAST - only handles problems no static fixer can fix
|
|
108
|
+
// This is a fallback fixer that uses LLM as a last resort
|
|
109
|
+
this.registerFixer(createLLMFixer(this));
|
|
110
|
+
logger.info('AutoFixerRegistry initialized', {
|
|
111
|
+
fixers: Array.from(this.fixers.keys()),
|
|
112
|
+
config: this.config,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Register a fixer with the registry
|
|
117
|
+
* @param fixer - The fixer to register
|
|
118
|
+
*/
|
|
119
|
+
registerFixer(fixer) {
|
|
120
|
+
this.fixers.set(fixer.name, fixer);
|
|
121
|
+
// Populate code→fixer lookup cache and invalidate array cache
|
|
122
|
+
this.cachedFixerArray = null;
|
|
123
|
+
for (const code of fixer.supportedCodes) {
|
|
124
|
+
const existing = this.fixersByCode.get(code);
|
|
125
|
+
if (existing) {
|
|
126
|
+
existing.push(fixer);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
this.fixersByCode.set(code, [fixer]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
logger.debug('Fixer registered', {
|
|
133
|
+
name: fixer.name,
|
|
134
|
+
supportedCodes: fixer.supportedCodes,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get a fixer by name
|
|
139
|
+
* @param name - Fixer name
|
|
140
|
+
* @returns The fixer or undefined
|
|
141
|
+
*/
|
|
142
|
+
getFixer(name) {
|
|
143
|
+
return this.fixers.get(name);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get all registered fixers (cached array)
|
|
147
|
+
* @returns Array of all fixers
|
|
148
|
+
*/
|
|
149
|
+
getAllFixers() {
|
|
150
|
+
if (!this.cachedFixerArray) {
|
|
151
|
+
this.cachedFixerArray = Array.from(this.fixers.values());
|
|
152
|
+
}
|
|
153
|
+
return this.cachedFixerArray;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get fixers that declare support for a specific problem code.
|
|
157
|
+
* Used by LLMFixer to quickly check if a static fixer exists.
|
|
158
|
+
* @param code - Problem code (e.g., 'L5_MISSING_REQUIRED_PARAMETER')
|
|
159
|
+
* @returns Array of candidate fixers, or undefined if none
|
|
160
|
+
*/
|
|
161
|
+
getFixersForCode(code) {
|
|
162
|
+
return this.fixersByCode.get(code);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Find a fixer that can handle a specific problem
|
|
166
|
+
* @param problem - The validation problem
|
|
167
|
+
* @returns The first fixer that can handle it, or undefined
|
|
168
|
+
*/
|
|
169
|
+
findFixerForProblem(problem) {
|
|
170
|
+
// Fast path: look up candidate fixers by problem code (O(1) map lookup)
|
|
171
|
+
const candidates = this.fixersByCode.get(problem.code);
|
|
172
|
+
if (candidates) {
|
|
173
|
+
for (const fixer of candidates) {
|
|
174
|
+
if (fixer.canFix(problem)) {
|
|
175
|
+
return fixer;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Fallback: check all fixers for those with dynamic canFix() logic
|
|
180
|
+
// (e.g., LLMFixer accepts any code not handled by static fixers)
|
|
181
|
+
for (const fixer of this.fixers.values()) {
|
|
182
|
+
if (fixer.canFix(problem)) {
|
|
183
|
+
return fixer;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Apply a single fix to a workflow
|
|
190
|
+
*
|
|
191
|
+
* @param workflow - The workflow to fix
|
|
192
|
+
* @param problem - The problem to fix
|
|
193
|
+
* @returns Fix result
|
|
194
|
+
*/
|
|
195
|
+
async applyFix(workflow, problem) {
|
|
196
|
+
const fixer = this.findFixerForProblem(problem);
|
|
197
|
+
if (!fixer) {
|
|
198
|
+
return {
|
|
199
|
+
success: false,
|
|
200
|
+
changes: [],
|
|
201
|
+
reason: `No fixer found for problem code: ${problem.code}`,
|
|
202
|
+
confidence: 0,
|
|
203
|
+
fixer_name: 'none',
|
|
204
|
+
problem_code: problem.code,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// Apply the fix
|
|
208
|
+
const result = fixer.fix(workflow, problem);
|
|
209
|
+
// Check confidence threshold
|
|
210
|
+
if (result.success && result.confidence < this.config.confidenceThreshold) {
|
|
211
|
+
logger.info('Fix confidence below threshold, skipping', {
|
|
212
|
+
fixer: fixer.name,
|
|
213
|
+
confidence: result.confidence,
|
|
214
|
+
threshold: this.config.confidenceThreshold,
|
|
215
|
+
});
|
|
216
|
+
return {
|
|
217
|
+
...result,
|
|
218
|
+
success: false,
|
|
219
|
+
reason: `Confidence ${result.confidence.toFixed(2)} below threshold ${this.config.confidenceThreshold}`,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// Record the fix if enabled
|
|
223
|
+
if (this.config.recordFixes) {
|
|
224
|
+
await this.recordFix(workflow, result);
|
|
225
|
+
}
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Apply all applicable fixes to a workflow in a single pass
|
|
230
|
+
*
|
|
231
|
+
* @param workflow - The workflow to fix
|
|
232
|
+
* @param problems - List of validation problems
|
|
233
|
+
* @returns Pass result with fixed workflow and statistics
|
|
234
|
+
*/
|
|
235
|
+
async applyFixes(workflow, problems) {
|
|
236
|
+
let currentWorkflow = workflow;
|
|
237
|
+
const results = [];
|
|
238
|
+
const remainingProblems = [];
|
|
239
|
+
let applied = 0;
|
|
240
|
+
let skipped = 0;
|
|
241
|
+
let failed = 0;
|
|
242
|
+
// Pre-serialize original workflow once for recordFix (avoids N redundant JSON.stringify)
|
|
243
|
+
const originalWorkflowJson = this.config.recordFixes ? JSON.stringify(workflow) : null;
|
|
244
|
+
// Sort problems by level (L1 first) for consistent ordering
|
|
245
|
+
const sortedProblems = [...problems].sort((a, b) => {
|
|
246
|
+
const levelOrder = {
|
|
247
|
+
L1: 1,
|
|
248
|
+
L2: 2,
|
|
249
|
+
L3: 3,
|
|
250
|
+
L4: 4,
|
|
251
|
+
L5: 5,
|
|
252
|
+
L6: 6,
|
|
253
|
+
};
|
|
254
|
+
return (levelOrder[a.level] || 99) - (levelOrder[b.level] || 99);
|
|
255
|
+
});
|
|
256
|
+
for (const problem of sortedProblems) {
|
|
257
|
+
// Stop if we've hit the max fixes per pass
|
|
258
|
+
if (applied >= this.config.maxFixesPerPass) {
|
|
259
|
+
remainingProblems.push(problem);
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
const fixer = this.findFixerForProblem(problem);
|
|
263
|
+
if (!fixer) {
|
|
264
|
+
remainingProblems.push(problem);
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
// Apply the fix with error handling
|
|
268
|
+
let result;
|
|
269
|
+
try {
|
|
270
|
+
result = fixer.fix(currentWorkflow, problem);
|
|
271
|
+
}
|
|
272
|
+
catch (fixError) {
|
|
273
|
+
// Log the error and continue with other problems
|
|
274
|
+
// Convert to Error if needed - logger.error expects (message, error, context)
|
|
275
|
+
const errToLog = fixError instanceof Error
|
|
276
|
+
? fixError
|
|
277
|
+
: new Error(String(fixError));
|
|
278
|
+
logger.error('Fixer threw an exception', errToLog, {
|
|
279
|
+
fixer: fixer.name,
|
|
280
|
+
problem_code: problem.code,
|
|
281
|
+
});
|
|
282
|
+
failed++;
|
|
283
|
+
remainingProblems.push(problem);
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
results.push(result);
|
|
287
|
+
if (result.success) {
|
|
288
|
+
// Check confidence threshold
|
|
289
|
+
if (result.confidence >= this.config.confidenceThreshold) {
|
|
290
|
+
// Validate fixedWorkflow exists before using it
|
|
291
|
+
if (!result.fixedWorkflow) {
|
|
292
|
+
// Use undefined for error arg when there's no actual error, just context
|
|
293
|
+
logger.error('Fixer returned success but no fixedWorkflow', undefined, {
|
|
294
|
+
fixer: fixer.name,
|
|
295
|
+
problem_code: problem.code,
|
|
296
|
+
});
|
|
297
|
+
failed++;
|
|
298
|
+
remainingProblems.push(problem);
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
currentWorkflow = result.fixedWorkflow;
|
|
302
|
+
applied++;
|
|
303
|
+
// Record fix
|
|
304
|
+
if (this.config.recordFixes) {
|
|
305
|
+
await this.recordFixOptimized(originalWorkflowJson, workflow, result);
|
|
306
|
+
}
|
|
307
|
+
logger.debug('Fix applied', {
|
|
308
|
+
fixer: fixer.name,
|
|
309
|
+
problem_code: problem.code,
|
|
310
|
+
confidence: result.confidence,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
skipped++;
|
|
315
|
+
remainingProblems.push(problem);
|
|
316
|
+
logger.debug('Fix skipped (low confidence)', {
|
|
317
|
+
fixer: fixer.name,
|
|
318
|
+
problem_code: problem.code,
|
|
319
|
+
confidence: result.confidence,
|
|
320
|
+
threshold: this.config.confidenceThreshold,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
failed++;
|
|
326
|
+
remainingProblems.push(problem);
|
|
327
|
+
logger.debug('Fix failed', {
|
|
328
|
+
fixer: fixer.name,
|
|
329
|
+
problem_code: problem.code,
|
|
330
|
+
reason: result.reason,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return {
|
|
335
|
+
success: applied > 0,
|
|
336
|
+
workflow: currentWorkflow,
|
|
337
|
+
results,
|
|
338
|
+
attempted: results.length,
|
|
339
|
+
applied,
|
|
340
|
+
skipped,
|
|
341
|
+
failed,
|
|
342
|
+
remainingProblems,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Record a fix to the factory.fix_history table and sync validation_problems
|
|
347
|
+
* RAG-2.2.93.15: Also updates validation_problems.solution_result to 'APPLIED'
|
|
348
|
+
*/
|
|
349
|
+
async recordFix(originalWorkflow, result) {
|
|
350
|
+
const originalJson = result.success ? JSON.stringify(originalWorkflow) : '';
|
|
351
|
+
await this.recordFixOptimized(originalJson, originalWorkflow, result);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Optimized recordFix that accepts pre-serialized original workflow JSON.
|
|
355
|
+
* Avoids redundant JSON.stringify when called in a loop (applyFixes).
|
|
356
|
+
*/
|
|
357
|
+
async recordFixOptimized(originalWorkflowJson, originalWorkflow, result) {
|
|
358
|
+
try {
|
|
359
|
+
const workflowId = this.extractValidWorkflowId(originalWorkflow);
|
|
360
|
+
if (!workflowId)
|
|
361
|
+
return;
|
|
362
|
+
await this.insertFixHistory(workflowId, originalWorkflowJson, result);
|
|
363
|
+
if (result.success)
|
|
364
|
+
await this.syncSolutionResult(workflowId, result);
|
|
365
|
+
logger.debug('Fix recorded to database', { workflow_id: workflowId, fixer: result.fixer_name, success: result.success });
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
const errToLog = error instanceof Error ? error : new Error(String(error));
|
|
369
|
+
logger.error('Failed to record fix to database', errToLog, { fixer: result.fixer_name, problem_code: result.problem_code });
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
extractValidWorkflowId(workflow) {
|
|
373
|
+
const workflowId = workflow.id;
|
|
374
|
+
if (!workflowId || typeof workflowId !== 'string') {
|
|
375
|
+
logger.warn('Cannot record fix: workflow has no valid ID');
|
|
376
|
+
return null;
|
|
377
|
+
}
|
|
378
|
+
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
379
|
+
if (!uuidRegex.test(workflowId)) {
|
|
380
|
+
logger.warn('Cannot record fix: workflow ID is not a valid UUID', { workflowId });
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
return workflowId;
|
|
384
|
+
}
|
|
385
|
+
buildFixHistoryParams(workflowId, originalWorkflowJson, result) {
|
|
386
|
+
return [
|
|
387
|
+
workflowId,
|
|
388
|
+
result.problem_code,
|
|
389
|
+
result.fixer_name,
|
|
390
|
+
result.success,
|
|
391
|
+
result.success ? originalWorkflowJson : null,
|
|
392
|
+
result.success && result.fixedWorkflow ? JSON.stringify(result.fixedWorkflow) : null,
|
|
393
|
+
result.success
|
|
394
|
+
? result.changes.map((c) => c.description).join('; ')
|
|
395
|
+
: result.reason || 'Fix failed',
|
|
396
|
+
JSON.stringify({ confidence: result.confidence, changes: result.changes, reason: result.reason }),
|
|
397
|
+
];
|
|
398
|
+
}
|
|
399
|
+
static FIX_HISTORY_SQL = `INSERT INTO factory.fix_history (
|
|
400
|
+
workflow_id, fix_type, fix_method, fix_successful,
|
|
401
|
+
before_value, after_value, reasoning, applied_at, new_error_details
|
|
402
|
+
) VALUES ($1::uuid, $2, $3, $4, $5::jsonb, $6::jsonb, $7, NOW(), $8::jsonb)`;
|
|
403
|
+
async insertFixHistory(workflowId, originalWorkflowJson, result) {
|
|
404
|
+
const params = this.buildFixHistoryParams(workflowId, originalWorkflowJson, result);
|
|
405
|
+
await retryDbQuery(() => validatorQuery(AutoFixerRegistry.FIX_HISTORY_SQL, params), 3, `record_fix_${result.fixer_name}`);
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Sync validation_problems.solution_result to 'APPLIED' after a successful fix
|
|
409
|
+
* RAG-2.2.93.15: Ensures fix_history and validation_problems stay in sync
|
|
410
|
+
*/
|
|
411
|
+
async syncSolutionResult(workflowId, result) {
|
|
412
|
+
try {
|
|
413
|
+
const solutionApplied = result.changes.map((c) => c.description).join('; ');
|
|
414
|
+
const updateResult = await retryDbQuery(() => validatorQuery(`UPDATE factory.validation_problems
|
|
415
|
+
SET solution_result = 'APPLIED',
|
|
416
|
+
solution_applied = $1,
|
|
417
|
+
solution_type = 'autofix',
|
|
418
|
+
solved_at = NOW()
|
|
419
|
+
WHERE workflow_id = $2::uuid
|
|
420
|
+
AND problem_code = $3
|
|
421
|
+
AND solution_result = 'PENDING'`, [solutionApplied, workflowId, result.problem_code]), 3, `sync_solution_${result.fixer_name}`);
|
|
422
|
+
if (updateResult.rowCount && updateResult.rowCount > 0) {
|
|
423
|
+
logger.debug('Synced validation_problems solution_result', {
|
|
424
|
+
workflow_id: workflowId,
|
|
425
|
+
problem_code: result.problem_code,
|
|
426
|
+
rows_updated: updateResult.rowCount,
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
catch (error) {
|
|
431
|
+
// Log but don't fail - fix_history is the source of truth
|
|
432
|
+
const errToLog = error instanceof Error ? error : new Error(String(error));
|
|
433
|
+
logger.warn('Failed to sync validation_problems solution_result', errToLog, {
|
|
434
|
+
workflow_id: workflowId,
|
|
435
|
+
problem_code: result.problem_code,
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Get statistics on registered fixers
|
|
441
|
+
*/
|
|
442
|
+
getStats() {
|
|
443
|
+
const fixersByCode = {};
|
|
444
|
+
for (const [code, fixers] of this.fixersByCode.entries()) {
|
|
445
|
+
fixersByCode[code] = fixers.map(f => f.name);
|
|
446
|
+
}
|
|
447
|
+
return {
|
|
448
|
+
totalFixers: this.fixers.size,
|
|
449
|
+
fixersByCode,
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Update configuration
|
|
454
|
+
*/
|
|
455
|
+
updateConfig(updates) {
|
|
456
|
+
Object.assign(this.config, updates);
|
|
457
|
+
logger.info('FixerRegistry config updated', updates);
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Get current configuration
|
|
461
|
+
*/
|
|
462
|
+
getConfig() {
|
|
463
|
+
return { ...this.config };
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
// Export singleton instance
|
|
467
|
+
export const fixerRegistry = new AutoFixerRegistry();
|
|
468
|
+
// Re-export individual fixers for direct access
|
|
469
|
+
export { typoFixer, deprecatedNodeFixer, deprecatedNodeHandler, missingCredentialFixer };
|
|
470
|
+
export { TypoFixer, DeprecatedNodeFixer, DeprecatedNodeHandler, MissingCredentialFixer };
|
|
471
|
+
// Re-export L1 structure fixers (RAG-2.2.93.4, RAG-2.2.106.3)
|
|
472
|
+
export { l1OrphanConnectionFixer, l1MissingConnectionsFixer, l1MissingFieldFixer, l1PositionFixer, l1DuplicateNodeNameFixer, };
|
|
473
|
+
export { L1OrphanConnectionFixer, L1MissingConnectionsFixer, L1MissingFieldFixer, L1PositionFixer, L1DuplicateNodeNameFixer, };
|
|
474
|
+
// Re-export L4 connection fixers (RAG-2.2.93.7)
|
|
475
|
+
export { l4CircularConnectionFixer, l4InvalidPatternFixer, l4MissingInputConnectionFixer, };
|
|
476
|
+
export { L4CircularConnectionFixer, L4InvalidPatternFixer, L4MissingInputConnectionFixer, };
|
|
477
|
+
// Re-export L5 parameter fixers (RAG-2.2.93.8)
|
|
478
|
+
export { l5MissingParameterFixer, l5InvalidParameterFixer, l5UnknownParameterFixer, };
|
|
479
|
+
export { L5MissingParameterFixer, L5InvalidParameterFixer, L5UnknownParameterFixer, };
|
|
480
|
+
// Re-export L5 webhook path fixer (RAG-4.7.2)
|
|
481
|
+
export { l5WebhookPathFixer };
|
|
482
|
+
export { L5WebhookPathFixer };
|
|
483
|
+
// Re-export L5 typeVersion fixer (RAG-4.7.1)
|
|
484
|
+
export { l5TypeVersionFixer };
|
|
485
|
+
export { L5TypeVersionFixer };
|
|
486
|
+
// Re-export L6 pattern fixers (RAG-2.2.93.9)
|
|
487
|
+
// RAG-2.2.108.3: Export V2 fixers and configuration constants
|
|
488
|
+
export { l6RetryFixer, l6ErrorOutputFixer, l6DeadEndFixerV2, l6ExpressionFixer, l6TriggerFixer, l6HardcodedUrlHandler, l6UnreachableNodeFixerV2, l6PatternFixers, DEAD_END_FIXER_CONFIG, UNREACHABLE_FIXER_CONFIG, };
|
|
489
|
+
export { L6RetryFixer, L6ErrorOutputFixer, L6DeadEndFixerV2, L6ExpressionFixer, L6TriggerFixer, L6HardcodedUrlHandler, L6UnreachableNodeFixerV2, };
|
|
490
|
+
// Re-export L6 AI Tool Variant fixer (RAG-4.7.3)
|
|
491
|
+
export { l6AIToolVariantFixer };
|
|
492
|
+
export { L6AIToolVariantFixer };
|
|
493
|
+
// Re-export LLM fixer (RAG-9.4.3v2)
|
|
494
|
+
export { LLMFixer, createLLMFixer };
|
|
495
|
+
//# sourceMappingURL=fixer-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixer-registry.js","sourceRoot":"","sources":["../../../src/autofix/suggestion-fixers/fixer-registry.ts"],"names":[],"mappings":"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"}
|