Metadata-Version: 2.4
Name: paybox-robot
Version: 0.1.2
Summary: Give a robot a wallet it cannot spend alone: tasks, budgets and payment requests the owner approves in PayBox.
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: pincer1
Requires-Dist: websockets>=12; extra == "pincer1"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"

# paybox-robot

The robot side of [paybox-robots](https://github.com/Lamport-Robotics/paybox-robots).
Python 3.10+, no dependencies.

```
pip install paybox-robot
paybox-robot setup --owner <code> --name <robot> [--budget 20] [--wallet <addr>]
paybox-robot run
paybox-robot pay <address> 0.01 --asset SOL --purpose "route fee" --wait
paybox-robot x402 https://api.example/forecast --max 0.25 --wait
paybox-robot review <address-or-url> --amount 5
```

`setup` writes `~/.paybox-robot/robot.json` (mode 600). The token in it is the robot's
identity; nothing else is stored.

ROS 2: `paybox-robot-ros2` subscribes `/battery_state`, publishes `/paybox/task` when the
owner dispatches one, takes `/paybox/pay` requests and reports on `/paybox/payment` and
`/paybox/say`.

Pincer1: `pip install "paybox-robot[pincer1]"` and `paybox-robot-pincer1` bridges the robot's
own websocket (battery from presence, speech, passphrase before any request).
