@microsoft/agents-a365-observability-hosting 0.1.0-preview.95 → 0.2.0-preview.1

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 (65) hide show
  1. package/dist/cjs/caching/AgenticTokenCache.d.ts +38 -1
  2. package/dist/cjs/caching/AgenticTokenCache.d.ts.map +1 -1
  3. package/dist/cjs/caching/AgenticTokenCache.js +48 -5
  4. package/dist/cjs/caching/AgenticTokenCache.js.map +1 -1
  5. package/dist/cjs/index.d.ts +5 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +10 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/middleware/BaggageMiddleware.d.ts +9 -0
  10. package/dist/cjs/middleware/BaggageMiddleware.d.ts.map +1 -0
  11. package/dist/cjs/middleware/BaggageMiddleware.js +34 -0
  12. package/dist/cjs/middleware/BaggageMiddleware.js.map +1 -0
  13. package/dist/cjs/middleware/ObservabilityHostingManager.d.ts +30 -0
  14. package/dist/cjs/middleware/ObservabilityHostingManager.d.ts.map +1 -0
  15. package/dist/cjs/middleware/ObservabilityHostingManager.js +46 -0
  16. package/dist/cjs/middleware/ObservabilityHostingManager.js.map +1 -0
  17. package/dist/cjs/middleware/OutputLoggingMiddleware.d.ts +34 -0
  18. package/dist/cjs/middleware/OutputLoggingMiddleware.d.ts.map +1 -0
  19. package/dist/cjs/middleware/OutputLoggingMiddleware.js +95 -0
  20. package/dist/cjs/middleware/OutputLoggingMiddleware.js.map +1 -0
  21. package/dist/cjs/utils/BaggageBuilderUtils.d.ts +2 -9
  22. package/dist/cjs/utils/BaggageBuilderUtils.d.ts.map +1 -1
  23. package/dist/cjs/utils/BaggageBuilderUtils.js +4 -15
  24. package/dist/cjs/utils/BaggageBuilderUtils.js.map +1 -1
  25. package/dist/cjs/utils/ScopeUtils.d.ts +39 -26
  26. package/dist/cjs/utils/ScopeUtils.d.ts.map +1 -1
  27. package/dist/cjs/utils/ScopeUtils.js +96 -71
  28. package/dist/cjs/utils/ScopeUtils.js.map +1 -1
  29. package/dist/cjs/utils/TurnContextUtils.d.ts +18 -10
  30. package/dist/cjs/utils/TurnContextUtils.d.ts.map +1 -1
  31. package/dist/cjs/utils/TurnContextUtils.js +33 -53
  32. package/dist/cjs/utils/TurnContextUtils.js.map +1 -1
  33. package/dist/esm/caching/AgenticTokenCache.d.ts +38 -1
  34. package/dist/esm/caching/AgenticTokenCache.d.ts.map +1 -1
  35. package/dist/esm/caching/AgenticTokenCache.js +48 -6
  36. package/dist/esm/caching/AgenticTokenCache.js.map +1 -1
  37. package/dist/esm/index.d.ts +5 -1
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js +4 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/middleware/BaggageMiddleware.d.ts +9 -0
  42. package/dist/esm/middleware/BaggageMiddleware.d.ts.map +1 -0
  43. package/dist/esm/middleware/BaggageMiddleware.js +30 -0
  44. package/dist/esm/middleware/BaggageMiddleware.js.map +1 -0
  45. package/dist/esm/middleware/ObservabilityHostingManager.d.ts +30 -0
  46. package/dist/esm/middleware/ObservabilityHostingManager.d.ts.map +1 -0
  47. package/dist/esm/middleware/ObservabilityHostingManager.js +42 -0
  48. package/dist/esm/middleware/ObservabilityHostingManager.js.map +1 -0
  49. package/dist/esm/middleware/OutputLoggingMiddleware.d.ts +34 -0
  50. package/dist/esm/middleware/OutputLoggingMiddleware.d.ts.map +1 -0
  51. package/dist/esm/middleware/OutputLoggingMiddleware.js +91 -0
  52. package/dist/esm/middleware/OutputLoggingMiddleware.js.map +1 -0
  53. package/dist/esm/utils/BaggageBuilderUtils.d.ts +2 -9
  54. package/dist/esm/utils/BaggageBuilderUtils.d.ts.map +1 -1
  55. package/dist/esm/utils/BaggageBuilderUtils.js +5 -16
  56. package/dist/esm/utils/BaggageBuilderUtils.js.map +1 -1
  57. package/dist/esm/utils/ScopeUtils.d.ts +39 -26
  58. package/dist/esm/utils/ScopeUtils.d.ts.map +1 -1
  59. package/dist/esm/utils/ScopeUtils.js +98 -73
  60. package/dist/esm/utils/ScopeUtils.js.map +1 -1
  61. package/dist/esm/utils/TurnContextUtils.d.ts +18 -10
  62. package/dist/esm/utils/TurnContextUtils.d.ts.map +1 -1
  63. package/dist/esm/utils/TurnContextUtils.js +32 -52
  64. package/dist/esm/utils/TurnContextUtils.js.map +1 -1
  65. package/package.json +5 -4
