Files
autocoder/server/services/__init__.py
Auto c1985eb285 feat: add interactive terminal and dev server management
Add new features for interactive terminal sessions and dev server control:

Terminal Component:
- New Terminal.tsx component using xterm.js for full terminal emulation
- WebSocket-based PTY communication with bidirectional I/O
- Cross-platform support (Windows via winpty, Unix via built-in pty)
- Auto-reconnection with exponential backoff
- Fix duplicate WebSocket connection bug by checking CONNECTING state
- Add manual close flag to prevent auto-reconnect race conditions
- Add project tracking to avoid duplicate connects on initial activation

Dev Server Management:
- New DevServerControl.tsx for starting/stopping dev servers
- DevServerManager service for subprocess management
- WebSocket streaming of dev server output
- Project configuration service for reading package.json scripts

Backend Infrastructure:
- Terminal router with WebSocket endpoint for PTY I/O
- DevServer router for server lifecycle management
- Terminal session manager with callback-based output streaming
- Enhanced WebSocket schemas for terminal and dev server messages

UI Integration:
- New Terminal and Dev Server tabs in the main application
- Updated DebugLogViewer with improved UI and functionality
- Extended useWebSocket hook for terminal message handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 10:35:36 +02:00

37 lines
761 B
Python

"""
Backend Services
================
Business logic and process management services.
"""
from .process_manager import AgentProcessManager
from .project_config import (
clear_dev_command,
detect_project_type,
get_default_dev_command,
get_dev_command,
get_project_config,
set_dev_command,
)
from .terminal_manager import (
TerminalSession,
cleanup_all_terminals,
get_terminal_session,
remove_terminal_session,
)
__all__ = [
"AgentProcessManager",
"TerminalSession",
"cleanup_all_terminals",
"clear_dev_command",
"detect_project_type",
"get_default_dev_command",
"get_dev_command",
"get_project_config",
"get_terminal_session",
"remove_terminal_session",
"set_dev_command",
]