@defai.digital/ax-cli 4.0.0 → 4.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 (83) hide show
  1. package/README.md +32 -2
  2. package/config-defaults/prompts.yaml +5 -0
  3. package/dist/agent/execution/tool-executor.js +47 -1
  4. package/dist/agent/execution/tool-executor.js.map +1 -1
  5. package/dist/agent/llm-agent.js +4 -4
  6. package/dist/agent/llm-agent.js.map +1 -1
  7. package/dist/agent/parallel-tools.js +1 -0
  8. package/dist/agent/parallel-tools.js.map +1 -1
  9. package/dist/commands/cache.js +37 -34
  10. package/dist/commands/cache.js.map +1 -1
  11. package/dist/commands/doctor.js +111 -65
  12. package/dist/commands/doctor.js.map +1 -1
  13. package/dist/commands/init/wizard.js +10 -12
  14. package/dist/commands/init/wizard.js.map +1 -1
  15. package/dist/commands/init.js +7 -9
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/mcp.js +106 -55
  18. package/dist/commands/mcp.js.map +1 -1
  19. package/dist/commands/setup.js +26 -55
  20. package/dist/commands/setup.js.map +1 -1
  21. package/dist/commands/usage.js +45 -51
  22. package/dist/commands/usage.js.map +1 -1
  23. package/dist/index.js +3 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/llm/tools.d.ts +2 -23
  26. package/dist/llm/tools.js +6 -590
  27. package/dist/llm/tools.js.map +1 -1
  28. package/dist/mcp/content-length-transport.d.ts +18 -0
  29. package/dist/mcp/content-length-transport.js +121 -3
  30. package/dist/mcp/content-length-transport.js.map +1 -1
  31. package/dist/mcp/error-remediation.js +54 -17
  32. package/dist/mcp/error-remediation.js.map +1 -1
  33. package/dist/schemas/settings-schemas.d.ts +5 -0
  34. package/dist/schemas/settings-schemas.js +4 -0
  35. package/dist/schemas/settings-schemas.js.map +1 -1
  36. package/dist/tools/ax-agent.d.ts +32 -0
  37. package/dist/tools/ax-agent.js +105 -0
  38. package/dist/tools/ax-agent.js.map +1 -1
  39. package/dist/tools/definitions/ax-agent.d.ts +1 -0
  40. package/dist/tools/definitions/ax-agent.js +129 -2
  41. package/dist/tools/definitions/ax-agent.js.map +1 -1
  42. package/dist/tools/definitions/index.d.ts +12 -11
  43. package/dist/tools/definitions/index.js +5 -14
  44. package/dist/tools/definitions/index.js.map +1 -1
  45. package/dist/tools/index.d.ts +0 -1
  46. package/dist/tools/index.js +0 -1
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/tools/types.d.ts +0 -74
  49. package/dist/ui/components/status-bar.js +74 -67
  50. package/dist/ui/components/status-bar.js.map +1 -1
  51. package/dist/ui/hooks/use-input-handler.js +72 -0
  52. package/dist/ui/hooks/use-input-handler.js.map +1 -1
  53. package/dist/ui/themes/index.d.ts +5 -0
  54. package/dist/ui/themes/index.js +5 -0
  55. package/dist/ui/themes/index.js.map +1 -0
  56. package/dist/ui/themes/theme-registry.d.ts +52 -0
  57. package/dist/ui/themes/theme-registry.js +148 -0
  58. package/dist/ui/themes/theme-registry.js.map +1 -0
  59. package/dist/ui/utils/colors.d.ts +27 -1
  60. package/dist/ui/utils/colors.js +70 -1
  61. package/dist/ui/utils/colors.js.map +1 -1
  62. package/dist/ui/utils/image-handler.js +3 -0
  63. package/dist/ui/utils/image-handler.js.map +1 -1
  64. package/dist/utils/enhanced-error-messages.js +43 -23
  65. package/dist/utils/enhanced-error-messages.js.map +1 -1
  66. package/dist/utils/init-validator.d.ts +4 -0
  67. package/dist/utils/init-validator.js +17 -13
  68. package/dist/utils/init-validator.js.map +1 -1
  69. package/dist/utils/llm-optimized-instruction-generator.js +97 -136
  70. package/dist/utils/llm-optimized-instruction-generator.js.map +1 -1
  71. package/dist/utils/project-analyzer.d.ts +6 -0
  72. package/dist/utils/project-analyzer.js +92 -189
  73. package/dist/utils/project-analyzer.js.map +1 -1
  74. package/dist/utils/settings-manager.d.ts +13 -1
  75. package/dist/utils/settings-manager.js +30 -0
  76. package/dist/utils/settings-manager.js.map +1 -1
  77. package/dist/utils/template-manager.d.ts +8 -0
  78. package/dist/utils/template-manager.js +54 -110
  79. package/dist/utils/template-manager.js.map +1 -1
  80. package/package.json +1 -1
  81. package/dist/tools/result-enhancer.d.ts +0 -64
  82. package/dist/tools/result-enhancer.js +0 -215
  83. package/dist/tools/result-enhancer.js.map +0 -1
