Metadata-Version: 2.5
Name: caurad
Version: 0.10.1
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                        # run without installing
pipx install caurad && caurad --help     # or install the canonical entry point
```

## How it works

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

On first canonical or compatibility 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/memclawd/<version>/`, and `os.execv`s it with your arguments —
so `uvx caurad <args>` behaves like the native `memclaw <args>`. Subsequent <!-- legacy-name-floor: installed entry point -->
invocations reuse the cached binary.

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://memclaw.net/memclaw/<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

Both are also read under their historical `MEMCLAW_*` spellings<!-- legacy-name-ok: rule 3 dual-read alias -->, which keep
working indefinitely; the `CAURA_*` name wins when it holds a non-empty value.

- `CAURA_BINARY_BASE` — base URL of a release mirror (default
  `https://memclaw.net/memclaw`). Point it at an on-prem gateway's
  `<origin>/memclaw` 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.

## Compatibility name

Existing `pip install memclawd` and `uvx --from memclawd memclaw` commands keep working through <!-- legacy-name-ok: permanent PyPI compatibility alias -->
the separate compatibility package, which depends on `caurad`. New installation
instructions should use the canonical name above.

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