Skip to content

Function: createToolApprovalHandler()

Makaio Framework


Makaio Framework / ai-adapters-core / createToolApprovalHandler

createToolApprovalHandler<TPayload, TContext, TResponse>(subject, toGlobal, fromGlobal): (connector, context) => () => void

Defined in: ../../../adapters/core/src/utils/tool-approval.ts:305

Factory: Create tool approval handler for adapter connector.

Wires adapter-scoped tool approval subject → AgentSubjects.toolApprove. Handles lazy context resolution to avoid race conditions with adapterSessionId.

Used by both test harnesses (createTestConfig) and production (agent.ts).

TPayload

TContext = ToolApprovalContext

TResponse = { action: "allow"; updatedInput?: Record<string, unknown>; updatedPermissions?: unknown[]; } | { action: "deny"; message: string; shouldAbort?: boolean; }

ScopedSubjectDefinition<string>

Adapter-scoped subject for tool approval requests

ToGlobalToolApprovalFn<TPayload, TContext>

Transform SDK payload to global request

FromGlobalToolApprovalFn<TResponse>

Transform global response to SDK format

Handler registration function

(connector, context) => () => void

// In gemini-sdk/src/tool-handling.ts
export const registerToolApprovalHandler = createToolApprovalHandler(
GeminiConnectorSubjects.acp.tool_approval,
toGlobalToolApproval,
fromGlobalToolApproval,
);