codehere 0.2.0 → 0.3.0

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.

Potentially problematic release.


This version of codehere might be problematic. Click here for more details.

Files changed (166) hide show
  1. package/dist/application/agents/multi-agent-orchestrator.d.ts +1 -0
  2. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
  3. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
  4. package/dist/application/services/dependency-container.d.ts +3 -0
  5. package/dist/application/services/dependency-container.d.ts.map +1 -1
  6. package/dist/application/services/dependency-container.js +24 -0
  7. package/dist/application/services/dependency-container.js.map +1 -1
  8. package/dist/application/use-cases/ask-question-use-case.d.ts +12 -0
  9. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
  10. package/dist/application/use-cases/ask-question-use-case.js +129 -9
  11. package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
  12. package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -1
  13. package/dist/application/use-cases/edit-file-use-case.js +70 -3
  14. package/dist/application/use-cases/edit-file-use-case.js.map +1 -1
  15. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
  16. package/dist/application/use-cases/planning-use-case.js +10 -1
  17. package/dist/application/use-cases/planning-use-case.js.map +1 -1
  18. package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -1
  19. package/dist/application/use-cases/react-orchestration-use-case.js +6 -2
  20. package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -1
  21. package/dist/domain/services/react-loop.d.ts +8 -0
  22. package/dist/domain/services/react-loop.d.ts.map +1 -1
  23. package/dist/domain/services/react-loop.js +82 -6
  24. package/dist/domain/services/react-loop.js.map +1 -1
  25. package/dist/formatter.d.ts +2 -2
  26. package/dist/formatter.d.ts.map +1 -1
  27. package/dist/formatter.js +30 -17
  28. package/dist/formatter.js.map +1 -1
  29. package/dist/index.js +134 -15
  30. package/dist/index.js.map +1 -1
  31. package/dist/infrastructure/ai/cohere-ai-service.d.ts +3 -1
  32. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -1
  33. package/dist/infrastructure/ai/cohere-ai-service.js +51 -4
  34. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
  35. package/dist/infrastructure/cache/query-result-cache.d.ts +68 -0
  36. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
  37. package/dist/infrastructure/cache/query-result-cache.js +138 -0
  38. package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
  39. package/dist/infrastructure/cache/security-scan-cache.d.ts +57 -0
  40. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
  41. package/dist/infrastructure/cache/security-scan-cache.js +124 -0
  42. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -0
  43. package/dist/infrastructure/completion/bash-completion.d.ts +8 -0
  44. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
  45. package/dist/infrastructure/completion/bash-completion.js +101 -0
  46. package/dist/infrastructure/completion/bash-completion.js.map +1 -0
  47. package/dist/infrastructure/completion/completion-generator.d.ts +42 -0
  48. package/dist/infrastructure/completion/completion-generator.d.ts.map +1 -0
  49. package/dist/infrastructure/completion/completion-generator.js +184 -0
  50. package/dist/infrastructure/completion/completion-generator.js.map +1 -0
  51. package/dist/infrastructure/completion/fish-completion.d.ts +8 -0
  52. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
  53. package/dist/infrastructure/completion/fish-completion.js +65 -0
  54. package/dist/infrastructure/completion/fish-completion.js.map +1 -0
  55. package/dist/infrastructure/completion/zsh-completion.d.ts +8 -0
  56. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
  57. package/dist/infrastructure/completion/zsh-completion.js +85 -0
  58. package/dist/infrastructure/completion/zsh-completion.js.map +1 -0
  59. package/dist/infrastructure/context/context-compressor.d.ts +94 -0
  60. package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
  61. package/dist/infrastructure/context/context-compressor.js +329 -0
  62. package/dist/infrastructure/context/context-compressor.js.map +1 -0
  63. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -1
  64. package/dist/infrastructure/governance/policy-as-code.js +18 -3
  65. package/dist/infrastructure/governance/policy-as-code.js.map +1 -1
  66. package/dist/infrastructure/observability/execution-tracer.d.ts +5 -2
  67. package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -1
  68. package/dist/infrastructure/observability/execution-tracer.js +45 -8
  69. package/dist/infrastructure/observability/execution-tracer.js.map +1 -1
  70. package/dist/infrastructure/security/ai-sast-scanner.d.ts +4 -0
  71. package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -1
  72. package/dist/infrastructure/security/ai-sast-scanner.js +82 -4
  73. package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -1
  74. package/dist/infrastructure/security/enhanced-security-gate.d.ts +2 -0
  75. package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -1
  76. package/dist/infrastructure/security/enhanced-security-gate.js +74 -15
  77. package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -1
  78. package/dist/infrastructure/storage/plan-repository.d.ts +38 -0
  79. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
  80. package/dist/infrastructure/storage/plan-repository.js +133 -0
  81. package/dist/infrastructure/storage/plan-repository.js.map +1 -0
  82. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +11 -0
  83. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
  84. package/dist/infrastructure/storage/sqlite-embedding-repository.js +121 -6
  85. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
  86. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +24 -0
  87. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
  88. package/dist/infrastructure/ux/contextual-feature-discovery.js +144 -0
  89. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
  90. package/dist/infrastructure/ux/expectation-management.d.ts +33 -0
  91. package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -1
  92. package/dist/infrastructure/ux/expectation-management.js +138 -4
  93. package/dist/infrastructure/ux/expectation-management.js.map +1 -1
  94. package/dist/infrastructure/ux/feature-discovery.d.ts +47 -0
  95. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
  96. package/dist/infrastructure/ux/feature-discovery.js +190 -0
  97. package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
  98. package/dist/infrastructure/ux/hitl-review-portal.d.ts +47 -0
  99. package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -0
  100. package/dist/infrastructure/ux/hitl-review-portal.js +225 -0
  101. package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -0
  102. package/dist/infrastructure/ux/progress-indicator.d.ts +54 -0
  103. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
  104. package/dist/infrastructure/ux/progress-indicator.js +121 -0
  105. package/dist/infrastructure/ux/progress-indicator.js.map +1 -0
  106. package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -1
  107. package/dist/infrastructure/ux/progressive-disclosure.js +2 -1
  108. package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -1
  109. package/dist/infrastructure/ux/review-checkpoint.d.ts +35 -0
  110. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
  111. package/dist/infrastructure/ux/review-checkpoint.js +119 -0
  112. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
  113. package/dist/infrastructure/ux/staged-feature-intro.d.ts +47 -0
  114. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
  115. package/dist/infrastructure/ux/staged-feature-intro.js +144 -0
  116. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
  117. package/dist/infrastructure/ux/syntax-highlighter.d.ts +21 -0
  118. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
  119. package/dist/infrastructure/ux/syntax-highlighter.js +172 -0
  120. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -0
  121. package/dist/infrastructure/xai/cot-visualizer.d.ts +1 -0
  122. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -1
  123. package/dist/infrastructure/xai/cot-visualizer.js +57 -10
  124. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -1
  125. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
  126. package/dist/presentation/cli/commands/ask-command.js +68 -11
  127. package/dist/presentation/cli/commands/ask-command.js.map +1 -1
  128. package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
  129. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
  130. package/dist/presentation/cli/commands/orchestrate-command.js +35 -1
  131. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
  132. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
  133. package/dist/presentation/cli/commands/plan-command.js +57 -5
  134. package/dist/presentation/cli/commands/plan-command.js.map +1 -1
  135. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
  136. package/dist/presentation/cli/commands/react-command.js +95 -15
  137. package/dist/presentation/cli/commands/react-command.js.map +1 -1
  138. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
  139. package/dist/presentation/cli/commands/setup-command.js +67 -12
  140. package/dist/presentation/cli/commands/setup-command.js.map +1 -1
  141. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
  142. package/dist/presentation/cli/commands/smart-command.js +136 -18
  143. package/dist/presentation/cli/commands/smart-command.js.map +1 -1
  144. package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -1
  145. package/dist/presentation/cli/commands/trace-command.js +9 -5
  146. package/dist/presentation/cli/commands/trace-command.js.map +1 -1
  147. package/dist/presentation/cli/commands/undo-command.js +15 -6
  148. package/dist/presentation/cli/commands/undo-command.js.map +1 -1
  149. package/dist/presentation/cli/error-display.d.ts +2 -0
  150. package/dist/presentation/cli/error-display.d.ts.map +1 -1
  151. package/dist/presentation/cli/error-display.js +177 -2
  152. package/dist/presentation/cli/error-display.js.map +1 -1
  153. package/dist/presentation/cli/keyboard-shortcuts.d.ts +27 -0
  154. package/dist/presentation/cli/keyboard-shortcuts.d.ts.map +1 -0
  155. package/dist/presentation/cli/keyboard-shortcuts.js +77 -0
  156. package/dist/presentation/cli/keyboard-shortcuts.js.map +1 -0
  157. package/dist/session.d.ts.map +1 -1
  158. package/dist/session.js +20 -0
  159. package/dist/session.js.map +1 -1
  160. package/dist/utils/version.js +2 -2
  161. package/dist/verification/backup.d.ts.map +1 -1
  162. package/dist/verification/backup.js +24 -3
  163. package/dist/verification/backup.js.map +1 -1
  164. package/dist/verification/compiler.js +47 -12
  165. package/dist/verification/compiler.js.map +1 -1
  166. package/package.json +1 -1
