gitextract_87rf4bv2/ ├── .github/ │ └── workflows/ │ ├── docker-publish.yml │ └── docs.yml ├── .gitignore ├── .npmignore ├── CLAUDE.md ├── LICENSE ├── README.md ├── README_zh.md ├── blog/ │ ├── en/ │ │ ├── glm-4.6-supports-reasoning.md │ │ ├── maybe-we-can-do-more-with-the-route.md │ │ ├── progressive-disclosure-of-agent-tools-from-the-perspective-of-cli-tool-style.md │ │ └── project-motivation-and-how-it-works.md │ └── zh/ │ ├── GLM-4.6支持思考及思维链回传.md │ ├── 从CLI工具风格看工具渐进式披露.md │ ├── 或许我们能在Router中做更多事情.md │ └── 项目初衷及原理.md ├── custom-router.example.js ├── docs/ │ ├── .gitignore │ ├── README.md │ ├── blog/ │ │ ├── 2025-02-25-project-motivation.md │ │ ├── 2025-11-18-glm-reasoning.md │ │ └── 2025-11-18-router-exploration.md │ ├── docs/ │ │ ├── cli/ │ │ │ ├── commands/ │ │ │ │ ├── model.md │ │ │ │ ├── other.md │ │ │ │ ├── preset.md │ │ │ │ ├── start.md │ │ │ │ ├── status.md │ │ │ │ └── statusline.md │ │ │ ├── config/ │ │ │ │ ├── basic.md │ │ │ │ └── project-level.md │ │ │ ├── installation.md │ │ │ ├── intro.md │ │ │ └── quick-start.md │ │ ├── presets/ │ │ │ └── intro.md │ │ └── server/ │ │ ├── advanced/ │ │ │ └── custom-router.md │ │ ├── api/ │ │ │ ├── config-api.md │ │ │ ├── logs-api.md │ │ │ ├── messages-api.md │ │ │ └── overview.md │ │ ├── config/ │ │ │ ├── basic.md │ │ │ ├── providers.md │ │ │ ├── routing.md │ │ │ └── transformers.md │ │ ├── deployment.md │ │ └── intro.md │ ├── docusaurus.config.ts │ ├── i18n/ │ │ ├── en/ │ │ │ ├── code.json │ │ │ ├── docusaurus-plugin-content-blog/ │ │ │ │ └── options.json │ │ │ ├── docusaurus-plugin-content-docs/ │ │ │ │ └── current.json │ │ │ └── docusaurus-theme-classic/ │ │ │ ├── footer.json │ │ │ └── navbar.json │ │ └── zh-CN/ │ │ ├── code.json │ │ ├── docusaurus-plugin-content-blog/ │ │ │ ├── 2025-02-25-project-motivation.md │ │ │ ├── 2025-11-18-glm-reasoning.md │ │ │ ├── 2025-11-18-router-exploration.md │ │ │ └── options.json │ │ ├── docusaurus-plugin-content-docs/ │ │ │ ├── current/ │ │ │ │ ├── cli/ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ ├── other.md │ │ │ │ │ │ ├── preset.md │ │ │ │ │ │ ├── start.md │ │ │ │ │ │ ├── status.md │ │ │ │ │ │ └── statusline.md │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── basic.md │ │ │ │ │ │ └── project-level.md │ │ │ │ │ ├── installation.md │ │ │ │ │ ├── intro.md │ │ │ │ │ └── quick-start.md │ │ │ │ ├── presets/ │ │ │ │ │ └── intro.md │ │ │ │ └── server/ │ │ │ │ ├── advanced/ │ │ │ │ │ ├── custom-router.md │ │ │ │ │ └── preset-format.md │ │ │ │ ├── api/ │ │ │ │ │ ├── config-api.md │ │ │ │ │ ├── logs-api.md │ │ │ │ │ ├── messages-api.md │ │ │ │ │ └── overview.md │ │ │ │ ├── config/ │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── providers.md │ │ │ │ │ ├── routing.md │ │ │ │ │ └── transformers.md │ │ │ │ ├── deployment.md │ │ │ │ └── intro.md │ │ │ └── current.json │ │ ├── docusaurus-plugin-content-docs.backup.20260101_205603/ │ │ │ ├── advanced/ │ │ │ │ ├── custom-router.md │ │ │ │ ├── preset-format.md │ │ │ │ └── presets.md │ │ │ ├── cli/ │ │ │ │ ├── commands/ │ │ │ │ │ ├── preset.md │ │ │ │ │ └── statusline.md │ │ │ │ ├── config/ │ │ │ │ │ ├── basic.md │ │ │ │ │ └── project-level.md │ │ │ │ ├── intro.md │ │ │ │ ├── model.md │ │ │ │ ├── other-commands.md │ │ │ │ ├── start.md │ │ │ │ └── status.md │ │ │ ├── config/ │ │ │ │ ├── basic.md │ │ │ │ ├── providers.md │ │ │ │ ├── routing.md │ │ │ │ └── transformers.md │ │ │ ├── current.json │ │ │ ├── installation.md │ │ │ ├── intro.md │ │ │ ├── quick-start.md │ │ │ └── server/ │ │ │ ├── api/ │ │ │ │ ├── config-api.md │ │ │ │ ├── logs-api.md │ │ │ │ ├── messages-api.md │ │ │ │ └── overview.md │ │ │ ├── deployment.md │ │ │ └── intro.md │ │ └── docusaurus-theme-classic/ │ │ ├── footer.json │ │ └── navbar.json │ ├── package.json │ ├── postcss.config.js │ ├── sidebars.ts │ ├── src/ │ │ ├── components/ │ │ │ ├── HomepageFeatures.module.css │ │ │ └── HomepageFeatures.tsx │ │ ├── css/ │ │ │ └── custom.css │ │ ├── css-modules.d.ts │ │ ├── docusaurus.d.ts │ │ └── pages/ │ │ └── index.tsx │ ├── tailwind.config.js │ └── tsconfig.json ├── examples/ │ ├── README.md │ ├── dynamic-preset-example.json │ ├── preset-manifest-example.json │ └── simple-preset-example.json ├── package.json ├── packages/ │ ├── cli/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── cli.ts │ │ │ ├── types/ │ │ │ │ └── inquirer.d.ts │ │ │ ├── types.d.ts │ │ │ └── utils/ │ │ │ ├── activateCommand.ts │ │ │ ├── codeCommand.ts │ │ │ ├── createEnvVariables.ts │ │ │ ├── index.ts │ │ │ ├── installCommand.ts │ │ │ ├── modelSelector.ts │ │ │ ├── preset/ │ │ │ │ ├── commands.ts │ │ │ │ ├── export.ts │ │ │ │ ├── index.ts │ │ │ │ ├── install-github.ts │ │ │ │ └── install.ts │ │ │ ├── processCheck.ts │ │ │ ├── prompt/ │ │ │ │ └── schema-input.ts │ │ │ ├── status.ts │ │ │ ├── statusline.ts │ │ │ └── update.ts │ │ └── tsconfig.json │ ├── core/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── build.ts │ │ │ └── esbuild-plugin-path-alias.ts │ │ ├── src/ │ │ │ ├── api/ │ │ │ │ ├── middleware.ts │ │ │ │ └── routes.ts │ │ │ ├── plugins/ │ │ │ │ ├── index.ts │ │ │ │ ├── output/ │ │ │ │ │ ├── console-handler.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── output-manager.ts │ │ │ │ │ ├── temp-file-handler.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── webhook-handler.ts │ │ │ │ ├── plugin-manager.ts │ │ │ │ ├── token-speed.ts │ │ │ │ └── types.ts │ │ │ ├── server.ts │ │ │ ├── services/ │ │ │ │ ├── config.ts │ │ │ │ ├── provider.ts │ │ │ │ ├── tokenizer.ts │ │ │ │ └── transformer.ts │ │ │ ├── tokenizer/ │ │ │ │ ├── api-tokenizer.ts │ │ │ │ ├── huggingface-tokenizer.ts │ │ │ │ └── tiktoken-tokenizer.ts │ │ │ ├── transformer/ │ │ │ │ ├── anthropic.transformer.ts │ │ │ │ ├── cerebras.transformer.ts │ │ │ │ ├── cleancache.transformer.ts │ │ │ │ ├── customparams.transformer.ts │ │ │ │ ├── deepseek.transformer.ts │ │ │ │ ├── enhancetool.transformer.ts │ │ │ │ ├── forcereasoning.transformer.ts │ │ │ │ ├── gemini.transformer.ts │ │ │ │ ├── groq.transformer.ts │ │ │ │ ├── index.ts │ │ │ │ ├── maxcompletiontokens.transformer.ts │ │ │ │ ├── maxtoken.transformer.ts │ │ │ │ ├── openai.responses.transformer.ts │ │ │ │ ├── openai.transformer.ts │ │ │ │ ├── openrouter.transformer.ts │ │ │ │ ├── reasoning.transformer.ts │ │ │ │ ├── sampling.transformer.ts │ │ │ │ ├── streamoptions.transformer.ts │ │ │ │ ├── tooluse.transformer.ts │ │ │ │ ├── vercel.transformer.ts │ │ │ │ ├── vertex-claude.transformer.ts │ │ │ │ └── vertex-gemini.transformer.ts │ │ │ ├── types/ │ │ │ │ ├── llm.ts │ │ │ │ ├── tokenizer.d.ts │ │ │ │ └── transformer.ts │ │ │ └── utils/ │ │ │ ├── cache.ts │ │ │ ├── converter.ts │ │ │ ├── gemini.util.ts │ │ │ ├── image.ts │ │ │ ├── request.ts │ │ │ ├── router.ts │ │ │ ├── sse/ │ │ │ │ ├── SSEParser.transform.ts │ │ │ │ ├── SSESerializer.transform.ts │ │ │ │ ├── index.ts │ │ │ │ └── rewriteStream.ts │ │ │ ├── thinking.ts │ │ │ ├── toolArgumentsParser.ts │ │ │ └── vertex-claude.util.ts │ │ └── tsconfig.json │ ├── server/ │ │ ├── .dockerignore │ │ ├── Dockerfile │ │ ├── ecosystem.config.cjs │ │ ├── package.json │ │ ├── src/ │ │ │ ├── agents/ │ │ │ │ ├── image.agent.ts │ │ │ │ ├── index.ts │ │ │ │ └── type.ts │ │ │ ├── index.ts │ │ │ ├── middleware/ │ │ │ │ └── auth.ts │ │ │ ├── server.ts │ │ │ ├── types/ │ │ │ │ └── llms-plugin.d.ts │ │ │ ├── types.d.ts │ │ │ └── utils/ │ │ │ ├── SSEParser.transform.ts │ │ │ ├── SSESerializer.transform.ts │ │ │ ├── index.ts │ │ │ └── rewriteStream.ts │ │ └── tsconfig.json │ ├── shared/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ └── preset/ │ │ │ ├── export.ts │ │ │ ├── install.ts │ │ │ ├── marketplace.ts │ │ │ ├── merge.ts │ │ │ ├── readPreset.ts │ │ │ ├── schema.ts │ │ │ ├── sensitiveFields.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ └── ui/ │ ├── PROJECT.md │ ├── README.md │ ├── components.json │ ├── config.example.json │ ├── eslint.config.js │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.tsx │ │ ├── components/ │ │ │ ├── ConfigProvider.tsx │ │ │ ├── DebugPage.tsx │ │ │ ├── JsonEditor.tsx │ │ │ ├── LogViewer.tsx │ │ │ ├── Login.tsx │ │ │ ├── Presets.tsx │ │ │ ├── ProtectedRoute.tsx │ │ │ ├── ProviderList.tsx │ │ │ ├── Providers.tsx │ │ │ ├── PublicRoute.tsx │ │ │ ├── RequestHistoryDrawer.tsx │ │ │ ├── Router.tsx │ │ │ ├── SettingsDialog.tsx │ │ │ ├── StatusLineConfigDialog.tsx │ │ │ ├── StatusLineImportExport.tsx │ │ │ ├── TransformerList.tsx │ │ │ ├── Transformers.tsx │ │ │ ├── preset/ │ │ │ │ └── DynamicConfigForm.tsx │ │ │ └── ui/ │ │ │ ├── badge.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── color-picker.tsx │ │ │ ├── combo-input.tsx │ │ │ ├── combobox.tsx │ │ │ ├── command.tsx │ │ │ ├── dialog.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── multi-combobox.tsx │ │ │ ├── popover.tsx │ │ │ ├── select.tsx │ │ │ ├── switch.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast.tsx │ │ │ └── tooltip.tsx │ │ ├── i18n.ts │ │ ├── index.css │ │ ├── lib/ │ │ │ ├── api.ts │ │ │ ├── db.ts │ │ │ └── utils.ts │ │ ├── locales/ │ │ │ ├── en.json │ │ │ └── zh.json │ │ ├── main.tsx │ │ ├── routes.tsx │ │ ├── styles/ │ │ │ └── animations.css │ │ ├── types.ts │ │ ├── utils/ │ │ │ └── statusline.ts │ │ └── vite-env.d.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── vite.config.ts ├── pnpm-workspace.yaml ├── scripts/ │ ├── build-cli.js │ ├── build-core.js │ ├── build-server.js │ ├── build-shared.js │ ├── build.js │ └── release.sh ├── tsconfig.base.json └── tsconfig.json