Skip to content

symfonic.agent.facade_terminal

facade_terminal

Resolve the one optional terminal-synthesis composition without eager imports.

terminal_synthesis_for

terminal_synthesis_for(capabilities: Sequence[Any]) -> Any | None

Return one explicit policy; absence preserves the native default.

Source code in src/symfonic/agent/facade_terminal.py
def terminal_synthesis_for(capabilities: Sequence[Any]) -> Any | None:
    """Return one explicit policy; absence preserves the native default."""
    module = sys.modules.get(_MODULE)
    if module is None:
        return None
    policies = tuple(
        value for value in capabilities
        if isinstance(value, module.TerminalSynthesisCapability)
    )
    if len(policies) > 1:
        raise ConfigurationError("only one TerminalSynthesisCapability may be composed")
    return policies[0] if policies else None