openlit 1.10.0 → 1.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 (195) hide show
  1. package/README.md +35 -1
  2. package/dist/config.d.ts +12 -4
  3. package/dist/config.js +7 -17
  4. package/dist/config.js.map +1 -1
  5. package/dist/evals/llm/anthropic.js +10 -6
  6. package/dist/evals/llm/anthropic.js.map +1 -1
  7. package/dist/evals/llm/openai.js +9 -5
  8. package/dist/evals/llm/openai.js.map +1 -1
  9. package/dist/features/__tests__/rule-engine.test.d.ts +1 -0
  10. package/dist/features/__tests__/rule-engine.test.js +146 -0
  11. package/dist/features/__tests__/rule-engine.test.js.map +1 -0
  12. package/dist/features/base.d.ts +2 -0
  13. package/dist/features/base.js +2 -0
  14. package/dist/features/base.js.map +1 -1
  15. package/dist/features/rule-engine.d.ts +6 -0
  16. package/dist/features/rule-engine.js +60 -0
  17. package/dist/features/rule-engine.js.map +1 -0
  18. package/dist/features/vault.js +1 -1
  19. package/dist/features/vault.js.map +1 -1
  20. package/dist/helpers.d.ts +93 -1
  21. package/dist/helpers.js +270 -8
  22. package/dist/helpers.js.map +1 -1
  23. package/dist/index.d.ts +6 -5
  24. package/dist/index.js +95 -50
  25. package/dist/index.js.map +1 -1
  26. package/dist/instrumentation/__tests__/anthropic-wrapper.test.js +215 -27
  27. package/dist/instrumentation/__tests__/anthropic-wrapper.test.js.map +1 -1
  28. package/dist/instrumentation/__tests__/base-wrapper.test.js +19 -23
  29. package/dist/instrumentation/__tests__/base-wrapper.test.js.map +1 -1
  30. package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.d.ts +1 -0
  31. package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js +422 -0
  32. package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js.map +1 -0
  33. package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js +1 -1
  34. package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js.map +1 -1
  35. package/dist/instrumentation/__tests__/cohere-wrapper.test.js +150 -25
  36. package/dist/instrumentation/__tests__/cohere-wrapper.test.js.map +1 -1
  37. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js +152 -33
  38. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js.map +1 -1
  39. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js +391 -45
  40. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js.map +1 -1
  41. package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.d.ts +2 -2
  42. package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js +323 -31
  43. package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js.map +1 -1
  44. package/dist/instrumentation/__tests__/langchain-wrapper.test.d.ts +1 -0
  45. package/dist/instrumentation/__tests__/langchain-wrapper.test.js +282 -0
  46. package/dist/instrumentation/__tests__/langchain-wrapper.test.js.map +1 -0
  47. package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js +1 -1
  48. package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js.map +1 -1
  49. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.d.ts +0 -3
  50. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js +275 -68
  51. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js.map +1 -1
  52. package/dist/instrumentation/__tests__/openai-wrapper.test.js +7 -9
  53. package/dist/instrumentation/__tests__/openai-wrapper.test.js.map +1 -1
  54. package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js +1 -1
  55. package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js.map +1 -1
  56. package/dist/instrumentation/__tests__/replicate-trace-comparison.test.d.ts +2 -1
  57. package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js +209 -21
  58. package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js.map +1 -1
  59. package/dist/instrumentation/__tests__/together-trace-comparison.test.js +231 -51
  60. package/dist/instrumentation/__tests__/together-trace-comparison.test.js.map +1 -1
  61. package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.d.ts +8 -0
  62. package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js +446 -0
  63. package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js.map +1 -0
  64. package/dist/instrumentation/anthropic/index.d.ts +2 -3
  65. package/dist/instrumentation/anthropic/index.js.map +1 -1
  66. package/dist/instrumentation/anthropic/wrapper.d.ts +1 -3
  67. package/dist/instrumentation/anthropic/wrapper.js +211 -91
  68. package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
  69. package/dist/instrumentation/azure-ai-inference/index.d.ts +11 -0
  70. package/dist/instrumentation/azure-ai-inference/index.js +76 -0
  71. package/dist/instrumentation/azure-ai-inference/index.js.map +1 -0
  72. package/dist/instrumentation/azure-ai-inference/wrapper.d.ts +42 -0
  73. package/dist/instrumentation/azure-ai-inference/wrapper.js +515 -0
  74. package/dist/instrumentation/azure-ai-inference/wrapper.js.map +1 -0
  75. package/dist/instrumentation/base-wrapper.d.ts +2 -1
  76. package/dist/instrumentation/base-wrapper.js +35 -23
  77. package/dist/instrumentation/base-wrapper.js.map +1 -1
  78. package/dist/instrumentation/bedrock/wrapper.d.ts +21 -3
  79. package/dist/instrumentation/bedrock/wrapper.js +318 -265
  80. package/dist/instrumentation/bedrock/wrapper.js.map +1 -1
  81. package/dist/instrumentation/chroma/wrapper.js +1 -1
  82. package/dist/instrumentation/chroma/wrapper.js.map +1 -1
  83. package/dist/instrumentation/claude-agent-sdk/index.d.ts +23 -0
  84. package/dist/instrumentation/claude-agent-sdk/index.js +83 -0
  85. package/dist/instrumentation/claude-agent-sdk/index.js.map +1 -0
  86. package/dist/instrumentation/claude-agent-sdk/wrapper.d.ts +13 -0
  87. package/dist/instrumentation/claude-agent-sdk/wrapper.js +1031 -0
  88. package/dist/instrumentation/claude-agent-sdk/wrapper.js.map +1 -0
  89. package/dist/instrumentation/cohere/index.d.ts +2 -3
  90. package/dist/instrumentation/cohere/index.js.map +1 -1
  91. package/dist/instrumentation/cohere/wrapper.d.ts +1 -1
  92. package/dist/instrumentation/cohere/wrapper.js +215 -56
  93. package/dist/instrumentation/cohere/wrapper.js.map +1 -1
  94. package/dist/instrumentation/google-adk/index.d.ts +57 -0
  95. package/dist/instrumentation/google-adk/index.js +371 -0
  96. package/dist/instrumentation/google-adk/index.js.map +1 -0
  97. package/dist/instrumentation/google-adk/utils.d.ts +45 -0
  98. package/dist/instrumentation/google-adk/utils.js +663 -0
  99. package/dist/instrumentation/google-adk/utils.js.map +1 -0
  100. package/dist/instrumentation/google-adk/wrapper.d.ts +11 -0
  101. package/dist/instrumentation/google-adk/wrapper.js +391 -0
  102. package/dist/instrumentation/google-adk/wrapper.js.map +1 -0
  103. package/dist/instrumentation/google-ai/wrapper.d.ts +7 -4
  104. package/dist/instrumentation/google-ai/wrapper.js +197 -61
  105. package/dist/instrumentation/google-ai/wrapper.js.map +1 -1
  106. package/dist/instrumentation/groq/wrapper.js +137 -65
  107. package/dist/instrumentation/groq/wrapper.js.map +1 -1
  108. package/dist/instrumentation/huggingface/wrapper.js +241 -39
  109. package/dist/instrumentation/huggingface/wrapper.js.map +1 -1
  110. package/dist/instrumentation/index.d.ts +2 -2
  111. package/dist/instrumentation/index.js +64 -6
  112. package/dist/instrumentation/index.js.map +1 -1
  113. package/dist/instrumentation/langchain/index.d.ts +0 -7
  114. package/dist/instrumentation/langchain/index.js +2 -20
  115. package/dist/instrumentation/langchain/index.js.map +1 -1
  116. package/dist/instrumentation/langchain/wrapper.d.ts +35 -0
  117. package/dist/instrumentation/langchain/wrapper.js +1098 -184
  118. package/dist/instrumentation/langchain/wrapper.js.map +1 -1
  119. package/dist/instrumentation/langgraph/index.d.ts +12 -0
  120. package/dist/instrumentation/langgraph/index.js +99 -0
  121. package/dist/instrumentation/langgraph/index.js.map +1 -0
  122. package/dist/instrumentation/langgraph/wrapper.d.ts +20 -0
  123. package/dist/instrumentation/langgraph/wrapper.js +619 -0
  124. package/dist/instrumentation/langgraph/wrapper.js.map +1 -0
  125. package/dist/instrumentation/llamaindex/index.d.ts +31 -6
  126. package/dist/instrumentation/llamaindex/index.js +180 -61
  127. package/dist/instrumentation/llamaindex/index.js.map +1 -1
  128. package/dist/instrumentation/llamaindex/wrapper.d.ts +15 -3
  129. package/dist/instrumentation/llamaindex/wrapper.js +670 -179
  130. package/dist/instrumentation/llamaindex/wrapper.js.map +1 -1
  131. package/dist/instrumentation/milvus/wrapper.js +1 -1
  132. package/dist/instrumentation/milvus/wrapper.js.map +1 -1
  133. package/dist/instrumentation/mistral/wrapper.js +154 -79
  134. package/dist/instrumentation/mistral/wrapper.js.map +1 -1
  135. package/dist/instrumentation/ollama/index.js +33 -4
  136. package/dist/instrumentation/ollama/index.js.map +1 -1
  137. package/dist/instrumentation/ollama/wrapper.d.ts +28 -2
  138. package/dist/instrumentation/ollama/wrapper.js +432 -48
  139. package/dist/instrumentation/ollama/wrapper.js.map +1 -1
  140. package/dist/instrumentation/openai/index.d.ts +2 -3
  141. package/dist/instrumentation/openai/index.js.map +1 -1
  142. package/dist/instrumentation/openai/wrapper.js +293 -194
  143. package/dist/instrumentation/openai/wrapper.js.map +1 -1
  144. package/dist/instrumentation/openai-agents/index.d.ts +20 -0
  145. package/dist/instrumentation/openai-agents/index.js +174 -0
  146. package/dist/instrumentation/openai-agents/index.js.map +1 -0
  147. package/dist/instrumentation/openai-agents/processor.d.ts +35 -0
  148. package/dist/instrumentation/openai-agents/processor.js +249 -0
  149. package/dist/instrumentation/openai-agents/processor.js.map +1 -0
  150. package/dist/instrumentation/openai-agents/utils.d.ts +20 -0
  151. package/dist/instrumentation/openai-agents/utils.js +624 -0
  152. package/dist/instrumentation/openai-agents/utils.js.map +1 -0
  153. package/dist/instrumentation/pinecone/wrapper.js +2 -2
  154. package/dist/instrumentation/pinecone/wrapper.js.map +1 -1
  155. package/dist/instrumentation/qdrant/wrapper.js +1 -1
  156. package/dist/instrumentation/qdrant/wrapper.js.map +1 -1
  157. package/dist/instrumentation/replicate/wrapper.js +103 -21
  158. package/dist/instrumentation/replicate/wrapper.js.map +1 -1
  159. package/dist/instrumentation/strands/index.d.ts +21 -0
  160. package/dist/instrumentation/strands/index.js +83 -0
  161. package/dist/instrumentation/strands/index.js.map +1 -0
  162. package/dist/instrumentation/strands/processor.d.ts +45 -0
  163. package/dist/instrumentation/strands/processor.js +545 -0
  164. package/dist/instrumentation/strands/processor.js.map +1 -0
  165. package/dist/instrumentation/strands/utils.d.ts +24 -0
  166. package/dist/instrumentation/strands/utils.js +360 -0
  167. package/dist/instrumentation/strands/utils.js.map +1 -0
  168. package/dist/instrumentation/together/wrapper.js +125 -51
  169. package/dist/instrumentation/together/wrapper.js.map +1 -1
  170. package/dist/instrumentation/vercel-ai/wrapper.d.ts +28 -2
  171. package/dist/instrumentation/vercel-ai/wrapper.js +314 -164
  172. package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -1
  173. package/dist/llm/anthropic.js +10 -6
  174. package/dist/llm/anthropic.js.map +1 -1
  175. package/dist/llm/openai.js +9 -5
  176. package/dist/llm/openai.js.map +1 -1
  177. package/dist/otel/__tests__/metrics.test.js +16 -27
  178. package/dist/otel/__tests__/metrics.test.js.map +1 -1
  179. package/dist/otel/events.d.ts +11 -0
  180. package/dist/otel/events.js +74 -0
  181. package/dist/otel/events.js.map +1 -0
  182. package/dist/otel/metrics.d.ts +5 -6
  183. package/dist/otel/metrics.js +66 -48
  184. package/dist/otel/metrics.js.map +1 -1
  185. package/dist/otel/tracing.d.ts +6 -2
  186. package/dist/otel/tracing.js +71 -24
  187. package/dist/otel/tracing.js.map +1 -1
  188. package/dist/otel/utils.d.ts +11 -0
  189. package/dist/otel/utils.js +34 -0
  190. package/dist/otel/utils.js.map +1 -0
  191. package/dist/semantic-convention.d.ts +44 -5
  192. package/dist/semantic-convention.js +51 -8
  193. package/dist/semantic-convention.js.map +1 -1
  194. package/dist/types.d.ts +74 -22
  195. package/package.json +41 -9
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const api_1 = require("@opentelemetry/api");
7
+ const wrapper_1 = __importDefault(require("../bedrock/wrapper"));
8
+ const config_1 = __importDefault(require("../../config"));
9
+ const helpers_1 = __importDefault(require("../../helpers"));
10
+ const base_wrapper_1 = __importDefault(require("../base-wrapper"));
11
+ const semantic_convention_1 = __importDefault(require("../../semantic-convention"));
12
+ jest.mock('../../../src/config');
13
+ jest.mock('../../../src/helpers');
14
+ jest.mock('../../../src/instrumentation/base-wrapper');
15
+ const mockTracer = api_1.trace.getTracer('test-tracer');
16
+ describe('BedrockWrapper', () => {
17
+ let span;
18
+ beforeEach(() => {
19
+ span = mockTracer.startSpan('test-span');
20
+ span.setAttribute = jest.fn();
21
+ jest.clearAllMocks();
22
+ });
23
+ afterEach(() => {
24
+ span.end();
25
+ });
26
+ describe('_converseComplete', () => {
27
+ it('should call recordMetrics after span ends', async () => {
28
+ const input = {
29
+ modelId: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
30
+ messages: [{ role: 'user', content: [{ text: 'test' }] }],
31
+ };
32
+ const mockResponse = {
33
+ output: { message: { role: 'assistant', content: [{ text: 'Hello' }] } },
34
+ stopReason: 'end_turn',
35
+ usage: { inputTokens: 10, outputTokens: 20 },
36
+ $metadata: { requestId: 'req-123' },
37
+ };
38
+ jest.spyOn(base_wrapper_1.default, 'recordMetrics').mockImplementation(() => { });
39
+ config_1.default.pricingInfo = {};
40
+ config_1.default.disableEvents = true;
41
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0.5);
42
+ await wrapper_1.default._converseComplete({
43
+ input,
44
+ genAIEndpoint: 'bedrock.converse',
45
+ response: mockResponse,
46
+ span,
47
+ modelId: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
48
+ });
49
+ expect(base_wrapper_1.default.recordMetrics).toHaveBeenCalledWith(span, {
50
+ genAIEndpoint: 'bedrock.converse',
51
+ model: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
52
+ cost: 0.5,
53
+ aiSystem: 'aws.bedrock',
54
+ });
55
+ });
56
+ it('should re-throw errors from commonSetter', async () => {
57
+ jest.spyOn(base_wrapper_1.default, 'recordMetrics').mockImplementation(() => { });
58
+ jest.spyOn(wrapper_1.default, '_converseCommonSetter').mockImplementationOnce(() => {
59
+ throw new Error('test error');
60
+ });
61
+ await expect(wrapper_1.default._converseComplete({
62
+ input: {},
63
+ genAIEndpoint: 'bedrock.converse',
64
+ response: {},
65
+ span,
66
+ modelId: 'test-model',
67
+ })).rejects.toThrow('test error');
68
+ });
69
+ });
70
+ describe('_converseCommonSetter', () => {
71
+ it('should set span attributes and return metric parameters', () => {
72
+ const input = {
73
+ modelId: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
74
+ messages: [{ role: 'user', content: [{ text: 'test message' }] }],
75
+ inferenceConfig: { temperature: 0.7, maxTokens: 100, topP: 0.9 },
76
+ };
77
+ const mockResult = {
78
+ output: { message: { role: 'assistant', content: [{ text: 'Hello' }] } },
79
+ stopReason: 'end_turn',
80
+ usage: { inputTokens: 10, outputTokens: 20 },
81
+ $metadata: { requestId: 'req-123' },
82
+ };
83
+ config_1.default.pricingInfo = {};
84
+ config_1.default.disableEvents = true;
85
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0.5);
86
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
87
+ const metricParams = wrapper_1.default._converseCommonSetter({
88
+ input,
89
+ genAIEndpoint: 'bedrock.converse',
90
+ result: mockResult,
91
+ span,
92
+ modelId: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
93
+ isStream: false,
94
+ });
95
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_ID, 'req-123');
96
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_MAX_TOKENS, 100);
97
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_TEMPERATURE, 0.7);
98
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_TOP_P, 0.9);
99
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS, 10);
100
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS, 20);
101
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, ['stop']);
102
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_MODEL, 'us.anthropic.claude-3-5-sonnet-20241022-v2:0');
103
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_OUTPUT_TYPE, 'text');
104
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, false);
105
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_TOTAL_TOKENS, expect.anything());
106
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_CLIENT_TOKEN_USAGE, expect.anything());
107
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_CLIENT_OPERATION_DURATION, expect.anything());
108
+ expect(metricParams).toEqual({
109
+ genAIEndpoint: 'bedrock.converse',
110
+ model: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
111
+ cost: 0.5,
112
+ aiSystem: 'aws.bedrock',
113
+ });
114
+ });
115
+ it('should map Bedrock finish reasons to OTel standard', () => {
116
+ const makeResult = (stopReason) => ({
117
+ output: { message: { content: [{ text: 'hi' }] } },
118
+ stopReason,
119
+ usage: { inputTokens: 5, outputTokens: 5 },
120
+ });
121
+ config_1.default.pricingInfo = {};
122
+ config_1.default.disableEvents = true;
123
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
124
+ const testCases = [
125
+ { bedrock: 'end_turn', otel: 'stop' },
126
+ { bedrock: 'max_tokens', otel: 'max_tokens' },
127
+ { bedrock: 'stop_sequence', otel: 'stop' },
128
+ { bedrock: 'tool_use', otel: 'tool_calls' },
129
+ { bedrock: 'content_filtered', otel: 'content_filter' },
130
+ { bedrock: 'guardrail_intervention', otel: 'content_filter' },
131
+ ];
132
+ for (const { bedrock, otel } of testCases) {
133
+ jest.clearAllMocks();
134
+ span.setAttribute = jest.fn();
135
+ wrapper_1.default._converseCommonSetter({
136
+ input: { messages: [] },
137
+ genAIEndpoint: 'bedrock.converse',
138
+ result: makeResult(bedrock),
139
+ span,
140
+ modelId: 'test-model',
141
+ isStream: false,
142
+ });
143
+ expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, [otel]);
144
+ }
145
+ });
146
+ it('should not set max_tokens when not provided', () => {
147
+ const input = { messages: [], inferenceConfig: { temperature: 1 } };
148
+ const mockResult = {
149
+ output: { message: { content: [{ text: 'hi' }] } },
150
+ stopReason: 'end_turn',
151
+ usage: { inputTokens: 5, outputTokens: 5 },
152
+ };
153
+ config_1.default.pricingInfo = {};
154
+ config_1.default.disableEvents = true;
155
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
156
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
157
+ wrapper_1.default._converseCommonSetter({
158
+ input,
159
+ genAIEndpoint: 'bedrock.converse',
160
+ result: mockResult,
161
+ span,
162
+ modelId: 'test-model',
163
+ isStream: false,
164
+ });
165
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_MAX_TOKENS, expect.anything());
166
+ });
167
+ it('should not set frequency/presence penalty when not provided', () => {
168
+ const input = { messages: [], inferenceConfig: {} };
169
+ const mockResult = {
170
+ output: { message: { content: [{ text: 'hi' }] } },
171
+ stopReason: 'end_turn',
172
+ usage: { inputTokens: 5, outputTokens: 5 },
173
+ };
174
+ config_1.default.pricingInfo = {};
175
+ config_1.default.disableEvents = true;
176
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
177
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
178
+ wrapper_1.default._converseCommonSetter({
179
+ input,
180
+ genAIEndpoint: 'bedrock.converse',
181
+ result: mockResult,
182
+ span,
183
+ modelId: 'test-model',
184
+ isStream: false,
185
+ });
186
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_FREQUENCY_PENALTY, expect.anything());
187
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_PRESENCE_PENALTY, expect.anything());
188
+ });
189
+ it('should emit inference event when events are enabled', () => {
190
+ const input = {
191
+ modelId: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
192
+ messages: [{ role: 'user', content: [{ text: 'hello' }] }],
193
+ };
194
+ const mockResult = {
195
+ output: { message: { content: [{ text: 'Hi there' }] } },
196
+ stopReason: 'end_turn',
197
+ usage: { inputTokens: 10, outputTokens: 20 },
198
+ $metadata: { requestId: 'req-123' },
199
+ };
200
+ config_1.default.pricingInfo = {};
201
+ config_1.default.disableEvents = false;
202
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0.5);
203
+ const emitSpy = jest.spyOn(helpers_1.default, 'emitInferenceEvent').mockImplementation(() => { });
204
+ wrapper_1.default._converseCommonSetter({
205
+ input,
206
+ genAIEndpoint: 'bedrock.converse',
207
+ result: mockResult,
208
+ span,
209
+ modelId: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
210
+ isStream: false,
211
+ });
212
+ expect(emitSpy).toHaveBeenCalledWith(span, expect.objectContaining({
213
+ [semantic_convention_1.default.GEN_AI_OPERATION]: semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CHAT,
214
+ [semantic_convention_1.default.GEN_AI_REQUEST_MODEL]: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
215
+ [semantic_convention_1.default.GEN_AI_RESPONSE_MODEL]: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0',
216
+ [semantic_convention_1.default.SERVER_ADDRESS]: 'bedrock-runtime.amazonaws.com',
217
+ [semantic_convention_1.default.SERVER_PORT]: 443,
218
+ [semantic_convention_1.default.GEN_AI_RESPONSE_ID]: 'req-123',
219
+ [semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON]: ['stop'],
220
+ [semantic_convention_1.default.GEN_AI_OUTPUT_TYPE]: 'text',
221
+ [semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS]: 10,
222
+ [semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS]: 20,
223
+ }));
224
+ });
225
+ it('should not emit event when events are disabled', () => {
226
+ const input = { messages: [] };
227
+ const mockResult = {
228
+ output: { message: { content: [{ text: 'hi' }] } },
229
+ stopReason: 'end_turn',
230
+ usage: { inputTokens: 5, outputTokens: 5 },
231
+ };
232
+ config_1.default.pricingInfo = {};
233
+ config_1.default.disableEvents = true;
234
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
235
+ const emitSpy = jest.spyOn(helpers_1.default, 'emitInferenceEvent').mockImplementation(() => { });
236
+ wrapper_1.default._converseCommonSetter({
237
+ input,
238
+ genAIEndpoint: 'bedrock.converse',
239
+ result: mockResult,
240
+ span,
241
+ modelId: 'test-model',
242
+ isStream: false,
243
+ });
244
+ expect(emitSpy).not.toHaveBeenCalled();
245
+ });
246
+ it('should set tool call attributes when toolUse blocks are present', () => {
247
+ const input = { messages: [] };
248
+ const mockResult = {
249
+ output: {
250
+ message: {
251
+ content: [
252
+ { text: '' },
253
+ { toolUse: { toolUseId: 'tool_123', name: 'get_weather', input: { location: 'Paris' } } },
254
+ ],
255
+ },
256
+ },
257
+ stopReason: 'tool_use',
258
+ usage: { inputTokens: 10, outputTokens: 20 },
259
+ };
260
+ config_1.default.pricingInfo = {};
261
+ config_1.default.disableEvents = true;
262
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
263
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
264
+ wrapper_1.default._converseCommonSetter({
265
+ input,
266
+ genAIEndpoint: 'bedrock.converse',
267
+ result: mockResult,
268
+ span,
269
+ modelId: 'test-model',
270
+ isStream: false,
271
+ });
272
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_TOOL_NAME, 'get_weather');
273
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_TOOL_CALL_ID, 'tool_123');
274
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_FINISH_REASON, ['tool_calls']);
275
+ });
276
+ it('should set cache token attributes when present', () => {
277
+ const input = { messages: [] };
278
+ const mockResult = {
279
+ output: { message: { content: [{ text: 'cached response' }] } },
280
+ stopReason: 'end_turn',
281
+ usage: {
282
+ inputTokens: 10,
283
+ outputTokens: 20,
284
+ cacheReadInputTokens: 3,
285
+ cacheWriteInputTokens: 5,
286
+ },
287
+ };
288
+ config_1.default.pricingInfo = {};
289
+ config_1.default.disableEvents = true;
290
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
291
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
292
+ wrapper_1.default._converseCommonSetter({
293
+ input,
294
+ genAIEndpoint: 'bedrock.converse',
295
+ result: mockResult,
296
+ span,
297
+ modelId: 'test-model',
298
+ isStream: false,
299
+ });
300
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, 3);
301
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, 5);
302
+ });
303
+ it('should not set cache token attributes when zero', () => {
304
+ const input = { messages: [] };
305
+ const mockResult = {
306
+ output: { message: { content: [{ text: 'response' }] } },
307
+ stopReason: 'end_turn',
308
+ usage: { inputTokens: 10, outputTokens: 20 },
309
+ };
310
+ config_1.default.pricingInfo = {};
311
+ config_1.default.disableEvents = true;
312
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
313
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
314
+ wrapper_1.default._converseCommonSetter({
315
+ input,
316
+ genAIEndpoint: 'bedrock.converse',
317
+ result: mockResult,
318
+ span,
319
+ modelId: 'test-model',
320
+ isStream: false,
321
+ });
322
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, expect.anything());
323
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, expect.anything());
324
+ });
325
+ it('should set system instructions when system block is present and captureContent is true', () => {
326
+ const input = {
327
+ messages: [{ role: 'user', content: [{ text: 'hello' }] }],
328
+ system: [{ text: 'You are a helpful assistant.' }],
329
+ };
330
+ const mockResult = {
331
+ output: { message: { content: [{ text: 'Hi!' }] } },
332
+ stopReason: 'end_turn',
333
+ usage: { inputTokens: 5, outputTokens: 5 },
334
+ };
335
+ config_1.default.pricingInfo = {};
336
+ config_1.default.captureMessageContent = true;
337
+ config_1.default.disableEvents = true;
338
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
339
+ jest.spyOn(helpers_1.default, 'buildInputMessages').mockReturnValue('[]');
340
+ jest.spyOn(helpers_1.default, 'buildOutputMessages').mockReturnValue('[]');
341
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
342
+ wrapper_1.default._converseCommonSetter({
343
+ input,
344
+ genAIEndpoint: 'bedrock.converse',
345
+ result: mockResult,
346
+ span,
347
+ modelId: 'test-model',
348
+ isStream: false,
349
+ });
350
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_SYSTEM_INSTRUCTIONS, JSON.stringify([{ type: 'text', content: 'You are a helpful assistant.' }]));
351
+ });
352
+ it('should use OpenlitConfig.pricingInfo for cost calculation', () => {
353
+ const input = { messages: [] };
354
+ const mockResult = {
355
+ output: { message: { content: [{ text: 'response' }] } },
356
+ stopReason: 'end_turn',
357
+ usage: { inputTokens: 100, outputTokens: 50 },
358
+ };
359
+ const mockPricingInfo = { chat: { 'test-model': { promptPrice: 0.01, completionPrice: 0.02 } } };
360
+ config_1.default.pricingInfo = mockPricingInfo;
361
+ config_1.default.disableEvents = true;
362
+ const costSpy = jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(1.5);
363
+ wrapper_1.default._converseCommonSetter({
364
+ input,
365
+ genAIEndpoint: 'bedrock.converse',
366
+ result: mockResult,
367
+ span,
368
+ modelId: 'test-model',
369
+ isStream: false,
370
+ });
371
+ expect(costSpy).toHaveBeenCalledWith('test-model', mockPricingInfo, 100, 50);
372
+ });
373
+ it('should set TTFT and TBT when provided for streaming', () => {
374
+ const input = { messages: [] };
375
+ const mockResult = {
376
+ output: { message: { content: [{ text: 'response' }] } },
377
+ stopReason: 'end_turn',
378
+ usage: { inputTokens: 5, outputTokens: 5 },
379
+ };
380
+ config_1.default.pricingInfo = {};
381
+ config_1.default.disableEvents = true;
382
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
383
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
384
+ wrapper_1.default._converseCommonSetter({
385
+ input,
386
+ genAIEndpoint: 'bedrock.converse_stream',
387
+ result: mockResult,
388
+ span,
389
+ modelId: 'test-model',
390
+ isStream: true,
391
+ ttft: 0.15,
392
+ tbt: 0.05,
393
+ });
394
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_SERVER_TTFT, 0.15);
395
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_SERVER_TBT, 0.05);
396
+ expect(setAttributeSpy).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, true);
397
+ });
398
+ it('should not set TTFT and TBT when zero', () => {
399
+ const input = { messages: [] };
400
+ const mockResult = {
401
+ output: { message: { content: [{ text: 'response' }] } },
402
+ stopReason: 'end_turn',
403
+ usage: { inputTokens: 5, outputTokens: 5 },
404
+ };
405
+ config_1.default.pricingInfo = {};
406
+ config_1.default.disableEvents = true;
407
+ jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0);
408
+ const setAttributeSpy = jest.spyOn(span, 'setAttribute');
409
+ wrapper_1.default._converseCommonSetter({
410
+ input,
411
+ genAIEndpoint: 'bedrock.converse',
412
+ result: mockResult,
413
+ span,
414
+ modelId: 'test-model',
415
+ isStream: false,
416
+ });
417
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_SERVER_TTFT, expect.anything());
418
+ expect(setAttributeSpy).not.toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_SERVER_TBT, expect.anything());
419
+ });
420
+ });
421
+ });
422
+ //# sourceMappingURL=bedrock-trace-comparison.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock-trace-comparison.test.js","sourceRoot":"","sources":["../../../src/instrumentation/__tests__/bedrock-trace-comparison.test.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ describe('ChromaDB Cross-Language Trace Comparison', () => {
41
41
  };
42
42
  config_1.default.environment = 'openlit-testing';
43
43
  config_1.default.applicationName = 'openlit-test';
44
- config_1.default.traceContent = true;
44
+ config_1.default.captureMessageContent = true;
45
45
  helpers_1.default.handleException = jest.fn();
46
46
  });
47
47
  afterEach(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"chroma-trace-comparison.test.js","sourceRoot":"","sources":["../../../src/instrumentation/__tests__/chroma-trace-comparison.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chroma-trace-comparison.test.js","sourceRoot":"","sources":["../../../src/instrumentation/__tests__/chroma-trace-comparison.test.ts"],"names":[],"mappings":"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"}