decolua
b10b807063
# v0.5.20 (2026-07-07)
...
## Features
- **Thinking**: per-model thinking level picker on provider page — appends `(level)` suffix to copied model names for forced reasoning effort across all formats (openai, claude, gemini, deepseek, kimi, qwen, zai, minimax, hunyuan, step)
- **RTK**: add JS-native git-log filter (#2423 )
- **Caveman**: add targeted upstream-aligned style rules (#2424 )
- **i18n**: add Farsi (fa) language support (#2385 )
## Fixes
- **Thinking**: strip `(level)` suffix from upstream `body.model` so providers no longer reject requests
- **Translator**: preserve developer instructions in openai-responses conversion (#2434 )
- **count_tokens**: count structured Anthropic blocks (#2419 )
- **Volcengine-ark**: clamp GLM-5 max_tokens to model output ceiling (#2428 )
- **Kimi**: normalize reasoning_effort to backend enum (#2427 )
- **Claude**: reconcile max_tokens vs thinking budget and lift per-model ceiling (#2381 )
- **Kiro**: deliver system prompt natively, add Opus 4.5/4.7/4.8, tolerate dash version ids (#2366 )
- **Headroom**: proxy dashboard through app (#2372 )
- **MITM**: recover from stale lock file on server start
2026-07-07 16:29:11 +07:00
VitzS7 and Cursor
5041494e1c
fix(kiro): deliver system prompt natively, add Opus 4.5/4.7/4.8, tolerate dash version ids ( #2366 )
...
- Pass system prompt via native systemInstruction field (+ <instructions> fallback)
so Claude models stop treating it as info-only <system-reminder>
- Add Opus 4.5/4.7/4.8 (base/thinking/agentic/thinking+agentic) to Kiro registry
- normalizeModelId(): dash->dot version separator, scoped to Kiro provider only
- Replace <system-reminder> with <instructions> in claude-to-openai/openai-to-kiro
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-05 17:34:04 +07:00
decolua and Cursor
dd1e0f9bcc
refactor(registry): B2 migrate to LiteLLM-style schema — unified models[] with kind field
...
- 71 registry files: flat `media.*Config.models` → `models[]` with `kind` field
- `media` wrapper removed → serviceKinds, *Config fields promoted top-level
- `type` field renamed to `kind` (llm/image/tts/stt/embedding/embedding/video/music)
- providers/index.js: PROVIDER_MEDIA now built from flat top-level media fields
- shared/constants/providers.js: buildProviderEntry reads flat top-level media fields
- route /v1/models: modelKind() uses kind||type; removed subConfig merge block
- models/info route: removed sub-config fallback lookup (all models in PROVIDER_MODELS)
- ttsProviders/index.js: synthesizeViaConfig reads tts models from PROVIDER_MODELS
- test-models route, helpers.js, validate route: kind||type compat
- Baselines: PROVIDERS 62/62 ✅ , Alias 90/90 ✅
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-14 14:32:59 +07:00
decolua and Cursor
bb9e9aa91f
refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup
...
- Single-source registry: oauth clientId/tokenUrl, usage URLs, image/embed
configs, search defaultModel, codex fixedPort, google token url derive.
- Remove 29 unused OmniRoute providers (registry 100→71); media intact.
- De-adhoc: codex literals → registry format/oauth flags; reasoningInject,
image/embed openrouter headers + xai bodyFields config-driven.
- Add REGISTRY_TEMPLATE.js + expand PROVIDER_DEFAULTS/schema JSDoc.
- Baselines updated; PROVIDERS 62 + alias 90 byte-for-byte, golden snapshots.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-14 13:15:48 +07:00
decolua and Cursor
d2b0960bf7
refactor(open-sse): P3§7 model defaults schema — centralize type/quotaFamily/strip/targetFormat
...
- Add providers/models/schema.js (MODEL_DEFAULTS + field resolvers)
- Accessors getModelTargetFormat/QuotaFamily/Strip use shared default resolvers
- getModelType keeps null contract unchanged; behavior verified equal
- No catalog forced into registry (models stay self-contained per docs decision)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 21:13:37 +07:00
decolua and Cursor
5a042840fd
refactor(open-sse): P3 provider registry — split into providers/registry/{id}.js
...
- 100 registry files: transport + models co-located per provider (Mongoose-style)
- providers/shared.js: shared Claude headers + OS/arch helpers (deduped)
- providers/models/helpers.js: withCodexReviewModels (kept dynamic)
- providers/index.js builds PROVIDERS + PROVIDER_MODELS = old API (content byte-for-byte)
- config/providers.js + providerModels.js → barrel re-export, keep accessors + runtime helpers
- Verified: PROVIDERS/MODELS/OAuth/alias byte-for-byte, golden translator tests pass, 0 new regression
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 21:08:37 +07:00
decolua and Cursor
7134dd71db
refactor(open-sse): P2 alias single-source — derive OAuth alias→id from OAUTH_ALIASES
...
- Export OAUTH_ALIASES as canonical id→alias source
- model.js derives 16 OAuth alias→id pairs instead of hardcoding (mmf kept out to preserve behavior)
- Add verify-alias.mjs byte-for-byte guard (133 tokens), all equal
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 20:48:11 +07:00
Phuc Le and Cursor
e6bac77696
fix(siliconflow): update baseUrl .cn -> .com + curate verified model list
...
Switch all siliconflow endpoints from api.siliconflow.cn to .com (chat,
validate, test, models) — the .cn host rejected valid .com-issued keys.
Replace the model list with 13 strong models verified live against the API.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 11:37:36 +07:00
Fadjrir Herlambang and Cursor
b40e96d0ef
feat(provider): add MiMo Free no-auth provider
...
Bootstrap → JWT → chat flow with auto-retry. Inject the MiMoCode
system marker required to pass the upstream 403 anti-abuse gate,
derive JWT expiry from the exp claim, and use a stable per-machine
fingerprint as the bootstrap client.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 10:14:21 +07:00
Giao Ho and Cursor
0850f0a470
fix(mitm): Kiro binary EventStream crash + add models & TTS tool filtering
...
- server.js: isBinaryData() skips binary AWS EventStream bodies (fix JSON parse crash)
- kiro.js: isBinaryEventStream detection + migrate to pipeTransformedEventStream pipeline
- base.js: add pipeTransformedSSE / pipeTransformedEventStream helpers
- chatCore.js: filter tool messages + tools for TTS models via getModelType()
- providerModels.js: add getModelType()
- cliTools.js: add gpt-5-mini (Copilot), glm-5 & minimax-m2.5 (Kiro)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 11:31:52 +07:00
therunnas and Cursor
61d546627e
fix(qoder): allow qmodel_latest model key
...
- Add qmodel_latest to QODER_MODEL_MAP
- Expose qmodel_latest in static Qoder provider catalog (qd)
- Generalize executor comment so model set does not go stale
- Add unit coverage for the new model key + catalog
Closes #1638
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 10:44:37 +07:00
AbdoKnbGit and Cursor
e6c09aad15
feat(antigravity): add gemini-3.5-flash-extra-low (Low) model
...
- Add gemini-3.5-flash-extra-low across CLI menu, provider models, usage, pricing
- Add MITM synonyms (high/medium/extra-low) and split pattern so Low no longer falls through to Medium
- Strip models/ prefix in getMappedModel for AG public name normalization
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 10:42:47 +07:00
Mr_NoboDy and Cursor
40cfa63eb8
feat(xiaomi-tokenplan): add Claude-native MiMo V2.5 Pro alias via dedicated executor
...
Add mimo-v2.5-pro-claude alias routing to the Xiaomi TokenPlan Anthropic-compatible
/anthropic/v1/messages endpoint. Logic lives in a dedicated XiaomiTokenplanExecutor
(config-driven via targetFormat) instead of the shared DefaultExecutor.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 10:36:03 +07:00
41f94ce8c8
fix(minimax): Bổ sung MiniMax-M3 + cập nhật Quota Tracker coding/CN
...
Squash-merge PR #1631 (decolua/9router) — chỉ lấy file code + test, bỏ docs.
- feat(minimax): add MiniMax-M3 to intl + cn provider models (targetFormat claude)
- feat(minimax): add MiniMax-M3 pricing entry
- fix(minimax): translate Claude body khi content=null (M3 thinking-only)
- fix(minimax): hiển thị quota M-series bucket "general"/"MiniMax-M*" + percent-only
- test: minimax usage / model registration / pricing
Co-Authored-By: Claude <noreply@anthropic.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 10:01:05 +07:00
Simon Shi
53c0eefa00
chore(qoder): rename display label from "Qoder AI" to "Qoder"
2026-05-29 17:36:27 +07:00
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
decolua
468c61b2ac
Added new models for Claude Opus 4.8 and GPT 5.4 Mini.
...
Disabled Cowork
2026-05-29 17:36:27 +07:00
decolua
146310a3a3
Fix Bug
2026-05-26 23:09:19 +07:00
YourAnsh and Ansh7473
2604b46847
fix ( #1361 )
...
Co-authored-by: Ansh7473 <Ansh7473@users.noreply.github.com >
2026-05-23 09:26:10 +07:00
Muhammad Mugni Hadi and Cursor
d976f4cc87
feat(xai): add xAI Grok provider with OAuth + API key auth + image
...
Adapted from PR #1286 (mugnimaestra/feat/xai-grok-provider) to match
existing app architecture. Includes:
- OAuth 2.0 with PKCE on loopback port 56121 (Grok Build)
- API key auth path (console.x.ai)
- Token refresh wiring (open-sse + sse tokenRefresh)
- Dashboard OAuth modal with fixed-port flow + manual code fallback
- Provider registry entries (OAuth + API key)
- xAI image generation via OpenAI-compatible adapter
(grok-2-image-1212 model, no size/quality/style params)
Excludes (intentionally, to match app patterns):
- Custom xAI Responses executor (DefaultExecutor handles /chat/completions)
- xAI-specific translators (app uses OpenAI as intermediate format)
- Image edits (not supported by current imageGenerationCore)
- Video endpoints (app has no video subsystem yet)
- CLI xai-login command
Refs decolua#1286
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-21 11:33:18 +07:00
decolua
4a575f21a2
https://github.com/decolua/9router/pull/1167
...
https://github.com/decolua/9router/pull/1166
2026-05-16 11:20:08 +07:00
decolua
d26db17f5f
Add xiaomi token plan provider
2026-05-15 10:29:25 +07:00
Aqil Aziz
da00a25eef
feat: add DeepSeek V4 Pro effort aliases ( #950 )
2026-05-14 10:39:34 +07:00
Aleksei
ea44ca049e
Add Codex GPT 5.5 image support ( #991 )
2026-05-12 09:26:13 +07:00
decolua
8f4d29caa4
# v0.4.30 (2026-05-11)
...
## Features
- MCP stdio→SSE bridge: expose local stdio MCP plugins over SSE (api/mcp/[plugin]/sse, /message)
- Dynamic Linux cert resolution + NSS DB injection (Debian/Arch/Fedora/openSUSE, Chrome/Chromium/Firefox incl. snap) (#1010 )
- Cowork tool: expanded settings UI & API
- GitBook docs (DocsContent, DocsLayout)
## Fixes
- OAuth callback postMessage scoped to expected origins (CWE-1385) (#998 )
- Re-enable TLS verification on DNS-bypass fetch (CWE-295) (#998 )
- Normalize `developer` role → `system` for OpenAI-format providers (Deepseek, Groq, …) (#1011 , closes #773 )
- Respect `PORT` env in internal model-test fetch (#1014 )
- Dropdown text readability in dark theme on usage page (#997 )
## Improvements
- Refactor Claude CLI spoof headers into shared constant
- Tool deduper utility in open-sse handlers
2026-05-12 09:19:50 +07:00
Tran Long and smarthomeblack
c734913b3f
Update DeepSeek model pricing and add V4 Pro ( #938 )
...
Update all DeepSeek model prices to match current V4 Flash pricing
($0.14/$0.28 per 1M input/output tokens), and add V4 Pro model with
its own pricing ($0.435/$0.87). Also add deepseek-v4-pro to the
provider model list.
Co-authored-by: smarthomeblack <truongbber@gmail.com >
2026-05-09 10:11:39 +07:00
Aleksei
787d248030
Add Cloudflare Workers AI image generation ( #973 )
2026-05-09 09:53:39 +07:00
decolua
b72a443bd3
feat: add CommandCode provider support
2026-05-07 23:01:33 +07:00
decolua
d4bc42e1f5
feat: add STT support, Gemini TTS, and expand usage tracking
...
- Speech-to-Text: full pipeline with sttCore handler, /v1/audio/transcriptions
endpoint, sttConfig for OpenAI, Gemini, Groq, Deepgram, AssemblyAI,
HuggingFace, NVIDIA Parakeet; new 9router-stt skill
- Gemini TTS: add gemini provider with 30 prebuilt voices and TTS_PROVIDER_CONFIG
- Usage: implement GLM (intl/cn) and MiniMax (intl/cn) quota fetchers; refactor
Gemini CLI usage to use retrieveUserQuota with per-model buckets
- Disabled models: lowdb-backed disabledModelsDb + /api/models/disabled route
- Header search: reusable Zustand store (headerSearchStore) wired into Header
- CLI tools: add Claude Cowork tool card and cowork-settings API
- Providers: introduce mediaPriority sorting in getProvidersByKind, add
Kimi K2.6, reorder hermes, drop qwen STT kind
- UI: expand media-providers/[kind]/[id] page (+314), enhance OAuthModal,
ModelSelectModal, ProviderTopology, ProxyPools, ProviderLimits
- Assets: refresh provider PNGs (alicode, byteplus, cloudflare-ai, nvidia,
ollama, vertex, volcengine-ark) and add aws-polly, fal-ai, jina-ai, recraft,
runwayml, stability-ai, topaz, black-forest-labs
2026-05-05 10:32:59 +07:00
decolua
9c6be62a54
Feat : Skills
2026-05-04 11:29:02 +07:00
Rezky Hamid
a463ee00ff
feat(codex): add review model quota support ( #836 )
2026-05-03 14:57:33 +07:00
Zhen and Delynn Assistant
14ff538f2e
Improve mobile layouts and restore Cloudflare provider ( #840 )
...
Co-authored-by: Delynn Assistant <zhen@dkzhen.org >
2026-05-03 14:55:43 +07:00
decolua
b0da7c1211
Add Xiaomi MiMo provider support
...
- Introduced Xiaomi MiMo as a new provider in providerModels.js and providers.js.
- Updated model alias mapping in model.js to include Xiaomi MiMo.
- Enhanced validation route to support Xiaomi MiMo API endpoints.
- Added Xiaomi MiMo to APIKEY_PROVIDERS with relevant details.
This update expands the range of supported providers, improving integration capabilities.
2026-05-01 16:32:25 +07:00
thuanhuynhh
9ca388972c
Update providerModels.js ( #818 )
...
KIMI K2.5 will be deprecated on 05/05/2026. Update latest Minimax version
2026-05-01 16:20:40 +07:00
decolua
512e3de371
Update version to 0.4.9, enhance README with Trendshift badge, and add new embedding models to providerModels.js. Refactor TTS handling to support additional providers and improve API key validation for media providers.
2026-04-29 11:34:39 +07:00
decolua
1bb621317d
Add Cloudflare AI provider support and enhance connection management
...
- Introduced Cloudflare AI as a new provider with specific configurations in providerModels.js and providers.js.
- Updated DefaultExecutor to handle account ID resolution for Cloudflare AI connections.
- Enhanced AddApiKeyModal and EditConnectionModal to include account ID input for Cloudflare AI.
- Implemented validation for Cloudflare AI API key connections in testUtils.js and route.js.
- Updated UI components to reflect changes in provider management and connection handling.
2026-04-28 11:07:39 +07:00
decolua
83418e8a9d
Add codex to image providers
2026-04-25 17:01:40 +07:00
decolua
14ff69bf90
- Added BytePlus Provider
2026-04-25 17:00:39 +07:00
decolua
0b8bed5793
Enhance image and embedding provider support
...
- Added new image models for GPT 5.2, 5.3, and 5.4, including capabilities for text-to-image and editing.
- Updated embedding handling to include optional dimensions in requests.
- Introduced support for custom embedding providers, allowing dynamic fetching and validation of custom nodes.
- Improved image generation handling with Codex integration, including progress tracking and error handling.
- Enhanced UI components to support adding custom embeddings and displaying their status.
2026-04-25 16:22:30 +07:00
decolua
cca615eaff
- Cap maximum cooldown for rate limit handling in account unavailability and single-model chat flows
...
- Dynamic custom model fetching for model selection
2026-04-24 16:14:18 +07:00
decolua
5abc9e5c74
add GPT 5.5 model
2026-04-24 09:51:05 +07:00
kenlin and kingsy
f2e7a98ce0
feat: add built-in Volcengine Ark provider support ( #741 )
...
Add Volcengine Ark as a first-class API key provider with official model presets, endpoint configuration, API key validation, model discovery, connection testing, provider logo, and runtime alias mapping for `ark/*` model IDs.
Made-with: Cursor
Co-authored-by: kingsy <kingsylin@vip.qq.com >
2026-04-24 09:28:50 +07:00
decolua
45731ae639
feat: add OpenCode Go provider and support for custom models
...
- Introduced OpenCode Go provider with relevant configurations.
- Enhanced model management by allowing users to add and delete custom models.
- Updated UI components to support model selection for image types.
- Adjusted sidebar visibility to include image media kinds.
2026-04-22 14:16:21 +07:00
decolua
abb04c5366
feat: add support for Grok Web and Perplexity Web providers
2026-04-22 11:58:53 +07:00
decolua
eeb2dc9e30
fix(providerModels): remove deprecated DeepSeek 3.1 entry from provider models
2026-04-22 10:47:38 +07:00
Bexultan
4b9a955c4b
chore: refresh provider model list ( #723 )
2026-04-22 09:57:52 +07:00
Anurag Saxena
3badf1cbb6
fix: add Blackbox AI as a supported provider ( closes #599 ) ( #630 )
...
* fix: add multi-model support for Factory Droid CLI tool (closes #521 )
* Add Claude Opus 4.7 to cc and cl provider lists
RESEARCH confirmed GA release April 16, 2026. Adding to:
- cc (Claude Code): claude-opus-4-7
- cl (Cline): anthropic/claude-opus-4.7
Refs: TICKET-20260416-ENG-O4.7-001
* fix: add Blackbox AI as a supported provider (closes #599 )
2026-04-17 12:06:00 +07:00
Anurag Saxena
aa67198e75
fix: add GLM-5 and MiniMax-M2.5 models to Kiro provider ( closes #580 ) ( #611 )
2026-04-17 12:02:07 +07:00
decolua
b669b6ffc1
Refactor error handling to config-driven approach with centralized error rules
...
Made-with: Cursor
2026-04-15 11:46:47 +07:00
decolua
4c28a1671d
Enhance provider models and chat handling with new thinking configurations
2026-04-13 12:04:57 +07:00