asterai component push - Push a component to the registry

USAGE:
    asterai component push [OPTIONS]

OPTIONS:
    --pkg <PATH>          Path to package.wasm (WIT interface) [default: package.wasm]
    --component <PATH>    Path to component.wasm (implementation) [default: component.wasm]
    -i, --interface-only  Push only the WIT interface (no implementation)
    -f, --force           Force overwrite existing version
    -p, --public          Push and create the component as public
    -h, --help            Show this help message

VERSION BEHAVIOR:
    - Version is read from the WIT package declaration
    - No version in WIT -> pushes to :latest (mutable)
    - Semver version (0.2.3) -> immutable for public components
    - Pre-release (0.2.3-alpha) -> mutable

    Private components:
      - Mutable tags (latest, pre-release) can be overwritten freely
      - Immutable tags require --force to overwrite

    Public components:
      - Immutable tags (release semver) can NEVER be overwritten
      - Mutable tags require --force to overwrite (prevents accidents)
      - If immutable version exists, CLI auto-bumps patch and asks you to rebuild

EXAMPLES:
    # Push component with interface (default paths)
    asterai component push

    # Push with custom paths
    asterai component push --pkg ./build/package.wasm --component ./build/component.wasm

    # Push interface-only (WIT package without implementation)
    asterai component push --interface-only --pkg ./my-interface.wasm

    # Force overwrite (private components only)
    asterai component push --force

NOTES:
    - package.wasm (WIT interface) is always required
    - component.wasm is optional; if not found, pushes as interface-only
    - Files are searched in current directory, then in ./build/
    - --public only works for new components; existing private components
      must change visibility via the web UI
