@defai.digital/ax-cli 3.7.2 → 3.8.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 (213) hide show
  1. package/README.md +148 -53
  2. package/dist/agent/context-manager.d.ts +15 -1
  3. package/dist/agent/context-manager.js +50 -19
  4. package/dist/agent/context-manager.js.map +1 -1
  5. package/dist/agent/dependency-resolver.js +13 -7
  6. package/dist/agent/dependency-resolver.js.map +1 -1
  7. package/dist/agent/llm-agent.d.ts +37 -0
  8. package/dist/agent/llm-agent.js +318 -98
  9. package/dist/agent/llm-agent.js.map +1 -1
  10. package/dist/agent/status-reporter.d.ts +114 -0
  11. package/dist/agent/status-reporter.js +335 -0
  12. package/dist/agent/status-reporter.js.map +1 -0
  13. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +8 -2
  14. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -1
  15. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +3 -1
  16. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -1
  17. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +3 -1
  18. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -1
  19. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +3 -1
  20. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -1
  21. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +9 -3
  22. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -1
  23. package/dist/analyzers/git/churn-calculator.d.ts +2 -0
  24. package/dist/analyzers/git/churn-calculator.js +42 -8
  25. package/dist/analyzers/git/churn-calculator.js.map +1 -1
  26. package/dist/analyzers/git/hotspot-detector.js +2 -2
  27. package/dist/analyzers/git/hotspot-detector.js.map +1 -1
  28. package/dist/analyzers/metrics/metrics-analyzer.js +1 -1
  29. package/dist/analyzers/metrics/metrics-analyzer.js.map +1 -1
  30. package/dist/analyzers/security/security-analyzer.js +1 -1
  31. package/dist/analyzers/security/security-analyzer.js.map +1 -1
  32. package/dist/checkpoint/manager.d.ts +1 -0
  33. package/dist/checkpoint/manager.js +49 -9
  34. package/dist/checkpoint/manager.js.map +1 -1
  35. package/dist/checkpoint/storage.js +2 -2
  36. package/dist/checkpoint/storage.js.map +1 -1
  37. package/dist/commands/mcp-migrate.d.ts +9 -0
  38. package/dist/commands/mcp-migrate.js +172 -0
  39. package/dist/commands/mcp-migrate.js.map +1 -0
  40. package/dist/commands/status.d.ts +7 -0
  41. package/dist/commands/status.js +211 -0
  42. package/dist/commands/status.js.map +1 -0
  43. package/dist/commands/vscode.d.ts +7 -0
  44. package/dist/commands/vscode.js +363 -0
  45. package/dist/commands/vscode.js.map +1 -0
  46. package/dist/index.js +79 -30
  47. package/dist/index.js.map +1 -1
  48. package/dist/llm/client.js +33 -4
  49. package/dist/llm/client.js.map +1 -1
  50. package/dist/mcp/automatosx-loader.d.ts +84 -0
  51. package/dist/mcp/automatosx-loader.js +238 -0
  52. package/dist/mcp/automatosx-loader.js.map +1 -0
  53. package/dist/mcp/client-mutex-patch.d.ts +36 -0
  54. package/dist/mcp/client-mutex-patch.js +75 -0
  55. package/dist/mcp/client-mutex-patch.js.map +1 -0
  56. package/dist/mcp/client-v2.d.ts +229 -0
  57. package/dist/mcp/client-v2.js +740 -0
  58. package/dist/mcp/client-v2.js.map +1 -0
  59. package/dist/mcp/client.d.ts +111 -13
  60. package/dist/mcp/client.js +168 -253
  61. package/dist/mcp/client.js.map +1 -1
  62. package/dist/mcp/config-detector-v2.d.ts +83 -0
  63. package/dist/mcp/config-detector-v2.js +328 -0
  64. package/dist/mcp/config-detector-v2.js.map +1 -0
  65. package/dist/mcp/config-detector.d.ts +90 -0
  66. package/dist/mcp/config-detector.js +242 -0
  67. package/dist/mcp/config-detector.js.map +1 -0
  68. package/dist/mcp/config-migrator-v2.d.ts +89 -0
  69. package/dist/mcp/config-migrator-v2.js +288 -0
  70. package/dist/mcp/config-migrator-v2.js.map +1 -0
  71. package/dist/mcp/config-migrator.d.ts +63 -0
  72. package/dist/mcp/config-migrator.js +269 -0
  73. package/dist/mcp/config-migrator.js.map +1 -0
  74. package/dist/mcp/config-v2.d.ts +106 -0
  75. package/dist/mcp/config-v2.js +417 -0
  76. package/dist/mcp/config-v2.js.map +1 -0
  77. package/dist/mcp/config.d.ts +12 -1
  78. package/dist/mcp/config.js +95 -10
  79. package/dist/mcp/config.js.map +1 -1
  80. package/dist/mcp/error-formatter.d.ts +46 -0
  81. package/dist/mcp/error-formatter.js +244 -0
  82. package/dist/mcp/error-formatter.js.map +1 -0
  83. package/dist/mcp/health.d.ts +5 -0
  84. package/dist/mcp/health.js +22 -2
  85. package/dist/mcp/health.js.map +1 -1
  86. package/dist/mcp/invariants.d.ts +141 -0
  87. package/dist/mcp/invariants.js +243 -0
  88. package/dist/mcp/invariants.js.map +1 -0
  89. package/dist/mcp/mutex-safe.d.ts +153 -0
  90. package/dist/mcp/mutex-safe.js +260 -0
  91. package/dist/mcp/mutex-safe.js.map +1 -0
  92. package/dist/mcp/mutex.d.ts +73 -0
  93. package/dist/mcp/mutex.js +137 -0
  94. package/dist/mcp/mutex.js.map +1 -0
  95. package/dist/mcp/reconnection.d.ts +4 -0
  96. package/dist/mcp/reconnection.js +25 -1
  97. package/dist/mcp/reconnection.js.map +1 -1
  98. package/dist/mcp/transports-v2.d.ts +152 -0
  99. package/dist/mcp/transports-v2.js +481 -0
  100. package/dist/mcp/transports-v2.js.map +1 -0
  101. package/dist/mcp/type-safety.d.ts +231 -0
  102. package/dist/mcp/type-safety.js +273 -0
  103. package/dist/mcp/type-safety.js.map +1 -0
  104. package/dist/planner/task-planner.js +13 -0
  105. package/dist/planner/task-planner.js.map +1 -1
  106. package/dist/planner/types.d.ts +6 -6
  107. package/dist/schemas/confirmation-schemas.d.ts +2 -2
  108. package/dist/schemas/settings-schemas.d.ts +196 -0
  109. package/dist/schemas/settings-schemas.js +146 -5
  110. package/dist/schemas/settings-schemas.js.map +1 -1
  111. package/dist/sdk/index.d.ts +118 -2
  112. package/dist/sdk/index.js +146 -4
  113. package/dist/sdk/index.js.map +1 -1
  114. package/dist/sdk/testing.d.ts +182 -0
  115. package/dist/sdk/testing.js +231 -0
  116. package/dist/sdk/testing.js.map +1 -1
  117. package/dist/sdk/version.d.ts +114 -15
  118. package/dist/sdk/version.js +137 -15
  119. package/dist/sdk/version.js.map +1 -1
  120. package/dist/tools/bash.js +54 -9
  121. package/dist/tools/bash.js.map +1 -1
  122. package/dist/tools/registry.d.ts +146 -0
  123. package/dist/tools/registry.js +170 -0
  124. package/dist/tools/registry.js.map +1 -0
  125. package/dist/tools/search.js +12 -2
  126. package/dist/tools/search.js.map +1 -1
  127. package/dist/tools/text-editor.js +84 -26
  128. package/dist/tools/text-editor.js.map +1 -1
  129. package/dist/ui/components/chat-history.js +6 -1
  130. package/dist/ui/components/chat-history.js.map +1 -1
  131. package/dist/ui/components/chat-input.d.ts +2 -1
  132. package/dist/ui/components/chat-input.js +5 -2
  133. package/dist/ui/components/chat-input.js.map +1 -1
  134. package/dist/ui/components/chat-interface.js +187 -5
  135. package/dist/ui/components/chat-interface.js.map +1 -1
  136. package/dist/ui/components/context-breakdown.d.ts +23 -0
  137. package/dist/ui/components/context-breakdown.js +124 -0
  138. package/dist/ui/components/context-breakdown.js.map +1 -0
  139. package/dist/ui/components/keyboard-help.d.ts +17 -0
  140. package/dist/ui/components/keyboard-help.js +116 -0
  141. package/dist/ui/components/keyboard-help.js.map +1 -0
  142. package/dist/ui/components/keyboard-hints.js +2 -2
  143. package/dist/ui/components/keyboard-hints.js.map +1 -1
  144. package/dist/ui/components/quick-actions.js +43 -7
  145. package/dist/ui/components/quick-actions.js.map +1 -1
  146. package/dist/ui/components/status-bar.d.ts +3 -0
  147. package/dist/ui/components/status-bar.js +25 -16
  148. package/dist/ui/components/status-bar.js.map +1 -1
  149. package/dist/ui/components/toast-notification.d.ts +42 -0
  150. package/dist/ui/components/toast-notification.js +30 -2
  151. package/dist/ui/components/toast-notification.js.map +1 -1
  152. package/dist/ui/components/tool-group-display.js +34 -4
  153. package/dist/ui/components/tool-group-display.js.map +1 -1
  154. package/dist/ui/components/welcome-panel.js +2 -2
  155. package/dist/ui/components/welcome-panel.js.map +1 -1
  156. package/dist/ui/hooks/use-enhanced-input.d.ts +9 -1
  157. package/dist/ui/hooks/use-enhanced-input.js +901 -90
  158. package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
  159. package/dist/ui/hooks/use-input-handler.d.ts +11 -1
  160. package/dist/ui/hooks/use-input-handler.js +67 -3
  161. package/dist/ui/hooks/use-input-handler.js.map +1 -1
  162. package/dist/ui/hooks/use-input-history.d.ts +1 -1
  163. package/dist/ui/hooks/use-input-history.js +50 -14
  164. package/dist/ui/hooks/use-input-history.js.map +1 -1
  165. package/dist/ui/utils/bracketed-paste-handler.d.ts +97 -0
  166. package/dist/ui/utils/bracketed-paste-handler.js +322 -0
  167. package/dist/ui/utils/bracketed-paste-handler.js.map +1 -0
  168. package/dist/ui/utils/change-summarizer.js +16 -6
  169. package/dist/ui/utils/change-summarizer.js.map +1 -1
  170. package/dist/ui/utils/tool-grouper.d.ts +10 -1
  171. package/dist/ui/utils/tool-grouper.js +143 -30
  172. package/dist/ui/utils/tool-grouper.js.map +1 -1
  173. package/dist/utils/auto-accept-logger.d.ts +173 -0
  174. package/dist/utils/auto-accept-logger.js +420 -0
  175. package/dist/utils/auto-accept-logger.js.map +1 -0
  176. package/dist/utils/background-task-manager.d.ts +11 -0
  177. package/dist/utils/background-task-manager.js +124 -38
  178. package/dist/utils/background-task-manager.js.map +1 -1
  179. package/dist/utils/confirmation-service.d.ts +1 -0
  180. package/dist/utils/confirmation-service.js +6 -1
  181. package/dist/utils/confirmation-service.js.map +1 -1
  182. package/dist/utils/encryption.d.ts +8 -0
  183. package/dist/utils/encryption.js +44 -27
  184. package/dist/utils/encryption.js.map +1 -1
  185. package/dist/utils/enhanced-error-messages.d.ts +33 -0
  186. package/dist/utils/enhanced-error-messages.js +420 -0
  187. package/dist/utils/enhanced-error-messages.js.map +1 -0
  188. package/dist/utils/error-handler.d.ts +13 -3
  189. package/dist/utils/error-handler.js +16 -4
  190. package/dist/utils/error-handler.js.map +1 -1
  191. package/dist/utils/external-editor.d.ts +47 -0
  192. package/dist/utils/external-editor.js +179 -0
  193. package/dist/utils/external-editor.js.map +1 -0
  194. package/dist/utils/history-migration.d.ts +9 -0
  195. package/dist/utils/history-migration.js +36 -0
  196. package/dist/utils/history-migration.js.map +1 -0
  197. package/dist/utils/paste-utils.js +12 -11
  198. package/dist/utils/paste-utils.js.map +1 -1
  199. package/dist/utils/rate-limiter.js +20 -1
  200. package/dist/utils/rate-limiter.js.map +1 -1
  201. package/dist/utils/safety-rules.d.ts +64 -0
  202. package/dist/utils/safety-rules.js +225 -0
  203. package/dist/utils/safety-rules.js.map +1 -0
  204. package/dist/utils/settings-manager.d.ts +89 -1
  205. package/dist/utils/settings-manager.js +359 -3
  206. package/dist/utils/settings-manager.js.map +1 -1
  207. package/dist/utils/token-counter.d.ts +2 -0
  208. package/dist/utils/token-counter.js +32 -9
  209. package/dist/utils/token-counter.js.map +1 -1
  210. package/dist/utils/version.d.ts +11 -2
  211. package/dist/utils/version.js +54 -21
  212. package/dist/utils/version.js.map +1 -1
  213. package/package.json +2 -1
