@traceai/cohere 0.1.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 (58) hide show
  1. package/README.md +436 -0
  2. package/dist/esm/index.d.ts +3 -0
  3. package/dist/esm/index.d.ts.map +1 -0
  4. package/dist/esm/index.js +3 -0
  5. package/dist/esm/index.js.map +1 -0
  6. package/dist/esm/instrumentation.d.ts +34 -0
  7. package/dist/esm/instrumentation.d.ts.map +1 -0
  8. package/dist/esm/instrumentation.js +370 -0
  9. package/dist/esm/instrumentation.js.map +1 -0
  10. package/dist/esm/package.json +1 -0
  11. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  12. package/dist/esm/typeUtils.d.ts +6 -0
  13. package/dist/esm/typeUtils.d.ts.map +1 -0
  14. package/dist/esm/typeUtils.js +10 -0
  15. package/dist/esm/typeUtils.js.map +1 -0
  16. package/dist/esm/version.d.ts +2 -0
  17. package/dist/esm/version.d.ts.map +1 -0
  18. package/dist/esm/version.js +2 -0
  19. package/dist/esm/version.js.map +1 -0
  20. package/dist/esnext/index.d.ts +3 -0
  21. package/dist/esnext/index.d.ts.map +1 -0
  22. package/dist/esnext/index.js +3 -0
  23. package/dist/esnext/index.js.map +1 -0
  24. package/dist/esnext/instrumentation.d.ts +34 -0
  25. package/dist/esnext/instrumentation.d.ts.map +1 -0
  26. package/dist/esnext/instrumentation.js +359 -0
  27. package/dist/esnext/instrumentation.js.map +1 -0
  28. package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -0
  29. package/dist/esnext/typeUtils.d.ts +6 -0
  30. package/dist/esnext/typeUtils.d.ts.map +1 -0
  31. package/dist/esnext/typeUtils.js +10 -0
  32. package/dist/esnext/typeUtils.js.map +1 -0
  33. package/dist/esnext/version.d.ts +2 -0
  34. package/dist/esnext/version.d.ts.map +1 -0
  35. package/dist/esnext/version.js +2 -0
  36. package/dist/esnext/version.js.map +1 -0
  37. package/dist/src/__tests__/instrumentation.test.d.ts +2 -0
  38. package/dist/src/__tests__/instrumentation.test.d.ts.map +1 -0
  39. package/dist/src/__tests__/instrumentation.test.js +259 -0
  40. package/dist/src/__tests__/instrumentation.test.js.map +1 -0
  41. package/dist/src/index.d.ts +3 -0
  42. package/dist/src/index.d.ts.map +1 -0
  43. package/dist/src/index.js +19 -0
  44. package/dist/src/index.js.map +1 -0
  45. package/dist/src/instrumentation.d.ts +34 -0
  46. package/dist/src/instrumentation.d.ts.map +1 -0
  47. package/dist/src/instrumentation.js +364 -0
  48. package/dist/src/instrumentation.js.map +1 -0
  49. package/dist/src/typeUtils.d.ts +6 -0
  50. package/dist/src/typeUtils.d.ts.map +1 -0
  51. package/dist/src/typeUtils.js +14 -0
  52. package/dist/src/typeUtils.js.map +1 -0
  53. package/dist/src/version.d.ts +2 -0
  54. package/dist/src/version.d.ts.map +1 -0
  55. package/dist/src/version.js +5 -0
  56. package/dist/src/version.js.map +1 -0
  57. package/dist/tsconfig.tsbuildinfo +1 -0
  58. package/package.json +75 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Utility function that uses the type system to check if a switch statement is exhaustive.
