From d22657678c64367d3f33bab343c9068a340ceb64 Mon Sep 17 00:00:00 2001 From: Hunter Lovell Date: Tue, 9 Dec 2025 08:59:53 -0800 Subject: [PATCH 1/3] chore(standard-tests): fix CI --- libs/langchain-standard-tests/src/base.ts | 8 ++++---- .../src/integration_tests/chat_models.ts | 16 ++++++++-------- .../src/integration_tests/vitest.ts | 8 ++++---- .../src/unit_tests/chat_models.ts | 6 +++--- .../src/unit_tests/vitest.ts | 8 ++++---- libs/langchain-standard-tests/src/vitest.ts | 4 ++-- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/libs/langchain-standard-tests/src/base.ts b/libs/langchain-standard-tests/src/base.ts index 56b805e15d59..1151208b895d 100644 --- a/libs/langchain-standard-tests/src/base.ts +++ b/libs/langchain-standard-tests/src/base.ts @@ -2,13 +2,13 @@ import { BaseChatModel, BaseChatModelCallOptions, } from "@langchain/core/language_models/chat_models"; -import { BaseMessageChunk } from "@langchain/core/messages"; +import { AIMessageChunk } from "@langchain/core/messages"; export type RecordStringAny = Record; export type BaseChatModelConstructor< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > = new (args: ConstructorArgs) => BaseChatModel< CallOptions, @@ -17,7 +17,7 @@ export type BaseChatModelConstructor< export type BaseChatModelsTestsFields< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > = { Cls: BaseChatModelConstructor< @@ -38,7 +38,7 @@ export type BaseChatModelsTestsFields< export class BaseChatModelsTests< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > implements BaseChatModelsTestsFields diff --git a/libs/langchain-standard-tests/src/integration_tests/chat_models.ts b/libs/langchain-standard-tests/src/integration_tests/chat_models.ts index 39ab9cf88462..656ea1211912 100644 --- a/libs/langchain-standard-tests/src/integration_tests/chat_models.ts +++ b/libs/langchain-standard-tests/src/integration_tests/chat_models.ts @@ -6,7 +6,7 @@ import { BaseChatModelCallOptions } from "@langchain/core/language_models/chat_m import { AIMessage, AIMessageChunk, - BaseMessageChunk, + BaseMessage, HumanMessage, SystemMessage, ToolMessage, @@ -29,9 +29,9 @@ import { BaseChatModelsTests, BaseChatModelsTestsFields, RecordStringAny, -} from "../base.ts"; -import { TestCallbackHandler } from "../utils.ts"; -import { isContentBlock } from "../utils/types.ts"; +} from "../base.js"; +import { TestCallbackHandler } from "../utils.js"; +import { isContentBlock } from "../utils/types.js"; // Placeholder data for content block tests const TEST_IMAGE_URL = @@ -89,7 +89,7 @@ const MATH_ADDITION_PROMPT = /* #__PURE__ */ ChatPromptTemplate.fromMessages([ export interface ChatModelIntegrationTestsFields< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > extends BaseChatModelsTestsFields< CallOptions, @@ -117,7 +117,7 @@ export interface ChatModelIntegrationTestsFields< export abstract class ChatModelIntegrationTests< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > extends BaseChatModelsTests { functionId = "abc123"; @@ -1510,7 +1510,7 @@ export abstract class ChatModelIntegrationTests< const modelWithTools = model.bindTools([weatherTool]); // Initialize the conversation with a weather query - const messages = [ + const messages: BaseMessage[] = [ new HumanMessage( "What's the weather like in San Francisco right now? Use the 'get_current_weather' tool to find the answer." ), @@ -1602,7 +1602,7 @@ export abstract class ChatModelIntegrationTests< const modelWithTools = model.bindTools([weatherTool]); // Initialize the conversation with a weather query - const messages = [ + const messages: BaseMessage[] = [ new HumanMessage( "What's the weather like in San Francisco right now? Use the 'get_current_weather' tool to find the answer." ), diff --git a/libs/langchain-standard-tests/src/integration_tests/vitest.ts b/libs/langchain-standard-tests/src/integration_tests/vitest.ts index c8ce58b6cbb1..a0f007a18e35 100644 --- a/libs/langchain-standard-tests/src/integration_tests/vitest.ts +++ b/libs/langchain-standard-tests/src/integration_tests/vitest.ts @@ -1,15 +1,15 @@ import { expect, describe, test } from "vitest"; import { BaseChatModelCallOptions } from "@langchain/core/language_models/chat_models"; -import { BaseMessageChunk } from "@langchain/core/messages"; -import { RecordStringAny } from "../base.ts"; +import { AIMessageChunk } from "@langchain/core/messages"; +import { RecordStringAny } from "../base.js"; import { ChatModelIntegrationTestsFields, ChatModelIntegrationTests as BaseChatModelIntegrationTests, -} from "./chat_models.ts"; +} from "./chat_models.js"; export abstract class ChatModelIntegrationTests< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > extends BaseChatModelIntegrationTests< CallOptions, diff --git a/libs/langchain-standard-tests/src/unit_tests/chat_models.ts b/libs/langchain-standard-tests/src/unit_tests/chat_models.ts index 6a6329036231..cca91ddd2bcf 100644 --- a/libs/langchain-standard-tests/src/unit_tests/chat_models.ts +++ b/libs/langchain-standard-tests/src/unit_tests/chat_models.ts @@ -4,7 +4,7 @@ import { BaseChatModelCallOptions, LangSmithParams, } from "@langchain/core/language_models/chat_models"; -import { BaseMessageChunk } from "@langchain/core/messages"; +import { AIMessageChunk } from "@langchain/core/messages"; import { z } from "zod/v3"; import { InferInteropZodOutput } from "@langchain/core/utils/types"; import { StructuredTool } from "@langchain/core/tools"; @@ -12,7 +12,7 @@ import { BaseChatModelsTests, BaseChatModelsTestsFields, RecordStringAny, -} from "../base.ts"; +} from "../base.js"; const person = /* #__PURE__ */ z .object({ @@ -35,7 +35,7 @@ class PersonTool extends StructuredTool { export abstract class ChatModelUnitTests< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > extends BaseChatModelsTests { expect: typeof JestExpect | typeof VitestExpect; diff --git a/libs/langchain-standard-tests/src/unit_tests/vitest.ts b/libs/langchain-standard-tests/src/unit_tests/vitest.ts index ca7c90909208..edadda7c5b08 100644 --- a/libs/langchain-standard-tests/src/unit_tests/vitest.ts +++ b/libs/langchain-standard-tests/src/unit_tests/vitest.ts @@ -1,12 +1,12 @@ import { expect, describe, test } from "vitest"; import { BaseChatModelCallOptions } from "@langchain/core/language_models/chat_models"; -import { BaseMessageChunk } from "@langchain/core/messages"; -import { BaseChatModelsTestsFields, RecordStringAny } from "../base.ts"; -import { ChatModelUnitTests as BaseChatModelUnitTests } from "./chat_models.ts"; +import { AIMessageChunk } from "@langchain/core/messages"; +import { BaseChatModelsTestsFields, RecordStringAny } from "../base.js"; +import { ChatModelUnitTests as BaseChatModelUnitTests } from "./chat_models.js"; export abstract class ChatModelUnitTests< CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, - OutputMessageType extends BaseMessageChunk = BaseMessageChunk, + OutputMessageType extends AIMessageChunk = AIMessageChunk, ConstructorArgs extends RecordStringAny = RecordStringAny > extends BaseChatModelUnitTests< CallOptions, diff --git a/libs/langchain-standard-tests/src/vitest.ts b/libs/langchain-standard-tests/src/vitest.ts index c2e0f26c6d0d..ee950c3f6c14 100644 --- a/libs/langchain-standard-tests/src/vitest.ts +++ b/libs/langchain-standard-tests/src/vitest.ts @@ -1,2 +1,2 @@ -export * from "./unit_tests/vitest.ts"; -export * from "./integration_tests/vitest.ts"; +export * from "./unit_tests/vitest.js"; +export * from "./integration_tests/vitest.js"; From b8ced908ec9e75ba1ad6dbdfff7be708c15cacd3 Mon Sep 17 00:00:00 2001 From: Hunter Lovell Date: Tue, 9 Dec 2025 09:16:24 -0800 Subject: [PATCH 2/3] raise langsmith dep --- libs/langchain-core/package.json | 2 +- pnpm-lock.yaml | 29 +++++++++++++---------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/libs/langchain-core/package.json b/libs/langchain-core/package.json index 0bf337c313ea..3851b78bb17c 100644 --- a/libs/langchain-core/package.json +++ b/libs/langchain-core/package.json @@ -35,7 +35,7 @@ "camelcase": "6", "decamelize": "1.2.0", "js-tiktoken": "^1.0.12", - "langsmith": "^0.3.64", + "langsmith": "^0.3.82", "mustache": "^4.2.0", "p-queue": "^6.6.2", "uuid": "^10.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d446de01658..cbec3b111d90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1625,8 +1625,8 @@ importers: specifier: ^1.0.12 version: 1.0.20 langsmith: - specifier: ^0.3.64 - version: 0.3.74(@opentelemetry/api@1.9.0)(openai@6.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)) + specifier: ^0.3.82 + version: 0.3.82(@opentelemetry/api@1.9.0)(openai@6.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)) mustache: specifier: ^4.2.0 version: 4.2.0 @@ -12659,8 +12659,8 @@ packages: openai: optional: true - langsmith@0.3.79: - resolution: {integrity: sha512-j5uiAsyy90zxlxaMuGjb7EdcL51Yx61SpKfDOI1nMPBbemGju+lf47he4e59Hp5K63CY8XWgFP42WeZ+zuIU4Q==} + langsmith@0.3.82: + resolution: {integrity: sha512-RTcxtRm0zp2lV+pMesMW7EZSsIlqN7OmR2F6sZ/sOFQwmcLVl+VErMPV4VkX4Sycs4/EIAFT5hpr36EqiHoikQ==} peerDependencies: '@opentelemetry/api': '*' '@opentelemetry/exporter-trace-otlp-proto': '*' @@ -21719,7 +21719,7 @@ snapshots: extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 - semver: 7.7.2 + semver: 7.7.3 tar-fs: 3.1.0 unbzip2-stream: 1.4.3 yargs: 17.7.2 @@ -25162,7 +25162,6 @@ snapshots: console-table-printer@2.15.0: dependencies: simple-wcswidth: 1.1.2 - optional: true content-disposition@0.5.4: dependencies: @@ -28526,7 +28525,7 @@ snapshots: js-tiktoken: 1.0.21 js-yaml: 4.1.1 jsonpointer: 5.0.1 - langsmith: 0.3.79(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)) + langsmith: 0.3.82(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 @@ -28570,32 +28569,30 @@ snapshots: '@opentelemetry/api': 1.9.0 openai: 5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) - langsmith@0.3.74(@opentelemetry/api@1.9.0)(openai@6.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)): + langsmith@0.3.82(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 - console-table-printer: 2.14.6 + console-table-printer: 2.15.0 p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.7.2 + semver: 7.7.3 uuid: 10.0.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - openai: 6.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) + openai: 5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) + optional: true - langsmith@0.3.79(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)): + langsmith@0.3.82(@opentelemetry/api@1.9.0)(openai@6.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 console-table-printer: 2.15.0 p-queue: 6.6.2 - p-retry: 4.6.2 semver: 7.7.3 uuid: 10.0.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - openai: 5.12.2(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) - optional: true + openai: 6.9.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.25.76) lazystream@1.0.1: dependencies: From aa60735a92541ca41a26a0f04cdb76e1fd1a0da0 Mon Sep 17 00:00:00 2001 From: Christian Bromann Date: Tue, 9 Dec 2025 15:05:34 -0800 Subject: [PATCH 3/3] cr --- libs/providers/langchain-openai/vitest.config.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/providers/langchain-openai/vitest.config.ts b/libs/providers/langchain-openai/vitest.config.ts index 84bd12d24080..5a06b465b091 100644 --- a/libs/providers/langchain-openai/vitest.config.ts +++ b/libs/providers/langchain-openai/vitest.config.ts @@ -61,7 +61,10 @@ export default defineConfig((env) => { ...common.test, environment: "node", include: configDefaults.include, - typecheck: { enabled: true }, + // Disable typecheck in CI because dependency range tests run in isolated + // Docker environments where workspace dependencies like @langchain/standard-tests + // may not have their transitive dependencies properly resolved + typecheck: { enabled: !process.env.CI }, }, }; });