Skip to content

bodhi-realtime-agent / HooksManager

Class: HooksManager

Defined in: core/hooks.ts:9

Manages registered lifecycle hooks and exposes them as getter accessors. Zero-overhead pattern: callers check if (hooks.onX) hooks.onX(event).

Constructors

Constructor

new HooksManager(): HooksManager

Returns

HooksManager

Accessors

onAgentTransfer

Get Signature

get onAgentTransfer(): (event) => void | undefined

Defined in: core/hooks.ts:32

Returns

(event) => void

Fires after an agent transfer completes (reconnection included).

Parameters
event
fromAgent

string

reconnectMs

number

sessionId

string

toAgent

string

Returns

void

undefined


onError

Get Signature

get onError(): (event) => void | undefined

Defined in: core/hooks.ts:41

Returns

(event) => void

Fires on any framework error. Use for centralized error logging/alerting.

Parameters
event
component

string

error

Error

sessionId?

string

severity

"error" | "warn" | "fatal"

Returns

void

undefined


onMemoryExtraction

Get Signature

get onMemoryExtraction(): (event) => void | undefined

Defined in: core/hooks.ts:38

Returns

(event) => void

Fires after the memory distiller extracts facts from conversation.

Parameters
event
durationMs

number

factsExtracted

number

userId

string

Returns

void

undefined


onSessionEnd

Get Signature

get onSessionEnd(): (event) => void | undefined

Defined in: core/hooks.ts:20

Returns

(event) => void

Fires when the session transitions to CLOSED.

Parameters
event
durationMs

number

reason

string

sessionId

string

Returns

void

undefined


onSessionStart

Get Signature

get onSessionStart(): (event) => void | undefined

Defined in: core/hooks.ts:17

Returns

(event) => void

Fires when the Gemini connection becomes ACTIVE for the first time.

Parameters
event
agentName

string

sessionId

string

userId

string

Returns

void

undefined


onSubagentStep

Get Signature

get onSubagentStep(): (event) => void | undefined

Defined in: core/hooks.ts:35

Returns

(event) => void

Fires after each step of a background subagent's LLM execution.

Parameters
event
stepNumber

number

subagentName

string

tokensUsed

number

toolCalls

string[]

Returns

void

undefined


onToolCall

Get Signature

get onToolCall(): (event) => void | undefined

Defined in: core/hooks.ts:26

Returns

(event) => void

Fires when Gemini requests a tool invocation (before execution).

Parameters
event
agentName

string

execution

ToolExecution

sessionId

string

toolCallId

string

toolName

string

Returns

void

undefined


onToolResult

Get Signature

get onToolResult(): (event) => void | undefined

Defined in: core/hooks.ts:29

Returns

(event) => void

Fires after a tool completes, is cancelled, or errors.

Parameters
event
durationMs

number

error?

string

status

"completed" | "cancelled" | "error"

toolCallId

string

Returns

void

undefined


onTurnLatency

Get Signature

get onTurnLatency(): (event) => void | undefined

Defined in: core/hooks.ts:23

Returns

(event) => void

Fires at the end of each turn with segment-level latency breakdown.

Parameters
event
segments

{ backendToClientMs?: number; backendToGeminiMs?: number; clientToBackendMs?: number; geminiProcessingMs?: number; geminiToBackendMs?: number; totalE2EMs: number; }

segments.backendToClientMs?

number

segments.backendToGeminiMs?

number

segments.clientToBackendMs?

number

segments.geminiProcessingMs?

number

segments.geminiToBackendMs?

number

segments.totalE2EMs

number

sessionId

string

turnId

string

Returns

void

undefined

Methods

register()

register(hooks): void

Defined in: core/hooks.ts:13

Register (or overwrite) hook callbacks. Merges with any previously registered hooks.

Parameters

hooks

FrameworkHooks

Returns

void

Built with VitePress