@vm0/cli 9.236.0 → 9.237.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{agent-H37ZBBFD.js → agent-G5NJDTZD.js} +5 -5
- package/{banking-IRMYJKNC.js → banking-RE4Y55OB.js} +3 -3
- package/{chat-NZ6TRVR5.js → chat-TRC4V4LW.js} +4 -4
- package/{chunk-73CTMK6P.js → chunk-4KHAQF4M.js} +2 -2
- package/{chunk-VM5QYVD6.js → chunk-AJUYZVZU.js} +2 -2
- package/{chunk-MGWKM7UC.js → chunk-DNWL4DAH.js} +2 -2
- package/{chunk-76G34YAK.js → chunk-FAIVSEFV.js} +2 -2
- package/{chunk-COXWIO7D.js → chunk-G55J25QR.js} +218 -12
- package/chunk-G55J25QR.js.map +1 -0
- package/{chunk-C62RB4M2.js → chunk-LAUWX3TW.js} +4 -4
- package/{chunk-64IW3URY.js → chunk-RNGEJBP2.js} +3 -3
- package/{chunk-26HAGVMF.js → chunk-SSQSKO3U.js} +2 -2
- package/{chunk-RQQ7SG5F.js → chunk-UFRPDBLC.js} +19 -4
- package/{chunk-RQQ7SG5F.js.map → chunk-UFRPDBLC.js.map} +1 -1
- package/{chunk-W4AAAM2I.js → chunk-ZJOHVGBX.js} +2 -2
- package/{chunk-RTJRFBZ4.js → chunk-ZWYDJ3AZ.js} +2 -2
- package/{computer-use-PHPLG6PO.js → computer-use-GESXXHFG.js} +3 -3
- package/{connector-37AVV3HQ.js → connector-SDQMMKIT.js} +4 -4
- package/{credit-IOSI7BHB.js → credit-JTKH4UMZ.js} +4 -4
- package/{developer-support-CVZDCWUJ.js → developer-support-2JW3QPDC.js} +3 -3
- package/{doctor-2NROVNEM.js → doctor-VPBYKX77.js} +7 -7
- package/{generate-NA2R3CE4.js → generate-F7ZPK6IV.js} +4 -4
- package/{github-U7ICR34Q.js → github-GDPM257C.js} +3 -3
- package/{goal-LVH3SPUN.js → goal-M2AYUQJ4.js} +3 -3
- package/{host-NFZIDNFL.js → host-OJR3FPYM.js} +3 -3
- package/index.js +14 -14
- package/{logs-EANNRUOI.js → logs-H5JYXHA6.js} +7 -7
- package/{maps-CWNOZN4X.js → maps-PLCIA2DA.js} +3 -3
- package/{memory-2W5HCDIM.js → memory-EJSR4TVG.js} +3 -3
- package/{model-7QO2KBZU.js → model-5YKXB5ND.js} +4 -4
- package/{model-provider-HFNCG657.js → model-provider-4EUN45KQ.js} +4 -4
- package/{org-TTJVCI6O.js → org-NY3ZQYMJ.js} +3 -3
- package/package.json +1 -1
- package/{phone-R6ZBFTQQ.js → phone-LJFIA4YV.js} +3 -3
- package/{preference-JACH7UCD.js → preference-H4WF5NXY.js} +3 -3
- package/{relationship-D4RXZL2F.js → relationship-2OHALC26.js} +3 -3
- package/{resource-53GNP4BE.js → resource-2DLQU6OU.js} +3 -3
- package/{search-CSNF5OZC.js → search-BDC7KHXU.js} +7 -7
- package/{secret-M5GRCTGE.js → secret-DYZ2K6QX.js} +4 -4
- package/{slack-QBSJ5CLK.js → slack-DRX6JAGE.js} +3 -3
- package/teams-K2XTVCGT.js +284 -0
- package/teams-K2XTVCGT.js.map +1 -0
- package/{telegram-2P2ZZYU4.js → telegram-XNU3XVPW.js} +3 -3
- package/{variable-JM7W3UQJ.js → variable-J5FV4HHC.js} +3 -3
- package/{video-HONK7KHI.js → video-HSB2R7TK.js} +2 -2
- package/{web-3NQFBVFX.js → web-MRZE6CNW.js} +3 -3
- package/{whoami-WYOS2RAK.js → whoami-5SM2Z5BX.js} +5 -5
- package/{workflow-AYPDFQOY.js → workflow-6ZJZKTJ5.js} +3 -3
- package/zero.js +44 -33
- package/zero.js.map +1 -1
- package/chunk-COXWIO7D.js.map +0 -1
- /package/{agent-H37ZBBFD.js.map → agent-G5NJDTZD.js.map} +0 -0
- /package/{banking-IRMYJKNC.js.map → banking-RE4Y55OB.js.map} +0 -0
- /package/{chat-NZ6TRVR5.js.map → chat-TRC4V4LW.js.map} +0 -0
- /package/{chunk-73CTMK6P.js.map → chunk-4KHAQF4M.js.map} +0 -0
- /package/{chunk-VM5QYVD6.js.map → chunk-AJUYZVZU.js.map} +0 -0
- /package/{chunk-MGWKM7UC.js.map → chunk-DNWL4DAH.js.map} +0 -0
- /package/{chunk-76G34YAK.js.map → chunk-FAIVSEFV.js.map} +0 -0
- /package/{chunk-C62RB4M2.js.map → chunk-LAUWX3TW.js.map} +0 -0
- /package/{chunk-64IW3URY.js.map → chunk-RNGEJBP2.js.map} +0 -0
- /package/{chunk-26HAGVMF.js.map → chunk-SSQSKO3U.js.map} +0 -0
- /package/{chunk-W4AAAM2I.js.map → chunk-ZJOHVGBX.js.map} +0 -0
- /package/{chunk-RTJRFBZ4.js.map → chunk-ZWYDJ3AZ.js.map} +0 -0
- /package/{computer-use-PHPLG6PO.js.map → computer-use-GESXXHFG.js.map} +0 -0
- /package/{connector-37AVV3HQ.js.map → connector-SDQMMKIT.js.map} +0 -0
- /package/{credit-IOSI7BHB.js.map → credit-JTKH4UMZ.js.map} +0 -0
- /package/{developer-support-CVZDCWUJ.js.map → developer-support-2JW3QPDC.js.map} +0 -0
- /package/{doctor-2NROVNEM.js.map → doctor-VPBYKX77.js.map} +0 -0
- /package/{generate-NA2R3CE4.js.map → generate-F7ZPK6IV.js.map} +0 -0
- /package/{github-U7ICR34Q.js.map → github-GDPM257C.js.map} +0 -0
- /package/{goal-LVH3SPUN.js.map → goal-M2AYUQJ4.js.map} +0 -0
- /package/{host-NFZIDNFL.js.map → host-OJR3FPYM.js.map} +0 -0
- /package/{logs-EANNRUOI.js.map → logs-H5JYXHA6.js.map} +0 -0
- /package/{maps-CWNOZN4X.js.map → maps-PLCIA2DA.js.map} +0 -0
- /package/{memory-2W5HCDIM.js.map → memory-EJSR4TVG.js.map} +0 -0
- /package/{model-7QO2KBZU.js.map → model-5YKXB5ND.js.map} +0 -0
- /package/{model-provider-HFNCG657.js.map → model-provider-4EUN45KQ.js.map} +0 -0
- /package/{org-TTJVCI6O.js.map → org-NY3ZQYMJ.js.map} +0 -0
- /package/{phone-R6ZBFTQQ.js.map → phone-LJFIA4YV.js.map} +0 -0
- /package/{preference-JACH7UCD.js.map → preference-H4WF5NXY.js.map} +0 -0
- /package/{relationship-D4RXZL2F.js.map → relationship-2OHALC26.js.map} +0 -0
- /package/{resource-53GNP4BE.js.map → resource-2DLQU6OU.js.map} +0 -0
- /package/{search-CSNF5OZC.js.map → search-BDC7KHXU.js.map} +0 -0
- /package/{secret-M5GRCTGE.js.map → secret-DYZ2K6QX.js.map} +0 -0
- /package/{slack-QBSJ5CLK.js.map → slack-DRX6JAGE.js.map} +0 -0
- /package/{telegram-2P2ZZYU4.js.map → telegram-XNU3XVPW.js.map} +0 -0
- /package/{variable-JM7W3UQJ.js.map → variable-J5FV4HHC.js.map} +0 -0
- /package/{video-HONK7KHI.js.map → video-HSB2R7TK.js.map} +0 -0
- /package/{web-3NQFBVFX.js.map → web-MRZE6CNW.js.map} +0 -0
- /package/{whoami-WYOS2RAK.js.map → whoami-5SM2Z5BX.js.map} +0 -0
- /package/{workflow-AYPDFQOY.js.map → workflow-6ZJZKTJ5.js.map} +0 -0
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
downloadSlackFile,
|
|
8
8
|
initSlackFileUpload,
|
|
9
9
|
sendSlackMessage
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-G55J25QR.js";
|
|
11
11
|
import {
|
|
12
12
|
withErrorHandler
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DNWL4DAH.js";
|
|
14
14
|
import {
|
|
15
15
|
source_default
|
|
16
16
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -220,4 +220,4 @@ Examples:
|
|
|
220
220
|
export {
|
|
221
221
|
zeroSlackCommand
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=slack-
|
|
223
|
+
//# sourceMappingURL=slack-DRX6JAGE.js.map
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import "./chunk-LTDQISD7.js";
|
|
5
|
+
import {
|
|
6
|
+
completeTeamsFileUpload,
|
|
7
|
+
downloadTeamsFile,
|
|
8
|
+
initTeamsFileUpload,
|
|
9
|
+
sendTeamsMessage
|
|
10
|
+
} from "./chunk-G55J25QR.js";
|
|
11
|
+
import {
|
|
12
|
+
withErrorHandler
|
|
13
|
+
} from "./chunk-DNWL4DAH.js";
|
|
14
|
+
import {
|
|
15
|
+
source_default
|
|
16
|
+
} from "./chunk-JUTUEPIR.js";
|
|
17
|
+
import "./chunk-LRHXR7JT.js";
|
|
18
|
+
import {
|
|
19
|
+
Command
|
|
20
|
+
} from "./chunk-B3W2RUBP.js";
|
|
21
|
+
import {
|
|
22
|
+
init_esm_shims
|
|
23
|
+
} from "./chunk-DIRAZ3YX.js";
|
|
24
|
+
|
|
25
|
+
// src/commands/zero/teams/index.ts
|
|
26
|
+
init_esm_shims();
|
|
27
|
+
|
|
28
|
+
// src/commands/zero/teams/message/index.ts
|
|
29
|
+
init_esm_shims();
|
|
30
|
+
|
|
31
|
+
// src/commands/zero/teams/message/send.ts
|
|
32
|
+
init_esm_shims();
|
|
33
|
+
import { readFileSync } from "fs";
|
|
34
|
+
function isRecord(value) {
|
|
35
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
36
|
+
}
|
|
37
|
+
function parseTeamsCard(value) {
|
|
38
|
+
let parsed;
|
|
39
|
+
try {
|
|
40
|
+
parsed = JSON.parse(value);
|
|
41
|
+
} catch {
|
|
42
|
+
throw new Error("Invalid JSON for --card flag", {
|
|
43
|
+
cause: new Error("Provide a valid Adaptive Card JSON object")
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (!isRecord(parsed) || parsed.type !== "AdaptiveCard" || typeof parsed.version !== "string") {
|
|
47
|
+
throw new Error("Invalid Adaptive Card for --card flag", {
|
|
48
|
+
cause: new Error(
|
|
49
|
+
'Provide a JSON object with "type": "AdaptiveCard" and a version'
|
|
50
|
+
)
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return parsed;
|
|
54
|
+
}
|
|
55
|
+
var sendCommand = new Command().name("send").description("Send a message to a Microsoft Teams conversation or DM a user").option("-c, --conversation-id <id>", "Teams conversation ID").option("-u, --user <id>", 'Teams user ID for DM (use "me" for yourself)').option("-t, --text <message>", "Message text").option("--activity-id <id>", "Activity ID to reply to").option("--thread <id>", "Alias for --activity-id").option("--card <json>", "Adaptive Card JSON string").addHelpText(
|
|
56
|
+
"after",
|
|
57
|
+
`
|
|
58
|
+
Examples:
|
|
59
|
+
Simple message: zero teams message send -c 19:thread@thread.tacv2 -t "Hello!"
|
|
60
|
+
DM a user: zero teams message send -u 29:user-id -t "Hello!"
|
|
61
|
+
DM yourself: zero teams message send -u me -t "Hello!"
|
|
62
|
+
Thread reply: zero teams message send -c 19:thread@thread.tacv2 --thread root-activity -t "reply"
|
|
63
|
+
Adaptive Card: zero teams message send -c 19:thread@thread.tacv2 --card '{"type":"AdaptiveCard","version":"1.4","body":[{"type":"TextBlock","text":"Hello","wrap":true}]}'
|
|
64
|
+
|
|
65
|
+
Notes:
|
|
66
|
+
- Either --conversation-id or --user is required; they are mutually exclusive
|
|
67
|
+
- Either --text or --card is required; text can be provided with --text or piped on stdin
|
|
68
|
+
- Use the Conversation ID and Activity ID from the current Teams run prompt`
|
|
69
|
+
).action(
|
|
70
|
+
withErrorHandler(
|
|
71
|
+
async (options) => {
|
|
72
|
+
let text = options.text;
|
|
73
|
+
const { conversationId, user, card: cardJson } = options;
|
|
74
|
+
if (!conversationId && !user) {
|
|
75
|
+
throw new Error(
|
|
76
|
+
"Either --conversation-id or --user must be provided",
|
|
77
|
+
{
|
|
78
|
+
cause: new Error(
|
|
79
|
+
'Usage: zero teams message send -c CONVERSATION_ID -t "your message"\n zero teams message send -u USER_ID -t "your message"'
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
if (conversationId && user) {
|
|
85
|
+
throw new Error(
|
|
86
|
+
"--conversation-id and --user are mutually exclusive",
|
|
87
|
+
{
|
|
88
|
+
cause: new Error(
|
|
89
|
+
"Provide either --conversation-id to send to a conversation or --user to DM a user, not both"
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
const activityId = options.activityId ?? options.thread;
|
|
95
|
+
if (user && activityId) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
"--activity-id and --thread can only be used with --conversation-id",
|
|
98
|
+
{
|
|
99
|
+
cause: new Error(
|
|
100
|
+
"Thread replies require an existing Teams conversation"
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
if (!text && !process.stdin.isTTY) {
|
|
106
|
+
try {
|
|
107
|
+
text = readFileSync("/dev/stdin", "utf8").trim();
|
|
108
|
+
} catch {
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const card = cardJson ? parseTeamsCard(cardJson) : void 0;
|
|
112
|
+
if (!text && !card) {
|
|
113
|
+
throw new Error(
|
|
114
|
+
"Either --text, --card, or piped stdin must be provided",
|
|
115
|
+
{
|
|
116
|
+
cause: new Error(
|
|
117
|
+
'Usage: zero teams message send -c CONVERSATION_ID -t "your message"'
|
|
118
|
+
)
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
const body = {
|
|
123
|
+
...conversationId ? { conversationId } : { user },
|
|
124
|
+
...activityId ? { activityId } : {},
|
|
125
|
+
...text ? { text } : {},
|
|
126
|
+
...card ? { card } : {}
|
|
127
|
+
};
|
|
128
|
+
const result = await sendTeamsMessage({
|
|
129
|
+
...body
|
|
130
|
+
});
|
|
131
|
+
const activityInfo = result.activityId ? ` (activity_id: ${result.activityId})` : "";
|
|
132
|
+
console.log(source_default.green(`\u2713 Message sent${activityInfo}`));
|
|
133
|
+
}
|
|
134
|
+
)
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
// src/commands/zero/teams/message/index.ts
|
|
138
|
+
var zeroTeamsMessageCommand = new Command().name("message").description("Manage Microsoft Teams messages").addCommand(sendCommand).addHelpText(
|
|
139
|
+
"after",
|
|
140
|
+
`
|
|
141
|
+
Examples:
|
|
142
|
+
zero teams message send -c <conversation-id> -t "Hello!"
|
|
143
|
+
zero teams message send -u me -t "Hello!"`
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// src/commands/zero/teams/upload-file.ts
|
|
147
|
+
init_esm_shims();
|
|
148
|
+
import { readFileSync as readFileSync2, statSync } from "fs";
|
|
149
|
+
import { basename, extname } from "path";
|
|
150
|
+
var MIME_BY_EXTENSION = {
|
|
151
|
+
".png": "image/png",
|
|
152
|
+
".jpg": "image/jpeg",
|
|
153
|
+
".jpeg": "image/jpeg",
|
|
154
|
+
".gif": "image/gif",
|
|
155
|
+
".webp": "image/webp",
|
|
156
|
+
".svg": "image/svg+xml",
|
|
157
|
+
".mp4": "video/mp4",
|
|
158
|
+
".webm": "video/webm",
|
|
159
|
+
".mov": "video/quicktime",
|
|
160
|
+
".pdf": "application/pdf",
|
|
161
|
+
".txt": "text/plain",
|
|
162
|
+
".csv": "text/csv",
|
|
163
|
+
".md": "text/markdown",
|
|
164
|
+
".json": "application/json"
|
|
165
|
+
};
|
|
166
|
+
function inferContentType(localPath) {
|
|
167
|
+
const ext = extname(localPath).toLowerCase();
|
|
168
|
+
return MIME_BY_EXTENSION[ext] ?? "application/octet-stream";
|
|
169
|
+
}
|
|
170
|
+
var uploadFileCommand = new Command().name("upload-file").description(
|
|
171
|
+
"Upload a local file to a Microsoft Teams conversation as the bot"
|
|
172
|
+
).requiredOption("-f, --file <path>", "Local file path to upload").requiredOption("-c, --conversation-id <id>", "Teams conversation ID").option("--activity-id <id>", "Activity ID to reply to").option("-t, --text <message>", "Message text to accompany the file").option("--content-type <mime>", "Override inferred content type").addHelpText(
|
|
173
|
+
"after",
|
|
174
|
+
`
|
|
175
|
+
Examples:
|
|
176
|
+
Upload a file: zero teams upload-file -f /tmp/report.pdf -c 19:thread@thread.tacv2
|
|
177
|
+
Upload to thread: zero teams upload-file -f /tmp/log.txt -c 19:thread@thread.tacv2 --activity-id root-activity
|
|
178
|
+
With message text: zero teams upload-file -f /tmp/data.csv -c 19:thread@thread.tacv2 -t "Daily report"
|
|
179
|
+
|
|
180
|
+
Output:
|
|
181
|
+
Prints a JSON object to stdout on success:
|
|
182
|
+
{"activityId":"...","conversationId":"19:...","filename":"report.pdf","mimetype":"application/pdf","size":12345,"url":"https://..."}
|
|
183
|
+
|
|
184
|
+
Notes:
|
|
185
|
+
- Uploads through VM0 storage first, then sends the Teams message with the file URL
|
|
186
|
+
- Use the Conversation ID and Activity ID from the current Teams run prompt`
|
|
187
|
+
).action(
|
|
188
|
+
withErrorHandler(
|
|
189
|
+
async (options) => {
|
|
190
|
+
let fileSize;
|
|
191
|
+
try {
|
|
192
|
+
const stat = statSync(options.file);
|
|
193
|
+
if (!stat.isFile()) {
|
|
194
|
+
throw new Error(`Not a regular file: ${options.file}`);
|
|
195
|
+
}
|
|
196
|
+
fileSize = stat.size;
|
|
197
|
+
} catch (error) {
|
|
198
|
+
if (error instanceof Error && error.message.startsWith("Not ")) {
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
throw new Error(`File not found: ${options.file}`);
|
|
202
|
+
}
|
|
203
|
+
if (fileSize === 0) {
|
|
204
|
+
throw new Error("File is empty");
|
|
205
|
+
}
|
|
206
|
+
const filename = basename(options.file);
|
|
207
|
+
const contentType = options.contentType ?? inferContentType(options.file);
|
|
208
|
+
const prepared = await initTeamsFileUpload({
|
|
209
|
+
filename,
|
|
210
|
+
contentType,
|
|
211
|
+
length: fileSize
|
|
212
|
+
});
|
|
213
|
+
const fileContent = readFileSync2(options.file);
|
|
214
|
+
const uploadResponse = await fetch(prepared.uploadUrl, {
|
|
215
|
+
method: "PUT",
|
|
216
|
+
headers: { "Content-Type": prepared.contentType },
|
|
217
|
+
body: new Uint8Array(fileContent)
|
|
218
|
+
});
|
|
219
|
+
if (!uploadResponse.ok) {
|
|
220
|
+
throw new Error(
|
|
221
|
+
`File upload failed: ${uploadResponse.status} ${uploadResponse.statusText}`
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
const result = await completeTeamsFileUpload({
|
|
225
|
+
uploadId: prepared.uploadId,
|
|
226
|
+
conversationId: options.conversationId,
|
|
227
|
+
activityId: options.activityId,
|
|
228
|
+
contentType: prepared.contentType,
|
|
229
|
+
text: options.text
|
|
230
|
+
});
|
|
231
|
+
console.log(JSON.stringify(result));
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
);
|
|
235
|
+
|
|
236
|
+
// src/commands/zero/teams/download-file.ts
|
|
237
|
+
init_esm_shims();
|
|
238
|
+
import { basename as basename2, join } from "path";
|
|
239
|
+
import { tmpdir } from "os";
|
|
240
|
+
function defaultOutPath(fileId) {
|
|
241
|
+
return join(tmpdir(), `teams-${basename2(fileId).slice(0, 48)}`);
|
|
242
|
+
}
|
|
243
|
+
var downloadFileCommand = new Command().name("download-file").description("Download a Microsoft Teams file by signed file id").argument("<file-id>", "Microsoft Teams file id from a [Teams file] block").option(
|
|
244
|
+
"-o, --out <path>",
|
|
245
|
+
"Output path for the downloaded file (default: /tmp/teams-<file-id>)"
|
|
246
|
+
).addHelpText(
|
|
247
|
+
"after",
|
|
248
|
+
`
|
|
249
|
+
Examples:
|
|
250
|
+
Download to default temp path: zero teams download-file <file-id>
|
|
251
|
+
Download to explicit path: zero teams download-file <file-id> -o /tmp/file.png
|
|
252
|
+
|
|
253
|
+
Output:
|
|
254
|
+
Prints a JSON object to stdout on success:
|
|
255
|
+
{"path":"/tmp/teams-...","mimetype":"image/png","size":12345}
|
|
256
|
+
|
|
257
|
+
Notes:
|
|
258
|
+
- Use the file id from a [Teams file] block in the prompt
|
|
259
|
+
- Streams the file bytes directly to disk`
|
|
260
|
+
).action(
|
|
261
|
+
withErrorHandler(async (fileId, options) => {
|
|
262
|
+
const outPath = options.out ?? defaultOutPath(fileId);
|
|
263
|
+
const result = await downloadTeamsFile(fileId, outPath);
|
|
264
|
+
console.log(JSON.stringify(result));
|
|
265
|
+
})
|
|
266
|
+
);
|
|
267
|
+
|
|
268
|
+
// src/commands/zero/teams/index.ts
|
|
269
|
+
var zeroTeamsCommand = new Command().name("teams").description(
|
|
270
|
+
"Send messages, upload files, and download files from Microsoft Teams as the bot"
|
|
271
|
+
).addCommand(zeroTeamsMessageCommand).addCommand(uploadFileCommand).addCommand(downloadFileCommand).addHelpText(
|
|
272
|
+
"after",
|
|
273
|
+
`
|
|
274
|
+
Examples:
|
|
275
|
+
Send a message: zero teams message send -c <conversation-id> -t "Hello!"
|
|
276
|
+
DM a user: zero teams message send -u me -t "Hello!"
|
|
277
|
+
Reply in a thread: zero teams message send -c <conversation-id> --thread <activity-id> -t "reply"
|
|
278
|
+
Upload a file: zero teams upload-file -f /tmp/report.pdf -c <conversation-id>
|
|
279
|
+
Download a file: zero teams download-file <file-id> -o /tmp/out.png`
|
|
280
|
+
);
|
|
281
|
+
export {
|
|
282
|
+
zeroTeamsCommand
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=teams-K2XTVCGT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/zero/teams/index.ts","../src/commands/zero/teams/message/index.ts","../src/commands/zero/teams/message/send.ts","../src/commands/zero/teams/upload-file.ts","../src/commands/zero/teams/download-file.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { zeroTeamsMessageCommand } from \"./message\";\nimport { uploadFileCommand } from \"./upload-file\";\nimport { downloadFileCommand } from \"./download-file\";\n\nexport const zeroTeamsCommand = new Command()\n .name(\"teams\")\n .description(\n \"Send messages, upload files, and download files from Microsoft Teams as the bot\",\n )\n .addCommand(zeroTeamsMessageCommand)\n .addCommand(uploadFileCommand)\n .addCommand(downloadFileCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n Send a message: zero teams message send -c <conversation-id> -t \"Hello!\"\n DM a user: zero teams message send -u me -t \"Hello!\"\n Reply in a thread: zero teams message send -c <conversation-id> --thread <activity-id> -t \"reply\"\n Upload a file: zero teams upload-file -f /tmp/report.pdf -c <conversation-id>\n Download a file: zero teams download-file <file-id> -o /tmp/out.png`,\n );\n","import { Command } from \"commander\";\nimport { sendCommand } from \"./send\";\n\nexport const zeroTeamsMessageCommand = new Command()\n .name(\"message\")\n .description(\"Manage Microsoft Teams messages\")\n .addCommand(sendCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n zero teams message send -c <conversation-id> -t \"Hello!\"\n zero teams message send -u me -t \"Hello!\"`,\n );\n","import { readFileSync } from \"fs\";\nimport { Command } from \"commander\";\nimport type { SendTeamsMessageBody } from \"@vm0/api-contracts/contracts/integrations\";\nimport chalk from \"chalk\";\nimport { sendTeamsMessage } from \"../../../../lib/api\";\nimport { withErrorHandler } from \"../../../../lib/command\";\n\ntype TeamsCardInput = NonNullable<SendTeamsMessageBody[\"card\"]>;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseTeamsCard(value: string): TeamsCardInput {\n let parsed: unknown;\n try {\n parsed = JSON.parse(value);\n } catch {\n throw new Error(\"Invalid JSON for --card flag\", {\n cause: new Error(\"Provide a valid Adaptive Card JSON object\"),\n });\n }\n\n if (\n !isRecord(parsed) ||\n parsed.type !== \"AdaptiveCard\" ||\n typeof parsed.version !== \"string\"\n ) {\n throw new Error(\"Invalid Adaptive Card for --card flag\", {\n cause: new Error(\n 'Provide a JSON object with \"type\": \"AdaptiveCard\" and a version',\n ),\n });\n }\n\n return parsed as TeamsCardInput;\n}\n\nexport const sendCommand = new Command()\n .name(\"send\")\n .description(\"Send a message to a Microsoft Teams conversation or DM a user\")\n .option(\"-c, --conversation-id <id>\", \"Teams conversation ID\")\n .option(\"-u, --user <id>\", 'Teams user ID for DM (use \"me\" for yourself)')\n .option(\"-t, --text <message>\", \"Message text\")\n .option(\"--activity-id <id>\", \"Activity ID to reply to\")\n .option(\"--thread <id>\", \"Alias for --activity-id\")\n .option(\"--card <json>\", \"Adaptive Card JSON string\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Simple message: zero teams message send -c 19:thread@thread.tacv2 -t \"Hello!\"\n DM a user: zero teams message send -u 29:user-id -t \"Hello!\"\n DM yourself: zero teams message send -u me -t \"Hello!\"\n Thread reply: zero teams message send -c 19:thread@thread.tacv2 --thread root-activity -t \"reply\"\n Adaptive Card: zero teams message send -c 19:thread@thread.tacv2 --card '{\"type\":\"AdaptiveCard\",\"version\":\"1.4\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"Hello\",\"wrap\":true}]}'\n\nNotes:\n - Either --conversation-id or --user is required; they are mutually exclusive\n - Either --text or --card is required; text can be provided with --text or piped on stdin\n - Use the Conversation ID and Activity ID from the current Teams run prompt`,\n )\n .action(\n withErrorHandler(\n async (options: {\n conversationId?: string;\n user?: string;\n text?: string;\n activityId?: string;\n thread?: string;\n card?: string;\n }) => {\n let text = options.text;\n const { conversationId, user, card: cardJson } = options;\n\n if (!conversationId && !user) {\n throw new Error(\n \"Either --conversation-id or --user must be provided\",\n {\n cause: new Error(\n 'Usage: zero teams message send -c CONVERSATION_ID -t \"your message\"\\n zero teams message send -u USER_ID -t \"your message\"',\n ),\n },\n );\n }\n if (conversationId && user) {\n throw new Error(\n \"--conversation-id and --user are mutually exclusive\",\n {\n cause: new Error(\n \"Provide either --conversation-id to send to a conversation or --user to DM a user, not both\",\n ),\n },\n );\n }\n\n const activityId = options.activityId ?? options.thread;\n if (user && activityId) {\n throw new Error(\n \"--activity-id and --thread can only be used with --conversation-id\",\n {\n cause: new Error(\n \"Thread replies require an existing Teams conversation\",\n ),\n },\n );\n }\n\n if (!text && !process.stdin.isTTY) {\n try {\n text = readFileSync(\"/dev/stdin\", \"utf8\").trim();\n } catch {\n // stdin not readable; fall through to the missing-text validation.\n }\n }\n\n const card = cardJson ? parseTeamsCard(cardJson) : undefined;\n\n if (!text && !card) {\n throw new Error(\n \"Either --text, --card, or piped stdin must be provided\",\n {\n cause: new Error(\n 'Usage: zero teams message send -c CONVERSATION_ID -t \"your message\"',\n ),\n },\n );\n }\n\n const body: SendTeamsMessageBody = {\n ...(conversationId ? { conversationId } : { user }),\n ...(activityId ? { activityId } : {}),\n ...(text ? { text } : {}),\n ...(card ? { card } : {}),\n };\n const result = await sendTeamsMessage({\n ...body,\n });\n\n const activityInfo = result.activityId\n ? ` (activity_id: ${result.activityId})`\n : \"\";\n console.log(chalk.green(`✓ Message sent${activityInfo}`));\n },\n ),\n );\n","import { readFileSync, statSync } from \"fs\";\nimport { basename, extname } from \"path\";\nimport { Command } from \"commander\";\nimport { completeTeamsFileUpload, initTeamsFileUpload } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\nconst MIME_BY_EXTENSION: Record<string, string> = {\n \".png\": \"image/png\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".gif\": \"image/gif\",\n \".webp\": \"image/webp\",\n \".svg\": \"image/svg+xml\",\n \".mp4\": \"video/mp4\",\n \".webm\": \"video/webm\",\n \".mov\": \"video/quicktime\",\n \".pdf\": \"application/pdf\",\n \".txt\": \"text/plain\",\n \".csv\": \"text/csv\",\n \".md\": \"text/markdown\",\n \".json\": \"application/json\",\n};\n\nfunction inferContentType(localPath: string): string {\n const ext = extname(localPath).toLowerCase();\n return MIME_BY_EXTENSION[ext] ?? \"application/octet-stream\";\n}\n\nexport const uploadFileCommand = new Command()\n .name(\"upload-file\")\n .description(\n \"Upload a local file to a Microsoft Teams conversation as the bot\",\n )\n .requiredOption(\"-f, --file <path>\", \"Local file path to upload\")\n .requiredOption(\"-c, --conversation-id <id>\", \"Teams conversation ID\")\n .option(\"--activity-id <id>\", \"Activity ID to reply to\")\n .option(\"-t, --text <message>\", \"Message text to accompany the file\")\n .option(\"--content-type <mime>\", \"Override inferred content type\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Upload a file: zero teams upload-file -f /tmp/report.pdf -c 19:thread@thread.tacv2\n Upload to thread: zero teams upload-file -f /tmp/log.txt -c 19:thread@thread.tacv2 --activity-id root-activity\n With message text: zero teams upload-file -f /tmp/data.csv -c 19:thread@thread.tacv2 -t \"Daily report\"\n\nOutput:\n Prints a JSON object to stdout on success:\n {\"activityId\":\"...\",\"conversationId\":\"19:...\",\"filename\":\"report.pdf\",\"mimetype\":\"application/pdf\",\"size\":12345,\"url\":\"https://...\"}\n\nNotes:\n - Uploads through VM0 storage first, then sends the Teams message with the file URL\n - Use the Conversation ID and Activity ID from the current Teams run prompt`,\n )\n .action(\n withErrorHandler(\n async (options: {\n file: string;\n conversationId: string;\n activityId?: string;\n text?: string;\n contentType?: string;\n }) => {\n let fileSize: number;\n try {\n const stat = statSync(options.file);\n if (!stat.isFile()) {\n throw new Error(`Not a regular file: ${options.file}`);\n }\n fileSize = stat.size;\n } catch (error) {\n if (error instanceof Error && error.message.startsWith(\"Not \")) {\n throw error;\n }\n throw new Error(`File not found: ${options.file}`);\n }\n\n if (fileSize === 0) {\n throw new Error(\"File is empty\");\n }\n\n const filename = basename(options.file);\n const contentType =\n options.contentType ?? inferContentType(options.file);\n const prepared = await initTeamsFileUpload({\n filename,\n contentType,\n length: fileSize,\n });\n\n const fileContent = readFileSync(options.file);\n const uploadResponse = await fetch(prepared.uploadUrl, {\n method: \"PUT\",\n headers: { \"Content-Type\": prepared.contentType },\n body: new Uint8Array(fileContent),\n });\n\n if (!uploadResponse.ok) {\n throw new Error(\n `File upload failed: ${uploadResponse.status} ${uploadResponse.statusText}`,\n );\n }\n\n const result = await completeTeamsFileUpload({\n uploadId: prepared.uploadId,\n conversationId: options.conversationId,\n activityId: options.activityId,\n contentType: prepared.contentType,\n text: options.text,\n });\n\n console.log(JSON.stringify(result));\n },\n ),\n );\n","import { basename, join } from \"path\";\nimport { tmpdir } from \"os\";\nimport { Command } from \"commander\";\nimport { downloadTeamsFile } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\nfunction defaultOutPath(fileId: string): string {\n return join(tmpdir(), `teams-${basename(fileId).slice(0, 48)}`);\n}\n\nexport const downloadFileCommand = new Command()\n .name(\"download-file\")\n .description(\"Download a Microsoft Teams file by signed file id\")\n .argument(\"<file-id>\", \"Microsoft Teams file id from a [Teams file] block\")\n .option(\n \"-o, --out <path>\",\n \"Output path for the downloaded file (default: /tmp/teams-<file-id>)\",\n )\n .addHelpText(\n \"after\",\n `\nExamples:\n Download to default temp path: zero teams download-file <file-id>\n Download to explicit path: zero teams download-file <file-id> -o /tmp/file.png\n\nOutput:\n Prints a JSON object to stdout on success:\n {\"path\":\"/tmp/teams-...\",\"mimetype\":\"image/png\",\"size\":12345}\n\nNotes:\n - Use the file id from a [Teams file] block in the prompt\n - Streams the file bytes directly to disk`,\n )\n .action(\n withErrorHandler(async (fileId: string, options: { out?: string }) => {\n const outPath = options.out ?? defaultOutPath(fileId);\n const result = await downloadTeamsFile(fileId, outPath);\n console.log(JSON.stringify(result));\n }),\n );\n"],"mappings":"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","names":["readFileSync","readFileSync","basename","basename"]}
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
initTelegramFileUpload,
|
|
9
9
|
listTelegramBots,
|
|
10
10
|
sendTelegramMessage
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-G55J25QR.js";
|
|
12
12
|
import {
|
|
13
13
|
withErrorHandler
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DNWL4DAH.js";
|
|
15
15
|
import {
|
|
16
16
|
source_default
|
|
17
17
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -335,4 +335,4 @@ Examples:
|
|
|
335
335
|
export {
|
|
336
336
|
zeroTelegramCommand
|
|
337
337
|
};
|
|
338
|
-
//# sourceMappingURL=telegram-
|
|
338
|
+
//# sourceMappingURL=telegram-XNU3XVPW.js.map
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
deleteZeroVariable,
|
|
11
11
|
listZeroVariables,
|
|
12
12
|
setZeroVariable
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-G55J25QR.js";
|
|
14
14
|
import {
|
|
15
15
|
withErrorHandler
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-DNWL4DAH.js";
|
|
17
17
|
import {
|
|
18
18
|
source_default
|
|
19
19
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -117,4 +117,4 @@ var zeroVariableCommand = new Command().name("variable").description("Read or wr
|
|
|
117
117
|
export {
|
|
118
118
|
zeroVariableCommand
|
|
119
119
|
};
|
|
120
|
-
//# sourceMappingURL=variable-
|
|
120
|
+
//# sourceMappingURL=variable-J5FV4HHC.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
downloadWebFile,
|
|
7
7
|
transcribeAudio,
|
|
8
8
|
withErrorHandler
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DNWL4DAH.js";
|
|
10
10
|
import "./chunk-JUTUEPIR.js";
|
|
11
11
|
import "./chunk-LRHXR7JT.js";
|
|
12
12
|
import {
|
|
@@ -246,4 +246,4 @@ Tip (video understanding):
|
|
|
246
246
|
export {
|
|
247
247
|
zeroVideoCommand
|
|
248
248
|
};
|
|
249
|
-
//# sourceMappingURL=video-
|
|
249
|
+
//# sourceMappingURL=video-HSB2R7TK.js.map
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from "node:module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import "./chunk-LTDQISD7.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-G55J25QR.js";
|
|
6
6
|
import {
|
|
7
7
|
downloadWebFile,
|
|
8
8
|
uploadWebFile,
|
|
9
9
|
withErrorHandler
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DNWL4DAH.js";
|
|
11
11
|
import "./chunk-JUTUEPIR.js";
|
|
12
12
|
import "./chunk-LRHXR7JT.js";
|
|
13
13
|
import {
|
|
@@ -106,4 +106,4 @@ Examples:
|
|
|
106
106
|
export {
|
|
107
107
|
zeroWebCommand
|
|
108
108
|
};
|
|
109
|
-
//# sourceMappingURL=web-
|
|
109
|
+
//# sourceMappingURL=web-MRZE6CNW.js.map
|
|
@@ -4,22 +4,22 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
loadConnectorPermissionInfos,
|
|
6
6
|
policyIcon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZJOHVGBX.js";
|
|
8
8
|
import {
|
|
9
9
|
permissionGrantsToFirewallPolicies
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AJUYZVZU.js";
|
|
11
11
|
import "./chunk-LTDQISD7.js";
|
|
12
12
|
import {
|
|
13
13
|
getZeroAgentUserConnectors,
|
|
14
14
|
listZeroConnectors,
|
|
15
15
|
listZeroUserPermissionGrants
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-G55J25QR.js";
|
|
17
17
|
import {
|
|
18
18
|
getActiveOrg,
|
|
19
19
|
getApiUrl,
|
|
20
20
|
getToken,
|
|
21
21
|
withErrorHandler
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-DNWL4DAH.js";
|
|
23
23
|
import {
|
|
24
24
|
source_default
|
|
25
25
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -192,4 +192,4 @@ Notes:
|
|
|
192
192
|
export {
|
|
193
193
|
zeroWhoamiCommand
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=whoami-
|
|
195
|
+
//# sourceMappingURL=whoami-5SM2Z5BX.js.map
|
|
@@ -20,10 +20,10 @@ import {
|
|
|
20
20
|
listWorkflows,
|
|
21
21
|
updateWorkflow,
|
|
22
22
|
updateWorkflowTrigger
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-G55J25QR.js";
|
|
24
24
|
import {
|
|
25
25
|
withErrorHandler
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-DNWL4DAH.js";
|
|
27
27
|
import {
|
|
28
28
|
source_default
|
|
29
29
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -1753,4 +1753,4 @@ Examples:
|
|
|
1753
1753
|
export {
|
|
1754
1754
|
zeroWorkflowCommand
|
|
1755
1755
|
};
|
|
1756
|
-
//# sourceMappingURL=workflow-
|
|
1756
|
+
//# sourceMappingURL=workflow-6ZJZKTJ5.js.map
|