diff --git a/.changeset/afraid-paws-give.md b/.changeset/afraid-paws-give.md deleted file mode 100644 index 736a4784c569..000000000000 --- a/.changeset/afraid-paws-give.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@langchain/core": patch ---- - -update chunk concat logic to match on missing ID fields diff --git a/.changeset/angry-ads-retire.md b/.changeset/angry-ads-retire.md deleted file mode 100644 index 38340a4b4c63..000000000000 --- a/.changeset/angry-ads-retire.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@langchain/azure-cosmosdb": patch -"@langchain/cloudflare": patch -"@langchain/community": patch -"@langchain/redis": patch -"langchain": patch ---- - -use `keyEncoder` instead of insecure cache key getter diff --git a/.changeset/green-squids-fetch.md b/.changeset/green-squids-fetch.md deleted file mode 100644 index a5cb27b99d39..000000000000 --- a/.changeset/green-squids-fetch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"langchain": patch ---- - -feat: Add Perplexity support to universal chat model diff --git a/.changeset/honest-hats-brush.md b/.changeset/honest-hats-brush.md deleted file mode 100644 index ed0426a339e2..000000000000 --- a/.changeset/honest-hats-brush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@langchain/core": patch ---- - -omit tool call chunks without tool call id diff --git a/.changeset/metal-camels-join.md b/.changeset/metal-camels-join.md deleted file mode 100644 index d283a6bcd1a1..000000000000 --- a/.changeset/metal-camels-join.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@langchain/openai": patch ---- - -fix(openai): fix streaming in openai diff --git a/.changeset/real-dogs-listen.md b/.changeset/real-dogs-listen.md deleted file mode 100644 index 6b3a0c5de5a3..000000000000 --- a/.changeset/real-dogs-listen.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@langchain/mistralai": patch ---- - -Added logic to ensure toolCalls have corresponding toolResponses when sending messages to the Mistral API diff --git a/.changeset/silver-dingos-wonder.md b/.changeset/silver-dingos-wonder.md deleted file mode 100644 index 9a6f340ceb56..000000000000 --- a/.changeset/silver-dingos-wonder.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"langchain": patch ---- - -fix(langchain): Bind schemas for other types of pulled hub prompts diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 000000000000..60558a8bd55e --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,142 @@ +# Configuration for GitHub Actions Labeler +# https://github.com/actions/labeler + +internal: + - changed-files: + - any-glob-to-any-file: + - internal/** + - internal/**/* + +ci: + - changed-files: + - any-glob-to-any-file: + - .github/workflows/** + - .github/actions/** + - dependency_range_tests/** + - dependency_range_tests/**/* + - environment_tests/** + - environment_tests/**/* + - libs/langchain-scripts/** + - libs/langchain-scripts/**/* + - libs/langchain-standard-tests/** + - libs/langchain-standard-tests/**/* + +examples: + - changed-files: + - any-glob-to-any-file: + - examples/** + - examples/**/* + +langchain: + - changed-files: + - any-glob-to-any-file: + - langchain/** + - langchain/**/* + +core: + - changed-flies: + - any-glob-to-any-file: + - langchain-core/** + - langchain-core/**/* + +textsplitters: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-textsplitters/** + - libs/langchain-textsplitters/**/* + +provider/anthropic: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-anthropic/** + - libs/langchain-anthropic/**/* + +provider/aws: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-aws/** + - libs/langchain-aws/**/* + +provider/azure: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-*azure*/** + - libs/langchain-*azure*/**/* + +provider/ollama: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-ollama/** + - libs/langchain-ollama/**/* + +provider/openai: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-openai/** + - libs/langchain-openai/**/* + +provider/google: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-*google*/** + - libs/langchain-*google*/**/* + +provider/groq: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-groq/** + - libs/langchain-groq/**/* + +provider/mistralai: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-mistralai/** + - libs/langchain-mistralai/**/* + +provider/mongodb: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-mongodb/** + - libs/langchain-mongodb/**/* + +provider/redis: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-redis/** + - libs/langchain-redis/**/* + +provider/xai: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-xai/** + - libs/langchain-xai/**/* + +community: + - changed-files: + - any-glob-to-any-file: + - libs/langchain-community/** + - libs/langchain-community/**/* + - libs/langchain-baidu-qianfan/** + - libs/langchain-baidu-qianfan/**/* + - libs/langchain-cerebras/** + - libs/langchain-cerebras/**/* + - libs/langchain-cloudflare/** + - libs/langchain-cloudflare/**/* + - libs/langchain-cohere/** + - libs/langchain-cohere/**/* + - libs/langchain-exa/** + - libs/langchain-exa/**/* + - libs/langchain-mixedbread-ai/** + - libs/langchain-mixedbread-ai/**/* + - libs/langchain-nomic/** + - libs/langchain-nomic/**/* + - libs/langchain-pinecone/** + - libs/langchain-pinecone/**/* + - libs/langchain-qdrant/** + - libs/langchain-qdrant/**/* + - libs/langchain-tavily/** + - libs/langchain-tavily/**/* + - libs/langchain-weaviate/** + - libs/langchain-weaviate/**/* + - libs/langchain-yandex/** + - libs/langchain-yandex/**/* diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 000000000000..16b60d690966 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,20 @@ +# Automatically label PRs based on the files changed +name: "Pull Request Labeler" + +on: + pull_request_target: + types: [opened, synchronize, reopened, ready_for_review] + +permissions: + contents: read + pull-requests: write + +jobs: + label: + runs-on: ubuntu-latest + steps: + - name: Label PR based on file paths + uses: actions/labeler@v5 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + sync-labels: true # Remove labels when files no longer match diff --git a/langchain-core/CHANGELOG.md b/langchain-core/CHANGELOG.md index 2e98e799d5a4..e7917a983dab 100644 --- a/langchain-core/CHANGELOG.md +++ b/langchain-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @langchain/core +## 0.3.78 + +### Patch Changes + +- 1519a97: update chunk concat logic to match on missing ID fields +- 079e11d: omit tool call chunks without tool call id + ## 0.3.76 ### Patch Changes diff --git a/langchain-core/package.json b/langchain-core/package.json index 8190a05a5ee6..f17a48a9b6ce 100644 --- a/langchain-core/package.json +++ b/langchain-core/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/core", - "version": "0.3.77", + "version": "0.3.78", "description": "Core LangChain.js abstractions and schemas", "type": "module", "engines": { diff --git a/langchain/CHANGELOG.md b/langchain/CHANGELOG.md index 0484b07ad1ff..4a31915f948b 100644 --- a/langchain/CHANGELOG.md +++ b/langchain/CHANGELOG.md @@ -1,5 +1,15 @@ # langchain +## 0.3.35 + +### Patch Changes + +- fd4691f: use `keyEncoder` instead of insecure cache key getter +- 2f19cd5: feat: Add Perplexity support to universal chat model +- 3c94076: fix(langchain): Bind schemas for other types of pulled hub prompts +- Updated dependencies [d38e9d6] + - @langchain/openai@0.6.14 + ## 0.3.34 ### Patch Changes diff --git a/langchain/package.json b/langchain/package.json index 7d25d4175d74..513ec2e74a4e 100644 --- a/langchain/package.json +++ b/langchain/package.json @@ -1,6 +1,6 @@ { "name": "langchain", - "version": "0.3.34", + "version": "0.3.35", "description": "Typescript bindings for langchain", "type": "module", "engines": { diff --git a/libs/langchain-anthropic/CHANGELOG.md b/libs/langchain-anthropic/CHANGELOG.md index 80d18335b5b9..6b0450691fa9 100644 --- a/libs/langchain-anthropic/CHANGELOG.md +++ b/libs/langchain-anthropic/CHANGELOG.md @@ -1,5 +1,13 @@ # @langchain/anthropic +## 0.3.29 + +### Patch Changes + +- 93493ee: add support for context management +- 93493ee: add support for memory server tools +- 93493ee: add default init options for sonnet-4.5 + ## 0.3.28 ### Patch Changes diff --git a/libs/langchain-anthropic/package.json b/libs/langchain-anthropic/package.json index d0fb49e504fb..b8404d184e02 100644 --- a/libs/langchain-anthropic/package.json +++ b/libs/langchain-anthropic/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/anthropic", - "version": "0.3.28", + "version": "0.3.29", "description": "Anthropic integrations for LangChain.js", "type": "module", "engines": { @@ -35,7 +35,7 @@ "author": "LangChain", "license": "MIT", "dependencies": { - "@anthropic-ai/sdk": "^0.56.0", + "@anthropic-ai/sdk": "^0.65.0", "fast-xml-parser": "^4.4.1" }, "peerDependencies": { diff --git a/libs/langchain-anthropic/src/chat_models.ts b/libs/langchain-anthropic/src/chat_models.ts index 99db236a6af0..7574af6a04de 100644 --- a/libs/langchain-anthropic/src/chat_models.ts +++ b/libs/langchain-anthropic/src/chat_models.ts @@ -38,6 +38,7 @@ import { } from "./utils/message_outputs.js"; import { AnthropicBuiltInToolUnion, + AnthropicContextManagementConfigParam, AnthropicMessageCreateParams, AnthropicMessageStreamEvent, AnthropicRequestOptions, @@ -83,7 +84,7 @@ function _documentsInParams( block != null && block.type === "document" && typeof block.citations === "object" && - block.citations.enabled + block.citations?.enabled ) { return true; } @@ -104,22 +105,25 @@ function isAnthropicTool(tool: any): tool is Anthropic.Messages.Tool { } function isBuiltinTool(tool: unknown): tool is AnthropicBuiltInToolUnion { - const builtinTools = [ - "web_search", - "bash", - "code_execution", - "computer", - "str_replace_editor", - "str_replace_based_edit_tool", + const builtInToolPrefixes = [ + "text_editor_", + "computer_", + "bash_", + "web_search_", + "web_fetch_", + "str_replace_editor_", + "str_replace_based_edit_tool_", + "code_execution_", + "memory_", ]; return ( typeof tool === "object" && tool !== null && "type" in tool && "name" in tool && - typeof tool.type === "string" && - typeof tool.name === "string" && - builtinTools.includes(tool.name) + builtInToolPrefixes.some( + (prefix) => typeof tool.type === "string" && tool.type.startsWith(prefix) + ) ); } @@ -160,7 +164,7 @@ export interface AnthropicInput { * To not set this field, pass `null`. If `undefined` is passed, * the default (-1) will be used. * - * For Opus 4.1, this defaults to `null`. + * For Opus 4.1 and Sonnet 4.5, this defaults to `null`. */ topP?: number | null; @@ -222,6 +226,11 @@ export interface AnthropicInput { * Options for extended thinking. */ thinking?: AnthropicThinkingConfigParam; + + /** + * Configuration for context management. See https://docs.claude.com/en/docs/build-with-claude/context-editing + */ + contextManagement?: AnthropicContextManagementConfigParam; } /** @@ -681,6 +690,8 @@ export class ChatAnthropicMessages< thinking: AnthropicThinkingConfigParam = { type: "disabled" }; + contextManagement?: AnthropicContextManagementConfigParam; + // Used for non-streaming requests protected batchClient: Anthropic; @@ -720,8 +731,8 @@ export class ChatAnthropicMessages< this.invocationKwargs = fields?.invocationKwargs ?? {}; - if (this.model.includes("opus-4-1")) { - // Default to `undefined` for `topP` for Opus 4.1 models + // Default to `undefined` for `topP` for Opus 4.1 and Sonnet 4.5 models + if (this.model.includes("opus-4-1") || this.model.includes("sonnet-4-5")) { this.topP = fields?.topP === null ? undefined : fields?.topP; } else { this.topP = fields?.topP ?? this.topP; @@ -872,6 +883,7 @@ export class ChatAnthropicMessages< tools: this.formatStructuredToolToAnthropic(options?.tools), tool_choice, thinking: this.thinking, + context_management: this.contextManagement, ...this.invocationKwargs, }; } diff --git a/libs/langchain-anthropic/src/tests/chat_models-tools.int.test.ts b/libs/langchain-anthropic/src/tests/chat_models-tools.int.test.ts index 164a98266f02..0bb1e44dcb71 100644 --- a/libs/langchain-anthropic/src/tests/chat_models-tools.int.test.ts +++ b/libs/langchain-anthropic/src/tests/chat_models-tools.int.test.ts @@ -866,3 +866,61 @@ test("calling tool with no args should work", async () => { // console.log(result); // expect(result.messages.at(-1)?.content).toContain("80"); // }); + +// https://docs.claude.com/en/docs/agents-and-tools/tool-use/memory-tool +test("memory tool", async () => { + const llm = new ChatAnthropic({ + model: "claude-sonnet-4-5-20250929", + clientOptions: { + defaultHeaders: { + "anthropic-beta": "context-management-2025-06-27", + }, + }, + }); + const llmWithTools = llm.bindTools([ + { type: "memory_20250818", name: "memory" }, + ]); + const response = await llmWithTools.invoke("What are my interests?"); + expect(response).toBeInstanceOf(AIMessage); + expect(response.tool_calls).toBeDefined(); + expect(response.tool_calls?.[0].name).toBe("memory"); +}); + +// https://docs.claude.com/en/docs/build-with-claude/context-editing +test("context management", async () => { + const llm = new ChatAnthropic({ + model: "claude-sonnet-4-5-20250929", + clientOptions: { + defaultHeaders: { + "anthropic-beta": "context-management-2025-06-27", + }, + }, + contextManagement: { + edits: [ + { + type: "clear_tool_uses_20250919", + trigger: { type: "input_tokens", value: 10 }, + clear_at_least: { type: "input_tokens", value: 5 }, + }, + ], + }, + }); + const llmWithTools = llm.bindTools([ + { type: "web_search_20250305", name: "web_search" }, + ]); + const inputMessage = { + role: "user", + content: "Search for recent developments in AI", + }; + const response = await llmWithTools.invoke([inputMessage]); + expect(response.response_metadata.context_management).toBeDefined(); + + // Test streaming + let full: AIMessageChunk | undefined; + for await (const chunk of await llmWithTools.stream([inputMessage])) { + expect(chunk).toBeInstanceOf(AIMessageChunk); + full = full ? concat(full, chunk) : chunk; + } + expect(full).toBeInstanceOf(AIMessageChunk); + expect(full?.response_metadata.context_management).toBeDefined(); +}); diff --git a/libs/langchain-anthropic/src/tests/chat_models.int.test.ts b/libs/langchain-anthropic/src/tests/chat_models.int.test.ts index 07710bed1a51..3fc56b8db2c2 100644 --- a/libs/langchain-anthropic/src/tests/chat_models.int.test.ts +++ b/libs/langchain-anthropic/src/tests/chat_models.int.test.ts @@ -1463,30 +1463,44 @@ test("Can handle google function calling blocks in content", async () => { expect(res.content.length).toBeGreaterThan(1); }); -test("Can handle opus 4.1 without passing any args", async () => { - const model = new ChatAnthropic({ - model: "claude-opus-4-1", +describe("Opus 4.1", () => { + it("works without passing any args", async () => { + const model = new ChatAnthropic({ + model: "claude-opus-4-1", + }); + + const response = await model.invoke( + "Please respond to this message simply with: Hello" + ); + + expect(response.content.length).toBeGreaterThan(0); }); - const response = await model.invoke( - "Please respond to this message simply with: Hello" - ); + it("works with streaming and thinking", async () => { + const model = new ChatAnthropic({ + model: "claude-opus-4-1", + thinking: { + type: "enabled", + budget_tokens: 1024, + }, + }); - expect(response.content.length).toBeGreaterThan(0); -}); + const response = await model.invoke( + "Please respond to this message simply with: Hello" + ); -test("Can handle opus 4.1 with streaming and thinking", async () => { - const model = new ChatAnthropic({ - model: "claude-opus-4-1", - thinking: { - type: "enabled", - budget_tokens: 1024, - }, + expect(response.content.length).toBeGreaterThan(0); }); +}); - const response = await model.invoke( - "Please respond to this message simply with: Hello" - ); - - expect(response.content.length).toBeGreaterThan(0); +describe("Sonnet 4.5", () => { + it("works without passing any args", async () => { + const model = new ChatAnthropic({ + model: "claude-sonnet-4-5-20250929", + }); + const response = await model.invoke( + "Please respond to this message simply with: Hello" + ); + expect(response.content.length).toBeGreaterThan(0); + }); }); diff --git a/libs/langchain-anthropic/src/tests/chat_models.standard.int.test.ts b/libs/langchain-anthropic/src/tests/chat_models.standard.int.test.ts index 86279aca05dd..8dd624c53dc8 100644 --- a/libs/langchain-anthropic/src/tests/chat_models.standard.int.test.ts +++ b/libs/langchain-anthropic/src/tests/chat_models.standard.int.test.ts @@ -20,7 +20,7 @@ class ChatAnthropicStandardIntegrationTests extends ChatModelIntegrationTests< chatModelHasStructuredOutput: true, supportsParallelToolCalls: true, constructorArgs: { - model: "claude-3-haiku-20240307", + model: "claude-sonnet-4-5-20250929", }, supportsStandardContentType: { text: true, diff --git a/libs/langchain-anthropic/src/types.ts b/libs/langchain-anthropic/src/types.ts index 7658f8ae1cdb..320887fa0658 100644 --- a/libs/langchain-anthropic/src/types.ts +++ b/libs/langchain-anthropic/src/types.ts @@ -17,6 +17,8 @@ export type AnthropicMessageCreateParams = export type AnthropicStreamingMessageCreateParams = Anthropic.MessageCreateParamsStreaming; export type AnthropicThinkingConfigParam = Anthropic.ThinkingConfigParam; +export type AnthropicContextManagementConfigParam = + Anthropic.Beta.BetaContextManagementConfig; export type AnthropicMessageStreamEvent = Anthropic.MessageStreamEvent; export type AnthropicRequestOptions = Anthropic.RequestOptions; export type AnthropicToolChoice = @@ -45,9 +47,7 @@ export type AnthropicWebSearchToolResultBlockParam = Anthropic.Messages.WebSearchToolResultBlockParam; export type AnthropicWebSearchResultBlockParam = Anthropic.Messages.WebSearchResultBlockParam; -// TODO(hntrl): beta blocks should be separated -export type AnthropicSearchResultBlockParam = - Anthropic.Beta.BetaSearchResultBlockParam; +export type AnthropicSearchResultBlockParam = Anthropic.SearchResultBlockParam; // Union of all possible content block types including server tool use export type ChatAnthropicContentBlock = diff --git a/libs/langchain-anthropic/src/utils/message_inputs.ts b/libs/langchain-anthropic/src/utils/message_inputs.ts index 38f9392a0954..a97a6a46e367 100644 --- a/libs/langchain-anthropic/src/utils/message_inputs.ts +++ b/libs/langchain-anthropic/src/utils/message_inputs.ts @@ -595,6 +595,7 @@ function mergeMessages(messages: AnthropicMessageCreateParams["messages"]) { | AnthropicRedactedThinkingBlockParam | AnthropicServerToolUseBlockParam | AnthropicWebSearchToolResultBlockParam + | AnthropicSearchResultBlockParam > ): Array< | AnthropicTextBlockParam @@ -606,6 +607,7 @@ function mergeMessages(messages: AnthropicMessageCreateParams["messages"]) { | AnthropicRedactedThinkingBlockParam | AnthropicServerToolUseBlockParam | AnthropicWebSearchToolResultBlockParam + | AnthropicSearchResultBlockParam > => { if (typeof content === "string") { return [ diff --git a/libs/langchain-anthropic/src/utils/message_outputs.ts b/libs/langchain-anthropic/src/utils/message_outputs.ts index e4dfe8a3c147..6fa7b08c0f46 100644 --- a/libs/langchain-anthropic/src/utils/message_outputs.ts +++ b/libs/langchain-anthropic/src/utils/message_outputs.ts @@ -68,11 +68,16 @@ export function _makeMessageChunkFromAnthropicEvent( cache_read: (data.usage as any).cache_read_input_tokens, }, }; + const responseMetadata = + "context_management" in data.delta + ? { context_management: data.delta.context_management } + : undefined; return { chunk: new AIMessageChunk({ content: fields.coerceContentToString ? "" : [], additional_kwargs: { ...data.delta }, usage_metadata: fields.streamUsage ? usageMetadata : undefined, + response_metadata: responseMetadata, }), }; } else if ( diff --git a/libs/langchain-azure-cosmosdb/CHANGELOG.md b/libs/langchain-azure-cosmosdb/CHANGELOG.md index 3e502aee93cf..8f7ecebac772 100644 --- a/libs/langchain-azure-cosmosdb/CHANGELOG.md +++ b/libs/langchain-azure-cosmosdb/CHANGELOG.md @@ -1,5 +1,11 @@ # @langchain/azure-cosmosdb +## 0.2.10 + +### Patch Changes + +- fd4691f: use `keyEncoder` instead of insecure cache key getter + ## 0.2.9 ### Patch Changes diff --git a/libs/langchain-azure-cosmosdb/package.json b/libs/langchain-azure-cosmosdb/package.json index 9706a16dc52b..069a8e0ec68e 100644 --- a/libs/langchain-azure-cosmosdb/package.json +++ b/libs/langchain-azure-cosmosdb/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/azure-cosmosdb", - "version": "0.2.9", + "version": "0.2.10", "description": "Azure CosmosDB integration for LangChain.js", "type": "module", "engines": { diff --git a/libs/langchain-azure-openai/package.json b/libs/langchain-azure-openai/package.json index 6eb4c900a4a6..bc53499240ae 100644 --- a/libs/langchain-azure-openai/package.json +++ b/libs/langchain-azure-openai/package.json @@ -101,4 +101,4 @@ "index.d.ts", "index.d.cts" ] -} +} \ No newline at end of file diff --git a/libs/langchain-baidu-qianfan/package.json b/libs/langchain-baidu-qianfan/package.json index 283107ff6865..aca519d04d9c 100644 --- a/libs/langchain-baidu-qianfan/package.json +++ b/libs/langchain-baidu-qianfan/package.json @@ -42,7 +42,7 @@ "devDependencies": { "@jest/globals": "^29.5.0", "@langchain/core": "workspace:*", - "@langchain/openai": "^0.6.10", + "@langchain/openai": "^0.6.14", "@langchain/scripts": ">=0.1.0 <0.2.0", "@swc/core": "^1.3.90", "@swc/jest": "^0.2.29", @@ -88,4 +88,4 @@ "index.d.ts", "index.d.cts" ] -} +} \ No newline at end of file diff --git a/libs/langchain-cloudflare/CHANGELOG.md b/libs/langchain-cloudflare/CHANGELOG.md index ec440f6eee61..da73f5c561ba 100644 --- a/libs/langchain-cloudflare/CHANGELOG.md +++ b/libs/langchain-cloudflare/CHANGELOG.md @@ -1,5 +1,14 @@ # @langchain/cloudflare +## 0.1.2 + +### Patch Changes + +- fd4691f: use `keyEncoder` instead of insecure cache key getter +- Updated dependencies [1519a97] +- Updated dependencies [079e11d] + - @langchain/core@0.3.78 + ## 0.1.1 ### Patch Changes diff --git a/libs/langchain-cloudflare/package.json b/libs/langchain-cloudflare/package.json index 6e438207a354..46dd4b48c48a 100644 --- a/libs/langchain-cloudflare/package.json +++ b/libs/langchain-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/cloudflare", - "version": "0.1.1", + "version": "0.1.2", "description": "Cloudflare integration for LangChain.js", "type": "module", "engines": { diff --git a/libs/langchain-community/CHANGELOG.md b/libs/langchain-community/CHANGELOG.md index b49a4a3d2191..7f9abd90ef97 100644 --- a/libs/langchain-community/CHANGELOG.md +++ b/libs/langchain-community/CHANGELOG.md @@ -1,5 +1,17 @@ # @langchain/community +## 0.3.57 + +### Patch Changes + +- fd4691f: use `keyEncoder` instead of insecure cache key getter +- Updated dependencies [fd4691f] +- Updated dependencies [2f19cd5] +- Updated dependencies [d38e9d6] +- Updated dependencies [3c94076] + - langchain@0.3.35 + - @langchain/openai@0.6.14 + ## 0.3.56 ### Patch Changes diff --git a/libs/langchain-community/package.json b/libs/langchain-community/package.json index dac51daac8d8..282b2ce312b6 100644 --- a/libs/langchain-community/package.json +++ b/libs/langchain-community/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/community", - "version": "0.3.56", + "version": "0.3.57", "description": "Third-party integrations for LangChain.js", "type": "module", "engines": { @@ -4425,4 +4425,4 @@ "chains/graph_qa/cypher.d.ts", "chains/graph_qa/cypher.d.cts" ] -} +} \ No newline at end of file diff --git a/libs/langchain-deepseek/package.json b/libs/langchain-deepseek/package.json index 5d92256f232f..84041b614172 100644 --- a/libs/langchain-deepseek/package.json +++ b/libs/langchain-deepseek/package.json @@ -32,7 +32,7 @@ "author": "LangChain", "license": "MIT", "dependencies": { - "@langchain/openai": "^0.6.10" + "@langchain/openai": "^0.6.14" }, "peerDependencies": { "@langchain/core": ">=0.3.58 <0.4.0" diff --git a/libs/langchain-google-cloud-sql-pg/package.json b/libs/langchain-google-cloud-sql-pg/package.json index 8b4b15128272..286b2117b0e0 100644 --- a/libs/langchain-google-cloud-sql-pg/package.json +++ b/libs/langchain-google-cloud-sql-pg/package.json @@ -89,4 +89,4 @@ "index.d.ts", "index.d.cts" ] -} +} \ No newline at end of file diff --git a/libs/langchain-mistralai/CHANGELOG.md b/libs/langchain-mistralai/CHANGELOG.md new file mode 100644 index 000000000000..37c7c79711bb --- /dev/null +++ b/libs/langchain-mistralai/CHANGELOG.md @@ -0,0 +1,7 @@ +# @langchain/mistralai + +## 0.2.2 + +### Patch Changes + +- 9eb78b7: Added logic to ensure toolCalls have corresponding toolResponses when sending messages to the Mistral API diff --git a/libs/langchain-mistralai/package.json b/libs/langchain-mistralai/package.json index 811b4c557ff3..dc73eceb615a 100644 --- a/libs/langchain-mistralai/package.json +++ b/libs/langchain-mistralai/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/mistralai", - "version": "0.2.1", + "version": "0.2.2", "description": "MistralAI integration for LangChain.js", "type": "module", "engines": { diff --git a/libs/langchain-mixedbread-ai/package.json b/libs/langchain-mixedbread-ai/package.json index 89a2089f9b6c..bf08bd8c7d6e 100644 --- a/libs/langchain-mixedbread-ai/package.json +++ b/libs/langchain-mixedbread-ai/package.json @@ -89,4 +89,4 @@ "index.d.ts", "index.d.cts" ] -} +} \ No newline at end of file diff --git a/libs/langchain-openai/CHANGELOG.md b/libs/langchain-openai/CHANGELOG.md index 63586116749b..9dcd574fb14f 100644 --- a/libs/langchain-openai/CHANGELOG.md +++ b/libs/langchain-openai/CHANGELOG.md @@ -1,5 +1,11 @@ # @langchain/openai +## 0.6.14 + +### Patch Changes + +- d38e9d6: fix(openai): fix streaming in openai + ## 0.6.12 ### Patch Changes diff --git a/libs/langchain-openai/package.json b/libs/langchain-openai/package.json index 6ef1d03332bb..d707e756d623 100644 --- a/libs/langchain-openai/package.json +++ b/libs/langchain-openai/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/openai", - "version": "0.6.13", + "version": "0.6.14", "description": "OpenAI integrations for LangChain.js", "type": "module", "engines": { diff --git a/libs/langchain-redis/CHANGELOG.md b/libs/langchain-redis/CHANGELOG.md index 20acf7852dd4..9449a7a9d720 100644 --- a/libs/langchain-redis/CHANGELOG.md +++ b/libs/langchain-redis/CHANGELOG.md @@ -1,5 +1,11 @@ # @langchain/redis +## 0.1.3 + +### Patch Changes + +- fd4691f: use `keyEncoder` instead of insecure cache key getter + ## 0.1.2 ### Patch Changes diff --git a/libs/langchain-redis/package.json b/libs/langchain-redis/package.json index 6708061428cb..d9312adba1af 100644 --- a/libs/langchain-redis/package.json +++ b/libs/langchain-redis/package.json @@ -1,6 +1,6 @@ { "name": "@langchain/redis", - "version": "0.1.2", + "version": "0.1.3", "description": "Sample integration for LangChain.js", "type": "module", "engines": { diff --git a/libs/langchain-xai/package.json b/libs/langchain-xai/package.json index 2e846efc3668..8381d99f62a5 100644 --- a/libs/langchain-xai/package.json +++ b/libs/langchain-xai/package.json @@ -35,7 +35,7 @@ "author": "LangChain", "license": "MIT", "dependencies": { - "@langchain/openai": "^0.6.10" + "@langchain/openai": "^0.6.14" }, "peerDependencies": { "@langchain/core": ">=0.3.58 <0.4.0" diff --git a/yarn.lock b/yarn.lock index 1dcaee8b7e2a..c9078748e77f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -235,12 +235,19 @@ __metadata: languageName: node linkType: hard -"@anthropic-ai/sdk@npm:^0.56.0": - version: 0.56.0 - resolution: "@anthropic-ai/sdk@npm:0.56.0" +"@anthropic-ai/sdk@npm:^0.65.0": + version: 0.65.0 + resolution: "@anthropic-ai/sdk@npm:0.65.0" + dependencies: + json-schema-to-ts: ^3.1.1 + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + zod: + optional: true bin: anthropic-ai-sdk: bin/cli - checksum: b34d152f287bdec3a3201ecb2b65d7b00c9d9739b3153681cd68fe3d6298655266441f68a4f381fd650b895cfa26724844ae2a637e558c32c81083efa2a43f7d + checksum: d8c31aab2b0573455abd86793995cd6a24e6a7d5b85c8c66e8896309c42b1029fb3616caad688d9e8e53bb43fc96979ba10b07bce7048a2971e46e83a73e38d8 languageName: node linkType: hard @@ -5030,6 +5037,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.18.3": + version: 7.28.4 + resolution: "@babel/runtime@npm:7.28.4" + checksum: 934b0a0460f7d06637d93fcd1a44ac49adc33518d17253b5a0b55ff4cb90a45d8fe78bf034b448911dbec7aff2a90b918697559f78d21c99ff8dbadae9565b55 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.5.5": version: 7.28.3 resolution: "@babel/runtime@npm:7.28.3" @@ -8685,7 +8699,7 @@ __metadata: version: 0.0.0-use.local resolution: "@langchain/anthropic@workspace:libs/langchain-anthropic" dependencies: - "@anthropic-ai/sdk": ^0.56.0 + "@anthropic-ai/sdk": ^0.65.0 "@anthropic-ai/vertex-sdk": ^0.11.5 "@jest/globals": ^29.5.0 "@langchain/core": "workspace:*" @@ -8868,7 +8882,7 @@ __metadata: "@baiducloud/qianfan": ^0.1.6 "@jest/globals": ^29.5.0 "@langchain/core": "workspace:*" - "@langchain/openai": ^0.6.10 + "@langchain/openai": ^0.6.14 "@langchain/scripts": ">=0.1.0 <0.2.0" "@swc/core": ^1.3.90 "@swc/jest": ^0.2.29 @@ -9624,7 +9638,7 @@ __metadata: dependencies: "@jest/globals": ^29.5.0 "@langchain/core": "workspace:*" - "@langchain/openai": ^0.6.10 + "@langchain/openai": ^0.6.14 "@langchain/scripts": ">=0.1.0 <0.2.0" "@langchain/standard-tests": "workspace:*" "@swc/core": ^1.3.90 @@ -10277,7 +10291,7 @@ __metadata: languageName: unknown linkType: soft -"@langchain/openai@>=0.1.0 <0.7.0, @langchain/openai@>=0.2.0 <0.7.0, @langchain/openai@^0.6.10, @langchain/openai@workspace:*, @langchain/openai@workspace:^, @langchain/openai@workspace:libs/langchain-openai": +"@langchain/openai@>=0.1.0 <0.7.0, @langchain/openai@>=0.2.0 <0.7.0, @langchain/openai@^0.6.14, @langchain/openai@workspace:*, @langchain/openai@workspace:^, @langchain/openai@workspace:libs/langchain-openai": version: 0.0.0-use.local resolution: "@langchain/openai@workspace:libs/langchain-openai" dependencies: @@ -29826,6 +29840,16 @@ __metadata: languageName: node linkType: hard +"json-schema-to-ts@npm:^3.1.1": + version: 3.1.1 + resolution: "json-schema-to-ts@npm:3.1.1" + dependencies: + "@babel/runtime": ^7.18.3 + ts-algebra: ^2.0.0 + checksum: b616f1c2d7492502e11eec4f8e4539ee1e897543a679d929494afdc164d9557275cead8372747b73f239b1e68056ffbf551b03ae82d0047bba0dfe2bbd6b64f4 + languageName: node + linkType: hard + "json-schema-to-typescript@npm:^13.1.1": version: 13.1.2 resolution: "json-schema-to-typescript@npm:13.1.2" @@ -39733,6 +39757,13 @@ __metadata: languageName: node linkType: hard +"ts-algebra@npm:^2.0.0": + version: 2.0.0 + resolution: "ts-algebra@npm:2.0.0" + checksum: 970b0e7db49cf8c1a8ff2a816eb047fac8add47511f5e4995e4998c56c6f7b226399284412de88f3e137ab55c857a4262c0d8f02f0765730e7d3a021de2ea7ef + languageName: node + linkType: hard + "ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0": version: 1.4.3 resolution: "ts-api-utils@npm:1.4.3"