SYMBOL INDEX (597 symbols across 149 files) FILE: app/(auth)/actions.ts type LoginActionState (line 14) | type LoginActionState = { type RegisterActionState (line 44) | type RegisterActionState = { FILE: app/(auth)/api/auth/guest/route.ts function GET (line 6) | async function GET(request: Request) { FILE: app/(auth)/auth.ts type UserType (line 9) | type UserType = "guest" | "regular"; type Session (line 12) | interface Session extends DefaultSession { type User (line 19) | interface User { type JWT (line 27) | interface JWT extends DefaultJWT { method authorize (line 43) | async authorize({ email, password }: any) { method authorize (line 70) | async authorize() { method jwt (line 77) | jwt({ token, user }) { method session (line 85) | session({ session, token }) { FILE: app/(auth)/login/page.tsx function Page (line 13) | function Page() { FILE: app/(auth)/register/page.tsx function Page (line 12) | function Page() { FILE: app/(chat)/actions.ts function saveChatModelAsCookie (line 15) | async function saveChatModelAsCookie(model: string) { function generateTitleFromUserMessage (line 20) | async function generateTitleFromUserMessage({ function deleteTrailingMessages (line 36) | async function deleteTrailingMessages({ id }: { id: string }) { function updateChatVisibility (line 45) | async function updateChatVisibility({ FILE: app/(chat)/api/chat/[id]/stream/route.ts function GET (line 1) | function GET() { FILE: app/(chat)/api/chat/route.ts function getStreamContext (line 44) | function getStreamContext() { function POST (line 54) | async function POST(request: Request) { function DELETE (line 291) | async function DELETE(request: Request) { FILE: app/(chat)/api/chat/schema.ts type PostRequestBody (line 39) | type PostRequestBody = z.infer; FILE: app/(chat)/api/document/route.ts function GET (line 10) | async function GET(request: Request) { function POST (line 42) | async function POST(request: Request) { function DELETE (line 87) | async function DELETE(request: Request) { FILE: app/(chat)/api/files/upload/route.ts function POST (line 20) | async function POST(request: Request) { FILE: app/(chat)/api/history/route.ts function GET (line 6) | async function GET(request: NextRequest) { function DELETE (line 36) | async function DELETE() { FILE: app/(chat)/api/suggestions/route.ts function GET (line 5) | async function GET(request: Request) { FILE: app/(chat)/api/vote/route.ts function GET (line 5) | async function GET(request: Request) { function PATCH (line 37) | async function PATCH(request: Request) { FILE: app/(chat)/chat/[id]/page.tsx function Page (line 12) | function Page(props: { params: Promise<{ id: string }> }) { function ChatPage (line 20) | async function ChatPage({ params }: { params: Promise<{ id: string }> }) { FILE: app/(chat)/layout.tsx function Layout (line 9) | function Layout({ children }: { children: React.ReactNode }) { function SidebarWrapper (line 25) | async function SidebarWrapper({ children }: { children: React.ReactNode ... FILE: app/(chat)/page.tsx function Page (line 8) | function Page() { function NewChatPage (line 16) | async function NewChatPage() { FILE: app/layout.tsx constant LIGHT_THEME_COLOR (line 31) | const LIGHT_THEME_COLOR = "hsl(0 0% 100%)"; constant DARK_THEME_COLOR (line 32) | const DARK_THEME_COLOR = "hsl(240deg 10% 3.92%)"; constant THEME_COLOR_SCRIPT (line 33) | const THEME_COLOR_SCRIPT = `\ function RootLayout (line 51) | function RootLayout({ FILE: artifacts/actions.ts function getSuggestions (line 5) | async function getSuggestions({ documentId }: { documentId: string }) { FILE: artifacts/code/client.tsx constant OUTPUT_HANDLERS (line 19) | const OUTPUT_HANDLERS = { function detectRequiredHandlers (line 55) | function detectRequiredHandlers(code: string): string[] { type Metadata (line 65) | type Metadata = { FILE: artifacts/sheet/client.tsx type Metadata (line 13) | type Metadata = any; FILE: artifacts/text/client.tsx type TextArtifactMetadata (line 17) | type TextArtifactMetadata = { FILE: components/ai-elements/artifact.tsx type ArtifactProps (line 14) | type ArtifactProps = HTMLAttributes; type ArtifactHeaderProps (line 26) | type ArtifactHeaderProps = HTMLAttributes; type ArtifactCloseProps (line 41) | type ArtifactCloseProps = ComponentProps; type ArtifactTitleProps (line 65) | type ArtifactTitleProps = HTMLAttributes; type ArtifactDescriptionProps (line 74) | type ArtifactDescriptionProps = HTMLAttributes; type ArtifactActionsProps (line 83) | type ArtifactActionsProps = HTMLAttributes; type ArtifactActionProps (line 92) | type ArtifactActionProps = ComponentProps & { type ArtifactContentProps (line 140) | type ArtifactContentProps = HTMLAttributes; FILE: components/ai-elements/canvas.tsx type CanvasProps (line 5) | type CanvasProps = ReactFlowProps & { FILE: components/ai-elements/chain-of-thought.tsx type ChainOfThoughtContextValue (line 20) | type ChainOfThoughtContextValue = { type ChainOfThoughtProps (line 39) | type ChainOfThoughtProps = ComponentProps<"div"> & { type ChainOfThoughtHeaderProps (line 78) | type ChainOfThoughtHeaderProps = ComponentProps< type ChainOfThoughtStepProps (line 111) | type ChainOfThoughtStepProps = ComponentProps<"div"> & { type ChainOfThoughtSearchResultsProps (line 160) | type ChainOfThoughtSearchResultsProps = ComponentProps<"div">; type ChainOfThoughtSearchResultProps (line 171) | type ChainOfThoughtSearchResultProps = ComponentProps; type ChainOfThoughtContentProps (line 185) | type ChainOfThoughtContentProps = ComponentProps< type ChainOfThoughtImageProps (line 210) | type ChainOfThoughtImageProps = ComponentProps<"div"> & { FILE: components/ai-elements/checkpoint.tsx type CheckpointProps (line 14) | type CheckpointProps = HTMLAttributes; type CheckpointIconProps (line 33) | type CheckpointIconProps = LucideProps; type CheckpointTriggerProps (line 44) | type CheckpointTriggerProps = ComponentProps & { FILE: components/ai-elements/confirmation.tsx type ToolUIPartApproval (line 14) | type ToolUIPartApproval = type ConfirmationContextValue (line 42) | type ConfirmationContextValue = { type ConfirmationProps (line 61) | type ConfirmationProps = ComponentProps & { type ConfirmationTitleProps (line 83) | type ConfirmationTitleProps = ComponentProps; type ConfirmationRequestProps (line 92) | type ConfirmationRequestProps = { type ConfirmationAcceptedProps (line 107) | type ConfirmationAcceptedProps = { type ConfirmationRejectedProps (line 129) | type ConfirmationRejectedProps = { type ConfirmationActionsProps (line 151) | type ConfirmationActionsProps = ComponentProps<"div">; type ConfirmationActionProps (line 172) | type ConfirmationActionProps = ComponentProps; FILE: components/ai-elements/connection.tsx constant HALF (line 3) | const HALF = 0.5; FILE: components/ai-elements/controls.tsx type ControlsProps (line 7) | type ControlsProps = ComponentProps; FILE: components/ai-elements/conversation.tsx type ConversationProps (line 10) | type ConversationProps = ComponentProps; type ConversationContentProps (line 22) | type ConversationContentProps = ComponentProps< type ConversationEmptyStateProps (line 36) | type ConversationEmptyStateProps = ComponentProps<"div"> & { type ConversationScrollButtonProps (line 71) | type ConversationScrollButtonProps = ComponentProps; FILE: components/ai-elements/image.tsx type ImageProps (line 4) | type ImageProps = Experimental_GeneratedImage & { FILE: components/ai-elements/inline-citation.tsx type InlineCitationProps (line 26) | type InlineCitationProps = ComponentProps<"span">; type InlineCitationTextProps (line 38) | type InlineCitationTextProps = ComponentProps<"span">; type InlineCitationCardProps (line 50) | type InlineCitationCardProps = ComponentProps; type InlineCitationCardTriggerProps (line 56) | type InlineCitationCardTriggerProps = ComponentProps & { type InlineCitationCardBodyProps (line 83) | type InlineCitationCardBodyProps = ComponentProps<"div">; type InlineCitationCarouselProps (line 99) | type InlineCitationCarouselProps = ComponentProps; type InlineCitationCarouselContentProps (line 117) | type InlineCitationCarouselContentProps = ComponentProps<"div">; type InlineCitationCarouselItemProps (line 123) | type InlineCitationCarouselItemProps = ComponentProps<"div">; type InlineCitationCarouselHeaderProps (line 135) | type InlineCitationCarouselHeaderProps = ComponentProps<"div">; type InlineCitationCarouselIndexProps (line 150) | type InlineCitationCarouselIndexProps = ComponentProps<"div">; type InlineCitationCarouselPrevProps (line 187) | type InlineCitationCarouselPrevProps = ComponentProps<"button">; type InlineCitationCarouselNextProps (line 214) | type InlineCitationCarouselNextProps = ComponentProps<"button">; type InlineCitationSourceProps (line 241) | type InlineCitationSourceProps = ComponentProps<"div"> & { type InlineCitationQuoteProps (line 271) | type InlineCitationQuoteProps = ComponentProps<"blockquote">; FILE: components/ai-elements/loader.tsx type LoaderIconProps (line 4) | type LoaderIconProps = { type LoaderProps (line 82) | type LoaderProps = HTMLAttributes & { FILE: components/ai-elements/message.tsx type MessageProps (line 23) | type MessageProps = HTMLAttributes & { type MessageContentProps (line 38) | type MessageContentProps = HTMLAttributes; type MessageActionsProps (line 58) | type MessageActionsProps = ComponentProps<"div">; type MessageActionProps (line 70) | type MessageActionProps = ComponentProps & { type MessageBranchContextType (line 106) | type MessageBranchContextType = { type MessageBranchProps (line 131) | type MessageBranchProps = HTMLAttributes & { type MessageBranchContentProps (line 181) | type MessageBranchContentProps = HTMLAttributes; type MessageBranchSelectorProps (line 211) | type MessageBranchSelectorProps = HTMLAttributes & { type MessageBranchPreviousProps (line 236) | type MessageBranchPreviousProps = ComponentProps; type MessageBranchNextProps (line 259) | type MessageBranchNextProps = ComponentProps; type MessageBranchPageProps (line 283) | type MessageBranchPageProps = HTMLAttributes; type MessageResponseProps (line 304) | type MessageResponseProps = ComponentProps; type MessageAttachmentProps (line 321) | type MessageAttachmentProps = HTMLAttributes & { function MessageAttachment (line 327) | function MessageAttachment({ type MessageAttachmentsProps (line 406) | type MessageAttachmentsProps = ComponentProps<"div">; function MessageAttachments (line 408) | function MessageAttachments({ type MessageToolbarProps (line 430) | type MessageToolbarProps = ComponentProps<"div">; FILE: components/ai-elements/model-selector.tsx type ModelSelectorProps (line 22) | type ModelSelectorProps = ComponentProps; type ModelSelectorTriggerProps (line 28) | type ModelSelectorTriggerProps = ComponentProps; type ModelSelectorContentProps (line 34) | type ModelSelectorContentProps = ComponentProps & { type ModelSelectorDialogProps (line 52) | type ModelSelectorDialogProps = ComponentProps; type ModelSelectorInputProps (line 58) | type ModelSelectorInputProps = ComponentProps; type ModelSelectorListProps (line 67) | type ModelSelectorListProps = ComponentProps; type ModelSelectorEmptyProps (line 73) | type ModelSelectorEmptyProps = ComponentProps; type ModelSelectorGroupProps (line 79) | type ModelSelectorGroupProps = ComponentProps; type ModelSelectorItemProps (line 85) | type ModelSelectorItemProps = ComponentProps; type ModelSelectorShortcutProps (line 91) | type ModelSelectorShortcutProps = ComponentProps; type ModelSelectorSeparatorProps (line 97) | type ModelSelectorSeparatorProps = ComponentProps< type ModelSelectorLogoProps (line 105) | type ModelSelectorLogoProps = { type ModelSelectorLogoGroupProps (line 181) | type ModelSelectorLogoGroupProps = ComponentProps<"div">; type ModelSelectorNameProps (line 196) | type ModelSelectorNameProps = ComponentProps<"span">; FILE: components/ai-elements/node.tsx type NodeProps (line 14) | type NodeProps = ComponentProps & { type NodeHeaderProps (line 35) | type NodeHeaderProps = ComponentProps; type NodeTitleProps (line 44) | type NodeTitleProps = ComponentProps; type NodeDescriptionProps (line 48) | type NodeDescriptionProps = ComponentProps; type NodeActionProps (line 54) | type NodeActionProps = ComponentProps; type NodeContentProps (line 58) | type NodeContentProps = ComponentProps; type NodeFooterProps (line 64) | type NodeFooterProps = ComponentProps; FILE: components/ai-elements/open-in-chat.tsx type OpenInProps (line 196) | type OpenInProps = ComponentProps & { type OpenInContentProps (line 206) | type OpenInContentProps = ComponentProps; type OpenInItemProps (line 216) | type OpenInItemProps = ComponentProps; type OpenInLabelProps (line 222) | type OpenInLabelProps = ComponentProps; type OpenInSeparatorProps (line 228) | type OpenInSeparatorProps = ComponentProps; type OpenInTriggerProps (line 234) | type OpenInTriggerProps = ComponentProps; type OpenInChatGPTProps (line 247) | type OpenInChatGPTProps = ComponentProps; type OpenInClaudeProps (line 267) | type OpenInClaudeProps = ComponentProps; type OpenInT3Props (line 287) | type OpenInT3Props = ComponentProps; type OpenInSciraProps (line 307) | type OpenInSciraProps = ComponentProps; type OpenInv0Props (line 327) | type OpenInv0Props = ComponentProps; type OpenInCursorProps (line 347) | type OpenInCursorProps = ComponentProps; FILE: components/ai-elements/panel.tsx type PanelProps (line 5) | type PanelProps = ComponentProps; FILE: components/ai-elements/plan.tsx type PlanContextValue (line 24) | type PlanContextValue = { type PlanProps (line 38) | type PlanProps = ComponentProps & { type PlanHeaderProps (line 55) | type PlanHeaderProps = ComponentProps; type PlanTitleProps (line 65) | type PlanTitleProps = Omit< type PlanDescriptionProps (line 82) | type PlanDescriptionProps = Omit< type PlanActionProps (line 107) | type PlanActionProps = ComponentProps; type PlanContentProps (line 113) | type PlanContentProps = ComponentProps; type PlanFooterProps (line 121) | type PlanFooterProps = ComponentProps<"div">; type PlanTriggerProps (line 127) | type PlanTriggerProps = ComponentProps; FILE: components/ai-elements/prompt-input.tsx type AttachmentsContext (line 77) | type AttachmentsContext = { type TextInputContext (line 86) | type TextInputContext = { type PromptInputControllerProps (line 92) | type PromptInputControllerProps = { type PromptInputProviderProps (line 136) | type PromptInputProviderProps = PropsWithChildren<{ function PromptInputProvider (line 144) | function PromptInputProvider({ type PromptInputAttachmentProps (line 279) | type PromptInputAttachmentProps = HTMLAttributes & { function PromptInputAttachment (line 284) | function PromptInputAttachment({ type PromptInputAttachmentsProps (line 377) | type PromptInputAttachmentsProps = Omit< function PromptInputAttachments (line 384) | function PromptInputAttachments({ type PromptInputActionAddAttachmentsProps (line 407) | type PromptInputActionAddAttachmentsProps = ComponentProps< type PromptInputMessage (line 432) | type PromptInputMessage = { type PromptInputProps (line 437) | type PromptInputProps = Omit< type PromptInputBodyProps (line 818) | type PromptInputBodyProps = HTMLAttributes; type PromptInputTextareaProps (line 827) | type PromptInputTextareaProps = ComponentProps< type PromptInputHeaderProps (line 928) | type PromptInputHeaderProps = Omit< type PromptInputFooterProps (line 944) | type PromptInputFooterProps = Omit< type PromptInputToolsProps (line 960) | type PromptInputToolsProps = HTMLAttributes; type PromptInputButtonProps (line 969) | type PromptInputButtonProps = ComponentProps; type PromptInputActionMenuProps (line 991) | type PromptInputActionMenuProps = ComponentProps; type PromptInputActionMenuTriggerProps (line 996) | type PromptInputActionMenuTriggerProps = PromptInputButtonProps; type PromptInputActionMenuContentProps (line 1010) | type PromptInputActionMenuContentProps = ComponentProps< type PromptInputActionMenuItemProps (line 1020) | type PromptInputActionMenuItemProps = ComponentProps< type PromptInputSubmitProps (line 1033) | type PromptInputSubmitProps = ComponentProps & { type SpeechRecognition (line 1069) | interface SpeechRecognition extends EventTarget { type SpeechRecognitionEvent (line 1085) | interface SpeechRecognitionEvent extends Event { type SpeechRecognitionResultList (line 1090) | type SpeechRecognitionResultList = { type SpeechRecognitionResult (line 1096) | type SpeechRecognitionResult = { type SpeechRecognitionAlternative (line 1103) | type SpeechRecognitionAlternative = { type SpeechRecognitionErrorEvent (line 1108) | interface SpeechRecognitionErrorEvent extends Event { type Window (line 1113) | interface Window { type PromptInputSpeechButtonProps (line 1123) | type PromptInputSpeechButtonProps = ComponentProps< type PromptInputSelectProps (line 1229) | type PromptInputSelectProps = ComponentProps; type PromptInputSelectTriggerProps (line 1235) | type PromptInputSelectTriggerProps = ComponentProps< type PromptInputSelectContentProps (line 1253) | type PromptInputSelectContentProps = ComponentProps< type PromptInputSelectItemProps (line 1264) | type PromptInputSelectItemProps = ComponentProps; type PromptInputSelectValueProps (line 1273) | type PromptInputSelectValueProps = ComponentProps; type PromptInputHoverCardProps (line 1282) | type PromptInputHoverCardProps = ComponentProps; type PromptInputHoverCardTriggerProps (line 1292) | type PromptInputHoverCardTriggerProps = ComponentProps< type PromptInputHoverCardContentProps (line 1300) | type PromptInputHoverCardContentProps = ComponentProps< type PromptInputTabsListProps (line 1311) | type PromptInputTabsListProps = HTMLAttributes; type PromptInputTabProps (line 1318) | type PromptInputTabProps = HTMLAttributes; type PromptInputTabLabelProps (line 1325) | type PromptInputTabLabelProps = HTMLAttributes; type PromptInputTabBodyProps (line 1340) | type PromptInputTabBodyProps = HTMLAttributes; type PromptInputTabItemProps (line 1349) | type PromptInputTabItemProps = HTMLAttributes; type PromptInputCommandProps (line 1364) | type PromptInputCommandProps = ComponentProps; type PromptInputCommandInputProps (line 1371) | type PromptInputCommandInputProps = ComponentProps; type PromptInputCommandListProps (line 1380) | type PromptInputCommandListProps = ComponentProps; type PromptInputCommandEmptyProps (line 1389) | type PromptInputCommandEmptyProps = ComponentProps; type PromptInputCommandGroupProps (line 1398) | type PromptInputCommandGroupProps = ComponentProps; type PromptInputCommandItemProps (line 1407) | type PromptInputCommandItemProps = ComponentProps; type PromptInputCommandSeparatorProps (line 1416) | type PromptInputCommandSeparatorProps = ComponentProps< FILE: components/ai-elements/queue.tsx type QueueMessagePart (line 14) | type QueueMessagePart = { type QueueMessage (line 22) | type QueueMessage = { type QueueTodo (line 27) | type QueueTodo = { type QueueItemProps (line 34) | type QueueItemProps = ComponentProps<"li">; type QueueItemIndicatorProps (line 46) | type QueueItemIndicatorProps = ComponentProps<"span"> & { type QueueItemContentProps (line 67) | type QueueItemContentProps = ComponentProps<"span"> & { type QueueItemDescriptionProps (line 88) | type QueueItemDescriptionProps = ComponentProps<"div"> & { type QueueItemActionsProps (line 109) | type QueueItemActionsProps = ComponentProps<"div">; type QueueItemActionProps (line 118) | type QueueItemActionProps = Omit< type QueueItemAttachmentProps (line 139) | type QueueItemAttachmentProps = ComponentProps<"div">; type QueueItemImageProps (line 148) | type QueueItemImageProps = ComponentProps<"img">; type QueueItemFileProps (line 164) | type QueueItemFileProps = ComponentProps<"span">; type QueueListProps (line 183) | type QueueListProps = ComponentProps; type QueueSectionProps (line 198) | type QueueSectionProps = ComponentProps; type QueueSectionTriggerProps (line 209) | type QueueSectionTriggerProps = ComponentProps<"button">; type QueueSectionLabelProps (line 231) | type QueueSectionLabelProps = ComponentProps<"span"> & { type QueueSectionContentProps (line 254) | type QueueSectionContentProps = ComponentProps< type QueueProps (line 265) | type QueueProps = ComponentProps<"div">; FILE: components/ai-elements/reasoning.tsx type ReasoningContextValue (line 16) | type ReasoningContextValue = { type ReasoningProps (line 33) | type ReasoningProps = ComponentProps & { constant AUTO_CLOSE_DELAY (line 41) | const AUTO_CLOSE_DELAY = 300; constant MS_IN_S (line 42) | const MS_IN_S = 1000; type ReasoningTriggerProps (line 114) | type ReasoningTriggerProps = ComponentProps< type ReasoningContentProps (line 164) | type ReasoningContentProps = ComponentProps< FILE: components/ai-elements/shimmer.tsx type TextShimmerProps (line 13) | type TextShimmerProps = { FILE: components/ai-elements/sources.tsx type SourcesProps (line 12) | type SourcesProps = ComponentProps<"div">; type SourcesTriggerProps (line 21) | type SourcesTriggerProps = ComponentProps & { type SourcesContentProps (line 44) | type SourcesContentProps = ComponentProps; type SourceProps (line 60) | type SourceProps = ComponentProps<"a">; FILE: components/ai-elements/suggestion.tsx type SuggestionsProps (line 8) | type SuggestionsProps = ComponentProps; type SuggestionProps (line 23) | type SuggestionProps = Omit, "onClick"> & { FILE: components/ai-elements/task.tsx type TaskItemFileProps (line 12) | type TaskItemFileProps = ComponentProps<"div">; type TaskItemProps (line 30) | type TaskItemProps = ComponentProps<"div">; type TaskProps (line 38) | type TaskProps = ComponentProps; type TaskTriggerProps (line 48) | type TaskTriggerProps = ComponentProps & { type TaskContentProps (line 69) | type TaskContentProps = ComponentProps; FILE: components/ai-elements/tool.tsx type ToolProps (line 22) | type ToolProps = ComponentProps; type ToolHeaderProps (line 31) | type ToolHeaderProps = { type ToolContentProps (line 92) | type ToolContentProps = ComponentProps; type ToolInputProps (line 104) | type ToolInputProps = ComponentProps<"div"> & { type ToolOutputProps (line 119) | type ToolOutputProps = ComponentProps<"div"> & { FILE: components/ai-elements/toolbar.tsx type ToolbarProps (line 5) | type ToolbarProps = ComponentProps; FILE: components/ai-elements/web-preview.tsx type WebPreviewContextValue (line 21) | type WebPreviewContextValue = { type WebPreviewProps (line 38) | type WebPreviewProps = ComponentProps<"div"> & { type WebPreviewNavigationProps (line 80) | type WebPreviewNavigationProps = ComponentProps<"div">; type WebPreviewNavigationButtonProps (line 95) | type WebPreviewNavigationButtonProps = ComponentProps & { type WebPreviewUrlProps (line 127) | type WebPreviewUrlProps = ComponentProps; type WebPreviewBodyProps (line 168) | type WebPreviewBodyProps = ComponentProps<"iframe"> & { type WebPreviewConsoleProps (line 194) | type WebPreviewConsoleProps = ComponentProps<"div"> & { FILE: components/app-sidebar.tsx function AppSidebar (line 37) | function AppSidebar({ user }: { user: User | undefined }) { FILE: components/artifact-actions.tsx type ArtifactActionsProps (line 9) | type ArtifactActionsProps = { function PureArtifactActions (line 19) | function PureArtifactActions({ FILE: components/artifact-close-button.tsx function PureArtifactCloseButton (line 6) | function PureArtifactCloseButton() { FILE: components/artifact-messages.tsx type ArtifactMessagesProps (line 11) | type ArtifactMessagesProps = { function PureArtifactMessages (line 23) | function PureArtifactMessages({ function areEqual (line 88) | function areEqual( FILE: components/artifact.tsx type ArtifactKind (line 38) | type ArtifactKind = (typeof artifactDefinitions)[number]["kind"]; type UIArtifact (line 40) | type UIArtifact = { function PureArtifact (line 55) | function PureArtifact({ FILE: components/auth-form.tsx function AuthForm (line 6) | function AuthForm({ FILE: components/chat-header.tsx function PureChatHeader (line 13) | function PureChatHeader({ FILE: components/chat.tsx function Chat (line 35) | function Chat({ FILE: components/code-editor.tsx type EditorProps (line 11) | type EditorProps = { function PureCodeEditor (line 20) | function PureCodeEditor({ content, onSaveContent, status }: EditorProps) { function areEqual (line 101) | function areEqual(prevProps: EditorProps, nextProps: EditorProps) { FILE: components/console.tsx type ConsoleOutputContent (line 15) | type ConsoleOutputContent = { type ConsoleOutput (line 20) | type ConsoleOutput = { type ConsoleProps (line 26) | type ConsoleProps = { function Console (line 31) | function Console({ consoleOutputs, setConsoleOutputs }: ConsoleProps) { FILE: components/create-artifact.tsx type ArtifactActionContext (line 8) | type ArtifactActionContext = { type ArtifactAction (line 18) | type ArtifactAction = { type ArtifactToolbarContext (line 26) | type ArtifactToolbarContext = { type ArtifactToolbarItem (line 30) | type ArtifactToolbarItem = { type ArtifactContent (line 36) | type ArtifactContent = { type InitializeParameters (line 52) | type InitializeParameters = { type ArtifactConfig (line 57) | type ArtifactConfig = { class Artifact (line 71) | class Artifact { method constructor (line 84) | constructor(config: ArtifactConfig) { FILE: components/data-stream-handler.tsx function DataStreamHandler (line 11) | function DataStreamHandler() { FILE: components/data-stream-provider.tsx type DataStreamContextValue (line 8) | type DataStreamContextValue = { function DataStreamProvider (line 17) | function DataStreamProvider({ function useDataStream (line 35) | function useDataStream() { FILE: components/diffview.tsx method toDOM (line 24) | toDOM(mark) { function computeDiff (line 45) | function computeDiff(oldDoc: ProsemirrorNode, newDoc: ProsemirrorNode) { type DiffEditorProps (line 49) | type DiffEditorProps = { FILE: components/document-preview.tsx type DocumentPreviewProps (line 25) | type DocumentPreviewProps = { function DocumentPreview (line 31) | function DocumentPreview({ FILE: components/document.tsx type DocumentToolResultProps (line 25) | type DocumentToolResultProps = { function PureDocumentToolResult (line 31) | function PureDocumentToolResult({ type DocumentToolCallProps (line 88) | type DocumentToolCallProps = { function PureDocumentToolCall (line 97) | function PureDocumentToolCall({ FILE: components/elements/actions.tsx type ActionsProps (line 13) | type ActionsProps = ComponentProps<"div">; type ActionProps (line 21) | type ActionProps = ComponentProps & { FILE: components/elements/branch.tsx type BranchContextType (line 10) | type BranchContextType = { type BranchProps (line 31) | type BranchProps = HTMLAttributes & { type BranchMessagesProps (line 81) | type BranchMessagesProps = HTMLAttributes; type BranchSelectorProps (line 111) | type BranchSelectorProps = HTMLAttributes & { type BranchPreviousProps (line 139) | type BranchPreviousProps = ComponentProps; type BranchNextProps (line 169) | type BranchNextProps = ComponentProps; type BranchPageProps (line 199) | type BranchPageProps = HTMLAttributes; FILE: components/elements/conversation.tsx type ConversationProps (line 10) | type ConversationProps = ComponentProps; type ConversationContentProps (line 25) | type ConversationContentProps = ComponentProps< type ConversationScrollButtonProps (line 36) | type ConversationScrollButtonProps = ComponentProps; FILE: components/elements/image.tsx type ImageProps (line 4) | type ImageProps = Experimental_GeneratedImage & { FILE: components/elements/inline-citation.tsx type InlineCitationProps (line 26) | type InlineCitationProps = ComponentProps<"span">; type InlineCitationTextProps (line 38) | type InlineCitationTextProps = ComponentProps<"span">; type InlineCitationCardProps (line 50) | type InlineCitationCardProps = ComponentProps; type InlineCitationCardTriggerProps (line 56) | type InlineCitationCardTriggerProps = ComponentProps & { type InlineCitationCardBodyProps (line 83) | type InlineCitationCardBodyProps = ComponentProps<"div">; type InlineCitationCarouselProps (line 99) | type InlineCitationCarouselProps = ComponentProps; type InlineCitationCarouselContentProps (line 117) | type InlineCitationCarouselContentProps = ComponentProps<"div">; type InlineCitationCarouselItemProps (line 123) | type InlineCitationCarouselItemProps = ComponentProps<"div">; type InlineCitationCarouselHeaderProps (line 135) | type InlineCitationCarouselHeaderProps = ComponentProps<"div">; type InlineCitationCarouselIndexProps (line 150) | type InlineCitationCarouselIndexProps = ComponentProps<"div">; type InlineCitationCarouselPrevProps (line 187) | type InlineCitationCarouselPrevProps = ComponentProps<"button">; type InlineCitationCarouselNextProps (line 214) | type InlineCitationCarouselNextProps = ComponentProps<"button">; type InlineCitationSourceProps (line 241) | type InlineCitationSourceProps = ComponentProps<"div"> & { type InlineCitationQuoteProps (line 271) | type InlineCitationQuoteProps = ComponentProps<"blockquote">; FILE: components/elements/loader.tsx type LoaderIconProps (line 4) | type LoaderIconProps = { type LoaderProps (line 82) | type LoaderProps = HTMLAttributes & { FILE: components/elements/message.tsx type MessageProps (line 6) | type MessageProps = HTMLAttributes & { type MessageContentProps (line 22) | type MessageContentProps = HTMLAttributes; type MessageAvatarProps (line 43) | type MessageAvatarProps = ComponentProps & { FILE: components/elements/prompt-input.tsx type PromptInputProps (line 22) | type PromptInputProps = HTMLAttributes; type PromptInputTextareaProps (line 34) | type PromptInputTextareaProps = ComponentProps & { type PromptInputToolbarProps (line 99) | type PromptInputToolbarProps = HTMLAttributes; type PromptInputToolsProps (line 111) | type PromptInputToolsProps = HTMLAttributes; type PromptInputButtonProps (line 127) | type PromptInputButtonProps = ComponentProps; type PromptInputSubmitProps (line 154) | type PromptInputSubmitProps = ComponentProps & { type PromptInputModelSelectProps (line 189) | type PromptInputModelSelectProps = ComponentProps; type PromptInputModelSelectTriggerProps (line 195) | type PromptInputModelSelectTriggerProps = ComponentProps< type PromptInputModelSelectContentProps (line 214) | type PromptInputModelSelectContentProps = ComponentProps< type PromptInputModelSelectItemProps (line 225) | type PromptInputModelSelectItemProps = ComponentProps; type PromptInputModelSelectValueProps (line 234) | type PromptInputModelSelectValueProps = ComponentProps< FILE: components/elements/reasoning.tsx type ReasoningContextValue (line 15) | type ReasoningContextValue = { type ReasoningProps (line 32) | type ReasoningProps = ComponentProps & { constant AUTO_CLOSE_DELAY (line 40) | const AUTO_CLOSE_DELAY = 500; constant MS_IN_S (line 41) | const MS_IN_S = 1000; type ReasoningTriggerProps (line 113) | type ReasoningTriggerProps = ComponentProps; type ReasoningContentProps (line 148) | type ReasoningContentProps = ComponentProps< FILE: components/elements/response.tsx type ResponseProps (line 7) | type ResponseProps = ComponentProps; function Response (line 9) | function Response({ className, children, ...props }: ResponseProps) { FILE: components/elements/source.tsx type SourcesProps (line 12) | type SourcesProps = ComponentProps<"div">; type SourcesTriggerProps (line 21) | type SourcesTriggerProps = ComponentProps & { type SourcesContentProps (line 41) | type SourcesContentProps = ComponentProps; type SourceProps (line 57) | type SourceProps = ComponentProps<"a">; FILE: components/elements/suggestion.tsx type SuggestionsProps (line 8) | type SuggestionsProps = ComponentProps; type SuggestionProps (line 23) | type SuggestionProps = Omit, "onClick"> & { FILE: components/elements/task.tsx type TaskItemFileProps (line 12) | type TaskItemFileProps = ComponentProps<"div">; type TaskItemProps (line 30) | type TaskItemProps = ComponentProps<"div">; type TaskProps (line 38) | type TaskProps = ComponentProps; type TaskTriggerProps (line 55) | type TaskTriggerProps = ComponentProps & { type TaskContentProps (line 76) | type TaskContentProps = ComponentProps; FILE: components/elements/tool.tsx type ToolProps (line 21) | type ToolProps = ComponentProps; type ToolHeaderProps (line 30) | type ToolHeaderProps = { type ToolContentProps (line 92) | type ToolContentProps = ComponentProps; type ToolInputProps (line 104) | type ToolInputProps = ComponentProps<"div"> & { type ToolOutputProps (line 119) | type ToolOutputProps = ComponentProps<"div"> & { FILE: components/elements/web-preview.tsx type WebPreviewContextValue (line 21) | type WebPreviewContextValue = { type WebPreviewProps (line 38) | type WebPreviewProps = ComponentProps<"div"> & { type WebPreviewNavigationProps (line 80) | type WebPreviewNavigationProps = ComponentProps<"div">; type WebPreviewNavigationButtonProps (line 95) | type WebPreviewNavigationButtonProps = ComponentProps & { type WebPreviewUrlProps (line 127) | type WebPreviewUrlProps = ComponentProps; type WebPreviewBodyProps (line 157) | type WebPreviewBodyProps = ComponentProps<"iframe"> & { type WebPreviewConsoleProps (line 183) | type WebPreviewConsoleProps = ComponentProps<"div"> & { FILE: components/image-editor.tsx type ImageEditorProps (line 4) | type ImageEditorProps = { function ImageEditor (line 13) | function ImageEditor({ FILE: components/message-actions.tsx function PureMessageActions (line 11) | function PureMessageActions({ FILE: components/message-editor.tsx type MessageEditorProps (line 18) | type MessageEditorProps = { function MessageEditor (line 25) | function MessageEditor({ FILE: components/message-reasoning.tsx type MessageReasoningProps (line 10) | type MessageReasoningProps = { function MessageReasoning (line 15) | function MessageReasoning({ FILE: components/messages.tsx type MessagesProps (line 10) | type MessagesProps = { function PureMessages (line 23) | function PureMessages({ FILE: components/multimodal-input.tsx function setCookie (line 50) | function setCookie(name: string, value: string) { function PureMultimodalInput (line 56) | function PureMultimodalInput({ function PureAttachmentsButton (line 434) | function PureAttachmentsButton({ function PureModelSelectorCompact (line 464) | function PureModelSelectorCompact({ function PureStopButton (line 536) | function PureStopButton({ FILE: components/sheet-editor.tsx type SheetEditorProps (line 11) | type SheetEditorProps = { constant MIN_ROWS (line 19) | const MIN_ROWS = 50; constant MIN_COLS (line 20) | const MIN_COLS = 26; function areEqual (line 130) | function areEqual(prevProps: SheetEditorProps, nextProps: SheetEditorPro... FILE: components/sidebar-history.tsx type GroupedChats (line 31) | type GroupedChats = { type ChatHistory (line 39) | type ChatHistory = { constant PAGE_SIZE (line 44) | const PAGE_SIZE = 20; function getChatHistoryPaginationKey (line 79) | function getChatHistoryPaginationKey( function SidebarHistory (line 100) | function SidebarHistory({ user }: { user: User | undefined }) { FILE: components/sidebar-toggle.tsx function SidebarToggle (line 13) | function SidebarToggle({ FILE: components/sidebar-user-nav.tsx function SidebarUserNav (line 25) | function SidebarUserNav({ user }: { user: User }) { FILE: components/submit-button.tsx function SubmitButton (line 9) | function SubmitButton({ FILE: components/suggested-actions.tsx type SuggestedActionsProps (line 10) | type SuggestedActionsProps = { function PureSuggestedActions (line 16) | function PureSuggestedActions({ chatId, sendMessage }: SuggestedActionsP... FILE: components/text-editor.tsx type EditorProps (line 26) | type EditorProps = { function PureEditor (line 35) | function PureEditor({ function areEqual (line 153) | function areEqual(prevProps: EditorProps, nextProps: EditorProps) { FILE: components/theme-provider.tsx function ThemeProvider (line 6) | function ThemeProvider({ children, ...props }: ThemeProviderProps) { FILE: components/toast.tsx function toast (line 13) | function toast(props: Omit) { function Toast (line 19) | function Toast(props: ToastProps) { type ToastProps (line 71) | type ToastProps = { FILE: components/toolbar.tsx type ToolProps (line 32) | type ToolProps = { FILE: components/ui/badge.tsx type BadgeProps (line 26) | interface BadgeProps function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: components/ui/button-group.tsx function ButtonGroup (line 24) | function ButtonGroup({ function ButtonGroupText (line 40) | function ButtonGroupText({ function ButtonGroupSeparator (line 60) | function ButtonGroupSeparator({ FILE: components/ui/button.tsx type ButtonProps (line 37) | interface ButtonProps FILE: components/ui/carousel.tsx type CarouselApi (line 12) | type CarouselApi = UseEmblaCarouselType[1] type UseCarouselParameters (line 13) | type UseCarouselParameters = Parameters type CarouselOptions (line 14) | type CarouselOptions = UseCarouselParameters[0] type CarouselPlugin (line 15) | type CarouselPlugin = UseCarouselParameters[1] type CarouselProps (line 17) | type CarouselProps = { type CarouselContextProps (line 24) | type CarouselContextProps = { function useCarousel (line 35) | function useCarousel() { FILE: components/ui/input-group.tsx function InputGroup (line 11) | function InputGroup({ className, ...props }: React.ComponentProps<"div">) { function InputGroupAddon (line 60) | function InputGroupAddon({ function InputGroupButton (line 100) | function InputGroupButton({ function InputGroupText (line 119) | function InputGroupText({ className, ...props }: React.ComponentProps<"s... function InputGroupInput (line 131) | function InputGroupInput({ function InputGroupTextarea (line 147) | function InputGroupTextarea({ FILE: components/ui/sheet.tsx type SheetContentProps (line 52) | interface SheetContentProps FILE: components/ui/sidebar.tsx constant SIDEBAR_COOKIE_NAME (line 27) | const SIDEBAR_COOKIE_NAME = "sidebar_state"; constant SIDEBAR_COOKIE_MAX_AGE (line 28) | const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7; constant SIDEBAR_WIDTH (line 29) | const SIDEBAR_WIDTH = "16rem"; constant SIDEBAR_WIDTH_MOBILE (line 30) | const SIDEBAR_WIDTH_MOBILE = "18rem"; constant SIDEBAR_WIDTH_ICON (line 31) | const SIDEBAR_WIDTH_ICON = "3rem"; constant SIDEBAR_KEYBOARD_SHORTCUT (line 32) | const SIDEBAR_KEYBOARD_SHORTCUT = "b"; type SidebarContextProps (line 34) | type SidebarContextProps = { function useSidebar (line 46) | function useSidebar() { FILE: components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: components/version-footer.tsx type VersionFooterProps (line 14) | type VersionFooterProps = { FILE: components/visibility-selector.tsx type VisibilityType (line 20) | type VisibilityType = "private" | "public"; function VisibilitySelector (line 42) | function VisibilitySelector({ FILE: components/weather.tsx type WeatherAtLocation (line 83) | type WeatherAtLocation = { constant SAMPLE (line 122) | const SAMPLE = { function n (line 277) | function n(num: number): number { function Weather (line 281) | function Weather({ FILE: hooks/use-artifact.ts type Selector (line 22) | type Selector = (state: UIArtifact) => T; function useArtifactSelector (line 24) | function useArtifactSelector(selector: Selector) { function useArtifact (line 39) | function useArtifact() { FILE: hooks/use-auto-resume.ts type UseAutoResumeParams (line 8) | type UseAutoResumeParams = { function useAutoResume (line 15) | function useAutoResume({ FILE: hooks/use-chat-visibility.ts function useChatVisibility (line 13) | function useChatVisibility({ FILE: hooks/use-messages.tsx function useMessages (line 6) | function useMessages({ FILE: hooks/use-mobile.ts constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768 function useIsMobile (line 5) | function useIsMobile() { FILE: hooks/use-scroll-to-bottom.tsx function useScrollToBottom (line 3) | function useScrollToBottom() { FILE: instrumentation.ts function register (line 3) | function register() { FILE: lib/ai/entitlements.ts type Entitlements (line 3) | type Entitlements = { FILE: lib/ai/models.mock.ts function getResponseForPrompt (line 14) | function getResponseForPrompt(prompt: unknown): string { method start (line 50) | async start(controller) { method start (line 94) | async start(controller) { method start (line 142) | start(controller) { FILE: lib/ai/models.ts constant DEFAULT_CHAT_MODEL (line 2) | const DEFAULT_CHAT_MODEL = "openai/gpt-4.1-mini"; type ChatModel (line 4) | type ChatModel = { FILE: lib/ai/prompts.ts type RequestHints (line 44) | type RequestHints = { FILE: lib/ai/providers.ts constant THINKING_SUFFIX_REGEX (line 9) | const THINKING_SUFFIX_REGEX = /-thinking$/; function getLanguageModel (line 30) | function getLanguageModel(modelId: string) { function getTitleModel (line 51) | function getTitleModel() { function getArtifactModel (line 58) | function getArtifactModel() { FILE: lib/ai/tools/create-document.ts type CreateDocumentProps (line 11) | type CreateDocumentProps = { FILE: lib/ai/tools/get-weather.ts function geocodeCity (line 4) | async function geocodeCity( FILE: lib/ai/tools/request-suggestions.ts type RequestSuggestionsProps (line 10) | type RequestSuggestionsProps = { FILE: lib/ai/tools/update-document.ts type UpdateDocumentProps (line 8) | type UpdateDocumentProps = { FILE: lib/artifacts/server.ts type SaveDocumentProps (line 11) | type SaveDocumentProps = { type CreateDocumentCallbackProps (line 19) | type CreateDocumentCallbackProps = { type UpdateDocumentCallbackProps (line 26) | type UpdateDocumentCallbackProps = { type DocumentHandler (line 33) | type DocumentHandler = { function createDocumentHandler (line 39) | function createDocumentHandler(config: { FILE: lib/constants.ts constant DUMMY_PASSWORD (line 13) | const DUMMY_PASSWORD = generateDummyPassword(); FILE: lib/db/migrations/0000_keen_devos.sql type "Chat" (line 1) | CREATE TABLE IF NOT EXISTS "Chat" ( type "User" (line 8) | CREATE TABLE IF NOT EXISTS "User" ( FILE: lib/db/migrations/0001_sparkling_blue_marvel.sql type "Suggestion" (line 1) | CREATE TABLE IF NOT EXISTS "Suggestion" ( type "Document" (line 14) | CREATE TABLE IF NOT EXISTS "Document" ( FILE: lib/db/migrations/0002_wandering_riptide.sql type "Message" (line 1) | CREATE TABLE IF NOT EXISTS "Message" ( type "Vote" (line 9) | CREATE TABLE IF NOT EXISTS "Vote" ( FILE: lib/db/migrations/0005_wooden_whistler.sql type "Message_v2" (line 1) | CREATE TABLE IF NOT EXISTS "Message_v2" ( type "Vote_v2" (line 10) | CREATE TABLE IF NOT EXISTS "Vote_v2" ( FILE: lib/db/migrations/0006_marvelous_frog_thor.sql type "Stream" (line 1) | CREATE TABLE IF NOT EXISTS "Stream" ( FILE: lib/db/queries.ts function getUser (line 44) | async function getUser(email: string): Promise { function createUser (line 55) | async function createUser(email: string, password: string) { function createGuestUser (line 65) | async function createGuestUser() { function saveChat (line 82) | async function saveChat({ function deleteChatById (line 106) | async function deleteChatById({ id }: { id: string }) { function deleteAllChatsByUserId (line 125) | async function deleteAllChatsByUserId({ userId }: { userId: string }) { function getChatsByUserId (line 156) | async function getChatsByUserId({ function getChatById (line 232) | async function getChatById({ id }: { id: string }) { function saveMessages (line 245) | async function saveMessages({ messages }: { messages: DBMessage[] }) { function updateMessage (line 253) | async function updateMessage({ function getMessagesByChatId (line 267) | async function getMessagesByChatId({ id }: { id: string }) { function voteMessage (line 282) | async function voteMessage({ function getVotesByChatId (line 313) | async function getVotesByChatId({ id }: { id: string }) { function saveDocument (line 324) | async function saveDocument({ function getDocumentsById (line 354) | async function getDocumentsById({ id }: { id: string }) { function getDocumentById (line 371) | async function getDocumentById({ id }: { id: string }) { function deleteDocumentsByIdAfterTimestamp (line 388) | async function deleteDocumentsByIdAfterTimestamp({ function saveSuggestions (line 417) | async function saveSuggestions({ function getSuggestionsByDocumentId (line 432) | async function getSuggestionsByDocumentId({ function getMessageById (line 450) | async function getMessageById({ id }: { id: string }) { function deleteMessagesByChatIdAfterTimestamp (line 461) | async function deleteMessagesByChatIdAfterTimestamp({ function updateChatVisibilityById (line 501) | async function updateChatVisibilityById({ function updateChatTitleById (line 518) | async function updateChatTitleById({ function getMessageCountByUserId (line 533) | async function getMessageCountByUserId({ function createStreamId (line 567) | async function createStreamId({ function getStreamIdsByChatId (line 586) | async function getStreamIdsByChatId({ chatId }: { chatId: string }) { FILE: lib/db/schema.ts type User (line 20) | type User = InferSelectModel; type Chat (line 34) | type Chat = InferSelectModel; type MessageDeprecated (line 48) | type MessageDeprecated = InferSelectModel; type DBMessage (line 61) | type DBMessage = InferSelectModel; type VoteDeprecated (line 83) | type VoteDeprecated = InferSelectModel; type Vote (line 103) | type Vote = InferSelectModel; type Document (line 126) | type Document = InferSelectModel; type Suggestion (line 152) | type Suggestion = InferSelectModel; type Stream (line 170) | type Stream = InferSelectModel; FILE: lib/db/utils.ts function generateHashedPassword (line 4) | function generateHashedPassword(password: string) { function generateDummyPassword (line 11) | function generateDummyPassword() { FILE: lib/editor/config.ts function headingRule (line 16) | function headingRule(level: number) { FILE: lib/editor/diff.js function mapDocumentNode (line 446) | function mapDocumentNode(node, mapper) { FILE: lib/editor/react-renderer.tsx class ReactRenderer (line 4) | class ReactRenderer { method render (line 5) | static render(component: React.ReactElement, dom: HTMLElement) { FILE: lib/editor/suggestions.tsx type UISuggestion (line 13) | interface UISuggestion extends Suggestion { type Position (line 18) | type Position = { function findPositionsInDoc (line 23) | function findPositionsInDoc(doc: Node, searchText: string): Position | n... function projectWithPositions (line 46) | function projectWithPositions( function createSuggestionWidget (line 69) | function createSuggestionWidget( method init (line 138) | init() { method apply (line 141) | apply(tr, state) { method decorations (line 154) | decorations(state) { FILE: lib/errors.ts type ErrorType (line 1) | type ErrorType = type Surface (line 9) | type Surface = type ErrorCode (line 21) | type ErrorCode = `${ErrorType}:${Surface}`; type ErrorVisibility (line 23) | type ErrorVisibility = "response" | "log" | "none"; class ChatbotError (line 38) | class ChatbotError extends Error { method constructor (line 43) | constructor(errorCode: ErrorCode, cause?: string) { method toResponse (line 55) | toResponse() { function getMessageByErrorCode (line 78) | function getMessageByErrorCode(errorCode: ErrorCode): string { function getStatusCodeByType (line 120) | function getStatusCodeByType(type: ErrorType) { FILE: lib/ratelimit.ts constant MAX_MESSAGES (line 6) | const MAX_MESSAGES = 10; constant TTL_SECONDS (line 7) | const TTL_SECONDS = 60 * 60; function getClient (line 11) | function getClient() { function checkIpRateLimit (line 22) | async function checkIpRateLimit(ip: string | undefined) { FILE: lib/types.ts type DataPart (line 10) | type DataPart = { type: "append-message"; message: string }; type MessageMetadata (line 16) | type MessageMetadata = z.infer; type weatherTool (line 18) | type weatherTool = InferUITool; type createDocumentTool (line 19) | type createDocumentTool = InferUITool>; type updateDocumentTool (line 20) | type updateDocumentTool = InferUITool>; type requestSuggestionsTool (line 21) | type requestSuggestionsTool = InferUITool< type ChatTools (line 25) | type ChatTools = { type CustomUIDataTypes (line 32) | type CustomUIDataTypes = { type ChatMessage (line 47) | type ChatMessage = UIMessage< type Attachment (line 53) | type Attachment = { FILE: lib/utils.ts function cn (line 14) | function cn(...inputs: ClassValue[]) { function fetchWithErrorHandlers (line 29) | async function fetchWithErrorHandlers( function getLocalStorage (line 51) | function getLocalStorage(key: string) { function generateUUID (line 58) | function generateUUID(): string { type ResponseMessageWithoutId (line 66) | type ResponseMessageWithoutId = ToolModelMessage | AssistantModelMessage; type ResponseMessage (line 67) | type ResponseMessage = ResponseMessageWithoutId & { id: string }; function getMostRecentUserMessage (line 69) | function getMostRecentUserMessage(messages: UIMessage[]) { function getDocumentTimestampByIndex (line 74) | function getDocumentTimestampByIndex( function getTrailingMessageId (line 84) | function getTrailingMessageId({ function sanitizeText (line 96) | function sanitizeText(text: string) { function convertToUIMessages (line 100) | function convertToUIMessages(messages: DBMessage[]): ChatMessage[] { function getTextFromMessage (line 111) | function getTextFromMessage(message: ChatMessage | UIMessage): string { FILE: playwright.config.ts constant PORT (line 14) | const PORT = process.env.PORT || 3000; FILE: proxy.ts function proxy (line 5) | async function proxy(request: NextRequest) { FILE: tests/e2e/api.test.ts constant CHAT_URL_REGEX (line 3) | const CHAT_URL_REGEX = /\/chat\/[\w-]+/; constant ERROR_TEXT_REGEX (line 4) | const ERROR_TEXT_REGEX = /error|failed|trouble/i; FILE: tests/e2e/model-selector.test.ts constant MODEL_BUTTON_REGEX (line 3) | const MODEL_BUTTON_REGEX = /Gemini|Claude|GPT|Grok/i; FILE: tests/fixtures.ts type Fixtures (line 4) | type Fixtures = { FILE: tests/helpers.ts function generateRandomTestUser (line 4) | function generateRandomTestUser() { function generateTestMessage (line 14) | function generateTestMessage() { FILE: tests/pages/chat.ts constant MODEL_BUTTON_REGEX (line 3) | const MODEL_BUTTON_REGEX = /Gemini|Claude|GPT|Grok/i; class ChatPage (line 5) | class ChatPage { method constructor (line 8) | constructor(page: Page) { method goto (line 12) | async goto() { method createNewChat (line 16) | async createNewChat() { method getInput (line 21) | getInput() { method typeMessage (line 25) | async typeMessage(message: string) { method sendMessage (line 30) | async sendMessage() { method sendUserMessage (line 34) | async sendUserMessage(message: string) { method getSendButton (line 39) | getSendButton() { method getStopButton (line 43) | getStopButton() { method clickSuggestedAction (line 47) | async clickSuggestedAction(index = 0) { method openModelSelector (line 54) | async openModelSelector() { method selectModel (line 62) | async selectModel(modelName: string) { method searchModels (line 67) | async searchModels(query: string) { FILE: tests/prompts/utils.ts function getResponseChunksByPrompt (line 8) | function getResponseChunksByPrompt(