Luis Pater
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
hkfires
8bf3305b2b
fix(thinking): fallback to upstream model for thinking support when alias not in registry
2025-12-31 18:07:13 +08:00
hkfires
d00e3ea973
feat(thinking): add numeric budget to thinkingLevel conversion fallback
2025-12-31 17:14:47 +08:00
hkfires
89db4e9481
fix(thinking): use model alias for thinking config resolution in mapped models
2025-12-31 17:09:22 +08:00
hkfires
e332419081
feat(registry): add thinking support for gemini-2.5-computer-use-preview model
2025-12-31 17:09:22 +08:00
Luis Pater
e998b1229a
feat(updater): add fallback URL and logic for missing management asset
2025-12-31 11:51:20 +08:00
Saboor Hassan
47b9503112
chore: revert changes to internal/translator to comply with path guard
...
This commit reverts all modifications within internal/translator. A separate issue
will be created for the maintenance team to integrate SanitizeFunctionName into
the translators.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-31 02:19:26 +05:00
Saboor Hassan
3b9253c2be
fix(translator): resolve invalid function name errors by sanitizing Claude tool names
...
This commit centralizes tool name sanitization in SanitizeFunctionName,
applying character compliance, starting character rules, and length limits.
It also fixes a regression in gemini_schema tests and preserves MCP-specific
shortening logic while ensuring compliance.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-31 02:14:46 +05:00
Saboor Hassan
d241359153
fix(translator): address PR feedback for tool name sanitization
...
- Pre-compile sanitization regex for better performance.
- Optimize SanitizeFunctionName for conciseness and correctness.
- Handle 64-char edge cases by truncating before prepending underscore.
- Fix bug in Antigravity translator (incorrect join index).
- Refactor Gemini translators to avoid redundant sanitization calls.
- Add comprehensive unit tests including 64-char edge cases.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-31 01:54:41 +05:00
Saboor Hassan
f4d4249ba5
feat(translator): sanitize tool/function names for upstream provider compatibility
...
Implemented SanitizeFunctionName utility to ensure Claude tool names meet
Gemini/Upstream strict naming conventions (alphanumeric, starts with letter/underscore, max 64 chars).
Applied sanitization to tool definitions and usage in all relevant translators.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-31 01:41:07 +05:00
hkfires
e0381a6ae0
refactor(watcher): extract model summary functions to dedicated file
2025-12-30 22:39:12 +08:00
hkfires
2c01b2ef64
feat(watcher): add Gemini models and OAuth model mappings change detection
2025-12-30 22:39:12 +08:00
Chén Mù
e947266743
Merge pull request #795 from router-for-me/modelmappings
...
refactor(executor): resolve upstream model at conductor level before execution
2025-12-30 05:31:19 -08:00
Luis Pater
c6b0e85b54
Fixed : #790
...
fix(gemini): include full text in response output events
2025-12-30 20:44:13 +08:00
hkfires
26efbed05c
refactor(executor): remove redundant upstream model parameter from translateRequest
2025-12-30 20:20:42 +08:00
hkfires
96340bf136
refactor(executor): resolve upstream model at conductor level before execution
2025-12-30 19:31:54 +08:00
hkfires
b055e00c1a
fix(executor): use upstream model for thinking config and payload translation
2025-12-30 17:49:44 +08:00
hkfires
ce7474d953
feat(cliproxy): propagate thinking support metadata to aliased models
2025-12-30 15:16:54 +08:00
hkfires
70fdd70b84
refactor(cliproxy): extract generic buildConfigModels function for model info generation
2025-12-30 13:35:22 +08:00
hkfires
08ab6a7d77
feat(gemini): add per-key model alias support for Gemini provider
2025-12-30 13:27:57 +08:00
hkfires
d443c86620
refactor(config): rename model mapping fields from from/to to name/alias
2025-12-30 11:07:59 +08:00
hkfires
7be3f1c36c
refactor(config): rename model-name-mappings to oauth-model-mappings
2025-12-30 11:07:58 +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
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
Supra4E8C
06ddf575d9
fix(antigravity): inject required placeholder when properties exist without required
2025-12-29 23:55:59 +08:00
hkfires
3099114cbb
refactor(api): simplify codex id token claims extraction
2025-12-29 19:48:02 +08:00
Soff
44b63f0767
fix: Return an error if the user home directory cannot be determined for the fallback log path.
2025-12-29 18:46:15 +08:00
Soff Chen
6705d20194
fix: Implement fallback log directory for file logging on read-only systems.
2025-12-29 18:35:48 +08:00
hkfires
8286caa366
feat(api): add id token claims extraction for codex auth entries
2025-12-29 16:34:16 +08:00
hkfires
225e2c6797
feat(amp): add per-client upstream API key mapping support
2025-12-29 12:26:25 +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
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
Ben Vargas
aca2ef6359
Fix: disable thinking when tool_choice forces tool use
...
Anthropic API does not allow extended thinking when tool_choice is set
to "any" or a specific tool. This was causing 400 errors when using
features like Amp's /handoff command which forces tool_choice.
Added disableThinkingIfToolChoiceForced() that removes thinking config
when incompatible tool_choice is detected, applied to both streaming
and non-streaming paths.
Fixes router-for-me/CLIProxyAPI#630
2025-12-27 16:31:37 -07: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
leaph
6403ff4ec4
feat(iflow): add model-specific thinking configs for GLM-4.7 and MiniMax-M2.1
...
- GLM-4.7: Uses extra_body={"thinking": {"type": "enabled"}, "clear_thinking": false}
- MiniMax-M2.1: Uses reasoning_split=true for OpenAI-style reasoning separation
- Added preserveReasoningContentInMessages() to support re-injection of reasoning
content in assistant message history for multi-turn conversations
- Added ThinkingSupport to MiniMax-M2.1 model definition
2025-12-27 18:39:15 +01: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
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
hkfires
09455f9e85
fix(config): make streaming keepalive and retries ints
2025-12-27 20:56:47 +08:00
hkfires
c8e72ba0dc
fix(config): smart merge writes non-default new keys only
2025-12-27 20:28:54 +08:00
hkfires
375ef252ab
docs(config): clarify merge mapping behavior
2025-12-27 19:30:21 +08:00
hkfires
2e88c4858e
fix(config): avoid adding new keys when merging
2025-12-27 19:00:47 +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
3ce0d76aa4
feat(usage): add import/export functionality for usage statistics and enhance deduplication logic
2025-12-26 11:49:51 +08:00