codecane 1.0.155 → 1.0.170

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 (106) hide show
  1. package/dist/browser-runner.d.ts +3 -1
  2. package/dist/browser-runner.js +211 -136
  3. package/dist/browser-runner.js.map +1 -1
  4. package/dist/chat-storage.d.ts +1 -1
  5. package/dist/chat-storage.js +35 -31
  6. package/dist/chat-storage.js.map +1 -1
  7. package/dist/checkpoints.d.ts +62 -0
  8. package/dist/checkpoints.js +134 -0
  9. package/dist/checkpoints.js.map +1 -0
  10. package/dist/cli.d.ts +20 -13
  11. package/dist/cli.js +461 -353
  12. package/dist/cli.js.map +1 -1
  13. package/dist/client.d.ts +178 -25
  14. package/dist/client.js +236 -198
  15. package/dist/client.js.map +1 -1
  16. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  17. package/dist/common/actions.d.ts +2115 -444
  18. package/dist/common/actions.js +31 -78
  19. package/dist/common/actions.js.map +1 -1
  20. package/dist/common/browser-actions.d.ts +253 -173
  21. package/dist/common/browser-actions.js +25 -12
  22. package/dist/common/browser-actions.js.map +1 -1
  23. package/dist/common/constants/tools.d.ts +3 -0
  24. package/dist/common/constants/tools.js +24 -0
  25. package/dist/common/constants/tools.js.map +1 -0
  26. package/dist/common/constants.d.ts +14 -8
  27. package/dist/common/constants.js +7 -6
  28. package/dist/common/constants.js.map +1 -1
  29. package/dist/common/message-image-handling.d.ts +41 -0
  30. package/dist/common/message-image-handling.js +57 -0
  31. package/dist/common/message-image-handling.js.map +1 -0
  32. package/dist/common/project-file-tree.js +7 -7
  33. package/dist/common/project-file-tree.js.map +1 -1
  34. package/dist/common/types/agent-state.d.ts +466 -0
  35. package/dist/common/types/agent-state.js +30 -0
  36. package/dist/common/types/agent-state.js.map +1 -0
  37. package/dist/common/types/message.d.ts +311 -0
  38. package/dist/common/types/message.js +54 -0
  39. package/dist/common/types/message.js.map +1 -0
  40. package/dist/common/types/tools.d.ts +5 -0
  41. package/dist/common/types/tools.js +3 -0
  42. package/dist/common/types/tools.js.map +1 -0
  43. package/dist/common/types/usage.d.ts +2 -2
  44. package/dist/common/util/__tests__/messages.test.js +70 -0
  45. package/dist/common/util/__tests__/messages.test.js.map +1 -0
  46. package/dist/common/util/changes.js +3 -3
  47. package/dist/common/util/changes.js.map +1 -1
  48. package/dist/common/util/credentials.d.ts +4 -4
  49. package/dist/common/util/file.d.ts +9 -2
  50. package/dist/common/util/file.js +31 -27
  51. package/dist/common/util/file.js.map +1 -1
  52. package/dist/common/util/git.js +1 -1
  53. package/dist/common/util/git.js.map +1 -1
  54. package/dist/common/util/lru-cache.d.ts +9 -0
  55. package/dist/common/util/lru-cache.js +42 -0
  56. package/dist/common/util/lru-cache.js.map +1 -0
  57. package/dist/common/util/messages.d.ts +6 -0
  58. package/dist/common/util/messages.js +22 -0
  59. package/dist/common/util/messages.js.map +1 -0
  60. package/dist/common/util/min-heap.d.ts +15 -0
  61. package/dist/common/util/min-heap.js +73 -0
  62. package/dist/common/util/min-heap.js.map +1 -0
  63. package/dist/common/util/process-stream.d.ts +8 -0
  64. package/dist/common/util/process-stream.js +102 -0
  65. package/dist/common/util/process-stream.js.map +1 -0
  66. package/dist/common/util/promise.d.ts +8 -0
  67. package/dist/common/util/promise.js +25 -2
  68. package/dist/common/util/promise.js.map +1 -1
  69. package/dist/common/util/string.d.ts +31 -0
  70. package/dist/common/util/string.js +71 -1
  71. package/dist/common/util/string.js.map +1 -1
  72. package/dist/common/websockets/websocket-schema.d.ts +4065 -1019
  73. package/dist/config.d.ts +1 -0
  74. package/dist/config.js +3 -2
  75. package/dist/config.js.map +1 -1
  76. package/dist/credentials.d.ts +1 -0
  77. package/dist/credentials.js +7 -3
  78. package/dist/credentials.js.map +1 -1
  79. package/dist/index.js +3 -3
  80. package/dist/index.js.map +1 -1
  81. package/dist/menu.js +16 -12
  82. package/dist/menu.js.map +1 -1
  83. package/dist/project-files.d.ts +43 -3
  84. package/dist/project-files.js +97 -18
  85. package/dist/project-files.js.map +1 -1
  86. package/dist/tool-handlers.d.ts +22 -7
  87. package/dist/tool-handlers.js +111 -44
  88. package/dist/tool-handlers.js.map +1 -1
  89. package/dist/utils/process-xml-chunks.d.ts +31 -0
  90. package/dist/utils/process-xml-chunks.js +235 -0
  91. package/dist/utils/process-xml-chunks.js.map +1 -0
  92. package/dist/utils/spinner.d.ts +11 -0
  93. package/dist/utils/spinner.js +87 -0
  94. package/dist/utils/spinner.js.map +1 -0
  95. package/dist/utils/terminal.d.ts +3 -3
  96. package/dist/utils/terminal.js +23 -24
  97. package/dist/utils/terminal.js.map +1 -1
  98. package/dist/web-scraper.d.ts +1 -1
  99. package/dist/web-scraper.js +11 -7
  100. package/dist/web-scraper.js.map +1 -1
  101. package/dist/worker-script-project-context.js +1 -1
  102. package/dist/worker-script-project-context.js.map +1 -1
  103. package/package.json +3 -4
  104. package/dist/__tests__/browser-runner.test.js +0 -15
  105. package/dist/__tests__/browser-runner.test.js.map +0 -1
  106. /package/dist/{__tests__/browser-runner.test.d.ts → common/util/__tests__/messages.test.d.ts} +0 -0
