@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.
Files changed (91) hide show
  1. package/{agent-H37ZBBFD.js → agent-G5NJDTZD.js} +5 -5
  2. package/{banking-IRMYJKNC.js → banking-RE4Y55OB.js} +3 -3
  3. package/{chat-NZ6TRVR5.js → chat-TRC4V4LW.js} +4 -4
  4. package/{chunk-73CTMK6P.js → chunk-4KHAQF4M.js} +2 -2
  5. package/{chunk-VM5QYVD6.js → chunk-AJUYZVZU.js} +2 -2
  6. package/{chunk-MGWKM7UC.js → chunk-DNWL4DAH.js} +2 -2
  7. package/{chunk-76G34YAK.js → chunk-FAIVSEFV.js} +2 -2
  8. package/{chunk-COXWIO7D.js → chunk-G55J25QR.js} +218 -12
  9. package/chunk-G55J25QR.js.map +1 -0
  10. package/{chunk-C62RB4M2.js → chunk-LAUWX3TW.js} +4 -4
  11. package/{chunk-64IW3URY.js → chunk-RNGEJBP2.js} +3 -3
  12. package/{chunk-26HAGVMF.js → chunk-SSQSKO3U.js} +2 -2
  13. package/{chunk-RQQ7SG5F.js → chunk-UFRPDBLC.js} +19 -4
  14. package/{chunk-RQQ7SG5F.js.map → chunk-UFRPDBLC.js.map} +1 -1
  15. package/{chunk-W4AAAM2I.js → chunk-ZJOHVGBX.js} +2 -2
  16. package/{chunk-RTJRFBZ4.js → chunk-ZWYDJ3AZ.js} +2 -2
  17. package/{computer-use-PHPLG6PO.js → computer-use-GESXXHFG.js} +3 -3
  18. package/{connector-37AVV3HQ.js → connector-SDQMMKIT.js} +4 -4
  19. package/{credit-IOSI7BHB.js → credit-JTKH4UMZ.js} +4 -4
  20. package/{developer-support-CVZDCWUJ.js → developer-support-2JW3QPDC.js} +3 -3
  21. package/{doctor-2NROVNEM.js → doctor-VPBYKX77.js} +7 -7
  22. package/{generate-NA2R3CE4.js → generate-F7ZPK6IV.js} +4 -4
  23. package/{github-U7ICR34Q.js → github-GDPM257C.js} +3 -3
  24. package/{goal-LVH3SPUN.js → goal-M2AYUQJ4.js} +3 -3
  25. package/{host-NFZIDNFL.js → host-OJR3FPYM.js} +3 -3
  26. package/index.js +14 -14
  27. package/{logs-EANNRUOI.js → logs-H5JYXHA6.js} +7 -7
  28. package/{maps-CWNOZN4X.js → maps-PLCIA2DA.js} +3 -3
  29. package/{memory-2W5HCDIM.js → memory-EJSR4TVG.js} +3 -3
  30. package/{model-7QO2KBZU.js → model-5YKXB5ND.js} +4 -4
  31. package/{model-provider-HFNCG657.js → model-provider-4EUN45KQ.js} +4 -4
  32. package/{org-TTJVCI6O.js → org-NY3ZQYMJ.js} +3 -3
  33. package/package.json +1 -1
  34. package/{phone-R6ZBFTQQ.js → phone-LJFIA4YV.js} +3 -3
  35. package/{preference-JACH7UCD.js → preference-H4WF5NXY.js} +3 -3
  36. package/{relationship-D4RXZL2F.js → relationship-2OHALC26.js} +3 -3
  37. package/{resource-53GNP4BE.js → resource-2DLQU6OU.js} +3 -3
  38. package/{search-CSNF5OZC.js → search-BDC7KHXU.js} +7 -7
  39. package/{secret-M5GRCTGE.js → secret-DYZ2K6QX.js} +4 -4
  40. package/{slack-QBSJ5CLK.js → slack-DRX6JAGE.js} +3 -3
  41. package/teams-K2XTVCGT.js +284 -0
  42. package/teams-K2XTVCGT.js.map +1 -0
  43. package/{telegram-2P2ZZYU4.js → telegram-XNU3XVPW.js} +3 -3
  44. package/{variable-JM7W3UQJ.js → variable-J5FV4HHC.js} +3 -3
  45. package/{video-HONK7KHI.js → video-HSB2R7TK.js} +2 -2
  46. package/{web-3NQFBVFX.js → web-MRZE6CNW.js} +3 -3
  47. package/{whoami-WYOS2RAK.js → whoami-5SM2Z5BX.js} +5 -5
  48. package/{workflow-AYPDFQOY.js → workflow-6ZJZKTJ5.js} +3 -3
  49. package/zero.js +44 -33
  50. package/zero.js.map +1 -1
  51. package/chunk-COXWIO7D.js.map +0 -1
  52. /package/{agent-H37ZBBFD.js.map → agent-G5NJDTZD.js.map} +0 -0
  53. /package/{banking-IRMYJKNC.js.map → banking-RE4Y55OB.js.map} +0 -0
  54. /package/{chat-NZ6TRVR5.js.map → chat-TRC4V4LW.js.map} +0 -0
  55. /package/{chunk-73CTMK6P.js.map → chunk-4KHAQF4M.js.map} +0 -0
  56. /package/{chunk-VM5QYVD6.js.map → chunk-AJUYZVZU.js.map} +0 -0
  57. /package/{chunk-MGWKM7UC.js.map → chunk-DNWL4DAH.js.map} +0 -0
  58. /package/{chunk-76G34YAK.js.map → chunk-FAIVSEFV.js.map} +0 -0
  59. /package/{chunk-C62RB4M2.js.map → chunk-LAUWX3TW.js.map} +0 -0
  60. /package/{chunk-64IW3URY.js.map → chunk-RNGEJBP2.js.map} +0 -0
  61. /package/{chunk-26HAGVMF.js.map → chunk-SSQSKO3U.js.map} +0 -0
  62. /package/{chunk-W4AAAM2I.js.map → chunk-ZJOHVGBX.js.map} +0 -0
  63. /package/{chunk-RTJRFBZ4.js.map → chunk-ZWYDJ3AZ.js.map} +0 -0
  64. /package/{computer-use-PHPLG6PO.js.map → computer-use-GESXXHFG.js.map} +0 -0
  65. /package/{connector-37AVV3HQ.js.map → connector-SDQMMKIT.js.map} +0 -0
  66. /package/{credit-IOSI7BHB.js.map → credit-JTKH4UMZ.js.map} +0 -0
  67. /package/{developer-support-CVZDCWUJ.js.map → developer-support-2JW3QPDC.js.map} +0 -0
  68. /package/{doctor-2NROVNEM.js.map → doctor-VPBYKX77.js.map} +0 -0
  69. /package/{generate-NA2R3CE4.js.map → generate-F7ZPK6IV.js.map} +0 -0
  70. /package/{github-U7ICR34Q.js.map → github-GDPM257C.js.map} +0 -0
  71. /package/{goal-LVH3SPUN.js.map → goal-M2AYUQJ4.js.map} +0 -0
  72. /package/{host-NFZIDNFL.js.map → host-OJR3FPYM.js.map} +0 -0
  73. /package/{logs-EANNRUOI.js.map → logs-H5JYXHA6.js.map} +0 -0
  74. /package/{maps-CWNOZN4X.js.map → maps-PLCIA2DA.js.map} +0 -0
  75. /package/{memory-2W5HCDIM.js.map → memory-EJSR4TVG.js.map} +0 -0
  76. /package/{model-7QO2KBZU.js.map → model-5YKXB5ND.js.map} +0 -0
  77. /package/{model-provider-HFNCG657.js.map → model-provider-4EUN45KQ.js.map} +0 -0
  78. /package/{org-TTJVCI6O.js.map → org-NY3ZQYMJ.js.map} +0 -0
  79. /package/{phone-R6ZBFTQQ.js.map → phone-LJFIA4YV.js.map} +0 -0
  80. /package/{preference-JACH7UCD.js.map → preference-H4WF5NXY.js.map} +0 -0
  81. /package/{relationship-D4RXZL2F.js.map → relationship-2OHALC26.js.map} +0 -0
  82. /package/{resource-53GNP4BE.js.map → resource-2DLQU6OU.js.map} +0 -0
  83. /package/{search-CSNF5OZC.js.map → search-BDC7KHXU.js.map} +0 -0
  84. /package/{secret-M5GRCTGE.js.map → secret-DYZ2K6QX.js.map} +0 -0
  85. /package/{slack-QBSJ5CLK.js.map → slack-DRX6JAGE.js.map} +0 -0
  86. /package/{telegram-2P2ZZYU4.js.map → telegram-XNU3XVPW.js.map} +0 -0
  87. /package/{variable-JM7W3UQJ.js.map → variable-J5FV4HHC.js.map} +0 -0
  88. /package/{video-HONK7KHI.js.map → video-HSB2R7TK.js.map} +0 -0
  89. /package/{web-3NQFBVFX.js.map → web-MRZE6CNW.js.map} +0 -0
  90. /package/{whoami-WYOS2RAK.js.map → whoami-5SM2Z5BX.js.map} +0 -0
  91. /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-COXWIO7D.js";
