diff --git a/.github/workflows/server-ai-langchain.yml b/.github/workflows/server-ai-langchain.yml new file mode 100644 index 0000000000..9716fb207f --- /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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 + 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); }); }); 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/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" +} 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" + } ] }