@brizz/sdk 0.1.3-rc.1 → 0.1.4

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.
package/dist/preload.js CHANGED
@@ -1331,7 +1331,7 @@ var HANDLED_SPAN_NAMES = {
1331
1331
  "ai.streamText": "ai.streamText",
1332
1332
  "ai.toolCall": (span) => {
1333
1333
  const toolName = span.attributes["ai.toolCall.name"];
1334
- return `${toolName}.tool`;
1334
+ return `${String(toolName ?? "unknown")}.tool`;
1335
1335
  }
1336
1336
  };
1337
1337
  var AI_RESPONSE_TEXT = "ai.response.text";
@@ -1341,10 +1341,11 @@ var AI_USAGE_COMPLETION_TOKENS = "ai.usage.completionTokens";
1341
1341
  var AI_MODEL_PROVIDER = "ai.model.provider";
1342
1342
  var transformAiSdkSpanName = (span) => {
1343
1343
  if (span.name in HANDLED_SPAN_NAMES) {
1344
- if (typeof HANDLED_SPAN_NAMES[span.name] === "function") {
1345
- span.name = HANDLED_SPAN_NAMES[span.name](span);
1346
- } else {
1347
- span.name = HANDLED_SPAN_NAMES[span.name];
1344
+ const handler = HANDLED_SPAN_NAMES[span.name];
1345
+ if (typeof handler === "function") {
1346
+ span.name = handler(span);
1347
+ } else if (handler) {
1348
+ span.name = handler;
1348
1349
  }
1349
1350
  }
1350
1351
  };
@@ -1359,26 +1360,30 @@ var transformPromptMessages = (attributes) => {
1359
1360
  if (AI_PROMPT_MESSAGES in attributes) {
1360
1361
  try {
1361
1362
  const messages = JSON.parse(attributes[AI_PROMPT_MESSAGES]);
1362
- messages.forEach((msg, index) => {
1363
- logger.debug("Transforming prompt message", { msg, type: typeof msg.content });
1364
- if (typeof msg.content === "string") {
1365
- attributes[`${SpanAttributes.LLM_PROMPTS}.${index}.content`] = msg.content;
1363
+ for (const [index, msg] of messages.entries()) {
1364
+ const message = msg;
1365
+ logger.debug("Transforming prompt message", { msg: message, type: typeof message.content });
1366
+ if (typeof message.content === "string") {
1367
+ attributes[`${SpanAttributes.LLM_PROMPTS}.${index}.content`] = message.content;
1366
1368
  } else {
1367
- if (Array.isArray(msg.content) && msg.content.length > 0) {
1368
- const lastContent = msg.content[msg.content.length - 1];
1369
- if (lastContent.text) {
1369
+ if (Array.isArray(message.content) && message.content.length > 0) {
1370
+ const lastContent = message.content.at(-1);
1371
+ if (lastContent?.text) {
1370
1372
  attributes[`${SpanAttributes.LLM_PROMPTS}.${index}.content`] = lastContent.text;
1371
1373
  }
1372
1374
  } else {
1373
1375
  attributes[`${SpanAttributes.LLM_PROMPTS}.${index}.content`] = JSON.stringify(
1374
- msg.content
1376
+ message.content
1375
1377
  );
1376
1378
  }
1377
1379
  }
1378
- attributes[`${SpanAttributes.LLM_PROMPTS}.${index}.role`] = msg.role;
1379
- });
1380
+ attributes[`${SpanAttributes.LLM_PROMPTS}.${index}.role`] = message.role;
1381
+ }
1380
1382
  delete attributes[AI_PROMPT_MESSAGES];
1381
- } catch {
1383
+ } catch (error) {
1384
+ logger.debug("Skipping prompt messages transformation because of JSON parsing error", {
1385
+ e: error
1386
+ });
1382
1387
  }
1383
1388
  }
1384
1389
  };
@@ -1404,11 +1409,7 @@ var calculateTotalTokens = (attributes) => {
1404
1409
  var transformVendor = (attributes) => {
1405
1410
  if (AI_MODEL_PROVIDER in attributes) {
1406
1411
  const vendor = attributes[AI_MODEL_PROVIDER];
1407
- if (vendor && vendor.startsWith("openai")) {
1408
- attributes[SpanAttributes.LLM_SYSTEM] = "OpenAI";
1409
- } else {
1410
- attributes[SpanAttributes.LLM_SYSTEM] = vendor;
1411
- }
1412
+ attributes[SpanAttributes.LLM_SYSTEM] = vendor && vendor.startsWith("openai") ? "OpenAI" : vendor;
1412
1413
  delete attributes[AI_MODEL_PROVIDER];
1413
1414
  }
1414
1415
  };
@@ -1424,6 +1425,10 @@ var shouldHandleSpan = (span) => {
1424
1425
  return span.name in HANDLED_SPAN_NAMES;
1425
1426
  };
1426
1427
  var transformAiSdkSpan = (span) => {
1428
+ if (!shouldHandleSpan(span)) {
1429
+ logger.debug("Skipping span transformation", { spanName: span.name });
1430
+ return;
1431
+ }
1427
1432
  for (const key in span.attributes) {
1428
1433
  if (Number.isNaN(span.attributes[key])) {
1429
1434
  span.attributes[key] = 0;
@@ -1434,10 +1439,6 @@ var transformAiSdkSpan = (span) => {
1434
1439
  spanContext: span.spanContext(),
1435
1440
  attributes: span.attributes
1436
1441
  });
1437
- if (!shouldHandleSpan(span)) {
1438
- logger.debug("Skipping span transformation", { spanName: span.name });
1439
- return;
1440
- }
1441
1442
  transformAiSdkSpanName(span);
1442
1443
  transformAiSdkAttributes(span.attributes);
1443
1444
  };