gitextract_eognuhoc/ ├── .dockerignore ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── deploy.yml │ └── publish.yml ├── .gitignore ├── .prettierrc ├── Dockerfile ├── LICENSE ├── README-zh_CN.md ├── README.md ├── docker-compose.yml ├── electron/ │ └── index.cjs ├── index.html ├── package.json ├── postcss.config.cjs ├── public/ │ ├── CNAME │ └── locales/ │ ├── da/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── de/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── en/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── en-US/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── es/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── fr/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── it/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── ja/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── ms/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── nb/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── ro/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── ru/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── sv/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── vi-VN/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── zh-CN/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ ├── zh-HK/ │ │ ├── about.json │ │ ├── api.json │ │ ├── drive.json │ │ ├── main.json │ │ └── model.json │ └── zh-TW/ │ ├── about.json │ ├── api.json │ ├── drive.json │ ├── main.json │ └── model.json ├── src/ │ ├── App.tsx │ ├── Roboto.css │ ├── api/ │ │ ├── api.ts │ │ ├── google-api.ts │ │ └── helper.ts │ ├── assets/ │ │ └── icons/ │ │ ├── AboutIcon.tsx │ │ ├── ArrowBottom.tsx │ │ ├── CalculatorIcon.tsx │ │ ├── ChatIcon.tsx │ │ ├── CloneIcon.tsx │ │ ├── ColorPaletteIcon.tsx │ │ ├── CopyIcon.tsx │ │ ├── CrossIcon.tsx │ │ ├── CrossIcon2.tsx │ │ ├── DeleteIcon.tsx │ │ ├── DownArrow.tsx │ │ ├── DownChevronArrow.tsx │ │ ├── EditIcon.tsx │ │ ├── EditIcon2.tsx │ │ ├── ExportIcon.tsx │ │ ├── FileTextIcon.tsx │ │ ├── FolderIcon.tsx │ │ ├── GoogleIcon.tsx │ │ ├── HeartIcon.tsx │ │ ├── ImageIcon.tsx │ │ ├── JsonIcon.tsx │ │ ├── LinkIcon.tsx │ │ ├── LogoutIcon.tsx │ │ ├── MarkdownIcon.tsx │ │ ├── MenuIcon.tsx │ │ ├── MoneyIcon.tsx │ │ ├── MoonIcon.tsx │ │ ├── NewFolderIcon.tsx │ │ ├── PdfIcon.tsx │ │ ├── PersonIcon.tsx │ │ ├── PlusIcon.tsx │ │ ├── RefreshIcon.tsx │ │ ├── SendIcon.tsx │ │ ├── SettingIcon.tsx │ │ ├── SpinnerIcon.tsx │ │ ├── SunIcon.tsx │ │ └── TickIcon.tsx │ ├── components/ │ │ ├── AboutMenu/ │ │ │ ├── AboutMenu.tsx │ │ │ └── index.ts │ │ ├── ApiMenu/ │ │ │ ├── ApiMenu.tsx │ │ │ └── index.ts │ │ ├── ApiPopup/ │ │ │ ├── ApiPopup.tsx │ │ │ └── index.ts │ │ ├── Chat/ │ │ │ ├── Chat.tsx │ │ │ ├── ChatContent/ │ │ │ │ ├── ChatContent.tsx │ │ │ │ ├── ChatTitle.tsx │ │ │ │ ├── CloneChat.tsx │ │ │ │ ├── DownloadChat.tsx │ │ │ │ ├── Message/ │ │ │ │ │ ├── Avatar.tsx │ │ │ │ │ ├── CodeBlock.tsx │ │ │ │ │ ├── CommandPrompt/ │ │ │ │ │ │ ├── CommandPrompt.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Message.tsx │ │ │ │ │ ├── MessageContent.tsx │ │ │ │ │ ├── NewMessageButton.tsx │ │ │ │ │ ├── RoleSelector.tsx │ │ │ │ │ ├── View/ │ │ │ │ │ │ ├── Button/ │ │ │ │ │ │ │ ├── BaseButton.tsx │ │ │ │ │ │ │ ├── CopyButton.tsx │ │ │ │ │ │ │ ├── DeleteButton.tsx │ │ │ │ │ │ │ ├── DownButton.tsx │ │ │ │ │ │ │ ├── EditButton.tsx │ │ │ │ │ │ │ ├── MarkdownModeButton.tsx │ │ │ │ │ │ │ ├── RefreshButton.tsx │ │ │ │ │ │ │ └── UpButton.tsx │ │ │ │ │ │ ├── ContentView.tsx │ │ │ │ │ │ └── EditView.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ScrollToBottomButton.tsx │ │ │ │ └── index.ts │ │ │ ├── ChatInput.tsx │ │ │ └── index.ts │ │ ├── ChatConfigMenu/ │ │ │ ├── ChatConfigMenu.tsx │ │ │ └── index.ts │ │ ├── ConfigMenu/ │ │ │ ├── ConfigMenu.tsx │ │ │ └── index.ts │ │ ├── GoogleSync/ │ │ │ ├── GoogleSync.tsx │ │ │ ├── GoogleSyncButton.tsx │ │ │ └── index.ts │ │ ├── ImportExportChat/ │ │ │ ├── ExportChat.tsx │ │ │ ├── ImportChat.tsx │ │ │ ├── ImportChatOpenAI.tsx │ │ │ ├── ImportExportChat.tsx │ │ │ └── index.ts │ │ ├── LanguageSelector/ │ │ │ ├── LanguageSelector.tsx │ │ │ └── index.ts │ │ ├── Menu/ │ │ │ ├── ChatFolder.tsx │ │ │ ├── ChatHistory.tsx │ │ │ ├── ChatHistoryList.tsx │ │ │ ├── ChatSearch.tsx │ │ │ ├── Menu.tsx │ │ │ ├── MenuOptions/ │ │ │ │ ├── Account.tsx │ │ │ │ ├── Api.tsx │ │ │ │ ├── ClearConversation.tsx │ │ │ │ ├── CollapseOptions.tsx │ │ │ │ ├── Logout.tsx │ │ │ │ ├── Me.tsx │ │ │ │ ├── MenuOptions.tsx │ │ │ │ ├── ThemeSwitcher.tsx │ │ │ │ └── index.ts │ │ │ ├── NewChat.tsx │ │ │ ├── NewFolder.tsx │ │ │ └── index.ts │ │ ├── MobileBar/ │ │ │ ├── MobileBar.tsx │ │ │ └── index.ts │ │ ├── PopupModal/ │ │ │ ├── PopupModal.tsx │ │ │ └── index.ts │ │ ├── PromptLibraryMenu/ │ │ │ ├── ExportPrompt.tsx │ │ │ ├── ImportPrompt.tsx │ │ │ ├── PromptLibraryMenu.tsx │ │ │ └── index.ts │ │ ├── SearchBar/ │ │ │ ├── SearchBar.tsx │ │ │ └── index.ts │ │ ├── SettingsMenu/ │ │ │ ├── AdvencedModeToggle.tsx │ │ │ ├── AutoTitleToggle.tsx │ │ │ ├── EnterToSubmitToggle.tsx │ │ │ ├── InlineLatexToggle.tsx │ │ │ ├── SettingsMenu.tsx │ │ │ ├── TotalTokenCost.tsx │ │ │ └── index.ts │ │ ├── ShareGPT/ │ │ │ ├── ShareGPT.tsx │ │ │ └── index.ts │ │ ├── StopGeneratingButton/ │ │ │ └── StopGeneratingButton.tsx │ │ ├── Toast/ │ │ │ ├── Toast.tsx │ │ │ └── index.ts │ │ ├── Toggle/ │ │ │ ├── Toggle.tsx │ │ │ └── index.ts │ │ └── TokenCount/ │ │ ├── TokenCount.tsx │ │ └── index.ts │ ├── constants/ │ │ ├── auth.ts │ │ ├── chat.ts │ │ ├── color.ts │ │ ├── language.ts │ │ └── prompt.ts │ ├── fonts/ │ │ └── LICENSE.txt │ ├── hooks/ │ │ ├── useAddChat.ts │ │ ├── useHideOnOutsideClick.ts │ │ ├── useInitialiseNewChat.ts │ │ ├── useSaveToLocalStorage.ts │ │ └── useSubmit.ts │ ├── i18n.ts │ ├── main.css │ ├── main.tsx │ ├── store/ │ │ ├── auth-slice.ts │ │ ├── chat-slice.ts │ │ ├── cloud-auth-slice.ts │ │ ├── cloud-auth-store.ts │ │ ├── config-slice.ts │ │ ├── input-slice.ts │ │ ├── migrate.ts │ │ ├── prompt-slice.ts │ │ ├── storage/ │ │ │ └── GoogleCloudStorage.ts │ │ ├── store.ts │ │ └── toast-slice.ts │ ├── types/ │ │ ├── api.ts │ │ ├── chat.ts │ │ ├── export.ts │ │ ├── google-api.ts │ │ ├── persist.ts │ │ ├── prompt.ts │ │ └── theme.ts │ ├── utils/ │ │ ├── api.ts │ │ ├── chat.ts │ │ ├── date.ts │ │ ├── downloadFile.ts │ │ ├── google-api.ts │ │ ├── import.ts │ │ ├── messageUtils.ts │ │ └── prompt.ts │ └── vite-env.d.ts ├── tailwind.config.cjs ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts