Metadata-Version: 2.4
Name: anygarden
Version: 0.7.1
Summary: Lightweight multi-agent chat server
Author: Changyong Um
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: aiosqlite>=0.19
Requires-Dist: alembic>=1.13
Requires-Dist: argon2-cffi>=23.1
Requires-Dist: click>=8.1
Requires-Dist: croniter>=2.0
Requires-Dist: cryptography>=42
Requires-Dist: fastapi<0.120,>=0.110
Requires-Dist: prometheus-client>=0.20
Requires-Dist: pydantic-settings>=2.2
Requires-Dist: pydantic<3.0,>=2.6
Requires-Dist: python-jose[cryptography]>=3.3
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: pyyaml>=6.0
Requires-Dist: sqlalchemy[asyncio]<2.1,>=2.0
Requires-Dist: structlog>=24.1
Requires-Dist: tomli-w>=1.0
Requires-Dist: uvicorn[standard]>=0.29
Provides-Extra: dev
Requires-Dist: anygarden-machine; extra == 'dev'
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: mypy>=1.9; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Description-Content-Type: text/markdown

# doorae-server

Lightweight multi-agent chat server built with FastAPI, SQLite, and WebSocket.

## Quick Start

```bash
pip install -e ".[dev]"
doorae-server init
doorae-server
```

## Development

```bash
pip install -e ".[dev]"
pytest
```

## Environment

All `DOORAE_*` variables are optional — the cluster auto-persists
runtime secrets in `~/.doorae/` on first boot. See `.env.example`
at the repo root for the full list. Highlights:

- `DOORAE_JWT_SECRET` — session token signing key. Auto-generated
  at `~/.doorae/jwt_secret` if unset.
- `DOORAE_MCP_SECRETS_KEY` — Fernet key for encrypting MCP
  credentials (GitHub PATs, Linear keys, etc.) at rest in the DB.
  Auto-generated at `~/.doorae/mcp_secrets_key` if unset so
  attached MCP instances survive restarts. Generate your own with:
  ```bash
  python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  ```
  **Losing this key invalidates all stored MCP credentials** — they
  must be re-entered via the admin UI.
- `DOORAE_DEV=1` enables dev-mode conveniences (ephemeral MCP key
  fallback when persistence fails). Production must leave this
  unset so misconfigurations fail loudly at boot.
