gitextract_1jsidgpo/ ├── .claudeignore ├── .dockerignore ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── docker-build.yml │ ├── release-linux.yml │ ├── release-macos.yml │ └── release-windows.yml ├── .gitignore ├── .prettierrc ├── AGENTS.md ├── ARCHITECTURE.md ├── CHANGELOG.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── DEVELOPMENT.md ├── Dockerfile ├── Dockerfile_China ├── ENVIRONMENT.md ├── LICENSE ├── Makefile ├── README.md ├── RELEASE.md ├── VERSION ├── backend-go/ │ ├── .air.toml │ ├── .env.example │ ├── .gitignore │ ├── CLAUDE.md │ ├── DEV_GUIDE.md │ ├── Makefile │ ├── README.md │ ├── build.sh │ ├── docs/ │ │ └── MALFORMED_TOOLCALL_MEMO.md │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── config/ │ │ │ ├── config.go │ │ │ ├── config_baseurl_test.go │ │ │ ├── config_gemini.go │ │ │ ├── config_loader.go │ │ │ ├── config_messages.go │ │ │ ├── config_responses.go │ │ │ ├── config_utils.go │ │ │ └── env.go │ │ ├── converters/ │ │ │ ├── chat_to_responses.go │ │ │ ├── chat_to_responses_test.go │ │ │ ├── claude_converter.go │ │ │ ├── converter.go │ │ │ ├── converter_test.go │ │ │ ├── factory.go │ │ │ ├── gemini_converter.go │ │ │ ├── gemini_converter_test.go │ │ │ ├── openai_converter.go │ │ │ ├── responses_converter.go │ │ │ ├── responses_passthrough.go │ │ │ └── responses_to_chat.go │ │ ├── handlers/ │ │ │ ├── channel_metrics_handler.go │ │ │ ├── common/ │ │ │ │ ├── client_error_test.go │ │ │ │ ├── failover.go │ │ │ │ ├── failover_test.go │ │ │ │ ├── multi_channel_failover.go │ │ │ │ ├── request.go │ │ │ │ ├── stream.go │ │ │ │ ├── stream_test.go │ │ │ │ └── upstream_failover.go │ │ │ ├── frontend.go │ │ │ ├── gemini/ │ │ │ │ ├── channels.go │ │ │ │ ├── dashboard.go │ │ │ │ ├── dashboard_test.go │ │ │ │ ├── handler.go │ │ │ │ ├── handler_test.go │ │ │ │ └── stream.go │ │ │ ├── global_stats_handler.go │ │ │ ├── health.go │ │ │ ├── messages/ │ │ │ │ ├── channels.go │ │ │ │ ├── handler.go │ │ │ │ └── models.go │ │ │ ├── responses/ │ │ │ │ ├── channels.go │ │ │ │ ├── compact.go │ │ │ │ └── handler.go │ │ │ └── settings.go │ │ ├── httpclient/ │ │ │ └── client.go │ │ ├── logger/ │ │ │ └── logger.go │ │ ├── metrics/ │ │ │ ├── channel_metrics.go │ │ │ ├── channel_metrics_activity_test.go │ │ │ ├── channel_metrics_cache_stats_test.go │ │ │ ├── persistence.go │ │ │ └── sqlite_store.go │ │ ├── middleware/ │ │ │ ├── auth.go │ │ │ ├── auth_test.go │ │ │ ├── cors.go │ │ │ └── logger.go │ │ ├── providers/ │ │ │ ├── claude.go │ │ │ ├── gemini.go │ │ │ ├── openai.go │ │ │ ├── provider.go │ │ │ ├── request_context_test.go │ │ │ ├── responses.go │ │ │ └── url_builder_test.go │ │ ├── scheduler/ │ │ │ ├── channel_scheduler.go │ │ │ └── channel_scheduler_test.go │ │ ├── session/ │ │ │ ├── manager.go │ │ │ └── trace_affinity.go │ │ ├── types/ │ │ │ ├── gemini.go │ │ │ ├── gemini_test.go │ │ │ ├── responses.go │ │ │ └── types.go │ │ ├── utils/ │ │ │ ├── compression.go │ │ │ ├── headers.go │ │ │ ├── headers_test.go │ │ │ ├── json.go │ │ │ ├── json_compact_test.go │ │ │ ├── json_test.go │ │ │ ├── stream_synthesizer.go │ │ │ ├── token_counter.go │ │ │ └── token_counter_test.go │ │ └── warmup/ │ │ └── url_manager.go │ ├── main.go │ └── version.go ├── docker-compose.yml └── frontend/ ├── .env.example ├── CLAUDE.md ├── ESLINT.md ├── eslint.config.js ├── index.html ├── package.json ├── src/ │ ├── App.vue │ ├── assets/ │ │ └── style.css │ ├── components/ │ │ ├── AddChannelModal.vue │ │ ├── ChannelCard.vue │ │ ├── ChannelMetricsChart.vue │ │ ├── ChannelOrchestration.vue │ │ ├── ChannelStatusBadge.vue │ │ ├── GlobalStatsChart.vue │ │ └── KeyTrendChart.vue │ ├── composables/ │ │ └── useTheme.ts │ ├── env.d.ts │ ├── main.ts │ ├── plugins/ │ │ └── vuetify.ts │ ├── router/ │ │ └── index.ts │ ├── services/ │ │ ├── api.ts │ │ └── version.ts │ ├── stores/ │ │ ├── auth.ts │ │ ├── channel.ts │ │ ├── dialog.ts │ │ ├── index.ts │ │ ├── preferences.ts │ │ └── system.ts │ ├── styles/ │ │ └── settings.scss │ ├── utils/ │ │ ├── quickInputParser.test.ts │ │ └── quickInputParser.ts │ └── views/ │ └── ChannelsView.vue ├── tsconfig.json └── vite.config.ts