Isomorphic tool system: toolDefinition() with Zod schemas, .server() and .client() implementations, passing tools to both chat() on server and useChat/clientTools on client, tool approval flows with needsApproval and bound interrupts (resolveInterrupt), lazy tool discovery with lazy:true, rendering ToolCallPart and ToolResultPart in UI.
$npx -y skills add tanstack/ai --skill tool-callingInstalls into the current project.
Run `npx skills use "https://github.com/tanstack/ai" --skill "tanstack/ai/tool-calling"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.
Use the skills in "https://github.com/tanstack/ai" that are relevant to the current task. Run `npx skills add "https://github.com/tanstack/ai"` and select the relevant skills, then follow their instructions.