Xubin Ren
cc33057985
refactor(providers): rename openai responses helpers
2026-04-02 13:43:34 +08:00
Xubin Ren
ded0967c18
fix(providers): sanitize azure responses input messages
2026-04-02 13:43:34 +08:00
Kunal Karmakar
61d7411238
Fix failing test
2026-04-02 13:43:34 +08:00
Kunal Karmakar
76226274bf
Failing test
2026-04-02 13:43:34 +08:00
Kunal Karmakar
e206cffd7a
Add tests and handle json
2026-04-02 13:43:34 +08:00
Kunal Karmakar
ac2ee58791
Add tests and logs
2026-04-02 13:43:34 +08:00
Kunal Karmakar
8c0607e079
Use SDK for stream
2026-04-02 13:43:34 +08:00
Kunal Karmakar
0417c3f03b
Use OpenAI responses API
2026-04-02 13:43:34 +08:00
Xubin Ren
a3e4c77fff
fix(providers): normalize anthropic cached token usage
2026-04-02 12:51:45 +08:00
chengyongru
da08dee144
feat(provider): show cache hit rate in /status ( #2645 )
2026-04-02 12:51:45 +08:00
Xubin Ren
7e719f41cc
test(providers): cover github copilot lazy export
2026-04-02 03:46:40 +08:00
Xubin Ren
ace3fd6049
feat: add default OpenRouter app attribution headers
2026-03-27 11:40:23 +00:00
Xubin Ren
b5302b6f3d
refactor(provider): preserve extra_content verbatim for Gemini thought_signature round-trip
...
Replace the flatten/unflatten approach (merging extra_content.google.*
into provider_specific_fields then reconstructing) with direct pass-through:
parse extra_content as-is, store on ToolCallRequest.extra_content, serialize
back untouched. This is lossless, requires no hardcoded field names, and
covers all three parsing branches (str, dict, SDK object) plus streaming.
2026-03-25 10:00:29 +08:00
Yohei Nishikubo
af84b1b8c0
fix(Gemini): update ToolCallRequest and OpenAICompatProvider to handle thought signatures in extra_content
2026-03-25 10:00:29 +08:00
Yohei Nishikubo
7b720ce9f7
feat(OpenAICompatProvider): enhance tool call handling with provider-specific fields
2026-03-25 10:00:29 +08:00
Xubin Ren
263069583d
fix(provider): accept plain text OpenAI-compatible responses
...
Handle string and dict-shaped responses from OpenAI-compatible backends so non-standard providers no longer crash on missing choices fields. Add regression tests to keep SDK, dict, and plain-text parsing paths aligned.
2026-03-25 01:22:21 +00:00
Xubin Ren
3dfdab704e
refactor: replace litellm with native openai + anthropic SDKs
...
- Remove litellm dependency entirely (supply chain risk mitigation)
- Add AnthropicProvider (native SDK) and OpenAICompatProvider (unified)
- Merge CustomProvider into OpenAICompatProvider, delete custom_provider.py
- Add ProviderSpec.backend field for declarative provider routing
- Remove _resolve_model, find_gateway, find_by_model (dead heuristics)
- Pass resolved spec directly into provider — zero internal lookups
- Stub out litellm-dependent model database (cli/models.py)
- Add anthropic>=0.45.0 to dependencies, remove litellm
- 593 tests passed, net -1034 lines
2026-03-25 01:58:48 +08:00
chengyongru
72acba5d27
refactor(tests): optimize unit test structure
2026-03-24 15:12:22 +08:00