@cuylabs/agent-channel-teams 3.2.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/dist/chunk-MBDHSFBF.js +357 -0
- package/dist/index.d.ts +31 -216
- package/dist/index.js +60 -284
- package/dist/proactive-DF5XvDLJ.d.ts +258 -0
- package/dist/proactive.d.ts +7 -0
- package/dist/proactive.js +21 -0
- package/package.json +20 -10
package/dist/index.js
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Conversation,
|
|
3
|
+
ConversationBuilder,
|
|
4
|
+
ConversationReferenceBuilder,
|
|
5
|
+
CreateConversationOptionsBuilder,
|
|
6
|
+
TEAMS_ACTIONABLE_MESSAGE_NAMES,
|
|
7
|
+
TEAMS_ADAPTIVE_CARD_ACTION_NAMES,
|
|
8
|
+
TEAMS_ADAPTIVE_CARD_SEARCH_NAMES,
|
|
9
|
+
TEAMS_CARD_ACTION_SUBMIT_NAMES,
|
|
10
|
+
TEAMS_CONFIG_FETCH_NAMES,
|
|
11
|
+
TEAMS_CONFIG_SUBMIT_NAMES,
|
|
12
|
+
TEAMS_CONVERSATION_UPDATE_EVENT_NAMES,
|
|
13
|
+
TEAMS_FILE_CONSENT_NAMES,
|
|
14
|
+
TEAMS_MEETING_EVENT_NAMES,
|
|
15
|
+
TEAMS_MEETING_INVOKE_NAMES,
|
|
16
|
+
TEAMS_MESSAGE_EXTENSION_CARD_BUTTON_CLICKED_NAMES,
|
|
17
|
+
TEAMS_MESSAGE_EXTENSION_FETCH_TASK_NAMES,
|
|
18
|
+
TEAMS_MESSAGE_EXTENSION_QUERY_NAMES,
|
|
19
|
+
TEAMS_MESSAGE_EXTENSION_QUERY_SETTING_URL_NAMES,
|
|
20
|
+
TEAMS_MESSAGE_EXTENSION_SELECT_NAMES,
|
|
21
|
+
TEAMS_MESSAGE_EXTENSION_SETTING_NAMES,
|
|
22
|
+
TEAMS_MESSAGE_EXTENSION_SUBMIT_ACTION_NAMES,
|
|
23
|
+
TEAMS_TAB_FETCH_NAMES,
|
|
24
|
+
TEAMS_TAB_SUBMIT_NAMES,
|
|
25
|
+
TEAMS_TASK_MODULE_FETCH_NAMES,
|
|
26
|
+
TEAMS_TASK_MODULE_SUBMIT_NAMES,
|
|
27
|
+
captureM365ConversationReference,
|
|
28
|
+
captureTeamsConversationReference,
|
|
29
|
+
continueM365Conversation,
|
|
30
|
+
isTargetedTeamsActivity,
|
|
31
|
+
makeTargetedTeamsActivity,
|
|
32
|
+
parseTeamsActivity,
|
|
33
|
+
parseTeamsActivitySafe,
|
|
34
|
+
restoreM365ConversationReference
|
|
35
|
+
} from "./chunk-MBDHSFBF.js";
|
|
1
36
|
import {
|
|
2
37
|
TeamsAttachmentDownloader,
|
|
3
38
|
TeamsInfo,
|
|
@@ -10,7 +45,7 @@ import {
|
|
|
10
45
|
extractUserIdentity,
|
|
11
46
|
runWithM365TurnContext
|
|
12
47
|
} from "@cuylabs/agent-channel-m365";
|
|
13
|
-
import { ActivityTypes as
|
|
48
|
+
import { ActivityTypes as ActivityTypes2 } from "@microsoft/agents-activity";
|
|
14
49
|
|
|
15
50
|
// src/invoke.ts
|
|
16
51
|
import { Activity, ActivityTypes } from "@microsoft/agents-activity";
|
|
@@ -28,275 +63,6 @@ async function sendTeamsInvoke(context, body, status = 200) {
|
|
|
28
63
|
);
|
|
29
64
|
}
|
|
30
65
|
|
|
31
|
-
// src/teams-activity.ts
|
|
32
|
-
import { ActivityTypes as ActivityTypes2 } from "@microsoft/agents-activity";
|
|
33
|
-
function asObject(value) {
|
|
34
|
-
return value && typeof value === "object" ? value : void 0;
|
|
35
|
-
}
|
|
36
|
-
function readString(value, key) {
|
|
37
|
-
const candidate = value?.[key];
|
|
38
|
-
return typeof candidate === "string" && candidate.trim() ? candidate : void 0;
|
|
39
|
-
}
|
|
40
|
-
function detectSurface(conversationType, meetingId, teamId) {
|
|
41
|
-
if (meetingId) return "meeting";
|
|
42
|
-
if (teamId) return "channel";
|
|
43
|
-
if (conversationType === "personal") return "personal";
|
|
44
|
-
if (conversationType === "groupChat") return "group";
|
|
45
|
-
return "unknown";
|
|
46
|
-
}
|
|
47
|
-
function includesName(names, candidate) {
|
|
48
|
-
return !!candidate && names.includes(candidate);
|
|
49
|
-
}
|
|
50
|
-
function parseTypedChannelData(channelData, options = {}) {
|
|
51
|
-
if (!channelData) return void 0;
|
|
52
|
-
try {
|
|
53
|
-
return parseTeamsChannelData(channelData);
|
|
54
|
-
} catch (error) {
|
|
55
|
-
if (options.strictChannelData ?? true) {
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
return void 0;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
var TEAMS_CONFIG_FETCH_NAMES = ["config/fetch"];
|
|
62
|
-
var TEAMS_CONFIG_SUBMIT_NAMES = ["config/submit"];
|
|
63
|
-
var TEAMS_FILE_CONSENT_NAMES = ["fileConsent/invoke"];
|
|
64
|
-
var TEAMS_ACTIONABLE_MESSAGE_NAMES = [
|
|
65
|
-
"actionableMessage/executeAction"
|
|
66
|
-
];
|
|
67
|
-
var TEAMS_ADAPTIVE_CARD_ACTION_NAMES = [
|
|
68
|
-
"adaptiveCard/action"
|
|
69
|
-
];
|
|
70
|
-
var TEAMS_ADAPTIVE_CARD_SEARCH_NAMES = ["application/search"];
|
|
71
|
-
var TEAMS_TASK_MODULE_FETCH_NAMES = [
|
|
72
|
-
"task/fetch",
|
|
73
|
-
"composeExtension/fetchTask"
|
|
74
|
-
];
|
|
75
|
-
var TEAMS_TASK_MODULE_SUBMIT_NAMES = ["task/submit"];
|
|
76
|
-
var TEAMS_TAB_FETCH_NAMES = ["tab/fetch"];
|
|
77
|
-
var TEAMS_TAB_SUBMIT_NAMES = ["tab/submit"];
|
|
78
|
-
var TEAMS_MESSAGE_EXTENSION_QUERY_NAMES = [
|
|
79
|
-
"composeExtension/query",
|
|
80
|
-
"composeExtension/queryLink",
|
|
81
|
-
"composeExtension/anonymousQueryLink"
|
|
82
|
-
];
|
|
83
|
-
var TEAMS_MESSAGE_EXTENSION_SUBMIT_ACTION_NAMES = [
|
|
84
|
-
"composeExtension/submitAction"
|
|
85
|
-
];
|
|
86
|
-
var TEAMS_MESSAGE_EXTENSION_FETCH_TASK_NAMES = [
|
|
87
|
-
"composeExtension/fetchTask"
|
|
88
|
-
];
|
|
89
|
-
var TEAMS_MESSAGE_EXTENSION_QUERY_SETTING_URL_NAMES = [
|
|
90
|
-
"composeExtension/querySettingUrl"
|
|
91
|
-
];
|
|
92
|
-
var TEAMS_MESSAGE_EXTENSION_SETTING_NAMES = [
|
|
93
|
-
"composeExtension/setting"
|
|
94
|
-
];
|
|
95
|
-
var TEAMS_MESSAGE_EXTENSION_CARD_BUTTON_CLICKED_NAMES = [
|
|
96
|
-
"composeExtension/onCardButtonClicked"
|
|
97
|
-
];
|
|
98
|
-
var TEAMS_MESSAGE_EXTENSION_SELECT_NAMES = [
|
|
99
|
-
"composeExtension/selectItem"
|
|
100
|
-
];
|
|
101
|
-
var TEAMS_CARD_ACTION_SUBMIT_NAMES = ["message/submitAction"];
|
|
102
|
-
var TEAMS_CONVERSATION_UPDATE_EVENT_NAMES = {
|
|
103
|
-
channelCreated: "channel-created",
|
|
104
|
-
channelDeleted: "channel-deleted",
|
|
105
|
-
channelRenamed: "channel-renamed",
|
|
106
|
-
channelRestored: "channel-restored",
|
|
107
|
-
channelShared: "channel-shared",
|
|
108
|
-
channelUnshared: "channel-unshared",
|
|
109
|
-
teamRenamed: "team-renamed",
|
|
110
|
-
teamArchived: "team-archived",
|
|
111
|
-
teamUnarchived: "team-unarchived",
|
|
112
|
-
teamDeleted: "team-deleted",
|
|
113
|
-
teamHardDeleted: "team-hard-deleted",
|
|
114
|
-
teamRestored: "team-restored"
|
|
115
|
-
};
|
|
116
|
-
var TEAMS_MEETING_EVENT_NAMES = {
|
|
117
|
-
"application/vnd.microsoft.readReceipt": "read-receipt",
|
|
118
|
-
"application/vnd.microsoft.meetingStart": "meeting-start",
|
|
119
|
-
"application/vnd.microsoft.meetingEnd": "meeting-end",
|
|
120
|
-
"application/vnd.microsoft.meetingParticipantJoin": "participants-join",
|
|
121
|
-
"application/vnd.microsoft.meetingParticipantLeave": "participants-leave",
|
|
122
|
-
"application/vnd.microsoft.meetingRoomJoin": "meeting-room-join",
|
|
123
|
-
"application/vnd.microsoft.meetingRoomLeave": "meeting-room-leave",
|
|
124
|
-
"application/vnd.microsoft.meetingReaction": "meeting-reaction",
|
|
125
|
-
"application/vnd.microsoft.meetingPollResponse": "meeting-poll-response",
|
|
126
|
-
"application/vnd.microsoft.meetingAppsInstalled": "meeting-apps-installed",
|
|
127
|
-
"application/vnd.microsoft.meetingAppsUninstalled": "meeting-apps-uninstalled",
|
|
128
|
-
"application/vnd.microsoft.meetingRecordingStarted": "meeting-recording-started",
|
|
129
|
-
"application/vnd.microsoft.meetingRecordingStopped": "meeting-recording-stopped",
|
|
130
|
-
"application/vnd.microsoft.meetingFocusChange": "meeting-focus-change",
|
|
131
|
-
"application/vnd.microsoft.meetingScreenShareStart": "meeting-screen-share-start",
|
|
132
|
-
"application/vnd.microsoft.meetingScreenShareStop": "meeting-screen-share-stop"
|
|
133
|
-
};
|
|
134
|
-
var TEAMS_MEETING_INVOKE_NAMES = {
|
|
135
|
-
"application/vnd.microsoft.meetingStageView": "meeting-stage-view",
|
|
136
|
-
"application/vnd.microsoft.meetingSmartReply": "meeting-smart-reply"
|
|
137
|
-
};
|
|
138
|
-
function detectKind(context, eventType) {
|
|
139
|
-
const { activity } = context;
|
|
140
|
-
const payload = asObject(activity.value);
|
|
141
|
-
const invokeName = activity.name;
|
|
142
|
-
switch (activity.type) {
|
|
143
|
-
case ActivityTypes2.Message:
|
|
144
|
-
return "message";
|
|
145
|
-
case ActivityTypes2.MessageReaction:
|
|
146
|
-
return "reaction";
|
|
147
|
-
case ActivityTypes2.ConversationUpdate:
|
|
148
|
-
if (Array.isArray(activity.membersAdded) && activity.membersAdded.length > 0) {
|
|
149
|
-
return "members-added";
|
|
150
|
-
}
|
|
151
|
-
if (Array.isArray(activity.membersRemoved) && activity.membersRemoved.length > 0) {
|
|
152
|
-
return "members-removed";
|
|
153
|
-
}
|
|
154
|
-
if (eventType && eventType in TEAMS_CONVERSATION_UPDATE_EVENT_NAMES) {
|
|
155
|
-
return TEAMS_CONVERSATION_UPDATE_EVENT_NAMES[eventType];
|
|
156
|
-
}
|
|
157
|
-
return "conversation-update";
|
|
158
|
-
case ActivityTypes2.MessageUpdate:
|
|
159
|
-
if (eventType === "editMessage") return "message-edit";
|
|
160
|
-
if (eventType === "undeleteMessage") return "message-restore";
|
|
161
|
-
return "other";
|
|
162
|
-
case ActivityTypes2.MessageDelete:
|
|
163
|
-
if (eventType === "softDeleteMessage") return "message-delete";
|
|
164
|
-
return "other";
|
|
165
|
-
case ActivityTypes2.Event:
|
|
166
|
-
if (invokeName && invokeName in TEAMS_MEETING_EVENT_NAMES) {
|
|
167
|
-
return TEAMS_MEETING_EVENT_NAMES[invokeName];
|
|
168
|
-
}
|
|
169
|
-
return "other";
|
|
170
|
-
case ActivityTypes2.Invoke:
|
|
171
|
-
if (invokeName && invokeName in TEAMS_MEETING_INVOKE_NAMES) {
|
|
172
|
-
return TEAMS_MEETING_INVOKE_NAMES[invokeName];
|
|
173
|
-
}
|
|
174
|
-
if (includesName(TEAMS_CONFIG_FETCH_NAMES, invokeName)) {
|
|
175
|
-
return "config-fetch";
|
|
176
|
-
}
|
|
177
|
-
if (includesName(TEAMS_CONFIG_SUBMIT_NAMES, invokeName)) {
|
|
178
|
-
return "config-submit";
|
|
179
|
-
}
|
|
180
|
-
if (includesName(TEAMS_FILE_CONSENT_NAMES, invokeName)) {
|
|
181
|
-
return "file-consent";
|
|
182
|
-
}
|
|
183
|
-
if (includesName(TEAMS_ACTIONABLE_MESSAGE_NAMES, invokeName)) {
|
|
184
|
-
return "actionable-message-execute-action";
|
|
185
|
-
}
|
|
186
|
-
if (includesName(TEAMS_ADAPTIVE_CARD_ACTION_NAMES, invokeName)) {
|
|
187
|
-
return "adaptive-card-action";
|
|
188
|
-
}
|
|
189
|
-
if (includesName(TEAMS_ADAPTIVE_CARD_SEARCH_NAMES, invokeName)) {
|
|
190
|
-
return "adaptive-card-search";
|
|
191
|
-
}
|
|
192
|
-
if (includesName(TEAMS_TASK_MODULE_FETCH_NAMES, invokeName)) {
|
|
193
|
-
return invokeName === "composeExtension/fetchTask" ? "message-extension-fetch-task" : "task-fetch";
|
|
194
|
-
}
|
|
195
|
-
if (includesName(TEAMS_TASK_MODULE_SUBMIT_NAMES, invokeName)) {
|
|
196
|
-
return "task-submit";
|
|
197
|
-
}
|
|
198
|
-
if (includesName(TEAMS_TAB_FETCH_NAMES, invokeName)) {
|
|
199
|
-
return "tab-fetch";
|
|
200
|
-
}
|
|
201
|
-
if (includesName(TEAMS_TAB_SUBMIT_NAMES, invokeName)) {
|
|
202
|
-
return "tab-submit";
|
|
203
|
-
}
|
|
204
|
-
if (includesName(TEAMS_MESSAGE_EXTENSION_QUERY_NAMES, invokeName)) {
|
|
205
|
-
switch (invokeName) {
|
|
206
|
-
case "composeExtension/queryLink":
|
|
207
|
-
return "message-extension-query-link";
|
|
208
|
-
case "composeExtension/anonymousQueryLink":
|
|
209
|
-
return "message-extension-anonymous-query-link";
|
|
210
|
-
default:
|
|
211
|
-
return "message-extension-query";
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
if (includesName(TEAMS_MESSAGE_EXTENSION_SELECT_NAMES, invokeName)) {
|
|
215
|
-
return "message-extension-select-item";
|
|
216
|
-
}
|
|
217
|
-
if (includesName(TEAMS_MESSAGE_EXTENSION_SUBMIT_ACTION_NAMES, invokeName)) {
|
|
218
|
-
return "message-extension-submit-action";
|
|
219
|
-
}
|
|
220
|
-
if (includesName(
|
|
221
|
-
TEAMS_MESSAGE_EXTENSION_QUERY_SETTING_URL_NAMES,
|
|
222
|
-
invokeName
|
|
223
|
-
)) {
|
|
224
|
-
return "message-extension-query-setting-url";
|
|
225
|
-
}
|
|
226
|
-
if (includesName(TEAMS_MESSAGE_EXTENSION_SETTING_NAMES, invokeName)) {
|
|
227
|
-
return "message-extension-setting";
|
|
228
|
-
}
|
|
229
|
-
if (includesName(
|
|
230
|
-
TEAMS_MESSAGE_EXTENSION_CARD_BUTTON_CLICKED_NAMES,
|
|
231
|
-
invokeName
|
|
232
|
-
)) {
|
|
233
|
-
return "message-extension-card-button-clicked";
|
|
234
|
-
}
|
|
235
|
-
if (includesName(TEAMS_CARD_ACTION_SUBMIT_NAMES, invokeName)) {
|
|
236
|
-
return payload?.actionName === "feedback" ? "feedback" : "card-submit";
|
|
237
|
-
}
|
|
238
|
-
return "invoke";
|
|
239
|
-
default:
|
|
240
|
-
return "other";
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
function parseActors(channelData) {
|
|
244
|
-
const raw = channelData?.onBehalfOf;
|
|
245
|
-
if (!Array.isArray(raw)) return [];
|
|
246
|
-
const actors = [];
|
|
247
|
-
for (const item of raw) {
|
|
248
|
-
const actor = asObject(item);
|
|
249
|
-
const itemRef = asObject(actor?.item);
|
|
250
|
-
actors.push({
|
|
251
|
-
id: readString(itemRef, "id"),
|
|
252
|
-
displayName: readString(itemRef, "displayName"),
|
|
253
|
-
tenantId: readString(actor, "tenantId"),
|
|
254
|
-
userPrincipalName: readString(itemRef, "userPrincipalName")
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
return actors.filter(
|
|
258
|
-
(actor) => actor.id !== void 0 || actor.displayName !== void 0 || actor.userPrincipalName !== void 0
|
|
259
|
-
);
|
|
260
|
-
}
|
|
261
|
-
function parseTeamsActivity(context, options = {}) {
|
|
262
|
-
const { activity } = context;
|
|
263
|
-
const channelData = asObject(activity.channelData);
|
|
264
|
-
const parsedChannelData = parseTypedChannelData(channelData, options);
|
|
265
|
-
const team = asObject(channelData?.team);
|
|
266
|
-
const channel = asObject(channelData?.channel);
|
|
267
|
-
const tenant = asObject(channelData?.tenant);
|
|
268
|
-
const meeting = asObject(channelData?.meeting);
|
|
269
|
-
const eventType = parsedChannelData?.eventType ?? readString(channelData, "eventType");
|
|
270
|
-
const conversationType = typeof activity.conversation?.conversationType === "string" ? activity.conversation.conversationType : void 0;
|
|
271
|
-
const teamId = parsedChannelData?.team?.aadGroupId ?? parsedChannelData?.team?.id ?? readString(team, "aadGroupId") ?? readString(team, "id");
|
|
272
|
-
const meetingId = parsedChannelData?.meeting?.id ?? readString(meeting, "id");
|
|
273
|
-
const surface = detectSurface(
|
|
274
|
-
conversationType,
|
|
275
|
-
meetingId,
|
|
276
|
-
teamId
|
|
277
|
-
);
|
|
278
|
-
return {
|
|
279
|
-
channelId: activity.channelId ?? "unknown",
|
|
280
|
-
conversationId: activity.conversation?.id ?? "unknown",
|
|
281
|
-
activityId: activity.id ?? void 0,
|
|
282
|
-
messageId: activity.id ?? void 0,
|
|
283
|
-
replyToId: activity.replyToId ?? void 0,
|
|
284
|
-
invokeName: activity.name ?? void 0,
|
|
285
|
-
eventType,
|
|
286
|
-
tenantId: parsedChannelData?.tenant?.id ?? readString(tenant, "id") ?? activity.conversation?.tenantId,
|
|
287
|
-
teamId,
|
|
288
|
-
channelData: parsedChannelData,
|
|
289
|
-
channelThreadId: parsedChannelData?.channel?.id ?? readString(channel, "id"),
|
|
290
|
-
meetingId,
|
|
291
|
-
surface,
|
|
292
|
-
kind: detectKind(context, eventType),
|
|
293
|
-
actors: parseActors(channelData)
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
function parseTeamsActivitySafe(context) {
|
|
297
|
-
return parseTeamsActivity(context, { strictChannelData: false });
|
|
298
|
-
}
|
|
299
|
-
|
|
300
66
|
// src/adapter.ts
|
|
301
67
|
function createTeamsChannelAdapter(options) {
|
|
302
68
|
const {
|
|
@@ -362,8 +128,8 @@ function createTeamsChannelAdapter(options) {
|
|
|
362
128
|
await base.handler(context);
|
|
363
129
|
return;
|
|
364
130
|
}
|
|
365
|
-
const isTeamsSpecificEvent = context.activity.type ===
|
|
366
|
-
const isTeamsSpecificActivity = context.activity.type ===
|
|
131
|
+
const isTeamsSpecificEvent = context.activity.type === ActivityTypes2.Event && teams.kind !== "other";
|
|
132
|
+
const isTeamsSpecificActivity = context.activity.type === ActivityTypes2.ConversationUpdate || context.activity.type === ActivityTypes2.MessageUpdate || context.activity.type === ActivityTypes2.MessageDelete || context.activity.type === ActivityTypes2.MessageReaction || isTeamsSpecificEvent;
|
|
367
133
|
if (isTeamsSpecificActivity) {
|
|
368
134
|
const dispatch = await dispatchTeamsHandler(
|
|
369
135
|
handlers,
|
|
@@ -433,7 +199,7 @@ async function dispatchTeamsHandler(handlers, kind, context) {
|
|
|
433
199
|
return { handled: false };
|
|
434
200
|
}
|
|
435
201
|
const result = await handler(context);
|
|
436
|
-
if (context.turnContext.activity.type ===
|
|
202
|
+
if (context.turnContext.activity.type === ActivityTypes2.Invoke && result !== "continue") {
|
|
437
203
|
if (!getInvokeResponseSent(context) && isTeamsInvokeResult(result)) {
|
|
438
204
|
await context.sendInvoke(result.body, result.status);
|
|
439
205
|
} else if (!getInvokeResponseSent(context) && result === void 0) {
|
|
@@ -959,13 +725,13 @@ function createTeamsHumanInputRequestCard(input, options = {}) {
|
|
|
959
725
|
}
|
|
960
726
|
function parseTeamsInputRequestSubmit(value) {
|
|
961
727
|
const data = readSubmitData(value);
|
|
962
|
-
const verb =
|
|
963
|
-
const requestId =
|
|
728
|
+
const verb = readString(data, "verb");
|
|
729
|
+
const requestId = readString(data, "requestId");
|
|
964
730
|
if (!requestId || verb !== TEAMS_INPUT_REQUEST_APPROVAL_VERB && verb !== TEAMS_INPUT_REQUEST_HUMAN_VERB) {
|
|
965
731
|
return void 0;
|
|
966
732
|
}
|
|
967
|
-
const sessionId =
|
|
968
|
-
const turnId =
|
|
733
|
+
const sessionId = readString(data, "sessionId");
|
|
734
|
+
const turnId = readString(data, "turnId");
|
|
969
735
|
if (verb === TEAMS_INPUT_REQUEST_APPROVAL_VERB) {
|
|
970
736
|
const action = readApprovalAction(data);
|
|
971
737
|
if (!action) {
|
|
@@ -1067,10 +833,10 @@ function readSubmitData(value) {
|
|
|
1067
833
|
};
|
|
1068
834
|
}
|
|
1069
835
|
function readHumanInputResponse(data) {
|
|
1070
|
-
const responseKind =
|
|
836
|
+
const responseKind = readString(data, "responseKind");
|
|
1071
837
|
switch (responseKind) {
|
|
1072
838
|
case "text": {
|
|
1073
|
-
const text =
|
|
839
|
+
const text = readString(data, "text") ?? "";
|
|
1074
840
|
return { kind: "text", text };
|
|
1075
841
|
}
|
|
1076
842
|
case "confirm": {
|
|
@@ -1078,7 +844,7 @@ function readHumanInputResponse(data) {
|
|
|
1078
844
|
if (confirmed === void 0) {
|
|
1079
845
|
return void 0;
|
|
1080
846
|
}
|
|
1081
|
-
const text =
|
|
847
|
+
const text = readString(data, "text") ?? (confirmed ? "confirmed" : "denied");
|
|
1082
848
|
return { kind: "confirm", confirmed, text };
|
|
1083
849
|
}
|
|
1084
850
|
case "choice": {
|
|
@@ -1090,11 +856,11 @@ function readHumanInputResponse(data) {
|
|
|
1090
856
|
}
|
|
1091
857
|
}
|
|
1092
858
|
function readApprovalAction(data) {
|
|
1093
|
-
const action =
|
|
859
|
+
const action = readString(data, "action");
|
|
1094
860
|
return action === "allow" || action === "deny" || action === "remember" ? action : void 0;
|
|
1095
861
|
}
|
|
1096
862
|
function readRememberScope(data) {
|
|
1097
|
-
const scope =
|
|
863
|
+
const scope = readString(data, "rememberScope");
|
|
1098
864
|
return scope === "session" || scope === "project" || scope === "user" ? scope : void 0;
|
|
1099
865
|
}
|
|
1100
866
|
function readSelectedValues(data, key) {
|
|
@@ -1108,9 +874,9 @@ function readSelectedValues(data, key) {
|
|
|
1108
874
|
return [];
|
|
1109
875
|
}
|
|
1110
876
|
function readTrimmedString(data, key) {
|
|
1111
|
-
return
|
|
877
|
+
return readString(data, key)?.trim() || void 0;
|
|
1112
878
|
}
|
|
1113
|
-
function
|
|
879
|
+
function readString(data, key) {
|
|
1114
880
|
const value = data?.[key];
|
|
1115
881
|
return typeof value === "string" ? value : void 0;
|
|
1116
882
|
}
|
|
@@ -1131,6 +897,10 @@ function asRecord(value) {
|
|
|
1131
897
|
return value && typeof value === "object" ? value : void 0;
|
|
1132
898
|
}
|
|
1133
899
|
export {
|
|
900
|
+
Conversation,
|
|
901
|
+
ConversationBuilder,
|
|
902
|
+
ConversationReferenceBuilder,
|
|
903
|
+
CreateConversationOptionsBuilder,
|
|
1134
904
|
TEAMS_ACTIONABLE_MESSAGE_NAMES,
|
|
1135
905
|
TEAMS_ADAPTIVE_CARD_ACTION_NAMES,
|
|
1136
906
|
TEAMS_ADAPTIVE_CARD_SEARCH_NAMES,
|
|
@@ -1156,6 +926,9 @@ export {
|
|
|
1156
926
|
TEAMS_TASK_MODULE_SUBMIT_NAMES,
|
|
1157
927
|
TeamsAttachmentDownloader,
|
|
1158
928
|
TeamsInfo,
|
|
929
|
+
captureM365ConversationReference,
|
|
930
|
+
captureTeamsConversationReference,
|
|
931
|
+
continueM365Conversation,
|
|
1159
932
|
createTeamsApprovalRequestCard,
|
|
1160
933
|
createTeamsChannelAdapter,
|
|
1161
934
|
createTeamsDialog,
|
|
@@ -1165,11 +938,14 @@ export {
|
|
|
1165
938
|
createTeamsSearchMessage,
|
|
1166
939
|
createTeamsSearchResult,
|
|
1167
940
|
currentTeamsTurnContext,
|
|
941
|
+
isTargetedTeamsActivity,
|
|
942
|
+
makeTargetedTeamsActivity,
|
|
1168
943
|
mountTeamsAgent,
|
|
1169
944
|
parseTeamsActivity,
|
|
1170
945
|
parseTeamsActivitySafe,
|
|
1171
946
|
parseTeamsChannelData,
|
|
1172
947
|
parseTeamsInputRequestSubmit,
|
|
948
|
+
restoreM365ConversationReference,
|
|
1173
949
|
runWithTeamsTurnContext,
|
|
1174
950
|
sendTeamsInvoke
|
|
1175
951
|
};
|