| // middleware.js | |
| import { NextRequest, NextResponse } from 'next/server'; | |
| const { AGENT_SERVER_URL } = process.env; | |
| // Check if environment variables are available | |
| if (!AGENT_SERVER_URL) { | |
| throw "Environment variables AGENT_SERVER_URL are not available"; | |
| } | |
| export function middleware(req: NextRequest) { | |
| const { pathname } = req.nextUrl; | |
| if (pathname.startsWith('/api/agents/')) { | |
| if (!pathname.startsWith('/api/agents/start')) { | |
| // Proxy all other agents API requests | |
| const url = req.nextUrl.clone(); | |
| url.href = `${AGENT_SERVER_URL}${pathname.replace('/api/agents/', '/')}`; | |
| // console.log(`Rewriting request to ${url.href}`); | |
| return NextResponse.rewrite(url); | |
| } | |
| } else if (pathname.startsWith('/api/vector/')) { | |
| // Proxy all other documents requests | |
| const url = req.nextUrl.clone(); | |
| url.href = `${AGENT_SERVER_URL}${pathname.replace('/api/vector/', '/vector/')}`; | |
| // console.log(`Rewriting request to ${url.href}`); | |
| return NextResponse.rewrite(url); | |
| } else if (pathname.startsWith('/api/token/')) { | |
| // Proxy all other documents requests | |
| const url = req.nextUrl.clone(); | |
| url.href = `${AGENT_SERVER_URL}${pathname.replace('/api/token/', '/token/')}`; | |
| // console.log(`Rewriting request to ${url.href}`); | |
| return NextResponse.rewrite(url); | |
| } else { | |
| return NextResponse.next(); | |
| } | |
| } |