chore(auto-router): document mutable logging API boundaries

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Moe Khalil 2026-09-20 15:04:33 +00:00
parent 8505d10017
commit bda1bd89ae

View file

@ -126,8 +126,8 @@ class HttpJevClassifierClient:
for key, value in TypeAdapter(Mapping[str, object]).validate_python(metadata).items()
}
)
params: Final = {
"metadata": {
params: Final = { # mutable-ok: Logging's kwargs and litellm_params require dicts
"metadata": { # mutable-ok: Logging enriches metadata in place before dispatching callbacks
**forwarded_internal_call_metadata(parent_metadata, AUTOROUTER_CLASSIFIER_CALL_ORIGIN),
INTERNAL_CALL_ORIGIN_METADATA_KEY: AUTOROUTER_CLASSIFIER_CALL_ORIGIN,
},
@ -136,7 +136,7 @@ class HttpJevClassifierClient:
}
logging_obj: Final = Logging(
model=f"typesafe/{request.model}",
messages=[{"role": "user", "content": request.state}],
messages=[{"role": "user", "content": request.state}], # mutable-ok: callbacks require JSON message lists
stream=False,
call_type="pass_through_endpoint",
start_time=start_time,
@ -148,7 +148,7 @@ class HttpJevClassifierClient:
logging_obj.update_environment_variables(
model=f"typesafe/{request.model}",
user=parent_user if isinstance(parent_user := parent.get("user"), str) else None,
optional_params={},
optional_params={}, # mutable-ok: Logging's optional_params contract requires a dict
litellm_params=params,
)
normalized: Final = TypeSafePassthroughLoggingHandler.typesafe_passthrough_handler(