Skip to content

v3.0.0b4

Pre-release
Pre-release

Choose a tag to compare

@Oaklight Oaklight released this 21 Mar 13:14
· 106 commits to master since this release

v3.0.0b4 (Pre-release)

Major Features

  • Universal API Gateway (llm-rosetta): Transformed argo-proxy from a single-format ARGO gateway proxy into a universal API translator. All 4 client API formats are now supported:

    Client Format Endpoint
    OpenAI Chat Completions POST /v1/chat/completions
    OpenAI Responses API POST /v1/responses
    Anthropic Messages POST /v1/messages
    Google GenAI POST /v1beta/models/{model}:generateContent
  • Smart Upstream Routing: Claude models are automatically routed to the native Anthropic endpoint (avoiding tool call leakage on OpenAI-compat), while all other models (GPT, Gemini) go to the native OpenAI Chat endpoint.

  • Same-Format Passthrough: When the client format matches the upstream format, requests and responses are piped through without conversion for maximum performance and fidelity.

  • Cross-Format Conversion: When formats differ, llm-rosetta handles bidirectional conversion via its Intermediate Representation (IR), for both streaming and non-streaming requests.

New Features

  • Universal Dispatch Module (endpoints/dispatch.py): Central entry point for all API requests with model resolution, format detection, image preprocessing, auth header translation, and error handling.
  • Cross-Format Auth Header Translation: Automatic conversion between x-api-key (Anthropic) and Authorization: Bearer (OpenAI) headers when routing across formats.
  • Flexible Model Name Resolution: Accepts Anthropic dash format, Argo dot format, internal IDs, and Anthropic model IDs with dates.
  • Native Upstream Model List: Model registry now fetches from the native OpenAI /v1/models endpoint instead of the legacy ARGO models API.
  • CLI Subcommands: Restructured CLI with hierarchical subcommands:
    • argo-proxy serve — start the server (default, backward compatible)
    • argo-proxy config {edit,validate,show,migrate} — manage configuration
    • argo-proxy logs collect — collect diagnostic logs
    • argo-proxy update {check,install} — check for and install updates from PyPI (supports --pre for pre-release)
    • argo-proxy models — list all available upstream models with their aliases, grouped by type (Chat/Embedding) and provider, with --json output support
    • --no-banner flag to suppress ASCII banner
  • Simplified Base URL Configuration: Only argo_base_url is needed — native endpoint URLs are automatically derived.
  • Config Migration (argo-proxy config migrate): Automatic migration of v1/v2 config files to v3 format with .bak backup.
  • Mode-Aware Config Display: config validate and config show display mode-appropriate URLs.
  • Native Endpoint Connectivity Check: URL validation tests the native OpenAI /v1/models endpoint (GET) in universal mode.

Breaking Changes

  • Native endpoints are now default: use_native_openai and use_native_anthropic config keys are deprecated and ignored.
  • Legacy mode is opt-in: Use --legacy-argo flag or use_legacy_argo: true in config.
  • Removed --native-openai / --native-anthropic CLI flags: No longer needed since native mode is the default.
  • Legacy endpoints moved to _legacy/: chat.py, completions.py, embed.py, responses.py, native_anthropic.py relocated.

Deprecations

  • tool_calls/handler.py, tool_calls/output_handle.py — replaced by llm-rosetta converters
  • types/chat_completion.py, types/completions.py, types/embedding.py, types/responses.py — replaced by llm-rosetta IR types
  • tool_calls/converters.py — removed entirely (unused)

Dependencies

  • Added llm-rosetta as a core dependency for cross-format conversion

Documentation

  • Comprehensive v3 documentation rewrite covering all pages
  • New CLI Tools Guide for Claude Code, Codex CLI, Aider, Gemini CLI, OpenCode
  • Updated endpoint, CLI, and configuration docs for v3

Full changelog: https://argo-proxy.readthedocs.io/en/latest/changelog/

pip install --pre argo-proxy