@@ -9,6 +9,8 @@ import { StatusBar } from "./status-bar.js";
9
9
  import { QuickActions } from "./quick-actions.js";
10
10
  import { WelcomePanel } from "./welcome-panel.js";
11
11
  import ConfirmationDialog from "./confirmation-dialog.js";
12
+ import { KeyboardHelp } from "./keyboard-help.js"; // P1.4
13
+ import { ContextBreakdown } from "./context-breakdown.js"; // P1.3
12
14
  import { ToastContainer, useToasts, TOAST_MESSAGES } from "./toast-notification.js";
13
15
  import { ConfirmationService, } from "../../utils/confirmation-service.js";
14
16
  import ApiKeyInput from "./api-key-input.js";
@@ -17,12 +19,50 @@ import { getHistoryManager } from "../../utils/history-manager.js";
17
19
  import { getMcpConnectionCount } from "../../llm/tools.js";
18
20
  import { BackgroundTaskManager } from "../../utils/background-task-manager.js";
19
21
  import { isAutomatosXAvailable } from "../../utils/automatosx-detector.js";
22
+ import { PhaseProgress } from "./phase-progress.js";
23
+ import { GLM_MODELS } from "../../constants.js"; // P1.3
24
+ import { getSettingsManager } from "../../utils/settings-manager.js"; // P1.3
20
25
  import clipboardy from "clipboardy";
