II.
HookSurface JSON
Structured · livehook-surface:gemini.tool-call-post
tool_call_post (Gemini) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "hook-surface:gemini.tool-call-post",
"_kind": "HookSurface",
"_file": "channels-hooks/hook-surfaces/native/gemini-tool-call-hooks.yaml",
"_cluster": "channels-hooks",
"attributes": {
"eventName": "tool_call_post (Gemini)",
"displayName": "tool_call_post (Gemini)",
"kind": "native",
"originVendor": "Google",
"direction": "post",
"blocking": false,
"family": "observer",
"payloadSchema": {
"type": "object",
"required": [
"tool_name",
"tool_result"
],
"properties": {
"tool_name": {
"type": "string"
},
"tool_result": {
"type": "object"
},
"session_id": {
"type": "string"
},
"error": {
"type": "object",
"description": "Set when the tool call failed; otherwise absent."
}
}
},
"description": "Gemini CLI's post-tool hook. Fired after each tool invocation\ncompletes (success or failure). Observer-only — cannot block.\nCanonicalizes to PostToolUse via hooks-mux mapping.\n"
},
"outgoingEdges": [
{
"from": "hook-surface:gemini.tool-call-post",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
}
],
"incomingEdges": [
{
"from": "agent-core-impl:gemini-cli.core@current",
"to": "hook-surface:gemini.tool-call-post",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-runtime-impl:gemini-cli.runtime@current",
"to": "hook-surface:gemini.tool-call-post",
"kind": "exposes",
"attributes": {}
},
{
"from": "hook-mapping:gemini-tool-call-post-native",
"to": "hook-surface:gemini.tool-call-post",
"kind": "maps_hook",
"attributes": {}
}
]
}