@@ -3,9 +3,11 @@
3
3
  * Intelligent routing - user just types what they want
4
4
  */
5
5
  import { IntelligentRouter } from '../../../application/services/intelligent-router.js';
6
- import { colors, success, error, warning, newline, separator, symbols, } from '../../../ui.js';
6
+ import { colors, sectionHeader, formatNumber, formatPath, createTable, success, error, warning, newline, separator, symbols, } from '../../../ui.js';
7
7
  import { cleanResponse } from '../../../formatter.js';
8
8
  import { executionTracer } from '../../../infrastructure/observability/execution-tracer.js';
9
+ import { displayError } from '../error-display.js';
10
+ import { trackCommand, shouldShowFeatureDiscovery, markFeatureDiscoveryShown, } from '../../../infrastructure/ux/feature-discovery.js';
9
11
  export async function executeSmartCommand(query) {
10
12
  // Use dependency container to get memory-aware router
11
13
  const { container } = await import('../../../application/services/dependency-container.js');
@@ -32,12 +34,29 @@ export async function executeSmartCommand(query) {
32
34
  currentDirectory: process.cwd(),
33
35
  },
34
36
  });
35
- // Display result based on action type - atomic, human-like
37
+ // Calculate execution time for summary
38
+ const executionTime = ((Date.now() - startTime) / 1000).toFixed(2);
39
+ // Display result based on action type - enhanced with better formatting
36
40
  switch (result.action) {
37
41
  case 'ask':
38
- // Atomic: Just show the answer, no verbose tables
42
+ // Enhanced: Show answer with better formatting and summary
43
+ sectionHeader('Answer');
39
44
  console.log(cleanResponse(result.message || 'No answer generated'));
40
45
  newline();
46
+ // Show summary statistics
47
+ const summaryRows = [];
48
+ summaryRows.push(['Execution Time', `${executionTime}s`]);
49
+ if (result.memoriesUsed) {
50
+ summaryRows.push(['Memories Used', formatNumber(result.memoriesUsed)]);
51
+ }
52
+ // Add summary if we have metrics
53
+ if (summaryRows.length > 1) {
54
+ console.log(separator('─', 80));
55
+ sectionHeader('Summary');
56
+ const summaryTable = createTable(['Metric', 'Value'], summaryRows);
57
+ console.log(summaryTable.toString());
58
+ newline();
59
+ }
41
60
  break;
42
61
  case 'explain':
43
62
  // Atomic: Just show the explanation
@@ -49,28 +68,93 @@ export async function executeSmartCommand(query) {
49
68
  break;
50
69
  case 'edit':
51
70
  console.log(separator('═', 80));
52
- console.log(colors.bold('Edit Result'));
71
+ sectionHeader('Edit Result');
53
72
  console.log(separator('═', 80));
54
73
  newline();
55
74
  if (result.success) {
56
- console.log(success('Edit applied successfully'));
57
- if (result.result) {
58
- const editResult = result.result;
59
- if (editResult.edit?.filepath) {
60
- console.log(colors.dim(`File: ${editResult.edit.filepath}`));
75
+ const editResult = result.result;
76
+ // Display license warnings if present (Enhanced Security - License Scanning)
77
+ if (editResult?.licenseFindings && editResult.licenseFindings.length > 0) {
78
+ sectionHeader('License Scan');
79
+ const criticalFindings = editResult.licenseFindings.filter((f) => f.severity === 'critical' || f.severity === 'high');
80
+ if (criticalFindings.length > 0) {
81
+ console.log(warning(`⚠️ ${criticalFindings.length} license conflict(s) detected:`));
82
+ criticalFindings.slice(0, 3).forEach((finding) => {
83
+ console.log(colors.yellow(` • ${finding.license} license detected in ${finding.filepath || 'code'}`));
84
+ if (finding.message) {
85
+ console.log(colors.dim(` ${finding.message}`));
86
+ }
87
+ });
88
+ if (criticalFindings.length > 3) {
89
+ console.log(colors.dim(` ... and ${criticalFindings.length - 3} more`));
90
+ }
91
+ newline();
61
92
  }
62
93
  }
94
+ // Display provider bias warnings if present (Enhanced Security - Provider Bias Detection)
95
+ if (editResult?.providerBiasFindings && editResult.providerBiasFindings.length > 0) {
96
+ sectionHeader('Provider Bias Detection');
97
+ const criticalFindings = editResult.providerBiasFindings.filter((f) => f.severity === 'critical' || f.severity === 'high');
98
+ if (criticalFindings.length > 0) {
99
+ console.log(warning(`⚠️ ${criticalFindings.length} vendor lock-in risk(s) detected:`));
100
+ criticalFindings.slice(0, 3).forEach((finding) => {
101
+ console.log(colors.yellow(` • ${finding.provider} provider detected`));
102
+ if (finding.message) {
103
+ console.log(colors.dim(` ${finding.message}`));
104
+ }
105
+ });
106
+ if (criticalFindings.length > 3) {
107
+ console.log(colors.dim(` ... and ${criticalFindings.length - 3} more`));
108
+ }
109
+ newline();
110
+ }
111
+ }
112
+ console.log(success('Edit applied successfully'));
113
+ if (editResult?.edit?.filepath) {
114
+ console.log(colors.dim(`File: ${formatPath(editResult.edit.filepath)}`));
115
+ }
116
+ if (editResult?.edit?.linesAdded || editResult?.edit?.linesRemoved) {
117
+ const changesTable = createTable(['Metric', 'Value'], [
118
+ ['Lines Added', formatNumber(editResult.edit.linesAdded || 0)],
119
+ ['Lines Removed', formatNumber(editResult.edit.linesRemoved || 0)],
120
+ ['Execution Time', `${executionTime}s`],
121
+ ]);
122
+ console.log(changesTable.toString());
123
+ newline();
124
+ }
63
125
  }
64
126
  else {
65
- console.log(error('Edit failed'));
66
- if (result.error) {
67
- console.log(colors.red(` ${result.error}`));
127
+ // Use centralized error display
128
+ const errorMessage = result.error || 'Edit failed';
129
+ displayError(new Error(errorMessage), {
130
+ operation: 'edit',
131
+ query: query,
132
+ filepath: result.result?.edit?.filepath,
133
+ showSuggestions: true,
134
+ });
135
+ // Display security/license findings even on failure
136
+ const editResult = result.result;
137
+ if (editResult?.licenseFindings && editResult.licenseFindings.length > 0) {
138
+ newline();
139
+ sectionHeader('License Scan');
140
+ editResult.licenseFindings.slice(0, 3).forEach((finding) => {
141
+ console.log(colors.yellow(`⚠️ ${finding.license} license: ${finding.message || 'License conflict detected'}`));
142
+ });
68
143
  }
69
- if (result.result && result.result.reflection) {
144
+ if (editResult?.providerBiasFindings && editResult.providerBiasFindings.length > 0) {
70
145
  newline();
71
- console.log(colors.bold('Learning:'));
72
- console.log(colors.yellow(` ${result.result.reflection}`));
146
+ sectionHeader('Provider Bias Detection');
147
+ editResult.providerBiasFindings.slice(0, 3).forEach((finding) => {
148
+ console.log(colors.yellow(`⚠️ ${finding.provider} provider: ${finding.message || 'Vendor lock-in risk detected'}`));
149
+ });
73
150
  }
151
+ if (editResult?.reflection) {
152
+ newline();
153
+ sectionHeader('Learning');
154
+ console.log(colors.yellow(` ${editResult.reflection}`));
155
+ }
156
+ newline();
157
+ console.log(colors.dim(`Execution Time: ${executionTime}s`));
74
158
  }
75
159
  console.log(separator('═', 80));
76
160
  newline();
@@ -171,9 +255,13 @@ export async function executeSmartCommand(query) {
171
255
  console.log(separator('═', 80));
172
256
  }
173
257
  else {
174
- console.log(separator('═', 80));
175
- console.log(error(result.message || result.error || 'Plan failed'));
176
- console.log(separator('═', 80));
258
+ // Use centralized error display
259
+ const errorMessage = result.message || result.error || 'Plan failed';
260
+ displayError(new Error(errorMessage), {
261
+ operation: 'plan',
262
+ query: query,
263
+ showSuggestions: true,
264
+ });
177
265
  }
178
266
  newline();
179
267
  }
@@ -194,6 +282,36 @@ export async function executeSmartCommand(query) {
194
282
  }
195
283
  // Atomic interaction: No summary table for better UX
196
284
  // Summary statistics are tracked internally but not displayed
285
+ // Track command usage for feature discovery
286
+ trackCommand('smart');
287
+ // Contextual Feature Discovery: Show relevant features based on query (Task 2.2)
288
+ const { shouldShowContextualSuggestion } = await import('../../../infrastructure/ux/contextual-feature-discovery.js');
289
+ const contextualSuggestion = shouldShowContextualSuggestion(query, 'smart');
290
+ if (contextualSuggestion) {
291
+ newline();
292
+ console.log(separator('─', 80));
293
+ console.log(colors.bold(`💡 ${contextualSuggestion.reason}`));
294
+ console.log(colors.dim(` Try: ${colors.cyan(contextualSuggestion.command)}`));
295
+ console.log(colors.dim(` ${contextualSuggestion.description}`));
296
+ console.log(separator('─', 80));
297
+ newline();
298
+ }
299
+ else {
300
+ // Show milestone-based feature discovery if appropriate
301
+ const discovery = shouldShowFeatureDiscovery('smart');
302
+ if (discovery) {
303
+ newline();
304
+ console.log(separator('─', 80));
305
+ console.log(colors.bold(`💡 ${discovery.message}`));
306
+ discovery.features.forEach(feature => {
307
+ console.log(colors.dim(` • ${colors.cyan(feature.name)}: ${feature.description}`));
308
+ console.log(colors.dim(` ${colors.cyan(feature.command)}`));
309
+ });
310
+ console.log(separator('─', 80));
311
+ newline();
312
+ markFeatureDiscoveryShown(discovery.id);
313
+ }
314
+ }
197
315
  newline();
198
316
  }
199
317
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"smart-command.js","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/smart-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-command.js","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/smart-command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace-command.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/trace-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EACrC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAyCf"}
1
+ {"version":3,"file":"trace-command.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/trace-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EACrC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAyCf"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { executionTracer } from '../../../infrastructure/observability/execution-tracer.js';
8
8
  import { colors, sectionHeader, success, error, warning, info, newline, createBanner, createTable, } from '../../../ui.js';
9
+ import { displayError } from '../error-display.js';
9
10
  export async function executeTraceCommand(action, runId) {
10
11
  console.log(createBanner('Execution Tracing', 'Observability and reproducibility'));
11
12
  newline();
@@ -39,10 +40,10 @@ export async function executeTraceCommand(action, runId) {
39
40
  }
40
41
  }
41
42
  catch (err) {
42
- console.log(error(`Error: ${err.message}`));
43
- if (err.stack) {
44
- console.log(colors.dim(err.stack));
45
- }
43
+ displayError(err, {
44
+ operation: `trace-${action}`,
45
+ showSuggestions: true,
46
+ });
46
47
  }
47
48
  }
48
49
  async function showTrace(runId) {
@@ -104,7 +105,10 @@ async function reproduceTrace(runId) {
104
105
  console.log(success('Run reproduction completed'));
105
106
  }
106
107
  catch (err) {
107
- console.log(error(`Failed to reproduce run: ${err.message}`));
108
+ displayError(err, {
109
+ operation: 'trace-reproduce',
110
+ showSuggestions: true,
111
+ });
108
112
  }
109
113
  }
110
114
  async function listTraces() {
@@ -1 +1 @@
1
- {"version":3,"file":"trace-command.js","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/trace-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-command.js","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/trace-command.ts"],"names":[],"mappings":"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"}
@@ -83,8 +83,11 @@ async function undoFile(filepath) {
83
83
  newline();
84
84
  }
85
85
  catch (err) {
86
- console.log(error('Failed to undo file changes'));
87
- console.log(colors.red(` ${err instanceof Error ? err.message : String(err)}`));
86
+ displayError(err, {
87
+ operation: 'undo',
88
+ filepath: filepath,
89
+ showSuggestions: true,
90
+ });
88
91
  throw err;
89
92
  }
90
93
  }
@@ -113,8 +116,11 @@ async function listFileBackups(filepath) {
113
116
  newline();
114
117
  }
115
118
  catch (err) {
116
- console.log(error('Failed to list backups'));
117
- console.log(colors.red(` ${err instanceof Error ? err.message : String(err)}`));
119
+ displayError(err, {
120
+ operation: 'undo-list',
121
+ filepath: filepath,
122
+ showSuggestions: true,
123
+ });
118
124
  throw err;
119
125
  }
120
126
  }
@@ -133,8 +139,11 @@ async function restoreFromBackup(filepath, backupPath) {
133
139
  newline();
134
140
  }
135
141
  catch (err) {
136
- console.log(error('Failed to restore from backup'));
137
- console.log(colors.red(` ${err instanceof Error ? err.message : String(err)}`));
142
+ displayError(err, {
143
+ operation: 'undo-restore',
144
+ filepath: filepath,
145
+ showSuggestions: true,
146
+ });
138
147
  throw err;
139
148
  }
140
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"undo-command.js","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/undo-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAmB,MAAM,iCAAiC,CAAC;AAC/G,OAAO,EACL,MAAM,EACN,aAAa,EACb,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAmC,EACnC,QAAiB,EACjB,UAAmB;IAEnB,0BAA0B;IAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC7C,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC,CAAC;QACvE,OAAO,EAAE,CAAC;QAEV,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACzB,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBACD,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;oBAC1E,OAAO;gBACT,CAAC;gBACD,MAAM,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC9C,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,YAAY,CAAC,GAAG,EAAE;YAChB,SAAS,EAAE,QAAQ,MAAM,EAAE;YAC3B,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,eAAe,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/C,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC;IAEV,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;YACrF,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,YAAY,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC;QAEV,MAAM,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB;IAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/C,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC;IAEV,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAkB,EAAE,KAAa,EAAE,EAAE,CAAC;YACpE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;YAC9B,MAAM,CAAC,UAAU;SAClB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,WAAW,CACvB,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,EACjC,UAAU,CACX,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;QAEV,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC,CAAC;QAC3G,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,UAAkB;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/C,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC;IAEV,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;QAEV,MAAM,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"undo-command.js","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/undo-command.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface ErrorDisplayOptions {
9
9
  query?: string;
10
10
  showSuggestions?: boolean;
11
11
  showStack?: boolean;
12
+ filepath?: string;
13
+ lineNumber?: number;
12
14
  }
13
15
  /**
14
16
  * Display error with helpful context and recovery suggestions
@@ -1 +1 @@
1
- {"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../src/presentation/cli/error-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,mBAAwB,GAChC,IAAI,CA8CN;AA2ED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,mBAAmB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,KAAK,CAIP"}
1
+ {"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../src/presentation/cli/error-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkKD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,mBAAwB,GAChC,IAAI,CA0FN;AA4ED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,mBAAmB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,KAAK,CAIP"}
@@ -6,6 +6,144 @@
6
6
  */
7
7
  import { ErrorType, classifyError, EnterpriseError } from '../../error-handler.js';
8
8
  import { colors, separator, newline, symbols } from '../../ui.js';
9
+ /**
10
+ * Determine error severity based on error type
11
+ */
12
+ function getErrorSeverity(errorType) {
13
+ switch (errorType) {
14
+ case ErrorType.FATAL:
15
+ case ErrorType.POLICY:
16
+ return 'critical';
17
+ case ErrorType.RATE_LIMIT:
18
+ case ErrorType.API_ERROR:
19
+ case ErrorType.VALIDATION:
20
+ return 'warning';
21
+ case ErrorType.NETWORK:
22
+ case ErrorType.RETRYABLE:
23
+ return 'info';
24
+ default:
25
+ return 'warning';
26
+ }
27
+ }
28
+ /**
29
+ * Get severity label (text-based, enterprise-grade)
30
+ */
31
+ function getSeverityLabel(severity) {
32
+ switch (severity) {
33
+ case 'critical':
34
+ return colors.red('[CRITICAL] Error:');
35
+ case 'warning':
36
+ return colors.yellow('[WARNING] Error:');
37
+ case 'info':
38
+ return colors.cyan('[INFO] Error:');
39
+ default:
40
+ return colors.red('Error:');
41
+ }
42
+ }
43
+ /**
44
+ * Extract file path from error message
45
+ */
46
+ function extractFilePath(errorMessage) {
47
+ // Patterns: "File not found: path/to/file", "in path/to/file", "at path/to/file"
48
+ const patterns = [
49
+ /(?:File|file)\s+(?:not found|error|issue)[:\s]+([^\s]+)/i,
50
+ /(?:in|at)\s+([^\s]+\.(ts|js|py|json|md|yaml|yml))/i,
51
+ /([^\s]+\.(ts|js|py|json|md|yaml|yml)(?::\d+)?)/i,
52
+ ];
53
+ for (const pattern of patterns) {
54
+ const match = errorMessage.match(pattern);
55
+ if (match && match[1]) {
56
+ return match[1].replace(/^["']|["']$/g, ''); // Remove quotes
57
+ }
58
+ }
59
+ return undefined;
60
+ }
61
+ /**
62
+ * Extract line number from error message
63
+ */
64
+ function extractLineNumber(errorMessage) {
65
+ // Patterns: "line 42", ":42", "at line 42"
66
+ const patterns = [
67
+ /(?:line|Line)\s+(\d+)/i,
68
+ /:(\d+):/,
69
+ /\((\d+)\)/,
70
+ ];
71
+ for (const pattern of patterns) {
72
+ const match = errorMessage.match(pattern);
73
+ if (match && match[1]) {
74
+ const line = parseInt(match[1], 10);
75
+ if (!isNaN(line) && line > 0) {
76
+ return line;
77
+ }
78
+ }
79
+ }
80
+ return undefined;
81
+ }
82
+ /**
83
+ * Get recovery commands based on error type and context
84
+ */
85
+ function getRecoveryCommands(errorType, errorMessage, context) {
86
+ const commands = [];
87
+ const lowerMessage = errorMessage.toLowerCase();
88
+ switch (errorType) {
89
+ case ErrorType.VALIDATION:
90
+ if (lowerMessage.includes('file') || lowerMessage.includes('not found')) {
91
+ if (context.filepath) {
92
+ commands.push(`codehere explain ${context.filepath}${context.lineNumber ? `:${context.lineNumber}` : ''}`);
93
+ }
94
+ commands.push('codehere index');
95
+ }
96
+ break;
97
+ case ErrorType.API_ERROR:
98
+ if (lowerMessage.includes('api') || lowerMessage.includes('key')) {
99
+ commands.push('codehere setup');
100
+ commands.push('codehere config --help');
101
+ }
102
+ break;
103
+ case ErrorType.POLICY:
104
+ if (context.filepath) {
105
+ commands.push(`codehere explain ${context.filepath}`);
106
+ commands.push('codehere config policies');
107
+ }
108
+ break;
109
+ case ErrorType.RATE_LIMIT:
110
+ commands.push('codehere config --help');
111
+ break;
112
+ default:
113
+ break;
114
+ }
115
+ return commands;
116
+ }
117
+ /**
118
+ * Get documentation link for error type
119
+ */
120
+ function getDocumentationLink(errorType) {
121
+ const baseUrl = 'https://docs.codehere.dev';
122
+ switch (errorType) {
123
+ case ErrorType.POLICY:
124
+ return `${baseUrl}/security-policies`;
125
+ case ErrorType.API_ERROR:
126
+ case ErrorType.RATE_LIMIT:
127
+ return `${baseUrl}/setup/api-keys`;
128
+ case ErrorType.VALIDATION:
129
+ return `${baseUrl}/troubleshooting`;
130
+ case ErrorType.NETWORK:
131
+ return `${baseUrl}/troubleshooting/network`;
132
+ default:
133
+ return undefined;
134
+ }
135
+ }
136
+ /**
137
+ * Generate error code for troubleshooting
138
+ */
139
+ function generateErrorCode(errorType, errorMessage) {
140
+ const prefix = errorType.toUpperCase().substring(0, 3);
141
+ const hash = errorMessage.split('').reduce((acc, char) => {
142
+ return ((acc << 5) - acc) + char.charCodeAt(0);
143
+ }, 0);
144
+ const code = Math.abs(hash).toString(16).substring(0, 4).toUpperCase();
145
+ return `${prefix}-${code}`;
146
+ }
9
147
  /**
10
148
  * Display error with helpful context and recovery suggestions
11
149
  */
@@ -14,10 +152,31 @@ export function displayError(error, options = {}) {
14
152
  const errorType = classifyError(error);
15
153
  const errorMessage = error instanceof Error ? error.message : String(error);
16
154
  const isEnterpriseError = error instanceof EnterpriseError;
155
+ // Generate error code for troubleshooting
156
+ const errorCode = generateErrorCode(errorType, errorMessage);
157
+ // Determine error severity (based on error type)
158
+ const severity = getErrorSeverity(errorType);
159
+ // Extract file/line context from error message or options
160
+ const fileContext = options.filepath || extractFilePath(errorMessage);
161
+ const lineContext = options.lineNumber || extractLineNumber(errorMessage);
17
162
  // Display error header
18
163
  newline();
19
164
  console.log(separator('═', 80));
20
- console.log(colors.red(`Error: ${errorMessage}`));
165
+ // Show severity indicator (text-based, no emojis for enterprise)
166
+ const severityLabel = getSeverityLabel(severity);
167
+ if (severityLabel) {
168
+ console.log(severityLabel + ` ${errorMessage}`);
169
+ }
170
+ else {
171
+ console.log(colors.red(`Error: ${errorMessage}`));
172
+ }
173
+ if (errorCode) {
174
+ console.log(colors.dim(`Error Code: ${errorCode}`));
175
+ }
176
+ // Show file/line context if available
177
+ if (fileContext) {
178
+ console.log(colors.dim(`File: ${fileContext}${lineContext ? `:${lineContext}` : ''}`));
179
+ }
21
180
  console.log(separator('═', 80));
22
181
  newline();
23
182
  // Show error type if it's an EnterpriseError
@@ -30,7 +189,7 @@ export function displayError(error, options = {}) {
30
189
  }
31
190
  // Show suggestions based on error type
32
191
  if (showSuggestions) {
33
- const suggestions = getErrorSuggestions(errorType, errorMessage, { operation, query });
192
+ const suggestions = getErrorSuggestions(errorType, errorMessage, { operation, query, filepath: fileContext });
34
193
  if (suggestions.length > 0) {
35
194
  console.log(colors.bold('Suggestions:'));
36
195
  suggestions.forEach(suggestion => {
@@ -38,6 +197,21 @@ export function displayError(error, options = {}) {
38
197
  });
39
198
  newline();
40
199
  }
200
+ // Show recovery commands for certain error types
201
+ const recoveryCommands = getRecoveryCommands(errorType, errorMessage, { operation, query, filepath: fileContext, lineNumber: lineContext });
202
+ if (recoveryCommands.length > 0) {
203
+ console.log(colors.bold('Recovery Commands:'));
204
+ recoveryCommands.forEach(cmd => {
205
+ console.log(colors.cyan(` $ ${cmd}`));
206
+ });
207
+ newline();
208
+ }
209
+ // Show documentation link for complex errors
210
+ const docLink = getDocumentationLink(errorType);
211
+ if (docLink) {
212
+ console.log(colors.dim(`Learn More: ${docLink}`));
213
+ newline();
214
+ }
41
215
  }
42
216
  // Show stack trace if requested (for debugging)
43
217
  if (showStack && error instanceof Error && error.stack) {
@@ -66,6 +240,7 @@ function getErrorSuggestions(errorType, errorMessage, context) {
66
240
  suggestions.push('Verify your API key at: https://dashboard.cohere.com/api-keys');
67
241
  suggestions.push('Make sure .env file exists in your project root');
68
242
  suggestions.push('Run "codehere setup" to configure your API key');
243
+ suggestions.push('For troubleshooting, include the error code when reporting issues');
69
244
  }
70
245
  else if (lowerMessage.includes('not found') || lowerMessage.includes('missing')) {
71
246
  if (context.query) {