@floriscornel/teams-mcp 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ import { markdownToHtml } from "../utils/markdown.js";
3
+ import { processMentionsInHtml } from "../utils/users.js";
2
4
  export function registerChatTools(server, graphService) {
3
5
  // List user's chats
4
6
  server.tool("list_chats", {}, async () => {
@@ -153,37 +155,102 @@ export function registerChatTools(server, graphService) {
153
155
  chatId: z.string().describe("Chat ID"),
154
156
  message: z.string().describe("Message content"),
155
157
  importance: z.enum(["normal", "high", "urgent"]).optional().describe("Message importance"),
156
- }, async ({ chatId, message, importance = "normal" }) => {
158
+ format: z.enum(["text", "markdown"]).optional().describe("Message format (text or markdown)"),
159
+ mentions: z
160
+ .array(z.object({
161
+ mention: z
162
+ .string()
163
+ .describe("The @mention text (e.g., 'john.doe' or 'john.doe@company.com')"),
164
+ userId: z.string().describe("Azure AD User ID of the mentioned user"),
165
+ }))
166
+ .optional()
167
+ .describe("Array of @mentions to include in the message"),
168
+ }, async ({ chatId, message, importance = "normal", format = "text", mentions }) => {
157
169
  try {
158
170
  const client = await graphService.getClient();
159
- const newMessage = {
171
+ // Process message content based on format
172
+ let content;
173
+ let contentType;
174
+ if (format === "markdown") {
175
+ content = await markdownToHtml(message);
176
+ contentType = "html";
177
+ }
178
+ else {
179
+ content = message;
180
+ contentType = "text";
181
+ }
182
+ // Process @mentions if provided
183
+ const mentionMappings = [];
184
+ if (mentions && mentions.length > 0) {
185
+ // Convert provided mentions to mappings with display names
186
+ for (const mention of mentions) {
187
+ try {
188
+ // Get user info to get display name
189
+ const userResponse = await client
190
+ .api(`/users/${mention.userId}`)
191
+ .select("displayName")
192
+ .get();
193
+ mentionMappings.push({
194
+ mention: mention.mention,
195
+ userId: mention.userId,
196
+ displayName: userResponse.displayName || mention.mention,
197
+ });
198
+ }
199
+ catch (error) {
200
+ console.warn(`Could not resolve user ${mention.userId}, using mention text as display name`);
201
+ mentionMappings.push({
202
+ mention: mention.mention,
203
+ userId: mention.userId,
204
+ displayName: mention.mention,
205
+ });
206
+ }
207
+ }
208
+ }
209
+ // Process mentions in HTML content
210
+ let finalMentions = [];
211
+ if (mentionMappings.length > 0) {
212
+ const result = processMentionsInHtml(content, mentionMappings);
213
+ content = result.content;
214
+ finalMentions = result.mentions;
215
+ // Ensure we're using HTML content type when mentions are present
216
+ contentType = "html";
217
+ }
218
+ // Build message payload
219
+ const messagePayload = {
160
220
  body: {
161
- content: message,
162
- contentType: "text",
221
+ content,
222
+ contentType,
163
223
  },
164
- importance: importance,
224
+ importance,
165
225
  };
226
+ if (finalMentions.length > 0) {
227
+ messagePayload.mentions = finalMentions;
228
+ }
166
229
  const result = (await client
167
230
  .api(`/me/chats/${chatId}/messages`)
168
- .post(newMessage));
231
+ .post(messagePayload));
232
+ // Build success message
233
+ const successText = `✅ Message sent successfully. Message ID: ${result.id}${finalMentions.length > 0
234
+ ? `\n📱 Mentions: ${finalMentions.map((m) => m.mentionText).join(", ")}`
235
+ : ""}`;
169
236
  return {
170
237
  content: [
171
238
  {
172
239
  type: "text",
173
- text: `✅ Message sent successfully. Message ID: ${result?.id}`,
240
+ text: successText,
174
241
  },
175
242
  ],
176
243
  };
177
244
  }
178
245
  catch (error) {
179
- const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
180
246
  return {
181
247
  content: [
182
248
  {
183
249
  type: "text",
184
- text: `❌ Error: ${errorMessage}`,
250
+ text: `❌ Failed to send message: ${error.message}`,
185
251
  },
186
252
  ],
253
+ isError: true,
187
254
  };
188
255
  }
189
256
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/tools/chats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/tools/chats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,YAA0B;IAC7E,oBAAoB;IACpB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAA2B,CAAC;YAEjF,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iBAAiB;yBACxB;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAkB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC;gBAClE,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM;aAClC,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;YACvF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY,YAAY,EAAE;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtC,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACjF,OAAO,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;aACjD,QAAQ,EAAE;aACV,OAAO,CAAC,iBAAiB,CAAC;aAC1B,QAAQ,CAAC,YAAY,CAAC;QACzB,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CAAC,yCAAyC,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;YAE9C,yBAAyB;YACzB,MAAM,WAAW,GAAa,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;YAEhD,eAAe;YACf,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,WAAW,CAAC,IAAI,CAAC,YAAY,OAAO,IAAI,aAAa,EAAE,CAAC,CAAC;YAEzD,uDAAuD;YACvD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,GAAG,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE1C,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM;iBAC3B,GAAG,CAAC,aAAa,MAAM,aAAa,WAAW,EAAE,CAAC;iBAClD,GAAG,EAAE,CAAkC,CAAC;YAE3C,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4DAA4D;yBACnE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,gFAAgF;YAChF,IAAI,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC;YAEtC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBACnB,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE;oBAChE,IAAI,CAAC,OAAO,CAAC,eAAe;wBAAE,OAAO,IAAI,CAAC;oBAE1C,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBACtD,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClC,IAAI,WAAW,IAAI,SAAS;4BAAE,OAAO,KAAK,CAAC;oBAC7C,CAAC;oBACD,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClC,IAAI,WAAW,IAAI,SAAS;4BAAE,OAAO,KAAK,CAAC;oBAC7C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,WAAW,GAAqB,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,CAAC;gBACpF,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO;gBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW;gBACrC,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;4BACnC,eAAe,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;4BAC/D,aAAa,EAAE,WAAW,CAAC,MAAM;4BACjC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;4BACtC,QAAQ,EAAE,WAAW;yBACtB,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;YACvF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY,YAAY,EAAE;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC1F,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC7F,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,CAAC,gEAAgE,CAAC;YAC7E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SACtE,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;KAC5D,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;YAE9C,0CAA0C;YAC1C,IAAI,OAAe,CAAC;YACpB,IAAI,WAA4B,CAAC;YAEjC,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxC,WAAW,GAAG,MAAM,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,OAAO,CAAC;gBAClB,WAAW,GAAG,MAAM,CAAC;YACvB,CAAC;YAED,gCAAgC;YAChC,MAAM,eAAe,GAAoE,EAAE,CAAC;YAC5F,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,2DAA2D;gBAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,oCAAoC;wBACpC,MAAM,YAAY,GAAG,MAAM,MAAM;6BAC9B,GAAG,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC;6BAC/B,MAAM,CAAC,aAAa,CAAC;6BACrB,GAAG,EAAE,CAAC;wBACT,eAAe,CAAC,IAAI,CAAC;4BACnB,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO;yBACzD,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CACV,0BAA0B,OAAO,CAAC,MAAM,sCAAsC,CAC/E,CAAC;wBACF,eAAe,CAAC,IAAI,CAAC;4BACnB,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,WAAW,EAAE,OAAO,CAAC,OAAO;yBAC7B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,IAAI,aAAa,GAIZ,EAAE,CAAC;YACR,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBAC/D,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAEhC,iEAAiE;gBACjE,WAAW,GAAG,MAAM,CAAC;YACvB,CAAC;YAED,wBAAwB;YACxB,MAAM,cAAc,GAAQ;gBAC1B,IAAI,EAAE;oBACJ,OAAO;oBACP,WAAW;iBACZ;gBACD,UAAU;aACX,CAAC;YAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAC;YAC1C,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM;iBACzB,GAAG,CAAC,aAAa,MAAM,WAAW,CAAC;iBACnC,IAAI,CAAC,cAAc,CAAC,CAAgB,CAAC;YAExC,wBAAwB;YACxB,MAAM,WAAW,GAAG,4CAA4C,MAAM,CAAC,EAAE,GACvE,aAAa,CAAC,MAAM,GAAG,CAAC;gBACtB,CAAC,CAAC,kBAAkB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxE,CAAC,CAAC,EACN,EAAE,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,WAAW;qBAClB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,6BAA6B,KAAK,CAAC,OAAO,EAAE;qBACnD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CACT,aAAa,EACb;QACE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KACtE,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;YAE9C,sBAAsB;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAS,CAAC;YAEnD,uBAAuB;YACvB,MAAM,OAAO,GAAyB;gBACpC;oBACE,aAAa,EAAE,4CAA4C;oBAC3D,IAAI,EAAE;wBACJ,EAAE,EAAE,EAAE,EAAE,EAAE;qBACX;oBACD,KAAK,EAAE,CAAC,OAAO,CAAC;iBACK;aACxB,CAAC;YAEF,6BAA6B;YAC7B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAS,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC;oBACX,aAAa,EAAE,4CAA4C;oBAC3D,IAAI,EAAE;wBACJ,EAAE,EAAE,IAAI,EAAE,EAAE;qBACb;oBACD,KAAK,EAAE,CAAC,QAAQ,CAAC;iBACI,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,QAAQ,GAAsB;gBAClC,QAAQ,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;gBACxD,OAAO;aACR,CAAC;YAEF,IAAI,KAAK,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAS,CAAC;YAEpE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yCAAyC,OAAO,EAAE,EAAE,EAAE;qBAC7D;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;YACvF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY,YAAY,EAAE;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAazD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,QA8Z/E"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,QAkyB/E"}
@@ -1,4 +1,7 @@
1
1
  import { z } from "zod";
2
+ import { imageUrlToBase64, isValidImageType, uploadImageAsHostedContent, } from "../utils/attachments.js";
3
+ import { markdownToHtml } from "../utils/markdown.js";
4
+ import { processMentionsInHtml, searchUsers } from "../utils/users.js";
2
5
  export function registerTeamsTools(server, graphService) {
3
6
  // List user's teams
4
7
  server.tool("list_teams", {}, async () => {
@@ -163,37 +166,162 @@ export function registerTeamsTools(server, graphService) {
163
166
  channelId: z.string().describe("Channel ID"),
164
167
  message: z.string().describe("Message content"),
165
168
  importance: z.enum(["normal", "high", "urgent"]).optional().describe("Message importance"),
166
- }, async ({ teamId, channelId, message, importance = "normal" }) => {
169
+ format: z.enum(["text", "markdown"]).optional().describe("Message format (text or markdown)"),
170
+ mentions: z
171
+ .array(z.object({
172
+ mention: z
173
+ .string()
174
+ .describe("The @mention text (e.g., 'john.doe' or 'john.doe@company.com')"),
175
+ userId: z.string().describe("Azure AD User ID of the mentioned user"),
176
+ }))
177
+ .optional()
178
+ .describe("Array of @mentions to include in the message"),
179
+ imageUrl: z.string().optional().describe("URL of an image to attach to the message"),
180
+ imageData: z.string().optional().describe("Base64 encoded image data to attach"),
181
+ imageContentType: z
182
+ .string()
183
+ .optional()
184
+ .describe("MIME type of the image (e.g., 'image/jpeg', 'image/png')"),
185
+ imageFileName: z.string().optional().describe("Name for the attached image file"),
186
+ }, async ({ teamId, channelId, message, importance = "normal", format = "text", mentions, imageUrl, imageData, imageContentType, imageFileName, }) => {
167
187
  try {
168
188
  const client = await graphService.getClient();
169
- const newMessage = {
189
+ // Process message content based on format
190
+ let content;
191
+ let contentType;
192
+ if (format === "markdown") {
193
+ content = await markdownToHtml(message);
194
+ contentType = "html";
195
+ }
196
+ else {
197
+ content = message;
198
+ contentType = "text";
199
+ }
200
+ // Process @mentions if provided
201
+ const mentionMappings = [];
202
+ if (mentions && mentions.length > 0) {
203
+ // Convert provided mentions to mappings with display names
204
+ for (const mention of mentions) {
205
+ try {
206
+ // Get user info to get display name
207
+ const userResponse = await client
208
+ .api(`/users/${mention.userId}`)
209
+ .select("displayName")
210
+ .get();
211
+ mentionMappings.push({
212
+ mention: mention.mention,
213
+ userId: mention.userId,
214
+ displayName: userResponse.displayName || mention.mention,
215
+ });
216
+ }
217
+ catch (error) {
218
+ console.warn(`Could not resolve user ${mention.userId}, using mention text as display name`);
219
+ mentionMappings.push({
220
+ mention: mention.mention,
221
+ userId: mention.userId,
222
+ displayName: mention.mention,
223
+ });
224
+ }
225
+ }
226
+ }
227
+ // Process mentions in HTML content
228
+ let finalMentions = [];
229
+ if (mentionMappings.length > 0) {
230
+ const result = processMentionsInHtml(content, mentionMappings);
231
+ content = result.content;
232
+ finalMentions = result.mentions;
233
+ // Ensure we're using HTML content type when mentions are present
234
+ contentType = "html";
235
+ }
236
+ // Handle image attachment
237
+ const attachments = [];
238
+ if (imageUrl || imageData) {
239
+ let imageInfo = null;
240
+ if (imageUrl) {
241
+ imageInfo = await imageUrlToBase64(imageUrl);
242
+ if (!imageInfo) {
243
+ return {
244
+ content: [
245
+ {
246
+ type: "text",
247
+ text: `❌ Failed to download image from URL: ${imageUrl}`,
248
+ },
249
+ ],
250
+ isError: true,
251
+ };
252
+ }
253
+ }
254
+ else if (imageData && imageContentType) {
255
+ if (!isValidImageType(imageContentType)) {
256
+ return {
257
+ content: [
258
+ {
259
+ type: "text",
260
+ text: `❌ Unsupported image type: ${imageContentType}`,
261
+ },
262
+ ],
263
+ isError: true,
264
+ };
265
+ }
266
+ imageInfo = { data: imageData, contentType: imageContentType };
267
+ }
268
+ if (imageInfo) {
269
+ const uploadResult = await uploadImageAsHostedContent(graphService, teamId, channelId, imageInfo.data, imageInfo.contentType, imageFileName);
270
+ if (uploadResult) {
271
+ attachments.push(uploadResult.attachment);
272
+ }
273
+ else {
274
+ return {
275
+ content: [
276
+ {
277
+ type: "text",
278
+ text: "❌ Failed to upload image attachment",
279
+ },
280
+ ],
281
+ isError: true,
282
+ };
283
+ }
284
+ }
285
+ }
286
+ // Build message payload
287
+ const messagePayload = {
170
288
  body: {
171
- content: message,
172
- contentType: "text",
289
+ content,
290
+ contentType,
173
291
  },
174
- importance: importance,
292
+ importance,
175
293
  };
294
+ if (finalMentions.length > 0) {
295
+ messagePayload.mentions = finalMentions;
296
+ }
297
+ if (attachments.length > 0) {
298
+ messagePayload.attachments = attachments;
299
+ }
176
300
  const result = (await client
177
301
  .api(`/teams/${teamId}/channels/${channelId}/messages`)
178
- .post(newMessage));
302
+ .post(messagePayload));
303
+ // Build success message
304
+ const successText = `✅ Message sent successfully. Message ID: ${result.id}${finalMentions.length > 0
305
+ ? `\n📱 Mentions: ${finalMentions.map((m) => m.mentionText).join(", ")}`
306
+ : ""}${attachments.length > 0 ? `\n🖼️ Image attached: ${attachments[0].name}` : ""}`;
179
307
  return {
180
308
  content: [
181
309
  {
182
310
  type: "text",
183
- text: `✅ Message sent successfully. Message ID: ${result?.id}`,
311
+ text: successText,
184
312
  },
185
313
  ],
186
314
  };
187
315
  }
188
316
  catch (error) {
189
- const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
190
317
  return {
191
318
  content: [
192
319
  {
193
320
  type: "text",
194
- text: `❌ Error: ${errorMessage}`,
321
+ text: `❌ Failed to send message: ${error.message}`,
195
322
  },
196
323
  ],
324
+ isError: true,
197
325
  };
198
326
  }
199
327
  });
@@ -274,37 +402,162 @@ export function registerTeamsTools(server, graphService) {
274
402
  messageId: z.string().describe("Message ID to reply to"),
275
403
  message: z.string().describe("Reply content"),
276
404
  importance: z.enum(["normal", "high", "urgent"]).optional().describe("Message importance"),
277
- }, async ({ teamId, channelId, messageId, message, importance = "normal" }) => {
405
+ format: z.enum(["text", "markdown"]).optional().describe("Message format (text or markdown)"),
406
+ mentions: z
407
+ .array(z.object({
408
+ mention: z
409
+ .string()
410
+ .describe("The @mention text (e.g., 'john.doe' or 'john.doe@company.com')"),
411
+ userId: z.string().describe("Azure AD User ID of the mentioned user"),
412
+ }))
413
+ .optional()
414
+ .describe("Array of @mentions to include in the reply"),
415
+ imageUrl: z.string().optional().describe("URL of an image to attach to the reply"),
416
+ imageData: z.string().optional().describe("Base64 encoded image data to attach"),
417
+ imageContentType: z
418
+ .string()
419
+ .optional()
420
+ .describe("MIME type of the image (e.g., 'image/jpeg', 'image/png')"),
421
+ imageFileName: z.string().optional().describe("Name for the attached image file"),
422
+ }, async ({ teamId, channelId, messageId, message, importance = "normal", format = "text", mentions, imageUrl, imageData, imageContentType, imageFileName, }) => {
278
423
  try {
279
424
  const client = await graphService.getClient();
280
- const newReply = {
425
+ // Process message content based on format
426
+ let content;
427
+ let contentType;
428
+ if (format === "markdown") {
429
+ content = await markdownToHtml(message);
430
+ contentType = "html";
431
+ }
432
+ else {
433
+ content = message;
434
+ contentType = "text";
435
+ }
436
+ // Process @mentions if provided
437
+ const mentionMappings = [];
438
+ if (mentions && mentions.length > 0) {
439
+ // Convert provided mentions to mappings with display names
440
+ for (const mention of mentions) {
441
+ try {
442
+ // Get user info to get display name
443
+ const userResponse = await client
444
+ .api(`/users/${mention.userId}`)
445
+ .select("displayName")
446
+ .get();
447
+ mentionMappings.push({
448
+ mention: mention.mention,
449
+ userId: mention.userId,
450
+ displayName: userResponse.displayName || mention.mention,
451
+ });
452
+ }
453
+ catch (error) {
454
+ console.warn(`Could not resolve user ${mention.userId}, using mention text as display name`);
455
+ mentionMappings.push({
456
+ mention: mention.mention,
457
+ userId: mention.userId,
458
+ displayName: mention.mention,
459
+ });
460
+ }
461
+ }
462
+ }
463
+ // Process mentions in HTML content
464
+ let finalMentions = [];
465
+ if (mentionMappings.length > 0) {
466
+ const result = processMentionsInHtml(content, mentionMappings);
467
+ content = result.content;
468
+ finalMentions = result.mentions;
469
+ // Ensure we're using HTML content type when mentions are present
470
+ contentType = "html";
471
+ }
472
+ // Handle image attachment
473
+ const attachments = [];
474
+ if (imageUrl || imageData) {
475
+ let imageInfo = null;
476
+ if (imageUrl) {
477
+ imageInfo = await imageUrlToBase64(imageUrl);
478
+ if (!imageInfo) {
479
+ return {
480
+ content: [
481
+ {
482
+ type: "text",
483
+ text: `❌ Failed to download image from URL: ${imageUrl}`,
484
+ },
485
+ ],
486
+ isError: true,
487
+ };
488
+ }
489
+ }
490
+ else if (imageData && imageContentType) {
491
+ if (!isValidImageType(imageContentType)) {
492
+ return {
493
+ content: [
494
+ {
495
+ type: "text",
496
+ text: `❌ Unsupported image type: ${imageContentType}`,
497
+ },
498
+ ],
499
+ isError: true,
500
+ };
501
+ }
502
+ imageInfo = { data: imageData, contentType: imageContentType };
503
+ }
504
+ if (imageInfo) {
505
+ const uploadResult = await uploadImageAsHostedContent(graphService, teamId, channelId, imageInfo.data, imageInfo.contentType, imageFileName);
506
+ if (uploadResult) {
507
+ attachments.push(uploadResult.attachment);
508
+ }
509
+ else {
510
+ return {
511
+ content: [
512
+ {
513
+ type: "text",
514
+ text: "❌ Failed to upload image attachment",
515
+ },
516
+ ],
517
+ isError: true,
518
+ };
519
+ }
520
+ }
521
+ }
522
+ // Build message payload
523
+ const messagePayload = {
281
524
  body: {
282
- content: message,
283
- contentType: "text",
525
+ content,
526
+ contentType,
284
527
  },
285
- importance: importance,
528
+ importance,
286
529
  };
530
+ if (finalMentions.length > 0) {
531
+ messagePayload.mentions = finalMentions;
532
+ }
533
+ if (attachments.length > 0) {
534
+ messagePayload.attachments = attachments;
535
+ }
287
536
  const result = (await client
288
537
  .api(`/teams/${teamId}/channels/${channelId}/messages/${messageId}/replies`)
289
- .post(newReply));
538
+ .post(messagePayload));
539
+ // Build success message
540
+ const successText = `✅ Reply sent successfully. Reply ID: ${result.id}${finalMentions.length > 0
541
+ ? `\n📱 Mentions: ${finalMentions.map((m) => m.mentionText).join(", ")}`
542
+ : ""}${attachments.length > 0 ? `\n🖼️ Image attached: ${attachments[0].name}` : ""}`;
290
543
  return {
291
544
  content: [
292
545
  {
293
546
  type: "text",
294
- text: `✅ Reply sent successfully. Reply ID: ${result?.id}`,
547
+ text: successText,
295
548
  },
296
549
  ],
297
550
  };
298
551
  }
299
552
  catch (error) {
300
- const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
301
553
  return {
302
554
  content: [
303
555
  {
304
556
  type: "text",
305
- text: `❌ Error: ${errorMessage}`,
557
+ text: `❌ Failed to send reply: ${error.message}`,
306
558
  },
307
559
  ],
560
+ isError: true,
308
561
  };
309
562
  }
310
563
  });
@@ -353,5 +606,59 @@ export function registerTeamsTools(server, graphService) {
353
606
  };
354
607
  }
355
608
  });
609
+ // Search users for @mentions
610
+ server.tool("search_users", {
611
+ query: z.string().describe("Search query (name or email)"),
612
+ limit: z
613
+ .number()
614
+ .min(1)
615
+ .max(50)
616
+ .optional()
617
+ .default(10)
618
+ .describe("Maximum number of results to return"),
619
+ }, async ({ query, limit }) => {
620
+ try {
621
+ const users = await searchUsers(graphService, query, limit);
622
+ if (users.length === 0) {
623
+ return {
624
+ content: [
625
+ {
626
+ type: "text",
627
+ text: `No users found matching "${query}".`,
628
+ },
629
+ ],
630
+ };
631
+ }
632
+ return {
633
+ content: [
634
+ {
635
+ type: "text",
636
+ text: JSON.stringify({
637
+ query,
638
+ totalResults: users.length,
639
+ users: users.map((user) => ({
640
+ id: user.id,
641
+ displayName: user.displayName,
642
+ userPrincipalName: user.userPrincipalName,
643
+ mentionText: user.userPrincipalName?.split("@")[0] ||
644
+ user.displayName.toLowerCase().replace(/\s+/g, ""),
645
+ })),
646
+ }, null, 2),
647
+ },
648
+ ],
649
+ };
650
+ }
651
+ catch (error) {
652
+ const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
653
+ return {
654
+ content: [
655
+ {
656
+ type: "text",
657
+ text: `❌ Error: ${errorMessage}`,
658
+ },
659
+ ],
660
+ };
661
+ }
662
+ });
356
663
  }
357
664
  //# sourceMappingURL=teams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/tools/teams.ts"],"names":[],"mappings":"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"}