@microsoft/agents-hosting 1.1.0-alpha.9.g154c2c8a32 → 1.1.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 (152) hide show
  1. package/dist/package.json +10 -6
  2. package/dist/src/activityWireCompat.d.ts +1 -1
  3. package/dist/src/activityWireCompat.js +11 -3
  4. package/dist/src/activityWireCompat.js.map +1 -1
  5. package/dist/src/agent-client/agentClient.js +7 -3
  6. package/dist/src/agent-client/agentClient.js.map +1 -1
  7. package/dist/src/agent-client/agentResponseHandler.js +6 -2
  8. package/dist/src/agent-client/agentResponseHandler.js.map +1 -1
  9. package/dist/src/app/agentApplication.d.ts +26 -11
  10. package/dist/src/app/agentApplication.js +90 -79
  11. package/dist/src/app/agentApplication.js.map +1 -1
  12. package/dist/src/app/agentApplicationBuilder.d.ts +2 -2
  13. package/dist/src/app/agentApplicationBuilder.js.map +1 -1
  14. package/dist/src/app/agentApplicationOptions.d.ts +9 -2
  15. package/dist/src/app/appRoute.d.ts +7 -0
  16. package/dist/src/app/{authorization.d.ts → auth/authorization.d.ts} +41 -139
  17. package/dist/src/app/auth/authorization.js +188 -0
  18. package/dist/src/app/auth/authorization.js.map +1 -0
  19. package/dist/src/app/auth/authorizationManager.d.ts +71 -0
  20. package/dist/src/app/auth/authorizationManager.js +170 -0
  21. package/dist/src/app/auth/authorizationManager.js.map +1 -0
  22. package/dist/src/app/auth/handlerStorage.d.ts +36 -0
  23. package/dist/src/app/auth/handlerStorage.js +62 -0
  24. package/dist/src/app/auth/handlerStorage.js.map +1 -0
  25. package/dist/src/app/auth/handlers/agenticAuthorization.d.ts +93 -0
  26. package/dist/src/app/auth/handlers/agenticAuthorization.js +134 -0
  27. package/dist/src/app/auth/handlers/agenticAuthorization.js.map +1 -0
  28. package/dist/src/app/auth/handlers/azureBotAuthorization.d.ts +226 -0
  29. package/dist/src/app/auth/handlers/azureBotAuthorization.js +429 -0
  30. package/dist/src/app/auth/handlers/azureBotAuthorization.js.map +1 -0
  31. package/dist/src/app/auth/handlers/index.d.ts +2 -0
  32. package/dist/src/app/auth/handlers/index.js +19 -0
  33. package/dist/src/app/auth/handlers/index.js.map +1 -0
  34. package/dist/src/app/auth/index.d.ts +2 -0
  35. package/dist/src/app/auth/index.js +19 -0
  36. package/dist/src/app/auth/index.js.map +1 -0
  37. package/dist/src/app/auth/types.d.ts +104 -0
  38. package/dist/src/app/auth/types.js +24 -0
  39. package/dist/src/app/auth/types.js.map +1 -0
  40. package/dist/src/app/index.d.ts +3 -3
  41. package/dist/src/app/index.js +2 -3
  42. package/dist/src/app/index.js.map +1 -1
  43. package/dist/src/app/routeList.d.ts +1 -1
  44. package/dist/src/app/routeList.js +22 -5
  45. package/dist/src/app/routeList.js.map +1 -1
  46. package/dist/src/app/streaming/streamingResponse.js +2 -1
  47. package/dist/src/app/streaming/streamingResponse.js.map +1 -1
  48. package/dist/src/auth/MemoryCache.d.ts +16 -0
  49. package/dist/src/auth/MemoryCache.js +58 -0
  50. package/dist/src/auth/MemoryCache.js.map +1 -0
  51. package/dist/src/auth/authConfiguration.d.ts +44 -2
  52. package/dist/src/auth/authConfiguration.js +209 -53
  53. package/dist/src/auth/authConfiguration.js.map +1 -1
  54. package/dist/src/auth/authConstants.d.ts +11 -0
  55. package/dist/src/auth/authConstants.js +15 -0
  56. package/dist/src/auth/authConstants.js.map +1 -0
  57. package/dist/src/auth/authProvider.d.ts +26 -0
  58. package/dist/src/auth/connections.d.ts +41 -0
  59. package/dist/src/auth/connections.js +7 -0
  60. package/dist/src/auth/connections.js.map +1 -0
  61. package/dist/src/auth/index.d.ts +2 -0
  62. package/dist/src/auth/index.js +2 -0
  63. package/dist/src/auth/index.js.map +1 -1
  64. package/dist/src/auth/jwt-middleware.js +31 -18
  65. package/dist/src/auth/jwt-middleware.js.map +1 -1
  66. package/dist/src/auth/msalConnectionManager.d.ts +64 -0
  67. package/dist/src/auth/msalConnectionManager.js +148 -0
  68. package/dist/src/auth/msalConnectionManager.js.map +1 -0
  69. package/dist/src/auth/msalTokenProvider.d.ts +38 -0
  70. package/dist/src/auth/msalTokenProvider.js +186 -16
  71. package/dist/src/auth/msalTokenProvider.js.map +1 -1
  72. package/dist/src/baseAdapter.d.ts +10 -25
  73. package/dist/src/baseAdapter.js +2 -15
  74. package/dist/src/baseAdapter.js.map +1 -1
  75. package/dist/src/cards/cardFactory.d.ts +2 -1
  76. package/dist/src/cards/cardFactory.js +3 -2
  77. package/dist/src/cards/cardFactory.js.map +1 -1
  78. package/dist/src/cloudAdapter.d.ts +40 -23
  79. package/dist/src/cloudAdapter.js +143 -63
  80. package/dist/src/cloudAdapter.js.map +1 -1
  81. package/dist/src/connector-client/connectorClient.d.ts +15 -0
  82. package/dist/src/connector-client/connectorClient.js +49 -15
  83. package/dist/src/connector-client/connectorClient.js.map +1 -1
  84. package/dist/src/index.d.ts +0 -1
  85. package/dist/src/index.js +0 -1
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/oauth/customUserTokenAPI.d.ts +1 -0
  88. package/dist/src/oauth/customUserTokenAPI.js +11 -0
  89. package/dist/src/oauth/customUserTokenAPI.js.map +1 -0
  90. package/dist/src/oauth/index.d.ts +0 -1
  91. package/dist/src/oauth/index.js +0 -1
  92. package/dist/src/oauth/index.js.map +1 -1
  93. package/dist/src/oauth/userTokenClient.d.ts +30 -13
  94. package/dist/src/oauth/userTokenClient.js +62 -26
  95. package/dist/src/oauth/userTokenClient.js.map +1 -1
  96. package/dist/src/oauth/userTokenClient.types.d.ts +19 -6
  97. package/dist/src/transcript/fileTranscriptLogger.d.ts +109 -0
  98. package/dist/src/transcript/fileTranscriptLogger.js +398 -0
  99. package/dist/src/transcript/fileTranscriptLogger.js.map +1 -0
  100. package/dist/src/turnContext.d.ts +7 -1
  101. package/dist/src/turnContext.js +11 -4
  102. package/dist/src/turnContext.js.map +1 -1
  103. package/package.json +10 -6
  104. package/src/activityWireCompat.ts +12 -4
  105. package/src/agent-client/agentClient.ts +9 -3
  106. package/src/agent-client/agentResponseHandler.ts +5 -2
  107. package/src/app/agentApplication.ts +95 -74
  108. package/src/app/agentApplicationBuilder.ts +2 -2
  109. package/src/app/agentApplicationOptions.ts +10 -2
  110. package/src/app/appRoute.ts +8 -0
  111. package/src/app/auth/authorization.ts +261 -0
  112. package/src/app/auth/authorizationManager.ts +213 -0
  113. package/src/app/auth/handlerStorage.ts +61 -0
  114. package/src/app/auth/handlers/agenticAuthorization.ts +183 -0
  115. package/src/app/auth/handlers/azureBotAuthorization.ts +606 -0
  116. package/src/app/auth/handlers/index.ts +2 -0
  117. package/src/app/auth/index.ts +2 -0
  118. package/src/app/auth/types.ts +111 -0
  119. package/src/app/index.ts +3 -3
  120. package/src/app/routeList.ts +24 -5
  121. package/src/app/streaming/streamingResponse.ts +2 -1
  122. package/src/auth/MemoryCache.ts +59 -0
  123. package/src/auth/authConfiguration.ts +245 -52
  124. package/src/auth/authConstants.ts +11 -0
  125. package/src/auth/authProvider.ts +34 -0
  126. package/src/auth/connections.ts +47 -0
  127. package/src/auth/index.ts +2 -0
  128. package/src/auth/jwt-middleware.ts +38 -21
  129. package/src/auth/msalConnectionManager.ts +175 -0
  130. package/src/auth/msalTokenProvider.ts +228 -9
  131. package/src/baseAdapter.ts +10 -29
  132. package/src/cards/cardFactory.ts +3 -2
  133. package/src/cloudAdapter.ts +207 -72
  134. package/src/connector-client/connectorClient.ts +59 -15
  135. package/src/index.ts +0 -1
  136. package/src/oauth/customUserTokenAPI.ts +5 -0
  137. package/src/oauth/index.ts +0 -1
  138. package/src/oauth/userTokenClient.ts +76 -22
  139. package/src/oauth/userTokenClient.types.ts +20 -8
  140. package/src/transcript/fileTranscriptLogger.ts +409 -0
  141. package/src/turnContext.ts +16 -5
  142. package/dist/src/app/authorization.js +0 -387
  143. package/dist/src/app/authorization.js.map +0 -1
  144. package/dist/src/claimsIdentity.d.ts +0 -35
  145. package/dist/src/claimsIdentity.js +0 -43
  146. package/dist/src/claimsIdentity.js.map +0 -1
  147. package/dist/src/oauth/oAuthFlow.d.ts +0 -119
  148. package/dist/src/oauth/oAuthFlow.js +0 -316
  149. package/dist/src/oauth/oAuthFlow.js.map +0 -1
  150. package/src/app/authorization.ts +0 -432
  151. package/src/claimsIdentity.ts +0 -47
  152. package/src/oauth/oAuthFlow.ts +0 -378
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.FileTranscriptLogger = void 0;
41
+ const logger_1 = require("@microsoft/agents-activity/logger");
42
+ const fs = __importStar(require("fs/promises"));
43
+ const path = __importStar(require("path"));
44
+ const os_1 = require("os");
45
+ const agents_activity_1 = require("@microsoft/agents-activity");
46
+ const logger = (0, logger_1.debug)('agents:file-transcript-logger');
47
+ /**
48
+ * FileTranscriptLogger which creates a .transcript file for each conversationId.
49
+ * @remarks
50
+ * This is a useful class for unit tests.
51
+ *
52
+ * Concurrency Safety:
53
+ * - Uses an in-memory promise chain to serialize writes within the same Node.js process
54
+ * - Prevents race conditions and file corruption when multiple concurrent writes occur
55
+ * - Optimized for performance with minimal overhead (no file-based locking)
56
+ *
57
+ * Note: This implementation is designed for single-process scenarios. For multi-server
58
+ * deployments, consider using a database-backed transcript store.
59
+ */
60
+ class FileTranscriptLogger {
61
+ /**
62
+ * Initializes a new instance of the FileTranscriptLogger class.
63
+ * @param folder - Folder to place the transcript files (Default current directory).
64
+ */
65
+ constructor(folder) {
66
+ this._fileLocks = new Map();
67
+ this._folder = path.normalize(folder !== null && folder !== void 0 ? folder : process.cwd());
68
+ }
69
+ /**
70
+ * Log an activity to the transcript.
71
+ * @param activity - The activity to transcribe.
72
+ * @returns A promise that represents the work queued to execute.
73
+ */
74
+ async logActivity(activity) {
75
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
76
+ if (!activity) {
77
+ throw new Error('activity is required.');
78
+ }
79
+ const transcriptFile = this.getTranscriptFile(activity.channelId, (_a = activity.conversation) === null || _a === void 0 ? void 0 : _a.id);
80
+ if (activity.type === agents_activity_1.ActivityTypes.Message) {
81
+ const sender = (_e = (_c = (_b = activity.from) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : (_d = activity.from) === null || _d === void 0 ? void 0 : _d.id) !== null && _e !== void 0 ? _e : (_f = activity.from) === null || _f === void 0 ? void 0 : _f.role;
82
+ logger.debug(`${sender} [${activity.type}] ${activity.text}`);
83
+ }
84
+ else {
85
+ const sender = (_k = (_h = (_g = activity.from) === null || _g === void 0 ? void 0 : _g.name) !== null && _h !== void 0 ? _h : (_j = activity.from) === null || _j === void 0 ? void 0 : _j.id) !== null && _k !== void 0 ? _k : (_l = activity.from) === null || _l === void 0 ? void 0 : _l.role;
86
+ logger.debug(`${sender} [${activity.type}]`);
87
+ }
88
+ await this.withFileLock(transcriptFile, async () => {
89
+ const maxRetries = 3;
90
+ for (let i = 1; i <= maxRetries; i++) {
91
+ try {
92
+ switch (activity.type) {
93
+ case agents_activity_1.ActivityTypes.MessageDelete:
94
+ return await this.messageDeleteAsync(activity, transcriptFile);
95
+ case agents_activity_1.ActivityTypes.MessageUpdate:
96
+ return await this.messageUpdateAsync(activity, transcriptFile);
97
+ default: // Append activity
98
+ return await this.logActivityToFile(activity, transcriptFile);
99
+ }
100
+ }
101
+ catch (error) {
102
+ // Try again
103
+ logger.warn(`Try ${i} - Failed to log activity because:`, error);
104
+ if (i === maxRetries) {
105
+ throw error;
106
+ }
107
+ }
108
+ }
109
+ });
110
+ }
111
+ /**
112
+ * Gets from the store activities that match a set of criteria.
113
+ * @param channelId - The ID of the channel the conversation is in.
114
+ * @param conversationId - The ID of the conversation.
115
+ * @param continuationToken - The continuation token (if available).
116
+ * @param startDate - A cutoff date. Activities older than this date are not included.
117
+ * @returns A promise that resolves with the matching activities.
118
+ */
119
+ async getTranscriptActivities(channelId, conversationId, continuationToken, startDate) {
120
+ const transcriptFile = this.getTranscriptFile(channelId, conversationId);
121
+ if (!await this.pathExists(transcriptFile)) {
122
+ logger.debug(`Transcript file does not exist: ${this.protocol(transcriptFile)}`);
123
+ return { items: [], continuationToken: undefined };
124
+ }
125
+ const transcript = await this.loadTranscriptAsync(transcriptFile);
126
+ const filterDate = startDate !== null && startDate !== void 0 ? startDate : new Date(0);
127
+ const items = transcript.filter(activity => {
128
+ const activityDate = activity.timestamp ? new Date(activity.timestamp) : new Date(0);
129
+ return activityDate >= filterDate;
130
+ });
131
+ return { items, continuationToken: undefined };
132
+ }
133
+ /**
134
+ * Gets the conversations on a channel from the store.
135
+ * @param channelId - The ID of the channel.
136
+ * @param continuationToken - Continuation token (if available).
137
+ * @returns A promise that resolves with all transcripts for the given ChannelID.
138
+ */
139
+ async listTranscripts(channelId, continuationToken) {
140
+ const channelFolder = this.getChannelFolder(channelId);
141
+ if (!await this.pathExists(channelFolder)) {
142
+ logger.debug(`Channel folder does not exist: ${this.protocol(channelFolder)}`);
143
+ return { items: [], continuationToken: undefined };
144
+ }
145
+ const files = await fs.readdir(channelFolder);
146
+ const items = [];
147
+ for (const file of files) {
148
+ if (!file.endsWith('.transcript')) {
149
+ continue;
150
+ }
151
+ const filePath = path.join(channelFolder, file);
152
+ const stats = await fs.stat(filePath);
153
+ items.push({
154
+ channelId,
155
+ id: path.parse(file).name,
156
+ created: stats.birthtime
157
+ });
158
+ }
159
+ return { items, continuationToken: undefined };
160
+ }
161
+ /**
162
+ * Deletes conversation data from the store.
163
+ * @param channelId - The ID of the channel the conversation is in.
164
+ * @param conversationId - The ID of the conversation to delete.
165
+ * @returns A promise that represents the work queued to execute.
166
+ */
167
+ async deleteTranscript(channelId, conversationId) {
168
+ const file = this.getTranscriptFile(channelId, conversationId);
169
+ await this.withFileLock(file, async () => {
170
+ if (!await this.pathExists(file)) {
171
+ logger.debug(`Transcript file does not exist: ${this.protocol(file)}`);
172
+ return;
173
+ }
174
+ await fs.unlink(file);
175
+ });
176
+ }
177
+ /**
178
+ * Loads a transcript from a file.
179
+ */
180
+ async loadTranscriptAsync(transcriptFile) {
181
+ if (!await this.pathExists(transcriptFile)) {
182
+ return [];
183
+ }
184
+ const json = await fs.readFile(transcriptFile, 'utf-8');
185
+ const result = JSON.parse(json);
186
+ return result.map(agents_activity_1.Activity.fromObject);
187
+ }
188
+ /**
189
+ * Executes a file operation with exclusive locking per file.
190
+ * This ensures that concurrent writes to the same transcript file are serialized.
191
+ */
192
+ async withFileLock(transcriptFile, operation) {
193
+ var _a;
194
+ // Get the current lock chain for this file
195
+ const existingLock = (_a = this._fileLocks.get(transcriptFile)) !== null && _a !== void 0 ? _a : Promise.resolve();
196
+ // Create a new lock that waits for the existing one and then performs the operation
197
+ const newLock = existingLock.then(async () => {
198
+ return await operation();
199
+ }).catch(error => {
200
+ logger.warn('Error in write chain:', error);
201
+ throw error;
202
+ });
203
+ // Update the lock chain
204
+ this._fileLocks.set(transcriptFile, newLock);
205
+ // Wait for this operation to complete
206
+ try {
207
+ return await newLock;
208
+ }
209
+ finally {
210
+ // Clean up if this was the last operation in the chain
211
+ if (this._fileLocks.get(transcriptFile) === newLock) {
212
+ this._fileLocks.delete(transcriptFile);
213
+ }
214
+ }
215
+ }
216
+ /**
217
+ * Performs the actual write operation to the transcript file.
218
+ */
219
+ async logActivityToFile(activity, transcriptFile) {
220
+ const activityStr = JSON.stringify(activity);
221
+ if (!await this.pathExists(transcriptFile)) {
222
+ const folder = path.dirname(transcriptFile);
223
+ if (!await this.pathExists(folder)) {
224
+ await fs.mkdir(folder, { recursive: true });
225
+ }
226
+ await fs.writeFile(transcriptFile, `[${activityStr}]`, 'utf-8');
227
+ return;
228
+ }
229
+ // Use file handle to append efficiently
230
+ const fileHandle = await fs.open(transcriptFile, 'r+');
231
+ try {
232
+ const stats = await fileHandle.stat();
233
+ // Seek to before the closing bracket
234
+ const position = Math.max(0, stats.size - 1);
235
+ // Write the comma, new activity, and closing bracket
236
+ const appendContent = `,${os_1.EOL}${activityStr}]`;
237
+ await fileHandle.write(appendContent, position);
238
+ // Truncate any remaining content (in case the file had trailing data)
239
+ await fileHandle.truncate(position + Buffer.byteLength(appendContent));
240
+ }
241
+ finally {
242
+ await fileHandle.close();
243
+ }
244
+ }
245
+ /**
246
+ * Updates a message in the transcript.
247
+ */
248
+ async messageUpdateAsync(activity, transcriptFile) {
249
+ // Load all activities
250
+ const transcript = await this.loadTranscriptAsync(transcriptFile);
251
+ for (let i = 0; i < transcript.length; i++) {
252
+ const originalActivity = transcript[i];
253
+ if (originalActivity.id === activity.id) {
254
+ // Clone and update the activity
255
+ const updatedActivity = { ...activity };
256
+ updatedActivity.type = originalActivity.type; // Fixup original type (should be Message)
257
+ updatedActivity.localTimestamp = originalActivity.localTimestamp;
258
+ updatedActivity.timestamp = originalActivity.timestamp;
259
+ transcript[i] = updatedActivity;
260
+ const json = JSON.stringify(transcript);
261
+ await fs.writeFile(transcriptFile, json, 'utf-8');
262
+ return;
263
+ }
264
+ }
265
+ }
266
+ /**
267
+ * Deletes a message from the transcript (tombstones it).
268
+ */
269
+ async messageDeleteAsync(activity, transcriptFile) {
270
+ var _a, _b;
271
+ // Load all activities
272
+ const transcript = await this.loadTranscriptAsync(transcriptFile);
273
+ // If message delete comes in, tombstone the message in the transcript
274
+ for (let index = 0; index < transcript.length; index++) {
275
+ const originalActivity = transcript[index];
276
+ if (originalActivity.id === activity.id) {
277
+ // Tombstone the original message
278
+ transcript[index] = {
279
+ type: agents_activity_1.ActivityTypes.MessageDelete,
280
+ id: originalActivity.id,
281
+ from: {
282
+ id: 'deleted',
283
+ role: (_a = originalActivity.from) === null || _a === void 0 ? void 0 : _a.role
284
+ },
285
+ recipient: {
286
+ id: 'deleted',
287
+ role: (_b = originalActivity.recipient) === null || _b === void 0 ? void 0 : _b.role
288
+ },
289
+ locale: originalActivity.locale,
290
+ localTimestamp: originalActivity.timestamp,
291
+ timestamp: originalActivity.timestamp,
292
+ channelId: originalActivity.channelId,
293
+ conversation: originalActivity.conversation,
294
+ serviceUrl: originalActivity.serviceUrl,
295
+ replyToId: originalActivity.replyToId
296
+ };
297
+ const json = JSON.stringify(transcript);
298
+ await fs.writeFile(transcriptFile, json, 'utf-8');
299
+ return;
300
+ }
301
+ }
302
+ }
303
+ /**
304
+ * Sanitizes a string by removing invalid characters.
305
+ */
306
+ static sanitizeString(str, invalidChars) {
307
+ if (!(str === null || str === void 0 ? void 0 : str.trim())) {
308
+ return str;
309
+ }
310
+ // Preemptively check for : in string and replace with _
311
+ let result = str.replaceAll(':', '_');
312
+ // Remove invalid characters
313
+ for (const invalidChar of invalidChars) {
314
+ result = result.replaceAll(invalidChar, '');
315
+ }
316
+ return result;
317
+ }
318
+ /**
319
+ * Gets the transcript file path for a conversation.
320
+ */
321
+ getTranscriptFile(channelId, conversationId) {
322
+ if (!(channelId === null || channelId === void 0 ? void 0 : channelId.trim())) {
323
+ throw new Error('channelId is required.');
324
+ }
325
+ if (!(conversationId === null || conversationId === void 0 ? void 0 : conversationId.trim())) {
326
+ throw new Error('conversationId is required.');
327
+ }
328
+ // Get invalid filename characters (cross-platform)
329
+ const invalidChars = this.getInvalidFileNameChars();
330
+ let fileName = FileTranscriptLogger.sanitizeString(conversationId, invalidChars);
331
+ const maxLength = FileTranscriptLogger.MAX_FILE_NAME_SIZE - FileTranscriptLogger.TRANSCRIPT_FILE_EXTENSION.length;
332
+ if (fileName && fileName.length > maxLength) {
333
+ fileName = fileName.substring(0, maxLength);
334
+ }
335
+ const channelFolder = this.getChannelFolder(channelId);
336
+ return path.join(channelFolder, fileName + FileTranscriptLogger.TRANSCRIPT_FILE_EXTENSION);
337
+ }
338
+ /**
339
+ * Gets the channel folder path, creating it if necessary.
340
+ */
341
+ getChannelFolder(channelId) {
342
+ if (!(channelId === null || channelId === void 0 ? void 0 : channelId.trim())) {
343
+ throw new Error('channelId is required.');
344
+ }
345
+ const invalidChars = this.getInvalidPathChars();
346
+ const folderName = FileTranscriptLogger.sanitizeString(channelId, invalidChars);
347
+ return path.join(this._folder, folderName);
348
+ }
349
+ /**
350
+ * Checks if a file or directory exists.
351
+ */
352
+ async pathExists(path) {
353
+ try {
354
+ await fs.stat(path);
355
+ return true;
356
+ }
357
+ catch {
358
+ return false;
359
+ }
360
+ }
361
+ /**
362
+ * Gets invalid filename characters for the current platform.
363
+ */
364
+ getInvalidFileNameChars() {
365
+ // Windows invalid filename chars: < > : " / \ | ? *
366
+ // Unix systems are more permissive, but / is always invalid
367
+ const invalid = this.getInvalidPathChars();
368
+ if (process.platform === 'win32') {
369
+ return [...invalid, '/', '\\'];
370
+ }
371
+ else {
372
+ return [...invalid, '/'];
373
+ }
374
+ }
375
+ /**
376
+ * Gets invalid path characters for the current platform.
377
+ */
378
+ getInvalidPathChars() {
379
+ // Similar to filename chars but allows directory separators in the middle
380
+ if (process.platform === 'win32') {
381
+ return ['<', '>', ':', '"', '|', '?', '*', '\0'];
382
+ }
383
+ else {
384
+ // Unix/Linux: only null byte is invalid in paths
385
+ return ['\0'];
386
+ }
387
+ }
388
+ /**
389
+ * Adds file:// protocol to a file path.
390
+ */
391
+ protocol(filePath) {
392
+ return `file://${filePath.replace(/\\/g, '/')}`;
393
+ }
394
+ }
395
+ exports.FileTranscriptLogger = FileTranscriptLogger;
396
+ FileTranscriptLogger.TRANSCRIPT_FILE_EXTENSION = '.transcript';
397
+ FileTranscriptLogger.MAX_FILE_NAME_SIZE = 100;
398
+ //# sourceMappingURL=fileTranscriptLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileTranscriptLogger.js","sourceRoot":"","sources":["../../../src/transcript/fileTranscriptLogger.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { TurnContextStateCollection } from './turnContextStateCollection';
5
5
  import { AttachmentInfo } from './connector-client/attachmentInfo';
6
6
  import { AttachmentData } from './connector-client/attachmentData';
7
7
  import { StreamingResponse } from './app/streaming/streamingResponse';
8
+ import { JwtPayload } from 'jsonwebtoken';
8
9
  /**
9
10
  * Defines a handler for processing and sending activities.
10
11
  * Used for middleware that needs to intercept or modify activities being sent.
@@ -64,13 +65,14 @@ export declare class TurnContext {
64
65
  private readonly _turn;
65
66
  private readonly _locale;
66
67
  private readonly _streamingResponse;
68
+ private readonly _identity?;
67
69
  /**
68
70
  * Initializes a new instance of the TurnContext class.
69
71
  *
70
72
  * @param adapterOrContext The adapter that created this context, or another TurnContext to clone
71
73
  * @param request The activity for the turn (required when first parameter is an adapter)
72
74
  */
73
- constructor(adapterOrContext: BaseAdapter, request: Activity);
75
+ constructor(adapterOrContext: BaseAdapter, request: Activity, identity?: JwtPayload);
74
76
  constructor(adapterOrContext: TurnContext);
75
77
  /**
76
78
  * A list of reply activities that are buffered until the end of the turn.
@@ -138,6 +140,7 @@ export declare class TurnContext {
138
140
  */
139
141
  deleteActivity(idOrReference: string | ConversationReference): Promise<void>;
140
142
  /**
143
+ * @deprecated This function will not be supported in future versions. Use TurnContext.turnState.get<ConnectorClient>(CloudAdapter.ConnectorClientKey).
141
144
  * Uploads an attachment to the conversation.
142
145
  *
143
146
  * @param conversationId The ID of the conversation
@@ -146,6 +149,7 @@ export declare class TurnContext {
146
149
  */
147
150
  uploadAttachment(conversationId: string, attachmentData: AttachmentData): Promise<ResourceResponse>;
148
151
  /**
152
+ * @deprecated This function will not be supported in future versions. Use TurnContext.turnState.get<ConnectorClient>(CloudAdapter.ConnectorClientKey).
149
153
  * Gets information about an attachment.
150
154
  *
151
155
  * @param attachmentId The ID of the attachment
@@ -153,6 +157,7 @@ export declare class TurnContext {
153
157
  */
154
158
  getAttachmentInfo(attachmentId: string): Promise<AttachmentInfo>;
155
159
  /**
160
+ * @deprecated This function will not be supported in future versions. Use TurnContext.turnState.get<ConnectorClient>(CloudAdapter.ConnectorClientKey).
156
161
  * Gets the content of an attachment.
157
162
  *
158
163
  * @param attachmentId The ID of the attachment
@@ -210,6 +215,7 @@ export declare class TurnContext {
210
215
  * and triggered the creation of this context.
211
216
  */
212
217
  get activity(): Activity;
218
+ get identity(): JwtPayload;
213
219
  /**
214
220
  * Gets or sets whether the turn has sent a response to the user.
215
221
  *
@@ -28,7 +28,7 @@ exports.AgentCallbackHandlerKey = 'agentCallbackHandler';
28
28
  * This class follows the builder pattern for registering middleware handlers.
29
29
  */
30
30
  class TurnContext {
31
- constructor(adapterOrContext, request) {
31
+ constructor(adapterOrContext, request, identity) {
32
32
  this._respondedRef = { responded: false };
33
33
  this._turnState = new turnContextStateCollection_1.TurnContextStateCollection();
34
34
  this._onSendActivities = [];
@@ -49,6 +49,7 @@ class TurnContext {
49
49
  else {
50
50
  this._adapter = adapterOrContext;
51
51
  this._activity = request;
52
+ this._identity = identity;
52
53
  }
53
54
  this._streamingResponse = new streamingResponse_1.StreamingResponse(this);
54
55
  }
@@ -196,6 +197,7 @@ class TurnContext {
196
197
  return await this.emit(this._onDeleteActivity, reference, async () => await this.adapter.deleteActivity(this, reference));
197
198
  }
198
199
  /**
200
+ * @deprecated This function will not be supported in future versions. Use TurnContext.turnState.get<ConnectorClient>(CloudAdapter.ConnectorClientKey).
199
201
  * Uploads an attachment to the conversation.
200
202
  *
201
203
  * @param conversationId The ID of the conversation
@@ -203,18 +205,20 @@ class TurnContext {
203
205
  * @returns A promise that resolves to the resource response
204
206
  */
205
207
  async uploadAttachment(conversationId, attachmentData) {
206
- return await this.adapter.uploadAttachment(conversationId, attachmentData);
208
+ return await this.adapter.uploadAttachment(this, conversationId, attachmentData);
207
209
  }
208
210
  /**
211
+ * @deprecated This function will not be supported in future versions. Use TurnContext.turnState.get<ConnectorClient>(CloudAdapter.ConnectorClientKey).
209
212
  * Gets information about an attachment.
210
213
  *
211
214
  * @param attachmentId The ID of the attachment
212
215
  * @returns A promise that resolves to the attachment information
213
216
  */
214
217
  async getAttachmentInfo(attachmentId) {
215
- return await this.adapter.getAttachmentInfo(attachmentId);
218
+ return await this.adapter.getAttachmentInfo(this, attachmentId);
216
219
  }
217
220
  /**
221
+ * @deprecated This function will not be supported in future versions. Use TurnContext.turnState.get<ConnectorClient>(CloudAdapter.ConnectorClientKey).
218
222
  * Gets the content of an attachment.
219
223
  *
220
224
  * @param attachmentId The ID of the attachment
@@ -222,7 +226,7 @@ class TurnContext {
222
226
  * @returns A promise that resolves to a readable stream of the attachment content
223
227
  */
224
228
  async getAttachment(attachmentId, viewId) {
225
- return await this.adapter.getAttachment(attachmentId, viewId);
229
+ return await this.adapter.getAttachment(this, attachmentId, viewId);
226
230
  }
227
231
  /**
228
232
  * Registers a handler for intercepting and processing activities being sent.
@@ -289,6 +293,9 @@ class TurnContext {
289
293
  get activity() {
290
294
  return this._activity;
291
295
  }
296
+ get identity() {
297
+ return this._identity;
298
+ }
292
299
  /**
293
300
  * Gets or sets whether the turn has sent a response to the user.
294
301
  *
@@ -1 +1 @@
1
- {"version":3,"file":"turnContext.js","sourceRoot":"","sources":["../../src/turnContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turnContext.js","sourceRoot":"","sources":["../../src/turnContext.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@microsoft/agents-hosting",
4
- "version": "1.1.0-alpha.9.g154c2c8a32",
4
+ "version": "1.1.1",
5
5
  "homepage": "https://github.com/microsoft/Agents-for-js",
6
6
  "repository": {
7
7
  "type": "git",
@@ -19,12 +19,13 @@
19
19
  "main": "dist/src/index.js",
20
20
  "types": "dist/src/index.d.ts",
21
21
  "dependencies": {
22
- "@azure/core-auth": "^1.10.0",
23
- "@azure/msal-node": "^3.7.2",
24
- "@microsoft/agents-activity": "1.1.0-alpha.9.g154c2c8a32",
25
- "axios": "^1.11.0",
22
+ "@azure/core-auth": "^1.10.1",
23
+ "@azure/msal-node": "^3.8.2",
24
+ "@microsoft/agents-activity": "1.1.1",
25
+ "axios": "^1.13.2",
26
26
  "jsonwebtoken": "^9.0.2",
27
- "jwks-rsa": "^3.2.0"
27
+ "jwks-rsa": "^3.2.0",
28
+ "object-path": "^0.11.8"
28
29
  },
29
30
  "license": "MIT",
30
31
  "files": [
@@ -43,5 +44,8 @@
43
44
  },
44
45
  "engines": {
45
46
  "node": ">=20.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "@types/object-path": "^0.11.4"
46
50
  }
47
51
  }
@@ -24,14 +24,22 @@ export function normalizeIncomingActivity (payload: any): object {
24
24
  * @param payload - The outgoing payload object to normalize.
25
25
  * @returns The normalized payload object with `agent` replaced by `bot` in `relatesTo`.
26
26
  */
27
- export function normalizeOutgoingActivity (payload: any): object {
28
- if (payload && payload['relatesTo'] && payload['relatesTo']['agent']) {
29
- const relatesTo = payload['relatesTo']
27
+ export function normalizeOutgoingActivity (payload: any): object | undefined | null {
28
+ if (!payload) {
29
+ return payload
30
+ }
31
+ const modifiedPayload = JSON.parse(JSON.stringify(payload))
32
+ if (modifiedPayload && modifiedPayload['relatesTo'] && modifiedPayload['relatesTo']['agent']) {
33
+ const relatesTo = modifiedPayload['relatesTo']
30
34
  const ov = relatesTo['agent']
31
35
  delete relatesTo['agent']
32
36
  relatesTo['bot'] = ov
33
37
  }
34
- return payload
38
+ if (modifiedPayload && modifiedPayload['_channelId']) {
39
+ modifiedPayload['channelId'] = modifiedPayload['_channelId'].toString()
40
+ delete modifiedPayload['_channelId']
41
+ }
42
+ return modifiedPayload
35
43
  }
36
44
 
37
45
  export function normalizeTokenExchangeState (payload: any): object {