codebuff 1.0.245 → 1.0.246

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 (115) hide show
  1. package/package.json +1 -1
  2. package/dist/background-process-manager.d.ts +0 -50
  3. package/dist/background-process-manager.js +0 -359
  4. package/dist/background-process-manager.js.map +0 -1
  5. package/dist/browser-runner.d.ts +0 -35
  6. package/dist/browser-runner.js +0 -680
  7. package/dist/browser-runner.js.map +0 -1
  8. package/dist/chat-storage.d.ts +0 -2
  9. package/dist/chat-storage.js +0 -93
  10. package/dist/chat-storage.js.map +0 -1
  11. package/dist/checkpoints/checkpoint-manager.d.ts +0 -94
  12. package/dist/checkpoints/checkpoint-manager.js +0 -280
  13. package/dist/checkpoints/checkpoint-manager.js.map +0 -1
  14. package/dist/checkpoints/file-manager.d.ts +0 -72
  15. package/dist/checkpoints/file-manager.js +0 -311
  16. package/dist/checkpoints/file-manager.js.map +0 -1
  17. package/dist/cli-handlers/api-key.d.ts +0 -25
  18. package/dist/cli-handlers/api-key.js +0 -66
  19. package/dist/cli-handlers/api-key.js.map +0 -1
  20. package/dist/cli-handlers/checkpoint.d.ts +0 -18
  21. package/dist/cli-handlers/checkpoint.js +0 -195
  22. package/dist/cli-handlers/checkpoint.js.map +0 -1
  23. package/dist/cli-handlers/diff.d.ts +0 -2
  24. package/dist/cli-handlers/diff.js +0 -31
  25. package/dist/cli-handlers/diff.js.map +0 -1
  26. package/dist/cli-handlers/easter-egg.d.ts +0 -1
  27. package/dist/cli-handlers/easter-egg.js +0 -126
  28. package/dist/cli-handlers/easter-egg.js.map +0 -1
  29. package/dist/cli-handlers/inititalization-flow.d.ts +0 -1
  30. package/dist/cli-handlers/inititalization-flow.js +0 -24
  31. package/dist/cli-handlers/inititalization-flow.js.map +0 -1
  32. package/dist/cli.d.ts +0 -44
  33. package/dist/cli.js +0 -478
  34. package/dist/cli.js.map +0 -1
  35. package/dist/client.d.ts +0 -157
  36. package/dist/client.js +0 -836
  37. package/dist/client.js.map +0 -1
  38. package/dist/config.d.ts +0 -4
  39. package/dist/config.js +0 -12
  40. package/dist/config.js.map +0 -1
  41. package/dist/create-template-project.d.ts +0 -1
  42. package/dist/create-template-project.js +0 -107
  43. package/dist/create-template-project.js.map +0 -1
  44. package/dist/credentials.d.ts +0 -4
  45. package/dist/credentials.js +0 -38
  46. package/dist/credentials.js.map +0 -1
  47. package/dist/dev-process-manager.d.ts +0 -10
  48. package/dist/dev-process-manager.js +0 -54
  49. package/dist/dev-process-manager.js.map +0 -1
  50. package/dist/fingerprint.d.ts +0 -1
  51. package/dist/fingerprint.js +0 -48
  52. package/dist/fingerprint.js.map +0 -1
  53. package/dist/index.d.ts +0 -2
  54. package/dist/index.js +0 -117
  55. package/dist/index.js.map +0 -1
  56. package/dist/menu.d.ts +0 -3
  57. package/dist/menu.js +0 -126
  58. package/dist/menu.js.map +0 -1
  59. package/dist/project-files.d.ts +0 -114
  60. package/dist/project-files.js +0 -513
  61. package/dist/project-files.js.map +0 -1
  62. package/dist/startup-process-handler.d.ts +0 -2
  63. package/dist/startup-process-handler.js +0 -21
  64. package/dist/startup-process-handler.js.map +0 -1
  65. package/dist/tool-handlers.d.ts +0 -28
  66. package/dist/tool-handlers.js +0 -240
  67. package/dist/tool-handlers.js.map +0 -1
  68. package/dist/types.d.ts +0 -15
  69. package/dist/types.js +0 -3
  70. package/dist/types.js.map +0 -1
  71. package/dist/update-codebuff.d.ts +0 -1
  72. package/dist/update-codebuff.js +0 -160
  73. package/dist/update-codebuff.js.map +0 -1
  74. package/dist/utils/__tests__/background-process-manager.test.d.ts +0 -1
  75. package/dist/utils/__tests__/background-process-manager.test.js +0 -289
  76. package/dist/utils/__tests__/background-process-manager.test.js.map +0 -1
  77. package/dist/utils/__tests__/tool-renderers.test.d.ts +0 -1
  78. package/dist/utils/__tests__/tool-renderers.test.js +0 -51
  79. package/dist/utils/__tests__/tool-renderers.test.js.map +0 -1
  80. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +0 -1
  81. package/dist/utils/__tests__/xml-stream-parser.test.js +0 -229
  82. package/dist/utils/__tests__/xml-stream-parser.test.js.map +0 -1
  83. package/dist/utils/analytics.d.ts +0 -6
  84. package/dist/utils/analytics.js +0 -59
  85. package/dist/utils/analytics.js.map +0 -1
  86. package/dist/utils/detect-shell.d.ts +0 -1
  87. package/dist/utils/detect-shell.js +0 -60
  88. package/dist/utils/detect-shell.js.map +0 -1
  89. package/dist/utils/logger.d.ts +0 -21
  90. package/dist/utils/logger.js +0 -105
  91. package/dist/utils/logger.js.map +0 -1
  92. package/dist/utils/spinner.d.ts +0 -11
  93. package/dist/utils/spinner.js +0 -87
  94. package/dist/utils/spinner.js.map +0 -1
  95. package/dist/utils/system-info.d.ts +0 -8
  96. package/dist/utils/system-info.js +0 -22
  97. package/dist/utils/system-info.js.map +0 -1
  98. package/dist/utils/terminal.d.ts +0 -41
  99. package/dist/utils/terminal.js +0 -467
  100. package/dist/utils/terminal.js.map +0 -1
  101. package/dist/utils/tool-renderers.d.ts +0 -16
  102. package/dist/utils/tool-renderers.js +0 -145
  103. package/dist/utils/tool-renderers.js.map +0 -1
  104. package/dist/utils/xml-stream-parser.d.ts +0 -9
  105. package/dist/utils/xml-stream-parser.js +0 -128
  106. package/dist/utils/xml-stream-parser.js.map +0 -1
  107. package/dist/web-scraper.d.ts +0 -3
  108. package/dist/web-scraper.js +0 -57
  109. package/dist/web-scraper.js.map +0 -1
  110. package/dist/workers/checkpoint-worker.d.ts +0 -1
  111. package/dist/workers/checkpoint-worker.js +0 -48
  112. package/dist/workers/checkpoint-worker.js.map +0 -1
  113. package/dist/workers/project-context.d.ts +0 -1
  114. package/dist/workers/project-context.js +0 -17
  115. package/dist/workers/project-context.js.map +0 -1
