Infer the state type for a specific subagent by extracting and merging its middleware state schemas, plus the base agent state (messages).
InferSubagentState: InferSubagentByName<
T,
TName
> extends never Record<string, unknown> : InferSubagentByName<T, TName> extends SA BaseSubagentState<ToolCall> InferMiddlewareStatesFromArray<ExtractSubAgentMiddleware<SA>> : Record<string, unknown>const agent = createDeepAgent({
subagents: [
{ name: "researcher", middleware: [ResearchMiddleware] }
] as const,
});
type ResearcherState = InferSubagentState<typeof agent, "researcher">;
// ResearcherState includes { messages: Message<ToolCall>[], ...ResearchMiddleware state }