Commit graph

4364 commits

Author SHA1 Message Date
Eric Wheeler
304fcf2fbc fix: improve terminal execution with shell integration status
When shell integration is not available, the system now provides clear feedback
about command execution status and maintains consistent event flow.

- Removed waitForShellIntegration property to simplify code flow
- Consolidated event emission to ensure consistent behavior
- Updated tests to verify correct event sequence
- Simplified shell integration detection with pWaitFor
2025-03-10 20:55:05 -07:00
Eric Wheeler
0e41241faa fix: replace echo -e with printf in terminal tests
Replace echo -e with printf command in terminal tests for better portability.

- Replace echo -e with printf to ensure consistent behavior across different shell implementations
- Not all implementations of echo support the -e flag for interpreting backslash escapes
- Using printf provides a more reliable way to handle escape sequences

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
e24e5b24d4 refactor: move getTerminalContents to Terminal class
This commit partially addresses the issue of duplicate handler calls by
removing an unnecessary instantiation of TerminalManager in
registerTerminalActions.ts.

Move the getTerminalContents method from TerminalManager to Terminal
class as a static method and update all references to use the new
location.

Fixes: #1380

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
daf36f38ea refactor: move interpretExitCode from TerminalManager to TerminalProcess
This commit moves the interpretExitCode method from TerminalManager to
TerminalProcess class, as part of the terminal refactoring effort. The
method is responsible for translating exit codes into detailed results,
including signal information.

Changes include:
- Moved interpretExitCode method to TerminalProcess class
- Updated imports in TerminalManager and Cline to reference
  ExitCodeDetails from TerminalProcess
- Added findTerminalIdByVscodeTerminal helper method in TerminalManager
- Added comprehensive unit tests for interpretExitCode in
  TerminalProcess
- Tests cover undefined exit codes, normal exit codes (0-127), and
  signal exit codes (128+)

This change improves code organization by placing the exit code
interpretation logic closer to where it's primarily used, in the
TerminalProcess class.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
3a950bbc15 refactor: Rename TerminalInfo to Terminal and relocate to Terminal.ts
Transformed the TerminalInfo interface into a proper Terminal class and
moved it to its own file. This improves code organization and
encapsulation by centralizing terminal-related functionality.

The change establishes a clearer object model for terminal management,
setting the foundation for a more maintainable terminal architecture.
All references throughout the codebase have been updated to use the new
Terminal class while preserving existing functionality.

Tests have been updated and verified to ensure compatibility with the
new structure.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
60c14d8f5e test: add comprehensive terminal command execution testing
This commit combines three related improvements to terminal testing:

- Create a reusable function for testing terminal commands with real output
- Update tests to properly invoke terminal shell execution handlers
- Add microsecond timing to measure execution performance

Key improvements:
- Added testTerminalCommand function that takes command and expected output
- Use child_process.execSync to run real commands and feed output into mock terminal stream
- Properly trigger VSCode onDidStartTerminalShellExecution and onDidEndTerminalShellExecution events
- Add timeout mechanism to prevent hanging tests
- Measure execution time from terminal process creation to command completion
- Display both microseconds and milliseconds in test output
- Add test for base64 encoded zeros with configurable line count
- Increase buffer size for execSync to handle large outputs
- Limit output display to avoid cluttering the terminal

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
070a36baa2 Revert "Smart truncation for terminal output"
This reverts commit 7eee3e0878.

Middle-out truncation is a really great feature and it should still be
implemented, however it unnecessarily interferes with #1365 because it
hooked into the low-level chunk management that comes directly from VSCE
shell integration.

The best place to hook OutputBuilder is as follows depending on the
state of terminal interaction:

1. Foreground terminals:

