UNPKG

claude-flow

Version:

Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration

157 lines 5.01 kB
/** * Coverage Router MCP Tools * * MCP tool implementations for coverage-aware routing. * Integrates with hooks_coverage_route and hooks_coverage_suggest from ruvector. */ import { coverageRoute, coverageSuggest, coverageGaps, } from './coverage-router.js'; /** * Coverage-aware routing MCP tool * * Routes tasks to optimal agents based on test coverage gaps. * Uses ruvector's hooks_coverage_route when available. */ export const hooksCoverageRoute = { name: 'hooks/coverage-route', description: 'Route task to agents based on test coverage gaps (ruvector integration)', category: 'coverage', tags: ['coverage', 'routing', 'testing', 'ruvector'], inputSchema: { type: 'object', properties: { task: { type: 'string', description: 'Task description to route', }, projectRoot: { type: 'string', description: 'Project root directory (defaults to cwd)', }, threshold: { type: 'number', description: 'Coverage threshold percentage (default: 80)', }, useRuvector: { type: 'boolean', description: 'Use ruvector integration if available (default: true)', }, }, required: ['task'], }, handler: async (params) => { const task = params.task; const projectRoot = params.projectRoot; const threshold = params.threshold; const useRuvector = params.useRuvector; return coverageRoute(task, { projectRoot, threshold, useRuvector, }); }, }; /** * Coverage suggestions MCP tool * * Suggests which files need better coverage in a given path. * Uses ruvector's hooks_coverage_suggest when available. */ export const hooksCoverageSuggest = { name: 'hooks/coverage-suggest', description: 'Suggest coverage improvements for a path (ruvector integration)', category: 'coverage', tags: ['coverage', 'suggestions', 'testing', 'ruvector'], inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to analyze for coverage suggestions', }, projectRoot: { type: 'string', description: 'Project root directory (defaults to cwd)', }, threshold: { type: 'number', description: 'Coverage threshold percentage (default: 80)', }, limit: { type: 'number', description: 'Maximum number of suggestions to return (default: 20)', }, useRuvector: { type: 'boolean', description: 'Use ruvector integration if available (default: true)', }, }, required: ['path'], }, handler: async (params) => { const path = params.path; const projectRoot = params.projectRoot; const threshold = params.threshold; const limit = params.limit; const useRuvector = params.useRuvector; return coverageSuggest(path, { projectRoot, threshold, limit, useRuvector, }); }, }; /** * Coverage gaps MCP tool * * Lists all coverage gaps in the project with agent assignments. */ export const hooksCoverageGaps = { name: 'hooks/coverage-gaps', description: 'List all coverage gaps with priority scoring and agent assignments', category: 'coverage', tags: ['coverage', 'gaps', 'testing', 'analysis'], inputSchema: { type: 'object', properties: { projectRoot: { type: 'string', description: 'Project root directory (defaults to cwd)', }, threshold: { type: 'number', description: 'Coverage threshold percentage (default: 80)', }, groupByAgent: { type: 'boolean', description: 'Group gaps by suggested agent (default: true)', }, useRuvector: { type: 'boolean', description: 'Use ruvector integration if available (default: true)', }, }, }, handler: async (params) => { const projectRoot = params.projectRoot; const threshold = params.threshold; const groupByAgent = params.groupByAgent; const useRuvector = params.useRuvector; return coverageGaps({ projectRoot, threshold, groupByAgent, useRuvector, }); }, }; /** * All coverage router MCP tools */ export const coverageRouterTools = [ hooksCoverageRoute, hooksCoverageSuggest, hooksCoverageGaps, ]; export default coverageRouterTools; //# sourceMappingURL=coverage-tools.js.map