"""Beam Search PromptBuilder component — the standard multi-section template (SkyDiscover default builder)."""
from __future__ import annotations

from ...components.prompt import DefaultPromptBuilder


class BeamSearchPromptBuilder(DefaultPromptBuilder):
    """SkyDiscover's default context builder: task -> metrics -> feedback -> inspirations -> current
    program. Beam Search adds nothing of its own, so it renders the canonical multi-section message."""

    # BeamSearchDatabase.sample() returns a plain (parent, [programs]) tuple, which the SkyDiscover
    # controller wraps as {"": [...]} → DefaultContextBuilder._format_other_context_programs takes the
    # DICT branch, whose preamble differs from the list branch ("...may inspire new ideas:").
    inspiration_preamble = ("These programs represent diverse approaches and creative solutions "
                            "that may be relevant to the current task:\n")
