@anthropic-ai/sdk 0.118.0 removes one named export: MidConversationSystemBlockParam, the parameter type for a mid_conv_system content block. The package’s own changelog files this as a bug fix rather than a rename: the type described a block the API never accepted. Code that imports the name from @anthropic-ai/sdk/resources stops compiling on upgrade.
What changed
- Removed, not renamed.
MidConversationSystemBlockParamis gone from@anthropic-ai/sdk/resourcesand from every path that re-exported it, including the package root. Nothing takes its place in theContentBlockParamunion it used to belong to. - Filed as a bug fix. The 0.118.0 changelog lists it under “Bug Fixes” as removing an “unsupported
mid_conv_systemcontent block”. The server already rejected this block before the release; 0.118.0 removes the type that described it.
Before and after
The one site Emendant finds:
import { MidConversationSystemBlockParam } from '@anthropic-ai/sdk/resources';
export { MidConversationSystemBlockParam };There is no after. The entry carries an assisted fix, so emendant fix asks a model once you name a provider, but nothing replaces this type and the guidance tells the model to decline rather than invent a name. Expect the finding back unfixed.
Migration guidance and its limits
There is most likely nothing to apply. The entry’s fix is assisted rather than deterministic, so naming a model provider on the command line or in emendant.json lets emendant fix try the rewrite, and without one the finding is reported with its guidance and nothing is sent anywhere. Nothing takes this type’s place, so a decline is the honest answer and the guidance asks for one.
Delete the import, and delete any code that still builds a mid_conv_system block by hand, since the API already refused it before this release removed the type.
Attribution is by import specifier: only a name imported from @anthropic-ai/sdk/resources is reported. The same name imported from a local module or a vendor shim, or brought in under an alias, does not carry that specifier, so the matcher does not follow it there and nothing is reported for it.
A clean scan says the name is not imported from @anthropic-ai/sdk/resources. It does not say your requests never built a mid_conv_system block, since a plain object literal with that shape needs no import at all, and the tool traces imports and constructed values rather than the fields of an object sent to a client method.
What Emendant detects, fixes and verifies
1 change in @anthropic-ai/sdk 0.118.0. 0 patched by a transform, 1 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 MidConversationSystemBlockParamanthropic-ai-sdk-npm-0.118.0-resources-mid-conversation-system-block-param-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.118.0.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.118.0npm registry, the published package
- @anthropic-ai/sdk@0.117.1npm 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.