Release 0.72.1 removes jsonSchemaOutputFormat and zodOutputFormat as named exports of the package root, one day after 0.72.0 added them alongside Structured Outputs support in the Messages API. Anyone who wrote import { zodOutputFormat } from '@anthropic-ai/sdk' against 0.72.0 loses that import at 0.72.1. Neither function moved, changed signature or lost a capability; only the root re-export did.
What changed
jsonSchemaOutputFormatno longer resolves from the root.import { jsonSchemaOutputFormat } from '@anthropic-ai/sdk'stops compiling. The function that builds a JSON Schema output format for.parse()and.create()is unchanged.zodOutputFormatno longer resolves from the root.import { zodOutputFormat } from '@anthropic-ai/sdk'stops compiling. The function that builds an output format from a Zod schema is unchanged.
Anthropic’s own changelog files both under Bug Fixes for 0.72.1, as one line: “remove OutputFormat exports from index.ts”. Nothing else in the release touches either helper.
Before and after
Either import, taken straight from the package root, stops resolving:
import { jsonSchemaOutputFormat } from '@anthropic-ai/sdk';import { zodOutputFormat } from '@anthropic-ai/sdk';
export { jsonSchemaOutputFormat };Both functions are unchanged and still exported, from the subpath each always lived at internally:
import { jsonSchemaOutputFormat } from '@anthropic-ai/sdk/helpers/json-schema';import { zodOutputFormat } from '@anthropic-ai/sdk/helpers/zod';Migration guidance and its limits
Both findings carry an assisted fix. Name a model provider on the command line or in emendant.json and npx emendant fix writes the two patches; without one the findings are reported with their guidance and npx emendant scan is where they surface. The edit is a specifier change rather than a rewrite of the call: repoint the import at @anthropic-ai/sdk/helpers/json-schema or @anthropic-ai/sdk/helpers/zod, and the call site that uses the returned output format is unchanged.
That is a small enough edit to do by hand, and worth knowing the difference before you take the patch. An assisted patch is one model’s answer to one site rather than the same rewrite everywhere, because the subpath each helper moved back to is documented by the release and is not in the two published packages the entry was derived from. It is proved before you see it, in a copy of your repository moved to 0.72.1 and put through whichever of your own typecheck and tests it finds there, and withheld if it fails.
A scan finds the import. It does not find every consequence of that import failing to resolve: a build that only ever ran a bundler’s own module resolution, rather than tsc or your test suite, may not have noticed the root export was gone until you upgrade and it does. Typecheck and run tests after making the change, which is what the feed entry asks verification to cover for both changes.
If your code imported either helper under a local alias, or re-exported it from a module of your own, a text search for the string OutputFormat across your source finds every place the release can affect, since both removed names carry it and nothing else in the package does.
What Emendant detects, fixes and verifies
2 changes in @anthropic-ai/sdk 0.72.1. 0 patched by a transform, 2 patched only with a model provider you name, 0 report only. Every patch is proved in a copy of your repository before it is offered, and its header names the checks that passed. This table is generated from the feed entry, so it cannot claim more than the entry does.
| Change | Severity | Detects | Fix | Verified by |
|---|---|---|---|---|
Removed jsonSchemaOutputFormatanthropic-ai-sdk-npm-0.72.1-json-schema-output-format-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed zodOutputFormatanthropic-ai-sdk-npm-0.72.1-zod-output-format-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
emendant explain <change-id> prints any row's entry, guidance and sources at the terminal.
Coverage
- Snapshot
2026-09-20.1, sequence 27, signed 20 September 2026- Minimum CLI
emendant@0.1.0- Feed entry
feed/npm/@anthropic-ai/sdk/0.72.1.json
emendant feed status shows the snapshot your machine holds, and emendant feed update fetches the latest.
Primary sources
Every claim above was checked against these, each pinned to the release rather than to a default branch.
- @anthropic-ai/sdk@0.72.1npm registry, the published package
- @anthropic-ai/sdk@0.72.0npm registry, the published package
Scan your repository
Runs locally, reads your lockfile and source, sends nothing anywhere.
npx emendant scanThen npx emendant fix writes the patches the table says exist. The getting started guide covers the flags and the patch grades.