What is the primary goal of wiring up multiple tools to Claude?	To allow Claude to answer complex user queries that require multiple sequential tool calls.
In a multi-step tool-use scenario, what is the typical sequence of events?	Claude requests Tool 1 -> Code executes Tool 1 and returns result -> Claude requests Tool 2 -> Code executes Tool 2 and returns result -> Claude provides final answer.
When implementing tool calling, what crucial assumption must be made about user input?	You must assume that Claude might want to use multiple tools in a row to answer a single query.
How is the process of handling multiple tool calls typically implemented in code?	By using a loop (e.g., a while loop) that continues calling Claude until the response is not a tool request.
Why were the `addUserMessage` and `addAssistantMessageHelper` functions refactored?	To allow them to handle and store multiple message blocks (like text blocks and tool use blocks), rather than assuming only plain text.
What change was made to the `chat` function's return value to support tools?	It was changed to return the entire message received from Claude, anticipating that the message may contain multiple blocks.
What is the purpose of the `textFromMessage` helper function?	To iterate through all blocks within a message and extract and join the text from any blocks where the type is 'text'.
What modification was made to the `chat` function to support tools?	It was updated to accept a list of tool schemas and pass them to the client's `messages.create` function call.
