@microsoft/agents-hosting 1.9.0-beta.8.gf58e66b2ee → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +182 -4
  2. package/dist/package.json +3 -3
  3. package/dist/src/app/agentApplication.d.ts +4 -3
  4. package/dist/src/app/agentApplication.js +24 -21
  5. package/dist/src/app/agentApplication.js.map +1 -1
  6. package/dist/src/app/agentApplicationBuilder.d.ts +9 -2
  7. package/dist/src/app/agentApplicationBuilder.js +9 -0
  8. package/dist/src/app/agentApplicationBuilder.js.map +1 -1
  9. package/dist/src/app/agentApplicationOptions.d.ts +16 -4
  10. package/dist/src/app/auth/authorizationManager.d.ts +0 -8
  11. package/dist/src/app/auth/authorizationManager.js +104 -178
  12. package/dist/src/app/auth/authorizationManager.js.map +1 -1
  13. package/dist/src/app/auth/handlerStorage.d.ts +5 -3
  14. package/dist/src/app/auth/handlerStorage.js +36 -10
  15. package/dist/src/app/auth/handlerStorage.js.map +1 -1
  16. package/dist/src/app/auth/types.d.ts +2 -2
  17. package/dist/src/app/index.d.ts +1 -0
  18. package/dist/src/app/proactive/proactive.js +10 -6
  19. package/dist/src/app/proactive/proactive.js.map +1 -1
  20. package/dist/src/app/proactive/proactiveOptions.d.ts +2 -2
  21. package/dist/src/app/rateLimit.d.ts +315 -0
  22. package/dist/src/app/rateLimit.js +333 -0
  23. package/dist/src/app/rateLimit.js.map +1 -0
  24. package/dist/src/app/turnState.d.ts +6 -3
  25. package/dist/src/app/turnState.js +43 -4
  26. package/dist/src/app/turnState.js.map +1 -1
  27. package/dist/src/auth/authConfiguration.d.ts +10 -3
  28. package/dist/src/auth/authConfiguration.js +292 -259
  29. package/dist/src/auth/authConfiguration.js.map +1 -1
  30. package/dist/src/auth/settings.d.ts +8 -70
  31. package/dist/src/auth/settings.js +5 -67
  32. package/dist/src/auth/settings.js.map +1 -1
  33. package/dist/src/cloudAdapter.d.ts +5 -0
  34. package/dist/src/cloudAdapter.js +13 -103
  35. package/dist/src/cloudAdapter.js.map +1 -1
  36. package/dist/src/configuration/botFrameworkEnvironmentCompatibility.d.ts +23 -0
  37. package/dist/src/configuration/botFrameworkEnvironmentCompatibility.js +183 -0
  38. package/dist/src/configuration/botFrameworkEnvironmentCompatibility.js.map +1 -0
  39. package/dist/src/configuration/configuration.d.ts +83 -0
  40. package/dist/src/configuration/configuration.js +836 -0
  41. package/dist/src/configuration/configuration.js.map +1 -0
  42. package/dist/src/configuration/configurationSource.d.ts +57 -0
  43. package/dist/src/configuration/configurationSource.js +7 -0
  44. package/dist/src/configuration/configurationSource.js.map +1 -0
  45. package/dist/src/configuration/environmentConfiguration.d.ts +14 -0
  46. package/dist/src/configuration/environmentConfiguration.js +271 -0
  47. package/dist/src/configuration/environmentConfiguration.js.map +1 -0
  48. package/dist/src/configuration/index.d.ts +7 -0
  49. package/dist/src/configuration/index.js +14 -0
  50. package/dist/src/configuration/index.js.map +1 -0
  51. package/dist/src/configuration/jsonFileConfigurationSource.d.ts +15 -0
  52. package/dist/src/configuration/jsonFileConfigurationSource.js +58 -0
  53. package/dist/src/configuration/jsonFileConfigurationSource.js.map +1 -0
  54. package/dist/src/createCloudAdapter.d.ts +30 -5
  55. package/dist/src/createCloudAdapter.js +17 -10
  56. package/dist/src/createCloudAdapter.js.map +1 -1
  57. package/dist/src/errorHelper.js +117 -5
  58. package/dist/src/errorHelper.js.map +1 -1
  59. package/dist/src/index.d.ts +1 -0
  60. package/dist/src/index.js +1 -0
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/observability/traces.d.ts +6 -4
  63. package/dist/src/observability/traces.js +10 -9
  64. package/dist/src/observability/traces.js.map +1 -1
  65. package/dist/src/outboundHostValidator.d.ts +4 -1
  66. package/dist/src/outboundHostValidator.js +25 -48
  67. package/dist/src/outboundHostValidator.js.map +1 -1
  68. package/dist/src/state/agentState.d.ts +8 -3
  69. package/dist/src/state/agentState.js +26 -8
  70. package/dist/src/state/agentState.js.map +1 -1
  71. package/dist/src/state/conversationState.d.ts +2 -2
  72. package/dist/src/state/conversationState.js.map +1 -1
  73. package/dist/src/state/userState.d.ts +2 -2
  74. package/dist/src/state/userState.js.map +1 -1
  75. package/dist/src/statusCodes.d.ts +5 -0
  76. package/dist/src/statusCodes.js +5 -0
  77. package/dist/src/statusCodes.js.map +1 -1
  78. package/dist/src/storage/fileStorage.d.ts +83 -68
  79. package/dist/src/storage/fileStorage.js +279 -105
  80. package/dist/src/storage/fileStorage.js.map +1 -1
  81. package/dist/src/storage/index.d.ts +1 -0
  82. package/dist/src/storage/index.js +1 -0
  83. package/dist/src/storage/index.js.map +1 -1
  84. package/dist/src/storage/memoryStorage.d.ts +85 -60
  85. package/dist/src/storage/memoryStorage.js +244 -87
  86. package/dist/src/storage/memoryStorage.js.map +1 -1
  87. package/dist/src/storage/storage.d.ts +100 -2
  88. package/dist/src/storage/storage.js +25 -0
  89. package/dist/src/storage/storage.js.map +1 -1
  90. package/dist/src/storage/storageCompatibility.d.ts +17 -0
  91. package/dist/src/storage/storageCompatibility.js +157 -0
  92. package/dist/src/storage/storageCompatibility.js.map +1 -0
  93. package/dist/src/storage/storageExpiry.d.ts +6 -0
  94. package/dist/src/storage/storageExpiry.js +20 -0
  95. package/dist/src/storage/storageExpiry.js.map +1 -0
  96. package/dist/src/utils/env.d.ts +43 -0
  97. package/dist/src/utils/env.js +42 -6
  98. package/dist/src/utils/env.js.map +1 -1
  99. package/dist/src/utils.d.ts +1 -0
  100. package/dist/src/utils.js +10 -1
  101. package/dist/src/utils.js.map +1 -1
  102. package/package.json +3 -3
  103. package/src/app/agentApplication.ts +27 -14
  104. package/src/app/agentApplicationBuilder.ts +13 -2
  105. package/src/app/agentApplicationOptions.ts +18 -4
  106. package/src/app/auth/authorizationManager.ts +126 -204
  107. package/src/app/auth/handlerStorage.ts +51 -7
  108. package/src/app/auth/types.ts +2 -2
  109. package/src/app/index.ts +7 -0
  110. package/src/app/proactive/proactive.ts +19 -9
  111. package/src/app/proactive/proactiveOptions.ts +2 -2
  112. package/src/app/rateLimit.ts +659 -0
  113. package/src/app/turnState.ts +50 -7
  114. package/src/auth/authConfiguration.ts +415 -260
  115. package/src/auth/settings.ts +5 -82
  116. package/src/cloudAdapter.ts +38 -113
  117. package/src/configuration/botFrameworkEnvironmentCompatibility.ts +245 -0
  118. package/src/configuration/configuration.ts +1076 -0
  119. package/src/configuration/configurationSource.ts +76 -0
  120. package/src/configuration/environmentConfiguration.ts +377 -0
  121. package/src/configuration/index.ts +19 -0
  122. package/src/configuration/jsonFileConfigurationSource.ts +74 -0
  123. package/src/createCloudAdapter.ts +52 -9
  124. package/src/errorHelper.ts +143 -5
  125. package/src/index.ts +1 -0
  126. package/src/observability/traces.ts +8 -7
  127. package/src/outboundHostValidator.ts +37 -44
  128. package/src/state/agentState.ts +39 -13
  129. package/src/state/conversationState.ts +2 -2
  130. package/src/state/userState.ts +2 -2
  131. package/src/statusCodes.ts +6 -0
  132. package/src/storage/fileStorage.ts +299 -106
  133. package/src/storage/index.ts +1 -0
  134. package/src/storage/memoryStorage.ts +268 -85
  135. package/src/storage/storage.ts +114 -2
  136. package/src/storage/storageCompatibility.ts +185 -0
  137. package/src/storage/storageExpiry.ts +21 -0
  138. package/src/utils/env.ts +63 -0
  139. package/src/utils.ts +10 -0
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AgentApplicationRateLimiter = void 0;
8
+ const agents_activity_1 = require("@microsoft/agents-activity");
9
+ const agents_telemetry_1 = require("@microsoft/agents-telemetry");
10
+ const activityHandler_1 = require("../activityHandler");
11
+ const storage_1 = require("../storage");
12
+ const storageCompatibility_1 = require("../storage/storageCompatibility");
13
+ const statusCodes_1 = require("../statusCodes");
14
+ const logger = (0, agents_telemetry_1.debug)('agents:rate-limit');
15
+ const DEFAULT_THROTTLE_MESSAGE = 'Too many requests. Please try again later.';
16
+ const DEFAULT_MAX_STORAGE_RETRIES = 3;
17
+ class AgentApplicationRateLimiter {
18
+ /**
19
+ * Creates a limiter for the configured rules, using application storage as
20
+ * the shared fallback when a rule does not provide its own storage.
21
+ */
22
+ constructor(rules, storage) {
23
+ this.rules = rules;
24
+ this.storage = storage;
25
+ this.fallbackStorage = (0, storageCompatibility_1.asStorageV2)(new storage_1.MemoryStorage());
26
+ this.storageAdapters = new WeakMap();
27
+ this.storageIds = new WeakMap();
28
+ this.locks = new Map();
29
+ this.nextStorageId = 1;
30
+ }
31
+ /**
32
+ * Evaluates every applicable rule and stages window writes. The turn is
33
+ * allowed only when no rule is over its limit and all required writes succeed.
34
+ */
35
+ async shouldAllowTurn(context) {
36
+ const pendingEvaluations = [];
37
+ for (let i = 0; i < this.rules.length; i++) {
38
+ const rule = this.rules[i];
39
+ if (!(await this.appliesToTurn(rule, context))) {
40
+ continue;
41
+ }
42
+ const key = await this.getScopeKey(rule, context);
43
+ if (!key) {
44
+ return {
45
+ allowed: false,
46
+ rule,
47
+ result: { ruleIndex: i, retryAfterMs: rule.windowMs }
48
+ };
49
+ }
50
+ try {
51
+ pendingEvaluations.push(this.createPendingEvaluation(rule, i, key));
52
+ }
53
+ catch (err) {
54
+ const decision = this.handleStorageError(rule, { ruleIndex: i, key, retryAfterMs: rule.windowMs }, err);
55
+ if (!decision) {
56
+ continue;
57
+ }
58
+ return decision;
59
+ }
60
+ }
61
+ if (pendingEvaluations.length > 0) {
62
+ return await this.withLocks(pendingEvaluations.map(pending => this.getLockKey(pending.storage, pending.storageKey)), async () => {
63
+ const decision = await this.commitPendingEvaluations(pendingEvaluations);
64
+ return decision !== null && decision !== void 0 ? decision : { allowed: true };
65
+ });
66
+ }
67
+ return { allowed: true };
68
+ }
69
+ /**
70
+ * Reads and persists fixed-window state updates while holding key locks.
71
+ *
72
+ * The evaluation happens here so reads and writes use fresh eTags, and so
73
+ * concurrent first requests cannot all write wildcard-created counters.
74
+ */
75
+ async commitPendingEvaluations(pendingEvaluations) {
76
+ var _a, _b;
77
+ let attempt = 0;
78
+ const committed = new Set();
79
+ while (true) {
80
+ const writes = [];
81
+ let retry = false;
82
+ for (const pending of pendingEvaluations) {
83
+ if (committed.has(this.getLockKey(pending.storage, pending.storageKey))) {
84
+ continue;
85
+ }
86
+ try {
87
+ const { result, write } = await this.evaluateRule(pending);
88
+ if (result) {
89
+ return { allowed: false, rule: pending.rule, result };
90
+ }
91
+ if (write) {
92
+ writes.push(write);
93
+ }
94
+ }
95
+ catch (err) {
96
+ if (attempt >= ((_a = pending.rule.maxStorageRetries) !== null && _a !== void 0 ? _a : DEFAULT_MAX_STORAGE_RETRIES)) {
97
+ const decision = this.handleStorageError(pending.rule, {
98
+ ruleIndex: pending.ruleIndex,
99
+ key: pending.key,
100
+ retryAfterMs: pending.rule.windowMs
101
+ }, err);
102
+ if (decision) {
103
+ return decision;
104
+ }
105
+ continue;
106
+ }
107
+ retry = true;
108
+ break;
109
+ }
110
+ }
111
+ if (retry) {
112
+ attempt++;
113
+ continue;
114
+ }
115
+ for (const pending of writes) {
116
+ try {
117
+ const results = await pending.storage.write({ [pending.storageKey]: pending.window }, pending.window.eTag === undefined ? undefined : { expectedVersion: pending.window.eTag });
118
+ (0, storageCompatibility_1.assertStorageWriteSucceeded)(results, [pending.storageKey]);
119
+ committed.add(this.getLockKey(pending.storage, pending.storageKey));
120
+ }
121
+ catch (err) {
122
+ if (attempt >= ((_b = pending.rule.maxStorageRetries) !== null && _b !== void 0 ? _b : DEFAULT_MAX_STORAGE_RETRIES)) {
123
+ const decision = this.handleStorageError(pending.rule, {
124
+ ruleIndex: pending.ruleIndex,
125
+ key: pending.key,
126
+ retryAfterMs: pending.rule.windowMs
127
+ }, err);
128
+ if (decision) {
129
+ return decision;
130
+ }
131
+ continue;
132
+ }
133
+ retry = true;
134
+ break;
135
+ }
136
+ }
137
+ if (!retry) {
138
+ return undefined;
139
+ }
140
+ attempt++;
141
+ }
142
+ }
143
+ /**
144
+ * Converts storage failures into the configured fail-open, fail-closed, or
145
+ * throw behavior.
146
+ */
147
+ handleStorageError(rule, result, err) {
148
+ var _a;
149
+ const behavior = (_a = rule.storageErrorBehavior) !== null && _a !== void 0 ? _a : 'throttle';
150
+ if (behavior === 'allow') {
151
+ logger.warn('Rate limit storage failed; allowing turn:', err);
152
+ return undefined;
153
+ }
154
+ if (behavior === 'throw') {
155
+ throw err;
156
+ }
157
+ logger.warn('Rate limit storage failed; throttling turn:', err);
158
+ return {
159
+ allowed: false,
160
+ rule,
161
+ result
162
+ };
163
+ }
164
+ /**
165
+ * Sends the throttled response through the correct channel mechanism.
166
+ */
167
+ async handleThrottledTurn(context, rule, result) {
168
+ var _a;
169
+ const message = await this.resolveMessage(context, rule, result);
170
+ if (context.activity.type === agents_activity_1.ActivityTypes.Invoke) {
171
+ context.turnState.set(activityHandler_1.INVOKE_RESPONSE_KEY, {
172
+ type: agents_activity_1.ActivityTypes.InvokeResponse,
173
+ value: {
174
+ status: statusCodes_1.StatusCodes.TOO_MANY_REQUESTS,
175
+ body: { message: typeof message === 'string' ? message : (_a = message === null || message === void 0 ? void 0 : message.text) !== null && _a !== void 0 ? _a : this.getDefaultMessage() }
176
+ }
177
+ });
178
+ return;
179
+ }
180
+ if (!message) {
181
+ return;
182
+ }
183
+ try {
184
+ await context.sendActivity(message);
185
+ }
186
+ catch (err) {
187
+ logger.warn('Failed to send rate limit message:', err);
188
+ }
189
+ }
190
+ /**
191
+ * Checks activity type and custom predicate filters before touching storage.
192
+ */
193
+ async appliesToTurn(rule, context) {
194
+ if (rule.activityTypes && !rule.activityTypes.some(t => { var _a; return t.toLocaleLowerCase() === ((_a = context.activity.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()); })) {
195
+ return false;
196
+ }
197
+ if (rule.appliesTo && !(await rule.appliesTo(context))) {
198
+ return false;
199
+ }
200
+ return true;
201
+ }
202
+ /**
203
+ * Resolves and normalizes the storage key fragment for this rule and turn.
204
+ */
205
+ async getScopeKey(rule, context) {
206
+ const key = await rule.scope(context);
207
+ return (key === null || key === void 0 ? void 0 : key.trim()) || undefined;
208
+ }
209
+ /**
210
+ * Reads the current window, decides whether the turn is over limit, and
211
+ * prepares the next window state when the turn should be counted.
212
+ */
213
+ async evaluateRule(pending) {
214
+ const { rule, ruleIndex, storage, storageKey, key } = pending;
215
+ const items = await storage.read([storageKey]);
216
+ const value = (0, storageCompatibility_1.getStorageReadValue)(items, storageKey);
217
+ const current = value === undefined
218
+ ? undefined
219
+ : { ...value, eTag: items[storageKey].version };
220
+ const now = Date.now();
221
+ const window = this.getFixedWindow(rule, current, now);
222
+ if (window.count >= rule.limit) {
223
+ return {
224
+ result: {
225
+ ruleIndex,
226
+ key,
227
+ retryAfterMs: Math.max(0, window.resetAt - now)
228
+ }
229
+ };
230
+ }
231
+ window.count++;
232
+ return {
233
+ write: { ...pending, window }
234
+ };
235
+ }
236
+ createPendingEvaluation(rule, ruleIndex, key) {
237
+ var _a, _b;
238
+ const storage = this.getStorageV2((_b = (_a = rule.storage) !== null && _a !== void 0 ? _a : this.storage) !== null && _b !== void 0 ? _b : this.fallbackStorage);
239
+ const storageKey = `rateLimit:${ruleIndex}:${key}`;
240
+ return { rule, ruleIndex, storage, storageKey, key };
241
+ }
242
+ getStorageV2(storage) {
243
+ if (storage instanceof storage_1.StorageV2) {
244
+ return storage;
245
+ }
246
+ const existing = this.storageAdapters.get(storage);
247
+ if (existing) {
248
+ return existing;
249
+ }
250
+ const adapter = (0, storageCompatibility_1.asStorageV2)(storage);
251
+ this.storageAdapters.set(storage, adapter);
252
+ return adapter;
253
+ }
254
+ async withLocks(lockKeys, action) {
255
+ const releases = [];
256
+ const uniqueLockKeys = [...new Set(lockKeys)].sort();
257
+ for (const key of uniqueLockKeys) {
258
+ releases.push(await this.acquireLock(key));
259
+ }
260
+ try {
261
+ return await action();
262
+ }
263
+ finally {
264
+ for (const release of releases.reverse()) {
265
+ release();
266
+ }
267
+ }
268
+ }
269
+ async acquireLock(key) {
270
+ var _a;
271
+ const previous = (_a = this.locks.get(key)) !== null && _a !== void 0 ? _a : Promise.resolve();
272
+ let releaseCurrent;
273
+ const current = new Promise(resolve => {
274
+ releaseCurrent = resolve;
275
+ });
276
+ const next = previous.then(() => current);
277
+ this.locks.set(key, next);
278
+ await previous;
279
+ return () => {
280
+ if (this.locks.get(key) === next) {
281
+ this.locks.delete(key);
282
+ }
283
+ releaseCurrent();
284
+ };
285
+ }
286
+ getLockKey(storage, storageKey) {
287
+ return `${this.getStorageId(storage)}:${storageKey}`;
288
+ }
289
+ getStorageId(storage) {
290
+ const existing = this.storageIds.get(storage);
291
+ if (existing) {
292
+ return existing;
293
+ }
294
+ const id = this.nextStorageId++;
295
+ this.storageIds.set(storage, id);
296
+ return id;
297
+ }
298
+ /**
299
+ * Reuses the active window or starts a new one after the reset time.
300
+ */
301
+ getFixedWindow(rule, current, now) {
302
+ if (!current || !Number.isFinite(current.resetAt) || current.resetAt <= now) {
303
+ return {
304
+ count: 0,
305
+ resetAt: now + rule.windowMs,
306
+ // TODO: Once microsoft/Agents-for-net#883 lands in this SDK's storage
307
+ // contract, use a create-if-absent write for new rate limit counters.
308
+ // Unconditional writes are not protected by process-local locks in
309
+ // scaled-out deployments.
310
+ eTag: current === null || current === void 0 ? void 0 : current.eTag
311
+ };
312
+ }
313
+ return { ...current };
314
+ }
315
+ /**
316
+ * Resolves static and factory throttling messages to a sendable value.
317
+ */
318
+ async resolveMessage(context, rule, result) {
319
+ var _a;
320
+ if (typeof rule.message === 'function') {
321
+ return await rule.message(context, result);
322
+ }
323
+ return (_a = rule.message) !== null && _a !== void 0 ? _a : this.getDefaultMessage();
324
+ }
325
+ /**
326
+ * Returns the fallback throttling text when a rule does not provide one.
327
+ */
328
+ getDefaultMessage() {
329
+ return DEFAULT_THROTTLE_MESSAGE;
330
+ }
331
+ }
332
+ exports.AgentApplicationRateLimiter = AgentApplicationRateLimiter;
333
+ //# sourceMappingURL=rateLimit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/app/rateLimit.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { Storage } from '../storage';
5
+ import { StorageProvider } from '../storage';
6
6
  import { AppMemory } from './appMemory';
7
7
  import { TurnStateEntry } from './turnStateEntry';
8
8
  import { TurnContext } from '../turnContext';
@@ -57,6 +57,8 @@ export interface DefaultUserState {
57
57
  */
58
58
  export declare class TurnState<TConversationState = DefaultConversationState, TUserState = DefaultUserState> implements AppMemory {
59
59
  private _scopes;
60
+ private _versions;
61
+ private _missingStorageKeys;
60
62
  private _isLoaded;
61
63
  private _loadingPromise?;
62
64
  /**
@@ -173,7 +175,7 @@ export declare class TurnState<TConversationState = DefaultConversationState, TU
173
175
  * @param force - If true, forces a reload from storage even if state is already loaded
174
176
  * @returns Promise that resolves to true if state was loaded, false if it was already loaded
175
177
  */
176
- load(context: TurnContext, storage?: Storage, force?: boolean): Promise<boolean>;
178
+ load(context: TurnContext, storage?: StorageProvider, force?: boolean): Promise<boolean>;
177
179
  /**
178
180
  * Saves state changes to storage.
179
181
  *
@@ -185,7 +187,8 @@ export declare class TurnState<TConversationState = DefaultConversationState, TU
185
187
  * @remarks
186
188
  * Only changed scopes will be persisted.
187
189
  */
188
- save(context: TurnContext, storage?: Storage): Promise<void>;
190
+ save(context: TurnContext, storage?: StorageProvider): Promise<void>;
191
+ private getStorageScopeName;
189
192
  /**
190
193
  * Computes the storage keys for each scope based on the turn context.
191
194
  *
@@ -5,6 +5,8 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.TurnState = void 0;
8
+ const storage_1 = require("../storage");
9
+ const storageCompatibility_1 = require("../storage/storageCompatibility");
8
10
  const turnStateEntry_1 = require("./turnStateEntry");
9
11
  const agents_telemetry_1 = require("@microsoft/agents-telemetry");
10
12
  const agents_activity_1 = require("@microsoft/agents-activity");
@@ -53,6 +55,8 @@ const TEMP_SCOPE = 'temp';
53
55
  class TurnState {
54
56
  constructor() {
55
57
  this._scopes = {};
58
+ this._versions = {};
59
+ this._missingStorageKeys = new Set();
56
60
  this._isLoaded = false;
57
61
  }
58
62
  /**
@@ -233,17 +237,27 @@ class TurnState {
233
237
  const keys = [];
234
238
  this.onComputeStorageKeys(context)
235
239
  .then(async (scopes) => {
240
+ var _a, _b;
236
241
  for (const key in scopes) {
237
242
  if (Object.prototype.hasOwnProperty.call(scopes, key)) {
238
243
  keys.push(scopes[key]);
239
244
  }
240
245
  }
241
- const items = storage ? await storage.read(keys) : {};
246
+ const items = storage
247
+ ? await (0, storageCompatibility_1.asStorageV2)(storage).read(keys)
248
+ : undefined;
242
249
  for (const key in scopes) {
243
250
  if (Object.prototype.hasOwnProperty.call(scopes, key)) {
244
251
  const storageKey = scopes[key];
245
- const value = items[storageKey];
252
+ const value = storage ? (0, storageCompatibility_1.getStorageReadValue)(items, storageKey) : undefined;
246
253
  this._scopes[key] = new turnStateEntry_1.TurnStateEntry(value, storageKey);
254
+ this._versions[storageKey] = (_a = items === null || items === void 0 ? void 0 : items[storageKey]) === null || _a === void 0 ? void 0 : _a.version;
255
+ if (((_b = items === null || items === void 0 ? void 0 : items[storageKey]) === null || _b === void 0 ? void 0 : _b.status) === storage_1.StorageOperationStatus.NotFound) {
256
+ this._missingStorageKeys.add(storageKey);
257
+ }
258
+ else {
259
+ this._missingStorageKeys.delete(storageKey);
260
+ }
247
261
  }
248
262
  }
249
263
  this._scopes[TEMP_SCOPE] = new turnStateEntry_1.TurnStateEntry({});
@@ -304,17 +318,42 @@ class TurnState {
304
318
  }
305
319
  if (storage) {
306
320
  const promises = [];
321
+ const storageV2 = (0, storageCompatibility_1.asStorageV2)(storage);
307
322
  if (changes) {
308
- promises.push(storage.write(changes));
323
+ for (const [key, value] of Object.entries(changes)) {
324
+ const expectedVersion = this._versions[key];
325
+ const options = expectedVersion !== undefined
326
+ ? { expectedVersion }
327
+ : (0, storageCompatibility_1.isStorageV2)(storage) && this._missingStorageKeys.has(key)
328
+ ? { mode: storage_1.StorageWriteMode.CreateOnly }
329
+ : undefined;
330
+ promises.push(storageV2.write({ [key]: value }, options).then(results => {
331
+ var _a;
332
+ (0, storageCompatibility_1.assertAgentStateWriteSucceeded)(results, key, this.getStorageScopeName(key));
333
+ this._versions[key] = (_a = results === null || results === void 0 ? void 0 : results[key]) === null || _a === void 0 ? void 0 : _a.version;
334
+ this._missingStorageKeys.delete(key);
335
+ }));
336
+ }
309
337
  }
310
338
  if (deletions) {
311
- promises.push(storage.delete(deletions));
339
+ promises.push(storageV2.delete(deletions).then(results => {
340
+ (0, storageCompatibility_1.assertStorageDeleteSucceeded)(results, deletions);
341
+ for (const key of deletions) {
342
+ delete this._versions[key];
343
+ this._missingStorageKeys.delete(key);
344
+ }
345
+ }));
312
346
  }
313
347
  if (promises.length > 0) {
314
348
  await Promise.all(promises);
315
349
  }
316
350
  }
317
351
  }
352
+ getStorageScopeName(storageKey) {
353
+ var _a;
354
+ var _b;
355
+ return (_b = (_a = Object.entries(this._scopes).find(([, entry]) => entry.storageKey === storageKey)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : this.constructor.name;
356
+ }
318
357
  /**
319
358
  * Computes the storage keys for each scope based on the turn context.
320
359
  *
@@ -1 +1 @@
1
- {"version":3,"file":"turnState.js","sourceRoot":"","sources":["../../../src/app/turnState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turnState.js","sourceRoot":"","sources":["../../../src/app/turnState.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,13 @@
4
4
  */
5
5
  import { AuthConfiguration } from './settings';
6
6
  export { type AuthConfiguration, type ConnectionSettings, type ConnectionSettingsBase, type MsalConnectionSettings, type SidecarConnectionSettings, AuthType, resolveAuthority, type ConnectionMapItem, resolveAuthType } from './settings';
7
+ import { ConfigurationContext } from '../configuration/configuration';
8
+ /**
9
+ * Optional host-scoped inputs used while resolving authentication settings.
10
+ */
11
+ export interface AuthConfigurationResolutionOptions {
12
+ configurationContext?: ConfigurationContext;
13
+ }
7
14
  /**
8
15
  * Loads the authentication configuration from environment variables.
9
16
  *
@@ -30,7 +37,7 @@ export { type AuthConfiguration, type ConnectionSettings, type ConnectionSetting
30
37
  * ```
31
38
  *
32
39
  */
33
- export declare const loadAuthConfigFromEnv: (cnxName?: string) => AuthConfiguration;
40
+ export declare const loadAuthConfigFromEnv: (cnxName?: string, options?: AuthConfigurationResolutionOptions) => AuthConfiguration;
34
41
  /**
35
42
  * Loads the agent authentication configuration from previous version environment variables.
36
43
  *
@@ -45,7 +52,7 @@ export declare const loadAuthConfigFromEnv: (cnxName?: string) => AuthConfigurat
45
52
  * ```
46
53
  *
47
54
  */
48
- export declare const loadPrevAuthConfigFromEnv: () => AuthConfiguration;
55
+ export declare const loadPrevAuthConfigFromEnv: (options?: AuthConfigurationResolutionOptions) => AuthConfiguration;
49
56
  /**
50
57
  * Loads the authentication configuration from the provided config or from the environment variables
51
58
  * providing default values for authority and issuers.
@@ -70,4 +77,4 @@ export declare const loadPrevAuthConfigFromEnv: () => AuthConfiguration;
70
77
  * ```
71
78
  *
72
79
  */
73
- export declare function getAuthConfigWithDefaults(config?: AuthConfiguration): AuthConfiguration;
80
+ export declare function getAuthConfigWithDefaults(config?: AuthConfiguration, options?: AuthConfigurationResolutionOptions): AuthConfiguration;