@microsoft/opentelemetry 0.1.0-alpha.3 → 0.1.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -4
- package/dist/commonjs/a365/constants.d.ts +18 -1
- package/dist/commonjs/a365/constants.d.ts.map +1 -1
- package/dist/commonjs/a365/constants.js +22 -1
- package/dist/commonjs/a365/constants.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.js +2 -3
- package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/commonjs/a365/hosting/baggageBuilderUtils.d.ts +22 -0
- package/dist/commonjs/a365/hosting/baggageBuilderUtils.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/baggageBuilderUtils.js +47 -0
- package/dist/commonjs/a365/hosting/baggageBuilderUtils.js.map +1 -0
- package/dist/commonjs/a365/hosting/baggageMiddleware.d.ts +9 -0
- package/dist/commonjs/a365/hosting/baggageMiddleware.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/baggageMiddleware.js +38 -0
- package/dist/commonjs/a365/hosting/baggageMiddleware.js.map +1 -0
- package/dist/commonjs/a365/hosting/index.d.ts +9 -0
- package/dist/commonjs/a365/hosting/index.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/index.js +25 -0
- package/dist/commonjs/a365/hosting/index.js.map +1 -0
- package/dist/commonjs/a365/hosting/observabilityHostingManager.d.ts +30 -0
- package/dist/commonjs/a365/hosting/observabilityHostingManager.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/observabilityHostingManager.js +49 -0
- package/dist/commonjs/a365/hosting/observabilityHostingManager.js.map +1 -0
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.d.ts +24 -0
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js +82 -0
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js.map +1 -0
- package/dist/commonjs/a365/hosting/scopeUtils.d.ts +56 -0
- package/dist/commonjs/a365/hosting/scopeUtils.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/scopeUtils.js +161 -0
- package/dist/commonjs/a365/hosting/scopeUtils.js.map +1 -0
- package/dist/commonjs/a365/hosting/turnContextUtils.d.ts +32 -0
- package/dist/commonjs/a365/hosting/turnContextUtils.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/turnContextUtils.js +141 -0
- package/dist/commonjs/a365/hosting/turnContextUtils.js.map +1 -0
- package/dist/commonjs/a365/hosting/types.d.ts +52 -0
- package/dist/commonjs/a365/hosting/types.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/types.js +5 -0
- package/dist/commonjs/a365/hosting/types.js.map +1 -0
- package/dist/commonjs/a365/index.d.ts +2 -0
- package/dist/commonjs/a365/index.d.ts.map +1 -1
- package/dist/commonjs/a365/index.js +16 -1
- package/dist/commonjs/a365/index.js.map +1 -1
- package/dist/commonjs/a365/middleware/BaggageBuilder.js +0 -1
- package/dist/commonjs/a365/middleware/BaggageBuilder.js.map +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts +11 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js +14 -2
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/commonjs/azureMonitor/index.d.ts +14 -0
- package/dist/commonjs/azureMonitor/index.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/index.js +29 -0
- package/dist/commonjs/azureMonitor/index.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/handler.js +2 -2
- package/dist/commonjs/azureMonitor/metrics/handler.js.map +1 -1
- package/dist/commonjs/azureMonitor/traces/handler.d.ts +0 -3
- package/dist/commonjs/azureMonitor/traces/handler.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/traces/handler.js +0 -17
- package/dist/commonjs/azureMonitor/traces/handler.js.map +1 -1
- package/dist/commonjs/distro/distro.d.ts +3 -1
- package/dist/commonjs/distro/distro.d.ts.map +1 -1
- package/dist/commonjs/distro/distro.js +53 -9
- package/dist/commonjs/distro/distro.js.map +1 -1
- package/dist/commonjs/distro/instrumentations.d.ts +31 -0
- package/dist/commonjs/distro/instrumentations.d.ts.map +1 -0
- package/dist/commonjs/distro/instrumentations.js +131 -0
- package/dist/commonjs/distro/instrumentations.js.map +1 -0
- package/dist/commonjs/index.d.ts +3 -12
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +16 -20
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/types.d.ts +4 -2
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js.map +1 -1
- package/dist/esm/a365/constants.d.ts +18 -1
- package/dist/esm/a365/constants.d.ts.map +1 -1
- package/dist/esm/a365/constants.js +22 -1
- package/dist/esm/a365/constants.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.js +2 -3
- package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/esm/a365/hosting/baggageBuilderUtils.d.ts +22 -0
- package/dist/esm/a365/hosting/baggageBuilderUtils.d.ts.map +1 -0
- package/dist/esm/a365/hosting/baggageBuilderUtils.js +43 -0
- package/dist/esm/a365/hosting/baggageBuilderUtils.js.map +1 -0
- package/dist/esm/a365/hosting/baggageMiddleware.d.ts +9 -0
- package/dist/esm/a365/hosting/baggageMiddleware.d.ts.map +1 -0
- package/dist/esm/a365/hosting/baggageMiddleware.js +34 -0
- package/dist/esm/a365/hosting/baggageMiddleware.js.map +1 -0
- package/dist/esm/a365/hosting/index.d.ts +9 -0
- package/dist/esm/a365/hosting/index.d.ts.map +1 -0
- package/dist/esm/a365/hosting/index.js +9 -0
- package/dist/esm/a365/hosting/index.js.map +1 -0
- package/dist/esm/a365/hosting/observabilityHostingManager.d.ts +30 -0
- package/dist/esm/a365/hosting/observabilityHostingManager.d.ts.map +1 -0
- package/dist/esm/a365/hosting/observabilityHostingManager.js +45 -0
- package/dist/esm/a365/hosting/observabilityHostingManager.js.map +1 -0
- package/dist/esm/a365/hosting/outputLoggingMiddleware.d.ts +24 -0
- package/dist/esm/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -0
- package/dist/esm/a365/hosting/outputLoggingMiddleware.js +78 -0
- package/dist/esm/a365/hosting/outputLoggingMiddleware.js.map +1 -0
- package/dist/esm/a365/hosting/scopeUtils.d.ts +56 -0
- package/dist/esm/a365/hosting/scopeUtils.d.ts.map +1 -0
- package/dist/esm/a365/hosting/scopeUtils.js +157 -0
- package/dist/esm/a365/hosting/scopeUtils.js.map +1 -0
- package/dist/esm/a365/hosting/turnContextUtils.d.ts +32 -0
- package/dist/esm/a365/hosting/turnContextUtils.d.ts.map +1 -0
- package/dist/esm/a365/hosting/turnContextUtils.js +133 -0
- package/dist/esm/a365/hosting/turnContextUtils.js.map +1 -0
- package/dist/esm/a365/hosting/types.d.ts +52 -0
- package/dist/esm/a365/hosting/types.d.ts.map +1 -0
- package/dist/esm/a365/hosting/types.js +4 -0
- package/dist/esm/a365/hosting/types.js.map +1 -0
- package/dist/esm/a365/index.d.ts +2 -0
- package/dist/esm/a365/index.d.ts.map +1 -1
- package/dist/esm/a365/index.js +2 -0
- package/dist/esm/a365/index.js.map +1 -1
- package/dist/esm/a365/middleware/BaggageBuilder.js +0 -1
- package/dist/esm/a365/middleware/BaggageBuilder.js.map +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts +11 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.js +14 -2
- package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/esm/azureMonitor/index.d.ts +14 -0
- package/dist/esm/azureMonitor/index.d.ts.map +1 -1
- package/dist/esm/azureMonitor/index.js +27 -0
- package/dist/esm/azureMonitor/index.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/handler.js +2 -2
- package/dist/esm/azureMonitor/metrics/handler.js.map +1 -1
- package/dist/esm/azureMonitor/traces/handler.d.ts +0 -3
- package/dist/esm/azureMonitor/traces/handler.d.ts.map +1 -1
- package/dist/esm/azureMonitor/traces/handler.js +1 -18
- package/dist/esm/azureMonitor/traces/handler.js.map +1 -1
- package/dist/esm/distro/distro.d.ts +3 -1
- package/dist/esm/distro/distro.d.ts.map +1 -1
- package/dist/esm/distro/distro.js +55 -11
- package/dist/esm/distro/distro.js.map +1 -1
- package/dist/esm/distro/instrumentations.d.ts +31 -0
- package/dist/esm/distro/instrumentations.d.ts.map +1 -0
- package/dist/esm/distro/instrumentations.js +126 -0
- package/dist/esm/distro/instrumentations.js.map +1 -0
- package/dist/esm/index.d.ts +3 -12
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +4 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TurnContextLike, MiddlewareLike } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* TurnState key for the parent span reference.
|
|
4
|
+
* Set this in `turnState` to link OutputScope spans as children of an InvokeAgentScope.
|
|
5
|
+
*/
|
|
6
|
+
export declare const A365_PARENT_SPAN_KEY = "A365ParentSpanId";
|
|
7
|
+
/**
|
|
8
|
+
* TurnState key for the auth token.
|
|
9
|
+
* Set this in `turnState` so middleware can resolve the agent blueprint ID
|
|
10
|
+
* from token claims (used for embodied/agentic requests).
|
|
11
|
+
*/
|
|
12
|
+
export declare const A365_AUTH_TOKEN_KEY = "A365AuthToken";
|
|
13
|
+
/**
|
|
14
|
+
* Middleware that creates {@link OutputScope} spans for outgoing messages.
|
|
15
|
+
* Links to a parent span when {@link A365_PARENT_SPAN_KEY} is set in turnState.
|
|
16
|
+
*
|
|
17
|
+
* **Privacy note:** Outgoing message content is captured verbatim
|
|
18
|
+
* as span attributes and exported to the configured telemetry backend.
|
|
19
|
+
*/
|
|
20
|
+
export declare class OutputLoggingMiddleware implements MiddlewareLike {
|
|
21
|
+
onTurn(context: TurnContextLike, next: () => Promise<void>): Promise<void>;
|
|
22
|
+
private _createSendHandler;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=outputLoggingMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputLoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/a365/hosting/outputLoggingMiddleware.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IACtD,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF,OAAO,CAAC,kBAAkB;CAmD3B"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.OutputLoggingMiddleware = exports.A365_AUTH_TOKEN_KEY = exports.A365_PARENT_SPAN_KEY = void 0;
|
|
6
|
+
/**
|
|
7
|
+
* Middleware that creates OutputScope spans for outgoing messages.
|
|
8
|
+
*
|
|
9
|
+
* Adapted from microsoft/Agent365-nodejs agents-a365-observability-hosting/src/middleware/OutputLoggingMiddleware.ts
|
|
10
|
+
*/
|
|
11
|
+
const index_js_1 = require("../scopes/index.js");
|
|
12
|
+
const scopeUtils_js_1 = require("./scopeUtils.js");
|
|
13
|
+
const index_js_2 = require("../../shared/logging/index.js");
|
|
14
|
+
/**
|
|
15
|
+
* TurnState key for the parent span reference.
|
|
16
|
+
* Set this in `turnState` to link OutputScope spans as children of an InvokeAgentScope.
|
|
17
|
+
*/
|
|
18
|
+
exports.A365_PARENT_SPAN_KEY = "A365ParentSpanId";
|
|
19
|
+
/**
|
|
20
|
+
* TurnState key for the auth token.
|
|
21
|
+
* Set this in `turnState` so middleware can resolve the agent blueprint ID
|
|
22
|
+
* from token claims (used for embodied/agentic requests).
|
|
23
|
+
*/
|
|
24
|
+
exports.A365_AUTH_TOKEN_KEY = "A365AuthToken";
|
|
25
|
+
/**
|
|
26
|
+
* Middleware that creates {@link OutputScope} spans for outgoing messages.
|
|
27
|
+
* Links to a parent span when {@link A365_PARENT_SPAN_KEY} is set in turnState.
|
|
28
|
+
*
|
|
29
|
+
* **Privacy note:** Outgoing message content is captured verbatim
|
|
30
|
+
* as span attributes and exported to the configured telemetry backend.
|
|
31
|
+
*/
|
|
32
|
+
class OutputLoggingMiddleware {
|
|
33
|
+
async onTurn(context, next) {
|
|
34
|
+
const authToken = context.turnState.get(exports.A365_AUTH_TOKEN_KEY) ?? "";
|
|
35
|
+
const agentDetails = scopeUtils_js_1.ScopeUtils.deriveAgentDetails(context, authToken);
|
|
36
|
+
if (!agentDetails || !agentDetails.tenantId) {
|
|
37
|
+
await next();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const userDetails = scopeUtils_js_1.ScopeUtils.deriveCallerDetails(context);
|
|
41
|
+
const conversationId = scopeUtils_js_1.ScopeUtils.deriveConversationId(context);
|
|
42
|
+
const channel = scopeUtils_js_1.ScopeUtils.deriveChannelObject(context);
|
|
43
|
+
const request = {
|
|
44
|
+
conversationId,
|
|
45
|
+
channel,
|
|
46
|
+
};
|
|
47
|
+
if (context.onSendActivities) {
|
|
48
|
+
context.onSendActivities(this._createSendHandler(context, agentDetails, userDetails, request));
|
|
49
|
+
}
|
|
50
|
+
await next();
|
|
51
|
+
}
|
|
52
|
+
_createSendHandler(turnContext, agentDetails, userDetails, request) {
|
|
53
|
+
return async (_ctx, activities, sendNext) => {
|
|
54
|
+
const messages = activities.filter((a) => a.type === "message" && a.text).map((a) => a.text);
|
|
55
|
+
if (messages.length === 0) {
|
|
56
|
+
return await sendNext();
|
|
57
|
+
}
|
|
58
|
+
const parentSpanRef = turnContext.turnState.get(exports.A365_PARENT_SPAN_KEY);
|
|
59
|
+
if (!parentSpanRef) {
|
|
60
|
+
index_js_2.Logger.getInstance().warn(`[OutputLoggingMiddleware] No parent span ref in turnState under '${exports.A365_PARENT_SPAN_KEY}'. OutputScope will not be linked to a parent.`);
|
|
61
|
+
}
|
|
62
|
+
const spanDetails = parentSpanRef
|
|
63
|
+
? { parentContext: parentSpanRef }
|
|
64
|
+
: undefined;
|
|
65
|
+
const outputScope = index_js_1.OutputScope.start(request ?? {}, { messages }, agentDetails, userDetails, spanDetails);
|
|
66
|
+
try {
|
|
67
|
+
return await sendNext();
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
outputScope.recordError(error instanceof Error
|
|
71
|
+
? error
|
|
72
|
+
: new Error(typeof error === "string" ? error : JSON.stringify(error)));
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
outputScope.dispose();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.OutputLoggingMiddleware = OutputLoggingMiddleware;
|
|
82
|
+
//# sourceMappingURL=outputLoggingMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputLoggingMiddleware.js","sourceRoot":"","sources":["../../../../src/a365/hosting/outputLoggingMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities to populate scope parameters from a TurnContext.
|
|
3
|
+
*
|
|
4
|
+
* Adapted from microsoft/Agent365-nodejs agents-a365-observability-hosting/src/utils/ScopeUtils.ts
|
|
5
|
+
*/
|
|
6
|
+
import type { SpanKind, TimeInput } from "@opentelemetry/api";
|
|
7
|
+
import type { TurnContextLike } from "./types.js";
|
|
8
|
+
import { InvokeAgentScope, InferenceScope, ExecuteToolScope } from "../scopes/index.js";
|
|
9
|
+
import type { AgentDetails, UserDetails, InvokeAgentScopeDetails, ToolCallDetails, InferenceDetails } from "../contracts.js";
|
|
10
|
+
/**
|
|
11
|
+
* Unified utilities to populate scope tags from a TurnContext.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ScopeUtils {
|
|
14
|
+
/**
|
|
15
|
+
* Derive target agent details from the activity recipient.
|
|
16
|
+
*/
|
|
17
|
+
static deriveAgentDetails(turnContext: TurnContextLike, authToken: string): AgentDetails | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Derive caller agent details from the activity from.
|
|
20
|
+
*/
|
|
21
|
+
static deriveCallerAgent(turnContext: TurnContextLike): AgentDetails | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Derive caller identity details (id, email, name, tenant) from the activity from.
|
|
24
|
+
*/
|
|
25
|
+
static deriveCallerDetails(turnContext: TurnContextLike): UserDetails | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Derive conversation id from the TurnContext.
|
|
28
|
+
*/
|
|
29
|
+
static deriveConversationId(turnContext: TurnContextLike): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Derive channel (name and description) from the TurnContext.
|
|
32
|
+
*/
|
|
33
|
+
static deriveChannelObject(turnContext: TurnContextLike): {
|
|
34
|
+
name?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
};
|
|
37
|
+
private static setInputMessageTags;
|
|
38
|
+
/**
|
|
39
|
+
* Create an `InferenceScope` enriched with values from the TurnContext.
|
|
40
|
+
*/
|
|
41
|
+
static populateInferenceScopeFromTurnContext(details: InferenceDetails, turnContext: TurnContextLike, authToken: string, startTime?: TimeInput, endTime?: TimeInput): InferenceScope;
|
|
42
|
+
/**
|
|
43
|
+
* Create an `InvokeAgentScope` enriched with values from the TurnContext.
|
|
44
|
+
*/
|
|
45
|
+
static populateInvokeAgentScopeFromTurnContext(details: AgentDetails, scopeDetails: InvokeAgentScopeDetails, turnContext: TurnContextLike, authToken: string, startTime?: TimeInput, endTime?: TimeInput, spanKind?: SpanKind): InvokeAgentScope;
|
|
46
|
+
/**
|
|
47
|
+
* Build agent details by merging provided details with TurnContext.
|
|
48
|
+
*/
|
|
49
|
+
static buildInvokeAgentDetails(details: AgentDetails, turnContext: TurnContextLike, authToken: string): AgentDetails;
|
|
50
|
+
private static buildInvokeAgentDetailsCore;
|
|
51
|
+
/**
|
|
52
|
+
* Create an `ExecuteToolScope` enriched with values from the TurnContext.
|
|
53
|
+
*/
|
|
54
|
+
static populateExecuteToolScopeFromTurnContext(details: ToolCallDetails, turnContext: TurnContextLike, authToken: string, startTime?: TimeInput, endTime?: TimeInput, spanKind?: SpanKind): ExecuteToolScope;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=scopeUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopeUtils.d.ts","sourceRoot":"","sources":["../../../../src/a365/hosting/scopeUtils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EAIX,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,UAAU;IAGrB;;OAEG;WACW,kBAAkB,CAC9B,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,GAChB,YAAY,GAAG,SAAS;IAe3B;;OAEG;WACW,iBAAiB,CAAC,WAAW,EAAE,eAAe,GAAG,YAAY,GAAG,SAAS;IAcvF;;OAEG;WACW,mBAAmB,CAAC,WAAW,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS;IAWxF;;OAEG;WACW,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;IAIpF;;OAEG;WACW,mBAAmB,CAAC,WAAW,EAAE,eAAe,GAAG;QAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IASD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IASlC;;OAEG;IACH,MAAM,CAAC,qCAAqC,CAC1C,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,cAAc;IA0BjB;;OAEG;IACH,MAAM,CAAC,uCAAuC,CAC5C,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,uBAAuB,EACrC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,QAAQ,GAClB,gBAAgB;IAiCnB;;OAEG;WACW,uBAAuB,CACnC,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,GAChB,YAAY;IAIf,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAY1C;;OAEG;IACH,MAAM,CAAC,uCAAuC,CAC5C,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,QAAQ,GAClB,gBAAgB;CAuBpB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.ScopeUtils = void 0;
|
|
6
|
+
const turnContextUtils_js_1 = require("./turnContextUtils.js");
|
|
7
|
+
const index_js_1 = require("../scopes/index.js");
|
|
8
|
+
/**
|
|
9
|
+
* Unified utilities to populate scope tags from a TurnContext.
|
|
10
|
+
*/
|
|
11
|
+
class ScopeUtils {
|
|
12
|
+
// ── Context-derived helpers ─────────────────────────────────────
|
|
13
|
+
/**
|
|
14
|
+
* Derive target agent details from the activity recipient.
|
|
15
|
+
*/
|
|
16
|
+
static deriveAgentDetails(turnContext, authToken) {
|
|
17
|
+
const recipient = turnContext?.activity?.recipient;
|
|
18
|
+
if (!recipient)
|
|
19
|
+
return undefined;
|
|
20
|
+
const { agentId, agentBlueprintId } = (0, turnContextUtils_js_1.resolveEmbodiedAgentIds)(turnContext, authToken);
|
|
21
|
+
return {
|
|
22
|
+
agentId,
|
|
23
|
+
agentName: recipient.name,
|
|
24
|
+
agentAUID: recipient.aadObjectId,
|
|
25
|
+
agentBlueprintId,
|
|
26
|
+
agentEmail: turnContext?.activity?.getAgenticUser?.(),
|
|
27
|
+
agentDescription: recipient.role,
|
|
28
|
+
tenantId: turnContext?.activity?.getAgenticTenantId?.(),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Derive caller agent details from the activity from.
|
|
33
|
+
*/
|
|
34
|
+
static deriveCallerAgent(turnContext) {
|
|
35
|
+
const from = turnContext?.activity?.from;
|
|
36
|
+
if (!from)
|
|
37
|
+
return undefined;
|
|
38
|
+
return {
|
|
39
|
+
agentBlueprintId: from.agenticAppBlueprintId,
|
|
40
|
+
agentName: from.name,
|
|
41
|
+
agentAUID: from.aadObjectId,
|
|
42
|
+
agentDescription: from.role,
|
|
43
|
+
tenantId: from.tenantId,
|
|
44
|
+
agentId: from.agenticAppId,
|
|
45
|
+
agentEmail: from.agenticUserId,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Derive caller identity details (id, email, name, tenant) from the activity from.
|
|
50
|
+
*/
|
|
51
|
+
static deriveCallerDetails(turnContext) {
|
|
52
|
+
const from = turnContext?.activity?.from;
|
|
53
|
+
if (!from)
|
|
54
|
+
return undefined;
|
|
55
|
+
return {
|
|
56
|
+
userId: from.aadObjectId,
|
|
57
|
+
userEmail: from.agenticUserId,
|
|
58
|
+
userName: from.name,
|
|
59
|
+
tenantId: from.tenantId,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Derive conversation id from the TurnContext.
|
|
64
|
+
*/
|
|
65
|
+
static deriveConversationId(turnContext) {
|
|
66
|
+
return turnContext?.activity?.conversation?.id;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Derive channel (name and description) from the TurnContext.
|
|
70
|
+
*/
|
|
71
|
+
static deriveChannelObject(turnContext) {
|
|
72
|
+
return {
|
|
73
|
+
name: turnContext?.activity?.channelId,
|
|
74
|
+
description: turnContext?.activity?.channelIdSubChannel,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// ── Scope factory helpers ───────────────────────────────────────
|
|
78
|
+
static setInputMessageTags(scope, turnContext) {
|
|
79
|
+
if (turnContext?.activity?.text) {
|
|
80
|
+
scope.recordInputMessages([turnContext.activity.text]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Create an `InferenceScope` enriched with values from the TurnContext.
|
|
85
|
+
*/
|
|
86
|
+
static populateInferenceScopeFromTurnContext(details, turnContext, authToken, startTime, endTime) {
|
|
87
|
+
const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
88
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
89
|
+
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
90
|
+
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
91
|
+
if (!agent) {
|
|
92
|
+
throw new Error("populateInferenceScopeFromTurnContext: Missing agent details on TurnContext (recipient)");
|
|
93
|
+
}
|
|
94
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
95
|
+
const request = {
|
|
96
|
+
conversationId,
|
|
97
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
98
|
+
};
|
|
99
|
+
const spanDetails = startTime || endTime ? { startTime, endTime } : undefined;
|
|
100
|
+
const scope = index_js_1.InferenceScope.start(request, details, agent, caller, spanDetails);
|
|
101
|
+
this.setInputMessageTags(scope, turnContext);
|
|
102
|
+
return scope;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Create an `InvokeAgentScope` enriched with values from the TurnContext.
|
|
106
|
+
*/
|
|
107
|
+
static populateInvokeAgentScopeFromTurnContext(details, scopeDetails, turnContext, authToken, startTime, endTime, spanKind) {
|
|
108
|
+
const callerAgent = ScopeUtils.deriveCallerAgent(turnContext);
|
|
109
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
110
|
+
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
111
|
+
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
112
|
+
const agentDetails = ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
|
|
113
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
114
|
+
const request = {
|
|
115
|
+
conversationId,
|
|
116
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
117
|
+
};
|
|
118
|
+
const callerDetails = {
|
|
119
|
+
userDetails: caller,
|
|
120
|
+
callerAgentDetails: callerAgent,
|
|
121
|
+
};
|
|
122
|
+
const spanDetailsObj = startTime || endTime || spanKind ? { startTime, endTime, spanKind } : undefined;
|
|
123
|
+
const scope = index_js_1.InvokeAgentScope.start(request, scopeDetails, agentDetails, callerDetails, spanDetailsObj);
|
|
124
|
+
this.setInputMessageTags(scope, turnContext);
|
|
125
|
+
return scope;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Build agent details by merging provided details with TurnContext.
|
|
129
|
+
*/
|
|
130
|
+
static buildInvokeAgentDetails(details, turnContext, authToken) {
|
|
131
|
+
return ScopeUtils.buildInvokeAgentDetailsCore(details, turnContext, authToken);
|
|
132
|
+
}
|
|
133
|
+
static buildInvokeAgentDetailsCore(details, turnContext, authToken) {
|
|
134
|
+
const derivedAgentDetails = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
135
|
+
return {
|
|
136
|
+
...details,
|
|
137
|
+
...(derivedAgentDetails ?? {}),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Create an `ExecuteToolScope` enriched with values from the TurnContext.
|
|
142
|
+
*/
|
|
143
|
+
static populateExecuteToolScopeFromTurnContext(details, turnContext, authToken, startTime, endTime, spanKind) {
|
|
144
|
+
const agent = ScopeUtils.deriveAgentDetails(turnContext, authToken);
|
|
145
|
+
const caller = ScopeUtils.deriveCallerDetails(turnContext);
|
|
146
|
+
const conversationId = ScopeUtils.deriveConversationId(turnContext);
|
|
147
|
+
const channel = ScopeUtils.deriveChannelObject(turnContext);
|
|
148
|
+
if (!agent) {
|
|
149
|
+
throw new Error("populateExecuteToolScopeFromTurnContext: Missing agent details on TurnContext (recipient)");
|
|
150
|
+
}
|
|
151
|
+
const hasChannel = channel.name !== undefined || channel.description !== undefined;
|
|
152
|
+
const request = {
|
|
153
|
+
conversationId,
|
|
154
|
+
...(hasChannel ? { channel: { name: channel.name, description: channel.description } } : {}),
|
|
155
|
+
};
|
|
156
|
+
const spanDetailsObj = startTime || endTime || spanKind ? { startTime, endTime, spanKind } : undefined;
|
|
157
|
+
return index_js_1.ExecuteToolScope.start(request, details, agent, caller, spanDetailsObj);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.ScopeUtils = ScopeUtils;
|
|
161
|
+
//# sourceMappingURL=scopeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopeUtils.js","sourceRoot":"","sources":["../../../../src/a365/hosting/scopeUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { TurnContextLike } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts caller-related OpenTelemetry baggage pairs from the TurnContext.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getCallerBaggagePairs(turnContext: TurnContextLike): Array<[string, string]>;
|
|
6
|
+
/**
|
|
7
|
+
* Resolves the agent instance ID and blueprint ID for embodied (agentic) agents.
|
|
8
|
+
* For non-embodied agents, both fields are undefined.
|
|
9
|
+
* @param turnContext Activity context
|
|
10
|
+
* @param authToken Auth token for resolving blueprint ID from token claims.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveEmbodiedAgentIds(turnContext: TurnContextLike, authToken: string): {
|
|
13
|
+
agentId: string | undefined;
|
|
14
|
+
agentBlueprintId: string | undefined;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Extracts agent/recipient-related OpenTelemetry baggage pairs from the TurnContext.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getTargetAgentBaggagePairs(turnContext: TurnContextLike, authToken?: string): Array<[string, string]>;
|
|
20
|
+
/**
|
|
21
|
+
* Extracts the tenant ID baggage key-value pair.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getTenantIdPair(turnContext: TurnContextLike): Array<[string, string]>;
|
|
24
|
+
/**
|
|
25
|
+
* Extracts channel baggage pairs from the TurnContext.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getChannelBaggagePairs(turnContext: TurnContextLike): Array<[string, string]>;
|
|
28
|
+
/**
|
|
29
|
+
* Extracts conversation ID and item link baggage pairs.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getConversationIdAndItemLinkPairs(turnContext: TurnContextLike): Array<[string, string]>;
|
|
32
|
+
//# sourceMappingURL=turnContextUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turnContextUtils.d.ts","sourceRoot":"","sources":["../../../../src/a365/hosting/turnContextUtils.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,eAAe,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAY3F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAQvE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAGrF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAY5F;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,eAAe,GAC3B,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWzB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.getCallerBaggagePairs = getCallerBaggagePairs;
|
|
6
|
+
exports.resolveEmbodiedAgentIds = resolveEmbodiedAgentIds;
|
|
7
|
+
exports.getTargetAgentBaggagePairs = getTargetAgentBaggagePairs;
|
|
8
|
+
exports.getTenantIdPair = getTenantIdPair;
|
|
9
|
+
exports.getChannelBaggagePairs = getChannelBaggagePairs;
|
|
10
|
+
exports.getConversationIdAndItemLinkPairs = getConversationIdAndItemLinkPairs;
|
|
11
|
+
/**
|
|
12
|
+
* TurnContext utility methods for extracting OpenTelemetry baggage pairs.
|
|
13
|
+
*
|
|
14
|
+
* Adapted from microsoft/Agent365-nodejs agents-a365-observability-hosting/src/utils/TurnContextUtils.ts
|
|
15
|
+
*/
|
|
16
|
+
const constants_js_1 = require("../constants.js");
|
|
17
|
+
function normalizePairs(pairs) {
|
|
18
|
+
return pairs
|
|
19
|
+
.filter(([, v]) => v != null && String(v).trim() !== "")
|
|
20
|
+
.map(([k, v]) => [k, String(v)]);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Extracts caller-related OpenTelemetry baggage pairs from the TurnContext.
|
|
24
|
+
*/
|
|
25
|
+
function getCallerBaggagePairs(turnContext) {
|
|
26
|
+
if (!turnContext?.activity?.from) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const from = turnContext.activity.from;
|
|
30
|
+
const pairs = [
|
|
31
|
+
[constants_js_1.OpenTelemetryConstants.USER_ID_KEY, from.aadObjectId],
|
|
32
|
+
[constants_js_1.OpenTelemetryConstants.USER_NAME_KEY, from.name],
|
|
33
|
+
[constants_js_1.OpenTelemetryConstants.USER_EMAIL_KEY, from.agenticUserId],
|
|
34
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_CALLER_AGENT_APPLICATION_ID_KEY, from.agenticAppBlueprintId],
|
|
35
|
+
];
|
|
36
|
+
return normalizePairs(pairs);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolves the agent instance ID and blueprint ID for embodied (agentic) agents.
|
|
40
|
+
* For non-embodied agents, both fields are undefined.
|
|
41
|
+
* @param turnContext Activity context
|
|
42
|
+
* @param authToken Auth token for resolving blueprint ID from token claims.
|
|
43
|
+
*/
|
|
44
|
+
function resolveEmbodiedAgentIds(turnContext, authToken) {
|
|
45
|
+
const isAgentic = turnContext?.activity?.isAgenticRequest?.();
|
|
46
|
+
const rawAgentId = isAgentic ? turnContext.activity.getAgenticInstanceId?.() : undefined;
|
|
47
|
+
const rawBlueprintId = isAgentic ? getAgentIdFromToken(authToken) : undefined;
|
|
48
|
+
return {
|
|
49
|
+
agentId: rawAgentId || undefined,
|
|
50
|
+
agentBlueprintId: rawBlueprintId || undefined,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Extracts agent/recipient-related OpenTelemetry baggage pairs from the TurnContext.
|
|
55
|
+
*/
|
|
56
|
+
function getTargetAgentBaggagePairs(turnContext, authToken) {
|
|
57
|
+
if (!turnContext?.activity?.recipient) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const recipient = turnContext.activity.recipient;
|
|
61
|
+
const { agentId } = authToken
|
|
62
|
+
? resolveEmbodiedAgentIds(turnContext, authToken)
|
|
63
|
+
: {
|
|
64
|
+
agentId: turnContext.activity?.isAgenticRequest?.()
|
|
65
|
+
? turnContext.activity.getAgenticInstanceId?.()
|
|
66
|
+
: undefined,
|
|
67
|
+
};
|
|
68
|
+
const pairs = [
|
|
69
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_AGENT_ID_KEY, agentId],
|
|
70
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_AGENT_NAME_KEY, recipient.name],
|
|
71
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_AGENT_DESCRIPTION_KEY, recipient.role],
|
|
72
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_AGENT_AUID_KEY, recipient.aadObjectId],
|
|
73
|
+
];
|
|
74
|
+
return normalizePairs(pairs);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Extracts the tenant ID baggage key-value pair.
|
|
78
|
+
*/
|
|
79
|
+
function getTenantIdPair(turnContext) {
|
|
80
|
+
const tenantId = turnContext.activity?.getAgenticTenantId?.();
|
|
81
|
+
return tenantId ? [[constants_js_1.OpenTelemetryConstants.TENANT_ID_KEY, tenantId]] : [];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Extracts channel baggage pairs from the TurnContext.
|
|
85
|
+
*/
|
|
86
|
+
function getChannelBaggagePairs(turnContext) {
|
|
87
|
+
if (!turnContext) {
|
|
88
|
+
return [];
|
|
89
|
+
}
|
|
90
|
+
const pairs = [
|
|
91
|
+
[constants_js_1.OpenTelemetryConstants.CHANNEL_NAME_KEY, turnContext.activity?.channelId],
|
|
92
|
+
[
|
|
93
|
+
constants_js_1.OpenTelemetryConstants.CHANNEL_LINK_KEY,
|
|
94
|
+
turnContext.activity?.channelIdSubChannel,
|
|
95
|
+
],
|
|
96
|
+
];
|
|
97
|
+
return normalizePairs(pairs);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Extracts conversation ID and item link baggage pairs.
|
|
101
|
+
*/
|
|
102
|
+
function getConversationIdAndItemLinkPairs(turnContext) {
|
|
103
|
+
if (!turnContext) {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
const conversationId = turnContext.activity?.conversation?.id;
|
|
107
|
+
const itemLink = turnContext.activity?.serviceUrl;
|
|
108
|
+
const pairs = [
|
|
109
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_CONVERSATION_ID_KEY, conversationId],
|
|
110
|
+
[constants_js_1.OpenTelemetryConstants.GEN_AI_CONVERSATION_ITEM_LINK_KEY, itemLink],
|
|
111
|
+
];
|
|
112
|
+
return normalizePairs(pairs);
|
|
113
|
+
}
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
// Inline token decode (replaces @microsoft/agents-a365-runtime Utility)
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
/**
|
|
118
|
+
* Decode the JWT and return the best available agent identifier.
|
|
119
|
+
* Priority: xms_par_app_azp > appid > azp.
|
|
120
|
+
*
|
|
121
|
+
* WARNING: NO SIGNATURE VERIFICATION — suitable only for logging/diagnostics.
|
|
122
|
+
*/
|
|
123
|
+
function getAgentIdFromToken(token) {
|
|
124
|
+
if (!token || token.trim() === "")
|
|
125
|
+
return "";
|
|
126
|
+
try {
|
|
127
|
+
const parts = token.split(".");
|
|
128
|
+
if (parts.length < 2)
|
|
129
|
+
return "";
|
|
130
|
+
const padded = parts[1] + "=".repeat((4 - (parts[1].length % 4)) % 4);
|
|
131
|
+
const decoded = JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
|
|
132
|
+
return (decoded["xms_par_app_azp"] ||
|
|
133
|
+
decoded["appid"] ||
|
|
134
|
+
decoded["azp"] ||
|
|
135
|
+
"");
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return "";
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=turnContextUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turnContextUtils.js","sourceRoot":"","sources":["../../../../src/a365/hosting/turnContextUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal interfaces for hosting-layer observability middleware.
|
|
3
|
+
*
|
|
4
|
+
* These types mirror the shapes from `@microsoft/agents-hosting` and
|
|
5
|
+
* `@microsoft/agents-activity` so the hosting utilities can be used
|
|
6
|
+
* without taking a dependency on those packages directly. Consumers
|
|
7
|
+
* using agents-hosting can pass their TurnContext/Middleware instances
|
|
8
|
+
* directly since they satisfy these interfaces structurally.
|
|
9
|
+
*/
|
|
10
|
+
/** Minimal activity shape required by hosting observability utilities. */
|
|
11
|
+
export interface ActivityLike {
|
|
12
|
+
type?: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
text?: string;
|
|
15
|
+
channelId?: string;
|
|
16
|
+
channelIdSubChannel?: string | unknown;
|
|
17
|
+
serviceUrl?: string;
|
|
18
|
+
from?: {
|
|
19
|
+
aadObjectId?: string;
|
|
20
|
+
name?: string;
|
|
21
|
+
role?: string;
|
|
22
|
+
tenantId?: string;
|
|
23
|
+
agenticUserId?: string;
|
|
24
|
+
agenticAppBlueprintId?: string;
|
|
25
|
+
agenticAppId?: string;
|
|
26
|
+
};
|
|
27
|
+
recipient?: {
|
|
28
|
+
aadObjectId?: string;
|
|
29
|
+
name?: string;
|
|
30
|
+
role?: string;
|
|
31
|
+
};
|
|
32
|
+
conversation?: {
|
|
33
|
+
id?: string;
|
|
34
|
+
};
|
|
35
|
+
isAgenticRequest?: () => boolean;
|
|
36
|
+
getAgenticInstanceId?: () => string;
|
|
37
|
+
getAgenticTenantId?: () => string;
|
|
38
|
+
getAgenticUser?: () => string;
|
|
39
|
+
}
|
|
40
|
+
/** Minimal turn context shape required by hosting observability utilities. */
|
|
41
|
+
export interface TurnContextLike {
|
|
42
|
+
activity: ActivityLike;
|
|
43
|
+
turnState: Map<string, unknown>;
|
|
44
|
+
onSendActivities?(handler: SendActivitiesHandler): void;
|
|
45
|
+
}
|
|
46
|
+
/** Handler for intercepting outgoing activities. */
|
|
47
|
+
export type SendActivitiesHandler = (ctx: TurnContextLike, activities: ActivityLike[], sendNext: () => Promise<unknown[]>) => Promise<unknown[]>;
|
|
48
|
+
/** Middleware interface compatible with agents-hosting adapters. */
|
|
49
|
+
export interface MiddlewareLike {
|
|
50
|
+
onTurn(context: TurnContextLike, next: () => Promise<void>): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/a365/hosting/types.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,YAAY,CAAC,EAAE;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,MAAM,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACzD;AAED,oDAAoD;AACpD,MAAM,MAAM,qBAAqB,GAAG,CAClC,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,YAAY,EAAE,EAC1B,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,KAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAExB,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/a365/hosting/types.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC"}
|
|
@@ -13,4 +13,6 @@ export { BaggageBuilder, BaggageScope } from "./middleware/index.js";
|
|
|
13
13
|
export { A365SpanProcessor, PerRequestSpanProcessor, GENERIC_ATTRIBUTES, INVOKE_AGENT_ATTRIBUTES, } from "./processors/index.js";
|
|
14
14
|
export type { PerRequestSpanProcessorOptions } from "./processors/index.js";
|
|
15
15
|
export { runWithExportToken, updateExportToken, getExportToken } from "./context/tokenContext.js";
|
|
16
|
+
export { BaggageBuilderUtils, ScopeUtils, getCallerBaggagePairs, getTargetAgentBaggagePairs, getTenantIdPair, getChannelBaggagePairs, getConversationIdAndItemLinkPairs, resolveEmbodiedAgentIds, BaggageMiddleware, OutputLoggingMiddleware, A365_PARENT_SPAN_KEY, A365_AUTH_TOKEN_KEY, ObservabilityHostingManager, } from "./hosting/index.js";
|
|
17
|
+
export type { ObservabilityHostingOptions, TurnContextLike, ActivityLike, MiddlewareLike, SendActivitiesHandler, } from "./hosting/index.js";
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a365/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,OAAO,EACP,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a365/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,OAAO,EACP,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGlG,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,iCAAiC,EACjC,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,eAAe,EACf,YAAY,EACZ,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
|