Commit Graph
304 Commits
Author SHA1 Message Date
Ibrahim Ryan 34013b5ab9 fix: externalize better-sqlite3 for Next.js standalone builds
Move better-sqlite3 to optionalDependencies so npm install doesn't
fail on platforms without native build tools. Add it to
serverExternalPackages so Next.js doesn't try to bundle the native
addon into webpack chunks.

Fixes #243
2026-03-18 16:25:48 +03:00
decolua 9877f32efa update submodule: dev pointer to latest
Made-with: Cursor
2026-03-17 16:14:29 +07:00
decolua 03ff35100d Feat : Kiro MITM 2026-03-17 16:12:25 +07:00
decolua 065761268c Feat : Kiro MITM 2026-03-17 16:11:58 +07:00
xmllist 2bec2e1801 Update Antigravity provider config and headers
- Simplify ANTIGRAVITY_HEADERS to dynamic User-Agent only
- Use IDE_TYPE, PLUGIN_TYPE enums and getPlatformEnum() in metadata
- Update antigravity baseUrl to sandbox endpoint
- Bump User-Agent version from 1.104.0 to 1.107.0
- Remove redundant header spread in AntigravityExecutor

Made-with: Cursor
2026-03-17 10:12:17 +07:00
B1nh M1nh 6546b162cc Make API key optional for MITM server
- Remove hard exit when ROUTER_API_KEY is missing
- Conditionally attach Authorization header only if API_KEY is set
- Allow MITM auto-start without requiring an active API key
- Fallback to default key when no active key is found

Made-with: Cursor
2026-03-17 09:38:19 +07:00
Peter Steinberger 11c6b0c42f Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility

