ChatDev/workflow/runtime/runtime_context.py
2026-01-07 16:24:01 +08:00

31 lines
1021 B
Python
Executable File

"""Shared runtime context for workflow execution."""
from dataclasses import dataclass, field
from pathlib import Path
from typing import Any, Dict, Optional
from runtime.node.agent import ToolManager
from utils.function_manager import FunctionManager
from utils.logger import WorkflowLogger
from utils.log_manager import LogManager
from utils.token_tracker import TokenTracker
from utils.attachments import AttachmentStore
@dataclass
class RuntimeContext:
"""Container for runtime-wide dependencies required by GraphExecutor."""
tool_manager: ToolManager
function_manager: FunctionManager
edge_processor_function_manager: FunctionManager
logger: WorkflowLogger
log_manager: LogManager
token_tracker: TokenTracker
attachment_store: AttachmentStore
code_workspace: Path
global_state: Dict[str, Any] = field(default_factory=dict)
cycle_manager: Optional[Any] = None # Late-bound by GraphManager
session_id: Optional[str] = None
workspace_hook: Optional[Any] = None