SYMBOL INDEX (94 symbols across 41 files) FILE: src/app/api/chat/route.ts function POST (line 12) | async function POST(req: NextRequest) { FILE: src/app/api/join-wait/route.ts function postHandler (line 4) | async function postHandler(req: NextRequest) { constant POST (line 50) | const POST = postHandler; FILE: src/app/blocked/page.tsx function Blocked (line 1) | function Blocked() { FILE: src/app/layout.tsx function RootLayout (line 52) | function RootLayout({ FILE: src/app/page.tsx function Home (line 4) | function Home() { FILE: src/app/waitlist/page.tsx function Page (line 3) | function Page() { FILE: src/components/assistant-message.tsx function ErrorMessage (line 10) | function ErrorMessage({ content }: { content: string }) { FILE: src/components/image-section.tsx function ImagePreload (line 19) | function ImagePreload({ images }: { images: string[] }) { FILE: src/components/landing/hero.tsx function HeroLanding (line 8) | async function HeroLanding() { FILE: src/components/landing/preview-landing.tsx function PreviewLanding (line 5) | function PreviewLanding() { FILE: src/components/landing/typing-title.tsx function TypingTitle (line 30) | function TypingTitle() { FILE: src/components/landing/wailtlist.tsx function WailtList (line 12) | function WailtList() { FILE: src/components/magicui/typing-animation.tsx type TypingAnimationProps (line 7) | interface TypingAnimationProps { function TypingAnimation (line 13) | function TypingAnimation({ FILE: src/components/message.tsx function chunkString (line 10) | function chunkString(str: string): string[] { type MessageProps (line 16) | interface MessageProps { FILE: src/components/mode-toggle.tsx function ModeToggle (line 15) | function ModeToggle() { FILE: src/components/more-results.tsx function MoreResults (line 9) | function MoreResults({ FILE: src/components/nav.tsx function Navbar (line 31) | function Navbar() { FILE: src/components/related-questions.tsx function RelatedQuestions (line 3) | function RelatedQuestions({ FILE: src/components/search-results.tsx function SearchResults (line 41) | function SearchResults({ results }: { results: SearchResult[] }) { FILE: src/components/shared/icons.tsx type Icon (line 30) | type Icon = LucideIcon; FILE: src/components/shared/max-width-wrapper.tsx function MaxWidthWrapper (line 5) | function MaxWidthWrapper({ FILE: src/components/theme-provider.tsx function ThemeProvider (line 7) | function ThemeProvider({ children, ...props }: ThemeProviderProps) { FILE: src/components/ui/badge.tsx type BadgeProps (line 26) | interface BadgeProps function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: src/components/ui/button.tsx type ButtonProps (line 45) | interface ButtonProps FILE: src/components/ui/input.tsx type InputProps (line 5) | interface InputProps FILE: src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: src/components/ui/textarea.tsx type TextareaProps (line 5) | interface TextareaProps FILE: src/components/ui/timeline.tsx type TimelineProps (line 21) | interface TimelineProps type TimelineItemProps (line 52) | interface TimelineItemProps type TimelineDotProps (line 88) | interface TimelineDotProps type TimelineConentProps (line 126) | interface TimelineConentProps type TimelineHeadingProps (line 161) | interface TimelineHeadingProps type TimelineLineProps (line 179) | interface TimelineLineProps extends React.HTMLAttributes { FILE: src/components/ui/toast.tsx type ToastProps (line 115) | type ToastProps = React.ComponentPropsWithoutRef; type ToastActionElement (line 117) | type ToastActionElement = React.ReactElement; FILE: src/components/ui/toaster.tsx function Toaster (line 13) | function Toaster() { FILE: src/components/ui/use-toast.ts constant TOAST_LIMIT (line 8) | const TOAST_LIMIT = 1; constant TOAST_REMOVE_DELAY (line 9) | const TOAST_REMOVE_DELAY = 1000000; type ToasterToast (line 11) | type ToasterToast = ToastProps & { function genId (line 27) | function genId() { type ActionType (line 32) | type ActionType = typeof actionTypes; type Action (line 34) | type Action = type State (line 52) | interface State { function dispatch (line 133) | function dispatch(action: Action) { type Toast (line 140) | type Toast = Omit; function toast (line 142) | function toast({ ...props }: Toast) { function useToast (line 171) | function useToast() { FILE: src/db/init.sql type aitools (line 5) | CREATE TABLE aitools ( type aitools_chunk (line 25) | CREATE TABLE aitools_chunk ( type aitools_chunk (line 36) | create index on aitools_chunk using hnsw (embedding vector_l2_ops) function match_embeddings (line 39) | create or replace function match_embeddings ( FILE: src/lib/chat/embedding.ts function generateDocEmbedding (line 9) | async function generateDocEmbedding(contents: string[]) { function generateQueyEmbedding (line 13) | async function generateQueyEmbedding(query: string) { FILE: src/lib/chat/llm.ts function documentToStr (line 16) | function documentToStr(doc) { function formatContext (line 21) | function formatContext(searchResults) { function genLLMTextChunk (line 30) | async function genLLMTextChunk({ query, contexts }) { function genRelatedQuery (line 40) | async function genRelatedQuery({ query, contexts }) { function translate (line 56) | async function translate({ query }) { FILE: src/lib/utils.ts function cn (line 5) | function cn(...inputs: ClassValue[]) { function nFormatter (line 9) | function nFormatter(num: number, digits?: number) { function containsChinese (line 37) | function containsChinese(str: string) { function addQueryParams (line 42) | function addQueryParams(url, params) { function addRefToUrl (line 55) | function addRefToUrl(url) { FILE: src/middleware.ts function middleware (line 4) | async function middleware( FILE: src/providers.tsx function Providers (line 6) | function Providers({ children }: { children: React.ReactNode }) { FILE: src/schema/chat.ts type BeginStream (line 1) | type BeginStream = { type ChatHistoryResponse (line 6) | type ChatHistoryResponse = { type ChatMessage (line 10) | type ChatMessage = { type ChatRequest (line 24) | type ChatRequest = { type ChatResponseEvent (line 31) | type ChatResponseEvent = { type ChatSnapshot (line 44) | type ChatSnapshot = { type ErrorStream (line 52) | type ErrorStream = { type FinalResponseStream (line 57) | type FinalResponseStream = { type HTTPValidationError (line 62) | type HTTPValidationError = { type Message (line 66) | type Message = { type MessageRole (line 71) | enum MessageRole { type RelatedQueriesStream (line 76) | type RelatedQueriesStream = { type MoreResultsStream (line 81) | type MoreResultsStream = { type SearchResult (line 86) | type SearchResult = { type SearchResultStream (line 93) | type SearchResultStream = { type StreamEndStream (line 99) | type StreamEndStream = { type StreamEvent (line 104) | enum StreamEvent { type TextChunkStream (line 115) | type TextChunkStream = { type ThreadResponse (line 120) | type ThreadResponse = { type ValidationError (line 125) | type ValidationError = { FILE: src/stores/index.ts type StoreState (line 5) | type StoreState = ChatStore; FILE: src/stores/slices/messageSlice.ts type State (line 4) | type State = { type Actions (line 9) | type Actions = { type ChatStore (line 15) | type ChatStore = State & Actions; FILE: tailwind.config.ts function addVariablesForColors (line 99) | function addVariablesForColors({ addBase, theme }: any) {