@@ -5,6 +5,7 @@
5
5
  import React from "react";
6
6
  import { Box, Text } from "ink";
7
7
  import { VerbosityLevel } from "../../constants.js";
8
+ import { getThemeColors } from "../utils/colors.js";
8
9
  /**
9
10
  * Get accessibility symbol for context status
10
11
  * Provides visual indicator for colorblind users
@@ -35,44 +36,47 @@ function formatTokenCount(tokens) {
35
36
  * Includes accessibility symbols for colorblind users
36
37
  * Phase 3: Enhanced with token count display
37
38
  */
38
- function ContextBar({ percentage, showAutoPrune, currentTokens, maxTokens }) {
39
+ function ContextBar({ percentage, showAutoPrune, currentTokens, maxTokens, theme, }) {
39
40
  const barWidth = 15;
40
41
  // Clamp percentage to valid range [0, 100] to prevent crashes
41
42
  const safePercentage = Math.max(0, Math.min(100, percentage || 0));
42
43
  const filledWidth = Math.round((safePercentage / 100) * barWidth);
43
44
  const emptyWidth = barWidth - filledWidth;
44
- const color = getContextColor(safePercentage);
45
+ const color = getContextColor(safePercentage, theme);
45
46
  // Warning message when context is getting low (85%+ used = 15% remaining)
46
47
  const showWarning = safePercentage <= 15;
47
48
  if (showAutoPrune) {
48
49
  return (React.createElement(Box, null,
49
- React.createElement(Text, { color: "cyan", bold: true }, "\u21BB auto-pruned")));
50
+ React.createElement(Text, { color: theme.primary, bold: true }, "\u21BB auto-pruned")));
50
51
  }
51
52
  return (React.createElement(Box, null,
52
53
  React.createElement(Text, { color: color }, "█".repeat(filledWidth)),
53
- React.createElement(Text, { color: "gray", dimColor: true }, "░".repeat(emptyWidth)),
54
+ React.createElement(Text, { color: theme.muted, dimColor: true }, "░".repeat(emptyWidth)),
54
55
  React.createElement(Text, { color: color },
55
56
  " ",
56
57
  getStatusSymbol(safePercentage),
57
58
  " ",
58
59
  safePercentage.toFixed(0),
59
60
  "%"),
60
- currentTokens !== undefined && maxTokens !== undefined && (React.createElement(Text, { color: "gray", dimColor: true },
61
+ currentTokens !== undefined && maxTokens !== undefined && (React.createElement(Text, { color: theme.muted, dimColor: true },
61
62
  " (",
62
63
  formatTokenCount(currentTokens),
63
64
  "/",
64
65
  formatTokenCount(maxTokens),
65
66
  ")")),
66
- showWarning && (React.createElement(Text, { color: "red", bold: true }, " LOW!"))));
67
+ showWarning && (React.createElement(Text, { color: theme.error, bold: true }, " LOW!"))));
67
68
  }
