"""Protocol defining what steps need from a SkillManager implementation.""" from __future__ import annotations from typing import Any, Protocol, runtime_checkable from ..core.outputs import ReflectorOutput, SkillManagerOutput @runtime_checkable class SkillManagerLike(Protocol): """Structural interface for SkillManager-like objects. Any object with a matching ``update_skills`` method satisfies this — ``ace.roles.SkillManager`` does. """ def update_skills( self, *, reflections: tuple[ReflectorOutput, ...], skillbook: Any, question_context: str, progress: str, **kwargs: Any, ) -> SkillManagerOutput: ...