feat: Antigravity 和 Codex 服务支持

- 新增 Antigravity 服务:签名缓存、URL 可用性检测、信封处理
- 新增 Codex 服务:信封处理、元数据收集器
- 重构 provider transport 支持新的服务架构
- 新增 stream_bridge 和 upstream_stream_bridge 处理流式响应
- 优化 OAuth 工具函数
- 添加相关测试用例
This commit is contained in:
fawney19
2026-02-05 15:57:52 +08:00
parent ed2ff5c1d7
commit 440721368f
44 changed files with 3498 additions and 134 deletions

View File

@@ -0,0 +1,47 @@
from __future__ import annotations
from dataclasses import dataclass
from types import SimpleNamespace
from src.services.provider.transport import build_provider_url
@dataclass
class _DummyEndpoint:
base_url: str
api_format: str
custom_path: str | None = None
provider: object | None = None
def test_codex_openai_cli_uses_responses_path_without_v1_prefix() -> None:
endpoint = _DummyEndpoint(
base_url="https://chatgpt.com/backend-api/codex",
api_format="openai:cli",
provider=SimpleNamespace(provider_type="codex"),
)
url = build_provider_url(
endpoint, # type: ignore[arg-type] - test stub
path_params={"model": "ignored"},
is_stream=True,
)
assert url == "https://chatgpt.com/backend-api/codex/responses"
def test_codex_openai_cli_does_not_duplicate_responses_suffix() -> None:
endpoint = _DummyEndpoint(
base_url="https://chatgpt.com/backend-api/codex/responses",
api_format="openai:cli",
provider=SimpleNamespace(provider_type="codex"),
)
url = build_provider_url(
endpoint, # type: ignore[arg-type] - test stub
path_params={"model": "ignored"},
is_stream=False,
)
assert url == "https://chatgpt.com/backend-api/codex/responses"