68
69
  /**
69
70
  * Mode indicator pill component
70
71
  * Shows clear "Label: On/Off" or "Label: Value" format for better visibility
71
72
  * Supports flash animation on toggle
72
73
  */
73
- function ModePill({ label, enabled, value, shortcut, enabledColor = "cyan", flash = false, }) {
74
+ function ModePill({ label, enabled, value, shortcut, enabledColor, flash = false, theme, }) {
74
75
  // Flash effect: briefly highlight when toggled
75
- const displayColor = flash ? "white" : (enabled !== undefined && enabled) ? enabledColor : "gray";
76
+ // Flash effect uses textOnHighlight for visibility on any background
77
+ // Default enabledColor to theme.primary if not provided
78
+ const effectiveEnabledColor = enabledColor ?? theme.primary;
79
+ const displayColor = flash ? theme.textOnHighlight : (enabled !== undefined && enabled) ? effectiveEnabledColor : theme.muted;
76
80
  const isBold = flash || (enabled !== undefined && enabled);
77
81
  const status = value !== undefined ? value : (enabled ? "On" : "Off");
78
82
  return (React.createElement(Box, { marginRight: 2 },
@@ -80,7 +84,7 @@ function ModePill({ label, enabled, value, shortcut, enabledColor = "cyan", flas
80
84
  label,
81
85
  ": ",
82
86
  status),
83
- React.createElement(Text, { color: "gray" },
87
+ React.createElement(Text, { color: theme.muted },
84
88
  " ",
85
89
  "(",
86
90
  shortcut,
@@ -147,54 +151,54 @@ function getAgentRole(agentName) {
147
151
  /**
148
152
  * AX Indicator Component - shows active agent roles or default ax indicator
149
153
  */
150
- function AXIndicator({ agents }) {
154
+ function AXIndicator({ agents, theme }) {
151
155
  if (agents.length > 0) {
152
156
  const roles = agents.map(getAgentRole);
153
- return React.createElement(Text, { color: "cyan", bold: true },
157
+ return React.createElement(Text, { color: theme.primary, bold: true },
154
158
  "\u26A1 ",
155
159
  roles.join(", "));
156
160
  }
157
- return React.createElement(Text, { color: "green" }, "\u26A1 ax");
161
+ return React.createElement(Text, { color: theme.success }, "\u26A1 ax");
158
162
  }
159
163
  /**
160
- * Get context bar color based on percentage
164
+ * Get context bar color based on percentage (theme-aware)
161
165
  */
162
- function getContextColor(percentage) {
166
+ function getContextColor(percentage, theme) {
163
167
  if (percentage > 50)
164
- return "green";
168
+ return theme.success;
165
169
  if (percentage > 25)
166
- return "yellow";
167
- return "red";
170
+ return theme.warning;
171
+ return theme.error;
168
172
  }
169
173
  /**
170
174
  * MCP Status Indicator Component
171
175
  * Shows connected/total with color coding based on health
172
176
  */
173
- function MCPIndicator({ mcpStatus, mcpServerCount, }) {
177
+ function MCPIndicator({ mcpStatus, mcpServerCount, theme, }) {
174
178
  // Use new status if available, fallback to legacy count
175
179
  if (mcpStatus) {
176
180
  const { connected, failed, connecting, total } = mcpStatus;
177
181
  // Don't show if no servers configured
178
182
  if (total === 0) {
179
- return React.createElement(Text, { color: "gray" }, "mcp: -");
183
+ return React.createElement(Text, { color: theme.muted }, "mcp: -");
180
184
  }
181
185
  // Determine color based on status
182
186
  let color;
183
187
  let symbol;
184
188
  if (failed > 0) {
185
- color = "red";
189
+ color = theme.error;
186
190
  symbol = "✗";
187
191
  }
188
192
  else if (connecting > 0) {
189
- color = "yellow";
193
+ color = theme.warning;
190
194
  symbol = "◐";
191
195
  }
192
196
  else if (connected === total) {
193
- color = "green";
197
+ color = theme.success;
194
198
  symbol = "✓";
195
199
  }
196
200
  else {
197
- color = "yellow";
201
+ color = theme.warning;
198
202
  symbol = "○";
199
203
  }
200
204
  return (React.createElement(Text, { color: color },
@@ -206,7 +210,7 @@ function MCPIndicator({ mcpStatus, mcpServerCount, }) {
206
210
  total));
207
211
  }
208
212
  // Legacy fallback: just show count
209
- return (React.createElement(Text, { color: mcpServerCount && mcpServerCount > 0 ? "blue" : "gray" },
213
+ return (React.createElement(Text, { color: mcpServerCount && mcpServerCount > 0 ? theme.info : theme.muted },
210
214
  "mcp: ",
211
215
  mcpServerCount ?? 0));
212
216
  }
@@ -215,89 +219,92 @@ function MCPIndicator({ mcpStatus, mcpServerCount, }) {
215
219
  * Stacks information vertically to prevent wrapping
216
220
  */
217
221
  function CompactStatusBar(props) {
218
- const { projectName, version, model, contextPercentage, showAutoPrune, autoEditEnabled, verboseMode, verbosityLevel, backgroundMode = false, mcpServerCount = 0, mcpStatus, backgroundTaskCount = 0, isProcessing = false, currentTokens, maxTokens, flashAutoEdit = false, flashVerbose = false, flashBackground = false, axEnabled = false, activeAgent = null, activeAgents = [], thinkingModeEnabled = false, flashThinkingMode = false, isThinking = false, } = props;
222
+ const { projectName, version, model, contextPercentage, showAutoPrune, autoEditEnabled, verboseMode, verbosityLevel, backgroundMode = false, mcpServerCount = 0, mcpStatus, backgroundTaskCount = 0, isProcessing = false, currentTokens, maxTokens, flashAutoEdit = false, flashVerbose = false, flashBackground = false, axEnabled = false, activeAgent = null, activeAgents = [], thinkingModeEnabled = false, flashThinkingMode = false, isThinking = false, theme, } = props;
219
223
  const effectiveVerbosityLevel = getEffectiveVerbosityLevel(verbosityLevel, verboseMode);
220
224
  const allActiveAgents = combineActiveAgents(activeAgent, activeAgents);
221
225
  return (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
222
- React.createElement(Box, { borderStyle: "single", borderColor: isProcessing ? "yellow" : "gray", paddingX: 1, flexDirection: "row", justifyContent: "space-between" },
226
+ React.createElement(Box, { borderStyle: "single", borderColor: isProcessing ? theme.warning : theme.border, paddingX: 1, flexDirection: "row", justifyContent: "space-between" },
223
227
  React.createElement(Box, null,
224
- React.createElement(Text, { color: "magenta", bold: true }, projectName),
225
- React.createElement(Text, { color: "gray" }, " \u2022 "),
226
- React.createElement(Text, { color: "white", bold: true }, "ax-cli"),
227
- React.createElement(Text, { color: "greenBright", bold: true },
228
+ React.createElement(Text, { color: theme.accent, bold: true }, projectName),
229
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
230
+ React.createElement(Text, { color: theme.info, bold: true }, "ax-cli"),
231
+ React.createElement(Text, { color: theme.success, bold: true },
228
232
  " v",
229
233
  version)),
230
234
  React.createElement(Box, null,
231
- React.createElement(Text, { color: "gray" }, "\uD83E\uDD16 "),
232
- React.createElement(Text, { color: "yellow" }, model),
235
+ React.createElement(Text, { color: theme.muted }, "\uD83E\uDD16 "),
236
+ React.createElement(Text, { color: theme.warning }, model),
233
237
  axEnabled && (React.createElement(React.Fragment, null,
234
- React.createElement(Text, { color: "gray" }, " \u2022 "),
235
- React.createElement(AXIndicator, { agents: allActiveAgents }))))),
238
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
239
+ React.createElement(AXIndicator, { agents: allActiveAgents, theme: theme }))))),
236
240
  React.createElement(Box, { paddingX: 1, flexDirection: "row", justifyContent: "space-between" },
237
241
  React.createElement(Box, null,
238
- React.createElement(Text, { color: "gray" }, "ctx: "),
239
- React.createElement(ContextBar, { percentage: contextPercentage, showAutoPrune: showAutoPrune, currentTokens: currentTokens, maxTokens: maxTokens })),
242
+ React.createElement(Text, { color: theme.muted }, "ctx: "),
243
+ React.createElement(ContextBar, { percentage: contextPercentage, showAutoPrune: showAutoPrune, currentTokens: currentTokens, maxTokens: maxTokens, theme: theme })),
240
244
  React.createElement(Box, null,
241
- React.createElement(Text, { color: backgroundTaskCount > 0 ? "yellow" : "gray" },
245
+ React.createElement(Text, { color: backgroundTaskCount > 0 ? theme.warning : theme.muted },
242
246
  "bg: ",
243
247
  backgroundTaskCount),
244
- React.createElement(Text, { color: "gray" }, " \u2022 "),
245
- React.createElement(MCPIndicator, { mcpStatus: mcpStatus, mcpServerCount: mcpServerCount }))),
248
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
249
+ React.createElement(MCPIndicator, { mcpStatus: mcpStatus, mcpServerCount: mcpServerCount, theme: theme }))),
246
250
  React.createElement(Box, { paddingX: 1 },
247
- React.createElement(ModePill, { label: "Auto-Edit", enabled: autoEditEnabled, shortcut: "\u21E7\u21E5", enabledColor: "yellow", flash: flashAutoEdit }),
248
- React.createElement(ModePill, { label: "Verbosity", value: getVerbosityName(effectiveVerbosityLevel), enabled: effectiveVerbosityLevel !== VerbosityLevel.QUIET, shortcut: "^O", enabledColor: "yellow", flash: flashVerbose }),
249
- React.createElement(ModePill, { label: "Background", enabled: backgroundMode, shortcut: "^B", enabledColor: "magenta", flash: flashBackground }),
250
- React.createElement(ModePill, { label: "Thinking", enabled: thinkingModeEnabled, shortcut: "Tab", enabledColor: "cyan", flash: flashThinkingMode }),
251
+ React.createElement(ModePill, { label: "Auto-Edit", enabled: autoEditEnabled, shortcut: "\u21E7\u21E5", enabledColor: theme.warning, flash: flashAutoEdit, theme: theme }),
252
+ React.createElement(ModePill, { label: "Verbosity", value: getVerbosityName(effectiveVerbosityLevel), enabled: effectiveVerbosityLevel !== VerbosityLevel.QUIET, shortcut: "^O", enabledColor: theme.warning, flash: flashVerbose, theme: theme }),
253
+ React.createElement(ModePill, { label: "Background", enabled: backgroundMode, shortcut: "^B", enabledColor: theme.accent, flash: flashBackground, theme: theme }),
254
+ React.createElement(ModePill, { label: "Thinking", enabled: thinkingModeEnabled, shortcut: "Tab", enabledColor: theme.primary, flash: flashThinkingMode, theme: theme }),
251
255
  thinkingModeEnabled && isThinking && (React.createElement(Box, { marginLeft: 1 },
252
- React.createElement(Text, { color: flashThinkingMode ? "white" : "cyan", bold: true }, "\uD83E\uDD14 THINKING..."))))));
256
+ React.createElement(Text, { color: flashThinkingMode ? theme.textOnHighlight : theme.primary, bold: true }, "\uD83E\uDD14 THINKING..."))))));
253
257
  }
254
258
  export function StatusBar(props) {
255
259
  const { projectName, version, model, contextPercentage, showAutoPrune, autoEditEnabled, verboseMode, verbosityLevel, backgroundMode = false, mcpServerCount = 0, mcpStatus, backgroundTaskCount = 0, isProcessing = false, tokenCount = 0, terminalWidth = 120, // Default to wide layout
256
260
  currentTokens, maxTokens, flashAutoEdit = false, flashVerbose = false, flashBackground = false, axEnabled = false, activeAgent = null, activeAgents = [], thinkingModeEnabled = false, flashThinkingMode = false, isThinking = false, } = props;
261
+ // Get theme colors directly - caching is handled by getThemeColors()
262
+ // Don't use useMemo with empty deps as theme can change via /theme command
263
+ const theme = getThemeColors();
257
264
  const effectiveVerbosityLevel = getEffectiveVerbosityLevel(verbosityLevel, verboseMode);
258
265
  const allActiveAgents = combineActiveAgents(activeAgent, activeAgents);
259
266
  // Use compact layout for narrow terminals (< 100 columns)
260
267
  if (terminalWidth < 100) {
261
- return React.createElement(CompactStatusBar, { ...props });
268
+ return React.createElement(CompactStatusBar, { ...props, theme: theme });
262
269
  }
263
270
  // Full layout for wide terminals
264
271
  return (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
265
- React.createElement(Box, { borderStyle: "single", borderColor: isProcessing ? "yellow" : "gray", paddingX: 1, flexDirection: "row", justifyContent: "space-between" },
272
+ React.createElement(Box, { borderStyle: "single", borderColor: isProcessing ? theme.warning : theme.border, paddingX: 1, flexDirection: "row", justifyContent: "space-between" },
266
273
  React.createElement(Box, null,
267
- React.createElement(Text, { color: "magenta", bold: true }, projectName),
268
- React.createElement(Text, { color: "gray" }, " \u2022 "),
269
- React.createElement(Text, { color: "white", bold: true }, "ax-cli"),
270
- React.createElement(Text, { color: "greenBright", bold: true },
274
+ React.createElement(Text, { color: theme.accent, bold: true }, projectName),
275
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
276
+ React.createElement(Text, { color: theme.info, bold: true }, "ax-cli"),
277
+ React.createElement(Text, { color: theme.success, bold: true },
271
278
  " v",
272
279
  version)),
273
280
  React.createElement(Box, null,
274
- React.createElement(Text, { color: "gray" }, "\uD83E\uDD16 "),
275
- React.createElement(Text, { color: "yellow" }, model),
281
+ React.createElement(Text, { color: theme.muted }, "\uD83E\uDD16 "),
282
+ React.createElement(Text, { color: theme.warning }, model),
276
283
  axEnabled && (React.createElement(React.Fragment, null,
277
- React.createElement(Text, { color: "gray" }, " \u2022 "),
278
- React.createElement(AXIndicator, { agents: allActiveAgents }))),
279
- isProcessing && tokenCount > 0 && (React.createElement(Text, { color: "cyan" },
284
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
285
+ React.createElement(AXIndicator, { agents: allActiveAgents, theme: theme }))),
286
+ isProcessing && tokenCount > 0 && (React.createElement(Text, { color: theme.primary },
280
287
  " (",
281
288
  formatTokenCount(tokenCount),
282
289
  " tokens)"))),
283
290
  React.createElement(Box, null,
284
- React.createElement(Text, { color: "gray" }, "ctx avail: "),
285
- React.createElement(ContextBar, { percentage: contextPercentage, showAutoPrune: showAutoPrune, currentTokens: currentTokens, maxTokens: maxTokens }),
286
- React.createElement(Text, { color: "gray" }, " \u2022 "),
287
- React.createElement(Text, { color: backgroundTaskCount > 0 ? "yellow" : "gray" },
291
+ React.createElement(Text, { color: theme.muted }, "ctx avail: "),
292
+ React.createElement(ContextBar, { percentage: contextPercentage, showAutoPrune: showAutoPrune, currentTokens: currentTokens, maxTokens: maxTokens, theme: theme }),
293
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
294
+ React.createElement(Text, { color: backgroundTaskCount > 0 ? theme.warning : theme.muted },
288
295
  "bg: ",
289
296
  backgroundTaskCount),
290
- React.createElement(Text, { color: "gray" }, " \u2022 "),
291
- React.createElement(MCPIndicator, { mcpStatus: mcpStatus, mcpServerCount: mcpServerCount }))),
297
+ React.createElement(Text, { color: theme.muted }, " \u2022 "),
298
+ React.createElement(MCPIndicator, { mcpStatus: mcpStatus, mcpServerCount: mcpServerCount, theme: theme }))),
292
299
  React.createElement(Box, { marginTop: 0, paddingX: 1 },
293
- React.createElement(ModePill, { label: "Auto-Edit", enabled: autoEditEnabled, shortcut: "\u21E7\u21E5", enabledColor: "yellow", flash: flashAutoEdit }),
294
- React.createElement(ModePill, { label: "Verbosity", value: getVerbosityName(effectiveVerbosityLevel), enabled: effectiveVerbosityLevel !== VerbosityLevel.QUIET, shortcut: "^O", enabledColor: "yellow", flash: flashVerbose }),
295
- React.createElement(ModePill, { label: "Background", enabled: backgroundMode, shortcut: "^B", enabledColor: "magenta", flash: flashBackground }),
296
- React.createElement(ModePill, { label: "Thinking", enabled: thinkingModeEnabled, shortcut: "Tab", enabledColor: "cyan", flash: flashThinkingMode }),
300
+ React.createElement(ModePill, { label: "Auto-Edit", enabled: autoEditEnabled, shortcut: "\u21E7\u21E5", enabledColor: theme.warning, flash: flashAutoEdit, theme: theme }),
301
+ React.createElement(ModePill, { label: "Verbosity", value: getVerbosityName(effectiveVerbosityLevel), enabled: effectiveVerbosityLevel !== VerbosityLevel.QUIET, shortcut: "^O", enabledColor: theme.warning, flash: flashVerbose, theme: theme }),
302
+ React.createElement(ModePill, { label: "Background", enabled: backgroundMode, shortcut: "^B", enabledColor: theme.accent, flash: flashBackground, theme: theme }),
303
+ React.createElement(ModePill, { label: "Thinking", enabled: thinkingModeEnabled, shortcut: "Tab", enabledColor: theme.primary, flash: flashThinkingMode, theme: theme }),
297
304
  thinkingModeEnabled && isThinking && (React.createElement(Box, { marginLeft: 1 },
298
- React.createElement(Text, { color: flashThinkingMode ? "white" : "cyan", bold: true }, "\uD83E\uDD14 THINKING..."))),
305
+ React.createElement(Text, { color: flashThinkingMode ? theme.textOnHighlight : theme.primary, bold: true }, "\uD83E\uDD14 THINKING..."))),
299
306
  !isProcessing && !autoEditEnabled && (React.createElement(Box, { marginLeft: 1 },
300
- React.createElement(Text, { color: "gray", dimColor: true }, "\u2022 ^K quick actions \u2022 /help commands"))))));
307
+ React.createElement(Text, { color: theme.muted, dimColor: true }, "\u2022 ^K quick actions \u2022 /help commands"))))));
301
308
  }