package/dist/client.js CHANGED
@@ -27,32 +27,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.Client = void 0;
30
+ const child_process_1 = require("child_process");
31
+ const fs = __importStar(require("fs"));
32
+ const path_1 = __importDefault(require("path"));
30
33
  const picocolors_1 = require("picocolors");
34
+ const ts_pattern_1 = require("ts-pattern");
35
+ const actions_1 = require("./common/actions");
36
+ const constants_1 = require("./common/constants");
37
+ const agent_state_1 = require("./common/types/agent-state");
31
38
  const websocket_client_1 = require("./common/websockets/websocket-client");
32
- const project_files_1 = require("./project-files");
33
39
  const browser_runner_1 = require("./browser-runner");
34
- const changes_1 = require("./common/util/changes");
40
+ const checkpoints_1 = require("./checkpoints");
41
+ const config_1 = require("./config");
35
42
  const credentials_1 = require("./credentials");
36
- const actions_1 = require("./common/actions");
37
- const tool_handlers_1 = require("./tool-handlers");
38
- const constants_1 = require("./common/constants");
39
- const lodash_1 = require("lodash");
40
- const path_1 = __importDefault(require("path"));
41
- const fs = __importStar(require("fs"));
42
- const ts_pattern_1 = require("ts-pattern");
43
43
  const fingerprint_1 = require("./fingerprint");
44
- const git_1 = require("./common/util/git");
45
44
  const menu_1 = require("./menu");
