| import { z } from 'zod'; | |
| import type { getWeather } from './ai/tools/get-weather'; | |
| import type { createDocument } from './ai/tools/create-document'; | |
| import type { updateDocument } from './ai/tools/update-document'; | |
| import type { requestSuggestions } from './ai/tools/request-suggestions'; | |
| import type { InferUITool, UIMessage } from 'ai'; | |
| import type { ArtifactKind } from '@/components/artifact'; | |
| import type { Suggestion } from './db/schema'; | |
| export type DataPart = { type: 'append-message'; message: string }; | |
| export const messageMetadataSchema = z.object({ | |
| createdAt: z.string(), | |
| }); | |
| export type MessageMetadata = z.infer<typeof messageMetadataSchema>; | |
| type weatherTool = InferUITool<typeof getWeather>; | |
| type createDocumentTool = InferUITool<ReturnType<typeof createDocument>>; | |
| type updateDocumentTool = InferUITool<ReturnType<typeof updateDocument>>; | |
| type requestSuggestionsTool = InferUITool< | |
| ReturnType<typeof requestSuggestions> | |
| >; | |
| export type ChatTools = { | |
| getWeather: weatherTool; | |
| createDocument: createDocumentTool; | |
| updateDocument: updateDocumentTool; | |
| requestSuggestions: requestSuggestionsTool; | |
| }; | |
| export type CustomUIDataTypes = { | |
| textDelta: string; | |
| imageDelta: string; | |
| sheetDelta: string; | |
| codeDelta: string; | |
| suggestion: Suggestion; | |
| appendMessage: string; | |
| id: string; | |
| title: string; | |
| kind: ArtifactKind; | |
| clear: null; | |
| finish: null; | |
| }; | |
| export type ChatMessage = UIMessage< | |
| MessageMetadata, | |
| CustomUIDataTypes, | |
| ChatTools | |
| >; | |
| export interface Attachment { | |
| name: string; | |
| url: string; | |
| contentType: string; | |
| } | |