302
309
  export default StatusBar;
303
310
  //# sourceMappingURL=status-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../../src/ui/components/status-bar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../../src/ui/components/status-bar.tsx"],"names":[],"mappings":"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"}
@@ -353,6 +353,7 @@ onLargePaste, onPasteTruncated, onKeyboardHelp, onMcpDashboardToggle, onThinking
353
353
  { command: "/memory warmup", description: "Generate project memory" },
354
354
  { command: "/memory refresh", description: "Update project memory" },
355
355
  { command: "/commands", description: "List custom commands" },
356
+ { command: "/theme", description: "Switch color theme (default, dark, light, dracula, monokai)" },
356
357
  { command: "/exit", description: "Exit the application" },
357
358
  ];
358
359
  // Add custom commands
@@ -736,6 +737,10 @@ Memory Commands (z.ai GLM-4.6 caching):
736
737
  /memory warmup - Generate project memory context
737
738
  /memory refresh - Update memory after changes
738
739
 
740
+ UI Commands:
741
+ /theme - Show current theme and list available themes
742
+ /theme <name> - Switch color theme (default, dark, light, dracula, monokai)
743
+
739
744
  Enhanced Input Features:
740
745
  ↑/↓ Arrow - Navigate command history
741
746
  Ctrl+C - Clear input (press twice to exit)