21
26
  import path from "path";
22
27
  // Get current project folder name
23
28
  function getCurrentProjectName() {
24
29
  return path.basename(process.cwd());
25
30
  }
31
+ // P1.3: Calculate context breakdown by category
32
+ function calculateContextBreakdown(totalTokens) {
33
+ // Estimates based on typical usage patterns
34
+ // TODO: Get actual values from agent in future enhancement
35
+ const systemInstructions = Math.floor(totalTokens * 0.15); // ~15% for system prompts
36
+ const claudeMd = Math.floor(totalTokens * 0.05); // ~5% for CLAUDE.md if present
37
+ const toolDefinitions = Math.floor(totalTokens * 0.05); // ~5% for tool definitions
38
+ const conversationHistory = totalTokens - systemInstructions - claudeMd - toolDefinitions;
39
+ return [
40
+ {
41
+ label: "System Instructions",
42
+ tokens: systemInstructions,
43
+ percentage: (systemInstructions / totalTokens) * 100,
44
+ color: "blue",
45
+ },
46
+ {
47
+ label: "CLAUDE.md",
48
+ tokens: claudeMd,
49
+ percentage: (claudeMd / totalTokens) * 100,
50
+ color: "magenta",
51
+ },
52
+ {
53
+ label: "Conversation History",
54
+ tokens: conversationHistory,
55
+ percentage: (conversationHistory / totalTokens) * 100,
56
+ color: "cyan",
57
+ },
58
+ {
59
+ label: "Tool Definitions",
60
+ tokens: toolDefinitions,
61
+ percentage: (toolDefinitions / totalTokens) * 100,
62
+ color: "yellow",
63
+ },
64
+ ];
65
+ }
26
66
  // Main chat component that handles input when agent is available
