@claude-flow/cli 3.0.0-alpha.15 → 3.0.0-alpha.16

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.
Files changed (63) hide show
  1. package/dist/src/commands/analyze.d.ts +19 -0
  2. package/dist/src/commands/analyze.d.ts.map +1 -0
  3. package/dist/src/commands/analyze.js +1819 -0
  4. package/dist/src/commands/analyze.js.map +1 -0
  5. package/dist/src/commands/hooks.d.ts.map +1 -1
  6. package/dist/src/commands/hooks.js +325 -1
  7. package/dist/src/commands/hooks.js.map +1 -1
  8. package/dist/src/commands/index.d.ts +2 -0
  9. package/dist/src/commands/index.d.ts.map +1 -1
  10. package/dist/src/commands/index.js +12 -0
  11. package/dist/src/commands/index.js.map +1 -1
  12. package/dist/src/commands/route.d.ts +16 -0
  13. package/dist/src/commands/route.d.ts.map +1 -0
  14. package/dist/src/commands/route.js +597 -0
  15. package/dist/src/commands/route.js.map +1 -0
  16. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  17. package/dist/src/init/claudemd-generator.js +218 -362
  18. package/dist/src/init/claudemd-generator.js.map +1 -1
  19. package/dist/src/mcp-client.d.ts.map +1 -1
  20. package/dist/src/mcp-client.js +2 -0
  21. package/dist/src/mcp-client.js.map +1 -1
  22. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  23. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
  24. package/dist/src/mcp-tools/analyze-tools.js +317 -0
  25. package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
  26. package/dist/src/mcp-tools/index.d.ts +2 -0
  27. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  28. package/dist/src/mcp-tools/index.js +2 -0
  29. package/dist/src/mcp-tools/index.js.map +1 -1
  30. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  31. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  32. package/dist/src/ruvector/ast-analyzer.js +277 -0
  33. package/dist/src/ruvector/ast-analyzer.js.map +1 -0
  34. package/dist/src/ruvector/coverage-router.d.ts +145 -0
  35. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  36. package/dist/src/ruvector/coverage-router.js +451 -0
  37. package/dist/src/ruvector/coverage-router.js.map +1 -0
  38. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  39. package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
  40. package/dist/src/ruvector/coverage-tools.js +157 -0
  41. package/dist/src/ruvector/coverage-tools.js.map +1 -0
  42. package/dist/src/ruvector/diff-classifier.d.ts +154 -0
  43. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  44. package/dist/src/ruvector/diff-classifier.js +508 -0
  45. package/dist/src/ruvector/diff-classifier.js.map +1 -0
  46. package/dist/src/ruvector/graph-analyzer.d.ts +174 -0
  47. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  48. package/dist/src/ruvector/graph-analyzer.js +878 -0
  49. package/dist/src/ruvector/graph-analyzer.js.map +1 -0
  50. package/dist/src/ruvector/index.d.ts +27 -0
  51. package/dist/src/ruvector/index.d.ts.map +1 -0
  52. package/dist/src/ruvector/index.js +47 -0
  53. package/dist/src/ruvector/index.js.map +1 -0
  54. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  55. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  56. package/dist/src/ruvector/q-learning-router.js +681 -0
  57. package/dist/src/ruvector/q-learning-router.js.map +1 -0
  58. package/dist/src/ruvector/vector-db.d.ts +69 -0
  59. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  60. package/dist/src/ruvector/vector-db.js +243 -0
  61. package/dist/src/ruvector/vector-db.js.map +1 -0
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +13 -1
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Coverage Router MCP Tools
3
+ *
4
+ * MCP tool implementations for coverage-aware routing.
5
+ * Integrates with hooks_coverage_route and hooks_coverage_suggest from ruvector.
6
+ */
7
+ import { coverageRoute, coverageSuggest, coverageGaps, } from './coverage-router.js';
8
+ /**
9
+ * Coverage-aware routing MCP tool
10
+ *
11
+ * Routes tasks to optimal agents based on test coverage gaps.
12
+ * Uses ruvector's hooks_coverage_route when available.
13
+ */
14
+ export const hooksCoverageRoute = {
15
+ name: 'hooks/coverage-route',
16
+ description: 'Route task to agents based on test coverage gaps (ruvector integration)',
17
+ category: 'coverage',
18
+ tags: ['coverage', 'routing', 'testing', 'ruvector'],
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ task: {
23
+ type: 'string',
24
+ description: 'Task description to route',
25
+ },
26
+ projectRoot: {
27
+ type: 'string',
28
+ description: 'Project root directory (defaults to cwd)',
29
+ },
30
+ threshold: {
31
+ type: 'number',
32
+ description: 'Coverage threshold percentage (default: 80)',
33
+ },
34
+ useRuvector: {
35
+ type: 'boolean',
36
+ description: 'Use ruvector integration if available (default: true)',
37
+ },
38
+ },
39
+ required: ['task'],
40
+ },
41
+ handler: async (params) => {
42
+ const task = params.task;
43
+ const projectRoot = params.projectRoot;
44
+ const threshold = params.threshold;
45
+ const useRuvector = params.useRuvector;
46
+ return coverageRoute(task, {
47
+ projectRoot,
48
+ threshold,
49
+ useRuvector,
50
+ });
51
+ },
52
+ };
53
+ /**
54
+ * Coverage suggestions MCP tool
55
+ *
56
+ * Suggests which files need better coverage in a given path.
57
+ * Uses ruvector's hooks_coverage_suggest when available.
58
+ */
59
+ export const hooksCoverageSuggest = {
60
+ name: 'hooks/coverage-suggest',
61
+ description: 'Suggest coverage improvements for a path (ruvector integration)',
62
+ category: 'coverage',
63
+ tags: ['coverage', 'suggestions', 'testing', 'ruvector'],
64
+ inputSchema: {
65
+ type: 'object',
66
+ properties: {
67
+ path: {
68
+ type: 'string',
69
+ description: 'Path to analyze for coverage suggestions',
70
+ },
71
+ projectRoot: {
72
+ type: 'string',
73
+ description: 'Project root directory (defaults to cwd)',
74
+ },
75
+ threshold: {
76
+ type: 'number',
77
+ description: 'Coverage threshold percentage (default: 80)',
78
+ },
79
+ limit: {
80
+ type: 'number',
81
+ description: 'Maximum number of suggestions to return (default: 20)',
82
+ },
83
+ useRuvector: {
84
+ type: 'boolean',
85
+ description: 'Use ruvector integration if available (default: true)',
86
+ },
87
+ },
88
+ required: ['path'],
89
+ },
90
+ handler: async (params) => {
91
+ const path = params.path;
92
+ const projectRoot = params.projectRoot;
93
+ const threshold = params.threshold;
94
+ const limit = params.limit;
95
+ const useRuvector = params.useRuvector;
96
+ return coverageSuggest(path, {
97
+ projectRoot,
98
+ threshold,
99
+ limit,
100
+ useRuvector,
101
+ });
102
+ },
103
+ };
104
+ /**
105
+ * Coverage gaps MCP tool
106
+ *
107
+ * Lists all coverage gaps in the project with agent assignments.
108
+ */
109
+ export const hooksCoverageGaps = {
110
+ name: 'hooks/coverage-gaps',
111
+ description: 'List all coverage gaps with priority scoring and agent assignments',
112
+ category: 'coverage',
113
+ tags: ['coverage', 'gaps', 'testing', 'analysis'],
114
+ inputSchema: {
115
+ type: 'object',
116
+ properties: {
117
+ projectRoot: {
118
+ type: 'string',
119
+ description: 'Project root directory (defaults to cwd)',
120
+ },
121
+ threshold: {
122
+ type: 'number',
123
+ description: 'Coverage threshold percentage (default: 80)',
124
+ },
125
+ groupByAgent: {
126
+ type: 'boolean',
127
+ description: 'Group gaps by suggested agent (default: true)',
128
+ },
129
+ useRuvector: {
130
+ type: 'boolean',
131
+ description: 'Use ruvector integration if available (default: true)',
132
+ },
133
+ },
134
+ },
135
+ handler: async (params) => {
136
+ const projectRoot = params.projectRoot;
137
+ const threshold = params.threshold;
138
+ const groupByAgent = params.groupByAgent;
139
+ const useRuvector = params.useRuvector;
140
+ return coverageGaps({
141
+ projectRoot,
142
+ threshold,
143
+ groupByAgent,
144
+ useRuvector,
145
+ });
146
+ },
147
+ };
148
+ /**
149
+ * All coverage router MCP tools
150
+ */
151
+ export const coverageRouterTools = [
152
+ hooksCoverageRoute,
153
+ hooksCoverageSuggest,
154
+ hooksCoverageGaps,
155
+ ];
156
+ export default coverageRouterTools;
157
+ //# sourceMappingURL=coverage-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-tools.js","sourceRoot":"","sources":["../../../src/ruvector/coverage-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Diff Classifier for Change Analysis
3
+ */
4
+ export interface DiffClassifierConfig {
5
+ maxDiffSize: number;
6
+ classifyByImpact: boolean;
7
+ detectRefactoring: boolean;
8
+ minConfidence: number;
9
+ }
10
+ export interface DiffHunk {
11
+ oldStart: number;
12
+ oldLines: number;
13
+ newStart: number;
14
+ newLines: number;
15
+ content: string;
16
+ changes: DiffChange[];
17
+ }
18
+ export interface DiffChange {
19
+ type: 'add' | 'remove' | 'context';
20
+ lineNumber: number;
21
+ content: string;
22
+ }
23
+ export interface DiffClassification {
24
+ primary: 'feature' | 'bugfix' | 'refactor' | 'docs' | 'test' | 'config' | 'style' | 'unknown';
25
+ secondary: string[];
26
+ confidence: number;
27
+ impactLevel: 'low' | 'medium' | 'high' | 'critical';
28
+ suggestedReviewers: string[];
29
+ testingStrategy: string[];
30
+ riskFactors: string[];
31
+ }
32
+ export interface FileDiff {
33
+ path: string;
34
+ hunks: DiffHunk[];
35
+ additions: number;
36
+ deletions: number;
37
+ classification: DiffClassification;
38
+ }
39
+ export interface DiffAnalysis {
40
+ files: FileDiff[];
41
+ overall: DiffClassification;
42
+ stats: {
43
+ totalAdditions: number;
44
+ totalDeletions: number;
45
+ filesChanged: number;
46
+ avgConfidence: number;
47
+ };
48
+ timestamp: number;
49
+ }
50
+ export declare class DiffClassifier {
51
+ private config;
52
+ private ruvectorEngine;
53
+ private useNative;
54
+ private classificationCache;
55
+ constructor(config?: Partial<DiffClassifierConfig>);
56
+ initialize(): Promise<void>;
57
+ parseDiff(diffContent: string): FileDiff[];
58
+ classify(files: FileDiff[]): DiffAnalysis;
59
+ classifyCommitMessage(message: string): DiffClassification['primary'];
60
+ getStats(): Record<string, number | boolean>;
61
+ clearCache(): void;
62
+ private parseHunks;
63
+ private parseChanges;
64
+ private classifyFile;
65
+ private getCacheKey;
66
+ private determinePrimaryClassification;
67
+ private isRefactoring;
68
+ private determineSecondaryClassifications;
69
+ private calculateConfidence;
70
+ private determineImpactLevel;
71
+ private suggestReviewers;
72
+ private determineTestingStrategy;
73
+ private identifyRiskFactors;
74
+ private computeOverallClassification;
75
+ }
76
+ export declare function createDiffClassifier(config?: Partial<DiffClassifierConfig>): DiffClassifier;
77
+ /**
78
+ * Risk level type for file risk assessment
79
+ */
80
+ export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
81
+ /**
82
+ * Diff file interface for analyze tools
83
+ */
84
+ export interface DiffFile {
85
+ path: string;
86
+ status: 'added' | 'modified' | 'deleted' | 'renamed';
87
+ additions: number;
88
+ deletions: number;
89
+ hunks: number;
90
+ binary: boolean;
91
+ }
92
+ /**
93
+ * File risk assessment result
94
+ */
95
+ export interface FileRisk {
96
+ file: string;
97
+ risk: RiskLevel;
98
+ score: number;
99
+ reasons: string[];
100
+ }
101
+ /**
102
+ * Overall risk assessment result
103
+ */
104
+ export interface OverallRisk {
105
+ overall: RiskLevel;
106
+ score: number;
107
+ breakdown: {
108
+ low: number;
109
+ medium: number;
110
+ high: number;
111
+ critical: number;
112
+ };
113
+ }
114
+ /**
115
+ * Diff analysis result
116
+ */
117
+ export interface DiffAnalysisResult {
118
+ ref: string;
119
+ timestamp: number;
120
+ files: DiffFile[];
121
+ risk: OverallRisk;
122
+ classification: DiffClassification;
123
+ summary: string;
124
+ fileRisks?: FileRisk[];
125
+ recommendedReviewers?: string[];
126
+ }
127
+ /**
128
+ * Get git diff statistics using numstat
129
+ */
130
+ export declare function getGitDiffNumstat(ref?: string): DiffFile[];
131
+ /**
132
+ * Assess risk for a single file
133
+ */
134
+ export declare function assessFileRisk(file: DiffFile): FileRisk;
135
+ /**
136
+ * Assess overall risk from files and file risks
137
+ */
138
+ export declare function assessOverallRisk(files: DiffFile[], fileRisks: FileRisk[]): OverallRisk;
139
+ /**
140
+ * Classify a diff based on files
141
+ */
142
+ export declare function classifyDiff(files: DiffFile[]): DiffClassification;
143
+ /**
144
+ * Suggest reviewers based on files and risks
145
+ */
146
+ export declare function suggestReviewers(files: DiffFile[], fileRisks: FileRisk[]): string[];
147
+ /**
148
+ * Analyze a diff with full analysis
149
+ */
150
+ export declare function analyzeDiff(options: {
151
+ ref?: string;
152
+ useRuVector?: boolean;
153
+ }): Promise<DiffAnalysisResult>;
154
+ //# sourceMappingURL=diff-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-classifier.d.ts","sourceRoot":"","sources":["../../../src/ruvector/diff-classifier.ts"],"names":[],"mappings":"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"}