Metadata-Version: 2.5
Name: caurad
Version: 0.10.4
Summary: uvx/pip wrapper for the Caura broker: downloads the platform binary from the public release mirror, SHA-256-verifies it, and execs it.
Project-URL: Homepage, https://caura.ai
License-Expression: Apache-2.0
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# `caurad` — uvx / pip wrapper

Run the Caura broker from the Python ecosystem:

```bash
uvx caurad --help                        # package-name shorthand, kept working
uvx --from caurad caura --help           # run the canonical command directly
pipx install caurad && caura --help      # or install it
```

## Interaction with the native installer

The PyPI wrapper and the native installer both provide a `caura` executable. If
both are installed, your shell runs whichever appears first on `PATH`, and the
two installations can be different versions. Use `command -v caura` to see
which executable wins, `type -a caura` to list every match, and `caura version`
to identify the selected version.

## How it works

This package is a thin dispatcher — the broker itself is a single Go binary.

On first entry-point invocation,
`wrappers/uvx/caurad/cli.py` detects your
platform, downloads the matching signed archive from the public release mirror,
verifies its SHA-256 against the published `checksums.txt`, caches the binary
under `~/.cache/caura/<version>/`, and `os.execv`s it with your arguments. The
archive name is discovered from its platform suffix in `checksums.txt`, so
release prefixes are not part of the wrapper contract. Both the `caura` and
`caurad` package entries invoke the native payload as `caura`.

The install itself does NOT prefetch the binary — the download happens on first
invocation. That keeps the package tiny and works under pipx / sandboxed
installs where postinstall hooks don't fire.

The binary is downloaded from the public release mirror
(`https://caura.ai/caura/<tag>/`) — the same source the
`wrappers/curl/install.sh` installer uses, not this repo's GitHub Releases
(which are private). SHA-256 verification is the integrity gate.

## Environment overrides

- `CAURA_BINARY_BASE` — base URL of a release mirror (default
  `https://caura.ai/caura`). Point it at an on-prem gateway's
  `<origin>/caura` to install from a private deployment.
- `CAURA_VERSION` — pin a specific release tag instead of the installed
  package's version.

The published package version is set from the release tag by the PyPI-publish
workflow; the `0.0.0` in `pyproject.toml` is a placeholder for local checkouts.

Licensed under Apache-2.0, matching the `LICENSE` at the repository root.
