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
Luis Pater and GitHub
9617a7b0d6
Merge pull request #621 from dacsang97/fix/antigravity-prompt-caching
...
Antigravity Prompt Caching Fix
2025-12-24 03:50:25 +08:00
Luis Pater and GitHub
7569320770
Merge branch 'dev' into fix/antigravity-prompt-caching
2025-12-24 03:49:46 +08:00
Luis Pater
6d1e20e940
fix(claude_executor): update header logic for API key handling
...
Refined header assignment to use `x-api-key` for Anthropic API requests, ensuring correct authorization behavior based on request attributes and URL validation.
2025-12-23 22:30:25 +08:00
Luis Pater and GitHub
e52b542e22
Merge pull request #684 from packyme/main
...
docs(readme): add PackyCode sponsor
2025-12-23 17:19:25 +08:00
Luis Pater
4e572ec8b9
fix(translators): handle string system instructions in Claude translators
...
Updated Antigravity, Gemini, and Gemini-CLI translators to process `systemResult` of type `string` for system instructions. Ensures properly formatted JSON with dynamic content assignment.
2025-12-23 08:44:36 +08:00
Luis Pater
24bc9cba67
Fixed : #639
...
fix(antigravity): validate function arguments before serialization
Ensure `function.arguments` is a valid JSON before setting raw bytes, fallback to setting as parameterized content if invalid.
2025-12-23 03:49:45 +08:00
Luis Pater
1084b53fba
Fixed : #655
...
refactor(antigravity): clean up tool key filtering and improve signature caching logic
2025-12-23 03:16:51 +08:00
Luis Pater
83b90e106f
refactor(antigravity): add sandbox URL constant and update base URLs routine
2025-12-23 02:47:56 +08:00
Luis Pater
5106caf641
Fixed : #654
...
feat: handle array input for system instructions in translators
Enhanced Gemini, Gemini-CLI, and Antigravity translators to process array content for system instructions. Adds support for assigning roles and handling multiple content parts dynamically.
2025-12-23 02:24:26 +08:00
Luis Pater
b84ccc6e7a
feat: add unit tests for routing strategies and implement dynamic selector updates
...
Added comprehensive tests for `FillFirstSelector` and `RoundRobinSelector` to ensure proper behavior, including deterministic, cyclical, and concurrent scenarios. Introduced dynamic routing strategy updates in `service.go`, normalizing strategies and seamlessly switching between `fill-first` and `round-robin`. Updated `Manager` to support selector changes via the new `SetSelector` method.
2025-12-22 22:52:23 +08:00
Luis Pater and GitHub
e19ddb53e7
Merge pull request #663 from jroth1111/feat/fill-first-selector
...
feat: add fill-first routing strategy
2025-12-22 22:26:32 +08:00
Luis Pater and GitHub
27b43ed63f
Merge pull request #658 from moxi000/fix-responses-convert
...
Fix responses-format handling for chat completions(Support Cursor)
2025-12-22 16:47:46 +08:00
Luis Pater
a86d501dc2
refactor: replace json.Marshal and json.Unmarshal with sjson and gjson
...
Optimized the handling of JSON serialization and deserialization by replacing redundant `json.Marshal` and `json.Unmarshal` calls with `sjson` and `gjson`. Introduced a `marshalJSONValue` utility for compact JSON encoding, improving performance and code simplicity. Removed unused `encoding/json` imports.
2025-12-22 11:44:06 +08:00
Luis Pater and GitHub
dbcbe48ead
Merge pull request #641 from router-for-me/url-OAuth-add-ter
...
OAuth and management
2025-12-21 17:25:24 +08:00
Luis Pater and GitHub
63908869f6
Merge pull request #611 from soilSpoon/feature/antigravity
...
feat(antigravity): Improve Claude model compatibility
2025-12-21 16:27:29 +08:00
Luis Pater
f6d625114c
feat(logging): revamp request logger to support streaming and temporary file spooling
...
This update enhances the `FileRequestLogger` by introducing support for spooling large request and response bodies to temporary files, reducing memory consumption. It adds atomic requestLogID generation for sequential log naming and new methods for non-streaming/streaming log assembly. Also includes better error handling during logging and temp file cleanups.
2025-12-21 16:17:48 +08:00
Luis Pater and GitHub
fcd6475377
Merge pull request #646 from router-for-me/amp
...
fix(amp): add /settings routes to proxy
2025-12-21 15:57:41 +08:00
Luis Pater
453e744abf
Fixed : #642
...
fix: remove unsupported fields `type` and `cache_control` across translators
2025-12-21 03:38:38 +08:00
Luis Pater
653439698e
Fixed : #606
...
fix: unify response field naming across translators
Standardize `text` to `delta` and add missing `output` field in all response payloads for consistency across OpenAI, Claude, and Gemini translators.
2025-12-21 03:13:58 +08:00
Luis Pater and GitHub
89254cfc97
Merge pull request #638 from neokotora/feat/add-gemini-3-flash
...
fix: add gemini-3-flash-preview model definition in GetGeminiModels
2025-12-20 23:36:57 +08:00
Luis Pater and GitHub
6bd9a034f7
Merge pull request #602 from ben-vargas/fix-antigravity-propertynames
...
fix: remove propertyNames from JSON schema for Gemini compatibility
2025-12-20 23:32:51 +08:00