46
- const child_process_1 = require("child_process");
45
+ const project_files_1 = require("./project-files");
46
+ const tool_handlers_1 = require("./tool-handlers");
47
+ const spinner_1 = require("./utils/spinner");
48
+ const process_xml_chunks_1 = require("./utils/process-xml-chunks");
47
49
  class Client {
48
50
  webSocket;
49
51
  chatStorage;
50
- currentUserInputId;
51
52
  returnControlToUser;
52
53
  fingerprintId;
53
54
  costMode;
54
55
  fileVersions = [];
55
56
  fileContext;
57
+ agentState;
56
58
  user;
57
59
  lastWarnedPct = 0;
58
60
  usage = 0;
@@ -61,7 +63,7 @@ class Client {
61
63
  lastRequestCredits = 0;
62
64
  sessionCreditsUsed = 0;
63
65
  nextQuotaReset = null;
64
- browserRunner = null;
66
+ hadFileChanges = false;
65
67
  git;
66
68
  rl;
67
69
  constructor(websocketUrl, chatStorage, onWebSocketError, onWebSocketReconnect, returnControlToUser, costMode, git, rl) {
@@ -73,16 +75,15 @@ class Client {
73
75
  this.getFingerprintId();
74
76
  this.returnControlToUser = returnControlToUser;
75
77
  this.rl = rl;
76
- this.browserRunner = new browser_runner_1.BrowserRunner();
77
78
  }
78
79
  async exit() {
79
- // Clean up browser before exiting
80
- if (this.browserRunner) {
81
- await this.browserRunner.shutdown();
80
+ if (browser_runner_1.activeBrowserRunner) {
81
+ browser_runner_1.activeBrowserRunner.shutdown();
82
82
  }
83
83
  process.exit(0);
84
84
  }
85
- initFileVersions(projectFileContext) {
85
+ initAgentState(projectFileContext) {
86
+ this.agentState = (0, agent_state_1.getInitialAgentState)(projectFileContext);
86
87
  const { knowledgeFiles } = projectFileContext;
87
88
  this.fileContext = projectFileContext;
88
89
  this.fileVersions = [
@@ -114,7 +115,6 @@ class Client {
114
115
  }
115
116
  async handleReferralCode(referralCode) {
116
117
  if (this.user) {
117
- // User is logged in, so attempt to redeem referral code directly
118
118
  try {
119
119
  const redeemReferralResp = await fetch(`${process.env.NEXT_PUBLIC_APP_URL}/api/referrals`, {
120
120
  method: 'POST',
@@ -151,29 +151,122 @@ class Client {
151
151
  }
152
152
  async logout() {
153
153
  if (this.user) {
154
- // If there was an existing user, clear their existing state
155
- this.webSocket.sendAction({
156
- type: 'clear-auth-token',
157
- authToken: this.user.authToken,
158
- userId: this.user.id,
159
- fingerprintId: this.user.fingerprintId,
160
- fingerprintHash: this.user.fingerprintHash,
161
- });
162
- // attempt to delete credentials file
163
154
  try {
164
- fs.unlinkSync(credentials_1.CREDENTIALS_PATH);
165
- console.log(`Logged you out of your account (${this.user.name})`);
166
- this.user = undefined;
155
+ const response = await fetch(`${config_1.backendUrl}/api/auth/cli/logout`, {
156
+ method: 'POST',
157
+ headers: { 'Content-Type': 'application/json' },
158
+ body: JSON.stringify({
159
+ authToken: this.user.authToken,
160
+ userId: this.user.id,
161
+ fingerprintId: this.user.fingerprintId,
162
+ fingerprintHash: this.user.fingerprintHash,
163
+ }),
164
+ });
165
+ if (!response.ok) {
166
+ const error = await response.text();
167
+ console.error((0, picocolors_1.red)('Failed to log out: ' + error));
168
+ }
169
+ try {
170
+ fs.unlinkSync(credentials_1.CREDENTIALS_PATH);
171
+ console.log(`You (${this.user.name}) have been logged out.`);
172
+ this.user = undefined;
173
+ }
174
+ catch (error) {
175
+ console.error('Error removing credentials file:', error);
176
+ }
177
+ }
178
+ catch (error) {
179
+ console.error('Error during logout:', error);
167
180
  }
168
- catch (error) { }
169
181
  }
170
182
  }
171
183
  async login(referralCode) {
172
- this.webSocket.sendAction({
173
- type: 'login-code-request',
174
- fingerprintId: await this.getFingerprintId(),
175
- referralCode,
176
- });
184
+ if (this.user) {
185
+ console.log(`You are currently logged in as ${this.user.name}. Please enter "logout" first if you want to login as a different user.`);
186
+ this.returnControlToUser();
187
+ return;
188
+ }
189
+ try {
190
+ const response = await fetch(`${config_1.backendUrl}/api/auth/cli/code`, {
191
+ method: 'POST',
192
+ headers: { 'Content-Type': 'application/json' },
193
+ body: JSON.stringify({
194
+ fingerprintId: await this.getFingerprintId(),
195
+ referralCode,
196
+ }),
197
+ });
198
+ if (!response.ok) {
199
+ const error = await response.text();
200
+ console.error((0, picocolors_1.red)('Login code request failed: ' + error));
201
+ this.returnControlToUser();
202
+ return;
203
+ }
204
+ const { loginUrl, fingerprintHash } = await response.json();
205
+ const responseToUser = [
206
+ '\n',
207
+ `Press ${(0, picocolors_1.blue)('ENTER')} to open your browser and finish logging in...`,
208
+ ];
209
+ console.log(responseToUser.join('\n'));
210
+ let shouldRequestLogin = true;
211
+ this.rl.once('line', () => {
212
+ if (shouldRequestLogin) {
213
+ (0, child_process_1.spawn)(`open ${loginUrl}`, { shell: true });
214
+ console.log('Done. If nothing happened, copy and paste this link into your browser:');
215
+ console.log();
216
+ console.log((0, picocolors_1.blue)((0, picocolors_1.bold)((0, picocolors_1.underline)(loginUrl))));
217
+ }
218
+ });
219
+ const initialTime = Date.now();
220
+ const pollInterval = setInterval(async () => {
221
+ if (Date.now() - initialTime > 5 * 60 * 1000 && shouldRequestLogin) {
222
+ shouldRequestLogin = false;
223
+ console.log('Unable to login. Please try again by typing "login" in the terminal.');
224
+ this.returnControlToUser();
225
+ clearInterval(pollInterval);
226
+ return;
227
+ }
228
+ if (!shouldRequestLogin) {
229
+ clearInterval(pollInterval);
230
+ return;
231
+ }
232
+ try {
233
+ const statusResponse = await fetch(`${config_1.backendUrl}/api/auth/cli/status?fingerprintId=${await this.getFingerprintId()}&fingerprintHash=${fingerprintHash}`);
234
+ if (!statusResponse.ok) {
235
+ if (statusResponse.status !== 401) {
236
+ // Ignore 401s during polling
237
+ console.error('Error checking login status:', await statusResponse.text());
238
+ }
239
+ return;
240
+ }
241
+ const { user, message } = await statusResponse.json();
242
+ if (user) {
243
+ shouldRequestLogin = false;
244
+ this.user = user;
245
+ const credentialsPathDir = path_1.default.dirname(credentials_1.CREDENTIALS_PATH);
246
+ fs.mkdirSync(credentialsPathDir, { recursive: true });
247
+ fs.writeFileSync(credentials_1.CREDENTIALS_PATH, JSON.stringify({ default: user }));
248
+ const referralLink = `${process.env.NEXT_PUBLIC_APP_URL}/referrals`;
249
+ const responseToUser = [
250
+ 'Authentication successful! 🎉',
251
+ (0, picocolors_1.bold)(`Hey there, ${user.name}.`),
252
+ `Refer new users and earn ${constants_1.CREDITS_REFERRAL_BONUS} credits per month for each of them: ${(0, picocolors_1.blueBright)(referralLink)}`,
253
+ ];
254
+ console.log('\n' + responseToUser.join('\n'));
255
+ this.lastWarnedPct = 0;
256
+ (0, menu_1.displayGreeting)(this.costMode, null);
257
+ clearInterval(pollInterval);
258
+ this.returnControlToUser();
259
+ }
260
+ }
261
+ catch (error) {
262
+ console.error('Error checking login status:', error);
263
+ }
264
+ }, 5000);
265
+ }
266
+ catch (error) {
267
+ console.error('Error during login:', error);
268
+ this.returnControlToUser();
269
+ }
177
270
  }
178
271
  setUsage({ usage, limit, subscription_active, next_quota_reset, referralLink, session_credits_used, }) {
179
272
  this.usage = usage;
@@ -192,59 +285,13 @@ class Client {
192
285
  this.returnControlToUser();
193
286
  return;
194
287
  });
195
- this.webSocket.subscribe('tool-call', async (a) => {
196
- const { response, changes, changesAlreadyApplied, data, userInputId, addedFileVersions, resetFileVersions, } = a;
197
- if (userInputId !== this.currentUserInputId) {
198
- return;
199
- }
200
- if (resetFileVersions) {
201
- this.fileVersions = [addedFileVersions];
202
- }
203
- else {
204
- this.fileVersions.push(addedFileVersions);
205
- }
206
- const filesChanged = (0, lodash_1.uniq)(changes.map((change) => change.filePath));
207
- this.chatStorage.saveFilesChanged(filesChanged);
208
- // Stage files about to be changed if flag was set
209
- if (this.git === 'stage' && changes.length > 0) {
210
- const didStage = (0, git_1.stagePatches)((0, project_files_1.getProjectRoot)(), changes);
211
- if (didStage) {
212
- console.log((0, picocolors_1.green)('\nStaged previous changes'));
213
- }
214
- }
215
- (0, changes_1.applyChanges)((0, project_files_1.getProjectRoot)(), changes);
216
- const { id, name, input } = data;
217
- const currentChat = this.chatStorage.getCurrentChat();
218
- const messages = currentChat.messages;
219
- if (messages[messages.length - 1].role === 'assistant') {
220
- // Probably the last response from the assistant was cancelled and added immediately.
221
- return;
222
- }
223
- const assistantMessage = {
224
- role: 'assistant',
225
- content: response,
226
- };
227
- this.chatStorage.addMessage(this.chatStorage.getCurrentChat(), assistantMessage);
228
- const handler = tool_handlers_1.toolHandlers[name];
229
- if (handler) {
230
- const content = await handler(input, id);
231
- const toolResultMessage = {
232
- role: 'user',
233
- content: `${constants_1.TOOL_RESULT_MARKER}\n${content}`,
234
- };
235
- this.chatStorage.addMessage(this.chatStorage.getCurrentChat(), toolResultMessage);
236
- await this.sendUserInput([...changesAlreadyApplied, ...changes], userInputId);
237
- }
238
- else {
239
- console.error(`No handler found for tool: ${name}`);
240
- }
241
- });
242
288
  this.webSocket.subscribe('read-files', (a) => {
243
- const { filePaths } = a;
289
+ const { filePaths, requestId } = a;
244
290
  const files = (0, project_files_1.getFiles)(filePaths);
245
291
  this.webSocket.sendAction({
246
292
  type: 'read-files-response',
247
293
  files,
294
+ requestId,
248
295
  });
249
296
  });
250
297
  this.webSocket.subscribe('npm-version-status', (action) => {
@@ -253,100 +300,38 @@ class Client {
253
300
  console.warn((0, picocolors_1.yellow)(`\nThere's a new version of Codebuff! Please update to ensure proper functionality.\nUpdate now by running: npm install -g codebuff`));
254
301
  }
255
302
  });
256
- let shouldRequestLogin = true;
257
- this.webSocket.subscribe('login-code-response', async ({ loginUrl, fingerprintHash }) => {
258
- const responseToUser = [
259
- '\n',
260
- 'Press Enter to open the browser or visit:\n',
261
- (0, picocolors_1.bold)((0, picocolors_1.underline)((0, picocolors_1.blueBright)(loginUrl))),
262
- ];
263
- console.log(responseToUser.join('\n'));
264
- this.rl.on('line', () => {
265
- if (shouldRequestLogin) {
266
- (0, child_process_1.spawn)(`open ${loginUrl}`, {
267
- shell: true,
268
- });
269
- }
270
- });
271
- // call backend every few seconds to check if user has been created yet, using our fingerprintId, for up to 5 minutes
272
- const initialTime = Date.now();
273
- const handler = setInterval(async () => {
274
- if (Date.now() - initialTime > 60 * 1000 && shouldRequestLogin) {
275
- shouldRequestLogin = false;
276
- console.log('Unable to login. Please try again by typing "login" in the terminal.');
277
- clearInterval(handler);
278
- return;
279
- }
280
- if (!shouldRequestLogin) {
281
- clearInterval(handler);
282
- return;
283
- }
284
- this.webSocket.sendAction({
285
- type: 'login-status-request',
286
- fingerprintId: await this.getFingerprintId(),
287
- fingerprintHash,
288
- });
289
- }, 5000);
290
- });
291
- this.webSocket.subscribe('auth-result', async (action) => {
292
- shouldRequestLogin = false;
293
- if (action.user) {
294
- await this.logout(); // remove existing user, if it exists
295
- this.user = action.user;
296
- // Store in config file
297
- const credentialsPathDir = path_1.default.dirname(credentials_1.CREDENTIALS_PATH);
298
- fs.mkdirSync(credentialsPathDir, { recursive: true });
299
- fs.writeFileSync(credentials_1.CREDENTIALS_PATH, JSON.stringify({ default: action.user }));
300
- const referralLink = `${process.env.NEXT_PUBLIC_APP_URL}/referrals`;
301
- const responseToUser = [
302
- 'Authentication successful! 🎉',
303
- (0, picocolors_1.bold)(`Hey there, ${action.user.name}.`),
304
- `Refer new users and earn ${constants_1.CREDITS_REFERRAL_BONUS} credits per month for each of them: ${(0, picocolors_1.blueBright)(referralLink)}`,
305
- ];
306
- console.log('\n' + responseToUser.join('\n'));
307
- this.lastWarnedPct = 0;
308
- (0, menu_1.displayGreeting)(this.costMode, null);
309
- this.returnControlToUser();
310
- // this.getUsage()
311
- }
312
- else {
313
- console.warn(`Authentication failed: ${action.message}. Please try again in a few minutes or contact support at ${process.env.NEXT_PUBLIC_SUPPORT_EMAIL}.`);
314
- }
315
- });
316
303
  this.webSocket.subscribe('usage-response', (action) => {
304
+ this.returnControlToUser();
317
305
  const parsedAction = actions_1.UsageReponseSchema.safeParse(action);
318
306
  if (!parsedAction.success)
319
307
  return;
320
308
  const a = parsedAction.data;
321
- console.log(`Usage: ${a.usage} / ${a.limit} credits`);
309
+ console.log();
310
+ console.log((0, picocolors_1.green)((0, picocolors_1.underline)(`Codebuff usage:`)), `${a.usage} / ${a.limit} credits`);
322
311
  this.setUsage(a);
323
- this.returnControlToUser();
312
+ this.showUsageWarning(a.referralLink);
324
313
  });
325
314
  }
326
315
  showUsageWarning(referralLink) {
327
316
  const errorCopy = [
328
317
  this.user
329
- ? (0, picocolors_1.green)(`Visit ${process.env.NEXT_PUBLIC_APP_URL}/pricing to upgrade.`)
318
+ ? `Visit ${(0, picocolors_1.blue)((0, picocolors_1.bold)(process.env.NEXT_PUBLIC_APP_URL + '/pricing'))} to upgrade – or refer a new user and earn ${constants_1.CREDITS_REFERRAL_BONUS} credits per month: ${(0, picocolors_1.blue)((0, picocolors_1.bold)(referralLink))}`
330
319
  : (0, picocolors_1.green)('Type "login" below to sign up and get more credits!'),
331
- referralLink
332
- ? (0, picocolors_1.green)(`Refer friends by sharing this link and you'll ${(0, picocolors_1.bold)(`each earn ${constants_1.CREDITS_REFERRAL_BONUS} credits per month`)}: ${referralLink}`)
333
- : '',
334
320
  ].join('\n');
335
321
  const pct = (0, ts_pattern_1.match)(Math.floor((this.usage / this.limit) * 100))
336
322
  .with(ts_pattern_1.P.number.gte(100), () => 100)
337
323
  .with(ts_pattern_1.P.number.gte(75), () => 75)
338
324
  .otherwise(() => 0);
339
- // User has used all their allotted credits, but they haven't been notified yet
340
- if (pct >= 100 && this.lastWarnedPct < 100) {
341
- if (this.subscription_active) {
325
+ if (pct >= 100) {
326
+ this.lastWarnedPct = 100;
327
+ if (!this.subscription_active) {
328
+ console.error([(0, picocolors_1.red)('You have reached your monthly usage limit.'), errorCopy].join('\n'));
329
+ return;
330
+ }
331
+ if (this.subscription_active && this.lastWarnedPct < 100) {
342
332
  console.warn((0, picocolors_1.yellow)(`You have exceeded your monthly quota, but feel free to keep using Codebuff! We'll continue to charge you for the overage until your next billing cycle. See ${process.env.NEXT_PUBLIC_APP_URL}/usage for more details.`));
343
- this.lastWarnedPct = 100;
344
333
  return;
345
334
  }
346
- console.error([(0, picocolors_1.red)('You have reached your monthly usage limit.'), errorCopy].join('\n'));
347
- this.returnControlToUser();
348
- this.lastWarnedPct = 100;
349
- return;
350
335
  }
351
336
  if (pct > 0 && pct > this.lastWarnedPct) {
352
337
  console.warn([
@@ -371,47 +356,60 @@ class Client {
371
356
  });
372
357
  });
373
358
  }
374
- async sendUserInput(previousChanges, userInputId) {
375
- this.currentUserInputId = userInputId;
376
- const currentChat = this.chatStorage.getCurrentChat();
377
- const { messages, fileVersions: messageFileVersions } = currentChat;
378
- const currentFileVersion = messageFileVersions[messageFileVersions.length - 1]?.files ?? {};
379
- const fileContext = await (0, project_files_1.getProjectFileContext)((0, project_files_1.getProjectRoot)(), currentFileVersion, this.fileVersions);
380
- this.fileContext = fileContext;
359
+ async sendUserInput(prompt) {
360
+ if (!this.agentState) {
361
+ throw new Error('Agent state not initialized');
362
+ }
363
+ const userInputId = `mc-input-` + Math.random().toString(36).substring(2, 15);
364
+ // Create a checkpoint of the agent state before sending user input
365
+ if (this.agentState) {
366
+ checkpoints_1.checkpointManager.addCheckpoint(this.agentState, prompt);
367
+ }
368
+ const { responsePromise, stopResponse } = this.subscribeToResponse((chunk) => {
369
+ spinner_1.Spinner.get().stop();
370
+ process.stdout.write(chunk);
371
+ }, userInputId, () => {
372
+ spinner_1.Spinner.get().stop();
373
+ process.stdout.write((0, picocolors_1.green)((0, picocolors_1.underline)('\nCodebuff') + ':') + ' ');
374
+ });
375
+ spinner_1.Spinner.get().start();
381
376
  this.webSocket.sendAction({
382
- type: 'user-input',
383
- userInputId,
384
- messages,
385
- fileContext,
386
- changesAlreadyApplied: previousChanges,
377
+ type: 'prompt',
378
+ promptId: userInputId,
379
+ prompt,
380
+ agentState: this.agentState,
381
+ toolResults: [],
387
382
  fingerprintId: await this.getFingerprintId(),
388
383
  authToken: this.user?.authToken,
389
384
  costMode: this.costMode,
390
385
  });
386
+ return {
387
+ responsePromise,
388
+ stopResponse,
389
+ };
391
390
  }
392
391
  subscribeToResponse(onChunk, userInputId, onStreamStart) {
393
392
  let responseBuffer = '';
393
+ let streamStarted = false;
394
394
  let resolveResponse;
395
395
  let rejectResponse;
396
396
  let unsubscribeChunks;
397
397
  let unsubscribeComplete;
398
- let streamStarted = false;
398
+ // Initialize XML processor with default handlers
399
+ const xmlProcessor = new process_xml_chunks_1.XmlStreamProcessor(process_xml_chunks_1.defaultTagHandlers);
399
400
  const responsePromise = new Promise((resolve, reject) => {
400
401
  resolveResponse = resolve;
401
402
  rejectResponse = reject;
402
403
  });
403
404
  const stopResponse = () => {
404
- this.currentUserInputId = undefined;
405
405
  unsubscribeChunks();
406
406
  unsubscribeComplete();
407
407
  resolveResponse({
408
- userInputId,
409
- response: responseBuffer + '\n[RESPONSE_STOPPED_BY_USER]',
410
- changes: [],
411
- changesAlreadyApplied: [],
412
- addedFileVersions: [],
413
- resetFileVersions: false,
414
- type: 'response-complete',
408
+ type: 'prompt-response',
409
+ promptId: userInputId,
410
+ agentState: this.agentState,
411
+ toolCalls: [],
412
+ toolResults: [],
415
413
  wasStoppedByUser: true,
416
414
  });
417
415
  };
@@ -419,28 +417,69 @@ class Client {
419
417
  if (a.userInputId !== userInputId)
420
418
  return;
421
419
  const { chunk } = a;
422
- if (!streamStarted && chunk.trim()) {
423
- streamStarted = true;
424
- onStreamStart();
425
- }
420
+ // Add the chunk to the response buffer
426
421
  responseBuffer += chunk;
427
- onChunk(chunk);
422
+ // Process the entire responseBuffer through our XML processor
423
+ const output = xmlProcessor.process(responseBuffer);
424
+ if (output && output.trim()) {
425
+ if (!streamStarted && chunk.trim()) {
426
+ streamStarted = true;
427
+ onStreamStart();
428
+ }
429
+ onChunk(output);
430
+ }
428
431
  });
429
- unsubscribeComplete = this.webSocket.subscribe('response-complete', (action) => {
430
- const parsedAction = actions_1.ResponseCompleteSchema.safeParse(action);
431
- if (!parsedAction.success || action.userInputId !== userInputId)
432
+ unsubscribeComplete = this.webSocket.subscribe('prompt-response', async (action) => {
433
+ const parsedAction = actions_1.PromptResponseSchema.safeParse(action);
434
+ if (!parsedAction.success || action.promptId !== userInputId)
432
435
  return;
433
436
  const a = parsedAction.data;
434
- unsubscribeChunks();
435
- unsubscribeComplete();
436
- if (a.resetFileVersions) {
437
- this.fileVersions = [a.addedFileVersions];
437
+ this.agentState = a.agentState;
438
+ spinner_1.Spinner.get().stop();
439
+ let isComplete = false;
440
+ const toolResults = [...a.toolResults];
441
+ for (const toolCall of a.toolCalls) {
442
+ if (toolCall.name === 'end_turn') {
443
+ isComplete = true;
444
+ continue;
445
+ }
446
+ if (toolCall.name === 'write_file') {
447
+ const { path: filePath } = toolCall.parameters;
448
+ if (filePath !== undefined) {
449
+ const fullPath = path_1.default.join((0, project_files_1.getProjectRoot)(), filePath);
450
+ const fileContents = fs.existsSync(fullPath)
451
+ ? fs.readFileSync(fullPath, 'utf8')
452
+ : null;
453
+ this.agentState.fileContext.prevFileVersions[fullPath] =
454
+ fileContents;
455
+ }
456
+ this.hadFileChanges = true;
457
+ }
458
+ const toolResult = await (0, tool_handlers_1.handleToolCall)(toolCall, (0, project_files_1.getProjectRoot)());
459
+ toolResults.push(toolResult);
460
+ }
461
+ if (!isComplete) {
462
+ spinner_1.Spinner.get().start();
463
+ // Continue the prompt with the tool results.
464
+ this.webSocket.sendAction({
465
+ type: 'prompt',
466
+ promptId: userInputId,
467
+ prompt: undefined,
468
+ agentState: this.agentState,
469
+ toolResults,
470
+ fingerprintId: await this.getFingerprintId(),
471
+ authToken: this.user?.authToken,
472
+ costMode: this.costMode,
473
+ });
474
+ return;
438
475
  }
439
- else {
440
- this.fileVersions.push(a.addedFileVersions);
476
+ if (this.hadFileChanges) {
477
+ console.log('\nComplete! Type "diff" to review changes or "undo" to revert.');
478
+ this.hadFileChanges = false;
441
479
  }
480
+ unsubscribeChunks();
481
+ unsubscribeComplete();
442
482
  resolveResponse({ ...a, wasStoppedByUser: false });
443
- this.currentUserInputId = undefined;
444
483
  if (!a.usage ||
445
484
  !a.next_quota_reset ||
446
485
  a.subscription_active === undefined ||
@@ -454,7 +493,7 @@ class Client {
454
493
  next_quota_reset: a.next_quota_reset,
455
494
  session_credits_used: a.session_credits_used ?? 0,
456
495
  });
457
- // Indicates a change in the user's plan
496
+ this.showUsageWarning(a.referralLink);
458
497
  if (this.limit !== a.limit) {
459
498
  this.lastWarnedPct = 0;
460
499
  }
@@ -472,8 +511,7 @@ class Client {
472
511
  });
473
512
  }
474
513
  async warmContextCache() {
475
- const fileContext = await (0, project_files_1.getProjectFileContext)((0, project_files_1.getProjectRoot)(), {}, this.fileVersions);
476
- // Don't wait for response anymore.
514
+ const fileContext = await (0, project_files_1.getProjectFileContext)((0, project_files_1.getProjectRoot)(), {}, this.fileVersions, {});
477
515
  this.webSocket.subscribe('init-response', (a) => {
478
516
  const parsedAction = actions_1.InitResponseSchema.safeParse(a);
479
517
  if (!parsedAction.success)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}