"""Plan type for the macOS Apple Container backend.""" from __future__ import annotations from dataclasses import dataclass, field from pathlib import Path from ...agent_provider import PromptMode from .. import BottlePlan @dataclass(frozen=True) class MacosContainerBottlePlan(BottlePlan): slug: str forwarded_env: dict[str, str] = field(repr=False) agent_proxy_url: str = "" agent_git_gate_url: str = "" agent_supervise_url: str = "" @property def container_name(self) -> str: return self.agent_provision.instance_name @property def image(self) -> str: return self.agent_provision.image @property def dockerfile_path(self) -> str: return self.agent_provision.dockerfile @property def prompt_file(self) -> Path: return self.agent_provision.prompt_file @property def agent_command(self) -> str: return self.agent_provision.command @property def agent_prompt_mode(self) -> PromptMode: return self.agent_provision.prompt_mode @property def agent_provider_template(self) -> str: return self.agent_provision.template @property def git_gate_insteadof_host(self) -> str: if self.agent_git_gate_url.startswith("http://"): return self.agent_git_gate_url.removeprefix("http://").rstrip("/") return super().git_gate_insteadof_host @property def git_gate_insteadof_scheme(self) -> str: if self.agent_git_gate_url.startswith("http://"): return "http" return super().git_gate_insteadof_scheme