import { router, publicProcedure, // Validator } from "../../trpc/server"; // import { Type as T } from "@sinclair/typebox"; import { createOpenRouter } from "@openrouter/ai-sdk-provider"; import { generateText } from "ai"; import type { Message as UIMessage } from "ai"; import type { OtherParameters } from "./types.js"; import { env } from "../../server/env.js"; const openrouter = createOpenRouter({ apiKey: env.OPENROUTER_API_KEY, }); export const chat = router({ sendMessage: publicProcedure .input( (x) => x as { messages: Array; systemPrompt: string; parameters: OtherParameters; }, ) .query(async ({ input: { messages, systemPrompt, parameters } }) => { const response = await generateText({ model: openrouter("mistralai/mistral-nemo"), messages: [ { role: "system" as const, content: systemPrompt }, ...messages, ], maxSteps: 3, tools: undefined, ...parameters, }); return response; }), });