mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-05-01 21:00:44 +00:00
Major refactor: API, providers, messaging, and Anthropic protocol
Some checks are pending
CI / checks (push) Waiting to run
Some checks are pending
CI / checks (push) Waiting to run
Consolidates the incremental refactor work into a single change set: modular web tools (api/web_tools), native Anthropic request building and SSE block policy, OpenAI conversion and error handling, provider transports and rate limiting, messaging handler and tree queue, safe logging, smoke tests, and broad test coverage.
This commit is contained in:
parent
b9ed704095
commit
f3a7528d49
139 changed files with 7460 additions and 2422 deletions
|
|
@ -16,7 +16,7 @@ from api.dependencies import (
|
|||
)
|
||||
from config.nim import NimSettings
|
||||
from providers.deepseek import DeepSeekProvider
|
||||
from providers.exceptions import UnknownProviderTypeError
|
||||
from providers.exceptions import ServiceUnavailableError, UnknownProviderTypeError
|
||||
from providers.lmstudio import LMStudioProvider
|
||||
from providers.nvidia_nim import NvidiaNimProvider
|
||||
from providers.ollama import OllamaProvider
|
||||
|
|
@ -40,7 +40,7 @@ def _make_mock_settings(**overrides):
|
|||
mock.nim = NimSettings()
|
||||
mock.http_read_timeout = 300.0
|
||||
mock.http_write_timeout = 10.0
|
||||
mock.http_connect_timeout = 2.0
|
||||
mock.http_connect_timeout = 10.0
|
||||
mock.enable_model_thinking = True
|
||||
for key, value in overrides.items():
|
||||
setattr(mock, key, value)
|
||||
|
|
@ -434,18 +434,17 @@ def test_resolve_provider_per_app_uses_separate_registries() -> None:
|
|||
assert p1 is not p2
|
||||
|
||||
|
||||
def test_resolve_provider_lazily_installs_registry() -> None:
|
||||
"""If app has no provider_registry, one is created on app.state."""
|
||||
def test_resolve_provider_missing_registry_raises_service_unavailable() -> None:
|
||||
"""HTTP apps must install app.state.provider_registry (e.g. via AppRuntime)."""
|
||||
with patch("api.dependencies.get_settings") as mock_settings:
|
||||
mock_settings.return_value = _make_mock_settings()
|
||||
settings = _make_mock_settings()
|
||||
app = SimpleNamespace(state=State())
|
||||
assert getattr(app.state, "provider_registry", None) is None
|
||||
resolve_provider("nvidia_nim", app=cast(Starlette, app), settings=settings)
|
||||
reg = app.state.provider_registry
|
||||
assert reg is not None
|
||||
p2 = resolve_provider("nvidia_nim", app=cast(Starlette, app), settings=settings)
|
||||
assert p2 is reg.get("nvidia_nim", settings) # same registry instance
|
||||
with pytest.raises(
|
||||
ServiceUnavailableError, match="Provider registry is not configured"
|
||||
):
|
||||
resolve_provider("nvidia_nim", app=cast(Starlette, app), settings=settings)
|
||||
|
||||
|
||||
def test_resolve_provider_unrelated_value_error_is_not_unknown_provider_log() -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue