Metadata-Version: 2.4
Name: fagoon-upgrade
Version: 2.0.8
Summary: Fagoon AI Agents Workflow
Requires-Python: >=3.11
Requires-Dist: aiohttp>=3.11.13
Requires-Dist: aiosmtplib>=4.0.1
Requires-Dist: alembic>=1.14.1
Requires-Dist: anthropic>=0.51.0
Requires-Dist: argon2-cffi>=23.1.0
Requires-Dist: asyncpg>=0.30.0
Requires-Dist: bcrypt>=4.3.0
Requires-Dist: bs4>=0.0.2
Requires-Dist: bson>=0.5.10
Requires-Dist: celery[eventlet,redis]>=5.5.3
Requires-Dist: crawl4ai>=0.7.2
Requires-Dist: croniter>=6.0.0
Requires-Dist: cryptography>=48.0.0
Requires-Dist: ddgs>=9.14.4
Requires-Dist: elevenlabs>=1.53.0
Requires-Dist: eventlet>=0.40.0
Requires-Dist: fakeredis>=2.0.0
Requires-Dist: fal-client>=0.7.0
Requires-Dist: fastapi>=0.115.11
Requires-Dist: ffmpeg-python>=0.2.0
Requires-Dist: google-api-python-client>=2.171.0
Requires-Dist: google-auth-httplib2>=0.2.0
Requires-Dist: google-auth-oauthlib>=1.2.2
Requires-Dist: google-cloud-storage>=3.1.0
Requires-Dist: google-genai>=1.11.0
Requires-Dist: google-genai>=1.19.0
Requires-Dist: google-generativeai>=0.8.5
Requires-Dist: google-search-results>=2.4.2
Requires-Dist: gpt-researcher>=0.15.0
Requires-Dist: groq>=0.18.0
Requires-Dist: gunicorn>=23.0.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: huggingface-hub>=0.29.2
Requires-Dist: kokoro-onnx>=0.4.5
Requires-Dist: kombu>=5.5.4
Requires-Dist: langchain-community>=0.3.0
Requires-Dist: langchain-core>=0.3.0
Requires-Dist: langchain>=0.3.0
Requires-Dist: langgraph-checkpoint>=2.0.0
Requires-Dist: langgraph>=0.2.0
Requires-Dist: llvmlite>=0.44.0
Requires-Dist: loguru>=0.7.3
Requires-Dist: nanoid>=2.0.0
Requires-Dist: numba>=0.61.2
Requires-Dist: openai>=1.65.2
Requires-Dist: passlib>=1.7.4
Requires-Dist: pdfplumber>=0.11.7
Requires-Dist: pgvector>=0.3.6
Requires-Dist: pillow>=11.1.0
Requires-Dist: pydantic-core>=2.33.2
Requires-Dist: pydantic-settings>=2.8.1
Requires-Dist: pydantic[email]>=2.11.5
Requires-Dist: pyjwt>=2.10.1
Requires-Dist: pymupdf>=1.26.1
Requires-Dist: pypdf>=5.4.0
Requires-Dist: python-jose>=3.4.0
Requires-Dist: python-jose[cryptography]>=3.5.0
Requires-Dist: python-multipart>=0.0.20
Requires-Dist: rank-bm25>=0.2.2
Requires-Dist: rembg>=2.0.66
Requires-Dist: sortedcontainers>=2.4.0
Requires-Dist: soundfile>=0.13.1
Requires-Dist: sqlalchemy>=2.0.38
Requires-Dist: sqlmodel>=0.0.38
Requires-Dist: starlette>=0.46.0
Requires-Dist: typer>=0.12.0
Requires-Dist: uvicorn>=0.34.0
Requires-Dist: vertexai>=1.43.0
Provides-Extra: dev
Requires-Dist: import-linter; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-asyncio; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: full
Requires-Dist: celery[redis]; extra == 'full'
Requires-Dist: eventlet; extra == 'full'
Requires-Dist: redis; extra == 'full'
Description-Content-Type: text/markdown

# Fagoon Upgrade

**Self-hosted AI platform with workflow automation, agents, chat, and API generation.**

Build AI workflows visually, publish them as REST APIs, deploy agents, and chat with LLMs — all running on your own machine.

---

## Quick Start

### Prerequisites

