{ "version": 2, "buildCommand": "npm ci --prefix webui && npm run build --prefix webui", "outputDirectory": "static", "functions": { "api/chat-stream.js": { "maxDuration": 300 }, "api/index.go": { "maxDuration": 300 } }, "rewrites": [ { "source": "/v1/chat/completions", "has": [ { "type": "query", "key": "__go" } ], "destination": "/api/index" }, { "source": "/v1/chat/completions", "destination": "/api/chat-stream" }, { "source": "/admin/login", "destination": "/api/index" }, { "source": "/admin/verify", "destination": "/api/index" }, { "source": "/admin/config", "destination": "/api/index" }, { "source": "/admin/config/(.*)", "destination": "/api/index" }, { "source": "/admin/settings", "destination": "/api/index" }, { "source": "/admin/settings/(.*)", "destination": "/api/index" }, { "source": "/admin/keys(.*)", "destination": "/api/index" }, { "source": "/admin/accounts(.*)", "destination": "/api/index" }, { "source": "/admin/queue/status", "destination": "/api/index" }, { "source": "/admin/import", "destination": "/api/index" }, { "source": "/admin/test", "destination": "/api/index" }, { "source": "/admin/vercel/(.*)", "destination": "/api/index" }, { "source": "/admin/export", "destination": "/api/index" }, { "source": "/admin/version", "destination": "/api/index" }, { "source": "/admin/chat-history(.*)", "destination": "/api/index" }, { "source": "/admin/proxies(.*)", "destination": "/api/index" }, { "source": "/admin/dev/raw-samples/(.*)", "destination": "/api/index" }, { "source": "/admin/dev/captures(.*)", "destination": "/api/index" }, { "source": "/admin", "destination": "/admin/index.html" }, { "source": "/admin/assets/(.*)", "destination": "/admin/assets/$1" }, { "source": "/admin/(.*)", "destination": "/admin/index.html" }, { "source": "/(.*)", "destination": "/api/index" } ], "headers": [ { "source": "/admin/assets/(.*)", "headers": [ { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } ] }, { "source": "/admin/(.*)", "headers": [ { "key": "Cache-Control", "value": "no-store, must-revalidate" } ] } ] }