teams-api 0.7.0 โ†’ 0.9.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.
Files changed (59) hide show
  1. package/dist/actions/conversation-actions.d.ts +10 -0
  2. package/dist/actions/conversation-actions.d.ts.map +1 -0
  3. package/dist/actions/conversation-actions.js +168 -0
  4. package/dist/actions/conversation-actions.js.map +1 -0
  5. package/dist/actions/definitions.d.ts +5 -10
  6. package/dist/actions/definitions.d.ts.map +1 -1
  7. package/dist/actions/definitions.js +22 -813
  8. package/dist/actions/definitions.js.map +1 -1
  9. package/dist/actions/file-actions.d.ts +8 -0
  10. package/dist/actions/file-actions.d.ts.map +1 -0
  11. package/dist/actions/file-actions.js +124 -0
  12. package/dist/actions/file-actions.js.map +1 -0
  13. package/dist/actions/formatters.d.ts +1 -1
  14. package/dist/actions/formatters.d.ts.map +1 -1
  15. package/dist/actions/message-actions.d.ts +11 -0
  16. package/dist/actions/message-actions.d.ts.map +1 -0
  17. package/dist/actions/message-actions.js +453 -0
  18. package/dist/actions/message-actions.js.map +1 -0
  19. package/dist/actions/search-actions.d.ts +9 -0
  20. package/dist/actions/search-actions.d.ts.map +1 -0
  21. package/dist/actions/search-actions.js +148 -0
  22. package/dist/actions/search-actions.js.map +1 -0
  23. package/dist/actions/utility-actions.d.ts +10 -0
  24. package/dist/actions/utility-actions.d.ts.map +1 -0
  25. package/dist/actions/utility-actions.js +200 -0
  26. package/dist/actions/utility-actions.js.map +1 -0
  27. package/dist/api/attachments.d.ts +106 -0
  28. package/dist/api/attachments.d.ts.map +1 -0
  29. package/dist/api/attachments.js +341 -0
  30. package/dist/api/attachments.js.map +1 -0
  31. package/dist/api/chat-service.d.ts +1 -1
  32. package/dist/api/chat-service.d.ts.map +1 -1
  33. package/dist/api/chat-service.js +8 -1
  34. package/dist/api/chat-service.js.map +1 -1
  35. package/dist/auth/auto-login.d.ts.map +1 -1
  36. package/dist/auth/auto-login.js +4 -1
  37. package/dist/auth/auto-login.js.map +1 -1
  38. package/dist/auth/interactive.d.ts.map +1 -1
  39. package/dist/auth/interactive.js +3 -1
  40. package/dist/auth/interactive.js.map +1 -1
  41. package/dist/auth/token-capture.d.ts +3 -0
  42. package/dist/auth/token-capture.d.ts.map +1 -1
  43. package/dist/auth/token-capture.js +67 -0
  44. package/dist/auth/token-capture.js.map +1 -1
  45. package/dist/cli.js +16 -3
  46. package/dist/cli.js.map +1 -1
  47. package/dist/mcp-server.js +9 -0
  48. package/dist/mcp-server.js.map +1 -1
  49. package/dist/teams-client.d.ts +78 -4
  50. package/dist/teams-client.d.ts.map +1 -1
  51. package/dist/teams-client.js +153 -8
  52. package/dist/teams-client.js.map +1 -1
  53. package/dist/token-store.d.ts.map +1 -1
  54. package/dist/token-store.js +6 -0
  55. package/dist/token-store.js.map +1 -1
  56. package/dist/types.d.ts +75 -0
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js.map +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,453 @@
1
+ "use strict";
2
+ /**
3
+ * Message-related action definitions.
4
+ *
5
+ * Actions: get-messages, send-message, edit-message, delete-message.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.deleteMessageAction = exports.editMessageAction = exports.sendMessage = exports.getMessages = void 0;
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = require("node:path");
11
+ const constants_js_1 = require("../constants.js");
12
+ const formatters_js_1 = require("./formatters.js");
13
+ const conversation_resolution_js_1 = require("./conversation-resolution.js");
14
+ /** Map file extension to MIME content type. */
15
+ function contentTypeFromExtension(filePath) {
16
+ const extension = (0, node_path_1.extname)(filePath).toLowerCase();
17
+ const mimeTypes = {
18
+ ".png": "image/png",
19
+ ".jpg": "image/jpeg",
20
+ ".jpeg": "image/jpeg",
21
+ ".gif": "image/gif",
22
+ ".webp": "image/webp",
23
+ ".bmp": "image/bmp",
24
+ };
25
+ return mimeTypes[extension] ?? "image/png";
26
+ }
27
+ /**
28
+ * Build MessageContentPart[] from content text, image file paths, and file paths.
29
+ *
30
+ * If the content contains `[image]` placeholders, images are interleaved
31
+ * at those positions. Otherwise, the text comes first followed by all images.
32
+ * File attachments are always appended at the end.
33
+ */
34
+ function buildContentParts(content, imagePaths, filePaths = []) {
35
+ const parts = [];
36
+ if (content.includes("[image]") && imagePaths.length > 0) {
37
+ const textSegments = content.split("[image]");
38
+ let imageIndex = 0;
39
+ for (let i = 0; i < textSegments.length; i++) {
40
+ const segment = textSegments[i].trim();
41
+ if (segment) {
42
+ parts.push({ type: "text", text: segment });
43
+ }
44
+ if (i < textSegments.length - 1 && imageIndex < imagePaths.length) {
45
+ const filePath = imagePaths[imageIndex];
46
+ parts.push({
47
+ type: "image",
48
+ data: (0, node_fs_1.readFileSync)(filePath),
49
+ fileName: (0, node_path_1.basename)(filePath),
50
+ contentType: contentTypeFromExtension(filePath),
51
+ });
52
+ imageIndex++;
53
+ }
54
+ }
55
+ // Append remaining images not mapped to placeholders
56
+ for (; imageIndex < imagePaths.length; imageIndex++) {
57
+ const filePath = imagePaths[imageIndex];
58
+ parts.push({
59
+ type: "image",
60
+ data: (0, node_fs_1.readFileSync)(filePath),
61
+ fileName: (0, node_path_1.basename)(filePath),
62
+ contentType: contentTypeFromExtension(filePath),
63
+ });
64
+ }
65
+ }
66
+ else {
67
+ if (content) {
68
+ parts.push({ type: "text", text: content });
69
+ }
70
+ for (const filePath of imagePaths) {
71
+ parts.push({
72
+ type: "image",
73
+ data: (0, node_fs_1.readFileSync)(filePath),
74
+ fileName: (0, node_path_1.basename)(filePath),
75
+ contentType: contentTypeFromExtension(filePath),
76
+ });
77
+ }
78
+ }
79
+ // Append file attachments
80
+ for (const filePath of filePaths) {
81
+ parts.push({
82
+ type: "file",
83
+ data: (0, node_fs_1.readFileSync)(filePath),
84
+ fileName: (0, node_path_1.basename)(filePath),
85
+ });
86
+ }
87
+ return parts;
88
+ }
89
+ /** Build a concise attachment summary string for a message. */
90
+ function formatAttachmentSummary(message) {
91
+ const parts = [];
92
+ if (message.images.length > 0) {
93
+ parts.push(message.images.length === 1
94
+ ? "1 image"
95
+ : `${message.images.length} images`);
96
+ }
97
+ if (message.files.length > 0) {
98
+ const fileNames = message.files.map((file) => file.fileName);
99
+ parts.push(fileNames.join(", "));
100
+ }
101
+ return parts.length > 0 ? `[๐Ÿ“Ž ${parts.join("; ")}]` : "";
102
+ }
103
+ exports.getMessages = {
104
+ name: "get-messages",
105
+ title: "Get Messages",
106
+ description: "Get messages from a conversation. " +
107
+ "Identify the conversation by topic name (--chat), " +
108
+ "person name for 1:1 chats (--to), or direct ID (--conversation-id). " +
109
+ "At least one identifier is required. " +
110
+ "Messages include reactions, mentions, followers (thread subscribers), and quoted message references.",
111
+ parameters: [
112
+ ...conversation_resolution_js_1.conversationParameters,
113
+ {
114
+ name: "limit",
115
+ type: "number",
116
+ description: "Maximum number of messages to return. " +
117
+ "Omit to fetch the entire conversation history.",
118
+ required: false,
119
+ },
120
+ {
121
+ name: "textOnly",
122
+ type: "boolean",
123
+ description: "Only return text messages, excluding system events (default: true)",
124
+ required: false,
125
+ default: true,
126
+ },
127
+ {
128
+ name: "order",
129
+ type: "string",
130
+ description: "Message order: oldest-first (chronological, default) or newest-first",
131
+ required: false,
132
+ default: "oldest-first",
133
+ },
134
+ ],
135
+ execute: async (client, parameters) => {
136
+ const { conversationId } = await (0, conversation_resolution_js_1.resolveConversationId)(client, parameters);
137
+ const limit = parameters.limit;
138
+ const textOnly = parameters.textOnly ?? true;
139
+ const onProgress = parameters.onProgress;
140
+ let messages = await client.getMessages(conversationId, {
141
+ limit,
142
+ onProgress,
143
+ });
144
+ if (textOnly) {
145
+ messages = messages.filter((message) => (0, constants_js_1.isTextMessageType)(message.messageType) && !message.isDeleted);
146
+ }
147
+ const order = parameters.order ?? "oldest-first";
148
+ if (order === "oldest-first") {
149
+ messages = [...messages].reverse();
150
+ }
151
+ return messages;
152
+ },
153
+ formatResult: (result) => {
154
+ const messages = result;
155
+ const senderLookup = (0, formatters_js_1.buildSenderLookup)(messages);
156
+ const lines = [`\n${messages.length} messages:\n`];
157
+ for (const message of messages) {
158
+ const time = message.originalArrivalTime.slice(0, 19).replace("T", " ");
159
+ const sender = message.senderDisplayName || "(system)";
160
+ const { quote, body } = (0, formatters_js_1.extractQuote)(message.content);
161
+ if (quote && message.quotedMessageId) {
162
+ const quotedSender = senderLookup.get(message.quotedMessageId) ?? "unknown";
163
+ lines.push(` [${time}] ${sender}:`);
164
+ lines.push(` > [replying to ${quotedSender}]: ${quote.slice(0, 80)}`);
165
+ lines.push(` ${body.slice(0, 120)}`);
166
+ }
167
+ else {
168
+ lines.push(` [${time}] ${sender}: ${body.slice(0, 120)}`);
169
+ }
170
+ if (message.followers.length > 0) {
171
+ lines.push(` [${message.followers.length} follower(s)]`);
172
+ }
173
+ const attachmentSummary = formatAttachmentSummary(message);
174
+ if (attachmentSummary) {
175
+ lines.push(` ${attachmentSummary}`);
176
+ }
177
+ }
178
+ return lines.join("\n");
179
+ },
180
+ formatMarkdown: (result) => {
181
+ const messages = result;
182
+ const senderLookup = (0, formatters_js_1.buildSenderLookup)(messages);
183
+ const lines = [`## Messages (${messages.length})`, ""];
184
+ let previousSender = "";
185
+ for (const message of messages) {
186
+ const time = message.originalArrivalTime.slice(0, 19).replace("T", " ");
187
+ const sender = message.senderDisplayName || "(system)";
188
+ const { quote, body } = (0, formatters_js_1.extractQuote)(message.content);
189
+ if (sender === previousSender) {
190
+ lines.push(`*${time}*`, "");
191
+ }
192
+ else {
193
+ lines.push(`### ${sender} โ€” ${time}`, "");
194
+ previousSender = sender;
195
+ }
196
+ if (quote && message.quotedMessageId) {
197
+ const quotedSender = senderLookup.get(message.quotedMessageId) ?? "unknown";
198
+ lines.push(`> **[replying to ${quotedSender}]:** ${quote}`, "");
199
+ }
200
+ lines.push(body, "");
201
+ if (message.followers.length > 0) {
202
+ lines.push(`*${message.followers.length} follower(s)*`, "");
203
+ }
204
+ const attachmentSummary = formatAttachmentSummary(message);
205
+ if (attachmentSummary) {
206
+ lines.push(attachmentSummary, "");
207
+ }
208
+ }
209
+ return lines.join("\n");
210
+ },
211
+ formatToon: (result) => {
212
+ const messages = result;
213
+ const senderLookup = (0, formatters_js_1.buildSenderLookup)(messages);
214
+ const lines = [(0, formatters_js_1.toonHeader)("๐Ÿ’ฌ", `${messages.length} Messages`)];
215
+ let previousSender = "";
216
+ for (const message of messages) {
217
+ const time = message.originalArrivalTime.slice(0, 19).replace("T", " ");
218
+ const sender = message.senderDisplayName || "(system)";
219
+ const { quote, body } = (0, formatters_js_1.extractQuote)(message.content);
220
+ lines.push("");
221
+ if (sender === previousSender) {
222
+ lines.push(` ${time}`);
223
+ }
224
+ else {
225
+ lines.push(` ๐Ÿ—ฃ๏ธ ${sender} ยท ${time}`);
226
+ previousSender = sender;
227
+ }
228
+ if (quote && message.quotedMessageId) {
229
+ const quotedSender = senderLookup.get(message.quotedMessageId) ?? "unknown";
230
+ lines.push(` > [replying to ${quotedSender}]: ${quote.slice(0, 80)}`);
231
+ }
232
+ lines.push(` ${body.slice(0, 120)}`);
233
+ if (message.followers.length > 0) {
234
+ lines.push(` ๐Ÿ‘ฅ ${message.followers.length} follower(s)`);
235
+ }
236
+ const attachmentSummary = formatAttachmentSummary(message);
237
+ if (attachmentSummary) {
238
+ lines.push(` ${attachmentSummary}`);
239
+ }
240
+ }
241
+ return lines.join("\n");
242
+ },
243
+ };
244
+ exports.sendMessage = {
245
+ name: "send-message",
246
+ title: "Send Message",
247
+ description: "Send a message to a conversation. " +
248
+ "Identify the conversation by topic name (--chat), " +
249
+ "person name for 1:1 chats (--to), or direct ID (--conversation-id). " +
250
+ "At least one identifier is required. " +
251
+ "Content is interpreted as Markdown by default and converted to rich HTML. " +
252
+ "To send images, provide file paths via --image. " +
253
+ "To send file attachments (documents, videos, etc.), provide file paths via --file. " +
254
+ "Use [image] placeholders in --content to interleave text and images " +
255
+ "(e.g. --content 'Before [image] after [image] done' --image a.png --image b.png). " +
256
+ "Without placeholders, text appears first followed by all images.",
257
+ parameters: [
258
+ ...conversation_resolution_js_1.conversationParameters,
259
+ {
260
+ name: "content",
261
+ type: "string",
262
+ description: "Message content to send. " +
263
+ "Use [image] placeholders to position images within the text.",
264
+ required: false,
265
+ },
266
+ {
267
+ name: "image",
268
+ type: "string[]",
269
+ description: "Image file path(s) to attach inline (repeatable)",
270
+ required: false,
271
+ },
272
+ {
273
+ name: "file",
274
+ type: "string[]",
275
+ description: "File path(s) to attach as SharePoint-hosted file attachments (repeatable). " +
276
+ "Supports any file type (documents, videos, archives, etc.).",
277
+ required: false,
278
+ },
279
+ {
280
+ name: "messageFormat",
281
+ type: "string",
282
+ description: 'Content format: "markdown" (default, converted to HTML), "html" (raw HTML), or "text" (plain text). ' +
283
+ "Ignored when images or files are provided (always uses HTML).",
284
+ required: false,
285
+ default: "markdown",
286
+ },
287
+ ],
288
+ execute: async (client, parameters) => {
289
+ const { conversationId, label } = await (0, conversation_resolution_js_1.resolveConversationId)(client, parameters);
290
+ const content = parameters.content ?? "";
291
+ const imagePaths = parameters.image ?? [];
292
+ const filePaths = parameters.file ?? [];
293
+ if (!content && imagePaths.length === 0 && filePaths.length === 0) {
294
+ throw new Error("At least one of --content, --image, or --file must be provided");
295
+ }
296
+ if (filePaths.length > 0) {
297
+ const contentParts = buildContentParts(content, imagePaths, filePaths);
298
+ const result = await client.sendMessageWithFiles(conversationId, contentParts);
299
+ return { ...result, conversation: label };
300
+ }
301
+ if (imagePaths.length > 0) {
302
+ const contentParts = buildContentParts(content, imagePaths);
303
+ const result = await client.sendMessageWithImages(conversationId, contentParts);
304
+ return { ...result, conversation: label };
305
+ }
306
+ const messageFormat = parameters.messageFormat ?? "markdown";
307
+ const result = await client.sendMessage(conversationId, content, messageFormat);
308
+ return { ...result, conversation: label };
309
+ },
310
+ formatResult: (result) => {
311
+ const { messageId, arrivalTime, conversation } = result;
312
+ return [
313
+ `Message sent to "${conversation}"`,
314
+ ` Message ID: ${messageId}`,
315
+ ` Arrival time: ${arrivalTime}`,
316
+ ].join("\n");
317
+ },
318
+ formatMarkdown: (result) => {
319
+ const { messageId, arrivalTime, conversation } = result;
320
+ return [
321
+ "## Message Sent",
322
+ "",
323
+ `- **To:** ${conversation}`,
324
+ `- **Message ID:** ${messageId}`,
325
+ `- **Arrival time:** ${arrivalTime}`,
326
+ ].join("\n");
327
+ },
328
+ formatToon: (result) => {
329
+ const { messageId, arrivalTime, conversation } = result;
330
+ return [
331
+ (0, formatters_js_1.toonHeader)("โœ…", "Message Sent!"),
332
+ ` ๐Ÿ“จ To: "${conversation}"`,
333
+ ` ๐Ÿ†” ${messageId}`,
334
+ ` โฐ ${arrivalTime}`,
335
+ ].join("\n");
336
+ },
337
+ };
338
+ exports.editMessageAction = {
339
+ name: "edit-message",
340
+ title: "Edit Message",
341
+ description: "Edit an existing message in a conversation. " +
342
+ "Identify the conversation by topic name (--chat), " +
343
+ "person name for 1:1 chats (--to), or direct ID (--conversation-id). " +
344
+ "At least one identifier is required. " +
345
+ "The message to edit is identified by --message-id. " +
346
+ "Content is interpreted as Markdown by default and converted to rich HTML.",
347
+ parameters: [
348
+ ...conversation_resolution_js_1.conversationParameters,
349
+ {
350
+ name: "messageId",
351
+ type: "string",
352
+ description: "ID of the message to edit",
353
+ required: true,
354
+ },
355
+ {
356
+ name: "content",
357
+ type: "string",
358
+ description: "New message content",
359
+ required: true,
360
+ },
361
+ {
362
+ name: "messageFormat",
363
+ type: "string",
364
+ description: 'Content format: "markdown" (default, converted to HTML), "html" (raw HTML), or "text" (plain text)',
365
+ required: false,
366
+ default: "markdown",
367
+ },
368
+ ],
369
+ execute: async (client, parameters) => {
370
+ const { conversationId, label } = await (0, conversation_resolution_js_1.resolveConversationId)(client, parameters);
371
+ const messageId = parameters.messageId;
372
+ const content = parameters.content;
373
+ const messageFormat = parameters.messageFormat ?? "markdown";
374
+ const result = await client.editMessage(conversationId, messageId, content, messageFormat);
375
+ return { ...result, conversation: label };
376
+ },
377
+ formatResult: (result) => {
378
+ const { messageId, editTime, conversation } = result;
379
+ return [
380
+ `Message edited in "${conversation}"`,
381
+ ` Message ID: ${messageId}`,
382
+ ` Edit time: ${editTime}`,
383
+ ].join("\n");
384
+ },
385
+ formatMarkdown: (result) => {
386
+ const { messageId, editTime, conversation } = result;
387
+ return [
388
+ "## Message Edited",
389
+ "",
390
+ `- **In:** ${conversation}`,
391
+ `- **Message ID:** ${messageId}`,
392
+ `- **Edit time:** ${editTime}`,
393
+ ].join("\n");
394
+ },
395
+ formatToon: (result) => {
396
+ const { messageId, editTime, conversation } = result;
397
+ return [
398
+ (0, formatters_js_1.toonHeader)("โœ๏ธ", "Message Edited!"),
399
+ ` ๐Ÿ’ฌ In: "${conversation}"`,
400
+ ` ๐Ÿ†” ${messageId}`,
401
+ ` โฐ ${editTime}`,
402
+ ].join("\n");
403
+ },
404
+ };
405
+ exports.deleteMessageAction = {
406
+ name: "delete-message",
407
+ title: "Delete Message",
408
+ description: "Delete a message from a conversation. " +
409
+ "Identify the conversation by topic name (--chat), " +
410
+ "person name for 1:1 chats (--to), or direct ID (--conversation-id). " +
411
+ "At least one identifier is required. " +
412
+ "The message to delete is identified by --message-id.",
413
+ parameters: [
414
+ ...conversation_resolution_js_1.conversationParameters,
415
+ {
416
+ name: "messageId",
417
+ type: "string",
418
+ description: "ID of the message to delete",
419
+ required: true,
420
+ },
421
+ ],
422
+ execute: async (client, parameters) => {
423
+ const { conversationId, label } = await (0, conversation_resolution_js_1.resolveConversationId)(client, parameters);
424
+ const messageId = parameters.messageId;
425
+ const result = await client.deleteMessage(conversationId, messageId);
426
+ return { ...result, conversation: label };
427
+ },
428
+ formatResult: (result) => {
429
+ const { messageId, conversation } = result;
430
+ return [
431
+ `Message deleted from "${conversation}"`,
432
+ ` Message ID: ${messageId}`,
433
+ ].join("\n");
434
+ },
435
+ formatMarkdown: (result) => {
436
+ const { messageId, conversation } = result;
437
+ return [
438
+ "## Message Deleted",
439
+ "",
440
+ `- **From:** ${conversation}`,
441
+ `- **Message ID:** ${messageId}`,
442
+ ].join("\n");
443
+ },
444
+ formatToon: (result) => {
445
+ const { messageId, conversation } = result;
446
+ return [
447
+ (0, formatters_js_1.toonHeader)("๐Ÿ—‘๏ธ", "Message Deleted!"),
448
+ ` ๐Ÿ’ฌ From: "${conversation}"`,
449
+ ` ๐Ÿ†” ${messageId}`,
450
+ ].join("\n");
451
+ },
452
+ };
453
+ //# sourceMappingURL=message-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-actions.js","sourceRoot":"","sources":["../../src/actions/message-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Search-related action definitions.
3
+ *
4
+ * Actions: find-people, find-chats.
5
+ */
6
+ import { type ActionDefinition } from "./formatters.js";
7
+ export declare const findPeopleAction: ActionDefinition;
8
+ export declare const findChatsAction: ActionDefinition;
9
+ //# sourceMappingURL=search-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-actions.d.ts","sourceRoot":"","sources":["../../src/actions/search-actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,iBAAiB,CAAC;AAEpE,eAAO,MAAM,gBAAgB,EAAE,gBAgE9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,gBA4E7B,CAAC"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * Search-related action definitions.
4
+ *
5
+ * Actions: find-people, find-chats.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.findChatsAction = exports.findPeopleAction = void 0;
9
+ const formatters_js_1 = require("./formatters.js");
10
+ exports.findPeopleAction = {
11
+ name: "find-people",
12
+ title: "Find People",
13
+ description: "Search for people in the organization directory by name. " +
14
+ "Uses the Substrate search API (requires authentication via auto-login or interactive). " +
15
+ "Returns matching people with emails, job titles, and departments.",
16
+ parameters: [
17
+ {
18
+ name: "query",
19
+ type: "string",
20
+ description: "Name or partial name to search for",
21
+ required: true,
22
+ },
23
+ {
24
+ name: "maxResults",
25
+ type: "number",
26
+ description: "Maximum results to return (default: 10)",
27
+ required: false,
28
+ default: 10,
29
+ },
30
+ ],
31
+ execute: async (client, parameters) => {
32
+ const query = parameters.query;
33
+ const maxResults = parameters.maxResults ?? 10;
34
+ return client.findPeople(query, maxResults);
35
+ },
36
+ formatResult: (result) => {
37
+ const people = result;
38
+ if (people.length === 0)
39
+ return "No people found.";
40
+ return people
41
+ .map((person) => `${person.displayName} <${person.email}> โ€” ${person.jobTitle || "no title"}, ${person.department || "no department"}`)
42
+ .join("\n");
43
+ },
44
+ formatMarkdown: (result) => {
45
+ const people = result;
46
+ if (people.length === 0)
47
+ return "No people found.";
48
+ const lines = [`## People (${people.length} found)`, ""];
49
+ for (const person of people) {
50
+ lines.push(`### ${person.displayName}`);
51
+ lines.push(`- **Email:** ${person.email}`);
52
+ if (person.jobTitle)
53
+ lines.push(`- **Title:** ${person.jobTitle}`);
54
+ if (person.department)
55
+ lines.push(`- **Department:** ${person.department}`);
56
+ lines.push(`- **MRI:** ${person.mri}`);
57
+ lines.push("");
58
+ }
59
+ return lines.join("\n");
60
+ },
61
+ formatToon: (result) => {
62
+ const people = result;
63
+ if (people.length === 0)
64
+ return "\n ๐Ÿ” No people found.";
65
+ const lines = [(0, formatters_js_1.toonHeader)("๐Ÿ‘ฅ", `Found ${people.length} people`)];
66
+ for (const person of people) {
67
+ lines.push(` ๐Ÿ‘ค ${person.displayName}`);
68
+ lines.push(` ๐Ÿ“ง ${person.email} ยท ${person.jobTitle || "?"} ยท ${person.department || "?"}`);
69
+ }
70
+ return lines.join("\n");
71
+ },
72
+ };
73
+ exports.findChatsAction = {
74
+ name: "find-chats",
75
+ title: "Find Chats",
76
+ description: "Search for chats by name or member name. " +
77
+ "Uses the Substrate search API (requires authentication via auto-login or interactive). " +
78
+ "Returns matching chats with member lists and thread IDs.",
79
+ parameters: [
80
+ {
81
+ name: "query",
82
+ type: "string",
83
+ description: "Chat name or member name to search for",
84
+ required: true,
85
+ },
86
+ {
87
+ name: "maxResults",
88
+ type: "number",
89
+ description: "Maximum results to return (default: 10)",
90
+ required: false,
91
+ default: 10,
92
+ },
93
+ ],
94
+ execute: async (client, parameters) => {
95
+ const query = parameters.query;
96
+ const maxResults = parameters.maxResults ?? 10;
97
+ return client.findChats(query, maxResults);
98
+ },
99
+ formatResult: (result) => {
100
+ const chats = result;
101
+ if (chats.length === 0)
102
+ return "No chats found.";
103
+ return chats
104
+ .map((chat) => {
105
+ const name = chat.name || "(untitled)";
106
+ const members = chat.matchingMembers
107
+ .map((member) => member.displayName)
108
+ .join(", ");
109
+ return `${name} (${chat.threadType}, ${chat.totalMemberCount} members${members ? `, matched: ${members}` : ""}) โ€” ${chat.threadId}`;
110
+ })
111
+ .join("\n");
112
+ },
113
+ formatMarkdown: (result) => {
114
+ const chats = result;
115
+ if (chats.length === 0)
116
+ return "No chats found.";
117
+ const lines = [`## Chats (${chats.length} found)`, ""];
118
+ for (const chat of chats) {
119
+ lines.push(`### ${chat.name || "(untitled)"}`);
120
+ lines.push(`- **Thread ID:** ${chat.threadId}`);
121
+ lines.push(`- **Type:** ${chat.threadType}`);
122
+ lines.push(`- **Members:** ${chat.totalMemberCount}`);
123
+ if (chat.matchingMembers.length > 0) {
124
+ lines.push(`- **Matched:** ${chat.matchingMembers.map((member) => member.displayName).join(", ")}`);
125
+ }
126
+ lines.push("");
127
+ }
128
+ return lines.join("\n");
129
+ },
130
+ formatToon: (result) => {
131
+ const chats = result;
132
+ if (chats.length === 0)
133
+ return "\n ๐Ÿ” No chats found.";
134
+ const lines = [(0, formatters_js_1.toonHeader)("๐Ÿ’ฌ", `Found ${chats.length} chats`)];
135
+ for (const chat of chats) {
136
+ lines.push(` ๐Ÿ’ฌ ${chat.name || "(untitled)"}`);
137
+ lines.push(` ๐Ÿ“ ${chat.threadType} ยท ${chat.totalMemberCount} members`);
138
+ if (chat.matchingMembers.length > 0) {
139
+ const matched = chat.matchingMembers
140
+ .map((member) => member.displayName)
141
+ .join(", ");
142
+ lines.push(` ๐ŸŽฏ Matched: ${matched}`);
143
+ }
144
+ }
145
+ return lines.join("\n");
146
+ },
147
+ };
148
+ //# sourceMappingURL=search-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-actions.js","sourceRoot":"","sources":["../../src/actions/search-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Utility action definitions.
3
+ *
4
+ * Actions: whoami, get-members, get-transcript.
5
+ */
6
+ import { type ActionDefinition } from "./formatters.js";
7
+ export declare const getMembers: ActionDefinition;
8
+ export declare const whoami: ActionDefinition;
9
+ export declare const getTranscript: ActionDefinition;
10
+ //# sourceMappingURL=utility-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-actions.d.ts","sourceRoot":"","sources":["../../src/actions/utility-actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,iBAAiB,CAAC;AAMzB,eAAO,MAAM,UAAU,EAAE,gBAoFxB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,gBAgCpB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,gBAqG3B,CAAC"}