@openclaw/msteams 2026.10.10 → 2026.11.5-beta.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.
- package/dist/.setup/{adapter.runtime-BMvpm7sS.cjs → adapter.runtime-UOD_H_ph.cjs} +20 -23
- package/dist/.setup/{approval-card-Bo8kHYbj.cjs → approval-card-CD5q0Nla.cjs} +5 -9
- package/dist/.setup/{approval-handler.runtime-BS3avHFu.cjs → approval-handler.runtime-DbPxvynk.cjs} +4 -4
- package/dist/.setup/{channel-CdCSk3Rg.cjs → channel-DQrXOfhf.cjs} +24 -224
- package/dist/.setup/{channel.runtime--ZjTYgkY.cjs → channel.runtime-Du4GPMES.cjs} +65 -106
- package/dist/.setup/{channel.setup-nSTtK77J.cjs → channel.setup--7ko_Kxv.cjs} +161 -262
- package/dist/.setup/{config-schema-Bm15lF-j.cjs → config-schema-BEXDIOC-.cjs} +120 -123
- package/dist/.setup/{conversation-store-state-NJU9osd-.cjs → conversation-store-state-AVgRyNE9.cjs} +411 -598
- package/dist/.setup/{delegated-state-CbMd3rIh.cjs → delegated-state-DhIHahf1.cjs} +68 -6
- package/dist/.setup/{monitor-BxLDs5fk.cjs → monitor-CXjIKz7o.cjs} +1883 -2284
- package/dist/.setup/{oauth-B-Y5pNM4.cjs → oauth-BWG6qWCd.cjs} +10 -20
- package/dist/.setup/presentation-CaLawc5j.cjs +211 -0
- package/dist/.setup/{reaction-types-BaL1EVBS.cjs → reaction-types-DOzN5oTl.cjs} +1 -1
- package/dist/.setup/{resolve-allowlist-CqNzS9bZ.cjs → resolve-allowlist-Drj1jaq0.cjs} +213 -90
- package/dist/.setup/{secret-contract-api-BOzdWSn9.cjs → secret-contract-api-DFqDvc_a.cjs} +4 -6
- package/dist/.setup/{secret-contract-api-5aH1Fl_c.cjs → secret-contract-api-YGHrfAT0.cjs} +1 -1
- package/dist/.setup/{send-BXjI3ufq.cjs → send-BRUztzVJ.cjs} +86 -182
- package/dist/.setup/{setup-plugin-api-lPpin6Gg.cjs → setup-plugin-api-BHEfter5.cjs} +1 -1
- package/dist/.setup/{thread-session-DZMoCsSR.cjs → thread-session-BUUV1zk_.cjs} +4 -6
- package/dist/.setup/{token-config-DTZ00Ibq.cjs → token-config-7K6UbNCo.cjs} +0 -2
- package/dist/.source-module-urls/7e43ee3ae4faab430a47269c8217f8d99ec60ecd85233f40e81d03efeb543068.json +1 -1
- package/dist/api.cjs +2 -2
- package/dist/channel-config-api.cjs +1 -1
- package/dist/channel-plugin-api.cjs +1 -1
- package/dist/directory-contract-api.cjs +1 -1
- package/dist/doctor-contract-api.cjs +6 -13
- package/dist/qa-runner-api.cjs +1 -1
- package/dist/secret-contract-api.cjs +1 -1
- package/dist/setup-entry.cjs +2 -2
- package/dist/setup-plugin-api.cjs +1 -1
- package/openclaw.plugin.json +0 -30
- package/package.json +11 -11
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const require_bot_framework_service_url = require("./bot-framework-service-url-CgVuKiIR.cjs");
|
|
2
|
-
const require_token_config = require("./token-config-
|
|
3
|
-
const require_resolve_allowlist = require("./resolve-allowlist-
|
|
2
|
+
const require_token_config = require("./token-config-7K6UbNCo.cjs");
|
|
3
|
+
const require_resolve_allowlist = require("./resolve-allowlist-Drj1jaq0.cjs");
|
|
4
4
|
const require_runtime = require("./runtime-CbKazLGv.cjs");
|
|
5
5
|
require("../runtime-api.cjs");
|
|
6
|
-
const
|
|
7
|
-
const require_channel_setup = require("./channel.setup
|
|
8
|
-
const require_conversation_store_state = require("./conversation-store-state-
|
|
6
|
+
const require_presentation = require("./presentation-CaLawc5j.cjs");
|
|
7
|
+
const require_channel_setup = require("./channel.setup--7ko_Kxv.cjs");
|
|
8
|
+
const require_conversation_store_state = require("./conversation-store-state-AVgRyNE9.cjs");
|
|
9
9
|
let openclaw_plugin_sdk_channel_outbound = require("openclaw/plugin-sdk/channel-outbound");
|
|
10
10
|
let openclaw_plugin_sdk_string_coerce_runtime = require("openclaw/plugin-sdk/string-coerce-runtime");
|
|
11
11
|
let openclaw_plugin_sdk_account_id = require("openclaw/plugin-sdk/account-id");
|
|
@@ -15,74 +15,6 @@ let openclaw_plugin_sdk_markdown_table_runtime = require("openclaw/plugin-sdk/ma
|
|
|
15
15
|
let openclaw_plugin_sdk_account_helpers = require("openclaw/plugin-sdk/account-helpers");
|
|
16
16
|
let openclaw_plugin_sdk_outbound_media = require("openclaw/plugin-sdk/outbound-media");
|
|
17
17
|
// extensions/msteams/src/send-context.ts
|
|
18
|
-
function resolveMSTeamsProactiveReplyTarget(params) {
|
|
19
|
-
const threadRootId = params.ref.threadId ?? params.ref.activityId;
|
|
20
|
-
if (params.conversationType !== "channel" || !threadRootId) return { replyStyle: "top-level" };
|
|
21
|
-
const routeConfig = require_channel.resolveMSTeamsRouteConfig({
|
|
22
|
-
cfg: params.cfg,
|
|
23
|
-
teamId: params.ref.teamId,
|
|
24
|
-
conversationId: params.conversationId,
|
|
25
|
-
allowNameMatching: false
|
|
26
|
-
});
|
|
27
|
-
const { replyStyle } = require_channel.resolveMSTeamsReplyPolicy({
|
|
28
|
-
isDirectMessage: false,
|
|
29
|
-
globalConfig: params.cfg,
|
|
30
|
-
teamConfig: routeConfig.teamConfig,
|
|
31
|
-
channelConfig: routeConfig.channelConfig
|
|
32
|
-
});
|
|
33
|
-
return replyStyle === "thread" ? {
|
|
34
|
-
replyStyle,
|
|
35
|
-
threadActivityId: threadRootId
|
|
36
|
-
} : { replyStyle };
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Parse the target value into a conversation reference lookup key.
|
|
40
|
-
* Supported formats:
|
|
41
|
-
* - conversation:19:abc@thread.tacv2 → lookup by conversation ID
|
|
42
|
-
* - conversation:19:abc@thread.tacv2;messageid=root → lookup base ID, use root
|
|
43
|
-
* - user:aad-object-id → lookup by user AAD object ID
|
|
44
|
-
* - 19:abc@thread.tacv2 → direct conversation ID
|
|
45
|
-
*/
|
|
46
|
-
function parseRecipient(to) {
|
|
47
|
-
const trimmed = to.trim();
|
|
48
|
-
const finalize = (type, id) => {
|
|
49
|
-
const normalized = id.trim();
|
|
50
|
-
if (!normalized) throw new Error(`Invalid target value: missing ${type} id`);
|
|
51
|
-
if (type === "conversation") {
|
|
52
|
-
const threadId = require_resolve_allowlist.extractMSTeamsConversationMessageId(normalized);
|
|
53
|
-
const normalizedConversationId = require_resolve_allowlist.normalizeMSTeamsConversationId(normalized);
|
|
54
|
-
const slashIndex = normalizedConversationId.indexOf("/");
|
|
55
|
-
const graphChannelId = slashIndex > 0 ? normalizedConversationId.slice(slashIndex + 1) : void 0;
|
|
56
|
-
return {
|
|
57
|
-
type,
|
|
58
|
-
id: graphChannelId && (graphChannelId.startsWith("19:") || graphChannelId.includes("@thread")) ? graphChannelId : normalizedConversationId,
|
|
59
|
-
...threadId ? { threadId } : {}
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return {
|
|
63
|
-
type,
|
|
64
|
-
id: normalized
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
if (trimmed.startsWith("conversation:")) return finalize("conversation", trimmed.slice(13));
|
|
68
|
-
if (trimmed.startsWith("user:")) return finalize("user", trimmed.slice(5));
|
|
69
|
-
if (trimmed.startsWith("19:") || trimmed.includes("@thread")) return finalize("conversation", trimmed);
|
|
70
|
-
return finalize("user", trimmed);
|
|
71
|
-
}
|
|
72
|
-
async function findConversationReference(recipient) {
|
|
73
|
-
if (recipient.type === "conversation") {
|
|
74
|
-
const ref = await recipient.store.get(recipient.id);
|
|
75
|
-
return ref ? {
|
|
76
|
-
conversationId: recipient.id,
|
|
77
|
-
ref
|
|
78
|
-
} : null;
|
|
79
|
-
}
|
|
80
|
-
const found = await recipient.store.findPreferredDmByUserId(recipient.id);
|
|
81
|
-
return found ? {
|
|
82
|
-
conversationId: found.conversationId,
|
|
83
|
-
ref: found.reference
|
|
84
|
-
} : null;
|
|
85
|
-
}
|
|
86
18
|
async function resolveMSTeamsSendContext(params) {
|
|
87
19
|
const accountId = (0, openclaw_plugin_sdk_account_id.normalizeAccountId)(params.accountId ?? require_resolve_allowlist.resolveDefaultMSTeamsAccountId(params.cfg));
|
|
88
20
|
const account = require_resolve_allowlist.resolveMSTeamsAccount({
|
|
@@ -99,11 +31,46 @@ async function resolveMSTeamsSendContext(params) {
|
|
|
99
31
|
});
|
|
100
32
|
if (!creds) throw new Error("msteams credentials not configured");
|
|
101
33
|
const store = require_conversation_store_state.createMSTeamsConversationStoreState({ accountId });
|
|
102
|
-
const recipient =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
34
|
+
const recipient = (() => {
|
|
35
|
+
const trimmed = params.to.trim();
|
|
36
|
+
const finalize = (type, id) => {
|
|
37
|
+
const normalized = id.trim();
|
|
38
|
+
if (!normalized) throw new Error(`Invalid target value: missing ${type} id`);
|
|
39
|
+
if (type === "conversation") {
|
|
40
|
+
const threadId = require_resolve_allowlist.extractMSTeamsConversationMessageId(normalized);
|
|
41
|
+
const normalizedConversationId = require_resolve_allowlist.normalizeMSTeamsConversationId(normalized);
|
|
42
|
+
const slashIndex = normalizedConversationId.indexOf("/");
|
|
43
|
+
const graphChannelId = slashIndex > 0 ? normalizedConversationId.slice(slashIndex + 1) : void 0;
|
|
44
|
+
return {
|
|
45
|
+
type,
|
|
46
|
+
id: graphChannelId && (graphChannelId.startsWith("19:") || graphChannelId.includes("@thread")) ? graphChannelId : normalizedConversationId,
|
|
47
|
+
...threadId ? { threadId } : {}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
type,
|
|
52
|
+
id: normalized
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
if (trimmed.startsWith("conversation:")) return finalize("conversation", trimmed.slice(13));
|
|
56
|
+
if (trimmed.startsWith("user:")) return finalize("user", trimmed.slice(5));
|
|
57
|
+
if (trimmed.startsWith("19:") || trimmed.includes("@thread")) return finalize("conversation", trimmed);
|
|
58
|
+
return finalize("user", trimmed);
|
|
59
|
+
})();
|
|
60
|
+
const found = await (async () => {
|
|
61
|
+
if (recipient.type === "conversation") {
|
|
62
|
+
const ref = await store.get(recipient.id);
|
|
63
|
+
return ref ? {
|
|
64
|
+
conversationId: recipient.id,
|
|
65
|
+
ref
|
|
66
|
+
} : null;
|
|
67
|
+
}
|
|
68
|
+
const preferred = await store.findPreferredDmByUserId(recipient.id);
|
|
69
|
+
return preferred ? {
|
|
70
|
+
conversationId: preferred.conversationId,
|
|
71
|
+
ref: preferred.reference
|
|
72
|
+
} : null;
|
|
73
|
+
})();
|
|
107
74
|
if (!found) throw new Error(`No conversation reference found for ${recipient.type}:${recipient.id}. The bot must receive a message from this conversation before it can send proactively.`);
|
|
108
75
|
const conversationId = found.conversationId;
|
|
109
76
|
const ref = recipient.threadId ? {
|
|
@@ -144,12 +111,26 @@ async function resolveMSTeamsSendContext(params) {
|
|
|
144
111
|
const replyTarget = recipient.threadId && conversationType === "channel" ? {
|
|
145
112
|
replyStyle: "thread",
|
|
146
113
|
threadActivityId: recipient.threadId
|
|
147
|
-
} :
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
114
|
+
} : (() => {
|
|
115
|
+
const threadRootId = safeRef.threadId ?? safeRef.activityId;
|
|
116
|
+
if (conversationType !== "channel" || !threadRootId) return { replyStyle: "top-level" };
|
|
117
|
+
const routeConfig = require_presentation.resolveMSTeamsRouteConfig({
|
|
118
|
+
cfg: msteamsCfg,
|
|
119
|
+
teamId: safeRef.teamId,
|
|
120
|
+
conversationId,
|
|
121
|
+
allowNameMatching: false
|
|
122
|
+
});
|
|
123
|
+
const { replyStyle } = require_presentation.resolveMSTeamsReplyPolicy({
|
|
124
|
+
isDirectMessage: false,
|
|
125
|
+
globalConfig: msteamsCfg,
|
|
126
|
+
teamConfig: routeConfig.teamConfig,
|
|
127
|
+
channelConfig: routeConfig.channelConfig
|
|
128
|
+
});
|
|
129
|
+
return replyStyle === "thread" ? {
|
|
130
|
+
replyStyle,
|
|
131
|
+
threadActivityId: threadRootId
|
|
132
|
+
} : { replyStyle };
|
|
133
|
+
})();
|
|
153
134
|
const mediaMaxBytes = (0, openclaw_plugin_sdk_account_helpers.resolveChannelMediaMaxBytes)({
|
|
154
135
|
cfg: params.cfg,
|
|
155
136
|
resolveChannelLimitMb: () => msteamsCfg.mediaMaxMb
|
|
@@ -239,13 +220,7 @@ async function sendMessageMSTeams(params) {
|
|
|
239
220
|
accountId,
|
|
240
221
|
to
|
|
241
222
|
});
|
|
242
|
-
const { conversationId,
|
|
243
|
-
log.debug?.("sending proactive message", {
|
|
244
|
-
conversationId,
|
|
245
|
-
conversationType,
|
|
246
|
-
textLength: messageText.length,
|
|
247
|
-
hasMedia: Boolean(mediaUrl)
|
|
248
|
-
});
|
|
223
|
+
const { conversationId, conversationType, tokenProvider, sharePointSiteId } = ctx;
|
|
249
224
|
if (mediaUrl) {
|
|
250
225
|
const mediaMaxBytes = ctx.mediaMaxBytes ?? 104857600;
|
|
251
226
|
const media = await (0, openclaw_plugin_sdk_outbound_media.loadOutboundMediaFromUrl)(mediaUrl, {
|
|
@@ -254,18 +229,9 @@ async function sendMessageMSTeams(params) {
|
|
|
254
229
|
mediaLocalRoots,
|
|
255
230
|
mediaReadFile
|
|
256
231
|
});
|
|
257
|
-
const isLargeFile = media.buffer.length >= require_conversation_store_state.FILE_CONSENT_THRESHOLD_BYTES;
|
|
258
232
|
const isImage = media.contentType?.startsWith("image/") ?? false;
|
|
259
233
|
const fallbackFileName = await require_conversation_store_state.extractFilename(mediaUrl);
|
|
260
234
|
const fileName = filename?.trim() || media.fileName || fallbackFileName;
|
|
261
|
-
log.debug?.("processing media", {
|
|
262
|
-
fileName,
|
|
263
|
-
contentType: media.contentType,
|
|
264
|
-
size: media.buffer.length,
|
|
265
|
-
isLargeFile,
|
|
266
|
-
isImage,
|
|
267
|
-
conversationType
|
|
268
|
-
});
|
|
269
235
|
if (require_conversation_store_state.requiresFileConsent({
|
|
270
236
|
conversationType,
|
|
271
237
|
contentType: media.contentType,
|
|
@@ -281,11 +247,6 @@ async function sendMessageMSTeams(params) {
|
|
|
281
247
|
conversationId,
|
|
282
248
|
description: messageText || void 0
|
|
283
249
|
});
|
|
284
|
-
log.debug?.("sending file consent card", {
|
|
285
|
-
uploadId,
|
|
286
|
-
fileName,
|
|
287
|
-
size: media.buffer.length
|
|
288
|
-
});
|
|
289
250
|
const messageId = await sendProactiveActivity({
|
|
290
251
|
ctx,
|
|
291
252
|
activity,
|
|
@@ -306,11 +267,6 @@ async function sendMessageMSTeams(params) {
|
|
|
306
267
|
} finally {
|
|
307
268
|
await require_conversation_store_state.setPendingUploadActivityIdFs(uploadId, messageId);
|
|
308
269
|
}
|
|
309
|
-
log.info("sent file consent card", {
|
|
310
|
-
conversationId,
|
|
311
|
-
messageId,
|
|
312
|
-
uploadId
|
|
313
|
-
});
|
|
314
270
|
});
|
|
315
271
|
}
|
|
316
272
|
if (conversationType === "personal" || isImage && !sharePointSiteId) {
|
|
@@ -319,11 +275,6 @@ async function sendMessageMSTeams(params) {
|
|
|
319
275
|
}
|
|
320
276
|
try {
|
|
321
277
|
const siteId = require_conversation_store_state.requireMSTeamsSharePointSiteId(sharePointSiteId);
|
|
322
|
-
log.debug?.("uploading to SharePoint for native file card", {
|
|
323
|
-
fileName,
|
|
324
|
-
conversationType,
|
|
325
|
-
siteId
|
|
326
|
-
});
|
|
327
278
|
const uploaded = await require_conversation_store_state.uploadAndShareSharePoint({
|
|
328
279
|
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
329
280
|
buffer: media.buffer,
|
|
@@ -334,37 +285,23 @@ async function sendMessageMSTeams(params) {
|
|
|
334
285
|
chatId: conversationId,
|
|
335
286
|
usePerUserSharing: conversationType === "groupChat"
|
|
336
287
|
});
|
|
337
|
-
log.debug?.("SharePoint upload complete", {
|
|
338
|
-
itemId: uploaded.itemId,
|
|
339
|
-
shareUrl: uploaded.shareUrl
|
|
340
|
-
});
|
|
341
288
|
const driveItem = await require_conversation_store_state.getDriveItemProperties({
|
|
342
289
|
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
343
290
|
siteId,
|
|
344
291
|
itemId: uploaded.itemId,
|
|
345
292
|
tokenProvider
|
|
346
293
|
});
|
|
347
|
-
log.debug?.("driveItem properties retrieved", {
|
|
348
|
-
eTag: driveItem.eTag,
|
|
349
|
-
webDavUrl: driveItem.webDavUrl
|
|
350
|
-
});
|
|
351
294
|
const fileCardAttachment = require_conversation_store_state.buildTeamsFileInfoCard(driveItem);
|
|
352
|
-
const messageId = await sendProactiveActivityRaw({
|
|
353
|
-
ctx,
|
|
354
|
-
activity: {
|
|
355
|
-
...require_conversation_store_state.buildMSTeamsMessageActivity(messageText || void 0),
|
|
356
|
-
attachments: [fileCardAttachment]
|
|
357
|
-
},
|
|
358
|
-
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
359
|
-
onPlatformSendDispatch: params.onPlatformSendDispatch
|
|
360
|
-
});
|
|
361
|
-
log.info("sent native file card", {
|
|
362
|
-
conversationId,
|
|
363
|
-
messageId,
|
|
364
|
-
fileName: driveItem.name
|
|
365
|
-
});
|
|
366
295
|
const result = createMSTeamsSendResult({
|
|
367
|
-
messageId
|
|
296
|
+
messageId: await sendProactiveActivityRaw({
|
|
297
|
+
ctx,
|
|
298
|
+
activity: {
|
|
299
|
+
...require_conversation_store_state.buildMSTeamsMessageActivity(messageText || void 0),
|
|
300
|
+
attachments: [fileCardAttachment]
|
|
301
|
+
},
|
|
302
|
+
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
303
|
+
onPlatformSendDispatch: params.onPlatformSendDispatch
|
|
304
|
+
}),
|
|
368
305
|
conversationId,
|
|
369
306
|
kind: "media"
|
|
370
307
|
});
|
|
@@ -426,13 +363,8 @@ async function sendTextWithMedia(ctx, text, mediaUrl, options) {
|
|
|
426
363
|
}));
|
|
427
364
|
throw error;
|
|
428
365
|
}
|
|
429
|
-
const messageId = platformMessageIds[0] ?? "unknown";
|
|
430
|
-
log.info("sent proactive message", {
|
|
431
|
-
conversationId,
|
|
432
|
-
messageId
|
|
433
|
-
});
|
|
434
366
|
return {
|
|
435
|
-
messageId,
|
|
367
|
+
messageId: platformMessageIds[0] ?? "unknown",
|
|
436
368
|
conversationId,
|
|
437
369
|
receipt: createMSTeamsSendReceipt({
|
|
438
370
|
conversationId,
|
|
@@ -468,17 +400,12 @@ async function sendPollMSTeams(params) {
|
|
|
468
400
|
accountId,
|
|
469
401
|
to
|
|
470
402
|
});
|
|
471
|
-
const { conversationId
|
|
403
|
+
const { conversationId } = ctx;
|
|
472
404
|
const pollCard = require_conversation_store_state.buildMSTeamsPollCard({
|
|
473
405
|
question,
|
|
474
406
|
options,
|
|
475
407
|
maxSelections
|
|
476
408
|
});
|
|
477
|
-
log.debug?.("sending poll", {
|
|
478
|
-
conversationId,
|
|
479
|
-
pollId: pollCard.pollId,
|
|
480
|
-
optionCount: pollCard.options.length
|
|
481
|
-
});
|
|
482
409
|
const messageId = await sendProactiveActivity({
|
|
483
410
|
ctx,
|
|
484
411
|
activity: require_conversation_store_state.buildMSTeamsAdaptiveCardActivity(pollCard.card),
|
|
@@ -486,11 +413,6 @@ async function sendPollMSTeams(params) {
|
|
|
486
413
|
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
487
414
|
onPlatformSendDispatch: params.onPlatformSendDispatch
|
|
488
415
|
});
|
|
489
|
-
log.info("sent poll", {
|
|
490
|
-
conversationId,
|
|
491
|
-
pollId: pollCard.pollId,
|
|
492
|
-
messageId
|
|
493
|
-
});
|
|
494
416
|
return {
|
|
495
417
|
pollId: pollCard.pollId,
|
|
496
418
|
messageId,
|
|
@@ -505,25 +427,15 @@ async function sendAdaptiveCardMSTeams(params) {
|
|
|
505
427
|
accountId,
|
|
506
428
|
to
|
|
507
429
|
});
|
|
508
|
-
const { conversationId
|
|
509
|
-
log.debug?.("sending adaptive card", {
|
|
510
|
-
conversationId,
|
|
511
|
-
cardType: card.type,
|
|
512
|
-
cardVersion: card.version
|
|
513
|
-
});
|
|
514
|
-
const messageId = await sendProactiveActivity({
|
|
515
|
-
ctx,
|
|
516
|
-
activity: require_conversation_store_state.buildMSTeamsAdaptiveCardActivity(card),
|
|
517
|
-
errorPrefix: "msteams card send",
|
|
518
|
-
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
519
|
-
onPlatformSendDispatch: params.onPlatformSendDispatch
|
|
520
|
-
});
|
|
521
|
-
log.info("sent adaptive card", {
|
|
522
|
-
conversationId,
|
|
523
|
-
messageId
|
|
524
|
-
});
|
|
430
|
+
const { conversationId } = ctx;
|
|
525
431
|
const result = createMSTeamsSendResult({
|
|
526
|
-
messageId
|
|
432
|
+
messageId: await sendProactiveActivity({
|
|
433
|
+
ctx,
|
|
434
|
+
activity: require_conversation_store_state.buildMSTeamsAdaptiveCardActivity(card),
|
|
435
|
+
errorPrefix: "msteams card send",
|
|
436
|
+
assertDirectAdapterHandoff: params.assertDirectAdapterHandoff,
|
|
437
|
+
onPlatformSendDispatch: params.onPlatformSendDispatch
|
|
438
|
+
}),
|
|
527
439
|
conversationId,
|
|
528
440
|
kind: "card"
|
|
529
441
|
});
|
|
@@ -554,16 +466,12 @@ async function deleteMessageMSTeams(params) {
|
|
|
554
466
|
}
|
|
555
467
|
async function mutateMSTeamsMessageActivity(params) {
|
|
556
468
|
const { cfg, accountId, to, activityId, activity } = params;
|
|
557
|
-
const { app, conversationId, ref,
|
|
469
|
+
const { app, conversationId, ref, sdkCloudOptions } = await resolveMSTeamsSendContext({
|
|
558
470
|
cfg,
|
|
559
471
|
accountId,
|
|
560
472
|
to
|
|
561
473
|
});
|
|
562
474
|
const operation = activity ? "edit" : "delete";
|
|
563
|
-
log.debug?.(`${activity ? "editing" : "deleting"} proactive message`, {
|
|
564
|
-
conversationId,
|
|
565
|
-
activityId
|
|
566
|
-
});
|
|
567
475
|
try {
|
|
568
476
|
const baseRef = require_conversation_store_state.buildConversationReference(ref);
|
|
569
477
|
const options = { serviceUrlBoundary: sdkCloudOptions };
|
|
@@ -572,10 +480,6 @@ async function mutateMSTeamsMessageActivity(params) {
|
|
|
572
480
|
} catch (err) {
|
|
573
481
|
throw createMSTeamsSendError(`msteams ${operation}`, err);
|
|
574
482
|
}
|
|
575
|
-
log.info(`${activity ? "edited" : "deleted"} proactive message`, {
|
|
576
|
-
conversationId,
|
|
577
|
-
activityId
|
|
578
|
-
});
|
|
579
483
|
return { conversationId };
|
|
580
484
|
}
|
|
581
485
|
Object.defineProperty(exports, "deleteMessageMSTeams", {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_resolve_allowlist = require("./resolve-allowlist-
|
|
1
|
+
const require_resolve_allowlist = require("./resolve-allowlist-Drj1jaq0.cjs");
|
|
2
2
|
let openclaw_plugin_sdk_string_coerce_runtime = require("openclaw/plugin-sdk/string-coerce-runtime");
|
|
3
3
|
let openclaw_plugin_sdk_approval_auth_runtime = require("openclaw/plugin-sdk/approval-auth-runtime");
|
|
4
4
|
let openclaw_plugin_sdk_routing = require("openclaw/plugin-sdk/routing");
|
|
@@ -35,14 +35,12 @@ const msTeamsApprovalAuth = { authorizeActorAction(params) {
|
|
|
35
35
|
return msTeamsApproval.approvalAuth.authorizeActorAction(params);
|
|
36
36
|
} };
|
|
37
37
|
// extensions/msteams/src/monitor-handler/thread-session.ts
|
|
38
|
-
const TRAILING_THREAD_SUFFIX = /(?::thread:[^:]+)+$/;
|
|
39
38
|
function resolveMSTeamsRouteSessionKey(params) {
|
|
40
|
-
const channelThreadId = params.isChannel ? params.conversationMessageId ?? params.replyToId
|
|
41
|
-
const cleanBase = params.baseSessionKey.replace(TRAILING_THREAD_SUFFIX, "");
|
|
39
|
+
const channelThreadId = params.isChannel ? params.conversationMessageId ?? params.replyToId : void 0;
|
|
42
40
|
return (0, openclaw_plugin_sdk_routing.resolveThreadSessionKeys)({
|
|
43
|
-
baseSessionKey:
|
|
41
|
+
baseSessionKey: params.baseSessionKey,
|
|
44
42
|
threadId: channelThreadId,
|
|
45
|
-
parentSessionKey: channelThreadId ?
|
|
43
|
+
parentSessionKey: channelThreadId ? params.baseSessionKey : void 0
|
|
46
44
|
}).sessionKey;
|
|
47
45
|
}
|
|
48
46
|
Object.defineProperty(exports, "getMSTeamsApprovalApprovers", {
|
|
@@ -28,7 +28,6 @@ function resolveMSTeamsCredentials(cfg, options) {
|
|
|
28
28
|
if (!appId || !tenantId) return;
|
|
29
29
|
if (authType === "federated") {
|
|
30
30
|
const certificatePath = resolveFederatedPath(cfg?.certificatePath, allowEnvFallback ? process.env.MSTEAMS_CERTIFICATE_PATH : void 0);
|
|
31
|
-
const certificateThumbprint = cfg?.certificateThumbprint || (allowEnvFallback ? process.env.MSTEAMS_CERTIFICATE_THUMBPRINT : void 0) || void 0;
|
|
32
31
|
const useManagedIdentity = cfg?.useManagedIdentity ?? (allowEnvFallback ? process.env.MSTEAMS_USE_MANAGED_IDENTITY === "true" : false);
|
|
33
32
|
const managedIdentityClientId = cfg?.managedIdentityClientId || (allowEnvFallback ? process.env.MSTEAMS_MANAGED_IDENTITY_CLIENT_ID : void 0) || void 0;
|
|
34
33
|
if (!certificatePath && !useManagedIdentity) return;
|
|
@@ -37,7 +36,6 @@ function resolveMSTeamsCredentials(cfg, options) {
|
|
|
37
36
|
appId,
|
|
38
37
|
tenantId,
|
|
39
38
|
certificatePath,
|
|
40
|
-
certificateThumbprint,
|
|
41
39
|
useManagedIdentity: useManagedIdentity || void 0,
|
|
42
40
|
managedIdentityClientId
|
|
43
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"entries":[{"output":"api.cjs","source":"extensions/msteams/api.ts"},{"output":"channel-config-api.cjs","source":"extensions/msteams/channel-config-api.ts"},{"output":"channel-plugin-api.cjs","source":"extensions/msteams/channel-plugin-api.ts"},{"output":"configured-state.cjs","source":"extensions/msteams/configured-state.ts"},{"output":"directory-contract-api.cjs","source":"extensions/msteams/directory-contract-api.ts"},{"output":"doctor-backup-resources.cjs","source":"extensions/msteams/doctor-backup-resources.ts"},{"output":"doctor-contract-api.cjs","source":"extensions/msteams/doctor-contract-api.ts"},{"output":"index.cjs","source":"extensions/msteams/index.ts"},{"output":"qa-runner-api.cjs","source":"extensions/msteams/qa-runner-api.ts"},{"output":"runtime-api.cjs","source":"extensions/msteams/runtime-api.ts"},{"output":"secret-contract-api.cjs","source":"extensions/msteams/secret-contract-api.ts"},{"output":"setup-entry.cjs","source":"extensions/msteams/setup-entry.ts"},{"output":"setup-plugin-api.cjs","source":"extensions/msteams/setup-plugin-api.ts"}],"chunks":[{"output":".setup/adapter.runtime-BMvpm7sS.cjs","sha256":"f07b3c5bc5ac602739196d39a53af391edb3f32566e6de987a6c4af622efb156","facadeSource":"extensions/msteams/src/qa/adapter.runtime.ts","sources":["extensions/msteams/src/qa/adapter.runtime.ts","extensions/msteams/src/qa/bot-framework-server.ts"]},{"output":".setup/approval-card-Bo8kHYbj.cjs","sha256":"fb0a0b6bf5b95ad427ec677cc6d8c9f224474c8117234b188ce6328dfa721cd7","facadeSource":null,"sources":["extensions/msteams/src/approval-card-actions.ts","extensions/msteams/src/approval-card.ts"]},{"output":".setup/approval-handler.runtime-BS3avHFu.cjs","sha256":"56c4862a5443465930b1baed923d5fec8b670849507305e33ba81830d527b55a","facadeSource":"extensions/msteams/src/approval-handler.runtime.ts","sources":["extensions/msteams/src/approval-handler.runtime.ts"]},{"output":".setup/bot-framework-service-url-CgVuKiIR.cjs","sha256":"755f9f9cf1ed0219e128b37ed6ddf6e75d4fcb946b16b8d9c1bd3682b134a72b","facadeSource":null,"sources":["extensions/msteams/src/accounts-webhook.ts","extensions/msteams/src/bot-framework-service-url.ts"]},{"output":".setup/channel-CdCSk3Rg.cjs","sha256":"56b66eea3766b7a9c14db8ea94ed403df147b69ecfa1aa4b57534eb059d20a1e","facadeSource":null,"sources":["extensions/msteams/src/action-params.ts","extensions/msteams/src/action-results.ts","extensions/msteams/src/action-threading.ts","extensions/msteams/src/approval-native.ts","extensions/msteams/src/channel-message-tool.ts","extensions/msteams/src/channel.ts","extensions/msteams/src/doctor.ts","extensions/msteams/src/graph-action-context.ts","extensions/msteams/src/outbound-config.ts","extensions/msteams/src/policy.ts","extensions/msteams/src/presentation.ts","extensions/msteams/src/read-policy.ts","extensions/msteams/src/session-route.ts","extensions/msteams/src/webhook-route.ts","packages/normalization-core/src/string-coerce.ts","src/gateway/gateway-http-route-contracts.ts","src/gateway/security-path.ts","src/gateway/server/plugins-http/path-context.ts","src/plugins/http-path-prefix.ts"]},{"output":".setup/channel.runtime--ZjTYgkY.cjs","sha256":"9f6a50485ebbaa7854f61af2e43142155170037038bade9b4114d2e63340a9ce","facadeSource":"extensions/msteams/src/channel.runtime.ts","sources":["extensions/msteams/src/channel.runtime.ts","extensions/msteams/src/directory-live.ts","extensions/msteams/src/graph-conversation-members.ts","extensions/msteams/src/graph-group-management.ts","extensions/msteams/src/graph-members.ts","extensions/msteams/src/graph-messages.ts","extensions/msteams/src/graph-teams.ts","extensions/msteams/src/outbound.ts","extensions/msteams/src/probe.ts"]},{"output":".setup/channel.setup-nSTtK77J.cjs","sha256":"4b4ba08de4fd9c1ae8c255722d696c0dfab5fae3ef0a7c5cf2fd186d84e3597a","facadeSource":null,"sources":["extensions/msteams/src/accounts-mutations.ts","extensions/msteams/src/channel-config.ts","extensions/msteams/src/channel.setup.ts","extensions/msteams/src/errors.ts","extensions/msteams/src/setup-core.ts","extensions/msteams/src/setup-surface.ts"]},{"output":".setup/config-schema-Bm15lF-j.cjs","sha256":"4b638298f0d051ad5b2666e77e4307dc8ce00adf2ac573f94197e87164125591","facadeSource":null,"sources":["extensions/msteams/src/config-schema-refinement.ts","extensions/msteams/src/config-schema.ts","extensions/msteams/src/config-ui-hints.ts"]},{"output":".setup/conversation-store-state-NJU9osd-.cjs","sha256":"2db85df9b5150c2ab65d13e71cb72d37556f6e96c06e2049aff99780a0efd8b1","facadeSource":null,"sources":["extensions/msteams/src/conversation-store-helpers.ts","extensions/msteams/src/conversation-store-state.ts","extensions/msteams/src/file-consent-helpers.ts","extensions/msteams/src/file-consent.ts","extensions/msteams/src/format.ts","extensions/msteams/src/graph-chat.ts","extensions/msteams/src/graph-upload.ts","extensions/msteams/src/media-helpers.ts","extensions/msteams/src/mentions.ts","extensions/msteams/src/message-activity.ts","extensions/msteams/src/messenger.ts","extensions/msteams/src/pending-uploads-fs.ts","extensions/msteams/src/pending-uploads.ts","extensions/msteams/src/polls.ts","extensions/msteams/src/revoked-context.ts","extensions/msteams/src/sdk-proactive.ts","extensions/msteams/src/sent-message-cache.ts"]},{"output":".setup/delegated-state-CbMd3rIh.cjs","sha256":"3231866f3b037a1ca43ae362d4208f38bb83a08741317d5395e53e903b984f24","facadeSource":null,"sources":["extensions/msteams/src/delegated-state.ts","extensions/msteams/src/sqlite-state.ts"]},{"output":".setup/monitor-BxLDs5fk.cjs","sha256":"5f7a6a8ccf2e61437487e11f53bafda85163651ea8d56ae03afae1f025e3bc2a","facadeSource":"extensions/msteams/src/monitor.ts","sources":["extensions/msteams/src/adaptive-card-submit.ts","extensions/msteams/src/approval-card-submit.ts","extensions/msteams/src/attachments/bot-framework.ts","extensions/msteams/src/attachments/download.ts","extensions/msteams/src/attachments/graph.ts","extensions/msteams/src/attachments/html.ts","extensions/msteams/src/attachments/remote-media.ts","extensions/msteams/src/feedback-invoke.ts","extensions/msteams/src/feedback-reflection-store.ts","extensions/msteams/src/feedback-reflection.ts","extensions/msteams/src/file-consent-invoke.ts","extensions/msteams/src/informative-status.ts","extensions/msteams/src/monitor-account-stores.ts","extensions/msteams/src/monitor-handler.ts","extensions/msteams/src/monitor-handler/access.ts","extensions/msteams/src/monitor-handler/config.ts","extensions/msteams/src/monitor-handler/inbound-content.ts","extensions/msteams/src/monitor-handler/inbound-dispatch.ts","extensions/msteams/src/monitor-handler/inbound-facts.ts","extensions/msteams/src/monitor-handler/inbound-media.ts","extensions/msteams/src/monitor-handler/message-handler.ts","extensions/msteams/src/monitor-handler/reaction-handler.ts","extensions/msteams/src/monitor-handler/thread-context.ts","extensions/msteams/src/monitor-status.ts","extensions/msteams/src/monitor.ts","extensions/msteams/src/msteams-ingress.ts","extensions/msteams/src/replay-context.ts","extensions/msteams/src/reply-dispatcher.ts","extensions/msteams/src/reply-stream-controller.ts","extensions/msteams/src/sso-token-store.ts","extensions/msteams/src/team-identity.ts","extensions/msteams/src/thread-parent-context.ts","extensions/msteams/src/webhook-handler.ts","extensions/msteams/src/welcome-card.ts","src/channels/mention-gating.ts"]},{"output":".setup/oauth-B-Y5pNM4.cjs","sha256":"72b2a737be4f0f1e7e7edba95deb5a60867ac293b9db883d163d6e93974ee506","facadeSource":"extensions/msteams/src/oauth.ts","sources":["extensions/msteams/src/oauth.flow.ts","extensions/msteams/src/oauth.ts"]},{"output":".setup/reaction-types-BaL1EVBS.cjs","sha256":"f72689bd47233f82042eb7e05ee980087a25bc2a0a3c1de5bbd3d51095baddfe","facadeSource":null,"sources":["extensions/msteams/src/graph-thread.ts","extensions/msteams/src/reaction-types.ts"]},{"output":".setup/resolve-allowlist-CqNzS9bZ.cjs","sha256":"55cb6ebdbf8eb45b0c7714006e09d6040cd7793b9cb1568a1a8e0649becb0e30","facadeSource":null,"sources":["extensions/msteams/src/accounts.ts","extensions/msteams/src/attachments/shared.ts","extensions/msteams/src/cloud.ts","extensions/msteams/src/graph-users.ts","extensions/msteams/src/graph.ts","extensions/msteams/src/inbound.ts","extensions/msteams/src/oauth.shared.ts","extensions/msteams/src/oauth.token.ts","extensions/msteams/src/qa/private-runtime.ts","extensions/msteams/src/request-timeout.ts","extensions/msteams/src/resolve-allowlist.ts","extensions/msteams/src/sdk.ts","extensions/msteams/src/send-handoff.ts","extensions/msteams/src/token.ts","extensions/msteams/src/user-agent.ts"]},{"output":".setup/rolldown-runtime-CiKaZLfC.cjs","sha256":"c1a474f193517f93d2fe58301aa10aa38dc1b31db28892b55ef295a73323027b","facadeSource":null,"sources":[]},{"output":".setup/runtime-CbKazLGv.cjs","sha256":"8fb2c37b2dca93387f9ea826d461f13498ebb09e826563a7cdb3ef0be91394e8","facadeSource":null,"sources":["extensions/msteams/src/runtime.ts"]},{"output":".setup/secret-contract-api-5aH1Fl_c.cjs","sha256":"1ae69cf8f0f7e4de46c6d148e48571067639b5480b08927e8d7613eeb4cbb895","facadeSource":"extensions/msteams/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-api-BOzdWSn9.cjs","sha256":"8423b0534fef5f8200b7703aca16c353fa216ef551acf72167874b88db40bfcd","facadeSource":null,"sources":["extensions/msteams/src/secret-contract.ts"]},{"output":".setup/send-BXjI3ufq.cjs","sha256":"eb8d96382490f6869ced61f4b7c57c0840791324520d68bc574280e56180e995","facadeSource":null,"sources":["extensions/msteams/src/send-context.ts","extensions/msteams/src/send.ts"]},{"output":".setup/setup-plugin-api-lPpin6Gg.cjs","sha256":"3f1d8c24254ba9b8603975f41dfc2405964a8118c551744115bc105fac2297e4","facadeSource":"extensions/msteams/setup-plugin-api.ts","sources":[]},{"output":".setup/thread-session-DZMoCsSR.cjs","sha256":"1e66a3024ffdec1a40cb6d0ff091a25d98f291c7f95a8240f4569c0a566ae462","facadeSource":null,"sources":["extensions/msteams/src/approval-auth.ts","extensions/msteams/src/monitor-handler/thread-session.ts"]},{"output":".setup/token-config-DTZ00Ibq.cjs","sha256":"a0d1007a3869583f25d12176cf3a089b79f7b5beff0c7a46dd9a162b99ff5f54","facadeSource":null,"sources":["extensions/msteams/src/token-config.ts"]},{"output":"api.cjs","sha256":"8241157f5e98f84b9edc8597d5d3e66159a015ed84cbe3dc3f9c1ebb51f41bca","facadeSource":"extensions/msteams/api.ts","sources":[]},{"output":"channel-config-api.cjs","sha256":"4a174da2691bf21c97f08b664a9fff0da525b3bea85e3855c3dd5004816cb9a3","facadeSource":"extensions/msteams/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.cjs","sha256":"43e7bd5def0d1b062adcdc3bb10327497c885104e4cfc39bf469fab673b3ae86","facadeSource":"extensions/msteams/channel-plugin-api.ts","sources":[]},{"output":"configured-state.cjs","sha256":"b0ef935cc4c25d2625111732aceb77e70893f3a0c04fd32eb6519584874608d1","facadeSource":"extensions/msteams/configured-state.ts","sources":["extensions/msteams/configured-state.ts"]},{"output":"directory-contract-api.cjs","sha256":"e9fc1f1d5bcd31549e4a2f9472260ba723fe03517ab9a1aa517a6d973b081d49","facadeSource":"extensions/msteams/directory-contract-api.ts","sources":["extensions/msteams/directory-contract-api.ts"]},{"output":"doctor-backup-resources.cjs","sha256":"26ffdf3f247290a73ea48f90e2149986af3917efc093efa2edf65caee91b85dd","facadeSource":"extensions/msteams/doctor-backup-resources.ts","sources":["extensions/msteams/doctor-backup-resources.ts"]},{"output":"doctor-contract-api.cjs","sha256":"fd878734bc799c9caffc613b8f24eccf8371703a09cf9a7b2107250a45f3b1f8","facadeSource":"extensions/msteams/doctor-contract-api.ts","sources":["extensions/msteams/config-doctor-api.ts","extensions/msteams/doctor-contract-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.cjs","sha256":"89ba75e781763e1acd195536933a559b43b4bb3a474ce45721b70c746a6d9f8d","facadeSource":"extensions/msteams/index.ts","sources":["extensions/msteams/index.ts"]},{"output":"qa-runner-api.cjs","sha256":"41f850e774abb12d4c1a97aa7cd6fae54f6cc96518bbe973ed6e244059aab0d5","facadeSource":"extensions/msteams/qa-runner-api.ts","sources":["extensions/msteams/qa-runner-api.ts","extensions/msteams/src/qa/cli.ts"]},{"output":"runtime-api.cjs","sha256":"658664b3490231db29b3bb44e17e7b9ea04d4b8f0138786dc4dcf69eb9f312cf","facadeSource":"extensions/msteams/runtime-api.ts","sources":[]},{"output":"secret-contract-api.cjs","sha256":"422a43fc2cff0d2879b3bac56363a752c9a70fa6aabc4f29b906d3730e25c757","facadeSource":"extensions/msteams/secret-contract-api.ts","sources":[]},{"output":"setup-entry.cjs","sha256":"0fa90505a98b8ff9d9ffae7cba9642e674dd8d241c024a5b5b47792be6eb0546","facadeSource":"extensions/msteams/setup-entry.ts","sources":["extensions/msteams/setup-entry.ts"]},{"output":"setup-plugin-api.cjs","sha256":"dab501ecea8d65e7c3a26095ebec9bb5b4ceb35bf8efff2868aea233387aeb8e","facadeSource":"extensions/msteams/setup-plugin-api.ts","sources":[]}],"unrenderedSources":["extensions/msteams/api.ts","extensions/msteams/channel-config-api.ts","extensions/msteams/channel-plugin-api.ts","extensions/msteams/runtime-api.ts","extensions/msteams/secret-contract-api.ts","extensions/msteams/setup-plugin-api.ts","extensions/msteams/src/attachments.ts"]}
|
|
1
|
+
{"version":3,"entries":[{"output":"api.cjs","source":"extensions/msteams/api.ts"},{"output":"channel-config-api.cjs","source":"extensions/msteams/channel-config-api.ts"},{"output":"channel-plugin-api.cjs","source":"extensions/msteams/channel-plugin-api.ts"},{"output":"configured-state.cjs","source":"extensions/msteams/configured-state.ts"},{"output":"directory-contract-api.cjs","source":"extensions/msteams/directory-contract-api.ts"},{"output":"doctor-backup-resources.cjs","source":"extensions/msteams/doctor-backup-resources.ts"},{"output":"doctor-contract-api.cjs","source":"extensions/msteams/doctor-contract-api.ts"},{"output":"index.cjs","source":"extensions/msteams/index.ts"},{"output":"qa-runner-api.cjs","source":"extensions/msteams/qa-runner-api.ts"},{"output":"runtime-api.cjs","source":"extensions/msteams/runtime-api.ts"},{"output":"secret-contract-api.cjs","source":"extensions/msteams/secret-contract-api.ts"},{"output":"setup-entry.cjs","source":"extensions/msteams/setup-entry.ts"},{"output":"setup-plugin-api.cjs","source":"extensions/msteams/setup-plugin-api.ts"}],"chunks":[{"output":".setup/adapter.runtime-UOD_H_ph.cjs","sha256":"00e36c2a0ce3c5fb02b352b5d741a4748797f90e55d6e06ecc88abbe448d4d5d","facadeSource":"extensions/msteams/src/qa/adapter.runtime.ts","sources":["extensions/msteams/src/qa/adapter.runtime.ts","extensions/msteams/src/qa/bot-framework-server.ts"]},{"output":".setup/approval-card-CD5q0Nla.cjs","sha256":"1d1dd80ca9af791b6d2c06e75b72c50e8ad001651814ae233721c3d7384a8240","facadeSource":null,"sources":["extensions/msteams/src/approval-card-actions.ts","extensions/msteams/src/approval-card.ts"]},{"output":".setup/approval-handler.runtime-DbPxvynk.cjs","sha256":"3301e581eaece19f1628397ca55c1337f4efd73d7c3ef945af3d7048a4505255","facadeSource":"extensions/msteams/src/approval-handler.runtime.ts","sources":["extensions/msteams/src/approval-handler.runtime.ts"]},{"output":".setup/bot-framework-service-url-CgVuKiIR.cjs","sha256":"755f9f9cf1ed0219e128b37ed6ddf6e75d4fcb946b16b8d9c1bd3682b134a72b","facadeSource":null,"sources":["extensions/msteams/src/accounts-webhook.ts","extensions/msteams/src/bot-framework-service-url.ts"]},{"output":".setup/channel-DQrXOfhf.cjs","sha256":"77fa54b1ea7e0387096340c7c2bc82199da560ff83e70d604b4fe2f974cd37fa","facadeSource":null,"sources":["extensions/msteams/src/action-params.ts","extensions/msteams/src/action-results.ts","extensions/msteams/src/action-threading.ts","extensions/msteams/src/approval-native.ts","extensions/msteams/src/channel-message-tool.ts","extensions/msteams/src/channel.ts","extensions/msteams/src/doctor.ts","extensions/msteams/src/graph-action-context.ts","extensions/msteams/src/outbound-config.ts","extensions/msteams/src/read-policy.ts","extensions/msteams/src/session-route.ts","extensions/msteams/src/webhook-route.ts","packages/normalization-core/src/string-coerce.ts","src/gateway/gateway-http-route-contracts.ts","src/gateway/security-path.ts","src/gateway/server/plugins-http/path-context.ts","src/plugins/http-path-prefix.ts"]},{"output":".setup/channel.runtime-Du4GPMES.cjs","sha256":"c54ff750bb6d257dd364c7fb6413e30e3802084acc47b51b3c209b084c1a581e","facadeSource":"extensions/msteams/src/channel.runtime.ts","sources":["extensions/msteams/src/channel.runtime.ts","extensions/msteams/src/directory-live.ts","extensions/msteams/src/graph-group-management.ts","extensions/msteams/src/graph-members.ts","extensions/msteams/src/graph-messages.ts","extensions/msteams/src/graph-teams.ts","extensions/msteams/src/outbound.ts","extensions/msteams/src/probe.ts"]},{"output":".setup/channel.setup--7ko_Kxv.cjs","sha256":"ae81a74731163b451bbedcb7816bde22c5c765c6c69beb1f8756495be8ac0ea7","facadeSource":null,"sources":["extensions/msteams/src/accounts-mutations.ts","extensions/msteams/src/channel-config.ts","extensions/msteams/src/channel.setup.ts","extensions/msteams/src/errors.ts","extensions/msteams/src/setup-core.ts","extensions/msteams/src/setup-surface.ts"]},{"output":".setup/config-schema-BEXDIOC-.cjs","sha256":"7ee8a3c7a835b4ec65bde7162ecc95fbefa0d3e31f1194274f4280a06e534181","facadeSource":null,"sources":["extensions/msteams/src/config-schema.ts"]},{"output":".setup/conversation-store-state-AVgRyNE9.cjs","sha256":"dc57e6d737ac1f2356215d65b9d64b13715f96549676c25fa37bb150f60340a7","facadeSource":null,"sources":["extensions/msteams/src/conversation-store-state.ts","extensions/msteams/src/file-consent-helpers.ts","extensions/msteams/src/file-consent.ts","extensions/msteams/src/format.ts","extensions/msteams/src/graph-chat.ts","extensions/msteams/src/graph-upload.ts","extensions/msteams/src/media-helpers.ts","extensions/msteams/src/message-activity.ts","extensions/msteams/src/messenger.ts","extensions/msteams/src/pending-uploads-fs.ts","extensions/msteams/src/pending-uploads.ts","extensions/msteams/src/polls.ts","extensions/msteams/src/sdk-proactive.ts","extensions/msteams/src/sent-message-cache.ts"]},{"output":".setup/delegated-state-DhIHahf1.cjs","sha256":"46db3569ad920b40a1ea58801c23b01051270cc4166ba8fbb373a6bad6df244d","facadeSource":null,"sources":["extensions/msteams/src/delegated-state.ts","extensions/msteams/src/sqlite-state.ts"]},{"output":".setup/monitor-CXjIKz7o.cjs","sha256":"f65fa38d2c3aff7f6c17579c284875f23dc16716159ae39ab97772c17b17c651","facadeSource":"extensions/msteams/src/monitor.ts","sources":["extensions/msteams/src/adaptive-card-submit.ts","extensions/msteams/src/approval-card-submit.ts","extensions/msteams/src/attachments/bot-framework.ts","extensions/msteams/src/attachments/download.ts","extensions/msteams/src/attachments/graph.ts","extensions/msteams/src/attachments/html.ts","extensions/msteams/src/attachments/remote-media.ts","extensions/msteams/src/feedback-invoke.ts","extensions/msteams/src/file-consent-invoke.ts","extensions/msteams/src/informative-status.ts","extensions/msteams/src/monitor-handler.ts","extensions/msteams/src/monitor-handler/access.ts","extensions/msteams/src/monitor-handler/config.ts","extensions/msteams/src/monitor-handler/inbound-content.ts","extensions/msteams/src/monitor-handler/inbound-facts.ts","extensions/msteams/src/monitor-handler/message-handler.ts","extensions/msteams/src/monitor-handler/reaction-handler.ts","extensions/msteams/src/monitor-handler/thread-context.ts","extensions/msteams/src/monitor.ts","extensions/msteams/src/msteams-ingress.ts","extensions/msteams/src/replay-context.ts","extensions/msteams/src/reply-dispatcher.ts","extensions/msteams/src/reply-stream-controller.ts","extensions/msteams/src/sso-token-store.ts","extensions/msteams/src/team-identity.ts","extensions/msteams/src/thread-parent-context.ts","extensions/msteams/src/webhook-handler.ts","src/channels/mention-gating.ts"]},{"output":".setup/oauth-BWG6qWCd.cjs","sha256":"c88f0138428c2ef36edc7ff9a23505a7963e64de3d89d14a1b773031ffa161ea","facadeSource":"extensions/msteams/src/oauth.ts","sources":["extensions/msteams/src/oauth.ts"]},{"output":".setup/presentation-CaLawc5j.cjs","sha256":"5bfa90cb5bba80d6ca6487237e85fc83b39e3a0d7452ac46c2c5e7c3cfb05767","facadeSource":null,"sources":["extensions/msteams/src/policy.ts","extensions/msteams/src/presentation.ts"]},{"output":".setup/reaction-types-DOzN5oTl.cjs","sha256":"1122395d71501708414beaa8b93d1747646880a9e68122a4529e262fd8c99c5b","facadeSource":null,"sources":["extensions/msteams/src/graph-thread.ts","extensions/msteams/src/reaction-types.ts"]},{"output":".setup/resolve-allowlist-Drj1jaq0.cjs","sha256":"59bfd6e1187eb36d66282ab4c4b8acd6282aebe2a8a13255075d8ab1fe756260","facadeSource":null,"sources":["extensions/msteams/src/accounts.ts","extensions/msteams/src/attachments/shared.ts","extensions/msteams/src/cloud.ts","extensions/msteams/src/graph-users.ts","extensions/msteams/src/graph.ts","extensions/msteams/src/inbound.ts","extensions/msteams/src/microsoft-hosts.ts","extensions/msteams/src/oauth.shared.ts","extensions/msteams/src/oauth.token.ts","extensions/msteams/src/qa/private-runtime.ts","extensions/msteams/src/request-timeout.ts","extensions/msteams/src/resolve-allowlist.ts","extensions/msteams/src/sdk.ts","extensions/msteams/src/send-handoff.ts","extensions/msteams/src/token.ts","extensions/msteams/src/user-agent.ts"]},{"output":".setup/rolldown-runtime-CiKaZLfC.cjs","sha256":"c1a474f193517f93d2fe58301aa10aa38dc1b31db28892b55ef295a73323027b","facadeSource":null,"sources":[]},{"output":".setup/runtime-CbKazLGv.cjs","sha256":"8fb2c37b2dca93387f9ea826d461f13498ebb09e826563a7cdb3ef0be91394e8","facadeSource":null,"sources":["extensions/msteams/src/runtime.ts"]},{"output":".setup/secret-contract-api-DFqDvc_a.cjs","sha256":"489cc5f6580cc3a3d894846a0bea21829de8bcf3219438536ac4f9e24ce124a2","facadeSource":null,"sources":["extensions/msteams/src/secret-contract.ts"]},{"output":".setup/secret-contract-api-YGHrfAT0.cjs","sha256":"2db16ab0850ced58c80aef7efbdb22a325e03ce5835707f147b7900aa64713fb","facadeSource":"extensions/msteams/secret-contract-api.ts","sources":[]},{"output":".setup/send-BRUztzVJ.cjs","sha256":"155f9527e10ac57d940ce7150aa356abcae7c7c1049709d6a2dc857a24d0cdbc","facadeSource":null,"sources":["extensions/msteams/src/send-context.ts","extensions/msteams/src/send.ts"]},{"output":".setup/setup-plugin-api-BHEfter5.cjs","sha256":"93b102a016f694a39ced6349377807c720c7d4fd1e3e2f7fe754bf08571b3337","facadeSource":"extensions/msteams/setup-plugin-api.ts","sources":[]},{"output":".setup/thread-session-BUUV1zk_.cjs","sha256":"2f8867020d3beafbfa1ce18249fc42f31ea155e2dd57cf4d065bf45268f80196","facadeSource":null,"sources":["extensions/msteams/src/approval-auth.ts","extensions/msteams/src/monitor-handler/thread-session.ts"]},{"output":".setup/token-config-7K6UbNCo.cjs","sha256":"50d81d6248ef71976a7896a6ecde06db2226025baa912fc62128c2b84beb00e5","facadeSource":null,"sources":["extensions/msteams/src/token-config.ts"]},{"output":"api.cjs","sha256":"e66d0185eb3c4edf1b9ab17ceac6e8850099853ac2c1dacaea871b5f26c6eaf7","facadeSource":"extensions/msteams/api.ts","sources":[]},{"output":"channel-config-api.cjs","sha256":"8af51f263c0a8153f2308ddc226c36c664a57a367ea67f764355416f0a4339e4","facadeSource":"extensions/msteams/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.cjs","sha256":"9f9bb75768d6a813eefbd1dbce98c6e5f29ad0facfa8c8ccf08807400f6a9366","facadeSource":"extensions/msteams/channel-plugin-api.ts","sources":[]},{"output":"configured-state.cjs","sha256":"b0ef935cc4c25d2625111732aceb77e70893f3a0c04fd32eb6519584874608d1","facadeSource":"extensions/msteams/configured-state.ts","sources":["extensions/msteams/configured-state.ts"]},{"output":"directory-contract-api.cjs","sha256":"3048a2624ce7c9b5cb49bb527cb786d47ba2f3aafa2af4c015957f5356ad3238","facadeSource":"extensions/msteams/directory-contract-api.ts","sources":["extensions/msteams/directory-contract-api.ts"]},{"output":"doctor-backup-resources.cjs","sha256":"26ffdf3f247290a73ea48f90e2149986af3917efc093efa2edf65caee91b85dd","facadeSource":"extensions/msteams/doctor-backup-resources.ts","sources":["extensions/msteams/doctor-backup-resources.ts"]},{"output":"doctor-contract-api.cjs","sha256":"605ed8b33da39208e250bb617db4e591e4786be65187122b5ef57d6acf60a6e1","facadeSource":"extensions/msteams/doctor-contract-api.ts","sources":["extensions/msteams/config-doctor-api.ts","extensions/msteams/doctor-contract-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.cjs","sha256":"89ba75e781763e1acd195536933a559b43b4bb3a474ce45721b70c746a6d9f8d","facadeSource":"extensions/msteams/index.ts","sources":["extensions/msteams/index.ts"]},{"output":"qa-runner-api.cjs","sha256":"63954b0b0955da8b3a9863fe506a19023591fb70631e0c1d1d2c447b9c45a4c6","facadeSource":"extensions/msteams/qa-runner-api.ts","sources":["extensions/msteams/qa-runner-api.ts","extensions/msteams/src/qa/cli.ts"]},{"output":"runtime-api.cjs","sha256":"658664b3490231db29b3bb44e17e7b9ea04d4b8f0138786dc4dcf69eb9f312cf","facadeSource":"extensions/msteams/runtime-api.ts","sources":[]},{"output":"secret-contract-api.cjs","sha256":"ebde9696450374e85a5e477c7a33f13d6257c44b831c9431d19c6983d82f78c1","facadeSource":"extensions/msteams/secret-contract-api.ts","sources":[]},{"output":"setup-entry.cjs","sha256":"27c68cd9a2303188a4215afeccce216f8ad253c96926762cd4252f1977dd2a23","facadeSource":"extensions/msteams/setup-entry.ts","sources":["extensions/msteams/setup-entry.ts"]},{"output":"setup-plugin-api.cjs","sha256":"d4af6668f6ad41977678a1b7cfe8fa9e9cacd80275a7792b8f5ae5a9dece05b8","facadeSource":"extensions/msteams/setup-plugin-api.ts","sources":[]}],"unrenderedSources":["extensions/msteams/api.ts","extensions/msteams/channel-config-api.ts","extensions/msteams/channel-plugin-api.ts","extensions/msteams/runtime-api.ts","extensions/msteams/secret-contract-api.ts","extensions/msteams/setup-plugin-api.ts"]}
|
package/dist/api.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_channel = require("./.setup/channel-
|
|
3
|
-
const require_channel_setup = require("./.setup/channel.setup
|
|
2
|
+
const require_channel = require("./.setup/channel-DQrXOfhf.cjs");
|
|
3
|
+
const require_channel_setup = require("./.setup/channel.setup--7ko_Kxv.cjs");
|
|
4
4
|
exports.createMSTeamsSetupWizardBase = require_channel_setup.createMSTeamsSetupWizardBase;
|
|
5
5
|
exports.msteamsPlugin = require_channel.msteamsPlugin;
|
|
6
6
|
exports.msteamsSetupAdapter = require_channel_setup.msteamsSetupAdapter;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_config_schema = require("./.setup/config-schema-
|
|
2
|
+
const require_config_schema = require("./.setup/config-schema-BEXDIOC-.cjs");
|
|
3
3
|
exports.MSTeamsChannelConfigSchema = require_config_schema.MSTeamsChannelConfigSchema;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_resolve_allowlist = require("./.setup/resolve-allowlist-
|
|
2
|
+
const require_resolve_allowlist = require("./.setup/resolve-allowlist-Drj1jaq0.cjs");
|
|
3
3
|
let openclaw_plugin_sdk_directory_runtime = require("openclaw/plugin-sdk/directory-runtime");
|
|
4
4
|
const msteamsDirectoryContractPlugin = {
|
|
5
5
|
id: "msteams",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_rolldown_runtime = require("./.setup/rolldown-runtime-CiKaZLfC.cjs");
|
|
3
|
-
const require_token_config = require("./.setup/token-config-
|
|
4
|
-
const require_delegated_state = require("./.setup/delegated-state-
|
|
3
|
+
const require_token_config = require("./.setup/token-config-7K6UbNCo.cjs");
|
|
4
|
+
const require_delegated_state = require("./.setup/delegated-state-DhIHahf1.cjs");
|
|
5
5
|
const require_doctor_backup_resources = require("./doctor-backup-resources.cjs");
|
|
6
6
|
let openclaw_plugin_sdk_string_coerce_runtime = require("openclaw/plugin-sdk/string-coerce-runtime");
|
|
7
7
|
let openclaw_plugin_sdk_error_runtime = require("openclaw/plugin-sdk/error-runtime");
|
|
@@ -275,7 +275,7 @@ const stateMigrations = [
|
|
|
275
275
|
const filePath = node_path.default.join(params.stateDir, require_delegated_state.MSTEAMS_DELEGATED_TOKEN_LEGACY_FILENAME);
|
|
276
276
|
let token;
|
|
277
277
|
try {
|
|
278
|
-
token = require_delegated_state.normalizeMSTeamsDelegatedTokens(JSON.parse(await node_fs_promises.default.readFile(filePath, "
|
|
278
|
+
token = require_delegated_state.normalizeMSTeamsDelegatedTokens(JSON.parse((0, runtime_doctor_migrations_exports.decodeUtf8Input)(await node_fs_promises.default.readFile(filePath), "Legacy Teams delegated token")));
|
|
279
279
|
} catch (error) {
|
|
280
280
|
if (error.code === "ENOENT") return {
|
|
281
281
|
changes,
|
|
@@ -284,7 +284,8 @@ const stateMigrations = [
|
|
|
284
284
|
warnings.push(`Failed reading ${MSTEAMS_PLUGIN_ID} delegated OAuth token legacy source; left it in place`);
|
|
285
285
|
return {
|
|
286
286
|
changes,
|
|
287
|
-
warnings
|
|
287
|
+
warnings,
|
|
288
|
+
...error instanceof runtime_doctor_migrations_exports.Utf8InputError ? { warningDisposition: "recoverable" } : {}
|
|
288
289
|
};
|
|
289
290
|
}
|
|
290
291
|
if (!token) {
|
|
@@ -308,7 +309,7 @@ const stateMigrations = [
|
|
|
308
309
|
};
|
|
309
310
|
}
|
|
310
311
|
if (!existing) try {
|
|
311
|
-
await store.registerIfAbsent(
|
|
312
|
+
if (!await store.registerIfAbsent("current", token)) throw new Error("Canonical state appeared during offline import.");
|
|
312
313
|
} catch (error) {
|
|
313
314
|
warnings.push(`Failed importing ${MSTEAMS_PLUGIN_ID} delegated OAuth token: ${String(error)}; left legacy source in place`);
|
|
314
315
|
return {
|
|
@@ -316,14 +317,6 @@ const stateMigrations = [
|
|
|
316
317
|
warnings
|
|
317
318
|
};
|
|
318
319
|
}
|
|
319
|
-
const persisted = require_delegated_state.normalizeMSTeamsDelegatedTokens(await store.lookup(require_delegated_state.MSTEAMS_DELEGATED_TOKEN_KEY));
|
|
320
|
-
if (!persisted || JSON.stringify(persisted) !== JSON.stringify(token)) {
|
|
321
|
-
warnings.push(`Failed verifying ${MSTEAMS_PLUGIN_ID} delegated OAuth token in plugin state; left legacy source in place`);
|
|
322
|
-
return {
|
|
323
|
-
changes,
|
|
324
|
-
warnings
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
320
|
changes.push(`Migrated ${MSTEAMS_PLUGIN_ID} delegated OAuth token -> plugin state`);
|
|
328
321
|
await (0, runtime_doctor_migrations_exports.archiveLegacyStateSource)({
|
|
329
322
|
filePath,
|
package/dist/qa-runner-api.cjs
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
let openclaw_plugin_sdk_qa_runner_runtime = require("openclaw/plugin-sdk/qa-runner-runtime");
|
|
3
3
|
// extensions/msteams/src/qa/cli.ts
|
|
4
4
|
const DEFAULT_MSTEAMS_QA_SCENARIOS = ["channel-canary"];
|
|
5
|
-
const loadMSTeamsQaAdapterRuntime = (0, openclaw_plugin_sdk_qa_runner_runtime.createLazyCliRuntimeLoader)(() => Promise.resolve().then(() => require("./.setup/adapter.runtime-
|
|
5
|
+
const loadMSTeamsQaAdapterRuntime = (0, openclaw_plugin_sdk_qa_runner_runtime.createLazyCliRuntimeLoader)(() => Promise.resolve().then(() => require("./.setup/adapter.runtime-UOD_H_ph.cjs")));
|
|
6
6
|
// extensions/msteams/qa-runner-api.ts
|
|
7
7
|
const qaRunnerCliRegistrations = [(0, openclaw_plugin_sdk_qa_runner_runtime.createLiveTransportQaCliRegistration)({
|
|
8
8
|
commandName: "msteams",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_secret_contract_api = require("./.setup/secret-contract-api-
|
|
2
|
+
const require_secret_contract_api = require("./.setup/secret-contract-api-DFqDvc_a.cjs");
|
|
3
3
|
exports.channelSecrets = require_secret_contract_api.channelSecrets;
|
|
4
4
|
exports.collectRuntimeConfigAssignments = require_secret_contract_api.collectRuntimeConfigAssignments;
|
|
5
5
|
exports.secretTargetRegistryEntries = require_secret_contract_api.secretTargetRegistryEntries;
|
package/dist/setup-entry.cjs
CHANGED
|
@@ -4,11 +4,11 @@ let node_url = require("node:url");
|
|
|
4
4
|
var setup_entry_default = (0, openclaw_plugin_sdk_channel_entry_contract.defineBundledChannelSetupEntry)({
|
|
5
5
|
importMetaUrl: require("url").pathToFileURL(__filename).href,
|
|
6
6
|
plugin: {
|
|
7
|
-
specifier: (0, node_url.fileURLToPath)(new URL(".setup/setup-plugin-api-
|
|
7
|
+
specifier: (0, node_url.fileURLToPath)(new URL(".setup/setup-plugin-api-BHEfter5.cjs", require("url").pathToFileURL(__filename).href).href),
|
|
8
8
|
exportName: "msteamsSetupPlugin"
|
|
9
9
|
},
|
|
10
10
|
secrets: {
|
|
11
|
-
specifier: (0, node_url.fileURLToPath)(new URL(".setup/secret-contract-api-
|
|
11
|
+
specifier: (0, node_url.fileURLToPath)(new URL(".setup/secret-contract-api-YGHrfAT0.cjs", require("url").pathToFileURL(__filename).href).href),
|
|
12
12
|
exportName: "channelSecrets"
|
|
13
13
|
}
|
|
14
14
|
});
|