Metadata-Version: 2.5
Name: willow-bot
Version: 1.2.2
Summary: Willow GitHub App webhook + orchestrator-feeding steward (propose-only deposits)
Project-URL: Homepage, https://github.com/willow-memory/willow-bot
Project-URL: Repository, https://github.com/willow-memory/willow-bot
Project-URL: Issues, https://github.com/willow-memory/willow-bot/issues
Author: Sean Campbell
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: github-app,local-first,steward,webhook,willow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: cryptography>=44.0.0
Requires-Dist: fastapi==0.135.1
Requires-Dist: pyjwt==2.10.1
Requires-Dist: requests==2.32.3
Requires-Dist: uvicorn==0.42.0
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff==0.16.7; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp<3,>=1.0; extra == 'mcp'
Description-Content-Type: text/markdown

# willow-bot

GitHub App webhook receiver + orchestrator-feeding **steward** for the Willow
fleet. Propose-only: the App may comment and deposit draft CI outcomes; it
cannot commit.

Install: `pip install willow-bot`  
Docs: [INSTALL.md](INSTALL.md) · [docs/MOVE-STAY-BORROW.md](docs/MOVE-STAY-BORROW.md)

```bash
willow-bot              # webhook (uvicorn)
willow-bot-steward tick    # PR watch one-shot
willow-bot-steward status  # read-only surface: version, tick, inbox depth, cursors
willow-bot-steward status --brief  # one line per section
willow-bot-steward app-grant  # does the App have the permissions and events the code needs?
willow-bot-steward contributions --days 30  # who contributed: outsiders, first-timers, per repo
willow-bot-steward contributions --backfill  # fill the ledger from GitHub history (core_repos, 90 days)
willow-bot-contribute [--user LOGIN]   # anyone: your projects, what waits on you, openings (your GITHUB_TOKEN or gh login, never the App's)
willow-bot-steward heartbeat  # curated willow-mcp tools when WILLOW_BOT_MCP=1
willow-bot-deterministic serve   # host loopback runner (Unix socket for Kart)
willow-bot-deterministic client --fixtures /path/to/S-growth-*.json dir
```

Home: [willow-memory/willow-bot](https://github.com/willow-memory/willow-bot)  
Anyone can run it as their own GitHub App. Who you are, which orgs and repos it
looks after, and where the voice speaks live in your install's operator profile
(`$WILLOW_HOME/willow-bot/operator.json`; see `deploy/operator.example.json`), never
in code. With no profile it discovers what it can and otherwise does nothing.
Match actors by `user.type == Bot`, never login.
