SYMBOL INDEX (2006 symbols across 323 files) FILE: ai/models.ts type ModelParameters (line 2) | interface ModelParameters { type ModelProvider (line 13) | type ModelProvider = type ProviderInfo (line 37) | interface ProviderInfo { constant PROVIDERS (line 44) | const PROVIDERS: Record = { type Model (line 69) | interface Model { function getModelConfig (line 2646) | function getModelConfig(modelValue: string) { function requiresAuthentication (line 2650) | function requiresAuthentication(modelValue: string): boolean { function requiresProSubscription (line 2655) | function requiresProSubscription(modelValue: string): boolean { function requiresMaxSubscription (line 2660) | function requiresMaxSubscription(modelValue: string): boolean { function isFreeUnlimited (line 2665) | function isFreeUnlimited(modelValue: string): boolean { function hasVisionSupport (line 2670) | function hasVisionSupport(modelValue: string): boolean { function hasPdfSupport (line 2675) | function hasPdfSupport(modelValue: string): boolean { function hasReasoningSupport (line 2681) | function hasReasoningSupport(modelValue: string): boolean { function isExperimentalModel (line 2686) | function isExperimentalModel(modelValue: string): boolean { function getMaxOutputTokens (line 2691) | function getMaxOutputTokens(modelValue: string): number { function getModelParameters (line 2696) | function getModelParameters(modelValue: string): ModelParameters { function canUseModel (line 2702) | function canUseModel( function shouldBypassRateLimits (line 2733) | function shouldBypassRateLimits(modelValue: string, user: any): boolean { function getAcceptedFileTypes (line 2739) | function getAcceptedFileTypes(modelValue: string, isProUser: boolean): s... function supportsExtremeMode (line 2757) | function supportsExtremeMode(modelValue: string): boolean { function getExtremeModels (line 2763) | function getExtremeModels(): Model[] { constant CANVAS_MODELS (line 2769) | const CANVAS_MODELS = new Set([ function supportsCanvasMode (line 2797) | function supportsCanvasMode(modelValue: string): boolean { constant RESTRICTED_REGIONS (line 2802) | const RESTRICTED_REGIONS = ['CN', 'KP', 'RU']; constant OPENAI_MODELS (line 2805) | const OPENAI_MODELS = [ constant ANTHROPIC_MODELS (line 2833) | const ANTHROPIC_MODELS = [ function isModelRestrictedInRegion (line 2847) | function isModelRestrictedInRegion(modelValue: string, countryCode?: str... function getFilteredModels (line 2860) | function getFilteredModels(countryCode?: string): Model[] { function getModelProvider (line 2874) | function getModelProvider(modelValue: string, label?: string): ModelProv... function getModelProviderInfo (line 2993) | function getModelProviderInfo(modelValue: string): ProviderInfo { function getActiveProviders (line 3000) | function getActiveProviders(): ProviderInfo[] { function getModelsByProvider (line 3010) | function getModelsByProvider(provider: ModelProvider): Model[] { FILE: app/(auth)/layout.tsx function AuthLayout (line 48) | function AuthLayout({ children }: { children: React.ReactNode }) { FILE: app/(auth)/sign-in/page.tsx function SignInContent (line 4) | function SignInContent() { function SignInPage (line 14) | function SignInPage() { FILE: app/(auth)/sign-up/page.tsx function SignUpContent (line 4) | function SignUpContent() { function SignUpPage (line 14) | function SignUpPage() { FILE: app/(content)/about/page.tsx function AnimatedCounter (line 85) | function AnimatedCounter({ target, suffix = '' }: { target: string; suff... function AppsBeamSection (line 133) | function AppsBeamSection() { function AboutPage (line 308) | function AboutPage() { FILE: app/(content)/layout.tsx function ContentLayout (line 3) | function ContentLayout({ children }: { children: React.ReactNode }) { FILE: app/(content)/privacy-policy/page.tsx function PrivacyPage (line 30) | function PrivacyPage() { FILE: app/(content)/terms/page.tsx function TermsPage (line 18) | function TermsPage() { FILE: app/(content)/x-wrapped/[username]/page.tsx type XWrappedData (line 17) | interface XWrappedData { function StatCard (line 41) | function StatCard({ function SentimentBar (line 74) | function SentimentBar({ positive, neutral, negative, delay = 0 }: { posi... function XWrappedUsernamePage (line 90) | function XWrappedUsernamePage() { FILE: app/(content)/x-wrapped/layout.tsx function XWrappedLayout (line 29) | function XWrappedLayout({ children }: { children: React.ReactNode }) { FILE: app/(content)/x-wrapped/page.tsx function XWrappedPage (line 13) | function XWrappedPage() { FILE: app/actions.ts function getCurrentUser (line 90) | async function getCurrentUser() { function getLightweightUser (line 97) | async function getLightweightUser() { function getChatMeta (line 104) | async function getChatMeta(chatId: string, viewerUserId?: string) { function getUserCountryCode (line 137) | async function getUserCountryCode() { function suggestQuestions (line 156) | async function suggestQuestions(history: any[]) { function checkImageModeration (line 230) | async function checkImageModeration(images: string[]) { function generateTitleFromUserMessage (line 248) | async function generateTitleFromUserMessage({ message }: { message: UIMe... function enhancePrompt (line 312) | async function enhancePrompt(raw: string) { type GenerateSpeechResult (line 362) | interface GenerateSpeechResult { function generateSpeech (line 368) | async function generateSpeech(text: string): Promise { function getDodoSubscriptionHistory (line 1789) | async function getDodoSubscriptionHistory() { function getDodoSubscriptionProStatus (line 1802) | async function getDodoSubscriptionProStatus() { function getDodoSubscriptionExpirationDate (line 1824) | async function getDodoSubscriptionExpirationDate() { function frequencyToCron (line 1838) | function frequencyToCron(frequency: string, time: string, timezone: stri... function calculateNextRun (line 1871) | function calculateNextRun(cronSchedule: string, timezone: string): Date { function calculateOnceNextRun (line 1897) | function calculateOnceNextRun(time: string, timezone: string, date?: str... function createScheduledLookout (line 1920) | async function createScheduledLookout({ function getUserLookouts (line 2095) | async function getUserLookouts() { function updateLookoutStatusAction (line 2125) | async function updateLookoutStatusAction({ function updateLookoutAction (line 2174) | async function updateLookoutAction({ function deleteLookoutAction (line 2309) | async function deleteLookoutAction({ id }: { id: string }) { function testLookoutAction (line 2341) | async function testLookoutAction({ id }: { id: string }) { function getUserLocation (line 2391) | async function getUserLocation() { function createConnectorAction (line 2423) | async function createConnectorAction(provider: ConnectorProvider) { function listUserConnectorsAction (line 2440) | async function listUserConnectorsAction() { function deleteConnectorAction (line 2457) | async function deleteConnectorAction(connectionId: string) { function manualSyncConnectorAction (line 2478) | async function manualSyncConnectorAction(provider: ConnectorProvider) { function getConnectorSyncStatusAction (line 2499) | async function getConnectorSyncStatusAction(provider: ConnectorProvider) { function getStudentDomainsAction (line 2517) | async function getStudentDomainsAction() { type ChatMeta (line 2561) | interface ChatMeta { function stripMarkdown (line 2566) | function stripMarkdown(text: string): string { function buildPreviewMap (line 2601) | async function buildPreviewMap(chatIds: string[]): Promise { function isString (line 39) | function isString(value: unknown): value is string { function parseDocxExportBody (line 43) | function parseDocxExportBody(value: unknown): DocxExportBody | null { function preprocessMarkdown (line 63) | function preprocessMarkdown(md: string): string { function simplifyLatex (line 152) | function simplifyLatex(lx: string): string { function processInlineText (line 314) | function processInlineText( function flattenInlineTokens (line 384) | function flattenInlineTokens( function POST (line 476) | async function POST(req: NextRequest) { FILE: app/api/export/pdf/route.ts function wrapText (line 18) | function wrapText(text: string, widthFn: (s: string) => number, maxWidth... function measureTextWidth (line 93) | function measureTextWidth(font: any, text: string, size: number, fallbac... function extractMathSvg (line 101) | function extractMathSvg(markup: string) { function cleanMathSvg (line 107) | function cleanMathSvg( type PdfExportMeta (line 149) | interface PdfExportMeta { type PdfExportBody (line 154) | interface PdfExportBody { function isRecord (line 160) | function isRecord(value: unknown): value is Record { function isString (line 164) | function isString(value: unknown): value is string { function parsePdfExportBody (line 168) | function parsePdfExportBody(value: unknown): PdfExportBody | null { function POST (line 187) | async function POST(req: NextRequest) { FILE: app/api/lookout/route.ts function truncateMarkdown (line 65) | function truncateMarkdown(text: string, maxLength: number): string { constant STATIC_TOOLS (line 198) | const STATIC_TOOLS: Record = { constant DATASTREAM_TOOL_FACTORIES (line 221) | const DATASTREAM_TOOL_FACTORIES: Record = { function getToolsForSearchMode (line 259) | function getToolsForSearchMode( function getSystemPromptForSearchMode (line 292) | function getSystemPromptForSearchMode(searchMode: string): string { function checkUserIsProById (line 538) | async function checkUserIsProById(userId: string): Promise { function POST (line 568) | async function POST(req: Request) { FILE: app/api/mcp/apps/bridge/route.ts function POST (line 21) | async function POST(request: Request) { FILE: app/api/mcp/apps/resource/read/route.ts function extractUiResourceMeta (line 14) | function extractUiResourceMeta(resource: unknown, content: unknown) { function POST (line 32) | async function POST(request: Request) { FILE: app/api/mcp/elicitation/respond/route.ts constant ELICITATION_RESPONSE_KEY_PREFIX (line 8) | const ELICITATION_RESPONSE_KEY_PREFIX = 'mcp:elicitation:response:'; constant ELICITATION_PENDING_KEY_PREFIX (line 9) | const ELICITATION_PENDING_KEY_PREFIX = 'mcp:elicitation:pending:'; function getElicitationResponseKey (line 11) | function getElicitationResponseKey(elicitationId: string) { function getElicitationPendingKey (line 15) | function getElicitationPendingKey(elicitationId: string) { function POST (line 25) | async function POST(request: Request) { FILE: app/api/mcp/oauth/callback/route.ts function assertProUser (line 7) | function assertProUser(user: Awaited>) { function redirectToApps (line 13) | function redirectToApps(request: Request, status: 'success' | 'error', m... function GET (line 21) | async function GET(request: Request) { FILE: app/api/mcp/oauth/client-metadata/[serverId]/route.ts function getAppOrigin (line 3) | function getAppOrigin(request: Request) { function GET (line 11) | async function GET( FILE: app/api/mcp/servers/[id]/oauth/callback/route.ts function assertProUser (line 6) | function assertProUser(user: Awaited>) { function redirectToApps (line 12) | function redirectToApps(request: Request, status: 'success' | 'error', m... function GET (line 20) | async function GET( FILE: app/api/mcp/servers/[id]/oauth/disconnect/route.ts function assertProUser (line 5) | function assertProUser(user: Awaited>) { function POST (line 11) | async function POST( FILE: app/api/mcp/servers/[id]/oauth/start/route.ts function assertProUser (line 8) | function assertProUser(user: Awaited>) { function POST (line 14) | async function POST( FILE: app/api/mcp/servers/[id]/route.ts function assertProUser (line 42) | function assertProUser(user: Awaited>) { function serializeMcpServer (line 48) | function serializeMcpServer(server: { function PATCH (line 100) | async function PATCH( function DELETE (line 205) | async function DELETE( FILE: app/api/mcp/servers/[id]/tools/route.ts function GET (line 8) | async function GET( FILE: app/api/mcp/servers/route.ts function assertProUser (line 35) | function assertProUser(user: Awaited>) { function serializeMcpServer (line 41) | function serializeMcpServer(server: { function GET (line 91) | async function GET() { function POST (line 103) | async function POST(request: Request) { FILE: app/api/mcp/servers/test/route.ts function assertProUser (line 23) | function assertProUser(user: Awaited>) { function normalizeMcpTestErrorMessage (line 29) | function normalizeMcpTestErrorMessage( function POST (line 50) | async function POST(request: Request) { FILE: app/api/og/chat/[id]/route.tsx type TextPart (line 8) | interface TextPart { type MessagePart (line 13) | interface MessagePart { function getTextFromParts (line 19) | function getTextFromParts(parts: unknown): string { function stripMarkdown (line 26) | function stripMarkdown(text: string): string { function truncateText (line 63) | function truncateText(text: string, maxLength: number): string { function GET (line 80) | async function GET(_: Request, { params }: { params: Promise<{ id: strin... FILE: app/api/og/x-wrapped/route.tsx function GET (line 6) | async function GET() { FILE: app/api/preferences/route.ts function GET (line 5) | async function GET() { function POST (line 22) | async function POST(request: Request) { FILE: app/api/proxy-image/route.ts function GET (line 3) | async function GET(request: NextRequest) { FILE: app/api/raycast/route.ts function POST (line 73) | async function POST(req: Request) { FILE: app/api/search/[id]/stop/route.ts function DELETE (line 9) | async function DELETE(req: Request, { params }: { params: Promise<{ id: ... FILE: app/api/search/[id]/stream/route.ts function GET (line 13) | async function GET(req: Request, { params }: { params: Promise<{ id: str... FILE: app/api/search/route.ts type CriticalChecksResult (line 70) | interface CriticalChecksResult { type ChatInitializationParams (line 81) | interface ChatInitializationParams { function initializeChatAndChecks (line 95) | function initializeChatAndChecks({ function getStreamContext (line 386) | async function getStreamContext() { function POST (line 391) | async function POST(req: Request) { FILE: app/api/suggest/route.ts function GET (line 1) | async function GET(request: Request) { FILE: app/api/transcribe/route.ts function POST (line 6) | async function POST(request: NextRequest) { FILE: app/api/upload/route.ts constant IMAGE_TYPES (line 18) | const IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif']; constant DOCUMENT_TYPES (line 21) | const DOCUMENT_TYPES = [ constant VALID_TYPES (line 29) | const VALID_TYPES = [...IMAGE_TYPES, ...DOCUMENT_TYPES]; constant MAX_IMAGE_SIZE (line 32) | const MAX_IMAGE_SIZE = 5 * 1024 * 1024; constant MAX_DOCUMENT_SIZE (line 33) | const MAX_DOCUMENT_SIZE = 50 * 1024 * 1024; function isImageType (line 35) | function isImageType(contentType: string): boolean { function getMaxSizeForType (line 39) | function getMaxSizeForType(contentType: string): number { function sanitizeExtension (line 71) | function sanitizeExtension(raw: string): string { function isOwnR2Url (line 77) | function isOwnR2Url(url: string): boolean { function parseLimit (line 88) | function parseLimit(raw: string | null, defaultVal: number, max: number)... type UploadedFile (line 94) | interface UploadedFile { constant VERCEL_BLOB_PATTERN (line 105) | const VERCEL_BLOB_PATTERN = '.public.blob.vercel-storage.com'; function isVercelBlobUrl (line 107) | function isVercelBlobUrl(url: string): boolean { type DbFileRow (line 112) | type DbFileRow = { function GET (line 120) | async function GET(request: NextRequest) { function POST (line 293) | async function POST(request: NextRequest) { function DELETE (line 366) | async function DELETE(request: NextRequest) { FILE: app/api/x-wrapped/route.ts type CitationSource (line 10) | interface CitationSource { type XWrappedData (line 15) | interface XWrappedData { function extractTweetId (line 46) | function extractTweetId(url?: string | null): string | null { function toMonthName (line 51) | function toMonthName(date: Date): string { function clampPercent (line 55) | function clampPercent(value: number): number { constant CACHE_TTL_SECONDS (line 61) | const CACHE_TTL_SECONDS = 5 * 60; function POST (line 63) | async function POST(req: NextRequest) { FILE: app/api/xql/route.ts method execute (line 59) | async execute({ type XQLMessage (line 120) | type XQLMessage = UIMessage i.url.replace(/\/$/, ''))); function getTransportType (line 232) | function getTransportType(url: string): 'sse' | 'http' { constant SLD_TLDS (line 238) | const SLD_TLDS = new Set([ function rootDomain (line 247) | function rootDomain(serverUrl: string): string { function faviconUrl (line 257) | function faviconUrl(serverUrl: string): string { constant AUTH_LABELS (line 264) | const AUTH_LABELS: Record = { oauth: 'OAuth', apike... function isOauthWithClientSetup (line 266) | function isOauthWithClientSetup(item: CatalogItem) { function ServiceIcon (line 272) | function ServiceIcon({ url, name, size = 24, customIcon, serverUrl }: { ... function CatalogCard (line 291) | function CatalogCard({ function CardSkeleton (line 360) | function CardSkeleton() { function McpMarketplaceContent (line 383) | function McpMarketplaceContent() { function AppsPage (line 1535) | function AppsPage() { FILE: app/connectors/[provider]/callback/page.tsx function ConnectorCallbackPage (line 11) | function ConnectorCallbackPage() { FILE: app/error.tsx function Error (line 10) | function Error({ error, reset }: { error: Error & { digest?: string }; r... FILE: app/global-error.tsx type GlobalErrorProps (line 34) | interface GlobalErrorProps { function GlobalError (line 39) | function GlobalError({ error, reset }: GlobalErrorProps) { FILE: app/layout.tsx function RootLayout (line 138) | async function RootLayout({ FILE: app/lookout/components/action-buttons.tsx type ActionButtonsProps (line 10) | interface ActionButtonsProps { function ActionButtons (line 19) | function ActionButtons({ FILE: app/lookout/components/empty-state.tsx type EmptyStateProps (line 8) | interface EmptyStateProps { function EmptyState (line 16) | function EmptyState({ function NoActiveLookoutsEmpty (line 44) | function NoActiveLookoutsEmpty() { function NoArchivedLookoutsEmpty (line 54) | function NoArchivedLookoutsEmpty() { FILE: app/lookout/components/loading-skeleton.tsx type LoadingSkeletonProps (line 7) | interface LoadingSkeletonProps { function LookoutSkeleton (line 12) | function LookoutSkeleton({ showActions = true }: { showActions?: boolean... function LoadingSkeletons (line 41) | function LoadingSkeletons({ count = 3, showActions = true }: LoadingSkel... FILE: app/lookout/components/lookout-card.tsx type LookoutRun (line 14) | interface LookoutRun { type Lookout (line 24) | interface Lookout { type LookoutCardProps (line 39) | interface LookoutCardProps { function LookoutCard (line 49) | function LookoutCard({ FILE: app/lookout/components/lookout-details-sidebar.tsx type LookoutRun (line 26) | interface LookoutRun { type LookoutWithHistory (line 36) | interface LookoutWithHistory { type LookoutDetailsSidebarProps (line 52) | interface LookoutDetailsSidebarProps { function LookoutDetailsSidebar (line 62) | function LookoutDetailsSidebar({ FILE: app/lookout/components/lookout-form.tsx type LookoutFormProps (line 21) | interface LookoutFormProps { function LookoutForm (line 32) | function LookoutForm({ FILE: app/lookout/components/pro-upgrade-screen.tsx type ProUpgradeScreenProps (line 7) | interface ProUpgradeScreenProps { constant FEATURES (line 13) | const FEATURES = [ function ProUpgradeScreen (line 31) | function ProUpgradeScreen(_props: ProUpgradeScreenProps) { FILE: app/lookout/components/run-status-badge.tsx type LookoutRunStatus (line 5) | type LookoutRunStatus = 'success' | 'error' | 'timeout'; type RunStatusBadgeProps (line 7) | interface RunStatusBadgeProps { function RunStatusBadge (line 12) | function RunStatusBadge({ status, size = 'sm' }: RunStatusBadgeProps) { FILE: app/lookout/components/status-badge.tsx type StatusBadgeProps (line 9) | interface StatusBadgeProps { function StatusBadge (line 14) | function StatusBadge({ status, size = 'sm' }: StatusBadgeProps) { FILE: app/lookout/components/time-picker.tsx type TimePickerProps (line 7) | interface TimePickerProps { function TimePicker (line 15) | function TimePicker({ value, onChange, name, selectedDate, filterPastTim... FILE: app/lookout/components/timezone-selector.tsx type TimezoneSelectorProps (line 12) | interface TimezoneSelectorProps { function TimezoneSelector (line 17) | function TimezoneSelector({ value, onChange }: TimezoneSelectorProps) { FILE: app/lookout/components/warning-card.tsx type WarningCardProps (line 8) | interface WarningCardProps { function WarningCard (line 31) | function WarningCard({ type, icon, message, className = '' }: WarningCar... function TotalLimitWarning (line 55) | function TotalLimitWarning() { function DailyLimitWarning (line 59) | function DailyLimitWarning() { FILE: app/lookout/constants.ts constant LOOKOUT_SEARCH_MODES (line 13) | const LOOKOUT_SEARCH_MODES = [ type LookoutSearchMode (line 24) | type LookoutSearchMode = (typeof LOOKOUT_SEARCH_MODES)[number]['value']; function getRandomExamples (line 353) | function getRandomExamples(count: number = 3) { constant LOOKOUT_LIMITS (line 368) | const LOOKOUT_LIMITS = { constant DEFAULT_FORM_VALUES (line 373) | const DEFAULT_FORM_VALUES = { FILE: app/lookout/hooks/use-lookout-form.ts type LookoutFormData (line 8) | interface LookoutFormData { type LookoutFormHookReturn (line 19) | interface LookoutFormHookReturn { function useLookoutForm (line 56) | function useLookoutForm(detectedTimezone: string = DEFAULT_FORM_VALUES.T... FILE: app/lookout/layout.tsx type LookoutLayoutProps (line 41) | interface LookoutLayoutProps { function LookoutLayout (line 45) | function LookoutLayout({ children }: LookoutLayoutProps) { FILE: app/lookout/page.tsx type Lookout (line 40) | interface Lookout { function LookoutPage (line 64) | function LookoutPage() { FILE: app/manifest.ts function manifest (line 3) | function manifest(): MetadataRoute.Manifest { FILE: app/new/page.tsx function NewPage (line 3) | async function NewPage() { FILE: app/not-found.tsx function NotFound (line 9) | function NotFound() { FILE: app/pricing/_component/pricing-table.tsx type SubscriptionDetails (line 45) | type SubscriptionDetails = { type SubscriptionDetailsResult (line 59) | type SubscriptionDetailsResult = { type PricingTableProps (line 66) | interface PricingTableProps { function PricingTable (line 95) | function PricingTable({ subscriptionDetails, user }: PricingTableProps) { FILE: app/pricing/page.tsx function PricingPage (line 7) | async function PricingPage() { FILE: app/providers.tsx function Providers (line 28) | function Providers({ children }: { children: ReactNode }) { FILE: app/search/[id]/loading-old.tsx function Loading (line 1) | function Loading() { FILE: app/search/[id]/page.tsx constant CHAT_PRIMARY_BACKOFF_MAX_WAIT_MS (line 16) | const CHAT_PRIMARY_BACKOFF_MAX_WAIT_MS = 15_000; constant CHAT_PRIMARY_BACKOFF_INITIAL_DELAY_MS (line 17) | const CHAT_PRIMARY_BACKOFF_INITIAL_DELAY_MS = 250; constant CHAT_PRIMARY_BACKOFF_MAX_DELAY_MS (line 18) | const CHAT_PRIMARY_BACKOFF_MAX_DELAY_MS = 2_000; function sleep (line 20) | async function sleep(ms: number): Promise { function getFreshUserFromSession (line 24) | async function getFreshUserFromSession(): Promise { function getChatWithMessagesFromPrimary (line 32) | async function getChatWithMessagesFromPrimary({ function getChatWithMessagesFromPrimaryWithBackoff (line 51) | async function getChatWithMessagesFromPrimaryWithBackoff(id: string): Pr... function generateMetadata (line 72) | async function generateMetadata({ params }: { params: Promise<{ id: stri... function Page (line 118) | async function Page(props: { params: Promise<{ id: string }> }) { FILE: app/searches/page.tsx function SearchesPageSkeleton (line 10) | function SearchesPageSkeleton() { function Page (line 50) | function Page() { FILE: app/settings/page.tsx function SettingsContent (line 41) | function SettingsContent() { function SettingsPage (line 353) | function SettingsPage() { FILE: app/share/[id]/page.tsx function generateMetadata (line 12) | async function generateMetadata({ params }: { params: Promise<{ id: stri... function Page (line 57) | async function Page(props: { params: Promise<{ id: string }> }) { FILE: app/success/page.tsx constant PRO_FEATURES (line 12) | const PRO_FEATURES = [ constant MAX_FEATURES (line 19) | const MAX_FEATURES = [ function SuccessPage (line 26) | function SuccessPage() { FILE: app/voice/components/pro-upgrade-screen.tsx type ProUpgradeScreenProps (line 8) | interface ProUpgradeScreenProps { constant FEATURES (line 14) | const FEATURES = [ function ProUpgradeScreen (line 20) | function ProUpgradeScreen({ user }: ProUpgradeScreenProps) { FILE: app/voice/layout.tsx function VoiceLayout (line 36) | function VoiceLayout({ FILE: app/voice/page.tsx constant VOICES (line 19) | const VOICES: { value: VoiceType; label: string; description: string }[]... constant VOICE_STORAGE_KEY (line 27) | const VOICE_STORAGE_KEY = "scira.voice.selected-voice"; constant MUTE_STORAGE_KEY (line 28) | const MUTE_STORAGE_KEY = "scira.voice.mic-muted"; constant TRANSCRIPT_VISIBLE_KEY (line 29) | const TRANSCRIPT_VISIBLE_KEY = "scira.voice.transcript-visible"; function isVoiceType (line 31) | function isVoiceType(value: string): value is VoiceType { function readStoredVoice (line 35) | function readStoredVoice(): VoiceType { function readStoredMuted (line 42) | function readStoredMuted(): boolean { function persistPreference (line 47) | function persistPreference(key: string, value: string) { function useOrbColors (line 54) | function useOrbColors(): [string, string] { function resolveColors (line 79) | function resolveColors(): [string, string] { function readStoredTranscriptVisible (line 106) | function readStoredTranscriptVisible(): boolean { function VoicePage (line 113) | function VoicePage() { FILE: app/xql/page.tsx function XQLPageContent (line 26) | function XQLPageContent() { function XQLPage (line 514) | function XQLPage() { FILE: components/InstallPrompt.tsx function InstallPrompt (line 9) | function InstallPrompt() { FILE: components/academic-papers.tsx type AcademicResult (line 11) | interface AcademicResult { type AcademicSearchQueryResult (line 19) | interface AcademicSearchQueryResult { type AcademicSearchResponse (line 24) | interface AcademicSearchResponse { type AcademicSearchArgs (line 28) | interface AcademicSearchArgs { type NormalizedAcademicSearchArgs (line 33) | interface NormalizedAcademicSearchArgs { type AcademicPapersProps (line 38) | interface AcademicPapersProps { FILE: components/ai-elements/web-preview.tsx type WebPreviewContextValue (line 27) | interface WebPreviewContextValue { type WebPreviewProps (line 44) | type WebPreviewProps = ComponentProps<"div"> & { type WebPreviewNavigationProps (line 92) | type WebPreviewNavigationProps = ComponentProps<"div">; type WebPreviewNavigationButtonProps (line 107) | type WebPreviewNavigationButtonProps = ComponentProps & { type WebPreviewUrlProps (line 139) | type WebPreviewUrlProps = ComponentProps; type WebPreviewBodyProps (line 185) | type WebPreviewBodyProps = ComponentProps<"iframe"> & { type WebPreviewConsoleProps (line 212) | type WebPreviewConsoleProps = ComponentProps<"div"> & { FILE: components/app-sidebar.tsx type VisibilityType (line 109) | type VisibilityType = 'public' | 'private'; type SignedOutLink (line 111) | type SignedOutLink = { type UserDropdownContentProps (line 119) | interface UserDropdownContentProps { function UserDropdownContent (line 128) | function UserDropdownContent({ type AppSidebarProps (line 430) | interface AppSidebarProps { FILE: components/auth-card.tsx type AuthProvider (line 9) | type AuthProvider = 'github' | 'google' | 'twitter' | 'microsoft'; type AuthIconProps (line 11) | interface AuthIconProps extends React.ComponentProps<'svg'> {} type SignInButtonProps (line 60) | interface SignInButtonProps { type AuthCardProps (line 70) | interface AuthCardProps { function AuthCard (line 116) | function AuthCard({ title, description, mode = 'sign-in' }: AuthCardProp... FILE: components/build-search.tsx function inferLanguage (line 45) | function inferLanguage(path: string): string { function StatusBadge (line 77) | function StatusBadge({ status }: { status: string }) { function CollapsibleCard (line 99) | function CollapsibleCard({ function RuntimeLogo (line 366) | function RuntimeLogo({ runtime }: { runtime: string }) { constant TOOL_ICONS (line 732) | const TOOL_ICONS: Record = { function formatToolInput (line 742) | function formatToolInput(toolName: string, input: Record = ReturnType< type ScaleTime (line 8) | type ScaleTime = ReturnType< type ScaleBand (line 11) | type ScaleBand = ReturnType< type Margin (line 40) | interface Margin { type TooltipData (line 47) | interface TooltipData { type LineConfig (line 60) | interface LineConfig { type ChartContextValue (line 66) | interface ChartContextValue { function ChartProvider (line 125) | function ChartProvider({ function useChart (line 137) | function useChart(): ChartContextValue { FILE: components/charts/grid.tsx type GridProps (line 7) | interface GridProps { function Grid (line 30) | function Grid({ FILE: components/charts/line-chart.tsx function isPostOverlayComponent (line 28) | function isPostOverlayComponent(child: ReactElement): boolean { type LineChartProps (line 49) | interface LineChartProps { constant DEFAULT_MARGIN (line 66) | const DEFAULT_MARGIN: Margin = { top: 40, right: 40, bottom: 40, left: 4... function extractLineConfigs (line 69) | function extractLineConfigs(children: ReactNode): LineConfig[] { type ChartInnerProps (line 106) | interface ChartInnerProps { function ChartInner (line 117) | function ChartInner({ function LineChart (line 361) | function LineChart({ FILE: components/charts/line.tsx type CurveFactory (line 8) | type CurveFactory = any; type LineProps (line 14) | interface LineProps { function Line (line 31) | function Line({ FILE: components/charts/tooltip/chart-tooltip.tsx type ChartTooltipProps (line 15) | interface ChartTooltipProps { function ChartTooltip (line 35) | function ChartTooltip({ FILE: components/charts/tooltip/date-ticker.tsx constant TICKER_ITEM_HEIGHT (line 6) | const TICKER_ITEM_HEIGHT = 24; type DateTickerProps (line 8) | interface DateTickerProps { function DateTicker (line 14) | function DateTicker({ currentIndex, labels, visible }: DateTickerProps) { FILE: components/charts/tooltip/tooltip-box.tsx type TooltipBoxProps (line 11) | interface TooltipBoxProps { function TooltipBox (line 38) | function TooltipBox({ FILE: components/charts/tooltip/tooltip-content.tsx type TooltipRow (line 7) | interface TooltipRow { type TooltipContentProps (line 13) | interface TooltipContentProps { function TooltipContent (line 20) | function TooltipContent({ title, rows, children }: TooltipContentProps) { FILE: components/charts/tooltip/tooltip-dot.tsx type TooltipDotProps (line 10) | interface TooltipDotProps { function TooltipDot (line 20) | function TooltipDot({ FILE: components/charts/tooltip/tooltip-indicator.tsx type IndicatorWidth (line 10) | type IndicatorWidth = type TooltipIndicatorProps (line 17) | interface TooltipIndicatorProps { function resolveWidth (line 46) | function resolveWidth(width: IndicatorWidth): number { function TooltipIndicator (line 64) | function TooltipIndicator({ FILE: components/charts/x-axis.tsx type XAxisProps (line 8) | interface XAxisProps { type XAxisLabelProps (line 15) | interface XAxisLabelProps { function XAxisLabel (line 23) | function XAxisLabel({ function XAxis (line 69) | function XAxis({ numTicks = 5, tickerHalfWidth = 50 }: XAxisProps) { FILE: components/chat-dialogs.tsx type PostMessageUpgradeDialogProps (line 25) | interface PostMessageUpgradeDialogProps { type LookoutAnnouncementDialogProps (line 210) | interface LookoutAnnouncementDialogProps { type ChatDialogsProps (line 344) | interface ChatDialogsProps { FILE: components/chat-history-dialog.tsx constant SCROLL_THRESHOLD (line 59) | const SCROLL_THRESHOLD = 0.5; constant FOCUS_DELAY (line 60) | const FOCUS_DELAY = 100; type Chat (line 62) | interface Chat { type ChatHistoryDialogProps (line 72) | interface ChatHistoryDialogProps { type SearchMode (line 79) | type SearchMode = 'all' | 'title' | 'date' | 'visibility'; function isValidChatId (line 82) | function isValidChatId(id: string): boolean { function parseChatDate (line 86) | function parseChatDate(value: Date | string | number): Date { function getChatActivityDate (line 107) | function getChatActivityDate(chat: Chat): Date { function categorizeChatsByDate (line 112) | function categorizeChatsByDate(chats: Chat[]) { function fuzzySearch (line 213) | function fuzzySearch(query: string, text: string): boolean { function parseDateQuery (line 234) | function parseDateQuery(dateStr: string): Date | null { function isSameDay (line 262) | function isSameDay(date1: Date, date2: Date): boolean { function advancedSearch (line 271) | function advancedSearch(chat: Chat, query: string, mode: SearchMode): bo... function ChatHistoryDialog (line 332) | function ChatHistoryDialog({ open, onOpenChange, user }: ChatHistoryDial... function ChatHistoryButton (line 1555) | function ChatHistoryButton({ onClickAction }: { onClickAction: () => voi... FILE: components/chat-interface.tsx type ChatInterfaceProps (line 87) | interface ChatInterfaceProps { type AutoRouterConfig (line 95) | interface AutoRouterConfig { constant INITIAL_QUERY_DEDUPE_WINDOW_MS (line 103) | const INITIAL_QUERY_DEDUPE_WINDOW_MS = 5000; type VisibilityType (line 551) | type VisibilityType = 'public' | 'private'; method prepareSendMessagesRequest (line 603) | prepareSendMessagesRequest({ messages, body }) { FILE: components/chat-state.ts type ChatState (line 1) | interface ChatState { type Attachment (line 20) | interface Attachment { type ChatAction (line 28) | type ChatAction = FILE: components/chat-text-highlighter.tsx type ChatTextHighlighterProps (line 6) | interface ChatTextHighlighterProps { type PopupPosition (line 13) | interface PopupPosition { FILE: components/client-analytics.tsx function ClientAnalytics (line 17) | function ClientAnalytics(): React.JSX.Element { FILE: components/connectors-search-results.tsx type Document (line 33) | interface Document { type ConnectorsSearchResultsProps (line 57) | interface ConnectorsSearchResultsProps { function ConnectorsSearchResults (line 325) | function ConnectorsSearchResults({ FILE: components/core/border-trail.tsx type BorderTrailProps (line 5) | type BorderTrailProps = { function BorderTrail (line 14) | function BorderTrail({ className, size = 60, transition, delay, onAnimat... FILE: components/core/sliding-number.tsx constant TRANSITION (line 6) | const TRANSITION = { function Digit (line 13) | function Digit({ value, place }: { value: number; place: number }) { function Number (line 32) | function Number({ mv, number }: { mv: MotionValue; number: numbe... type SlidingNumberProps (line 76) | type SlidingNumberProps = { function SlidingNumber (line 82) | function SlidingNumber({ value, padStart = false, decimalSeparator = '.'... FILE: components/core/text-loop.tsx type TextLoopProps (line 6) | type TextLoopProps = { function TextLoop (line 15) | function TextLoop({ FILE: components/core/text-shimmer.tsx type TextShimmerProps (line 6) | interface TextShimmerProps { function TextShimmer (line 14) | function TextShimmer({ children, as: Component = 'p', className, duratio... FILE: components/crypto-charts.tsx type CryptoTickersProps (line 28) | interface CryptoTickersProps { type CryptoChartProps (line 33) | interface CryptoChartProps { type CandlestickData (line 39) | interface CandlestickData { type CandlestickProps (line 49) | interface CandlestickProps { FILE: components/crypto-coin-data.tsx type CoinDataProps (line 9) | interface CoinDataProps { FILE: components/currency_conv.tsx type CurrencyConverterProps (line 7) | interface CurrencyConverterProps { FILE: components/data-stream-provider.tsx type DataStreamContextValue (line 7) | interface DataStreamContextValue { function DataStreamProvider (line 14) | function DataStreamProvider({ children }: { children: React.ReactNode }) { function useDataStream (line 22) | function useDataStream() { FILE: components/dialogs/share-dialog.tsx type ShareIconDialogProps (line 9) | interface ShareIconDialogProps { function ShareIconDialog (line 18) | function ShareIconDialog({ FILE: components/dialogs/use-share-dialog.tsx type UseShareDialogProps (line 5) | interface UseShareDialogProps { type UseShareDialogReturn (line 12) | interface UseShareDialogReturn { function useShareDialog (line 26) | function useShareDialog({ FILE: components/emails/lookout-completed.tsx type LookoutCompletedEmailProps (line 20) | interface LookoutCompletedEmailProps { function LookoutCompletedEmail (line 130) | function LookoutCompletedEmail({ FILE: components/example-categories.tsx type ExampleItem (line 17) | interface ExampleItem { type Category (line 22) | interface Category { type ExampleCategoriesProps (line 89) | interface ExampleCategoriesProps { FILE: components/extreme-search.tsx function downloadImageBlob (line 62) | async function downloadImageBlob(url: string, filename: string): Promise... type ExtremeSearchSource (line 173) | interface ExtremeSearchSource { type SearchQuery (line 302) | interface SearchQuery { type CodeExecution (line 312) | interface CodeExecution { type ThinkingExecution (line 321) | interface ThinkingExecution { type DoneExecution (line 327) | interface DoneExecution { type XSearchExecution (line 332) | interface XSearchExecution { type FileQueryExecution (line 350) | interface FileQueryExecution { type BrowsePageExecution (line 363) | interface BrowsePageExecution { type QueryGroup (line 989) | type QueryGroup = { type XSearchGroup (line 994) | type XSearchGroup = { type FileQueryGroup (line 999) | type FileQueryGroup = { type TimelineItem (line 1004) | type TimelineItem = FILE: components/file-query-search.tsx type FileQueryResult (line 23) | interface FileQueryResult { type QuerySearchResult (line 29) | interface QuerySearchResult { type FileQuerySearchResponse (line 34) | interface FileQuerySearchResponse { type FileQuerySearchArgs (line 42) | interface FileQuerySearchArgs { FILE: components/flight-tracker.tsx type FlightApiResponse (line 6) | interface FlightApiResponse { type FlightTrackerProps (line 51) | interface FlightTrackerProps { function FlightTracker (line 55) | function FlightTracker({ data }: FlightTrackerProps) { FILE: components/github-search.tsx type GitHubResult (line 66) | type GitHubResult = { type GitHubSearchQueryResult (line 79) | type GitHubSearchQueryResult = { type GitHubSearchResponse (line 84) | type GitHubSearchResponse = { type GitHubSearchArgs (line 88) | type GitHubSearchArgs = { FILE: components/haptics-provider.tsx constant INTERACTIVE_SELECTOR (line 6) | const INTERACTIVE_SELECTOR = constant HAPTIC_TRIGGERS (line 29) | const HAPTIC_TRIGGERS = new Set([ function resolveHapticTrigger (line 39) | function resolveHapticTrigger(element: HTMLElement): string { function HapticsProvider (line 76) | function HapticsProvider() { FILE: components/icons/agent-network-icon.tsx function AgentNetworkIcon (line 3) | function AgentNetworkIcon(props: SVGProps) { FILE: components/icons/apps-icon.tsx function AppsIcon (line 3) | function AppsIcon(props: SVGProps) { FILE: components/icons/mcp-logo.tsx function McpLogoIcon (line 3) | function McpLogoIcon(props: SVGProps) { FILE: components/interactive-charts.tsx constant CHART_COLORS (line 17) | const CHART_COLORS = { type BaseChart (line 26) | interface BaseChart { FILE: components/interactive-maps.tsx type Location (line 9) | interface Location { type Photo (line 14) | interface Photo { type Place (line 22) | interface Place { type InteractiveMapProps (line 49) | interface InteractiveMapProps { class ZoomControl (line 161) | class ZoomControl extends L.Control { method onAdd (line 162) | public onAdd(mapInstance: Leaflet.Map): HTMLElement { FILE: components/interactive-stock-chart.tsx constant CURRENCY_SYMBOLS (line 41) | const CURRENCY_SYMBOLS = { type StockChartProps (line 99) | interface StockChartProps { type ProcessedSeriesData (line 210) | interface ProcessedSeriesData { FILE: components/keyboard-shortcuts-dialog.tsx type KeyboardShortcutsDialogProps (line 23) | interface KeyboardShortcutsDialogProps { type ShortcutGroup (line 28) | interface ShortcutGroup { function KeyboardShortcutsDialog (line 38) | function KeyboardShortcutsDialog({ open, onOpenChange }: KeyboardShortcu... FILE: components/kibo-ui/table/index.tsx type TableProviderProps (line 52) | type TableProviderProps = { function TableProvider (line 59) | function TableProvider({ type TableHeadProps (line 95) | type TableHeadProps = { type TableHeaderGroupProps (line 110) | type TableHeaderGroupProps = { type TableHeaderProps (line 124) | type TableHeaderProps = { type TableColumnHeaderProps (line 139) | interface TableColumnHeaderProps function TableColumnHeader (line 145) | function TableColumnHeader({ type TableCellProps (line 197) | type TableCellProps = { type TableRowProps (line 208) | type TableRowProps = { type TableBodyProps (line 224) | type TableBodyProps = { FILE: components/list-view.tsx type Location (line 7) | interface Location { type Photo (line 12) | interface Photo { type Place (line 21) | interface Place { type PlaceCardProps (line 43) | interface PlaceCardProps { FILE: components/logos/elevenlabs-logo.tsx function ElevenLabsLogo (line 1) | function ElevenLabsLogo() { FILE: components/logos/exa-logo.tsx function ExaLogo (line 1) | function ExaLogo() { FILE: components/logos/sarvam-logo.tsx function SarvamLogo (line 1) | function SarvamLogo({ FILE: components/logos/scira-logo.tsx function SciraLogo (line 1) | function SciraLogo({ FILE: components/logos/vercel-logo.tsx function VercelLogo (line 1) | function VercelLogo() { FILE: components/map-components.tsx type Location (line 9) | interface Location { type Place (line 14) | interface Place { type MapProps (line 24) | interface MapProps { type MapContainerProps (line 351) | interface MapContainerProps { FILE: components/markdown.tsx type FilePreviewDefinition (line 95) | interface FilePreviewDefinition { type TaggedLinkData (line 102) | interface TaggedLinkData { constant NON_DOWNLOADABLE_EXTENSIONS (line 107) | const NON_DOWNLOADABLE_EXTENSIONS = new Set(['html', 'htm', 'php', 'asp'... constant FILE_TYPE_MAP (line 109) | const FILE_TYPE_MAP: Record) { function isToolPartType (line 140) | function isToolPartType(partType: string) { function isSourcePartType (line 144) | function isSourcePartType(partType: string) { function isXaiMultiAgentToolPart (line 148) | function isXaiMultiAgentToolPart(part: ChatMessage['parts'][number]) { function getXaiMultiAgentToolLabel (line 152) | function getXaiMultiAgentToolLabel(partType: XaiMultiAgentToolPart['type... function CopyIcon (line 156) | function CopyIcon(props: React.SVGProps) { function TryAgainIcon (line 170) | function TryAgainIcon(props: React.SVGProps) { function formatDynamicToolName (line 322) | function formatDynamicToolName(partType: string, dynamicToolName?: strin... function getDynamicStepState (line 333) | function getDynamicStepState(part: any): 'loading' | 'done' | 'error' { function getDynamicOutputText (line 339) | function getDynamicOutputText(output: any): string | null { function formatValue (line 366) | function formatValue(val: unknown): string { constant STRUCTURED_CONTENT_BLOCKLIST (line 392) | const STRUCTURED_CONTENT_BLOCKLIST = new Set([ function extractStructuredContent (line 405) | function extractStructuredContent(output: unknown): Record[] { type McpApprovalData (line 645) | interface McpApprovalData { function extractApprovalData (line 653) | function extractApprovalData(output: unknown): McpApprovalData | null { type McpAppRenderData (line 673) | interface McpAppRenderData { constant SANDBOX_ORIGIN (line 683) | const SANDBOX_ORIGIN = process.env.NEXT_PUBLIC_MCP_SANDBOX_ORIGIN || ''; function getSandboxUrl (line 689) | function getSandboxUrl(resourceUri: string): string | null { function getSafeToolUiResourceUri (line 694) | function getSafeToolUiResourceUri(candidate: unknown): string | undefined { function logMcpAppDebug (line 703) | function logMcpAppDebug(event: string, details?: Record) { function extractMcpAppRenderData (line 707) | function extractMcpAppRenderData(output: unknown): McpAppRenderData | nu... function normalizeMcpAppToolResult (line 774) | function normalizeMcpAppToolResult( function McpAppOutputBlock (line 820) | function McpAppOutputBlock({ type McpTimelineEntry (line 1655) | type McpTimelineEntry = type InlineElicitationData (line 1660) | interface InlineElicitationData { type InlineSchemaProperty (line 1669) | interface InlineSchemaProperty { type InlineRequestedSchema (line 1679) | interface InlineRequestedSchema { function parseInlineSchema (line 1685) | function parseInlineSchema(raw: unknown): InlineRequestedSchema { function getInlineDefaultValue (line 1690) | function getInlineDefaultValue(prop: InlineSchemaProperty): unknown { function buildInlineElicitationContent (line 1697) | function buildInlineElicitationContent( function getPendingInlineElicitations (line 1723) | function getPendingInlineElicitations( function McpInlineElicitationCard (line 1754) | function McpInlineElicitationCard({ type MessagePartRendererProps (line 2360) | interface MessagePartRendererProps { function CanvasSpecRenderer (line 2388) | function CanvasSpecRenderer({ parts, isStreaming }: { parts: ChatMessage... FILE: components/message.tsx type EnhancedErrorDisplayProps (line 47) | interface EnhancedErrorDisplayProps { type MessageProps (line 274) | interface MessageProps { type MessageEditorProps (line 306) | interface MessageEditorProps { constant MAX_EDITOR_FILES (line 316) | const MAX_EDITOR_FILES = 4; constant MAX_EDITOR_IMAGE_SIZE (line 317) | const MAX_EDITOR_IMAGE_SIZE = 5 * 1024 * 1024; constant MAX_EDITOR_DOCUMENT_SIZE (line 318) | const MAX_EDITOR_DOCUMENT_SIZE = 50 * 1024 * 1024; constant EDITOR_ACCEPTED_FILE_TYPES (line 319) | const EDITOR_ACCEPTED_FILE_TYPES = 'image/*,.pdf,.csv,.xlsx,.xls,.docx'; constant EDITOR_DOCUMENT_MIME_TYPES (line 320) | const EDITOR_DOCUMENT_MIME_TYPES = [ function isImageFile (line 327) | function isImageFile(file: File): boolean { function getMaxSizeForFile (line 331) | function getMaxSizeForFile(file: File): number { function insertFileParts (line 335) | function insertFileParts( function fileToDataURL (line 359) | function fileToDataURL(file: File): Promise { constant USER_MESSAGE_MAX_HEIGHT (line 821) | const USER_MESSAGE_MAX_HEIGHT = 125; FILE: components/messages.tsx type PartInfo (line 12) | interface PartInfo { type MessagesProps (line 18) | interface MessagesProps { FILE: components/movie-info.tsx type MediaDetails (line 10) | interface MediaDetails { type TMDBResultProps (line 42) | interface TMDBResultProps { FILE: components/multi-search.tsx type SearchImage (line 63) | type SearchImage = { type SearchResult (line 68) | type SearchResult = { type SearchQueryResult (line 76) | type SearchQueryResult = { type MultiSearchResponse (line 82) | type MultiSearchResponse = { type Topic (line 86) | type Topic = 'general' | 'news'; type MultiSearchArgs (line 88) | type MultiSearchArgs = { type NormalizedMultiSearchArgs (line 95) | type NormalizedMultiSearchArgs = { constant PREVIEW_IMAGE_COUNT (line 103) | const PREVIEW_IMAGE_COUNT = 5; FILE: components/nearby-search-map-view.tsx type Location (line 10) | interface Location { type Photo (line 15) | interface Photo { type Place (line 23) | interface Place { type NearbySearchMapViewProps (line 57) | interface NearbySearchMapViewProps { FILE: components/new-chat-hotkey.tsx function isEditableTarget (line 6) | function isEditableTarget(target: EventTarget | null): boolean { function NewChatHotkey (line 13) | function NewChatHotkey() { FILE: components/onchain-crypto-components.tsx type OnChainTokenPriceProps (line 14) | interface OnChainTokenPriceProps { FILE: components/place-card.tsx type Location (line 18) | interface Location { type Photo (line 23) | interface Photo { type Place (line 31) | interface Place { type PlaceCardProps (line 63) | interface PlaceCardProps { FILE: components/placeholder-image.tsx type PlaceholderImageProps (line 5) | interface PlaceholderImageProps { FILE: components/prediction-search.tsx type PredictionMarket (line 91) | type PredictionMarket = { type PredictionSearchResponse (line 121) | type PredictionSearchResponse = { type PredictionSearchArgs (line 132) | type PredictionSearchArgs = { FILE: components/reasoning-part.tsx type ReasoningPartViewProps (line 9) | interface ReasoningPartViewProps { type TableFlags (line 21) | interface TableFlags { method code (line 42) | code(code: string, language?: string) { method codespan (line 52) | codespan(code: string) { method paragraph (line 62) | paragraph(text: ReactNode) { method strong (line 69) | strong(text: ReactNode) { method heading (line 76) | heading(text: ReactNode, level: number) { method link (line 94) | link(href: string, text: ReactNode) { method list (line 106) | list(body: ReactNode, ordered: boolean) { method listItem (line 117) | listItem(text: ReactNode) { method blockquote (line 124) | blockquote(text: ReactNode) { method hr (line 134) | hr() { method table (line 137) | table(children: ReactNode[]) { method tableRow (line 144) | tableRow(content: ReactNode) { method tableCell (line 151) | tableCell(children: ReactNode[], flags: TableFlags) { FILE: components/reddit-search.tsx type RedditResult (line 55) | type RedditResult = { type RedditSearchQueryResult (line 66) | type RedditSearchQueryResult = { type RedditSearchResponse (line 71) | type RedditSearchResponse = { type RedditSearchArgs (line 75) | type RedditSearchArgs = { FILE: components/retrieve-results.tsx type RetrieveResult (line 16) | interface RetrieveResult { type RetrieveResponse (line 36) | interface RetrieveResponse { FILE: components/reui/stepper.tsx type StepperOrientation (line 20) | type StepperOrientation = "horizontal" | "vertical" type StepState (line 21) | type StepState = "active" | "completed" | "inactive" | "loading" type StepIndicators (line 22) | type StepIndicators = { type StepperContextValue (line 29) | interface StepperContextValue { type StepItemContextValue (line 43) | interface StepItemContextValue { function useStepper (line 55) | function useStepper() { function useStepItem (line 61) | function useStepItem() { type StepperProps (line 67) | interface StepperProps extends HTMLAttributes { function Stepper (line 75) | function Stepper({ type StepperItemProps (line 169) | interface StepperItemProps extends React.HTMLAttributes { function StepperItem (line 176) | function StepperItem({ type StepperTriggerProps (line 216) | interface StepperTriggerProps extends React.ButtonHTMLAttributes) { function StepperTitle (line 373) | function StepperTitle({ children, className }: React.ComponentProps<"h3"... function StepperDescription (line 390) | function StepperDescription({ function StepperNav (line 410) | function StepperNav({ children, className }: React.ComponentProps<"nav">) { function StepperPanel (line 428) | function StepperPanel({ children, className }: React.ComponentProps<"div... type StepperContentProps (line 442) | interface StepperContentProps extends React.ComponentProps<"div"> { function StepperContent (line 447) | function StepperContent({ FILE: components/reui/timeline.tsx type TimelineContextValue (line 15) | type TimelineContextValue = { type TimelineProps (line 34) | interface TimelineProps extends HTMLAttributes { function Timeline (line 41) | function Timeline({ function TimelineContent (line 84) | function TimelineContent({ type TimelineDateProps (line 98) | interface TimelineDateProps extends HTMLAttributes { function TimelineDate (line 102) | function TimelineDate({ function TimelineHeader (line 122) | function TimelineHeader({ type TimelineIndicatorProps (line 132) | interface TimelineIndicatorProps extends HTMLAttributes { function TimelineIndicator (line 136) | function TimelineIndicator({ type TimelineItemProps (line 160) | interface TimelineItemProps extends HTMLAttributes { function TimelineItem (line 164) | function TimelineItem({ step, className, ...props }: TimelineItemProps) { function TimelineSeparator (line 181) | function TimelineSeparator({ function TimelineTitle (line 199) | function TimelineTitle({ FILE: components/searches-page.tsx function getModelLabel (line 55) | function getModelLabel(modelValue: string): string { type Chat (line 60) | interface Chat { type SearchesPageProps (line 72) | interface SearchesPageProps { type VisibilityFilter (line 76) | type VisibilityFilter = 'all' | 'public' | 'private'; type DateFilter (line 77) | type DateFilter = 'all' | 'today' | 'week' | 'month'; type SortOrder (line 78) | type SortOrder = 'newest' | 'oldest'; constant ITEMS_PER_PAGE (line 80) | const ITEMS_PER_PAGE = 25; function fuzzySearch (line 82) | function fuzzySearch(query: string, text: string): boolean { function advancedSearch (line 94) | function advancedSearch( type TimeGroup (line 137) | type TimeGroup = 'pinned' | 'today' | 'yesterday' | 'this_week' | 'this_... function getChatTimeGroup (line 139) | function getChatTimeGroup(chat: Chat): TimeGroup { constant GROUP_LABELS (line 149) | const GROUP_LABELS: Record = { constant GROUP_ORDER (line 158) | const GROUP_ORDER: TimeGroup[] = ['pinned', 'today', 'yesterday', 'this_... function SearchesPage (line 160) | function SearchesPage({ userId }: SearchesPageProps) { FILE: components/settings-dialog.tsx type SettingsDialogProps (line 117) | interface SettingsDialogProps { function ProfileSection (line 130) | function ProfileSection({ user, subscriptionData, isProUser, isProStatus... type AutoRouterRoute (line 260) | type AutoRouterRoute = { type AutoRouterConfig (line 266) | type AutoRouterConfig = { function getDefaultAutoRouterRoutes (line 270) | function getDefaultAutoRouterRoutes(): AutoRouterRoute[] { function PreferencesSection (line 301) | function PreferencesSection({ type TimePeriod (line 1095) | type TimePeriod = '7d' | '30d' | '12m'; function UsageSection (line 1097) | function UsageSection({ user }: any) { function SubscriptionSection (line 1540) | function SubscriptionSection({ subscriptionData, isProUser, user }: any) { type UploadedFile (line 2041) | interface UploadedFile { type UploadsResponse (line 2052) | interface UploadsResponse { type FileFilter (line 2058) | type FileFilter = 'all' | 'images' | 'documents'; function formatBytes (line 2060) | function formatBytes(bytes: number): string { constant IMAGE_MIMES (line 2068) | const IMAGE_MIMES = ['image/jpeg', 'image/png', 'image/gif']; constant IMAGE_EXTENSIONS (line 2069) | const IMAGE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif']; constant FILE_TYPES (line 2071) | const FILE_TYPES = { type DetectedType (line 2082) | type DetectedType = keyof typeof FILE_TYPES; function detectFileType (line 2084) | function detectFileType(mediaType: string | null, filename: string): Det... function getFileCategory (line 2096) | function getFileCategory(mediaType: string | null, filename: string): 'i... function FileTypeIcon (line 2100) | function FileTypeIcon({ function UploadsSection (line 2128) | function UploadsSection() { function MemoriesSection (line 2592) | function MemoriesSection() { function ConnectorsSection (line 2782) | function ConnectorsSection({ user }: { user: any }) { type McpServerRecord (line 3198) | interface McpServerRecord { function McpSection (line 3221) | function McpSection({ user, isProUser }: { user: any; isProUser?: boolea... function SettingsDialog (line 3838) | function SettingsDialog({ FILE: components/settings/theme-previews.tsx type ThemeOption (line 8) | interface ThemeOption { function ThemeMiniPreview (line 15) | function ThemeMiniPreview({ function ThemePreviews (line 66) | function ThemePreviews({ className, variant = 'full' }: { className?: st... FILE: components/share-viewer.tsx type ShareViewerProps (line 18) | interface ShareViewerProps { function ShareViewer (line 27) | function ShareViewer({ chatId, chatTitle, shareUrl, messages, isSignedIn... FILE: components/share/share-attachments-badge.tsx type ShareAttachmentsBadgeProps (line 6) | interface ShareAttachmentsBadgeProps { function getAttachmentLabel (line 11) | function getAttachmentLabel(attachment: Attachment, index: number): stri... function getAttachmentKind (line 21) | function getAttachmentKind(attachment: Attachment): 'image' | 'document'... function ShareAttachmentsBadge (line 37) | function ShareAttachmentsBadge({ attachments, className }: ShareAttachme... FILE: components/share/share-button.tsx function IconArrowOutOfBox (line 9) | function IconArrowOutOfBox(props: React.SVGProps) { type ShareButtonProps (line 23) | interface ShareButtonProps { function ShareButton (line 35) | function ShareButton({ FILE: components/share/share-dialog.tsx type ShareDialogProps (line 23) | interface ShareDialogProps { function ShareDialog (line 33) | function ShareDialog({ FILE: components/sidebar-layout.tsx function SidebarLayout (line 9) | function SidebarLayout({ children }: { children: React.ReactNode }) { FILE: components/sign-in-prompt-dialog.tsx type SignInPromptDialogProps (line 13) | interface SignInPromptDialogProps { type SignInButtonProps (line 18) | interface SignInButtonProps { function SignInPromptDialog (line 117) | function SignInPromptDialog({ open, onOpenChange }: SignInPromptDialogPr... FILE: components/spotify-search-results.tsx type AudioPlayerState (line 89) | interface AudioPlayerState { type TabType (line 96) | type TabType = 'tracks' | 'artists' | 'albums' | 'playlists'; type SpotifySearchResultsProps (line 702) | interface SpotifySearchResultsProps { FILE: components/student-domain-request-button.tsx function StudentDomainRequestButton (line 19) | function StudentDomainRequestButton() { FILE: components/supported-domains-list.tsx type SupportedDomainsListProps (line 20) | interface SupportedDomainsListProps { type DomainsData (line 24) | interface DomainsData { function SupportedDomainsList (line 32) | function SupportedDomainsList({ className }: SupportedDomainsListProps) { FILE: components/text-translate.tsx type TextTranslateToolArgs (line 23) | interface TextTranslateToolArgs { type TextTranslateToolResult (line 29) | interface TextTranslateToolResult { type TextTranslateProps (line 34) | interface TextTranslateProps { function normalizeLanguageCode (line 40) | function normalizeLanguageCode(value: string | undefined | null): string { function getLanguageName (line 46) | function getLanguageName(languageCode: string): string { function copyToClipboard (line 56) | async function copyToClipboard(text: string, label: string) { function SimpleAudioPlayer (line 66) | function SimpleAudioPlayer({ function LoadingMatrix (line 107) | function LoadingMatrix() { function TranscriptPlayer (line 126) | function TranscriptPlayer({ function TextTranslate (line 175) | function TextTranslate({ args, result, className }: TextTranslateProps) { FILE: components/theme-switcher.tsx type ThemeConfig (line 10) | interface ThemeConfig { constant THEMES (line 18) | const THEMES: ThemeConfig[] = [ function ThemeSwatch (line 84) | function ThemeSwatch({ colors, size = 'sm' }: { colors: [string, string,... function ThemeSwitcher (line 95) | function ThemeSwitcher() { FILE: components/tool-invocation-list-view.tsx function CodeInterpreterView (line 252) | function CodeInterpreterView({ FILE: components/trending-tv-movies-results.tsx type TrendingItem (line 9) | interface TrendingItem { type TrendingResultsProps (line 23) | interface TrendingResultsProps { FILE: components/ui/accordion.tsx function Accordion (line 9) | function Accordion({ function AccordionItem (line 15) | function AccordionItem({ function AccordionTrigger (line 28) | function AccordionTrigger({ function AccordionContent (line 50) | function AccordionContent({ FILE: components/ui/alert-dialog.tsx function AlertDialog (line 9) | function AlertDialog({ function AlertDialogTrigger (line 15) | function AlertDialogTrigger({ function AlertDialogPortal (line 23) | function AlertDialogPortal({ function AlertDialogOverlay (line 31) | function AlertDialogOverlay({ function AlertDialogContent (line 47) | function AlertDialogContent({ function AlertDialogHeader (line 66) | function AlertDialogHeader({ function AlertDialogFooter (line 79) | function AlertDialogFooter({ function AlertDialogTitle (line 95) | function AlertDialogTitle({ function AlertDialogDescription (line 108) | function AlertDialogDescription({ function AlertDialogAction (line 121) | function AlertDialogAction({ function AlertDialogCancel (line 133) | function AlertDialogCancel({ FILE: components/ui/alert.tsx function Alert (line 22) | function Alert({ function AlertTitle (line 37) | function AlertTitle({ className, ...props }: React.ComponentProps<"div">) { function AlertDescription (line 50) | function AlertDescription({ FILE: components/ui/animated-beam.tsx type AnimatedBeamProps (line 8) | interface AnimatedBeamProps { FILE: components/ui/audio-lines.tsx type AudioLinesIconHandle (line 8) | interface AudioLinesIconHandle { type AudioLinesIconProps (line 13) | interface AudioLinesIconProps extends HTMLAttributes { FILE: components/ui/audio-player.tsx type ReadyState (line 28) | enum ReadyState { type NetworkState (line 36) | enum NetworkState { function formatTime (line 43) | function formatTime(seconds: number) { type AudioPlayerItem (line 56) | interface AudioPlayerItem { type AudioPlayerApi (line 62) | interface AudioPlayerApi { function useAudioPlayer (line 80) | function useAudioPlayer(): AudioPlayerApi { function AudioPlayerProvider (line 102) | function AudioPlayerProvider({ type SpinnerProps (line 380) | interface SpinnerProps { function Spinner (line 384) | function Spinner({ className }: SpinnerProps) { type PlayButtonProps (line 399) | interface PlayButtonProps extends React.ComponentProps { type AudioPlayerButtonProps (line 444) | interface AudioPlayerButtonProps function AudioPlayerButton (line 449) | function AudioPlayerButton({ type Callback (line 490) | type Callback = (delta: number) => void function useAnimationFrame (line 492) | function useAnimationFrame(callback: Callback) { constant PLAYBACK_SPEEDS (line 520) | const PLAYBACK_SPEEDS = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] as const type AudioPlayerSpeedProps (line 522) | interface AudioPlayerSpeedProps function AudioPlayerSpeed (line 527) | function AudioPlayerSpeed({ type AudioPlayerSpeedButtonGroupProps (line 568) | interface AudioPlayerSpeedButtonGroupProps function AudioPlayerSpeedButtonGroup (line 573) | function AudioPlayerSpeedButtonGroup({ FILE: components/ui/avatar.tsx function Avatar (line 8) | function Avatar({ function AvatarImage (line 24) | function AvatarImage({ function AvatarFallback (line 37) | function AvatarFallback({ FILE: components/ui/badge.tsx function Badge (line 30) | function Badge({ 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/calendar.tsx function Calendar (line 18) | function Calendar({ function CalendarDayButton (line 182) | function CalendarDayButton({ FILE: components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { 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() { function Carousel (line 45) | function Carousel({ function CarouselContent (line 135) | function CarouselContent({ className, ...props }: React.ComponentProps<"... function CarouselItem (line 156) | function CarouselItem({ className, ...props }: React.ComponentProps<"div... function CarouselPrevious (line 174) | function CarouselPrevious({ function CarouselNext (line 204) | function CarouselNext({ FILE: components/ui/chart.tsx constant THEMES (line 9) | const THEMES = { light: "", dark: ".dark" } as const type ChartConfig (line 11) | type ChartConfig = { type ChartContextProps (line 21) | type ChartContextProps = { function useChart (line 27) | function useChart() { function ChartContainer (line 37) | function ChartContainer({ function ChartTooltipContent (line 107) | function ChartTooltipContent({ function ChartLegendContent (line 255) | function ChartLegendContent({ function getPayloadConfigFromPayload (line 312) | function getPayloadConfigFromPayload( FILE: components/ui/checkbox.tsx function Checkbox (line 9) | function Checkbox({ FILE: components/ui/collapsible.tsx function Collapsible (line 5) | function Collapsible({ function CollapsibleTrigger (line 11) | function CollapsibleTrigger({ function CollapsibleContent (line 22) | function CollapsibleContent({ FILE: components/ui/command.tsx function Command (line 16) | function Command({ function CommandDialog (line 32) | function CommandDialog({ function CommandInput (line 63) | function CommandInput({ function CommandList (line 85) | function CommandList({ function CommandEmpty (line 101) | function CommandEmpty({ function CommandGroup (line 113) | function CommandGroup({ function CommandSeparator (line 129) | function CommandSeparator({ function CommandItem (line 142) | function CommandItem({ function CommandShortcut (line 158) | function CommandShortcut({ FILE: components/ui/dialog.tsx function Dialog (line 9) | function Dialog({ function DialogTrigger (line 15) | function DialogTrigger({ function DialogPortal (line 21) | function DialogPortal({ function DialogClose (line 27) | function DialogClose({ function DialogOverlay (line 33) | function DialogOverlay({ function DialogContent (line 49) | function DialogContent({ function DialogHeader (line 83) | function DialogHeader({ className, ...props }: React.ComponentProps<"div... function DialogFooter (line 93) | function DialogFooter({ className, ...props }: React.ComponentProps<"div... function DialogTitle (line 106) | function DialogTitle({ function DialogDescription (line 119) | function DialogDescription({ FILE: components/ui/drawer.tsx function Drawer (line 8) | function Drawer({ function DrawerTrigger (line 14) | function DrawerTrigger({ function DrawerPortal (line 20) | function DrawerPortal({ function DrawerClose (line 26) | function DrawerClose({ function DrawerOverlay (line 32) | function DrawerOverlay({ function DrawerContent (line 48) | function DrawerContent({ function DrawerHeader (line 75) | function DrawerHeader({ className, ...props }: React.ComponentProps<"div... function DrawerFooter (line 88) | function DrawerFooter({ className, ...props }: React.ComponentProps<"div... function DrawerTitle (line 98) | function DrawerTitle({ function DrawerDescription (line 111) | function DrawerDescription({ FILE: components/ui/dropdown-menu.tsx function DropdownMenu (line 9) | function DropdownMenu({ function DropdownMenuPortal (line 15) | function DropdownMenuPortal({ function DropdownMenuTrigger (line 23) | function DropdownMenuTrigger({ function DropdownMenuContent (line 34) | function DropdownMenuContent({ function DropdownMenuGroup (line 54) | function DropdownMenuGroup({ function DropdownMenuItem (line 62) | function DropdownMenuItem({ function DropdownMenuCheckboxItem (line 85) | function DropdownMenuCheckboxItem({ function DropdownMenuRadioGroup (line 111) | function DropdownMenuRadioGroup({ function DropdownMenuRadioItem (line 122) | function DropdownMenuRadioItem({ function DropdownMenuLabel (line 146) | function DropdownMenuLabel({ function DropdownMenuSeparator (line 166) | function DropdownMenuSeparator({ function DropdownMenuShortcut (line 179) | function DropdownMenuShortcut({ function DropdownMenuSub (line 195) | function DropdownMenuSub({ function DropdownMenuSubTrigger (line 201) | function DropdownMenuSubTrigger({ function DropdownMenuSubContent (line 225) | function DropdownMenuSubContent({ FILE: components/ui/empty.tsx function Empty (line 5) | function Empty({ className, ...props }: React.ComponentProps<'div'>) { function EmptyHeader (line 18) | function EmptyHeader({ className, ...props }: React.ComponentProps<'div'... function EmptyMedia (line 43) | function EmptyMedia({ function EmptyTitle (line 58) | function EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) { function EmptyDescription (line 62) | function EmptyDescription({ className, ...props }: React.ComponentProps<... function EmptyContent (line 75) | function EmptyContent({ className, ...props }: React.ComponentProps<'div... FILE: components/ui/form-component.tsx type SvgIconComponent (line 93) | type SvgIconComponent = React.ComponentType>; type HugeiconsIconProp (line 94) | type HugeiconsIconProp = React.ComponentProps['ico... function FlexibleIcon (line 109) | function FlexibleIcon({ constant PROVIDER_ORDER (line 352) | const PROVIDER_ORDER: (ModelProvider | 'all')[] = [ function getCountryCodeOnce (line 382) | async function getCountryCodeOnce(): Promise { type TypewriterResumeCache (line 399) | interface TypewriterResumeCache { type ModelSwitcherProps (line 408) | interface ModelSwitcherProps { type SearchIndexEntry (line 544) | type SearchIndexEntry = { type Attachment (line 1921) | interface Attachment { constant MAX_FILES (line 1950) | const MAX_FILES = 4; constant MAX_IMAGE_SIZE (line 1951) | const MAX_IMAGE_SIZE = 5 * 1024 * 1024; constant MAX_DOCUMENT_SIZE (line 1952) | const MAX_DOCUMENT_SIZE = 50 * 1024 * 1024; constant MAX_INPUT_CHARS (line 1953) | const MAX_INPUT_CHARS = 50000; type UploadingAttachment (line 2171) | interface UploadingAttachment { type FormComponentProps (line 2176) | interface FormComponentProps { type GroupSelectorProps (line 2213) | interface GroupSelectorProps { type ConnectorSelectorProps (line 2224) | interface ConnectorSelectorProps { type McpServerSelectorProps (line 2346) | interface McpServerSelectorProps { constant WEB_SEARCH_PROVIDERS (line 2735) | const WEB_SEARCH_PROVIDERS: Array<{ FILE: components/ui/form.tsx type FormFieldContextValue (line 21) | type FormFieldContextValue< type FormItemContextValue (line 68) | type FormItemContextValue = { function FormItem (line 76) | function FormItem({ className, ...props }: React.ComponentProps<"div">) { function FormLabel (line 90) | function FormLabel({ function FormControl (line 107) | function FormControl({ ...props }: React.ComponentProps) { function FormDescription (line 125) | function FormDescription({ className, ...props }: React.ComponentProps<"... function FormMessage (line 138) | function FormMessage({ className, ...props }: React.ComponentProps<"p">) { FILE: components/ui/grip.tsx type GripIconHandle (line 9) | interface GripIconHandle { type GripIconProps (line 14) | interface GripIconProps extends HTMLAttributes { constant CIRCLES (line 18) | const CIRCLES = [ FILE: components/ui/hover-card.tsx function HoverCard (line 8) | function HoverCard({ function HoverCardTrigger (line 14) | function HoverCardTrigger({ function HoverCardContent (line 22) | function HoverCardContent({ FILE: components/ui/hugeicons.tsx type BaseProps (line 6) | type BaseProps = React.ComponentProps; function HugeiconsIcon (line 8) | function HugeiconsIcon({ strokeWidth: _ignored, ...rest }: BaseProps) { FILE: components/ui/input-group.tsx function InputGroup (line 11) | function InputGroup({ className, ...props }: React.ComponentProps<"div">) { function InputGroupAddon (line 44) | function InputGroupAddon({ function InputGroupButton (line 83) | function InputGroupButton({ function InputGroupText (line 102) | function InputGroupText({ className, ...props }: React.ComponentProps<"s... function InputGroupInput (line 114) | function InputGroupInput({ function InputGroupTextarea (line 127) | function InputGroupTextarea({ FILE: components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: components/ui/kbd.tsx function Kbd (line 3) | function Kbd({ className, ...props }: React.ComponentProps<"kbd">) { function KbdGroup (line 18) | function KbdGroup({ className, ...props }: React.ComponentProps<"div">) { FILE: components/ui/kibo-ui/contribution-graph/index.tsx type Activity (line 26) | type Activity = { type Week (line 32) | type Week = Array; type Labels (line 34) | type Labels = { type MonthLabel (line 44) | type MonthLabel = { constant DEFAULT_MONTH_LABELS (line 49) | const DEFAULT_MONTH_LABELS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', ... constant DEFAULT_LABELS (line 51) | const DEFAULT_LABELS: Labels = { type ContributionGraphContextType (line 61) | type ContributionGraphContextType = { type ContributionGraphProps (line 188) | type ContributionGraphProps = HTMLAttributes & { type ContributionGraphBlockProps (line 262) | type ContributionGraphBlockProps = HTMLAttributes & { type ContributionGraphCalendarProps (line 311) | type ContributionGraphCalendarProps = Omit; type ContributionGraphTotalCountProps (line 360) | type ContributionGraphTotalCountProps = Omit,... FILE: components/ui/label.tsx function Label (line 8) | function Label({ FILE: components/ui/live-waveform.tsx type LiveWaveformProps (line 7) | type LiveWaveformProps = HTMLAttributes & { FILE: components/ui/loading.tsx function ClassicLoader (line 3) | function ClassicLoader({ className, size = 'md' }: { className?: string;... FILE: components/ui/magic-edit-icon.tsx type MagicEditIconProps (line 3) | interface MagicEditIconProps extends SVGProps { function MagicEditIcon (line 7) | function MagicEditIcon({ size = 24, ...props }: MagicEditIconProps) { FILE: components/ui/magic-wand-icon.tsx type MagicWandIconProps (line 3) | interface MagicWandIconProps extends SVGProps { function MagicWandIcon (line 7) | function MagicWandIcon({ size = 24, className, ...props }: MagicWandIcon... FILE: components/ui/matrix.tsx type Frame (line 8) | type Frame = number[][] type MatrixMode (line 9) | type MatrixMode = "default" | "vu" type CellPosition (line 11) | interface CellPosition { type MatrixProps (line 16) | interface MatrixProps extends React.HTMLAttributes { function clamp (line 37) | function clamp(value: number): number { function ensureFrameSize (line 41) | function ensureFrameSize(frame: Frame, rows: number, cols: number): Frame { function useAnimation (line 53) | function useAnimation( function emptyFrame (line 125) | function emptyFrame(rows: number, cols: number): Frame { function setPixel (line 129) | function setPixel(frame: Frame, row: number, col: number, value: number)... function vu (line 293) | function vu(columns: number, levels: number[]): Frame { FILE: components/ui/model-selector.tsx type ModelSelectorDialogProps (line 252) | interface ModelSelectorDialogProps { function sortModelsForList (line 265) | function sortModelsForList( function ModelSelectorDialog (line 301) | function ModelSelectorDialog({ FILE: components/ui/navigation-menu.tsx function NavigationMenu (line 8) | function NavigationMenu({ function NavigationMenuList (line 32) | function NavigationMenuList({ function NavigationMenuItem (line 48) | function NavigationMenuItem({ function NavigationMenuTrigger (line 65) | function NavigationMenuTrigger({ function NavigationMenuContent (line 85) | function NavigationMenuContent({ function NavigationMenuViewport (line 102) | function NavigationMenuViewport({ function NavigationMenuLink (line 124) | function NavigationMenuLink({ function NavigationMenuIndicator (line 140) | function NavigationMenuIndicator({ FILE: components/ui/orb.tsx type AgentState (line 8) | type AgentState = null | "thinking" | "listening" | "talking" type OrbProps (line 10) | type OrbProps = { function Orb (line 26) | function Orb({ function Scene (line 69) | function Scene({ function splitmix32 (line 266) | function splitmix32(a: number) { function clamp01 (line 278) | function clamp01(n: number) { FILE: components/ui/popover.tsx function Popover (line 8) | function Popover({ function PopoverTrigger (line 14) | function PopoverTrigger({ function PopoverContent (line 20) | function PopoverContent({ function PopoverAnchor (line 42) | function PopoverAnchor({ FILE: components/ui/processor-icon.tsx type ProcessorIconProps (line 3) | interface ProcessorIconProps extends SVGProps { function ProcessorIcon (line 7) | function ProcessorIcon({ size = 24, className, ...props }: ProcessorIcon... FILE: components/ui/progress-ring.tsx type ProgressRingProps (line 4) | interface ProgressRingProps { FILE: components/ui/progress.tsx function Progress (line 8) | function Progress({ FILE: components/ui/scroll-area.tsx function ScrollArea (line 8) | function ScrollArea({ function ScrollBar (line 31) | function ScrollBar({ FILE: components/ui/scrub-bar.tsx function formatTimestamp (line 16) | function formatTimestamp(value: number) { type ScrubBarContextValue (line 24) | interface ScrubBarContextValue { function useScrubBarContext (line 35) | function useScrubBarContext() { type ScrubBarContainerProps (line 43) | interface ScrubBarContainerProps extends HTMLAttributes { function ScrubBarContainer (line 51) | function ScrubBarContainer({ type ScrubBarTrackProps (line 86) | type ScrubBarTrackProps = HTMLAttributes function ScrubBarTrack (line 88) | function ScrubBarTrack({ className, children, ...props }: ScrubBarTrackP... type ScrubBarProgressProps (line 157) | type ScrubBarProgressProps = Omit, "value"> function ScrubBarProgress (line 159) | function ScrubBarProgress({ className, ...props }: ScrubBarProgressProps) { type ScrubBarThumbProps (line 173) | type ScrubBarThumbProps = HTMLAttributes function ScrubBarThumb (line 175) | function ScrubBarThumb({ className, children, ...props }: ScrubBarThumbP... type ScrubBarTimeLabelProps (line 193) | interface ScrubBarTimeLabelProps extends HTMLAttributes { function ScrubBarTimeLabel (line 198) | function ScrubBarTimeLabel({ FILE: components/ui/select.tsx function Select (line 9) | function Select({ function SelectGroup (line 15) | function SelectGroup({ function SelectValue (line 21) | function SelectValue({ function SelectTrigger (line 27) | function SelectTrigger({ function SelectContent (line 53) | function SelectContent({ function SelectLabel (line 90) | function SelectLabel({ function SelectItem (line 103) | function SelectItem({ function SelectSeparator (line 130) | function SelectSeparator({ function SelectScrollUpButton (line 143) | function SelectScrollUpButton({ function SelectScrollDownButton (line 161) | function SelectScrollDownButton({ FILE: components/ui/separator.tsx function Separator (line 8) | function Separator({ FILE: components/ui/settings.tsx type SettingsIconHandle (line 9) | interface SettingsIconHandle { type SettingsIconProps (line 14) | interface SettingsIconProps extends HTMLAttributes { FILE: components/ui/sheet.tsx function Sheet (line 9) | function Sheet({ ...props }: React.ComponentProps) { function SidebarTrigger (line 274) | function SidebarTrigger({ className, onClick, ...props }: React.Componen... function SidebarRail (line 296) | function SidebarRail({ className, ...props }: React.ComponentProps<'butt... function SidebarInset (line 321) | function SidebarInset({ className, ...props }: React.ComponentProps<'mai... function SidebarInput (line 335) | function SidebarInput({ className, ...props }: React.ComponentProps) { function SidebarMenuItem (line 470) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<'... function SidebarMenuButton (line 503) | function SidebarMenuButton({ function SidebarMenuAction (line 548) | function SidebarMenuAction({ function SidebarMenuBadge (line 579) | function SidebarMenuBadge({ className, ...props }: React.ComponentProps<... function SidebarMenuSkeleton (line 598) | function SidebarMenuSkeleton({ function SidebarMenuSub (line 631) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<'u... function SidebarMenuSubItem (line 646) | function SidebarMenuSubItem({ className, ...props }: React.ComponentProp... function SidebarMenuSubButton (line 657) | function SidebarMenuSubButton({ FILE: components/ui/sileo-toaster.tsx function Toaster (line 6) | function Toaster({ FILE: components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<"div">) { FILE: components/ui/spinner.tsx function Spinner (line 5) | function Spinner({ className, ...props }: Omit) { function TableHeader (line 22) | function TableHeader({ className, ...props }: React.ComponentProps<"thea... function TableBody (line 32) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"... function TableFooter (line 42) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo... function TableRow (line 55) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) { function TableHead (line 68) | function TableHead({ className, ...props }: React.ComponentProps<"th">) { function TableCell (line 81) | function TableCell({ className, ...props }: React.ComponentProps<"td">) { function TableCaption (line 94) | function TableCaption({ FILE: components/ui/tabs.tsx function Tabs (line 8) | function Tabs({ function TabsList (line 21) | function TabsList({ function TabsTrigger (line 37) | function TabsTrigger({ function TabsContent (line 53) | function TabsContent({ FILE: components/ui/text-rotate.tsx type TextRotateProps (line 32) | interface TextRotateProps { type TextRotateRef (line 147) | interface TextRotateRef { type WordObject (line 179) | interface WordObject { FILE: components/ui/textarea.tsx function Textarea (line 5) | function Textarea({ className, ...props }: React.ComponentProps<"textare... FILE: components/ui/tooltip.tsx function TooltipProvider (line 8) | function TooltipProvider({ function Tooltip (line 21) | function Tooltip({ function TooltipTrigger (line 31) | function TooltipTrigger({ function TooltipContent (line 37) | function TooltipContent({ FILE: components/ui/transcript-viewer.tsx type TranscriptGap (line 32) | type TranscriptGap = Extract type TranscriptViewerContextValue (line 34) | type TranscriptViewerContextValue = UseTranscriptViewerResult & { function useTranscriptViewerContext (line 41) | function useTranscriptViewerContext() { type TranscriptViewerProviderProps (line 51) | type TranscriptViewerProviderProps = { function TranscriptViewerProvider (line 56) | function TranscriptViewerProvider({ type AudioType (line 67) | type AudioType = type TranscriptViewerContainerProps (line 76) | type TranscriptViewerContainerProps = { function TranscriptViewerContainer (line 89) | function TranscriptViewerContainer({ type TranscriptViewerWordStatus (line 149) | type TranscriptViewerWordStatus = "spoken" | "unspoken" | "current" type TranscriptViewerWordProps (line 150) | interface TranscriptViewerWordProps function TranscriptViewerWord (line 157) | function TranscriptViewerWord({ type TranscriptViewerWordsProps (line 183) | interface TranscriptViewerWordsProps extends HTMLAttributes ReactNode type TranscriptViewerPlayPauseButtonProps (line 308) | type TranscriptViewerPlayPauseButtonProps = Omit< function TranscriptViewerPlayPauseButton (line 315) | function TranscriptViewerPlayPauseButton({ type TranscriptViewerScrubBarProps (line 352) | type TranscriptViewerScrubBarProps = Omit< function TranscriptViewerScrubBar (line 366) | function TranscriptViewerScrubBar({ FILE: components/ui/voice-button.tsx type VoiceButtonState (line 10) | type VoiceButtonState = type VoiceButtonProps (line 17) | interface VoiceButtonProps FILE: components/ui/voice-picker.tsx function useOrbColors (line 28) | function useOrbColors(): [string, string] { function resolveColors (line 53) | function resolveColors(): [string, string] { type VoicePickerProps (line 96) | interface VoicePickerProps { function VoicePicker (line 106) | function VoicePicker({ type VoicePickerItemProps (line 176) | interface VoicePickerItemProps { function VoicePickerItem (line 182) | function VoicePickerItem({ FILE: components/user-cache-status.tsx type UserCacheStatusProps (line 10) | interface UserCacheStatusProps { function UserCacheStatus (line 14) | function UserCacheStatus({ className }: UserCacheStatusProps) { FILE: components/weather-chart.tsx type WeatherDataPoint (line 28) | interface WeatherDataPoint { type AirPollutionData (line 47) | interface AirPollutionData { type DailyForecastSummary (line 64) | interface DailyForecastSummary { type OpenMeteo16DayData (line 78) | interface OpenMeteo16DayData { type WeatherChartProps (line 90) | interface WeatherChartProps { function convertWindSpeed (line 95) | function convertWindSpeed(speed: number): number { function getWeatherIconUrl (line 100) | function getWeatherIconUrl(iconCode: string): string { function mapWMOCodeToWeather (line 105) | function mapWMOCodeToWeather(code: number): { description: string; icon:... function formatTime (line 141) | function formatTime(timestamp: number): string { function getAirQualityInfo (line 146) | function getAirQualityInfo(aqi: number): { label: string; colorClass: st... FILE: components/x-search.tsx type Citation (line 53) | interface Citation { type Source (line 62) | interface Source { type XSearchQueryResult (line 68) | interface XSearchQueryResult { type XSearchResponse (line 77) | interface XSearchResponse { type XSearchArgs (line 83) | interface XSearchArgs { type NormalizedXSearchArgs (line 94) | interface NormalizedXSearchArgs { type XSearchProps (line 99) | interface XSearchProps { function extractTweetId (line 105) | function extractTweetId(url?: string | null) { FILE: components/xql-pro-upgrade-screen.tsx constant FEATURES (line 7) | const FEATURES = [ function XQLProUpgradeScreen (line 13) | function XQLProUpgradeScreen() { FILE: components/youtube-search-results.tsx type TranscriptChunk (line 13) | interface TranscriptChunk { type VideoDetails (line 95) | interface VideoDetails { type VideoStats (line 106) | interface VideoStats { type VideoResult (line 113) | interface VideoResult { type YouTubeSearchResponse (line 129) | interface YouTubeSearchResponse { type YouTubeSearchResultsProps (line 133) | interface YouTubeSearchResultsProps { FILE: contexts/user-context.tsx type UserContextType (line 7) | interface UserContextType { type UserProviderProps (line 56) | interface UserProviderProps { function UserProvider (line 60) | function UserProvider({ children }: UserProviderProps) { function useUser (line 66) | function useUser(): UserContextType { function useIsProUser (line 77) | function useIsProUser() { function useSubscriptionStatus (line 82) | function useSubscriptionStatus() { FILE: hooks/use-auto-resume.ts type UseAutoResumeParams (line 8) | type UseAutoResumeParams = { function useAutoResume (line 15) | function useAutoResume({ FILE: hooks/use-cached-user-data.tsx function useCachedUserData (line 10) | function useCachedUserData() { function useCachedIsProUser (line 124) | function useCachedIsProUser() { function useCachedSubscriptionStatus (line 130) | function useCachedSubscriptionStatus() { FILE: hooks/use-chat-prefetch.ts function useChatPrefetch (line 7) | function useChatPrefetch() { FILE: hooks/use-github-stars.ts type GitHubRepo (line 3) | interface GitHubRepo { function useGitHubStars (line 9) | function useGitHubStars() { FILE: hooks/use-local-storage.tsx function getStoredValue (line 4) | function getStoredValue(key: string, defaultValue: T): T { function useLocalStorage (line 21) | function useLocalStorage(key: string, defaultValue: T): [T, (value: T... FILE: hooks/use-location.ts type LocationData (line 4) | interface LocationData { function fetchLocationOnce (line 14) | async function fetchLocationOnce(): Promise { function useLocation (line 41) | function useLocation(): LocationData { FILE: hooks/use-lookouts.ts type LookoutRunStatus (line 15) | type LookoutRunStatus = 'success' | 'error' | 'timeout'; type LookoutRun (line 17) | interface LookoutRun { type Lookout (line 27) | interface Lookout { function getLastRunStatus (line 43) | function getLastRunStatus(lookout: Lookout): LookoutRunStatus | null { function getLastRunError (line 49) | function getLastRunError(lookout: Lookout): string | null { function useLookouts (line 65) | function useLookouts() { function useFilteredLookouts (line 433) | function useFilteredLookouts(filter: 'active' | 'archived' | 'all' = 'al... FILE: hooks/use-media-query.tsx function useMediaQuery (line 4) | function useMediaQuery(query: string) { FILE: hooks/use-mobile.ts constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768 function useIsMobile (line 5) | function useIsMobile() { FILE: hooks/use-optimized-scroll.ts constant NEAR_BOTTOM_THRESHOLD (line 3) | const NEAR_BOTTOM_THRESHOLD = 80; type UseOptimizedScrollOptions (line 5) | interface UseOptimizedScrollOptions { function useOptimizedScroll (line 10) | function useOptimizedScroll( FILE: hooks/use-synced-preferences.tsx type PreferenceKey (line 7) | type PreferenceKey = type AutoRouterConfig (line 21) | type AutoRouterConfig = { type PreferenceValue (line 29) | type PreferenceValue = string | string[] | boolean | AutoRouterConfig | ... constant DEBOUNCE_MS (line 31) | const DEBOUNCE_MS = 300; constant MIGRATION_KEY_PREFIX (line 32) | const MIGRATION_KEY_PREFIX = 'scira-prefs-migrated-'; type UserPreferencesRecord (line 34) | interface UserPreferencesRecord { function fetchUserPreferences (line 38) | async function fetchUserPreferences(): Promise(key: string, defaultValue: T): T { function hasMigratedPreferences (line 86) | function hasMigratedPreferences(userId: string): boolean { function markPreferencesMigrated (line 92) | function markPreferencesMigrated(userId: string): void { function collectLocalStoragePreferences (line 98) | function collectLocalStoragePreferences(): Partial( FILE: hooks/use-transcript-viewer.ts type ComposeSegmentsOptions (line 13) | type ComposeSegmentsOptions = { type BaseSegment (line 17) | type BaseSegment = { type TranscriptWord (line 22) | type TranscriptWord = BaseSegment & { type GapSegment (line 29) | type GapSegment = BaseSegment & { type TranscriptSegment (line 33) | type TranscriptSegment = TranscriptWord | GapSegment type ComposeSegmentsResult (line 35) | type ComposeSegmentsResult = { type SegmentComposer (line 40) | type SegmentComposer = ( function composeSegments (line 44) | function composeSegments( type UseTranscriptViewerProps (line 137) | type UseTranscriptViewerProps = { type UseTranscriptViewerResult (line 148) | type UseTranscriptViewerResult = { function useTranscriptViewer (line 169) | function useTranscriptViewer({ FILE: hooks/use-usage-data.ts function useUsageData (line 7) | function useUsageData(user: User | null, enabled: boolean = true) { FILE: hooks/use-user-data.ts function useUserData (line 6) | function useUserData() { function useIsProUser (line 93) | function useIsProUser() { function useSubscriptionStatus (line 99) | function useSubscriptionStatus() { FILE: hooks/use-voice-client.ts type VoiceType (line 5) | type VoiceType = "Ara" | "Rex" | "Sal" | "Eve" | "Leo"; type AgentState (line 6) | type AgentState = null | "thinking" | "listening" | "talking"; type VoiceClientOptions (line 8) | interface VoiceClientOptions { type ConversationTurn (line 14) | interface ConversationTurn { type VoiceStats (line 25) | interface VoiceStats { type UseVoiceClientReturn (line 32) | interface UseVoiceClientReturn { constant CHUNK_DURATION_MS (line 50) | const CHUNK_DURATION_MS = 100; constant DEFAULT_VOICE_INSTRUCTIONS (line 53) | const DEFAULT_VOICE_INSTRUCTIONS = `Your Name is Scira named as [sci-ra]... constant VOICE_BACKEND_URL (line 135) | const VOICE_BACKEND_URL = type SessionResponse (line 138) | interface SessionResponse { function getMicrophoneAccessErrorMessage (line 148) | function getMicrophoneAccessErrorMessage(err: unknown): string | null { constant BASE64_CHUNK_BYTES (line 175) | const BASE64_CHUNK_BYTES = 0x2000; function int16ToBase64Chunked (line 178) | function int16ToBase64Chunked(int16Array: Int16Array): string { function base64PCM16ToFloat32 (line 189) | function base64PCM16ToFloat32(base64: string): Float32Array { function useVoiceClient (line 203) | function useVoiceClient( FILE: hooks/use-window-size.tsx type WindowSize (line 5) | interface WindowSize { function useWindowSize (line 10) | function useWindowSize(): WindowSize { FILE: instrumentation.ts function register (line 1) | async function register() { FILE: lib/auth.ts function safeParseDate (line 44) | function safeParseDate(value: string | Date | null | undefined): Date | ... function parseBooleanFlag (line 51) | function parseBooleanFlag(value: unknown): boolean { function handleSubscriptionWebhook (line 73) | async function handleSubscriptionWebhook(payload: any, status: string) { FILE: lib/better-all.ts type BetterAllOptions (line 1) | interface BetterAllOptions { function isBetterAllDebugEnabled (line 5) | function isBetterAllDebugEnabled() { function getBetterAllOptions (line 13) | function getBetterAllOptions() { FILE: lib/canvas/registry.tsx constant PIE_COLORS (line 875) | const PIE_COLORS = [ constant CHART_COLORS (line 888) | const CHART_COLORS = [ function pickChartColor (line 900) | function pickChartColor(seed?: string): string { function stripLinks (line 911) | function stripLinks(text: string): string { function sanitizeInlineHtml (line 916) | function sanitizeInlineHtml(text: string): string { function shouldAngleLabels (line 935) | function shouldAngleLabels(items: Array>): boole... function yAxisWidth (line 942) | function yAxisWidth(items: Array>, valueKey: str... function toNumeric (line 951) | function toNumeric(v: unknown): number { function processChartData (line 961) | function processChartData( function Fallback (line 1016) | function Fallback({ type }: { type: string }) { FILE: lib/canvas/renderer.tsx type CanvasRendererProps (line 19) | interface CanvasRendererProps { function sanitizeSpec (line 29) | function sanitizeSpec(spec: Spec): Spec { function CanvasRenderer (line 40) | function CanvasRenderer({ FILE: lib/chat-messages.ts function convertToUIMessages (line 6) | function convertToUIMessages(messages: Message[]): ChatMessage[] { function convertLegacyToolInvocation (line 31) | function convertLegacyToolInvocation(part: unknown): unknown { function convertLegacyReasoningPart (line 75) | function convertLegacyReasoningPart(part: unknown): unknown { FILE: lib/connectors.tsx function getClient (line 6) | function getClient() { type ConnectorProvider (line 12) | type ConnectorProvider = 'google-drive' | 'notion' | 'onedrive'; type ConnectorConfig (line 14) | interface ConnectorConfig { constant CONNECTOR_ICONS (line 73) | const CONNECTOR_ICONS: Record) =... constant CONNECTOR_CONFIGS (line 79) | const CONNECTOR_CONFIGS: Record = { function getBaseUrl (line 103) | function getBaseUrl() { function createConnection (line 110) | async function createConnection(provider: ConnectorProvider, userId: str... function createGoogleDriveConnection (line 143) | async function createGoogleDriveConnection(userId: string) { function getConnection (line 148) | async function getConnection(provider: ConnectorProvider, userId: string) { function listUserConnections (line 178) | async function listUserConnections(userId: string) { function deleteConnection (line 229) | async function deleteConnection(connectionId: string) { function manualSync (line 243) | async function manualSync(provider: ConnectorProvider, userId: string) { function getSyncStatus (line 264) | async function getSyncStatus(provider: ConnectorProvider, userId: string) { function getGoogleDriveConnection (line 334) | async function getGoogleDriveConnection(userId: string) { function listGoogleDriveConnections (line 338) | async function listGoogleDriveConnections(userId: string) { function deleteGoogleDriveConnection (line 343) | async function deleteGoogleDriveConnection(connectionId: string) { function manualSyncGoogleDrive (line 347) | async function manualSyncGoogleDrive(userId: string) { FILE: lib/constants.ts constant SEARCH_LIMITS (line 2) | const SEARCH_LIMITS = { constant AGENT_MODE_MONTHLY_LIMIT (line 8) | const AGENT_MODE_MONTHLY_LIMIT = 50; constant PRICING (line 10) | const PRICING = { constant CURRENCIES (line 15) | const CURRENCIES = { constant SNAPSHOT_NAME (line 20) | const SNAPSHOT_NAME = 'scira-analysis:1771010549'; FILE: lib/db/chat-queries.ts type MessagePage (line 8) | interface MessagePage { function getRecentMessagesPage (line 13) | async function getRecentMessagesPage({ function getChatWithInitialMessages (line 41) | async function getChatWithInitialMessages({ function getChatWithUserAndInitialMessages (line 92) | async function getChatWithUserAndInitialMessages({ function getChatsWithInitialMessages (line 146) | async function getChatsWithInitialMessages({ function getChatVisibilityAndOwnership (line 222) | async function getChatVisibilityAndOwnership({ id, userId }: { id: strin... function getAdditionalMessages (line 272) | async function getAdditionalMessages({ FILE: lib/db/queries.ts type VisibilityType (line 30) | type VisibilityType = 'public' | 'private'; type DodoSubscriptionRow (line 31) | type DodoSubscriptionRow = typeof dodosubscription.$inferSelect; function getValidDate (line 33) | function getValidDate(value: Date | string | null | undefined): Date | n... function isActiveDodoSubscriptionRecord (line 41) | function isActiveDodoSubscriptionRecord( function getCachedOrFreshDodoSubscriptions (line 59) | async function getCachedOrFreshDodoSubscriptions(userId: string) { function saveChat (line 92) | async function saveChat({ function deleteChatById (line 115) | async function deleteChatById({ id }: { id: string }) { function getChatsByUserId (line 144) | async function getChatsByUserId({ function getRecentChatsByUserId (line 245) | async function getRecentChatsByUserId({ userId, limit = 8 }: { userId: s... function getChatWithUserById (line 315) | async function getChatWithUserById({ id }: { id: string }) { function saveMessages (line 339) | async function saveMessages({ messages }: { messages: Array }) { function getMessageById (line 464) | async function getMessageById({ id }: { id: string }) { function deleteMessagesByChatIdAfterTimestamp (line 472) | async function deleteMessagesByChatIdAfterTimestamp({ chatId, timestamp ... function deleteTrailingMessages (line 482) | async function deleteTrailingMessages({ id }: { id: string }) { function updateChatVisibilityById (line 495) | async function updateChatVisibilityById({ function updateChatTitleById (line 527) | async function updateChatTitleById({ chatId, title }: { chatId: string; ... function updateChatPinnedById (line 540) | async function updateChatPinnedById({ chatId, isPinned }: { chatId: stri... function getMessageCountByUserId (line 549) | async function getMessageCountByUserId({ id }: { id: string }) { function createStreamId (line 557) | async function createStreamId({ streamId, chatId }: { streamId: string; ... function saveNewChatWithStream (line 569) | async function saveNewChatWithStream({ function getLatestStreamIdByChatId (line 624) | async function getLatestStreamIdByChatId({ chatId }: { chatId: string })... function getLatestUserMessageIdByChatId (line 643) | async function getLatestUserMessageIdByChatId({ chatId }: { chatId: stri... function getExtremeSearchUsageByUserId (line 658) | async function getExtremeSearchUsageByUserId({ userId }: { userId: strin... function incrementExtremeSearchUsage (line 687) | async function incrementExtremeSearchUsage({ userId }: { userId: string ... function getExtremeSearchCount (line 725) | async function getExtremeSearchCount({ userId }: { userId: string }): Pr... function getAnthropicUsageByUserId (line 735) | async function getAnthropicUsageByUserId({ userId }: { userId: string }) { function incrementAnthropicUsage (line 765) | async function incrementAnthropicUsage({ userId, model }: { userId: stri... function getAnthropicUsageCount (line 807) | async function getAnthropicUsageCount({ userId }: { userId: string }): P... function getGoogleUsageByUserId (line 817) | async function getGoogleUsageByUserId({ userId }: { userId: string }) { function incrementGoogleUsage (line 844) | async function incrementGoogleUsage({ userId, model }: { userId: string;... function getGoogleUsageCount (line 884) | async function getGoogleUsageCount({ userId }: { userId: string }): Prom... function getMessageUsageByUserId (line 894) | async function getMessageUsageByUserId({ userId }: { userId: string }) { function incrementMessageUsage (line 919) | async function incrementMessageUsage({ userId }: { userId: string }) { function getMessageCount (line 960) | async function getMessageCount({ userId }: { userId: string }): Promise<... function getMessageCountAndExtremeSearchByUserId (line 974) | async function getMessageCountAndExtremeSearchByUserId({ function getHistoricalUsageData (line 1009) | async function getHistoricalUsageData({ userId, months = 6 }: { userId: ... function getAgentModeRequestCountForCurrentMonth (line 1048) | async function getAgentModeRequestCountForCurrentMonth({ userId }: { use... function trackAgentModeUsageEventForMessage (line 1077) | async function trackAgentModeUsageEventForMessage({ function getCustomInstructionsByUserId (line 1112) | async function getCustomInstructionsByUserId({ userId }: { userId: strin... function createCustomInstructions (line 1127) | async function createCustomInstructions({ userId, content }: { userId: s... function updateCustomInstructions (line 1143) | async function updateCustomInstructions({ userId, content }: { userId: s... function deleteCustomInstructions (line 1160) | async function deleteCustomInstructions({ userId }: { userId: string }) { function getUserPreferencesByUserId (line 1174) | async function getUserPreferencesByUserId({ userId }: { userId: string }) { function upsertUserPreferences (line 1189) | async function upsertUserPreferences({ type UserMcpServerInput (line 1262) | interface UserMcpServerInput { function createUserMcpServer (line 1283) | async function createUserMcpServer(input: UserMcpServerInput) { function getUserMcpServersByUserId (line 1315) | async function getUserMcpServersByUserId({ function getUserMcpServerById (line 1347) | async function getUserMcpServerById({ id, userId }: { id: string; userId... function updateUserMcpServer (line 1360) | async function updateUserMcpServer({ function deleteUserMcpServer (line 1405) | async function deleteUserMcpServer({ id, userId }: { id: string; userId:... function getDodoSubscriptionsByUserId (line 1418) | async function getDodoSubscriptionsByUserId({ userId }: { userId: string... function getDodoSubscriptionById (line 1426) | async function getDodoSubscriptionById({ subscriptionId }: { subscriptio... function getActiveDodoSubscriptionsByUserId (line 1439) | async function getActiveDodoSubscriptionsByUserId({ userId }: { userId: ... function getTotalDodoSubscriptionAmountByUserId (line 1456) | async function getTotalDodoSubscriptionAmountByUserId({ userId }: { user... function hasActiveDodoSubscription (line 1466) | async function hasActiveDodoSubscription({ userId }: { userId: string }) { function isDodoSubscriptionExpired (line 1491) | async function isDodoSubscriptionExpired({ userId }: { userId: string }) { function getDodoSubscriptionExpirationInfo (line 1501) | async function getDodoSubscriptionExpirationInfo({ userId }: { userId: s... function createLookout (line 1538) | async function createLookout({ function updateLookout (line 1611) | async function updateLookout({ function updateLookoutStatus (line 1651) | async function updateLookoutStatus({ function updateLookoutLastRun (line 1671) | async function updateLookoutLastRun({ function getLookoutRunStats (line 1732) | async function getLookoutRunStats({ id }: { id: string }) { function deleteLookout (line 1753) | async function deleteLookout({ id }: { id: string }) { function createBuildSession (line 1763) | async function createBuildSession({ function updateBuildSession (line 1792) | async function updateBuildSession({ function getBuildSessionByChatId (line 1831) | async function getBuildSessionByChatId({ chatId }: { chatId: string }) { function getBuildSessionsByUserId (line 1841) | async function getBuildSessionsByUserId({ userId, limit = 20 }: { userId... FILE: lib/db/schema.ts type User (line 647) | type User = InferSelectModel; type Session (line 648) | type Session = InferSelectModel; type Account (line 649) | type Account = InferSelectModel; type Verification (line 650) | type Verification = InferSelectModel; type Chat (line 651) | type Chat = InferSelectModel; type Message (line 652) | type Message = InferSelectModel; type Stream (line 653) | type Stream = InferSelectModel; type Subscription (line 654) | type Subscription = InferSelectModel; type Payment (line 655) | type Payment = InferSelectModel; type DodoSubscription (line 656) | type DodoSubscription = InferSelectModel; type ExtremeSearchUsage (line 657) | type ExtremeSearchUsage = InferSelectModel; type MessageUsage (line 658) | type MessageUsage = InferSelectModel; type AnthropicUsage (line 659) | type AnthropicUsage = InferSelectModel; type GoogleUsage (line 660) | type GoogleUsage = InferSelectModel; type AgentModeUsageEvents (line 661) | type AgentModeUsageEvents = InferSelectModel; type CustomInstructions (line 662) | type CustomInstructions = InferSelectModel; type UserPreferences (line 663) | type UserPreferences = InferSelectModel; type Lookout (line 664) | type Lookout = InferSelectModel; type UserMcpServer (line 665) | type UserMcpServer = InferSelectModel; type BuildSession (line 666) | type BuildSession = InferSelectModel; FILE: lib/discount.ts type DiscountConfig (line 3) | interface DiscountConfig { function isStudentEmail (line 16) | function isStudentEmail(email: string, studentDomains: string[]): boolean { function getDiscountConfig (line 43) | async function getDiscountConfig(userEmail?: string, isIndianUser?: bool... FILE: lib/email.ts type SendLookoutCompletionEmailParams (line 7) | interface SendLookoutCompletionEmailParams { function sendLookoutCompletionEmail (line 14) | async function sendLookoutCompletionEmail({ FILE: lib/errors.ts type ErrorType (line 1) | type ErrorType = type Surface (line 11) | type Surface = 'chat' | 'auth' | 'api' | 'stream' | 'database' | 'histor... type ErrorCode (line 13) | type ErrorCode = `${ErrorType}:${Surface}`; type ErrorVisibility (line 15) | type ErrorVisibility = 'response' | 'log' | 'none'; class ChatSDKError (line 27) | class ChatSDKError extends Error { method constructor (line 32) | constructor(errorCode: ErrorCode, cause?: string) { method toResponse (line 44) | public toResponse() { function getMessageByErrorCode (line 67) | function getMessageByErrorCode(errorCode: ErrorCode): string { function getStatusCodeByType (line 117) | function getStatusCodeByType(type: ErrorType) { function isAuthError (line 141) | function isAuthError(error: ChatSDKError): boolean { function isUpgradeRequiredError (line 145) | function isUpgradeRequiredError(error: ChatSDKError): boolean { function isModelError (line 149) | function isModelError(error: ChatSDKError): boolean { function isSignInRequired (line 153) | function isSignInRequired(error: ChatSDKError): boolean { function isProRequired (line 159) | function isProRequired(error: ChatSDKError): boolean { function isRateLimited (line 163) | function isRateLimited(error: ChatSDKError): boolean { function getErrorActions (line 168) | function getErrorActions(error: ChatSDKError): { function getErrorIcon (line 199) | function getErrorIcon(error: ChatSDKError): 'warning' | 'error' | 'upgra... FILE: lib/mcp/auth-headers.ts function resolveMcpAuthHeaders (line 7) | async function resolveMcpAuthHeaders({ FILE: lib/mcp/catalog-icons.ts constant MCP_CATALOG_ICONS (line 2) | const MCP_CATALOG_ICONS: Record = { function getMcpCatalogIcon (line 7) | function getMcpCatalogIcon(serverUrl: string): string | undefined { constant MCP_COMPONENT_ICON_URLS (line 12) | const MCP_COMPONENT_ICON_URLS = new Set([ FILE: lib/mcp/crypto.ts constant ALGORITHM (line 6) | const ALGORITHM = 'aes-256-gcm'; constant IV_LENGTH (line 7) | const IV_LENGTH = 12; function getEncryptionKey (line 9) | function getEncryptionKey() { function encryptMcpCredentials (line 13) | function encryptMcpCredentials(value: string) { function decryptMcpCredentials (line 23) | function decryptMcpCredentials(value: string) { FILE: lib/mcp/managed-credentials.ts constant MANAGED_SERVERS (line 6) | const MANAGED_SERVERS: Record(server: ... FILE: lib/mcp/oauth.ts type OAuthEndpointConfig (line 8) | interface OAuthEndpointConfig { type OAuthStatePayload (line 17) | interface OAuthStatePayload { type OAuthTokenResponse (line 25) | interface OAuthTokenResponse { type OAuthServerMetadata (line 40) | interface OAuthServerMetadata { type OAuthProtectedResourceMetadata (line 49) | interface OAuthProtectedResourceMetadata { constant SLACK_MCP_RESOURCE_HOST (line 54) | const SLACK_MCP_RESOURCE_HOST = 'mcp.slack.com'; constant SLACK_AUTHORIZATION_ENDPOINT (line 55) | const SLACK_AUTHORIZATION_ENDPOINT = 'https://slack.com/oauth/v2_user/au... constant SLACK_TOKEN_ENDPOINT (line 56) | const SLACK_TOKEN_ENDPOINT = 'https://slack.com/api/oauth.v2.user.access'; constant SLACK_DEFAULT_BOT_SCOPES (line 58) | const SLACK_DEFAULT_BOT_SCOPES = 'search:read.files search:read.public u... constant SLACK_DEFAULT_USER_SCOPES (line 59) | const SLACK_DEFAULT_USER_SCOPES = [ constant OIDC_ONLY_SCOPES (line 78) | const OIDC_ONLY_SCOPES = new Set(['openid', 'offline_access']); function stripOidcScopes (line 80) | function stripOidcScopes(scope: string | null): string | null { function isGitHubOAuthEndpoint (line 90) | function isGitHubOAuthEndpoint(url: string) { function isSlackOAuthEndpoint (line 99) | function isSlackOAuthEndpoint(url: string) { function isSlackUserOAuthEndpoint (line 108) | function isSlackUserOAuthEndpoint(url: string) { function isVercelOAuthEndpoint (line 117) | function isVercelOAuthEndpoint(url: string) { function isCanvaOAuthEndpoint (line 126) | function isCanvaOAuthEndpoint(url: string) { function getTrustedAppOrigin (line 135) | function getTrustedAppOrigin(requestOrigin: string) { function getConfiguredAppOrigin (line 143) | function getConfiguredAppOrigin() { function getOAuthCallbackUri (line 151) | function getOAuthCallbackUri(origin: string) { function toBase64Url (line 155) | function toBase64Url(input: Buffer | string) { function fromBase64Url (line 160) | function fromBase64Url(value: string) { function getStateSigningKey (line 166) | function getStateSigningKey() { function createCodeVerifier (line 172) | function createCodeVerifier() { function createCodeChallenge (line 176) | function createCodeChallenge(verifier: string) { function signStatePayload (line 180) | function signStatePayload(payloadBase64: string) { function safeJsonParse (line 184) | function safeJsonParse(value: string): T | null { function normalizeOrigin (line 192) | function normalizeOrigin(value: string) { function canonicalizeResourceUri (line 196) | function canonicalizeResourceUri(rawUrl: string) { function parseChallengeParams (line 206) | function parseChallengeParams(challenge: string) { function parseBearerChallenge (line 219) | function parseBearerChallenge(header: string | null) { function getProtectedResourceMetadataUrls (line 230) | function getProtectedResourceMetadataUrls(serverUrl: string) { function getAuthorizationServerMetadataUrls (line 240) | function getAuthorizationServerMetadataUrls(issuerUrl: string) { function fetchJson (line 258) | async function fetchJson(url: string) { function discoverProtectedResourceMetadata (line 269) | async function discoverProtectedResourceMetadata(serverUrl: string) { function discoverAuthorizationServerMetadata (line 313) | async function discoverAuthorizationServerMetadata(issuerUrl: string) { function postTokenRequest (line 340) | async function postTokenRequest(tokenUrl: string, body: URLSearchParams) { function resolveOAuthClientId (line 372) | function resolveOAuthClientId({ function registerDynamicOAuthClient (line 400) | async function registerDynamicOAuthClient({ function resolveOAuthEndpoints (line 449) | async function resolveOAuthEndpoints( function buildMcpOAuthAuthorizationUrl (line 538) | async function buildMcpOAuthAuthorizationUrl({ function verifyMcpOAuthState (line 677) | function verifyMcpOAuthState({ function exchangeMcpOAuthCode (line 706) | async function exchangeMcpOAuthCode({ function resolveMcpOAuthAccessToken (line 772) | async function resolveMcpOAuthAccessToken({ FILE: lib/mcp/server-config.ts type McpAuthType (line 6) | type McpAuthType = 'none' | 'bearer' | 'header' | 'oauth'; type McpTransportType (line 7) | type McpTransportType = 'http' | 'sse'; type McpCredentialPayload (line 9) | interface McpCredentialPayload { type McpOAuthCredentialPayload (line 15) | interface McpOAuthCredentialPayload { type McpServerInput (line 21) | interface McpServerInput { function validateMcpServerUrl (line 38) | function validateMcpServerUrl(url: string) { function getEncryptedMcpCredentials (line 56) | function getEncryptedMcpCredentials(input: McpServerInput) { function getMcpCredentialPayload (line 77) | function getMcpCredentialPayload(server: Pick { type NotteScrapeResponse (line 55) | interface NotteScrapeResponse { type NotteClient (line 61) | interface NotteClient { class NotteApiError (line 65) | class NotteApiError extends Error { method constructor (line 69) | constructor(message: string, status: number, body: string) { function getNotteApiKey (line 77) | function getNotteApiKey(providedApiKey?: string) { function compactObject (line 83) | function compactObject>(value: T) { function buildScrapePayload (line 89) | function buildScrapePayload(request: NotteScrapeRequest) { function createNotteClient (line 119) | function createNotteClient(providedApiKey?: string): NotteClient { function scrapeWebpageWithNotte (line 147) | async function scrapeWebpageWithNotte( FILE: lib/parser.ts constant LINK_PATTERN (line 4) | const LINK_PATTERN = /^\[.*?\]\(.*?\)$/; constant BOLD_PATTERN (line 5) | const BOLD_PATTERN = /^\*\*.*?\*\*$/; constant ITALIC_PATTERN (line 7) | const ITALIC_PATTERN = /^\*(?!\*).+\*$/; constant TABLE_ROW_PATTERN (line 8) | const TABLE_ROW_PATTERN = /^\|.+\|$/; constant TABLE_DELIMITER_PATTERN (line 10) | const TABLE_DELIMITER_PATTERN = /^\|\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)... constant WHITESPACE_PATTERN (line 11) | const WHITESPACE_PATTERN = /\s/; constant RICH_TAGS (line 14) | const RICH_TAGS = ['app_preview', 'download'] as const; constant RICH_TAG_OPEN_RE (line 16) | const RICH_TAG_OPEN_RE = new RegExp(`<(${RICH_TAGS.join('|')})>`, 'i'); class MarkdownJoiner (line 18) | class MarkdownJoiner { method processText (line 28) | processText(text: string): string { method flushTableLine (line 137) | private flushTableLine(): string { method isTableHeaderCandidate (line 167) | private isTableHeaderCandidate(line: string): boolean { method isCompleteLink (line 171) | private isCompleteLink(): boolean { method isCompleteBold (line 176) | private isCompleteBold(): boolean { method isCompleteItalic (line 181) | private isCompleteItalic(): boolean { method isFalsePositiveTag (line 186) | private isFalsePositiveTag(char: string): boolean { method isFalsePositive (line 193) | private isFalsePositive(char: string): boolean { method clearBuffer (line 214) | private clearBuffer(): void { method flush (line 219) | flush(): string { method transform (line 235) | transform(chunk, controller) { method flush (line 248) | flush(controller) { FILE: lib/performance-cache.ts type CacheEntry (line 7) | interface CacheEntry { type LRUNode (line 15) | interface LRUNode { class PerformanceCache (line 22) | class PerformanceCache { method constructor (line 32) | constructor(name: string, maxSize: number = 1000, ttlMs: number = 2 * ... method get (line 57) | get(key: string): T | null { method set (line 76) | set(key: string, data: T): void { method delete (line 112) | delete(key: string): void { method clear (line 120) | clear(): void { method evictLeastRecentlyUsed (line 127) | private evictLeastRecentlyUsed(): void { method addToHead (line 136) | private addToHead(node: LRUNode): void { method removeNode (line 151) | private removeNode(node: LRUNode): void { method moveToHead (line 166) | private moveToHead(node: LRUNode): void { method cleanup (line 172) | private cleanup(): void { function extractSessionToken (line 217) | function extractSessionToken(headers: Headers): string | null { function getProUserStatus (line 226) | function getProUserStatus(userId: string): boolean | null { function setProUserStatus (line 231) | function setProUserStatus(userId: string, isProUser: boolean): void { function computeAndCacheProUserStatus (line 236) | function computeAndCacheProUserStatus(userId: string, subscriptionData: ... function getDodoSubscriptions (line 244) | function getDodoSubscriptions(userId: string) { function setDodoSubscriptions (line 249) | function setDodoSubscriptions(userId: string, subscriptions: any) { function getDodoSubscriptionExpiration (line 254) | function getDodoSubscriptionExpiration(userId: string) { function setDodoSubscriptionExpiration (line 259) | function setDodoSubscriptionExpiration(userId: string, expirationData: a... function getDodoProStatus (line 264) | function getDodoProStatus(userId: string) { function setDodoProStatus (line 269) | function setDodoProStatus(userId: string, statusData: any) { function invalidateUserCaches (line 275) | function invalidateUserCaches(userId: string) { function invalidateAllCaches (line 296) | function invalidateAllCaches() { FILE: lib/r2.ts constant R2_BUCKET_NAME (line 12) | const R2_BUCKET_NAME = process.env.R2_BUCKET_NAME!; constant R2_PUBLIC_URL (line 13) | const R2_PUBLIC_URL = process.env.R2_PUBLIC_URL!; FILE: lib/rate-limit.ts function getClientIdentifier (line 13) | function getClientIdentifier(req: Request): string { FILE: lib/redis.ts function getResumableStreamClients (line 6) | function getResumableStreamClients() { FILE: lib/search-utils.ts function extractChatSearchableText (line 7) | function extractChatSearchableText(chat: Chat, messages: Message[]): str... function extractChatPreview (line 35) | function extractChatPreview(messages: Message[], maxLength: number = 150... FILE: lib/search/auto-router.ts type AutoRouterRoute (line 9) | interface AutoRouterRoute { function routeWithAutoRouter (line 15) | async function routeWithAutoRouter({ FILE: lib/search/chat-title.ts function generateTitleFromUserMessage (line 10) | async function generateTitleFromUserMessage({ message }: { message: UIMe... FILE: lib/search/group-config.ts type LegacyGroupId (line 8) | type LegacyGroupId = SearchGroupId | 'buddy'; function getGroupConfig (line 2431) | async function getGroupConfig( FILE: lib/search/server-helpers.ts function getCurrentUser (line 13) | async function getCurrentUser() { function getLightweightUser (line 17) | async function getLightweightUser() { function getMessageCountAndExtremeSearchByUserIdAction (line 21) | async function getMessageCountAndExtremeSearchByUserIdAction(userId: str... FILE: lib/search/tool-loader.ts type ExtremeSearchModelId (line 5) | type ExtremeSearchModelId = type LoadConfiguredToolsParams (line 14) | interface LoadConfiguredToolsParams { function loadConfiguredTools (line 27) | async function loadConfiguredTools({ FILE: lib/subscription.ts type SubscriptionDetails (line 21) | type SubscriptionDetails = { type SubscriptionDetailsResult (line 35) | type SubscriptionDetailsResult = { type DodoSubscriptionRecord (line 42) | interface DodoSubscriptionRecord { function toDate (line 50) | function toDate(value: Date | string | null | undefined): Date | null { function isDodoSubscriptionWithinPaidPeriod (line 57) | function isDodoSubscriptionWithinPaidPeriod(subscriptionRow: DodoSubscri... function isDodoSubscriptionActiveForAccess (line 63) | function isDodoSubscriptionActiveForAccess(subscriptionRow: DodoSubscrip... function checkDodoSubscriptionProStatus (line 72) | async function checkDodoSubscriptionProStatus(userId: string): Promise { function isUserProCached (line 312) | async function isUserProCached(): Promise { function hasAccessToProduct (line 334) | async function hasAccessToProduct(productId: string): Promise { function getUserSubscriptionStatus (line 342) | async function getUserSubscriptionStatus(): Promise<'active' | 'canceled... function getDodoSubscriptionExpirationDate (line 388) | async function getDodoSubscriptionExpirationDate(): Promise { function getProStatusWithSource (line 456) | async function getProStatusWithSource(): Promise<{ FILE: lib/tools/academic-search.ts function academicSearchTool (line 13) | function academicSearchTool(dataStream?: UIMessageStreamWriter { method reconnectBox (line 73) | private async reconnectBox(boxId: string): Promise { method initBox (line 89) | private async initBox(): Promise { method getBoxId (line 130) | getBoxId(): string | null { method getMcpServerNames (line 134) | getMcpServerNames(): string[] { method hasVercelMcp (line 138) | hasVercelMcp(): boolean { method cleanup (line 143) | async cleanup() { function createBoxExecTool (line 152) | function createBoxExecTool(dataStream: UIMessageStreamWriter { type SearchResult (line 461) | interface SearchResult { type Research (line 475) | type Research = { type SearchCategory (line 482) | enum SearchCategory { type SearchProviderStrategy (line 491) | interface SearchProviderStrategy { class ExaSearchStrategy (line 501) | class ExaSearchStrategy implements SearchProviderStrategy { method constructor (line 502) | constructor(private exa: Exa) {} method search (line 504) | async search( type FileContext (line 566) | interface FileContext { function extremeSearch (line 572) | async function extremeSearch( function extremeSearchTool (line 1926) | function extremeSearchTool( FILE: lib/tools/file-query-search.ts constant FILE_READERS (line 14) | const FILE_READERS = { type SupportedMimeType (line 34) | type SupportedMimeType = keyof typeof FILE_READERS; function isSupportedMimeType (line 36) | function isSupportedMimeType(mimeType: string): mimeType is SupportedMim... type FileContext (line 40) | interface FileContext { type FileQueryResult (line 46) | interface FileQueryResult { type QuerySearchResult (line 52) | interface QuerySearchResult { function createRetriever (line 57) | async function createRetriever(file: FileContext): Promise { function buildRetrieversByUrl (line 81) | async function buildRetrieversByUrl(files: FileContext[]) { function searchFiles (line 109) | async function searchFiles( function createFileQuerySearchTool (line 167) | function createFileQuerySearchTool(files: FileContext[], dataStream?: UI... FILE: lib/tools/github-search.ts function parseCount (line 32) | function parseCount(value: unknown): number | undefined { function getGitHubResultUrl (line 46) | function getGitHubResultUrl(result: unknown): string { function isGitHubRepoUrl (line 51) | function isGitHubRepoUrl(rawUrl: string): boolean { type GitHubResult (line 99) | type GitHubResult = { type GitHubSearchQueryResult (line 113) | type GitHubSearchQueryResult = { type GitHubSearchResponse (line 118) | type GitHubSearchResponse = { function githubSearchTool (line 122) | function githubSearchTool(dataStream?: UIMessageStreamWriter(promise: Promise, timeoutMs: number, me... function waitForElicitation (line 99) | function waitForElicitation(elicitationId: string): Promise { type ResolvedMcpTools (line 137) | interface ResolvedMcpTools { function resolveUserMcpTools (line 144) | async function resolveUserMcpTools({ FILE: lib/tools/prediction-search.ts type PolymarketOutcome (line 10) | interface PolymarketOutcome { type PolymarketMarket (line 16) | interface PolymarketMarket { type PolymarketContent (line 28) | interface PolymarketContent { type KalshiOutcome (line 41) | interface KalshiOutcome { type KalshiMarket (line 49) | interface KalshiMarket { type KalshiContent (line 62) | interface KalshiContent { type ValyuResult (line 76) | interface ValyuResult { type ValyuSearchResponse (line 100) | interface ValyuSearchResponse { type PredictionMarket (line 115) | interface PredictionMarket { function parsePolymarketResult (line 145) | function parsePolymarketResult(result: ValyuResult): PredictionMarket { function parseKalshiResult (line 176) | function parseKalshiResult(result: ValyuResult): PredictionMarket { function predictionSearchTool (line 207) | function predictionSearchTool(dataStream?: UIMessageStreamWriter { type SearchType (line 131) | type SearchType = 'track' | 'artist' | 'album' | 'playlist'; function spotifySearch (line 133) | async function spotifySearch( type SpotifyTrackResult (line 175) | interface SpotifyTrackResult { type SpotifyArtistResult (line 193) | interface SpotifyArtistResult { type SpotifyAlbumResult (line 203) | interface SpotifyAlbumResult { type SpotifyPlaylistResult (line 214) | interface SpotifyPlaylistResult { type SpotifySearchResult (line 225) | interface SpotifySearchResult { function createTrackDocument (line 244) | function createTrackDocument(track: SpotifyTrackResult): string { function createArtistDocument (line 249) | function createArtistDocument(artist: SpotifyArtistResult): string { function createAlbumDocument (line 256) | function createAlbumDocument(album: SpotifyAlbumResult): string { function createPlaylistDocument (line 260) | function createPlaylistDocument(playlist: SpotifyPlaylistResult): string { function rerankResults (line 266) | async function rerankResults( method rerankedTracks (line 400) | async rerankedTracks() { method rerankedArtists (line 403) | async rerankedArtists() { method rerankedAlbums (line 406) | async rerankedAlbums() { method rerankedPlaylists (line 409) | async rerankedPlaylists() { FILE: lib/tools/stock-chart.ts constant CURRENCY_SYMBOLS (line 11) | const CURRENCY_SYMBOLS = { type NewsResult (line 38) | interface NewsResult { type NewsGroup (line 47) | interface NewsGroup { type ValyuOHLC (line 53) | interface ValyuOHLC { type ValyuEarning (line 62) | interface ValyuEarning { type ValyuResult (line 71) | interface ValyuResult { type ValyuEarningsResult (line 86) | interface ValyuEarningsResult { type CompanyStatistics (line 102) | interface CompanyStatistics { type BalanceSheetItem (line 179) | interface BalanceSheetItem { type IncomeStatementItem (line 248) | interface IncomeStatementItem { type CashFlowItem (line 280) | interface CashFlowItem { type DividendData (line 319) | interface DividendData { type InsiderTransaction (line 324) | interface InsiderTransaction { type MarketMover (line 334) | interface MarketMover { type SECFiling (line 348) | interface SECFiling { type SECFilingPromise (line 371) | interface SECFilingPromise { type FinancialPromise (line 377) | interface FinancialPromise { type FinancialDataBundle (line 383) | interface FinancialDataBundle { function buildSecFilings (line 393) | function buildSecFilings(params: { function extractFinancialData (line 429) | function extractFinancialData(params: { allResults: any[]; financialProm... function buildNewsResults (line 941) | function buildNewsResults( function isValyuOHLCArray (line 1019) | function isValyuOHLCArray(value: unknown): value is ValyuOHLC[] { function isValyuEarningsArray (line 1032) | function isValyuEarningsArray(value: unknown): value is ValyuEarning[] { function isValyuResult (line 1045) | function isValyuResult(obj: unknown): obj is ValyuResult { function isValyuEarningsResult (line 1051) | function isValyuEarningsResult(obj: unknown): obj is ValyuEarningsResult { function getTickerFromResult (line 1057) | function getTickerFromResult(r: ValyuResult): string | undefined { function getTickerFromEarningsResult (line 1069) | function getTickerFromEarningsResult(r: ValyuEarningsResult): string | u... FILE: lib/tools/supermemory.ts function createMemoryTools (line 5) | function createMemoryTools(userId: string) { type SearchMemoryTool (line 11) | type SearchMemoryTool = Tool< type AddMemoryTool (line 29) | type AddMemoryTool = Tool< FILE: lib/tools/text-translate.ts type TextTranslateToolInput (line 7) | interface TextTranslateToolInput { type TextTranslateToolOutput (line 13) | interface TextTranslateToolOutput { type ImageContext (line 18) | interface ImageContext { type ToolContext (line 24) | interface ToolContext { constant TRANSLATEGEMMA_PROMPT_TEMPLATE (line 28) | const TRANSLATEGEMMA_PROMPT_TEMPLATE = `You are a professional {SOURCE_L... constant TRANSLATEGEMMA_IMAGE_PROMPT_TEMPLATE (line 36) | const TRANSLATEGEMMA_IMAGE_PROMPT_TEMPLATE = `Translate the text in this... function normalizeLanguageCode (line 38) | function normalizeLanguageCode(languageCode: string): string { function getLanguageName (line 44) | function getLanguageName(languageCode: string): string { function renderTranslateGemmaPrompt (line 53) | function renderTranslateGemmaPrompt(args: { function renderTranslateGemmaImagePrompt (line 67) | function renderTranslateGemmaImagePrompt(args: { function detectLanguageCode (line 83) | async function detectLanguageCode(text: string): Promise { FILE: lib/tools/weather.ts method weatherResponse (line 90) | async weatherResponse() { method airPollutionResponse (line 93) | async airPollutionResponse() { method openMeteoResponse (line 98) | async openMeteoResponse() { method weatherData (line 109) | async weatherData() { method airPollutionData (line 112) | async airPollutionData() { method openMeteoData (line 115) | async openMeteoData() { FILE: lib/tools/web-search.ts function getSearchClients (line 19) | function getSearchClients() { type SearchStrategy (line 91) | interface SearchStrategy { class ParallelSearchStrategy (line 114) | class ParallelSearchStrategy implements SearchStrategy { method constructor (line 115) | constructor( method search (line 120) | async search( class FirecrawlSearchStrategy (line 287) | class FirecrawlSearchStrategy implements SearchStrategy { method constructor (line 288) | constructor(private firecrawl: FirecrawlApp) {} method search (line 290) | async search( class ExaSearchStrategy (line 443) | class ExaSearchStrategy implements SearchStrategy { method constructor (line 444) | constructor( method search (line 449) | async search( constant WEB_SEARCH_PROVIDERS (line 596) | const WEB_SEARCH_PROVIDERS = ['exa', 'parallel', 'firecrawl'] as const; type WebSearchProvider (line 597) | type WebSearchProvider = (typeof WEB_SEARCH_PROVIDERS)[number]; function webSearchTool (line 623) | function webSearchTool( FILE: lib/tools/x-search.ts type CitationSource (line 10) | interface CitationSource { function xSearchTool (line 15) | function xSearchTool(dataStream?: UIMessageStreamWriter) { FILE: lib/tools/youtube-search.ts type VideoDetails (line 8) | interface VideoDetails { type VideoStats (line 19) | interface VideoStats { type VideoResult (line 26) | interface VideoResult { type TimeRange (line 42) | type TimeRange = 'day' | 'week' | 'month' | 'year' | 'anytime'; type SupadataYouTubeChannel (line 44) | interface SupadataYouTubeChannel { type SupadataYouTubeVideo (line 51) | interface SupadataYouTubeVideo { constant SEARCH_LIMIT (line 65) | const SEARCH_LIMIT = 12; constant YOUTUBE_BASE_URL (line 66) | const YOUTUBE_BASE_URL = 'https://www.youtube.com/watch?v='; type SearchMode (line 69) | type SearchMode = z.infer; type ChannelVideoType (line 70) | type ChannelVideoType = z.infer; function dedupeVideos (line 81) | function dedupeVideos(videos: SupadataYouTubeVideo[]) { function extractChaptersFromDescription (line 92) | function extractChaptersFromDescription(description?: string): string[] ... function generateChaptersFromTranscriptChunks (line 108) | function generateChaptersFromTranscriptChunks( function buildTranscriptArtifacts (line 150) | async function buildTranscriptArtifacts(supadata: Supadata, videoUrl: st... function fetchMetadataWithRetry (line 234) | async function fetchMetadataWithRetry(supadata: Supadata, videoUrl: stri... function mapTimeRangeToSupadata (line 253) | function mapTimeRangeToSupadata(timeRange: TimeRange) { function resolveNumber (line 258) | function resolveNumber(value: unknown): number | undefined { function flattenVideoIds (line 269) | function flattenVideoIds(ids?: { videoIds?: string[]; shortIds?: string[... function normalizeHandle (line 274) | function normalizeHandle(query: string) { function extractPlaylistId (line 278) | function extractPlaylistId(query: string) { function resolveChannelIdFromQuery (line 291) | async function resolveChannelIdFromQuery(supadata: Supadata, query: stri... function resolvePlaylistIdFromQuery (line 327) | async function resolvePlaylistIdFromQuery(supadata: Supadata, query: str... function getVideosForMode (line 356) | async function getVideosForMode({ FILE: lib/types.ts type DataPart (line 42) | type DataPart = { type: 'append-message'; message: string }; type DataQueryCompletionPart (line 43) | type DataQueryCompletionPart = { type DataExtremeSearchPart (line 55) | type DataExtremeSearchPart = { type MessageMetadata (line 158) | type MessageMetadata = z.infer; type weatherTool (line 160) | type weatherTool = InferUITool; type academicSearchTool (line 161) | type academicSearchTool = InferUITool; type coinDataTool (line 163) | type coinDataTool = InferUITool; type coinOhlcTool (line 164) | type coinOhlcTool = InferUITool; type currencyConverterTool (line 165) | type currencyConverterTool = InferUITool; type redditSearchTool (line 166) | type redditSearchTool = InferUITool>; type githubSearchTool (line 167) | type githubSearchTool = InferUITool>; type retrieveTool (line 168) | type retrieveTool = InferUITool; type trendingMoviesTool (line 169) | type trendingMoviesTool = InferUITool; type textTranslateTool (line 170) | type textTranslateTool = InferUITool; type xSearchTool (line 171) | type xSearchTool = InferUITool>; type stockChartTool (line 172) | type stockChartTool = InferUITool; type greetingTool (line 173) | type greetingTool = InferUITool>; type flightTrackerTool (line 174) | type flightTrackerTool = InferUITool; type findPlaceOnMapTool (line 175) | type findPlaceOnMapTool = InferUITool; type nearbyPlacesSearchTool (line 176) | type nearbyPlacesSearchTool = InferUITool; type webSearch (line 177) | type webSearch = InferUITool>; type extremeSearchTool (line 178) | type extremeSearchTool = InferUITool>; type movieTvSearchTool (line 179) | type movieTvSearchTool = InferUITool; type trendingTvTool (line 180) | type trendingTvTool = InferUITool; type youtubeSearchTool (line 181) | type youtubeSearchTool = InferUITool; type coinDataByContractTool (line 182) | type coinDataByContractTool = InferUITool; type datetimeTool (line 183) | type datetimeTool = InferUITool; type createConnectorsSearchTool (line 184) | type createConnectorsSearchTool = InferUITool; type addMemoryTools (line 186) | type addMemoryTools = InferUITool; type codeContextTool (line 187) | type codeContextTool = InferUITool; type fileQuerySearchTool (line 188) | type fileQuerySearchTool = InferUITool; type predictionSearchTool (line 190) | type predictionSearchTool = InferUITool extends { tools: i... type boxInitTool (line 193) | type boxInitTool = InferUITool; type boxExecTool (line 194) | type boxExecTool = InferUITool; type boxWriteTool (line 195) | type boxWriteTool = InferUITool; type boxReadTool (line 196) | type boxReadTool = InferUITool; type boxListFilesTool (line 197) | type boxListFilesTool = InferUITool; type boxDownloadTool (line 198) | type boxDownloadTool = InferUITool; type boxAgentTool (line 199) | type boxAgentTool = InferUITool; type boxCodeTool (line 200) | type boxCodeTool = InferUITool; type boxBrowsePageTool (line 201) | type boxBrowsePageTool = InferUITool; type ChatTools (line 205) | type ChatTools = { type AgentStreamEvent (line 264) | type AgentStreamEvent = type DataBuildSearchPart (line 269) | type DataBuildSearchPart = { type DataPredictionResultsPart (line 362) | type DataPredictionResultsPart = { type CustomUIDataTypes (line 403) | type CustomUIDataTypes = { type ChatMessage (line 432) | type ChatMessage = UIMessage = { value: T; expiresAt: number }; class LruTtlCache (line 180) | class LruTtlCache { method constructor (line 184) | constructor(maxSize: number) { method get (line 188) | get(key: string): T | undefined { method set (line 201) | set(key: string, value: T, ttlMs: number): void { method delete (line 212) | delete(key: string): void { method clear (line 216) | clear(): void { constant CUSTOM_INSTRUCTIONS_CACHE_TTL_MS (line 226) | const CUSTOM_INSTRUCTIONS_CACHE_TTL_MS = 15 * 60 * 1000; constant USER_PREFERENCES_CACHE_TTL_MS (line 230) | const USER_PREFERENCES_CACHE_TTL_MS = 15 * 60 * 1000; function getCachedUserData (line 232) | function getCachedUserData(userId: string): ComprehensiveUserData | null { function setCachedUserData (line 236) | function setCachedUserData(userId: string, data: ComprehensiveUserData):... function clearUserDataCache (line 240) | function clearUserDataCache(userId: string): void { function clearAllUserDataCache (line 249) | function clearAllUserDataCache(): void { function getCachedLightweightAuth (line 256) | function getCachedLightweightAuth(userId: string): LightweightUserAuth |... function setCachedLightweightAuth (line 260) | function setCachedLightweightAuth(userId: string, data: LightweightUserA... function getCachedCustomInstructionsByUserId (line 268) | async function getCachedCustomInstructionsByUserId( function clearCustomInstructionsCache (line 283) | function clearCustomInstructionsCache(userId?: string): void { function getCachedUserPreferencesByUserId (line 295) | async function getCachedUserPreferencesByUserId( function clearUserPreferencesCache (line 310) | function clearUserPreferencesCache(userId?: string): void { method polarQuery (line 372) | async polarQuery() { method dodoCheck (line 395) | async dodoCheck() { method userWithSubscriptions (line 488) | async userWithSubscriptions() { method dodoSubscriptions (line 516) | async dodoSubscriptions() { function isUserPro (line 690) | async function isUserPro(): Promise { function getUserSubscriptionStatus (line 695) | async function getUserSubscriptionStatus(): Promise<'active' | 'canceled... function getProSource (line 700) | async function getProSource(): Promise<'polar' | 'dodo' | 'none'> { FILE: lib/utils.ts function cn (line 25) | function cn(...inputs: ClassValue[]) { function normalizeError (line 29) | function normalizeError(err: unknown): string { type SearchGroupId (line 41) | type SearchGroupId = type SearchProvider (line 68) | type SearchProvider = keyof typeof searchProviderInfo; function getWebSearchDescription (line 71) | function getWebSearchDescription(provider: SearchProvider = 'exa'): stri... function getSearchGroups (line 77) | function getSearchGroups(searchProvider: SearchProvider = 'exa') { type SearchGroup (line 221) | type SearchGroup = (typeof searchGroups)[number]; FILE: next.config.ts method headers (line 106) | async headers() { method redirects (line 142) | async redirects() { FILE: proxy.ts function proxy (line 7) | async function proxy(request: NextRequest) { FILE: public/audio-capture-processor.js class AudioCaptureProcessor (line 4) | class AudioCaptureProcessor extends AudioWorkletProcessor { method constructor (line 5) | constructor() { method process (line 24) | process(inputs, outputs) { FILE: public/pcm-processor-worklet.js class PCMProcessor (line 5) | class PCMProcessor extends AudioWorkletProcessor { method constructor (line 6) | constructor() { method process (line 22) | process(inputs) {