From c08f98418ce6e37db2adb5a67e47b2bdaec51ec2 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Mon, 13 Oct 2025 23:02:18 +0000 Subject: [PATCH 1/5] fix: Make unit test less brittle and add CI --- .github/workflows/server-ai-langchain.yml | 27 +++++++++++++++++++ .../__tests__/LangChainProvider.test.ts | 10 ++----- 2 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/server-ai-langchain.yml diff --git a/.github/workflows/server-ai-langchain.yml b/.github/workflows/server-ai-langchain.yml new file mode 100644 index 0000000000..159051a854 --- /dev/null +++ b/.github/workflows/server-ai-langchain.yml @@ -0,0 +1,27 @@ +name: ai-providers/server-ai-langchain + +on: + push: + branches: [main, 'feat/**'] + paths-ignore: + - '**.md' #Do not need to run CI for markdown changes. + pull_request: + branches: [main, 'feat/**'] + paths-ignore: + - '**.md' + +jobs: + build-test-langchain-provider: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22.x + registry-url: 'https://registry.npmjs.org' + - id: shared + name: Shared CI Steps + uses: ./actions/ci + with: + workspace_name: '@launchdarkly/server-sdk-ai-langchain' + workspace_path: packages/ai-providers/server-ai-langchain diff --git a/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts b/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts index 5cd7b5879d..7568eff456 100644 --- a/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts +++ b/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts @@ -141,10 +141,7 @@ describe('LangChainProvider', () => { expect(result.metrics.success).toBe(false); expect(result.message.content).toBe(''); - expect(mockLogger.warn).toHaveBeenCalledWith( - 'Multimodal response not supported, expecting a string. Content type: object, Content:', - JSON.stringify({ type: 'image', data: 'base64data' }, null, 2), - ); + expect(mockLogger.warn).toHaveBeenCalledTimes(1); }); it('returns success=false for array content and logs warning', async () => { @@ -156,10 +153,7 @@ describe('LangChainProvider', () => { expect(result.metrics.success).toBe(false); expect(result.message.content).toBe(''); - expect(mockLogger.warn).toHaveBeenCalledWith( - 'Multimodal response not supported, expecting a string. Content type: object, Content:', - JSON.stringify(['text', { type: 'image', data: 'base64data' }], null, 2), - ); + expect(mockLogger.warn).toHaveBeenCalledTimes(1); }); }); From b81f8e151a59f3e7b808d94a96221d9d3148cfd9 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Mon, 13 Oct 2025 23:06:30 +0000 Subject: [PATCH 2/5] add missing typedoc file --- packages/ai-providers/server-ai-langchain/typedoc.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/ai-providers/server-ai-langchain/typedoc.json diff --git a/packages/ai-providers/server-ai-langchain/typedoc.json b/packages/ai-providers/server-ai-langchain/typedoc.json new file mode 100644 index 0000000000..7ac616b544 --- /dev/null +++ b/packages/ai-providers/server-ai-langchain/typedoc.json @@ -0,0 +1,5 @@ +{ + "extends": ["../../../typedoc.base.json"], + "entryPoints": ["src/index.ts"], + "out": "docs" +} From 7f1afda50a9c66404040e4890061ea957b84ed5c Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Mon, 13 Oct 2025 23:09:39 +0000 Subject: [PATCH 3/5] target specific sha for actions --- .github/workflows/server-ai-langchain.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/server-ai-langchain.yml b/.github/workflows/server-ai-langchain.yml index 159051a854..8fccc7c073 100644 --- a/.github/workflows/server-ai-langchain.yml +++ b/.github/workflows/server-ai-langchain.yml @@ -14,8 +14,8 @@ jobs: build-test-langchain-provider: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 with: node-version: 22.x registry-url: 'https://registry.npmjs.org' From 38e64e838989303fef861c8138f8732474184493 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Tue, 14 Oct 2025 13:49:15 +0000 Subject: [PATCH 4/5] v5 has issues where yarn fails immediately Because it was a breaking change they pretty much immediately had to ship v6 to fix the issue. --- .github/workflows/server-ai-langchain.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/server-ai-langchain.yml b/.github/workflows/server-ai-langchain.yml index 8fccc7c073..9716fb207f 100644 --- a/.github/workflows/server-ai-langchain.yml +++ b/.github/workflows/server-ai-langchain.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 + - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: 22.x registry-url: 'https://registry.npmjs.org' From 96b267a58f2427e66fbfe9fd703e6d4fcd6c9433 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Tue, 14 Oct 2025 13:57:11 +0000 Subject: [PATCH 5/5] add missing configuration files --- .../ai-providers/server-ai-langchain/tsconfig.ref.json | 7 +++++++ tsconfig.json | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 packages/ai-providers/server-ai-langchain/tsconfig.ref.json diff --git a/packages/ai-providers/server-ai-langchain/tsconfig.ref.json b/packages/ai-providers/server-ai-langchain/tsconfig.ref.json new file mode 100644 index 0000000000..0c86b2c554 --- /dev/null +++ b/packages/ai-providers/server-ai-langchain/tsconfig.ref.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "include": ["src/**/*"], + "compilerOptions": { + "composite": true + } +} diff --git a/tsconfig.json b/tsconfig.json index bd2b4db44a..ccc30f0944 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -79,5 +79,8 @@ { "path": "./packages/sdk/combined-browser/tsconfig.ref.json" }, + { + "path": "./packages/ai-providers/server-ai-langchain/tsconfig.ref.json" + } ] }