Metadata-Version: 2.4
Name: booking-agent-cli
Version: 0.11.0
Summary: The Booking Agent CLI: a stateful USP booking flow with hard gates, plus its USP protocol library.
Project-URL: Homepage, https://github.com/wix/booking-agent
Project-URL: Documentation, https://github.com/wix/booking-agent/blob/master/booking-agent/README.md
Project-URL: Source, https://github.com/wix/booking-agent/tree/master/booking-agent/packages/cli
Project-URL: Issues, https://github.com/wix/booking-agent/issues
Project-URL: Changelog, https://github.com/wix/booking-agent/releases
Author: Wix.com
License-Expression: Apache-2.0
Keywords: agent,booking,cli,scheduling,ucp,usp
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business :: Scheduling
Requires-Python: >=3.10
Requires-Dist: click>=8.2
Requires-Dist: cryptography>=42.0
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic>=2.6
Requires-Dist: pypi-attestations>=0.0.30
Requires-Dist: python-dotenv>=1.0
Requires-Dist: rich>=13.7
Requires-Dist: starlette>=0.37
Requires-Dist: timezonefinder<7,>=6.5
Requires-Dist: typer>=0.16
Requires-Dist: uvicorn>=0.29
Provides-Extra: dev
Requires-Dist: jsonschema>=4; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# booking-agent-cli

The `booking-agent` command books time-based services (haircuts, lessons,
repairs, classes, appointments) through the Universal Scheduling Protocol (USP),
paying from a Link wallet. It owns the booking state machine and refuses to
proceed when a human approval gate is skipped, so an AI agent can drive it safely.

The wheel ships two import packages:

- `booking_agent_cli` - the `booking-agent` command
- `booking_agent` - the USP/UCP protocol library (models, discovery, REST client)

## Install

Requires Python 3.10 or newer.

```bash
uv tool install booking-agent-cli
# or
pipx install booking-agent-cli

booking-agent --help
```

Every release carries a PEP 740 attestation from the `wix/booking-agent` release
workflow. Check a downloaded wheel with
`uvx pypi-attestations verify pypi --repository https://github.com/wix/booking-agent <wheel>`.
`booking-agent update` installs only verified wheels, and the CLI checks its own installed
files against the attested release before it books or pays.

On a verified agent harness (Grok Bot, Base44 Superagent), follow that harness's install
guide instead: it pins the CLI and skill pair that passed the harness's own booking replay.
Guides: https://github.com/wix/booking-agent/blob/master/booking-agent/docs/harnesses/README.md

Agents use the CLI through the Booking Agent skill, installed with
`npx skills add wix/booking-agent --skill booking-agent`, or taken from the canonical raw URL:
https://raw.githubusercontent.com/wix/booking-agent/master/booking-agent/skills/booking-agent/SKILL.md

Each release also publishes that skill at an immutable `skill-v<version>` tag and signs it with
the release workflow, so a harness can pin and verify the exact text it follows:

```bash
curl -fsSLO https://raw.githubusercontent.com/wix/booking-agent/skill-v0.58.0/booking-agent/skills/booking-agent/SKILL.md
gh attestation verify SKILL.md --repo wix/booking-agent \
  --signer-workflow wix/booking-agent/.github/workflows/release.yml
```

`flow init --skill-path <path>` then checks the file the agent actually loaded against the signed
copy inside the wheel; a modified file claiming the same version fails `skill_unverified` and
blocks booking and payment until `booking-agent skill print --output <path>` restores it. A copy
written to evade the check can omit `--skill-path`, so the first read is what the attestation and
the harness cover.

The skill also needs `link-cli` for buyer identity and payment approval; see the
skill for details.

## Source and license

Source: https://github.com/wix/booking-agent (directory `booking-agent/`).
Licensed under the Apache License 2.0; see
https://github.com/wix/booking-agent/blob/master/LICENSE.
