@langchain/core 1.0.0 sits under every v1 provider package, so a repository picks it up when it upgrades @langchain/openai, @langchain/anthropic or langchain. What breaks: the pre-LCEL entry points on a chat model, four legacy subpaths, and 24 named exports the 0.3.x declaration files carried and 1.0.0 does not.
What changed
predictandpredictMessagesare gone from chat models. Both were deprecated in favour ofinvokelong before v1. Emendant attributes the calls through the provider packages, so a call on aChatOpenAI,ChatAnthropic,ChatGoogleGenerativeAIor@langchain/communitymodel is reported.- Four legacy subpaths were removed.
runnables/remote,tracers/initialize,tracers/tracer_langchain_v1and the twoutils/hashutilities, all superseded by LangSmith’s tracing, none with a replacement. - 24 named exports were removed. Found by diffing the two packages’ declaration files, not the migration guide, which does not list them. Most are content block and
*FieldsWith*types in@langchain/core/messages; the rest includegetCacheKey,TraceGroup,traceAsGroup,createChatMessageChunkEncoderStream,LoadOptions,SerializableLike,BaseStoreInterface,getRuntimeEnvironmentSyncandinsecureHash. - 29 more gained a deprecation marker. They still work at this release. The
is*Messageandis*Blockguards are most of them, along withMessageContentComplex,MessageContentText,MessageContentImageUrl,ImageDetail,ProviderFormatTypes,StandardContentBlockConverter,convertToOpenAIImageBlock,convertToProviderContentBlock,parseBase64DataUrlandparseMimeType. The table below names each one. load()lost two options.secretsFromEnvandmaxDepthare no longer declared on the second argument ofloadfrom@langchain/core/load. These two are reported at the key in the options object rather than at an import, so they fire on code whose imports are already correct.
Before and after
The two pre-LCEL calls on models held in variables, which is what makes the receiver attributable:
import { ChatAnthropic } from '@langchain/anthropic';import { ChatOpenAI } from '@langchain/openai';
const openai = new ChatOpenAI({ model: 'gpt-4o' });const anthropic = new ChatAnthropic({ model: 'claude-sonnet-4-5' });
export async function summarise(text: string): Promise<string> { return openai.predict(text);}
export async function reply(messages: never[]) { return anthropic.predictMessages(messages);}The migration is to invoke, which returns a message. The string-returning call reads its text; the other is a rename:
export async function summarise(text: string): Promise<string> { return (await openai.invoke(text)).text;}
export async function reply(messages: never[]) { return anthropic.invoke(messages);}A plain rename would typecheck in the second case and silently change the return type in the first, which is why this is an assisted patch rather than a transform.
The removed and newly deprecated names carry an assisted fix too, and what each one needs is a different question. Several of the content block types have a public successor in the 1.0 message types and rewrite cleanly; the tracing exports and the two hash utilities have no successor in the package at all, and require a developer to choose a replacement.
Migration guidance and its limits
Fifty-six of the fifty-seven findings carry an assisted fix, so a model provider named on the command line or in emendant.json is what turns this scan into patches. Without one every finding is reported with its guidance and nothing is sent anywhere. Review the suggested patches before applying them.
Read what comes back rather than applying it wholesale, because the release does not answer every one of these the same way. The predict migration changes a return type as well as a name, so let your typecheck confirm the patch followed what invoke returns. A content block type with a public successor in the 1.0 message types rewrites cleanly. The tracing exports, the two hash utilities and the removed load() options have no successor inside the package. Review their role in your application and choose a replacement where needed; these sites may have no patch. Whether your code needed a removed content block type at all is still a question about your code, and no entry here claims to know.
The four removed subpaths are the one report-only finding. Nothing in @langchain/core replaces runnables/remote, tracers/initialize, tracers/tracer_langchain_v1 or the two utils/hash utilities: LangSmith’s own tracing superseded them, which is a different package rather than a different import.
The 29 deprecations keep working in this release. Schedule their migration and check that each replacement preserves the behaviour your application needs.
The langchain package’s own reduction is on LangChain 1.0: the legacy modules moved to @langchain/classic. Upgrade the two packages together. Behaviour changes in the v1 message model that keep the same names are not in this entry.
What Emendant detects, fixes and verifies
57 changes in @langchain/core 1.0.0. 0 automatic fixes, 56 fixes requiring a model provider you choose, 1 report only. Each patch states which checks passed. Understand patch evidence.
| Change | Severity | Detects | Fix | Verified by |
|---|---|---|---|---|
predict and predictMessages removed from chat modelslangchain-core-npm-1.0.0-chat-model-predict-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Four legacy core subpaths were removedlangchain-core-npm-1.0.0-legacy-subpaths-removed | Breaking |
| Report only | Not applicable |
Removed getCacheKeylangchain-core-npm-1.0.0-caches-get-cache-key-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed TraceGrouplangchain-core-npm-1.0.0-callbacks-manager-trace-group-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed traceAsGrouplangchain-core-npm-1.0.0-callbacks-manager-trace-as-group-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed createChatMessageChunkEncoderStreamlangchain-core-npm-1.0.0-language-models-chat-models-create-chat-message-chunk-encoder-stream-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed LoadOptionslangchain-core-npm-1.0.0-load-load-options-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed SerializableLikelangchain-core-npm-1.0.0-load-serializable-serializable-like-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed Base64ContentBlocklangchain-core-npm-1.0.0-messages-base64-content-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed BaseDataContentBlocklangchain-core-npm-1.0.0-messages-base-data-content-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed ChatMessageFieldsWithRolelangchain-core-npm-1.0.0-messages-chat-message-fields-with-role-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed DataContentBlocklangchain-core-npm-1.0.0-messages-data-content-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed DataContentBlockTypelangchain-core-npm-1.0.0-messages-data-content-block-type-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed FunctionMessageFieldsWithNamelangchain-core-npm-1.0.0-messages-function-message-fields-with-name-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed IDContentBlocklangchain-core-npm-1.0.0-messages-idcontent-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed PlainTextContentBlocklangchain-core-npm-1.0.0-messages-plain-text-content-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed StandardAudioBlocklangchain-core-npm-1.0.0-messages-standard-audio-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed StandardFileBlocklangchain-core-npm-1.0.0-messages-standard-file-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed StandardImageBlocklangchain-core-npm-1.0.0-messages-standard-image-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed StandardTextBlocklangchain-core-npm-1.0.0-messages-standard-text-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed ToolMessageFieldsWithToolCallIdlangchain-core-npm-1.0.0-messages-tool-message-fields-with-tool-call-id-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed URLContentBlocklangchain-core-npm-1.0.0-messages-urlcontent-block-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed ToolMessageFieldsWithToolCallIdlangchain-core-npm-1.0.0-messages-tool-tool-message-fields-with-tool-call-id-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isToolMessagelangchain-core-npm-1.0.0-messages-tool-is-tool-message-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isToolMessageChunklangchain-core-npm-1.0.0-messages-tool-is-tool-message-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed BaseStoreInterfacelangchain-core-npm-1.0.0-stores-base-store-interface-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed getRuntimeEnvironmentSynclangchain-core-npm-1.0.0-utils-env-get-runtime-environment-sync-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed insecureHashlangchain-core-npm-1.0.0-utils-hash-insecure-hash-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated ImageDetaillangchain-core-npm-1.0.0-messages-image-detail-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated MessageContentComplexlangchain-core-npm-1.0.0-messages-message-content-complex-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated MessageContentImageUrllangchain-core-npm-1.0.0-messages-message-content-image-url-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated MessageContentTextlangchain-core-npm-1.0.0-messages-message-content-text-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated ProviderFormatTypeslangchain-core-npm-1.0.0-messages-provider-format-types-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated StandardContentBlockConverterlangchain-core-npm-1.0.0-messages-standard-content-block-converter-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated convertToOpenAIImageBlocklangchain-core-npm-1.0.0-messages-convert-to-open-aiimage-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated convertToProviderContentBlocklangchain-core-npm-1.0.0-messages-convert-to-provider-content-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isAIMessagelangchain-core-npm-1.0.0-messages-is-aimessage-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isAIMessageChunklangchain-core-npm-1.0.0-messages-is-aimessage-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isBase64ContentBlocklangchain-core-npm-1.0.0-messages-is-base64-content-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isBaseMessagelangchain-core-npm-1.0.0-messages-is-base-message-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isBaseMessageChunklangchain-core-npm-1.0.0-messages-is-base-message-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isChatMessagelangchain-core-npm-1.0.0-messages-is-chat-message-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isChatMessageChunklangchain-core-npm-1.0.0-messages-is-chat-message-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isDataContentBlocklangchain-core-npm-1.0.0-messages-is-data-content-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isHumanMessagelangchain-core-npm-1.0.0-messages-is-human-message-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isHumanMessageChunklangchain-core-npm-1.0.0-messages-is-human-message-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isIDContentBlocklangchain-core-npm-1.0.0-messages-is-idcontent-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isPlainTextContentBlocklangchain-core-npm-1.0.0-messages-is-plain-text-content-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isSystemMessagelangchain-core-npm-1.0.0-messages-is-system-message-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isSystemMessageChunklangchain-core-npm-1.0.0-messages-is-system-message-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isToolMessagelangchain-core-npm-1.0.0-messages-is-tool-message-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isToolMessageChunklangchain-core-npm-1.0.0-messages-is-tool-message-chunk-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated isURLContentBlocklangchain-core-npm-1.0.0-messages-is-urlcontent-block-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated parseBase64DataUrllangchain-core-npm-1.0.0-messages-parse-base64-data-url-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Deprecated parseMimeTypelangchain-core-npm-1.0.0-messages-parse-mime-type-deprecated | Deprecation |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed secretsFromEnv from the second argument of load()langchain-core-npm-1.0.0-load-load-argument-2-secrets-from-env-removed | Breaking |
| Patch, only when you name a model provider | Your typecheck and tests |
Removed maxDepth from the second argument of load()langchain-core-npm-1.0.0-load-load-argument-2-max-depth-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.
The error TS lines are what TypeScript 5.9.3 printed when code that compiled against @langchain/core 0.3.80 was compiled against 1.0.0. A row without one is a change the compiler does not report, such as a deprecation or a change in behaviour.
Coverage
Requires emendant@0.1.4 or later. Run emendant feed update to get the latest coverage.
Coverage details
- Snapshot
2026-09-20.1, sequence 27, signed 20 September 2026- Feed entry
feed/npm/@langchain/core/1.0.0.json
emendant feed status shows the snapshot your machine holds.
Primary sources
- Langchain v1langchain-ai/docs at commit bff16d7f
- @langchain/core@1.0.0npm, the published package
- @langchain/core@1.0.0npm registry, the published package
- @langchain/core@0.3.80npm registry, the published package
Scan your repository
Find affected code without editing your files.
npx emendant scanThen npx emendant fix writes the patches the table says exist. The getting started guide covers the flags and the patch grades.
Related release pages
- Later @langchain/core release: @langchain/core 1.1.7: CallbackManager and LangChainTracer signatures change with LangSmith 0.4
- Upgrade together with: LangChain 1.0 for JavaScript: the legacy modules moved to @langchain/classic
The LangChain.js migration guide lists every release page and says which to read for your upgrade.