Metadata-Version: 2.4
Name: julee
Version: 0.1.1
Summary: Julee - Clean architecture for accountable and transparent digital supply chains
Author-email: Pyx Industries <chris@pyx.io>
License: GPL-3.0
Project-URL: Homepage, https://github.com/pyx-industries/julee
Project-URL: Repository, https://github.com/pyx-industries/julee
Project-URL: Documentation, https://github.com/pyx-industries/julee#readme
Project-URL: Issues, https://github.com/pyx-industries/julee/issues
Keywords: temporal,workflow,document-processing,ai,supply-chain
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.100.0
Requires-Dist: uvicorn>=0.20.0
Requires-Dist: python-multipart
Requires-Dist: fastapi-pagination>=0.12.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: temporalio[pydantic]>=1.3.0
Requires-Dist: minio>=7.0.0
Requires-Dist: anthropic>=0.66.0
Requires-Dist: click>=0.8.0
Requires-Dist: Jinja2>=3.0.0
Requires-Dist: PyYAML>=6.0.0
Requires-Dist: python-magic>=0.4.27
Requires-Dist: multihash>=0.1.1
Requires-Dist: six>=1.16.0
Requires-Dist: jsonschema>=4.0.0
Requires-Dist: jsonpointer>=3.0.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=1.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
Requires-Dist: factory-boy>=3.2.0; extra == "dev"
Requires-Dist: mypy>=1.7.0; extra == "dev"
Requires-Dist: types-PyYAML; extra == "dev"
Requires-Dist: types-jsonschema; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: ruff>=0.5.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Requires-Dist: bandit; extra == "dev"
Requires-Dist: asyncpg; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
Requires-Dist: furo>=2023.9.10; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid>=0.9.2; extra == "docs"
Requires-Dist: sphinx-autoapi>=3.0.0; extra == "docs"
Dynamic: license-file

# Julee Example - Docker Setup Guide

This guide explains how to set up and run the Julee Example application using Docker Compose.

## Prerequisites

- Docker and Docker Compose installed
- API keys for external services

## Quick Start

1. **Set up environment variables**:
   ```bash
   cp .env.example .env
   ```
   Edit `.env` and add your API keys:
   ```bash
   ANTHROPIC_API_KEY=your_anthropic_api_key_here
   GEMINI_API_KEY=your_gemini_api_key_here
   ```

2. **Run the application**:
   ```bash
   docker compose up --build -d
   ```

3. **Access the services**:
   - **Web UI**: http://localhost:3000
   - **API**: http://localhost:8000
   - **API Docs**: http://localhost:8000/docs
   - **Temporal UI**: http://localhost:8001 (linked in the UI)
   - **MinIO Console**: http://localhost:9001

### Building and Running

```bash
# Start in background
docker compose up -d --build

# View logs
docker compose logs -f

# Stop all services
docker compose down
```

## Demo Features

The application includes pre-loaded demo data:

- **Knowledge Services**: Anthropic Claude configurations
- **Queries**: Meeting extraction queries (info, agenda, actions)
- **Assembly Specs**: Meeting minutes specification
- **Documents**: Sample meeting transcripts

### Using the Demo

1. Navigate to **Specifications** in the UI
2. Click **"Run Assembly"** on the Meeting Minutes specification
3. Select a document from the dropdown
4. Click **"Start Assembly"** to trigger the workflow
5. Monitor progress in the Temporal UI (Click on the Workflows option)

## Current Limitations

### Cannot view assembled document output in UI

The current interface doesn't provide a way to view the final assembled document that results from running the workflow. To view the assembled content, you need to use the API directly with the document ID that's returned when the workflow completes successfully.

**API commands to view assembled document:**

```bash
# curl command
curl -X GET "http://localhost:8000/documents/doc-68f2047f-6796-4830-91ad-104da83f6f24/content"

# HTTPie command
http GET http://localhost:8000/documents/doc-68f2047f-6796-4830-91ad-104da83f6f24/content

# With JSON formatting
curl -X GET "http://localhost:8000/documents/doc-68f2047f-6796-4830-91ad-104da83f6f24/content" \
  -H "Accept: application/json" | jq .
```

Replace the document ID with the one returned from your workflow execution.

## Troubleshooting

### Common Issues

**Services fail to start:**
- Check Docker daemon is running
- Verify port availability (3000, 8000, 8001, 9000, 9001)
- Ensure API keys are set correctly

**API key errors:**
- Verify keys are valid and active
- Check .env file is in the correct location
- Restart services after updating environment variables

**Build failures:**
- Clear Docker cache: `docker system prune -f`
- Rebuild without cache: `docker compose build --no-cache`

### Database and Storage

**Reset data:**
```bash
# Stop services and remove volumes
docker compose down -v

# Restart with fresh data
docker compose up --build
```

**Access MinIO Console:**
- URL: http://localhost:9001
- Username: `minioadmin`
- Password: `minioadmin`

## Architecture

```
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   React UI      │────│   FastAPI       │────│   Temporal      │
│   (vite:3000)   │    │   (uvicorn:8000)│    │   Worker        │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                                │                        │
                                │                        │
                       ┌─────────────────┐    ┌─────────────────┐
                       │     MinIO       │    │   PostgreSQL    │
                       │   (storage)     │    │   (temporal)    │
                       └─────────────────┘    └─────────────────┘
```
