"""Shared LLM client protocol.""" from __future__ import annotations from typing import Any, Protocol from pam_deploy_graph.models import ExecutionStrategy, LlmDeployPlan, LlmIntentResult, LlmParamResult class LlmClient(Protocol): def understand_request(self, text: str) -> LlmIntentResult: ... def extract_params(self, text: str, base_params: dict[str, Any] | None = None) -> LlmParamResult: ... def generate_plan( self, *, params: dict[str, Any], intent: str, strategy: ExecutionStrategy, ) -> LlmDeployPlan: ...