Made-with: Cursor
2026-03-17 09:30:07 +07:00
decolua 62d7e61907 Fix MITM window 2026-03-16 09:27:26 +07:00
moophat 65af4328fd Add optional modelID input for custom API Key Providers testing (#315)
* feat: add modelId fallback for provider validation

- If /models endpoint unavailable, validate via /chat/completions
- Add optional Model ID input in EditCompatibleNodeModal
- Improves compatibility with providers lacking /models endpoint

* feat: improve provider validation with modelId fallback

- Add Model ID input for chat/completions fallback validation
- Reorder UI: API Key → Model ID → Check button + Badge
- Display detailed BE error messages in FE
- Add status-specific error handling (401/403/400/404/5xx)
- Add unit tests for error message helpers
- Add vitest devDependency
2026-03-16 09:21:05 +07:00
decolua 1dd5d60724 Fix : MITM 2026-03-14 23:59:22 +07:00
decolua f264bb9a23 Refactor error logging to provide clearer context on provider failures 2026-03-14 17:08:11 +07:00
Doan Minh Tu 2887b1d5a1 ci: add optimized Docker publish workflow from PR #281
- Add Docker build and publish workflow (trigger on v* tag push and manual dispatch only)
- Add Dependabot weekly updates for GitHub Actions versions
- Harden Dockerfile: non-root user, entrypoint permission fix, NEXT_TELEMETRY_DISABLED

Made-with: Cursor
2026-03-14 17:00:01 +07:00
decolua 00e7af010f Update version 2026-03-14 16:40:29 +07:00
decolua b98f4ce20e refactor: Fix MITM 2026-03-14 16:38:44 +07:00
moophat b3f330cf13 Merge branch 'decolua:master' into master 2026-03-14 15:42:17 +07:00
decolua 877eea8ebe chore: Update package version to 0.3.51 and improve connection handling in API route 2026-03-14 11:56:29 +07:00
decolua 6b624af4d0 fix: Update abort method in pipeWithDisconnect to return a promise for better error handling 2026-03-14 11:38:33 +07:00
Quan 39f651f5be feat: Add Google Cloud Vertex AI provider support (vertex, vertex-partner)
Co-authored-by: Quan <quanle96@outlook.com>
PR: https://github.com/decolua/9router/pull/298

Thanks to @kwanLeeFrmVi for the original implementation. Here is a summary
of changes made during review integration:

- Replaced google-auth-library with jose (already a project dependency)
  for SA JSON -> OAuth2 Bearer token minting (RS256 JWT assertion flow)
- Moved auth logic (parseSaJson, refreshVertexToken, token cache) from
  executor into open-sse/services/tokenRefresh.js to match project pattern
- Fixed executor to use proxyAwareFetch instead of raw fetch (proxy support)
- Simplified buildUrl: use global aiplatform.googleapis.com endpoint for
  both vertex (Gemini) and vertex-partner; removed region/modelFamily fields
- Added auto-detection of GCP project_id from raw API key via probe request
  (vertex-partner only, cached per key)
- Added vertex/vertex-partner cases to /api/providers/validate/route.js
- Updated model lists based on live testing:
  - vertex: gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview,
    gemini-3-flash-preview, gemini-2.5-flash (removed gemini-2.5-pro: 404)
  - vertex-partner: deepseek-v3.2, qwen3-next-80b (instruct+thinking),
    glm-5 (removed Mistral/Llama: not enabled in test project)
  - gemini provider: added gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview
- Removed bun.lock (project uses npm/package-lock.json)
- Removed region and modelFamily UI fields (global endpoint, auto-detect)
- Kiro token auto-refresh on AccessDeniedException (from commit 2)

Made-with: Cursor
2026-03-14 11:37:23 +07:00
decolua 05fc8e9ed9 Update version 2026-03-14 09:59:14 +07:00
decolua adae2605bf Feat : Auto restart after crash 2026-03-14 09:37:29 +07:00
decolua 549223c8cf Fix codex image 2026-03-13 14:47:40 +07:00
decolua f3e5c99e8c Update Version 2026-03-13 10:45:51 +07:00
decolua 399adca63d feat: Add support for local Ollama Local provider 2026-03-13 10:22:59 +07:00
Nick Roth 754a24d52a fix: SSE data: [DONE] sentinel + response_format for Claude via GitHub
- Guard data: [DONE] in github.js TransformStream with stream === true
- Inject response_format as system prompt for Claude models via GitHub executor

Note: stream.js guards skipped, createSSEStream is only called for true streaming paths.

Cherry-picked and adapted from PR #286 by @rothnic
https://github.com/decolua/9router/pull/286

Made-with: Cursor
2026-03-13 10:13:02 +07:00
Nick Roth d12b14f411 feat: AI SDK compatibility - Accept header & JSON markdown stripping
- Respect Accept: application/json header to return non-streaming JSON
  instead of SSE, fixing AI SDK generateObject/generateText compatibility
- Strip markdown code block markers (```json...```) from Claude
  non-streaming responses to prevent JSON parse errors

Cherry-picked and adapted from PR #290 by @rothnic
https://github.com/decolua/9router/pull/290

Made-with: Cursor
2026-03-13 10:00:47 +07:00
decolua 373b10ebb5 feat(chat): Enhance bypass handling and introduce CC filter naming feature
Fix : Ollam Provider response
2026-03-13 09:41:40 +07:00
decolua 4b5111974a Update version 2026-03-12 16:41:23 +07:00
Nick Roth 75270ea755 feat: Add OpenAI API response_format support for structured JSON output
Translates OpenAI response_format parameter into Claude-compatible system
prompt instructions, enabling structured JSON output for json_schema and
json_object types.

Co-authored-by: Nick Roth <nlr06886@gmail.com>
Made-with: Cursor
2026-03-12 16:30:47 +07:00
decolua b0c6b61398 Refactor config 2026-03-12 16:20:46 +07:00
decolua c893aeaa4d chore(package): bump version from 0.3.42 to 0.3.44 2026-03-12 15:58:19 +07:00
decolua 8223c87988 feat(memory-management): Introduce MEMORY_CONFIG for session and DNS management, including session TTL, cleanup intervals, and proxy dispatcher limits. 2026-03-12 15:57:21 +07:00
decolua 372b985ee9 fix(translator): Ensure loading state is reset after error handling in TranslatorPage 2026-03-12 15:45:41 +07:00
decolua 83d94daa82 feat(ollama): Enhance Ollama support by adding new models, updating API format handling, and integrating translation functionality. 2026-03-12 15:24:10 +07:00
decolua 32e3980a13 feat(ollama): Add Ollama provider support with models and configuration, including API endpoints and UI updates. 2026-03-12 15:24:02 +07:00
decolua a224f68e5c feat(kimi-coding): Added Kimi Coding to the list of supported OAuth providers with specific configuration. 2026-03-12 10:48:11 +07:00
decolua f1bf027c68 feat(usage): claude quota tracker 2026-03-12 09:42:17 +07:00
decolua fe49b61dfb feat: - Introduced per-provider strategy overrides in settings, allowing for more flexible connection management.
- Added new provider models: DeepSeek 3.1, DeepSeek 3.2, and Qwen3 Coder Next.
- Implemented UI changes to support round-robin strategy with sticky limits in the provider detail page.
- Improved logging to display connection names instead of IDs for better clarity.
2026-03-11 18:04:38 +07:00
Hưng Nguyễn 2470ef84de feat: add confbox dependency and refactor TOML parsing in codex settings (#282)
fix: update JSDoc for refreshAndUpdateCredentials return type
2026-03-11 17:00:49 +07:00
decolua d9dad5bcf3 Fix : Add custom to model selector 2026-03-11 11:59:07 +07:00
Doan Minh Tu 8c51edabcf fix(docker): use entrypoint to fix /app/data permissions on mounted volumes 2026-03-11 08:33:04 +07:00
Doan Minh Tu 9c757ff7d2 fix(docker): move data dir chown after COPY to fix EACCES permission error 2026-03-11 08:24:48 +07:00
Doan Minh Tu 5fc77fbf8c ci: trigger only on tag push, keep master trigger commented 2026-03-11 06:56:21 +07:00
Doan Minh Tu 91c1bc848e ci: harden Dockerfile and workflow security 2026-03-11 06:49:10 +07:00
Doan Minh Tu aa2b83e1f6 ci: add Docker build and publish workflow 2026-03-11 06:48:44 +07:00
decolua a501c05969 fix(api): improve access token handling during credential refresh 2026-03-10 16:38:32 +07:00
Peter Steinberger 31775393e6 feat(iflow): sync model list with CLIProxyAPI
Made-with: Cursor
2026-03-10 16:38:32 +07:00
Peter Steinberger 06a5307160 feat(gemini-cli): add proper User-Agent and X-Goog-Api-Client headers
Match native GeminiCLI client fingerprint to avoid upstream rejection.
Also fix base executor to call transformRequest before buildHeaders so
subclasses can store model context for header generation.

Made-with: Cursor
2026-03-10 16:38:32 +07:00
Hồ Khánh Duy 10b22d1318 update: claude code (cc) models pricing (#275) 2026-03-09 23:40:37 +07:00
luongquocloc8668@gmail.com 36f8a8ce16 feat(base): add 429 retry with fixed delay for all providers
Retry up to 2 times with 2s delay before falling back to next URL.

Made-with: Cursor
2026-03-09 17:36:16 +07:00
Xmllist 6437a1c55f refactor(claude-to-openai): simplify usage token calculation and final chunk assembly
Made-with: Cursor
2026-03-09 17:18:49 +07:00