@claude-flow/cli 3.0.0-alpha.2 → 3.0.0-alpha.20
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/README.md +172 -6
- package/bin/cli.js +0 -0
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +43 -27
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze.d.ts +19 -0
- package/dist/src/commands/analyze.d.ts.map +1 -0
- package/dist/src/commands/analyze.js +1823 -0
- package/dist/src/commands/analyze.js.map +1 -0
- package/dist/src/commands/claims.d.ts +10 -0
- package/dist/src/commands/claims.d.ts.map +1 -0
- package/dist/src/commands/claims.js +288 -0
- package/dist/src/commands/claims.js.map +1 -0
- package/dist/src/commands/completions.d.ts +10 -0
- package/dist/src/commands/completions.d.ts.map +1 -0
- package/dist/src/commands/completions.js +539 -0
- package/dist/src/commands/completions.js.map +1 -0
- package/dist/src/commands/config.js +2 -2
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.d.ts +8 -0
- package/dist/src/commands/daemon.d.ts.map +1 -0
- package/dist/src/commands/daemon.js +545 -0
- package/dist/src/commands/daemon.js.map +1 -0
- package/dist/src/commands/deployment.d.ts +10 -0
- package/dist/src/commands/deployment.d.ts.map +1 -0
- package/dist/src/commands/deployment.js +289 -0
- package/dist/src/commands/deployment.js.map +1 -0
- package/dist/src/commands/doctor.d.ts +10 -0
- package/dist/src/commands/doctor.d.ts.map +1 -0
- package/dist/src/commands/doctor.js +429 -0
- package/dist/src/commands/doctor.js.map +1 -0
- package/dist/src/commands/embeddings.d.ts +18 -0
- package/dist/src/commands/embeddings.d.ts.map +1 -0
- package/dist/src/commands/embeddings.js +616 -0
- package/dist/src/commands/embeddings.js.map +1 -0
- package/dist/src/commands/hive-mind.d.ts.map +1 -1
- package/dist/src/commands/hive-mind.js +252 -35
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +326 -2
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +13 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +52 -1
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/mcp.js +4 -4
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +236 -170
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/migrate.js +1 -1
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/neural.d.ts +10 -0
- package/dist/src/commands/neural.d.ts.map +1 -0
- package/dist/src/commands/neural.js +224 -0
- package/dist/src/commands/neural.js.map +1 -0
- package/dist/src/commands/performance.d.ts +10 -0
- package/dist/src/commands/performance.d.ts.map +1 -0
- package/dist/src/commands/performance.js +262 -0
- package/dist/src/commands/performance.js.map +1 -0
- package/dist/src/commands/plugins.d.ts +10 -0
- package/dist/src/commands/plugins.d.ts.map +1 -0
- package/dist/src/commands/plugins.js +280 -0
- package/dist/src/commands/plugins.js.map +1 -0
- package/dist/src/commands/process.d.ts.map +1 -1
- package/dist/src/commands/process.js +95 -20
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/providers.d.ts +10 -0
- package/dist/src/commands/providers.d.ts.map +1 -0
- package/dist/src/commands/providers.js +232 -0
- package/dist/src/commands/providers.js.map +1 -0
- package/dist/src/commands/route.d.ts +16 -0
- package/dist/src/commands/route.d.ts.map +1 -0
- package/dist/src/commands/route.js +603 -0
- package/dist/src/commands/route.js.map +1 -0
- package/dist/src/commands/security.d.ts +10 -0
- package/dist/src/commands/security.d.ts.map +1 -0
- package/dist/src/commands/security.js +261 -0
- package/dist/src/commands/security.js.map +1 -0
- package/dist/src/commands/start.js +2 -2
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +26 -2
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/swarm.js +6 -6
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +63 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +218 -362
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +5 -0
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +22 -12
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +17 -1
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +5 -0
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +350 -14
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/analyze-tools.js +317 -0
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
- package/dist/src/mcp-tools/config-tools.d.ts +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +262 -15
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/hive-mind-tools.js +447 -0
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +80 -15
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +6 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +6 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +157 -9
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts +8 -0
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/session-tools.js +315 -0
- package/dist/src/mcp-tools/session-tools.js.map +1 -0
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +37 -2
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts +8 -0
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/task-tools.js +302 -0
- package/dist/src/mcp-tools/task-tools.js.map +1 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/workflow-tools.js +481 -0
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -0
- package/dist/src/output.d.ts +16 -0
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +42 -0
- package/dist/src/output.js.map +1 -1
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/ast-analyzer.js +277 -0
- package/dist/src/ruvector/ast-analyzer.js.map +1 -0
- package/dist/src/ruvector/coverage-router.d.ts +145 -0
- package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-router.js +451 -0
- package/dist/src/ruvector/coverage-router.js.map +1 -0
- package/dist/src/ruvector/coverage-tools.d.ts +33 -0
- package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-tools.js +157 -0
- package/dist/src/ruvector/coverage-tools.js.map +1 -0
- package/dist/src/ruvector/diff-classifier.d.ts +154 -0
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
- package/dist/src/ruvector/diff-classifier.js +508 -0
- package/dist/src/ruvector/diff-classifier.js.map +1 -0
- package/dist/src/ruvector/graph-analyzer.d.ts +174 -0
- package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/graph-analyzer.js +878 -0
- package/dist/src/ruvector/graph-analyzer.js.map +1 -0
- package/dist/src/ruvector/index.d.ts +27 -0
- package/dist/src/ruvector/index.d.ts.map +1 -0
- package/dist/src/ruvector/index.js +47 -0
- package/dist/src/ruvector/index.js.map +1 -0
- package/dist/src/ruvector/q-learning-router.d.ts +211 -0
- package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
- package/dist/src/ruvector/q-learning-router.js +681 -0
- package/dist/src/ruvector/q-learning-router.js.map +1 -0
- package/dist/src/ruvector/vector-db.d.ts +69 -0
- package/dist/src/ruvector/vector-db.d.ts.map +1 -0
- package/dist/src/ruvector/vector-db.js +243 -0
- package/dist/src/ruvector/vector-db.js.map +1 -0
- package/dist/src/services/index.d.ts +7 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +6 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/worker-daemon.d.ts +153 -0
- package/dist/src/services/worker-daemon.d.ts.map +1 -0
- package/dist/src/services/worker-daemon.js +567 -0
- package/dist/src/services/worker-daemon.js.map +1 -0
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.d.ts.map +1 -0
- package/dist/src/suggest.js +200 -0
- package/dist/src/suggest.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +28 -6
- package/.agentic-flow/intelligence.json +0 -16
- package/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude-flow/metrics/performance.json +0 -87
- package/.claude-flow/metrics/task-metrics.json +0 -10
- package/__tests__/README.md +0 -140
- package/__tests__/TEST_SUMMARY.md +0 -144
- package/__tests__/cli.test.ts +0 -558
- package/__tests__/commands.test.ts +0 -726
- package/__tests__/config-adapter.test.ts +0 -362
- package/__tests__/config-loading.test.ts +0 -106
- package/__tests__/coverage/.tmp/coverage-0.json +0 -1
- package/__tests__/coverage/.tmp/coverage-1.json +0 -1
- package/__tests__/coverage/.tmp/coverage-2.json +0 -1
- package/__tests__/coverage/.tmp/coverage-3.json +0 -1
- package/__tests__/coverage/.tmp/coverage-4.json +0 -1
- package/__tests__/coverage/.tmp/coverage-5.json +0 -1
- package/__tests__/mcp-client.test.ts +0 -480
- package/__tests__/p1-commands.test.ts +0 -1064
- package/docs/CONFIG_LOADING.md +0 -236
- package/docs/IMPLEMENTATION_COMPLETE.md +0 -421
- package/docs/MCP_CLIENT_GUIDE.md +0 -620
- package/docs/REFACTORING_SUMMARY.md +0 -247
- package/src/commands/agent.ts +0 -941
- package/src/commands/config.ts +0 -452
- package/src/commands/hive-mind.ts +0 -762
- package/src/commands/hooks.ts +0 -2603
- package/src/commands/index.ts +0 -115
- package/src/commands/init.ts +0 -597
- package/src/commands/mcp.ts +0 -753
- package/src/commands/memory.ts +0 -1063
- package/src/commands/migrate.ts +0 -447
- package/src/commands/process.ts +0 -617
- package/src/commands/session.ts +0 -891
- package/src/commands/start.ts +0 -457
- package/src/commands/status.ts +0 -705
- package/src/commands/swarm.ts +0 -648
- package/src/commands/task.ts +0 -792
- package/src/commands/workflow.ts +0 -742
- package/src/config-adapter.ts +0 -210
- package/src/index.ts +0 -383
- package/src/infrastructure/in-memory-repositories.ts +0 -310
- package/src/init/claudemd-generator.ts +0 -631
- package/src/init/executor.ts +0 -756
- package/src/init/helpers-generator.ts +0 -628
- package/src/init/index.ts +0 -60
- package/src/init/mcp-generator.ts +0 -83
- package/src/init/settings-generator.ts +0 -274
- package/src/init/statusline-generator.ts +0 -211
- package/src/init/types.ts +0 -447
- package/src/mcp-client.ts +0 -227
- package/src/mcp-server.ts +0 -571
- package/src/mcp-tools/agent-tools.ts +0 -92
- package/src/mcp-tools/config-tools.ts +0 -88
- package/src/mcp-tools/hooks-tools.ts +0 -1819
- package/src/mcp-tools/index.ts +0 -12
- package/src/mcp-tools/memory-tools.ts +0 -89
- package/src/mcp-tools/swarm-tools.ts +0 -69
- package/src/mcp-tools/types.ts +0 -33
- package/src/output.ts +0 -593
- package/src/parser.ts +0 -417
- package/src/prompt.ts +0 -619
- package/src/types.ts +0 -287
- package/tmp.json +0 -0
- package/tsconfig.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
- package/vitest.config.ts +0 -13
|
@@ -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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"}
|