@claude-flow/plugin-code-intelligence 3.0.0-alpha.1
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 +381 -0
- package/dist/bridges/gnn-bridge.d.ts +96 -0
- package/dist/bridges/gnn-bridge.d.ts.map +1 -0
- package/dist/bridges/gnn-bridge.js +527 -0
- package/dist/bridges/gnn-bridge.js.map +1 -0
- package/dist/bridges/index.d.ts +8 -0
- package/dist/bridges/index.d.ts.map +1 -0
- package/dist/bridges/index.js +8 -0
- package/dist/bridges/index.js.map +1 -0
- package/dist/bridges/mincut-bridge.d.ts +81 -0
- package/dist/bridges/mincut-bridge.d.ts.map +1 -0
- package/dist/bridges/mincut-bridge.js +481 -0
- package/dist/bridges/mincut-bridge.js.map +1 -0
- package/dist/index.d.ts +113 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +156 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-tools.d.ts +98 -0
- package/dist/mcp-tools.d.ts.map +1 -0
- package/dist/mcp-tools.js +794 -0
- package/dist/mcp-tools.js.map +1 -0
- package/dist/types.d.ts +838 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +268 -0
- package/dist/types.js.map +1 -0
- package/package.json +78 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Intelligence Plugin for Claude Flow V3
|
|
3
|
+
*
|
|
4
|
+
* A comprehensive code intelligence plugin combining graph neural networks
|
|
5
|
+
* for code structure analysis with ultra-fast vector search for semantic
|
|
6
|
+
* code similarity.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Semantic code search
|
|
10
|
+
* - Architecture analysis and drift detection
|
|
11
|
+
* - Refactoring impact prediction using GNN
|
|
12
|
+
* - Module splitting suggestions using MinCut
|
|
13
|
+
* - Pattern learning from code history
|
|
14
|
+
*
|
|
15
|
+
* Based on ADR-035: Advanced Code Intelligence Plugin
|
|
16
|
+
*
|
|
17
|
+
* @module @claude-flow/plugin-code-intelligence
|
|
18
|
+
*/
|
|
19
|
+
// Export types
|
|
20
|
+
export * from './types.js';
|
|
21
|
+
// Export bridges
|
|
22
|
+
export { GNNBridge, createGNNBridge } from './bridges/gnn-bridge.js';
|
|
23
|
+
export { MinCutBridge, createMinCutBridge } from './bridges/mincut-bridge.js';
|
|
24
|
+
// Export MCP tools
|
|
25
|
+
export { semanticSearchTool, architectureAnalyzeTool, refactorImpactTool, splitSuggestTool, learnPatternsTool, codeIntelligenceTools, toolHandlers, createToolContext, } from './mcp-tools.js';
|
|
26
|
+
// Import for plugin creation
|
|
27
|
+
import { codeIntelligenceTools } from './mcp-tools.js';
|
|
28
|
+
import { createGNNBridge } from './bridges/gnn-bridge.js';
|
|
29
|
+
import { createMinCutBridge } from './bridges/mincut-bridge.js';
|
|
30
|
+
import { DEFAULT_CONFIG } from './types.js';
|
|
31
|
+
/**
|
|
32
|
+
* Plugin metadata
|
|
33
|
+
*/
|
|
34
|
+
export const pluginMetadata = {
|
|
35
|
+
name: '@claude-flow/plugin-code-intelligence',
|
|
36
|
+
version: '3.0.0-alpha.1',
|
|
37
|
+
description: 'Advanced code intelligence plugin for semantic search, architecture analysis, and refactoring',
|
|
38
|
+
author: 'Claude Flow Team',
|
|
39
|
+
category: 'code-intelligence',
|
|
40
|
+
keywords: ['code', 'intelligence', 'semantic-search', 'architecture', 'refactoring'],
|
|
41
|
+
homepage: 'https://github.com/ruvnet/claude-flow',
|
|
42
|
+
repository: 'https://github.com/ruvnet/claude-flow.git',
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Code Intelligence Plugin Class
|
|
46
|
+
*/
|
|
47
|
+
export class CodeIntelligencePlugin {
|
|
48
|
+
state = 'uninitialized';
|
|
49
|
+
config;
|
|
50
|
+
gnnBridge = null;
|
|
51
|
+
mincutBridge = null;
|
|
52
|
+
constructor(config = {}) {
|
|
53
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get plugin metadata
|
|
57
|
+
*/
|
|
58
|
+
getMetadata() {
|
|
59
|
+
return pluginMetadata;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get current state
|
|
63
|
+
*/
|
|
64
|
+
getState() {
|
|
65
|
+
return this.state;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Initialize the plugin
|
|
69
|
+
*/
|
|
70
|
+
async initialize() {
|
|
71
|
+
if (this.state === 'ready')
|
|
72
|
+
return;
|
|
73
|
+
this.state = 'initializing';
|
|
74
|
+
try {
|
|
75
|
+
// Initialize WASM bridges
|
|
76
|
+
this.gnnBridge = createGNNBridge(this.config.search.embeddingDimension);
|
|
77
|
+
this.mincutBridge = createMinCutBridge();
|
|
78
|
+
await Promise.all([
|
|
79
|
+
this.gnnBridge.initialize(),
|
|
80
|
+
this.mincutBridge.initialize(),
|
|
81
|
+
]);
|
|
82
|
+
this.state = 'ready';
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
this.state = 'error';
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Shutdown the plugin
|
|
91
|
+
*/
|
|
92
|
+
async shutdown() {
|
|
93
|
+
this.state = 'shutdown';
|
|
94
|
+
this.gnnBridge = null;
|
|
95
|
+
this.mincutBridge = null;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get MCP tools provided by this plugin
|
|
99
|
+
*/
|
|
100
|
+
getMCPTools() {
|
|
101
|
+
return codeIntelligenceTools;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get tool context for execution
|
|
105
|
+
*/
|
|
106
|
+
getToolContext() {
|
|
107
|
+
if (!this.gnnBridge || !this.mincutBridge) {
|
|
108
|
+
throw new Error('Plugin not initialized');
|
|
109
|
+
}
|
|
110
|
+
const store = new Map();
|
|
111
|
+
const blockedPatterns = this.config.security.blockedPatterns.map(p => new RegExp(p));
|
|
112
|
+
return {
|
|
113
|
+
get: (key) => store.get(key),
|
|
114
|
+
set: (key, value) => { store.set(key, value); },
|
|
115
|
+
bridges: {
|
|
116
|
+
gnn: this.gnnBridge,
|
|
117
|
+
mincut: this.mincutBridge,
|
|
118
|
+
},
|
|
119
|
+
config: {
|
|
120
|
+
allowedRoots: this.config.security.allowedRoots,
|
|
121
|
+
blockedPatterns,
|
|
122
|
+
maskSecrets: this.config.security.maskSecrets,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get configuration
|
|
128
|
+
*/
|
|
129
|
+
getConfig() {
|
|
130
|
+
return this.config;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Update configuration
|
|
134
|
+
*/
|
|
135
|
+
updateConfig(config) {
|
|
136
|
+
this.config = {
|
|
137
|
+
...this.config,
|
|
138
|
+
...config,
|
|
139
|
+
search: { ...this.config.search, ...config.search },
|
|
140
|
+
architecture: { ...this.config.architecture, ...config.architecture },
|
|
141
|
+
refactoring: { ...this.config.refactoring, ...config.refactoring },
|
|
142
|
+
security: { ...this.config.security, ...config.security },
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Create plugin instance
|
|
148
|
+
*/
|
|
149
|
+
export function createPlugin(config) {
|
|
150
|
+
return new CodeIntelligencePlugin(config);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Default export
|
|
154
|
+
*/
|
|
155
|
+
export default CodeIntelligencePlugin;
|
|
156
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Intelligence Plugin - MCP Tools
|
|
3
|
+
*
|
|
4
|
+
* Implements 5 MCP tools for advanced code analysis:
|
|
5
|
+
* 1. code/semantic-search - Find semantically similar code patterns
|
|
6
|
+
* 2. code/architecture-analyze - Analyze codebase architecture
|
|
7
|
+
* 3. code/refactor-impact - Predict refactoring impact using GNN
|
|
8
|
+
* 4. code/split-suggest - Suggest module splits using MinCut
|
|
9
|
+
* 5. code/learn-patterns - Learn patterns from code history
|
|
10
|
+
*
|
|
11
|
+
* Based on ADR-035: Advanced Code Intelligence Plugin
|
|
12
|
+
*
|
|
13
|
+
* @module v3/plugins/code-intelligence/mcp-tools
|
|
14
|
+
*/
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import type { SemanticSearchResult, ArchitectureAnalysisResult, RefactoringImpactResult, ModuleSplitResult, PatternLearningResult, IGNNBridge, IMinCutBridge } from './types.js';
|
|
17
|
+
import { SemanticSearchInputSchema, ArchitectureAnalyzeInputSchema, RefactorImpactInputSchema, SplitSuggestInputSchema, LearnPatternsInputSchema } from './types.js';
|
|
18
|
+
/**
|
|
19
|
+
* MCP Tool definition
|
|
20
|
+
*/
|
|
21
|
+
export interface MCPTool<TInput = unknown, TOutput = unknown> {
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
category: string;
|
|
25
|
+
version: string;
|
|
26
|
+
inputSchema: z.ZodType<TInput, z.ZodTypeDef, any>;
|
|
27
|
+
handler: (input: TInput, context: ToolContext) => Promise<MCPToolResult<TOutput>>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Tool execution context
|
|
31
|
+
*/
|
|
32
|
+
export interface ToolContext {
|
|
33
|
+
get<T>(key: string): T | undefined;
|
|
34
|
+
set<T>(key: string, value: T): void;
|
|
35
|
+
bridges: {
|
|
36
|
+
gnn: IGNNBridge;
|
|
37
|
+
mincut: IMinCutBridge;
|
|
38
|
+
};
|
|
39
|
+
config: {
|
|
40
|
+
allowedRoots: string[];
|
|
41
|
+
blockedPatterns: RegExp[];
|
|
42
|
+
maskSecrets: boolean;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* MCP Tool result format
|
|
47
|
+
*/
|
|
48
|
+
export interface MCPToolResult<T = unknown> {
|
|
49
|
+
content: Array<{
|
|
50
|
+
type: 'text';
|
|
51
|
+
text: string;
|
|
52
|
+
}>;
|
|
53
|
+
data?: T;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* MCP Tool: code/semantic-search
|
|
57
|
+
*
|
|
58
|
+
* Search for semantically similar code patterns
|
|
59
|
+
*/
|
|
60
|
+
export declare const semanticSearchTool: MCPTool<z.infer<typeof SemanticSearchInputSchema>, SemanticSearchResult>;
|
|
61
|
+
/**
|
|
62
|
+
* MCP Tool: code/architecture-analyze
|
|
63
|
+
*
|
|
64
|
+
* Analyze codebase architecture and detect drift
|
|
65
|
+
*/
|
|
66
|
+
export declare const architectureAnalyzeTool: MCPTool<z.infer<typeof ArchitectureAnalyzeInputSchema>, ArchitectureAnalysisResult>;
|
|
67
|
+
/**
|
|
68
|
+
* MCP Tool: code/refactor-impact
|
|
69
|
+
*
|
|
70
|
+
* Analyze impact of proposed code changes using GNN
|
|
71
|
+
*/
|
|
72
|
+
export declare const refactorImpactTool: MCPTool<z.infer<typeof RefactorImpactInputSchema>, RefactoringImpactResult>;
|
|
73
|
+
/**
|
|
74
|
+
* MCP Tool: code/split-suggest
|
|
75
|
+
*
|
|
76
|
+
* Suggest optimal code splitting using MinCut algorithm
|
|
77
|
+
*/
|
|
78
|
+
export declare const splitSuggestTool: MCPTool<z.infer<typeof SplitSuggestInputSchema>, ModuleSplitResult>;
|
|
79
|
+
/**
|
|
80
|
+
* MCP Tool: code/learn-patterns
|
|
81
|
+
*
|
|
82
|
+
* Learn recurring patterns from code changes using SONA
|
|
83
|
+
*/
|
|
84
|
+
export declare const learnPatternsTool: MCPTool<z.infer<typeof LearnPatternsInputSchema>, PatternLearningResult>;
|
|
85
|
+
/**
|
|
86
|
+
* All Code Intelligence MCP Tools
|
|
87
|
+
*/
|
|
88
|
+
export declare const codeIntelligenceTools: MCPTool[];
|
|
89
|
+
/**
|
|
90
|
+
* Tool name to handler map
|
|
91
|
+
*/
|
|
92
|
+
export declare const toolHandlers: Map<string, (input: unknown, context: ToolContext) => Promise<MCPToolResult<unknown>>>;
|
|
93
|
+
/**
|
|
94
|
+
* Create tool context with bridges
|
|
95
|
+
*/
|
|
96
|
+
export declare function createToolContext(config?: Partial<ToolContext['config']>): ToolContext;
|
|
97
|
+
export default codeIntelligenceTools;
|
|
98
|
+
//# sourceMappingURL=mcp-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EAMrB,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EAKzB,MAAM,YAAY,CAAC;AAQpB;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;CACnF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACnC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE;QACP,GAAG,EAAE,UAAU,CAAC;QAChB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAkDD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CACtC,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EACzC,oBAAoB,CAgFrB,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,EAC9C,0BAA0B,CA4F3B,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CACtC,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EACzC,uBAAuB,CAyGxB,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,CACpC,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,EACvC,iBAAiB,CAsGlB,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CACrC,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,EACxC,qBAAqB,CAmEtB,CAAC;AA2XF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAAO,EAM1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,wCA98BW,WAAW,qCAo9B7C,CAAC;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CA0BtF;AAED,eAAe,qBAAqB,CAAC"}
|