@microsoft/agents-hosting-extensions-msteams 1.7.0-beta.8.gc2b086aef6

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 (143) hide show
  1. package/README.md +147 -0
  2. package/dist/package.json +46 -0
  3. package/dist/src/activity-extensions/index.d.ts +1 -0
  4. package/dist/src/activity-extensions/index.js +8 -0
  5. package/dist/src/activity-extensions/index.js.map +1 -0
  6. package/dist/src/activity-extensions/teamsChannelData.d.ts +12 -0
  7. package/dist/src/activity-extensions/teamsChannelData.js +29 -0
  8. package/dist/src/activity-extensions/teamsChannelData.js.map +1 -0
  9. package/dist/src/app/index.d.ts +1 -0
  10. package/dist/src/app/index.js +20 -0
  11. package/dist/src/app/index.js.map +1 -0
  12. package/dist/src/app/teamsAppExtensions.d.ts +145 -0
  13. package/dist/src/app/teamsAppExtensions.js +201 -0
  14. package/dist/src/app/teamsAppExtensions.js.map +1 -0
  15. package/dist/src/channels/index.d.ts +1 -0
  16. package/dist/src/channels/index.js +20 -0
  17. package/dist/src/channels/index.js.map +1 -0
  18. package/dist/src/channels/teamsChannel.d.ts +100 -0
  19. package/dist/src/channels/teamsChannel.js +210 -0
  20. package/dist/src/channels/teamsChannel.js.map +1 -0
  21. package/dist/src/config/config.d.ts +37 -0
  22. package/dist/src/config/config.js +71 -0
  23. package/dist/src/config/config.js.map +1 -0
  24. package/dist/src/config/index.d.ts +1 -0
  25. package/dist/src/config/index.js +20 -0
  26. package/dist/src/config/index.js.map +1 -0
  27. package/dist/src/errorHelper.d.ts +19 -0
  28. package/dist/src/errorHelper.js +96 -0
  29. package/dist/src/errorHelper.js.map +1 -0
  30. package/dist/src/fileConsents/fileConsent.d.ts +37 -0
  31. package/dist/src/fileConsents/fileConsent.js +79 -0
  32. package/dist/src/fileConsents/fileConsent.js.map +1 -0
  33. package/dist/src/fileConsents/index.d.ts +1 -0
  34. package/dist/src/fileConsents/index.js +20 -0
  35. package/dist/src/fileConsents/index.js.map +1 -0
  36. package/dist/src/graphClientFactory.d.ts +10 -0
  37. package/dist/src/graphClientFactory.js +98 -0
  38. package/dist/src/graphClientFactory.js.map +1 -0
  39. package/dist/src/index.d.ts +20 -0
  40. package/dist/src/index.js +39 -0
  41. package/dist/src/index.js.map +1 -0
  42. package/dist/src/meetings/index.d.ts +1 -0
  43. package/dist/src/meetings/index.js +20 -0
  44. package/dist/src/meetings/index.js.map +1 -0
  45. package/dist/src/meetings/meeting.d.ts +84 -0
  46. package/dist/src/meetings/meeting.js +107 -0
  47. package/dist/src/meetings/meeting.js.map +1 -0
  48. package/dist/src/messageExtensions/index.d.ts +2 -0
  49. package/dist/src/messageExtensions/index.js +24 -0
  50. package/dist/src/messageExtensions/index.js.map +1 -0
  51. package/dist/src/messageExtensions/messageExtension.d.ts +133 -0
  52. package/dist/src/messageExtensions/messageExtension.js +326 -0
  53. package/dist/src/messageExtensions/messageExtension.js.map +1 -0
  54. package/dist/src/messageExtensions/messagingExtensionQuery.d.ts +87 -0
  55. package/dist/src/messageExtensions/messagingExtensionQuery.js +35 -0
  56. package/dist/src/messageExtensions/messagingExtensionQuery.js.map +1 -0
  57. package/dist/src/messages/index.d.ts +1 -0
  58. package/dist/src/messages/index.js +20 -0
  59. package/dist/src/messages/index.js.map +1 -0
  60. package/dist/src/messages/message.d.ts +67 -0
  61. package/dist/src/messages/message.js +129 -0
  62. package/dist/src/messages/message.js.map +1 -0
  63. package/dist/src/models/index.d.ts +1 -0
  64. package/dist/src/models/index.js +20 -0
  65. package/dist/src/models/index.js.map +1 -0
  66. package/dist/src/models/readReceiptInfo.d.ts +27 -0
  67. package/dist/src/models/readReceiptInfo.js +44 -0
  68. package/dist/src/models/readReceiptInfo.js.map +1 -0
  69. package/dist/src/taskModules/index.d.ts +1 -0
  70. package/dist/src/taskModules/index.js +20 -0
  71. package/dist/src/taskModules/index.js.map +1 -0
  72. package/dist/src/taskModules/taskModule.d.ts +42 -0
  73. package/dist/src/taskModules/taskModule.js +102 -0
  74. package/dist/src/taskModules/taskModule.js.map +1 -0
  75. package/dist/src/teams/index.d.ts +1 -0
  76. package/dist/src/teams/index.js +20 -0
  77. package/dist/src/teams/index.js.map +1 -0
  78. package/dist/src/teams/teamsTeam.d.ts +82 -0
  79. package/dist/src/teams/teamsTeam.js +172 -0
  80. package/dist/src/teams/teamsTeam.js.map +1 -0
  81. package/dist/src/teamsActivity.d.ts +15 -0
  82. package/dist/src/teamsActivity.js +5 -0
  83. package/dist/src/teamsActivity.js.map +1 -0
  84. package/dist/src/teamsActivityExtensions.d.ts +53 -0
  85. package/dist/src/teamsActivityExtensions.js +101 -0
  86. package/dist/src/teamsActivityExtensions.js.map +1 -0
  87. package/dist/src/teamsAgentExtension.d.ts +105 -0
  88. package/dist/src/teamsAgentExtension.js +178 -0
  89. package/dist/src/teamsAgentExtension.js.map +1 -0
  90. package/dist/src/teamsApiClientExtensions.d.ts +13 -0
  91. package/dist/src/teamsApiClientExtensions.js +41 -0
  92. package/dist/src/teamsApiClientExtensions.js.map +1 -0
  93. package/dist/src/teamsHeaderPropagation.d.ts +14 -0
  94. package/dist/src/teamsHeaderPropagation.js +35 -0
  95. package/dist/src/teamsHeaderPropagation.js.map +1 -0
  96. package/dist/src/teamsModelExtensions.d.ts +19 -0
  97. package/dist/src/teamsModelExtensions.js +38 -0
  98. package/dist/src/teamsModelExtensions.js.map +1 -0
  99. package/dist/src/teamsProactiveServiceEndpoints.d.ts +15 -0
  100. package/dist/src/teamsProactiveServiceEndpoints.js +21 -0
  101. package/dist/src/teamsProactiveServiceEndpoints.js.map +1 -0
  102. package/dist/src/teamsRouteHandler.d.ts +13 -0
  103. package/dist/src/teamsRouteHandler.js +18 -0
  104. package/dist/src/teamsRouteHandler.js.map +1 -0
  105. package/dist/src/teamsTurnContext.d.ts +64 -0
  106. package/dist/src/teamsTurnContext.js +113 -0
  107. package/dist/src/teamsTurnContext.js.map +1 -0
  108. package/package.json +46 -0
  109. package/src/activity-extensions/index.ts +4 -0
  110. package/src/activity-extensions/teamsChannelData.ts +30 -0
  111. package/src/app/index.ts +4 -0
  112. package/src/app/teamsAppExtensions.ts +369 -0
  113. package/src/channels/index.ts +4 -0
  114. package/src/channels/teamsChannel.ts +229 -0
  115. package/src/config/config.ts +79 -0
  116. package/src/config/index.ts +4 -0
  117. package/src/errorHelper.ts +104 -0
  118. package/src/fileConsents/fileConsent.ts +85 -0
  119. package/src/fileConsents/index.ts +4 -0
  120. package/src/graphClientFactory.ts +127 -0
  121. package/src/index.ts +23 -0
  122. package/src/meetings/index.ts +4 -0
  123. package/src/meetings/meeting.ts +146 -0
  124. package/src/messageExtensions/index.ts +5 -0
  125. package/src/messageExtensions/messageExtension.ts +370 -0
  126. package/src/messageExtensions/messagingExtensionQuery.ts +34 -0
  127. package/src/messages/index.ts +4 -0
  128. package/src/messages/message.ts +148 -0
  129. package/src/models/index.ts +4 -0
  130. package/src/models/readReceiptInfo.ts +50 -0
  131. package/src/taskModules/index.ts +4 -0
  132. package/src/taskModules/taskModule.ts +113 -0
  133. package/src/teams/index.ts +4 -0
  134. package/src/teams/teamsTeam.ts +189 -0
  135. package/src/teamsActivity.ts +19 -0
  136. package/src/teamsActivityExtensions.ts +99 -0
  137. package/src/teamsAgentExtension.ts +205 -0
  138. package/src/teamsApiClientExtensions.ts +47 -0
  139. package/src/teamsHeaderPropagation.ts +32 -0
  140. package/src/teamsModelExtensions.ts +42 -0
  141. package/src/teamsProactiveServiceEndpoints.ts +18 -0
  142. package/src/teamsRouteHandler.ts +22 -0
  143. package/src/teamsTurnContext.ts +125 -0
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ # @microsoft/agents-hosting-extensions-msteams
2
+
3
+ Microsoft Teams extension for the Microsoft 365 Agents SDK for JavaScript.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @microsoft/agents-hosting-extensions-msteams
9
+ ```
10
+
11
+ ## Overview
12
+
13
+ This package provides Teams-specific functionality for building agents in Microsoft Teams. It includes support for:
14
+
15
+ - Message handling (edit, delete, undelete)
16
+ - Meeting events (start, end, participant join/leave)
17
+ - Message reactions (added/removed)
18
+ - Message extensions and task modules
19
+ - Teams information access
20
+
21
+ ## Usage
22
+
23
+ ### Basic Setup
24
+
25
+ ```typescript
26
+ import { AgentApplication, MemoryStorage, TurnContext, TurnState } from '@microsoft/agents-hosting'
27
+ import { startServer } from '@microsoft/agents-hosting-express'
28
+ import { TeamsAgentExtension } from '@microsoft/agents-hosting-extensions-msteams'
29
+
30
+ // Create the agent application
31
+ const app = new AgentApplication<TurnState>({ storage: new MemoryStorage() })
32
+
33
+ // Create and register the Teams extension
34
+ const teamsExt = new TeamsAgentExtension(app)
35
+
36
+ app.registerExtension<TeamsAgentExtension>(teamsExt, (tae) => {
37
+ // Configure Teams-specific handlers here
38
+ console.log('Teams extension registered')
39
+ })
40
+
41
+ // Handle messages
42
+ app.onActivity('message', async (context: TurnContext, state: TurnState) => {
43
+ await context.sendActivity(`I received your message: "${context.activity.text}"`)
44
+ })
45
+
46
+ // Start the server
47
+ startServer(app)
48
+ ```
49
+
50
+ ### Meeting Events
51
+
52
+ Handle various meeting events in Teams:
53
+
54
+ ```typescript
55
+ app.registerExtension<TeamsAgentExtension>(teamsExt, (tae) => {
56
+ tae.meetings
57
+ .onStart(async (context, state) => {
58
+ await context.sendActivity('Meeting started! I\'m here to assist.')
59
+ })
60
+ .onEnd(async (context, state) => {
61
+ await context.sendActivity('The meeting has ended. Thanks for participating!')
62
+ })
63
+ .onParticipantsJoin(async (context, state) => {
64
+ await context.sendActivity('Welcome to the meeting!')
65
+ })
66
+ .onParticipantsLeave(async (context, state) => {
67
+ await context.sendActivity('Goodbye from the meeting!')
68
+ })
69
+ })
70
+ ```
71
+
72
+ ### Message Handling
73
+
74
+ Handle message events in Teams:
75
+
76
+ ```typescript
77
+ app.registerExtension<TeamsAgentExtension>(teamsExt, (tae) => {
78
+ tae.messages
79
+ .onMessageEdit(async (context, state) => {
80
+ await context.sendActivity('I noticed you edited your message.')
81
+ })
82
+
83
+ tae.onMessageDelete(async (context, state) => {
84
+ await context.sendActivity('I noticed you deleted a message.')
85
+ })
86
+
87
+ tae.onMessageUndelete(async (context, state) => {
88
+ await context.sendActivity('I noticed you undeleted a message.')
89
+ })
90
+ })
91
+ ```
92
+
93
+ ### Message Extensions
94
+
95
+ Work with Teams message extensions:
96
+
97
+ ```typescript
98
+ app.registerExtension<TeamsAgentExtension>(teamsExt, (tae) => {
99
+ tae.messageExtensions
100
+ .onQuery(async (context, state) => {
101
+ // Handle message extension query
102
+ return {
103
+ composeExtension: {
104
+ type: 'result',
105
+ attachmentLayout: 'list',
106
+ attachments: [
107
+ // Your card attachments here
108
+ ]
109
+ }
110
+ }
111
+ })
112
+ .onSelectItem(async (context, state) => {
113
+ // Handle item selection
114
+ })
115
+ })
116
+ ```
117
+
118
+ ### Task Modules
119
+
120
+ Handle Teams task modules:
121
+
122
+ ```typescript
123
+ app.registerExtension<TeamsAgentExtension>(teamsExt, (tae) => {
124
+ tae.taskModules
125
+ .onFetch('simple_form', async (context, state, request) => {
126
+ return {
127
+ task: {
128
+ type: 'message',
129
+ value: 'Open task module'
130
+ }
131
+ }
132
+ })
133
+ .onSubmit('simple_form', async (context, state, request) => {
134
+ return {
135
+ task: {
136
+ type: 'message',
137
+ value: 'Task module submitted'
138
+ }
139
+ }
140
+ })
141
+ })
142
+ ```
143
+
144
+ ## License
145
+
146
+ MIT
147
+
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/package.json",
3
+ "name": "@microsoft/agents-hosting-extensions-msteams",
4
+ "version": "1.7.0-beta.8.gc2b086aef6",
5
+ "homepage": "https://github.com/microsoft/Agents-for-js",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/microsoft/Agents-for-js.git"
9
+ },
10
+ "author": {
11
+ "name": "Microsoft",
12
+ "email": "agentssdk@microsoft.com",
13
+ "url": "https://aka.ms/Agents"
14
+ },
15
+ "description": "Microsoft 365 Agents SDK for JavaScript. MS Teams extensions",
16
+ "keywords": [
17
+ "Agents"
18
+ ],
19
+ "main": "dist/src/index.js",
20
+ "types": "dist/src/index.d.ts",
21
+ "dependencies": {
22
+ "@microsoft/agents-activity": "1.7.0-beta.8.gc2b086aef6",
23
+ "@microsoft/agents-hosting": "1.7.0-beta.8.gc2b086aef6",
24
+ "@microsoft/microsoft-graph-client": "3.0.7",
25
+ "@microsoft/teams.api": "2.0.14",
26
+ "zod": "3.25.75"
27
+ },
28
+ "license": "MIT",
29
+ "files": [
30
+ "README.md",
31
+ "dist/package.json",
32
+ "dist/src",
33
+ "src",
34
+ "package.json"
35
+ ],
36
+ "exports": {
37
+ ".": {
38
+ "import": "./dist/src/index.js",
39
+ "require": "./dist/src/index.js"
40
+ },
41
+ "./package.json": "./package.json"
42
+ },
43
+ "engines": {
44
+ "node": ">=20.0.0"
45
+ }
46
+ }
@@ -0,0 +1 @@
1
+ export { parseTeamsChannelData } from './teamsChannelData';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.parseTeamsChannelData = void 0;
6
+ var teamsChannelData_1 = require("./teamsChannelData");
7
+ Object.defineProperty(exports, "parseTeamsChannelData", { enumerable: true, get: function () { return teamsChannelData_1.parseTeamsChannelData; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/activity-extensions/index.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;AAElC,uDAA0D;AAAjD,yHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright(c) Microsoft Corporation.All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { ChannelData } from '@microsoft/teams.api';
6
+ /**
7
+ * Parses the given object as Teams ChannelData.
8
+ *
9
+ * @param {unknown} o - The value to parse.
10
+ * @returns {ChannelData} - The parsed ChannelData.
11
+ */
12
+ export declare function parseTeamsChannelData(o: unknown): ChannelData;
@@ -0,0 +1,29 @@
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.parseTeamsChannelData = parseTeamsChannelData;
8
+ const zod_1 = require("zod");
9
+ /**
10
+ * Root-level validation for Teams channel data objects.
11
+ *
12
+ * The Teams SDK already defines the nested ChannelData shape. This parser
13
+ * normalizes missing root data to an empty object, verifies non-nullish input is
14
+ * an object, and preserves all properties as-is.
15
+ */
16
+ const teamsChannelDataZodSchema = zod_1.z.object({}).passthrough();
17
+ /**
18
+ * Parses the given object as Teams ChannelData.
19
+ *
20
+ * @param {unknown} o - The value to parse.
21
+ * @returns {ChannelData} - The parsed ChannelData.
22
+ */
23
+ function parseTeamsChannelData(o) {
24
+ if (o == null) {
25
+ return {};
26
+ }
27
+ return teamsChannelDataZodSchema.parse(o);
28
+ }
29
+ //# sourceMappingURL=teamsChannelData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsChannelData.js","sourceRoot":"","sources":["../../../src/activity-extensions/teamsChannelData.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAoBH,sDAMC;AAxBD,6BAAuB;AAGvB;;;;;;GAMG;AACH,MAAM,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAE5D;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAE,CAAU;IAC/C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,OAAO,EAAiB,CAAA;IAC1B,CAAC;IAED,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAA;AAC1D,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './teamsAppExtensions';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ __exportStar(require("./teamsAppExtensions"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;;;;;;;;;;;;;;AAElC,uDAAoC"}
@@ -0,0 +1,145 @@
1
+ import { AgentApplication, ConversationUpdateEvents, RouteSelector, TurnState } from '@microsoft/agents-hosting';
2
+ import { TeamsRouteHandler } from '../teamsRouteHandler';
3
+ import { TeamsTurnContext } from '../teamsTurnContext';
4
+ /**
5
+ * Value submitted by a Teams feedback loop action.
6
+ */
7
+ export interface FeedbackActionValue {
8
+ /**
9
+ * Feedback reaction selected by the user.
10
+ */
11
+ reaction?: string;
12
+ /**
13
+ * Optional feedback text or structured feedback data.
14
+ */
15
+ feedback?: string | Record<string, unknown>;
16
+ }
17
+ /**
18
+ * Payload supplied to Teams feedback loop handlers.
19
+ */
20
+ export interface FeedbackData {
21
+ /**
22
+ * Name of the submitted action.
23
+ */
24
+ actionName?: string;
25
+ /**
26
+ * Value submitted with the feedback action.
27
+ */
28
+ actionValue?: FeedbackActionValue;
29
+ /**
30
+ * ID of the activity that the feedback applies to.
31
+ */
32
+ replyToId?: string;
33
+ }
34
+ /**
35
+ * Handler for Teams handoff invoke activities.
36
+ */
37
+ export type TeamsHandoffHandler<TState extends TurnState> = (context: TeamsTurnContext, state: TState, continuation: string) => Promise<void>;
38
+ /**
39
+ * Handler for Teams feedback loop invoke activities.
40
+ */
41
+ export type TeamsFeedbackLoopHandler<TState extends TurnState> = (context: TeamsTurnContext, state: TState, feedbackData: FeedbackData) => Promise<void>;
42
+ /**
43
+ * Registers a route that handles Teams activities by activity type.
44
+ *
45
+ * @param app - The agent application that receives the route.
46
+ * @param type - Activity type or regular expression to match.
47
+ * @param handler - Handler invoked with a Teams turn context and turn state.
48
+ * @param rank - Optional route rank used for route ordering.
49
+ * @param authHandlers - Optional authorization handlers required by the route.
50
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
51
+ * @returns The agent application for chaining.
52
+ */
53
+ export declare function onTeamsActivity<TState extends TurnState>(app: AgentApplication<TState>, type: string | RegExp, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
54
+ /**
55
+ * Registers a route that handles Teams conversation update activities.
56
+ *
57
+ * @param app - The agent application that receives the route.
58
+ * @param event - Conversation update event name to match.
59
+ * @param handler - Handler invoked with a Teams turn context and turn state.
60
+ * @param rank - Optional route rank used for route ordering.
61
+ * @param authHandlers - Optional authorization handlers required by the route.
62
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
63
+ * @returns The agent application for chaining.
64
+ */
65
+ export declare function onTeamsConversationUpdate<TState extends TurnState>(app: AgentApplication<TState>, event: ConversationUpdateEvents | string, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
66
+ /**
67
+ * Registers a route that handles Teams message activities by text.
68
+ *
69
+ * @param app - The agent application that receives the route.
70
+ * @param text - Message text or regular expression to match.
71
+ * @param handler - Handler invoked with a Teams turn context and turn state.
72
+ * @param rank - Optional route rank used for route ordering.
73
+ * @param authHandlers - Optional authorization handlers required by the route.
74
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
75
+ * @returns The agent application for chaining.
76
+ */
77
+ export declare function onTeamsMessage<TState extends TurnState>(app: AgentApplication<TState>, text: string | RegExp, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
78
+ /**
79
+ * Registers a route that handles Teams event activities by event name.
80
+ *
81
+ * @param app - The agent application that receives the route.
82
+ * @param name - Event name or regular expression to match.
83
+ * @param handler - Handler invoked with a Teams turn context and turn state.
84
+ * @param rank - Optional route rank used for route ordering.
85
+ * @param authHandlers - Optional authorization handlers required by the route.
86
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
87
+ * @returns The agent application for chaining.
88
+ */
89
+ export declare function onTeamsEvent<TState extends TurnState>(app: AgentApplication<TState>, name: string | RegExp, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
90
+ /**
91
+ * Registers a route that handles Teams event activities by custom selector.
92
+ *
93
+ * @param app - The agent application that receives the route.
94
+ * @param selector - Selector used to decide whether the route should run.
95
+ * @param handler - Handler invoked with a Teams turn context and turn state.
96
+ * @param rank - Optional route rank used for route ordering.
97
+ * @param authHandlers - Optional authorization handlers required by the route.
98
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
99
+ * @returns The agent application for chaining.
100
+ */
101
+ export declare function onTeamsEvent<TState extends TurnState>(app: AgentApplication<TState>, selector: RouteSelector, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
102
+ /**
103
+ * Registers a route that handles Teams message reaction added activities.
104
+ *
105
+ * @param app - The agent application that receives the route.
106
+ * @param handler - Handler invoked with a Teams turn context and turn state.
107
+ * @param rank - Optional route rank used for route ordering.
108
+ * @param authHandlers - Optional authorization handlers required by the route.
109
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
110
+ * @returns The agent application for chaining.
111
+ */
112
+ export declare function onTeamsMessageReactionsAdded<TState extends TurnState>(app: AgentApplication<TState>, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
113
+ /**
114
+ * Registers a route that handles Teams message reaction removed activities.
115
+ *
116
+ * @param app - The agent application that receives the route.
117
+ * @param handler - Handler invoked with a Teams turn context and turn state.
118
+ * @param rank - Optional route rank used for route ordering.
119
+ * @param authHandlers - Optional authorization handlers required by the route.
120
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
121
+ * @returns The agent application for chaining.
122
+ */
123
+ export declare function onTeamsMessageReactionsRemoved<TState extends TurnState>(app: AgentApplication<TState>, handler: TeamsRouteHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
124
+ /**
125
+ * Registers a route that handles Teams handoff invoke activities.
126
+ *
127
+ * @param app - The agent application that receives the route.
128
+ * @param handler - Handler invoked with the handoff continuation value.
129
+ * @param rank - Optional route rank used for route ordering.
130
+ * @param authHandlers - Optional authorization handlers required by the route.
131
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
132
+ * @returns The agent application for chaining.
133
+ */
134
+ export declare function onTeamsHandoff<TState extends TurnState>(app: AgentApplication<TState>, handler: TeamsHandoffHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
135
+ /**
136
+ * Registers a route that handles Teams feedback loop invoke activities.
137
+ *
138
+ * @param app - The agent application that receives the route.
139
+ * @param handler - Handler invoked with feedback loop data.
140
+ * @param rank - Optional route rank used for route ordering.
141
+ * @param authHandlers - Optional authorization handlers required by the route.
142
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
143
+ * @returns The agent application for chaining.
144
+ */
145
+ export declare function onTeamsFeedbackLoop<TState extends TurnState>(app: AgentApplication<TState>, handler: TeamsFeedbackLoopHandler<TState>, rank?: number, authHandlers?: string[], isAgenticRoute?: boolean): AgentApplication<TState>;
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.onTeamsActivity = onTeamsActivity;
6
+ exports.onTeamsConversationUpdate = onTeamsConversationUpdate;
7
+ exports.onTeamsMessage = onTeamsMessage;
8
+ exports.onTeamsEvent = onTeamsEvent;
9
+ exports.onTeamsMessageReactionsAdded = onTeamsMessageReactionsAdded;
10
+ exports.onTeamsMessageReactionsRemoved = onTeamsMessageReactionsRemoved;
11
+ exports.onTeamsHandoff = onTeamsHandoff;
12
+ exports.onTeamsFeedbackLoop = onTeamsFeedbackLoop;
13
+ const agents_activity_1 = require("@microsoft/agents-activity");
14
+ const agents_hosting_1 = require("@microsoft/agents-hosting");
15
+ const teamsRouteHandler_1 = require("../teamsRouteHandler");
16
+ const teamsTurnContext_1 = require("../teamsTurnContext");
17
+ function isTeamsRouteContext(context, isAgenticRoute) {
18
+ return context.activity.channelId === agents_activity_1.Channels.Msteams &&
19
+ (!isAgenticRoute || (isAgenticRoute && context.activity.isAgenticRequest()));
20
+ }
21
+ function matchesValue(actual, expected) {
22
+ if (typeof expected === 'string') {
23
+ return expected.toLocaleLowerCase() === (actual === null || actual === void 0 ? void 0 : actual.toLocaleLowerCase());
24
+ }
25
+ return actual != null && expected.test(actual);
26
+ }
27
+ function addTeamsRoute(app, selector, handler, isInvokeRoute, rank, authHandlers, isAgenticRoute) {
28
+ return app.addRoute(selector, handler, isInvokeRoute, rank, authHandlers, isAgenticRoute);
29
+ }
30
+ function addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute) {
31
+ return addTeamsRoute(app, selector, (0, teamsRouteHandler_1.createTeamsRouteHandler)(handler), false, rank, authHandlers, isAgenticRoute);
32
+ }
33
+ function createInvokeResponse() {
34
+ const invokeResponse = new agents_activity_1.Activity(agents_activity_1.ActivityTypes.InvokeResponse);
35
+ invokeResponse.value = { status: 200 };
36
+ return invokeResponse;
37
+ }
38
+ /**
39
+ * Registers a route that handles Teams activities by activity type.
40
+ *
41
+ * @param app - The agent application that receives the route.
42
+ * @param type - Activity type or regular expression to match.
43
+ * @param handler - Handler invoked with a Teams turn context and turn state.
44
+ * @param rank - Optional route rank used for route ordering.
45
+ * @param authHandlers - Optional authorization handlers required by the route.
46
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
47
+ * @returns The agent application for chaining.
48
+ */
49
+ function onTeamsActivity(app, type, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
50
+ const selector = async (context) => isTeamsRouteContext(context, isAgenticRoute) &&
51
+ matchesValue(context.activity.type, type);
52
+ return addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute);
53
+ }
54
+ /**
55
+ * Registers a route that handles Teams conversation update activities.
56
+ *
57
+ * @param app - The agent application that receives the route.
58
+ * @param event - Conversation update event name to match.
59
+ * @param handler - Handler invoked with a Teams turn context and turn state.
60
+ * @param rank - Optional route rank used for route ordering.
61
+ * @param authHandlers - Optional authorization handlers required by the route.
62
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
63
+ * @returns The agent application for chaining.
64
+ */
65
+ function onTeamsConversationUpdate(app, event, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
66
+ const selector = async (context) => {
67
+ if (!isTeamsRouteContext(context, isAgenticRoute) ||
68
+ context.activity.type !== agents_activity_1.ActivityTypes.ConversationUpdate) {
69
+ return false;
70
+ }
71
+ if (event === 'membersAdded') {
72
+ return Array.isArray(context.activity.membersAdded) && context.activity.membersAdded.length > 0;
73
+ }
74
+ if (event === 'membersRemoved') {
75
+ return Array.isArray(context.activity.membersRemoved) && context.activity.membersRemoved.length > 0;
76
+ }
77
+ return true;
78
+ };
79
+ return addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute);
80
+ }
81
+ /**
82
+ * Registers a route that handles Teams message activities by text.
83
+ *
84
+ * @param app - The agent application that receives the route.
85
+ * @param text - Message text or regular expression to match.
86
+ * @param handler - Handler invoked with a Teams turn context and turn state.
87
+ * @param rank - Optional route rank used for route ordering.
88
+ * @param authHandlers - Optional authorization handlers required by the route.
89
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
90
+ * @returns The agent application for chaining.
91
+ */
92
+ function onTeamsMessage(app, text, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
93
+ const selector = async (context) => isTeamsRouteContext(context, isAgenticRoute) &&
94
+ context.activity.type === agents_activity_1.ActivityTypes.Message &&
95
+ matchesValue(context.activity.text, text);
96
+ return addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute);
97
+ }
98
+ function onTeamsEvent(app, nameOrSelector, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
99
+ const selector = async (context) => {
100
+ if (!isTeamsRouteContext(context, isAgenticRoute) ||
101
+ context.activity.type !== agents_activity_1.ActivityTypes.Event) {
102
+ return false;
103
+ }
104
+ if (typeof nameOrSelector === 'function') {
105
+ return await nameOrSelector(context);
106
+ }
107
+ return matchesValue(context.activity.name, nameOrSelector);
108
+ };
109
+ return addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute);
110
+ }
111
+ /**
112
+ * Registers a route that handles Teams message reaction added activities.
113
+ *
114
+ * @param app - The agent application that receives the route.
115
+ * @param handler - Handler invoked with a Teams turn context and turn state.
116
+ * @param rank - Optional route rank used for route ordering.
117
+ * @param authHandlers - Optional authorization handlers required by the route.
118
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
119
+ * @returns The agent application for chaining.
120
+ */
121
+ function onTeamsMessageReactionsAdded(app, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
122
+ const selector = async (context) => isTeamsRouteContext(context, isAgenticRoute) &&
123
+ context.activity.type === agents_activity_1.ActivityTypes.MessageReaction &&
124
+ Array.isArray(context.activity.reactionsAdded) &&
125
+ context.activity.reactionsAdded.length > 0;
126
+ return addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute);
127
+ }
128
+ /**
129
+ * Registers a route that handles Teams message reaction removed activities.
130
+ *
131
+ * @param app - The agent application that receives the route.
132
+ * @param handler - Handler invoked with a Teams turn context and turn state.
133
+ * @param rank - Optional route rank used for route ordering.
134
+ * @param authHandlers - Optional authorization handlers required by the route.
135
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
136
+ * @returns The agent application for chaining.
137
+ */
138
+ function onTeamsMessageReactionsRemoved(app, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
139
+ const selector = async (context) => isTeamsRouteContext(context, isAgenticRoute) &&
140
+ context.activity.type === agents_activity_1.ActivityTypes.MessageReaction &&
141
+ Array.isArray(context.activity.reactionsRemoved) &&
142
+ context.activity.reactionsRemoved.length > 0;
143
+ return addTeamsRouteHandler(app, selector, handler, rank, authHandlers, isAgenticRoute);
144
+ }
145
+ /**
146
+ * Registers a route that handles Teams handoff invoke activities.
147
+ *
148
+ * @param app - The agent application that receives the route.
149
+ * @param handler - Handler invoked with the handoff continuation value.
150
+ * @param rank - Optional route rank used for route ordering.
151
+ * @param authHandlers - Optional authorization handlers required by the route.
152
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
153
+ * @returns The agent application for chaining.
154
+ */
155
+ function onTeamsHandoff(app, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
156
+ const selector = async (context) => {
157
+ var _a;
158
+ return isTeamsRouteContext(context, isAgenticRoute) &&
159
+ context.activity.type === agents_activity_1.ActivityTypes.Invoke &&
160
+ ((_a = context.activity.name) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'handoff/action';
161
+ };
162
+ const routeHandler = async (context, state) => {
163
+ const value = context.activity.value;
164
+ const continuation = typeof (value === null || value === void 0 ? void 0 : value.continuation) === 'string'
165
+ ? value.continuation
166
+ : typeof (value === null || value === void 0 ? void 0 : value.Continuation) === 'string' ? value.Continuation : '';
167
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, continuation);
168
+ await context.sendActivity(createInvokeResponse());
169
+ };
170
+ return addTeamsRoute(app, selector, routeHandler, true, rank, authHandlers, isAgenticRoute);
171
+ }
172
+ /**
173
+ * Registers a route that handles Teams feedback loop invoke activities.
174
+ *
175
+ * @param app - The agent application that receives the route.
176
+ * @param handler - Handler invoked with feedback loop data.
177
+ * @param rank - Optional route rank used for route ordering.
178
+ * @param authHandlers - Optional authorization handlers required by the route.
179
+ * @param isAgenticRoute - Indicates whether the route should handle agentic requests only.
180
+ * @returns The agent application for chaining.
181
+ */
182
+ function onTeamsFeedbackLoop(app, handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = [], isAgenticRoute = false) {
183
+ const selector = async (context) => {
184
+ var _a;
185
+ const actionName = (_a = context.activity.value) === null || _a === void 0 ? void 0 : _a.actionName;
186
+ return isTeamsRouteContext(context, isAgenticRoute) &&
187
+ context.activity.type === agents_activity_1.ActivityTypes.Invoke &&
188
+ context.activity.name === 'message/submitAction' &&
189
+ actionName === 'feedback';
190
+ };
191
+ const routeHandler = async (context, state) => {
192
+ const feedbackData = {
193
+ ...context.activity.value,
194
+ replyToId: context.activity.replyToId
195
+ };
196
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, feedbackData);
197
+ await context.sendActivity(createInvokeResponse());
198
+ };
199
+ return addTeamsRoute(app, selector, routeHandler, true, rank, authHandlers, isAgenticRoute);
200
+ }
201
+ //# sourceMappingURL=teamsAppExtensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsAppExtensions.js","sourceRoot":"","sources":["../../../src/app/teamsAppExtensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './teamsChannel';