3
+ */
4
+ export declare function assertUnreachable(_: never): never;
5
+ export declare function isString(value: unknown): value is string;
6
+ //# sourceMappingURL=typeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../src/typeUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Utility function that uses the type system to check if a switch statement is exhaustive.
3
+ */
4
+ export function assertUnreachable(_) {
5
+ throw new Error("Unreachable");
6
+ }
7
+ export function isString(value) {
8
+ return typeof value === "string";
9
+ }
10
+ //# sourceMappingURL=typeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeUtils.js","sourceRoot":"","sources":["../../src/typeUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAQ;IACxC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.1.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const VERSION = '0.1.0';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './instrumentation';
2
+ export * from './version';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './instrumentation';
2
+ export * from './version';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { InstrumentationBase, InstrumentationConfig, InstrumentationNodeModuleDefinition } from "@opentelemetry/instrumentation";
2
+ import { TraceConfigOptions } from "@traceai/fi-core";
3
+ /**
4
+ * Function to check if instrumentation is enabled / disabled
5
+ */
6
+ export declare function isPatched(): boolean;
7
+ /**
8
+ * @param instrumentationConfig The config for the instrumentation
9
+ * @param traceConfig The FI trace configuration for masking sensitive information
10
+ */
11
+ export declare class CohereInstrumentation extends InstrumentationBase {
12
+ private fiTracer;
13
+ private _traceConfig?;
14
+ readonly instrumentationName = "@traceai/cohere";
15
+ constructor({ instrumentationConfig, traceConfig, }?: {
16
+ instrumentationConfig?: InstrumentationConfig;
17
+ traceConfig?: TraceConfigOptions;
18
+ });
19
+ enable(): void;
20
+ protected init(): InstrumentationNodeModuleDefinition;
21
+ /**
22
+ * Manually instruments the Cohere module
23
+ */
24
+ manuallyInstrument(module: Record<string, unknown>): void;
25
+ /**
26
+ * Patches the Cohere module
27
+ */
28
+ private patch;
29
+ /**
30
+ * Un-patches the Cohere module
31
+ */
32
+ private unpatch;
33
+ }
34
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mCAAmC,EAEpC,MAAM,gCAAgC,CAAC;AAmBxC,OAAO,EAGL,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAU1B;;GAEG;AACH,wBAAgB,SAAS,YAExB;AAyGD;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,SAAgB,mBAAmB,qBAAqB;gBAE5C,EACV,qBAAqB,EACrB,WAAW,GACZ,GAAE;QACD,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;QAC9C,WAAW,CAAC,EAAE,kBAAkB,CAAC;KAC7B;IASU,MAAM,IAAI,IAAI;IAK9B,SAAS,CAAC,IAAI;IAUd;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlD;;OAEG;IACH,OAAO,CAAC,KAAK;IAoPb;;OAEG;IACH,OAAO,CAAC,OAAO;CA2BhB"}
@@ -0,0 +1,359 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle, } from "@opentelemetry/instrumentation";
13
+ import { diag, context, trace, SpanKind, SpanStatusCode, } from "@opentelemetry/api";
14
+ import { VERSION } from "./version";
15
+ import { SemanticConventions, FISpanKind, MimeType, LLMProvider, } from "@traceai/fi-semantic-conventions";
16
+ import { isTracingSuppressed } from "@opentelemetry/core";
17
+ import { FITracer, safelyJSONStringify, } from "@traceai/fi-core";
18
+ const MODULE_NAME = "cohere-ai";
19
+ /**
20
+ * Flag to check if the Cohere module has been patched
21
+ */
22
+ let _isFIPatched = false;
23
+ /**
24
+ * Function to check if instrumentation is enabled / disabled
25
+ */
26
+ export function isPatched() {
27
+ return _isFIPatched;
28
+ }
29
+ /**
30
+ * Resolves the execution context for the current span
31
+ */
32
+ function getExecContext(span) {
33
+ const activeContext = context.active();
34
+ const suppressTracing = isTracingSuppressed(activeContext);
35
+ const execContext = suppressTracing
36
+ ? trace.setSpan(context.active(), span)
37
+ : activeContext;
38
+ if (suppressTracing) {
39
+ trace.deleteSpan(activeContext);
40
+ }
41
+ return execContext;
42
+ }
43
+ /**
44
+ * @param instrumentationConfig The config for the instrumentation
45
+ * @param traceConfig The FI trace configuration for masking sensitive information
46
+ */
47
+ export class CohereInstrumentation extends InstrumentationBase {
48
+ constructor({ instrumentationConfig, traceConfig, } = {}) {
49
+ super("@traceai/cohere", VERSION, Object.assign({}, instrumentationConfig));
50
+ this.instrumentationName = "@traceai/cohere";
51
+ this._traceConfig = traceConfig;
52
+ }
53
+ enable() {
54
+ super.enable();
55
+ this.fiTracer = new FITracer({ tracer: this.tracer, traceConfig: this._traceConfig });
56
+ }
57
+ init() {
58
+ const module = new InstrumentationNodeModuleDefinition("cohere-ai", [">=7.0.0"], this.patch.bind(this), this.unpatch.bind(this));
59
+ return module;
60
+ }
61
+ /**
62
+ * Manually instruments the Cohere module
63
+ */
64
+ manuallyInstrument(module) {
65
+ this.patch(module);
66
+ }
67
+ /**
68
+ * Patches the Cohere module
69
+ */
70
+ patch(module, moduleVersion) {
71
+ var _a, _b;
72
+ if ((module === null || module === void 0 ? void 0 : module.fiPatched) || _isFIPatched) {
73
+ return module;
74
+ }
75
+ const instrumentation = this;
76
+ // Ensure fiTracer uses the most up-to-date tracer
77
+ if (!((_a = instrumentation.fiTracer) === null || _a === void 0 ? void 0 : _a.tracer) ||
78
+ ((_b = instrumentation.fiTracer) === null || _b === void 0 ? void 0 : _b.tracer) !== instrumentation.tracer) {
79
+ instrumentation.fiTracer = new FITracer({
80
+ tracer: instrumentation.tracer,
81
+ traceConfig: instrumentation._traceConfig
82
+ });
83
+ }
84
+ // Patch CohereClient class
85
+ const CohereClient = module.CohereClient;
86
+ if (CohereClient === null || CohereClient === void 0 ? void 0 : CohereClient.prototype) {
87
+ // Patch chat method
88
+ if (typeof CohereClient.prototype.chat === 'function') {
89
+ this._wrap(CohereClient.prototype, "chat",
90
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
+ (original) => {
92
+ return function patchedChat(...args) {
93
+ var _a;
94
+ const request = args[0];
95
+ const modelName = request.model || 'command';
96
+ const { message, chat_history, preamble } = request, invocationParameters = __rest(request, ["message", "chat_history", "preamble"]);
97
+ const span = instrumentation.fiTracer.startSpan(`Cohere Chat`, {
98
+ kind: SpanKind.INTERNAL,
99
+ attributes: Object.assign(Object.assign(Object.assign({ [SemanticConventions.FI_SPAN_KIND]: FISpanKind.LLM, [SemanticConventions.LLM_MODEL_NAME]: modelName, [SemanticConventions.INPUT_VALUE]: request.message, [SemanticConventions.INPUT_MIME_TYPE]: MimeType.TEXT, [SemanticConventions.LLM_INVOCATION_PARAMETERS]: JSON.stringify(invocationParameters), [SemanticConventions.LLM_PROVIDER]: LLMProvider.COHERE, [SemanticConventions.GEN_AI_OPERATION_NAME]: "chat" }, getChatInputMessagesAttributes(request)), getChatToolsAttributes(request)), { [SemanticConventions.RAW_INPUT]: (_a = safelyJSONStringify(request)) !== null && _a !== void 0 ? _a : "" }),
100
+ });
101
+ const execContext = getExecContext(span);
102
+ const execPromise = safeExecuteInTheMiddle(() => {
103
+ return context.with(trace.setSpan(execContext, span), () => {
104
+ return original.apply(this, args);
105
+ });
106
+ }, (error) => {
107
+ if (error) {
108
+ span.recordException(error);
109
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
110
+ span.end();
111
+ }
112
+ });
113
+ const wrappedPromise = execPromise.then((result) => {
114
+ var _a;
115
+ span.setAttributes(Object.assign(Object.assign(Object.assign({ [SemanticConventions.OUTPUT_VALUE]: result.text, [SemanticConventions.OUTPUT_MIME_TYPE]: MimeType.TEXT }, getChatOutputMessagesAttributes(result)), getChatUsageAttributes(result)), { [SemanticConventions.RAW_OUTPUT]: (_a = safelyJSONStringify(result)) !== null && _a !== void 0 ? _a : "" }));
116
+ span.setStatus({ code: SpanStatusCode.OK });
117
+ span.end();
118
+ return result;
119
+ }).catch((error) => {
120
+ span.recordException(error);
121
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
122
+ span.end();
123
+ throw error;
124
+ });
125
+ return context.bind(execContext, wrappedPromise);
126
+ };
127
+ });
128
+ }
129
+ // Patch embed method
130
+ if (typeof CohereClient.prototype.embed === 'function') {
131
+ this._wrap(CohereClient.prototype, "embed",
132
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
133
+ (original) => {
134
+ return function patchedEmbed(...args) {
135
+ var _a;
136
+ const request = args[0];
137
+ const modelName = request.model || 'embed-english-v3.0';
138
+ const span = instrumentation.fiTracer.startSpan(`Cohere Embed`, {
139
+ kind: SpanKind.INTERNAL,
140
+ attributes: Object.assign(Object.assign({ [SemanticConventions.FI_SPAN_KIND]: FISpanKind.EMBEDDING, [SemanticConventions.EMBEDDING_MODEL_NAME]: modelName, [SemanticConventions.INPUT_VALUE]: JSON.stringify(request.texts), [SemanticConventions.INPUT_MIME_TYPE]: MimeType.JSON, [SemanticConventions.LLM_PROVIDER]: LLMProvider.COHERE, [SemanticConventions.GEN_AI_OPERATION_NAME]: "embeddings" }, getEmbedTextAttributes(request)), { [SemanticConventions.RAW_INPUT]: (_a = safelyJSONStringify(request)) !== null && _a !== void 0 ? _a : "" }),
141
+ });
142
+ const execContext = getExecContext(span);
143
+ const execPromise = safeExecuteInTheMiddle(() => {
144
+ return context.with(trace.setSpan(execContext, span), () => {
145
+ return original.apply(this, args);
146
+ });
147
+ }, (error) => {
148
+ if (error) {
149
+ span.recordException(error);
150
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
151
+ span.end();
152
+ }
153
+ });
154
+ const wrappedPromise = execPromise.then((result) => {
155
+ var _a;
156
+ span.setAttributes(Object.assign(Object.assign({}, getEmbedVectorAttributes(result)), { [SemanticConventions.RAW_OUTPUT]: (_a = safelyJSONStringify(result)) !== null && _a !== void 0 ? _a : "" }));
157
+ span.setStatus({ code: SpanStatusCode.OK });
158
+ span.end();
159
+ return result;
160
+ }).catch((error) => {
161
+ span.recordException(error);
162
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
163
+ span.end();
164
+ throw error;
165
+ });
166
+ return context.bind(execContext, wrappedPromise);
167
+ };
168
+ });
169
+ }
170
+ // Patch rerank method
171
+ if (typeof CohereClient.prototype.rerank === 'function') {
172
+ this._wrap(CohereClient.prototype, "rerank",
173
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
+ (original) => {
175
+ return function patchedRerank(...args) {
176
+ var _a;
177
+ const request = args[0];
178
+ const modelName = request.model || 'rerank-english-v3.0';
179
+ const span = instrumentation.fiTracer.startSpan(`Cohere Rerank`, {
180
+ kind: SpanKind.INTERNAL,
181
+ attributes: {
182
+ [SemanticConventions.FI_SPAN_KIND]: FISpanKind.LLM,
183
+ [SemanticConventions.LLM_MODEL_NAME]: modelName,
184
+ [SemanticConventions.INPUT_VALUE]: request.query,
185
+ [SemanticConventions.INPUT_MIME_TYPE]: MimeType.TEXT,
186
+ [SemanticConventions.LLM_PROVIDER]: LLMProvider.COHERE,
187
+ [SemanticConventions.GEN_AI_OPERATION_NAME]: "rerank",
188
+ "cohere.rerank.query": request.query,
189
+ "cohere.rerank.documents_count": request.documents.length,
190
+ "cohere.rerank.top_n": request.top_n,
191
+ [SemanticConventions.RAW_INPUT]: (_a = safelyJSONStringify(request)) !== null && _a !== void 0 ? _a : "",
192
+ },
193
+ });
194
+ const execContext = getExecContext(span);
195
+ const execPromise = safeExecuteInTheMiddle(() => {
196
+ return context.with(trace.setSpan(execContext, span), () => {
197
+ return original.apply(this, args);
198
+ });
199
+ }, (error) => {
200
+ if (error) {
201
+ span.recordException(error);
202
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
203
+ span.end();
204
+ }
205
+ });
206
+ const wrappedPromise = execPromise.then((result) => {
207
+ var _a;
208
+ span.setAttributes(Object.assign(Object.assign({ "cohere.rerank.results_count": result.results.length }, getRerankResultsAttributes(result)), { [SemanticConventions.RAW_OUTPUT]: (_a = safelyJSONStringify(result)) !== null && _a !== void 0 ? _a : "" }));
209
+ span.setStatus({ code: SpanStatusCode.OK });
210
+ span.end();
211
+ return result;
212
+ }).catch((error) => {
213
+ span.recordException(error);
214
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
215
+ span.end();
216
+ throw error;
217
+ });
218
+ return context.bind(execContext, wrappedPromise);
219
+ };
220
+ });
221
+ }
222
+ }
223
+ _isFIPatched = true;
224
+ try {
225
+ module.fiPatched = true;
226
+ }
227
+ catch (e) {
228
+ diag.warn(`Failed to set fiPatched flag on module '${MODULE_NAME}'. Error: ${e}`);
229
+ }
230
+ return module;
231
+ }
232
+ /**
233
+ * Un-patches the Cohere module
234
+ */
235
+ unpatch(moduleExports, moduleVersion) {
236
+ const CohereClient = moduleExports.CohereClient;
237
+ if (CohereClient === null || CohereClient === void 0 ? void 0 : CohereClient.prototype) {
238
+ if (CohereClient.prototype.chat) {
239
+ this._unwrap(CohereClient.prototype, "chat");
240
+ }
241
+ if (CohereClient.prototype.embed) {
242
+ this._unwrap(CohereClient.prototype, "embed");
243
+ }
244
+ if (CohereClient.prototype.rerank) {
245
+ this._unwrap(CohereClient.prototype, "rerank");
246
+ }
247
+ }
248
+ _isFIPatched = false;
249
+ try {
250
+ moduleExports.fiPatched = false;
251
+ }
252
+ catch (e) {
253
+ diag.warn(`Failed to unset fiPatched flag on module '${MODULE_NAME}'. Error: ${e}`);
254
+ }
255
+ }
256
+ }
257
+ /**
258
+ * Converts the chat request to LLM input messages
259
+ */
260
+ function getChatInputMessagesAttributes(request) {
261
+ var _a;
262
+ const messages = [];
263
+ if (request.preamble) {
264
+ messages.push({ role: 'system', content: request.preamble });
265
+ }
266
+ if (request.chat_history) {
267
+ request.chat_history.forEach((msg) => {
268
+ messages.push({ role: msg.role, content: msg.message });
269
+ });
270
+ }
271
+ messages.push({ role: 'user', content: request.message });
272
+ return { [SemanticConventions.LLM_INPUT_MESSAGES]: (_a = safelyJSONStringify(messages)) !== null && _a !== void 0 ? _a : "[]" };
273
+ }
274
+ /**
275
+ * Gets chat tools attributes
276
+ */
277
+ function getChatToolsAttributes(request) {
278
+ var _a;
279
+ if (!request.tools) {
280
+ return {};
281
+ }
282
+ return { [SemanticConventions.LLM_TOOLS]: (_a = safelyJSONStringify(request.tools)) !== null && _a !== void 0 ? _a : "[]" };
283
+ }
284
+ /**
285
+ * Gets chat output messages attributes
286
+ */
287
+ function getChatOutputMessagesAttributes(response) {
288
+ var _a;
289
+ const msg = { role: 'assistant', content: response.text };
290
+ if (response.tool_calls) {
291
+ msg.tool_calls = response.tool_calls.map((tc) => ({
292
+ function: { name: tc.name, arguments: JSON.stringify(tc.parameters) },
293
+ }));
294
+ }
295
+ return { [SemanticConventions.LLM_OUTPUT_MESSAGES]: (_a = safelyJSONStringify([msg])) !== null && _a !== void 0 ? _a : "[]" };
296
+ }
297
+ /**
298
+ * Gets chat usage attributes
299
+ */
300
+ function getChatUsageAttributes(response) {
301
+ const meta = response.meta;
302
+ if (!meta) {
303
+ return {};
304
+ }
305
+ const billedUnits = meta.billed_units;
306
+ const tokens = meta.tokens;
307
+ if (billedUnits) {
308
+ return {
309
+ [SemanticConventions.LLM_TOKEN_COUNT_PROMPT]: billedUnits.input_tokens,
310
+ [SemanticConventions.LLM_TOKEN_COUNT_COMPLETION]: billedUnits.output_tokens,
311
+ [SemanticConventions.LLM_TOKEN_COUNT_TOTAL]: (billedUnits.input_tokens || 0) + (billedUnits.output_tokens || 0),
312
+ };
313
+ }
314
+ if (tokens) {
315
+ return {
316
+ [SemanticConventions.LLM_TOKEN_COUNT_PROMPT]: tokens.input_tokens,
317
+ [SemanticConventions.LLM_TOKEN_COUNT_COMPLETION]: tokens.output_tokens,
318
+ [SemanticConventions.LLM_TOKEN_COUNT_TOTAL]: (tokens.input_tokens || 0) + (tokens.output_tokens || 0),
319
+ };
320
+ }
321
+ return {};
322
+ }
323
+ /**
324
+ * Gets embed text attributes
325
+ */
326
+ function getEmbedTextAttributes(request) {
327
+ return request.texts.reduce((acc, text, index) => {
328
+ acc[`${SemanticConventions.EMBEDDING_EMBEDDINGS}.${index}.${SemanticConventions.EMBEDDING_TEXT}`] = text;
329
+ return acc;
330
+ }, {});
331
+ }
332
+ /**
333
+ * Gets embed vector attributes
334
+ */
335
+ function getEmbedVectorAttributes(response) {
336
+ var _a;
337
+ const embeddings = Array.isArray(response.embeddings)
338
+ ? response.embeddings
339
+ : ((_a = response.embeddings) === null || _a === void 0 ? void 0 : _a.float) || [];
340
+ return embeddings.reduce((acc, embedding, index) => {
341
+ acc[`${SemanticConventions.EMBEDDING_EMBEDDINGS}.${index}.${SemanticConventions.EMBEDDING_VECTOR}`] = embedding;
342
+ return acc;
343
+ }, {});
344
+ }
345
+ /**
346
+ * Gets rerank results attributes
347
+ */
348
+ function getRerankResultsAttributes(response) {
349
+ const attributes = {};
350
+ response.results.forEach((result, index) => {
351
+ attributes[`cohere.rerank.results.${index}.index`] = result.index;
352
+ attributes[`cohere.rerank.results.${index}.relevance_score`] = result.relevance_score;
353
+ if (result.document) {
354
+ attributes[`cohere.rerank.results.${index}.document`] = result.document.text;
355
+ }
356
+ });
357
+ return attributes;
358
+ }
359
+ //# sourceMappingURL=instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}