codebuff 1.0.248 → 1.0.249

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 (143) hide show
  1. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  2. package/dist/common/actions.d.ts +32 -32
  3. package/dist/common/billing/auto-topup.d.ts +8 -0
  4. package/dist/common/billing/auto-topup.js +192 -0
  5. package/dist/common/billing/auto-topup.js.map +1 -0
  6. package/dist/common/billing/balance-calculator.d.ts +57 -0
  7. package/dist/common/billing/balance-calculator.js +218 -0
  8. package/dist/common/billing/balance-calculator.js.map +1 -0
  9. package/dist/common/billing/conversion.d.ts +9 -0
  10. package/dist/common/billing/conversion.js +20 -0
  11. package/dist/common/billing/conversion.js.map +1 -0
  12. package/dist/common/billing/credit-conversion.d.ts +24 -0
  13. package/dist/common/billing/credit-conversion.js +48 -0
  14. package/dist/common/billing/credit-conversion.js.map +1 -0
  15. package/dist/common/billing/grant-credits.d.ts +43 -0
  16. package/dist/common/billing/grant-credits.js +266 -0
  17. package/dist/common/billing/grant-credits.js.map +1 -0
  18. package/dist/common/billing/plans.d.ts +13 -0
  19. package/dist/common/billing/plans.js +44 -0
  20. package/dist/common/billing/plans.js.map +1 -0
  21. package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +66 -0
  22. package/dist/common/types/plan.d.ts +24 -0
  23. package/dist/{types.js → common/types/plan.js} +1 -1
  24. package/dist/common/types/plan.js.map +1 -0
  25. package/dist/common/types/usage.d.ts +2 -2
  26. package/dist/common/util/server/referral.d.ts +14 -0
  27. package/dist/common/util/server/referral.js +85 -0
  28. package/dist/common/util/server/referral.js.map +1 -0
  29. package/dist/common/websockets/websocket-schema.d.ts +68 -68
  30. package/package.json +1 -1
  31. package/dist/background-process-manager.d.ts +0 -50
  32. package/dist/background-process-manager.js +0 -359
  33. package/dist/background-process-manager.js.map +0 -1
  34. package/dist/browser-runner.d.ts +0 -35
  35. package/dist/browser-runner.js +0 -680
  36. package/dist/browser-runner.js.map +0 -1
  37. package/dist/chat-storage.d.ts +0 -2
  38. package/dist/chat-storage.js +0 -93
  39. package/dist/chat-storage.js.map +0 -1
  40. package/dist/checkpoints/checkpoint-manager.d.ts +0 -94
  41. package/dist/checkpoints/checkpoint-manager.js +0 -280
  42. package/dist/checkpoints/checkpoint-manager.js.map +0 -1
  43. package/dist/checkpoints/file-manager.d.ts +0 -72
  44. package/dist/checkpoints/file-manager.js +0 -311
  45. package/dist/checkpoints/file-manager.js.map +0 -1
  46. package/dist/cli-handlers/api-key.d.ts +0 -25
  47. package/dist/cli-handlers/api-key.js +0 -66
  48. package/dist/cli-handlers/api-key.js.map +0 -1
  49. package/dist/cli-handlers/checkpoint.d.ts +0 -18
  50. package/dist/cli-handlers/checkpoint.js +0 -195
  51. package/dist/cli-handlers/checkpoint.js.map +0 -1
  52. package/dist/cli-handlers/diff.d.ts +0 -2
  53. package/dist/cli-handlers/diff.js +0 -31
  54. package/dist/cli-handlers/diff.js.map +0 -1
  55. package/dist/cli-handlers/easter-egg.d.ts +0 -1
  56. package/dist/cli-handlers/easter-egg.js +0 -126
  57. package/dist/cli-handlers/easter-egg.js.map +0 -1
  58. package/dist/cli-handlers/inititalization-flow.d.ts +0 -1
  59. package/dist/cli-handlers/inititalization-flow.js +0 -24
  60. package/dist/cli-handlers/inititalization-flow.js.map +0 -1
  61. package/dist/cli.d.ts +0 -44
  62. package/dist/cli.js +0 -478
  63. package/dist/cli.js.map +0 -1
  64. package/dist/client.d.ts +0 -157
  65. package/dist/client.js +0 -836
  66. package/dist/client.js.map +0 -1
  67. package/dist/config.d.ts +0 -4
  68. package/dist/config.js +0 -12
  69. package/dist/config.js.map +0 -1
  70. package/dist/create-template-project.d.ts +0 -1
  71. package/dist/create-template-project.js +0 -107
  72. package/dist/create-template-project.js.map +0 -1
  73. package/dist/credentials.d.ts +0 -4
  74. package/dist/credentials.js +0 -38
  75. package/dist/credentials.js.map +0 -1
  76. package/dist/dev-process-manager.d.ts +0 -10
  77. package/dist/dev-process-manager.js +0 -54
  78. package/dist/dev-process-manager.js.map +0 -1
  79. package/dist/fingerprint.d.ts +0 -1
  80. package/dist/fingerprint.js +0 -48
  81. package/dist/fingerprint.js.map +0 -1
  82. package/dist/index.d.ts +0 -2
  83. package/dist/index.js +0 -117
  84. package/dist/index.js.map +0 -1
  85. package/dist/menu.d.ts +0 -3
  86. package/dist/menu.js +0 -126
  87. package/dist/menu.js.map +0 -1
  88. package/dist/project-files.d.ts +0 -114
  89. package/dist/project-files.js +0 -513
  90. package/dist/project-files.js.map +0 -1
  91. package/dist/startup-process-handler.d.ts +0 -2
  92. package/dist/startup-process-handler.js +0 -21
  93. package/dist/startup-process-handler.js.map +0 -1
  94. package/dist/tool-handlers.d.ts +0 -28
  95. package/dist/tool-handlers.js +0 -240
  96. package/dist/tool-handlers.js.map +0 -1
  97. package/dist/types.d.ts +0 -15
  98. package/dist/types.js.map +0 -1
  99. package/dist/update-codebuff.d.ts +0 -1
  100. package/dist/update-codebuff.js +0 -160
  101. package/dist/update-codebuff.js.map +0 -1
  102. package/dist/utils/__tests__/background-process-manager.test.d.ts +0 -1
  103. package/dist/utils/__tests__/background-process-manager.test.js +0 -289
  104. package/dist/utils/__tests__/background-process-manager.test.js.map +0 -1
  105. package/dist/utils/__tests__/tool-renderers.test.d.ts +0 -1
  106. package/dist/utils/__tests__/tool-renderers.test.js +0 -51
  107. package/dist/utils/__tests__/tool-renderers.test.js.map +0 -1
  108. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +0 -1
  109. package/dist/utils/__tests__/xml-stream-parser.test.js +0 -229
  110. package/dist/utils/__tests__/xml-stream-parser.test.js.map +0 -1
  111. package/dist/utils/analytics.d.ts +0 -6
  112. package/dist/utils/analytics.js +0 -59
  113. package/dist/utils/analytics.js.map +0 -1
  114. package/dist/utils/detect-shell.d.ts +0 -1
  115. package/dist/utils/detect-shell.js +0 -60
  116. package/dist/utils/detect-shell.js.map +0 -1
  117. package/dist/utils/logger.d.ts +0 -21
  118. package/dist/utils/logger.js +0 -105
  119. package/dist/utils/logger.js.map +0 -1
  120. package/dist/utils/spinner.d.ts +0 -11
  121. package/dist/utils/spinner.js +0 -87
  122. package/dist/utils/spinner.js.map +0 -1
  123. package/dist/utils/system-info.d.ts +0 -8
  124. package/dist/utils/system-info.js +0 -22
  125. package/dist/utils/system-info.js.map +0 -1
  126. package/dist/utils/terminal.d.ts +0 -41
  127. package/dist/utils/terminal.js +0 -475
  128. package/dist/utils/terminal.js.map +0 -1
  129. package/dist/utils/tool-renderers.d.ts +0 -16
  130. package/dist/utils/tool-renderers.js +0 -145
  131. package/dist/utils/tool-renderers.js.map +0 -1
  132. package/dist/utils/xml-stream-parser.d.ts +0 -9
  133. package/dist/utils/xml-stream-parser.js +0 -128
  134. package/dist/utils/xml-stream-parser.js.map +0 -1
  135. package/dist/web-scraper.d.ts +0 -3
  136. package/dist/web-scraper.js +0 -57
  137. package/dist/web-scraper.js.map +0 -1
  138. package/dist/workers/checkpoint-worker.d.ts +0 -1
  139. package/dist/workers/checkpoint-worker.js +0 -48
  140. package/dist/workers/checkpoint-worker.js.map +0 -1
  141. package/dist/workers/project-context.d.ts +0 -1
  142. package/dist/workers/project-context.js +0 -17
  143. package/dist/workers/project-context.js.map +0 -1
@@ -1,475 +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 linesToSkip = command.split('\n').length; // Count command lines to skip
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
- console.log({ data }, 'asdf');
340
- // Trim first line if it's the prompt identifier
341
- if ((commandOutput + pendingOutput).trim() === '' &&
342
- data.trimStart().startsWith(promptIdentifier)) {
343
- data = data.trimStart().slice(promptIdentifier.length);
344
- }
345
- const prefix = commandOutput + pendingOutput + data;
346
- // Skip initial command echo lines
347
- if (linesToSkip > 0) {
348
- const lines = prefix.split('\n');
349
- if (lines.length <= linesToSkip) {
350
- // Not enough lines to finish skipping yet
351
- pendingOutput = lines[lines.length - 1];
352
- linesToSkip -= lines.length - 1;
353
- return;
354
- }
355
- else {
356
- // We have enough lines to finish skipping and start processing
357
- pendingOutput = '';
358
- data = lines.slice(linesToSkip).join('\n');
359
- linesToSkip = 0;
360
- }
361
- }
362
- const dataLines = (pendingOutput + data).split('\r\n');
363
- for (const [index, l] of dataLines.entries()) {
364
- const isLast = index === dataLines.length - 1;
365
- const line = isLast ? l : l + '\r\n';
366
- if (line.includes(promptIdentifier)) {
367
- // Last line is the prompt, command is done
368
- clearTimeout(timer);
369
- dataDisposable.dispose();
370
- if (command.startsWith('cd ') && mode === 'user') {
371
- let newWorkingDirectory = command.split(' ')[1];
372
- if (newWorkingDirectory === '~') {
373
- newWorkingDirectory = os.homedir();
374
- }
375
- else if (newWorkingDirectory.startsWith('~/')) {
376
- newWorkingDirectory = path_1.default.join(os.homedir(), newWorkingDirectory.slice(2));
377
- }
378
- else if (!path_1.default.isAbsolute(newWorkingDirectory)) {
379
- newWorkingDirectory = path_1.default.join(projectPath, newWorkingDirectory);
380
- }
381
- projectPath = (0, project_files_1.setProjectRoot)(newWorkingDirectory);
382
- }
383
- // Reset the PTY to the project root
384
- ptyProcess.write(`cd ${projectPath}\r`);
385
- resolve({
386
- result: formatResult(command, commandOutput, 'Command completed'),
387
- stdout: commandOutput,
388
- });
389
- return;
390
- }
391
- else if (isLast) {
392
- // Doesn't end in newline character, wait for more data
393
- pendingOutput = line;
394
- }
395
- else {
396
- // Process the line
397
- process.stdout.write(line);
398
- commandOutput += line;
399
- }
400
- }
401
- });
402
- const isWindows = os.platform() === 'win32';
403
- if (command.trim() === 'clear') {
404
- // `clear` needs access to the main process stdout. This is a workaround.
405
- (0, child_process_1.execSync)('clear', { stdio: 'inherit' });
406
- }
407
- // Write the command
408
- const commandWithCheck = isWindows
409
- ? command
410
- : `${command}; ec=$?; if [ $ec -eq 0 ]; then printf "Command completed. "; else printf "Command failed with exit code $ec. "; fi`;
411
- ptyProcess.write(commandWithCheck + '\r');
412
- };
413
- exports.runCommandPty = runCommandPty;
414
- const runCommandChildProcess = (persistentProcess, command, mode, resolve, projectPath) => {
415
- const isWindows = os.platform() === 'win32';
416
- let commandOutput = '';
417
- if (mode === 'assistant') {
418
- console.log((0, picocolors_1.green)(`> ${command}`));
419
- }
420
- const childProcess = (0, child_process_1.spawn)(persistentProcess.shell, [isWindows ? '/c' : '-c', command], {
421
- cwd: projectPath,
422
- env: {
423
- ...process.env,
424
- PAGER: 'cat',
425
- GIT_PAGER: 'cat',
426
- GIT_TERMINAL_PROMPT: '0',
427
- LESS: '-FRX',
428
- },
429
- });
430
- persistentProcess = {
431
- ...persistentProcess,
432
- childProcess,
433
- };
434
- const timer = setTimeout(() => {
435
- (0, exports.resetShell)(projectPath);
436
- if (mode === 'assistant') {
437
- resolve({
438
- result: formatResult(command, commandOutput, `Command timed out after ${MAX_EXECUTION_TIME / 1000} seconds and was terminated.`),
439
- stdout: commandOutput,
440
- });
441
- }
442
- }, MAX_EXECUTION_TIME);
443
- persistentProcess.timerId = timer;
444
- childProcess.stdout.on('data', (data) => {
445
- const output = data.toString();
446
- process.stdout.write(output);
447
- commandOutput += output;
448
- });
449
- childProcess.stderr.on('data', (data) => {
450
- const output = data.toString();
451
- process.stdout.write(output);
452
- commandOutput += output;
453
- });
454
- childProcess.on('close', (code) => {
455
- clearTimeout(timer);
456
- if (command.startsWith('cd ') && mode === 'user') {
457
- const newWorkingDirectory = command.split(' ')[1];
458
- projectPath = (0, project_files_1.setProjectRoot)(path_1.default.join(projectPath, newWorkingDirectory));
459
- }
460
- if (mode === 'assistant') {
461
- console.log((0, picocolors_1.green)(`Command completed`));
462
- }
463
- resolve({
464
- result: formatResult(command, commandOutput, `Command completed`),
465
- stdout: commandOutput,
466
- });
467
- });
468
- };
469
- function killAndResetPersistentProcess() {
470
- if (exports.persistentProcess?.type === 'pty') {
471
- exports.persistentProcess.pty.kill();
472
- exports.persistentProcess = null;
473
- }
474
- }
475
- //# sourceMappingURL=terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2LA,oDAwIC;AA6QD,sEAKC;AArlBD,oDAA2B;AAC3B,iDAA+E;AAC/E,2BAA8D;AAC9D,uCAAwB;AACxB,6CAAoC;AAGpC,6CAA8C;AAC9C,+CAA2E;AAC3E,2CAAkC;AAElC,8EAIsC;AACtC,oDAAiD;AACjD,iDAA4C;AAE5C,IAAI,GAAyE,CAAA;AAC7E,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAA;AACtC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AACxB,IAAI,CAAC;IACH,GAAG,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC1D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;AACjB,CAAC;QAAS,CAAC;IACT,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAA;AAClC,CAAC;AAED,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACnC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAgBlC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAqB,EAAE;IACjE,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;QAC3C,MAAM,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,SAAS;YACrB,CAAC,CAAC,SAAS,KAAK,YAAY;gBAC1B,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,MAAM,CAAA;QAEV,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3C,8BAA8B;QAC9B,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GACV,SAAS,KAAK,KAAK;gBACjB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,KAAK,MAAM;oBACpB,CAAC,CAAC,4BAA4B;oBAC9B,CAAC,CAAC,WAAW,CAAA;YACnB,iBAAiB,GAAG,UAAU,MAAM,wBAAwB,CAAA;QAC9D,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,gDAAgD;YAChD,iBAAiB;gBACf,yFAAyF,CAAA;QAC7F,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;YACnE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;YAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;YAC/B,GAAG,EAAE,GAAG;YACR,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,KAAK;gBAChB,mBAAmB,EAAE,GAAG;gBACxB,GAAG,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,GAAG,EAAE,iCAAiC;wBAC/C,MAAM,EAAE,gBAAgB;qBACzB;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,gBAAgB;qBACvB,CAAC;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,GAAG,EAAE,yBAAyB;gBAC3C,wCAAwC;gBACxC,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,aAAa;gBACrB,0BAA0B;gBAC1B,KAAK,EAAE,eAAe;aACvB;SACF,CAAC,CAAA;QAEF,4CAA4C;QAC5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACxC,CAAC;QACD,mDAAmD;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,CAAC,QAAQ,gBAAgB,KAAK,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;QAC3C,MAAM,SAAS,GAAG,IAAA,0BAAW,GAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,SAAS;YACrB,CAAC,CAAC,SAAS,KAAK,YAAY;gBAC1B,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,SAAS;YACb,CAAC,CAAC,MAAM,CAAA;QACV,MAAM,YAAY,GAAG,IAA6C,CAAA;QAClE,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK;YACL,YAAY;YACZ,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAEU,QAAA,iBAAiB,GAEjB,IAAI,CAAA;AAEf,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,yBAAiB;QAAE,OAAM;IAC9B,IAAI,yBAAiB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACrC,yBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,gBAAgB,GAAG,KAAK,CAAA;AAErB,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAEM,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,EAAE;IACnD,yBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;AAC1D,CAAC,CAAA;AAFY,QAAA,aAAa,iBAEzB;AAEM,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,EAAE;IAChD,gBAAgB,GAAG,KAAK,CAAA;IACxB,IAAI,yBAAiB,EAAE,CAAC;QACtB,IAAI,yBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,YAAY,CAAC,yBAAiB,CAAC,OAAO,CAAC,CAAA;YACvC,yBAAiB,CAAC,OAAO,GAAG,IAAI,CAAA;QAClC,CAAC;QAED,IAAI,yBAAiB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,yBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAA,qBAAa,EAAC,WAAW,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,yBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,CAAA;YACtC,yBAAiB,GAAG;gBAClB,GAAG,yBAAiB;gBACpB,YAAY,EAAE,IAAI;aACnB,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAnBY,QAAA,UAAU,cAmBtB;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc,EAAE,MAAc;IACnE,OAAO,IAAA,kBAAU,EACf,YAAY,OAAO,YAAY,EAC/B,2BAA2B,EAC3B,WAAW,IAAA,kCAAyB,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,EACnH,WAAW,MAAM,WAAW,EAC5B,4BAA4B,CAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,SAAgB,oBAAoB,CAClC,OAOC,EACD,cAAmE;IAEnE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GACtE,OAAO,CAAA;IACT,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAA;IACxB,MAAM,aAAa,GAAG,EAAE,CAAA;IAExB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,0CAAa,EAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE;YACjE,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;YACzC,mEAAmE;YACnE,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;QAEF,0DAA0D;QAC1D,IAAA,gBAAM,EACJ,YAAY,CAAC,GAAG,KAAK,SAAS,EAC9B,2CAA2C,CAC5C,CAAA;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAA;QAClC,MAAM,WAAW,GAA0B;YACzC,GAAG,EAAE,SAAS;YACd,UAAU;YACV,OAAO;YACP,OAAO,EAAE,YAAY;YACrB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,CAAC;YAC3B,wBAAwB,EAAE,CAAC;YAC3B,kBAAkB,EAAE,IAAI;YACxB,UAAU;YACV,UAAU;SACX,CAAA;QACD,gDAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QAE/C,4CAA4C;QAC5C,IAAI,YAAqC,CAAA;QACzC,IAAI,YAAqC,CAAA;QAEzC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC3C,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;YACtC,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,YAAY,GAAG,IAAA,sBAAiB,EAAC,SAAS,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,IAAI,UAAU,CAAA;QAC/C,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/C,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;YAC1C,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,YAAY,GAAG,IAAA,sBAAiB,EAAC,SAAS,CAAC,CAAA;QAC7C,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC3C,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAErC,iCAAiC;YACjC,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC3C,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAErC,iCAAiC;YACjC,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAA;YAC5B,WAAW,CAAC,YAAY,CAAC,IAAI,CAC3B,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAC7C,CAAA;YACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEhC,qBAAqB;YACrB,YAAY,EAAE,GAAG,EAAE,CAAA;YACnB,YAAY,EAAE,GAAG,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,WAAW,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;YACvD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEhC,qBAAqB;YACrB,YAAY,EAAE,GAAG,EAAE,CAAA;YACnB,YAAY,EAAE,GAAG,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,gHAAgH;QAChH,YAAY,CAAC,KAAK,EAAE,CAAA;QAEpB,MAAM,aAAa,GAAG;cACZ,SAAS;WACZ,OAAO;UACR,WAAW,CAAC,MAAM;sBACN,CAAA;QAClB,cAAc,CAAC;YACb,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,aAAa,GAAG,aAAa;SACtC,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,kCAAkC,OAAO,sBAAsB,KAAK,CAAC,OAAO,iCAAiC,CAAA;QAClI,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC;AACH,CAAC;AAEM,MAAM,kBAAkB,GAAG,KAAK,EACrC,UAAkB,EAClB,OAAe,EACf,IAA0B,EAC1B,WAAmB,EACnB,WAAkC,EAClC,UAAmB,EACnB,UAAmB,EAC0B,EAAE;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC,yBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;QACzB,CAAC;QAED,gBAAgB,GAAG,IAAI,CAAA;QAEvB,+CAA+C;QAC/C,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAA;QAEzD,MAAM,cAAc,GAAG,CAAC,KAAyC,EAAE,EAAE;YACnE,gBAAgB,GAAG,KAAK,CAAA;YACxB,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAA;QAED,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,oBAAoB,CAClB;gBACE,UAAU;gBACV,OAAO,EAAE,eAAe;gBACxB,IAAI;gBACJ,WAAW;gBACX,UAAU;gBACV,UAAU;aACX,EACD,cAAc,CACf,CAAA;QACH,CAAC;aAAM,IAAI,yBAAiB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5C,IAAA,qBAAa,EACX,yBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAA;QACH,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,sBAAsB,CACpB,yBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,cAAc,EACd,WAAW,CACZ,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA5DY,QAAA,kBAAkB,sBA4D9B;AAEM,MAAM,aAAa,GAAG,CAC3B,iBAEC,EACD,OAAe,EACf,IAA0B,EAC1B,OAA4D,EAC5D,WAAmB,EACnB,EAAE;IACF,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAA;IACxC,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA,CAAC,8BAA8B;IAE3E,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,wBAAwB;YACxB,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;YAEvB,OAAO,CAAC;gBACN,MAAM,EAAE,YAAY,CAClB,OAAO,EACP,aAAa,EACb,2BAA2B,kBAAkB,GAAG,IAAI,wDAAwD,CAC7G;gBACD,MAAM,EAAE,aAAa;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEtB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAA;IAEjC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QAC7B,gDAAgD;QAChD,IACE,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAC7C,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAC7C,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,IAAI,CAAA;QAEnD,kCAAkC;QAClC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEhC,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;gBAChC,0CAA0C;gBAC1C,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACvC,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;gBAC/B,OAAM;YACR,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,aAAa,GAAG,EAAE,CAAA;gBAClB,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC1C,WAAW,GAAG,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACtD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;YAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,2CAA2C;gBAC3C,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,cAAc,CAAC,OAAO,EAAE,CAAA;gBAExB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjD,IAAI,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/C,IAAI,mBAAmB,KAAK,GAAG,EAAE,CAAC;wBAChC,mBAAmB,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;oBACpC,CAAC;yBAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAC7B,EAAE,CAAC,OAAO,EAAE,EACZ,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAA;oBACH,CAAC;yBAAM,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACjD,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAA;oBACnE,CAAC;oBACD,WAAW,GAAG,IAAA,8BAAc,EAAC,mBAAmB,CAAC,CAAA;gBACnD,CAAC;gBAED,oCAAoC;gBACpC,UAAU,CAAC,KAAK,CAAC,MAAM,WAAW,IAAI,CAAC,CAAA;gBAEvC,OAAO,CAAC;oBACN,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,mBAAmB,CAAC;oBACjE,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,uDAAuD;gBACvD,aAAa,GAAG,IAAI,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,mBAAmB;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC1B,aAAa,IAAI,IAAI,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;IAE3C,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QAC/B,yEAAyE;QACzE,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,SAAS;QAChC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,qHAAqH,CAAA;IACnI,UAAU,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;AAC3C,CAAC,CAAA;AAzHY,QAAA,aAAa,iBAyHzB;AAED,MAAM,sBAAsB,GAAG,CAC7B,iBAEC,EACD,OAAe,EACf,IAA0B,EAC1B,OAA4D,EAC5D,WAAmB,EACnB,EAAE;IACF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA;IAC3C,IAAI,aAAa,GAAG,EAAE,CAAA;IAEtB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qBAAK,EACxB,iBAAiB,CAAC,KAAK,EACvB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC;QACE,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;YAChB,mBAAmB,EAAE,GAAG;YACxB,IAAI,EAAE,MAAM;SACb;KACF,CACF,CAAA;IACD,iBAAiB,GAAG;QAClB,GAAG,iBAAiB;QACpB,YAAY;KACb,CAAA;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;QACvB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC;gBACN,MAAM,EAAE,YAAY,CAClB,OAAO,EACP,aAAa,EACb,2BAA2B,kBAAkB,GAAG,IAAI,8BAA8B,CACnF;gBACD,MAAM,EAAE,aAAa;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEtB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAA;IAEjC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5B,aAAa,IAAI,MAAM,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5B,aAAa,IAAI,MAAM,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACjD,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,WAAW,GAAG,IAAA,8BAAc,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,mBAAmB,CAAC,CAAC,CAAA;QACzC,CAAC;QAED,OAAO,CAAC;YACN,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,mBAAmB,CAAC;YACjE,MAAM,EAAE,aAAa;SACtB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAgB,6BAA6B;IAC3C,IAAI,yBAAiB,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;QACtC,yBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC5B,yBAAiB,GAAG,IAAI,CAAA;IAC1B,CAAC;AACH,CAAC"}
@@ -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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"}