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,289 @@
|
|
|
1
|
+
import { JulesImplementer } from './jules-implementer.js';
|
|
2
|
+
import { GeminiCodeFixer } from './gemini-code-fixer.js';
|
|
3
|
+
import { APIError, ErrorType } from '../core/error-handler.js';
|
|
4
|
+
import { logger } from '../core/debug-logger.js';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
/**
|
|
7
|
+
* Unified code fixer that can use either Jules or Gemini based on configuration
|
|
8
|
+
*/
|
|
9
|
+
export class UnifiedCodeFixer {
|
|
10
|
+
config;
|
|
11
|
+
julesImplementer;
|
|
12
|
+
geminiCodeFixer;
|
|
13
|
+
categoryLogger;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.categoryLogger = logger.createCategoryLogger('unified-code-fixer');
|
|
17
|
+
// Initialize available agents based on API keys
|
|
18
|
+
this.initializeAgents();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Initialize coding agents based on available API keys
|
|
22
|
+
*/
|
|
23
|
+
initializeAgents() {
|
|
24
|
+
if (this.config.apiKeys.jules) {
|
|
25
|
+
this.julesImplementer = new JulesImplementer(this.config.apiKeys.jules);
|
|
26
|
+
this.categoryLogger.debug('Jules implementer initialized');
|
|
27
|
+
}
|
|
28
|
+
if (this.config.apiKeys.gemini) {
|
|
29
|
+
this.geminiCodeFixer = new GeminiCodeFixer(this.config.apiKeys.gemini);
|
|
30
|
+
this.categoryLogger.debug('Gemini code fixer initialized');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Generate a fix using the configured primary agent with fallback
|
|
35
|
+
*/
|
|
36
|
+
async generateFix(violation, analysis) {
|
|
37
|
+
const primaryAgent = this.config.codingAgent.primary;
|
|
38
|
+
const fallbackAgent = this.config.codingAgent.fallback;
|
|
39
|
+
this.categoryLogger.info('Generating fix', {
|
|
40
|
+
feature: violation.feature,
|
|
41
|
+
primaryAgent,
|
|
42
|
+
fallbackAgent
|
|
43
|
+
});
|
|
44
|
+
try {
|
|
45
|
+
// Try primary agent first
|
|
46
|
+
const fix = await this.generateFixWithAgent(violation, analysis, primaryAgent);
|
|
47
|
+
this.categoryLogger.info('Fix generated successfully with primary agent', {
|
|
48
|
+
agent: primaryAgent,
|
|
49
|
+
confidence: fix.confidence
|
|
50
|
+
});
|
|
51
|
+
return fix;
|
|
52
|
+
}
|
|
53
|
+
catch (primaryError) {
|
|
54
|
+
this.categoryLogger.warn('Primary agent failed, trying fallback', {
|
|
55
|
+
primaryAgent,
|
|
56
|
+
fallbackAgent,
|
|
57
|
+
error: primaryError instanceof Error ? primaryError.message : 'Unknown error'
|
|
58
|
+
});
|
|
59
|
+
// Try fallback agent if different from primary
|
|
60
|
+
if (fallbackAgent !== primaryAgent) {
|
|
61
|
+
try {
|
|
62
|
+
const fix = await this.generateFixWithAgent(violation, analysis, fallbackAgent);
|
|
63
|
+
this.categoryLogger.info('Fix generated successfully with fallback agent', {
|
|
64
|
+
agent: fallbackAgent,
|
|
65
|
+
confidence: fix.confidence
|
|
66
|
+
});
|
|
67
|
+
// Add note about fallback usage
|
|
68
|
+
fix.explanation = `[Generated using ${fallbackAgent} as fallback]\n\n${fix.explanation}`;
|
|
69
|
+
return fix;
|
|
70
|
+
}
|
|
71
|
+
catch (fallbackError) {
|
|
72
|
+
this.categoryLogger.error('Both agents failed', {
|
|
73
|
+
primaryError: primaryError instanceof Error ? primaryError.message : 'Unknown error',
|
|
74
|
+
fallbackError: fallbackError instanceof Error ? fallbackError.message : 'Unknown error'
|
|
75
|
+
});
|
|
76
|
+
throw new Error(`Both coding agents failed. Primary (${primaryAgent}): ${primaryError instanceof Error ? primaryError.message : 'Unknown error'}. Fallback (${fallbackAgent}): ${fallbackError instanceof Error ? fallbackError.message : 'Unknown error'}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
throw primaryError;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Generate fix with specific agent
|
|
86
|
+
*/
|
|
87
|
+
async generateFixWithAgent(violation, analysis, agent) {
|
|
88
|
+
switch (agent) {
|
|
89
|
+
case 'jules':
|
|
90
|
+
return await this.generateFixWithJules(violation, analysis);
|
|
91
|
+
case 'gemini':
|
|
92
|
+
return await this.generateFixWithGemini(violation, analysis);
|
|
93
|
+
default:
|
|
94
|
+
throw new Error(`Unknown coding agent: ${agent}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Generate fix using Jules
|
|
99
|
+
*/
|
|
100
|
+
async generateFixWithJules(violation, analysis) {
|
|
101
|
+
if (!this.julesImplementer) {
|
|
102
|
+
throw new APIError('Jules API key not configured', ErrorType.AUTHENTICATION, {
|
|
103
|
+
suggestions: [
|
|
104
|
+
'Run "base config set-keys" to configure Jules API key',
|
|
105
|
+
'Get Jules API key from https://jules.google.com/settings#api',
|
|
106
|
+
'Switch to Gemini agent with "base config coding-agent gemini"'
|
|
107
|
+
]
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
// Check if repository is detected for Jules
|
|
111
|
+
const isRepoDetected = await this.julesImplementer.isRepositoryDetected();
|
|
112
|
+
if (!isRepoDetected) {
|
|
113
|
+
throw new APIError('Jules requires a GitHub repository', ErrorType.CONFIGURATION, {
|
|
114
|
+
suggestions: [
|
|
115
|
+
'Ensure you are in a git repository with GitHub remote',
|
|
116
|
+
'Jules only works with GitHub repositories',
|
|
117
|
+
'Switch to Gemini agent for local files: "base config coding-agent gemini"'
|
|
118
|
+
]
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return await this.julesImplementer.generateFix(violation, analysis);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Generate fix using Gemini
|
|
125
|
+
*/
|
|
126
|
+
async generateFixWithGemini(violation, analysis) {
|
|
127
|
+
if (!this.geminiCodeFixer) {
|
|
128
|
+
throw new APIError('Gemini API key not configured', ErrorType.AUTHENTICATION, {
|
|
129
|
+
suggestions: [
|
|
130
|
+
'Run "base config set-keys" to configure Gemini API key',
|
|
131
|
+
'Get Gemini API key from https://aistudio.google.com',
|
|
132
|
+
'Switch to Jules agent with "base config coding-agent jules"'
|
|
133
|
+
]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return await this.geminiCodeFixer.generateFix(violation, analysis);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Generate multiple fix options using available agents
|
|
140
|
+
*/
|
|
141
|
+
async generateFixOptions(violation, analysis) {
|
|
142
|
+
const fixes = [];
|
|
143
|
+
try {
|
|
144
|
+
// Try primary agent
|
|
145
|
+
const primaryFix = await this.generateFix(violation, analysis);
|
|
146
|
+
fixes.push(primaryFix);
|
|
147
|
+
// If primary agent has low confidence, try the other agent for alternatives
|
|
148
|
+
if (primaryFix.confidence < 0.7) {
|
|
149
|
+
const alternativeAgent = this.config.codingAgent.primary === 'jules' ? 'gemini' : 'jules';
|
|
150
|
+
try {
|
|
151
|
+
const alternativeFix = await this.generateFixWithAgent(violation, analysis, alternativeAgent);
|
|
152
|
+
alternativeFix.explanation = `[Alternative approach using ${alternativeAgent}]\n\n${alternativeFix.explanation}`;
|
|
153
|
+
fixes.push(alternativeFix);
|
|
154
|
+
this.categoryLogger.info('Generated alternative fix', {
|
|
155
|
+
primaryAgent: this.config.codingAgent.primary,
|
|
156
|
+
alternativeAgent,
|
|
157
|
+
primaryConfidence: primaryFix.confidence,
|
|
158
|
+
alternativeConfidence: alternativeFix.confidence
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
this.categoryLogger.debug('Alternative agent failed', {
|
|
163
|
+
agent: alternativeAgent,
|
|
164
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
this.categoryLogger.error('Failed to generate fix options', { error });
|
|
171
|
+
throw error;
|
|
172
|
+
}
|
|
173
|
+
return fixes;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Get agent capabilities and status
|
|
177
|
+
*/
|
|
178
|
+
async getAgentStatus() {
|
|
179
|
+
const status = {
|
|
180
|
+
jules: { available: false, configured: !!this.config.apiKeys.jules, error: undefined, repoDetected: undefined },
|
|
181
|
+
gemini: { available: false, configured: !!this.config.apiKeys.gemini, error: undefined },
|
|
182
|
+
primary: this.config.codingAgent.primary,
|
|
183
|
+
fallback: this.config.codingAgent.fallback
|
|
184
|
+
};
|
|
185
|
+
// Test Jules availability
|
|
186
|
+
if (this.julesImplementer) {
|
|
187
|
+
try {
|
|
188
|
+
const connectionTest = await this.julesImplementer.testConnection();
|
|
189
|
+
status.jules.available = connectionTest.success;
|
|
190
|
+
if (!connectionTest.success) {
|
|
191
|
+
status.jules.error = connectionTest.error;
|
|
192
|
+
}
|
|
193
|
+
// Check repository detection
|
|
194
|
+
status.jules.repoDetected = await this.julesImplementer.isRepositoryDetected();
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
status.jules.error = error instanceof Error ? error.message : 'Unknown error';
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Test Gemini availability
|
|
201
|
+
if (this.geminiCodeFixer) {
|
|
202
|
+
try {
|
|
203
|
+
const connectionTest = await this.geminiCodeFixer.testConnection();
|
|
204
|
+
status.gemini.available = connectionTest.success;
|
|
205
|
+
if (!connectionTest.success) {
|
|
206
|
+
status.gemini.error = connectionTest.error;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
status.gemini.error = error instanceof Error ? error.message : 'Unknown error';
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return status;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Show agent comparison and recommendations
|
|
217
|
+
*/
|
|
218
|
+
showAgentComparison() {
|
|
219
|
+
console.log(chalk.cyan('\nš¤ Coding Agent Comparison\n'));
|
|
220
|
+
console.log(chalk.white('Jules (Google\'s Autonomous Coding Agent):'));
|
|
221
|
+
console.log(chalk.green(' ā
Autonomous operation in cloud VMs'));
|
|
222
|
+
console.log(chalk.green(' ā
Full repository context understanding'));
|
|
223
|
+
console.log(chalk.green(' ā
Asynchronous processing'));
|
|
224
|
+
console.log(chalk.green(' ā
Integrated with GitHub workflows'));
|
|
225
|
+
console.log(chalk.red(' ā Requires GitHub repository'));
|
|
226
|
+
console.log(chalk.red(' ā Cannot work with local/uncommitted files'));
|
|
227
|
+
console.log(chalk.red(' ā Slower (asynchronous processing)'));
|
|
228
|
+
console.log(chalk.white('\nGemini 2.5 Pro (Direct API Integration):'));
|
|
229
|
+
console.log(chalk.green(' ā
Works with any files (GitHub or not)'));
|
|
230
|
+
console.log(chalk.green(' ā
Immediate processing'));
|
|
231
|
+
console.log(chalk.green(' ā
Works with uncommitted/local files'));
|
|
232
|
+
console.log(chalk.green(' ā
Grounded with real-time web search'));
|
|
233
|
+
console.log(chalk.yellow(' ā ļø Requires manual code application'));
|
|
234
|
+
console.log(chalk.yellow(' ā ļø Limited to single-file context'));
|
|
235
|
+
console.log(chalk.cyan('\nš” Recommendations:'));
|
|
236
|
+
console.log(chalk.cyan(' ⢠Use Jules for: GitHub repositories, complex multi-file changes'));
|
|
237
|
+
console.log(chalk.cyan(' ⢠Use Gemini for: Local development, quick fixes, non-GitHub projects'));
|
|
238
|
+
console.log(chalk.cyan(' ⢠Configure both for maximum flexibility'));
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Switch primary coding agent
|
|
242
|
+
*/
|
|
243
|
+
async switchPrimaryAgent(agent) {
|
|
244
|
+
this.config.codingAgent.primary = agent;
|
|
245
|
+
this.categoryLogger.info('Switched primary coding agent', { agent });
|
|
246
|
+
console.log(chalk.green(`ā
Primary coding agent switched to ${agent}`));
|
|
247
|
+
// Show agent-specific setup instructions
|
|
248
|
+
if (agent === 'jules' && !this.config.apiKeys.jules) {
|
|
249
|
+
console.log(chalk.yellow('\nā ļø Jules API key not configured'));
|
|
250
|
+
console.log(chalk.cyan('Run "base config set-keys" to configure Jules API key'));
|
|
251
|
+
}
|
|
252
|
+
else if (agent === 'gemini' && !this.config.apiKeys.gemini) {
|
|
253
|
+
console.log(chalk.yellow('\nā ļø Gemini API key not configured'));
|
|
254
|
+
console.log(chalk.cyan('Run "base config set-keys" to configure Gemini API key'));
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get recommended agent based on current context
|
|
259
|
+
*/
|
|
260
|
+
async getRecommendedAgent() {
|
|
261
|
+
// Check if we're in a GitHub repository
|
|
262
|
+
const isGitHubRepo = this.julesImplementer ? await this.julesImplementer.isRepositoryDetected() : false;
|
|
263
|
+
if (isGitHubRepo && this.config.apiKeys.jules) {
|
|
264
|
+
return {
|
|
265
|
+
agent: 'jules',
|
|
266
|
+
reason: 'GitHub repository detected and Jules is configured'
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
else if (this.config.apiKeys.gemini) {
|
|
270
|
+
return {
|
|
271
|
+
agent: 'gemini',
|
|
272
|
+
reason: isGitHubRepo ? 'Gemini works with any files including local changes' : 'Not in a GitHub repository, Gemini works with local files'
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
else if (this.config.apiKeys.jules) {
|
|
276
|
+
return {
|
|
277
|
+
agent: 'jules',
|
|
278
|
+
reason: 'Only Jules is configured'
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
return {
|
|
283
|
+
agent: 'gemini',
|
|
284
|
+
reason: 'Default recommendation for local development'
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=unified-code-fixer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-code-fixer.js","sourceRoot":"","sources":["../../src/ai/unified-code-fixer.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/check.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Check for compatibility violations
|
|
2
|
+
* Check for compatibility violations with enhanced error recovery
|
|
3
3
|
*/
|
|
4
4
|
export declare function check(options: {
|
|
5
5
|
strict?: boolean;
|
|
6
6
|
files?: string;
|
|
7
7
|
format?: 'table' | 'json' | 'junit';
|
|
8
|
+
debug?: boolean;
|
|
9
|
+
offline?: boolean;
|
|
8
10
|
}): Promise<void>;
|
|
9
11
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqRhB"}
|
package/dist/commands/check.js
CHANGED
|
@@ -1,57 +1,133 @@
|
|
|
1
1
|
import { UIComponents } from '../ui/index.js';
|
|
2
2
|
import { BaseGuard } from '../core/baseguard.js';
|
|
3
3
|
import { ConfigurationManager } from '../core/configuration.js';
|
|
4
|
+
import { ConfigurationRecovery } from '../core/configuration-recovery.js';
|
|
5
|
+
import { GracefulDegradationManager } from '../core/graceful-degradation-manager.js';
|
|
6
|
+
import { SystemErrorHandler } from '../core/system-error-handler.js';
|
|
4
7
|
import { ErrorHandler } from '../core/error-handler.js';
|
|
8
|
+
import { logger } from '../core/debug-logger.js';
|
|
5
9
|
import { glob } from 'glob';
|
|
6
10
|
import chalk from 'chalk';
|
|
7
11
|
/**
|
|
8
|
-
* Check for compatibility violations
|
|
12
|
+
* Check for compatibility violations with enhanced error recovery
|
|
9
13
|
*/
|
|
10
14
|
export async function check(options) {
|
|
15
|
+
const categoryLogger = logger.createCategoryLogger('check-command');
|
|
16
|
+
const sessionId = logger.startSession('check-command');
|
|
11
17
|
try {
|
|
18
|
+
// Enable debug logging if requested
|
|
19
|
+
if (options.debug) {
|
|
20
|
+
logger.enableDebug();
|
|
21
|
+
}
|
|
22
|
+
// Set offline mode if requested
|
|
23
|
+
if (options.offline) {
|
|
24
|
+
SystemErrorHandler.setOfflineMode(true);
|
|
25
|
+
}
|
|
12
26
|
UIComponents.showHeader();
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
27
|
+
categoryLogger.info('Starting compatibility check', { options });
|
|
28
|
+
// Load configuration with recovery
|
|
29
|
+
const config = await SystemErrorHandler.withRetry(async () => {
|
|
30
|
+
try {
|
|
31
|
+
return await ConfigurationManager.load();
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
categoryLogger.warn('Configuration load failed, attempting recovery', { error });
|
|
35
|
+
// Attempt configuration recovery
|
|
36
|
+
const recoveryResult = await ConfigurationRecovery.recoverConfiguration({
|
|
37
|
+
createBackup: true,
|
|
38
|
+
validateConfig: true,
|
|
39
|
+
migrateVersion: true,
|
|
40
|
+
repairCorruption: true,
|
|
41
|
+
useDefaults: true
|
|
42
|
+
});
|
|
43
|
+
if (recoveryResult.success && recoveryResult.config) {
|
|
44
|
+
if (recoveryResult.warnings.length > 0) {
|
|
45
|
+
console.log(chalk.yellow('ā ļø Configuration was recovered with warnings:'));
|
|
46
|
+
recoveryResult.warnings.forEach(warning => {
|
|
47
|
+
console.log(chalk.yellow(` ⢠${warning}`));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return recoveryResult.config;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new Error(`Configuration recovery failed: ${recoveryResult.errors.join(', ')}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}, { operation: 'load_configuration' }, 2 // max retries
|
|
57
|
+
);
|
|
58
|
+
// Initialize BaseGuard with error handling
|
|
59
|
+
const baseGuard = await SystemErrorHandler.handleGracefully(async () => new BaseGuard(config), null, { operation: 'initialize_baseguard' });
|
|
60
|
+
if (!baseGuard) {
|
|
61
|
+
throw new Error('Failed to initialize BaseGuard');
|
|
62
|
+
}
|
|
17
63
|
const spinner = UIComponents.createSpinner('Scanning files for compatibility issues...');
|
|
18
64
|
spinner.start();
|
|
19
|
-
// Get files to check
|
|
65
|
+
// Get files to check with error recovery
|
|
20
66
|
const filePattern = options.files || '**/*.{js,jsx,ts,tsx,vue,svelte,css,html}';
|
|
21
|
-
const files = await
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
67
|
+
const files = await SystemErrorHandler.handleGracefully(async () => {
|
|
68
|
+
return await glob(filePattern, {
|
|
69
|
+
ignore: [
|
|
70
|
+
'node_modules/**',
|
|
71
|
+
'dist/**',
|
|
72
|
+
'build/**',
|
|
73
|
+
'.git/**',
|
|
74
|
+
'**/*.min.js',
|
|
75
|
+
'**/*.min.css'
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
}, [], // fallback to empty array
|
|
79
|
+
{ operation: 'find_files', details: { pattern: filePattern } });
|
|
31
80
|
if (files.length === 0) {
|
|
32
81
|
spinner.fail('No files found to check');
|
|
82
|
+
// Show degradation status if in limited mode
|
|
83
|
+
const mode = GracefulDegradationManager.getCurrentMode();
|
|
84
|
+
if (mode && mode.name !== 'Full Functionality') {
|
|
85
|
+
console.log(chalk.yellow(`\nā ļø Currently in ${mode.name} mode`));
|
|
86
|
+
if (mode.limitations.length > 0) {
|
|
87
|
+
console.log(chalk.yellow('Limitations:'));
|
|
88
|
+
mode.limitations.forEach(limitation => {
|
|
89
|
+
console.log(chalk.yellow(` ⢠${limitation}`));
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
33
93
|
UIComponents.showWarningBox('No files matched the pattern. Try adjusting the --files option.');
|
|
34
94
|
return;
|
|
35
95
|
}
|
|
36
96
|
spinner.text = `Analyzing ${files.length} files...`;
|
|
37
|
-
|
|
38
|
-
|
|
97
|
+
categoryLogger.info(`Found ${files.length} files to analyze`);
|
|
98
|
+
// Scan for violations with enhanced error handling
|
|
99
|
+
const violations = await SystemErrorHandler.handleGracefully(async () => {
|
|
100
|
+
return await baseGuard.checkViolations(files);
|
|
101
|
+
}, [], // fallback to empty violations
|
|
102
|
+
{ operation: 'check_violations', details: { fileCount: files.length } }, {
|
|
103
|
+
logError: true,
|
|
104
|
+
showWarning: true,
|
|
105
|
+
attemptRecovery: true
|
|
106
|
+
});
|
|
39
107
|
spinner.stop();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
108
|
+
categoryLogger.info(`Scan completed, found ${violations.length} violations`);
|
|
109
|
+
// Display results based on format with error handling
|
|
110
|
+
await SystemErrorHandler.handleGracefully(async () => {
|
|
111
|
+
switch (options.format) {
|
|
112
|
+
case 'json':
|
|
113
|
+
console.log(JSON.stringify(violations, null, 2));
|
|
114
|
+
break;
|
|
115
|
+
case 'junit':
|
|
116
|
+
UIComponents.showJUnitReport(violations);
|
|
117
|
+
break;
|
|
118
|
+
default:
|
|
119
|
+
UIComponents.showViolations(violations);
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
}, undefined, { operation: 'display_results', details: { format: options.format, violationCount: violations.length } }, { logError: true, showWarning: false });
|
|
123
|
+
// Show summary with degradation mode info
|
|
53
124
|
if (violations.length === 0) {
|
|
54
125
|
UIComponents.showSuccessBox('š No compatibility violations found!');
|
|
126
|
+
// Show mode info if not in full functionality
|
|
127
|
+
const mode = GracefulDegradationManager.getCurrentMode();
|
|
128
|
+
if (mode && mode.name !== 'Full Functionality') {
|
|
129
|
+
console.log(chalk.dim(`\nScan completed in ${mode.name} mode`));
|
|
130
|
+
}
|
|
55
131
|
}
|
|
56
132
|
else {
|
|
57
133
|
const summary = {
|
|
@@ -69,7 +145,32 @@ export async function check(options) {
|
|
|
69
145
|
console.log(` Total violations: ${summary.total}`);
|
|
70
146
|
console.log(` Files affected: ${Object.keys(summary.byFile).length}`);
|
|
71
147
|
console.log(` Browsers affected: ${Object.keys(summary.byBrowser).join(', ')}`);
|
|
72
|
-
|
|
148
|
+
// Show appropriate next steps based on current mode
|
|
149
|
+
const mode = GracefulDegradationManager.getCurrentMode();
|
|
150
|
+
if (mode?.capabilities.autoFix) {
|
|
151
|
+
UIComponents.showInfoBox('Run "base fix" to automatically fix these issues with AI assistance.');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
UIComponents.showInfoBox('AI fixing is not available in current mode. Review violations manually or restore full functionality.');
|
|
155
|
+
}
|
|
156
|
+
if (mode && mode.name !== 'Full Functionality') {
|
|
157
|
+
console.log(chalk.dim(`\nScan completed in ${mode.name} mode`));
|
|
158
|
+
if (mode.limitations.length > 0) {
|
|
159
|
+
console.log(chalk.yellow('Current limitations:'));
|
|
160
|
+
mode.limitations.forEach(limitation => {
|
|
161
|
+
console.log(chalk.yellow(` ⢠${limitation}`));
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Create auto-backup if violations found
|
|
167
|
+
if (violations.length > 0) {
|
|
168
|
+
await SystemErrorHandler.handleGracefully(async () => {
|
|
169
|
+
const backup = await baseGuard.createConfigBackup();
|
|
170
|
+
if (backup) {
|
|
171
|
+
categoryLogger.debug('Created configuration backup', { backup });
|
|
172
|
+
}
|
|
173
|
+
}, undefined, { operation: 'create_backup' }, { logError: false, showWarning: false });
|
|
73
174
|
}
|
|
74
175
|
// Exit with error code if violations found and strict mode
|
|
75
176
|
if (options.strict && violations.length > 0) {
|
|
@@ -77,13 +178,19 @@ export async function check(options) {
|
|
|
77
178
|
}
|
|
78
179
|
}
|
|
79
180
|
catch (error) {
|
|
181
|
+
categoryLogger.error('Check command failed', { error });
|
|
80
182
|
const apiError = ErrorHandler.handleAPIError(error);
|
|
81
183
|
ErrorHandler.displayError(apiError);
|
|
184
|
+
// Handle service failures gracefully
|
|
185
|
+
if (ErrorHandler.shouldUseFallbackMode(apiError)) {
|
|
186
|
+
await GracefulDegradationManager.handleServiceFailure('check', apiError.type);
|
|
187
|
+
}
|
|
82
188
|
// Provide specific help for check command issues
|
|
83
189
|
console.log('\nš” Troubleshooting:');
|
|
84
190
|
if (apiError.type === 'configuration') {
|
|
85
191
|
UIComponents.showList([
|
|
86
192
|
'Run "base init" to set up BaseGuard configuration',
|
|
193
|
+
'Run "base config recover" to attempt automatic recovery',
|
|
87
194
|
'Check that .baseguardrc.json exists and is valid',
|
|
88
195
|
'Run "base config validate" to check configuration'
|
|
89
196
|
]);
|
|
@@ -92,14 +199,17 @@ export async function check(options) {
|
|
|
92
199
|
UIComponents.showList([
|
|
93
200
|
`No files found matching pattern: ${options.files}`,
|
|
94
201
|
'Try a different file pattern (e.g., "src/**/*.ts")',
|
|
95
|
-
'Check that files exist in the specified locations'
|
|
202
|
+
'Check that files exist in the specified locations',
|
|
203
|
+
'Use --debug flag for detailed logging'
|
|
96
204
|
]);
|
|
97
205
|
}
|
|
98
206
|
else {
|
|
99
207
|
UIComponents.showList([
|
|
100
208
|
'Check that you\'re in a project directory',
|
|
101
209
|
'Verify file permissions for reading project files',
|
|
102
|
-
'Try running with a specific file pattern: --files "src/**/*.js"'
|
|
210
|
+
'Try running with a specific file pattern: --files "src/**/*.js"',
|
|
211
|
+
'Use --offline flag if network issues are suspected',
|
|
212
|
+
'Use --debug flag for detailed error information'
|
|
103
213
|
]);
|
|
104
214
|
}
|
|
105
215
|
// Show fallback suggestions
|
|
@@ -107,7 +217,29 @@ export async function check(options) {
|
|
|
107
217
|
console.log('\nš Fallback options:');
|
|
108
218
|
UIComponents.showList(ErrorHandler.getFallbackSuggestions(apiError.type));
|
|
109
219
|
}
|
|
220
|
+
// Show recovery options
|
|
221
|
+
console.log('\nš§ Recovery options:');
|
|
222
|
+
UIComponents.showList([
|
|
223
|
+
'Run "base status" to check system health',
|
|
224
|
+
'Run "base config recover" to fix configuration issues',
|
|
225
|
+
'Run with --debug flag to get detailed error information',
|
|
226
|
+
'Check logs in .baseguard/logs/ for more details'
|
|
227
|
+
]);
|
|
228
|
+
// Generate debug report if in debug mode
|
|
229
|
+
if (options.debug) {
|
|
230
|
+
try {
|
|
231
|
+
const reportFile = await logger.generateDebugReport();
|
|
232
|
+
console.log(chalk.dim(`\nDebug report saved to: ${reportFile}`));
|
|
233
|
+
}
|
|
234
|
+
catch (reportError) {
|
|
235
|
+
// Ignore report generation errors
|
|
236
|
+
}
|
|
237
|
+
}
|
|
110
238
|
process.exit(1);
|
|
111
239
|
}
|
|
240
|
+
finally {
|
|
241
|
+
// End logging session
|
|
242
|
+
await logger.endSession();
|
|
243
|
+
}
|
|
112
244
|
}
|
|
113
245
|
//# sourceMappingURL=check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFhB"}
|