2aca9e609a
Addresses PR #62 review comments on claude_bottle/backend/smolmachines/bottle_plan.py: - Lift the multi-value label printer (was a nested helper inside DockerBottlePlan.print) into a new module claude_bottle/backend/print_util.py:print_multi. Both backends use it for env / skills / git / egress lines. - Strip the three smolmachines-preflight lines the review flagged: the gvproxy subnet line, the smolfile path line, and the gvproxy-config path line. Internal detail — operators see the agent / env / skills / bottle / git / egress that already matter on the docker side, and nothing else. - Add `git → upstream` to the smolmachines git output to match what's useful at preflight time (the docker version shows upstream_host:port; this is similar shape). Leaves the slug=spec.identity-or-mint pattern alone pending a reply on PR comment #432 — the docker backend uses the same pattern to preserve identity across `resume`, so dropping it would silently break the resume path once smolmachines launch lands. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
29 lines
929 B
Python
29 lines
929 B
Python
"""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: <value>` 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}")
|