codecane 1.0.203 → 1.0.204

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 (49) hide show
  1. package/dist/checkpoints/checkpoint-manager.d.ts +1 -1
  2. package/dist/checkpoints/checkpoint-manager.js +6 -6
  3. package/dist/checkpoints/checkpoint-manager.js.map +1 -1
  4. package/dist/checkpoints/file-manager.d.ts +41 -10
  5. package/dist/checkpoints/file-manager.js +127 -58
  6. package/dist/checkpoints/file-manager.js.map +1 -1
  7. package/dist/cli.d.ts +5 -1
  8. package/dist/cli.js +65 -29
  9. package/dist/cli.js.map +1 -1
  10. package/dist/client.d.ts +94 -5
  11. package/dist/client.js +29 -45
  12. package/dist/client.js.map +1 -1
  13. package/dist/code-map/languages.d.ts +1 -0
  14. package/dist/code-map/languages.js +224 -23
  15. package/dist/code-map/languages.js.map +1 -1
  16. package/dist/code-map/parse.js +0 -1
  17. package/dist/code-map/parse.js.map +1 -1
  18. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  19. package/dist/common/actions.d.ts +68 -88
  20. package/dist/common/actions.js +0 -1
  21. package/dist/common/actions.js.map +1 -1
  22. package/dist/common/browser-actions.d.ts +44 -44
  23. package/dist/common/types/agent-state.d.ts +28 -28
  24. package/dist/common/types/message.d.ts +8 -8
  25. package/dist/common/util/saxy.js +1 -1
  26. package/dist/common/util/saxy.js.map +1 -1
  27. package/dist/common/util/string.d.ts +4 -0
  28. package/dist/common/util/string.js +8 -1
  29. package/dist/common/util/string.js.map +1 -1
  30. package/dist/common/websockets/websocket-schema.d.ts +132 -164
  31. package/dist/menu.js +1 -1
  32. package/dist/menu.js.map +1 -1
  33. package/dist/project-files.js +2 -0
  34. package/dist/project-files.js.map +1 -1
  35. package/dist/utils/logger.d.ts +2 -0
  36. package/dist/utils/logger.js +33 -0
  37. package/dist/utils/logger.js.map +1 -0
  38. package/dist/utils/terminal.js +1 -1
  39. package/dist/utils/terminal.js.map +1 -1
  40. package/package.json +37 -13
  41. package/dist/common/advanced-analyzer.d.ts +0 -19
  42. package/dist/common/advanced-analyzer.js +0 -140
  43. package/dist/common/advanced-analyzer.js.map +0 -1
  44. package/dist/common/message-image-handling.d.ts +0 -41
  45. package/dist/common/message-image-handling.js +0 -57
  46. package/dist/common/message-image-handling.js.map +0 -1
  47. package/dist/common/util/process-stream.d.ts +0 -8
  48. package/dist/common/util/process-stream.js +0 -102
  49. package/dist/common/util/process-stream.js.map +0 -1
package/dist/cli.js CHANGED
@@ -27,6 +27,7 @@ exports.CLI = void 0;
27
27
  const path_1 = require("path");
28
28
  const picocolors_1 = require("picocolors");
29
29
  const readline = __importStar(require("readline"));
30
+ const constants_1 = require("./common/constants");
30
31
  const project_file_tree_1 = require("./common/project-file-tree");
31
32
  const string_1 = require("./common/util/string");
32
33
  const chat_storage_1 = require("./chat-storage");
@@ -39,6 +40,7 @@ const spinner_1 = require("./utils/spinner");
39
40
  const terminal_1 = require("./utils/terminal");
40
41
  const web_scraper_1 = require("./web-scraper");
41
42
  const assert_1 = require("assert");
