From b8d263858cf4f33236de561cbe15b6c547d02dc1 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:31:35 +0000 Subject: [PATCH 1/8] chore: remove docs --- docs/01-quick-start.md | 40 ------ docs/02-update-models.md | 53 -------- docs/03-artifacts.md | 258 --------------------------------------- 3 files changed, 351 deletions(-) delete mode 100644 docs/01-quick-start.md delete mode 100644 docs/02-update-models.md delete mode 100644 docs/03-artifacts.md diff --git a/docs/01-quick-start.md b/docs/01-quick-start.md deleted file mode 100644 index ead8251..0000000 --- a/docs/01-quick-start.md +++ /dev/null @@ -1,40 +0,0 @@ -# Quick Start - -The chatbot template is a web application built using [Next.js](https://nextjs.org) and the [AI SDK](https://sdk.vercel.ai) that can be used as a starting point for building your own AI applications. The template is designed to be easily customizable and extendable, allowing you to add new features and integrations as needed. - -Deploying to [Vercel](https://vercel.com) is the quickest way to get started with the chatbot template, as it automatically sets up the project by connecting to integrations and deploys it to the cloud. You can then later develop the project locally and push changes to the Vercel project. - -### Pre-requisites: - -- Vercel account and [Vercel CLI](https://vercel.com/docs/cli) -- GitHub/GitLab/Bitbucket account -- API Key from [OpenAI](https://platform.openai.com) - -### Deploy to Vercel - -To deploy the chatbot template to Vercel, click this [link](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot&env=AUTH_SECRET,OPENAI_API_KEY&envDescription=Learn%20more%20about%20how%20to%20get%20the%20API%20Keys%20for%20the%20application&envLink=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot%2Fblob%2Fmain%2F.env.example&demo-title=AI%20Chatbot&demo-description=An%20Open-Source%20AI%20Chatbot%20Template%20Built%20With%20Next.js%20and%20the%20AI%20SDK%20by%20Vercel.&demo-url=https%3A%2F%2Fchat.vercel.ai&stores=%5B%7B%22type%22:%22postgres%22%7D,%7B%22type%22:%22blob%22%7D%5D) to enter the 1-click deploy flow. - -During the flow, you will be prompted to create and connect to a postgres database and blob store. You will also need to provide environment variables for the application. - -After deploying the project, you can access the chatbot template by visiting the URL provided by Vercel. - -### Local Development - -To develop the chatbot template locally, you can clone the repository and link it to your Vercel project. This will allow you to pull the environment variables from the Vercel project and use them locally. - -```bash -git clone https://github.com// -cd -pnpm install - -vercel link -vercel env pull -``` - -After linking the project, you can start the development server by running: - -```bash -pnpm dev -``` - -The chatbot template will be available at `http://localhost:3000`. diff --git a/docs/02-update-models.md b/docs/02-update-models.md deleted file mode 100644 index d61d313..0000000 --- a/docs/02-update-models.md +++ /dev/null @@ -1,53 +0,0 @@ -# Update Models - -The chatbot template ships with [OpenAI](https://sdk.vercel.ai/providers/ai-sdk-providers/openai) as the default model provider. Since the template is powered by the [AI SDK](https://sdk.vercel.ai), which supports [multiple providers](https://sdk.vercel.ai/providers/ai-sdk-providers) out of the box, you can easily switch to another provider of your choice. - -To update the models, you will need to update the custom provider called `myProvider` at `/lib/ai/models.ts` shown below. - -```ts -import { customProvider } from "ai"; -import { openai } from "@ai-sdk/openai"; - -export const myProvider = customProvider({ - languageModels: { - "chat-model-small": openai("gpt-4o-mini"), - "chat-model-large": openai("gpt-4o"), - "chat-model-reasoning": wrapLanguageModel({ - model: fireworks("accounts/fireworks/models/deepseek-r1"), - middleware: extractReasoningMiddleware({ tagName: "think" }), - }), - "title-model": openai("gpt-4-turbo"), - "artifact-model": openai("gpt-4o-mini"), - }, - imageModels: { - "small-model": openai.image("dall-e-3"), - }, -}); -``` - -You can replace the `openai` models with any other provider of your choice. You will need to install the provider library and switch the models accordingly. - -For example, if you want to use Anthropic's `claude-3-5-sonnet` model for `chat-model-large`, you can replace the `openai` model with the `anthropic` model as shown below. - -```ts -import { customProvider } from "ai"; -import { anthropic } from "@ai-sdk/anthropic"; - -export const myProvider = customProvider({ - languageModels: { - "chat-model-small": openai("gpt-4o-mini"), - "chat-model-large": anthropic("claude-3-5-sonnet"), // Replace openai with anthropic - "chat-model-reasoning": wrapLanguageModel({ - model: fireworks("accounts/fireworks/models/deepseek-r1"), - middleware: extractReasoningMiddleware({ tagName: "think" }), - }), - "title-model": openai("gpt-4-turbo"), - "artifact-model": openai("gpt-4o-mini"), - }, - imageModels: { - "small-model": openai.image("dall-e-3"), - }, -}); -``` - -You can find the provider library and model names in the [provider](https://sdk.vercel.ai/providers/ai-sdk-providers)'s documentation. Once you have updated the models, you should be able to use the new models in your chatbot. diff --git a/docs/03-artifacts.md b/docs/03-artifacts.md deleted file mode 100644 index 67b54b9..0000000 --- a/docs/03-artifacts.md +++ /dev/null @@ -1,258 +0,0 @@ -# Artifacts - -Artifacts is a special user interface mode that allows you to have a workspace like interface along with the chat interface. This is similar to [ChatGPT's Canvas](https://openai.com/index/introducing-canvas) and [Claude's Artifacts](https://www.anthropic.com/news/artifacts). - -The template already ships with the following artifacts: - -- **Text Artifact**: A artifact that allows you to work with text content like drafting essays and emails. -- **Code Artifact**: A artifact that allows you to write and execute code (Python). -- **Image Artifact**: A artifact that allows you to work with images like editing, annotating, and processing images. -- **Sheet Artifact**: A artifact that allows you to work with tabular data like creating, editing, and analyzing data. - -## Adding a Custom Artifact - -To add a custom artifact, you will need to create a folder in the `artifacts` directory with the artifact name. The folder should contain the following files: - -- `client.tsx`: The client-side code for the artifact. -- `server.ts`: The server-side code for the artifact. - -Here is an example of a custom artifact called `CustomArtifact`: - -```bash -artifacts/ - custom/ - client.tsx - server.ts -``` - -### Client-Side Example (client.tsx) - -This file is responsible for rendering your custom artifact. You might replace the inner UI with your own components, but the overall pattern (initialization, handling streamed data, and rendering content) remains the same. For instance: - -```tsx -import { Artifact } from "@/components/create-artifact"; -import { ExampleComponent } from "@/components/example-component"; -import { toast } from "sonner"; - -interface CustomArtifactMetadata { - // Define metadata your custom artifact might need—the example below is minimal. - info: string; -} - -export const customArtifact = new Artifact<"custom", CustomArtifactMetadata>({ - kind: "custom", - description: "A custom artifact for demonstrating custom functionality.", - // Initialization can fetch any extra data or perform side effects - initialize: async ({ documentId, setMetadata }) => { - // For example, initialize the artifact with default metadata. - setMetadata({ - info: `Document ${documentId} initialized.`, - }); - }, - // Handle streamed parts from the server (if your artifact supports streaming updates) - onStreamPart: ({ streamPart, setMetadata, setArtifact }) => { - if (streamPart.type === "info-update") { - setMetadata((metadata) => ({ - ...metadata, - info: streamPart.content as string, - })); - } - if (streamPart.type === "content-update") { - setArtifact((draftArtifact) => ({ - ...draftArtifact, - content: draftArtifact.content + (streamPart.content as string), - status: "streaming", - })); - } - }, - // Defines how the artifact content is rendered - content: ({ - mode, - status, - content, - isCurrentVersion, - currentVersionIndex, - onSaveContent, - getDocumentContentById, - isLoading, - metadata, - }) => { - if (isLoading) { - return
Loading custom artifact...
; - } - - if (mode === "diff") { - const oldContent = getDocumentContentById(currentVersionIndex - 1); - const newContent = getDocumentContentById(currentVersionIndex); - return ( -
-

Diff View

-
{oldContent}
-
{newContent}
-
- ); - } - - return ( -
- - -
- ); - }, - // An optional set of actions exposed in the artifact toolbar. - actions: [ - { - icon: , - description: "Refresh artifact info", - onClick: ({ appendMessage }) => { - appendMessage({ - role: "user", - content: "Please refresh the info for my custom artifact.", - }); - }, - }, - ], - // Additional toolbar actions for more control - toolbar: [ - { - icon: , - description: "Edit custom artifact", - onClick: ({ appendMessage }) => { - appendMessage({ - role: "user", - content: "Edit the custom artifact content.", - }); - }, - }, - ], -}); -``` - -Server-Side Example (server.ts) - -The server file processes the document for the artifact. It streams updates (if applicable) and returns the final content. For example: - -```ts -import { smoothStream, streamText } from "ai"; -import { myProvider } from "@/lib/ai/models"; -import { createDocumentHandler } from "@/lib/artifacts/server"; -import { updateDocumentPrompt } from "@/lib/ai/prompts"; - -export const customDocumentHandler = createDocumentHandler<"custom">({ - kind: "custom", - // Called when the document is first created. - onCreateDocument: async ({ title, dataStream }) => { - let draftContent = ""; - // For demonstration, use streamText to generate content. - const { fullStream } = streamText({ - model: myProvider.languageModel("artifact-model"), - system: - "Generate a creative piece based on the title. Markdown is supported.", - experimental_transform: smoothStream({ chunking: "word" }), - prompt: title, - }); - - // Stream the content back to the client. - for await (const delta of fullStream) { - if (delta.type === "text-delta") { - draftContent += delta.textDelta; - dataStream.writeData({ - type: "content-update", - content: delta.textDelta, - }); - } - } - - return draftContent; - }, - // Called when updating the document based on user modifications. - onUpdateDocument: async ({ document, description, dataStream }) => { - let draftContent = ""; - const { fullStream } = streamText({ - model: myProvider.languageModel("artifact-model"), - system: updateDocumentPrompt(document.content, "custom"), - experimental_transform: smoothStream({ chunking: "word" }), - prompt: description, - experimental_providerMetadata: { - openai: { - prediction: { - type: "content", - content: document.content, - }, - }, - }, - }); - - for await (const delta of fullStream) { - if (delta.type === "text-delta") { - draftContent += delta.textDelta; - dataStream.writeData({ - type: "content-update", - content: delta.textDelta, - }); - } - } - - return draftContent; - }, -}); -``` - -Once you have created the client and server files, you can import the artifact in the `lib/artifacts/server.ts` file and add it to the `documentHandlersByArtifactKind` array. - -```ts -export const documentHandlersByArtifactKind: Array = [ - ..., - customDocumentHandler, -]; - -export const artifactKinds = [..., "custom"] as const; -``` - -Specify it in document schema at `lib/db/schema.ts`. - -```ts -export const document = pgTable( - "Document", - { - id: uuid("id").notNull().defaultRandom(), - createdAt: timestamp("createdAt").notNull(), - title: text("title").notNull(), - content: text("content"), - kind: varchar("text", { enum: [..., "custom"] }) // Add the custom artifact kind here - .notNull() - .default("text"), - userId: uuid("userId") - .notNull() - .references(() => user.id), - }, - (table) => { - return { - pk: primaryKey({ columns: [table.id, table.createdAt] }), - }; - }, -); -``` - -And also add the client-side artifact to the `artifactDefinitions` array in the `components/artifact.tsx` file. - -```ts -import { customArtifact } from "@/artifacts/custom/client"; - -export const artifactDefinitions = [..., customArtifact]; -``` - -You should now be able to see the custom artifact in the workspace! From 1a2cac5b7f32ab3378a2bf33dabf605ea02dc365 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:35:08 +0000 Subject: [PATCH 2/8] chore: prevent votes fetching in chat component --- components/chat.tsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/components/chat.tsx b/components/chat.tsx index 95017ea..6b1367d 100644 --- a/components/chat.tsx +++ b/components/chat.tsx @@ -4,12 +4,11 @@ import type { Attachment, Message } from 'ai'; import { useChat } from 'ai/react'; import { useState } from 'react'; import { toast } from 'sonner'; -import useSWR, { useSWRConfig } from 'swr'; +import { useSWRConfig } from 'swr'; import { ChatHeader } from '@/components/chat-header'; import { useArtifactSelector } from '@/hooks/use-artifact'; -import type { Vote } from '@/lib/db/schema'; -import { fetcher, generateUUID } from '@/lib/utils'; +import { generateUUID } from '@/lib/utils'; import { Artifact } from './artifact'; import { Messages } from './messages'; @@ -53,11 +52,6 @@ export function Chat({ }, }); - const { data: votes } = useSWR>( - `/api/vote?chatId=${id}`, - fetcher, - ); - const [attachments, setAttachments] = useState>([]); const isArtifactVisible = useArtifactSelector((state) => state.isVisible); @@ -69,7 +63,7 @@ export function Chat({ From 1c50e994bfbaa196494193eb3a2f72123e31bf37 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:38:14 +0000 Subject: [PATCH 3/8] chore: remove unnecessary images --- app/(chat)/opengraph-image.png | Bin 52049 -> 0 bytes app/(chat)/twitter-image.png | Bin 52049 -> 0 bytes public/images/demo-thumbnail.png | Bin 23198 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 app/(chat)/opengraph-image.png delete mode 100644 app/(chat)/twitter-image.png delete mode 100644 public/images/demo-thumbnail.png diff --git a/app/(chat)/opengraph-image.png b/app/(chat)/opengraph-image.png deleted file mode 100644 index 79fbc0f9c7a461a2982ade09f414bc8faa9ec60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52049 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 diff --git a/app/(chat)/twitter-image.png b/app/(chat)/twitter-image.png deleted file mode 100644 index 79fbc0f9c7a461a2982ade09f414bc8faa9ec60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52049 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 diff --git a/public/images/demo-thumbnail.png b/public/images/demo-thumbnail.png deleted file mode 100644 index 8c6f98ab2eae4d993ef01a06117d52d2bf63ea35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23198 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 From 66489e26a59fc318b16138b29ae6b293098dee1a Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:40:03 +0000 Subject: [PATCH 4/8] chore: remove metadataBase from the root layout --- app/layout.tsx | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/app/layout.tsx b/app/layout.tsx index 55e3bdd..a59e9f8 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,27 +1,25 @@ -import type { Metadata } from "next"; -import { headers } from "next/headers"; -import { Toaster } from "sonner"; -import { cookieToInitialState } from "wagmi"; +import type { Metadata } from 'next'; +import { headers } from 'next/headers'; +import { Toaster } from 'sonner'; +import { cookieToInitialState } from 'wagmi'; -import { ThemeProvider } from "@/components/theme-provider"; +import { ThemeProvider } from '@/components/theme-provider'; -import { wagmiAdapter } from "./config"; -import ContextProvider from "./context"; - -import "./globals.css"; +import { wagmiAdapter } from './config'; +import ContextProvider from './context'; +import './globals.css'; export const metadata: Metadata = { - metadataBase: new URL("https://chat.vercel.ai"), - title: "Pattern", - description: "Pattern is a decentralized agentic RAG network", + title: 'Pattern', + description: 'Pattern is a decentralized agentic RAG network', }; export const viewport = { maximumScale: 1, }; -const LIGHT_THEME_COLOR = "hsl(0 0% 100%)"; -const DARK_THEME_COLOR = "hsl(240deg 10% 3.92%)"; +const LIGHT_THEME_COLOR = 'hsl(0 0% 100%)'; +const DARK_THEME_COLOR = 'hsl(240deg 10% 3.92%)'; const THEME_COLOR_SCRIPT = `\ (function() { var html = document.documentElement; @@ -46,7 +44,7 @@ export default async function RootLayout({ children: React.ReactNode; }>) { const headersObj = await headers(); - const cookies = headersObj.get("cookie"); + const cookies = headersObj.get('cookie'); const initialState = cookieToInitialState(wagmiAdapter.wagmiConfig, cookies); return ( From 7f1dee07b1cb404e0c205c2c8a85b82899656675 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:41:29 +0000 Subject: [PATCH 5/8] chore: remove llm tools --- lib/ai/tools/create-document.ts | 71 ----------------------- lib/ai/tools/get-weather.ts | 18 ------ lib/ai/tools/request-suggestions.ts | 89 ----------------------------- lib/ai/tools/update-document.ts | 60 ------------------- 4 files changed, 238 deletions(-) delete mode 100644 lib/ai/tools/create-document.ts delete mode 100644 lib/ai/tools/get-weather.ts delete mode 100644 lib/ai/tools/request-suggestions.ts delete mode 100644 lib/ai/tools/update-document.ts diff --git a/lib/ai/tools/create-document.ts b/lib/ai/tools/create-document.ts deleted file mode 100644 index 40c9ddd..0000000 --- a/lib/ai/tools/create-document.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { generateUUID } from '@/lib/utils'; -import { DataStreamWriter, tool } from 'ai'; -import { z } from 'zod'; -import { Session } from 'next-auth'; -import { - artifactKinds, - documentHandlersByArtifactKind, -} from '@/lib/artifacts/server'; - -interface CreateDocumentProps { - session: Session; - dataStream: DataStreamWriter; -} - -export const createDocument = ({ session, dataStream }: CreateDocumentProps) => - tool({ - description: - 'Create a document for a writing or content creation activities. This tool will call other functions that will generate the contents of the document based on the title and kind.', - parameters: z.object({ - title: z.string(), - kind: z.enum(artifactKinds), - }), - execute: async ({ title, kind }) => { - const id = generateUUID(); - - dataStream.writeData({ - type: 'kind', - content: kind, - }); - - dataStream.writeData({ - type: 'id', - content: id, - }); - - dataStream.writeData({ - type: 'title', - content: title, - }); - - dataStream.writeData({ - type: 'clear', - content: '', - }); - - const documentHandler = documentHandlersByArtifactKind.find( - (documentHandlerByArtifactKind) => - documentHandlerByArtifactKind.kind === kind, - ); - - if (!documentHandler) { - throw new Error(`No document handler found for kind: ${kind}`); - } - - await documentHandler.onCreateDocument({ - id, - title, - dataStream, - session, - }); - - dataStream.writeData({ type: 'finish', content: '' }); - - return { - id, - title, - kind, - content: 'A document was created and is now visible to the user.', - }; - }, - }); diff --git a/lib/ai/tools/get-weather.ts b/lib/ai/tools/get-weather.ts deleted file mode 100644 index 74ab5d8..0000000 --- a/lib/ai/tools/get-weather.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { tool } from 'ai'; -import { z } from 'zod'; - -export const getWeather = tool({ - description: 'Get the current weather at a location', - parameters: z.object({ - latitude: z.number(), - longitude: z.number(), - }), - execute: async ({ latitude, longitude }) => { - const response = await fetch( - `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}¤t=temperature_2m&hourly=temperature_2m&daily=sunrise,sunset&timezone=auto`, - ); - - const weatherData = await response.json(); - return weatherData; - }, -}); diff --git a/lib/ai/tools/request-suggestions.ts b/lib/ai/tools/request-suggestions.ts deleted file mode 100644 index cbfa386..0000000 --- a/lib/ai/tools/request-suggestions.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { z } from 'zod'; -import { Session } from 'next-auth'; -import { DataStreamWriter, streamObject, tool } from 'ai'; -import { getDocumentById, saveSuggestions } from '@/lib/db/queries'; -import { Suggestion } from '@/lib/db/schema'; -import { generateUUID } from '@/lib/utils'; -import { myProvider } from '../models'; - -interface RequestSuggestionsProps { - session: Session; - dataStream: DataStreamWriter; -} - -export const requestSuggestions = ({ - session, - dataStream, -}: RequestSuggestionsProps) => - tool({ - description: 'Request suggestions for a document', - parameters: z.object({ - documentId: z - .string() - .describe('The ID of the document to request edits'), - }), - execute: async ({ documentId }) => { - const document = await getDocumentById({ id: documentId }); - - if (!document || !document.content) { - return { - error: 'Document not found', - }; - } - - const suggestions: Array< - Omit - > = []; - - const { elementStream } = streamObject({ - model: myProvider.languageModel('artifact-model'), - system: - 'You are a help writing assistant. Given a piece of writing, please offer suggestions to improve the piece of writing and describe the change. It is very important for the edits to contain full sentences instead of just words. Max 5 suggestions.', - prompt: document.content, - output: 'array', - schema: z.object({ - originalSentence: z.string().describe('The original sentence'), - suggestedSentence: z.string().describe('The suggested sentence'), - description: z.string().describe('The description of the suggestion'), - }), - }); - - for await (const element of elementStream) { - const suggestion = { - originalText: element.originalSentence, - suggestedText: element.suggestedSentence, - description: element.description, - id: generateUUID(), - documentId: documentId, - isResolved: false, - }; - - dataStream.writeData({ - type: 'suggestion', - content: suggestion, - }); - - suggestions.push(suggestion); - } - - if (session.user?.id) { - const userId = session.user.id; - - await saveSuggestions({ - suggestions: suggestions.map((suggestion) => ({ - ...suggestion, - userId, - createdAt: new Date(), - documentCreatedAt: document.createdAt, - })), - }); - } - - return { - id: documentId, - title: document.title, - kind: document.kind, - message: 'Suggestions have been added to the document', - }; - }, - }); diff --git a/lib/ai/tools/update-document.ts b/lib/ai/tools/update-document.ts deleted file mode 100644 index 1f858fe..0000000 --- a/lib/ai/tools/update-document.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { DataStreamWriter, tool } from 'ai'; -import { Session } from 'next-auth'; -import { z } from 'zod'; -import { getDocumentById, saveDocument } from '@/lib/db/queries'; -import { documentHandlersByArtifactKind } from '@/lib/artifacts/server'; - -interface UpdateDocumentProps { - session: Session; - dataStream: DataStreamWriter; -} - -export const updateDocument = ({ session, dataStream }: UpdateDocumentProps) => - tool({ - description: 'Update a document with the given description.', - parameters: z.object({ - id: z.string().describe('The ID of the document to update'), - description: z - .string() - .describe('The description of changes that need to be made'), - }), - execute: async ({ id, description }) => { - const document = await getDocumentById({ id }); - - if (!document) { - return { - error: 'Document not found', - }; - } - - dataStream.writeData({ - type: 'clear', - content: document.title, - }); - - const documentHandler = documentHandlersByArtifactKind.find( - (documentHandlerByArtifactKind) => - documentHandlerByArtifactKind.kind === document.kind, - ); - - if (!documentHandler) { - throw new Error(`No document handler found for kind: ${document.kind}`); - } - - await documentHandler.onUpdateDocument({ - document, - description, - dataStream, - session, - }); - - dataStream.writeData({ type: 'finish', content: '' }); - - return { - id, - title: document.title, - kind: document.kind, - content: 'The document has been updated successfully.', - }; - }, - }); From b905669d742dd30137a3f03744db42784ab6c376 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:44:41 +0000 Subject: [PATCH 6/8] chore: remove images from nextjs config --- next.config.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/next.config.ts b/next.config.ts index 48e8e15..1d31b4c 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,18 +1,11 @@ -import type { NextConfig } from "next"; +import type { NextConfig } from 'next'; const nextConfig: NextConfig = { experimental: { ppr: true, }, - images: { - remotePatterns: [ - { - hostname: "avatar.vercel.sh", - }, - ], - }, webpack: (config) => { - config.externals.push("pino-pretty", "lokijs", "encoding"); + config.externals.push('pino-pretty', 'lokijs', 'encoding'); return config; }, }; From ead50eb5a6cf31004fc7bb56eda25ac899b731f5 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Fri, 28 Mar 2025 10:46:32 +0000 Subject: [PATCH 7/8] chore: remove database npm scripts --- package.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/package.json b/package.json index 53b82b8..7376444 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,6 @@ "lint": "next lint && biome lint --write --unsafe", "lint:fix": "next lint --fix && biome lint --write --unsafe", "format": "biome format --write", - "db:generate": "drizzle-kit generate", - "db:studio": "drizzle-kit studio", - "db:push": "drizzle-kit push", - "db:pull": "drizzle-kit pull", - "db:check": "drizzle-kit check", - "db:up": "drizzle-kit up", "prepare": "husky && husky install || true", "type-check": "tsc --noEmit" }, From ccdcae8ea8acd20f3d69f3133905efc567d1fe57 Mon Sep 17 00:00:00 2001 From: Mohammad Kermani Date: Sat, 29 Mar 2025 12:27:35 +0000 Subject: [PATCH 8/8] fix: redirect on signin/signout to clean up session --- app/config/index.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/config/index.tsx b/app/config/index.tsx index c01a021..404c78b 100644 --- a/app/config/index.tsx +++ b/app/config/index.tsx @@ -95,14 +95,13 @@ export const siweConfig = createSIWEConfig({ }, verifyMessage: async ({ message, signature }: SIWEVerifyMessageArgs) => { try { - const success = await signIn('credentials', { + await signIn('credentials', { message, - redirect: false, + redirectTo: '/', signature, - callbackUrl: '/protected', }); - return Boolean(success?.ok); + return true; } catch (error) { return false; } @@ -110,7 +109,8 @@ export const siweConfig = createSIWEConfig({ signOut: async () => { try { await signOut({ - redirect: false, + redirect: true, + redirectTo: '/', }); return true;