mirror of
https://github.com/cline/cline.git
synced 2026-09-19 10:13:34 +08:00
* feat(terminal): add shared terminal types and interfaces Add shared terminal module with types and interfaces that enable terminal management across VSCode, CLI, and JetBrains environments. - Define ITerminal, ITerminalManager, and TerminalInfo interfaces - Add TerminalProcessResultPromise for async command execution - Include StandaloneTerminalOptions for non-VSCode environments - Prepare module structure for standalone implementations * feat(terminal): export standalone terminal implementations Enable exports for standalone terminal classes that were previously commented out as placeholders: - StandaloneTerminal - StandaloneTerminalManager - StandaloneTerminalProcess - StandaloneTerminalRegistry These implementations are now ready for use outside the terminal module. * fix: resolve TerminalInfo type incompatibility in settings update - Remove unused TerminalInfo import from both updateSettings files - Use `as any` cast to handle type mismatch between VSCode and standalone TerminalInfo - Replace busyTerminals array with busyTerminalsCount to avoid type issues - Add null-safe access when getting busy terminals length * feat: import StandaloneTerminalManager from bundled cline-core Replace standalone enhanced-terminal.js with import from the bundled TypeScript version in cline-core.js. This consolidates terminal management code and removes the need to separately include the runtime file in the VS Code extension package. - Re-export StandaloneTerminalManager from cline-core.ts - Update vscode-impls.js to import from cline-core.js - Remove .vscodeignore exception for enhanced-terminal.js * feat: simplify standalone terminal manager initialization Replace global injection pattern with environment variable detection for determining terminal execution mode. The Task class now directly instantiates StandaloneTerminalManager when IS_STANDALONE=true instead of relying on a globally injected instance. - Remove StandaloneTerminalManager re-export from cline-core.ts - Simplify vscode-impls.js createTerminal to return stub object - Use IS_STANDALONE env var for terminal manager selection in Task - Remove global.standaloneTerminalManager injection pattern * Fix Standalone build * Fix Standalone build * fix: use subagentTerminalOutputLineLimit in StandaloneTerminalManager.processOutput Match the VSCode TerminalManager logic to properly use subagentTerminalOutputLineLimit (2000) for subagent commands instead of always falling back to terminalOutputLineLimit (500). * feat: add TerminalManager to HostProvider for dependency injection - Add TerminalManagerCreator type and createTerminalManager to HostProvider - Extract ITerminalManager interface to shared/terminal/types for abstraction - Refactor TerminalManager to implement ITerminalManager interface - Create StandaloneTerminalManager for non-VSCode environments - Update TerminalRegistry to use ITerminalManager via HostProvider - Enable terminal management to work across different host environments * feat: refactor terminal manager to use ITerminalManager interface - Replace concrete TerminalManager/StandaloneTerminalManager types with ITerminalManager interface - Use HostProvider.createTerminalManager() for host-agnostic terminal creation - Simplify terminal execution mode logic in Task constructor - Add dynamic imports for StandaloneTerminalManager when backgroundExec mode is used - Improve logging for terminal manager selection