@microsoft/agents-a365-observability 0.1.0-preview.126 → 0.1.0-preview.127

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 (83) hide show
  1. package/dist/cjs/index.d.ts +1 -1
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +6 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/tracing/constants.d.ts +2 -1
  6. package/dist/cjs/tracing/constants.d.ts.map +1 -1
  7. package/dist/cjs/tracing/constants.js +1 -0
  8. package/dist/cjs/tracing/constants.js.map +1 -1
  9. package/dist/cjs/tracing/contracts.d.ts +140 -1
  10. package/dist/cjs/tracing/contracts.d.ts.map +1 -1
  11. package/dist/cjs/tracing/contracts.js +37 -1
  12. package/dist/cjs/tracing/contracts.js.map +1 -1
  13. package/dist/cjs/tracing/exporter/Agent365Exporter.d.ts.map +1 -1
  14. package/dist/cjs/tracing/exporter/Agent365Exporter.js +1 -1
  15. package/dist/cjs/tracing/exporter/Agent365Exporter.js.map +1 -1
  16. package/dist/cjs/tracing/exporter/utils.d.ts +14 -0
  17. package/dist/cjs/tracing/exporter/utils.d.ts.map +1 -1
  18. package/dist/cjs/tracing/exporter/utils.js +310 -3
  19. package/dist/cjs/tracing/exporter/utils.js.map +1 -1
  20. package/dist/cjs/tracing/message-utils.d.ts +41 -0
  21. package/dist/cjs/tracing/message-utils.d.ts.map +1 -0
  22. package/dist/cjs/tracing/message-utils.js +96 -0
  23. package/dist/cjs/tracing/message-utils.js.map +1 -0
  24. package/dist/cjs/tracing/scopes/InferenceScope.d.ts +13 -11
  25. package/dist/cjs/tracing/scopes/InferenceScope.d.ts.map +1 -1
  26. package/dist/cjs/tracing/scopes/InferenceScope.js +16 -14
  27. package/dist/cjs/tracing/scopes/InferenceScope.js.map +1 -1
  28. package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts +7 -5
  29. package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts.map +1 -1
  30. package/dist/cjs/tracing/scopes/InvokeAgentScope.js +6 -4
  31. package/dist/cjs/tracing/scopes/InvokeAgentScope.js.map +1 -1
  32. package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts +13 -2
  33. package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -1
  34. package/dist/cjs/tracing/scopes/OpenTelemetryScope.js +19 -1
  35. package/dist/cjs/tracing/scopes/OpenTelemetryScope.js.map +1 -1
  36. package/dist/cjs/tracing/scopes/OutputScope.d.ts +4 -3
  37. package/dist/cjs/tracing/scopes/OutputScope.d.ts.map +1 -1
  38. package/dist/cjs/tracing/scopes/OutputScope.js +14 -7
  39. package/dist/cjs/tracing/scopes/OutputScope.js.map +1 -1
  40. package/dist/cjs/version.d.ts +1 -1
  41. package/dist/cjs/version.js +1 -1
  42. package/dist/esm/index.d.ts +1 -1
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +3 -1
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/tracing/constants.d.ts +2 -1
  47. package/dist/esm/tracing/constants.d.ts.map +1 -1
  48. package/dist/esm/tracing/constants.js +1 -0
  49. package/dist/esm/tracing/constants.js.map +1 -1
  50. package/dist/esm/tracing/contracts.d.ts +140 -1
  51. package/dist/esm/tracing/contracts.d.ts.map +1 -1
  52. package/dist/esm/tracing/contracts.js +36 -0
  53. package/dist/esm/tracing/contracts.js.map +1 -1
  54. package/dist/esm/tracing/exporter/Agent365Exporter.d.ts.map +1 -1
  55. package/dist/esm/tracing/exporter/Agent365Exporter.js +2 -2
  56. package/dist/esm/tracing/exporter/Agent365Exporter.js.map +1 -1
  57. package/dist/esm/tracing/exporter/utils.d.ts +14 -0
  58. package/dist/esm/tracing/exporter/utils.d.ts.map +1 -1
  59. package/dist/esm/tracing/exporter/utils.js +308 -3
  60. package/dist/esm/tracing/exporter/utils.js.map +1 -1
  61. package/dist/esm/tracing/message-utils.d.ts +41 -0
  62. package/dist/esm/tracing/message-utils.d.ts.map +1 -0
  63. package/dist/esm/tracing/message-utils.js +87 -0
  64. package/dist/esm/tracing/message-utils.js.map +1 -0
  65. package/dist/esm/tracing/scopes/InferenceScope.d.ts +13 -11
  66. package/dist/esm/tracing/scopes/InferenceScope.d.ts.map +1 -1
  67. package/dist/esm/tracing/scopes/InferenceScope.js +16 -14
  68. package/dist/esm/tracing/scopes/InferenceScope.js.map +1 -1
  69. package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts +7 -5
  70. package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts.map +1 -1
  71. package/dist/esm/tracing/scopes/InvokeAgentScope.js +6 -4
  72. package/dist/esm/tracing/scopes/InvokeAgentScope.js.map +1 -1
  73. package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts +13 -2
  74. package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -1
  75. package/dist/esm/tracing/scopes/OpenTelemetryScope.js +19 -1
  76. package/dist/esm/tracing/scopes/OpenTelemetryScope.js.map +1 -1
  77. package/dist/esm/tracing/scopes/OutputScope.d.ts +4 -3
  78. package/dist/esm/tracing/scopes/OutputScope.d.ts.map +1 -1
  79. package/dist/esm/tracing/scopes/OutputScope.js +14 -7
  80. package/dist/esm/tracing/scopes/OutputScope.js.map +1 -1
  81. package/dist/esm/version.d.ts +1 -1
  82. package/dist/esm/version.js +1 -1
  83. package/package.json +2 -2
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
- // ------------------------------------------------------------------------------
3
- // Copyright (c) Microsoft Corporation. All rights reserved.
4
- // ------------------------------------------------------------------------------
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
5
4
  var __importDefault = (this && this.__importDefault) || function (mod) {
6
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
6
  };
