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.
Files changed (156) hide show
  1. package/.baseguardrc.example.json +64 -0
  2. package/.eslintrc.json +1 -1
  3. package/CHANGELOG.md +196 -0
  4. package/DEPLOYMENT.md +625 -0
  5. package/DEPLOYMENT_CHECKLIST.md +239 -0
  6. package/DEPLOYMENT_SUMMARY_v1.0.2.md +202 -0
  7. package/QUICK_START.md +134 -0
  8. package/README.md +447 -52
  9. package/RELEASE_NOTES_v1.0.2.md +434 -0
  10. package/bin/base.js +155 -36
  11. package/dist/ai/agentkit-orchestrator.d.ts +116 -0
  12. package/dist/ai/agentkit-orchestrator.d.ts.map +1 -0
  13. package/dist/ai/agentkit-orchestrator.js +417 -0
  14. package/dist/ai/agentkit-orchestrator.js.map +1 -0
  15. package/dist/ai/gemini-code-fixer.d.ts +85 -0
  16. package/dist/ai/gemini-code-fixer.d.ts.map +1 -0
  17. package/dist/ai/gemini-code-fixer.js +452 -0
  18. package/dist/ai/gemini-code-fixer.js.map +1 -0
  19. package/dist/ai/jules-implementer.d.ts +5 -4
  20. package/dist/ai/jules-implementer.d.ts.map +1 -1
  21. package/dist/ai/jules-implementer.js +6 -5
  22. package/dist/ai/jules-implementer.js.map +1 -1
  23. package/dist/ai/unified-code-fixer.d.ts +69 -0
  24. package/dist/ai/unified-code-fixer.d.ts.map +1 -0
  25. package/dist/ai/unified-code-fixer.js +289 -0
  26. package/dist/ai/unified-code-fixer.js.map +1 -0
  27. package/dist/commands/check.d.ts +3 -1
  28. package/dist/commands/check.d.ts.map +1 -1
  29. package/dist/commands/check.js +166 -34
  30. package/dist/commands/check.js.map +1 -1
  31. package/dist/commands/config.d.ts +4 -0
  32. package/dist/commands/config.d.ts.map +1 -1
  33. package/dist/commands/config.js +183 -0
  34. package/dist/commands/config.js.map +1 -1
  35. package/dist/commands/fix.d.ts.map +1 -1
  36. package/dist/commands/fix.js +89 -91
  37. package/dist/commands/fix.js.map +1 -1
  38. package/dist/commands/index.d.ts +1 -0
  39. package/dist/commands/index.d.ts.map +1 -1
  40. package/dist/commands/index.js +1 -0
  41. package/dist/commands/index.js.map +1 -1
  42. package/dist/commands/init.d.ts.map +1 -1
  43. package/dist/commands/init.js +16 -2
  44. package/dist/commands/init.js.map +1 -1
  45. package/dist/commands/status.d.ts +14 -0
  46. package/dist/commands/status.d.ts.map +1 -0
  47. package/dist/commands/status.js +254 -0
  48. package/dist/commands/status.js.map +1 -0
  49. package/dist/core/baseguard.d.ts +47 -5
  50. package/dist/core/baseguard.d.ts.map +1 -1
  51. package/dist/core/baseguard.js +506 -52
  52. package/dist/core/baseguard.js.map +1 -1
  53. package/dist/core/cache-manager.d.ts.map +1 -1
  54. package/dist/core/cache-manager.js +3 -1
  55. package/dist/core/cache-manager.js.map +1 -1
  56. package/dist/core/configuration-recovery.d.ts +116 -0
  57. package/dist/core/configuration-recovery.d.ts.map +1 -0
  58. package/dist/core/configuration-recovery.js +552 -0
  59. package/dist/core/configuration-recovery.js.map +1 -0
  60. package/dist/core/configuration.d.ts +4 -0
  61. package/dist/core/configuration.d.ts.map +1 -1
  62. package/dist/core/configuration.js +35 -0
  63. package/dist/core/configuration.js.map +1 -1
  64. package/dist/core/debug-logger.d.ts +181 -0
  65. package/dist/core/debug-logger.d.ts.map +1 -0
  66. package/dist/core/debug-logger.js +479 -0
  67. package/dist/core/debug-logger.js.map +1 -0
  68. package/dist/core/file-processor.d.ts.map +1 -1
  69. package/dist/core/file-processor.js +8 -2
  70. package/dist/core/file-processor.js.map +1 -1
  71. package/dist/core/graceful-degradation-manager.d.ts +123 -0
  72. package/dist/core/graceful-degradation-manager.d.ts.map +1 -0
  73. package/dist/core/graceful-degradation-manager.js +512 -0
  74. package/dist/core/graceful-degradation-manager.js.map +1 -0
  75. package/dist/core/index.d.ts +4 -0
  76. package/dist/core/index.d.ts.map +1 -1
  77. package/dist/core/index.js +4 -0
  78. package/dist/core/index.js.map +1 -1
  79. package/dist/core/logger.d.ts +1 -0
  80. package/dist/core/logger.d.ts.map +1 -0
  81. package/dist/core/logger.js +2 -0
  82. package/dist/core/logger.js.map +1 -0
  83. package/dist/core/memory-manager.d.ts +84 -0
  84. package/dist/core/memory-manager.d.ts.map +1 -1
  85. package/dist/core/memory-manager.js +236 -1
  86. package/dist/core/memory-manager.js.map +1 -1
  87. package/dist/core/startup-optimizer.d.ts +12 -0
  88. package/dist/core/startup-optimizer.d.ts.map +1 -1
  89. package/dist/core/startup-optimizer.js +60 -0
  90. package/dist/core/startup-optimizer.js.map +1 -1
  91. package/dist/core/system-error-handler.d.ts +65 -0
  92. package/dist/core/system-error-handler.d.ts.map +1 -0
  93. package/dist/core/system-error-handler.js +646 -0
  94. package/dist/core/system-error-handler.js.map +1 -0
  95. package/dist/git/github-manager.d.ts +5 -16
  96. package/dist/git/github-manager.d.ts.map +1 -1
  97. package/dist/git/github-manager.js +6 -61
  98. package/dist/git/github-manager.js.map +1 -1
  99. package/dist/parsers/react-parser-optimized.d.ts +16 -0
  100. package/dist/parsers/react-parser-optimized.d.ts.map +1 -0
  101. package/dist/parsers/react-parser-optimized.js +147 -0
  102. package/dist/parsers/react-parser-optimized.js.map +1 -0
  103. package/dist/parsers/react-parser.d.ts.map +1 -1
  104. package/dist/parsers/react-parser.js +17 -15
  105. package/dist/parsers/react-parser.js.map +1 -1
  106. package/dist/parsers/svelte-parser.d.ts.map +1 -1
  107. package/dist/parsers/svelte-parser.js +7 -3
  108. package/dist/parsers/svelte-parser.js.map +1 -1
  109. package/dist/parsers/vanilla-parser.d.ts.map +1 -1
  110. package/dist/parsers/vanilla-parser.js +7 -3
  111. package/dist/parsers/vanilla-parser.js.map +1 -1
  112. package/dist/parsers/vue-parser.d.ts +18 -0
  113. package/dist/parsers/vue-parser.d.ts.map +1 -1
  114. package/dist/parsers/vue-parser.js +387 -1
  115. package/dist/parsers/vue-parser.js.map +1 -1
  116. package/dist/types/index.d.ts +4 -0
  117. package/dist/types/index.d.ts.map +1 -1
  118. package/dist/ui/help.js +1 -1
  119. package/dist/ui/help.js.map +1 -1
  120. package/dist/ui/prompts.d.ts +7 -4
  121. package/dist/ui/prompts.d.ts.map +1 -1
  122. package/dist/ui/prompts.js +48 -55
  123. package/dist/ui/prompts.js.map +1 -1
  124. package/package.json +30 -5
  125. package/src/ai/__tests__/gemini-analyzer.test.ts +2 -2
  126. package/src/ai/agentkit-orchestrator.ts +534 -0
  127. package/src/ai/gemini-code-fixer.ts +540 -0
  128. package/src/ai/jules-implementer.ts +6 -5
  129. package/src/ai/unified-code-fixer.ts +347 -0
  130. package/src/commands/config.ts +218 -0
  131. package/src/commands/fix.ts +98 -94
  132. package/src/commands/index.ts +2 -1
  133. package/src/commands/init.ts +16 -2
  134. package/src/commands/status.ts +307 -0
  135. package/src/core/baseguard.ts +36 -22
  136. package/src/core/cache-manager.ts +4 -2
  137. package/src/core/configuration-recovery.ts +3 -6
  138. package/src/core/configuration.ts +37 -0
  139. package/src/core/debug-logger.ts +2 -2
  140. package/src/core/file-processor.ts +10 -3
  141. package/src/core/index.ts +5 -1
  142. package/src/core/memory-manager.ts +4 -3
  143. package/src/core/startup-optimizer.ts +70 -0
  144. package/src/core/system-error-handler.ts +9 -5
  145. package/src/git/github-manager.ts +11 -79
  146. package/src/parsers/react-parser.ts +2 -2
  147. package/src/parsers/svelte-parser.ts +13 -9
  148. package/src/parsers/vanilla-parser.ts +18 -14
  149. package/src/parsers/vue-parser.ts +20 -14
  150. package/src/types/index.ts +4 -0
  151. package/src/ui/help.ts +1 -1
  152. package/src/ui/prompts.ts +54 -61
  153. package/test-build.js +41 -0
  154. package/tests/e2e/git-integration.e2e.test.ts +1 -1
  155. package/tsconfig.json +0 -1
  156. 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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"}
