@launchdarkly/server-sdk-ai 0.11.3 → 0.12.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 (109) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/__tests__/LDAIConfigTrackerImpl.test.ts +155 -0
  3. package/__tests__/TrackedChat.test.ts +231 -0
  4. package/dist/LDAIClientImpl.d.ts +4 -0
  5. package/dist/LDAIClientImpl.d.ts.map +1 -1
  6. package/dist/LDAIClientImpl.js +21 -0
  7. package/dist/LDAIClientImpl.js.map +1 -1
  8. package/dist/LDAIConfigMapper.d.ts.map +1 -1
  9. package/dist/LDAIConfigMapper.js +1 -0
  10. package/dist/LDAIConfigMapper.js.map +1 -1
  11. package/dist/LDAIConfigTrackerImpl.d.ts +6 -1
  12. package/dist/LDAIConfigTrackerImpl.d.ts.map +1 -1
  13. package/dist/LDAIConfigTrackerImpl.js +24 -0
  14. package/dist/LDAIConfigTrackerImpl.js.map +1 -1
  15. package/dist/LDClientMin.d.ts +2 -1
  16. package/dist/LDClientMin.d.ts.map +1 -1
  17. package/dist/api/LDAIClient.d.ts +39 -0
  18. package/dist/api/LDAIClient.d.ts.map +1 -1
  19. package/dist/api/chat/TrackedChat.d.ts +54 -0
  20. package/dist/api/chat/TrackedChat.d.ts.map +1 -0
  21. package/dist/api/chat/TrackedChat.js +84 -0
  22. package/dist/api/chat/TrackedChat.js.map +1 -0
  23. package/dist/api/chat/index.d.ts +3 -0
  24. package/dist/api/chat/index.d.ts.map +1 -0
  25. package/dist/api/chat/index.js +19 -0
  26. package/dist/api/chat/index.js.map +1 -0
  27. package/dist/api/chat/types.d.ts +16 -0
  28. package/dist/api/chat/types.d.ts.map +1 -0
  29. package/dist/api/chat/types.js +3 -0
  30. package/dist/api/chat/types.js.map +1 -0
  31. package/dist/api/config/LDAIConfigTracker.d.ts +20 -1
  32. package/dist/api/config/LDAIConfigTracker.d.ts.map +1 -1
  33. package/dist/api/config/VercelAISDK.d.ts +1 -0
  34. package/dist/api/config/VercelAISDK.d.ts.map +1 -1
  35. package/dist/api/index.d.ts +2 -0
  36. package/dist/api/index.d.ts.map +1 -1
  37. package/dist/api/index.js +2 -0
  38. package/dist/api/index.js.map +1 -1
  39. package/dist/api/metrics/LDAIMetrics.d.ts +17 -0
  40. package/dist/api/metrics/LDAIMetrics.d.ts.map +1 -0
  41. package/dist/api/metrics/LDAIMetrics.js +3 -0
  42. package/dist/api/metrics/LDAIMetrics.js.map +1 -0
  43. package/dist/api/metrics/VercelAISDKTokenUsage.d.ts +2 -0
  44. package/dist/api/metrics/VercelAISDKTokenUsage.d.ts.map +1 -1
  45. package/dist/api/metrics/VercelAISDKTokenUsage.js +3 -3
  46. package/dist/api/metrics/VercelAISDKTokenUsage.js.map +1 -1
  47. package/dist/api/metrics/index.d.ts +1 -0
  48. package/dist/api/metrics/index.d.ts.map +1 -1
  49. package/dist/api/metrics/index.js +1 -0
  50. package/dist/api/metrics/index.js.map +1 -1
  51. package/dist/api/providers/AIProvider.d.ts +35 -0
  52. package/dist/api/providers/AIProvider.d.ts.map +1 -0
  53. package/dist/api/providers/AIProvider.js +31 -0
  54. package/dist/api/providers/AIProvider.js.map +1 -0
  55. package/dist/api/providers/AIProviderFactory.d.ts +39 -0
  56. package/dist/api/providers/AIProviderFactory.d.ts.map +1 -0
  57. package/dist/api/providers/AIProviderFactory.js +102 -0
  58. package/dist/api/providers/AIProviderFactory.js.map +1 -0
  59. package/dist/api/providers/index.d.ts +3 -0
  60. package/dist/api/providers/index.d.ts.map +1 -0
  61. package/dist/api/providers/index.js +19 -0
  62. package/dist/api/providers/index.js.map +1 -0
  63. package/docs/assets/search.js +1 -1
  64. package/docs/classes/AIProvider.html +174 -0
  65. package/docs/classes/AIProviderFactory.html +197 -0
  66. package/docs/classes/TrackedChat.html +253 -0
  67. package/docs/enums/LDFeedbackKind.html +14 -7
  68. package/docs/functions/createBedrockTokenUsage.html +12 -5
  69. package/docs/functions/createOpenAiUsage.html +12 -5
  70. package/docs/functions/createVercelAISDKTokenUsage.html +17 -6
  71. package/docs/functions/initAi.html +12 -5
  72. package/docs/index.html +25 -5
  73. package/docs/interfaces/ChatResponse.html +108 -0
  74. package/docs/interfaces/LDAIAgent.html +17 -10
  75. package/docs/interfaces/LDAIAgentConfig.html +15 -8
  76. package/docs/interfaces/LDAIClient.html +55 -9
  77. package/docs/interfaces/LDAIConfig.html +18 -11
  78. package/docs/interfaces/LDAIConfigTracker.html +78 -19
  79. package/docs/interfaces/LDAIMetrics.html +110 -0
  80. package/docs/interfaces/LDMessage.html +14 -7
  81. package/docs/interfaces/LDModelConfig.html +15 -8
  82. package/docs/interfaces/LDProviderConfig.html +13 -6
  83. package/docs/interfaces/LDTokenUsage.html +15 -8
  84. package/docs/interfaces/VercelAISDKConfig.html +29 -15
  85. package/docs/interfaces/VercelAISDKMapOptions.html +13 -6
  86. package/docs/types/LDAIAgentDefaults.html +12 -5
  87. package/docs/types/LDAIDefaults.html +12 -5
  88. package/docs/types/SupportedAIProvider.html +70 -0
  89. package/docs/types/VercelAISDKProvider.html +12 -5
  90. package/docs/variables/SUPPORTED_AI_PROVIDERS.html +70 -0
  91. package/package.json +1 -1
  92. package/src/LDAIClientImpl.ts +36 -2
  93. package/src/LDAIConfigMapper.ts +1 -0
  94. package/src/LDAIConfigTrackerImpl.ts +36 -0
  95. package/src/LDClientMin.ts +3 -1
  96. package/src/api/LDAIClient.ts +46 -0
  97. package/src/api/chat/TrackedChat.ts +100 -0
  98. package/src/api/chat/index.ts +2 -0
  99. package/src/api/chat/types.ts +17 -0
  100. package/src/api/config/LDAIConfigTracker.ts +24 -1
  101. package/src/api/config/VercelAISDK.ts +1 -0
  102. package/src/api/index.ts +2 -0
  103. package/src/api/metrics/LDAIMetrics.ts +18 -0
  104. package/src/api/metrics/VercelAISDKTokenUsage.ts +4 -2
  105. package/src/api/metrics/index.ts +1 -0
  106. package/src/api/providers/AIProvider.ts +43 -0
  107. package/src/api/providers/AIProviderFactory.ts +152 -0
  108. package/src/api/providers/index.ts +2 -0
  109. package/tsconfig.eslint.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.12.0](https://github.com/launchdarkly/js-core/compare/server-sdk-ai-v0.11.4...server-sdk-ai-v0.12.0) (2025-10-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add support for TrackedChats in the AI SDK ([#939](https://github.com/launchdarkly/js-core/issues/939)) ([a7ad0ea](https://github.com/launchdarkly/js-core/commit/a7ad0ead1408fdd80b333baa085c462f47ea5ac1))
9
+ * Add support for OpenAI AIProvider to the AI SDK ([#939](https://github.com/launchdarkly/js-core/issues/939)) ([a7ad0ea](https://github.com/launchdarkly/js-core/commit/a7ad0ead1408fdd80b333baa085c462f47ea5ac1))
10
+ * Add support for LangChain AIProvider to the AI SDK ([#939](https://github.com/launchdarkly/js-core/issues/939)) ([a7ad0ea](https://github.com/launchdarkly/js-core/commit/a7ad0ead1408fdd80b333baa085c462f47ea5ac1))
11
+ * Add support for Vercel AIProvider to the AI SDK ([#946](https://github.com/launchdarkly/js-core/issues/946)) ([8553f24](https://github.com/launchdarkly/js-core/commit/8553f2482a3437975b63992f622b4396cc4ac7e7))
12
+
13
+ ## [0.11.4](https://github.com/launchdarkly/js-core/compare/server-sdk-ai-v0.11.3...server-sdk-ai-v0.11.4) (2025-09-15)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * Support Vercel v5 AI SDK token usage ([#926](https://github.com/launchdarkly/js-core/issues/926)) ([0d059a4](https://github.com/launchdarkly/js-core/commit/0d059a43050eaaaba84262d5e16cf875ccb409ea))
19
+
3
20
  ## [0.11.3](https://github.com/launchdarkly/js-core/compare/server-sdk-ai-v0.11.2...server-sdk-ai-v0.11.3) (2025-08-29)
4
21
 
5
22
 
@@ -898,3 +898,158 @@ it('tracks error', () => {
898
898
  1,
899
899
  );
900
900
  });
901
+
902
+ describe('trackMetricsOf', () => {
903
+ it('tracks success and token usage from metrics', async () => {
904
+ const tracker = new LDAIConfigTrackerImpl(
905
+ mockLdClient,
906
+ configKey,
907
+ variationKey,
908
+ version,
909
+ modelName,
910
+ providerName,
911
+ testContext,
912
+ );
913
+
914
+ const mockResult = { response: 'test' };
915
+ const mockMetrics = {
916
+ success: true,
917
+ usage: { total: 100, input: 50, output: 50 },
918
+ };
919
+
920
+ const metricsExtractor = jest.fn().mockReturnValue(mockMetrics);
921
+ const operation = jest.fn().mockResolvedValue(mockResult);
922
+
923
+ const result = await tracker.trackMetricsOf(metricsExtractor, operation);
924
+
925
+ expect(result).toBe(mockResult);
926
+ expect(metricsExtractor).toHaveBeenCalledWith(mockResult);
927
+ expect(operation).toHaveBeenCalled();
928
+
929
+ // Should track success
930
+ expect(mockTrack).toHaveBeenCalledWith(
931
+ '$ld:ai:generation:success',
932
+ testContext,
933
+ { configKey, variationKey, version, modelName, providerName },
934
+ 1,
935
+ );
936
+
937
+ // Should track token usage
938
+ expect(mockTrack).toHaveBeenCalledWith(
939
+ '$ld:ai:tokens:total',
940
+ testContext,
941
+ { configKey, variationKey, version, modelName, providerName },
942
+ 100,
943
+ );
944
+ expect(mockTrack).toHaveBeenCalledWith(
945
+ '$ld:ai:tokens:input',
946
+ testContext,
947
+ { configKey, variationKey, version, modelName, providerName },
948
+ 50,
949
+ );
950
+ expect(mockTrack).toHaveBeenCalledWith(
951
+ '$ld:ai:tokens:output',
952
+ testContext,
953
+ { configKey, variationKey, version, modelName, providerName },
954
+ 50,
955
+ );
956
+ });
957
+
958
+ it('tracks failure when metrics indicate failure', async () => {
959
+ const tracker = new LDAIConfigTrackerImpl(
960
+ mockLdClient,
961
+ configKey,
962
+ variationKey,
963
+ version,
964
+ modelName,
965
+ providerName,
966
+ testContext,
967
+ );
968
+
969
+ const mockResult = { response: 'test' };
970
+ const mockMetrics = {
971
+ success: false,
972
+ };
973
+
974
+ const metricsExtractor = jest.fn().mockReturnValue(mockMetrics);
975
+ const operation = jest.fn().mockResolvedValue(mockResult);
976
+
977
+ await tracker.trackMetricsOf(metricsExtractor, operation);
978
+
979
+ // Should track error
980
+ expect(mockTrack).toHaveBeenCalledWith(
981
+ '$ld:ai:generation:error',
982
+ testContext,
983
+ { configKey, variationKey, version, modelName, providerName },
984
+ 1,
985
+ );
986
+ });
987
+
988
+ it('tracks failure when operation throws', async () => {
989
+ const tracker = new LDAIConfigTrackerImpl(
990
+ mockLdClient,
991
+ configKey,
992
+ variationKey,
993
+ version,
994
+ modelName,
995
+ providerName,
996
+ testContext,
997
+ );
998
+
999
+ const error = new Error('Operation failed');
1000
+ const metricsExtractor = jest.fn();
1001
+ const operation = jest.fn().mockRejectedValue(error);
1002
+
1003
+ await expect(tracker.trackMetricsOf(metricsExtractor, operation)).rejects.toThrow(error);
1004
+
1005
+ // Should track error
1006
+ expect(mockTrack).toHaveBeenCalledWith(
1007
+ '$ld:ai:generation:error',
1008
+ testContext,
1009
+ { configKey, variationKey, version, modelName, providerName },
1010
+ 1,
1011
+ );
1012
+
1013
+ // Should not call metrics extractor when operation fails
1014
+ expect(metricsExtractor).not.toHaveBeenCalled();
1015
+ });
1016
+
1017
+ it('tracks metrics without token usage', async () => {
1018
+ const tracker = new LDAIConfigTrackerImpl(
1019
+ mockLdClient,
1020
+ configKey,
1021
+ variationKey,
1022
+ version,
1023
+ modelName,
1024
+ providerName,
1025
+ testContext,
1026
+ );
1027
+
1028
+ const mockResult = { response: 'test' };
1029
+ const mockMetrics = {
1030
+ success: true,
1031
+ // No usage provided
1032
+ };
1033
+
1034
+ const metricsExtractor = jest.fn().mockReturnValue(mockMetrics);
1035
+ const operation = jest.fn().mockResolvedValue(mockResult);
1036
+
1037
+ await tracker.trackMetricsOf(metricsExtractor, operation);
1038
+
1039
+ // Should track success but not token usage
1040
+ expect(mockTrack).toHaveBeenCalledWith(
1041
+ '$ld:ai:generation:success',
1042
+ testContext,
1043
+ { configKey, variationKey, version, modelName, providerName },
1044
+ 1,
1045
+ );
1046
+
1047
+ // Should not track token usage
1048
+ expect(mockTrack).not.toHaveBeenCalledWith(
1049
+ '$ld:ai:tokens:total',
1050
+ expect.any(Object),
1051
+ expect.any(Object),
1052
+ expect.any(Number),
1053
+ );
1054
+ });
1055
+ });
@@ -0,0 +1,231 @@
1
+ import { TrackedChat } from '../src/api/chat/TrackedChat';
2
+ import { ChatResponse } from '../src/api/chat/types';
3
+ import { LDAIConfig, LDMessage } from '../src/api/config/LDAIConfig';
4
+ import { LDAIConfigTracker } from '../src/api/config/LDAIConfigTracker';
5
+ import { AIProvider } from '../src/api/providers/AIProvider';
6
+
7
+ describe('TrackedChat', () => {
8
+ let mockProvider: jest.Mocked<AIProvider>;
9
+ let mockTracker: jest.Mocked<LDAIConfigTracker>;
10
+ let aiConfig: LDAIConfig;
11
+
12
+ beforeEach(() => {
13
+ // Mock the AIProvider
14
+ mockProvider = {
15
+ invokeModel: jest.fn(),
16
+ } as any;
17
+
18
+ // Mock the LDAIConfigTracker
19
+ mockTracker = {
20
+ trackMetricsOf: jest.fn(),
21
+ trackDuration: jest.fn(),
22
+ trackTokens: jest.fn(),
23
+ trackSuccess: jest.fn(),
24
+ trackError: jest.fn(),
25
+ trackFeedback: jest.fn(),
26
+ trackTimeToFirstToken: jest.fn(),
27
+ trackDurationOf: jest.fn(),
28
+ trackOpenAIMetrics: jest.fn(),
29
+ trackBedrockConverseMetrics: jest.fn(),
30
+ trackVercelAIMetrics: jest.fn(),
31
+ getSummary: jest.fn(),
32
+ } as any;
33
+
34
+ // Create a basic AI config
35
+ aiConfig = {
36
+ enabled: true,
37
+ messages: [{ role: 'system', content: 'You are a helpful assistant.' }],
38
+ model: { name: 'gpt-4' },
39
+ provider: { name: 'openai' },
40
+ tracker: mockTracker,
41
+ toVercelAISDK: jest.fn(),
42
+ };
43
+ });
44
+
45
+ describe('appendMessages', () => {
46
+ it('appends messages to the conversation history', () => {
47
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
48
+
49
+ const messagesToAppend: LDMessage[] = [
50
+ { role: 'user', content: 'Hello' },
51
+ { role: 'assistant', content: 'Hi there!' },
52
+ ];
53
+
54
+ chat.appendMessages(messagesToAppend);
55
+
56
+ const messages = chat.getMessages(false);
57
+ expect(messages).toHaveLength(2);
58
+ expect(messages[0]).toEqual({ role: 'user', content: 'Hello' });
59
+ expect(messages[1]).toEqual({ role: 'assistant', content: 'Hi there!' });
60
+ });
61
+
62
+ it('appends multiple message batches sequentially', () => {
63
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
64
+
65
+ chat.appendMessages([{ role: 'user', content: 'First message' }]);
66
+ chat.appendMessages([{ role: 'assistant', content: 'Second message' }]);
67
+ chat.appendMessages([{ role: 'user', content: 'Third message' }]);
68
+
69
+ const messages = chat.getMessages(false);
70
+ expect(messages).toHaveLength(3);
71
+ expect(messages[0].content).toBe('First message');
72
+ expect(messages[1].content).toBe('Second message');
73
+ expect(messages[2].content).toBe('Third message');
74
+ });
75
+
76
+ it('handles empty message array', () => {
77
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
78
+
79
+ chat.appendMessages([]);
80
+
81
+ const messages = chat.getMessages(false);
82
+ expect(messages).toHaveLength(0);
83
+ });
84
+ });
85
+
86
+ describe('getMessages', () => {
87
+ it('returns only conversation history when includeConfigMessages is false', () => {
88
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
89
+
90
+ chat.appendMessages([
91
+ { role: 'user', content: 'User message' },
92
+ { role: 'assistant', content: 'Assistant message' },
93
+ ]);
94
+
95
+ const messages = chat.getMessages(false);
96
+
97
+ expect(messages).toHaveLength(2);
98
+ expect(messages[0]).toEqual({ role: 'user', content: 'User message' });
99
+ expect(messages[1]).toEqual({ role: 'assistant', content: 'Assistant message' });
100
+ });
101
+
102
+ it('returns only conversation history when includeConfigMessages is omitted (defaults to false)', () => {
103
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
104
+
105
+ chat.appendMessages([{ role: 'user', content: 'User message' }]);
106
+
107
+ const messages = chat.getMessages();
108
+
109
+ expect(messages).toHaveLength(1);
110
+ expect(messages[0]).toEqual({ role: 'user', content: 'User message' });
111
+ });
112
+
113
+ it('returns config messages prepended when includeConfigMessages is true', () => {
114
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
115
+
116
+ chat.appendMessages([
117
+ { role: 'user', content: 'User message' },
118
+ { role: 'assistant', content: 'Assistant message' },
119
+ ]);
120
+
121
+ const messages = chat.getMessages(true);
122
+
123
+ expect(messages).toHaveLength(3);
124
+ expect(messages[0]).toEqual({ role: 'system', content: 'You are a helpful assistant.' });
125
+ expect(messages[1]).toEqual({ role: 'user', content: 'User message' });
126
+ expect(messages[2]).toEqual({ role: 'assistant', content: 'Assistant message' });
127
+ });
128
+
129
+ it('returns only config messages when no conversation history exists and includeConfigMessages is true', () => {
130
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
131
+
132
+ const messages = chat.getMessages(true);
133
+
134
+ expect(messages).toHaveLength(1);
135
+ expect(messages[0]).toEqual({ role: 'system', content: 'You are a helpful assistant.' });
136
+ });
137
+
138
+ it('returns empty array when no messages exist and includeConfigMessages is false', () => {
139
+ const configWithoutMessages: LDAIConfig = {
140
+ ...aiConfig,
141
+ messages: [],
142
+ };
143
+ const chat = new TrackedChat(configWithoutMessages, mockTracker, mockProvider);
144
+
145
+ const messages = chat.getMessages(false);
146
+
147
+ expect(messages).toHaveLength(0);
148
+ });
149
+
150
+ it('returns a copy of the messages array (not a reference)', () => {
151
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
152
+
153
+ chat.appendMessages([{ role: 'user', content: 'Original message' }]);
154
+
155
+ const messages1 = chat.getMessages();
156
+ const messages2 = chat.getMessages();
157
+
158
+ expect(messages1).not.toBe(messages2);
159
+ expect(messages1).toEqual(messages2);
160
+
161
+ // Modifying returned array should not affect internal state
162
+ messages1.push({ role: 'assistant', content: 'Modified' });
163
+
164
+ const messages3 = chat.getMessages();
165
+ expect(messages3).toHaveLength(1);
166
+ expect(messages3[0].content).toBe('Original message');
167
+ });
168
+
169
+ it('handles undefined config messages gracefully', () => {
170
+ const configWithoutMessages: LDAIConfig = {
171
+ ...aiConfig,
172
+ messages: undefined,
173
+ };
174
+ const chat = new TrackedChat(configWithoutMessages, mockTracker, mockProvider);
175
+
176
+ chat.appendMessages([{ role: 'user', content: 'User message' }]);
177
+
178
+ const messagesWithConfig = chat.getMessages(true);
179
+ expect(messagesWithConfig).toHaveLength(1);
180
+ expect(messagesWithConfig[0].content).toBe('User message');
181
+
182
+ const messagesWithoutConfig = chat.getMessages(false);
183
+ expect(messagesWithoutConfig).toHaveLength(1);
184
+ expect(messagesWithoutConfig[0].content).toBe('User message');
185
+ });
186
+ });
187
+
188
+ describe('integration with invoke', () => {
189
+ it('adds messages from invoke to history accessible via getMessages', async () => {
190
+ const mockResponse: ChatResponse = {
191
+ message: { role: 'assistant', content: 'Response from model' },
192
+ metrics: { success: true },
193
+ };
194
+
195
+ mockTracker.trackMetricsOf.mockImplementation(async (extractor, func) => func());
196
+
197
+ mockProvider.invokeModel.mockResolvedValue(mockResponse);
198
+
199
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
200
+
201
+ await chat.invoke('Hello');
202
+
203
+ const messages = chat.getMessages(false);
204
+ expect(messages).toHaveLength(2);
205
+ expect(messages[0]).toEqual({ role: 'user', content: 'Hello' });
206
+ expect(messages[1]).toEqual({ role: 'assistant', content: 'Response from model' });
207
+ });
208
+
209
+ it('preserves appended messages when invoking', async () => {
210
+ const mockResponse: ChatResponse = {
211
+ message: { role: 'assistant', content: 'Response' },
212
+ metrics: { success: true },
213
+ };
214
+
215
+ mockTracker.trackMetricsOf.mockImplementation(async (extractor, func) => func());
216
+
217
+ mockProvider.invokeModel.mockResolvedValue(mockResponse);
218
+
219
+ const chat = new TrackedChat(aiConfig, mockTracker, mockProvider);
220
+
221
+ chat.appendMessages([{ role: 'user', content: 'Pre-appended message' }]);
222
+ await chat.invoke('New user input');
223
+
224
+ const messages = chat.getMessages(false);
225
+ expect(messages).toHaveLength(3);
226
+ expect(messages[0].content).toBe('Pre-appended message');
227
+ expect(messages[1].content).toBe('New user input');
228
+ expect(messages[2].content).toBe('Response');
229
+ });
230
+ });
231
+ });
@@ -1,10 +1,13 @@
1
1
  import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
2
  import { LDAIAgent, LDAIAgentConfig, LDAIAgentDefaults } from './api/agents';
3
+ import { TrackedChat } from './api/chat';
3
4
  import { LDAIConfig, LDAIDefaults } from './api/config';
4
5
  import { LDAIClient } from './api/LDAIClient';
6
+ import { SupportedAIProvider } from './api/providers';
5
7
  import { LDClientMin } from './LDClientMin';
6
8
  export declare class LDAIClientImpl implements LDAIClient {
7
9
  private _ldClient;
10
+ private _logger?;
8
11
  constructor(_ldClient: LDClientMin);
9
12
  private _interpolateTemplate;
10
13
  private _evaluate;
@@ -14,5 +17,6 @@ export declare class LDAIClientImpl implements LDAIClient {
14
17
  agents<const T extends readonly (LDAIAgentConfig & {
15
18
  defaultValue: LDAIAgentDefaults;
16
19
  })[]>(agentConfigs: T, context: LDContext): Promise<Record<T[number]['key'], LDAIAgent>>;
20
+ initChat(key: string, context: LDContext, defaultValue: LDAIDefaults, variables?: Record<string, unknown>, defaultAiProvider?: SupportedAIProvider): Promise<TrackedChat | undefined>;
17
21
  }
18
22
  //# sourceMappingURL=LDAIClientImpl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIClientImpl.d.ts","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACL,UAAU,EAEV,YAAY,EAOb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAuC5C,qBAAa,cAAe,YAAW,UAAU;IACnC,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAE1C,OAAO,CAAC,oBAAoB;YAId,SAAS;YAkCT,cAAc;IAoCtB,MAAM,CACV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC;IA4ChB,KAAK,CACT,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,SAAS,CAAC;IAOf,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,eAAe,GAAG;QAAE,YAAY,EAAE,iBAAiB,CAAA;KAAE,CAAC,EAAE,EAC7F,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;CAyBhD"}
1
+ {"version":3,"file":"LDAIClientImpl.d.ts","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAY,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,UAAU,EAEV,YAAY,EAOb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAqB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAuC5C,qBAAa,cAAe,YAAW,UAAU;IAGnC,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,OAAO,CAAC,CAAW;gBAEP,SAAS,EAAE,WAAW;IAI1C,OAAO,CAAC,oBAAoB;YAId,SAAS;YAkCT,cAAc;IAoCtB,MAAM,CACV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC;IA4ChB,KAAK,CACT,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,SAAS,CAAC;IAOf,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,eAAe,GAAG;QAAE,YAAY,EAAE,iBAAiB,CAAA;KAAE,CAAC,EAAE,EAC7F,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;IA0BzC,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,iBAAiB,CAAC,EAAE,mBAAmB,GACtC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAqBpC"}
@@ -2,11 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LDAIClientImpl = void 0;
4
4
  const Mustache = require("mustache");
5
+ const chat_1 = require("./api/chat");
6
+ const providers_1 = require("./api/providers");
5
7
  const LDAIConfigMapper_1 = require("./LDAIConfigMapper");
6
8
  const LDAIConfigTrackerImpl_1 = require("./LDAIConfigTrackerImpl");
7
9
  class LDAIClientImpl {
8
10
  constructor(_ldClient) {
9
11
  this._ldClient = _ldClient;
12
+ this._logger = _ldClient.logger;
10
13
  }
11
14
  _interpolateTemplate(template, variables) {
12
15
  return Mustache.render(template, variables, undefined, { escape: (item) => item });
@@ -89,6 +92,24 @@ class LDAIClientImpl {
89
92
  }));
90
93
  return agents;
91
94
  }
95
+ async initChat(key, context, defaultValue, variables, defaultAiProvider) {
96
+ var _a;
97
+ // Track chat initialization
98
+ this._ldClient.track('$ld:ai:config:function:initChat', context, key, 1);
99
+ const aiConfig = await this.config(key, context, defaultValue, variables);
100
+ // Return undefined if the configuration is disabled
101
+ if (!aiConfig.enabled) {
102
+ (_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(`Chat configuration is disabled: ${key}`);
103
+ return undefined;
104
+ }
105
+ // Create the AIProvider instance
106
+ const provider = await providers_1.AIProviderFactory.create(aiConfig, this._logger, defaultAiProvider);
107
+ if (!provider) {
108
+ return undefined;
109
+ }
110
+ // Create the TrackedChat instance with the provider
111
+ return new chat_1.TrackedChat(aiConfig, aiConfig.tracker, provider);
112
+ }
92
113
  }
93
114
  exports.LDAIClientImpl = LDAIClientImpl;
94
115
  //# sourceMappingURL=LDAIClientImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIClientImpl.js","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAiBrC,yDAAsD;AACtD,mEAAgE;AAwChE,MAAa,cAAc;IACzB,YAAoB,SAAsB;QAAtB,cAAS,GAAT,SAAS,CAAa;IAAG,CAAC;IAEtC,oBAAoB,CAAC,QAAgB,EAAE,SAAkC;QAC/E,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,GAAW,EACX,OAAkB,EAClB,YAA0B;;QAE1B,MAAM,KAAK,GAAqB,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAE3F,MAAM,OAAO,GAAG,IAAI,6CAAqB,CACvC,IAAI,CAAC,SAAS,EACd,GAAG;QACH,gDAAgD;QAChD,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,mCAAI,EAAE;QACjC,gDAAgD;QAChD,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,mCAAI,CAAC,EAC3B,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,IAAI,mCAAI,EAAE,EACvB,MAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,mCAAI,EAAE,EAC1B,OAAO,CACR,CAAC;QAEF,gDAAgD;QAChD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC;QAEzC,OAAO;YACL,OAAO;YACP,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,gDAAgD;YAChD,IAAI,EAAE,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,mCAAI,YAAY;SAC1C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,GAAW,EACX,OAAkB,EAClB,YAA+B,EAC/B,SAAmC;QAEnC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAC9E,GAAG,EACH,OAAO,EACP,YAAY,CACb,CAAC;QAEF,MAAM,KAAK,GAAc;YACvB,OAAO;YACP,OAAO;SACR,CAAC;QAEF,gFAAgF;QAChF,+FAA+F;QAC/F,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,KAAK,qBAAQ,KAAK,CAAE,CAAC;SAC5B;QAED,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,QAAQ,qBAAQ,QAAQ,CAAE,CAAC;SAClC;QAED,MAAM,YAAY,mCAAQ,SAAS,KAAE,KAAK,EAAE,OAAO,GAAE,CAAC;QAEtD,IAAI,YAAY,EAAE;YAChB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;SAC5E;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAW,EACX,OAAkB,EAClB,YAA0B,EAC1B,SAAmC;QAEnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAEvE,MAAM,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,EAAE,cAAc,EACxB,QAAQ,GACT,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAErD,MAAM,MAAM,GAAsC;YAChD,OAAO;YACP,OAAO;SACR,CAAC;QAEF,gFAAgF;QAChF,+FAA+F;QAC/F,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,KAAK,qBAAQ,KAAK,CAAE,CAAC;SAC7B;QACD,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,QAAQ,qBAAQ,cAAc,CAAE,CAAC;SACzC;QACD,MAAM,YAAY,mCAAQ,SAAS,KAAE,KAAK,EAAE,OAAO,GAAE,CAAC;QAEtD,IAAI,QAAQ,EAAE;YACZ,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,iCAC1C,KAAK,KACR,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,IAC/D,CAAC,CAAC;SACL;QAED,MAAM,MAAM,GAAG,IAAI,mCAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEpF,uCACK,MAAM,KACT,aAAa,EAAE,CACb,WAAkF,EAClF,OAA2C,EAClB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,IACxE;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAW,EACX,OAAkB,EAClB,YAA+B,EAC/B,SAAmC;QAEnC,oBAAoB;QACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,8BAA8B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,YAAe,EACf,OAAkB;QAElB,8BAA8B;QAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,gCAAgC,EAChC,OAAO,EACP,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,MAAM,CACpB,CAAC;QAEF,MAAM,MAAM,GAAG,EAAyC,CAAC;QAEzD,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CACrC,MAAM,CAAC,GAAG,EACV,OAAO,EACP,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,GAAuB,CAAC,GAAG,KAAK,CAAC;QACjD,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAtKD,wCAsKC"}
1
+ {"version":3,"file":"LDAIClientImpl.js","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigMapper.d.ts","sourceRoot":"","sources":["../src/LDAIConfigMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,SAAS,CAAC;gBAFV,MAAM,CAAC,2BAA2B,EAClC,SAAS,CAAC,8BAA8B,EACxC,SAAS,CAAC,yBAAyB;IAG7C,OAAO,CAAC,cAAc;IAatB,aAAa,CAAC,IAAI,EAChB,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAC/E,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAC1C,iBAAiB,CAAC,IAAI,CAAC;CA+B3B"}
1
+ {"version":3,"file":"LDAIConfigMapper.d.ts","sourceRoot":"","sources":["../src/LDAIConfigMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,SAAS,CAAC;gBAFV,MAAM,CAAC,2BAA2B,EAClC,SAAS,CAAC,8BAA8B,EACxC,SAAS,CAAC,yBAAyB;IAG7C,OAAO,CAAC,cAAc;IAatB,aAAa,CAAC,IAAI,EAChB,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAC/E,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAC1C,iBAAiB,CAAC,IAAI,CAAC;CAgC3B"}
@@ -40,6 +40,7 @@ class LDAIConfigMapper {
40
40
  model,
41
41
  messages,
42
42
  maxTokens: this._findParameter('max_tokens', 'maxTokens'),
43
+ maxOutputTokens: this._findParameter('max_tokens', 'maxTokens'),
43
44
  temperature: this._findParameter('temperature'),
44
45
  topP: this._findParameter('top_p', 'topP'),
45
46
  topK: this._findParameter('top_k', 'topK'),
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigMapper.js","sourceRoot":"","sources":["../src/LDAIConfigMapper.ts"],"names":[],"mappings":";;;AASA,MAAa,gBAAgB;IAC3B,YACU,MAAkC,EAClC,SAAwC,EACxC,SAAmC;QAFnC,WAAM,GAAN,MAAM,CAA4B;QAClC,cAAS,GAAT,SAAS,CAA+B;QACxC,cAAS,GAAT,SAAS,CAA0B;IAC1C,CAAC;IAEI,cAAc,CAAI,GAAG,UAAoB;;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAG,SAAS,CAAC,MAAK,SAAS,EAAE;gBACtD,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAG,SAAS,CAAM,CAAC;aAClD;YACD,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,0CAAG,SAAS,CAAC,MAAK,SAAS,EAAE;gBAClD,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,0CAAG,SAAS,CAAM,CAAC;aAC9C;SACF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa,CACX,QAA+E,EAC/E,OAA2C;;QAE3C,IAAI,KAAuB,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,KAAK,GAAG,QAAQ,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,KAAK,GAAG,MAAA,QAAQ,CAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,EAAE,CAAC,yDAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;SACzE;QACD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;SACH;QAED,IAAI,QAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,CAAA,EAAE;YACtD,QAAQ,GAAG,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,mCAAI,EAAE,CAAC,CAAC,CAAC;SACrF;QAED,OAAO;YACL,KAAK;YACL,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;YACzD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1C,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YAC3E,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;YAC9E,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC;YAC7E,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;SAClC,CAAC;IACJ,CAAC;CACF;AAtDD,4CAsDC"}
1
+ {"version":3,"file":"LDAIConfigMapper.js","sourceRoot":"","sources":["../src/LDAIConfigMapper.ts"],"names":[],"mappings":";;;AASA,MAAa,gBAAgB;IAC3B,YACU,MAAkC,EAClC,SAAwC,EACxC,SAAmC;QAFnC,WAAM,GAAN,MAAM,CAA4B;QAClC,cAAS,GAAT,SAAS,CAA+B;QACxC,cAAS,GAAT,SAAS,CAA0B;IAC1C,CAAC;IAEI,cAAc,CAAI,GAAG,UAAoB;;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAG,SAAS,CAAC,MAAK,SAAS,EAAE;gBACtD,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAG,SAAS,CAAM,CAAC;aAClD;YACD,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,0CAAG,SAAS,CAAC,MAAK,SAAS,EAAE;gBAClD,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,0CAAG,SAAS,CAAM,CAAC;aAC9C;SACF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa,CACX,QAA+E,EAC/E,OAA2C;;QAE3C,IAAI,KAAuB,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,KAAK,GAAG,QAAQ,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,KAAK,GAAG,MAAA,QAAQ,CAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,EAAE,CAAC,yDAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;SACzE;QACD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;SACH;QAED,IAAI,QAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,CAAA,EAAE;YACtD,QAAQ,GAAG,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,mCAAI,EAAE,CAAC,CAAC,CAAC;SACrF;QAED,OAAO;YACL,KAAK;YACL,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;YACzD,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;YAC/D,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1C,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YAC3E,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;YAC9E,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC;YAC7E,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;SAClC,CAAC;IACJ,CAAC;CACF;AAvDD,4CAuDC"}
@@ -1,7 +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 { LDFeedbackKind, LDTokenUsage } from './api/metrics';
4
+ import { LDAIMetrics, LDFeedbackKind, LDTokenUsage } from './api/metrics';
5
5
  import { LDClientMin } from './LDClientMin';
6
6
  export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
7
7
  private _ldClient;
@@ -22,6 +22,7 @@ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
22
22
  }): void;
23
23
  trackSuccess(): void;
24
24
  trackError(): void;
25
+ trackMetricsOf<TRes>(metricsExtractor: (result: TRes) => LDAIMetrics, func: () => Promise<TRes>): Promise<TRes>;
25
26
  trackOpenAIMetrics<TRes extends {
26
27
  usage?: {
27
28
  total_tokens?: number;
@@ -45,7 +46,9 @@ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
45
46
  trackVercelAISDKGenerateTextMetrics<TRes extends {
46
47
  usage?: {
47
48
  totalTokens?: number;
49
+ inputTokens?: number;
48
50
  promptTokens?: number;
51
+ outputTokens?: number;
49
52
  completionTokens?: number;
50
53
  };
51
54
  }>(func: () => Promise<TRes>): Promise<TRes>;
@@ -53,7 +56,9 @@ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
53
56
  finishReason?: Promise<string>;
54
57
  usage?: Promise<{
55
58
  totalTokens?: number;
59
+ inputTokens?: number;
56
60
  promptTokens?: number;
61
+ outputTokens?: number;
57
62
  completionTokens?: number;
58
63
  }>;
59
64
  }>(func: () => TRes): TRes;
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigTrackerImpl.d.ts","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAIL,cAAc,EACd,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qBAAsB,YAAW,iBAAiB;IAI3D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IATlB,OAAO,CAAC,eAAe,CAAyB;gBAGtC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,SAAS;IAG7B,OAAO,CAAC,aAAa;IAgBrB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK/B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAarE,qBAAqB,CAAC,kBAAkB,EAAE,MAAM;IAUhD,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI;IASvD,YAAY,IAAI,IAAI;IAKpB,UAAU,IAAI,IAAI;IAKZ,kBAAkB,CACtB,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,2BAA2B,CACzB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EACD,GAAG,EAAE,IAAI,GAAG,IAAI;IAeZ,mCAAmC,CACvC,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,iCAAiC,CAC/B,IAAI,SAAS;QACX,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC,CAAC;KACJ,EACD,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAmCzB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAcvC;;OAEG;IACH,UAAU,IAAI,iBAAiB;CAGhC"}
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.d.ts","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAIL,WAAW,EACX,cAAc,EACd,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qBAAsB,YAAW,iBAAiB;IAI3D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IATlB,OAAO,CAAC,eAAe,CAAyB;gBAGtC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,SAAS;IAG7B,OAAO,CAAC,aAAa;IAgBrB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK/B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAarE,qBAAqB,CAAC,kBAAkB,EAAE,MAAM;IAUhD,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI;IASvD,YAAY,IAAI,IAAI;IAKpB,UAAU,IAAI,IAAI;IAKZ,cAAc,CAAC,IAAI,EACvB,gBAAgB,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,WAAW,EAC/C,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC;IA4BV,kBAAkB,CACtB,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,2BAA2B,CACzB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EACD,GAAG,EAAE,IAAI,GAAG,IAAI;IAeZ,mCAAmC,CACvC,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,iCAAiC,CAC/B,IAAI,SAAS;QACX,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC,CAAC;KACJ,EACD,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAmCzB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAcvC;;OAEG;IACH,UAAU,IAAI,iBAAiB;CAGhC"}
@@ -60,6 +60,30 @@ class LDAIConfigTrackerImpl {
60
60
  this._trackedMetrics.success = false;
61
61
  this._ldClient.track('$ld:ai:generation:error', this._context, this._getTrackData(), 1);
62
62
  }
63
+ async trackMetricsOf(metricsExtractor, func) {
64
+ let result;
65
+ try {
66
+ result = await this.trackDurationOf(func);
67
+ }
68
+ catch (err) {
69
+ this.trackError();
70
+ throw err;
71
+ }
72
+ // Extract metrics after successful AI call
73
+ const metrics = metricsExtractor(result);
74
+ // Track success/error based on metrics
75
+ if (metrics.success) {
76
+ this.trackSuccess();
77
+ }
78
+ else {
79
+ this.trackError();
80
+ }
81
+ // Track token usage if available
82
+ if (metrics.usage) {
83
+ this.trackTokens(metrics.usage);
84
+ }
85
+ return result;
86
+ }
63
87
  async trackOpenAIMetrics(func) {
64
88
  try {
65
89
  const result = await this.trackDurationOf(func);
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigTrackerImpl.js","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":";;;AAIA,2CAMuB;AAGvB,MAAa,qBAAqB;IAGhC,YACU,SAAsB,EACtB,UAAkB,EAClB,aAAqB,EACrB,QAAgB,EAChB,UAAkB,EAClB,aAAqB,EACrB,QAAmB;QANnB,cAAS,GAAT,SAAS,CAAa;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAQ;QACrB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAQ;QACrB,aAAQ,GAAR,QAAQ,CAAW;QATrB,oBAAe,GAAsB,EAAE,CAAC;IAU7C,CAAC;IAEI,aAAa;QAOnB,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,eAAe,CAAO,IAAyB;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI;YACF,kGAAkG;YAClG,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;SACf;gBAAS;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,2BAA2B;YACjE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,qBAAqB,CAAC,kBAA0B;QAC9C,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,mBAAmB,EACnB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,aAAa,EAAE,EACpB,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,QAAkC;QAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,wBAAc,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/F;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,wBAAc,CAAC,QAAQ,EAAE;YACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/F;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,kBAAkB,CAQtB,IAAyB;QACzB,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAA,2BAAiB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACnD;YACD,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED,2BAA2B,CAUzB,GAAS;;QACT,IAAI,CAAA,MAAA,GAAG,CAAC,SAAS,0CAAE,cAAc,MAAK,GAAG,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;aAAM,IAAI,CAAA,MAAA,GAAG,CAAC,SAAS,0CAAE,cAAc,KAAI,GAAG,CAAC,SAAS,CAAC,cAAc,IAAI,GAAG,EAAE;YAC/E,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,IAAI,GAAG,CAAC,KAAK,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,IAAA,iCAAuB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,mCAAmC,CAQvC,IAAyB;QACzB,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAA,qCAA2B,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7D;YACD,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED,iCAAiC,CAS/B,IAAgB;;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;YACtB,MAAA,MAAM,CAAC,YAAY,0CACf,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;gBACxC,IAAI,YAAY,KAAK,OAAO,EAAE;oBAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;qBAAM;oBACL,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,MAAM,CAAC,KAAK,EAAE;wBAChB,IAAI;4BACF,IAAI,CAAC,WAAW,CAAC,IAAA,qCAA2B,EAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;yBACnE;wBAAC,WAAM;4BACN,qCAAqC;yBACtC;qBACF;iBACF;YACH,CAAC,EACA,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YACL,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED,WAAW,CAAC,MAAoB;QAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SACrF;QACD,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SACrF;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SACvF;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,yBAAY,IAAI,CAAC,eAAe,EAAG;IACrC,CAAC;CACF;AAjND,sDAiNC"}
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.js","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LDContext, LDFlagValue } from '@launchdarkly/js-server-sdk-common';
1
+ import { LDContext, LDFlagValue, LDLogger } from '@launchdarkly/js-server-sdk-common';
2
2
  /**
3
3
  * Interface which represents the required interface components for a sever SDK
4
4
  * to work with the AI SDK.
@@ -6,5 +6,6 @@ import { LDContext, LDFlagValue } from '@launchdarkly/js-server-sdk-common';
6
6
  export interface LDClientMin {
7
7
  variation(key: string, context: LDContext, defaultValue: LDFlagValue, callback?: (err: any, res: LDFlagValue) => void): Promise<LDFlagValue>;
8
8
  track(key: string, context: LDContext, data?: any, metricValue?: number): void;
9
+ readonly logger?: LDLogger;
9
10
  }
10
11
  //# sourceMappingURL=LDClientMin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDClientMin.d.ts","sourceRoot":"","sources":["../src/LDClientMin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;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;CAChF"}
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"}