9router/open-sse/translator
Samir Abis ddd5509e97 fix(openai-to-claude): unwrap bare {function:{…}} tools without parent type (#2473)
Translator only unwrapped tool.function when both tool.type==="function"
and tool.function were truthy. Loose/legacy OpenAI clients emit the bare
{ function: { name, parameters } } shape (no parent type), which fell
through and forwarded name: undefined upstream, rejected by strict
Anthropic-compatible gateways (MiniMax M3) as (2013) invalid tool type.

Unwrap tool.function whenever present. Built-in tools stay pass-through.
Adds regression coverage for the 4 tool shapes. See #2435.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 11:11:37 +07:00
..
concerns fix(translator): clamp thinking effort max->xhigh for OpenAI format (#2466) 2026-07-09 15:13:24 +07:00
formats fix(claude): reconcile max_tokens vs thinking budget and lift per-model ceiling (#2381) 2026-07-05 17:38:16 +07:00
request fix(openai-to-claude): unwrap bare {function:{…}} tools without parent type (#2473) 2026-07-10 11:11:37 +07:00
response feat(usage): track cached tokens + correct input/output/cache cost (#2209) 2026-07-03 15:18:27 +07:00
schema Refactor 2026-06-15 18:18:04 +07:00
formats.js feat: add CommandCode provider support 2026-05-07 23:01:33 +07:00
index.js fix(alicode): preserve cache_control for DashScope providers (#2069) 2026-06-29 15:29:49 +07:00