forked from genewildish/Mainline
Add REPL effect detection and input handling to pipeline runner
- Detect REPL effect in pipeline and enable interactive mode - Enable raw terminal mode for REPL input capture - Add keyboard input loop for REPL commands (return, up/down arrows, backspace) - Process commands and handle pipeline mutations from REPL - Fix lint issues in graph and REPL modules (type annotations, imports)
This commit is contained in:
@@ -18,8 +18,8 @@ providing the same flexibility.
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any, Dict, List, Optional
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
from engine.pipeline.graph import Graph, NodeType
|
||||
from engine.pipeline.graph_adapter import graph_to_pipeline
|
||||
@@ -32,7 +32,7 @@ class EffectConfig:
|
||||
name: str
|
||||
intensity: float = 1.0
|
||||
enabled: bool = True
|
||||
params: Dict[str, Any] = field(default_factory=dict)
|
||||
params: dict[str, Any] = field(default_factory=dict)
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -70,9 +70,9 @@ class PipelineConfig:
|
||||
"""
|
||||
|
||||
source: str = "headlines"
|
||||
camera: Optional[CameraConfig] = None
|
||||
effects: List[EffectConfig] = field(default_factory=list)
|
||||
display: Optional[DisplayConfig] = None
|
||||
camera: CameraConfig | None = None
|
||||
effects: list[EffectConfig] = field(default_factory=list)
|
||||
display: DisplayConfig | None = None
|
||||
viewport_width: int = 80
|
||||
viewport_height: int = 24
|
||||
|
||||
@@ -208,7 +208,7 @@ def load_hybrid_config(toml_path: str | Path) -> PipelineConfig:
|
||||
return parse_hybrid_config(data)
|
||||
|
||||
|
||||
def parse_hybrid_config(data: Dict[str, Any]) -> PipelineConfig:
|
||||
def parse_hybrid_config(data: dict[str, Any]) -> PipelineConfig:
|
||||
"""Parse hybrid configuration from dictionary.
|
||||
|
||||
Expected format:
|
||||
|
||||
Reference in New Issue
Block a user