Skip to content

ccproxy.config.runtime

ccproxy.config.runtime

Runtime configuration settings - binary resolution configuration.

BinarySettings

Bases: BaseModel

Binary resolution and package manager fallback settings.

validate_preferred_package_manager classmethod

validate_preferred_package_manager(v)

Validate preferred package manager.

Source code in ccproxy/config/runtime.py
@field_validator("preferred_package_manager")
@classmethod
def validate_preferred_package_manager(cls, v: str | None) -> str | None:
    """Validate preferred package manager."""
    if v is not None:
        valid_managers = ["bunx", "pnpm", "npx"]
        if v not in valid_managers:
            raise ValueError(
                f"Invalid package manager: {v}. Must be one of {valid_managers}"
            )
    return v

validate_package_manager_priority classmethod

validate_package_manager_priority(v)

Validate package manager priority list.

Source code in ccproxy/config/runtime.py
@field_validator("package_manager_priority")
@classmethod
def validate_package_manager_priority(cls, v: list[str]) -> list[str]:
    """Validate package manager priority list."""
    valid_managers = {"bunx", "pnpm", "npx"}
    for manager in v:
        if manager not in valid_managers:
            raise ValueError(
                f"Invalid package manager in priority list: {manager}. "
                f"Must be one of {valid_managers}"
            )
    # Remove duplicates while preserving order
    seen = set()
    result = []
    for manager in v:
        if manager not in seen:
            seen.add(manager)
            result.append(manager)
    return result