"""Shared print helpers for BottlePlan.print implementations. Lifts the multi-value label printer out of DockerBottlePlan so the smolmachines backend (and any future backend) renders the same two-column scannable preflight without duplicating the indent math.""" from __future__ import annotations from typing import Sequence from ..log import info def print_multi(label: str, values: Sequence[str]) -> None: """Print `label: ` with continuation lines indented to align under the first value. Empty `values` renders `(none)`. Used by every backend's `BottlePlan.print` for env / skills / git / egress — one item per line keeps the preflight summary scannable when an agent has many of any of these.""" if not values: info(f"{label}: (none)") return info(f"{label}: {values[0]}") indent = " " * (len(label) + 2) for v in values[1:]: info(f"{indent}{v}")