// Defines plugin middleware contracts for agent tool results. import type { AgentToolResult } from "../agents/runtime/index.js"; import type { PluginToolMatcher } from "./hook-types.js"; export type OpenClawAgentToolResult = AgentToolResult; export type AgentToolResultMiddlewareRuntime = "openclaw" | "codex"; export type AgentToolResultMiddlewareEvent = { threadId?: string; turnId?: string; toolCallId: string; toolName: string; args: Record; cwd?: string; isError?: boolean; result: OpenClawAgentToolResult; }; export type AgentToolResultMiddlewareContext = { runtime: AgentToolResultMiddlewareRuntime; agentId?: string; sessionId?: string; sessionKey?: string; runId?: string; }; export type AgentToolResultMiddlewareResult = { result: OpenClawAgentToolResult; }; export type AgentToolResultMiddleware = ( event: AgentToolResultMiddlewareEvent, ctx: AgentToolResultMiddlewareContext, ) => Promise | AgentToolResultMiddlewareResult | void; export type AgentToolResultMiddlewareOptions = { matcher?: PluginToolMatcher; runtimes?: AgentToolResultMiddlewareRuntime[]; }; export type AgentToolResultMiddlewareScope = { matcher?: PluginToolMatcher; runtimes: AgentToolResultMiddlewareRuntime[]; };