43
+ const restoreCheckpointRegex = /^checkpoint\s+(\d+)$/;
42
44
  class CLI {
43
45
  client;
44
46
  readyPromise;
@@ -123,6 +125,16 @@ class CLI {
123
125
  setPrompt() {
124
126
  this.rl.setPrompt((0, picocolors_1.green)(`${(0, path_1.parse)((0, project_files_1.getProjectRoot)()).base} > `));
125
127
  }
128
+ /**
129
+ * Prompts the user with a clean prompt state
130
+ */
131
+ freshPrompt() {
132
+ spinner_1.Spinner.get().stop();
133
+ readline.cursorTo(process.stdout, 0);
134
+ this.rl.line = '';
135
+ this.setPrompt();
136
+ this.rl.prompt();
137
+ }
126
138
  async printInitialPrompt(initialInput) {
127
139
  if (this.client.user) {
128
140
  (0, menu_1.displayGreeting)(this.costMode, this.client.user.name);
@@ -132,7 +144,7 @@ class CLI {
132
144
  await this.client.login();
133
145
  return;
134
146
  }
135
- this.rl.prompt();
147
+ this.freshPrompt();
136
148
  if (initialInput) {
137
149
  process.stdout.write(initialInput + '\n');
138
150
  this.handleUserInput(initialInput);
@@ -140,7 +152,7 @@ class CLI {
140
152
  }
141
153
  async printDiff() {
142
154
  this.handleDiff();
143
- this.rl.prompt();
155
+ this.freshPrompt();
144
156
  }
145
157
  async handleLine(line) {
146
158
  this.detectPasting();
@@ -166,34 +178,35 @@ class CLI {
166
178
  }
167
179
  await this.forwardUserInput(userInput);
168
180
  }
169
- async beforeProcessCommand(userInput) {
181
+ async saveCheckpoint(userInput) {
182
+ if (checkpoint_manager_1.checkpointManager.disabledReason !== null) {
183
+ return;
184
+ }
170
185
  spinner_1.Spinner.get().start();
171
186
  await this.readyPromise;
172
187
  spinner_1.Spinner.get().stop();
173
- if (checkpoint_manager_1.checkpointManager.enabled) {
174
- // Make sure the previous checkpoint is done
175
- await checkpoint_manager_1.checkpointManager.getLatestCheckpoint()?.fileStateIdPromise;
176
- // Save the current agent state
177
- const checkpoint = await checkpoint_manager_1.checkpointManager.addCheckpoint(this.client.agentState, userInput);
178
- if (checkpoint) {
179
- console.log((0, picocolors_1.green)(`Checkpoint #${checkpoint.id} saved!`));
180
- }
188
+ // Make sure the previous checkpoint is done
189
+ await checkpoint_manager_1.checkpointManager.getLatestCheckpoint()?.fileStateIdPromise;
190
+ // Save the current agent state
191
+ const checkpoint = await checkpoint_manager_1.checkpointManager.addCheckpoint(this.client.agentState, userInput);
192
+ if (checkpoint) {
193
+ console.log(`[checkpoint #${checkpoint.id} saved]`);
181
194
  }
182
195
  }
183
196
  async processCommand(userInput) {
184
- await this.beforeProcessCommand(userInput);
185
197
  if (userInput === 'help' || userInput === 'h') {
186
198
  (0, menu_1.displayMenu)();
187
- this.rl.prompt();
199
+ this.freshPrompt();
188
200
  return true;
189
201
  }
190
202
  if (userInput === 'login' || userInput === 'signin') {
191
203
  await this.client.login();
204
+ checkpoint_manager_1.checkpointManager.clearCheckpoints();
192
205
  return true;
193
206
  }
194
207
  if (userInput === 'logout' || userInput === 'signout') {
195
208
  await this.client.logout();
196
- this.rl.prompt();
209
+ this.freshPrompt();
197
210
  return true;
198
211
  }
199
212
  if (userInput.startsWith('ref-')) {
@@ -205,6 +218,7 @@ class CLI {
205
218
  return true;
206
219
  }
207
220
  if (userInput === 'undo' || userInput === 'u') {
221
+ await this.saveCheckpoint(userInput);
208
222
  this.handleUndo();
209
223
  return true;
210
224
  }
@@ -214,7 +228,7 @@ class CLI {
214
228
  }
215
229
  if (['diff', 'doff', 'dif', 'iff', 'd'].includes(userInput)) {
216
230
  this.handleDiff();
217
- this.rl.prompt();
231
+ this.freshPrompt();
218
232
  return true;
219
233
  }
220
234
  if (userInput === 'uuddlrlrba' ||
@@ -225,12 +239,14 @@ class CLI {
225
239
  }
226
240
  // Checkpoint commands
227
241
  if (userInput === 'checkpoint list' || userInput === 'checkpoints') {
242
+ await this.saveCheckpoint(userInput);
228
243
  this.handleCheckpoints();
229
244
  return true;
230
245
  }
231
- const restoreMatch = userInput.match(/^checkpoint\s+(\d+)$/);
246
+ const restoreMatch = userInput.match(restoreCheckpointRegex);
232
247
  if (restoreMatch) {
233
248
  const id = parseInt(restoreMatch[1], 10);
249
+ await this.saveCheckpoint(userInput);
234
250
  await this.handleRestoreCheckpoint(id);
235
251
  return true;
236
252
  }
@@ -241,6 +257,7 @@ class CLI {
241
257
  return false;
242
258
  }
243
259
  async forwardUserInput(userInput) {
260
+ await this.saveCheckpoint(userInput);
244
261
  spinner_1.Spinner.get().start();
245
262
  this.client.lastChanges = [];
246
263
  const urls = (0, web_scraper_1.parseUrlsFromContent)(userInput);
@@ -260,14 +277,19 @@ class CLI {
260
277
  this.stopResponse = null;
261
278
  this.isReceivingResponse = false;
262
279
  spinner_1.Spinner.get().stop();
280
+ if (this.client.lastRequestCredits >= constants_1.REQUEST_CREDIT_SHOW_THRESHOLD) {
281
+ console.log(`\n${(0, string_1.pluralize)(this.client.lastRequestCredits, 'credit')} used for this request.`);
282
+ }
283
+ this.client.showUsageWarning();
284
+ console.log();
285
+ this.freshPrompt();
263
286
  }
264
287
  returnControlToUser() {
265
- this.rl.prompt();
288
+ this.freshPrompt();
266
289
  this.isReceivingResponse = false;
267
290
  if (this.stopResponse) {
268
291
  this.stopResponse();
269
292
  }
270
- spinner_1.Spinner.get().stop();
271
293
  }
272
294
  onWebSocketError() {
273
295
  spinner_1.Spinner.get().stop();
@@ -283,11 +305,22 @@ class CLI {
283
305
  this.returnControlToUser();
284
306
  }
285
307
  async handleUndo() {
308
+ if (checkpoint_manager_1.checkpointManager.disabledReason !== null) {
309
+ console.log((0, picocolors_1.red)(`Checkpoints not enabled: ${checkpoint_manager_1.checkpointManager.disabledReason}`));
310
+ this.freshPrompt();
311
+ return;
312
+ }
313
+ const checkpoint = checkpoint_manager_1.checkpointManager.getLatestCheckpoint();
314
+ if (checkpoint === null) {
315
+ console.log((0, picocolors_1.red)('Unable to undo: internal error: no checkpoints found'));
316
+ this.freshPrompt();
317
+ return;
318
+ }
286
319
  // Get previous checkpoint number (not including undo command)
287
- const checkpointId = checkpoint_manager_1.checkpointManager.getLatestCheckpoint().id - 1;
320
+ const checkpointId = checkpoint.id - 1;
288
321
  if (checkpointId < 1) {
289
322
  console.log((0, picocolors_1.red)('Nothing to undo.'));
290
- this.rl.prompt();
323
+ this.freshPrompt();
291
324
  return;
292
325
  }
293
326
  await this.handleRestoreCheckpoint(checkpointId);
@@ -330,7 +363,7 @@ class CLI {
330
363
  else {
331
364
  this.lastSigintTime = now;
332
365
  console.log('\nPress Ctrl-C again to exit');
333
- this.rl.prompt();
366
+ this.freshPrompt();
334
367
  }
335
368
  }
336
369
  }
@@ -526,18 +559,18 @@ class CLI {
526
559
  // Checkpoint command handlers
527
560
  async handleCheckpoints() {
528
561
  console.log(checkpoint_manager_1.checkpointManager.getCheckpointsAsString());
529
- this.rl.prompt();
562
+ this.freshPrompt();
530
563
  }
531
564
  async handleRestoreCheckpoint(id) {
532
- if (!checkpoint_manager_1.checkpointManager.enabled) {
533
- console.log((0, picocolors_1.red)(`Checkpoints not enabled: project too large`));
534
- this.rl.prompt();
565
+ if (checkpoint_manager_1.checkpointManager.disabledReason !== null) {
566
+ console.log((0, picocolors_1.red)(`Checkpoints not enabled: ${checkpoint_manager_1.checkpointManager.disabledReason}`));
567
+ this.freshPrompt();
535
568
  return;
536
569
  }
537
570
  const checkpoint = checkpoint_manager_1.checkpointManager.checkpoints[id - 1];
538
571
  if (!checkpoint) {
539
572
  console.log((0, picocolors_1.red)(`Checkpoint #${id} not found.`));
540
- this.rl.prompt();
573
+ this.freshPrompt();
541
574
  return;
542
575
  }
543
576
  // Wait for save before trying to restore checkpoint
@@ -546,8 +579,10 @@ class CLI {
546
579
  await this.restoreAgentStateAndFiles(checkpoint);
547
580
  console.log((0, picocolors_1.green)(`Restored to checkpoint #${id}.`));
548
581
  // Insert the original user input that created this checkpoint
549
- this.rl.prompt();
550
- this.rl.write(checkpoint.userInput);
582
+ this.freshPrompt();
583
+ if (!checkpoint.userInput.match(restoreCheckpointRegex)) {
584
+ this.rl.write(checkpoint.userInput);
585
+ }
551
586
  }
552
587
  async restoreAgentStateAndFiles(checkpoint) {
553
588
  // Restore the agentState
@@ -561,7 +596,8 @@ class CLI {
561
596
  }
562
597
  async handleClearCheckpoints() {
563
598
  checkpoint_manager_1.checkpointManager.clearCheckpoints();
564
- this.rl.prompt();
599
+ console.log('Cleared all checkpoints.');
600
+ this.freshPrompt();
565
601
  }
566
602
  }
567
603
  exports.CLI = CLI;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -27,7 +27,6 @@ export declare class Client {
27
27
  private rl;
28
28
  private lastToolResults;
29
29
  private pendingRequestId;
30
- private usageProcessed;
31
30
  constructor(websocketUrl: string, onWebSocketError: () => void, onWebSocketReconnect: () => void, returnControlToUser: () => void, costMode: CostMode, git: GitCommand, rl: readline.Interface);
32
31
  exit(): Promise<void>;
33
32
  initAgentState(projectFileContext: ProjectFileContext): void;
@@ -38,13 +37,13 @@ export declare class Client {
38
37
  logout(): Promise<void>;
39
38
  login(referralCode?: string): Promise<void>;
40
39
  setUsage({ usage, limit, subscription_active, next_quota_reset, session_credits_used, }: Omit<UsageResponse, 'type'>): void;
41
- private processUsageResponse;
42
40
  private setupSubscriptions;
43
41
  showUsageWarning(): void;
44
42
  generateCommitMessage(stagedChanges: string): Promise<string>;
45
43
  sendUserInput(prompt: string): Promise<{
46
44
  responsePromise: Promise<{
47
45
  type: "prompt-response";
46
+ promptId: string;
48
47
  agentState: {
49
48
  fileContext: {
50
49
  currentWorkingDirectory: string;
@@ -90,8 +89,8 @@ export declare class Client {
90
89
  type: "ephemeral";
91
90
  } | undefined;
92
91
  } | {
93
- type: "tool_result";
94
92
  content: string;
93
+ type: "tool_result";
95
94
  tool_use_id: string;
96
95
  cache_control?: {
97
96
  type: "ephemeral";
@@ -120,7 +119,6 @@ export declare class Client {
120
119
  id: string;
121
120
  parameters: Record<string, string>;
122
121
  }[];
123
- promptId?: string | undefined;
124
122
  usage?: number | undefined;
125
123
  limit?: number | undefined;
126
124
  referralLink?: string | undefined;
@@ -134,7 +132,98 @@ export declare class Client {
134
132
  }>;
135
133
  stopResponse: () => void;
136
134
  }>;
137
- private subscribeToResponse;
135
+ subscribeToResponse(onChunk: (chunk: string) => void, userInputId: string, onStreamStart: () => void, prompt: string): {
136
+ responsePromise: Promise<{
137
+ type: "prompt-response";
138
+ promptId: string;
139
+ agentState: {
140
+ fileContext: {
141
+ currentWorkingDirectory: string;
142
+ fileTree: import("./common/util/file").FileTreeNode[];
143
+ fileTokenScores: Record<string, Record<string, number>>;
144
+ knowledgeFiles: Record<string, string>;
145
+ gitChanges: {
146
+ status: string;
147
+ diff: string;
148
+ diffCached: string;
149
+ lastCommitMessages: string;
150
+ };
151
+ changesSinceLastChat: Record<string, string>;
152
+ shellConfigFiles: Record<string, string>;
153
+ systemInfo: {
154
+ platform: string;
155
+ shell: string;
156
+ nodeVersion: string;
157
+ arch: string;
158
+ homedir: string;
159
+ cpus: number;
160
+ };
161
+ fileVersions: {
162
+ path: string;
163
+ content: string;
164
+ }[][];
165
+ userKnowledgeFiles?: Record<string, string> | undefined;
166
+ };
167
+ agentContext: string;
168
+ messageHistory: {
169
+ content: string | ({
170
+ type: "text";
171
+ text: string;
172
+ cache_control?: {
173
+ type: "ephemeral";
174
+ } | undefined;
175
+ } | {
176
+ type: "tool_use";
177
+ name: string;
178
+ id: string;
179
+ input: Record<string, any>;
180
+ cache_control?: {
181
+ type: "ephemeral";
182
+ } | undefined;
183
+ } | {
184
+ content: string;
185
+ type: "tool_result";
186
+ tool_use_id: string;
187
+ cache_control?: {
188
+ type: "ephemeral";
189
+ } | undefined;
190
+ } | {
191
+ type: "image";
192
+ source: {
193
+ type: "base64";
194
+ media_type: "image/jpeg";
195
+ data: string;
196
+ };
197
+ cache_control?: {
198
+ type: "ephemeral";
199
+ } | undefined;
200
+ })[];
201
+ role: "user" | "assistant";
202
+ }[];
203
+ };
204
+ toolResults: {
205
+ name: string;
206
+ id: string;
207
+ result: string;
208
+ }[];
209
+ toolCalls: {
210
+ name: string;
211
+ id: string;
212
+ parameters: Record<string, string>;
213
+ }[];
214
+ usage?: number | undefined;
215
+ limit?: number | undefined;
216
+ referralLink?: string | undefined;
217
+ subscription_active?: boolean | undefined;
218
+ next_quota_reset?: Date | undefined;
219
+ session_credits_used?: number | undefined;
220
+ } & {
221
+ type: "prompt-response";
222
+ } & {
223
+ wasStoppedByUser: boolean;
224
+ }>;
225
+ stopResponse: () => void;
226
+ };
138
227
  getUsage(): Promise<void>;
139
228
  warmContextCache(): Promise<void>;
140
229
  }
package/dist/client.js CHANGED
@@ -48,7 +48,6 @@ const tool_handlers_1 = require("./tool-handlers");
48
48
  const spinner_1 = require("./utils/spinner");
49
49
  const xml_stream_parser_1 = require("./utils/xml-stream-parser");
50
50
  const tool_renderers_1 = require("./utils/tool-renderers");
51
- const string_1 = require("./common/util/string");
52
51
  class Client {
53
52
  webSocket;
54
53
  returnControlToUser;
@@ -71,7 +70,6 @@ class Client {
71
70
  rl;
72
71
  lastToolResults = [];
73
72
  pendingRequestId = null;
74
- usageProcessed = false;
75
73
  constructor(websocketUrl, onWebSocketError, onWebSocketReconnect, returnControlToUser, costMode, git, rl) {
76
74
  this.costMode = costMode;
77
75
  this.git = git;
@@ -271,36 +269,11 @@ class Client {
271
269
  this.limit = limit;
272
270
  this.subscription_active = subscription_active;
273
271
  this.nextQuotaReset = next_quota_reset;
274
- if (!!session_credits_used) {
272
+ if (!!session_credits_used && !this.pendingRequestId) {
275
273
  this.lastRequestCredits = Math.max(session_credits_used - this.sessionCreditsUsed, 0);
276
274
  this.sessionCreditsUsed = session_credits_used;
277
275
  }
278
276
  }
279
- processUsageResponse(usageResponse) {
280
- // First update internal state
281
- this.setUsage(usageResponse);
282
- // If this is a direct usage request (no promptId), show the info and return
283
- if (!usageResponse.promptId) {
284
- console.log((0, picocolors_1.green)((0, picocolors_1.underline)(`Codebuff usage:`)), `${usageResponse.usage} / ${usageResponse.limit} credits`);
285
- this.rl.prompt();
286
- return;
287
- }
288
- // Only process if matches pending request
289
- if (usageResponse.promptId === this.pendingRequestId) {
290
- if (!this.usageProcessed) {
291
- // First time seeing usage for this response
292
- this.usageProcessed = true;
293
- if (this.lastRequestCredits >= constants_1.REQUEST_CREDIT_SHOW_THRESHOLD) {
294
- console.log(`\n${(0, string_1.pluralize)(this.lastRequestCredits, 'credit')} used for this request.`);
295
- }
296
- this.showUsageWarning();
297
- }
298
- else {
299
- // Already processed usage once, just update silently and reset flag
300
- this.usageProcessed = false;
301
- }
302
- }
303
- }
304
277
  setupSubscriptions() {
305
278
  this.webSocket.subscribe('action-error', (action) => {
306
279
  console.error(['', (0, picocolors_1.red)(`Error: ${action.message}`)].join('\n'));
@@ -326,7 +299,11 @@ class Client {
326
299
  const parsedAction = actions_1.UsageReponseSchema.safeParse(action);
327
300
  if (!parsedAction.success)
328
301
  return;
329
- this.processUsageResponse(parsedAction.data);
302
+ const a = parsedAction.data;
303
+ console.log();
304
+ console.log((0, picocolors_1.green)((0, picocolors_1.underline)(`Codebuff usage:`)), `${a.usage} / ${a.limit} credits`);
305
+ this.setUsage(a);
306
+ this.returnControlToUser();
330
307
  });
331
308
  }
332
309
  showUsageWarning() {
@@ -379,8 +356,6 @@ class Client {
379
356
  }
380
357
  const userInputId = `mc-input-` + Math.random().toString(36).substring(2, 15);
381
358
  this.pendingRequestId = userInputId;
382
- this.usageProcessed = false; // Reset usage processed flag
383
- this.pendingRequestId = userInputId;
384
359
  const { responsePromise, stopResponse } = this.subscribeToResponse((chunk) => {
385
360
  spinner_1.Spinner.get().stop();
386
361
  process.stdout.write(chunk);
@@ -407,6 +382,7 @@ class Client {
407
382
  subscribeToResponse(onChunk, userInputId, onStreamStart, prompt) {
408
383
  let responseBuffer = '';
409
384
  let streamStarted = false;
385
+ let responseStopped = false;
410
386
  let resolveResponse;
411
387
  let rejectResponse;
412
388
  let unsubscribeChunks;
@@ -416,6 +392,7 @@ class Client {
416
392
  rejectResponse = reject;
417
393
  });
418
394
  const stopResponse = () => {
395
+ responseStopped = true;
419
396
  // Only unsubscribe from chunks, keep listening for final credits
420
397
  unsubscribeChunks();
421
398
  const assistantMessage = {
@@ -430,8 +407,6 @@ class Client {
430
407
  messageHistory: newMessages,
431
408
  };
432
409
  (0, chat_storage_1.setMessages)(newMessages);
433
- this.pendingRequestId = null;
434
- this.rl.prompt();
435
410
  resolveResponse({
436
411
  type: 'prompt-response',
437
412
  promptId: userInputId,
@@ -466,17 +441,22 @@ class Client {
466
441
  const parsedAction = actions_1.PromptResponseSchema.safeParse(action);
467
442
  if (!parsedAction.success)
468
443
  return;
469
- const a = parsedAction.data;
470
444
  if (action.promptId !== userInputId)
471
445
  return;
472
- // Handle usage data if present
473
- if (this.pendingRequestId === userInputId) {
474
- const usageData = actions_1.UsageReponseSchema.omit({ type: true }).safeParse(a);
475
- if (usageData.success) {
476
- this.processUsageResponse(usageData.data);
477
- }
446
+ const a = parsedAction.data;
447
+ // Only process usage data if this is our pending request
448
+ const usageData = actions_1.UsageReponseSchema.omit({ type: true }).safeParse(a);
449
+ if (usageData.success) {
450
+ this.pendingRequestId = null;
451
+ this.setUsage(usageData.data);
452
+ }
453
+ if (responseStopped) {
454
+ unsubscribeComplete();
455
+ xmlStreamParser.end();
456
+ return;
478
457
  }
479
458
  this.agentState = a.agentState;
459
+ spinner_1.Spinner.get().stop();
480
460
  let isComplete = false;
481
461
  const toolResults = [...a.toolResults];
482
462
  for (const toolCall of a.toolCalls) {
@@ -485,21 +465,25 @@ class Client {
485
465
  continue;
486
466
  }
487
467
  if (toolCall.name === 'write_file') {
468
+ // Save lastChanges for `diff` command
488
469
  this.lastChanges.push(actions_1.FileChangeSchema.parse(toolCall.parameters));
489
470
  this.hadFileChanges = true;
490
471
  }
491
472
  if (toolCall.name === 'run_terminal_command' &&
492
473
  toolCall.parameters.mode === 'user') {
474
+ // Special case: when terminal command is run it as a user command, then no need to reprompt assistant.
493
475
  isComplete = true;
494
476
  }
495
477
  const toolResult = await (0, tool_handlers_1.handleToolCall)(toolCall, (0, project_files_1.getProjectRoot)());
496
478
  toolResults.push(toolResult);
497
479
  }
480
+ // If we had any file changes, update the project context
498
481
  if (this.hadFileChanges) {
499
482
  this.fileContext = await (0, project_files_1.getProjectFileContext)((0, project_files_1.getProjectRoot)(), {});
500
483
  }
501
484
  if (!isComplete) {
502
485
  spinner_1.Spinner.get().start();
486
+ // Continue the prompt with the tool results.
503
487
  this.webSocket.sendAction({
504
488
  type: 'prompt',
505
489
  promptId: userInputId,
@@ -519,13 +503,13 @@ class Client {
519
503
  }
520
504
  this.showUsageWarning();
521
505
  if (this.hadFileChanges) {
522
- const latestCheckpointId = checkpoint_manager_1.checkpointManager.getLatestCheckpoint().id;
523
- console.log(`\nComplete! Type "diff" to review changes or "checkpoint ${latestCheckpointId}" to revert.`);
506
+ const latestCheckpoint = checkpoint_manager_1.checkpointManager.getLatestCheckpoint();
507
+ const displayedCheckpointString = latestCheckpoint === null
508
+ ? ''
509
+ : ` or "checkpoint ${latestCheckpoint.id}" to revert`;
510
+ console.log(`\nComplete! Type "diff" to review changes${displayedCheckpointString}.`);
524
511
  this.hadFileChanges = false;
525
512
  }
526
- // Only clear pendingRequestId on final completion
527
- this.pendingRequestId = null;
528
- this.rl.prompt();
529
513
  unsubscribeChunks();
530
514
  unsubscribeComplete();
531
515
  resolveResponse({ ...a, wasStoppedByUser: false });