27
67
  function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = false, }) {
28
68
  // Memoize history manager to avoid unnecessary function calls on every render
@@ -40,11 +80,17 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
40
80
  const [showAutoPrune, setShowAutoPrune] = useState(false);
41
81
  const [confirmationOptions, setConfirmationOptions] = useState(null);
42
82
  const [showQuickActions, setShowQuickActions] = useState(false);
83
+ const [showKeyboardHelp, setShowKeyboardHelp] = useState(false); // P1.4: Keyboard shortcuts help
84
+ const [showContextBreakdown, setShowContextBreakdown] = useState(false); // P1.3: Context window visualization
43
85
  // Flash states for mode toggle visual feedback
44
86
  const [flashAutoEdit, setFlashAutoEdit] = useState(false);
45
87
  const [flashVerbose, setFlashVerbose] = useState(false);
46
88
  const [flashBackground, setFlashBackground] = useState(false);
89
+ const [flashThinkingMode, _setFlashThinkingMode] = useState(false); // Phase 2: Thinking mode flash (P2.4: Used by handleThinkingModeChange)
90
+ const [isThinking, setIsThinking] = useState(false); // Phase 2: Currently processing with reasoning
47
91
  const [axEnabled, setAxEnabled] = useState(false);
92
+ // NEW: Plan tracking for multi-phase execution
93
+ const [currentPlan, setCurrentPlan] = useState(null);
48
94
  const scrollRef = useRef();
49
95
  const processingStartTime = useRef(0);
50
96
  const lastPercentageRef = useRef(0); // Store last percentage value
@@ -80,6 +126,85 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
80
126
  flashTimersRef.current = [];
81
127
  };
82
128
  }, []);
129
+ // NEW: Listen for plan events from agent for real-time phase progress tracking
130
+ useEffect(() => {
131
+ // BUG FIX: Track plan timeouts for cleanup to prevent setState on unmounted component
132
+ const planTimers = [];
133
+ const handlePlanCreated = (data) => {
134
+ setCurrentPlan(data.plan);
135
+ };
136
+ const handlePlanCompleted = () => {
137
+ // Keep plan visible briefly after completion to show success
138
+ // BUG FIX: Track timer for cleanup
139
+ const timer = setTimeout(() => setCurrentPlan(null), 3000);
140
+ planTimers.push(timer);
141
+ };
142
+ const handlePlanFailed = () => {
143
+ // Keep plan visible longer to show failure state
144
+ // BUG FIX: Track timer for cleanup
145
+ const timer = setTimeout(() => setCurrentPlan(null), 5000);
146
+ planTimers.push(timer);
147
+ };
148
+ const handlePhaseStarted = (data) => {
149
+ // Update current phase index for visual progress
150
+ setCurrentPlan((prevPlan) => {
151
+ if (!prevPlan || prevPlan.id !== data.planId)
152
+ return prevPlan;
153
+ return {
154
+ ...prevPlan,
155
+ currentPhaseIndex: data.phase.index,
156
+ phases: prevPlan.phases.map(p => p.id === data.phase.id ? { ...p, status: data.phase.status } : p),
157
+ };
158
+ });
159
+ };
160
+ const handlePhaseCompleted = (data) => {
161
+ // Update phase status and duration
162
+ setCurrentPlan((prevPlan) => {
163
+ if (!prevPlan || prevPlan.id !== data.planId)
164
+ return prevPlan;
165
+ return {
166
+ ...prevPlan,
167
+ phasesCompleted: prevPlan.phasesCompleted + 1,
168
+ phases: prevPlan.phases.map(p => p.id === data.phase.id
169
+ ? { ...p, status: data.phase.status, duration: data.phase.duration }
170
+ : p),
171
+ };
172
+ });
173
+ };
174
+ const handlePhaseFailed = (data) => {
175
+ // Update phase status with error
176
+ setCurrentPlan((prevPlan) => {
177
+ if (!prevPlan || prevPlan.id !== data.planId)
178
+ return prevPlan;
179
+ return {
180
+ ...prevPlan,
181
+ phasesFailed: prevPlan.phasesFailed + 1,
182
+ phases: prevPlan.phases.map(p => p.id === data.phase.id
183
+ ? { ...p, status: data.phase.status, error: data.error }
184
+ : p),
185
+ };
186
+ });
187
+ };
188
+ // Register event listeners
189
+ agent.on('plan:created', handlePlanCreated);
190
+ agent.on('plan:completed', handlePlanCompleted);
191
+ agent.on('plan:failed', handlePlanFailed);
192
+ agent.on('phase:started', handlePhaseStarted);
193
+ agent.on('phase:completed', handlePhaseCompleted);
194
+ agent.on('phase:failed', handlePhaseFailed);
195
+ // Cleanup on unmount
196
+ return () => {
197
+ // BUG FIX: Clear all plan timers to prevent setState on unmounted component
198
+ planTimers.forEach(timer => clearTimeout(timer));
199
+ // Remove event listeners
200
+ agent.off('plan:created', handlePlanCreated);
201
+ agent.off('plan:completed', handlePlanCompleted);
202
+ agent.off('plan:failed', handlePlanFailed);
203
+ agent.off('phase:started', handlePhaseStarted);
204
+ agent.off('phase:completed', handlePhaseCompleted);
205
+ agent.off('phase:failed', handlePhaseFailed);
206
+ };
207
+ }, [agent]);
83
208
  // Mode toggle handlers with toast feedback