8
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.MAX_SPAN_SIZE_BYTES = void 0;
9
9
  exports.hexTraceId = hexTraceId;
10
10
  exports.hexSpanId = hexSpanId;
11
11
  exports.asStr = asStr;
@@ -17,8 +17,10 @@ exports.isPerRequestExportEnabled = isPerRequestExportEnabled;
17
17
  exports.resolveAgent365Endpoint = resolveAgent365Endpoint;
18
18
  exports.getAgent365ObservabilityDomainOverride = getAgent365ObservabilityDomainOverride;
19
19
  exports.parseIdentityKey = parseIdentityKey;
20
+ exports.truncateSpan = truncateSpan;
20
21
  const api_1 = require("@opentelemetry/api");
21
22
  const constants_1 = require("../constants");
23
+ const contracts_1 = require("../contracts");
22
24
  const logging_1 = __importDefault(require("../../utils/logging"));
23
25
  const ExporterEventNames_1 = require("./ExporterEventNames");
24
26
  const configuration_1 = require("../../configuration");
@@ -172,4 +174,309 @@ function parseIdentityKey(key) {
172
174
  const [tenantId, agentId] = key.split(':');
173
175
  return { tenantId, agentId };
174
176
  }
177
+ // ---------------------------------------------------------------------------
178
+ // Span truncation
179
+ // ---------------------------------------------------------------------------
180
+ /** Maximum allowed span size in bytes (250KB). @internal */
181
+ exports.MAX_SPAN_SIZE_BYTES = 250 * 1024;
182
+ const BLOB_SENTINEL = '[blob truncated]';
183
+ const JSON_SENTINEL = '[truncated]';
184
+ const TRUNCATED_SUFFIX = '… [truncated]';
185
+ const TRUNCATED_SUFFIX_BYTES = Buffer.byteLength(TRUNCATED_SUFFIX, 'utf8');
186
+ const OVERLIMIT_SENTINEL = '[overlimit]';
187
+ /**
188
+ * Build a versioned message wrapper indicating the original messages were dropped
189
+ * because the span exceeded the size limit.
190
+ */
191
+ function serializeOverflowSentinel(totalMessages) {
192
+ return JSON.stringify({
193
+ version: contracts_1.A365_MESSAGE_SCHEMA_VERSION,
194
+ messages: [
195
+ {
196
+ role: contracts_1.MessageRole.SYSTEM,
197
+ parts: [
198
+ {
199
+ type: 'text',
200
+ content: `[truncated: ${totalMessages} ${totalMessages === 1 ? 'message' : 'messages'} exceeded limit]`
201
+ }
202
+ ]
203
+ }
204
+ ]
205
+ });
206
+ }
207
+ /** Strings shorter than this (in UTF-8 bytes) are not worth truncating. */
208
+ const MIN_SHRINKABLE_STRING_BYTES = 50;
209
+ const MESSAGE_ATTR_KEYS = new Set([
210
+ constants_1.OpenTelemetryConstants.GEN_AI_INPUT_MESSAGES_KEY,
211
+ constants_1.OpenTelemetryConstants.GEN_AI_OUTPUT_MESSAGES_KEY,
212
+ ]);
213
+ /**
214
+ * Trim a string by a target UTF-8 byte budget while preserving whole code points.
215
+ */
216
+ function trimString(value, bytesToShed) {
217
+ const currentBytes = Buffer.byteLength(value, 'utf8');
218
+ const targetTotalBytes = Math.max(TRUNCATED_SUFFIX_BYTES, currentBytes - Math.max(1, bytesToShed));
219
+ const targetContentBytes = targetTotalBytes - TRUNCATED_SUFFIX_BYTES;
220
+ if (targetContentBytes <= 0) {
221
+ return TRUNCATED_SUFFIX;
222
+ }
223
+ let consumedBytes = 0;
224
+ let endIndex = 0;
225
+ for (const codePoint of value) {
226
+ const codePointBytes = Buffer.byteLength(codePoint, 'utf8');
227
+ if (consumedBytes + codePointBytes > targetContentBytes) {
228
+ break;
229
+ }
230
+ consumedBytes += codePointBytes;
231
+ endIndex += codePoint.length; // length in UTF-16 code units (handles surrogates)
232
+ }
233
+ return value.slice(0, endIndex) + TRUNCATED_SUFFIX;
234
+ }
235
+ function getSerializedSize(value) {
236
+ return Buffer.byteLength(JSON.stringify(value), 'utf8');
237
+ }
238
+ function createBlobShrinkAction(part, sourceKey) {
239
+ const partType = part.type;
240
+ if (partType === 'blob' && typeof part.content === 'string') {
241
+ const contentSize = Buffer.byteLength(part.content, 'utf8');
242
+ if (contentSize <= 0 || part.content === BLOB_SENTINEL) {
243
+ return undefined;
244
+ }
245
+ const action = {
246
+ contentBytes: contentSize,
247
+ sourceKey,
248
+ apply() {
249
+ part.content = BLOB_SENTINEL;
250
+ action.contentBytes = 0;
251
+ }
252
+ };
253
+ return action;
254
+ }
255
+ return undefined;
256
+ }
257
+ /**
258
+ * Collect all shrink candidates from message parts and direct string attributes.
259
+ * Blobs, text, reasoning, json-field, and plain-string actions are all collected
260
+ * uniformly. When a message attribute contains non-JSON content it falls through
261
+ * to regular string trimming.
262
+ */
263
+ function collectShrinkActions(attributes, parsedMessages) {
264
+ const actions = [];
265
+ for (const key of Object.keys(attributes)) {
266
+ let handledAsMessage = false;
267
+ if (MESSAGE_ATTR_KEYS.has(key)) {
268
+ // Parse and cache the message wrapper if not already done
269
+ if (!parsedMessages.has(key) && typeof attributes[key] === 'string') {
270
+ try {
271
+ const parsed = JSON.parse(attributes[key]);
272
+ if (parsed && typeof parsed === 'object' && Array.isArray(parsed.messages)) {
273
+ parsedMessages.set(key, parsed);
274
+ }
275
+ }
276
+ catch {
277
+ // Not valid JSON — will fall through to string trim
278
+ }
279
+ }
280
+ if (parsedMessages.has(key)) {
281
+ handledAsMessage = true;
282
+ const wrapper = parsedMessages.get(key);
283
+ for (const message of wrapper.messages) {
284
+ if (!Array.isArray(message.parts))
285
+ continue;
286
+ for (const part of message.parts) {
287
+ const partType = part.type;
288
+ // Blob content → sentinel (one-shot)
289
+ const blobAction = createBlobShrinkAction(part, key);
290
+ if (blobAction) {
291
+ actions.push(blobAction);
292
+ }
293
+ // Tool/server JSON payload fields → sentinel (one-shot)
294
+ const jsonField = partType === 'tool_call' ? 'arguments'
295
+ : partType === 'tool_call_response' ? 'response'
296
+ : partType === 'server_tool_call' ? 'server_tool_call'
297
+ : partType === 'server_tool_call_response' ? 'server_tool_call_response'
298
+ : undefined;
299
+ if (jsonField && part[jsonField] !== undefined && part[jsonField] !== JSON_SENTINEL) {
300
+ let fieldSize;
301
+ try {
302
+ fieldSize = Buffer.byteLength(JSON.stringify(part[jsonField]), 'utf8');
303
+ }
304
+ catch {
305
+ fieldSize = 0;
306
+ }
307
+ if (fieldSize > 0) {
308
+ const action = {
309
+ contentBytes: fieldSize,
310
+ sourceKey: key,
311
+ apply() {
312
+ part[jsonField] = JSON_SENTINEL;
313
+ action.contentBytes = 0;
314
+ }
315
+ };
316
+ actions.push(action);
317
+ }
318
+ continue;
319
+ }
320
+ // Text/reasoning content → trim (re-shrinkable)
321
+ if ((partType === 'text' || partType === 'reasoning') && typeof part.content === 'string') {
322
+ const contentSize = Buffer.byteLength(part.content, 'utf8');
323
+ if (contentSize > MIN_SHRINKABLE_STRING_BYTES) {
324
+ const action = {
325
+ contentBytes: contentSize,
326
+ sourceKey: key,
327
+ apply(bytesToShed) {
328
+ const cur = Buffer.byteLength(part.content, 'utf8');
329
+ if (cur > TRUNCATED_SUFFIX_BYTES) {
330
+ part.content = trimString(part.content, bytesToShed);
331
+ action.contentBytes = Buffer.byteLength(part.content, 'utf8');
332
+ }
333
+ }
334
+ };
335
+ actions.push(action);
336
+ }
337
+ }
338
+ }
339
+ }
340
+ }
341
+ }
342
+ // Non-message string attribute, OR message key with non-JSON content → trim
343
+ if (!handledAsMessage && typeof attributes[key] === 'string') {
344
+ const value = attributes[key];
345
+ const valueSize = Buffer.byteLength(value, 'utf8');
346
+ if (valueSize > MIN_SHRINKABLE_STRING_BYTES) {
347
+ const action = {
348
+ contentBytes: valueSize,
349
+ apply(bytesToShed) {
350
+ const cur = Buffer.byteLength(attributes[key], 'utf8');
351
+ if (cur > TRUNCATED_SUFFIX_BYTES) {
352
+ attributes[key] = trimString(attributes[key], bytesToShed);
353
+ action.contentBytes = Buffer.byteLength(attributes[key], 'utf8');
354
+ }
355
+ }
356
+ };
357
+ actions.push(action);
358
+ }
359
+ }
360
+ }
361
+ return actions;
362
+ }
363
+ function flushParsedMessages(attributes, parsedMessages) {
364
+ for (const [key, wrapper] of parsedMessages) {
365
+ try {
366
+ attributes[key] = JSON.stringify(wrapper);
367
+ }
368
+ catch {
369
+ // Leave the previous string value intact if serialization fails.
370
+ }
371
+ }
372
+ }
373
+ function flushParsedMessage(attributes, parsedMessages, key) {
374
+ const wrapper = parsedMessages.get(key);
375
+ if (wrapper) {
376
+ try {
377
+ attributes[key] = JSON.stringify(wrapper);
378
+ }
379
+ catch {
380
+ // Leave the previous string value intact if serialization fails.
381
+ }
382
+ }
383
+ }
384
+ function runShrinkPhase(span, attributes, parsedMessages, currentSize) {
385
+ let nextSize = currentSize;
386
+ const actions = collectShrinkActions(attributes, parsedMessages);
387
+ while (actions.length > 0 && nextSize > exports.MAX_SPAN_SIZE_BYTES) {
388
+ // Pick the action with the largest contentBytes (accounts for updated sizes)
389
+ let maxIdx = 0;
390
+ for (let j = 1; j < actions.length; j++) {
391
+ if (actions[j].contentBytes > actions[maxIdx].contentBytes)
392
+ maxIdx = j;
393
+ }
394
+ const excess = nextSize - exports.MAX_SPAN_SIZE_BYTES;
395
+ const previousSize = nextSize;
396
+ const action = actions[maxIdx];
397
+ action.apply(excess);
398
+ // Flush only the modified message attribute instead of all parsed messages
399
+ if (action.sourceKey) {
400
+ flushParsedMessage(attributes, parsedMessages, action.sourceKey);
401
+ }
402
+ nextSize = getSerializedSize(span);
403
+ if (nextSize >= previousSize) {
404
+ // Action had no effect — remove it
405
+ actions.splice(maxIdx, 1);
406
+ }
407
+ else if (action.contentBytes <= MIN_SHRINKABLE_STRING_BYTES) {
408
+ // Exhausted (one-shot or fully trimmed) — remove it
409
+ actions.splice(maxIdx, 1);
410
+ }
411
+ }
412
+ // Final flush to ensure all modified message attributes are written back
413
+ flushParsedMessages(attributes, parsedMessages);
414
+ return nextSize;
415
+ }
416
+ /**
417
+ * Truncate span attributes if the serialized span exceeds MAX_SPAN_SIZE_BYTES.
418
+ *
419
+ * Phase 1: iteratively shrink all fields (blobs, text, json, strings) by size
420
+ * priority, remeasuring after each step.
421
+ * Phase 2 (fallback): replace remaining string attributes with overlimit sentinel.
422
+ */
423
+ function truncateSpan(spanDict) {
424
+ try {
425
+ let currentSize = getSerializedSize(spanDict);
426
+ if (currentSize <= exports.MAX_SPAN_SIZE_BYTES)
427
+ return spanDict;
428
+ logging_1.default.warn(`[Agent365Exporter] Span size (${currentSize} bytes) exceeds limit (${exports.MAX_SPAN_SIZE_BYTES} bytes). Shrinking attributes.`);
429
+ const truncated = { ...spanDict };
430
+ if (truncated.attributes)
431
+ truncated.attributes = { ...truncated.attributes };
432
+ const attributes = truncated.attributes;
433
+ if (!attributes)
434
+ return truncated;
435
+ const parsedMessages = new Map();
436
+ // Phase 1: iteratively shrink all fields by size priority
437
+ currentSize = runShrinkPhase(truncated, attributes, parsedMessages, currentSize);
438
+ if (currentSize > exports.MAX_SPAN_SIZE_BYTES) {
439
+ // Phase 2 (fallback): replace all string attributes with overlimit sentinel, largest first.
440
+ // Message attributes get a structured sentinel preserving the original message count.
441
+ const stringKeys = Object.keys(attributes)
442
+ .filter(k => typeof attributes[k] === 'string' && attributes[k] !== OVERLIMIT_SENTINEL)
443
+ .sort((a, b) => Buffer.byteLength(attributes[b], 'utf8') - Buffer.byteLength(attributes[a], 'utf8'));
444
+ for (const key of stringKeys) {
445
+ if (currentSize <= exports.MAX_SPAN_SIZE_BYTES)
446
+ break;
447
+ if (MESSAGE_ATTR_KEYS.has(key)) {
448
+ let messageCount = 0;
449
+ const cached = parsedMessages.get(key);
450
+ if (cached) {
451
+ messageCount = cached.messages.length;
452
+ }
453
+ else if (typeof attributes[key] === 'string') {
454
+ // Attempt to derive count from current attribute value
455
+ try {
456
+ const parsed = JSON.parse(attributes[key]);
457
+ if (parsed && Array.isArray(parsed.messages)) {
458
+ messageCount = parsed.messages.length;
459
+ }
460
+ }
461
+ catch { /* not valid JSON — count stays 0 */ }
462
+ }
463
+ attributes[key] = serializeOverflowSentinel(messageCount);
464
+ parsedMessages.delete(key);
465
+ }
466
+ else {
467
+ attributes[key] = OVERLIMIT_SENTINEL;
468
+ }
469
+ currentSize = getSerializedSize(truncated);
470
+ }
471
+ }
472
+ if (currentSize > exports.MAX_SPAN_SIZE_BYTES) {
473
+ logging_1.default.warn(`[Agent365Exporter] Span still ${currentSize} bytes after exhausting all shrink actions (limit: ${exports.MAX_SPAN_SIZE_BYTES}).`);
474
+ }
475
+ return truncated;
476
+ }
477
+ catch (e) {
478
+ logging_1.default.error(`[Agent365Exporter] Error during span truncation: ${e}`);
479
+ return spanDict;
480
+ }
481
+ }
175
482
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/tracing/exporter/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/tracing/exporter/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { ChatMessage, OutputMessage, InputMessages, OutputMessages, InputMessagesParam, OutputMessagesParam } from './contracts';
2
+ /**
3
+ * Type guard that returns `true` when the input is a plain `string[]`
4
+ * rather than a versioned wrapper object.
5
+ */
6
+ export declare function isStringArray(input: InputMessagesParam | OutputMessagesParam): input is string[];
7
+ /**
8
+ * Type guard that returns `true` when the input is a versioned wrapper
9
+ * object (`InputMessages` or `OutputMessages`).
10
+ */
11
+ export declare function isWrappedMessages(input: InputMessagesParam | OutputMessagesParam): input is InputMessages | OutputMessages;
12
+ /**
13
+ * Converts plain input strings into OTEL input messages.
14
+ */
15
+ export declare function toInputMessages(messages: string[]): ChatMessage[];
16
+ /**
17
+ * Converts plain output strings into OTEL output messages.
18
+ */
19
+ export declare function toOutputMessages(messages: string[]): OutputMessage[];
20
+ /**
21
+ * Normalizes an `InputMessagesParam` to a versioned `InputMessages` wrapper.
22
+ * - `string[]` → converted to `ChatMessage[]` and wrapped
23
+ * - `InputMessages` → returned as-is
24
+ */
25
+ export declare function normalizeInputMessages(param: InputMessagesParam): InputMessages;
26
+ /**
27
+ * Normalizes an `OutputMessagesParam` to a versioned `OutputMessages` wrapper.
28
+ * - `string[]` → converted to `OutputMessage[]` and wrapped
29
+ * - `OutputMessages` → returned as-is
30
+ */
31
+ export declare function normalizeOutputMessages(param: OutputMessagesParam): OutputMessages;
32
+ /**
33
+ * Serializes a versioned message wrapper to JSON.
34
+ *
35
+ * The output is the full wrapper object: `{"version":"0.1.0","messages":[...]}`.
36
+ *
37
+ * The try/catch ensures telemetry recording is non-throwing even when
38
+ * message parts contain non-JSON-serializable values (e.g. BigInt, circular refs).
39
+ */
40
+ export declare function serializeMessages(wrapper: InputMessages | OutputMessages): string;
41
+ //# sourceMappingURL=message-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../../src/tracing/message-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EACX,aAAa,EAEb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,KAAK,IAAI,MAAM,EAAE,CAEhG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,KAAK,IAAI,aAAa,GAAG,cAAc,CAE1H;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAKjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAKpE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAK/E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAKlF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,CAmBjF"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.isStringArray = isStringArray;
6
+ exports.isWrappedMessages = isWrappedMessages;
7
+ exports.toInputMessages = toInputMessages;
8
+ exports.toOutputMessages = toOutputMessages;
9
+ exports.normalizeInputMessages = normalizeInputMessages;
10
+ exports.normalizeOutputMessages = normalizeOutputMessages;
11
+ exports.serializeMessages = serializeMessages;
12
+ const contracts_1 = require("./contracts");
13
+ /**
14
+ * Type guard that returns `true` when the input is a plain `string[]`
15
+ * rather than a versioned wrapper object.
16
+ */
17
+ function isStringArray(input) {
18
+ return Array.isArray(input);
19
+ }
20
+ /**
21
+ * Type guard that returns `true` when the input is a versioned wrapper
22
+ * object (`InputMessages` or `OutputMessages`).
23
+ */
24
+ function isWrappedMessages(input) {
25
+ return !Array.isArray(input) && typeof input === 'object' && input !== null && 'version' in input && 'messages' in input;
26
+ }
27
+ /**
28
+ * Converts plain input strings into OTEL input messages.
29
+ */
30
+ function toInputMessages(messages) {
31
+ return messages.map((content) => ({
32
+ role: contracts_1.MessageRole.USER,
33
+ parts: [{ type: 'text', content }]
34
+ }));
35
+ }
36
+ /**
37
+ * Converts plain output strings into OTEL output messages.
38
+ */
39
+ function toOutputMessages(messages) {
40
+ return messages.map((content) => ({
41
+ role: contracts_1.MessageRole.ASSISTANT,
42
+ parts: [{ type: 'text', content }]
43
+ }));
44
+ }
45
+ /**
46
+ * Normalizes an `InputMessagesParam` to a versioned `InputMessages` wrapper.
47
+ * - `string[]` → converted to `ChatMessage[]` and wrapped
48
+ * - `InputMessages` → returned as-is
49
+ */
50
+ function normalizeInputMessages(param) {
51
+ if (isStringArray(param)) {
52
+ return { version: contracts_1.A365_MESSAGE_SCHEMA_VERSION, messages: toInputMessages(param) };
53
+ }
54
+ return param;
55
+ }
56
+ /**
57
+ * Normalizes an `OutputMessagesParam` to a versioned `OutputMessages` wrapper.
58
+ * - `string[]` → converted to `OutputMessage[]` and wrapped
59
+ * - `OutputMessages` → returned as-is
60
+ */
61
+ function normalizeOutputMessages(param) {
62
+ if (isStringArray(param)) {
63
+ return { version: contracts_1.A365_MESSAGE_SCHEMA_VERSION, messages: toOutputMessages(param) };
64
+ }
65
+ return param;
66
+ }
67
+ /**
68
+ * Serializes a versioned message wrapper to JSON.
69
+ *
70
+ * The output is the full wrapper object: `{"version":"0.1.0","messages":[...]}`.
71
+ *
72
+ * The try/catch ensures telemetry recording is non-throwing even when
73
+ * message parts contain non-JSON-serializable values (e.g. BigInt, circular refs).
74
+ */
75
+ function serializeMessages(wrapper) {
76
+ try {
77
+ return JSON.stringify(wrapper);
78
+ }
79
+ catch {
80
+ return JSON.stringify({
81
+ version: contracts_1.A365_MESSAGE_SCHEMA_VERSION,
82
+ messages: [
83
+ {
84
+ role: contracts_1.MessageRole.SYSTEM,
85
+ parts: [
86
+ {
87
+ type: 'text',
88
+ content: `[serialization failed: ${wrapper.messages.length} ${wrapper.messages.length === 1 ? 'message' : 'messages'}]`
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ });
94
+ }
95
+ }
96
+ //# sourceMappingURL=message-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-utils.js","sourceRoot":"","sources":["../../../src/tracing/message-utils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAiBlC,sCAEC;AAMD,8CAEC;AAKD,0CAKC;AAKD,4CAKC;AAOD,wDAKC;AAOD,0DAKC;AAUD,8CAmBC;AAlGD,2CASqB;AAErB;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAA+C;IAC3E,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAA+C;IAC/E,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;AAC3H,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAkB;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,uBAAW,CAAC,IAAI;QACtB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC;KAC5C,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAkB;IACjD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,uBAAW,CAAC,SAAS;QAC3B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC;KAC5C,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,KAAyB;IAC9D,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,uCAA2B,EAAE,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,KAA0B;IAChE,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,uCAA2B,EAAE,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;IACrF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,OAAuC;IACvE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,uCAA2B;YACpC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,uBAAW,CAAC,MAAM;oBACxB,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,0BAA0B,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG;yBACxH;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { OpenTelemetryScope } from './OpenTelemetryScope';
2
- import { InferenceDetails, AgentDetails, UserDetails, Request, SpanDetails } from '../contracts';
2
+ import { InferenceDetails, AgentDetails, UserDetails, Request, SpanDetails, InputMessagesParam, OutputMessagesParam } from '../contracts';
3
3
  /**
4
4
  * Provides OpenTelemetry tracing scope for generative AI inference operations.
5
5
  */
@@ -16,16 +16,6 @@ export declare class InferenceScope extends OpenTelemetryScope {
16
16
  */
17
17
  static start(request: Request, details: InferenceDetails, agentDetails: AgentDetails, userDetails?: UserDetails, spanDetails?: SpanDetails): InferenceScope;
18
18
  private constructor();
19
- /**
20
- * Records the input messages for telemetry tracking.
21
- * @param messages Array of input messages
22
- */
23
- recordInputMessages(messages: string[]): void;
24
- /**
25
- * Records the output messages for telemetry tracking.
26
- * @param messages Array of output messages
27
- */
28
- recordOutputMessages(messages: string[]): void;
29
19
  /**
30
20
  * Records the number of input tokens for telemetry tracking.
31
21
  * @param inputTokens Number of input tokens
@@ -41,5 +31,17 @@ export declare class InferenceScope extends OpenTelemetryScope {
41
31
  * @param finishReasons Array of finish reasons
42
32
  */
43
33
  recordFinishReasons(finishReasons: string[]): void;
34
+ /**
35
+ * Records the input messages for telemetry tracking.
36
+ * Accepts plain strings (auto-wrapped as OTEL ChatMessage with role `user`) or a versioned InputMessages wrapper.
37
+ * @param messages Array of input message strings or an InputMessages wrapper
38
+ */
39
+ recordInputMessages(messages: InputMessagesParam): void;
40
+ /**
41
+ * Records the output messages for telemetry tracking.
42
+ * Accepts plain strings (auto-wrapped as OTEL OutputMessage with role `assistant`) or a versioned OutputMessages wrapper.
43
+ * @param messages Array of output message strings or an OutputMessages wrapper
44
+ */
45
+ recordOutputMessages(messages: OutputMessagesParam): void;
44
46
  }
45
47
  //# sourceMappingURL=InferenceScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;OASG;WACW,KAAK,CACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,cAAc;IAIjB,OAAO;IA6CP;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpD;;;OAGG;IACI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrD;;;OAGG;IACI,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD;;;OAGG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIrD;;;OAGG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;CAM1D"}
1
+ {"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;OASG;WACW,KAAK,CACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,cAAc;IAIjB,OAAO;IA6CP;;;OAGG;IACI,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD;;;OAGG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIrD;;;OAGG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAMzD;;;;OAIG;IACa,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIvE;;;;OAIG;IACa,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;CAG1E"}
@@ -50,20 +50,6 @@ class InferenceScope extends OpenTelemetryScope_1.OpenTelemetryScope {
50
50
  }
51
51
  }
52
52
  }
53
- /**
54
- * Records the input messages for telemetry tracking.
55
- * @param messages Array of input messages
56
- */
57
- recordInputMessages(messages) {
58
- this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_INPUT_MESSAGES_KEY, JSON.stringify(messages));
59
- }
60
- /**
61
- * Records the output messages for telemetry tracking.
62
- * @param messages Array of output messages
63
- */
64
- recordOutputMessages(messages) {
65
- this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_OUTPUT_MESSAGES_KEY, JSON.stringify(messages));
66
- }
67
53
  /**
68
54
  * Records the number of input tokens for telemetry tracking.
69
55
  * @param inputTokens Number of input tokens
@@ -87,6 +73,22 @@ class InferenceScope extends OpenTelemetryScope_1.OpenTelemetryScope {
87
73
  this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_RESPONSE_FINISH_REASONS_KEY, finishReasons);
88
74
  }
89
75
  }
76
+ /**
77
+ * Records the input messages for telemetry tracking.
78
+ * Accepts plain strings (auto-wrapped as OTEL ChatMessage with role `user`) or a versioned InputMessages wrapper.
79
+ * @param messages Array of input message strings or an InputMessages wrapper
80
+ */
81
+ recordInputMessages(messages) {
82
+ super.recordInputMessages(messages);
83
+ }
84
+ /**
85
+ * Records the output messages for telemetry tracking.
86
+ * Accepts plain strings (auto-wrapped as OTEL OutputMessage with role `assistant`) or a versioned OutputMessages wrapper.
87
+ * @param messages Array of output message strings or an OutputMessages wrapper
88
+ */
89
+ recordOutputMessages(messages) {
90
+ super.recordOutputMessages(messages);
91
+ }
90
92
  }
91
93
  exports.InferenceScope = InferenceScope;
92
94
  //# sourceMappingURL=InferenceScope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InferenceScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InferenceScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"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"}