- **Docker Desktop** — [Download here](https://www.docker.com/products/docker-desktop/)
- **Python 3.11+** — [Download here](https://www.python.org/downloads/)
- **pipx** (recommended) — Install with: `pip install pipx`

### Install & Run

```bash
# Install the CLI
pipx install fagoon-upgrade

# Start the platform
fagoon up
```

On first run, you'll see a setup wizard:

```
  Welcome to Fagoon!
  Let's set up your AI platform.

  How would you like to power your AI?
  1) I have an API key (OpenAI, Gemini, Groq, etc.)
  2) Use local Ollama model (free, runs on your machine)
  3) Skip for now (configure later in the UI)

  Choose [1/2/3]:
```

### Access the Platform

| Service  | URL                          |
|----------|------------------------------|
| Frontend | http://localhost:3000        |
| Backend  | http://localhost:8000        |

---

## Features

- **Visual Workflow Builder** - Drag-and-drop canvas with 20+ node types
- **Workflow-as-API** - Publish any workflow as a REST endpoint with API key auth
- **AI Agents** - Conversational agents with memory and tool use
- **Chat Interface** - Chat with any LLM provider through a unified UI
- **Multi-Provider** - OpenAI, Gemini, Groq, Anthropic, Ollama
- **Self-Hosted** - Your data stays on your machine

---

## CLI Commands

```bash
fagoon up                    # Start the platform (lite mode)
fagoon up --full             # Start with Redis + Celery (multi-worker)
fagoon up --ollama           # Start with local Ollama LLM
fagoon down                  # Stop the platform
fagoon logs -f               # Follow live logs
fagoon status                # Check if running
fagoon update                # Pull latest version and restart
fagoon config set KEY=VALUE  # Set configuration
fagoon config show           # Show current config
fagoon db set-url URL        # Switch database
```

---

## Workflow-as-API

Publish any workflow as a callable REST API:

```bash
curl -X POST http://localhost:8000/api/v1/workflow-api/your-slug/execute \
  -H "X-API-Key: wfapi_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"input": "Hello from my app"}'
```

Response:

```json
{
  "success": true,
  "execution_id": "uuid",
  "status": "COMPLETED",
  "output": {
    "output_text": "AI generated response",
    "model": "gemini-2.5-flash"
  },
  "usage": { "duration_ms": 2500 }
}
```

---

## Deployment Modes

### Lite Mode (Default)

Single-user, no Redis/Celery. Perfect for personal use.

```bash
fagoon up
```

### Full Mode

Multi-worker with Redis + Celery. For production.

```bash
fagoon up --full
```

### With Ollama (Local LLM)

Free, offline AI using local models.

```bash
fagoon up --ollama
```

---

## Docker Compose (Direct)

```yaml
services:
  app:
    image: ghcr.io/fagoon-ai/upgrade:2.0.4
    ports:
      - "8000:8000"
      - "3000:3000"
    environment:
      LITE_MODE: "true"
      DATABASE_URL: postgresql+asyncpg://fagoon:fagoon@db:5432/fagoon
    depends_on:
      db: { condition: service_healthy }

  db:
    image: pgvector/pgvector:pg16
    environment:
      POSTGRES_USER: fagoon
      POSTGRES_PASSWORD: fagoon
      POSTGRES_DB: fagoon
    volumes:
      - fagoon_db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U fagoon"]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  fagoon_db:
```

---

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| LITE_MODE | true | true = single-process, false = Redis+Celery |
| DATABASE_URL | auto | PostgreSQL connection string |
| JWT_SECRET | auto | Secret for JWT tokens |
| GEMINI_API_KEY | — | Google Gemini API key |
| OPENAI_API_KEY | — | OpenAI API key |
| GROQ_API_KEY | — | Groq API key |
| OLLAMA_BASE_URL | — | Ollama server URL |
| WEB_CONCURRENCY | 1 | Number of workers |

---

## Troubleshooting

**"Cannot connect to Docker daemon"** — Start Docker Desktop and wait for it to load.

**"Port 3000/8000 already in use"** — Stop other services on those ports.

**Platform won't start:**

```bash
fagoon logs -f     # Check logs
fagoon down        # Stop
fagoon up          # Restart
```

**Reset everything:**

```bash
fagoon down
docker volume rm fagoon_db fagoon_data
fagoon up
```

---

## Tech Stack

- **Backend:** Python, FastAPI, SQLAlchemy, PostgreSQL, pgvector
- **Frontend:** Next.js, React, TailwindCSS, React Flow
- **Workflow Engine:** Custom DAG executor with 20+ node types
- **Task Queue:** Celery + Redis (full mode)
- **Container:** Docker, Docker Compose

---

## Links

- **Website:** [fagoonai.com](https://fagoonai.com)
- **PyPI:** [pypi.org/project/fagoon-upgrade](https://pypi.org/project/fagoon-upgrade)
- **Docker:** `docker pull ghcr.io/fagoon-ai/upgrade:2.0.4`
- **GitHub:** [github.com/Fagoon-AI/upgrade](https://github.com/Fagoon-AI/upgrade)

## License

MIT
