Skip to content

v3.0.0

Choose a tag to compare

@Oaklight Oaklight released this 18 Apr 16:30
· 34 commits to master since this release

argo-proxy 3.0.0

First stable release of the v3 architecture, powered by llm-rosetta for cross-format LLM API conversion.

Highlights

  • Unified dispatch pipeline — single dispatch.py handles OpenAI Chat, OpenAI Responses, and Anthropic Messages formats with automatic cross-format conversion via llm-rosetta
  • Transparent Anthropic stream buffering — non-streaming requests are automatically converted to streaming upstream and aggregated back, avoiding Anthropic's 10-minute timeout
  • Passthrough compatibility layer — same-format requests bypass conversion for performance, with automatic fixups for max_tokensmax_completion_tokens, thinking.type: "adaptive" normalization, developer role downgrade, tool schema sanitization, orphaned tool call repair, and content: null normalization
  • Force conversion modeforce_conversion: true config option to route all requests through llm-rosetta for maximum compatibility

Added

  • Cross-format dispatch: OpenAI Chat ↔ Anthropic ↔ OpenAI Responses
  • --anthropic-stream-mode with force/retry/passthrough modes
  • --force-conversion mode to bypass passthrough optimization
  • Error dump diagnostics (~/.config/argoproxy/error_dumps/)
  • File logging with gzip rotation (log_to_file config)
  • CLI subcommands: config init, config env, config list
  • Per-request user tagging in logs
  • Gemini parallel tool call reordering for ARGO gateway compatibility
  • Preserve-mode ConversionContext through converter pipeline

Fixed

  • max_tokensmax_completion_tokens for newer OpenAI models in passthrough
  • thinking.type: "adaptive""enabled" with budget_tokens for gateway compatibility
  • content: null normalization for upstream gateways
  • Developer role downgrade for ARGO gateway
  • Orphaned tool call/result pairing for all providers
  • Client disconnect handling, stream termination fallback
  • Auth credential fallback in dispatch headers
  • Incomplete UTF-8 sequences in streaming responses

Changed

  • Requires llm-rosetta >= 0.5.1
  • Legacy endpoints consolidated into _legacy/ package
  • CLI split into cli/ subpackage, config split into config/ subpackage

Full Changelog: v2.8.9...v3.0.0
PyPI: https://pypi.org/project/argo-proxy/3.0.0/