baseguard 1.0.0 → 1.0.2
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/.baseguardrc.example.json +64 -0
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +196 -0
- package/DEPLOYMENT.md +625 -0
- package/DEPLOYMENT_CHECKLIST.md +239 -0
- package/DEPLOYMENT_SUMMARY_v1.0.2.md +202 -0
- package/QUICK_START.md +134 -0
- package/README.md +447 -52
- package/RELEASE_NOTES_v1.0.2.md +434 -0
- package/bin/base.js +155 -36
- package/dist/ai/agentkit-orchestrator.d.ts +116 -0
- package/dist/ai/agentkit-orchestrator.d.ts.map +1 -0
- package/dist/ai/agentkit-orchestrator.js +417 -0
- package/dist/ai/agentkit-orchestrator.js.map +1 -0
- package/dist/ai/gemini-code-fixer.d.ts +85 -0
- package/dist/ai/gemini-code-fixer.d.ts.map +1 -0
- package/dist/ai/gemini-code-fixer.js +452 -0
- package/dist/ai/gemini-code-fixer.js.map +1 -0
- package/dist/ai/jules-implementer.d.ts +5 -4
- package/dist/ai/jules-implementer.d.ts.map +1 -1
- package/dist/ai/jules-implementer.js +6 -5
- package/dist/ai/jules-implementer.js.map +1 -1
- package/dist/ai/unified-code-fixer.d.ts +69 -0
- package/dist/ai/unified-code-fixer.d.ts.map +1 -0
- package/dist/ai/unified-code-fixer.js +289 -0
- package/dist/ai/unified-code-fixer.js.map +1 -0
- package/dist/commands/check.d.ts +3 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +166 -34
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +183 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +89 -91
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +16 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.d.ts +14 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +254 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/core/baseguard.d.ts +47 -5
- package/dist/core/baseguard.d.ts.map +1 -1
- package/dist/core/baseguard.js +506 -52
- package/dist/core/baseguard.js.map +1 -1
- package/dist/core/cache-manager.d.ts.map +1 -1
- package/dist/core/cache-manager.js +3 -1
- package/dist/core/cache-manager.js.map +1 -1
- package/dist/core/configuration-recovery.d.ts +116 -0
- package/dist/core/configuration-recovery.d.ts.map +1 -0
- package/dist/core/configuration-recovery.js +552 -0
- package/dist/core/configuration-recovery.js.map +1 -0
- package/dist/core/configuration.d.ts +4 -0
- package/dist/core/configuration.d.ts.map +1 -1
- package/dist/core/configuration.js +35 -0
- package/dist/core/configuration.js.map +1 -1
- package/dist/core/debug-logger.d.ts +181 -0
- package/dist/core/debug-logger.d.ts.map +1 -0
- package/dist/core/debug-logger.js +479 -0
- package/dist/core/debug-logger.js.map +1 -0
- package/dist/core/file-processor.d.ts.map +1 -1
- package/dist/core/file-processor.js +8 -2
- package/dist/core/file-processor.js.map +1 -1
- package/dist/core/graceful-degradation-manager.d.ts +123 -0
- package/dist/core/graceful-degradation-manager.d.ts.map +1 -0
- package/dist/core/graceful-degradation-manager.js +512 -0
- package/dist/core/graceful-degradation-manager.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/logger.d.ts +1 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +2 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/memory-manager.d.ts +84 -0
- package/dist/core/memory-manager.d.ts.map +1 -1
- package/dist/core/memory-manager.js +236 -1
- package/dist/core/memory-manager.js.map +1 -1
- package/dist/core/startup-optimizer.d.ts +12 -0
- package/dist/core/startup-optimizer.d.ts.map +1 -1
- package/dist/core/startup-optimizer.js +60 -0
- package/dist/core/startup-optimizer.js.map +1 -1
- package/dist/core/system-error-handler.d.ts +65 -0
- package/dist/core/system-error-handler.d.ts.map +1 -0
- package/dist/core/system-error-handler.js +646 -0
- package/dist/core/system-error-handler.js.map +1 -0
- package/dist/git/github-manager.d.ts +5 -16
- package/dist/git/github-manager.d.ts.map +1 -1
- package/dist/git/github-manager.js +6 -61
- package/dist/git/github-manager.js.map +1 -1
- package/dist/parsers/react-parser-optimized.d.ts +16 -0
- package/dist/parsers/react-parser-optimized.d.ts.map +1 -0
- package/dist/parsers/react-parser-optimized.js +147 -0
- package/dist/parsers/react-parser-optimized.js.map +1 -0
- package/dist/parsers/react-parser.d.ts.map +1 -1
- package/dist/parsers/react-parser.js +17 -15
- package/dist/parsers/react-parser.js.map +1 -1
- package/dist/parsers/svelte-parser.d.ts.map +1 -1
- package/dist/parsers/svelte-parser.js +7 -3
- package/dist/parsers/svelte-parser.js.map +1 -1
- package/dist/parsers/vanilla-parser.d.ts.map +1 -1
- package/dist/parsers/vanilla-parser.js +7 -3
- package/dist/parsers/vanilla-parser.js.map +1 -1
- package/dist/parsers/vue-parser.d.ts +18 -0
- package/dist/parsers/vue-parser.d.ts.map +1 -1
- package/dist/parsers/vue-parser.js +387 -1
- package/dist/parsers/vue-parser.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/help.js +1 -1
- package/dist/ui/help.js.map +1 -1
- package/dist/ui/prompts.d.ts +7 -4
- package/dist/ui/prompts.d.ts.map +1 -1
- package/dist/ui/prompts.js +48 -55
- package/dist/ui/prompts.js.map +1 -1
- package/package.json +30 -5
- package/src/ai/__tests__/gemini-analyzer.test.ts +2 -2
- package/src/ai/agentkit-orchestrator.ts +534 -0
- package/src/ai/gemini-code-fixer.ts +540 -0
- package/src/ai/jules-implementer.ts +6 -5
- package/src/ai/unified-code-fixer.ts +347 -0
- package/src/commands/config.ts +218 -0
- package/src/commands/fix.ts +98 -94
- package/src/commands/index.ts +2 -1
- package/src/commands/init.ts +16 -2
- package/src/commands/status.ts +307 -0
- package/src/core/baseguard.ts +36 -22
- package/src/core/cache-manager.ts +4 -2
- package/src/core/configuration-recovery.ts +3 -6
- package/src/core/configuration.ts +37 -0
- package/src/core/debug-logger.ts +2 -2
- package/src/core/file-processor.ts +10 -3
- package/src/core/index.ts +5 -1
- package/src/core/memory-manager.ts +4 -3
- package/src/core/startup-optimizer.ts +70 -0
- package/src/core/system-error-handler.ts +9 -5
- package/src/git/github-manager.ts +11 -79
- package/src/parsers/react-parser.ts +2 -2
- package/src/parsers/svelte-parser.ts +13 -9
- package/src/parsers/vanilla-parser.ts +18 -14
- package/src/parsers/vue-parser.ts +20 -14
- package/src/types/index.ts +4 -0
- package/src/ui/help.ts +1 -1
- package/src/ui/prompts.ts +54 -61
- package/test-build.js +41 -0
- package/tests/e2e/git-integration.e2e.test.ts +1 -1
- package/tsconfig.json +0 -1
- package/vitest.config.ts +4 -2
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKit-inspired orchestrator for managing multiple coding agents
|
|
3
|
+
* Based on OpenAI's AgentKit principles for production-ready agent workflows
|
|
4
|
+
*/
|
|
5
|
+
import type { Violation, Analysis, Fix } from '../types/index.js';
|
|
6
|
+
export interface AgentCapabilities {
|
|
7
|
+
codeGeneration: boolean;
|
|
8
|
+
fileAnalysis: boolean;
|
|
9
|
+
webSearch: boolean;
|
|
10
|
+
repositoryAccess: boolean;
|
|
11
|
+
realTimeProcessing: boolean;
|
|
12
|
+
autonomousExecution: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface AgentMetrics {
|
|
15
|
+
successRate: number;
|
|
16
|
+
averageResponseTime: number;
|
|
17
|
+
totalExecutions: number;
|
|
18
|
+
lastUsed: Date;
|
|
19
|
+
reliability: number;
|
|
20
|
+
}
|
|
21
|
+
export interface AgentStatus {
|
|
22
|
+
available: boolean;
|
|
23
|
+
capabilities: AgentCapabilities;
|
|
24
|
+
metrics: AgentMetrics;
|
|
25
|
+
lastError?: string;
|
|
26
|
+
configurationValid: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* AgentKit-inspired orchestrator for intelligent agent selection and workflow optimization
|
|
30
|
+
*/
|
|
31
|
+
export declare class AgentKitOrchestrator {
|
|
32
|
+
private geminiAgent;
|
|
33
|
+
private julesAgent;
|
|
34
|
+
private agentMetrics;
|
|
35
|
+
private categoryLogger;
|
|
36
|
+
private geminiApiKey;
|
|
37
|
+
private julesApiKey;
|
|
38
|
+
constructor(geminiApiKey: string | null, julesApiKey: string | null);
|
|
39
|
+
/**
|
|
40
|
+
* Initialize agent metrics tracking
|
|
41
|
+
*/
|
|
42
|
+
private initializeMetrics;
|
|
43
|
+
/**
|
|
44
|
+
* Get comprehensive status of all agents
|
|
45
|
+
*/
|
|
46
|
+
getAgentStatus(): Promise<Record<string, AgentStatus>>;
|
|
47
|
+
/**
|
|
48
|
+
* Intelligent agent selection based on context and requirements
|
|
49
|
+
*/
|
|
50
|
+
selectOptimalAgent(violations: Violation[], context: {
|
|
51
|
+
hasRepository: boolean;
|
|
52
|
+
requiresRealTime: boolean;
|
|
53
|
+
complexityLevel: 'low' | 'medium' | 'high';
|
|
54
|
+
userPreference?: 'gemini' | 'jules';
|
|
55
|
+
}): Promise<{
|
|
56
|
+
primary: 'gemini' | 'jules';
|
|
57
|
+
fallback: 'gemini' | 'jules';
|
|
58
|
+
reasoning: string;
|
|
59
|
+
confidence: number;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Execute fixes using the optimal agent with fallback
|
|
63
|
+
*/
|
|
64
|
+
executeFixes(violations: Violation[], analyses: Analysis[], options?: {
|
|
65
|
+
auto?: boolean;
|
|
66
|
+
userPreference?: 'gemini' | 'jules';
|
|
67
|
+
requiresRealTime?: boolean;
|
|
68
|
+
}): Promise<{
|
|
69
|
+
fixes: Fix[];
|
|
70
|
+
agentUsed: 'gemini' | 'jules';
|
|
71
|
+
executionTime: number;
|
|
72
|
+
success: boolean;
|
|
73
|
+
error?: string;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Execute fixes with a specific agent
|
|
77
|
+
*/
|
|
78
|
+
private executeWithAgent;
|
|
79
|
+
/**
|
|
80
|
+
* Assess complexity level of violations
|
|
81
|
+
*/
|
|
82
|
+
private assessComplexity;
|
|
83
|
+
/**
|
|
84
|
+
* Update agent performance metrics
|
|
85
|
+
*/
|
|
86
|
+
private updateAgentMetrics;
|
|
87
|
+
/**
|
|
88
|
+
* Get performance analytics for all agents
|
|
89
|
+
*/
|
|
90
|
+
getPerformanceAnalytics(): {
|
|
91
|
+
gemini: AgentMetrics & {
|
|
92
|
+
recommendation: string;
|
|
93
|
+
};
|
|
94
|
+
jules: AgentMetrics & {
|
|
95
|
+
recommendation: string;
|
|
96
|
+
};
|
|
97
|
+
overall: {
|
|
98
|
+
totalExecutions: number;
|
|
99
|
+
averageSuccessRate: number;
|
|
100
|
+
recommendedPrimary: 'gemini' | 'jules';
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Get recommendation for specific agent
|
|
105
|
+
*/
|
|
106
|
+
private getAgentRecommendation;
|
|
107
|
+
/**
|
|
108
|
+
* Reset metrics (useful for testing or fresh start)
|
|
109
|
+
*/
|
|
110
|
+
resetMetrics(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Export metrics for external analysis
|
|
113
|
+
*/
|
|
114
|
+
exportMetrics(): Record<string, AgentMetrics>;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=agentkit-orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentkit-orchestrator.d.ts","sourceRoot":"","sources":["../../src/ai/agentkit-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentKit-inspired orchestrator for managing multiple coding agents
|
|
3
|
+
* Based on OpenAI's AgentKit principles for production-ready agent workflows
|
|
4
|
+
*/
|
|
5
|
+
import { GeminiCodeFixer } from './gemini-code-fixer.js';
|
|
6
|
+
import { JulesImplementer } from './jules-implementer.js';
|
|
7
|
+
import { logger } from '../core/debug-logger.js';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
/**
|
|
10
|
+
* AgentKit-inspired orchestrator for intelligent agent selection and workflow optimization
|
|
11
|
+
*/
|
|
12
|
+
export class AgentKitOrchestrator {
|
|
13
|
+
geminiAgent = null;
|
|
14
|
+
julesAgent = null;
|
|
15
|
+
agentMetrics;
|
|
16
|
+
categoryLogger;
|
|
17
|
+
geminiApiKey;
|
|
18
|
+
julesApiKey;
|
|
19
|
+
constructor(geminiApiKey, julesApiKey) {
|
|
20
|
+
this.geminiApiKey = geminiApiKey;
|
|
21
|
+
this.julesApiKey = julesApiKey;
|
|
22
|
+
this.agentMetrics = new Map();
|
|
23
|
+
this.categoryLogger = logger.createCategoryLogger('agentkit-orchestrator');
|
|
24
|
+
// Initialize agents if API keys are available
|
|
25
|
+
if (geminiApiKey) {
|
|
26
|
+
this.geminiAgent = new GeminiCodeFixer(geminiApiKey);
|
|
27
|
+
}
|
|
28
|
+
if (julesApiKey) {
|
|
29
|
+
this.julesAgent = new JulesImplementer(julesApiKey);
|
|
30
|
+
}
|
|
31
|
+
// Initialize metrics
|
|
32
|
+
this.initializeMetrics();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize agent metrics tracking
|
|
36
|
+
*/
|
|
37
|
+
initializeMetrics() {
|
|
38
|
+
this.agentMetrics.set('gemini', {
|
|
39
|
+
successRate: 0.95,
|
|
40
|
+
averageResponseTime: 2500, // ms
|
|
41
|
+
totalExecutions: 0,
|
|
42
|
+
lastUsed: new Date(),
|
|
43
|
+
reliability: 0.95
|
|
44
|
+
});
|
|
45
|
+
this.agentMetrics.set('jules', {
|
|
46
|
+
successRate: 0.88,
|
|
47
|
+
averageResponseTime: 15000, // ms (async processing)
|
|
48
|
+
totalExecutions: 0,
|
|
49
|
+
lastUsed: new Date(),
|
|
50
|
+
reliability: 0.88
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get comprehensive status of all agents
|
|
55
|
+
*/
|
|
56
|
+
async getAgentStatus() {
|
|
57
|
+
const status = {};
|
|
58
|
+
// Check Gemini status
|
|
59
|
+
if (this.geminiAgent) {
|
|
60
|
+
try {
|
|
61
|
+
const testResult = await this.geminiAgent.testConnection();
|
|
62
|
+
status.gemini = {
|
|
63
|
+
available: testResult.success,
|
|
64
|
+
capabilities: {
|
|
65
|
+
codeGeneration: true,
|
|
66
|
+
fileAnalysis: true,
|
|
67
|
+
webSearch: true,
|
|
68
|
+
repositoryAccess: false,
|
|
69
|
+
realTimeProcessing: true,
|
|
70
|
+
autonomousExecution: false
|
|
71
|
+
},
|
|
72
|
+
metrics: this.agentMetrics.get('gemini'),
|
|
73
|
+
configurationValid: testResult.success,
|
|
74
|
+
lastError: testResult.error
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
status.gemini = {
|
|
79
|
+
available: false,
|
|
80
|
+
capabilities: {
|
|
81
|
+
codeGeneration: false,
|
|
82
|
+
fileAnalysis: false,
|
|
83
|
+
webSearch: false,
|
|
84
|
+
repositoryAccess: false,
|
|
85
|
+
realTimeProcessing: false,
|
|
86
|
+
autonomousExecution: false
|
|
87
|
+
},
|
|
88
|
+
metrics: this.agentMetrics.get('gemini'),
|
|
89
|
+
lastError: error instanceof Error ? error.message : 'Unknown error',
|
|
90
|
+
configurationValid: false
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
status.gemini = {
|
|
96
|
+
available: false,
|
|
97
|
+
capabilities: {
|
|
98
|
+
codeGeneration: false,
|
|
99
|
+
fileAnalysis: false,
|
|
100
|
+
webSearch: false,
|
|
101
|
+
repositoryAccess: false,
|
|
102
|
+
realTimeProcessing: false,
|
|
103
|
+
autonomousExecution: false
|
|
104
|
+
},
|
|
105
|
+
metrics: this.agentMetrics.get('gemini'),
|
|
106
|
+
lastError: 'Gemini API key not configured',
|
|
107
|
+
configurationValid: false
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// Check Jules status
|
|
111
|
+
if (this.julesAgent) {
|
|
112
|
+
try {
|
|
113
|
+
const testResult = await this.julesAgent.testConnection();
|
|
114
|
+
const hasRepository = await this.julesAgent.isRepositoryDetected();
|
|
115
|
+
status.jules = {
|
|
116
|
+
available: testResult.success && hasRepository,
|
|
117
|
+
capabilities: {
|
|
118
|
+
codeGeneration: true,
|
|
119
|
+
fileAnalysis: true,
|
|
120
|
+
webSearch: false,
|
|
121
|
+
repositoryAccess: true,
|
|
122
|
+
realTimeProcessing: false,
|
|
123
|
+
autonomousExecution: true
|
|
124
|
+
},
|
|
125
|
+
metrics: this.agentMetrics.get('jules'),
|
|
126
|
+
configurationValid: testResult.success,
|
|
127
|
+
lastError: testResult.error || (!hasRepository ? 'No GitHub repository detected' : undefined)
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
status.jules = {
|
|
132
|
+
available: false,
|
|
133
|
+
capabilities: {
|
|
134
|
+
codeGeneration: false,
|
|
135
|
+
fileAnalysis: false,
|
|
136
|
+
webSearch: false,
|
|
137
|
+
repositoryAccess: false,
|
|
138
|
+
realTimeProcessing: false,
|
|
139
|
+
autonomousExecution: false
|
|
140
|
+
},
|
|
141
|
+
metrics: this.agentMetrics.get('jules'),
|
|
142
|
+
lastError: error instanceof Error ? error.message : 'Unknown error',
|
|
143
|
+
configurationValid: false
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
status.jules = {
|
|
149
|
+
available: false,
|
|
150
|
+
capabilities: {
|
|
151
|
+
codeGeneration: false,
|
|
152
|
+
fileAnalysis: false,
|
|
153
|
+
webSearch: false,
|
|
154
|
+
repositoryAccess: false,
|
|
155
|
+
realTimeProcessing: false,
|
|
156
|
+
autonomousExecution: false
|
|
157
|
+
},
|
|
158
|
+
metrics: this.agentMetrics.get('jules'),
|
|
159
|
+
lastError: 'Jules API key not configured',
|
|
160
|
+
configurationValid: false
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return status;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Intelligent agent selection based on context and requirements
|
|
167
|
+
*/
|
|
168
|
+
async selectOptimalAgent(violations, context) {
|
|
169
|
+
const agentStatus = await this.getAgentStatus();
|
|
170
|
+
const geminiMetrics = this.agentMetrics.get('gemini');
|
|
171
|
+
const julesMetrics = this.agentMetrics.get('jules');
|
|
172
|
+
// Calculate scores for each agent
|
|
173
|
+
let geminiScore = 0;
|
|
174
|
+
let julesScore = 0;
|
|
175
|
+
// Availability scoring
|
|
176
|
+
if (agentStatus.gemini?.available)
|
|
177
|
+
geminiScore += 30;
|
|
178
|
+
if (agentStatus.jules?.available)
|
|
179
|
+
julesScore += 30;
|
|
180
|
+
// Capability scoring
|
|
181
|
+
if (context.requiresRealTime) {
|
|
182
|
+
geminiScore += 25; // Gemini is real-time
|
|
183
|
+
julesScore += 5; // Jules is async
|
|
184
|
+
}
|
|
185
|
+
if (context.hasRepository) {
|
|
186
|
+
julesScore += 20; // Jules excels with repositories
|
|
187
|
+
geminiScore += 10; // Gemini can work with repos but not optimized
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
geminiScore += 25; // Gemini works with any files
|
|
191
|
+
julesScore += 0; // Jules requires repository
|
|
192
|
+
}
|
|
193
|
+
// Complexity scoring
|
|
194
|
+
switch (context.complexityLevel) {
|
|
195
|
+
case 'low':
|
|
196
|
+
geminiScore += 15; // Gemini is faster for simple fixes
|
|
197
|
+
julesScore += 10;
|
|
198
|
+
break;
|
|
199
|
+
case 'medium':
|
|
200
|
+
geminiScore += 12;
|
|
201
|
+
julesScore += 12;
|
|
202
|
+
break;
|
|
203
|
+
case 'high':
|
|
204
|
+
geminiScore += 8;
|
|
205
|
+
julesScore += 18; // Jules better for complex autonomous work
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
// Reliability scoring
|
|
209
|
+
geminiScore += geminiMetrics.reliability * 10;
|
|
210
|
+
julesScore += julesMetrics.reliability * 10;
|
|
211
|
+
// User preference bonus
|
|
212
|
+
if (context.userPreference === 'gemini')
|
|
213
|
+
geminiScore += 15;
|
|
214
|
+
if (context.userPreference === 'jules')
|
|
215
|
+
julesScore += 15;
|
|
216
|
+
// Determine primary and fallback
|
|
217
|
+
const primary = geminiScore >= julesScore ? 'gemini' : 'jules';
|
|
218
|
+
const fallback = primary === 'gemini' ? 'jules' : 'gemini';
|
|
219
|
+
const confidence = Math.max(geminiScore, julesScore) / 100;
|
|
220
|
+
let reasoning = '';
|
|
221
|
+
if (primary === 'gemini') {
|
|
222
|
+
reasoning = `Gemini selected: ${context.requiresRealTime ? 'real-time processing needed, ' : ''}${!context.hasRepository ? 'works with local files, ' : ''}high reliability (${Math.round(geminiMetrics.reliability * 100)}%)`;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
reasoning = `Jules selected: ${context.hasRepository ? 'repository context available, ' : ''}${context.complexityLevel === 'high' ? 'complex autonomous work, ' : ''}good for comprehensive fixes`;
|
|
226
|
+
}
|
|
227
|
+
this.categoryLogger.info('Agent selection completed', {
|
|
228
|
+
primary,
|
|
229
|
+
fallback,
|
|
230
|
+
geminiScore,
|
|
231
|
+
julesScore,
|
|
232
|
+
confidence,
|
|
233
|
+
reasoning
|
|
234
|
+
});
|
|
235
|
+
return { primary, fallback, reasoning, confidence };
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Execute fixes using the optimal agent with fallback
|
|
239
|
+
*/
|
|
240
|
+
async executeFixes(violations, analyses, options = {}) {
|
|
241
|
+
const startTime = Date.now();
|
|
242
|
+
// Determine context
|
|
243
|
+
const hasRepository = this.julesAgent ? await this.julesAgent.isRepositoryDetected() : false;
|
|
244
|
+
const context = {
|
|
245
|
+
hasRepository,
|
|
246
|
+
requiresRealTime: options.requiresRealTime ?? true,
|
|
247
|
+
complexityLevel: this.assessComplexity(violations),
|
|
248
|
+
userPreference: options.userPreference
|
|
249
|
+
};
|
|
250
|
+
// Select optimal agent
|
|
251
|
+
const selection = await this.selectOptimalAgent(violations, context);
|
|
252
|
+
console.log(chalk.cyan(`🤖 Using ${selection.primary} agent (${Math.round(selection.confidence * 100)}% confidence)`));
|
|
253
|
+
console.log(chalk.dim(` Reasoning: ${selection.reasoning}`));
|
|
254
|
+
try {
|
|
255
|
+
// Try primary agent
|
|
256
|
+
const result = await this.executeWithAgent(selection.primary, violations, analyses, options);
|
|
257
|
+
// Update metrics
|
|
258
|
+
this.updateAgentMetrics(selection.primary, true, Date.now() - startTime);
|
|
259
|
+
return {
|
|
260
|
+
...result,
|
|
261
|
+
agentUsed: selection.primary,
|
|
262
|
+
executionTime: Date.now() - startTime,
|
|
263
|
+
success: true
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
catch (primaryError) {
|
|
267
|
+
this.categoryLogger.warn(`Primary agent ${selection.primary} failed`, { error: primaryError });
|
|
268
|
+
// Update metrics for failure
|
|
269
|
+
this.updateAgentMetrics(selection.primary, false, Date.now() - startTime);
|
|
270
|
+
console.log(chalk.yellow(`⚠️ ${selection.primary} failed, trying ${selection.fallback}...`));
|
|
271
|
+
try {
|
|
272
|
+
// Try fallback agent
|
|
273
|
+
const result = await this.executeWithAgent(selection.fallback, violations, analyses, options);
|
|
274
|
+
// Update metrics
|
|
275
|
+
this.updateAgentMetrics(selection.fallback, true, Date.now() - startTime);
|
|
276
|
+
return {
|
|
277
|
+
...result,
|
|
278
|
+
agentUsed: selection.fallback,
|
|
279
|
+
executionTime: Date.now() - startTime,
|
|
280
|
+
success: true
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
catch (fallbackError) {
|
|
284
|
+
this.categoryLogger.error('Both agents failed', {
|
|
285
|
+
primaryError,
|
|
286
|
+
fallbackError
|
|
287
|
+
});
|
|
288
|
+
// Update metrics for failure
|
|
289
|
+
this.updateAgentMetrics(selection.fallback, false, Date.now() - startTime);
|
|
290
|
+
return {
|
|
291
|
+
fixes: [],
|
|
292
|
+
agentUsed: selection.primary,
|
|
293
|
+
executionTime: Date.now() - startTime,
|
|
294
|
+
success: false,
|
|
295
|
+
error: `Both agents failed. Primary (${selection.primary}): ${primaryError instanceof Error ? primaryError.message : 'Unknown error'}. Fallback (${selection.fallback}): ${fallbackError instanceof Error ? fallbackError.message : 'Unknown error'}`
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Execute fixes with a specific agent
|
|
302
|
+
*/
|
|
303
|
+
async executeWithAgent(agentType, violations, analyses, _options = {}) {
|
|
304
|
+
const fixes = [];
|
|
305
|
+
if (agentType === 'gemini' && this.geminiAgent) {
|
|
306
|
+
// Generate fixes one by one for Gemini
|
|
307
|
+
for (let i = 0; i < violations.length; i++) {
|
|
308
|
+
const violation = violations[i];
|
|
309
|
+
const analysis = analyses[i];
|
|
310
|
+
if (violation && analysis) {
|
|
311
|
+
const fix = await this.geminiAgent.generateFix(violation, analysis);
|
|
312
|
+
fixes.push(fix);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
else if (agentType === 'jules' && this.julesAgent) {
|
|
317
|
+
// Generate fixes one by one for Jules
|
|
318
|
+
for (let i = 0; i < violations.length; i++) {
|
|
319
|
+
const violation = violations[i];
|
|
320
|
+
const analysis = analyses[i];
|
|
321
|
+
if (violation && analysis) {
|
|
322
|
+
const fix = await this.julesAgent.generateFix(violation, analysis);
|
|
323
|
+
fixes.push(fix);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
throw new Error(`Agent ${agentType} is not available or not configured`);
|
|
329
|
+
}
|
|
330
|
+
return { fixes };
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Assess complexity level of violations
|
|
334
|
+
*/
|
|
335
|
+
assessComplexity(violations) {
|
|
336
|
+
if (violations.length <= 3)
|
|
337
|
+
return 'low';
|
|
338
|
+
if (violations.length <= 10)
|
|
339
|
+
return 'medium';
|
|
340
|
+
return 'high';
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Update agent performance metrics
|
|
344
|
+
*/
|
|
345
|
+
updateAgentMetrics(agentType, success, responseTime) {
|
|
346
|
+
const metrics = this.agentMetrics.get(agentType);
|
|
347
|
+
if (!metrics)
|
|
348
|
+
return;
|
|
349
|
+
metrics.totalExecutions++;
|
|
350
|
+
metrics.lastUsed = new Date();
|
|
351
|
+
// Update success rate (exponential moving average)
|
|
352
|
+
const alpha = 0.1;
|
|
353
|
+
metrics.successRate = success
|
|
354
|
+
? metrics.successRate + alpha * (1 - metrics.successRate)
|
|
355
|
+
: metrics.successRate + alpha * (0 - metrics.successRate);
|
|
356
|
+
// Update average response time (exponential moving average)
|
|
357
|
+
metrics.averageResponseTime = metrics.averageResponseTime + alpha * (responseTime - metrics.averageResponseTime);
|
|
358
|
+
// Update reliability (combination of success rate and consistency)
|
|
359
|
+
metrics.reliability = metrics.successRate * 0.8 + (1 - Math.min(responseTime / 10000, 1)) * 0.2;
|
|
360
|
+
this.agentMetrics.set(agentType, metrics);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Get performance analytics for all agents
|
|
364
|
+
*/
|
|
365
|
+
getPerformanceAnalytics() {
|
|
366
|
+
const geminiMetrics = this.agentMetrics.get('gemini');
|
|
367
|
+
const julesMetrics = this.agentMetrics.get('jules');
|
|
368
|
+
const geminiRecommendation = this.getAgentRecommendation('gemini', geminiMetrics);
|
|
369
|
+
const julesRecommendation = this.getAgentRecommendation('jules', julesMetrics);
|
|
370
|
+
const totalExecutions = geminiMetrics.totalExecutions + julesMetrics.totalExecutions;
|
|
371
|
+
const averageSuccessRate = (geminiMetrics.successRate + julesMetrics.successRate) / 2;
|
|
372
|
+
const recommendedPrimary = geminiMetrics.reliability >= julesMetrics.reliability ? 'gemini' : 'jules';
|
|
373
|
+
return {
|
|
374
|
+
gemini: { ...geminiMetrics, recommendation: geminiRecommendation },
|
|
375
|
+
jules: { ...julesMetrics, recommendation: julesRecommendation },
|
|
376
|
+
overall: {
|
|
377
|
+
totalExecutions,
|
|
378
|
+
averageSuccessRate,
|
|
379
|
+
recommendedPrimary
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Get recommendation for specific agent
|
|
385
|
+
*/
|
|
386
|
+
getAgentRecommendation(agentType, metrics) {
|
|
387
|
+
if (metrics.reliability > 0.9) {
|
|
388
|
+
return `Excellent performance - recommended for ${agentType === 'gemini' ? 'real-time fixes' : 'complex autonomous work'}`;
|
|
389
|
+
}
|
|
390
|
+
else if (metrics.reliability > 0.8) {
|
|
391
|
+
return `Good performance - suitable for most tasks`;
|
|
392
|
+
}
|
|
393
|
+
else if (metrics.reliability > 0.6) {
|
|
394
|
+
return `Moderate performance - consider as fallback option`;
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
return `Poor performance - check configuration and API keys`;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Reset metrics (useful for testing or fresh start)
|
|
402
|
+
*/
|
|
403
|
+
resetMetrics() {
|
|
404
|
+
this.initializeMetrics();
|
|
405
|
+
this.categoryLogger.info('Agent metrics reset');
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Export metrics for external analysis
|
|
409
|
+
*/
|
|
410
|
+
exportMetrics() {
|
|
411
|
+
return {
|
|
412
|
+
gemini: { ...this.agentMetrics.get('gemini') },
|
|
413
|
+
jules: { ...this.agentMetrics.get('jules') }
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=agentkit-orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentkit-orchestrator.js","sourceRoot":"","sources":["../../src/ai/agentkit-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Violation, Analysis, Fix } from '../types/index.js';
|
|
2
|
+
import { ErrorType } from '../core/error-handler.js';
|
|
3
|
+
/**
|
|
4
|
+
* Gemini 2.5 Pro code fixer for local files and repositories
|
|
5
|
+
* Works with any code (GitHub or not, committed or uncommitted)
|
|
6
|
+
*/
|
|
7
|
+
export declare class GeminiCodeFixer {
|
|
8
|
+
private apiKey;
|
|
9
|
+
private baseUrl;
|
|
10
|
+
private categoryLogger;
|
|
11
|
+
constructor(apiKey: string);
|
|
12
|
+
/**
|
|
13
|
+
* Generate a fix using Gemini 2.5 Pro with grounding
|
|
14
|
+
*/
|
|
15
|
+
generateFix(violation: Violation, analysis: Analysis): Promise<Fix>;
|
|
16
|
+
/**
|
|
17
|
+
* Make API call to Gemini 2.5 Pro with grounding
|
|
18
|
+
*/
|
|
19
|
+
private makeApiCall;
|
|
20
|
+
/**
|
|
21
|
+
* Build comprehensive fix prompt for Gemini 2.5 Pro
|
|
22
|
+
*/
|
|
23
|
+
private buildFixPrompt;
|
|
24
|
+
/**
|
|
25
|
+
* Read file content with error handling
|
|
26
|
+
*/
|
|
27
|
+
private readFileContent;
|
|
28
|
+
/**
|
|
29
|
+
* Get file extension for syntax highlighting
|
|
30
|
+
*/
|
|
31
|
+
private getFileExtension;
|
|
32
|
+
/**
|
|
33
|
+
* Parse Gemini's fix response and create Fix object
|
|
34
|
+
*/
|
|
35
|
+
private parseFixResponse;
|
|
36
|
+
/**
|
|
37
|
+
* Extract a specific section from the response
|
|
38
|
+
*/
|
|
39
|
+
private extractSection;
|
|
40
|
+
/**
|
|
41
|
+
* Clean and validate diff content
|
|
42
|
+
*/
|
|
43
|
+
private cleanDiffContent;
|
|
44
|
+
/**
|
|
45
|
+
* Generate preview from diff content
|
|
46
|
+
*/
|
|
47
|
+
private generatePreviewFromDiff;
|
|
48
|
+
/**
|
|
49
|
+
* Calculate confidence score based on response quality
|
|
50
|
+
*/
|
|
51
|
+
private calculateFixConfidence;
|
|
52
|
+
/**
|
|
53
|
+
* Build comprehensive explanation
|
|
54
|
+
*/
|
|
55
|
+
private buildFullExplanation;
|
|
56
|
+
/**
|
|
57
|
+
* Generate basic diff as fallback
|
|
58
|
+
*/
|
|
59
|
+
private generateBasicDiff;
|
|
60
|
+
/**
|
|
61
|
+
* Test API connectivity
|
|
62
|
+
*/
|
|
63
|
+
testConnection(): Promise<{
|
|
64
|
+
success: boolean;
|
|
65
|
+
error?: string;
|
|
66
|
+
errorType?: ErrorType;
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Validate API key format
|
|
70
|
+
*/
|
|
71
|
+
static validateApiKey(apiKey: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Generate multiple fix options for complex issues
|
|
74
|
+
*/
|
|
75
|
+
generateFixOptions(violation: Violation, analysis: Analysis): Promise<Fix[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Generate alternative fix approach
|
|
78
|
+
*/
|
|
79
|
+
private generateAlternativeFix;
|
|
80
|
+
/**
|
|
81
|
+
* Build alternative fix prompt with different strategy
|
|
82
|
+
*/
|
|
83
|
+
private buildAlternativeFixPrompt;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=gemini-code-fixer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-code-fixer.d.ts","sourceRoot":"","sources":["../../src/ai/gemini-code-fixer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAA0B,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI7E;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA4F;IAC3G,OAAO,CAAC,cAAc,CAAiD;gBAE3D,MAAM,EAAE,MAAM;IAK1B;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAoFzE;;OAEG;YACW,WAAW;IAsCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsDtB;;OAEG;YACW,eAAe;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;YACW,gBAAgB;IA0D9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IA2B5F;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKrD;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IA6BlF;;OAEG;YACW,sBAAsB;IA0BpC;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAWlC"}
|