@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.
Files changed (32) hide show
  1. package/dist/.setup/{adapter.runtime-BMvpm7sS.cjs → adapter.runtime-UOD_H_ph.cjs} +20 -23
  2. package/dist/.setup/{approval-card-Bo8kHYbj.cjs → approval-card-CD5q0Nla.cjs} +5 -9
  3. package/dist/.setup/{approval-handler.runtime-BS3avHFu.cjs → approval-handler.runtime-DbPxvynk.cjs} +4 -4
  4. package/dist/.setup/{channel-CdCSk3Rg.cjs → channel-DQrXOfhf.cjs} +24 -224
  5. package/dist/.setup/{channel.runtime--ZjTYgkY.cjs → channel.runtime-Du4GPMES.cjs} +65 -106
  6. package/dist/.setup/{channel.setup-nSTtK77J.cjs → channel.setup--7ko_Kxv.cjs} +161 -262
  7. package/dist/.setup/{config-schema-Bm15lF-j.cjs → config-schema-BEXDIOC-.cjs} +120 -123
  8. package/dist/.setup/{conversation-store-state-NJU9osd-.cjs → conversation-store-state-AVgRyNE9.cjs} +411 -598
  9. package/dist/.setup/{delegated-state-CbMd3rIh.cjs → delegated-state-DhIHahf1.cjs} +68 -6
  10. package/dist/.setup/{monitor-BxLDs5fk.cjs → monitor-CXjIKz7o.cjs} +1883 -2284
  11. package/dist/.setup/{oauth-B-Y5pNM4.cjs → oauth-BWG6qWCd.cjs} +10 -20
  12. package/dist/.setup/presentation-CaLawc5j.cjs +211 -0
  13. package/dist/.setup/{reaction-types-BaL1EVBS.cjs → reaction-types-DOzN5oTl.cjs} +1 -1
  14. package/dist/.setup/{resolve-allowlist-CqNzS9bZ.cjs → resolve-allowlist-Drj1jaq0.cjs} +213 -90
  15. package/dist/.setup/{secret-contract-api-BOzdWSn9.cjs → secret-contract-api-DFqDvc_a.cjs} +4 -6
  16. package/dist/.setup/{secret-contract-api-5aH1Fl_c.cjs → secret-contract-api-YGHrfAT0.cjs} +1 -1
  17. package/dist/.setup/{send-BXjI3ufq.cjs → send-BRUztzVJ.cjs} +86 -182
  18. package/dist/.setup/{setup-plugin-api-lPpin6Gg.cjs → setup-plugin-api-BHEfter5.cjs} +1 -1
  19. package/dist/.setup/{thread-session-DZMoCsSR.cjs → thread-session-BUUV1zk_.cjs} +4 -6
  20. package/dist/.setup/{token-config-DTZ00Ibq.cjs → token-config-7K6UbNCo.cjs} +0 -2
  21. package/dist/.source-module-urls/7e43ee3ae4faab430a47269c8217f8d99ec60ecd85233f40e81d03efeb543068.json +1 -1
  22. package/dist/api.cjs +2 -2
  23. package/dist/channel-config-api.cjs +1 -1
  24. package/dist/channel-plugin-api.cjs +1 -1
  25. package/dist/directory-contract-api.cjs +1 -1
  26. package/dist/doctor-contract-api.cjs +6 -13
  27. package/dist/qa-runner-api.cjs +1 -1
  28. package/dist/secret-contract-api.cjs +1 -1
  29. package/dist/setup-entry.cjs +2 -2
  30. package/dist/setup-plugin-api.cjs +1 -1
  31. package/openclaw.plugin.json +0 -30
  32. 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-DTZ00Ibq.cjs");
3
- const require_resolve_allowlist = require("./resolve-allowlist-CqNzS9bZ.cjs");
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 require_channel = require("./channel-CdCSk3Rg.cjs");
7
- const require_channel_setup = require("./channel.setup-nSTtK77J.cjs");
8
- const require_conversation_store_state = require("./conversation-store-state-NJU9osd-.cjs");
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 = parseRecipient(params.to);
103
- const found = await findConversationReference({
104
- ...recipient,
105
- store
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
- } : resolveMSTeamsProactiveReplyTarget({
148
- cfg: msteamsCfg,
149
- conversationId,
150
- ref: safeRef,
151
- conversationType
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, log, conversationType, tokenProvider, sharePointSiteId } = ctx;
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, log } = ctx;
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, log } = ctx;
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, log, sdkCloudOptions } = await resolveMSTeamsSendContext({
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,3 +1,3 @@
1
- const require_channel_setup = require("./channel.setup-nSTtK77J.cjs");
1
+ const require_channel_setup = require("./channel.setup--7ko_Kxv.cjs");
2
2
  require("../setup-plugin-api.cjs");
3
3
  exports.msteamsSetupPlugin = require_channel_setup.msteamsSetupPlugin;
@@ -1,4 +1,4 @@
1
- const require_resolve_allowlist = require("./resolve-allowlist-CqNzS9bZ.cjs");
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 ?? void 0 : void 0;
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: cleanBase,
41
+ baseSessionKey: params.baseSessionKey,
44
42
  threadId: channelThreadId,
45
- parentSessionKey: channelThreadId ? cleanBase : void 0
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-CdCSk3Rg.cjs");
3
- const require_channel_setup = require("./.setup/channel.setup-nSTtK77J.cjs");
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-Bm15lF-j.cjs");
2
+ const require_config_schema = require("./.setup/config-schema-BEXDIOC-.cjs");
3
3
  exports.MSTeamsChannelConfigSchema = require_config_schema.MSTeamsChannelConfigSchema;
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_channel = require("./.setup/channel-CdCSk3Rg.cjs");
2
+ const require_channel = require("./.setup/channel-DQrXOfhf.cjs");
3
3
  exports.msteamsPlugin = require_channel.msteamsPlugin;
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_resolve_allowlist = require("./.setup/resolve-allowlist-CqNzS9bZ.cjs");
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-DTZ00Ibq.cjs");
4
- const require_delegated_state = require("./.setup/delegated-state-CbMd3rIh.cjs");
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, "utf8")));
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(require_delegated_state.MSTEAMS_DELEGATED_TOKEN_KEY, token);
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,
@@ -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-BMvpm7sS.cjs")));
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-BOzdWSn9.cjs");
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;
@@ -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-lPpin6Gg.cjs", require("url").pathToFileURL(__filename).href).href),
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-5aH1Fl_c.cjs", require("url").pathToFileURL(__filename).href).href),
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
  });