@launchdarkly/server-sdk-ai 0.12.3 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +2 -2
  3. package/__tests__/Judge.test.ts +496 -0
  4. package/__tests__/LDAIClientImpl.test.ts +530 -323
  5. package/__tests__/LDAIConfigTrackerImpl.test.ts +50 -290
  6. package/__tests__/TrackedChat.test.ts +4 -5
  7. package/dist/package.json +53 -0
  8. package/dist/src/LDAIClientImpl.d.ts +39 -0
  9. package/dist/src/LDAIClientImpl.d.ts.map +1 -0
  10. package/dist/src/LDAIClientImpl.js +164 -0
  11. package/dist/src/LDAIClientImpl.js.map +1 -0
  12. package/dist/{LDAIConfigTrackerImpl.d.ts → src/LDAIConfigTrackerImpl.d.ts} +13 -11
  13. package/dist/src/LDAIConfigTrackerImpl.d.ts.map +1 -0
  14. package/dist/{LDAIConfigTrackerImpl.js → src/LDAIConfigTrackerImpl.js} +59 -44
  15. package/dist/src/LDAIConfigTrackerImpl.js.map +1 -0
  16. package/dist/src/LDClientMin.d.ts.map +1 -0
  17. package/dist/{LDClientMin.js.map → src/LDClientMin.js.map} +1 -1
  18. package/dist/src/api/LDAIClient.d.ts +258 -0
  19. package/dist/src/api/LDAIClient.d.ts.map +1 -0
  20. package/dist/{api → src/api}/LDAIClient.js.map +1 -1
  21. package/dist/{api → src/api}/chat/TrackedChat.d.ts +22 -4
  22. package/dist/src/api/chat/TrackedChat.d.ts.map +1 -0
  23. package/dist/{api → src/api}/chat/TrackedChat.js +43 -2
  24. package/dist/src/api/chat/TrackedChat.js.map +1 -0
  25. package/dist/src/api/chat/index.d.ts.map +1 -0
  26. package/dist/src/api/chat/index.js.map +1 -0
  27. package/dist/src/api/chat/types.d.ts +22 -0
  28. package/dist/src/api/chat/types.d.ts.map +1 -0
  29. package/dist/{api → src/api}/chat/types.js.map +1 -1
  30. package/dist/{api → src/api}/config/LDAIConfigTracker.d.ts +41 -22
  31. package/dist/src/api/config/LDAIConfigTracker.d.ts.map +1 -0
  32. package/dist/src/api/config/LDAIConfigTracker.js.map +1 -0
  33. package/dist/src/api/config/LDAIConfigUtils.d.ts +2 -0
  34. package/dist/src/api/config/LDAIConfigUtils.d.ts.map +1 -0
  35. package/dist/src/api/config/LDAIConfigUtils.js +141 -0
  36. package/dist/src/api/config/LDAIConfigUtils.js.map +1 -0
  37. package/dist/src/api/config/index.d.ts +3 -0
  38. package/dist/src/api/config/index.d.ts.map +1 -0
  39. package/dist/{api/agents → src/api/config}/index.js +1 -1
  40. package/dist/src/api/config/index.js.map +1 -0
  41. package/dist/src/api/config/types.d.ts +202 -0
  42. package/dist/src/api/config/types.d.ts.map +1 -0
  43. package/dist/{api/agents/LDAIAgent.js → src/api/config/types.js} +1 -1
  44. package/dist/src/api/config/types.js.map +1 -0
  45. package/dist/{api → src/api}/index.d.ts +1 -1
  46. package/dist/src/api/index.d.ts.map +1 -0
  47. package/dist/{api → src/api}/index.js +1 -1
  48. package/dist/src/api/index.js.map +1 -0
  49. package/dist/src/api/judge/EvaluationSchemaBuilder.d.ts +11 -0
  50. package/dist/src/api/judge/EvaluationSchemaBuilder.d.ts.map +1 -0
  51. package/dist/src/api/judge/EvaluationSchemaBuilder.js +52 -0
  52. package/dist/src/api/judge/EvaluationSchemaBuilder.js.map +1 -0
  53. package/dist/src/api/judge/Judge.d.ts +63 -0
  54. package/dist/src/api/judge/Judge.d.ts.map +1 -0
  55. package/dist/src/api/judge/Judge.js +149 -0
  56. package/dist/src/api/judge/Judge.js.map +1 -0
  57. package/dist/src/api/judge/index.d.ts +3 -0
  58. package/dist/src/api/judge/index.d.ts.map +1 -0
  59. package/dist/src/api/judge/index.js +6 -0
  60. package/dist/src/api/judge/index.js.map +1 -0
  61. package/dist/src/api/judge/types.d.ts +35 -0
  62. package/dist/src/api/judge/types.d.ts.map +1 -0
  63. package/dist/{api/config/LDAIConfig.js → src/api/judge/types.js} +1 -1
  64. package/dist/src/api/judge/types.js.map +1 -0
  65. package/dist/src/api/metrics/BedrockTokenUsage.d.ts.map +1 -0
  66. package/dist/src/api/metrics/BedrockTokenUsage.js.map +1 -0
  67. package/dist/src/api/metrics/LDAIMetrics.d.ts.map +1 -0
  68. package/dist/src/api/metrics/LDAIMetrics.js.map +1 -0
  69. package/dist/src/api/metrics/LDFeedbackKind.d.ts.map +1 -0
  70. package/dist/src/api/metrics/LDFeedbackKind.js.map +1 -0
  71. package/dist/src/api/metrics/LDTokenUsage.d.ts.map +1 -0
  72. package/dist/src/api/metrics/LDTokenUsage.js.map +1 -0
  73. package/dist/src/api/metrics/OpenAiUsage.d.ts.map +1 -0
  74. package/dist/src/api/metrics/OpenAiUsage.js.map +1 -0
  75. package/dist/src/api/metrics/VercelAISDKTokenUsage.d.ts.map +1 -0
  76. package/dist/src/api/metrics/VercelAISDKTokenUsage.js.map +1 -0
  77. package/dist/src/api/metrics/index.d.ts.map +1 -0
  78. package/dist/src/api/metrics/index.js.map +1 -0
  79. package/dist/{api → src/api}/providers/AIProvider.d.ts +20 -3
  80. package/dist/src/api/providers/AIProvider.d.ts.map +1 -0
  81. package/dist/src/api/providers/AIProvider.js +88 -0
  82. package/dist/src/api/providers/AIProvider.js.map +1 -0
  83. package/dist/{api → src/api}/providers/AIProviderFactory.d.ts +2 -2
  84. package/dist/src/api/providers/AIProviderFactory.d.ts.map +1 -0
  85. package/dist/src/api/providers/AIProviderFactory.js.map +1 -0
  86. package/dist/src/api/providers/index.d.ts.map +1 -0
  87. package/dist/src/api/providers/index.js.map +1 -0
  88. package/dist/src/index.d.ts.map +1 -0
  89. package/dist/src/index.js.map +1 -0
  90. package/docs/assets/search.js +1 -1
  91. package/docs/classes/AIProvider.html +55 -20
  92. package/docs/classes/AIProviderFactory.html +27 -17
  93. package/docs/classes/Judge.html +322 -0
  94. package/docs/classes/TrackedChat.html +97 -29
  95. package/docs/enums/LDFeedbackKind.html +22 -12
  96. package/docs/functions/createBedrockTokenUsage.html +20 -10
  97. package/docs/functions/createOpenAiUsage.html +20 -10
  98. package/docs/functions/createVercelAISDKTokenUsage.html +20 -10
  99. package/docs/functions/initAi.html +20 -10
  100. package/docs/index.html +36 -16
  101. package/docs/interfaces/ChatResponse.html +35 -14
  102. package/docs/interfaces/EvalScore.html +119 -0
  103. package/docs/interfaces/JudgeResponse.html +129 -0
  104. package/docs/interfaces/LDAIAgentConfig.html +81 -33
  105. package/docs/interfaces/{LDAIAgent.html → LDAIAgentConfigDefault.html} +51 -41
  106. package/docs/interfaces/LDAIAgentRequestConfig.html +129 -0
  107. package/docs/interfaces/LDAIClient.html +234 -40
  108. package/docs/interfaces/{VercelAISDKConfig.html → LDAICompletionConfig.html} +86 -86
  109. package/docs/interfaces/LDAICompletionConfigDefault.html +155 -0
  110. package/docs/interfaces/LDAIConfig.html +45 -75
  111. package/docs/interfaces/LDAIConfigDefault.html +133 -0
  112. package/docs/interfaces/LDAIConfigTracker.html +140 -59
  113. package/docs/interfaces/LDAIJudgeConfig.html +167 -0
  114. package/docs/interfaces/LDAIJudgeConfigDefault.html +155 -0
  115. package/docs/interfaces/LDAIMetrics.html +22 -12
  116. package/docs/interfaces/LDJudge.html +119 -0
  117. package/docs/interfaces/{VercelAISDKMapOptions.html → LDJudgeConfiguration.html} +36 -19
  118. package/docs/interfaces/LDLogger.html +19 -9
  119. package/docs/interfaces/LDMessage.html +22 -12
  120. package/docs/interfaces/LDModelConfig.html +23 -13
  121. package/docs/interfaces/LDProviderConfig.html +21 -11
  122. package/docs/interfaces/LDTokenUsage.html +23 -13
  123. package/docs/interfaces/StructuredResponse.html +129 -0
  124. package/docs/types/{VercelAISDKProvider.html → LDAIConfigDefaultKind.html} +26 -31
  125. package/docs/types/{LDAIAgentDefaults.html → LDAIConfigKind.html} +24 -14
  126. package/docs/types/{LDAIDefaults.html → LDAIConfigMode.html} +24 -24
  127. package/docs/types/SupportedAIProvider.html +20 -10
  128. package/docs/variables/SUPPORTED_AI_PROVIDERS.html +20 -10
  129. package/package.json +3 -3
  130. package/src/LDAIClientImpl.ts +222 -176
  131. package/src/LDAIConfigTrackerImpl.ts +73 -54
  132. package/src/api/LDAIClient.ts +166 -33
  133. package/src/api/chat/TrackedChat.ts +64 -5
  134. package/src/api/chat/types.ts +8 -1
  135. package/src/api/config/LDAIConfigTracker.ts +46 -27
  136. package/src/api/config/LDAIConfigUtils.ts +201 -0
  137. package/src/api/config/index.ts +2 -2
  138. package/src/api/config/types.ts +256 -0
  139. package/src/api/index.ts +1 -1
  140. package/src/api/judge/EvaluationSchemaBuilder.ts +54 -0
  141. package/src/api/judge/Judge.ts +216 -0
  142. package/src/api/judge/index.ts +2 -0
  143. package/src/api/judge/types.ts +39 -0
  144. package/src/api/providers/AIProvider.ts +54 -3
  145. package/src/api/providers/AIProviderFactory.ts +4 -4
  146. package/tsconfig.json +3 -3
  147. package/tsconfig.ref.json +1 -1
  148. package/__tests__/LDAIConfigMapper.test.ts +0 -159
  149. package/dist/LDAIClientImpl.d.ts +0 -23
  150. package/dist/LDAIClientImpl.d.ts.map +0 -1
  151. package/dist/LDAIClientImpl.js +0 -128
  152. package/dist/LDAIClientImpl.js.map +0 -1
  153. package/dist/LDAIConfigMapper.d.ts +0 -10
  154. package/dist/LDAIConfigMapper.d.ts.map +0 -1
  155. package/dist/LDAIConfigMapper.js +0 -55
  156. package/dist/LDAIConfigMapper.js.map +0 -1
  157. package/dist/LDAIConfigTrackerImpl.d.ts.map +0 -1
  158. package/dist/LDAIConfigTrackerImpl.js.map +0 -1
  159. package/dist/LDClientMin.d.ts.map +0 -1
  160. package/dist/api/LDAIClient.d.ts +0 -169
  161. package/dist/api/LDAIClient.d.ts.map +0 -1
  162. package/dist/api/agents/LDAIAgent.d.ts +0 -32
  163. package/dist/api/agents/LDAIAgent.d.ts.map +0 -1
  164. package/dist/api/agents/LDAIAgent.js.map +0 -1
  165. package/dist/api/agents/index.d.ts +0 -2
  166. package/dist/api/agents/index.d.ts.map +0 -1
  167. package/dist/api/agents/index.js.map +0 -1
  168. package/dist/api/chat/TrackedChat.d.ts.map +0 -1
  169. package/dist/api/chat/TrackedChat.js.map +0 -1
  170. package/dist/api/chat/index.d.ts.map +0 -1
  171. package/dist/api/chat/index.js.map +0 -1
  172. package/dist/api/chat/types.d.ts +0 -16
  173. package/dist/api/chat/types.d.ts.map +0 -1
  174. package/dist/api/config/LDAIConfig.d.ts +0 -92
  175. package/dist/api/config/LDAIConfig.d.ts.map +0 -1
  176. package/dist/api/config/LDAIConfig.js.map +0 -1
  177. package/dist/api/config/LDAIConfigTracker.d.ts.map +0 -1
  178. package/dist/api/config/LDAIConfigTracker.js.map +0 -1
  179. package/dist/api/config/VercelAISDK.d.ts +0 -19
  180. package/dist/api/config/VercelAISDK.d.ts.map +0 -1
  181. package/dist/api/config/VercelAISDK.js +0 -3
  182. package/dist/api/config/VercelAISDK.js.map +0 -1
  183. package/dist/api/config/index.d.ts +0 -4
  184. package/dist/api/config/index.d.ts.map +0 -1
  185. package/dist/api/config/index.js +0 -19
  186. package/dist/api/config/index.js.map +0 -1
  187. package/dist/api/index.d.ts.map +0 -1
  188. package/dist/api/index.js.map +0 -1
  189. package/dist/api/metrics/BedrockTokenUsage.d.ts.map +0 -1
  190. package/dist/api/metrics/BedrockTokenUsage.js.map +0 -1
  191. package/dist/api/metrics/LDAIMetrics.d.ts.map +0 -1
  192. package/dist/api/metrics/LDAIMetrics.js.map +0 -1
  193. package/dist/api/metrics/LDFeedbackKind.d.ts.map +0 -1
  194. package/dist/api/metrics/LDFeedbackKind.js.map +0 -1
  195. package/dist/api/metrics/LDTokenUsage.d.ts.map +0 -1
  196. package/dist/api/metrics/LDTokenUsage.js.map +0 -1
  197. package/dist/api/metrics/OpenAiUsage.d.ts.map +0 -1
  198. package/dist/api/metrics/OpenAiUsage.js.map +0 -1
  199. package/dist/api/metrics/VercelAISDKTokenUsage.d.ts.map +0 -1
  200. package/dist/api/metrics/VercelAISDKTokenUsage.js.map +0 -1
  201. package/dist/api/metrics/index.d.ts.map +0 -1
  202. package/dist/api/metrics/index.js.map +0 -1
  203. package/dist/api/providers/AIProvider.d.ts.map +0 -1
  204. package/dist/api/providers/AIProvider.js +0 -31
  205. package/dist/api/providers/AIProvider.js.map +0 -1
  206. package/dist/api/providers/AIProviderFactory.d.ts.map +0 -1
  207. package/dist/api/providers/AIProviderFactory.js.map +0 -1
  208. package/dist/api/providers/index.d.ts.map +0 -1
  209. package/dist/api/providers/index.js.map +0 -1
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/index.js.map +0 -1
  212. package/src/LDAIConfigMapper.ts +0 -65
  213. package/src/api/agents/LDAIAgent.ts +0 -36
  214. package/src/api/agents/index.ts +0 -1
  215. package/src/api/config/LDAIConfig.ts +0 -101
  216. package/src/api/config/VercelAISDK.ts +0 -21
  217. /package/dist/{LDClientMin.d.ts → src/LDClientMin.d.ts} +0 -0
  218. /package/dist/{LDClientMin.js → src/LDClientMin.js} +0 -0
  219. /package/dist/{api → src/api}/LDAIClient.js +0 -0
  220. /package/dist/{api → src/api}/chat/index.d.ts +0 -0
  221. /package/dist/{api → src/api}/chat/index.js +0 -0
  222. /package/dist/{api → src/api}/chat/types.js +0 -0
  223. /package/dist/{api → src/api}/config/LDAIConfigTracker.js +0 -0
  224. /package/dist/{api → src/api}/metrics/BedrockTokenUsage.d.ts +0 -0
  225. /package/dist/{api → src/api}/metrics/BedrockTokenUsage.js +0 -0
  226. /package/dist/{api → src/api}/metrics/LDAIMetrics.d.ts +0 -0
  227. /package/dist/{api → src/api}/metrics/LDAIMetrics.js +0 -0
  228. /package/dist/{api → src/api}/metrics/LDFeedbackKind.d.ts +0 -0
  229. /package/dist/{api → src/api}/metrics/LDFeedbackKind.js +0 -0
  230. /package/dist/{api → src/api}/metrics/LDTokenUsage.d.ts +0 -0
  231. /package/dist/{api → src/api}/metrics/LDTokenUsage.js +0 -0
  232. /package/dist/{api → src/api}/metrics/OpenAiUsage.d.ts +0 -0
  233. /package/dist/{api → src/api}/metrics/OpenAiUsage.js +0 -0
  234. /package/dist/{api → src/api}/metrics/VercelAISDKTokenUsage.d.ts +0 -0
  235. /package/dist/{api → src/api}/metrics/VercelAISDKTokenUsage.js +0 -0
  236. /package/dist/{api → src/api}/metrics/index.d.ts +0 -0
  237. /package/dist/{api → src/api}/metrics/index.js +0 -0
  238. /package/dist/{api → src/api}/providers/AIProviderFactory.js +0 -0
  239. /package/dist/{api → src/api}/providers/index.d.ts +0 -0
  240. /package/dist/{api → src/api}/providers/index.js +0 -0
  241. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  242. /package/dist/{index.js → src/index.js} +0 -0
