Luis Pater
f571b1deb0
feat(config): add support for raw JSON payload rules
...
- Introduced `default-raw` and `override-raw` rules to handle raw JSON values.
- Enhanced `PayloadConfig` to validate and sanitize raw JSON payload rules.
- Updated executor logic to apply `default-raw` and `override-raw` rules.
- Extended example YAML to include usage of raw JSON rules.
2026-01-16 08:15:28 +08:00
Luis Pater and GitHub
67f8732683
Merge pull request #1033 from router-for-me/reasoning
...
Refactor thinking
2026-01-15 20:33:13 +08:00
Luis Pater
7248f65c36
feat(auth): prevent filestore writes on unchanged metadata
...
- Added `metadataEqualIgnoringTimestamps` to compare metadata while ignoring volatile fields.
- Prevented redundant writes caused by changes in timestamp-related fields.
- Improved efficiency in filestore operations by skipping unnecessary updates.
2026-01-15 14:05:23 +08:00
Luis Pater
086eb3df7a
refactor(auth): simplify file handling logic and remove redundant comparison functions
...
feat(auth): fetch and update Antigravity project ID from metadata during filestore operations
- Added support to retrieve and update `project_id` using the access token if missing in metadata.
- Integrated HTTP client to fetch project ID dynamically.
- Enhanced metadata persistence logic.
2026-01-15 13:29:14 +08:00
Luis Pater
5a7e5bd870
feat(auth): add Antigravity onboarding with tier selection
...
- Updated `ideType` to `ANTIGRAVITY` in request payload.
- Introduced tier-selection logic to determine default tier for onboarding.
- Added `antigravityOnboardUser` function for project ID retrieval via polling.
- Enhanced error handling and response decoding for onboarding flow.
2026-01-15 11:43:02 +08:00
Luis Pater
6f8a8f8136
feat(selector): add priority support for auth selection
2026-01-15 07:08:24 +08:00
Luis Pater
b163f8ed9e
Fixed : #1004
...
feat(translator): add function name to response output item serialization
- Included `item.name` in the serialized response output to enhance output item handling.
2026-01-15 03:27:00 +08:00
Luis Pater
a1da6ff5ac
Fixed : #499 #985
...
feat(oauth): add support for customizable OAuth callback ports
- Introduced `oauth-callback-port` flag to override default callback ports.
- Updated SDK and login flows for `iflow`, `gemini`, `antigravity`, `codex`, `claude`, and `openai` to respect configurable callback ports.
- Refactored internal OAuth servers to dynamically assign ports based on the provided options.
- Revised tests and documentation to reflect the new flag and behavior.
2026-01-14 04:29:15 +08:00
Luis Pater
43652d044c
refactor(config): replace nonstream-keepalive with nonstream-keepalive-interval
...
- Updated `SDKConfig` to use `nonstream-keepalive-interval` (seconds) instead of the boolean `nonstream-keepalive`.
- Refactored handlers and logic to incorporate the new interval-based configuration.
- Updated config diff, tests, and example YAML to reflect the changes.
2026-01-13 03:14:38 +08:00
Luis Pater
b1b379ea18
feat(api): add non-streaming keep-alive support for idle timeout prevention
...
- Introduced `StartNonStreamingKeepAlive` to emit periodic blank lines during non-streaming responses.
- Added `nonstream-keepalive` configuration option in `SDKConfig`.
- Updated handlers to utilize `StartNonStreamingKeepAlive` and ensure proper cleanup.
- Extended config diff and tests to include `nonstream-keepalive` changes.
2026-01-13 02:36:07 +08:00
Luis Pater
94e979865e
Fixed : #897
...
refactor(executor): remove `prompt_cache_retention` from request payloads
2026-01-12 10:46:47 +08:00
Luis Pater
6c324f2c8b
Fixed : #936
...
feat(cliproxy): support multiple aliases for OAuth model mappings
- Updated mapping logic to allow multiple aliases per upstream model name.
- Adjusted `SanitizeOAuthModelMappings` to ensure aliases remain unique within channels.
- Added test cases to validate multi-alias scenarios.
- Updated example config to clarify multi-alias support.
2026-01-12 10:40:34 +08:00
Luis Pater
543dfd67e0
refactor(cache): remove max entries logic and extend signature TTL to 3 hours
2026-01-12 00:20:44 +08:00
Luis Pater and GitHub
28bd1323a2
Merge pull request #971 from router-for-me/codex
...
feat(codex): add OpenCode instructions based on user agent
2026-01-11 16:01:13 +08:00
Luis Pater
8cfe26f10c
Merge branch 'sdk' into dev
2026-01-10 16:26:23 +08:00
Luis Pater and GitHub
80db2dc254
Merge pull request #955 from router-for-me/api
...
feat(codex): add subscription date fields to ID token claims
2026-01-10 16:26:07 +08:00
Luis Pater
e8e3bc8616
feat(executor): add HttpRequest support across executors for better http request handling
2026-01-10 16:25:25 +08:00
Luis Pater
bc3195c8d8
refactor(logger): remove unnecessary request details limit logic
2026-01-10 14:46:59 +08:00
Luis Pater
4d7f389b69
Fixed : #941
...
fix(translator): ensure fallback to valid originalRequestRawJSON in response handling
2026-01-10 01:01:09 +08:00
Luis Pater and GitHub
95f87d5669
Merge pull request #947 from pykancha/fix-memory-leak
...
Resolve memory leaks causing OOM in k8s deployment
2026-01-10 00:40:47 +08:00
Luis Pater and GitHub
c83365a349
Merge pull request #938 from router-for-me/log
...
refactor(logging): clean up oauth logs and debugs
2026-01-10 00:02:45 +08:00
Luis Pater and GitHub
6b3604cf2b
Merge pull request #943 from ben-vargas/fix-tool-mappings
...
Fix Claude OAuth tool name mapping (proxy_)
2026-01-09 23:52:29 +08:00
Luis Pater
af6bdca14f
Fixed : #942
...
fix(executor): ignore non-SSE lines in OpenAI-compatible streams
2026-01-09 23:41:50 +08:00
Luis Pater
ef6bafbf7e
fix(executor): handle context cancellation and deadline errors explicitly
2026-01-09 10:48:29 +08:00
Luis Pater
ed28b71e87
refactor(amp): remove duplicate comments in response rewriter
2026-01-09 08:21:13 +08:00
Luis Pater
d47b7dc79a
refactor(response): enhance parameter handling for Codex to Claude conversion
2026-01-09 05:20:19 +08:00
Luis Pater and GitHub
49b9709ce5
Merge pull request #787 from sususu98/fix/antigravity-429-retry-delay-parsing
...
fix(antigravity): parse retry-after delay from 429 response body
2026-01-09 04:45:25 +08:00
Luis Pater and GitHub
a2eba2cdf5
Merge pull request #763 from mvelbaum/feature/improve-oauth-use-logging
...
feat(logging): disambiguate OAuth credential selection in debug logs
2026-01-09 04:43:21 +08:00
Luis Pater and GitHub
3d01b3cfe8
Merge pull request #553 from XInTheDark/fix/builtin-tools-web-search
...
fix(translator): preserve built-in tools (web_search) to Responses API
2026-01-09 04:40:13 +08:00
Luis Pater and GitHub
af2efa6f7e
Merge pull request #605 from soilSpoon/feature/amp-compat
...
feature: Improves Amp client compatibility
2026-01-09 04:28:17 +08:00
Luis Pater and GitHub
d73b61d367
Merge pull request #901 from uzhao/vscode-plugin
...
Vscode plugin
2026-01-08 22:22:27 +08:00
Luis Pater
59a448b645
feat(executor): centralize systemInstruction handling for Claude and Gemini-3-Pro models
2026-01-08 21:05:33 +08:00
Luis Pater
1b2f907671
feat(executor): update system instruction handling for Claude and Gemini-3-Pro models
2026-01-08 12:42:26 +08:00
Luis Pater
bda04eed8a
feat(executor): add model-specific support for "gemini-3-pro" in execution and payload handling
2026-01-08 12:27:03 +08:00
Luis Pater
67985d8226
feat(executor): enhance Antigravity payload with user role and dynamic system instructions
2026-01-08 10:55:25 +08:00
Luis Pater
f4ba1ab910
fix(executor): remove unused tokenRefreshTimeout constant and pass zero timeout to HTTP client
2026-01-07 18:16:49 +08:00
Luis Pater
2662f91082
feat(management): add PostOAuthCallback handler to token requester interface
2026-01-07 10:47:32 +08:00
Luis Pater and GitHub
c1db2c7d7c
Merge pull request #888 from router-for-me/api-call-TOKEN-fix
...
fix(management): refresh antigravity token for api-call $TOKEN$
2026-01-07 01:19:24 +08:00
Luis Pater
f861bd6a94
docs: add 9Router to community projects in README
2026-01-06 23:15:28 +08:00
Luis Pater and GitHub
6dbfdd140d
Merge pull request #871 from decolua/patch-1
...
Update README.md
2026-01-06 22:58:53 +08:00
Luis Pater and GitHub
8f8dfd081b
Merge pull request #850 from can1357/main
...
feat(translator): add developer role support for Gemini translators
2026-01-05 11:27:24 +08:00
Luis Pater
9f1b445c7c
docs: add ProxyPilot to community projects in Chinese README
2026-01-05 11:23:48 +08:00
Luis Pater and GitHub
ae933dfe14
Merge pull request #858 from Finesssee/add-proxypilot
...
docs: add ProxyPilot to community projects
2026-01-05 11:20:52 +08:00
Luis Pater and GitHub
e124db723b
Merge pull request #862 from router-for-me/gemini
...
fix(gemini): abort default injection on existing thinking keys
2026-01-05 10:41:07 +08:00
Luis Pater
8edbda57cf
feat(translator): add thoughtSignature to node parts for Gemini and Antigravity requests
...
Enhanced node structure by including `thoughtSignature` for inline data parts in Gemini OpenAI, Gemini CLI, and Antigravity request handlers to improve traceability of thought processes.
2026-01-05 09:25:17 +08:00
Luis Pater and GitHub
ee33863b47
Merge pull request #857 from router-for-me/management-update
...
Management update
2026-01-04 18:07:13 +08:00
Luis Pater
7815ee338d
fix(translator): adjust message_delta emission boundary in Claude-to-OpenAI conversion
...
Fixed incorrect boundary logic for `message_delta` emission, ensuring proper handling of usage updates and `emitMessageStopIfNeeded` within the response loop.
2026-01-04 01:36:51 +08:00
Luis Pater
44b6c872e2
feat(config): add support for Fork in OAuth model mappings with alias handling
...
Implemented `Fork` flag in `ModelNameMapping` to allow aliases as additional models while preserving the original model ID. Updated the `applyOAuthModelMappings` logic, added tests for `Fork` behavior, and updated documentation and examples accordingly.
2026-01-04 01:18:29 +08:00
Luis Pater
7a77b23f2d
feat(executor): add token refresh timeout and improve context handling during refresh
...
Introduced `tokenRefreshTimeout` constant for token refresh operations and enhanced context propagation for `refreshToken` by embedding roundtrip information if available. Adjusted `refreshAuth` to ensure default context initialization and handle cancellation errors appropriately.
2026-01-04 00:26:08 +08:00
Luis Pater
672e8549c0
docs: reorganize README to adjust CodMate placement
...
Moved CodMate entry under ProxyPal in both English and Chinese README files for consistency in structure and better readability.
2026-01-03 21:31:53 +08:00
Luis Pater and GitHub
66f5269a23
Merge pull request #837 from loocor/main
...
docs: add CodMate to community projects
2026-01-03 21:30:15 +08:00
Luis Pater
ebec293497
feat(api): integrate TokenStore for improved auth entry management
...
Replaced file-based auth entry counting with `TokenStore`-backed implementation, enhancing flexibility and context-aware token management. Updated related logic to reflect this change.
2026-01-03 04:53:47 +08:00
Luis Pater
e02ceecd35
feat(registry): introduce ModelRegistryHook for monitoring model registrations and unregistrations
...
Added support for external hooks to observe model registry events using the `ModelRegistryHook` interface. Implemented thread-safe, non-blocking execution of hooks with panic recovery. Comprehensive tests added to verify hook behavior during registration, unregistration, blocking, and panic scenarios.
2026-01-02 23:18:40 +08:00
Luis Pater and GitHub
c8b33a8cc3
Merge pull request #824 from router-for-me/script
...
feat(script): add usage statistics preservation across container rebuilds
2026-01-02 20:42:25 +08:00
Luis Pater and GitHub
b9d1e70ac2
Merge pull request #830 from router-for-me/gemini
...
fix(util): disable default thinking for gemini-3 series
2026-01-02 10:59:24 +08:00
Luis Pater
2a663d5cba
feat(executor): enhance payload translation with original request context
...
Refactored `applyPayloadConfig` to `applyPayloadConfigWithRoot`, adding support for default rule validation against the original payload when available. Updated all executors to use `applyPayloadConfigWithRoot` and incorporate an optional original request payload for translations.
2026-01-02 00:03:26 +08:00
Luis Pater and GitHub
750b930679
Merge pull request #823 from router-for-me/translator
...
feat(translator): enhance Claude-to-OpenAI conversion with thinking block and tool result handling
2026-01-01 20:16:10 +08:00
Luis Pater and GitHub
6a66d32d37
Merge pull request #803 from HsnSaboor/fix-invalid-function-names-sanitization-v2
...
feat(translator): resolve invalid function name errors by sanitizing Claude tool names
2026-01-01 01:15:50 +08:00
Luis Pater
8d15723195
feat(registry): add GetAvailableModelsByProvider method for retrieving models by provider
2025-12-31 23:37:46 +08:00
Luis Pater
e998b1229a
feat(updater): add fallback URL and logic for missing management asset
2025-12-31 11:51:20 +08:00
Luis Pater
bbed134bd1
feat(api): add GetAuthStatus method to ManagementTokenRequester interface
2025-12-31 09:40:48 +08:00
Luis Pater
c6b0e85b54
Fixed : #790
...
fix(gemini): include full text in response output events
2025-12-30 20:44:13 +08:00
Luis Pater and GitHub
9fa2a7e9df
Merge pull request #782 from router-for-me/modelmappings
...
refactor(config): rename model-name-mappings to oauth-model-mappings
2025-12-30 11:40:12 +08:00
Luis Pater
f6ab6d97b9
fix(logging): add isDirWritable utility to enhance log dir validation in ConfigureLogOutput
2025-12-30 10:48:25 +08:00
Luis Pater
bc866bac49
fix(logging): refactor ConfigureLogOutput to accept config object and adjust log directory handling
2025-12-30 10:28:25 +08:00
Luis Pater
50e6d845f4
feat(cliproxy): introduce global model name mappings for improved aliasing and routing
2025-12-30 08:13:06 +08:00
Luis Pater and GitHub
a8cb01819d
Merge pull request #772 from soffchen/main
...
fix: Implement fallback log directory for file logging on read-only system
2025-12-30 02:24:49 +08:00
Luis Pater and GitHub
530273906b
Merge pull request #776 from router-for-me/fix-ag-claude
...
fix(antigravity): inject required placeholder when properties exist w…
2025-12-30 00:37:01 +08:00
Luis Pater
d8fc485513
fix(translators): correct key path for system_instruction.parts in Claude request logic
2025-12-29 11:54:26 +08:00
Luis Pater
ee171bc563
feat(api): add ManagementTokenRequester interface for management token request endpoints
2025-12-29 02:42:29 +08:00
Luis Pater and GitHub
457924828a
Merge pull request #757 from ben-vargas/fix-thinking-toolchoice-conflict
...
Fix: disable thinking when tool_choice forces tool use
2025-12-28 14:04:30 +08:00
Luis Pater
ade7194792
feat(management): add generic API call handler to management endpoints
2025-12-28 04:40:32 +08:00
Luis Pater
3a436e116a
feat(cliproxy): implement model aliasing and hashing for Codex configurations, enhance request routing logic, and normalize Codex model entries
2025-12-28 03:06:51 +08:00
Luis Pater and GitHub
336867853b
Merge pull request #756 from leaph/check-ai-thinking-settings
...
feat(iflow): add model-specific thinking configs for GLM-4.7 and Mini…
2025-12-28 02:08:27 +08:00
Luis Pater and GitHub
d222469b44
Update issue templates
2025-12-28 01:22:42 +08:00
Luis Pater
7646a2b877
Fixed : #749
...
fix(translators): ensure `gjson.String` content is non-empty before setting `parts` in OpenAI request logic
2025-12-28 00:54:26 +08:00
Luis Pater and GitHub
62090f2568
Merge pull request #750 from router-for-me/config
...
fix(config): preserve original config structure and avoid default value pollution
2025-12-27 22:10:01 +08:00
Luis Pater
c281f4cbaf
Fixed : #747
...
fix(translators): rename and integrate `usageMetadata` as `cpaUsageMetadata` in Claude processing logic
2025-12-27 22:02:11 +08:00
Luis Pater and GitHub
3f50da85c1
Merge pull request #745 from router-for-me/auth
...
fix(auth): make provider rotation atomic
2025-12-27 13:01:22 +08:00
Luis Pater
72274099aa
Fixed : #738
...
fix(translators): refine prompt token calculation by incorporating cached tokens in Claude response handling
2025-12-27 03:56:11 +08:00
Luis Pater
dcae098e23
Fixed : #736
...
fix(translators): handle gjson string types in Claude request processing to ensure consistent content parsing
2025-12-27 01:25:47 +08:00
Luis Pater and GitHub
2eb05ec640
Merge pull request #727 from nguyenphutrong/main
...
docs: add Quotio to community projects
2025-12-26 11:53:09 +08:00
Luis Pater
3ce0d76aa4
feat(usage): add import/export functionality for usage statistics and enhance deduplication logic
2025-12-26 11:49:51 +08:00
Luis Pater
33e53a2a56
fix(translators): ensure correct handling and output of multimodal assistant content across request handlers
2025-12-26 05:08:04 +08:00
Luis Pater and GitHub
cd5b80785f
Merge pull request #722 from hungthai1401/bugfix/remove-extra-args
...
Fixed incorrect function signature call to `NewBaseAPIHandlers`
2025-12-26 02:56:56 +08:00
Luis Pater and GitHub
3f949b7f84
Merge pull request #704 from tinyc0der/add-index
...
fix(openai): add index field to image response for LiteLLM compatibility
2025-12-25 21:35:12 +08:00
Luis Pater
443c4538bb
feat(config): add commercial-mode to optimize HTTP middleware for lower memory usage
2025-12-25 21:05:01 +08:00
Luis Pater
8e749ac22d
docs(readme): update GLM model version from 4.6 to 4.7 in README and README_CN
2025-12-24 23:59:48 +08:00
Luis Pater
69e09d9bc7
docs(readme): update GLM model version from 4.6 to 4.7 in README and README_CN
2025-12-24 23:46:27 +08:00
Luis Pater
06ad527e8c
Fixed : #696
...
fix(translators): adjust prompt token calculation by subtracting cached tokens across Gemini, OpenAI, and Claude handlers
2025-12-24 23:29:18 +08:00
Luis Pater and GitHub
b7409dd2de
Merge pull request #706 from router-for-me/log
...
Log
2025-12-24 22:24:39 +08:00
Luis Pater and GitHub
d502840f91
Merge pull request #695 from NguyenSiTrung/main
...
feat: add cached token parsing for Gemini , Antigravity API responses
2025-12-24 21:58:55 +08:00
Luis Pater and GitHub
3faa1ca9af
Merge pull request #700 from router-for-me/log
...
refactor(sdk/auth): rename manager.go to conductor.go
2025-12-24 19:36:24 +08:00
Luis Pater
9d975e0375
feat(models): add support for GLM-4.7 and MiniMax-M2.1
2025-12-24 19:30:57 +08:00
Luis Pater and GitHub
5dc0dbc7aa
Merge pull request #697 from Cubence-com/main
...
docs(readme): add Cubence sponsor and fix PackyCode link
2025-12-24 11:19:32 +08:00
Luis Pater and GitHub
2b7ba54a2f
Merge pull request #688 from router-for-me/feature/request-id-tracking
...
feat(logging): implement request ID tracking and propagation
2025-12-24 10:54:13 +08:00
Luis Pater and GitHub
c06ac07e23
Merge pull request #686 from ajkdrag/main
...
feat: regex support for model-mappings
2025-12-24 04:37:44 +08:00
Luis Pater
66769ec657
fix(translators): update role from tool to user in Gemini and Gemini-CLI requests
2025-12-24 04:24:07 +08:00
Luis Pater
f413feec61
refactor(handlers): streamline error and data channel handling in streaming logic
...
Improved consistency across OpenAI, Claude, and Gemini handlers by replacing initial `select` statement with a `for` loop for better readability and error-handling robustness.
2025-12-24 04:07:24 +08:00
Luis Pater and GitHub
2e538e3486
Merge pull request #661 from jroth1111/fix/streaming-bootstrap-forwarder
...
fix: improve streaming bootstrap and forwarding
2025-12-24 03:51:40 +08:00