ccproxy-api 0.2.2__tar.gz → 0.2.4__tar.gz
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_api-0.2.2 → ccproxy_api-0.2.4}/PKG-INFO +2 -1
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/_version.py +2 -2
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_shared/model_defaults.py +11 -8
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/model_defaults.py +9 -8
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/storage.py +103 -8
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/pyproject.toml +2 -1
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/.gitignore +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/LICENSE +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/__main__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/app.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/bootstrap.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/decorators.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/dependencies.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/format_validation.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/cors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/hooks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/normalize_headers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/request_id.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/middleware/streaming_hooks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/routes/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/routes/health.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/api/routes/plugins.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/bearer.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/dependencies.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/exceptions.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/managers/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/managers/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/managers/base_enhanced.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/managers/token_snapshot.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/models/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/models/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/models/credentials.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/cli_errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/flows.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/protocol.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/registry.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/router.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/session.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/oauth/templates.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/storage/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/storage/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/auth/storage/generic.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/_settings_help.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/auth.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/config/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/config/commands.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/config/schema_commands.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/plugins.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/serve.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/commands/status.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/decorators.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/helpers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/main.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/options/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/options/claude_options.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/options/core_options.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/options/security_options.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/cli/options/server_options.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/core.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/env_generator.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/runtime.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/security.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/settings.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/toml_generator.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/config/utils.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/async_task_manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/async_utils.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/auth/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/constants.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/id_utils.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/interfaces.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/logging.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/middleware.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/cli_discovery.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/declaration.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/discovery.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/factories.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/events.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/formatters/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/formatters/json.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/formatters/raw.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/http_tracer.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/layers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/registry.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/thread_manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/types.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/interfaces.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/loader.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/middleware.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/protocol.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/runtime.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/request_context.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/status_report.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/system.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/transformers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/types.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/data/claude_headers_fallback.json +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/data/codex_headers_fallback.json +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/http/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/http/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/http/client.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/http/hooks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/http/pool.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/_helpers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/requests.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/responses.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/streams.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/base_model.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/common/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/common/identifiers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/common/streams.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/common/thinking.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/common/usage.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/constants.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/context.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/mapping.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_anthropic/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_anthropic/_helpers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_anthropic/errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_anthropic/requests.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_anthropic/responses.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_anthropic/streams.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_openai/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_openai/_helpers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_openai/errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_openai/requests.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_openai/responses.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/openai_to_openai/streams.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/utils.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/models/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/models/anthropic.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/models/openai.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/streaming/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/streaming/accumulators.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/streaming/formatters.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/streaming/processors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/models/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/models/detection.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/models/provider.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/formatter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/hook.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/logger.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/access_log/writer.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/ingest.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/analytics/service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/detection_service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/health.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/hooks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/streaming_metrics.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_api/tasks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/auth.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/client.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/converter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/detection_service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/exceptions.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/handler.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/health.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/hooks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/message_queue.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/options.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/parser.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/session_client.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/session_pool.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/stream_handle.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/stream_worker.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/streaming.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_sdk/tasks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_shared/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/claude_shared/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/detection_service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/health.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/hooks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/streaming_metrics.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/tasks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/utils/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/codex/utils/sse_parser.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/command_replay/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/command_replay/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/command_replay/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/command_replay/formatter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/command_replay/hook.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/command_replay/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/data/copilot_fallback.json +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/detection_service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/model_defaults.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/oauth/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/oauth/client.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/oauth/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/oauth/provider.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/oauth/storage.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/copilot/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/factory.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/hook.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/credential_balancer/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/dashboard/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/dashboard/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/dashboard/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/dashboard/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/dashboard/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/docker_path.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/middleware.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/protocol.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/stream_process.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/docker/validators.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/duckdb_storage/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/duckdb_storage/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/duckdb_storage/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/duckdb_storage/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/duckdb_storage/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/duckdb_storage/storage.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/max_tokens/token_limits.json +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/collector.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/grafana/dashboards/ccproxy-dashboard.json +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/hook.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/pushgateway.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/metrics/tasks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/client.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_claude/provider.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/client.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/provider.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/oauth_codex/storage.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/handlers/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/handlers/cli.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/handlers/protocol.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/handlers/terminal.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/mcp.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/routes.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/ui/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/ui/permission_handler_protocol.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/permissions/ui/terminal_permission_handler.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/cache.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/exceptions.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/loader.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/service.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/tasks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/updater.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/pricing/utils.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/request_tracer/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/request_tracer/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/request_tracer/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/request_tracer/hook.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/plugins/request_tracer/plugin.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/scheduler/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/scheduler/core.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/scheduler/errors.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/scheduler/manager.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/scheduler/registry.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/scheduler/tasks.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/base.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/chain_composer.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/chain_validation.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/chat_accumulator.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/delta_utils.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/format_adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/format_context.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/format_registry.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/http_adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/mock_adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/protocols.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/adapters/simple_converters.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/auth_registry.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/cache/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/cache/response_cache.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/cli_detection.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/config/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/config/proxy_configuration.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/container.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/factories.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/handler_config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/interfaces.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/mocking/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/mocking/mock_handler.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/tracing/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/tracing/interfaces.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/services/tracing/null_tracer.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/buffer.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/deferred.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/handler.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/interfaces.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/simple_adapter.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/sse.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/streaming/sse_parser.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/templates/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/templates/plugin_scaffold.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/content_generation.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/cli.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/config.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/console.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/models.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/runner.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/endpoints/tools.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/mock_responses.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/response_handlers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/testing/scenarios.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/__init__.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/binary_resolver.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/caching.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/cli_logging.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/command_line.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/headers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/id_generator.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/model_mapper.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/startup_helpers.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/utils/version_checker.py +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/examples/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/tests/factories/README.md +0 -0
- {ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/tests/fixtures/README.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ccproxy-api
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: API server that provides an Anthropic and OpenAI compatible interface over Claude Code, allowing to use your Claude OAuth account or over the API.
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -20,6 +20,7 @@ Requires-Dist: typing-extensions>=4.0.0
|
|
|
20
20
|
Requires-Dist: uvicorn>=0.34.0
|
|
21
21
|
Provides-Extra: plugins-claude
|
|
22
22
|
Requires-Dist: claude-agent-sdk>=0.1.0; extra == 'plugins-claude'
|
|
23
|
+
Requires-Dist: keyring>=25.0.0; extra == 'plugins-claude'
|
|
23
24
|
Requires-Dist: qrcode>=8.2; extra == 'plugins-claude'
|
|
24
25
|
Provides-Extra: plugins-codex
|
|
25
26
|
Requires-Dist: pyjwt>=2.10.1; extra == 'plugins-codex'
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.2.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 2,
|
|
31
|
+
__version__ = version = '0.2.4'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 2, 4)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -7,11 +7,11 @@ from ccproxy.models.provider import ModelCard, ModelMappingRule
|
|
|
7
7
|
|
|
8
8
|
DEFAULT_CLAUDE_MODEL_CARDS: list[ModelCard] = [
|
|
9
9
|
ModelCard(
|
|
10
|
-
id="claude-sonnet-4-
|
|
10
|
+
id="claude-sonnet-4-6",
|
|
11
11
|
created=1722816000,
|
|
12
12
|
owned_by="anthropic",
|
|
13
13
|
permission=[],
|
|
14
|
-
root="claude-sonnet-4-
|
|
14
|
+
root="claude-sonnet-4-6",
|
|
15
15
|
parent=None,
|
|
16
16
|
),
|
|
17
17
|
ModelCard(
|
|
@@ -23,11 +23,11 @@ DEFAULT_CLAUDE_MODEL_CARDS: list[ModelCard] = [
|
|
|
23
23
|
parent=None,
|
|
24
24
|
),
|
|
25
25
|
ModelCard(
|
|
26
|
-
id="claude-opus-4-
|
|
26
|
+
id="claude-opus-4-6",
|
|
27
27
|
created=1722816000,
|
|
28
28
|
owned_by="anthropic",
|
|
29
29
|
permission=[],
|
|
30
|
-
root="claude-opus-4-
|
|
30
|
+
root="claude-opus-4-6",
|
|
31
31
|
parent=None,
|
|
32
32
|
),
|
|
33
33
|
ModelCard(
|
|
@@ -105,7 +105,7 @@ DEFAULT_CLAUDE_MODEL_MAPPINGS: list[ModelMappingRule] = [
|
|
|
105
105
|
),
|
|
106
106
|
ModelMappingRule(
|
|
107
107
|
match="gpt-4o",
|
|
108
|
-
target="claude-
|
|
108
|
+
target="claude-sonnet-4-6",
|
|
109
109
|
kind="prefix",
|
|
110
110
|
),
|
|
111
111
|
ModelMappingRule(
|
|
@@ -125,19 +125,22 @@ DEFAULT_CLAUDE_MODEL_MAPPINGS: list[ModelMappingRule] = [
|
|
|
125
125
|
),
|
|
126
126
|
ModelMappingRule(
|
|
127
127
|
match="o1",
|
|
128
|
-
target="claude-opus-4-
|
|
128
|
+
target="claude-opus-4-6",
|
|
129
129
|
kind="prefix",
|
|
130
130
|
),
|
|
131
131
|
ModelMappingRule(
|
|
132
132
|
match="o3-mini",
|
|
133
|
-
target="claude-opus-4-
|
|
133
|
+
target="claude-opus-4-6",
|
|
134
134
|
kind="exact",
|
|
135
135
|
),
|
|
136
136
|
ModelMappingRule(
|
|
137
137
|
match="gpt-5",
|
|
138
|
-
target="claude-sonnet-4-
|
|
138
|
+
target="claude-sonnet-4-6",
|
|
139
139
|
kind="prefix",
|
|
140
140
|
),
|
|
141
|
+
ModelMappingRule(match="sonnet", target="claude-sonnet-4-6"),
|
|
142
|
+
ModelMappingRule(match="opus", target="claude-opus-4-6"),
|
|
143
|
+
ModelMappingRule(match="haiku", target="claude-haiku-4-5-20251001"),
|
|
141
144
|
ModelMappingRule(
|
|
142
145
|
match="claude-3-5-sonnet-latest",
|
|
143
146
|
target="claude-3-5-sonnet-20241022",
|
|
@@ -7,29 +7,30 @@ from ccproxy.models.provider import ModelCard, ModelMappingRule
|
|
|
7
7
|
|
|
8
8
|
DEFAULT_CODEX_MODEL_CARDS: list[ModelCard] = [
|
|
9
9
|
ModelCard(
|
|
10
|
-
id="gpt-5",
|
|
10
|
+
id="gpt-5.3-codex",
|
|
11
11
|
created=1723075200,
|
|
12
12
|
owned_by="openai",
|
|
13
13
|
permission=[],
|
|
14
|
-
root="gpt-5",
|
|
14
|
+
root="gpt-5.3-codex",
|
|
15
15
|
parent=None,
|
|
16
16
|
),
|
|
17
17
|
ModelCard(
|
|
18
|
-
id="gpt-5-codex",
|
|
18
|
+
id="gpt-5.2-codex",
|
|
19
19
|
created=1726444800,
|
|
20
20
|
owned_by="openai",
|
|
21
21
|
permission=[],
|
|
22
|
-
root="gpt-5-codex",
|
|
22
|
+
root="gpt-5.2-codex",
|
|
23
23
|
parent=None,
|
|
24
24
|
),
|
|
25
25
|
]
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
DEFAULT_CODEX_MODEL_MAPPINGS: list[ModelMappingRule] = [
|
|
29
|
-
ModelMappingRule(match="gpt-", target="gpt-5", kind="prefix"),
|
|
30
|
-
ModelMappingRule(match="
|
|
31
|
-
ModelMappingRule(match="
|
|
32
|
-
ModelMappingRule(match="
|
|
29
|
+
ModelMappingRule(match="gpt-5-codex", target="gpt-5.3-codex", kind="prefix"),
|
|
30
|
+
ModelMappingRule(match="gpt-", target="gpt-5.3-codex", kind="prefix"),
|
|
31
|
+
ModelMappingRule(match="o3-", target="gpt-5.3-codex", kind="prefix"),
|
|
32
|
+
ModelMappingRule(match="o1-", target="gpt-5.3-codex", kind="prefix"),
|
|
33
|
+
ModelMappingRule(match="claude-", target="gpt-5.3-codex", kind="prefix"),
|
|
33
34
|
]
|
|
34
35
|
|
|
35
36
|
|
|
@@ -15,6 +15,77 @@ from .models import ClaudeCredentials, ClaudeProfileInfo
|
|
|
15
15
|
logger = get_plugin_logger()
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
# Keychain service name used by Claude Code
|
|
19
|
+
KEYCHAIN_SERVICE = "Claude Code"
|
|
20
|
+
KEYCHAIN_ACCOUNT = "credentials"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _is_keyring_available() -> bool:
|
|
24
|
+
"""Check if keyring library is available."""
|
|
25
|
+
try:
|
|
26
|
+
import keyring # noqa: F401
|
|
27
|
+
|
|
28
|
+
return True
|
|
29
|
+
except ImportError:
|
|
30
|
+
return False
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
async def _read_from_keychain() -> dict[str, Any] | None:
|
|
34
|
+
"""Read Claude credentials from system keychain.
|
|
35
|
+
|
|
36
|
+
Claude Code stores OAuth credentials in the system keychain and intentionally
|
|
37
|
+
deletes the plain text ~/.claude/.credentials.json file for security.
|
|
38
|
+
See: https://github.com/anthropics/claude-code/issues/1414
|
|
39
|
+
|
|
40
|
+
Uses the keyring library which supports:
|
|
41
|
+
- macOS Keychain
|
|
42
|
+
- Windows Credential Manager
|
|
43
|
+
- Linux Secret Service (GNOME Keyring, KDE Wallet)
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
Parsed credentials dict or None if not found or keyring unavailable
|
|
47
|
+
"""
|
|
48
|
+
if not _is_keyring_available():
|
|
49
|
+
logger.debug(
|
|
50
|
+
"keyring_not_available",
|
|
51
|
+
hint="Install keyring package for system keychain support",
|
|
52
|
+
category="auth",
|
|
53
|
+
)
|
|
54
|
+
return None
|
|
55
|
+
|
|
56
|
+
def read_keychain() -> dict[str, Any] | None:
|
|
57
|
+
try:
|
|
58
|
+
import keyring
|
|
59
|
+
|
|
60
|
+
password = keyring.get_password(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT)
|
|
61
|
+
if password:
|
|
62
|
+
parsed = json.loads(password)
|
|
63
|
+
if isinstance(parsed, dict):
|
|
64
|
+
return parsed
|
|
65
|
+
logger.debug(
|
|
66
|
+
"keychain_invalid_format",
|
|
67
|
+
expected="dict",
|
|
68
|
+
got=type(parsed).__name__,
|
|
69
|
+
category="auth",
|
|
70
|
+
)
|
|
71
|
+
except json.JSONDecodeError as e:
|
|
72
|
+
logger.debug(
|
|
73
|
+
"keychain_json_decode_error",
|
|
74
|
+
error=str(e),
|
|
75
|
+
category="auth",
|
|
76
|
+
)
|
|
77
|
+
except Exception as e:
|
|
78
|
+
logger.debug(
|
|
79
|
+
"keychain_read_error",
|
|
80
|
+
error=str(e),
|
|
81
|
+
error_type=type(e).__name__,
|
|
82
|
+
category="auth",
|
|
83
|
+
)
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
return await asyncio.to_thread(read_keychain)
|
|
87
|
+
|
|
88
|
+
|
|
18
89
|
class ClaudeOAuthStorage(BaseJsonStorage[ClaudeCredentials]):
|
|
19
90
|
"""Claude OAuth-specific token storage implementation."""
|
|
20
91
|
|
|
@@ -61,24 +132,48 @@ class ClaudeOAuthStorage(BaseJsonStorage[ClaudeCredentials]):
|
|
|
61
132
|
return False
|
|
62
133
|
|
|
63
134
|
async def load(self) -> ClaudeCredentials | None:
|
|
64
|
-
"""Load Claude credentials.
|
|
135
|
+
"""Load Claude credentials from file or system keychain.
|
|
136
|
+
|
|
137
|
+
Claude Code stores credentials in the system keychain and intentionally
|
|
138
|
+
deletes the plain text file for security. This method tries file first,
|
|
139
|
+
then falls back to the system keychain (macOS Keychain, Windows Credential
|
|
140
|
+
Manager, or Linux Secret Service).
|
|
65
141
|
|
|
66
142
|
Returns:
|
|
67
143
|
Stored credentials or None
|
|
68
144
|
"""
|
|
69
145
|
try:
|
|
70
|
-
#
|
|
146
|
+
# Try file first (works on all platforms, manual setups)
|
|
71
147
|
data = await self._read_json()
|
|
72
|
-
if
|
|
73
|
-
|
|
148
|
+
if data:
|
|
149
|
+
credentials = ClaudeCredentials.model_validate(data)
|
|
150
|
+
logger.debug(
|
|
151
|
+
"claude_oauth_credentials_loaded",
|
|
152
|
+
has_oauth=bool(credentials.claude_ai_oauth),
|
|
153
|
+
source="file",
|
|
154
|
+
category="auth",
|
|
155
|
+
)
|
|
156
|
+
return credentials
|
|
157
|
+
|
|
158
|
+
# Fallback to system keychain (where Claude Code stores credentials)
|
|
159
|
+
keychain_data = await _read_from_keychain()
|
|
160
|
+
if keychain_data:
|
|
161
|
+
credentials = ClaudeCredentials.model_validate(keychain_data)
|
|
162
|
+
logger.debug(
|
|
163
|
+
"claude_oauth_credentials_loaded",
|
|
164
|
+
has_oauth=bool(credentials.claude_ai_oauth),
|
|
165
|
+
source="keychain",
|
|
166
|
+
category="auth",
|
|
167
|
+
)
|
|
168
|
+
return credentials
|
|
74
169
|
|
|
75
|
-
credentials = ClaudeCredentials.model_validate(data)
|
|
76
170
|
logger.debug(
|
|
77
|
-
"
|
|
78
|
-
|
|
171
|
+
"claude_oauth_credentials_not_found",
|
|
172
|
+
checked_file=str(self.file_path),
|
|
173
|
+
checked_keychain=_is_keyring_available(),
|
|
79
174
|
category="auth",
|
|
80
175
|
)
|
|
81
|
-
return
|
|
176
|
+
return None
|
|
82
177
|
except Exception as e:
|
|
83
178
|
logger.error(
|
|
84
179
|
"claude_oauth_credentials_load_error",
|
|
@@ -92,10 +92,11 @@ dev = [
|
|
|
92
92
|
"bandit",
|
|
93
93
|
"types-aiofiles>=24.0.0",
|
|
94
94
|
"types-PyYAML>=6.0.12.12",
|
|
95
|
+
"keyring>=25.0.0",
|
|
95
96
|
]
|
|
96
97
|
|
|
97
98
|
[project.optional-dependencies]
|
|
98
|
-
plugins-claude = ["claude-agent-sdk>=0.1.0", "qrcode>=8.2"]
|
|
99
|
+
plugins-claude = ["claude-agent-sdk>=0.1.0", "qrcode>=8.2", "keyring>=25.0.0"]
|
|
99
100
|
plugins-codex = ["qrcode>=8.2", "pyjwt>=2.10.1"]
|
|
100
101
|
plugins-storage = [
|
|
101
102
|
"sqlmodel>=0.0.24",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/formatters/raw.py
RENAMED
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/core/plugins/hooks/implementations/http_tracer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/__init__.py
RENAMED
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/_helpers.py
RENAMED
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/errors.py
RENAMED
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/requests.py
RENAMED
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/responses.py
RENAMED
|
File without changes
|
{ccproxy_api-0.2.2 → ccproxy_api-0.2.4}/ccproxy/llms/formatters/anthropic_to_openai/streams.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|