84
209
  const handleVerboseModeChange = useCallback((enabled) => {
85
210
  triggerFlash(setFlashVerbose);
@@ -93,6 +218,24 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
93
218
  triggerFlash(setFlashAutoEdit);
94
219
  addToast(enabled ? TOAST_MESSAGES.autoEditOn : TOAST_MESSAGES.autoEditOff);
95
220
  }, [triggerFlash, addToast]);
221
+ // P2.4: Thinking mode toggle handler
222
+ const handleThinkingModeChange = useCallback((enabled) => {
223
+ triggerFlash(_setFlashThinkingMode);
224
+ addToast(enabled ? TOAST_MESSAGES.thinkingOn : TOAST_MESSAGES.thinkingOff);
225
+ }, [triggerFlash, addToast]);
226
+ // P2.3: External editor handlers
227
+ const handleEditorOpening = useCallback((editorName) => {
228
+ addToast(TOAST_MESSAGES.editorOpening(editorName));
229
+ }, [addToast]);
230
+ const handleEditorSuccess = useCallback(() => {
231
+ addToast(TOAST_MESSAGES.editorSuccess);
232
+ }, [addToast]);
233
+ const handleEditorCancelled = useCallback(() => {
234
+ addToast(TOAST_MESSAGES.editorCancelled);
235
+ }, [addToast]);
236
+ const handleEditorError = useCallback((error) => {
237
+ addToast(TOAST_MESSAGES.editorError(error));
238
+ }, [addToast]);
96
239
  const handleTaskMovedToBackground = useCallback((taskId) => {
97
240
  addToast(TOAST_MESSAGES.taskMoved(taskId));
98
241
  }, [addToast]);
@@ -102,6 +245,15 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
102
245
  const handleChatCleared = useCallback(() => {
103
246
  addToast(TOAST_MESSAGES.cleared);
104
247
  }, [addToast]);
248
+ // Phase 3: Large paste handling
249
+ const handleLargePaste = useCallback((charCount) => {
250
+ // Only show warning toast if not truncating (allowLargePaste = true)
251
+ // Otherwise the truncation toast will be more informative
252
+ addToast(TOAST_MESSAGES.pasteTruncationDisabled(charCount));
253
+ }, [addToast]);
254
+ const handlePasteTruncated = useCallback((originalLength, truncatedLength) => {
255
+ addToast(TOAST_MESSAGES.pasteTruncated(originalLength, truncatedLength));
256
+ }, [addToast]);
105
257
  // Keep chatHistoryRef in sync
106
258
  useEffect(() => {
107
259
  chatHistoryRef.current = chatHistory;
@@ -135,7 +287,9 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
135
287
  const handleCheckpointRestored = useCallback(() => {
136
288
  addToast(TOAST_MESSAGES.checkpointRestored);
137
289
  }, [addToast]);
138
- const { input, cursorPosition, showCommandSuggestions, selectedCommandIndex, commandSuggestions, autoEditEnabled, verboseMode, verbosityLevel, backgroundMode, pastedBlocks, currentBlockAtCursor, } = useInputHandler({
290
+ const { input, cursorPosition, showCommandSuggestions, selectedCommandIndex, commandSuggestions, autoEditEnabled, verboseMode, verbosityLevel, backgroundMode, thinkingModeEnabled, // P2.4: Thinking mode state
291
+ pastedBlocks, currentBlockAtCursor, isPasting, // v3.8.0: Track paste accumulation state
292
+ } = useInputHandler({
139
293
  agent,
140
294
  chatHistory,
141
295
  setChatHistory,
@@ -151,6 +305,7 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
151
305
  onVerboseModeChange: handleVerboseModeChange,
152
306
  onBackgroundModeChange: handleBackgroundModeChange,
153
307
  onAutoEditModeChange: handleAutoEditModeChange,
308
+ onThinkingModeChange: handleThinkingModeChange, // P2.4: Thinking mode toggle
154
309
  onTaskMovedToBackground: handleTaskMovedToBackground,
155
310
  onOperationInterrupted: handleOperationInterrupted,
156
311
  onChatCleared: handleChatCleared,
@@ -159,6 +314,13 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
159
314
  onMemoryRefreshed: handleMemoryRefreshed,
160
315
  onCheckpointCreated: handleCheckpointCreated,
161
316
  onCheckpointRestored: handleCheckpointRestored,
317
+ onLargePaste: handleLargePaste, // Phase 3: Large paste warning
318
+ onPasteTruncated: handlePasteTruncated, // Phase 3: Paste truncation notification
319
+ onKeyboardHelp: () => setShowKeyboardHelp((prev) => !prev), // P1.4: Toggle keyboard help
320
+ onEditorOpening: handleEditorOpening, // P2.3: External editor opening
321
+ onEditorSuccess: handleEditorSuccess, // P2.3: External editor success
322
+ onEditorCancelled: handleEditorCancelled, // P2.3: External editor cancelled
323
+ onEditorError: handleEditorError, // P2.3: External editor error
162
324
  });
163
325
  useEffect(() => {
164
326
  // Only clear console on non-Windows platforms or if not PowerShell
@@ -196,6 +358,7 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
196
358
  case "reasoning":
197
359
  // Handle reasoning content from GLM-4.6 thinking mode
198
360
  if (chunk.reasoningContent) {
361
+ setIsThinking(true); // Phase 2: Indicate active reasoning
199
362
  if (!streamingEntry) {
200
363
  const newStreamingEntry = {
201
364
  type: "assistant",
@@ -293,6 +456,7 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
293
456
  }
294
457
  break;
295
458
  case "done":
459
+ setIsThinking(false); // Phase 2: Clear thinking state when done
296
460
  if (streamingEntry) {
297
461
  setChatHistory((prev) => prev.map((entry) => entry.isStreaming ? { ...entry, isStreaming: false } : entry));
298
462
  }
@@ -473,20 +637,38 @@ function ChatInterfaceWithAgent({ agent, initialMessage, loadPreviousHistory = f
473
637
  if (command === "exit") {
474
638
  process.exit(0);
475
639
  }
640
+ // P1.3: Handle /context command
641
+ if (command === "/context") {
642
+ setShowContextBreakdown(true);
643
+ return;
644
+ }
476
645
  // For slash commands, we'll need to trigger processing
477
646
  // This can be done by directly calling the input handler or agent
478
647
  };
479
648
  return (React.createElement(Box, { flexDirection: "column", paddingX: 2 },
480
- chatHistory.length === 0 && !confirmationOptions && !showQuickActions && (React.createElement(WelcomePanel, { projectName: projectName })),
649
+ chatHistory.length === 0 && !confirmationOptions && !showQuickActions && !showKeyboardHelp && !showContextBreakdown && (React.createElement(WelcomePanel, { projectName: projectName })),
650
+ currentPlan && !confirmationOptions && (React.createElement(Box, { marginBottom: 1 },
651
+ React.createElement(PhaseProgress, { plan: currentPlan, compact: true }))),
481
652
  React.createElement(Box, { flexDirection: "column", ref: scrollRef },
482
653
  React.createElement(ChatHistory, { entries: chatHistory, isConfirmationActive: !!confirmationOptions, verboseMode: verboseMode, verbosityLevel: verbosityLevel })),
483
654
  showQuickActions && (React.createElement(QuickActions, { isVisible: showQuickActions, onSelect: handleQuickActionSelect, onClose: () => setShowQuickActions(false) })),
655
+ showKeyboardHelp && (React.createElement(KeyboardHelp, { onClose: () => setShowKeyboardHelp(false), verbosityLevel: verbosityLevel, backgroundMode: backgroundMode, autoEditEnabled: autoEditEnabled })),
656
+ showContextBreakdown && (() => {
657
+ // Calculate current and max tokens
658
+ const settingsManager = getSettingsManager();
659
+ const model = settingsManager.getCurrentModel();
660
+ const modelConfig = GLM_MODELS[model];
661
+ const maxTokens = modelConfig?.contextWindow || 200000;
662
+ const currentTokens = Math.floor(maxTokens * (1 - contextPercentage / 100));
663
+ const categories = calculateContextBreakdown(currentTokens);
664
+ return (React.createElement(ContextBreakdown, { onClose: () => setShowContextBreakdown(false), currentTokens: currentTokens, maxTokens: maxTokens, categories: categories }));
665
+ })(),
484
666
  confirmationOptions && (React.createElement(ConfirmationDialog, { operation: confirmationOptions.operation, filename: confirmationOptions.filename, showVSCodeOpen: confirmationOptions.showVSCodeOpen, content: confirmationOptions.content, onConfirm: handleConfirmation, onReject: handleRejection })),
485
- !confirmationOptions && !showQuickActions && (React.createElement(React.Fragment, null,
667
+ !confirmationOptions && !showQuickActions && !showKeyboardHelp && !showContextBreakdown && (React.createElement(React.Fragment, null,
486
668
  React.createElement(LoadingSpinner, { isActive: isProcessing || isStreaming, processingTime: processingTime, tokenCount: tokenCount }),
487
- React.createElement(ChatInput, { input: input, cursorPosition: cursorPosition, isProcessing: isProcessing, isStreaming: isStreaming, pastedBlocks: pastedBlocks, currentBlockAtCursor: currentBlockAtCursor }),
669
+ React.createElement(ChatInput, { input: input, cursorPosition: cursorPosition, isProcessing: isProcessing, isStreaming: isStreaming, pastedBlocks: pastedBlocks, currentBlockAtCursor: currentBlockAtCursor, isPasting: isPasting }),
488
670
  toasts.length > 0 && (React.createElement(ToastContainer, { toasts: toasts, onDismiss: removeToast, maxVisible: 2 })),
489
- React.createElement(StatusBar, { projectName: projectName, version: version, model: agent.getCurrentModel(), contextPercentage: contextPercentage, showAutoPrune: showAutoPrune, autoEditEnabled: autoEditEnabled, verboseMode: verboseMode, verbosityLevel: verbosityLevel, backgroundMode: backgroundMode, mcpServerCount: mcpServerCount, backgroundTaskCount: backgroundTaskCount, isProcessing: isProcessing || isStreaming, processingTime: processingTime, tokenCount: tokenCount, flashAutoEdit: flashAutoEdit, flashVerbose: flashVerbose, flashBackground: flashBackground, axEnabled: axEnabled }),
671
+ React.createElement(StatusBar, { projectName: projectName, version: version, model: agent.getCurrentModel(), contextPercentage: contextPercentage, showAutoPrune: showAutoPrune, autoEditEnabled: autoEditEnabled, verboseMode: verboseMode, verbosityLevel: verbosityLevel, backgroundMode: backgroundMode, mcpServerCount: mcpServerCount, backgroundTaskCount: backgroundTaskCount, isProcessing: isProcessing || isStreaming, processingTime: processingTime, tokenCount: tokenCount, flashAutoEdit: flashAutoEdit, flashVerbose: flashVerbose, flashBackground: flashBackground, axEnabled: axEnabled, thinkingModeEnabled: thinkingModeEnabled, flashThinkingMode: flashThinkingMode, isThinking: isThinking }),
490
672
  React.createElement(CommandSuggestions, { suggestions: commandSuggestions, input: input, selectedIndex: selectedCommandIndex, isVisible: showCommandSuggestions })))));
491
673
  }
492
674
  // Main component that handles API key input or chat interface
@@ -1 +1 @@
1
- {"version":3,"file":"chat-interface.js","sourceRoot":"","sources":["../../../src/ui/components/chat-interface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-interface.js","sourceRoot":"","sources":["../../../src/ui/components/chat-interface.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Context Window Breakdown Component
3
+ *
4
+ * Displays detailed token usage breakdown by category.
5
+ * Triggered by `/context` command.
6
+ *
7
+ * P1.3: Priority 1 Feature - High Value / Low Risk
8
+ */
9
+ import React from "react";
10
+ interface ContextCategory {
11
+ label: string;
12
+ tokens: number;
13
+ percentage: number;
14
+ color: string;
15
+ }
16
+ interface ContextBreakdownProps {
17
+ onClose: () => void;
18
+ currentTokens: number;
19
+ maxTokens: number;
20
+ categories: ContextCategory[];
21
+ }
22
+ export declare function ContextBreakdown({ onClose, currentTokens, maxTokens, categories, }: ContextBreakdownProps): React.JSX.Element;
23
+ export default ContextBreakdown;
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Context Window Breakdown Component
3
+ *
4
+ * Displays detailed token usage breakdown by category.
5
+ * Triggered by `/context` command.
6
+ *
7
+ * P1.3: Priority 1 Feature - High Value / Low Risk
8
+ */
9
+ import React from "react";
10
+ import { Box, Text, useInput } from "ink";
11
+ /**
12
+ * Format token count for human-readable display
13
+ */
14
+ function formatTokenCount(tokens) {
15
+ if (tokens >= 1000000)
16
+ return `${(tokens / 1000000).toFixed(1)}M`;
17
+ if (tokens >= 1000)
18
+ return `${(tokens / 1000).toFixed(1)}k`;
19
+ return tokens.toString();
20
+ }
21
+ /**
22
+ * Render a horizontal bar chart for a category
23
+ */
24
+ function CategoryBar({ label, tokens, percentage, color, }) {
25
+ const barWidth = 10;
26
+ const filledWidth = Math.round((percentage / 100) * barWidth);
27
+ const emptyWidth = barWidth - filledWidth;
28
+ return (React.createElement(Box, { flexDirection: "row", marginY: 0 },
29
+ React.createElement(Box, { width: 25 },
30
+ React.createElement(Text, { color: "white" }, label)),
31
+ React.createElement(Box, { width: 15 },
32
+ React.createElement(Text, { color: color }, "█".repeat(filledWidth)),
33
+ React.createElement(Text, { color: "gray", dimColor: true }, "░".repeat(emptyWidth))),
34
+ React.createElement(Box, { width: 20, marginLeft: 1 },
35
+ React.createElement(Text, { color: color },
36
+ formatTokenCount(tokens),
37
+ " tokens"),
38
+ React.createElement(Text, { color: "gray" },
39
+ " (",
40
+ percentage.toFixed(1),
41
+ "%)"))));
42
+ }
43
+ /**
44
+ * Get usage status and color based on percentage
45
+ */
46
+ function getUsageStatus(percentageUsed) {
47
+ if (percentageUsed >= 95) {
48
+ return { status: "CRITICAL", color: "red", symbol: "🔴" };
49
+ }
50
+ if (percentageUsed >= 80) {
51
+ return { status: "High", color: "yellow", symbol: "⚠️" };
52
+ }
53
+ if (percentageUsed >= 50) {
54
+ return { status: "Moderate", color: "yellow", symbol: "📊" };
55
+ }
56
+ return { status: "Good", color: "green", symbol: "✅" };
57
+ }
58
+ export function ContextBreakdown({ onClose, currentTokens, maxTokens, categories, }) {
59
+ // Handle Escape key to close the breakdown
60
+ useInput((input, key) => {
61
+ if (key.escape || input === "q") {
62
+ onClose();
63
+ }
64
+ });
65
+ const percentageUsed = (currentTokens / maxTokens) * 100;
66
+ const availableTokens = maxTokens - currentTokens;
67
+ const { status, color, symbol } = getUsageStatus(percentageUsed);
68
+ return (React.createElement(Box, { flexDirection: "column", paddingX: 2, paddingY: 1 },
69
+ React.createElement(Box, { borderStyle: "double", borderColor: "cyan", paddingX: 2, marginBottom: 1 },
70
+ React.createElement(Text, { bold: true, color: "cyan" }, "\uD83D\uDCCA Context Window Breakdown"),
71
+ React.createElement(Text, { color: "gray" }, " (Press Esc or q to close)")),
72
+ React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
73
+ React.createElement(Text, { bold: true, color: "yellow" }, "Summary:"),
74
+ React.createElement(Box, { paddingLeft: 2, flexDirection: "column" },
75
+ React.createElement(Box, null,
76
+ React.createElement(Text, { color: "white" }, "Total Used: "),
77
+ React.createElement(Text, { color: "cyan", bold: true },
78
+ formatTokenCount(currentTokens),
79
+ " / ",
80
+ formatTokenCount(maxTokens),
81
+ " tokens"),
82
+ React.createElement(Text, { color: "gray" },
83
+ " (",
84
+ percentageUsed.toFixed(1),
85
+ "% used)")),
86
+ React.createElement(Box, null,
87
+ React.createElement(Text, { color: "white" }, "Available: "),
88
+ React.createElement(Text, { color: "green", bold: true },
89
+ formatTokenCount(availableTokens),
90
+ " tokens"),
91
+ React.createElement(Text, { color: "gray" },
92
+ " (",
93
+ (100 - percentageUsed).toFixed(1),
94
+ "% free)")),
95
+ React.createElement(Box, null,
96
+ React.createElement(Text, { color: "white" }, "Status: "),
97
+ React.createElement(Text, { color: color, bold: true },
98
+ symbol,
99
+ " ",
100
+ status)))),
101
+ React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
102
+ React.createElement(Text, { bold: true, color: "yellow" }, "Breakdown by Category:"),
103
+ React.createElement(Box, { paddingLeft: 2, flexDirection: "column" }, categories.map((category, index) => (React.createElement(CategoryBar, { key: index, label: category.label, tokens: category.tokens, percentage: category.percentage, color: category.color }))))),
104
+ percentageUsed >= 80 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
105
+ React.createElement(Text, { bold: true, color: "red" }, "\u26A0\uFE0F Context Usage Warning:"),
106
+ React.createElement(Box, { paddingLeft: 2, flexDirection: "column" },
107
+ percentageUsed >= 95 && (React.createElement(Text, { color: "red" }, "\u2022 CRITICAL: Context nearly full! Responses may fail soon.")),
108
+ percentageUsed >= 80 && percentageUsed < 95 && (React.createElement(Text, { color: "yellow" }, "\u2022 Context getting full. Consider freeing up space soon.")),
109
+ React.createElement(Text, { color: "gray" }, "\u2022 Use /clear to remove old messages"),
110
+ React.createElement(Text, { color: "gray" }, "\u2022 Start a new session if needed")))),
111
+ percentageUsed < 80 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
112
+ React.createElement(Text, { bold: true, color: "green" }, "\uD83D\uDCA1 Tips:"),
113
+ React.createElement(Box, { paddingLeft: 2, flexDirection: "column" },
114
+ React.createElement(Text, { color: "gray" },
115
+ "\u2022 You have plenty of context available (",
116
+ (100 - percentageUsed).toFixed(0),
117
+ "% free)"),
118
+ React.createElement(Text, { color: "gray" }, "\u2022 Context includes conversation history and system instructions"),
119
+ React.createElement(Text, { color: "gray" }, "\u2022 Use /clear to reset conversation if needed")))),
120
+ React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1, marginTop: 1 },
121
+ React.createElement(Text, { color: "gray", dimColor: true }, "\uD83D\uDCA1 Tip: Monitor context usage in the status bar \u2022 Press Ctrl+K for quick actions"))));
122
+ }
123
+ export default ContextBreakdown;
124
+ //# sourceMappingURL=context-breakdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-breakdown.js","sourceRoot":"","sources":["../../../src/ui/components/context-breakdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Keyboard Shortcuts Help Component
3
+ *
4
+ * Displays a comprehensive, context-aware keyboard shortcut reference.
5
+ * Triggered by pressing `?` key in the input field.
6
+ *
7
+ * P1.4: Priority 1 Feature - High Value / Low Risk
8
+ */
9
+ import React from "react";
10
+ interface KeyboardHelpProps {
11
+ onClose: () => void;
12
+ verbosityLevel?: number;
13
+ backgroundMode?: boolean;
14
+ autoEditEnabled?: boolean;
15
+ }
16
+ export declare function KeyboardHelp({ onClose, verbosityLevel, backgroundMode, autoEditEnabled, }: KeyboardHelpProps): React.JSX.Element;
17
+ export default KeyboardHelp;