teams-api 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/definitions.d.ts.map +1 -1
- package/dist/actions/definitions.js +2 -0
- package/dist/actions/definitions.js.map +1 -1
- package/dist/actions/file-actions.d.ts +16 -0
- package/dist/actions/file-actions.d.ts.map +1 -0
- package/dist/actions/file-actions.js +120 -0
- package/dist/actions/file-actions.js.map +1 -0
- package/dist/actions/formatters.d.ts +1 -1
- package/dist/actions/formatters.d.ts.map +1 -1
- package/dist/actions/message-actions.d.ts.map +1 -1
- package/dist/actions/message-actions.js +194 -8
- package/dist/actions/message-actions.js.map +1 -1
- package/dist/api/attachments.d.ts +106 -0
- package/dist/api/attachments.d.ts.map +1 -0
- package/dist/api/attachments.js +341 -0
- package/dist/api/attachments.js.map +1 -0
- package/dist/api/chat-service.d.ts +14 -2
- package/dist/api/chat-service.d.ts.map +1 -1
- package/dist/api/chat-service.js +90 -1
- package/dist/api/chat-service.js.map +1 -1
- package/dist/auth/auto-login.d.ts.map +1 -1
- package/dist/auth/auto-login.js +4 -1
- package/dist/auth/auto-login.js.map +1 -1
- package/dist/auth/interactive.d.ts.map +1 -1
- package/dist/auth/interactive.js +3 -1
- package/dist/auth/interactive.js.map +1 -1
- package/dist/auth/token-capture.d.ts +3 -0
- package/dist/auth/token-capture.d.ts.map +1 -1
- package/dist/auth/token-capture.js +67 -0
- package/dist/auth/token-capture.js.map +1 -1
- package/dist/cli.js +16 -3
- package/dist/cli.js.map +1 -1
- package/dist/mcp-server.js +129 -11
- package/dist/mcp-server.js.map +1 -1
- package/dist/teams-client.d.ts +87 -4
- package/dist/teams-client.d.ts.map +1 -1
- package/dist/teams-client.js +167 -8
- package/dist/teams-client.js.map +1 -1
- package/dist/token-store.d.ts.map +1 -1
- package/dist/token-store.js +6 -0
- package/dist/token-store.js.map +1 -1
- package/dist/types.d.ts +84 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/actions/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/actions/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAuCxD,6DAA6D;AAC7D,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAAwC,CAAC"}
|
|
@@ -12,6 +12,7 @@ const conversation_actions_js_1 = require("./conversation-actions.js");
|
|
|
12
12
|
const message_actions_js_1 = require("./message-actions.js");
|
|
13
13
|
const search_actions_js_1 = require("./search-actions.js");
|
|
14
14
|
const utility_actions_js_1 = require("./utility-actions.js");
|
|
15
|
+
const file_actions_js_1 = require("./file-actions.js");
|
|
15
16
|
// ── Registry ─────────────────────────────────────────────────────────
|
|
16
17
|
/**
|
|
17
18
|
* Map-based action registry keyed by action name.
|
|
@@ -31,6 +32,7 @@ const actionRegistry = new Map([
|
|
|
31
32
|
["get-members", utility_actions_js_1.getMembers],
|
|
32
33
|
["whoami", utility_actions_js_1.whoami],
|
|
33
34
|
["get-transcript", utility_actions_js_1.getTranscript],
|
|
35
|
+
["download-file", file_actions_js_1.downloadFileAction],
|
|
34
36
|
]);
|
|
35
37
|
/** All registered actions, derived from the registry map. */
|
|
36
38
|
exports.actions = Array.from(actionRegistry.values());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/actions/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,uEAImC;AACnC,6DAK8B;AAC9B,2DAAwE;AACxE,6DAAyE;
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/actions/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,uEAImC;AACnC,6DAK8B;AAC9B,2DAAwE;AACxE,6DAAyE;AACzE,uDAAuD;AAEvD,wEAAwE;AAExE;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAA2B;IACvD,CAAC,oBAAoB,EAAE,2CAAiB,CAAC;IACzC,CAAC,mBAAmB,EAAE,0CAAgB,CAAC;IACvC,CAAC,iBAAiB,EAAE,sCAAY,CAAC;IACjC,CAAC,aAAa,EAAE,oCAAgB,CAAC;IACjC,CAAC,YAAY,EAAE,mCAAe,CAAC;IAC/B,CAAC,cAAc,EAAE,gCAAW,CAAC;IAC7B,CAAC,cAAc,EAAE,gCAAW,CAAC;IAC7B,CAAC,cAAc,EAAE,sCAAiB,CAAC;IACnC,CAAC,gBAAgB,EAAE,wCAAmB,CAAC;IACvC,CAAC,aAAa,EAAE,+BAAU,CAAC;IAC3B,CAAC,QAAQ,EAAE,2BAAM,CAAC;IAClB,CAAC,gBAAgB,EAAE,kCAAa,CAAC;IACjC,CAAC,eAAe,EAAE,oCAAkB,CAAC;CACtC,CAAC,CAAC;AAEH,6DAA6D;AAChD,QAAA,OAAO,GAAuB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File download action definitions.
|
|
3
|
+
*
|
|
4
|
+
* Actions: download-file.
|
|
5
|
+
*/
|
|
6
|
+
import { type ActionDefinition } from "./formatters.js";
|
|
7
|
+
export interface DownloadResult {
|
|
8
|
+
fileName: string;
|
|
9
|
+
fileType: string;
|
|
10
|
+
size: number;
|
|
11
|
+
contentType: string;
|
|
12
|
+
savedTo: string;
|
|
13
|
+
data: Buffer;
|
|
14
|
+
}
|
|
15
|
+
export declare const downloadFileAction: ActionDefinition;
|
|
16
|
+
//# sourceMappingURL=file-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-actions.d.ts","sourceRoot":"","sources":["../../src/actions/file-actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,iBAAiB,CAAC;AAMpE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAgIhC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* File download action definitions.
|
|
4
|
+
*
|
|
5
|
+
* Actions: download-file.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.downloadFileAction = void 0;
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const node_os_1 = require("node:os");
|
|
12
|
+
const node_crypto_1 = require("node:crypto");
|
|
13
|
+
const formatters_js_1 = require("./formatters.js");
|
|
14
|
+
const conversation_resolution_js_1 = require("./conversation-resolution.js");
|
|
15
|
+
exports.downloadFileAction = {
|
|
16
|
+
name: "download-file",
|
|
17
|
+
title: "Download File",
|
|
18
|
+
description: "Download file attachment(s) from a message. " +
|
|
19
|
+
"Identify the conversation by topic name (--chat), " +
|
|
20
|
+
"person name for 1:1 chats (--to), or direct ID (--conversation-id). " +
|
|
21
|
+
"Specify the message containing the file(s) via --message-id. " +
|
|
22
|
+
"Use --output-directory to save files to a specific directory. " +
|
|
23
|
+
"Without --output-directory, files are saved to a temporary directory. " +
|
|
24
|
+
"File contents are returned inline in the response.",
|
|
25
|
+
parameters: [
|
|
26
|
+
...conversation_resolution_js_1.conversationParameters,
|
|
27
|
+
{
|
|
28
|
+
name: "messageId",
|
|
29
|
+
type: "string",
|
|
30
|
+
description: "ID of the message containing file attachment(s)",
|
|
31
|
+
required: true,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "outputDirectory",
|
|
35
|
+
type: "string",
|
|
36
|
+
description: "Directory to save downloaded files to",
|
|
37
|
+
required: false,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
execute: async (client, parameters) => {
|
|
41
|
+
const { conversationId } = await (0, conversation_resolution_js_1.resolveConversationId)(client, parameters);
|
|
42
|
+
const messageId = parameters.messageId;
|
|
43
|
+
const outputDirectory = parameters.outputDirectory;
|
|
44
|
+
// Fetch messages to find the target one
|
|
45
|
+
const messages = await client.getMessages(conversationId);
|
|
46
|
+
const message = messages.find((message) => message.id === messageId);
|
|
47
|
+
if (!message) {
|
|
48
|
+
throw new Error(`Message ${messageId} not found in conversation ${conversationId}`);
|
|
49
|
+
}
|
|
50
|
+
if (message.files.length === 0 && message.images.length === 0) {
|
|
51
|
+
throw new Error(`Message ${messageId} has no file attachments or images`);
|
|
52
|
+
}
|
|
53
|
+
// Determine output directory — use provided directory or create a unique temp directory
|
|
54
|
+
const resolvedOutputDirectory = outputDirectory
|
|
55
|
+
? (0, node_path_1.resolve)(outputDirectory)
|
|
56
|
+
: (0, node_path_1.resolve)((0, node_path_1.join)((0, node_os_1.tmpdir)(), `teams-download-${(0, node_crypto_1.randomUUID)()}`));
|
|
57
|
+
(0, node_fs_1.mkdirSync)(resolvedOutputDirectory, { recursive: true });
|
|
58
|
+
const results = [];
|
|
59
|
+
// Download file attachments (SharePoint)
|
|
60
|
+
for (const file of message.files) {
|
|
61
|
+
const { data, contentType, size, fileName } = await client.downloadFile(file.fileUrl, file.itemId);
|
|
62
|
+
const outputPath = (0, node_path_1.resolve)((0, node_path_1.join)(resolvedOutputDirectory, fileName));
|
|
63
|
+
(0, node_fs_1.writeFileSync)(outputPath, data);
|
|
64
|
+
results.push({
|
|
65
|
+
fileName,
|
|
66
|
+
fileType: file.fileType,
|
|
67
|
+
size,
|
|
68
|
+
contentType,
|
|
69
|
+
savedTo: outputPath,
|
|
70
|
+
data,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
// Download inline images (AMS)
|
|
74
|
+
for (const image of message.images) {
|
|
75
|
+
const { data, contentType, size } = await client.downloadImage(image.amsObjectId, true);
|
|
76
|
+
const fileName = `${image.amsObjectId}.jpg`;
|
|
77
|
+
const outputPath = (0, node_path_1.resolve)((0, node_path_1.join)(resolvedOutputDirectory, fileName));
|
|
78
|
+
(0, node_fs_1.writeFileSync)(outputPath, data);
|
|
79
|
+
results.push({
|
|
80
|
+
fileName,
|
|
81
|
+
fileType: "image",
|
|
82
|
+
size,
|
|
83
|
+
contentType,
|
|
84
|
+
savedTo: outputPath,
|
|
85
|
+
data,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return results;
|
|
89
|
+
},
|
|
90
|
+
formatResult: (result) => {
|
|
91
|
+
const downloads = result;
|
|
92
|
+
const lines = [`Downloaded ${downloads.length} file(s):`];
|
|
93
|
+
for (const download of downloads) {
|
|
94
|
+
lines.push(` ${download.fileName} (${download.fileType}, ${download.size} bytes)`);
|
|
95
|
+
lines.push(` Saved to: ${download.savedTo}`);
|
|
96
|
+
}
|
|
97
|
+
return lines.join("\n");
|
|
98
|
+
},
|
|
99
|
+
formatMarkdown: (result) => {
|
|
100
|
+
const downloads = result;
|
|
101
|
+
const lines = [`## Downloaded ${downloads.length} file(s)`, ""];
|
|
102
|
+
for (const download of downloads) {
|
|
103
|
+
lines.push(`- **${download.fileName}** (${download.fileType}, ${download.size} bytes)`);
|
|
104
|
+
lines.push(` - Saved to: \`${download.savedTo}\``);
|
|
105
|
+
}
|
|
106
|
+
return lines.join("\n");
|
|
107
|
+
},
|
|
108
|
+
formatToon: (result) => {
|
|
109
|
+
const downloads = result;
|
|
110
|
+
const lines = [(0, formatters_js_1.toonHeader)("📥", `${downloads.length} File(s) Downloaded`)];
|
|
111
|
+
for (const download of downloads) {
|
|
112
|
+
lines.push("");
|
|
113
|
+
lines.push(` 📄 ${download.fileName}`);
|
|
114
|
+
lines.push(` ${download.fileType} · ${download.size} bytes`);
|
|
115
|
+
lines.push(` 💾 ${download.savedTo}`);
|
|
116
|
+
}
|
|
117
|
+
return lines.join("\n");
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=file-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-actions.js","sourceRoot":"","sources":["../../src/actions/file-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export interface ActionParameter {
|
|
|
9
9
|
/** Parameter name in camelCase (CLI flags auto-converted to kebab-case). */
|
|
10
10
|
name: string;
|
|
11
11
|
/** Parameter type. Determines CLI flag syntax and MCP Zod schema. */
|
|
12
|
-
type: "string" | "number" | "boolean";
|
|
12
|
+
type: "string" | "number" | "boolean" | "string[]";
|
|
13
13
|
/** Description for CLI help, MCP tool description, and documentation. */
|
|
14
14
|
description: string;
|
|
15
15
|
/** Whether the parameter must be provided. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/actions/formatters.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK5D,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/actions/formatters.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK5D,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACnD,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,gDAAgD;IAChD,OAAO,EAAE,CACP,MAAM,EAAE,OAAO,oBAAoB,EAAE,WAAW,EAChD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1C,iCAAiC;IACjC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5C,kDAAkD;IAClD,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;AAI3D,8DAA8D;AAC9D,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,OAAO,EACf,MAAM,GAAE,YAAqB,GAC5B,MAAM,CAWR;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAWA;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM1E;AAID,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAC5B,OAAO,EAAE,eAAe,EAAE,GACzB,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqBnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-actions.d.ts","sourceRoot":"","sources":["../../src/actions/message-actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"message-actions.d.ts","sourceRoot":"","sources":["../../src/actions/message-actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,iBAAiB,CAAC;AA0GzB,eAAO,MAAM,WAAW,EAAE,gBAoKzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,gBAuMzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAyF/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBA4DjC,CAAC"}
|
|
@@ -6,9 +6,100 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
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");
|
|
9
11
|
const constants_js_1 = require("../constants.js");
|
|
10
12
|
const formatters_js_1 = require("./formatters.js");
|
|
11
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
|
+
}
|
|
12
103
|
exports.getMessages = {
|
|
13
104
|
name: "get-messages",
|
|
14
105
|
title: "Get Messages",
|
|
@@ -79,6 +170,10 @@ exports.getMessages = {
|
|
|
79
170
|
if (message.followers.length > 0) {
|
|
80
171
|
lines.push(` [${message.followers.length} follower(s)]`);
|
|
81
172
|
}
|
|
173
|
+
const attachmentSummary = formatAttachmentSummary(message);
|
|
174
|
+
if (attachmentSummary) {
|
|
175
|
+
lines.push(` ${attachmentSummary}`);
|
|
176
|
+
}
|
|
82
177
|
}
|
|
83
178
|
return lines.join("\n");
|
|
84
179
|
},
|
|
@@ -106,6 +201,10 @@ exports.getMessages = {
|
|
|
106
201
|
if (message.followers.length > 0) {
|
|
107
202
|
lines.push(`*${message.followers.length} follower(s)*`, "");
|
|
108
203
|
}
|
|
204
|
+
const attachmentSummary = formatAttachmentSummary(message);
|
|
205
|
+
if (attachmentSummary) {
|
|
206
|
+
lines.push(attachmentSummary, "");
|
|
207
|
+
}
|
|
109
208
|
}
|
|
110
209
|
return lines.join("\n");
|
|
111
210
|
},
|
|
@@ -134,6 +233,10 @@ exports.getMessages = {
|
|
|
134
233
|
if (message.followers.length > 0) {
|
|
135
234
|
lines.push(` 👥 ${message.followers.length} follower(s)`);
|
|
136
235
|
}
|
|
236
|
+
const attachmentSummary = formatAttachmentSummary(message);
|
|
237
|
+
if (attachmentSummary) {
|
|
238
|
+
lines.push(` ${attachmentSummary}`);
|
|
239
|
+
}
|
|
137
240
|
}
|
|
138
241
|
return lines.join("\n");
|
|
139
242
|
},
|
|
@@ -145,32 +248,98 @@ exports.sendMessage = {
|
|
|
145
248
|
"Identify the conversation by topic name (--chat), " +
|
|
146
249
|
"person name for 1:1 chats (--to), or direct ID (--conversation-id). " +
|
|
147
250
|
"At least one identifier is required. " +
|
|
148
|
-
"Content is interpreted as Markdown by default and converted to rich HTML."
|
|
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.",
|
|
149
257
|
parameters: [
|
|
150
258
|
...conversation_resolution_js_1.conversationParameters,
|
|
151
259
|
{
|
|
152
260
|
name: "content",
|
|
153
261
|
type: "string",
|
|
154
|
-
description: "Message content to send"
|
|
155
|
-
|
|
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,
|
|
156
278
|
},
|
|
157
279
|
{
|
|
158
280
|
name: "messageFormat",
|
|
159
281
|
type: "string",
|
|
160
|
-
description: 'Content format: "markdown" (default, converted to HTML), "html" (raw HTML), or "text" (plain text)'
|
|
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).",
|
|
161
284
|
required: false,
|
|
162
285
|
default: "markdown",
|
|
163
286
|
},
|
|
287
|
+
{
|
|
288
|
+
name: "scheduleAt",
|
|
289
|
+
type: "string",
|
|
290
|
+
description: "Schedule the message to be sent at a future time. " +
|
|
291
|
+
"Accepts an ISO 8601 timestamp (e.g. 2025-01-15T14:30:00Z). " +
|
|
292
|
+
"Cannot be combined with --image or --file attachments.",
|
|
293
|
+
required: false,
|
|
294
|
+
},
|
|
164
295
|
],
|
|
165
296
|
execute: async (client, parameters) => {
|
|
166
297
|
const { conversationId, label } = await (0, conversation_resolution_js_1.resolveConversationId)(client, parameters);
|
|
167
|
-
const content = parameters.content;
|
|
298
|
+
const content = parameters.content ?? "";
|
|
299
|
+
const imagePaths = parameters.image ?? [];
|
|
300
|
+
const filePaths = parameters.file ?? [];
|
|
301
|
+
const scheduleAtRaw = parameters.scheduleAt;
|
|
302
|
+
if (!content && imagePaths.length === 0 && filePaths.length === 0) {
|
|
303
|
+
throw new Error("At least one of --content, --image, or --file must be provided");
|
|
304
|
+
}
|
|
305
|
+
if (scheduleAtRaw && (imagePaths.length > 0 || filePaths.length > 0)) {
|
|
306
|
+
throw new Error("Scheduled messages cannot include --image or --file attachments");
|
|
307
|
+
}
|
|
308
|
+
if (scheduleAtRaw) {
|
|
309
|
+
const scheduleAt = new Date(scheduleAtRaw);
|
|
310
|
+
if (isNaN(scheduleAt.getTime())) {
|
|
311
|
+
throw new Error(`Invalid --scheduleAt value: "${scheduleAtRaw}". Use an ISO 8601 timestamp (e.g. 2025-01-15T14:30:00Z).`);
|
|
312
|
+
}
|
|
313
|
+
if (scheduleAt.getTime() <= Date.now()) {
|
|
314
|
+
throw new Error("Scheduled time must be in the future");
|
|
315
|
+
}
|
|
316
|
+
const messageFormat = parameters.messageFormat ?? "markdown";
|
|
317
|
+
const result = await client.scheduleMessage(conversationId, content, scheduleAt, messageFormat);
|
|
318
|
+
return { ...result, conversation: label, scheduled: true };
|
|
319
|
+
}
|
|
320
|
+
if (filePaths.length > 0) {
|
|
321
|
+
const contentParts = buildContentParts(content, imagePaths, filePaths);
|
|
322
|
+
const result = await client.sendMessageWithFiles(conversationId, contentParts);
|
|
323
|
+
return { ...result, conversation: label };
|
|
324
|
+
}
|
|
325
|
+
if (imagePaths.length > 0) {
|
|
326
|
+
const contentParts = buildContentParts(content, imagePaths);
|
|
327
|
+
const result = await client.sendMessageWithImages(conversationId, contentParts);
|
|
328
|
+
return { ...result, conversation: label };
|
|
329
|
+
}
|
|
168
330
|
const messageFormat = parameters.messageFormat ?? "markdown";
|
|
169
331
|
const result = await client.sendMessage(conversationId, content, messageFormat);
|
|
170
332
|
return { ...result, conversation: label };
|
|
171
333
|
},
|
|
172
334
|
formatResult: (result) => {
|
|
173
|
-
const { messageId, arrivalTime, conversation } = result;
|
|
335
|
+
const { messageId, arrivalTime, conversation, scheduled, scheduledTime } = result;
|
|
336
|
+
if (scheduled) {
|
|
337
|
+
return [
|
|
338
|
+
`Message scheduled for "${conversation}"`,
|
|
339
|
+
` Message ID: ${messageId}`,
|
|
340
|
+
` Scheduled for: ${scheduledTime}`,
|
|
341
|
+
].join("\n");
|
|
342
|
+
}
|
|
174
343
|
return [
|
|
175
344
|
`Message sent to "${conversation}"`,
|
|
176
345
|
` Message ID: ${messageId}`,
|
|
@@ -178,7 +347,16 @@ exports.sendMessage = {
|
|
|
178
347
|
].join("\n");
|
|
179
348
|
},
|
|
180
349
|
formatMarkdown: (result) => {
|
|
181
|
-
const { messageId, arrivalTime, conversation } = result;
|
|
350
|
+
const { messageId, arrivalTime, conversation, scheduled, scheduledTime } = result;
|
|
351
|
+
if (scheduled) {
|
|
352
|
+
return [
|
|
353
|
+
"## Message Scheduled",
|
|
354
|
+
"",
|
|
355
|
+
`- **To:** ${conversation}`,
|
|
356
|
+
`- **Message ID:** ${messageId}`,
|
|
357
|
+
`- **Scheduled for:** ${scheduledTime}`,
|
|
358
|
+
].join("\n");
|
|
359
|
+
}
|
|
182
360
|
return [
|
|
183
361
|
"## Message Sent",
|
|
184
362
|
"",
|
|
@@ -188,7 +366,15 @@ exports.sendMessage = {
|
|
|
188
366
|
].join("\n");
|
|
189
367
|
},
|
|
190
368
|
formatToon: (result) => {
|
|
191
|
-
const { messageId, arrivalTime, conversation } = result;
|
|
369
|
+
const { messageId, arrivalTime, conversation, scheduled, scheduledTime } = result;
|
|
370
|
+
if (scheduled) {
|
|
371
|
+
return [
|
|
372
|
+
(0, formatters_js_1.toonHeader)("📅", "Message Scheduled!"),
|
|
373
|
+
` 📨 To: "${conversation}"`,
|
|
374
|
+
` 🆔 ${messageId}`,
|
|
375
|
+
` ⏰ Scheduled for: ${scheduledTime}`,
|
|
376
|
+
].join("\n");
|
|
377
|
+
}
|
|
192
378
|
return [
|
|
193
379
|
(0, formatters_js_1.toonHeader)("✅", "Message Sent!"),
|
|
194
380
|
` 📨 To: "${conversation}"`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-actions.js","sourceRoot":"","sources":["../../src/actions/message-actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-actions.js","sourceRoot":"","sources":["../../src/actions/message-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment parsing and download utilities for Teams messages.
|
|
3
|
+
*
|
|
4
|
+
* Handles two types of attachments:
|
|
5
|
+
* - Inline images (AMS) — embedded as `<img>` tags in message HTML
|
|
6
|
+
* - File attachments (SharePoint) — referenced in `properties.files` JSON
|
|
7
|
+
*/
|
|
8
|
+
import type { TeamsToken, ImageAttachment, FileAttachment } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Extract inline image attachments from message HTML content.
|
|
11
|
+
*
|
|
12
|
+
* Parses `<img>` tags with `itemtype="http://schema.skype.com/AMSImage"` and
|
|
13
|
+
* extracts the AMS object ID, URL, and dimensions from the tag attributes.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseInlineImages(content: string): ImageAttachment[];
|
|
16
|
+
/**
|
|
17
|
+
* Parse file attachments from the raw `properties.files` JSON string.
|
|
18
|
+
*
|
|
19
|
+
* File attachments are SharePoint-hosted documents, videos, and other files
|
|
20
|
+
* shared through Teams. They have a separate schema from inline images.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseFileAttachments(rawFiles: unknown): FileAttachment[];
|
|
23
|
+
/**
|
|
24
|
+
* Fetch an image from the AMS (Async Media Service).
|
|
25
|
+
*
|
|
26
|
+
* Returns the raw binary data and content type. Uses the skype token
|
|
27
|
+
* for authentication (same pattern as transcript fetching).
|
|
28
|
+
*
|
|
29
|
+
* @param view - AMS view name: "imgo" (compressed), "imgpsh_fullsize_anim" (full-size)
|
|
30
|
+
*/
|
|
31
|
+
export declare function fetchAmsImage(token: TeamsToken, amsObjectId: string, view?: "imgo" | "imgpsh_fullsize_anim"): Promise<{
|
|
32
|
+
data: Buffer;
|
|
33
|
+
contentType: string;
|
|
34
|
+
size: number;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Upload an image to the AMS (Async Media Service).
|
|
38
|
+
*
|
|
39
|
+
* Creates a new AMS object with permissions for the target conversation,
|
|
40
|
+
* uploads the image data, and returns the object ID that can be referenced
|
|
41
|
+
* in message HTML via `<img>` tags.
|
|
42
|
+
*
|
|
43
|
+
* Requires the AMS/IC3 Bearer token (audience: ic3.teams.office.com), not the
|
|
44
|
+
* middle-tier bearer or skype token.
|
|
45
|
+
*/
|
|
46
|
+
export declare function uploadAmsImage(token: TeamsToken, imageData: Buffer, fileName: string, conversationId: string): Promise<{
|
|
47
|
+
amsObjectId: string;
|
|
48
|
+
}>;
|
|
49
|
+
/** Response from SharePoint file upload. */
|
|
50
|
+
export interface SharePointUploadResult {
|
|
51
|
+
/** SharePoint item unique ID. */
|
|
52
|
+
itemId: string;
|
|
53
|
+
/** SharePoint site ID. */
|
|
54
|
+
siteId: string;
|
|
55
|
+
/** File name (may differ from input if conflict-renamed). */
|
|
56
|
+
fileName: string;
|
|
57
|
+
/** File extension without dot. */
|
|
58
|
+
fileType: string;
|
|
59
|
+
/** Direct SharePoint file URL. */
|
|
60
|
+
fileUrl: string;
|
|
61
|
+
/** WebDAV URL for the file. */
|
|
62
|
+
webDavUrl: string;
|
|
63
|
+
/** SharePoint site base URL. */
|
|
64
|
+
siteBaseUrl: string;
|
|
65
|
+
/** SharePoint personal site path segment (e.g. "/personal/user_domain_com/"). */
|
|
66
|
+
personalPath: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Upload a file to SharePoint OneDrive for Business (Teams Chat Files folder).
|
|
70
|
+
*
|
|
71
|
+
* Files shared in Teams conversations are stored in the sender's OneDrive
|
|
72
|
+
* under "Microsoft Teams Chat Files". This function uploads a file there
|
|
73
|
+
* using the SharePoint REST API, matching the same flow the Teams web client uses.
|
|
74
|
+
*
|
|
75
|
+
* @param email - The sender's corporate email (used to derive the personal site path)
|
|
76
|
+
*/
|
|
77
|
+
export declare function uploadSharePointFile(token: TeamsToken, fileData: Buffer, fileName: string, email: string): Promise<SharePointUploadResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Build the `properties.files` JSON string for a message with file attachments.
|
|
80
|
+
*
|
|
81
|
+
* This JSON is included in the message body when sending messages with
|
|
82
|
+
* SharePoint-hosted file attachments.
|
|
83
|
+
*/
|
|
84
|
+
export declare function buildFilesPropertyJson(uploadResults: SharePointUploadResult[]): string;
|
|
85
|
+
/**
|
|
86
|
+
* Build an HTML `<img>` tag for an AMS-hosted image.
|
|
87
|
+
*
|
|
88
|
+
* This produces the same markup that the Teams web client generates.
|
|
89
|
+
*/
|
|
90
|
+
export declare function buildAmsImageTag(amsObjectId: string, width?: number, height?: number): string;
|
|
91
|
+
/**
|
|
92
|
+
* Download a file attachment from SharePoint.
|
|
93
|
+
*
|
|
94
|
+
* File attachments in Teams are hosted on SharePoint (OneDrive for Business).
|
|
95
|
+
* This function downloads the file content using the SharePoint REST API
|
|
96
|
+
* and the captured SharePoint bearer token.
|
|
97
|
+
*
|
|
98
|
+
* @param fileUrl - Direct SharePoint URL from `FileAttachment.fileUrl`
|
|
99
|
+
*/
|
|
100
|
+
export declare function fetchSharePointFile(token: TeamsToken, fileUrl: string, itemId: string): Promise<{
|
|
101
|
+
data: Buffer;
|
|
102
|
+
contentType: string;
|
|
103
|
+
size: number;
|
|
104
|
+
fileName: string;
|
|
105
|
+
}>;
|
|
106
|
+
//# sourceMappingURL=attachments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/api/attachments.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW/E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAuCpE;AAiBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,cAAc,EAAE,CA6BxE;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAM,GAAG,sBAA+B,GAC7C,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB9D;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAiElC;AAED,4CAA4C;AAC5C,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;CACtB;AA6BD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CA6DjC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,sBAAsB,EAAE,GACtC,MAAM,CAiCR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAKR;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CA+CD"}
|