@microsoft/agents-a365-observability-hosting 0.1.0-preview.122 → 0.1.0-preview.124
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/cjs/middleware/OutputLoggingMiddleware.d.ts.map +1 -1
- package/dist/cjs/middleware/OutputLoggingMiddleware.js +12 -6
- package/dist/cjs/middleware/OutputLoggingMiddleware.js.map +1 -1
- package/dist/cjs/utils/ScopeUtils.d.ts +16 -15
- package/dist/cjs/utils/ScopeUtils.d.ts.map +1 -1
- package/dist/cjs/utils/ScopeUtils.js +62 -49
- package/dist/cjs/utils/ScopeUtils.js.map +1 -1
- package/dist/cjs/utils/TurnContextUtils.js +3 -3
- package/dist/cjs/utils/TurnContextUtils.js.map +1 -1
- package/dist/esm/middleware/OutputLoggingMiddleware.d.ts.map +1 -1
- package/dist/esm/middleware/OutputLoggingMiddleware.js +12 -6
- package/dist/esm/middleware/OutputLoggingMiddleware.js.map +1 -1
- package/dist/esm/utils/ScopeUtils.d.ts +16 -15
- package/dist/esm/utils/ScopeUtils.d.ts.map +1 -1
- package/dist/esm/utils/ScopeUtils.js +62 -49
- package/dist/esm/utils/ScopeUtils.js.map +1 -1
- package/dist/esm/utils/TurnContextUtils.js +3 -3
- package/dist/esm/utils/TurnContextUtils.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputLoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAyB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"OutputLoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAyB,MAAM,2BAA2B,CAAC;AAc3F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,UAAU;IAElD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB5E;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA6C3B"}
|
|
@@ -28,15 +28,18 @@ class OutputLoggingMiddleware {
|
|
|
28
28
|
async onTurn(context, next) {
|
|
29
29
|
const authToken = this.resolveAuthToken(context);
|
|
30
30
|
const agentDetails = ScopeUtils_1.ScopeUtils.deriveAgentDetails(context, authToken);
|
|
31
|
-
|
|
32
|
-
if (!agentDetails || !tenantDetails) {
|
|
31
|
+
if (!agentDetails || !agentDetails.tenantId) {
|
|
33
32
|
await next();
|
|
34
33
|
return;
|
|
35
34
|
}
|
|
36
|
-
const
|
|
35
|
+
const userDetails = ScopeUtils_1.ScopeUtils.deriveCallerDetails(context);
|
|
37
36
|
const conversationId = ScopeUtils_1.ScopeUtils.deriveConversationId(context);
|
|
38
37
|
const channel = ScopeUtils_1.ScopeUtils.deriveChannelObject(context);
|
|
39
|
-
|
|
38
|
+
const request = {
|
|
39
|
+
conversationId,
|
|
40
|
+
channel,
|
|
41
|
+
};
|
|
42
|
+
context.onSendActivities(this._createSendHandler(context, agentDetails, userDetails, request));
|
|
40
43
|
await next();
|
|
41
44
|
}
|
|
42
45
|
/**
|
|
@@ -59,7 +62,7 @@ class OutputLoggingMiddleware {
|
|
|
59
62
|
* Creates a send handler that wraps outgoing messages in OutputScope spans.
|
|
60
63
|
* Reads parent span ref lazily so the agent handler can set it during `next()`.
|
|
61
64
|
*/
|
|
62
|
-
_createSendHandler(turnContext, agentDetails,
|
|
65
|
+
_createSendHandler(turnContext, agentDetails, userDetails, request) {
|
|
63
66
|
return async (_ctx, activities, sendNext) => {
|
|
64
67
|
const messages = activities
|
|
65
68
|
.filter((a) => a.type === 'message' && a.text)
|
|
@@ -71,7 +74,10 @@ class OutputLoggingMiddleware {
|
|
|
71
74
|
if (!parentSpanRef) {
|
|
72
75
|
agents_a365_observability_1.logger.warn(`[OutputLoggingMiddleware] No parent span ref in turnState under '${exports.A365_PARENT_SPAN_KEY}'. OutputScope will not be linked to a parent.`);
|
|
73
76
|
}
|
|
74
|
-
const
|
|
77
|
+
const spanDetails = parentSpanRef
|
|
78
|
+
? { parentContext: parentSpanRef }
|
|
79
|
+
: undefined;
|
|
80
|
+
const outputScope = agents_a365_observability_1.OutputScope.start(request ?? {}, { messages }, agentDetails, userDetails, spanDetails);
|
|
75
81
|
try {
|
|
76
82
|
return await sendNext();
|
|
77
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputLoggingMiddleware.js","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAGlC,
|
|
1
|
+
{"version":3,"file":"OutputLoggingMiddleware.js","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TurnContext } from '@microsoft/agents-hosting';
|
|
2
2
|
import { SpanKind, TimeInput } from '@opentelemetry/api';
|
|
3
|
-
import { InvokeAgentScope, InferenceScope, ExecuteToolScope, AgentDetails,
|
|
3
|
+
import { InvokeAgentScope, InferenceScope, ExecuteToolScope, AgentDetails, UserDetails, InferenceDetails, ToolCallDetails, InvokeAgentScopeDetails, TenantDetails } from '@microsoft/agents-a365-observability';
|
|
4
4
|
/**
|
|
5
5
|
* Unified utilities to populate scope tags from a TurnContext.
|
|
6
6
|
* Provides common tag population and scope-specific helpers.
|
|
@@ -29,11 +29,11 @@ export declare class ScopeUtils {
|
|
|
29
29
|
*/
|
|
30
30
|
static deriveCallerAgent(turnContext: TurnContext): AgentDetails | undefined;
|
|
31
31
|
/**
|
|
32
|
-
* Derive caller identity details (id,
|
|
32
|
+
* Derive caller identity details (id, email, name, tenant) from the activity from.
|
|
33
33
|
* @param turnContext Activity context
|
|
34
|
-
* @returns
|
|
34
|
+
* @returns User details when available; otherwise undefined.
|
|
35
35
|
*/
|
|
36
|
-
static deriveCallerDetails(turnContext: TurnContext):
|
|
36
|
+
static deriveCallerDetails(turnContext: TurnContext): UserDetails | undefined;
|
|
37
37
|
/**
|
|
38
38
|
* Derive conversation id from the TurnContext.
|
|
39
39
|
* @param turnContext Activity context
|
|
@@ -51,7 +51,7 @@ export declare class ScopeUtils {
|
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
53
|
* Create an `InferenceScope` using `details` and values derived from the provided `TurnContext`.
|
|
54
|
-
* Derives `
|
|
54
|
+
* Derives `conversationId` and `channel` (name/description) from context.
|
|
55
55
|
* Also records input messages from the context if present.
|
|
56
56
|
* @param details The inference call details (model, provider, tokens, etc.).
|
|
57
57
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
@@ -63,10 +63,11 @@ export declare class ScopeUtils {
|
|
|
63
63
|
static populateInferenceScopeFromTurnContext(details: InferenceDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput): InferenceScope;
|
|
64
64
|
/**
|
|
65
65
|
* Create an `InvokeAgentScope` using `details` and values derived from the provided `TurnContext`.
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
66
|
+
* Builds a separate `Request` with `conversationId` and `channel` from context.
|
|
67
|
+
* Merges agent identity from context into `details` via `buildInvokeAgentDetailsCore`.
|
|
68
|
+
* Derives `callerAgentDetails` (from caller) and `userDetails` (human caller).
|
|
69
|
+
* Also records input messages from the context if present.
|
|
70
|
+
* @param details The agent details to be augmented with context-derived identity.
|
|
70
71
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
71
72
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
72
73
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
@@ -74,19 +75,19 @@ export declare class ScopeUtils {
|
|
|
74
75
|
* @param spanKind Optional span kind override. Defaults to `SpanKind.CLIENT`.
|
|
75
76
|
* @returns A started `InvokeAgentScope` enriched with context-derived parameters.
|
|
76
77
|
*/
|
|
77
|
-
static populateInvokeAgentScopeFromTurnContext(details:
|
|
78
|
+
static populateInvokeAgentScopeFromTurnContext(details: AgentDetails, scopeDetails: InvokeAgentScopeDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput, spanKind?: SpanKind): InvokeAgentScope;
|
|
78
79
|
/**
|
|
79
|
-
* Build
|
|
80
|
-
* @param details Base
|
|
80
|
+
* Build agent details by merging provided details with agent info from the TurnContext.
|
|
81
|
+
* @param details Base agent details to augment
|
|
81
82
|
* @param turnContext Activity context
|
|
82
83
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
83
|
-
* @returns
|
|
84
|
+
* @returns Merged AgentDetails with context-derived identity.
|
|
84
85
|
*/
|
|
85
|
-
static buildInvokeAgentDetails(details:
|
|
86
|
+
static buildInvokeAgentDetails(details: AgentDetails, turnContext: TurnContext, authToken: string): AgentDetails;
|
|
86
87
|
private static buildInvokeAgentDetailsCore;
|
|
87
88
|
/**
|
|
88
89
|
* Create an `ExecuteToolScope` using `details` and values derived from the provided `TurnContext`.
|
|
89
|
-
* Derives `
|
|
90
|
+
* Derives `conversationId` and `channel` (name/link) from context.
|
|
90
91
|
* @param details The tool call details (name, type, args, call id, etc.).
|
|
91
92
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
92
93
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
@@ -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,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,
|
|
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,EACvB,aAAa,EACd,MAAM,sCAAsC,CAAC;AAG9C;;;GAGG;AACH,qBAAa,UAAU;IAGrB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAalC;;;;OAIG;WACW,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS;IAKtF;;;;;;;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"}
|
|
@@ -48,7 +48,7 @@ class ScopeUtils {
|
|
|
48
48
|
agentName: recipient.name,
|
|
49
49
|
agentAUID: recipient.aadObjectId,
|
|
50
50
|
agentBlueprintId,
|
|
51
|
-
|
|
51
|
+
agentEmail: turnContext?.activity?.getAgenticUser?.(),
|
|
52
52
|
agentDescription: recipient.role,
|
|
53
53
|
tenantId: turnContext?.activity?.getAgenticTenantId?.()
|
|
54
54
|
};
|
|
@@ -69,22 +69,22 @@ class ScopeUtils {
|
|
|
69
69
|
agentDescription: from.role,
|
|
70
70
|
tenantId: from.tenantId,
|
|
71
71
|
agentId: from.agenticAppId,
|
|
72
|
-
|
|
72
|
+
agentEmail: from.agenticUserId
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
|
-
* Derive caller identity details (id,
|
|
76
|
+
* Derive caller identity details (id, email, name, tenant) from the activity from.
|
|
77
77
|
* @param turnContext Activity context
|
|
78
|
-
* @returns
|
|
78
|
+
* @returns User details when available; otherwise undefined.
|
|
79
79
|
*/
|
|
80
80
|
static deriveCallerDetails(turnContext) {
|
|
81
81
|
const from = turnContext?.activity?.from;
|
|
82
82
|
if (!from)
|
|
83
83
|
return undefined;
|
|
84
84
|
return {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
userId: from.aadObjectId,
|
|
86
|
+
userEmail: from.agenticUserId,
|
|
87
|
+
userName: from.name,
|
|
88
88
|
tenantId: from.tenantId,
|
|
89
89
|
};
|
|
90
90
|
}
|
|
@@ -109,7 +109,7 @@ class ScopeUtils {
|
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
111
|
* Create an `InferenceScope` using `details` and values derived from the provided `TurnContext`.
|
|
112
|
-
* Derives `
|
|
112
|
+
* Derives `conversationId` and `channel` (name/description) from context.
|
|
113
113
|
* Also records input messages from the context if present.
|
|
114
114
|
* @param details The inference call details (model, provider, tokens, etc.).
|
|
115
115
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
@@ -120,25 +120,31 @@ class ScopeUtils {
|
|
|
120
120
|
*/
|
|
121
121
|
static populateInferenceScopeFromTurnContext(details, turnContext, authToken, startTime, endTime) {
|
|
122
122
|
const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
123
|
-
const
|
|
123
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
124
124
|
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
125
125
|
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
126
126
|
if (!agent) {
|
|
127
127
|
throw new Error('populateInferenceScopeFromTurnContext: Missing agent details on TurnContext (recipient)');
|
|
128
128
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
130
|
+
const request = {
|
|
131
|
+
conversationId,
|
|
132
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
133
|
+
};
|
|
134
|
+
const spanDetails = (startTime || endTime)
|
|
135
|
+
? { startTime, endTime }
|
|
136
|
+
: undefined;
|
|
137
|
+
const scope = agents_a365_observability_1.InferenceScope.start(request, details, agent, caller, spanDetails);
|
|
133
138
|
this.setInputMessageTags(scope, turnContext);
|
|
134
139
|
return scope;
|
|
135
140
|
}
|
|
136
141
|
/**
|
|
137
142
|
* Create an `InvokeAgentScope` using `details` and values derived from the provided `TurnContext`.
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
143
|
+
* Builds a separate `Request` with `conversationId` and `channel` from context.
|
|
144
|
+
* Merges agent identity from context into `details` via `buildInvokeAgentDetailsCore`.
|
|
145
|
+
* Derives `callerAgentDetails` (from caller) and `userDetails` (human caller).
|
|
146
|
+
* Also records input messages from the context if present.
|
|
147
|
+
* @param details The agent details to be augmented with context-derived identity.
|
|
142
148
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
143
149
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
144
150
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
@@ -146,51 +152,53 @@ class ScopeUtils {
|
|
|
146
152
|
* @param spanKind Optional span kind override. Defaults to `SpanKind.CLIENT`.
|
|
147
153
|
* @returns A started `InvokeAgentScope` enriched with context-derived parameters.
|
|
148
154
|
*/
|
|
149
|
-
static populateInvokeAgentScopeFromTurnContext(details, turnContext, authToken, startTime, endTime, spanKind) {
|
|
150
|
-
const tenant = ScopeUtils.deriveTenantDetails(turnContext);
|
|
155
|
+
static populateInvokeAgentScopeFromTurnContext(details, scopeDetails, turnContext, authToken, startTime, endTime, spanKind) {
|
|
151
156
|
const callerAgent = ScopeUtils.deriveCallerAgent(turnContext);
|
|
152
157
|
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
+
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
159
|
+
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
160
|
+
// Merge agent identity from TurnContext into details.details
|
|
161
|
+
const agentDetails = ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
|
|
162
|
+
// Build the request with channel and conversationId from context
|
|
163
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
164
|
+
const request = {
|
|
165
|
+
conversationId,
|
|
166
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
167
|
+
};
|
|
168
|
+
// Build caller info with both human caller and caller agent details
|
|
169
|
+
const callerDetails = {
|
|
170
|
+
userDetails: caller,
|
|
171
|
+
callerAgentDetails: callerAgent,
|
|
172
|
+
};
|
|
173
|
+
const spanDetailsObj = (startTime || endTime || spanKind)
|
|
174
|
+
? { startTime, endTime, spanKind }
|
|
175
|
+
: undefined;
|
|
176
|
+
const scope = agents_a365_observability_1.InvokeAgentScope.start(request, scopeDetails, agentDetails, callerDetails, spanDetailsObj);
|
|
158
177
|
this.setInputMessageTags(scope, turnContext);
|
|
159
178
|
return scope;
|
|
160
179
|
}
|
|
161
180
|
/**
|
|
162
|
-
* Build
|
|
163
|
-
* @param details Base
|
|
181
|
+
* Build agent details by merging provided details with agent info from the TurnContext.
|
|
182
|
+
* @param details Base agent details to augment
|
|
164
183
|
* @param turnContext Activity context
|
|
165
184
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
166
|
-
* @returns
|
|
185
|
+
* @returns Merged AgentDetails with context-derived identity.
|
|
167
186
|
*/
|
|
168
187
|
static buildInvokeAgentDetails(details, turnContext, authToken) {
|
|
169
188
|
return ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
|
|
170
189
|
}
|
|
171
190
|
static buildInvokeAgentDetailsCore(details, turnContext, authToken) {
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
const
|
|
175
|
-
const baseChannel = baseRequest.channel ?? {};
|
|
176
|
-
const mergedChannel = {
|
|
177
|
-
...baseChannel,
|
|
178
|
-
...(channelFromContext.name !== undefined ? { name: channelFromContext.name } : {}),
|
|
179
|
-
...(channelFromContext.description !== undefined ? { description: channelFromContext.description } : {}),
|
|
180
|
-
};
|
|
181
|
-
return {
|
|
191
|
+
const derivedAgentDetails = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
192
|
+
// Merge derived agent identity into details
|
|
193
|
+
const mergedAgent = {
|
|
182
194
|
...details,
|
|
183
|
-
...
|
|
184
|
-
conversationId: ScopeUtils.deriveConversationId(turnContext),
|
|
185
|
-
request: {
|
|
186
|
-
...baseRequest,
|
|
187
|
-
channel: mergedChannel
|
|
188
|
-
}
|
|
195
|
+
...(derivedAgentDetails ?? {}),
|
|
189
196
|
};
|
|
197
|
+
return mergedAgent;
|
|
190
198
|
}
|
|
191
199
|
/**
|
|
192
200
|
* Create an `ExecuteToolScope` using `details` and values derived from the provided `TurnContext`.
|
|
193
|
-
* Derives `
|
|
201
|
+
* Derives `conversationId` and `channel` (name/link) from context.
|
|
194
202
|
* @param details The tool call details (name, type, args, call id, etc.).
|
|
195
203
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
196
204
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
@@ -202,16 +210,21 @@ class ScopeUtils {
|
|
|
202
210
|
*/
|
|
203
211
|
static populateExecuteToolScopeFromTurnContext(details, turnContext, authToken, startTime, endTime, spanKind) {
|
|
204
212
|
const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
205
|
-
const
|
|
213
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
206
214
|
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
207
215
|
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
208
216
|
if (!agent) {
|
|
209
217
|
throw new Error('populateExecuteToolScopeFromTurnContext: Missing agent details on TurnContext (recipient)');
|
|
210
218
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
219
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
220
|
+
const request = {
|
|
221
|
+
conversationId,
|
|
222
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
223
|
+
};
|
|
224
|
+
const spanDetailsObj = (startTime || endTime || spanKind)
|
|
225
|
+
? { startTime, endTime, spanKind }
|
|
226
|
+
: undefined;
|
|
227
|
+
const scope = agents_a365_observability_1.ExecuteToolScope.start(request, details, agent, caller, spanDetailsObj);
|
|
215
228
|
return scope;
|
|
216
229
|
}
|
|
217
230
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;;;AAIjF,
|
|
1
|
+
{"version":3,"file":"ScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,9 @@ function getCallerBaggagePairs(turnContext) {
|
|
|
34
34
|
const from = turnContext.activity.from;
|
|
35
35
|
const upn = from.agenticUserId;
|
|
36
36
|
const pairs = [
|
|
37
|
-
[agents_a365_observability_1.OpenTelemetryConstants.
|
|
38
|
-
[agents_a365_observability_1.OpenTelemetryConstants.
|
|
39
|
-
[agents_a365_observability_1.OpenTelemetryConstants.
|
|
37
|
+
[agents_a365_observability_1.OpenTelemetryConstants.USER_ID_KEY, from.aadObjectId],
|
|
38
|
+
[agents_a365_observability_1.OpenTelemetryConstants.USER_NAME_KEY, from.name],
|
|
39
|
+
[agents_a365_observability_1.OpenTelemetryConstants.USER_EMAIL_KEY, upn],
|
|
40
40
|
[agents_a365_observability_1.OpenTelemetryConstants.GEN_AI_CALLER_AGENT_APPLICATION_ID_KEY, from.agenticAppBlueprintId]
|
|
41
41
|
];
|
|
42
42
|
return normalizePairs(pairs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnContextUtils.js","sourceRoot":"","sources":["../../../src/utils/TurnContextUtils.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;;AAsBjF,sDAcC;AAOD,oDAkBC;AAWD,0DAQC;AAQD,gEAgBC;AAOD,0CAGC;AAOD,wDASC;AAOD,8EAWC;AAjJD,oFAA6F;AAC7F,gEAAqD;AACrD,wEAA2E;AAE3E;;GAEG;AAEH,SAAS,cAAc,CAAC,KAA0C;IAChE,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,WAAwB;IAC5D,IAAI,CAAC,WAAW,IAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;IAC/B,MAAM,KAAK,GAAwC;QACjD,CAAC,kDAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"TurnContextUtils.js","sourceRoot":"","sources":["../../../src/utils/TurnContextUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputLoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAyB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"OutputLoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAyB,MAAM,2BAA2B,CAAC;AAc3F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,UAAU;IAElD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB5E;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA6C3B"}
|
|
@@ -25,15 +25,18 @@ export class OutputLoggingMiddleware {
|
|
|
25
25
|
async onTurn(context, next) {
|
|
26
26
|
const authToken = this.resolveAuthToken(context);
|
|
27
27
|
const agentDetails = ScopeUtils.deriveAgentDetails(context, authToken);
|
|
28
|
-
|
|
29
|
-
if (!agentDetails || !tenantDetails) {
|
|
28
|
+
if (!agentDetails || !agentDetails.tenantId) {
|
|
30
29
|
await next();
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
33
|
-
const
|
|
32
|
+
const userDetails = ScopeUtils.deriveCallerDetails(context);
|
|
34
33
|
const conversationId = ScopeUtils.deriveConversationId(context);
|
|
35
34
|
const channel = ScopeUtils.deriveChannelObject(context);
|
|
36
|
-
|
|
35
|
+
const request = {
|
|
36
|
+
conversationId,
|
|
37
|
+
channel,
|
|
38
|
+
};
|
|
39
|
+
context.onSendActivities(this._createSendHandler(context, agentDetails, userDetails, request));
|
|
37
40
|
await next();
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
@@ -56,7 +59,7 @@ export class OutputLoggingMiddleware {
|
|
|
56
59
|
* Creates a send handler that wraps outgoing messages in OutputScope spans.
|
|
57
60
|
* Reads parent span ref lazily so the agent handler can set it during `next()`.
|
|
58
61
|
*/
|
|
59
|
-
_createSendHandler(turnContext, agentDetails,
|
|
62
|
+
_createSendHandler(turnContext, agentDetails, userDetails, request) {
|
|
60
63
|
return async (_ctx, activities, sendNext) => {
|
|
61
64
|
const messages = activities
|
|
62
65
|
.filter((a) => a.type === 'message' && a.text)
|
|
@@ -68,7 +71,10 @@ export class OutputLoggingMiddleware {
|
|
|
68
71
|
if (!parentSpanRef) {
|
|
69
72
|
logger.warn(`[OutputLoggingMiddleware] No parent span ref in turnState under '${A365_PARENT_SPAN_KEY}'. OutputScope will not be linked to a parent.`);
|
|
70
73
|
}
|
|
71
|
-
const
|
|
74
|
+
const spanDetails = parentSpanRef
|
|
75
|
+
? { parentContext: parentSpanRef }
|
|
76
|
+
: undefined;
|
|
77
|
+
const outputScope = OutputScope.start(request ?? {}, { messages }, agentDetails, userDetails, spanDetails);
|
|
72
78
|
try {
|
|
73
79
|
return await sendNext();
|
|
74
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputLoggingMiddleware.js","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"OutputLoggingMiddleware.js","sourceRoot":"","sources":["../../../src/middleware/OutputLoggingMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TurnContext } from '@microsoft/agents-hosting';
|
|
2
2
|
import { SpanKind, TimeInput } from '@opentelemetry/api';
|
|
3
|
-
import { InvokeAgentScope, InferenceScope, ExecuteToolScope, AgentDetails,
|
|
3
|
+
import { InvokeAgentScope, InferenceScope, ExecuteToolScope, AgentDetails, UserDetails, InferenceDetails, ToolCallDetails, InvokeAgentScopeDetails, TenantDetails } from '@microsoft/agents-a365-observability';
|
|
4
4
|
/**
|
|
5
5
|
* Unified utilities to populate scope tags from a TurnContext.
|
|
6
6
|
* Provides common tag population and scope-specific helpers.
|
|
@@ -29,11 +29,11 @@ export declare class ScopeUtils {
|
|
|
29
29
|
*/
|
|
30
30
|
static deriveCallerAgent(turnContext: TurnContext): AgentDetails | undefined;
|
|
31
31
|
/**
|
|
32
|
-
* Derive caller identity details (id,
|
|
32
|
+
* Derive caller identity details (id, email, name, tenant) from the activity from.
|
|
33
33
|
* @param turnContext Activity context
|
|
34
|
-
* @returns
|
|
34
|
+
* @returns User details when available; otherwise undefined.
|
|
35
35
|
*/
|
|
36
|
-
static deriveCallerDetails(turnContext: TurnContext):
|
|
36
|
+
static deriveCallerDetails(turnContext: TurnContext): UserDetails | undefined;
|
|
37
37
|
/**
|
|
38
38
|
* Derive conversation id from the TurnContext.
|
|
39
39
|
* @param turnContext Activity context
|
|
@@ -51,7 +51,7 @@ export declare class ScopeUtils {
|
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
53
|
* Create an `InferenceScope` using `details` and values derived from the provided `TurnContext`.
|
|
54
|
-
* Derives `
|
|
54
|
+
* Derives `conversationId` and `channel` (name/description) from context.
|
|
55
55
|
* Also records input messages from the context if present.
|
|
56
56
|
* @param details The inference call details (model, provider, tokens, etc.).
|
|
57
57
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
@@ -63,10 +63,11 @@ export declare class ScopeUtils {
|
|
|
63
63
|
static populateInferenceScopeFromTurnContext(details: InferenceDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput): InferenceScope;
|
|
64
64
|
/**
|
|
65
65
|
* Create an `InvokeAgentScope` using `details` and values derived from the provided `TurnContext`.
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
66
|
+
* Builds a separate `Request` with `conversationId` and `channel` from context.
|
|
67
|
+
* Merges agent identity from context into `details` via `buildInvokeAgentDetailsCore`.
|
|
68
|
+
* Derives `callerAgentDetails` (from caller) and `userDetails` (human caller).
|
|
69
|
+
* Also records input messages from the context if present.
|
|
70
|
+
* @param details The agent details to be augmented with context-derived identity.
|
|
70
71
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
71
72
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
72
73
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
@@ -74,19 +75,19 @@ export declare class ScopeUtils {
|
|
|
74
75
|
* @param spanKind Optional span kind override. Defaults to `SpanKind.CLIENT`.
|
|
75
76
|
* @returns A started `InvokeAgentScope` enriched with context-derived parameters.
|
|
76
77
|
*/
|
|
77
|
-
static populateInvokeAgentScopeFromTurnContext(details:
|
|
78
|
+
static populateInvokeAgentScopeFromTurnContext(details: AgentDetails, scopeDetails: InvokeAgentScopeDetails, turnContext: TurnContext, authToken: string, startTime?: TimeInput, endTime?: TimeInput, spanKind?: SpanKind): InvokeAgentScope;
|
|
78
79
|
/**
|
|
79
|
-
* Build
|
|
80
|
-
* @param details Base
|
|
80
|
+
* Build agent details by merging provided details with agent info from the TurnContext.
|
|
81
|
+
* @param details Base agent details to augment
|
|
81
82
|
* @param turnContext Activity context
|
|
82
83
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
83
|
-
* @returns
|
|
84
|
+
* @returns Merged AgentDetails with context-derived identity.
|
|
84
85
|
*/
|
|
85
|
-
static buildInvokeAgentDetails(details:
|
|
86
|
+
static buildInvokeAgentDetails(details: AgentDetails, turnContext: TurnContext, authToken: string): AgentDetails;
|
|
86
87
|
private static buildInvokeAgentDetailsCore;
|
|
87
88
|
/**
|
|
88
89
|
* Create an `ExecuteToolScope` using `details` and values derived from the provided `TurnContext`.
|
|
89
|
-
* Derives `
|
|
90
|
+
* Derives `conversationId` and `channel` (name/link) from context.
|
|
90
91
|
* @param details The tool call details (name, type, args, call id, etc.).
|
|
91
92
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
92
93
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
@@ -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,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,
|
|
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,EACvB,aAAa,EACd,MAAM,sCAAsC,CAAC;AAG9C;;;GAGG;AACH,qBAAa,UAAU;IAGrB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAalC;;;;OAIG;WACW,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS;IAKtF;;;;;;;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"}
|
|
@@ -45,7 +45,7 @@ export class ScopeUtils {
|
|
|
45
45
|
agentName: recipient.name,
|
|
46
46
|
agentAUID: recipient.aadObjectId,
|
|
47
47
|
agentBlueprintId,
|
|
48
|
-
|
|
48
|
+
agentEmail: turnContext?.activity?.getAgenticUser?.(),
|
|
49
49
|
agentDescription: recipient.role,
|
|
50
50
|
tenantId: turnContext?.activity?.getAgenticTenantId?.()
|
|
51
51
|
};
|
|
@@ -66,22 +66,22 @@ export class ScopeUtils {
|
|
|
66
66
|
agentDescription: from.role,
|
|
67
67
|
tenantId: from.tenantId,
|
|
68
68
|
agentId: from.agenticAppId,
|
|
69
|
-
|
|
69
|
+
agentEmail: from.agenticUserId
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
|
-
* Derive caller identity details (id,
|
|
73
|
+
* Derive caller identity details (id, email, name, tenant) from the activity from.
|
|
74
74
|
* @param turnContext Activity context
|
|
75
|
-
* @returns
|
|
75
|
+
* @returns User details when available; otherwise undefined.
|
|
76
76
|
*/
|
|
77
77
|
static deriveCallerDetails(turnContext) {
|
|
78
78
|
const from = turnContext?.activity?.from;
|
|
79
79
|
if (!from)
|
|
80
80
|
return undefined;
|
|
81
81
|
return {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
userId: from.aadObjectId,
|
|
83
|
+
userEmail: from.agenticUserId,
|
|
84
|
+
userName: from.name,
|
|
85
85
|
tenantId: from.tenantId,
|
|
86
86
|
};
|
|
87
87
|
}
|
|
@@ -106,7 +106,7 @@ export class ScopeUtils {
|
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
108
|
* Create an `InferenceScope` using `details` and values derived from the provided `TurnContext`.
|
|
109
|
-
* Derives `
|
|
109
|
+
* Derives `conversationId` and `channel` (name/description) from context.
|
|
110
110
|
* Also records input messages from the context if present.
|
|
111
111
|
* @param details The inference call details (model, provider, tokens, etc.).
|
|
112
112
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
@@ -117,25 +117,31 @@ export class ScopeUtils {
|
|
|
117
117
|
*/
|
|
118
118
|
static populateInferenceScopeFromTurnContext(details, turnContext, authToken, startTime, endTime) {
|
|
119
119
|
const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
120
|
-
const
|
|
120
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
121
121
|
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
122
122
|
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
123
123
|
if (!agent) {
|
|
124
124
|
throw new Error('populateInferenceScopeFromTurnContext: Missing agent details on TurnContext (recipient)');
|
|
125
125
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
127
|
+
const request = {
|
|
128
|
+
conversationId,
|
|
129
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
130
|
+
};
|
|
131
|
+
const spanDetails = (startTime || endTime)
|
|
132
|
+
? { startTime, endTime }
|
|
133
|
+
: undefined;
|
|
134
|
+
const scope = InferenceScope.start(request, details, agent, caller, spanDetails);
|
|
130
135
|
this.setInputMessageTags(scope, turnContext);
|
|
131
136
|
return scope;
|
|
132
137
|
}
|
|
133
138
|
/**
|
|
134
139
|
* Create an `InvokeAgentScope` using `details` and values derived from the provided `TurnContext`.
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
140
|
+
* Builds a separate `Request` with `conversationId` and `channel` from context.
|
|
141
|
+
* Merges agent identity from context into `details` via `buildInvokeAgentDetailsCore`.
|
|
142
|
+
* Derives `callerAgentDetails` (from caller) and `userDetails` (human caller).
|
|
143
|
+
* Also records input messages from the context if present.
|
|
144
|
+
* @param details The agent details to be augmented with context-derived identity.
|
|
139
145
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
140
146
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
141
147
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
@@ -143,51 +149,53 @@ export class ScopeUtils {
|
|
|
143
149
|
* @param spanKind Optional span kind override. Defaults to `SpanKind.CLIENT`.
|
|
144
150
|
* @returns A started `InvokeAgentScope` enriched with context-derived parameters.
|
|
145
151
|
*/
|
|
146
|
-
static populateInvokeAgentScopeFromTurnContext(details, turnContext, authToken, startTime, endTime, spanKind) {
|
|
147
|
-
const tenant = ScopeUtils.deriveTenantDetails(turnContext);
|
|
152
|
+
static populateInvokeAgentScopeFromTurnContext(details, scopeDetails, turnContext, authToken, startTime, endTime, spanKind) {
|
|
148
153
|
const callerAgent = ScopeUtils.deriveCallerAgent(turnContext);
|
|
149
154
|
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
+
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
156
|
+
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
157
|
+
// Merge agent identity from TurnContext into details.details
|
|
158
|
+
const agentDetails = ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
|
|
159
|
+
// Build the request with channel and conversationId from context
|
|
160
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
161
|
+
const request = {
|
|
162
|
+
conversationId,
|
|
163
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
164
|
+
};
|
|
165
|
+
// Build caller info with both human caller and caller agent details
|
|
166
|
+
const callerDetails = {
|
|
167
|
+
userDetails: caller,
|
|
168
|
+
callerAgentDetails: callerAgent,
|
|
169
|
+
};
|
|
170
|
+
const spanDetailsObj = (startTime || endTime || spanKind)
|
|
171
|
+
? { startTime, endTime, spanKind }
|
|
172
|
+
: undefined;
|
|
173
|
+
const scope = InvokeAgentScope.start(request, scopeDetails, agentDetails, callerDetails, spanDetailsObj);
|
|
155
174
|
this.setInputMessageTags(scope, turnContext);
|
|
156
175
|
return scope;
|
|
157
176
|
}
|
|
158
177
|
/**
|
|
159
|
-
* Build
|
|
160
|
-
* @param details Base
|
|
178
|
+
* Build agent details by merging provided details with agent info from the TurnContext.
|
|
179
|
+
* @param details Base agent details to augment
|
|
161
180
|
* @param turnContext Activity context
|
|
162
181
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
163
|
-
* @returns
|
|
182
|
+
* @returns Merged AgentDetails with context-derived identity.
|
|
164
183
|
*/
|
|
165
184
|
static buildInvokeAgentDetails(details, turnContext, authToken) {
|
|
166
185
|
return ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
|
|
167
186
|
}
|
|
168
187
|
static buildInvokeAgentDetailsCore(details, turnContext, authToken) {
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
const
|
|
172
|
-
const baseChannel = baseRequest.channel ?? {};
|
|
173
|
-
const mergedChannel = {
|
|
174
|
-
...baseChannel,
|
|
175
|
-
...(channelFromContext.name !== undefined ? { name: channelFromContext.name } : {}),
|
|
176
|
-
...(channelFromContext.description !== undefined ? { description: channelFromContext.description } : {}),
|
|
177
|
-
};
|
|
178
|
-
return {
|
|
188
|
+
const derivedAgentDetails = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
189
|
+
// Merge derived agent identity into details
|
|
190
|
+
const mergedAgent = {
|
|
179
191
|
...details,
|
|
180
|
-
...
|
|
181
|
-
conversationId: ScopeUtils.deriveConversationId(turnContext),
|
|
182
|
-
request: {
|
|
183
|
-
...baseRequest,
|
|
184
|
-
channel: mergedChannel
|
|
185
|
-
}
|
|
192
|
+
...(derivedAgentDetails ?? {}),
|
|
186
193
|
};
|
|
194
|
+
return mergedAgent;
|
|
187
195
|
}
|
|
188
196
|
/**
|
|
189
197
|
* Create an `ExecuteToolScope` using `details` and values derived from the provided `TurnContext`.
|
|
190
|
-
* Derives `
|
|
198
|
+
* Derives `conversationId` and `channel` (name/link) from context.
|
|
191
199
|
* @param details The tool call details (name, type, args, call id, etc.).
|
|
192
200
|
* @param turnContext The current activity context to derive scope parameters from.
|
|
193
201
|
* @param authToken Auth token for resolving agent identity from token claims.
|
|
@@ -199,16 +207,21 @@ export class ScopeUtils {
|
|
|
199
207
|
*/
|
|
200
208
|
static populateExecuteToolScopeFromTurnContext(details, turnContext, authToken, startTime, endTime, spanKind) {
|
|
201
209
|
const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
202
|
-
const
|
|
210
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
203
211
|
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
204
212
|
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
205
213
|
if (!agent) {
|
|
206
214
|
throw new Error('populateExecuteToolScopeFromTurnContext: Missing agent details on TurnContext (recipient)');
|
|
207
215
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
216
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
217
|
+
const request = {
|
|
218
|
+
conversationId,
|
|
219
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
220
|
+
};
|
|
221
|
+
const spanDetailsObj = (startTime || endTime || spanKind)
|
|
222
|
+
? { startTime, endTime, spanKind }
|
|
223
|
+
: undefined;
|
|
224
|
+
const scope = ExecuteToolScope.start(request, details, agent, caller, spanDetailsObj);
|
|
212
225
|
return scope;
|
|
213
226
|
}
|
|
214
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;AAIjF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/ScopeUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,9 @@ export function getCallerBaggagePairs(turnContext) {
|
|
|
25
25
|
const from = turnContext.activity.from;
|
|
26
26
|
const upn = from.agenticUserId;
|
|
27
27
|
const pairs = [
|
|
28
|
-
[OpenTelemetryConstants.
|
|
29
|
-
[OpenTelemetryConstants.
|
|
30
|
-
[OpenTelemetryConstants.
|
|
28
|
+
[OpenTelemetryConstants.USER_ID_KEY, from.aadObjectId],
|
|
29
|
+
[OpenTelemetryConstants.USER_NAME_KEY, from.name],
|
|
30
|
+
[OpenTelemetryConstants.USER_EMAIL_KEY, upn],
|
|
31
31
|
[OpenTelemetryConstants.GEN_AI_CALLER_AGENT_APPLICATION_ID_KEY, from.agenticAppBlueprintId]
|
|
32
32
|
];
|
|
33
33
|
return normalizePairs(pairs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnContextUtils.js","sourceRoot":"","sources":["../../../src/utils/TurnContextUtils.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;AAGjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAC,SAAS,EAAC,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;GAEG;AAEH,SAAS,cAAc,CAAC,KAA0C;IAChE,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAwB;IAC5D,IAAI,CAAC,WAAW,IAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;IAC/B,MAAM,KAAK,GAAwC;QACjD,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"TurnContextUtils.js","sourceRoot":"","sources":["../../../src/utils/TurnContextUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/agents-a365-observability-hosting",
|
|
3
|
-
"version": "0.1.0-preview.
|
|
3
|
+
"version": "0.1.0-preview.124",
|
|
4
4
|
"description": "Hosting & Observability utilities for Agent365 (Node.js): token caching, baggage builder, hosting registration.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent365",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"CHANGELOG.md"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@microsoft/agents-a365-observability": "0.1.0-preview.
|
|
33
|
-
"@microsoft/agents-a365-runtime": "0.1.0-preview.
|
|
32
|
+
"@microsoft/agents-a365-observability": "0.1.0-preview.124",
|
|
33
|
+
"@microsoft/agents-a365-runtime": "0.1.0-preview.124",
|
|
34
34
|
"@microsoft/agents-hosting": "^1.3.1",
|
|
35
35
|
"@opentelemetry/api": "^1.9.0"
|
|
36
36
|
},
|