gitextract_7tdmfy1z/ ├── .github/ │ ├── ISSUE_TRIAGE.md │ ├── prompts/ │ │ ├── issue-comment-system.md │ │ └── issue-triage-system.md │ ├── release.yml │ └── workflows/ │ ├── claude-code.yml │ ├── issue-triage.yml │ ├── release.yml │ └── smoke-test.yml ├── .gitignore ├── AI_AGENT_GUIDE.md ├── CHANGELOG.md ├── CLAUDE.md ├── README.md ├── apps/ │ ├── .gitignore │ └── ClaudishProxy/ │ ├── Package.swift │ └── Sources/ │ ├── ApiKeyManager.swift │ ├── BridgeManager.swift │ ├── CertificateManager.swift │ ├── ClaudishProxyApp.swift │ ├── ModelProvider.swift │ ├── Models.swift │ ├── ProcessManager.swift │ ├── ProfileManager.swift │ ├── ProfilePicker.swift │ ├── ProfilesSettingsView.swift │ ├── SettingsView.swift │ ├── StatsDatabase.swift │ ├── StatsPanel.swift │ ├── Theme.swift │ └── UnifiedModelPicker.swift ├── biome.json ├── cliff.toml ├── design-references/ │ └── stats-panel-style.md ├── docs/ │ ├── advanced/ │ │ ├── automation.md │ │ ├── cost-tracking.md │ │ ├── environment.md │ │ └── mtm-to-magmux-migration.md │ ├── ai-integration/ │ │ └── for-agents.md │ ├── api-key-architecture.md │ ├── api-reference.md │ ├── getting-started/ │ │ └── quick-start.md │ ├── index.md │ ├── models/ │ │ ├── choosing-models.md │ │ └── model-mapping.md │ ├── settings-reference.md │ ├── three-layer-architecture.md │ ├── troubleshooting.md │ └── usage/ │ ├── interactive-mode.md │ ├── magmux.md │ ├── mcp-server.md │ ├── monitor-mode.md │ └── single-shot-mode.md ├── experiments/ │ └── tool-replacement-proxy-2026-04/ │ ├── README.md │ ├── claudish-patch/ │ │ ├── native-handler-advisor.test.ts │ │ ├── native-handler-advisor.ts │ │ └── native-handler.patch │ ├── evidence/ │ │ ├── evidence-index.ndjson │ │ ├── evidence-req-advisor-enabled.json │ │ ├── evidence-resp-advisor-enabled.ndjson │ │ ├── evidence-stage1-swap.ndjson │ │ ├── evidence-stage2-rewrite.ndjson │ │ └── evidence-stage2-ui-transcript.txt │ ├── journal/ │ │ └── 2026-04-10-to-15-investigation.md │ ├── poc/ │ │ ├── 01-recording-proxy.ts │ │ ├── 02-mock-advisor-proxy.ts │ │ ├── 03-sdk-validation.ts │ │ ├── 04-multi-turn-validation.ts │ │ ├── 05-tool-loop-proxy.ts │ │ ├── 06-sdk-e2e-validation.ts │ │ └── README.md │ └── research/ │ ├── 01-advisor-pattern-research.md │ ├── 01-research-plan.md │ ├── 02-proxy-replacement-architecture.md │ ├── 03-how-to-enable-advisor.md │ ├── 04-real-test-results.md │ ├── 05-stage1-tool-swap.md │ └── 06-stage2-tool-result-rewrite.md ├── install.sh ├── landingpage/ │ ├── .firebaserc │ ├── .gitignore │ ├── App.tsx │ ├── README.md │ ├── components/ │ │ ├── BlockLogo.tsx │ │ ├── BridgeDiagram.tsx │ │ ├── Changelog.tsx │ │ ├── FeatureSection.tsx │ │ ├── HeroSection.tsx │ │ ├── MultiModelAnimation.tsx │ │ ├── SmartRouting.tsx │ │ ├── SubscriptionSection.tsx │ │ ├── SupportSection.tsx │ │ ├── TerminalWindow.tsx │ │ ├── TypingAnimation.tsx │ │ └── VisionSection.tsx │ ├── constants.ts │ ├── firebase.json │ ├── firebase.ts │ ├── index.html │ ├── index.tsx │ ├── metadata.json │ ├── package.json │ ├── pnpm-workspace.yaml │ ├── public/ │ │ └── site.webmanifest │ ├── tsconfig.json │ ├── types.ts │ └── vite.config.ts ├── package.json ├── packages/ │ ├── .gitignore │ ├── cli/ │ │ ├── .gitignore │ │ ├── AI_AGENT_GUIDE.md │ │ ├── bin/ │ │ │ └── claudish.cjs │ │ ├── package.json │ │ ├── recommended-models.json │ │ ├── scripts/ │ │ │ ├── generate-version.ts │ │ │ ├── smoke/ │ │ │ │ ├── probes.ts │ │ │ │ ├── providers.ts │ │ │ │ ├── reporter.ts │ │ │ │ └── types.ts │ │ │ ├── smoke-test.ts │ │ │ └── smoke.test.ts │ │ ├── skills/ │ │ │ └── claudish-usage/ │ │ │ └── SKILL.md │ │ ├── src/ │ │ │ ├── adapters/ │ │ │ │ ├── anthropic-api-format.ts │ │ │ │ ├── api-format.ts │ │ │ │ ├── base-api-format.ts │ │ │ │ ├── codex-api-format.ts │ │ │ │ ├── deepseek-model-dialect.ts │ │ │ │ ├── dialect-manager.ts │ │ │ │ ├── gemini-api-format.ts │ │ │ │ ├── glm-model-dialect.ts │ │ │ │ ├── grok-model-dialect.ts │ │ │ │ ├── index.ts │ │ │ │ ├── litellm-api-format.ts │ │ │ │ ├── local-adapter.ts │ │ │ │ ├── minimax-model-dialect.ts │ │ │ │ ├── model-catalog.test.ts │ │ │ │ ├── model-catalog.ts │ │ │ │ ├── model-dialect.ts │ │ │ │ ├── ollama-api-format.ts │ │ │ │ ├── openai-api-format.ts │ │ │ │ ├── openrouter-api-format.ts │ │ │ │ ├── qwen-model-dialect.ts │ │ │ │ ├── tool-name-utils.ts │ │ │ │ └── xiaomi-model-dialect.ts │ │ │ ├── auth/ │ │ │ │ ├── auth-commands.ts │ │ │ │ ├── codex-oauth.ts │ │ │ │ ├── gemini-oauth.ts │ │ │ │ ├── kimi-oauth.ts │ │ │ │ ├── oauth-manager.ts │ │ │ │ ├── oauth-registry.ts │ │ │ │ ├── quota-command.ts │ │ │ │ └── vertex-auth.ts │ │ │ ├── channel/ │ │ │ │ ├── e2e-channel.test.ts │ │ │ │ ├── index.ts │ │ │ │ ├── scrollback-buffer.test.ts │ │ │ │ ├── scrollback-buffer.ts │ │ │ │ ├── session-manager.test.ts │ │ │ │ ├── session-manager.ts │ │ │ │ ├── signal-watcher.test.ts │ │ │ │ ├── signal-watcher.ts │ │ │ │ ├── test-helpers/ │ │ │ │ │ └── fake-claudish.ts │ │ │ │ └── types.ts │ │ │ ├── claude-runner.ts │ │ │ ├── cli-passthrough.test.ts │ │ │ ├── cli.test.ts │ │ │ ├── cli.ts │ │ │ ├── config-command.ts │ │ │ ├── config-schema.test.ts │ │ │ ├── config-schema.ts │ │ │ ├── config.ts │ │ │ ├── default-provider.test.ts │ │ │ ├── default-provider.ts │ │ │ ├── diag-output.ts │ │ │ ├── format-translation.test.ts │ │ │ ├── glm-adapter.test.ts │ │ │ ├── handlers/ │ │ │ │ ├── composed-handler.test.ts │ │ │ │ ├── composed-handler.ts │ │ │ │ ├── default-provider-e2e.test.ts │ │ │ │ ├── fallback-handler.test.ts │ │ │ │ ├── fallback-handler.ts │ │ │ │ ├── native-handler-advisor.test.ts │ │ │ │ ├── native-handler-advisor.ts │ │ │ │ ├── native-handler.ts │ │ │ │ ├── shared/ │ │ │ │ │ ├── anthropic-error.test.ts │ │ │ │ │ ├── anthropic-error.ts │ │ │ │ │ ├── format/ │ │ │ │ │ │ ├── identity-filter.ts │ │ │ │ │ │ ├── openai-messages.ts │ │ │ │ │ │ └── openai-tools.ts │ │ │ │ │ ├── gemini-queue.ts │ │ │ │ │ ├── gemini-schema.ts │ │ │ │ │ ├── local-queue.ts │ │ │ │ │ ├── openai-compat.ts │ │ │ │ │ ├── openrouter-queue.ts │ │ │ │ │ ├── remote-provider-types.ts │ │ │ │ │ ├── stream-parsers/ │ │ │ │ │ │ ├── anthropic-sse.ts │ │ │ │ │ │ ├── gemini-sse.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── ollama-jsonl.ts │ │ │ │ │ │ ├── openai-responses-sse.ts │ │ │ │ │ │ └── openai-sse.ts │ │ │ │ │ ├── token-tracker.ts │ │ │ │ │ ├── tool-call-recovery.ts │ │ │ │ │ └── web-search-detector.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ ├── logger.ts │ │ │ ├── mcp-server.ts │ │ │ ├── middleware/ │ │ │ │ ├── gemini-thought-signature.ts │ │ │ │ ├── index.ts │ │ │ │ ├── manager.ts │ │ │ │ └── types.ts │ │ │ ├── model-catalog.test.ts │ │ │ ├── model-loader.ts │ │ │ ├── model-selector.ts │ │ │ ├── native-anthropic-mapping.test.ts │ │ │ ├── port-manager.ts │ │ │ ├── probe/ │ │ │ │ ├── probe-results-printer.ts │ │ │ │ ├── probe-tui-app.tsx │ │ │ │ └── probe-tui-runtime.tsx │ │ │ ├── profile-commands.ts │ │ │ ├── profile-config.ts │ │ │ ├── providers/ │ │ │ │ ├── all-models-cache.test.ts │ │ │ │ ├── all-models-cache.ts │ │ │ │ ├── api-key-map.ts │ │ │ │ ├── api-key-provenance.ts │ │ │ │ ├── auto-route-default-provider.test.ts │ │ │ │ ├── auto-route.ts │ │ │ │ ├── catalog-resolvers/ │ │ │ │ │ ├── litellm.ts │ │ │ │ │ ├── openrouter.test.ts │ │ │ │ │ ├── openrouter.ts │ │ │ │ │ └── static-fallback.ts │ │ │ │ ├── custom-endpoints-loader.test.ts │ │ │ │ ├── custom-endpoints-loader.ts │ │ │ │ ├── index.ts │ │ │ │ ├── model-catalog-resolver.ts │ │ │ │ ├── model-parser.ts │ │ │ │ ├── probe-live.ts │ │ │ │ ├── provider-definitions.test.ts │ │ │ │ ├── provider-definitions.ts │ │ │ │ ├── provider-profiles.ts │ │ │ │ ├── provider-registry.ts │ │ │ │ ├── provider-resolver.ts │ │ │ │ ├── provider-routing.test.ts │ │ │ │ ├── remote-provider-registry.ts │ │ │ │ ├── routing-rules.test.ts │ │ │ │ ├── routing-rules.ts │ │ │ │ ├── runtime-providers.test.ts │ │ │ │ ├── runtime-providers.ts │ │ │ │ └── transport/ │ │ │ │ ├── anthropic-compat.test.ts │ │ │ │ ├── anthropic-compat.ts │ │ │ │ ├── gemini-apikey.ts │ │ │ │ ├── gemini-codeassist.ts │ │ │ │ ├── litellm.ts │ │ │ │ ├── local.ts │ │ │ │ ├── ollamacloud.ts │ │ │ │ ├── openai-codex.ts │ │ │ │ ├── openai.test.ts │ │ │ │ ├── openai.ts │ │ │ │ ├── openrouter.ts │ │ │ │ ├── poe.ts │ │ │ │ ├── types.ts │ │ │ │ └── vertex-oauth.ts │ │ │ ├── proxy-server.ts │ │ │ ├── services/ │ │ │ │ ├── pricing-cache.ts │ │ │ │ └── vision-proxy.ts │ │ │ ├── stats-buffer.test.ts │ │ │ ├── stats-buffer.ts │ │ │ ├── stats-otlp.test.ts │ │ │ ├── stats-otlp.ts │ │ │ ├── stats.test.ts │ │ │ ├── stats.ts │ │ │ ├── team-cli.ts │ │ │ ├── team-grid.e2e-helpers.ts │ │ │ ├── team-grid.e2e.test.ts │ │ │ ├── team-grid.ts │ │ │ ├── team-orchestrator.test.ts │ │ │ ├── team-orchestrator.ts │ │ │ ├── team-timeout-repro.test.ts │ │ │ ├── telemetry.test.ts │ │ │ ├── telemetry.ts │ │ │ ├── test-fixtures/ │ │ │ │ ├── extract-sse-from-log.ts │ │ │ │ └── sse-responses/ │ │ │ │ ├── SEED-anthropic-text-only.sse │ │ │ │ ├── SEED-anthropic-thinking.sse │ │ │ │ ├── SEED-openai-text-only.sse │ │ │ │ ├── SEED-openai-tool-call.sse │ │ │ │ ├── minimax-m25-turn1-thinking-text-tool.sse │ │ │ │ ├── minimax-m25-turn2-thinking-tool-only.sse │ │ │ │ ├── minimax-m25-turn3-thinking-multichunk.sse │ │ │ │ ├── regression-zai-glm5-instream-error.sse │ │ │ │ └── regression-zai-glm5-usage.sse │ │ │ ├── transform.ts │ │ │ ├── tui/ │ │ │ │ ├── App.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── panels/ │ │ │ │ │ ├── ApiKeysPanel.tsx │ │ │ │ │ ├── ConfigViewPanel.tsx │ │ │ │ │ ├── ProfilesPanel.tsx │ │ │ │ │ ├── ProvidersPanel.tsx │ │ │ │ │ ├── RoutingPanel.tsx │ │ │ │ │ ├── StatsPanel.tsx │ │ │ │ │ └── TelemetryPanel.tsx │ │ │ │ ├── providers.ts │ │ │ │ ├── test-provider.ts │ │ │ │ └── theme.ts │ │ │ ├── types.ts │ │ │ ├── update-checker.ts │ │ │ ├── update-command.ts │ │ │ ├── utils.ts │ │ │ ├── version.ts │ │ │ └── zai-glm.e2e.test.ts │ │ ├── tsconfig.json │ │ └── tsconfig.tui.json │ ├── macos-bridge/ │ │ ├── docs/ │ │ │ └── PROXY_TRAFFIC_FLOW.md │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── full-test.js │ │ │ ├── simple-test.js │ │ │ ├── test-claude-desktop.sh │ │ │ ├── test-cycletls.ts │ │ │ ├── test-full-interception.sh │ │ │ └── test-proxy.sh │ │ ├── src/ │ │ │ ├── auth.ts │ │ │ ├── bridge.test.ts │ │ │ ├── certificate-manager.ts │ │ │ ├── config-manager.ts │ │ │ ├── connect-handler.ts │ │ │ ├── cycletls-manager.ts │ │ │ ├── detection.ts │ │ │ ├── http-parser.ts │ │ │ ├── https-proxy-server.ts │ │ │ ├── index.ts │ │ │ ├── process-manager.ts │ │ │ ├── routing-middleware.ts │ │ │ ├── server.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── magmux-darwin-arm64/ │ │ ├── .gitignore │ │ ├── bin/ │ │ │ └── .gitkeep │ │ └── package.json │ ├── magmux-darwin-x64/ │ │ ├── .gitignore │ │ ├── bin/ │ │ │ └── .gitkeep │ │ └── package.json │ ├── magmux-linux-arm64/ │ │ ├── .gitignore │ │ ├── bin/ │ │ │ └── .gitkeep │ │ └── package.json │ └── magmux-linux-x64/ │ ├── .gitignore │ ├── bin/ │ │ └── .gitkeep │ └── package.json ├── recommended-models.json ├── scripts/ │ ├── generate-manifest.ts │ ├── postinstall.cjs │ └── update-models.ts ├── skills/ │ └── claudish-usage/ │ └── SKILL.md ├── test-mcp-e2e.ts └── tsconfig.json