docs: update LLM.md with new package architecture after flow rename

This commit is contained in:
2026-03-25 02:36:11 -07:00
parent 2a0b681349
commit e203f7a235
+44 -27
View File
@@ -1,40 +1,57 @@
# LLM.md - Hanzo Flow
## Overview
**Hanzo Flow** is a powerful platform for building and deploying AI-powered agents and workflows. It provides developers with both a visual authoring experience and built-in API and MCP servers that t
**Hanzo Flow** is a powerful platform for building and deploying AI-powered agents and workflows. It provides developers with both a visual authoring experience and built-in API and MCP servers.
## Tech Stack
- **Language**: TypeScript/JavaScript
- **Backend**: Python (FastAPI, SQLModel, Alembic)
- **Frontend**: TypeScript/React (Next.js)
- **Package manager**: `uv` (Python), `pnpm` (Node.js)
## Build & Run
```bash
npm install && npm run build
npm test
uv sync --all-extras # Install Python deps
make dev # Start dev server
make test # Run tests
```
## Structure
```
flow/
AGENTS.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
DEVELOPMENT.md
Dockerfile
GEMINI.md
LICENSE
LLM.md
Makefile
Makefile.frontend
QWEN.md
README.md
RELEASE.md
SECURITY.md
codecov.yml
```
## Package Architecture (2026-03-25)
Three Python packages in a uv workspace:
| Package | PyPI name | Dir | Purpose |
|---------|-----------|-----|---------|
| `flow` | `langflow-base` | `src/backend/base/flow/` | Main backend package (454 files) |
| `flow` (root) | `hanzoflow` | `src/backend/flow/` | Root package (version only) |
| `lfx` | `lfx` | `src/lfx/src/lfx/` | Lightweight executor, standalone CLI |
### Internal package name: `flow`
- All Python imports use `from flow.xxx` / `import flow.xxx`
- Entry point: `hanzo-flow = "flow.launcher:main"` (root pyproject.toml)
- Entry point: `langflow-base = "flow.launcher:main"` (base pyproject.toml)
- Hatch build target: `packages = ["flow"]` (base), `packages = ["src/backend/flow"]` (root)
- The `langflow` compat shim package has been removed (was at `src/backend/base/langflow/`)
- The `hanzoflow` package dir has been renamed to `flow`
### PyPI package names (unchanged)
- `hanzoflow` -- root package name in pyproject.toml
- `langflow-base` -- base package name in pyproject.toml
- `lfx` -- executor package name
### Environment variables (backwards compat)
- `LANGFLOW_*` env vars are kept for backwards compatibility (e.g. `LANGFLOW_DATABASE_URL`, `LANGFLOW_LOG_LEVEL`)
- These are defined in `lfx/src/lfx/services/settings/base.py` via pydantic-settings
### Key classes
- `FlowApplication` -- Gunicorn application class (`flow.server`)
- `FlowUvicornWorker` -- Uvicorn worker class (`flow.server`)
## Key Files
- `README.md` -- Project documentation
- `package.json` -- Dependencies and scripts
- `pyproject.toml` -- Python project config
- `pyproject.toml` -- Root project config (PyPI name: hanzoflow)
- `src/backend/base/pyproject.toml` -- Base package config (PyPI name: langflow-base)
- `src/backend/base/flow/launcher.py` -- Main entry point (was langflow_launcher.py)
- `src/backend/base/flow/__main__.py` -- CLI commands (typer app)
- `src/backend/base/flow/main.py` -- FastAPI app factory
- `src/backend/base/flow/alembic/` -- Database migrations
- `Dockerfile` -- Production container
- `Makefile` -- Build automation
- `Dockerfile` -- Container build