BeforeProviderRequest (canonical)
hook-surface:before-provider-request
HookSurfacechannels-hooks/hook-surfaces/canonical/missing-canonical-hooks.yaml·Open in Graph → {
"id": "hook-surface:before-provider-request",
"_kind": "HookSurface",
"_file": "channels-hooks/hook-surfaces/canonical/missing-canonical-hooks.yaml",
"_cluster": "channels-hooks",
"attributes": {
"eventName": "BeforeProviderRequest (canonical)",
"displayName": "BeforeProviderRequest (canonical)",
"kind": "canonical",
"direction": "pre",
"blocking": true,
"family": "in-process",
"payloadSchema": {
"type": "object",
"required": [
"session_id",
"model_id",
"request_body"
],
"properties": {
"session_id": {
"type": "string"
},
"model_id": {
"type": "string"
},
"provider_id": {
"type": "string"
},
"request_body": {
"type": "object",
"description": "Full provider request envelope as it would be sent on the wire."
}
}
},
"description": "Fires immediately before Transport-Client serializes and sends the\nrequest to the provider. The last point at which a subscriber can\ninspect, redact, or rewrite the actual request bytes. Distinct from\nBeforePromptBuild (which sits before assembly). Subscribers used for\naudit redaction, transport-proxy injection, and request-shape\ninstrumentation.\n"
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "agent-runtime-impl:claude-code.runtime@1.x",
"to": "hook-surface:before-provider-request",
"kind": "exposes",
"attributes": {}
},
{
"from": "hook-mapping:before-provider-request-pi",
"to": "hook-surface:before-provider-request",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:before-provider-request-oh-my-pi",
"to": "hook-surface:before-provider-request",
"kind": "maps_hook",
"attributes": {}
}
]
}