"""Web UI for Opus Orchestrator. A simple, novice-friendly web interface for generating manuscripts. """ import os import asyncio from pathlib import Path from typing import Optional from fastapi import FastAPI, Request, UploadFile, File, Form, HTTPException from fastapi.responses import HTMLResponse, JSONResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from dotenv import load_dotenv # HTML Template for the UI WEB_UI_TEMPLATE = """ Opus Orchestrator - AI Book Generator

📚 Opus Orchestrator

AI-Powered Book Generation

🎯
7 Story Frameworks
🤖
AI Critique
☁️
Cloud Storage

Generate Your Manuscript

📂 Drag & drop files here
or click to browse

Initializing...

Your Manuscript


            
            
        
""" def create_web_ui(app: FastAPI) -> None: """Create and mount the web UI.""" from fastapi.responses import HTMLResponse @app.get("/", response_class=HTMLResponse) async def index(): """Serve the main UI page.""" return WEB_UI_TEMPLATE @app.get("/ui", response_class=HTMLResponse) async def ui(): """Alias for /""" return WEB_UI_TEMPLATE