Metadata-Version: 2.5
Name: agent-chat-fastapi-langgraph-assistant-ui
Version: 0.6.2
Summary: Portable FastAPI and LangGraph chat with a bundled static UI
Requires-Python: >=3.11
Requires-Dist: assistant-stream-ce==0.0.2
Requires-Dist: fastapi>=0.127.0
Requires-Dist: langchain-openai>=0.2.0
Requires-Dist: langchain>=1.2.0
Requires-Dist: langgraph>=1.0.5
Requires-Dist: pyyaml<7,>=6.0
Requires-Dist: typing-extensions>=4.8.0
Requires-Dist: uvicorn>=0.34.0
Provides-Extra: anthropic
Requires-Dist: langchain-anthropic<2,>=0.3.0; extra == 'anthropic'
Provides-Extra: google
Requires-Dist: langchain-google-genai<4,>=2.0.0; extra == 'google'
Provides-Extra: litellm
Requires-Dist: langchain-litellm<1,>=0.4.0; extra == 'litellm'
Provides-Extra: ollama
Requires-Dist: langchain-ollama<2,>=1.0.0; extra == 'ollama'
Provides-Extra: openai
Requires-Dist: langchain-openai>=0.2.0; extra == 'openai'
Provides-Extra: persistence
Requires-Dist: aiosqlite>=0.20.0; extra == 'persistence'
Requires-Dist: alembic>=1.14.0; extra == 'persistence'
Requires-Dist: langgraph-checkpoint-sqlite<4,>=3.1.1; extra == 'persistence'
Requires-Dist: sqlalchemy[asyncio]<3,>=2.0.36; extra == 'persistence'
Provides-Extra: test
Requires-Dist: aiosqlite>=0.20.0; extra == 'test'
Requires-Dist: alembic>=1.14.0; extra == 'test'
Requires-Dist: build>=1.2.2; extra == 'test'
Requires-Dist: httpx>=0.27.0; extra == 'test'
Requires-Dist: langgraph-checkpoint-sqlite<4,>=3.1.1; extra == 'test'
Requires-Dist: pytest>=8.0.0; extra == 'test'
Requires-Dist: sqlalchemy[asyncio]<3,>=2.0.36; extra == 'test'
Description-Content-Type: text/markdown

# Agent Chat Minimal

`agent-chat-fastapi-langgraph-assistant-ui` is the portable, canonical non-RAG
application in this repository. It bundles a FastAPI server, LangGraph agent
registry, and one static Assistant UI export. A built wheel serves the UI and
API from one Python process on port 8011.

For repository-level orientation, start at the [root README](../../README.md).
The detailed serving and extension guides are:

- [Serve the packaged app](../../docs/packaged-app.md)
- [Implement an agent](../../docs/implementing-agents.md)
- [Run the split Docker Compose stacks](../../docs/docker-compose.md)

## Install And Serve

Python 3.11+ is required. Node and pnpm are needed to build a wheel from a
checkout, but never to install or run the published package.

```bash
python -m pip install agent-chat-fastapi-langgraph-assistant-ui
export OPENAI_API_KEY=sk-...
minimal-chat-serve --port 8011
```

Open <http://localhost:8011/>. `GET /health`, `GET /agents`, and `GET /docs`
are available on the same server. The default agent is `weather`; use
`minimal-chat-serve --agent calculator` or set `DEFAULT_AGENT` to select a
different registered agent.

## Build From A Checkout

The build stages the unified frontend at `application/frontend/frontend` as
package data, clears `dist/`, and creates the wheel:

```bash
packages/agent-chat-minimal/scripts/build_wheel.sh
python -m pip install packages/agent-chat-minimal/dist/*.whl
minimal-chat-serve --port 8011
```

For an editable install, run `scripts/stage_ui.sh` first; generated `web/`
content is intentionally ignored by Git. Without it, a checkout runs API-only
unless `MINIMAL_WEB_DIR` points to a static export.

## Built-In Documentation

The distribution includes these Markdown guides and exposes them without
unpacking the wheel:

```python
from agent_chat_minimal import docs

docs.list()
docs.show("agents")
```

| Guide | Purpose |
| --- | --- |
| `quickstart` | Install, run, and make the first request |
| `agents` | Implement, embed, and publish agents |
| `providers` | Model specs and provider dependencies |
| `configuration` | Environment variables, CLI, persistence, and hooks |
| `threads` | Thread and transcript behavior |
| `transport` | Assistant streaming transport boundary |
| `persistence` | Durable repositories and checkpoints |
| `runtime-config` | Runtime UI configuration and capabilities |

Run the package tests and artifact smoke test from the repository root:

```bash
python -m pip install "packages/agent-chat-minimal[test]"
pytest packages/agent-chat-minimal
packages/agent-chat-minimal/scripts/smoke_test_wheel.sh
```