10
+ } from "./chunk-G55J25QR.js";
11
11
  import {
12
12
  withErrorHandler
13
- } from "./chunk-MGWKM7UC.js";
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-QBSJ5CLK.js.map
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-COXWIO7D.js";
11
+ } from "./chunk-G55J25QR.js";
12
12
  import {
13
13
  withErrorHandler
14
- } from "./chunk-MGWKM7UC.js";
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-2P2ZZYU4.js.map
338
+ //# sourceMappingURL=telegram-XNU3XVPW.js.map
@@ -10,10 +10,10 @@ import {
10
10
  deleteZeroVariable,
11
11
  listZeroVariables,
12
12
  setZeroVariable
13
- } from "./chunk-COXWIO7D.js";
13
+ } from "./chunk-G55J25QR.js";
14
14
  import {
15
15
  withErrorHandler
16
- } from "./chunk-MGWKM7UC.js";
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-JM7W3UQJ.js.map
120
+ //# sourceMappingURL=variable-J5FV4HHC.js.map
@@ -6,7 +6,7 @@ import {
6
6
  downloadWebFile,
7
7
  transcribeAudio,
8
8
  withErrorHandler
9
- } from "./chunk-MGWKM7UC.js";
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-HONK7KHI.js.map
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-COXWIO7D.js";
5
+ import "./chunk-G55J25QR.js";
6
6
  import {
7
7
  downloadWebFile,
8
8
  uploadWebFile,
9
9
  withErrorHandler
10
- } from "./chunk-MGWKM7UC.js";
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-3NQFBVFX.js.map
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-W4AAAM2I.js";
7
+ } from "./chunk-ZJOHVGBX.js";
8
8
  import {
9
9
  permissionGrantsToFirewallPolicies
10
- } from "./chunk-VM5QYVD6.js";
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-COXWIO7D.js";
16
+ } from "./chunk-G55J25QR.js";
17
17
  import {
18
18
  getActiveOrg,
19
19
  getApiUrl,
20
20
  getToken,
21
21
  withErrorHandler
22
- } from "./chunk-MGWKM7UC.js";
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-WYOS2RAK.js.map
195
+ //# sourceMappingURL=whoami-5SM2Z5BX.js.map
@@ -20,10 +20,10 @@ import {
20
20
  listWorkflows,
21
21
  updateWorkflow,
22
22
  updateWorkflowTrigger
23
- } from "./chunk-COXWIO7D.js";
23
+ } from "./chunk-G55J25QR.js";
24
24
  import {
25
25
  withErrorHandler
26
- } from "./chunk-MGWKM7UC.js";
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-AYPDFQOY.js.map
1756
+ //# sourceMappingURL=workflow-6ZJZKTJ5.js.map