9router/tests/unit
Simon Shi a6fd84691b feat(qoder): port Kiro-style provider integration with COSY signing
Replaces the Qoder placeholder with a real free-tier provider:

- Device-flow OAuth: PKCE + nonce generated locally, user authorizes at
  qoder.com/device/selectAccounts, poll openapi.qoder.sh until token
- COSY signing (RSA-1024 + AES-128-CBC + MD5) for chat / model-list
- WAF-bypass body encoding (custom-alphabet base64 + thirds rearrange)
- Live model_config catalog from /algo/api/v2/model/list, cached 1h
- 11 models registered (auto/ultimate/performance/efficient/lite +
  6 frontier *model ids)
- Usage fetcher for openapi.qoder.sh/api/v2/quota/usage
- Dashboard live-models resolver, provider test, OAuth modal hookup
- 24 unit tests covering encoder, PKCE, COSY headers, sigPath stripping
2026-05-29 17:36:27 +07:00
..
antigravity-cache.test.js Add marked package, update Qwen executor for OAuth handling, and enhance changelog styles 2026-04-17 12:15:10 +07:00
buildOutputFilter.test.js chore: add buildOutput RTK filter, drop legacy cloud sync, internal cleanup 2026-05-16 10:54:41 +07:00
buildOutputFilterAdversarial.test.js chore: add buildOutput RTK filter, drop legacy cloud sync, internal cleanup 2026-05-16 10:54:41 +07:00
claude-header-forwarding.test.js feat(claude-code): spoof TLS fingerprint and stabilize headers for Anthropic 2026-03-30 16:27:28 +07:00
codex-image-fetch.test.js fix(codex): await image URL fetches before sending to upstream (closes #575) 2026-04-17 12:15:10 +07:00
codex-refresh-token.test.js Add proactive token refresh lead times for providers and implement Codex proxy management 2026-04-14 11:41:06 +07:00
combo-routing.test.js Add sticky round-robin for combos (#831) 2026-05-01 16:36:36 +07:00
commandcode-to-openai.test.js feat: enhance CommandCode integration with improved message handling 2026-05-07 23:02:07 +07:00
compatible-provider-connections.test.js Fix compatible provider API key setup (#925) 2026-05-07 16:17:03 +07:00
cursor-composer-thinking.test.js fix: decode Composer cursor thinking output (#1310) 2026-05-21 09:52:30 +07:00
dashboard-guard.test.js Enhance security 2026-05-21 11:33:18 +07:00
db-benchmark.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
db-concurrent.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
db-driver-chain.test.js chore: release v0.4.27 2026-05-09 22:48:07 +07:00
db-migration-chain.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
db-sqlite-vs-lowdb.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
embeddings.cloud.test.js feat: add /v1/embeddings endpoint (OpenAI-compatible) (#146) 2026-02-18 13:24:02 +07:00
embeddingsCore.test.js fix(embeddings): forward Gemini output dimensions (#1366) 2026-05-23 09:23:26 +07:00
gemini-usage-projectid.test.js Reuse Gemini CLI project ID for usage (#1428) 2026-05-26 11:23:47 +07:00
github-responses-routing.test.js fix: never route GitHub Copilot Gemini/Claude models to /responses (#1062) (#1536) 2026-05-29 15:40:42 +07:00
image-generation.test.js Add Codex GPT 5.5 image support (#991) 2026-05-12 09:26:13 +07:00
minimax-tts.test.js feat: add minimax tts support (#1043) 2026-05-13 15:34:10 +07:00
minimax-usage.test.js feat: add minimax tts support (#1043) 2026-05-13 15:34:10 +07:00
minimax-voices.test.js feat: add minimax tts support (#1043) 2026-05-13 15:34:10 +07:00
oauth-cursor-auto-import.test.js fix: improve cursor auto-import reliability on macOS (#161) 2026-02-20 15:07:43 +07:00
openai-to-claude-response-tools.test.js fix: sanitize Read tool args to prevent retry loops from non-Anthropic models (#1144) 2026-05-26 11:33:38 +07:00
openai-to-claude.test.js fix: strip empty Read pages argument in OpenAI-to-Claude translator (#1354) 2026-05-23 09:27:13 +07:00
openai-to-commandcode.test.js feat: enhance CommandCode integration with improved message handling 2026-05-07 23:02:07 +07:00
openai-to-kiro.test.js https://github.com/decolua/9router/pull/1167 2026-05-16 11:20:08 +07:00
perplexity-web.test.js feat: add support for Grok Web and Perplexity Web providers 2026-04-22 11:58:53 +07:00
provider-validation.test.js Add optional modelID input for custom API Key Providers testing (#315) 2026-03-16 09:21:05 +07:00
qoder.test.js feat(qoder): port Kiro-style provider integration with COSY signing 2026-05-29 17:36:27 +07:00
rtk.e2e.test.js Feature : RTK compress 2026-04-22 15:36:51 +07:00
rtk.multi-provider.e2e.test.js Feature : RTK compress 2026-04-22 15:36:51 +07:00
rtk.test.js Feature : RTK compress 2026-04-22 15:36:51 +07:00
rtkKiro.test.js feat(rtk): add Kiro format support for tool result compression (#1194) 2026-05-17 15:13:37 +07:00
translator-request-normalization.test.js fix: strip output_config for MiniMax (#820) 2026-05-01 16:16:01 +07:00
web-cookie-validation.test.js feat: add support for Grok Web and Perplexity Web providers 2026-04-22 11:58:53 +07:00
xai-oauth-service.test.js feat(xai): add xAI Grok provider with OAuth + API key auth + image 2026-05-21 11:33:18 +07:00
xai-tokenRefresh.test.js feat(xai): add xAI Grok provider with OAuth + API key auth + image 2026-05-21 11:33:18 +07:00