From 5ef118e9bcec823a0e090737bd06445de6776fe0 Mon Sep 17 00:00:00 2001 From: Avraham Sakal Date: Sun, 29 Jun 2025 15:17:10 -0400 Subject: [PATCH] basic route-specific trpc file example --- biome.json | 10 +-- layouts/LayoutDefault.tsx | 1 + package.json | 32 ++++---- pages/chat/+Page.tsx | 55 +++++++++++++ pages/chat/trpc.ts | 22 ++++++ pnpm-lock.yaml | 160 ++++++++++++++++++++++++++++++++++++++ server/trpc-handler.ts | 2 +- trpc/client.ts | 2 +- trpc/router.ts | 23 ++++++ trpc/server.ts | 40 +++++----- 10 files changed, 303 insertions(+), 44 deletions(-) create mode 100644 pages/chat/+Page.tsx create mode 100644 pages/chat/trpc.ts create mode 100644 trpc/router.ts diff --git a/biome.json b/biome.json index 8729783..183a2dc 100644 --- a/biome.json +++ b/biome.json @@ -15,12 +15,6 @@ "indentStyle": "space" }, "files": { - "ignore": [ - "dist/**", - "*.js", - "*.cjs", - "*.mjs", - "*.spec.ts" - ] + "ignore": ["dist/**", "*.js", "*.cjs", "*.mjs", "*.spec.ts"] } -} \ No newline at end of file +} diff --git a/layouts/LayoutDefault.tsx b/layouts/LayoutDefault.tsx index b402756..4a790d9 100644 --- a/layouts/LayoutDefault.tsx +++ b/layouts/LayoutDefault.tsx @@ -39,6 +39,7 @@ export default function LayoutDefault({ + {children} diff --git a/package.json b/package.json index 6fe231e..ac3a888 100644 --- a/package.json +++ b/package.json @@ -10,38 +10,42 @@ "deploy": "run-s build deploy:wrangler" }, "dependencies": { - "vike": "^0.4.235", + "@ai-sdk/openai": "2.0.0-beta.2", + "@ai-sdk/react": "2.0.0-beta.3", "@auth/core": "^0.40.0", - "@universal-middleware/core": "^0.4.8", "@compiled/react": "^0.18.6", "@hono/node-server": "^1.14.4", + "@mantine/core": "^8.1.1", + "@mantine/hooks": "^8.1.1", + "@sinclair/typebox": "^0.34.37", + "@trpc/client": "^11.4.2", + "@trpc/server": "^11.4.2", + "@universal-middleware/core": "^0.4.8", "@universal-middleware/hono": "^0.4.14", - "hono": "^4.8.2", "@vitejs/plugin-react": "^4.6.0", + "ai": "5.0.0-beta.3", + "hono": "^4.8.2", "react": "^19.1.0", "react-dom": "^19.1.0", - "vike-react": "^0.6.4", - "@trpc/server": "^11.4.2", - "@trpc/client": "^11.4.2", + "vike": "^0.4.235", "vike-cloudflare": "^0.1.7", - "@mantine/core": "^8.1.1", - "@mantine/hooks": "^8.1.1" + "vike-react": "^0.6.4" }, "devDependencies": { - "typescript": "^5.8.3", - "vite": "^6.3.5", "@biomejs/biome": "1.9.4", - "vite-plugin-compiled-react": "^1.3.1", + "@cloudflare/workers-types": "^4.20250620.0", "@hono/vite-dev-server": "^0.19.1", "@types/node": "^20.19.0", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", - "@cloudflare/workers-types": "^4.20250620.0", - "wrangler": "^4.20.5", "npm-run-all2": "^8.0.4", "postcss": "^8.5.6", "postcss-preset-mantine": "^1.17.0", - "postcss-simple-vars": "^7.0.1" + "postcss-simple-vars": "^7.0.1", + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vite-plugin-compiled-react": "^1.3.1", + "wrangler": "^4.20.5" }, "type": "module" } diff --git a/pages/chat/+Page.tsx b/pages/chat/+Page.tsx new file mode 100644 index 0000000..55db79e --- /dev/null +++ b/pages/chat/+Page.tsx @@ -0,0 +1,55 @@ +import { JsonInput, Tabs, Textarea } from "@mantine/core"; +import { useState } from "react"; + +const defaultSystemPrompt = `You are a helpful assistant that answers questions based on the provided context. If you don't know the answer, just say that you don't know, don't try to make up an answer.`; +const defaultParameters = { + temperature: 0.5, + max_tokens: 100, +}; + +export default function ChatPage() { + const [prompt, setPrompt] = useState(""); + const [systemPrompt, setSystemPrompt] = useState(defaultSystemPrompt); + const [parameters, setParameters] = useState(defaultParameters); + + return ( + + + Prompt + System Prompt + Parameters + + +