Quorum is an agentic AI financial intelligence terminal that simulates Supreme Court deliberation (one agent per Justice) and maps predicted outcomes to market implications.
/quorum
/frontend Next.js 14 (App Router) + Tailwind + Framer Motion
/backend FastAPI + (later) LangGraph/LangChain
/shared Shared TypeScript types
cd frontend
npm run devThen open http://localhost:3000.
cd backend
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000Optional (Phase 2+ ML/vector deps):
pip install -r requirements-ml.txtHealth check:
curl http://localhost:8000/api/healthBase URL: http://localhost:8000/api (set NEXT_PUBLIC_API_URL in the frontend).
| Method | Path | Description |
|---|---|---|
| GET | /health |
Liveness |
| GET | /cases |
List seeded cases (summary) |
| GET | /cases/{docket_id} |
Full case JSON |
| POST | /cases/search |
Body: { "query": "..." } — CourtListener SCOTUS search |
| POST | /analysis/run |
Body: { "docket_id": "24-983" } or { "case_text": "..." } → { session_id } |
| GET | /analysis/stream/{session_id} |
Server-Sent Events: justice_complete, coalition_detected, verdict_ready, market_mapped, complete |
| GET | /analysis/{session_id} |
Poll full result when status is complete |
| GET | /justices |
Justice metadata (no corpus) |
| POST | /justices/{justice_id}/query |
Body: { "question": "..." } |
| POST | /portfolio/scan |
Body: { "tickers": ["PFE", "XOM"] } |
Copy backend/.env.example → backend/.env and frontend/.env.example → frontend/.env.local as needed.
Set NEXT_PUBLIC_API_URL to your FastAPI base (e.g. http://127.0.0.1:8000) so the Next.js app can call the API from the browser.
Routes:
/— Case feed (filters,CaseCardgrid, links to docket pages)/case/[docket]— Full analysis: RUN ANALYSIS, SSE deliberation, bench grid, verdict, market block/ask— Ask the Bench (multi-justice query)/portfolio— Ticker scan vs pending cases + portfolio risk gauge
Shell layout: left sidebar (collapses to icon rail below 1200px), top bar with LIVE TERM and date.