From 40d6f292e9de7c139acd11b75e47fa8566aafff8 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Wed, 15 Oct 2025 19:39:28 +0000 Subject: [PATCH 1/6] fix: Reduce dependencies and use peer dependencies when needed --- .../server-ai-langchain/package.json | 10 +++++----- .../server-ai-langchain/src/LangChainProvider.ts | 2 +- .../ai-providers/server-ai-openai/package.json | 6 +++--- .../server-ai-openai/src/OpenAIProvider.ts | 2 +- .../ai-providers/server-ai-vercel/package.json | 16 +++++----------- .../server-ai-vercel/src/VercelProvider.ts | 2 +- packages/sdk/server-ai/src/index.ts | 2 ++ 7 files changed, 18 insertions(+), 22 deletions(-) diff --git a/packages/ai-providers/server-ai-langchain/package.json b/packages/ai-providers/server-ai-langchain/package.json index 265c1fc305..db3032f426 100644 --- a/packages/ai-providers/server-ai-langchain/package.json +++ b/packages/ai-providers/server-ai-langchain/package.json @@ -27,12 +27,10 @@ "author": "LaunchDarkly", "license": "Apache-2.0", "dependencies": { - "@langchain/core": ">=0.2.21 <0.3.0", - "@launchdarkly/server-sdk-ai": "^0.12.1", - "langchain": "^0.2.11" + "@launchdarkly/server-sdk-ai": "^0.12.1" }, "devDependencies": { - "@launchdarkly/js-server-sdk-common": "2.16.2", + "@langchain/core": "^0.3.0", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/jest": "^29.5.3", "@typescript-eslint/eslint-plugin": "^6.20.0", @@ -45,11 +43,13 @@ "eslint-plugin-jest": "^27.6.3", "eslint-plugin-prettier": "^5.0.0", "jest": "^29.6.1", + "langchain": "^0.3.0", "prettier": "^3.0.0", "ts-jest": "^29.1.1", "typescript": "5.1.6" }, "peerDependencies": { - "@launchdarkly/js-server-sdk-common": "2.x" + "@langchain/core": "^0.2.0 || ^0.3.0", + "langchain": "^0.2.0 || ^0.3.0" } } diff --git a/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts b/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts index b7981abac3..5aebe749c5 100644 --- a/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts +++ b/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts @@ -2,12 +2,12 @@ import { BaseChatModel } from '@langchain/core/language_models/chat_models'; import { AIMessage, HumanMessage, SystemMessage } from '@langchain/core/messages'; import { initChatModel } from 'langchain/chat_models/universal'; -import { LDLogger } from '@launchdarkly/js-server-sdk-common'; import { AIProvider, ChatResponse, LDAIConfig, LDAIMetrics, + LDLogger, LDMessage, LDTokenUsage, } from '@launchdarkly/server-sdk-ai'; diff --git a/packages/ai-providers/server-ai-openai/package.json b/packages/ai-providers/server-ai-openai/package.json index bba34bfa08..782615f2e8 100644 --- a/packages/ai-providers/server-ai-openai/package.json +++ b/packages/ai-providers/server-ai-openai/package.json @@ -27,8 +27,7 @@ "author": "LaunchDarkly", "license": "Apache-2.0", "dependencies": { - "@launchdarkly/server-sdk-ai": "^0.12.1", - "openai": "^4.0.0" + "@launchdarkly/server-sdk-ai": "^0.12.1" }, "devDependencies": { "@launchdarkly/js-server-sdk-common": "2.16.2", @@ -44,11 +43,12 @@ "eslint-plugin-jest": "^27.6.3", "eslint-plugin-prettier": "^5.0.0", "jest": "^29.6.1", + "openai": "^6.0.0", "prettier": "^3.0.0", "ts-jest": "^29.1.1", "typescript": "5.1.6" }, "peerDependencies": { - "@launchdarkly/js-server-sdk-common": "2.x" + "openai": "^4.0.0" } } diff --git a/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts b/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts index 065d7e0a78..7c956861e7 100644 --- a/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts +++ b/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts @@ -1,11 +1,11 @@ import { OpenAI } from 'openai'; -import { LDLogger } from '@launchdarkly/js-server-sdk-common'; import { AIProvider, ChatResponse, LDAIConfig, LDAIMetrics, + LDLogger, LDMessage, LDTokenUsage, } from '@launchdarkly/server-sdk-ai'; diff --git a/packages/ai-providers/server-ai-vercel/package.json b/packages/ai-providers/server-ai-vercel/package.json index ac08a8b1d9..0429cf8a1a 100644 --- a/packages/ai-providers/server-ai-vercel/package.json +++ b/packages/ai-providers/server-ai-vercel/package.json @@ -27,16 +27,7 @@ "author": "LaunchDarkly", "license": "Apache-2.0", "dependencies": { - "@ai-sdk/provider": "^2.0.0", - "@launchdarkly/server-sdk-ai": "^0.12.1", - "ai": "^5.0.0" - }, - "optionalDependencies": { - "@ai-sdk/anthropic": "^2.0.0", - "@ai-sdk/cohere": "^2.0.0", - "@ai-sdk/google": "^2.0.0", - "@ai-sdk/mistral": "^2.0.0", - "@ai-sdk/openai": "^2.0.0" + "@launchdarkly/server-sdk-ai": "^0.12.1" }, "devDependencies": { "@ai-sdk/anthropic": "^2.0.0", @@ -44,11 +35,13 @@ "@ai-sdk/google": "^2.0.0", "@ai-sdk/mistral": "^2.0.0", "@ai-sdk/openai": "^2.0.0", + "@ai-sdk/provider": "^2.0.0", "@launchdarkly/js-server-sdk-common": "2.16.2", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/jest": "^29.5.3", "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", + "ai": "^5.0.0", "eslint": "^8.45.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.1.0", @@ -62,6 +55,7 @@ "typescript": "5.1.6" }, "peerDependencies": { - "@launchdarkly/js-server-sdk-common": "2.x" + "@ai-sdk/provider": "^2.0.0", + "ai": "^4.0.0 || ^5.0.0" } } diff --git a/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts b/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts index a2ac1695bb..5aeeb3ddd0 100644 --- a/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts +++ b/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts @@ -1,12 +1,12 @@ import { LanguageModelV2 } from '@ai-sdk/provider'; import { generateText } from 'ai'; -import { LDLogger } from '@launchdarkly/js-server-sdk-common'; import { AIProvider, ChatResponse, LDAIConfig, LDAIMetrics, + LDLogger, LDMessage, LDTokenUsage, } from '@launchdarkly/server-sdk-ai'; diff --git a/packages/sdk/server-ai/src/index.ts b/packages/sdk/server-ai/src/index.ts index 2ca8209b53..3dfc66c0dd 100644 --- a/packages/sdk/server-ai/src/index.ts +++ b/packages/sdk/server-ai/src/index.ts @@ -19,4 +19,6 @@ export function initAi(ldClient: LDClientMin): LDAIClient { return new LDAIClientImpl(ldClient); } +export { LDLogger } from '@launchdarkly/js-server-sdk-common'; + export * from './api'; From e69c86f851a340c390d786bb73cb83c3a043cd54 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Wed, 15 Oct 2025 20:12:24 +0000 Subject: [PATCH 2/6] fix versions and optional peer dependencies --- .../server-ai-openai/package.json | 2 +- .../server-ai-vercel/package.json | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/ai-providers/server-ai-openai/package.json b/packages/ai-providers/server-ai-openai/package.json index 782615f2e8..461f5c5d67 100644 --- a/packages/ai-providers/server-ai-openai/package.json +++ b/packages/ai-providers/server-ai-openai/package.json @@ -49,6 +49,6 @@ "typescript": "5.1.6" }, "peerDependencies": { - "openai": "^4.0.0" + "openai": ">= 4 < 7" } } diff --git a/packages/ai-providers/server-ai-vercel/package.json b/packages/ai-providers/server-ai-vercel/package.json index 0429cf8a1a..bf048b3330 100644 --- a/packages/ai-providers/server-ai-vercel/package.json +++ b/packages/ai-providers/server-ai-vercel/package.json @@ -55,7 +55,29 @@ "typescript": "5.1.6" }, "peerDependencies": { + "@ai-sdk/openai": "^2.0.0", + "@ai-sdk/anthropic": "^2.0.0", + "@ai-sdk/cohere": "^2.0.0", + "@ai-sdk/google": "^2.0.0", + "@ai-sdk/mistral": "^2.0.0", "@ai-sdk/provider": "^2.0.0", "ai": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@ai-sdk/openai": { + "optional": true + }, + "@ai-sdk/anthropic": { + "optional": true + }, + "@ai-sdk/cohere": { + "optional": true + }, + "@ai-sdk/google": { + "optional": true + }, + "@ai-sdk/mistral": { + "optional": true + } } } From 09c925948f99b4462b6d22749d6514659fcd345e Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Wed, 15 Oct 2025 22:40:31 +0000 Subject: [PATCH 3/6] address feedback --- packages/ai-providers/server-ai-langchain/package.json | 4 +--- .../ai-providers/server-ai-langchain/src/LangChainProvider.ts | 4 ++-- packages/ai-providers/server-ai-openai/package.json | 4 +--- packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts | 4 ++-- packages/ai-providers/server-ai-vercel/package.json | 4 +--- packages/ai-providers/server-ai-vercel/src/VercelProvider.ts | 4 ++-- 6 files changed, 9 insertions(+), 15 deletions(-) diff --git a/packages/ai-providers/server-ai-langchain/package.json b/packages/ai-providers/server-ai-langchain/package.json index db3032f426..bac32d0266 100644 --- a/packages/ai-providers/server-ai-langchain/package.json +++ b/packages/ai-providers/server-ai-langchain/package.json @@ -26,9 +26,6 @@ ], "author": "LaunchDarkly", "license": "Apache-2.0", - "dependencies": { - "@launchdarkly/server-sdk-ai": "^0.12.1" - }, "devDependencies": { "@langchain/core": "^0.3.0", "@trivago/prettier-plugin-sort-imports": "^4.1.1", @@ -49,6 +46,7 @@ "typescript": "5.1.6" }, "peerDependencies": { + "@launchdarkly/server-sdk-ai": "^0.12.2", "@langchain/core": "^0.2.0 || ^0.3.0", "langchain": "^0.2.0 || ^0.3.0" } diff --git a/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts b/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts index 5aebe749c5..01df295384 100644 --- a/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts +++ b/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts @@ -2,8 +2,8 @@ import { BaseChatModel } from '@langchain/core/language_models/chat_models'; import { AIMessage, HumanMessage, SystemMessage } from '@langchain/core/messages'; import { initChatModel } from 'langchain/chat_models/universal'; -import { - AIProvider, +import { AIProvider } from '@launchdarkly/server-sdk-ai'; +import type { ChatResponse, LDAIConfig, LDAIMetrics, diff --git a/packages/ai-providers/server-ai-openai/package.json b/packages/ai-providers/server-ai-openai/package.json index 461f5c5d67..e046b3c03b 100644 --- a/packages/ai-providers/server-ai-openai/package.json +++ b/packages/ai-providers/server-ai-openai/package.json @@ -26,9 +26,6 @@ ], "author": "LaunchDarkly", "license": "Apache-2.0", - "dependencies": { - "@launchdarkly/server-sdk-ai": "^0.12.1" - }, "devDependencies": { "@launchdarkly/js-server-sdk-common": "2.16.2", "@trivago/prettier-plugin-sort-imports": "^4.1.1", @@ -49,6 +46,7 @@ "typescript": "5.1.6" }, "peerDependencies": { + "@launchdarkly/server-sdk-ai": "^0.12.2", "openai": ">= 4 < 7" } } diff --git a/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts b/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts index 7c956861e7..4d1ca699df 100644 --- a/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts +++ b/packages/ai-providers/server-ai-openai/src/OpenAIProvider.ts @@ -1,7 +1,7 @@ import { OpenAI } from 'openai'; -import { - AIProvider, +import { AIProvider } from '@launchdarkly/server-sdk-ai'; +import type { ChatResponse, LDAIConfig, LDAIMetrics, diff --git a/packages/ai-providers/server-ai-vercel/package.json b/packages/ai-providers/server-ai-vercel/package.json index bf048b3330..386fcf0177 100644 --- a/packages/ai-providers/server-ai-vercel/package.json +++ b/packages/ai-providers/server-ai-vercel/package.json @@ -26,9 +26,6 @@ ], "author": "LaunchDarkly", "license": "Apache-2.0", - "dependencies": { - "@launchdarkly/server-sdk-ai": "^0.12.1" - }, "devDependencies": { "@ai-sdk/anthropic": "^2.0.0", "@ai-sdk/cohere": "^2.0.0", @@ -55,6 +52,7 @@ "typescript": "5.1.6" }, "peerDependencies": { + "@launchdarkly/server-sdk-ai": "^0.12.2", "@ai-sdk/openai": "^2.0.0", "@ai-sdk/anthropic": "^2.0.0", "@ai-sdk/cohere": "^2.0.0", diff --git a/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts b/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts index 5aeeb3ddd0..d006b62ab7 100644 --- a/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts +++ b/packages/ai-providers/server-ai-vercel/src/VercelProvider.ts @@ -1,8 +1,8 @@ import { LanguageModelV2 } from '@ai-sdk/provider'; import { generateText } from 'ai'; -import { - AIProvider, +import { AIProvider } from '@launchdarkly/server-sdk-ai'; +import type { ChatResponse, LDAIConfig, LDAIMetrics, From ba8879adaa1cdbc362f71bfa7a7343067cacd443 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Wed, 15 Oct 2025 22:42:05 +0000 Subject: [PATCH 4/6] fix sort order --- packages/ai-providers/server-ai-langchain/package.json | 2 +- packages/ai-providers/server-ai-vercel/package.json | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ai-providers/server-ai-langchain/package.json b/packages/ai-providers/server-ai-langchain/package.json index bac32d0266..3caf634a9e 100644 --- a/packages/ai-providers/server-ai-langchain/package.json +++ b/packages/ai-providers/server-ai-langchain/package.json @@ -46,8 +46,8 @@ "typescript": "5.1.6" }, "peerDependencies": { - "@launchdarkly/server-sdk-ai": "^0.12.2", "@langchain/core": "^0.2.0 || ^0.3.0", + "@launchdarkly/server-sdk-ai": "^0.12.2", "langchain": "^0.2.0 || ^0.3.0" } } diff --git a/packages/ai-providers/server-ai-vercel/package.json b/packages/ai-providers/server-ai-vercel/package.json index 386fcf0177..0999467e8a 100644 --- a/packages/ai-providers/server-ai-vercel/package.json +++ b/packages/ai-providers/server-ai-vercel/package.json @@ -52,19 +52,16 @@ "typescript": "5.1.6" }, "peerDependencies": { - "@launchdarkly/server-sdk-ai": "^0.12.2", - "@ai-sdk/openai": "^2.0.0", "@ai-sdk/anthropic": "^2.0.0", "@ai-sdk/cohere": "^2.0.0", "@ai-sdk/google": "^2.0.0", "@ai-sdk/mistral": "^2.0.0", + "@ai-sdk/openai": "^2.0.0", "@ai-sdk/provider": "^2.0.0", + "@launchdarkly/server-sdk-ai": "^0.12.2", "ai": "^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { - "@ai-sdk/openai": { - "optional": true - }, "@ai-sdk/anthropic": { "optional": true }, @@ -76,6 +73,9 @@ }, "@ai-sdk/mistral": { "optional": true + }, + "@ai-sdk/openai": { + "optional": true } } } From 8f8fe428b521465827132fed6ba0082cc47a7bf2 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Thu, 16 Oct 2025 13:19:50 +0000 Subject: [PATCH 5/6] add missing dev dependency --- packages/ai-providers/server-ai-langchain/package.json | 1 + packages/ai-providers/server-ai-openai/package.json | 1 + packages/ai-providers/server-ai-vercel/package.json | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ai-providers/server-ai-langchain/package.json b/packages/ai-providers/server-ai-langchain/package.json index 3caf634a9e..6e9fa9b371 100644 --- a/packages/ai-providers/server-ai-langchain/package.json +++ b/packages/ai-providers/server-ai-langchain/package.json @@ -28,6 +28,7 @@ "license": "Apache-2.0", "devDependencies": { "@langchain/core": "^0.3.0", + "@launchdarkly/server-sdk-ai": "^0.12.2", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/jest": "^29.5.3", "@typescript-eslint/eslint-plugin": "^6.20.0", diff --git a/packages/ai-providers/server-ai-openai/package.json b/packages/ai-providers/server-ai-openai/package.json index e046b3c03b..886823adb0 100644 --- a/packages/ai-providers/server-ai-openai/package.json +++ b/packages/ai-providers/server-ai-openai/package.json @@ -28,6 +28,7 @@ "license": "Apache-2.0", "devDependencies": { "@launchdarkly/js-server-sdk-common": "2.16.2", + "@launchdarkly/server-sdk-ai": "^0.12.2", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/jest": "^29.5.3", "@typescript-eslint/eslint-plugin": "^6.20.0", diff --git a/packages/ai-providers/server-ai-vercel/package.json b/packages/ai-providers/server-ai-vercel/package.json index 0999467e8a..4d9e954991 100644 --- a/packages/ai-providers/server-ai-vercel/package.json +++ b/packages/ai-providers/server-ai-vercel/package.json @@ -33,7 +33,7 @@ "@ai-sdk/mistral": "^2.0.0", "@ai-sdk/openai": "^2.0.0", "@ai-sdk/provider": "^2.0.0", - "@launchdarkly/js-server-sdk-common": "2.16.2", + "@launchdarkly/server-sdk-ai": "^0.12.2", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/jest": "^29.5.3", "@typescript-eslint/eslint-plugin": "^6.20.0", From 5a1ec59fdc633a792f372edd8602c5cf1d910244 Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Thu, 16 Oct 2025 13:20:38 +0000 Subject: [PATCH 6/6] update server-ai version --- packages/sdk/server-ai/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/server-ai/package.json b/packages/sdk/server-ai/package.json index 2bc3dd7465..890f3cf576 100644 --- a/packages/sdk/server-ai/package.json +++ b/packages/sdk/server-ai/package.json @@ -1,6 +1,6 @@ { "name": "@launchdarkly/server-sdk-ai", - "version": "0.12.1", + "version": "0.12.2", "description": "LaunchDarkly AI SDK for Server-Side JavaScript", "homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/sdk/server-ai", "repository": {