@microsoft/agents-a365-observability-hosting 0.1.0-preview.53
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/caching/AgenticTokenCache.d.ts +20 -0
- package/dist/cjs/caching/AgenticTokenCache.d.ts.map +1 -0
- package/dist/cjs/caching/AgenticTokenCache.js +182 -0
- package/dist/cjs/caching/AgenticTokenCache.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +27 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/utils/BaggageBuilderUtils.d.ts +57 -0
- package/dist/cjs/utils/BaggageBuilderUtils.d.ts.map +1 -0
- package/dist/cjs/utils/BaggageBuilderUtils.js +93 -0
- package/dist/cjs/utils/BaggageBuilderUtils.js.map +1 -0
- package/dist/cjs/utils/InvokeAgentScopeUtils.d.ts +64 -0
- package/dist/cjs/utils/InvokeAgentScopeUtils.d.ts.map +1 -0
- package/dist/cjs/utils/InvokeAgentScopeUtils.js +105 -0
- package/dist/cjs/utils/InvokeAgentScopeUtils.js.map +1 -0
- package/dist/cjs/utils/TurnContextUtils.d.ts +38 -0
- package/dist/cjs/utils/TurnContextUtils.d.ts.map +1 -0
- package/dist/cjs/utils/TurnContextUtils.js +144 -0
- package/dist/cjs/utils/TurnContextUtils.js.map +1 -0
- package/dist/esm/caching/AgenticTokenCache.d.ts +20 -0
- package/dist/esm/caching/AgenticTokenCache.d.ts.map +1 -0
- package/dist/esm/caching/AgenticTokenCache.js +179 -0
- package/dist/esm/caching/AgenticTokenCache.js.map +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/utils/BaggageBuilderUtils.d.ts +57 -0
- package/dist/esm/utils/BaggageBuilderUtils.d.ts.map +1 -0
- package/dist/esm/utils/BaggageBuilderUtils.js +89 -0
- package/dist/esm/utils/BaggageBuilderUtils.js.map +1 -0
- package/dist/esm/utils/InvokeAgentScopeUtils.d.ts +64 -0
- package/dist/esm/utils/InvokeAgentScopeUtils.d.ts.map +1 -0
- package/dist/esm/utils/InvokeAgentScopeUtils.js +101 -0
- package/dist/esm/utils/InvokeAgentScopeUtils.js.map +1 -0
- package/dist/esm/utils/TurnContextUtils.d.ts +38 -0
- package/dist/esm/utils/TurnContextUtils.d.ts.map +1 -0
- package/dist/esm/utils/TurnContextUtils.js +136 -0
- package/dist/esm/utils/TurnContextUtils.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TurnContext, Authorization } from '@microsoft/agents-hosting';
|
|
2
|
+
declare class AgenticTokenCache {
|
|
3
|
+
private readonly _map;
|
|
4
|
+
private readonly _defaultRefreshSkewMs;
|
|
5
|
+
private readonly _defaultMaxTokenAgeMs;
|
|
6
|
+
private readonly _keyLocks;
|
|
7
|
+
static makeKey(agentId: string, tenantId: string): string;
|
|
8
|
+
getObservabilityToken(agentId: string, tenantId: string): string | null;
|
|
9
|
+
RefreshObservabilityToken(agentId: string, tenantId: string, turnContext: TurnContext, authorization: Authorization, scopes: string[]): Promise<void>;
|
|
10
|
+
invalidateToken(agentId: string, tenantId: string): void;
|
|
11
|
+
invalidateAll(): void;
|
|
12
|
+
private decodeExp;
|
|
13
|
+
private isExpired;
|
|
14
|
+
private isRetriableError;
|
|
15
|
+
private sleep;
|
|
16
|
+
private withKeyLock;
|
|
17
|
+
}
|
|
18
|
+
export declare const AgenticTokenCacheInstance: AgenticTokenCache;
|
|
19
|
+
export default AgenticTokenCacheInstance;
|
|
20
|
+
//# sourceMappingURL=AgenticTokenCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgenticTokenCache.d.ts","sourceRoot":"","sources":["../../../src/caching/AgenticTokenCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAWvE,cAAM,iBAAiB;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;WAEnD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIzD,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkBjE,yBAAyB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC;IAiET,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQxD,aAAa,IAAI,IAAI;IAI5B,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,KAAK;YAIC,WAAW;CAiB5B;AAED,eAAO,MAAM,yBAAyB,mBAA0B,CAAC;AACjE,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ------------------------------------------------------------------------------
|
|
3
|
+
// Copyright (c) Microsoft Corporation.
|
|
4
|
+
// Licensed under the MIT License.
|
|
5
|
+
// ------------------------------------------------------------------------------
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AgenticTokenCacheInstance = void 0;
|
|
8
|
+
const agents_a365_runtime_1 = require("@microsoft/agents-a365-runtime");
|
|
9
|
+
const agents_a365_observability_1 = require("@microsoft/agents-a365-observability");
|
|
10
|
+
class AgenticTokenCache {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._map = new Map();
|
|
13
|
+
this._defaultRefreshSkewMs = 60000;
|
|
14
|
+
this._defaultMaxTokenAgeMs = 3600000;
|
|
15
|
+
this._keyLocks = new Map();
|
|
16
|
+
}
|
|
17
|
+
static makeKey(agentId, tenantId) {
|
|
18
|
+
return `${agentId}:${tenantId}`;
|
|
19
|
+
}
|
|
20
|
+
getObservabilityToken(agentId, tenantId) {
|
|
21
|
+
const key = AgenticTokenCache.makeKey(agentId, tenantId);
|
|
22
|
+
const entry = this._map.get(key);
|
|
23
|
+
if (!entry) {
|
|
24
|
+
agents_a365_observability_1.logger.error(`[AgenticTokenCache] No cache entry for ${key}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
if (!entry.token) {
|
|
28
|
+
agents_a365_observability_1.logger.error(`[AgenticTokenCache] No token cached for ${key}`);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
if (this.isExpired(entry)) {
|
|
32
|
+
agents_a365_observability_1.logger.error(`[AgenticTokenCache] Token expired for ${key}`);
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return entry.token;
|
|
36
|
+
}
|
|
37
|
+
async RefreshObservabilityToken(agentId, tenantId, turnContext, authorization, scopes) {
|
|
38
|
+
const key = AgenticTokenCache.makeKey(agentId, tenantId);
|
|
39
|
+
if (!authorization) {
|
|
40
|
+
throw new Error('[AgenticTokenCache] Authorization not set');
|
|
41
|
+
}
|
|
42
|
+
if (!turnContext) {
|
|
43
|
+
throw new Error('[AgenticTokenCache] TurnContext not set');
|
|
44
|
+
}
|
|
45
|
+
return this.withKeyLock(key, async () => {
|
|
46
|
+
let entry = this._map.get(key);
|
|
47
|
+
if (!entry) {
|
|
48
|
+
const effectiveScopes = (scopes && scopes.length > 0) ? scopes : (0, agents_a365_runtime_1.getObservabilityAuthenticationScope)();
|
|
49
|
+
if (!Array.isArray(effectiveScopes) || effectiveScopes.length === 0) {
|
|
50
|
+
agents_a365_observability_1.logger.error('[AgenticTokenCache] No valid scopes');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
entry = { scopes: effectiveScopes };
|
|
54
|
+
this._map.set(key, entry);
|
|
55
|
+
}
|
|
56
|
+
if (!Array.isArray(entry.scopes) || entry.scopes.length === 0) {
|
|
57
|
+
agents_a365_observability_1.logger.error('[AgenticTokenCache] Entry has invalid scopes');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (entry.token && !this.isExpired(entry)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const maxRetries = 2;
|
|
64
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
65
|
+
agents_a365_observability_1.logger.info(`[AgenticTokenCache] Exchanging token attempt ${attempt + 1}/${maxRetries + 1}`);
|
|
66
|
+
try {
|
|
67
|
+
const tokenResponse = await authorization.exchangeToken(turnContext, 'agentic', { scopes: entry.scopes });
|
|
68
|
+
if (!tokenResponse?.token) {
|
|
69
|
+
agents_a365_observability_1.logger.error('[AgenticTokenCache] Undefined token returned');
|
|
70
|
+
entry.token = undefined;
|
|
71
|
+
entry.expiresOn = undefined;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
entry.token = tokenResponse.token;
|
|
75
|
+
entry.acquiredOn = Date.now();
|
|
76
|
+
const oboExp = this.decodeExp(entry.token);
|
|
77
|
+
if (oboExp) {
|
|
78
|
+
entry.expiresOn = oboExp * 1000;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
agents_a365_observability_1.logger.warn('[AgenticTokenCache] No exp claim, fallback TTL');
|
|
82
|
+
}
|
|
83
|
+
agents_a365_observability_1.logger.info('[AgenticTokenCache] Token cached');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
const retriable = this.isRetriableError(e);
|
|
88
|
+
if (retriable && attempt < maxRetries) {
|
|
89
|
+
agents_a365_observability_1.logger.warn(`[AgenticTokenCache] Retriable failure attempt ${attempt + 1}`, (0, agents_a365_observability_1.formatError)(e));
|
|
90
|
+
await this.sleep(200 * (attempt + 1));
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
agents_a365_observability_1.logger.error('[AgenticTokenCache] Non-retriable failure', (0, agents_a365_observability_1.formatError)(e));
|
|
94
|
+
entry.token = undefined;
|
|
95
|
+
entry.expiresOn = undefined;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
invalidateToken(agentId, tenantId) {
|
|
102
|
+
const entry = this._map.get(AgenticTokenCache.makeKey(agentId, tenantId));
|
|
103
|
+
if (entry) {
|
|
104
|
+
entry.token = undefined;
|
|
105
|
+
entry.expiresOn = undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
invalidateAll() {
|
|
109
|
+
this._map.clear();
|
|
110
|
+
}
|
|
111
|
+
decodeExp(jwt) {
|
|
112
|
+
try {
|
|
113
|
+
if (!jwt) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
const parts = jwt.split('.');
|
|
117
|
+
if (parts.length < 2) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
const payloadSegment = parts[1];
|
|
121
|
+
const padded = payloadSegment + '='.repeat((4 - (payloadSegment.length % 4)) % 4);
|
|
122
|
+
const json = JSON.parse(Buffer.from(padded, 'base64').toString('utf8'));
|
|
123
|
+
return typeof json.exp === 'number' ? json.exp : undefined;
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
isExpired(entry) {
|
|
130
|
+
const now = Date.now();
|
|
131
|
+
if (entry.expiresOn) {
|
|
132
|
+
return now >= (entry.expiresOn - this._defaultRefreshSkewMs);
|
|
133
|
+
}
|
|
134
|
+
if (entry.acquiredOn) {
|
|
135
|
+
return now >= (entry.acquiredOn + this._defaultMaxTokenAgeMs);
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
isRetriableError(err) {
|
|
140
|
+
const e = err;
|
|
141
|
+
if (!e) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
const msg = (e.message || '').toLowerCase();
|
|
145
|
+
if (msg.includes('timeout') || msg.includes('econnreset') || msg.includes('network')) {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
if (typeof e.status === 'number') {
|
|
149
|
+
if (e.status === 408 || e.status === 429) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
if (e.status >= 500 && e.status < 600) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
sleep(ms) {
|
|
159
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
160
|
+
}
|
|
161
|
+
async withKeyLock(key, fn) {
|
|
162
|
+
const previous = this._keyLocks.get(key);
|
|
163
|
+
if (previous) {
|
|
164
|
+
try {
|
|
165
|
+
await previous;
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
agents_a365_observability_1.logger.warn(`[AgenticTokenCache] previous promise for ${key} rejected:`, (0, agents_a365_observability_1.formatError)(err));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const currentPromise = fn().finally(() => {
|
|
172
|
+
if (this._keyLocks.get(key) === currentPromise) {
|
|
173
|
+
this._keyLocks.delete(key);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
this._keyLocks.set(key, currentPromise);
|
|
177
|
+
return currentPromise;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.AgenticTokenCacheInstance = new AgenticTokenCache();
|
|
181
|
+
exports.default = exports.AgenticTokenCacheInstance;
|
|
182
|
+
//# sourceMappingURL=AgenticTokenCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgenticTokenCache.js","sourceRoot":"","sources":["../../../src/caching/AgenticTokenCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ------------------------------------------------------------------------------
|
|
3
|
+
// Copyright (c) Microsoft Corporation.
|
|
4
|
+
// Licensed under the MIT License.
|
|
5
|
+
// ------------------------------------------------------------------------------
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.AgenticTokenCacheInstance = void 0;
|
|
22
|
+
__exportStar(require("./utils/BaggageBuilderUtils"), exports);
|
|
23
|
+
__exportStar(require("./utils/InvokeAgentScopeUtils"), exports);
|
|
24
|
+
__exportStar(require("./utils/TurnContextUtils"), exports);
|
|
25
|
+
var AgenticTokenCache_1 = require("./caching/AgenticTokenCache");
|
|
26
|
+
Object.defineProperty(exports, "AgenticTokenCacheInstance", { enumerable: true, get: function () { return AgenticTokenCache_1.AgenticTokenCacheInstance; } });
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;;;;;;;;;;;;;;;;;AAEjF,8DAA4C;AAC5C,gEAA8C;AAC9C,2DAAyC;AACzC,iEAAwE;AAA/D,8HAAA,yBAAyB,OAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { TurnContext } from '@microsoft/agents-hosting';
|
|
2
|
+
import { BaggageBuilder } from '@microsoft/agents-a365-observability';
|
|
3
|
+
/**
|
|
4
|
+
* Utilities to populate BaggageBuilder from a TurnContext.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BaggageBuilderUtils {
|
|
7
|
+
/**
|
|
8
|
+
* Populate all supported baggage pairs from the provided TurnContext.
|
|
9
|
+
* @param builder The BaggageBuilder instance to populate.
|
|
10
|
+
* @param turnContext The TurnContext containing activity information.
|
|
11
|
+
* @returns The updated BaggageBuilder instance.
|
|
12
|
+
*/
|
|
13
|
+
static fromTurnContext(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
14
|
+
/**
|
|
15
|
+
* Sets the caller-related baggage values from the TurnContext.
|
|
16
|
+
* @param builder The BaggageBuilder instance.
|
|
17
|
+
* @param turnContext The TurnContext containing activity information.
|
|
18
|
+
* @returns The updated BaggageBuilder instance.
|
|
19
|
+
*/
|
|
20
|
+
static setCallerBaggage(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* Sets the execution type baggage value based on caller and recipient agentic status.
|
|
23
|
+
* @param builder The BaggageBuilder instance.
|
|
24
|
+
* @param turnContext The TurnContext containing activity information.
|
|
25
|
+
* @returns The updated BaggageBuilder instance.
|
|
26
|
+
*/
|
|
27
|
+
static setExecutionTypeBaggage(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the target agent-related baggage values from the TurnContext.
|
|
30
|
+
* @param builder The BaggageBuilder instance.
|
|
31
|
+
* @param turnContext The TurnContext containing activity information.
|
|
32
|
+
* @returns The updated BaggageBuilder instance.
|
|
33
|
+
*/
|
|
34
|
+
static setTargetAgentBaggage(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
35
|
+
/**
|
|
36
|
+
* Sets the tenant ID baggage value, extracting from ChannelData if necessary.
|
|
37
|
+
* @param builder The BaggageBuilder instance.
|
|
38
|
+
* @param turnContext The TurnContext containing activity information.
|
|
39
|
+
* @returns The updated BaggageBuilder instance.
|
|
40
|
+
*/
|
|
41
|
+
static setTenantIdBaggage(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
42
|
+
/**
|
|
43
|
+
* Sets the source metadata baggage values from the TurnContext.
|
|
44
|
+
* @param builder The BaggageBuilder instance.
|
|
45
|
+
* @param turnContext The TurnContext containing activity information.
|
|
46
|
+
* @returns The updated BaggageBuilder instance.
|
|
47
|
+
*/
|
|
48
|
+
static setSourceMetadataBaggage(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
49
|
+
/**
|
|
50
|
+
* Sets the conversation ID and item link baggage values from the TurnContext.
|
|
51
|
+
* @param builder The BaggageBuilder instance.
|
|
52
|
+
* @param turnContext The TurnContext containing activity information.
|
|
53
|
+
* @returns The updated BaggageBuilder instance.
|
|
54
|
+
*/
|
|
55
|
+
static setConversationIdBaggage(builder: BaggageBuilder, turnContext: TurnContext): BaggageBuilder;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=BaggageBuilderUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaggageBuilderUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/BaggageBuilderUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AASxD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAItE;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;IAazF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;IAM1F;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;IAMjG;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;IAM/F;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;IAM5F;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;IAMlG;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;CAInG"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ------------------------------------------------------------------------------
|
|
3
|
+
// Copyright (c) Microsoft Corporation.
|
|
4
|
+
// Licensed under the MIT License.
|
|
5
|
+
// ------------------------------------------------------------------------------
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BaggageBuilderUtils = void 0;
|
|
8
|
+
const TurnContextUtils_1 = require("./TurnContextUtils");
|
|
9
|
+
/**
|
|
10
|
+
* Utilities to populate BaggageBuilder from a TurnContext.
|
|
11
|
+
*/
|
|
12
|
+
class BaggageBuilderUtils {
|
|
13
|
+
/**
|
|
14
|
+
* Populate all supported baggage pairs from the provided TurnContext.
|
|
15
|
+
* @param builder The BaggageBuilder instance to populate.
|
|
16
|
+
* @param turnContext The TurnContext containing activity information.
|
|
17
|
+
* @returns The updated BaggageBuilder instance.
|
|
18
|
+
*/
|
|
19
|
+
static fromTurnContext(builder, turnContext) {
|
|
20
|
+
if (!turnContext) {
|
|
21
|
+
throw new Error('turnContext is required');
|
|
22
|
+
}
|
|
23
|
+
this.setCallerBaggage(builder, turnContext);
|
|
24
|
+
this.setExecutionTypeBaggage(builder, turnContext);
|
|
25
|
+
this.setTargetAgentBaggage(builder, turnContext);
|
|
26
|
+
this.setTenantIdBaggage(builder, turnContext);
|
|
27
|
+
this.setSourceMetadataBaggage(builder, turnContext);
|
|
28
|
+
this.setConversationIdBaggage(builder, turnContext);
|
|
29
|
+
return builder;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the caller-related baggage values from the TurnContext.
|
|
33
|
+
* @param builder The BaggageBuilder instance.
|
|
34
|
+
* @param turnContext The TurnContext containing activity information.
|
|
35
|
+
* @returns The updated BaggageBuilder instance.
|
|
36
|
+
*/
|
|
37
|
+
static setCallerBaggage(builder, turnContext) {
|
|
38
|
+
builder.setPairs((0, TurnContextUtils_1.getCallerBaggagePairs)(turnContext));
|
|
39
|
+
return builder;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sets the execution type baggage value based on caller and recipient agentic status.
|
|
43
|
+
* @param builder The BaggageBuilder instance.
|
|
44
|
+
* @param turnContext The TurnContext containing activity information.
|
|
45
|
+
* @returns The updated BaggageBuilder instance.
|
|
46
|
+
*/
|
|
47
|
+
static setExecutionTypeBaggage(builder, turnContext) {
|
|
48
|
+
builder.setPairs((0, TurnContextUtils_1.getExecutionTypePair)(turnContext));
|
|
49
|
+
return builder;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Sets the target agent-related baggage values from the TurnContext.
|
|
53
|
+
* @param builder The BaggageBuilder instance.
|
|
54
|
+
* @param turnContext The TurnContext containing activity information.
|
|
55
|
+
* @returns The updated BaggageBuilder instance.
|
|
56
|
+
*/
|
|
57
|
+
static setTargetAgentBaggage(builder, turnContext) {
|
|
58
|
+
builder.setPairs((0, TurnContextUtils_1.getTargetAgentBaggagePairs)(turnContext));
|
|
59
|
+
return builder;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sets the tenant ID baggage value, extracting from ChannelData if necessary.
|
|
63
|
+
* @param builder The BaggageBuilder instance.
|
|
64
|
+
* @param turnContext The TurnContext containing activity information.
|
|
65
|
+
* @returns The updated BaggageBuilder instance.
|
|
66
|
+
*/
|
|
67
|
+
static setTenantIdBaggage(builder, turnContext) {
|
|
68
|
+
builder.setPairs((0, TurnContextUtils_1.getTenantIdPair)(turnContext));
|
|
69
|
+
return builder;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the source metadata baggage values from the TurnContext.
|
|
73
|
+
* @param builder The BaggageBuilder instance.
|
|
74
|
+
* @param turnContext The TurnContext containing activity information.
|
|
75
|
+
* @returns The updated BaggageBuilder instance.
|
|
76
|
+
*/
|
|
77
|
+
static setSourceMetadataBaggage(builder, turnContext) {
|
|
78
|
+
builder.setPairs((0, TurnContextUtils_1.getSourceMetadataBaggagePairs)(turnContext));
|
|
79
|
+
return builder;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets the conversation ID and item link baggage values from the TurnContext.
|
|
83
|
+
* @param builder The BaggageBuilder instance.
|
|
84
|
+
* @param turnContext The TurnContext containing activity information.
|
|
85
|
+
* @returns The updated BaggageBuilder instance.
|
|
86
|
+
*/
|
|
87
|
+
static setConversationIdBaggage(builder, turnContext) {
|
|
88
|
+
builder.setPairs((0, TurnContextUtils_1.getConversationIdAndItemLinkPairs)(turnContext));
|
|
89
|
+
return builder;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.BaggageBuilderUtils = BaggageBuilderUtils;
|
|
93
|
+
//# sourceMappingURL=BaggageBuilderUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaggageBuilderUtils.js","sourceRoot":"","sources":["../../../src/utils/BaggageBuilderUtils.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;;;AAGjF,yDAO4B;AAK5B;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,OAAuB,EAAE,WAAwB;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAuB,EAAE,WAAwB;QACvE,OAAO,CAAC,QAAQ,CAAC,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAuB,EAAE,WAAwB;QAC9E,OAAO,CAAC,QAAQ,CAAC,IAAA,uCAAoB,EAAC,WAAW,CAAC,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAuB,EAAE,WAAwB;QAC5E,OAAO,CAAC,QAAQ,CAAC,IAAA,6CAA0B,EAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAuB,EAAE,WAAwB;QACzE,OAAO,CAAC,QAAQ,CAAC,IAAA,kCAAe,EAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAuB,EAAE,WAAwB;QAC/E,OAAO,CAAC,QAAQ,CAAC,IAAA,gDAA6B,EAAC,WAAW,CAAC,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAuB,EAAE,WAAwB;QAC/E,OAAO,CAAC,QAAQ,CAAC,IAAA,oDAAiC,EAAC,WAAW,CAAC,CAAC,CAAC;QACjE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA1FD,kDA0FC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { TurnContext } from '@microsoft/agents-hosting';
|
|
2
|
+
import { InvokeAgentScope } from '@microsoft/agents-a365-observability';
|
|
3
|
+
/**
|
|
4
|
+
* Utilities to populate InvokeAgentScope tags from a TurnContext.
|
|
5
|
+
*/
|
|
6
|
+
export declare class InvokeAgentScopeUtils {
|
|
7
|
+
/**
|
|
8
|
+
* Populate all supported InvokeAgentScope tags from the provided TurnContext.
|
|
9
|
+
* @param scope The InvokeAgentScope instance to populate.
|
|
10
|
+
* @param turnContext The TurnContext containing activity information.
|
|
11
|
+
* @returns The updated InvokeAgentScope instance.
|
|
12
|
+
*/
|
|
13
|
+
static populateFromTurnContext(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
14
|
+
/**
|
|
15
|
+
* Sets the caller-related attribute values from the TurnContext.
|
|
16
|
+
* @param scope The InvokeAgentScope instance.
|
|
17
|
+
* @param turnContext The TurnContext containing activity information.
|
|
18
|
+
* @returns The updated InvokeAgentScope instance.
|
|
19
|
+
*/
|
|
20
|
+
static setCallerTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
21
|
+
/**
|
|
22
|
+
* Sets the execution type tag based on caller and recipient agentic status.
|
|
23
|
+
* @param scope The InvokeAgentScope instance.
|
|
24
|
+
* @param turnContext The TurnContext containing activity information.
|
|
25
|
+
* @returns The updated InvokeAgentScope instance.
|
|
26
|
+
*/
|
|
27
|
+
static setExecutionTypeTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the target agent-related tags from the TurnContext.
|
|
30
|
+
* @param scope The InvokeAgentScope instance.
|
|
31
|
+
* @param turnContext The TurnContext containing activity information.
|
|
32
|
+
* @returns The updated InvokeAgentScope instance.
|
|
33
|
+
*/
|
|
34
|
+
static setTargetAgentTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
35
|
+
/**
|
|
36
|
+
* Sets the tenant ID tag, extracting from ChannelData if necessary.
|
|
37
|
+
* @param scope The InvokeAgentScope instance.
|
|
38
|
+
* @param turnContext The TurnContext containing activity information.
|
|
39
|
+
* @returns The updated InvokeAgentScope instance.
|
|
40
|
+
*/
|
|
41
|
+
static setTenantIdTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
42
|
+
/**
|
|
43
|
+
* Sets the source metadata tags from the TurnContext.
|
|
44
|
+
* @param scope The InvokeAgentScope instance.
|
|
45
|
+
* @param turnContext The TurnContext containing activity information.
|
|
46
|
+
* @returns The updated InvokeAgentScope instance.
|
|
47
|
+
*/
|
|
48
|
+
static setSourceMetadataTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
49
|
+
/**
|
|
50
|
+
* Sets the conversation ID and item link tags from the TurnContext.
|
|
51
|
+
* @param scope The InvokeAgentScope instance.
|
|
52
|
+
* @param turnContext The TurnContext containing activity information.
|
|
53
|
+
* @returns The updated InvokeAgentScope instance.
|
|
54
|
+
*/
|
|
55
|
+
static setConversationIdTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
56
|
+
/**
|
|
57
|
+
* Sets the input message tag from the TurnContext.
|
|
58
|
+
* @param scope The InvokeAgentScope instance.
|
|
59
|
+
* @param turnContext The TurnContext containing activity information.
|
|
60
|
+
* @returns The updated InvokeAgentScope instance.
|
|
61
|
+
*/
|
|
62
|
+
static setInputMessageTags(scope: InvokeAgentScope, turnContext: TurnContext): InvokeAgentScope;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=InvokeAgentScopeUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvokeAgentScopeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/InvokeAgentScopeUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAWxE;;GAEG;AACH,qBAAa,qBAAqB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAanG;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAKzF;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAKhG;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAK9F;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAK3F;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAKjG;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IAKjG;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;CAM/F"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ------------------------------------------------------------------------------
|
|
3
|
+
// Copyright (c) Microsoft Corporation.
|
|
4
|
+
// Licensed under the MIT License.
|
|
5
|
+
// ------------------------------------------------------------------------------
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.InvokeAgentScopeUtils = void 0;
|
|
8
|
+
const TurnContextUtils_1 = require("./TurnContextUtils");
|
|
9
|
+
/**
|
|
10
|
+
* Utilities to populate InvokeAgentScope tags from a TurnContext.
|
|
11
|
+
*/
|
|
12
|
+
class InvokeAgentScopeUtils {
|
|
13
|
+
/**
|
|
14
|
+
* Populate all supported InvokeAgentScope tags from the provided TurnContext.
|
|
15
|
+
* @param scope The InvokeAgentScope instance to populate.
|
|
16
|
+
* @param turnContext The TurnContext containing activity information.
|
|
17
|
+
* @returns The updated InvokeAgentScope instance.
|
|
18
|
+
*/
|
|
19
|
+
static populateFromTurnContext(scope, turnContext) {
|
|
20
|
+
if (!turnContext) {
|
|
21
|
+
throw new Error('turnContext is required');
|
|
22
|
+
}
|
|
23
|
+
this.setCallerTags(scope, turnContext);
|
|
24
|
+
this.setExecutionTypeTags(scope, turnContext);
|
|
25
|
+
this.setTargetAgentTags(scope, turnContext);
|
|
26
|
+
this.setTenantIdTags(scope, turnContext);
|
|
27
|
+
this.setSourceMetadataTags(scope, turnContext);
|
|
28
|
+
this.setConversationIdTags(scope, turnContext);
|
|
29
|
+
return scope;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the caller-related attribute values from the TurnContext.
|
|
33
|
+
* @param scope The InvokeAgentScope instance.
|
|
34
|
+
* @param turnContext The TurnContext containing activity information.
|
|
35
|
+
* @returns The updated InvokeAgentScope instance.
|
|
36
|
+
*/
|
|
37
|
+
static setCallerTags(scope, turnContext) {
|
|
38
|
+
scope.recordAttributes((0, TurnContextUtils_1.getCallerBaggagePairs)(turnContext));
|
|
39
|
+
return scope;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sets the execution type tag based on caller and recipient agentic status.
|
|
43
|
+
* @param scope The InvokeAgentScope instance.
|
|
44
|
+
* @param turnContext The TurnContext containing activity information.
|
|
45
|
+
* @returns The updated InvokeAgentScope instance.
|
|
46
|
+
*/
|
|
47
|
+
static setExecutionTypeTags(scope, turnContext) {
|
|
48
|
+
scope.recordAttributes((0, TurnContextUtils_1.getExecutionTypePair)(turnContext));
|
|
49
|
+
return scope;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Sets the target agent-related tags from the TurnContext.
|
|
53
|
+
* @param scope The InvokeAgentScope instance.
|
|
54
|
+
* @param turnContext The TurnContext containing activity information.
|
|
55
|
+
* @returns The updated InvokeAgentScope instance.
|
|
56
|
+
*/
|
|
57
|
+
static setTargetAgentTags(scope, turnContext) {
|
|
58
|
+
scope.recordAttributes((0, TurnContextUtils_1.getTargetAgentBaggagePairs)(turnContext));
|
|
59
|
+
return scope;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sets the tenant ID tag, extracting from ChannelData if necessary.
|
|
63
|
+
* @param scope The InvokeAgentScope instance.
|
|
64
|
+
* @param turnContext The TurnContext containing activity information.
|
|
65
|
+
* @returns The updated InvokeAgentScope instance.
|
|
66
|
+
*/
|
|
67
|
+
static setTenantIdTags(scope, turnContext) {
|
|
68
|
+
scope.recordAttributes((0, TurnContextUtils_1.getTenantIdPair)(turnContext));
|
|
69
|
+
return scope;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the source metadata tags from the TurnContext.
|
|
73
|
+
* @param scope The InvokeAgentScope instance.
|
|
74
|
+
* @param turnContext The TurnContext containing activity information.
|
|
75
|
+
* @returns The updated InvokeAgentScope instance.
|
|
76
|
+
*/
|
|
77
|
+
static setSourceMetadataTags(scope, turnContext) {
|
|
78
|
+
scope.recordAttributes((0, TurnContextUtils_1.getSourceMetadataBaggagePairs)(turnContext));
|
|
79
|
+
return scope;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets the conversation ID and item link tags from the TurnContext.
|
|
83
|
+
* @param scope The InvokeAgentScope instance.
|
|
84
|
+
* @param turnContext The TurnContext containing activity information.
|
|
85
|
+
* @returns The updated InvokeAgentScope instance.
|
|
86
|
+
*/
|
|
87
|
+
static setConversationIdTags(scope, turnContext) {
|
|
88
|
+
scope.recordAttributes((0, TurnContextUtils_1.getConversationIdAndItemLinkPairs)(turnContext));
|
|
89
|
+
return scope;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Sets the input message tag from the TurnContext.
|
|
93
|
+
* @param scope The InvokeAgentScope instance.
|
|
94
|
+
* @param turnContext The TurnContext containing activity information.
|
|
95
|
+
* @returns The updated InvokeAgentScope instance.
|
|
96
|
+
*/
|
|
97
|
+
static setInputMessageTags(scope, turnContext) {
|
|
98
|
+
if (turnContext?.activity?.text) {
|
|
99
|
+
scope.recordInputMessages([turnContext?.activity?.text]);
|
|
100
|
+
}
|
|
101
|
+
return scope;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.InvokeAgentScopeUtils = InvokeAgentScopeUtils;
|
|
105
|
+
//# sourceMappingURL=InvokeAgentScopeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvokeAgentScopeUtils.js","sourceRoot":"","sources":["../../../src/utils/InvokeAgentScopeUtils.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,uCAAuC;AACvC,kCAAkC;AAClC,iFAAiF;;;AAIjF,yDAO4B;AAG5B;;GAEG;AACH,MAAa,qBAAqB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAuB,EAAE,WAAwB;QAC/E,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAuB,EAAE,WAAwB;QACrE,KAAK,CAAC,gBAAgB,CAAC,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAuB,EAAE,WAAwB;QAC5E,KAAK,CAAC,gBAAgB,CAAC,IAAA,uCAAoB,EAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAuB,EAAE,WAAwB;QAC1E,KAAK,CAAC,gBAAgB,CAAC,IAAA,6CAA0B,EAAC,WAAW,CAAC,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,KAAuB,EAAE,WAAwB;QACvE,KAAK,CAAC,gBAAgB,CAAC,IAAA,kCAAe,EAAC,WAAW,CAAC,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAuB,EAAE,WAAwB;QAC7E,KAAK,CAAC,gBAAgB,CAAC,IAAA,gDAA6B,EAAC,WAAW,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAuB,EAAE,WAAwB;QAC7E,KAAK,CAAC,gBAAgB,CAAC,IAAA,oDAAiC,EAAC,WAAW,CAAC,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAuB,EAAE,WAAwB;QAC3E,IAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAlGD,sDAkGC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { TurnContext } from '@microsoft/agents-hosting';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts caller-related OpenTelemetry baggage pairs from the TurnContext.
|
|
4
|
+
* @param turnContext The current TurnContext (activity context)
|
|
5
|
+
* @returns Array of [key, value] pairs for caller identity and tenant
|
|
6
|
+
*/
|
|
7
|
+
export declare function getCallerBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
|
|
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
|
|
12
|
+
*/
|
|
13
|
+
export declare function getExecutionTypePair(turnContext: TurnContext): Array<[string, string]>;
|
|
14
|
+
/**
|
|
15
|
+
* Extracts agent/recipient-related OpenTelemetry baggage pairs from the TurnContext.
|
|
16
|
+
* @param turnContext The current TurnContext (activity context)
|
|
17
|
+
* @returns Array of [key, value] pairs for agent identity and description
|
|
18
|
+
*/
|
|
19
|
+
export declare function getTargetAgentBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
|
|
20
|
+
/**
|
|
21
|
+
* Extracts the tenant ID baggage key-value pair, attempting to retrieve from ChannelData if necessary.
|
|
22
|
+
* @param turnContext The current TurnContext (activity context)
|
|
23
|
+
* @returns Array of [key, value] for tenant ID
|
|
24
|
+
*/
|
|
25
|
+
export declare function getTenantIdPair(turnContext: TurnContext): Array<[string, string]>;
|
|
26
|
+
/**
|
|
27
|
+
* Extracts source metadata baggage pairs from the TurnContext.
|
|
28
|
+
* @param turnContext The current TurnContext (activity context)
|
|
29
|
+
* @returns Array of [key, value] pairs for channel name and link
|
|
30
|
+
*/
|
|
31
|
+
export declare function getSourceMetadataBaggagePairs(turnContext: TurnContext): Array<[string, string]>;
|
|
32
|
+
/**
|
|
33
|
+
* Extracts conversation ID and item link baggage key-value pairs from the provided turn context.
|
|
34
|
+
* @param turnContext The current TurnContext (activity context)
|
|
35
|
+
* @returns Array of [key, value] pairs for conversation ID and item link
|
|
36
|
+
*/
|
|
37
|
+
export declare function getConversationIdAndItemLinkPairs(turnContext: TurnContext): Array<[string, string]>;
|
|
38
|
+
//# sourceMappingURL=TurnContextUtils.d.ts.map
|
|
@@ -0,0 +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"}
|