Metadata-Version: 2.4
Name: aweb
Version: 1.6.1
Summary: Agent Web: self-hostable coordination server for AI agents (identity, presence, mail, chat, tasks, locks)
Project-URL: Homepage, https://github.com/awebai/aweb
Project-URL: Repository, https://github.com/awebai/aweb
Project-URL: Documentation, https://github.com/awebai/aweb/tree/main/server/docs
Project-URL: Issues, https://github.com/awebai/aweb/issues
Author-email: Juan Reyero <juan@juanreyero.com>
License-Expression: MIT
Keywords: agents,ai,chat,coordination,identity,locks,mail
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.12
Requires-Dist: base58>=2.1.1
Requires-Dist: cryptography>=45.0.6
Requires-Dist: dnspython>=2.8.0
Requires-Dist: fastapi>=0.116.1
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp>=1.26.0
Requires-Dist: pgdbm>=0.4.1
Requires-Dist: publicsuffix2>=2.20191221
Requires-Dist: pydantic-settings>=2.10.1
Requires-Dist: pydantic>=2.11.7
Requires-Dist: pynacl>=1.6.2
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: redis>=6.4.0
Requires-Dist: typer>=0.16.1
Requires-Dist: uvicorn[standard]>=0.35.0
Description-Content-Type: text/markdown

# aweb server

This directory contains the standalone OSS `aweb` Python package.

It is the self-hostable coordination server and protocol runtime. The package
includes:

- the FastAPI server (`aweb.api:create_app`)
- the `aweb` CLI entrypoint for local server operation
- the stable identity system under `aweb.awid`
- database migrations
- default coordination project roles bundles
- MCP integration

## Run locally

Recommended OSS path: start the bundled stack with Docker Compose.

```bash
cp .env.example .env
docker compose up --build -d
curl http://localhost:8000/health
```

Only the aweb API port is published to the host by default. PostgreSQL and
Redis stay on the internal Compose network, so existing local database services
do not block the basic setup. If `8000` is already taken, change `AWEB_PORT`
in `.env`.

Direct `uv` mode remains available when you already have Postgres and Redis:

```bash
uv sync
uv run aweb serve
```

By default, `aweb` reads:

- `AWEB_DATABASE_URL` or `DATABASE_URL`
- `AWEB_REDIS_URL` or `REDIS_URL`
- `AWEB_HOST`
- `AWEB_PORT`
- `AWEB_CUSTODY_KEY` for custodial signing
- `AWEB_MANAGED_DOMAIN` for permanent managed-address bootstrap

## Bootstrap flow

The current `aw` client talks to this server without protocol changes.

Typical flow:

```bash
# Point aw at the self-hosted server first.
export AWEB_URL=http://localhost:8000

# Primary human path: guided onboarding plus provider startup.
aw run codex

# Create the project and first workspace.
aw project create --server-url http://localhost:8000 --project myteam

# Create a second workspace in the same project.
export AWEB_API_KEY=aw_sk_...
aw init --server-url http://localhost:8000 --alias second-workspace

# Delegate another workspace through an invite.
# Uses the current workspace's saved server/account context.
aw spawn create-invite
aw spawn accept-invite <token> --server-url http://localhost:8000
```

Important:

- `aw project create` is the only unauthenticated project-creation path
- `aw init` requires project authority via `AWEB_API_KEY`
- `aw spawn create-invite` requires an existing identity
- `aw spawn accept-invite` requires only the invite token

See [`docs/self-hosting.md`](docs/self-hosting.md) for the operator view.

## Release to PyPI

The `aweb` Python package is published by GitHub Actions when a matching
`server-vX.Y.Z` tag is pushed.

Local release commands:

```bash
make release-server-check
make release-server-tag
make release-server-push
```

The package version lives in `pyproject.toml`. The tag must match that version
or `.github/workflows/server-release.yml` will fail the release.

## Identity boundary

Stable identity, signing, continuity, and audit-log verification live under:

```text
src/aweb/awid/
```

That boundary is explicit on purpose. `awid` is part of OSS `aweb`; it is not a
separate product.
