mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
refactor(claude-code): 移除 TLS 指纹模拟配置,简化上下文构建逻辑
移除 enable_tls_fingerprint 配置项、TLS_PROFILE_CLAUDE_CODE 常量及 resolve_claude_code_tls_profile 函数,TLS profile 改为仅由 fingerprint 的 impersonate 字段决定,简化 build_and_set_claude_code_request_context 返回值为单一 context 对象。
This commit is contained in:
@@ -308,9 +308,6 @@ class ClaudeCodeAdvancedConfig(BaseModel):
|
||||
session_idle_timeout_minutes: int | None = Field(
|
||||
None, ge=1, le=1440, description="会话空闲超时(分钟)"
|
||||
)
|
||||
enable_tls_fingerprint: bool = Field(
|
||||
False, description="是否启用 TLS 指纹模拟(模拟 Node.js/Claude Code 客户端)"
|
||||
)
|
||||
session_id_masking_enabled: bool = Field(
|
||||
False, description="是否启用会话 ID 伪装(固定 metadata.user_id 中 session 片段)"
|
||||
)
|
||||
|
||||
@@ -7,8 +7,6 @@ DEFAULT_ANTHROPIC_VERSION = "2023-06-01"
|
||||
DEFAULT_ACCEPT = "application/json"
|
||||
STREAM_HELPER_METHOD = "stream"
|
||||
SESSION_ID_MASKING_TTL_SECONDS = 15 * 60
|
||||
# 仅代表“启用 Claude Code TLS 配置”的客户端 profile 标识(best-effort)。
|
||||
TLS_PROFILE_CLAUDE_CODE = "claude_code_nodejs"
|
||||
|
||||
# Claude Code OAuth required betas.
|
||||
BETA_CLAUDE_CODE = "claude-code-20250219"
|
||||
@@ -48,5 +46,4 @@ __all__ = [
|
||||
"DEFAULT_ANTHROPIC_VERSION",
|
||||
"SESSION_ID_MASKING_TTL_SECONDS",
|
||||
"STREAM_HELPER_METHOD",
|
||||
"TLS_PROFILE_CLAUDE_CODE",
|
||||
]
|
||||
|
||||
@@ -8,7 +8,6 @@ from typing import TYPE_CHECKING, Any
|
||||
|
||||
from src.core.logger import logger
|
||||
from src.models.admin_requests import ClaudeCodeAdvancedConfig
|
||||
from src.services.provider.adapters.claude_code.constants import TLS_PROFILE_CLAUDE_CODE
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from src.services.provider.pool.config import PoolConfig
|
||||
@@ -22,7 +21,6 @@ class ClaudeCodeRequestContext:
|
||||
key_id: str | None = None
|
||||
max_sessions: int | None = None
|
||||
session_idle_timeout_minutes: int = 5
|
||||
enable_tls_fingerprint: bool = False
|
||||
session_id_masking_enabled: bool = False
|
||||
cache_ttl_override_enabled: bool = False
|
||||
cache_ttl_override_target: str = "ephemeral"
|
||||
@@ -85,9 +83,6 @@ def build_claude_code_request_context(
|
||||
if advanced_config and advanced_config.session_idle_timeout_minutes is not None
|
||||
else 5
|
||||
)
|
||||
enable_tls_fingerprint = (
|
||||
bool(advanced_config.enable_tls_fingerprint) if advanced_config else False
|
||||
)
|
||||
session_id_masking_enabled = (
|
||||
bool(advanced_config.session_id_masking_enabled) if advanced_config else False
|
||||
)
|
||||
@@ -110,7 +105,6 @@ def build_claude_code_request_context(
|
||||
key_id=normalized_key_id,
|
||||
max_sessions=max_sessions,
|
||||
session_idle_timeout_minutes=idle_timeout_minutes,
|
||||
enable_tls_fingerprint=enable_tls_fingerprint,
|
||||
session_id_masking_enabled=session_id_masking_enabled,
|
||||
cache_ttl_override_enabled=cache_ttl_override_enabled,
|
||||
cache_ttl_override_target=cache_ttl_override_target,
|
||||
@@ -120,22 +114,14 @@ def build_claude_code_request_context(
|
||||
)
|
||||
|
||||
|
||||
def resolve_claude_code_tls_profile(
|
||||
ctx: ClaudeCodeRequestContext | None,
|
||||
) -> str | None:
|
||||
if ctx and ctx.enable_tls_fingerprint:
|
||||
return TLS_PROFILE_CLAUDE_CODE
|
||||
return None
|
||||
|
||||
|
||||
def build_and_set_claude_code_request_context(
|
||||
*,
|
||||
provider_config: Any,
|
||||
key_id: str | None,
|
||||
is_stream: bool,
|
||||
provider_id: str | None = None,
|
||||
) -> tuple[ClaudeCodeRequestContext, str | None]:
|
||||
"""构建并写入 Claude Code 上下文,同时返回对应 TLS profile。"""
|
||||
) -> ClaudeCodeRequestContext:
|
||||
"""构建并写入 Claude Code 上下文。"""
|
||||
ctx = build_claude_code_request_context(
|
||||
provider_config=provider_config,
|
||||
key_id=key_id,
|
||||
@@ -143,7 +129,7 @@ def build_and_set_claude_code_request_context(
|
||||
provider_id=provider_id,
|
||||
)
|
||||
set_claude_code_request_context(ctx)
|
||||
return ctx, resolve_claude_code_tls_profile(ctx)
|
||||
return ctx
|
||||
|
||||
|
||||
__all__ = [
|
||||
@@ -151,6 +137,5 @@ __all__ = [
|
||||
"build_claude_code_request_context",
|
||||
"ClaudeCodeRequestContext",
|
||||
"get_claude_code_request_context",
|
||||
"resolve_claude_code_tls_profile",
|
||||
"set_claude_code_request_context",
|
||||
]
|
||||
|
||||
@@ -644,16 +644,16 @@ class ClaudeCodeEnvelope:
|
||||
|
||||
set_current_fingerprint(ensure_key_fingerprint(key, persist_if_missing=True))
|
||||
|
||||
_ctx, tls_profile = build_and_set_claude_code_request_context(
|
||||
build_and_set_claude_code_request_context(
|
||||
provider_config=provider_config,
|
||||
key_id=key_id,
|
||||
is_stream=is_stream,
|
||||
provider_id=provider_id,
|
||||
)
|
||||
fp = get_current_fingerprint()
|
||||
if _ctx.enable_tls_fingerprint and fp:
|
||||
if fp:
|
||||
return fp.impersonate
|
||||
return tls_profile
|
||||
return None
|
||||
|
||||
async def post_wrap_request(self, request_body: dict[str, Any]) -> None:
|
||||
await enforce_distributed_session_controls(
|
||||
|
||||
Reference in New Issue
Block a user