gitextract_6fj54yj_/ ├── .babelrc ├── .dockerignore ├── .eslintignore ├── .eslintrc.json ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── 1_bug_report.yml │ │ ├── 1_bug_report_cn.yml │ │ ├── 2_feature_request.yml │ │ └── 2_feature_request_cn.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── app.yml │ ├── deploy_preview.yml │ ├── docker.yml │ ├── issue-translator.yml │ ├── remove_deploy_preview.yml │ ├── sync.yml │ └── test.yml ├── .gitignore ├── .gitpod.yml ├── .husky/ │ └── pre-commit ├── .lintstagedrc.json ├── .prettierrc.js ├── CODE_OF_CONDUCT.md ├── Dockerfile ├── LICENSE ├── README.md ├── README_CN.md ├── README_JA.md ├── README_KO.md ├── app/ │ ├── api/ │ │ ├── 302ai.ts │ │ ├── [provider]/ │ │ │ └── [...path]/ │ │ │ └── route.ts │ │ ├── alibaba.ts │ │ ├── anthropic.ts │ │ ├── artifacts/ │ │ │ └── route.ts │ │ ├── auth.ts │ │ ├── azure.ts │ │ ├── baidu.ts │ │ ├── bytedance.ts │ │ ├── common.ts │ │ ├── config/ │ │ │ └── route.ts │ │ ├── deepseek.ts │ │ ├── glm.ts │ │ ├── google.ts │ │ ├── iflytek.ts │ │ ├── moonshot.ts │ │ ├── openai.ts │ │ ├── proxy.ts │ │ ├── siliconflow.ts │ │ ├── stability.ts │ │ ├── tencent/ │ │ │ └── route.ts │ │ ├── upstash/ │ │ │ └── [action]/ │ │ │ └── [...key]/ │ │ │ └── route.ts │ │ ├── webdav/ │ │ │ └── [...path]/ │ │ │ └── route.ts │ │ └── xai.ts │ ├── client/ │ │ ├── api.ts │ │ ├── controller.ts │ │ └── platforms/ │ │ ├── ai302.ts │ │ ├── alibaba.ts │ │ ├── anthropic.ts │ │ ├── baidu.ts │ │ ├── bytedance.ts │ │ ├── deepseek.ts │ │ ├── glm.ts │ │ ├── google.ts │ │ ├── iflytek.ts │ │ ├── moonshot.ts │ │ ├── openai.ts │ │ ├── siliconflow.ts │ │ ├── tencent.ts │ │ └── xai.ts │ ├── command.ts │ ├── components/ │ │ ├── artifacts.module.scss │ │ ├── artifacts.tsx │ │ ├── auth.module.scss │ │ ├── auth.tsx │ │ ├── button.module.scss │ │ ├── button.tsx │ │ ├── chat-list.tsx │ │ ├── chat.module.scss │ │ ├── chat.tsx │ │ ├── emoji.tsx │ │ ├── error.tsx │ │ ├── exporter.module.scss │ │ ├── exporter.tsx │ │ ├── home.module.scss │ │ ├── home.tsx │ │ ├── input-range.module.scss │ │ ├── input-range.tsx │ │ ├── markdown.tsx │ │ ├── mask.module.scss │ │ ├── mask.tsx │ │ ├── mcp-market.module.scss │ │ ├── mcp-market.tsx │ │ ├── message-selector.module.scss │ │ ├── message-selector.tsx │ │ ├── model-config.module.scss │ │ ├── model-config.tsx │ │ ├── new-chat.module.scss │ │ ├── new-chat.tsx │ │ ├── plugin.module.scss │ │ ├── plugin.tsx │ │ ├── realtime-chat/ │ │ │ ├── index.ts │ │ │ ├── realtime-chat.module.scss │ │ │ ├── realtime-chat.tsx │ │ │ └── realtime-config.tsx │ │ ├── sd/ │ │ │ ├── index.tsx │ │ │ ├── sd-panel.module.scss │ │ │ ├── sd-panel.tsx │ │ │ ├── sd-sidebar.tsx │ │ │ ├── sd.module.scss │ │ │ └── sd.tsx │ │ ├── search-chat.tsx │ │ ├── settings.module.scss │ │ ├── settings.tsx │ │ ├── sidebar.tsx │ │ ├── tts-config.tsx │ │ ├── tts.module.scss │ │ ├── ui-lib.module.scss │ │ ├── ui-lib.tsx │ │ └── voice-print/ │ │ ├── index.ts │ │ ├── voice-print.module.scss │ │ └── voice-print.tsx │ ├── config/ │ │ ├── build.ts │ │ ├── client.ts │ │ └── server.ts │ ├── constant.ts │ ├── global.d.ts │ ├── layout.tsx │ ├── lib/ │ │ └── audio.ts │ ├── locales/ │ │ ├── ar.ts │ │ ├── bn.ts │ │ ├── cn.ts │ │ ├── cs.ts │ │ ├── da.ts │ │ ├── de.ts │ │ ├── en.ts │ │ ├── es.ts │ │ ├── fr.ts │ │ ├── id.ts │ │ ├── index.ts │ │ ├── it.ts │ │ ├── jp.ts │ │ ├── ko.ts │ │ ├── no.ts │ │ ├── pt.ts │ │ ├── ru.ts │ │ ├── sk.ts │ │ ├── tr.ts │ │ ├── tw.ts │ │ └── vi.ts │ ├── masks/ │ │ ├── build.ts │ │ ├── cn.ts │ │ ├── en.ts │ │ ├── index.ts │ │ ├── tw.ts │ │ └── typing.ts │ ├── mcp/ │ │ ├── actions.ts │ │ ├── client.ts │ │ ├── logger.ts │ │ ├── mcp_config.default.json │ │ ├── types.ts │ │ └── utils.ts │ ├── page.tsx │ ├── polyfill.ts │ ├── store/ │ │ ├── access.ts │ │ ├── chat.ts │ │ ├── config.ts │ │ ├── index.ts │ │ ├── mask.ts │ │ ├── plugin.ts │ │ ├── prompt.ts │ │ ├── sd.ts │ │ ├── sync.ts │ │ └── update.ts │ ├── styles/ │ │ ├── animation.scss │ │ ├── globals.scss │ │ ├── highlight.scss │ │ ├── markdown.scss │ │ └── window.scss │ ├── typing.ts │ ├── utils/ │ │ ├── audio.ts │ │ ├── auth-settings-events.ts │ │ ├── baidu.ts │ │ ├── chat.ts │ │ ├── clone.ts │ │ ├── cloud/ │ │ │ ├── index.ts │ │ │ ├── upstash.ts │ │ │ └── webdav.ts │ │ ├── cloudflare.ts │ │ ├── format.ts │ │ ├── hmac.ts │ │ ├── hooks.ts │ │ ├── indexedDB-storage.ts │ │ ├── merge.ts │ │ ├── model.ts │ │ ├── ms_edge_tts.ts │ │ ├── object.ts │ │ ├── store.ts │ │ ├── stream.ts │ │ ├── sync.ts │ │ ├── tencent.ts │ │ └── token.ts │ └── utils.ts ├── docker-compose.yml ├── docs/ │ ├── bt-cn.md │ ├── cloudflare-pages-cn.md │ ├── cloudflare-pages-en.md │ ├── cloudflare-pages-es.md │ ├── cloudflare-pages-ja.md │ ├── cloudflare-pages-ko.md │ ├── faq-cn.md │ ├── faq-en.md │ ├── faq-es.md │ ├── faq-ja.md │ ├── faq-ko.md │ ├── synchronise-chat-logs-cn.md │ ├── synchronise-chat-logs-en.md │ ├── synchronise-chat-logs-es.md │ ├── synchronise-chat-logs-ja.md │ ├── synchronise-chat-logs-ko.md │ ├── translation.md │ ├── user-manual-cn.md │ ├── vercel-cn.md │ ├── vercel-es.md │ ├── vercel-ja.md │ └── vercel-ko.md ├── jest.config.ts ├── jest.setup.ts ├── next.config.mjs ├── package.json ├── public/ │ ├── audio-processor.js │ ├── plugins.json │ ├── prompts.json │ ├── robots.txt │ ├── serviceWorker.js │ ├── serviceWorkerRegister.js │ └── site.webmanifest ├── scripts/ │ ├── .gitignore │ ├── delete-deployment-preview.sh │ ├── fetch-prompts.mjs │ ├── init-proxy.sh │ ├── proxychains.template.conf │ └── setup.sh ├── src-tauri/ │ ├── .gitignore │ ├── Cargo.toml │ ├── build.rs │ ├── icons/ │ │ └── icon.icns │ ├── src/ │ │ ├── main.rs │ │ └── stream.rs │ └── tauri.conf.json ├── test/ │ ├── model-available.test.ts │ ├── model-provider.test.ts │ ├── sum-module.test.ts │ └── vision-model-checker.test.ts ├── tsconfig.json └── vercel.json