Source code for ralph.prompts.types

"""Prompt-facing typed capability helpers.

This module is a thin facade over ``template_variables`` so prompt materialization
and prompt tests share one capability/policy implementation instead of carrying a
second parallel type system.
"""

from __future__ import annotations

from dataclasses import dataclass

from ralph.mcp.protocol.capability_mapping import Capability, SessionDrain
from ralph.mcp.tools.names import (
    ARTIFACT_TOOLS,
    ENV_READ_TOOLS,
    GIT_DIFF_READ_TOOLS,
    GIT_STATUS_READ_TOOLS,
    PLANNING_DRAFT_TOOLS,
    PROCESS_EXEC_TOOLS,
    PROGRESS_TOOLS,
    TRACKED_WRITE_TOOLS,
    WORKSPACE_READ_TOOLS,
)
from ralph.prompts.template_variables import (
    CapabilitySet,
    PolicyFlag,
    PolicyFlagSet,
    bool_to_string,
    format_capability_summary,
    format_mcp_tools_list,
    visible_mcp_tool_names,
)
from ralph.prompts.template_variables import (
    capability_template_variables as _capability_template_variables,
)


[docs] @dataclass(frozen=True) class SessionCapabilities: """Bundle of capability/policy sets plus transport-specific prompt decoration.""" capabilities: CapabilitySet policy_flags: PolicyFlagSet tool_name_prefix: str = "" @classmethod def defaults_for_drain( cls, drain: SessionDrain, *, tool_name_prefix: str = "" ) -> SessionCapabilities: return cls( capabilities=CapabilitySet.defaults_for_drain(drain), policy_flags=PolicyFlagSet.defaults_for_drain(drain), tool_name_prefix=tool_name_prefix, )
[docs] def capability_template_variables( capabilities: CapabilitySet, policy_flags: PolicyFlagSet, *, tool_name_prefix: str = "", ) -> dict[str, str]: """Return template variable dict derived from the given capability and policy sets.""" return _capability_template_variables( capabilities, policy_flags, tool_name_prefix=tool_name_prefix, )
[docs] def bool_to_template_value(value: bool) -> str: """Convert a boolean to the canonical template string representation.""" return bool_to_string(value)
__all__ = [ "ARTIFACT_TOOLS", "ENV_READ_TOOLS", "GIT_DIFF_READ_TOOLS", "GIT_STATUS_READ_TOOLS", "PLANNING_DRAFT_TOOLS", "PROCESS_EXEC_TOOLS", "PROGRESS_TOOLS", "TRACKED_WRITE_TOOLS", "WORKSPACE_READ_TOOLS", "Capability", "CapabilitySet", "PolicyFlag", "PolicyFlagSet", "SessionCapabilities", "bool_to_template_value", "capability_template_variables", "format_capability_summary", "format_mcp_tools_list", "visible_mcp_tool_names", ]