@@ -0,0 +1,39 @@
1
+ import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
+ import { TrackedChat } from './api/chat';
3
+ import { LDAIAgentConfig, LDAIAgentConfigDefault, LDAIAgentRequestConfig, LDAICompletionConfig, LDAICompletionConfigDefault, LDAIJudgeConfig, LDAIJudgeConfigDefault } from './api/config';
4
+ import { Judge } from './api/judge/Judge';
5
+ import { LDAIClient } from './api/LDAIClient';
6
+ import { SupportedAIProvider } from './api/providers';
7
+ import { LDClientMin } from './LDClientMin';
8
+ export declare class LDAIClientImpl implements LDAIClient {
9
+ private _ldClient;
10
+ private _logger?;
11
+ constructor(_ldClient: LDClientMin);
12
+ private _interpolateTemplate;
13
+ private _evaluate;
14
+ private _applyInterpolation;
15
+ private _initializeJudges;
16
+ completionConfig(key: string, context: LDContext, defaultValue: LDAICompletionConfigDefault, variables?: Record<string, unknown>): Promise<LDAICompletionConfig>;
17
+ /**
18
+ * @deprecated Use `completionConfig` instead. This method will be removed in a future version.
19
+ */
20
+ config(key: string, context: LDContext, defaultValue: LDAICompletionConfigDefault, variables?: Record<string, unknown>): Promise<LDAICompletionConfig>;
21
+ judgeConfig(key: string, context: LDContext, defaultValue: LDAIJudgeConfigDefault, variables?: Record<string, unknown>): Promise<LDAIJudgeConfig>;
22
+ agentConfig(key: string, context: LDContext, defaultValue: LDAIAgentConfigDefault, variables?: Record<string, unknown>): Promise<LDAIAgentConfig>;
23
+ /**
24
+ * @deprecated Use `agentConfig` instead. This method will be removed in a future version.
25
+ */
26
+ agent(key: string, context: LDContext, defaultValue: LDAIAgentConfigDefault, variables?: Record<string, unknown>): Promise<LDAIAgentConfig>;
27
+ agentConfigs<const T extends readonly LDAIAgentRequestConfig[]>(agentConfigs: T, context: LDContext): Promise<Record<T[number]['key'], LDAIAgentConfig>>;
28
+ /**
29
+ * @deprecated Use `agentConfigs` instead. This method will be removed in a future version.
30
+ */
31
+ agents<const T extends readonly LDAIAgentRequestConfig[]>(agentConfigs: T, context: LDContext): Promise<Record<T[number]['key'], LDAIAgentConfig>>;
32
+ createChat(key: string, context: LDContext, defaultValue: LDAICompletionConfigDefault, variables?: Record<string, unknown>, defaultAiProvider?: SupportedAIProvider): Promise<TrackedChat | undefined>;
33
+ createJudge(key: string, context: LDContext, defaultValue: LDAIJudgeConfigDefault, variables?: Record<string, unknown>, defaultAiProvider?: SupportedAIProvider): Promise<Judge | undefined>;
34
+ /**
35
+ * @deprecated Use `createChat` instead. This method will be removed in a future version.
36
+ */
37
+ initChat(key: string, context: LDContext, defaultValue: LDAICompletionConfigDefault, variables?: Record<string, unknown>, defaultAiProvider?: SupportedAIProvider): Promise<TrackedChat | undefined>;
38
+ }
39
+ //# sourceMappingURL=LDAIClientImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIClientImpl.d.ts","sourceRoot":"","sources":["../../src/LDAIClientImpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LDAIClientImpl = void 0;
4
+ const Mustache = require("mustache");
5
+ const chat_1 = require("./api/chat");
6
+ const LDAIConfigUtils_1 = require("./api/config/LDAIConfigUtils");
7
+ const Judge_1 = require("./api/judge/Judge");
8
+ const providers_1 = require("./api/providers");
9
+ const LDAIConfigTrackerImpl_1 = require("./LDAIConfigTrackerImpl");
10
+ /**
11
+ * Tracking event keys for AI SDK usage metrics.
12
+ */
13
+ const TRACK_CONFIG_SINGLE = '$ld:ai:config:function:single';
14
+ const TRACK_CONFIG_CREATE_CHAT = '$ld:ai:config:function:createChat';
15
+ const TRACK_JUDGE_SINGLE = '$ld:ai:judge:function:single';
16
+ const TRACK_JUDGE_CREATE = '$ld:ai:judge:function:createJudge';
17
+ const TRACK_AGENT_SINGLE = '$ld:ai:agent:function:single';
18
+ const TRACK_AGENT_MULTIPLE = '$ld:ai:agent:function:multiple';
19
+ class LDAIClientImpl {
20
+ constructor(_ldClient) {
21
+ this._ldClient = _ldClient;
22
+ this._logger = _ldClient.logger;
23
+ }
24
+ _interpolateTemplate(template, variables) {
25
+ return Mustache.render(template, variables, undefined, { escape: (item) => item });
26
+ }
27
+ async _evaluate(key, context, defaultValue, mode, variables) {
28
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
29
+ const ldFlagValue = LDAIConfigUtils_1.LDAIConfigUtils.toFlagValue(defaultValue, mode);
30
+ const value = await this._ldClient.variation(key, context, ldFlagValue);
31
+ // Validate mode match
32
+ // eslint-disable-next-line no-underscore-dangle
33
+ const flagMode = (_b = (_a = value._ldMeta) === null || _a === void 0 ? void 0 : _a.mode) !== null && _b !== void 0 ? _b : 'completion';
34
+ if (flagMode !== mode) {
35
+ (_c = this._logger) === null || _c === void 0 ? void 0 : _c.warn(`AI Config mode mismatch for ${key}: expected ${mode}, got ${flagMode}. Returning disabled config.`);
36
+ return LDAIConfigUtils_1.LDAIConfigUtils.createDisabledConfig(mode);
37
+ }
38
+ const tracker = new LDAIConfigTrackerImpl_1.LDAIConfigTrackerImpl(this._ldClient, key,
39
+ // eslint-disable-next-line no-underscore-dangle
40
+ (_e = (_d = value._ldMeta) === null || _d === void 0 ? void 0 : _d.variationKey) !== null && _e !== void 0 ? _e : '',
41
+ // eslint-disable-next-line no-underscore-dangle
42
+ (_g = (_f = value._ldMeta) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : 1, (_j = (_h = value.model) === null || _h === void 0 ? void 0 : _h.name) !== null && _j !== void 0 ? _j : '', (_l = (_k = value.provider) === null || _k === void 0 ? void 0 : _k.name) !== null && _l !== void 0 ? _l : '', context);
43
+ const config = LDAIConfigUtils_1.LDAIConfigUtils.fromFlagValue(value, tracker);
44
+ // Apply variable interpolation (always needed for ldctx)
45
+ return this._applyInterpolation(config, context, variables);
46
+ }
47
+ _applyInterpolation(config, context, variables) {
48
+ const allVariables = Object.assign(Object.assign({}, variables), { ldctx: context });
49
+ if ('messages' in config && config.messages) {
50
+ return Object.assign(Object.assign({}, config), { messages: config.messages.map((entry) => (Object.assign(Object.assign({}, entry), { content: this._interpolateTemplate(entry.content, allVariables) }))) });
51
+ }
52
+ if ('instructions' in config && config.instructions) {
53
+ return Object.assign(Object.assign({}, config), { instructions: this._interpolateTemplate(config.instructions, allVariables) });
54
+ }
55
+ return config;
56
+ }
57
+ async _initializeJudges(judgeConfigs, context, variables, defaultAiProvider) {
58
+ const judges = {};
59
+ const judgePromises = judgeConfigs.map(async (judgeConfig) => {
60
+ const judge = await this.createJudge(judgeConfig.key, context, { enabled: false }, variables, defaultAiProvider);
61
+ return judge ? { key: judgeConfig.key, judge } : null;
62
+ });
63
+ const results = await Promise.all(judgePromises);
64
+ results.forEach((result) => {
65
+ if (result) {
66
+ judges[result.key] = result.judge;
67
+ }
68
+ });
69
+ return judges;
70
+ }
71
+ async completionConfig(key, context, defaultValue, variables) {
72
+ this._ldClient.track(TRACK_CONFIG_SINGLE, context, key, 1);
73
+ const config = await this._evaluate(key, context, defaultValue, 'completion', variables);
74
+ return config;
75
+ }
76
+ /**
77
+ * @deprecated Use `completionConfig` instead. This method will be removed in a future version.
78
+ */
79
+ async config(key, context, defaultValue, variables) {
80
+ return this.completionConfig(key, context, defaultValue, variables);
81
+ }
82
+ async judgeConfig(key, context, defaultValue, variables) {
83
+ this._ldClient.track(TRACK_JUDGE_SINGLE, context, key, 1);
84
+ const config = await this._evaluate(key, context, defaultValue, 'judge', variables);
85
+ return config;
86
+ }
87
+ async agentConfig(key, context, defaultValue, variables) {
88
+ this._ldClient.track(TRACK_AGENT_SINGLE, context, key, 1);
89
+ const config = await this._evaluate(key, context, defaultValue, 'agent', variables);
90
+ return config;
91
+ }
92
+ /**
93
+ * @deprecated Use `agentConfig` instead. This method will be removed in a future version.
94
+ */
95
+ async agent(key, context, defaultValue, variables) {
96
+ return this.agentConfig(key, context, defaultValue, variables);
97
+ }
98
+ async agentConfigs(agentConfigs, context) {
99
+ this._ldClient.track(TRACK_AGENT_MULTIPLE, context, agentConfigs.length, agentConfigs.length);
100
+ const agents = {};
101
+ await Promise.all(agentConfigs.map(async (config) => {
102
+ const agent = await this._evaluate(config.key, context, config.defaultValue, 'agent', config.variables);
103
+ agents[config.key] = agent;
104
+ }));
105
+ return agents;
106
+ }
107
+ /**
108
+ * @deprecated Use `agentConfigs` instead. This method will be removed in a future version.
109
+ */
110
+ async agents(agentConfigs, context) {
111
+ return this.agentConfigs(agentConfigs, context);
112
+ }
113
+ async createChat(key, context, defaultValue, variables, defaultAiProvider) {
114
+ var _a, _b, _c;
115
+ this._ldClient.track(TRACK_CONFIG_CREATE_CHAT, context, key, 1);
116
+ const config = await this.completionConfig(key, context, defaultValue, variables);
117
+ if (!config.enabled || !config.tracker) {
118
+ (_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(`Chat configuration is disabled: ${key}`);
119
+ return undefined;
120
+ }
121
+ const provider = await providers_1.AIProviderFactory.create(config, this._logger, defaultAiProvider);
122
+ if (!provider) {
123
+ return undefined;
124
+ }
125
+ const judges = await this._initializeJudges((_c = (_b = config.judgeConfiguration) === null || _b === void 0 ? void 0 : _b.judges) !== null && _c !== void 0 ? _c : [], context, variables, defaultAiProvider);
126
+ return new chat_1.TrackedChat(config, config.tracker, provider, judges, this._logger);
127
+ }
128
+ async createJudge(key, context, defaultValue, variables, defaultAiProvider) {
129
+ var _a, _b, _c, _d;
130
+ this._ldClient.track(TRACK_JUDGE_CREATE, context, key, 1);
131
+ try {
132
+ if ((variables === null || variables === void 0 ? void 0 : variables.message_history) !== undefined) {
133
+ (_a = this._logger) === null || _a === void 0 ? void 0 : _a.warn("The variable 'message_history' is reserved by the judge and will be ignored.");
134
+ }
135
+ if ((variables === null || variables === void 0 ? void 0 : variables.response_to_evaluate) !== undefined) {
136
+ (_b = this._logger) === null || _b === void 0 ? void 0 : _b.warn("The variable 'response_to_evaluate' is reserved by the judge and will be ignored.");
137
+ }
138
+ // Overwrite reserved variables to ensure they remain as placeholders for judge evaluation
139
+ const extendedVariables = Object.assign(Object.assign({}, variables), { message_history: '{{message_history}}', response_to_evaluate: '{{response_to_evaluate}}' });
140
+ const judgeConfig = await this.judgeConfig(key, context, defaultValue, extendedVariables);
141
+ if (!judgeConfig.enabled || !judgeConfig.tracker) {
142
+ (_c = this._logger) === null || _c === void 0 ? void 0 : _c.info(`Judge configuration is disabled: ${key}`);
143
+ return undefined;
144
+ }
145
+ const provider = await providers_1.AIProviderFactory.create(judgeConfig, this._logger, defaultAiProvider);
146
+ if (!provider) {
147
+ return undefined;
148
+ }
149
+ return new Judge_1.Judge(judgeConfig, judgeConfig.tracker, provider, this._logger);
150
+ }
151
+ catch (error) {
152
+ (_d = this._logger) === null || _d === void 0 ? void 0 : _d.error(`Failed to initialize judge ${key}:`, error);
153
+ return undefined;
154
+ }
155
+ }
156
+ /**
157
+ * @deprecated Use `createChat` instead. This method will be removed in a future version.
158
+ */
159
+ async initChat(key, context, defaultValue, variables, defaultAiProvider) {
160
+ return this.createChat(key, context, defaultValue, variables, defaultAiProvider);
161
+ }
162
+ }
163
+ exports.LDAIClientImpl = LDAIClientImpl;
164
+ //# sourceMappingURL=LDAIClientImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIClientImpl.js","sourceRoot":"","sources":["../../src/LDAIClientImpl.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
2
  import { LDAIConfigTracker } from './api/config';
3
3
  import { LDAIMetricSummary } from './api/config/LDAIConfigTracker';
4
+ import { EvalScore } from './api/judge/types';
4
5
  import { LDAIMetrics, LDFeedbackKind, LDTokenUsage } from './api/metrics';
5
6
  import { LDClientMin } from './LDClientMin';
6
7
  export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
@@ -13,16 +14,27 @@ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
13
14
  private _context;
14
15
  private _trackedMetrics;
15
16
  constructor(_ldClient: LDClientMin, _configKey: string, _variationKey: string, _version: number, _modelName: string, _providerName: string, _context: LDContext);
16
- private _getTrackData;
17
+ getTrackData(): {
18
+ variationKey: string;
19
+ configKey: string;
20
+ version: number;
21
+ modelName: string;
22
+ providerName: string;
23
+ aiSdkName: string;
24
+ aiSdkVersion: string;
25
+ };
17
26
  trackDuration(duration: number): void;
18
27
  trackDurationOf<TRes>(func: () => Promise<TRes>): Promise<TRes>;
19
28
  trackTimeToFirstToken(timeToFirstTokenMs: number): void;
29
+ trackEvalScores(scores: Record<string, EvalScore>): void;
20
30
  trackFeedback(feedback: {
21
31
  kind: LDFeedbackKind;
22
32
  }): void;
23
33
  trackSuccess(): void;
24
34
  trackError(): void;
25
35
  trackMetricsOf<TRes>(metricsExtractor: (result: TRes) => LDAIMetrics, func: () => Promise<TRes>): Promise<TRes>;
36
+ trackStreamMetricsOf<TStream>(streamCreator: () => TStream, metricsExtractor: (stream: TStream) => Promise<LDAIMetrics>): TStream;
37
+ private _trackStreamMetricsInBackground;
26
38
  trackOpenAIMetrics<TRes extends {
27
39
  usage?: {
28
40
  total_tokens?: number;
@@ -52,16 +64,6 @@ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
52
64
  completionTokens?: number;
53
65
  };
54
66
  }>(func: () => Promise<TRes>): Promise<TRes>;
55
- trackVercelAISDKStreamTextMetrics<TRes extends {
56
- finishReason?: Promise<string>;
57
- usage?: Promise<{
58
- totalTokens?: number;
59
- inputTokens?: number;
60
- promptTokens?: number;
61
- outputTokens?: number;
62
- completionTokens?: number;
63
- }>;
64
- }>(func: () => TRes): TRes;
65
67
  trackTokens(tokens: LDTokenUsage): void;
66
68
  /**
67
69
  * Get a summary of the tracked metrics.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.d.ts","sourceRoot":"","sources":["../../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LDAIConfigTrackerImpl = void 0;
4
+ const package_json_1 = require("../package.json");
4
5
  const metrics_1 = require("./api/metrics");
5
6
  class LDAIConfigTrackerImpl {
6
7
  constructor(_ldClient, _configKey, _variationKey, _version, _modelName, _providerName, _context) {
@@ -13,18 +14,20 @@ class LDAIConfigTrackerImpl {
13
14
  this._context = _context;
14
15
  this._trackedMetrics = {};
15
16
  }
16
- _getTrackData() {
17
+ getTrackData() {
17
18
  return {
18
19
  variationKey: this._variationKey,
19
20
  configKey: this._configKey,
20
21
  version: this._version,
21
22
  modelName: this._modelName,
22
23
  providerName: this._providerName,
24
+ aiSdkName: package_json_1.name,
25
+ aiSdkVersion: package_json_1.version,
23
26
  };
24
27
  }
25
28
  trackDuration(duration) {
26
29
  this._trackedMetrics.durationMs = duration;
27
- this._ldClient.track('$ld:ai:duration:total', this._context, this._getTrackData(), duration);
30
+ this._ldClient.track('$ld:ai:duration:total', this._context, this.getTrackData(), duration);
28
31
  }
29
32
  async trackDurationOf(func) {
30
33
  const startTime = Date.now();
@@ -41,24 +44,30 @@ class LDAIConfigTrackerImpl {
41
44
  }
42
45
  trackTimeToFirstToken(timeToFirstTokenMs) {
43
46
  this._trackedMetrics.timeToFirstTokenMs = timeToFirstTokenMs;
44
- this._ldClient.track('$ld:ai:tokens:ttf', this._context, this._getTrackData(), timeToFirstTokenMs);
47
+ this._ldClient.track('$ld:ai:tokens:ttf', this._context, this.getTrackData(), timeToFirstTokenMs);
48
+ }
49
+ trackEvalScores(scores) {
50
+ // Track each evaluation score individually
51
+ Object.entries(scores).forEach(([metricKey, evalScore]) => {
52
+ this._ldClient.track(metricKey, this._context, this.getTrackData(), evalScore.score);
53
+ });
45
54
  }
46
55
  trackFeedback(feedback) {
47
56
  this._trackedMetrics.feedback = feedback;
48
57
  if (feedback.kind === metrics_1.LDFeedbackKind.Positive) {
49
- this._ldClient.track('$ld:ai:feedback:user:positive', this._context, this._getTrackData(), 1);
58
+ this._ldClient.track('$ld:ai:feedback:user:positive', this._context, this.getTrackData(), 1);
50
59
  }
51
60
  else if (feedback.kind === metrics_1.LDFeedbackKind.Negative) {
52
- this._ldClient.track('$ld:ai:feedback:user:negative', this._context, this._getTrackData(), 1);
61
+ this._ldClient.track('$ld:ai:feedback:user:negative', this._context, this.getTrackData(), 1);
53
62
  }
54
63
  }
55
64
  trackSuccess() {
56
65
  this._trackedMetrics.success = true;
57
- this._ldClient.track('$ld:ai:generation:success', this._context, this._getTrackData(), 1);
66
+ this._ldClient.track('$ld:ai:generation:success', this._context, this.getTrackData(), 1);
58
67
  }
59
68
  trackError() {
60
69
  this._trackedMetrics.success = false;
61
- this._ldClient.track('$ld:ai:generation:error', this._context, this._getTrackData(), 1);
70
+ this._ldClient.track('$ld:ai:generation:error', this._context, this.getTrackData(), 1);
62
71
  }
63
72
  async trackMetricsOf(metricsExtractor, func) {
64
73
  let result;
@@ -84,6 +93,48 @@ class LDAIConfigTrackerImpl {
84
93
  }
85
94
  return result;
86
95
  }
96
+ trackStreamMetricsOf(streamCreator, metricsExtractor) {
97
+ const startTime = Date.now();
98
+ try {
99
+ // Create the stream synchronously
100
+ const stream = streamCreator();
101
+ // Start background metrics tracking (fire and forget)
102
+ this._trackStreamMetricsInBackground(stream, metricsExtractor, startTime);
103
+ // Return stream immediately for consumption
104
+ return stream;
105
+ }
106
+ catch (error) {
107
+ // Track error if stream creation fails
108
+ this.trackDuration(Date.now() - startTime);
109
+ this.trackError();
110
+ throw error;
111
+ }
112
+ }
113
+ async _trackStreamMetricsInBackground(stream, metricsExtractor, startTime) {
114
+ try {
115
+ // Wait for metrics to be available
116
+ const metrics = await metricsExtractor(stream);
117
+ // Track success/error based on metrics
118
+ if (metrics.success) {
119
+ this.trackSuccess();
120
+ }
121
+ else {
122
+ this.trackError();
123
+ }
124
+ // Track token usage if available
125
+ if (metrics.usage) {
126
+ this.trackTokens(metrics.usage);
127
+ }
128
+ }
129
+ catch (error) {
130
+ // If metrics extraction fails, track error
131
+ this.trackError();
132
+ }
133
+ finally {
134
+ // Track duration regardless of success/error
135
+ this.trackDuration(Date.now() - startTime);
136
+ }
137
+ }
87
138
  async trackOpenAIMetrics(func) {
88
139
  try {
89
140
  const result = await this.trackDurationOf(func);
@@ -128,45 +179,9 @@ class LDAIConfigTrackerImpl {
128
179
  throw err;
129
180
  }
130
181
  }
131
- trackVercelAISDKStreamTextMetrics(func) {
132
- var _a;
133
- const startTime = Date.now();
134
- try {
135
- const result = func();
136
- (_a = result.finishReason) === null || _a === void 0 ? void 0 : _a.then(async (finishReason) => {
137
- const endTime = Date.now();
138
- this.trackDuration(endTime - startTime);
139
- if (finishReason === 'error') {
140
- this.trackError();
141
- }
142
- else {
143
- this.trackSuccess();
144
- if (result.usage) {
145
- try {
146
- this.trackTokens((0, metrics_1.createVercelAISDKTokenUsage)(await result.usage));
147
- }
148
- catch (_a) {
149
- // Intentionally squashing this error
150
- }
151
- }
152
- }
153
- }).catch(() => {
154
- const endTime = Date.now();
155
- this.trackDuration(endTime - startTime);
156
- this.trackError();
157
- });
158
- return result;
159
- }
160
- catch (err) {
161
- const endTime = Date.now();
162
- this.trackDuration(endTime - startTime);
163
- this.trackError();
164
- throw err;
165
- }
166
- }
167
182
  trackTokens(tokens) {
168
183
  this._trackedMetrics.tokens = tokens;
169
- const trackData = this._getTrackData();
184
+ const trackData = this.getTrackData();
170
185
  if (tokens.total > 0) {
171
186
  this._ldClient.track('$ld:ai:tokens:total', this._context, trackData, tokens.total);
172
187
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.js","sourceRoot":"","sources":["../../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDClientMin.d.ts","sourceRoot":"","sources":["../../src/LDClientMin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEtF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CACP,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,WAAW,EACzB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAC9C,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/E,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"LDClientMin.js","sourceRoot":"","sources":["../src/LDClientMin.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"LDClientMin.js","sourceRoot":"","sources":["../../src/LDClientMin.ts"],"names":[],"mappings":""}