@@ -1,23 +1,21 @@
1
1
  import { TurnContext } from '@microsoft/agents-hosting';
2
- import { InvokeAgentScope, InferenceScope, ExecuteToolScope, AgentDetails, TenantDetails, CallerDetails, InferenceDetails, InvokeAgentDetails, ToolCallDetails } from '@microsoft/agents-a365-observability';
2
+ import { SpanKind, TimeInput } from '@opentelemetry/api';
3
+ import { InvokeAgentScope, InferenceScope, ExecuteToolScope, AgentDetails, UserDetails, InferenceDetails, ToolCallDetails, InvokeAgentScopeDetails } from '@microsoft/agents-a365-observability';
3
4
  /**
4
5
  * Unified utilities to populate scope tags from a TurnContext.
5
6
  * Provides common tag population and scope-specific helpers.
6
7
  */
7
8
  export declare class ScopeUtils {
8
9
  private static setInputMessageTags;
9
- /**
10
- * Derive tenant details from the TurnContext.
11
- * @param turnContext Activity context
12
- * @returns Tenant details if a recipient tenant id is present; otherwise undefined.
13
- */
14
- static deriveTenantDetails(turnContext: TurnContext): TenantDetails | undefined;
15
10
  /**
16
11
  * Derive target agent details from the activity recipient.
12
+ * Uses {@link resolveEmbodiedAgentIds} to resolve the agent ID and blueprint ID, which are only
13
+ * set for embodied (agentic) agents — see that function for the rationale.
17
14
  * @param turnContext Activity context
15
+ * @param authToken Auth token for resolving agent identity from token claims.
18
16
  * @returns Agent details built from recipient properties; otherwise undefined.
19
17
  */
20
- static deriveAgentDetails(turnContext: TurnContext): AgentDetails | undefined;
18
+ static deriveAgentDetails(turnContext: TurnContext, authToken: string): AgentDetails | undefined;
21
19
  /**
22
20
  * Derive caller agent details from the activity from.
23
21
  * @param turnContext Activity context
@@ -25,11 +23,11 @@ export declare class ScopeUtils {
25
23
  */
26
24
  static deriveCallerAgent(turnContext: TurnContext): AgentDetails | undefined;
27
25
  /**
28
- * Derive caller identity details (id, upn, name, tenant, client ip) from the activity from.
26
+ * Derive caller identity details (id, email, name, tenant) from the activity from.
29
27
  * @param turnContext Activity context
30
- * @returns Caller details when available; otherwise undefined.
28
+ * @returns User details when available; otherwise undefined.
31
29
  */
32
- static deriveCallerDetails(turnContext: TurnContext): CallerDetails | undefined;
30
+ static deriveCallerDetails(turnContext: TurnContext): UserDetails | undefined;
33
31
  /**
34
32
  * Derive conversation id from the TurnContext.
35
33
  * @param turnContext Activity context
@@ -37,47 +35,62 @@ export declare class ScopeUtils {
37
35
  */
38
36
  static deriveConversationId(turnContext: TurnContext): string | undefined;
39
37
  /**
40
- * Derive source metadata (channel name and description/link) from the TurnContext.
38
+ * Derive channel (name and description) from the TurnContext.
41
39
  * @param turnContext Activity context
42
40
  * @returns Object with optional name and description fields.
43
41
  */
44
- static deriveSourceMetadataObject(turnContext: TurnContext): {
42
+ static deriveChannelObject(turnContext: TurnContext): {
45
43
  name?: string;
46
44
  description?: string;
47
45
  };
48
46
  /**
49
47
  * Create an `InferenceScope` using `details` and values derived from the provided `TurnContext`.
50
- * Derives `agentDetails`, `tenantDetails`, `conversationId`, and `sourceMetadata` (channel name/link) from context.
48
+ * Derives `conversationId` and `channel` (name/description) from context.
51
49
  * Also records input messages from the context if present.
52
50
  * @param details The inference call details (model, provider, tokens, etc.).
53
51
  * @param turnContext The current activity context to derive scope parameters from.
52
+ * @param authToken Auth token for resolving agent identity from token claims.
53
+ * @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
54
+ * @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
54
55
  * @returns A started `InferenceScope` enriched with context-derived parameters.
55
56
  */
56
- static populateInferenceScopeFromTurnContext(details: InferenceDetails, turnContext: TurnContext): InferenceScope;
57
+ static populateInferenceScopeFromTurnContext(details: InferenceDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput): InferenceScope;
57
58
  /**
58
59
  * Create an `InvokeAgentScope` using `details` and values derived from the provided `TurnContext`.
59
- * Populates `conversationId` and `request.sourceMetadata` (channel name/link) in `details` from the `TurnContext`, overriding any existing values.
60
- * Derives `tenantDetails`, `callerAgentDetails` (from caller), and `callerDetails` (from user).
61
- * Also sets execution type and input messages from the context if present.
62
- * @param details The invoke-agent call details to be augmented and used for the scope.
60
+ * Builds a separate `Request` with `conversationId` and `channel` from context.
61
+ * Merges agent identity from context into `details` via `buildInvokeAgentDetailsCore`.
62
+ * Derives `callerAgentDetails` (from caller) and `userDetails` (human caller).
63
+ * Also records input messages from the context if present.
64
+ * @param details The agent details to be augmented with context-derived identity.
63
65
  * @param turnContext The current activity context to derive scope parameters from.
66
+ * @param authToken Auth token for resolving agent identity from token claims.
67
+ * @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
68
+ * @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
69
+ * @param spanKind Optional span kind override. Defaults to `SpanKind.CLIENT`.
64
70
  * @returns A started `InvokeAgentScope` enriched with context-derived parameters.
65
71
  */
66
- static populateInvokeAgentScopeFromTurnContext(details: InvokeAgentDetails, turnContext: TurnContext): InvokeAgentScope;
72
+ static populateInvokeAgentScopeFromTurnContext(details: AgentDetails, scopeDetails: InvokeAgentScopeDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput, spanKind?: SpanKind): InvokeAgentScope;
67
73
  /**
68
- * Build InvokeAgentDetails by merging provided details with agent info, conversation id and source metadata from the TurnContext.
69
- * @param details Base invoke-agent details to augment
74
+ * Build agent details by merging provided details with agent info from the TurnContext.
75
+ * @param details Base agent details to augment
70
76
  * @param turnContext Activity context
71
- * @returns New InvokeAgentDetails suitable for starting an InvokeAgentScope.
77
+ * @param authToken Auth token for resolving agent identity from token claims.
78
+ * @returns Merged AgentDetails with context-derived identity.
72
79
  */
73
- static buildInvokeAgentDetails(details: InvokeAgentDetails, turnContext: TurnContext): InvokeAgentDetails;
80
+ static buildInvokeAgentDetails(details: AgentDetails, turnContext: TurnContext, authToken: string): AgentDetails;
81
+ private static buildInvokeAgentDetailsCore;
74
82
  /**
75
83
  * Create an `ExecuteToolScope` using `details` and values derived from the provided `TurnContext`.
76
- * Derives `agentDetails`, `tenantDetails`, `conversationId`, and `sourceMetadata` (channel name/link) from context.
84
+ * Derives `conversationId` and `channel` (name/link) from context.
77
85
  * @param details The tool call details (name, type, args, call id, etc.).
78
86
  * @param turnContext The current activity context to derive scope parameters from.
87
+ * @param authToken Auth token for resolving agent identity from token claims.
88
+ * @param startTime Optional explicit start time (ms epoch, Date, or HrTime). Useful when recording a
89
+ * tool call after execution has already completed.
90
+ * @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
91
+ * @param spanKind Optional span kind override. Defaults to `SpanKind.INTERNAL`.
79
92
  * @returns A started `ExecuteToolScope` enriched with context-derived parameters.
80
93
  */
81
- static populateExecuteToolScopeFromTurnContext(details: ToolCallDetails, turnContext: TurnContext): ExecuteToolScope;
94
+ static populateExecuteToolScopeFromTurnContext(details: ToolCallDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput, spanKind?: SpanKind): ExecuteToolScope;
82
95
  }
83
96
  //# sourceMappingURL=ScopeUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAK9C;;;GAGG;AACH,qBAAa,UAAU;IAGrB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC;;;;OAIG;WACW,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS;IAKtF;;;;OAIG;WACW,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;IAapF;;;;OAIG;WACW,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;IAcnF;;;;OAIG;WACW,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS;IAWtF;;;;OAIG;WACW,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;IAIhF;;;;OAIG;WACW,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAO3G;;;;;;;OAOG;IACH,MAAM,CAAC,qCAAqC,CAC1C,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,WAAW,GACvB,cAAc;IAkBjB;;;;;;;;OAQG;IACH,MAAM,CAAC,uCAAuC,CAC5C,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,WAAW,GACvB,gBAAgB;IAenB;;;;;OAKG;WACW,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,GAAG,kBAAkB;IAuBhH;;;;;;OAMG;IACH,MAAM,CAAC,uCAAuC,CAC5C,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,WAAW,GACvB,gBAAgB;CAcpB"}
1
+ {"version":3,"file":"ScopeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EAEX,gBAAgB,EAChB,eAAe,EAGf,uBAAuB,EACxB,MAAM,sCAAsC,CAAC;AAG9C;;;GAGG;AACH,qBAAa,UAAU;IAGrB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAalC;;;;;;;OAOG;WACW,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAgBvG;;;;OAIG;WACW,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;IAenF;;;;OAIG;WACW,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAWpF;;;;OAIG;WACW,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;IAIhF;;;;OAIG;WACW,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAOpG;;;;;;;;;;OAUG;IACH,MAAM,CAAC,qCAAqC,CAC1C,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,cAAc;IAyBjB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,uCAAuC,CAC5C,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,uBAAuB,EACrC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,QAAQ,GAClB,gBAAgB;IA+BnB;;;;;;OAMG;WACW,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;IAIvH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAY1C;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,uCAAuC,CAC5C,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,QAAQ,GAClB,gBAAgB;CAwBpB"}
@@ -21,30 +21,27 @@ class ScopeUtils {
21
21
  // ----------------------
22
22
  // Context-derived helpers
23
23
  // ----------------------
24
- /**
25
- * Derive tenant details from the TurnContext.
26
- * @param turnContext Activity context
27
- * @returns Tenant details if a recipient tenant id is present; otherwise undefined.
28
- */
29
- static deriveTenantDetails(turnContext) {
30
- const tenantId = turnContext?.activity?.recipient?.tenantId;
31
- return tenantId ? { tenantId } : undefined;
32
- }
33
24
  /**
34
25
  * Derive target agent details from the activity recipient.
26
+ * Uses {@link resolveEmbodiedAgentIds} to resolve the agent ID and blueprint ID, which are only
27
+ * set for embodied (agentic) agents — see that function for the rationale.
35
28
  * @param turnContext Activity context
29
+ * @param authToken Auth token for resolving agent identity from token claims.
36
30
  * @returns Agent details built from recipient properties; otherwise undefined.
37
31
  */
38
- static deriveAgentDetails(turnContext) {
32
+ static deriveAgentDetails(turnContext, authToken) {
39
33
  const recipient = turnContext?.activity?.recipient;
40
34
  if (!recipient)
41
35
  return undefined;
36
+ const { agentId, agentBlueprintId } = (0, TurnContextUtils_1.resolveEmbodiedAgentIds)(turnContext, authToken);
42
37
  return {
43
- agentId: recipient.agenticAppId,
38
+ agentId,
44
39
  agentName: recipient.name,
45
40
  agentAUID: recipient.aadObjectId,
41
+ agentBlueprintId,
42
+ agentEmail: turnContext?.activity?.getAgenticUser?.(),
46
43
  agentDescription: recipient.role,
47
- tenantId: recipient.tenantId
44
+ tenantId: turnContext?.activity?.getAgenticTenantId?.()
48
45
  };
49
46
  }
50
47
  /**
@@ -62,22 +59,23 @@ class ScopeUtils {
62
59
  agentAUID: from.aadObjectId,
63
60
  agentDescription: from.role,
64
61
  tenantId: from.tenantId,
65
- agentId: from.agenticAppId
62
+ agentId: from.agenticAppId,
63
+ agentEmail: from.agenticUserId
66
64
  };
67
65
  }
68
66
  /**
69
- * Derive caller identity details (id, upn, name, tenant, client ip) from the activity from.
67
+ * Derive caller identity details (id, email, name, tenant) from the activity from.
70
68
  * @param turnContext Activity context
71
- * @returns Caller details when available; otherwise undefined.
69
+ * @returns User details when available; otherwise undefined.
72
70
  */
73
71
  static deriveCallerDetails(turnContext) {
74
72
  const from = turnContext?.activity?.from;
75
73
  if (!from)
76
74
  return undefined;
77
75
  return {
78
- callerId: from.aadObjectId,
79
- callerUpn: from.agenticUserId,
80
- callerName: from.name,
76
+ userId: from.aadObjectId,
77
+ userEmail: from.agenticUserId,
78
+ userName: from.name,
81
79
  tenantId: from.tenantId,
82
80
  };
83
81
  }
@@ -90,11 +88,11 @@ class ScopeUtils {
90
88
  return turnContext?.activity?.conversation?.id;
91
89
  }
92
90
  /**
93
- * Derive source metadata (channel name and description/link) from the TurnContext.
91
+ * Derive channel (name and description) from the TurnContext.
94
92
  * @param turnContext Activity context
95
93
  * @returns Object with optional name and description fields.
96
94
  */
97
- static deriveSourceMetadataObject(turnContext) {
95
+ static deriveChannelObject(turnContext) {
98
96
  return {
99
97
  name: turnContext?.activity?.channelId,
100
98
  description: turnContext?.activity?.channelIdSubChannel
@@ -102,95 +100,122 @@ class ScopeUtils {
102
100
  }
103
101
  /**
104
102
  * Create an `InferenceScope` using `details` and values derived from the provided `TurnContext`.
105
- * Derives `agentDetails`, `tenantDetails`, `conversationId`, and `sourceMetadata` (channel name/link) from context.
103
+ * Derives `conversationId` and `channel` (name/description) from context.
106
104
  * Also records input messages from the context if present.
107
105
  * @param details The inference call details (model, provider, tokens, etc.).
108
106
  * @param turnContext The current activity context to derive scope parameters from.
107
+ * @param authToken Auth token for resolving agent identity from token claims.
108
+ * @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
109
+ * @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
109
110
  * @returns A started `InferenceScope` enriched with context-derived parameters.
110
111
  */
111
- static populateInferenceScopeFromTurnContext(details, turnContext) {
112
- const agent = ScopeUtils.deriveAgentDetails(turnContext);
113
- const tenant = ScopeUtils.deriveTenantDetails(turnContext);
112
+ static populateInferenceScopeFromTurnContext(details, turnContext, authToken, startTime, endTime) {
113
+ const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
114
+ const caller = ScopeUtils.deriveCallerDetails(turnContext);
114
115
  const conversationId = ScopeUtils.deriveConversationId(turnContext);
115
- const sourceMetadata = ScopeUtils.deriveSourceMetadataObject(turnContext);
116
+ const channel = ScopeUtils.deriveChannelObject(turnContext);
116
117
  if (!agent) {
117
118
  throw new Error('populateInferenceScopeFromTurnContext: Missing agent details on TurnContext (recipient)');
118
119
  }
119
- if (!tenant) {
120
- throw new Error('populateInferenceScopeFromTurnContext: Missing tenant details on TurnContext (recipient)');
121
- }
122
- const scope = agents_a365_observability_1.InferenceScope.start(details, agent, tenant, conversationId, sourceMetadata);
120
+ const hasChannel = channel.name !== undefined || channel.description !== undefined;
121
+ const request = {
122
+ conversationId,
123
+ ...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
124
+ };
125
+ const spanDetails = (startTime || endTime)
126
+ ? { startTime, endTime }
127
+ : undefined;
128
+ const scope = agents_a365_observability_1.InferenceScope.start(request, details, agent, caller, spanDetails);
123
129
  this.setInputMessageTags(scope, turnContext);
124
130
  return scope;
125
131
  }
126
132
  /**
127
133
  * Create an `InvokeAgentScope` using `details` and values derived from the provided `TurnContext`.
128
- * Populates `conversationId` and `request.sourceMetadata` (channel name/link) in `details` from the `TurnContext`, overriding any existing values.
129
- * Derives `tenantDetails`, `callerAgentDetails` (from caller), and `callerDetails` (from user).
130
- * Also sets execution type and input messages from the context if present.
131
- * @param details The invoke-agent call details to be augmented and used for the scope.
134
+ * Builds a separate `Request` with `conversationId` and `channel` from context.
135
+ * Merges agent identity from context into `details` via `buildInvokeAgentDetailsCore`.
136
+ * Derives `callerAgentDetails` (from caller) and `userDetails` (human caller).
137
+ * Also records input messages from the context if present.
138
+ * @param details The agent details to be augmented with context-derived identity.
132
139
  * @param turnContext The current activity context to derive scope parameters from.
140
+ * @param authToken Auth token for resolving agent identity from token claims.
141
+ * @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
142
+ * @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
143
+ * @param spanKind Optional span kind override. Defaults to `SpanKind.CLIENT`.
133
144
  * @returns A started `InvokeAgentScope` enriched with context-derived parameters.
134
145
  */
135
- static populateInvokeAgentScopeFromTurnContext(details, turnContext) {
136
- const tenant = ScopeUtils.deriveTenantDetails(turnContext);
146
+ static populateInvokeAgentScopeFromTurnContext(details, scopeDetails, turnContext, authToken, startTime, endTime, spanKind) {
137
147
  const callerAgent = ScopeUtils.deriveCallerAgent(turnContext);
138
148
  const caller = ScopeUtils.deriveCallerDetails(turnContext);
139
- const invokeAgentDetails = ScopeUtils.buildInvokeAgentDetails(details, turnContext);
140
- if (!tenant) {
141
- throw new Error('populateInvokeAgentScopeFromTurnContext: Missing tenant details on TurnContext (recipient)');
142
- }
143
- const scope = agents_a365_observability_1.InvokeAgentScope.start(invokeAgentDetails, tenant, callerAgent, caller);
149
+ const conversationId = ScopeUtils.deriveConversationId(turnContext);
150
+ const channel = ScopeUtils.deriveChannelObject(turnContext);
151
+ // Merge agent identity from TurnContext into details.details
152
+ const agentDetails = ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
153
+ // Build the request with channel and conversationId from context
154
+ const hasChannel = channel.name !== undefined || channel.description !== undefined;
155
+ const request = {
156
+ conversationId,
157
+ ...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
158
+ };
159
+ // Build caller info with both human caller and caller agent details
160
+ const callerDetails = {
161
+ userDetails: caller,
162
+ callerAgentDetails: callerAgent,
163
+ };
164
+ const spanDetailsObj = (startTime || endTime || spanKind)
165
+ ? { startTime, endTime, spanKind }
166
+ : undefined;
167
+ const scope = agents_a365_observability_1.InvokeAgentScope.start(request, scopeDetails, agentDetails, callerDetails, spanDetailsObj);
144
168
  this.setInputMessageTags(scope, turnContext);
145
169
  return scope;
146
170
  }
147
171
  /**
148
- * Build InvokeAgentDetails by merging provided details with agent info, conversation id and source metadata from the TurnContext.
149
- * @param details Base invoke-agent details to augment
172
+ * Build agent details by merging provided details with agent info from the TurnContext.
173
+ * @param details Base agent details to augment
150
174
  * @param turnContext Activity context
151
- * @returns New InvokeAgentDetails suitable for starting an InvokeAgentScope.
175
+ * @param authToken Auth token for resolving agent identity from token claims.
176
+ * @returns Merged AgentDetails with context-derived identity.
152
177
  */
153
- static buildInvokeAgentDetails(details, turnContext) {
154
- const agent = ScopeUtils.deriveAgentDetails(turnContext);
155
- const srcMetaFromContext = ScopeUtils.deriveSourceMetadataObject(turnContext);
156
- const executionTypePair = (0, TurnContextUtils_1.getExecutionTypePair)(turnContext);
157
- const baseRequest = details.request ?? {};
158
- const baseSource = baseRequest.sourceMetadata ?? {};
159
- const mergedSourceMetadata = {
160
- ...baseSource,
161
- ...(srcMetaFromContext.name !== undefined ? { name: srcMetaFromContext.name } : {}),
162
- ...(srcMetaFromContext.description !== undefined ? { description: srcMetaFromContext.description } : {}),
163
- };
164
- return {
178
+ static buildInvokeAgentDetails(details, turnContext, authToken) {
179
+ return ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
180
+ }
181
+ static buildInvokeAgentDetailsCore(details, turnContext, authToken) {
182
+ const derivedAgentDetails = ScopeUtils.deriveAgentDetails(turnContext, authToken);
183
+ // Merge derived agent identity into details
184
+ const mergedAgent = {
165
185
  ...details,
166
- ...agent,
167
- conversationId: ScopeUtils.deriveConversationId(turnContext),
168
- request: {
169
- ...baseRequest,
170
- executionType: executionTypePair.length > 0 ? executionTypePair[0][1] : baseRequest.executionType,
171
- sourceMetadata: mergedSourceMetadata
172
- }
186
+ ...(derivedAgentDetails ?? {}),
173
187
  };
188
+ return mergedAgent;
174
189
  }
175
190
  /**
176
191
  * Create an `ExecuteToolScope` using `details` and values derived from the provided `TurnContext`.
177
- * Derives `agentDetails`, `tenantDetails`, `conversationId`, and `sourceMetadata` (channel name/link) from context.
192
+ * Derives `conversationId` and `channel` (name/link) from context.
178
193
  * @param details The tool call details (name, type, args, call id, etc.).
179
194
  * @param turnContext The current activity context to derive scope parameters from.
195
+ * @param authToken Auth token for resolving agent identity from token claims.
196
+ * @param startTime Optional explicit start time (ms epoch, Date, or HrTime). Useful when recording a
197
+ * tool call after execution has already completed.
198
+ * @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
199
+ * @param spanKind Optional span kind override. Defaults to `SpanKind.INTERNAL`.
180
200
  * @returns A started `ExecuteToolScope` enriched with context-derived parameters.
181
201
  */
182
- static populateExecuteToolScopeFromTurnContext(details, turnContext) {
183
- const agent = ScopeUtils.deriveAgentDetails(turnContext);
184
- const tenant = ScopeUtils.deriveTenantDetails(turnContext);
202
+ static populateExecuteToolScopeFromTurnContext(details, turnContext, authToken, startTime, endTime, spanKind) {
203
+ const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
204
+ const caller = ScopeUtils.deriveCallerDetails(turnContext);
185
205
  const conversationId = ScopeUtils.deriveConversationId(turnContext);
186
- const sourceMetadata = ScopeUtils.deriveSourceMetadataObject(turnContext);
206
+ const channel = ScopeUtils.deriveChannelObject(turnContext);
187
207
  if (!agent) {
188
208
  throw new Error('populateExecuteToolScopeFromTurnContext: Missing agent details on TurnContext (recipient)');
189
209
  }
190
- if (!tenant) {
191
- throw new Error('populateExecuteToolScopeFromTurnContext: Missing tenant details on TurnContext (recipient)');
192
- }
193
- const scope = agents_a365_observability_1.ExecuteToolScope.start(details, agent, tenant, conversationId, sourceMetadata);
210
+ const hasChannel = channel.name !== undefined || channel.description !== undefined;
211
+ const request = {
212
+ conversationId,
213
+ ...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
214
+ };
215
+ const spanDetailsObj = (startTime || endTime || spanKind)
216
+ ? { startTime, endTime, spanKind }
217
+ : undefined;
218
+ const scope = agents_a365_observability_1.ExecuteToolScope.start(request, details, agent, caller, spanDetailsObj);
194
219
  return scope;
195
220
  }
196
221
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"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"}
@@ -2,33 +2,41 @@ import { TurnContext } from '@microsoft/agents-hosting';
2
2
  /**
3
3
  * Extracts caller-related OpenTelemetry baggage pairs from the TurnContext.
4
4
  * @param turnContext The current TurnContext (activity context)
5
- * @returns Array of [key, value] pairs for caller identity and tenant
5
+ * @returns Array of [key, value] pairs for caller identity
6
6
  */
7
7
  export declare function getCallerBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
8
8
  /**
9
- * Extracts the execution type baggage key-value pair based on caller and recipient agentic status.
10
- * @param turnContext The current TurnContext (activity context)
11
- * @returns Array of [key, value] for execution type
9
+ * Resolves the agent instance ID and blueprint ID for embodied (agentic) agents only.
10
+ * For the non-embodied agent case, we cannot reliably determine whether the token contains an app ID,
11
+ * or whether the app ID present in the token claims actually corresponds to this agent. Therefore,
12
+ * we only set agentId and agentBlueprintId for embodied (agentic) agents.
13
+ * @param turnContext Activity context
14
+ * @param authToken Auth token for resolving blueprint ID from token claims.
15
+ * @returns Object with agentId and agentBlueprintId, both undefined for non-embodied agents.
12
16
  */
13
- export declare function getExecutionTypePair(turnContext: TurnContext): Array<[string, string]>;
17
+ export declare function resolveEmbodiedAgentIds(turnContext: TurnContext, authToken: string): {
18
+ agentId: string | undefined;
19
+ agentBlueprintId: string | undefined;
20
+ };
14
21
  /**
15
22
  * Extracts agent/recipient-related OpenTelemetry baggage pairs from the TurnContext.
16
23
  * @param turnContext The current TurnContext (activity context)
24
+ * @param authToken Optional auth token for resolving agent blueprint ID from token claims.
17
25
  * @returns Array of [key, value] pairs for agent identity and description
18
26
  */
19
- export declare function getTargetAgentBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
27
+ export declare function getTargetAgentBaggagePairs(turnContext: TurnContext, authToken?: string): Array<[string, string]>;
20
28
  /**
21
- * Extracts the tenant ID baggage key-value pair, attempting to retrieve from ChannelData if necessary.
29
+ * Extracts the tenant ID baggage key-value pair using the Activity's getAgenticTenantId() helper.
22
30
  * @param turnContext The current TurnContext (activity context)
23
31
  * @returns Array of [key, value] for tenant ID
24
32
  */
25
33
  export declare function getTenantIdPair(turnContext: TurnContext): Array<[string, string]>;
26
34
  /**
27
- * Extracts source metadata baggage pairs from the TurnContext.
35
+ * Extracts channel baggage pairs from the TurnContext.
28
36
  * @param turnContext The current TurnContext (activity context)
29
- * @returns Array of [key, value] pairs for channel name and link
37
+ * @returns Array of [key, value] pairs for channel name and subchannel description
30
38
  */
31
- export declare function getSourceMetadataBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
39
+ export declare function getChannelBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
32
40
  /**
33
41
  * Extracts conversation ID and item link baggage key-value pairs from the provided turn context.
34
42
  * @param turnContext The current TurnContext (activity context)
@@ -1 +1 @@
1
- {"version":3,"file":"TurnContextUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/TurnContextUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAcxD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAevF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBtF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB5F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAoBjF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAS/F;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWnG"}
1
+ {"version":3,"file":"TurnContextUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/TurnContextUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAcxD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAQ1J;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgBhH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAGjF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASxF;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWnG"}