Add http_request and http_response hooks for LLM provider HTTP interception #345
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds HTTP-level hooks that allow intercepting requests to LLM providers for logging, adding custom headers, authentication injection, and request cancellation.
New Hook Events
http_requestFires before each HTTP request to an LLM provider. Handlers receive:
provider,modelId,url,methodheaders(sensitive headers redacted)body(string bodies only)Handlers can return:
{ headers: {...} }to add/override headers{ cancel: true }to abort the requesthttp_responseFires after each HTTP response. Handlers receive:
provider,modelId,status,headers,durationMsExample Hook
Implementation
fetchoption toStreamOptions, threaded through all provider functionscreateFetchfactory option toAgentOptionsandAgentLoopConfigHookRunnermethods, fetch wrapper factory in SDKProvider Support
The
@google/genaiSDK does not expose custom fetch in its public API. Users needing HTTP hooks with Google models should usegoogle-gemini-cliprovider.Security
Sensitive headers are automatically redacted in hook events:
authorization,x-api-key,api-key,x-goog-api-key,anthropic-api-key,proxy-authorization,cookie,set-cookieauth,token,key,secret, orcookieTests
Added 36 tests covering: