#32201 [Bug]: `post_call` guardrails attached to a pass-through endpoint are consulted but never enforce (e.g. `tool_permission` does not block)
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
A `tool_permission` guardrail with `mode: post_call`, `default_action: deny`, `on_disallowed_action: block` attached to a `pass_through_endpoints` route is **loaded, attached, and considered** for the request (the debug logs confirm all three), but it **never inspects the upstream response body and never blocks**. A response containing a `tool_use`/tool-call that the rule is configured to deny is relayed back to the client unchanged, with HTTP 200.
The docs at https://docs.litellm.ai/docs/proxy/pass_through_guardrails state guardrails run on pass-through endpoints and support `pre_call`/`post_call`, so I expected a `post_call` `deny` rule to block. It does not — for a tool-call guardrail the tool call only exists in the *response*, and `post_call` is the guardrail's only supported hook, so there is no working mode to enforce it on a pass-through.
Root cause appears to be that `tool_permission`'s response inspection operates on LiteLLM's **normalized** `ModelResponse` (`choices[].message.tool_calls`), which is never produced for a raw pass-thr…