/ai/models route

This commit is contained in:
2026-01-31 14:16:12 +00:00
parent 8196fb0bf6
commit 95beddaa6c
7 changed files with 45 additions and 1 deletions

View File

@@ -33,11 +33,13 @@ const withGlobalAuthed = <T extends BunRequest>(handler: RouteHandler<T>) =>
const main = async () => {
const server = Bun.serve({
port: Number(PORT),
idleTimeout: 60, // 1 minute for AI chat responses
routes: {
"/": withGlobal(() => new Response(`title: tnirps\ndev-mode: ${DEV}\nport: ${PORT}`)),
"/health": withGlobal(() => new Response("OK")),
"/ai/chat": withGlobalAuthed(withAuth(routes.aiChat)),
"/ai/models": withGlobalAuthed(withAuth(routes.aiModels)),
// routes that modify state require withCSRF middleware
"/auth/register": withGlobal(routes.authRegister),

View File

@@ -0,0 +1,8 @@
import type { AuthedRequest } from "../../auth/middleware";
import { getCachedFreeModels } from "./opencode";
// GET /ai/models - returns cached free models
export default function aiModels(_req: AuthedRequest) {
const models = getCachedFreeModels();
return Response.json(models);
}

View File

@@ -1,4 +1,5 @@
import aiChat from "./ai/chat";
import aiModels from "./ai/models";
import authLogin from "./auth/login";
import authLogout from "./auth/logout";
import authMe from "./auth/me";
@@ -58,6 +59,7 @@ import userUploadAvatar from "./user/upload-avatar";
export const routes = {
aiChat,
aiModels,
authRegister,
authLogin,