ccproxy-api 0.1.5__py3-none-any.whl → 0.1.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccproxy/_version.py +2 -2
- ccproxy/adapters/codex/__init__.py +11 -0
- ccproxy/adapters/openai/models.py +1 -1
- ccproxy/adapters/openai/response_adapter.py +355 -0
- ccproxy/adapters/openai/response_models.py +178 -0
- ccproxy/api/app.py +31 -3
- ccproxy/api/dependencies.py +1 -8
- ccproxy/api/middleware/errors.py +15 -7
- ccproxy/api/routes/codex.py +1251 -0
- ccproxy/api/routes/health.py +228 -3
- ccproxy/auth/openai/__init__.py +13 -0
- ccproxy/auth/openai/credentials.py +166 -0
- ccproxy/auth/openai/oauth_client.py +334 -0
- ccproxy/auth/openai/storage.py +184 -0
- ccproxy/claude_sdk/options.py +1 -1
- ccproxy/cli/commands/auth.py +398 -1
- ccproxy/cli/commands/serve.py +3 -1
- ccproxy/config/claude.py +1 -1
- ccproxy/config/codex.py +100 -0
- ccproxy/config/scheduler.py +8 -8
- ccproxy/config/settings.py +19 -0
- ccproxy/core/codex_transformers.py +389 -0
- ccproxy/core/http_transformers.py +153 -2
- ccproxy/data/claude_headers_fallback.json +37 -0
- ccproxy/data/codex_headers_fallback.json +14 -0
- ccproxy/models/detection.py +82 -0
- ccproxy/models/requests.py +22 -0
- ccproxy/models/responses.py +16 -0
- ccproxy/scheduler/manager.py +2 -2
- ccproxy/scheduler/tasks.py +105 -65
- ccproxy/services/claude_detection_service.py +7 -33
- ccproxy/services/codex_detection_service.py +252 -0
- ccproxy/services/proxy_service.py +530 -0
- ccproxy/utils/model_mapping.py +7 -5
- ccproxy/utils/startup_helpers.py +205 -12
- ccproxy/utils/version_checker.py +6 -0
- ccproxy_api-0.1.7.dist-info/METADATA +615 -0
- {ccproxy_api-0.1.5.dist-info → ccproxy_api-0.1.7.dist-info}/RECORD +41 -28
- ccproxy_api-0.1.5.dist-info/METADATA +0 -396
- {ccproxy_api-0.1.5.dist-info → ccproxy_api-0.1.7.dist-info}/WHEEL +0 -0
- {ccproxy_api-0.1.5.dist-info → ccproxy_api-0.1.7.dist-info}/entry_points.txt +0 -0
- {ccproxy_api-0.1.5.dist-info → ccproxy_api-0.1.7.dist-info}/licenses/LICENSE +0 -0
ccproxy/api/middleware/errors.py
CHANGED
|
@@ -583,13 +583,16 @@ def setup_error_handlers(app: FastAPI) -> None:
|
|
|
583
583
|
):
|
|
584
584
|
request.state.context.metadata["status_code"] = exc.status_code
|
|
585
585
|
|
|
586
|
-
# Don't log stack trace for
|
|
587
|
-
if exc.status_code
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
586
|
+
# Don't log stack trace for expected errors (404, 401)
|
|
587
|
+
if exc.status_code in (404, 401):
|
|
588
|
+
log_level = "debug" if exc.status_code == 404 else "warning"
|
|
589
|
+
log_func = logger.debug if exc.status_code == 404 else logger.warning
|
|
590
|
+
|
|
591
|
+
log_func(
|
|
592
|
+
f"HTTP {exc.status_code} error",
|
|
593
|
+
error_type=f"http_{exc.status_code}",
|
|
591
594
|
error_message=exc.detail,
|
|
592
|
-
status_code=
|
|
595
|
+
status_code=exc.status_code,
|
|
593
596
|
request_method=request.method,
|
|
594
597
|
request_url=str(request.url.path),
|
|
595
598
|
)
|
|
@@ -613,7 +616,12 @@ def setup_error_handlers(app: FastAPI) -> None:
|
|
|
613
616
|
|
|
614
617
|
# Record error in metrics
|
|
615
618
|
if metrics:
|
|
616
|
-
|
|
619
|
+
if exc.status_code == 404:
|
|
620
|
+
error_type = "http_404"
|
|
621
|
+
elif exc.status_code == 401:
|
|
622
|
+
error_type = "http_401"
|
|
623
|
+
else:
|
|
624
|
+
error_type = "http_error"
|
|
617
625
|
metrics.record_error(
|
|
618
626
|
error_type=error_type,
|
|
619
627
|
endpoint=str(request.url.path),
|