Cline.ts:
	 executeCommandTool(...) {
	     process.on("line", (line) => {
		    lines.push(line)
		    ...
	    }
	 }

2. For background terminals: hook in at the point that getUnretrievedOutput is consumed for active or
   inactive terminals in Cline.ts:getEnvironmentDetails()

Please note:

The Terminal classes are very sensitive to change, partially because of
the complicated way that shell integration works with VSCE, and
partially because of the way that Cline interacts with the Terminal*
class abstractions that make VSCE shell integration easier to work with.

At the point that PR#1365 is merged, it is unlikely that any Terminal*
classes will need to be modified substantially.  Generally speaking, we
should think of this is a stable interface and minimize changes.

Reverts: #1390
2025-03-10 20:54:53 -07:00
Eric Wheeler
13c75a19d1 Revert "Disable terminal actions for now"
This reverts commit 93a394dd93 which has
been fixed by PR #1365.

Fixes: #1380
2025-03-10 20:53:39 -07:00
Eric Wheeler
75de043ded Revert "Remove terminal actions"
This reverts commit 75dcc2ffcf which has
been fixed by PR #1365.

Fixes: #1380
2025-03-10 20:53:36 -07:00
Eric Wheeler
384b469bf1 Revert "Handle outputless commands"
This reverts commit 710284cc3d which has
been superseded by PR #1365.

Fixes: #1416
2025-03-10 20:50:10 -07:00
Eric Wheeler
7e0a4dd426 Revert "Try to prevent additional cases in which terminal commands lock the task UI"
This reverts commit eee7bbe104 which has
been superseded by PR #1365.

Fixes: #1435
2025-03-10 20:50:10 -07:00
Chris Estreich
edb53bf433
Merge pull request #1546 from RooVetGit/cte/roo-code-api
Rename ClineAPI to RooCodeAPI and improve types
2025-03-10 20:45:39 -07:00
Chris Estreich
33f232ab67
Merge pull request #1548 from RooVetGit/cte/npm-install-all
Simplify `npm install` by automatically installing npm-run-all
2025-03-10 20:30:25 -07:00
Matt Rubens
ebb5a571d9
Merge pull request #1558 from RooVetGit/fix_open_ai_usage
Fix usage tracking for SiliconFlow etc
2025-03-10 23:29:45 -04:00
Chris Estreich
90a607f111
Merge branch 'main' into cte/roo-code-api 2025-03-10 20:29:36 -07:00
Chris Estreich
13be66fd53
Merge pull request #1560 from cannuri/cannuri/fix-alert-dialog-theme
refactor alert dialog styles, use vscode theme
2025-03-10 20:25:25 -07:00
cannuri
8c21f0ece3 refactor alert dialog styles, use vscode theme 2025-03-11 03:59:46 +01:00
Matt Rubens
f306461276 Fix usage tracking for SiliconFlow etc 2025-03-10 22:59:08 -04:00
Matt Rubens
9eab941d5c
Merge pull request #1550 from Smartsheet-JB-Brown/jbbrown/aws_custom_arn_for_intelligent_prompt_routing
Users need the ability to use custom ARNs (Amazon Resource Names) with AWS Bedrock for intelligent prompt routing.
2025-03-10 22:21:36 -04:00
Matt Rubens
77186e8ee0 Cleanup 2025-03-10 22:15:52 -04:00
Matt Rubens
d6a9e0fbe9
Merge pull request #1552 from RooVetGit/mcp-home-dir
fix: update MCP servers directory path for platform compatibility
2025-03-10 21:47:08 -04:00
Chris Estreich
00bca30695
Merge pull request #1545 from RooVetGit/cte/action-registraion-cleanup 2025-03-10 18:45:00 -07:00
Matt Rubens
6cfc1cd4c9
Merge pull request #1528 from afshawnlotfi/chrome-remote-webtools
Chrome remote webtools
2025-03-10 21:37:20 -04:00
Hannes Rudolph
7462906b7a
Update ClineProvider.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-10 18:49:25 -06:00
Matt Rubens
9dfdc424c6
Merge pull request #1556 from cannuri/cannuri/fix-browser-system-prompt
fix browser system prompt inclusion rules
2025-03-10 20:45:11 -04:00
cannuri
a9773b70c8 fix browser_action system prompt 2025-03-11 01:03:18 +01:00
Hannes Rudolph
abcb7c18b4
Update src/core/webview/ClineProvider.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-10 16:23:43 -06:00
Afshawn Lotfi
ce3e22ecfe Refactor Docker gateway IP retrieval to use a dedicated shell command execution function 2025-03-10 21:40:08 +00:00
Smartsheet-JB-Brown
171037a938 Add enhanced error handling and logging for AWS Bedrock custom ARNs 2025-03-10 14:25:52 -07:00
hannesrudolph
102a996875 fix: update MCP servers directory path for platform compatibility 2025-03-10 15:18:19 -06:00
cte
2187369ba4 Remove benchmark 2025-03-10 11:39:23 -07:00
cte
7681a98842 Simplify npm install by automatically installing npm-run-all 2025-03-10 11:36:11 -07:00
Chris Estreich
0a03c88e92
Update src/exports/README.md
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-10 11:24:21 -07:00
cte
f8a592aac9 Rename ClineAPI to RooCodeAPI and improve types 2025-03-10 11:16:38 -07:00
cte
5a3c20764a Follow the established pattern for command registration 2025-03-10 11:12:11 -07:00
shohei-ihaya
f4b3c44371 add gemini-2.0-pro-exp-02-05 model to vertex 2025-03-11 02:09:18 +09:00
cannuri
42287ad1a0
Merge pull request #2 from cannuri/feature/update-main
Feature/update main
2025-03-10 17:52:24 +01:00
aheizi
f13d28ad45 simpler way of setting up 2025-03-11 00:50:27 +08:00
cannuri
4a542940ba Merge remote-tracking branch 'upstream/main' 2025-03-10 17:49:34 +01:00
aheizi
643508c3b0 Merge remote-tracking branch 'origin/feature/add_sse_mcp' into feature/add_sse_mcp 2025-03-10 23:33:25 +08:00
Matt Rubens
89b8b10bba Merge remote-tracking branch 'origin/main' into feature/add_sse_mcp 2025-03-10 10:47:26 -04:00
Matt Rubens
224303660b
Merge pull request #1533 from pdecat/ci/publish_tags
ci: publish git tags to Github (resolves #444)
2025-03-10 10:38:50 -04:00
Patrick Decat
f99fc59460
ci: tag after packaging but before publishing 2025-03-10 15:29:14 +01:00
Matt Rubens
6644202b55
Merge pull request #1451 from dtrugman/feat/add-openai-style-cost-calculation
Add openai style cost calculation
2025-03-10 10:11:30 -04:00
Matt Rubens
03045d8e75
Update src/core/Cline.ts 2025-03-10 09:54:45 -04:00
Matt Rubens
01b822e73f
Merge pull request #1524 from RooVetGit/checkpoint_telemetry
Add telemetry for checkpoint save/restore/diff
2025-03-10 07:45:53 -04:00
dongqing
85b54b33ba support custom base url for gemini in google AI studio 2025-03-10 19:06:58 +08:00
Patrick Decat
70d6658ca4
ci: publish git tags to Github (resolves #444) 2025-03-10 11:56:24 +01:00
Afshawn Lotfi
71795d5487 Enhance BrowserSettings component with VSCodeTextField for remote browser URL input 2025-03-10 06:51:35 +00:00
Chris Estreich
0b2abee923
Merge pull request #1516 from RooVetGit/cte/layout-fixes
App tab layout fixes
2025-03-09 21:53:51 -07:00