@@ -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":"AAQA;;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;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmHhB"}
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"}
@@ -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
- // Load configuration
14
- const config = await ConfigurationManager.load();
15
- // Initialize BaseGuard
16
- const baseGuard = new BaseGuard(config);
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 glob(filePattern, {
22
- ignore: [
23
- 'node_modules/**',
24
- 'dist/**',
25
- 'build/**',
26
- '.git/**',
27
- '**/*.min.js',
28
- '**/*.min.css'
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
- // Scan for violations
38
- const violations = await baseGuard.checkViolations(files);
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
- // Display results based on format
41
- switch (options.format) {
42
- case 'json':
43
- console.log(JSON.stringify(violations, null, 2));
44
- break;
45
- case 'junit':
46
- UIComponents.showJUnitReport(violations);
47
- break;
48
- default:
49
- UIComponents.showViolations(violations);
50
- break;
51
- }
52
- // Show summary
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
- UIComponents.showInfoBox('Run "base fix" to automatically fix these issues with AI assistance.');
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":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,9 @@ export declare function config(action: string, options?: {
7
7
  preset?: string;
8
8
  file?: string;
9
9
  format?: string;
10
+ backup?: boolean;
11
+ interactive?: boolean;
12
+ agent?: string;
13
+ show?: boolean;
10
14
  }): Promise<void>;
11
15
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAIA;;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;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhB"}
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"}