const messages: MessageParam[] = [{ role: "user", content: userInput }];
const response = await client.messages.create({
model: "claude-opus-4-6",
if (response.stop_reason === "tool_use") {
const toolResults = await Promise.all(
.filter((b) => b.type === "tool_use")
type: "tool_result" as const,
content: await executeTool(b.name, b.input),
messages.push({ role: "assistant", content: response.content });
messages.push({ role: "user", content: toolResults });
return response.content.find((b) => b.type === "text")?.text ?? "";