You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LLM-Rosetta Gateway: REST gateway application for cross-provider HTTP proxying
CLI entry point (llm-rosetta-gateway) and package structure for the gateway
Gateway config auto-discovery at ./config.jsonc, ~/.config/llm-rosetta-gateway/config.jsonc, ~/.llm-rosetta-gateway/config.jsonc
--edit / -e flag to open config file in $EDITOR (falls back to nano/vi/vim)
--version / -V flag showing current version
ASCII art startup banner with --no-banner to suppress
add provider <name> subcommand for adding provider entries to config (with --api-key, --base-url flags or interactive prompts; known providers auto-fill defaults)
add model <name> subcommand for adding model routing entries (with --provider flag or interactive prompt)
init subcommand to create a template config.jsonc at the XDG default location
Gateway providers module (providers.py): centralized provider definitions with auth-header builders, URL templates, default base URLs, and API key env-var names
API key rotation: round-robin KeyRing for comma-separated API keys per provider
Proxy support: global server.proxy and per-provider proxy config for HTTP/SOCKS proxies; CLI --proxy flag overrides config
Model listing endpoints: GET /v1/models (compatible with both OpenAI and Anthropic SDKs) and GET /v1beta/models (Google GenAI SDK format) — enables client.models.list() across all three SDKs (#54)
Standalone API test scripts (llm_api_simple_tests/): 20 test scripts (5 per provider) using official SDKs directly, covering simple query, multi-round chat, image, function calling, and comprehensive scenarios
Makefile test-integration and test-gateway targets
Changed
Bumped minimum Python to 3.10+; migrated to stdlib typing (removed typing_extensions)
Applied ruff formatter across the entire codebase
Updated Makefile with lint, test, and build targets
Added ty (type checker) configuration
Configured ruff lint rules (E, F, UP) in pyproject.toml; ignore UP007 (Union syntax) and E501 (line length)
Modernized typing imports across src/, tests/, examples/, and scripts/
Fixed
Streaming crash with Anthropic provider when usage tokens are null — TypeError: NoneType + int in all converters
Gateway provider base_url validation — fail early with clear error on config typos
Added socksio to gateway dependencies for SOCKS proxy support
Resolved all ty type checker diagnostics in src/ (31 → 0) and tests/ (1506 → 0)
Resolved all ruff lint violations in src/ and tests/
Google thought_signature preservation through gateway round-trips (#51)
OpenAI Responses converter now handles all 3 input formats: bare string, shorthand list, and structured list
Special characters in model names for Google GenAI routes (#53)