@@ -1290,6 +1295,73 @@ Examples:
1290
1295
  clearInput();
1291
1296
  return true;
1292
1297
  }
1298
+ // Theme command
1299
+ if (trimmedInput === "/theme" || trimmedInput.startsWith("/theme ")) {
1300
+ try {
1301
+ const arg = trimmedInput.substring(7).trim();
1302
+ const settings = getSettingsManager();
1303
+ const { getAllThemes, isValidTheme } = await import("../themes/index.js");
1304
+ const { clearThemeCache } = await import("../utils/colors.js");
1305
+ const allThemes = getAllThemes();
1306
+ if (!arg || arg === "list") {
1307
+ // Show current theme and list available themes
1308
+ const uiConfig = settings.getUIConfig();
1309
+ const currentTheme = (uiConfig && uiConfig.theme) ? uiConfig.theme : 'default';
1310
+ let themeContent = "🎨 **Color Themes**\n\n";
1311
+ themeContent += `**Current theme:** ${currentTheme}\n\n`;
1312
+ themeContent += "**Available themes:**\n";
1313
+ for (const theme of allThemes) {
1314
+ const isCurrent = theme.name === currentTheme ? " ✓" : "";
1315
+ themeContent += ` • \`${theme.name}\` - ${theme.description}${isCurrent}\n`;
1316
+ }
1317
+ themeContent += "\n**Usage:** `/theme <name>` to switch themes";
1318
+ const themeEntry = {
1319
+ type: "assistant",
1320
+ content: themeContent,
1321
+ timestamp: new Date(),
1322
+ };
1323
+ setChatHistory((prev) => [...prev, themeEntry]);
1324
+ clearInput();
1325
+ return true;
1326
+ }
1327
+ // Set a specific theme
1328
+ if (isValidTheme(arg)) {
1329
+ settings.updateUIConfig({ theme: arg });
1330
+ clearThemeCache(); // Clear cached theme colors
1331
+ const selectedTheme = allThemes.find(t => t.name === arg);
1332
+ const themeEntry = {
1333
+ type: "assistant",
1334
+ content: `✅ Theme changed to **${selectedTheme?.displayName}** (${selectedTheme?.description}).\n\n💡 The new theme will be applied to UI elements.`,
1335
+ timestamp: new Date(),
1336
+ };
1337
+ setChatHistory((prev) => [...prev, themeEntry]);
1338
+ clearInput();
1339
+ return true;
1340
+ }
1341
+ else {
1342
+ // Invalid theme name
1343
+ const themeEntry = {
1344
+ type: "assistant",
1345
+ content: `❌ Unknown theme: \`${arg}\`\n\nAvailable themes: ${allThemes.map(t => t.name).join(", ")}`,
1346
+ timestamp: new Date(),
1347
+ };
1348
+ setChatHistory((prev) => [...prev, themeEntry]);
1349
+ clearInput();
1350
+ return true;
1351
+ }
1352
+ }
1353
+ catch (error) {
1354
+ const errorMessage = extractErrorMessage(error);
1355
+ const errorEntry = {
1356
+ type: "assistant",
1357
+ content: `❌ Failed to process theme command: ${errorMessage}`,
1358
+ timestamp: new Date(),
1359
+ };
1360
+ setChatHistory((prev) => [...prev, errorEntry]);
1361
+ clearInput();
1362
+ return true;
1363
+ }
1364
+ }
1293
1365
  // Background task commands
1294
1366
  if (trimmedInput === "/tasks") {
1295
1367
  const bashOutputTool = new BashOutputTool();