├── .gitignore ├── .prettierrc ├── LICENSE ├── LOCAL_TESTING_GUIDE.md ├── README.md ├── env.example ├── next.config.ts ├── package.json ├── postcss.config.mjs ├── public ├── ai.png └── logos │ ├── anthropic.svg │ ├── deepseek.svg │ ├── github.svg │ ├── google.svg │ ├── meta.svg │ ├── openai.svg │ └── x-ai.svg ├── screenshots ├── chat-sidebar.png ├── consensus-chat-01.png ├── consensus-chat-02.png ├── consensus-chat-03.png ├── file-upload.png ├── login.png ├── main-chat-01.png ├── main-chat-02.png ├── model-selection.png ├── settings.png └── showcase.png ├── src ├── app │ ├── api │ │ ├── chat │ │ │ ├── consensus │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── conversations │ │ │ ├── [id] │ │ │ │ └── messages │ │ │ │ │ ├── [messageId] │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── generate-title │ │ │ └── route.ts │ │ ├── profile │ │ │ ├── create │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── quality-analytics │ │ │ └── route.ts │ │ └── upload │ │ │ └── route.ts │ ├── auth │ │ ├── auth-code-error │ │ │ └── page.tsx │ │ └── callback │ │ │ └── route.ts │ ├── chat │ │ ├── [id] │ │ │ └── page.tsx │ │ └── page.tsx │ ├── datenschutz-chat │ │ └── page.tsx │ ├── favicon.ico │ ├── globals.css │ ├── haftungsausschluss │ │ └── page.tsx │ ├── layout.tsx │ ├── login │ │ └── page.tsx │ ├── nutzungsbedingungen │ │ └── page.tsx │ ├── page.tsx │ └── settings │ │ └── page.tsx ├── components │ ├── AssistantAvatar.tsx │ ├── AttachmentDisplay.tsx │ ├── AttachmentList.tsx │ ├── ChatEmptyState.tsx │ ├── ChatInput.tsx │ ├── ChatMessages.tsx │ ├── ChatModeToggle.tsx │ ├── ChatPageContent.tsx │ ├── ChatSidebar.tsx │ ├── CollapsedSidebar.tsx │ ├── ConsensusMessage.tsx │ ├── FileUploadButton.tsx │ ├── LoadingIndicator.tsx │ ├── MarkdownRenderer.tsx │ ├── MessageActions.tsx │ ├── MessageContent.tsx │ ├── MessageHeader.tsx │ ├── MessageItem.tsx │ ├── ModelResponseCard.tsx │ ├── ModelSelector.tsx │ ├── MultiModelSelector.tsx │ ├── QualityMetricsDisplay.tsx │ ├── ScrollToBottomButton.tsx │ ├── SendButton.tsx │ ├── SettingsModal.tsx │ ├── SidebarConversationItem.tsx │ ├── TypeWriter.tsx │ └── UserAvatar.tsx ├── contexts │ └── ChatContext.tsx ├── lib │ ├── model-capabilities.ts │ ├── model-utils.ts │ ├── openrouter.ts │ ├── response-quality-analyzer.ts │ ├── supabase-client.ts │ ├── supabase-server.ts │ ├── supabase.ts │ ├── titleGenerator.ts │ └── useDynamicTitle.ts ├── middleware.ts └── types │ └── chat.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/.prettierrc -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/LICENSE -------------------------------------------------------------------------------- /LOCAL_TESTING_GUIDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/LOCAL_TESTING_GUIDE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/README.md -------------------------------------------------------------------------------- /env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/env.example -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/next.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /public/ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/ai.png -------------------------------------------------------------------------------- /public/logos/anthropic.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/anthropic.svg -------------------------------------------------------------------------------- /public/logos/deepseek.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/deepseek.svg -------------------------------------------------------------------------------- /public/logos/github.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/github.svg -------------------------------------------------------------------------------- /public/logos/google.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/google.svg -------------------------------------------------------------------------------- /public/logos/meta.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/meta.svg -------------------------------------------------------------------------------- /public/logos/openai.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/openai.svg -------------------------------------------------------------------------------- /public/logos/x-ai.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/public/logos/x-ai.svg -------------------------------------------------------------------------------- /screenshots/chat-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/chat-sidebar.png -------------------------------------------------------------------------------- /screenshots/consensus-chat-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/consensus-chat-01.png -------------------------------------------------------------------------------- /screenshots/consensus-chat-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/consensus-chat-02.png -------------------------------------------------------------------------------- /screenshots/consensus-chat-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/consensus-chat-03.png -------------------------------------------------------------------------------- /screenshots/file-upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/file-upload.png -------------------------------------------------------------------------------- /screenshots/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/login.png -------------------------------------------------------------------------------- /screenshots/main-chat-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/main-chat-01.png -------------------------------------------------------------------------------- /screenshots/main-chat-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/main-chat-02.png -------------------------------------------------------------------------------- /screenshots/model-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/model-selection.png -------------------------------------------------------------------------------- /screenshots/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/settings.png -------------------------------------------------------------------------------- /screenshots/showcase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/screenshots/showcase.png -------------------------------------------------------------------------------- /src/app/api/chat/consensus/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/chat/consensus/route.ts -------------------------------------------------------------------------------- /src/app/api/chat/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/chat/route.ts -------------------------------------------------------------------------------- /src/app/api/conversations/[id]/messages/[messageId]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/conversations/[id]/messages/[messageId]/route.ts -------------------------------------------------------------------------------- /src/app/api/conversations/[id]/messages/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/conversations/[id]/messages/route.ts -------------------------------------------------------------------------------- /src/app/api/conversations/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/conversations/route.ts -------------------------------------------------------------------------------- /src/app/api/generate-title/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/generate-title/route.ts -------------------------------------------------------------------------------- /src/app/api/profile/create/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/profile/create/route.ts -------------------------------------------------------------------------------- /src/app/api/profile/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/profile/route.ts -------------------------------------------------------------------------------- /src/app/api/quality-analytics/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/quality-analytics/route.ts -------------------------------------------------------------------------------- /src/app/api/upload/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/api/upload/route.ts -------------------------------------------------------------------------------- /src/app/auth/auth-code-error/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/auth/auth-code-error/page.tsx -------------------------------------------------------------------------------- /src/app/auth/callback/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/auth/callback/route.ts -------------------------------------------------------------------------------- /src/app/chat/[id]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/chat/[id]/page.tsx -------------------------------------------------------------------------------- /src/app/chat/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/chat/page.tsx -------------------------------------------------------------------------------- /src/app/datenschutz-chat/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/datenschutz-chat/page.tsx -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/haftungsausschluss/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/haftungsausschluss/page.tsx -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/login/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/login/page.tsx -------------------------------------------------------------------------------- /src/app/nutzungsbedingungen/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/nutzungsbedingungen/page.tsx -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/app/settings/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/app/settings/page.tsx -------------------------------------------------------------------------------- /src/components/AssistantAvatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/AssistantAvatar.tsx -------------------------------------------------------------------------------- /src/components/AttachmentDisplay.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/AttachmentDisplay.tsx -------------------------------------------------------------------------------- /src/components/AttachmentList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/AttachmentList.tsx -------------------------------------------------------------------------------- /src/components/ChatEmptyState.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ChatEmptyState.tsx -------------------------------------------------------------------------------- /src/components/ChatInput.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ChatInput.tsx -------------------------------------------------------------------------------- /src/components/ChatMessages.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ChatMessages.tsx -------------------------------------------------------------------------------- /src/components/ChatModeToggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ChatModeToggle.tsx -------------------------------------------------------------------------------- /src/components/ChatPageContent.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ChatPageContent.tsx -------------------------------------------------------------------------------- /src/components/ChatSidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ChatSidebar.tsx -------------------------------------------------------------------------------- /src/components/CollapsedSidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/CollapsedSidebar.tsx -------------------------------------------------------------------------------- /src/components/ConsensusMessage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ConsensusMessage.tsx -------------------------------------------------------------------------------- /src/components/FileUploadButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/FileUploadButton.tsx -------------------------------------------------------------------------------- /src/components/LoadingIndicator.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/LoadingIndicator.tsx -------------------------------------------------------------------------------- /src/components/MarkdownRenderer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/MarkdownRenderer.tsx -------------------------------------------------------------------------------- /src/components/MessageActions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/MessageActions.tsx -------------------------------------------------------------------------------- /src/components/MessageContent.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/MessageContent.tsx -------------------------------------------------------------------------------- /src/components/MessageHeader.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/MessageHeader.tsx -------------------------------------------------------------------------------- /src/components/MessageItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/MessageItem.tsx -------------------------------------------------------------------------------- /src/components/ModelResponseCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ModelResponseCard.tsx -------------------------------------------------------------------------------- /src/components/ModelSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ModelSelector.tsx -------------------------------------------------------------------------------- /src/components/MultiModelSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/MultiModelSelector.tsx -------------------------------------------------------------------------------- /src/components/QualityMetricsDisplay.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/QualityMetricsDisplay.tsx -------------------------------------------------------------------------------- /src/components/ScrollToBottomButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/ScrollToBottomButton.tsx -------------------------------------------------------------------------------- /src/components/SendButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/SendButton.tsx -------------------------------------------------------------------------------- /src/components/SettingsModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/SettingsModal.tsx -------------------------------------------------------------------------------- /src/components/SidebarConversationItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/SidebarConversationItem.tsx -------------------------------------------------------------------------------- /src/components/TypeWriter.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/TypeWriter.tsx -------------------------------------------------------------------------------- /src/components/UserAvatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/components/UserAvatar.tsx -------------------------------------------------------------------------------- /src/contexts/ChatContext.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/contexts/ChatContext.tsx -------------------------------------------------------------------------------- /src/lib/model-capabilities.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/model-capabilities.ts -------------------------------------------------------------------------------- /src/lib/model-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/model-utils.ts -------------------------------------------------------------------------------- /src/lib/openrouter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/openrouter.ts -------------------------------------------------------------------------------- /src/lib/response-quality-analyzer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/response-quality-analyzer.ts -------------------------------------------------------------------------------- /src/lib/supabase-client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/supabase-client.ts -------------------------------------------------------------------------------- /src/lib/supabase-server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/supabase-server.ts -------------------------------------------------------------------------------- /src/lib/supabase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/supabase.ts -------------------------------------------------------------------------------- /src/lib/titleGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/titleGenerator.ts -------------------------------------------------------------------------------- /src/lib/useDynamicTitle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/lib/useDynamicTitle.ts -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/middleware.ts -------------------------------------------------------------------------------- /src/types/chat.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/src/types/chat.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lulkebit/t3-cloneathon/HEAD/tsconfig.json --------------------------------------------------------------------------------