- Merge opencode-serve into the web container via entrypoint script - Add /api/agent/* JSON endpoints for workouts, sets, checkins - Rewrite fitness-trainer.md to use API instead of markdown files - Pass recent workouts and check-ins as chat context to the coach - Show current training phase on dashboard - Clarify check-ins as morning check-ins (calories/steps = yesterday) - Add NixOS deployment section to README - Make all check-in fields explicitly optional in UI
31 lines
902 B
Python
31 lines
902 B
Python
from pathlib import Path
|
|
from fastapi import FastAPI
|
|
from fastapi.staticfiles import StaticFiles
|
|
from contextlib import asynccontextmanager
|
|
|
|
from app.config import DATA_DIR
|
|
from app.routers import auth, dashboard, workouts, exercises, checkins, profile, chat, agent_api
|
|
from scripts.schema import init_db
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
|
await init_db()
|
|
yield
|
|
|
|
|
|
app = FastAPI(title="Fitness Web", lifespan=lifespan)
|
|
|
|
static_dir = Path(__file__).parent / "static"
|
|
app.mount("/static", StaticFiles(directory=str(static_dir)), name="static")
|
|
|
|
app.include_router(auth.router)
|
|
app.include_router(dashboard.router)
|
|
app.include_router(workouts.router)
|
|
app.include_router(exercises.router)
|
|
app.include_router(checkins.router)
|
|
app.include_router(profile.router)
|
|
app.include_router(chat.router)
|
|
app.include_router(agent_api.router)
|