// stop_sequences → stop_reason stop_sequence // STATUS: LIVE_VERIFIED 2026-09-18 with @anthropic-ai/sdk 0.126.0. // Run: node --env-file=.env --experimental-strip-types examples/anthropic/messages/stop_sequences.ts (ANTHROPIC_API_KEY read from env by the SDK) import Anthropic from "@anthropic-ai/sdk"; import { appendFileSync } from "node:fs"; const client = new Anthropic(); const MODEL = "claude-haiku-4-5-20251001"; const log = (path: string, status: number, note: string) => appendFileSync("reports/live-requests.jsonl", JSON.stringify({ ts: new Date().toISOString().replace(/\.\d+Z$/, "Z"), provider: "anthropic", method: "POST", path, status, est_cost_usd: 0.00005, note }) + "\n"); const msg = await client.messages.create({ model: MODEL, max_tokens: 32, stop_sequences: ["3"], system: "Output only what is asked.", messages: [{ role: "user", content: "Count: 1 2 3 4 5" }] }); console.log(JSON.stringify(msg.content[0]?.type === "text" ? msg.content[0].text : ""), msg.stop_reason, msg.stop_sequence); if (msg.stop_reason !== "stop_sequence") throw new Error("expected stop_sequence"); log("/v1/messages", 200, "example stop_sequences.ts");