Python 88.3%
TypeScript 7.6%
Shell 4.1%
1// Custom tool forced via tool_choice {type: tool}. STATUS: UNVERIFIED as a script (identical raw request LIVE_VERIFIED 2026-09-18, a1). Full loop: examples/shared/tool-loop/anthropic_tool_loop.ts2// Run: node --env-file=.env --experimental-strip-types examples/anthropic/tools/custom-tools/basic.ts3import Anthropic from "@anthropic-ai/sdk";4import { logRequest } from "../../../shared/tool-loop/log.ts";5const client = new Anthropic();6const resp: any = await client.messages.create({ model: "claude-haiku-4-5-20251001", max_tokens: 200, tools: [{ name: "get_weather", description: "Get the current weather for a city.", input_schema: { type: "object", properties: { location: { type: "string" } }, required: ["location"] } }], tool_choice: { type: "tool", name: "get_weather" }, messages: [{ role: "user", content: "Weather in Paris?" }] } as any);7logRequest("anthropic", "POST", "/v1/messages", 200, 0.002, "basic.ts");8console.log(resp.stop_reason, JSON.stringify(resp.content.map((b: any) => ({ type: b.type, name: b.name, toolset_name: b.toolset_name, input: b.input, caller: b.caller, text: b.text, content: typeof b.content === "object" ? "[…]" : b.content })), null, 1).slice(0, 1500));9console.log("usage", resp.usage, "container", resp.container);10