@@ -1,467 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.runCommandPty = exports.runTerminalCommand = exports.resetShell = exports.recreateShell = exports.isCommandRunning = exports.persistentProcess = void 0;
30
- exports.runBackgroundCommand = runBackgroundCommand;
31
- exports.killAndResetPersistentProcess = killAndResetPersistentProcess;
32
- const assert_1 = __importDefault(require("assert"));
33
- const child_process_1 = require("child_process");
34
- const fs_1 = require("fs");
35
- const os = __importStar(require("os"));
36
- const path_1 = __importStar(require("path"));
37
- const array_1 = require("../common/util/array");
38
- const string_1 = require("../common/util/string");
39
- const picocolors_1 = require("picocolors");
40
- const background_process_manager_1 = require("../background-process-manager");
41
- const project_files_1 = require("../project-files");
42
- const detect_shell_1 = require("./detect-shell");
43
- let pty;
44
- const tempConsoleError = console.error;
45
- console.error = () => { };
46
- try {
47
- pty = require('@homebridge/node-pty-prebuilt-multiarch');
48
- }
49
- catch (error) {
50
- }
51
- finally {
52
- console.error = tempConsoleError;
53
- }
54
- const COMMAND_OUTPUT_LIMIT = 10_000;
55
- const promptIdentifier = '@36261@';
56
- const createPersistantProcess = (dir) => {
57
- if (pty && process.env.NODE_ENV !== 'test') {
58
- const isWindows = os.platform() === 'win32';
59
- const currShell = (0, detect_shell_1.detectShell)();
60
- const shell = isWindows
61
- ? currShell === 'powershell'
62
- ? 'powershell.exe'
63
- : 'cmd.exe'
64
- : 'bash';
65
- const shellWithoutExe = shell.split('.')[0];
66
- // Prepare shell init commands
67
- let shellInitCommands = '';
68
- if (!isWindows) {
69
- const rcFile = currShell === 'zsh'
70
- ? '~/.zshrc'
71
- : currShell === 'fish'
72
- ? '~/.config/fish/config.fish'
73
- : '~/.bashrc';
74
- shellInitCommands = `source ${rcFile} 2>/dev/null || true\n`;
75
- }
76
- else if (currShell === 'powershell') {
77
- // Try to source PowerShell profile if it exists
78
- shellInitCommands =
79
- '$PSProfile = $PROFILE.CurrentUserAllHosts; if (Test-Path $PSProfile) { . $PSProfile }\n';
80
- }
81
- const persistentPty = pty.spawn(shell, isWindows ? [] : ['--login'], {
82
- name: 'xterm-256color',
83
- cols: process.stdout.columns || 80,
84
- rows: process.stdout.rows || 24,
85
- cwd: dir,
86
- env: {
87
- ...process.env,
88
- PAGER: 'cat',
89
- GIT_PAGER: 'cat',
90
- GIT_TERMINAL_PROMPT: '0',
91
- ...(isWindows
92
- ? {
93
- TERM: 'cygwin',
94
- ANSICON: '1', // Better ANSI support in cmd.exe
95
- PROMPT: promptIdentifier,
96
- }
97
- : {
98
- TERM: 'xterm-256color',
99
- }),
100
- LESS: '-FRX',
101
- TERM_PROGRAM: 'mintty',
102
- FORCE_COLOR: '1', // Enable colors in CI/CD
103
- // Locale settings for consistent output
104
- LANG: 'en_US.UTF-8',
105
- LC_ALL: 'en_US.UTF-8',
106
- // Shell-specific settings
107
- SHELL: shellWithoutExe,
108
- },
109
- });
110
- // Source the shell config file if available
111
- if (shellInitCommands) {
112
- persistentPty.write(shellInitCommands);
113
- }
114
- // Set prompt for Unix shells after sourcing config
115
- if (!isWindows) {
116
- persistentPty.write(`PS1='${promptIdentifier}'\n`);
117
- }
118
- return { type: 'pty', shell: 'pty', pty: persistentPty, timerId: null };
119
- }
120
- else {
121
- // Fallback to child_process
122
- const isWindows = os.platform() === 'win32';
123
- const currShell = (0, detect_shell_1.detectShell)();
124
- const shell = isWindows
125
- ? currShell === 'powershell'
126
- ? 'powershell.exe'
127
- : 'cmd.exe'
128
- : 'bash';
129
- const childProcess = null;
130
- return {
131
- type: 'process',
132
- shell,
133
- childProcess,
134
- timerId: null,
135
- };
136
- }
137
- };
138
- exports.persistentProcess = null;
139
- process.stdout.on('resize', () => {
140
- if (!exports.persistentProcess)
141
- return;
142
- if (exports.persistentProcess.type === 'pty') {
143
- exports.persistentProcess.pty.resize(process.stdout.columns, process.stdout.rows);
144
- }
145
- });
146
- let commandIsRunning = false;
147
- const isCommandRunning = () => {
148
- return commandIsRunning;
149
- };
150
- exports.isCommandRunning = isCommandRunning;
151
- const recreateShell = (projectPath) => {
152
- exports.persistentProcess = createPersistantProcess(projectPath);
153
- };
154
- exports.recreateShell = recreateShell;
155
- const resetShell = (projectPath) => {
156
- commandIsRunning = false;
157
- if (exports.persistentProcess) {
158
- if (exports.persistentProcess.timerId) {
159
- clearTimeout(exports.persistentProcess.timerId);
160
- exports.persistentProcess.timerId = null;
161
- }
162
- if (exports.persistentProcess.type === 'pty') {
163
- exports.persistentProcess.pty.kill();
164
- (0, exports.recreateShell)(projectPath);
165
- }
166
- else {
167
- exports.persistentProcess.childProcess?.kill();
168
- exports.persistentProcess = {
169
- ...exports.persistentProcess,
170
- childProcess: null,
171
- };
172
- }
173
- }
174
- };
175
- exports.resetShell = resetShell;
176
- function formatResult(command, stdout, status) {
177
- return (0, array_1.buildArray)(`<command>${command}</command>`, '<terminal_command_result>', `<output>${(0, string_1.truncateStringWithMessage)({ str: stdout, maxLength: COMMAND_OUTPUT_LIMIT, remove: 'MIDDLE' })}</output>`, `<status>${status}</status>`, '</terminal_command_result>').join('\n');
178
- }
179
- const MAX_EXECUTION_TIME = 30_000;
180
- function runBackgroundCommand(options, resolveCommand) {
181
- const { toolCallId, command, mode, projectPath, stdoutFile, stderrFile } = options;
182
- const isWindows = os.platform() === 'win32';
183
- const shell = isWindows ? 'cmd.exe' : 'bash';
184
- const shellArgs = isWindows ? ['/c'] : ['-c'];
185
- if (mode === 'assistant') {
186
- console.log((0, picocolors_1.green)(`Running background process...\n> ${command}`));
187
- }
188
- const initialStdout = '';
189
- const initialStderr = '';
190
- try {
191
- const childProcess = (0, background_process_manager_1.spawnAndTrack)(shell, [...shellArgs, command], {
192
- cwd: projectPath,
193
- env: { ...process.env, FORCE_COLOR: '1' },
194
- // Ensure detached is always false to link child lifetime to parent
195
- detached: false,
196
- stdio: 'pipe',
197
- });
198
- // An error should have been thrown when we called `spawn`
199
- (0, assert_1.default)(childProcess.pid !== undefined, 'Failed to spawn process: no PID assigned.');
200
- const processId = childProcess.pid;
201
- const processInfo = {
202
- pid: processId,
203
- toolCallId,
204
- command,
205
- process: childProcess,
206
- stdoutBuffer: [],
207
- stderrBuffer: [],
208
- status: 'running',
209
- startTime: Date.now(),
210
- endTime: null,
211
- lastReportedStdoutLength: 0,
212
- lastReportedStderrLength: 0,
213
- lastReportedStatus: null,
214
- stdoutFile,
215
- stderrFile,
216
- };
217
- background_process_manager_1.backgroundProcesses.set(processId, processInfo);
218
- // Set up file streams if paths are provided
219
- let stdoutStream;
220
- let stderrStream;
221
- if (stdoutFile) {
222
- const stdoutAbs = path_1.default.isAbsolute(stdoutFile)
223
- ? stdoutFile
224
- : path_1.default.join(projectPath, stdoutFile);
225
- (0, fs_1.mkdirSync)((0, path_1.dirname)(stdoutAbs), { recursive: true });
226
- stdoutStream = (0, fs_1.createWriteStream)(stdoutAbs);
227
- }
228
- const realStderrFile = stderrFile || stdoutFile;
229
- if (realStderrFile) {
230
- const stderrAbs = path_1.default.isAbsolute(realStderrFile)
231
- ? realStderrFile
232
- : path_1.default.join(projectPath, realStderrFile);
233
- (0, fs_1.mkdirSync)((0, path_1.dirname)(stderrAbs), { recursive: true });
234
- stderrStream = (0, fs_1.createWriteStream)(stderrAbs);
235
- }
236
- childProcess.stdout.on('data', (data) => {
237
- const output = (0, string_1.stripColors)(data.toString());
238
- processInfo.stdoutBuffer.push(output);
239
- // Write to file if stream exists
240
- if (stdoutStream) {
241
- stdoutStream.write(output);
242
- }
243
- });
244
- childProcess.stderr.on('data', (data) => {
245
- const output = (0, string_1.stripColors)(data.toString());
246
- processInfo.stderrBuffer.push(output);
247
- // Write to file if stream exists
248
- if (stderrStream) {
249
- stderrStream.write(output);
250
- }
251
- });
252
- childProcess.on('error', (error) => {
253
- processInfo.status = 'error';
254
- processInfo.stderrBuffer.push(`\nError spawning command: ${error.message}`);
255
- processInfo.endTime = Date.now();
256
- // Close file streams
257
- stdoutStream?.end();
258
- stderrStream?.end();
259
- });
260
- childProcess.on('close', (code) => {
261
- processInfo.status = code === 0 ? 'completed' : 'error';
262
- processInfo.endTime = Date.now();
263
- // Close file streams
264
- stdoutStream?.end();
265
- stderrStream?.end();
266
- });
267
- // Unreference the process so the parent can exit independently IF the child is the only thing keeping it alive.
268
- childProcess.unref();
269
- const resultMessage = `<background_process>
270
- <process_id>${processId}</process_id>
271
- <command>${command}</command>
272
- <status>${processInfo.status}</status>
273
- </background_process>`;
274
- resolveCommand({
275
- result: resultMessage,
276
- stdout: initialStdout + initialStderr,
277
- });
278
- }
279
- catch (error) {
280
- const errorMessage = `<background_process>\n<command>${command}</command>\n<error>${error.message}</error>\n</background_process>`;
281
- resolveCommand({ result: errorMessage, stdout: error.message });
282
- }
283
- }
284
- const runTerminalCommand = async (toolCallId, command, mode, projectPath, processType, stdoutFile, stderrFile) => {
285
- return new Promise((resolve) => {
286
- if (!exports.persistentProcess) {
287
- throw new Error('Shell not initialized');
288
- }
289
- if (commandIsRunning) {
290
- (0, exports.resetShell)(projectPath);
291
- }
292
- commandIsRunning = true;
293
- // Add special case for git log to limit output
294
- const modifiedCommand = command.trim() === 'git log' ? 'git log -n 5' : command;
295
- const resolveCommand = (value) => {
296
- commandIsRunning = false;
297
- resolve(value);
298
- };
299
- if (processType === 'BACKGROUND') {
300
- runBackgroundCommand({
301
- toolCallId,
302
- command: modifiedCommand,
303
- mode,
304
- projectPath,
305
- stdoutFile,
306
- stderrFile,
307
- }, resolveCommand);
308
- }
309
- else if (exports.persistentProcess.type === 'pty') {
310
- (0, exports.runCommandPty)(exports.persistentProcess, modifiedCommand, mode, resolveCommand, projectPath);
311
- }
312
- else {
313
- // Fallback to child_process implementation
314
- runCommandChildProcess(exports.persistentProcess, modifiedCommand, mode, resolveCommand, projectPath);
315
- }
316
- });
317
- };
318
- exports.runTerminalCommand = runTerminalCommand;
319
- const runCommandPty = (persistentProcess, command, mode, resolve, projectPath) => {
320
- const ptyProcess = persistentProcess.pty;
321
- let commandOutput = '';
322
- let pendingOutput = '';
323
- let foundFirstNewLine = false;
324
- if (mode === 'assistant') {
325
- console.log((0, picocolors_1.green)(`> ${command}`));
326
- }
327
- const timer = setTimeout(() => {
328
- if (mode === 'assistant') {
329
- // Kill and recreate PTY
330
- (0, exports.resetShell)(projectPath);
331
- resolve({
332
- result: formatResult(command, commandOutput, `Command timed out after ${MAX_EXECUTION_TIME / 1000} seconds and was terminated. Shell has been restarted.`),
333
- stdout: commandOutput,
334
- });
335
- }
336
- }, MAX_EXECUTION_TIME);
337
- persistentProcess.timerId = timer;
338
- const dataDisposable = ptyProcess.onData((data) => {
339
- // Trim first line if it's the prompt identifier
340
- if ((commandOutput + pendingOutput).trim() === '' &&
341
- data.trimStart().startsWith(promptIdentifier)) {
342
- data = data.trimStart().slice(promptIdentifier.length);
343
- }
344
- const prefix = commandOutput + pendingOutput + data;
345
- // Skip the first line of the output, because it's the command being printed.
346
- if (!foundFirstNewLine) {
347
- if (!prefix.includes('\n')) {
348
- return;
349
- }
350
- foundFirstNewLine = true;
351
- const newLineIndex = prefix.indexOf('\n');
352
- data = prefix.slice(newLineIndex + 1);
353
- }
354
- const dataLines = (pendingOutput + data).split('\r\n');
355
- for (const [index, l] of dataLines.entries()) {
356
- const isLast = index === dataLines.length - 1;
357
- const line = isLast ? l : l + '\r\n';
358
- if (line.includes(promptIdentifier)) {
359
- // Last line is the prompt, command is done
360
- clearTimeout(timer);
361
- dataDisposable.dispose();
362
- if (command.startsWith('cd ') && mode === 'user') {
363
- let newWorkingDirectory = command.split(' ')[1];
364
- if (newWorkingDirectory === '~') {
365
- newWorkingDirectory = os.homedir();
366
- }
367
- else if (newWorkingDirectory.startsWith('~/')) {
368
- newWorkingDirectory = path_1.default.join(os.homedir(), newWorkingDirectory.slice(2));
369
- }
370
- else if (!path_1.default.isAbsolute(newWorkingDirectory)) {
371
- newWorkingDirectory = path_1.default.join(projectPath, newWorkingDirectory);
372
- }
373
- projectPath = (0, project_files_1.setProjectRoot)(newWorkingDirectory);
374
- }
375
- // Reset the PTY to the project root
376
- ptyProcess.write(`cd ${projectPath}\r`);
377
- resolve({
378
- result: formatResult(command, commandOutput, 'Command completed'),
379
- stdout: commandOutput,
380
- });
381
- return;
382
- }
383
- else if (isLast) {
384
- // Doesn't end in newline character, wait for more data
385
- pendingOutput = line;
386
- }
387
- else {
388
- // Process the line
389
- process.stdout.write(line);
390
- commandOutput += line;
391
- }
392
- }
393
- });
394
- const isWindows = os.platform() === 'win32';
395
- if (command.trim() === 'clear') {
396
- // `clear` needs access to the main process stdout. This is a workaround.
397
- (0, child_process_1.execSync)('clear', { stdio: 'inherit' });
398
- }
399
- // Write the command
400
- const commandWithCheck = isWindows
401
- ? command
402
- : `${command}; ec=$?; if [ $ec -eq 0 ]; then printf "Command completed. "; else printf "Command failed with exit code $ec. "; fi`;
403
- ptyProcess.write(commandWithCheck + '\r');
404
- };
405
- exports.runCommandPty = runCommandPty;
406
- const runCommandChildProcess = (persistentProcess, command, mode, resolve, projectPath) => {
407
- const isWindows = os.platform() === 'win32';
408
- let commandOutput = '';
409
- if (mode === 'assistant') {
410
- console.log((0, picocolors_1.green)(`> ${command}`));
411
- }
412
- const childProcess = (0, child_process_1.spawn)(persistentProcess.shell, [isWindows ? '/c' : '-c', command], {
413
- cwd: projectPath,
414
- env: {
415
- ...process.env,
416
- PAGER: 'cat',
417
- GIT_PAGER: 'cat',
418
- GIT_TERMINAL_PROMPT: '0',
419
- LESS: '-FRX',
420
- },
421
- });
422
- persistentProcess = {
423
- ...persistentProcess,
424
- childProcess,
425
- };
426
- const timer = setTimeout(() => {
427
- (0, exports.resetShell)(projectPath);
428
- if (mode === 'assistant') {
429
- resolve({
430
- result: formatResult(command, commandOutput, `Command timed out after ${MAX_EXECUTION_TIME / 1000} seconds and was terminated.`),
431
- stdout: commandOutput,
432
- });
433
- }
434
- }, MAX_EXECUTION_TIME);
435
- persistentProcess.timerId = timer;
436
- childProcess.stdout.on('data', (data) => {
437
- const output = data.toString();
438
- process.stdout.write(output);
439
- commandOutput += output;
440
- });
441
- childProcess.stderr.on('data', (data) => {
442
- const output = data.toString();
443
- process.stdout.write(output);
444
- commandOutput += output;
445
- });
446
- childProcess.on('close', (code) => {
447
- clearTimeout(timer);
448
- if (command.startsWith('cd ') && mode === 'user') {
449
- const newWorkingDirectory = command.split(' ')[1];
450
- projectPath = (0, project_files_1.setProjectRoot)(path_1.default.join(projectPath, newWorkingDirectory));
451
- }
452
- if (mode === 'assistant') {
453
- console.log((0, picocolors_1.green)(`Command completed`));
454
- }
455
- resolve({
456
- result: formatResult(command, commandOutput, `Command completed`),
457
- stdout: commandOutput,
458
- });
459
- });
460
- };
461
- function killAndResetPersistentProcess() {
462
- if (exports.persistentProcess?.type === 'pty') {
463
- exports.persistentProcess.pty.kill();
464
- exports.persistentProcess = null;
465
- }
466
- }
467
- //# sourceMappingURL=terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { ToolName } from '../common/constants/tools';
2
- /**
3
- * Interface for handling tool call rendering
4
- */
5
- export interface ToolCallRenderer {
6
- onToolStart?: (toolName: string, attributes: Record<string, string>) => string | null;
7
- onParamStart?: (paramName: string, toolName: string) => string | null;
8
- onParamChunk?: (content: string, paramName: string, toolName: string) => string | null;
9
- onParamEnd?: (paramName: string, toolName: string, content: string) => string | null;
10
- onToolEnd?: (toolName: string, params: Record<string, string>) => string | null;
11
- }
12
- /**
13
- * Default renderer for tool calls that formats them nicely for the console
14
- */
15
- export declare const defaultToolCallRenderer: ToolCallRenderer;
16
- export declare const toolRenderers: Record<ToolName, ToolCallRenderer>;
@@ -1,145 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toolRenderers = exports.defaultToolCallRenderer = void 0;
4
- const string_1 = require("../common/util/string");
5
- const picocolors_1 = require("picocolors");
6
- /**
7
- * Default renderer for tool calls that formats them nicely for the console
8
- */
9
- exports.defaultToolCallRenderer = {
10
- onToolStart: (toolName) => {
11
- return (0, picocolors_1.gray)(`[${(0, picocolors_1.bold)((0, string_1.snakeToTitleCase)(toolName))}]`) + '\n';
12
- },
13
- onParamChunk: (content, paramName, toolName) => {
14
- return (0, picocolors_1.gray)(content);
15
- },
16
- onParamEnd: () => null,
17
- onToolEnd: () => null,
18
- };
19
- exports.toolRenderers = {
20
- run_terminal_command: {
21
- // Don't render anything
22
- },
23
- code_search: {
24
- // Don't render anything
25
- },
26
- end_turn: {
27
- // Don't render anything
28
- },
29
- browser_logs: {
30
- // Don't render anything
31
- },
32
- read_files: {
33
- ...exports.defaultToolCallRenderer,
34
- onParamChunk: (content, paramName, toolName) => {
35
- // Don't render chunks for paths, wait for the full list
36
- return null;
37
- },
38
- onParamEnd: (paramName, toolName, content) => {
39
- const files = content.trim().split('\n').filter(Boolean); // Split by newline and remove empty entries
40
- const numFiles = files.length;
41
- const maxInitialFiles = 3;
42
- if (numFiles <= maxInitialFiles) {
43
- // If 3 or fewer files, list them all on new lines
44
- return (0, picocolors_1.gray)(files.join('\n'));
45
- }
46
- else {
47
- // If more than 3 files
48
- const initialFiles = files.slice(0, maxInitialFiles);
49
- const remainingFiles = files.slice(maxInitialFiles);
50
- const numRemaining = remainingFiles.length;
51
- const remainingFilesString = remainingFiles.join(' ');
52
- return (0, picocolors_1.gray)(`${initialFiles.map((file) => '- ' + file).join('\n')}\nand ${numRemaining} more: ${remainingFilesString}`);
53
- }
54
- },
55
- onToolEnd: (toolName, params) => {
56
- // Add a final newline after the file list
57
- return '\n';
58
- },
59
- },
60
- think_deeply: {
61
- ...exports.defaultToolCallRenderer,
62
- },
63
- create_plan: {
64
- ...exports.defaultToolCallRenderer,
65
- onParamStart: (paramName) => {
66
- if (paramName === 'path') {
67
- return (0, picocolors_1.gray)('Editing plan at ');
68
- }
69
- return null;
70
- },
71
- onParamChunk: (content, paramName) => {
72
- if (paramName === 'path') {
73
- return (0, picocolors_1.gray)(content);
74
- }
75
- return null;
76
- },
77
- onParamEnd: (paramName) => {
78
- if (paramName === 'path') {
79
- return (0, picocolors_1.gray)('...') + '\n';
80
- }
81
- return null;
82
- },
83
- },
84
- write_file: {
85
- ...exports.defaultToolCallRenderer,
86
- onParamStart: (paramName) => {
87
- if (paramName === 'path') {
88
- return (0, picocolors_1.gray)('Editing file at ');
89
- }
90
- return null;
91
- },
92
- onParamChunk: (content, paramName, toolName) => {
93
- if (paramName === 'path') {
94
- return (0, picocolors_1.gray)(content);
95
- }
96
- return null;
97
- },
98
- onParamEnd: (paramName) => paramName === 'path' ? (0, picocolors_1.gray)('...') + '\n' : null,
99
- },
100
- add_subgoal: {
101
- ...exports.defaultToolCallRenderer,
102
- onParamStart: (paramName, toolName) => {
103
- if (paramName === 'id') {
104
- return null;
105
- }
106
- return (0, picocolors_1.gray)((0, string_1.capitalize)(paramName) + ': ');
107
- },
108
- onParamChunk: (content, paramName, toolName) => {
109
- if (paramName === 'id') {
110
- return null;
111
- }
112
- return (0, picocolors_1.gray)(content);
113
- },
114
- onParamEnd: (paramName) => {
115
- const paramsWithNewLine = ['objective', 'status'];
116
- if (paramsWithNewLine.includes(paramName)) {
117
- return '\n';
118
- }
119
- return null;
120
- },
121
- },
122
- update_subgoal: {
123
- ...exports.defaultToolCallRenderer,
124
- onParamStart: (paramName, toolName) => {
125
- if (paramName === 'id') {
126
- return null;
127
- }
128
- return (0, picocolors_1.gray)((0, string_1.capitalize)(paramName) + ': ');
129
- },
130
- onParamChunk: (content, paramName, toolName) => {
131
- if (paramName === 'id') {
132
- return null;
133
- }
134
- return (0, picocolors_1.gray)(content);
135
- },
136
- onParamEnd: (paramName) => {
137
- const paramsWithNewLine = ['status'];
138
- if (paramsWithNewLine.includes(paramName)) {
139
- return '\n';
140
- }
141
- return null;
142
- },
143
- },
144
- };
145
- //# sourceMappingURL=tool-renderers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-renderers.js","sourceRoot":"","sources":["../../src/utils/tool-renderers.ts"],"names":[],"mappings":"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"}