diff --git a/src/openai_compatible.py b/src/openai_compatible.py index d86246dd..34ee725f 100644 --- a/src/openai_compatible.py +++ b/src/openai_compatible.py @@ -113,7 +113,7 @@ def send_openai_compatible( return Result(data=empty_resp, errors=[_classify_openai_compatible_error(exc, source="openai_compatible")]) -def _send_blocking(client: Any, kwargs: dict[str, Any]) -> NormalizedResponse: +def _send_blocking(client: Any, kwargs: Metadata) -> NormalizedResponse: resp = client.chat.completions.create(**kwargs) msg = resp.choices[0].message tool_calls_raw = msg.tool_calls or [] @@ -130,7 +130,7 @@ def _send_blocking(client: Any, kwargs: dict[str, Any]) -> NormalizedResponse: ) -def _send_streaming(client: Any, kwargs: dict[str, Any], callback: Optional[Callable[[str], None]]) -> NormalizedResponse: +def _send_streaming(client: Any, kwargs: Metadata, callback: Optional[Callable[[str], None]]) -> NormalizedResponse: kwargs_stream = dict(kwargs) kwargs_stream["stream"] = True kwargs_stream["stream_options"] = {"include_usage": True} diff --git a/src/orchestrator_pm.py b/src/orchestrator_pm.py index 339342d7..80dbbbf9 100644 --- a/src/orchestrator_pm.py +++ b/src/orchestrator_pm.py @@ -8,7 +8,9 @@ from src import ai_client from src import mma_prompts from src import paths from src import summarize +from src.models import FileItem from src.result_types import Result, ErrorInfo, ErrorKind +from src.type_aliases import Metadata def get_track_history_summary() -> Result[str]: @@ -55,7 +57,7 @@ def get_track_history_summary() -> Result[str]: return Result(data="No previous tracks found.", errors=scan_errors) return Result(data="\n".join(summary_parts), errors=scan_errors) -def generate_tracks(user_request: str, project_config: dict[str, Any], file_items: list[dict[str, Any]], history_summary: Optional[str] = None) -> list[dict[str, Any]]: +def generate_tracks(user_request: str, project_config: Metadata, file_items: list[FileItem], history_summary: str = "") -> list[Metadata]: """ Tier 1 (Strategic PM) call. Analyzes the project state and user request to generate a list of Tracks.