diff --git a/layouts/LayoutDefault.tsx b/layouts/LayoutDefault.tsx index 0f71d1a..ddd0aaa 100644 --- a/layouts/LayoutDefault.tsx +++ b/layouts/LayoutDefault.tsx @@ -27,7 +27,7 @@ import { useDisclosure } from "@mantine/hooks"; import theme from "./theme.js"; import logoUrl from "../assets/logo.png"; import { useEffect, useState } from "react"; -import { TRPCProvider, useTRPC } from "../trpc/client.js"; +import { TRPCProvider, useTRPC } from "../pages/trpc-client.js"; import { usePageContext } from "vike-react/usePageContext"; import "./hover.css"; import { @@ -43,7 +43,7 @@ import { httpSubscriptionLink, splitLink, } from "@trpc/client"; -import type { AppRouter } from "../trpc/router.js"; +import type { AppRouter } from "@/server/trpc/router.js"; function makeQueryClient() { return new QueryClient({ diff --git a/pages/chat/+Page.tsx b/pages/chat/+Page.tsx index 6e72308..b0f8089 100644 --- a/pages/chat/+Page.tsx +++ b/pages/chat/+Page.tsx @@ -1,6 +1,6 @@ import { Card, Textarea } from "@mantine/core"; import { useState } from "react"; -import { useTRPCClient } from "../../trpc/client"; +import { useTRPCClient } from "../trpc-client"; export default function ChatPage() { const [inputMessage, setInputMessage] = useState(""); diff --git a/pages/chat/@id/+Page.tsx b/pages/chat/@id/+Page.tsx index 5069798..d794680 100644 --- a/pages/chat/@id/+Page.tsx +++ b/pages/chat/@id/+Page.tsx @@ -28,7 +28,7 @@ import type { DraftMessage, OtherParameters, SendMessageStatus, -} from "../../../types"; +} from "@/types"; import Markdown from "react-markdown"; import { IconTrash, @@ -37,10 +37,9 @@ import { IconX, IconLoaderQuarter, } from "@tabler/icons-react"; -import { useTRPC, useTRPCClient } from "../../../trpc/client"; +import { useTRPC, useTRPCClient } from "../../trpc-client"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; -import { nanoid } from "nanoid"; -import type { Conversation } from "../../../database/common"; +import type { Conversation } from "@/database/common"; export default function ChatPage() { const pageContext = usePageContext(); diff --git a/pages/chat/@id/+data.ts b/pages/chat/@id/+data.ts index 00c67aa..ba8c7db 100644 --- a/pages/chat/@id/+data.ts +++ b/pages/chat/@id/+data.ts @@ -1,7 +1,7 @@ import type { PageContextServer } from "vike/types"; -import { createCaller } from "../trpc.js"; +import { createCaller } from "../../../server/trpc/chat.js"; import { getDb } from "../../../database/postgres.js"; -import { getOpenrouter } from "../provider.js"; +import { getOpenrouter } from "../../../server/provider.js"; import { env } from "../../../server/env.js"; export type Data = Awaited>; diff --git a/trpc/client.ts b/pages/trpc-client.ts similarity index 87% rename from trpc/client.ts rename to pages/trpc-client.ts index 678e109..93397d7 100644 --- a/trpc/client.ts +++ b/pages/trpc-client.ts @@ -1,6 +1,6 @@ // import { createTRPCProxyClient, httpBatchLink } from "@trpc/client"; import { createTRPCContext } from "@trpc/tanstack-react-query"; -import type { AppRouter } from "./router.js"; +import type { AppRouter } from "../server/trpc/router.js"; export const { TRPCProvider, useTRPC, useTRPCClient } = createTRPCContext(); diff --git a/pages/chat/provider.ts b/server/provider.ts similarity index 90% rename from pages/chat/provider.ts rename to server/provider.ts index b6b326e..807a655 100644 --- a/pages/chat/provider.ts +++ b/server/provider.ts @@ -1,5 +1,5 @@ import { createOpenRouter } from "@openrouter/ai-sdk-provider"; -import { env } from "../../server/env.js"; +import { env } from "./env.js"; export const openrouter = createOpenRouter({ apiKey: env.OPENROUTER_API_KEY, }); diff --git a/server/trpc-handler.ts b/server/trpc-handler.ts index 6619526..9d33116 100644 --- a/server/trpc-handler.ts +++ b/server/trpc-handler.ts @@ -1,4 +1,4 @@ -import { appRouter } from "../trpc/router"; +import { appRouter } from "@/server/trpc/router.js"; // TODO: stop using universal-middleware and directly integrate server middlewares instead and/or use vike-server https://vike.dev/server. (Bati generates boilerplates that use universal-middleware https://github.com/magne4000/universal-middleware to make Bati's internal logic easier. This is temporary and will be removed soon.) import { type Get, @@ -6,8 +6,8 @@ import { env as getEnv, } from "@universal-middleware/core"; import { fetchRequestHandler } from "@trpc/server/adapters/fetch"; -import { getDb, getDbClient } from "../database/postgres"; -import { getOpenrouter } from "../pages/chat/provider"; +import { getDb, getDbClient } from "@/database/postgres"; +import { getOpenrouter } from "@/server/provider.js"; import { env as processEnv } from "./env.js"; import { getToken } from "@auth/core/jwt"; diff --git a/pages/chat/trpc.ts b/server/trpc/chat.ts similarity index 97% rename from pages/chat/trpc.ts rename to server/trpc/chat.ts index a9dc5f6..4ed62ca 100644 --- a/pages/chat/trpc.ts +++ b/server/trpc/chat.ts @@ -1,14 +1,10 @@ -import { - router, - publicProcedure, - createCallerFactory, -} from "../../trpc/server.js"; +import { router, publicProcedure, createCallerFactory } from "./server.js"; import { generateObject, generateText, jsonSchema, streamText } from "ai"; import type { OtherParameters, CommittedMessage, DraftMessage, -} from "../../types.js"; +} from "@/types.js"; // import { client } from "../../database/milvus"; // import { // ConsistencyLevelEnum, @@ -20,8 +16,8 @@ import { facts, createCaller as createCallerFacts } from "./facts.js"; import { createCaller as createCallerMessages } from "./messages.js"; import { createCaller as createCallerFactTriggers } from "./fact-triggers.js"; import { factTriggers } from "./fact-triggers.js"; -import { MODEL_NAME } from "./provider.js"; -import type { Fact, FactTrigger } from "../../database/common.js"; +import { MODEL_NAME } from "@/server/provider.js"; +import type { Fact, FactTrigger } from "@/database/common.js"; const mainSystemPrompt = ({ systemPrompt, diff --git a/pages/chat/conversations.ts b/server/trpc/conversations.ts similarity index 93% rename from pages/chat/conversations.ts rename to server/trpc/conversations.ts index 3d9baa4..32b0313 100644 --- a/pages/chat/conversations.ts +++ b/server/trpc/conversations.ts @@ -1,8 +1,4 @@ -import { - router, - publicProcedure, - createCallerFactory, -} from "../../trpc/server"; +import { router, publicProcedure, createCallerFactory } from "./server"; export const conversations = router({ fetchAll: publicProcedure.query(async ({ ctx: { db, jwt } }) => { diff --git a/pages/chat/fact-triggers.ts b/server/trpc/fact-triggers.ts similarity index 96% rename from pages/chat/fact-triggers.ts rename to server/trpc/fact-triggers.ts index 9043102..bb3ab2f 100644 --- a/pages/chat/fact-triggers.ts +++ b/server/trpc/fact-triggers.ts @@ -2,11 +2,11 @@ import { router, publicProcedure, createCallerFactory, -} from "../../trpc/server.js"; -import type { DraftMessage } from "../../types.js"; -import { MODEL_NAME } from "./provider.js"; +} from "@/server/trpc/server.js"; +import type { DraftMessage } from "@/types.js"; +import { MODEL_NAME } from "@/server/provider.js"; import { generateObject, generateText, jsonSchema } from "ai"; -import type { Fact } from "../../database/common.js"; +import type { Fact } from "@/database/common.js"; const factTriggersSystemPrompt = ({ previousRunningSummary, diff --git a/pages/chat/facts.ts b/server/trpc/facts.ts similarity index 95% rename from pages/chat/facts.ts rename to server/trpc/facts.ts index ee3db8e..6949646 100644 --- a/pages/chat/facts.ts +++ b/server/trpc/facts.ts @@ -1,10 +1,6 @@ -import { - router, - publicProcedure, - createCallerFactory, -} from "../../trpc/server.js"; -import type { DraftMessage } from "../../types.js"; -import { MODEL_NAME, openrouter } from "./provider.js"; +import { router, publicProcedure, createCallerFactory } from "./server.js"; +import type { DraftMessage } from "@/types.js"; +import { MODEL_NAME, openrouter } from "@/server/provider.js"; import { generateObject, generateText, jsonSchema } from "ai"; const factsFromNewMessagesSystemPrompt = ({ diff --git a/pages/chat/messages.ts b/server/trpc/messages.ts similarity index 97% rename from pages/chat/messages.ts rename to server/trpc/messages.ts index 4175db9..10c3887 100644 --- a/pages/chat/messages.ts +++ b/server/trpc/messages.ts @@ -2,8 +2,8 @@ import { router, publicProcedure, createCallerFactory, -} from "../../trpc/server"; -import { MODEL_NAME } from "./provider.js"; +} from "@/server/trpc/server"; +import { MODEL_NAME } from "../provider.js"; import { generateObject, generateText, jsonSchema } from "ai"; import type { DraftMessage } from "../../types.js"; diff --git a/trpc/router.ts b/server/trpc/router.ts similarity index 51% rename from trpc/router.ts rename to server/trpc/router.ts index d70f2a4..4e16a6d 100644 --- a/trpc/router.ts +++ b/server/trpc/router.ts @@ -1,5 +1,5 @@ -import { router } from "../trpc/server"; -import { chat } from "../pages/chat/trpc"; +import { router } from "./server.js"; +import { chat } from "./chat.js"; export const appRouter = router({ chat, diff --git a/trpc/server.ts b/server/trpc/server.ts similarity index 93% rename from trpc/server.ts rename to server/trpc/server.ts index 5032091..8104d42 100644 --- a/trpc/server.ts +++ b/server/trpc/server.ts @@ -1,8 +1,8 @@ import type { TSchema } from "@sinclair/typebox"; import { TypeCompiler } from "@sinclair/typebox/compiler"; import { initTRPC, TRPCError } from "@trpc/server"; -import type { getDb } from "../database/postgres"; -import type { getOpenrouter } from "../pages/chat/provider"; +import type { getDb } from "../../database/postgres"; +import type { getOpenrouter } from "@/server/provider.js"; import type { JWT } from "@auth/core/jwt"; /** diff --git a/tsconfig.json b/tsconfig.json index 52027ae..dd5332d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,10 @@ "lib": ["DOM", "DOM.Iterable", "ESNext"], "types": ["vite/client", "vike-react", "vike-cloudflare/types"], "jsx": "react-jsx", - "jsxImportSource": "react" + "jsxImportSource": "react", + "paths": { + "@/*": ["./*"] + } }, "exclude": ["dist"] }