@vm0/cli 9.260.0 → 9.260.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-CVBI2U7K.js → agent-OKECNBTT.js} +7 -7
- package/{banking-ZFXLS34X.js → banking-LFBBKVW3.js} +5 -5
- package/{browser-AXMVZEXD.js → browser-4UDUMO4E.js} +5 -5
- package/{chat-WY4VMGHJ.js → chat-QDX76VKQ.js} +6 -6
- package/{chunk-BY7YDOHH.js → chunk-24WPP3D2.js} +2 -2
- package/{chunk-2KSQ243U.js → chunk-4FG63PKD.js} +2 -2
- package/{chunk-GXTHF4DD.js → chunk-AG76QAC3.js} +2 -2
- package/{chunk-6AE53QDK.js → chunk-HXKIQDJI.js} +35 -8
- package/chunk-HXKIQDJI.js.map +1 -0
- package/{chunk-QHOV3CNA.js → chunk-I4VCZWOS.js} +2 -2
- package/{chunk-ATTDFHLS.js → chunk-LJ5ON5RL.js} +2 -2
- package/{chunk-PU2AEGBG.js → chunk-PDM45336.js} +4 -4
- package/{chunk-CVQKOA2N.js → chunk-Q7HE2GL3.js} +2 -2
- package/chunk-QH4JBUUQ.js +33 -0
- package/chunk-QH4JBUUQ.js.map +1 -0
- package/{chunk-FEHGYJGF.js → chunk-XLD34HM7.js} +10 -4
- package/chunk-XLD34HM7.js.map +1 -0
- package/{chunk-6GBUMHRL.js → chunk-YS47HRHU.js} +11 -62
- package/chunk-YS47HRHU.js.map +1 -0
- package/{chunk-Q2CWPFH2.js → chunk-YTDZVDR5.js} +7 -15
- package/{chunk-Q2CWPFH2.js.map → chunk-YTDZVDR5.js.map} +1 -1
- package/{computer-use-MCREZICH.js → computer-use-IYQMPZ6Z.js} +5 -5
- package/{connector-2RUHAPEE.js → connector-756JP6YH.js} +8 -8
- package/{credit-FPR2NEB3.js → credit-TRHARC56.js} +7 -7
- package/{developer-support-EFOM6KEK.js → developer-support-6N3L37QV.js} +5 -5
- package/{doctor-HD2RWNKF.js → doctor-SYBB76KN.js} +7 -7
- package/{feishu-I4GHDZSV.js → feishu-SPKJAQ4F.js} +5 -5
- package/{finance-ROLQNDWR.js → finance-MNQZHPLG.js} +5 -5
- package/{generate-IHAISPWK.js → generate-NH322XK7.js} +7 -7
- package/{github-INCPLLLD.js → github-VWLTA25N.js} +5 -5
- package/{goal-OIUF5OU6.js → goal-BN5LKSTE.js} +5 -5
- package/{host-ACRWIKMU.js → host-N6YDZZ7R.js} +5 -5
- package/{logs-V55QDVRJ.js → logs-OD5TWOMM.js} +7 -6
- package/{logs-V55QDVRJ.js.map → logs-OD5TWOMM.js.map} +1 -1
- package/{mail-WIQI2V2P.js → mail-7PNAUC3X.js} +7 -7
- package/{maps-OJXQAQJQ.js → maps-Y73QZLVB.js} +5 -5
- package/{model-TRG2R6CJ.js → model-CAE7SDRE.js} +6 -6
- package/{model-provider-P7HOAOQE.js → model-provider-LETXPLPC.js} +6 -6
- package/{org-BJLSSFI3.js → org-KEFUCQLB.js} +5 -5
- package/package.json +1 -1
- package/{people-search-YZXTOACF.js → people-search-FR42MOHJ.js} +5 -5
- package/{phone-5R5HAAPC.js → phone-RNO6FX7L.js} +5 -5
- package/{preference-VM3LUPGB.js → preference-XFQMPX36.js} +5 -5
- package/{resource-TEJLALGA.js → resource-MHQNW43J.js} +5 -5
- package/{scrape-QJCYFJ6O.js → scrape-Q3IVZXJ6.js} +5 -5
- package/{search-AN3BTQHS.js → search-MXVMYLCD.js} +7 -6
- package/{search-AN3BTQHS.js.map → search-MXVMYLCD.js.map} +1 -1
- package/{secret-CSQKYWNT.js → secret-3CJW5A6C.js} +5 -5
- package/{slack-REQK25VI.js → slack-T7VRXIFK.js} +5 -5
- package/{teams-BY7GNQCM.js → teams-DUKL2BRE.js} +5 -5
- package/{telegram-XDNTH57U.js → telegram-YOLLQJAD.js} +5 -5
- package/{upgrade-MTLB67AH.js → upgrade-K4BWE4WZ.js} +4 -4
- package/{variable-SAXYXBYY.js → variable-DA2WFE4T.js} +5 -5
- package/{video-QFZADY5X.js → video-PQE2UQXE.js} +4 -4
- package/{weather-IWLSOMUW.js → weather-ONJBEMN6.js} +5 -5
- package/{web-HTHISWVB.js → web-L6OZ6YCP.js} +5 -5
- package/{web-search-RPWD3LYT.js → web-search-OJ56H7SN.js} +5 -5
- package/{whoami-HSB4GG2H.js → whoami-OVUZ6SOF.js} +7 -7
- package/{workflow-QW2MUFXN.js → workflow-HUZUCICV.js} +8 -6
- package/workflow-HUZUCICV.js.map +1 -0
- package/zero.js +46 -45
- package/zero.js.map +1 -1
- package/chunk-6AE53QDK.js.map +0 -1
- package/chunk-6GBUMHRL.js.map +0 -1
- package/chunk-FEHGYJGF.js.map +0 -1
- package/workflow-QW2MUFXN.js.map +0 -1
- /package/{agent-CVBI2U7K.js.map → agent-OKECNBTT.js.map} +0 -0
- /package/{banking-ZFXLS34X.js.map → banking-LFBBKVW3.js.map} +0 -0
- /package/{browser-AXMVZEXD.js.map → browser-4UDUMO4E.js.map} +0 -0
- /package/{chat-WY4VMGHJ.js.map → chat-QDX76VKQ.js.map} +0 -0
- /package/{chunk-BY7YDOHH.js.map → chunk-24WPP3D2.js.map} +0 -0
- /package/{chunk-2KSQ243U.js.map → chunk-4FG63PKD.js.map} +0 -0
- /package/{chunk-GXTHF4DD.js.map → chunk-AG76QAC3.js.map} +0 -0
- /package/{chunk-QHOV3CNA.js.map → chunk-I4VCZWOS.js.map} +0 -0
- /package/{chunk-ATTDFHLS.js.map → chunk-LJ5ON5RL.js.map} +0 -0
- /package/{chunk-PU2AEGBG.js.map → chunk-PDM45336.js.map} +0 -0
- /package/{chunk-CVQKOA2N.js.map → chunk-Q7HE2GL3.js.map} +0 -0
- /package/{computer-use-MCREZICH.js.map → computer-use-IYQMPZ6Z.js.map} +0 -0
- /package/{connector-2RUHAPEE.js.map → connector-756JP6YH.js.map} +0 -0
- /package/{credit-FPR2NEB3.js.map → credit-TRHARC56.js.map} +0 -0
- /package/{developer-support-EFOM6KEK.js.map → developer-support-6N3L37QV.js.map} +0 -0
- /package/{doctor-HD2RWNKF.js.map → doctor-SYBB76KN.js.map} +0 -0
- /package/{feishu-I4GHDZSV.js.map → feishu-SPKJAQ4F.js.map} +0 -0
- /package/{finance-ROLQNDWR.js.map → finance-MNQZHPLG.js.map} +0 -0
- /package/{generate-IHAISPWK.js.map → generate-NH322XK7.js.map} +0 -0
- /package/{github-INCPLLLD.js.map → github-VWLTA25N.js.map} +0 -0
- /package/{goal-OIUF5OU6.js.map → goal-BN5LKSTE.js.map} +0 -0
- /package/{host-ACRWIKMU.js.map → host-N6YDZZ7R.js.map} +0 -0
- /package/{mail-WIQI2V2P.js.map → mail-7PNAUC3X.js.map} +0 -0
- /package/{maps-OJXQAQJQ.js.map → maps-Y73QZLVB.js.map} +0 -0
- /package/{model-TRG2R6CJ.js.map → model-CAE7SDRE.js.map} +0 -0
- /package/{model-provider-P7HOAOQE.js.map → model-provider-LETXPLPC.js.map} +0 -0
- /package/{org-BJLSSFI3.js.map → org-KEFUCQLB.js.map} +0 -0
- /package/{people-search-YZXTOACF.js.map → people-search-FR42MOHJ.js.map} +0 -0
- /package/{phone-5R5HAAPC.js.map → phone-RNO6FX7L.js.map} +0 -0
- /package/{preference-VM3LUPGB.js.map → preference-XFQMPX36.js.map} +0 -0
- /package/{resource-TEJLALGA.js.map → resource-MHQNW43J.js.map} +0 -0
- /package/{scrape-QJCYFJ6O.js.map → scrape-Q3IVZXJ6.js.map} +0 -0
- /package/{secret-CSQKYWNT.js.map → secret-3CJW5A6C.js.map} +0 -0
- /package/{slack-REQK25VI.js.map → slack-T7VRXIFK.js.map} +0 -0
- /package/{teams-BY7GNQCM.js.map → teams-DUKL2BRE.js.map} +0 -0
- /package/{telegram-XDNTH57U.js.map → telegram-YOLLQJAD.js.map} +0 -0
- /package/{upgrade-MTLB67AH.js.map → upgrade-K4BWE4WZ.js.map} +0 -0
- /package/{variable-SAXYXBYY.js.map → variable-DA2WFE4T.js.map} +0 -0
- /package/{video-QFZADY5X.js.map → video-PQE2UQXE.js.map} +0 -0
- /package/{weather-IWLSOMUW.js.map → weather-ONJBEMN6.js.map} +0 -0
- /package/{web-HTHISWVB.js.map → web-L6OZ6YCP.js.map} +0 -0
- /package/{web-search-RPWD3LYT.js.map → web-search-OJ56H7SN.js.map} +0 -0
- /package/{whoami-HSB4GG2H.js.map → whoami-OVUZ6SOF.js.map} +0 -0
package/zero.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from "node:module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
|
-
decodeZeroTokenPayload,
|
|
6
5
|
isFeatureEnabled
|
|
7
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YS47HRHU.js";
|
|
7
|
+
import {
|
|
8
|
+
decodeZeroTokenPayload
|
|
9
|
+
} from "./chunk-QH4JBUUQ.js";
|
|
8
10
|
import {
|
|
9
11
|
Command
|
|
10
12
|
} from "./chunk-LD4ZVU4O.js";
|
|
@@ -60,7 +62,7 @@ if (DSN) {
|
|
|
60
62
|
Sentry.init({
|
|
61
63
|
dsn: DSN,
|
|
62
64
|
environment: process.env.SENTRY_ENVIRONMENT ?? "production",
|
|
63
|
-
release: "9.260.
|
|
65
|
+
release: "9.260.1",
|
|
64
66
|
sendDefaultPii: false,
|
|
65
67
|
tracesSampleRate: 0,
|
|
66
68
|
shutdownTimeout: 500,
|
|
@@ -79,7 +81,7 @@ if (DSN) {
|
|
|
79
81
|
}
|
|
80
82
|
});
|
|
81
83
|
Sentry.setContext("cli", {
|
|
82
|
-
version: "9.260.
|
|
84
|
+
version: "9.260.1",
|
|
83
85
|
command: process.argv.slice(2).join(" ")
|
|
84
86
|
});
|
|
85
87
|
Sentry.setContext("runtime", {
|
|
@@ -193,7 +195,6 @@ var COMMAND_CAPABILITY_MAP = {
|
|
|
193
195
|
banking: "banking:read"
|
|
194
196
|
};
|
|
195
197
|
var COMMAND_FEATURE_SWITCH_MAP = {
|
|
196
|
-
upgrade: "planUpgradeGuidance" /* PlanUpgradeGuidance */,
|
|
197
198
|
browser: "zeroBrowser" /* ZeroBrowser */
|
|
198
199
|
};
|
|
199
200
|
var ZERO_COMMAND_DEFINITIONS = [
|
|
@@ -201,161 +202,161 @@ var ZERO_COMMAND_DEFINITIONS = [
|
|
|
201
202
|
name: "org",
|
|
202
203
|
description: "Manage organization settings, members, and providers",
|
|
203
204
|
load: async () => {
|
|
204
|
-
return (await import("./org-
|
|
205
|
+
return (await import("./org-KEFUCQLB.js")).zeroOrgCommand;
|
|
205
206
|
}
|
|
206
207
|
},
|
|
207
208
|
{
|
|
208
209
|
name: "model",
|
|
209
210
|
description: "List available models and model-switching guidance",
|
|
210
211
|
load: async () => {
|
|
211
|
-
return (await import("./model-
|
|
212
|
+
return (await import("./model-CAE7SDRE.js")).zeroModelCommand;
|
|
212
213
|
}
|
|
213
214
|
},
|
|
214
215
|
{
|
|
215
216
|
name: "model-provider",
|
|
216
217
|
description: "Inspect model provider routing",
|
|
217
218
|
load: async () => {
|
|
218
|
-
return (await import("./model-provider-
|
|
219
|
+
return (await import("./model-provider-LETXPLPC.js")).zeroModelProviderCommand;
|
|
219
220
|
}
|
|
220
221
|
},
|
|
221
222
|
{
|
|
222
223
|
name: "agent",
|
|
223
224
|
description: "View or manage zero agents",
|
|
224
225
|
load: async () => {
|
|
225
|
-
return (await import("./agent-
|
|
226
|
+
return (await import("./agent-OKECNBTT.js")).zeroAgentCommand;
|
|
226
227
|
}
|
|
227
228
|
},
|
|
228
229
|
{
|
|
229
230
|
name: "connector",
|
|
230
231
|
description: "Check third-party service connections (GitHub, Slack, etc.)",
|
|
231
232
|
load: async () => {
|
|
232
|
-
return (await import("./connector-
|
|
233
|
+
return (await import("./connector-756JP6YH.js")).zeroConnectorCommand;
|
|
233
234
|
}
|
|
234
235
|
},
|
|
235
236
|
{
|
|
236
237
|
name: "mail",
|
|
237
238
|
description: "Review and send mail through Gmail or Outlook Mail",
|
|
238
239
|
load: async () => {
|
|
239
|
-
return (await import("./mail-
|
|
240
|
+
return (await import("./mail-7PNAUC3X.js")).zeroMailCommand;
|
|
240
241
|
}
|
|
241
242
|
},
|
|
242
243
|
{
|
|
243
244
|
name: "credit",
|
|
244
245
|
description: "View or buy credits",
|
|
245
246
|
load: async () => {
|
|
246
|
-
return (await import("./credit-
|
|
247
|
+
return (await import("./credit-TRHARC56.js")).zeroCreditCommand;
|
|
247
248
|
}
|
|
248
249
|
},
|
|
249
250
|
{
|
|
250
251
|
name: "upgrade",
|
|
251
252
|
description: "Create a workspace plan upgrade link",
|
|
252
253
|
load: async () => {
|
|
253
|
-
return (await import("./upgrade-
|
|
254
|
+
return (await import("./upgrade-K4BWE4WZ.js")).zeroUpgradeCommand;
|
|
254
255
|
}
|
|
255
256
|
},
|
|
256
257
|
{
|
|
257
258
|
name: "doctor",
|
|
258
259
|
description: "Diagnose runtime issues (connector health, permission denials)",
|
|
259
260
|
load: async () => {
|
|
260
|
-
return (await import("./doctor-
|
|
261
|
+
return (await import("./doctor-SYBB76KN.js")).zeroDoctorCommand;
|
|
261
262
|
}
|
|
262
263
|
},
|
|
263
264
|
{
|
|
264
265
|
name: "preference",
|
|
265
266
|
description: "View or update user preferences (timezone, notifications)",
|
|
266
267
|
load: async () => {
|
|
267
|
-
return (await import("./preference-
|
|
268
|
+
return (await import("./preference-XFQMPX36.js")).zeroPreferenceCommand;
|
|
268
269
|
}
|
|
269
270
|
},
|
|
270
271
|
{
|
|
271
272
|
name: "secret",
|
|
272
273
|
description: "Read or write secrets (API keys, tokens)",
|
|
273
274
|
load: async () => {
|
|
274
|
-
return (await import("./secret-
|
|
275
|
+
return (await import("./secret-3CJW5A6C.js")).zeroSecretCommand;
|
|
275
276
|
}
|
|
276
277
|
},
|
|
277
278
|
{
|
|
278
279
|
name: "github",
|
|
279
280
|
description: "Upload and download GitHub files",
|
|
280
281
|
load: async () => {
|
|
281
|
-
return (await import("./github-
|
|
282
|
+
return (await import("./github-VWLTA25N.js")).zeroGithubCommand;
|
|
282
283
|
}
|
|
283
284
|
},
|
|
284
285
|
{
|
|
285
286
|
name: "slack",
|
|
286
287
|
description: "Send messages, upload files, and download files from Slack as the bot",
|
|
287
288
|
load: async () => {
|
|
288
|
-
return (await import("./slack-
|
|
289
|
+
return (await import("./slack-T7VRXIFK.js")).zeroSlackCommand;
|
|
289
290
|
}
|
|
290
291
|
},
|
|
291
292
|
{
|
|
292
293
|
name: "feishu",
|
|
293
294
|
description: "Send messages to Feishu as an organization bot",
|
|
294
295
|
load: async () => {
|
|
295
|
-
return (await import("./feishu-
|
|
296
|
+
return (await import("./feishu-SPKJAQ4F.js")).zeroFeishuCommand;
|
|
296
297
|
}
|
|
297
298
|
},
|
|
298
299
|
{
|
|
299
300
|
name: "teams",
|
|
300
301
|
description: "Send Microsoft Teams messages, upload files, and download files",
|
|
301
302
|
load: async () => {
|
|
302
|
-
return (await import("./teams-
|
|
303
|
+
return (await import("./teams-DUKL2BRE.js")).zeroTeamsCommand;
|
|
303
304
|
}
|
|
304
305
|
},
|
|
305
306
|
{
|
|
306
307
|
name: "telegram",
|
|
307
308
|
description: "Inspect bots, send messages, upload files, and download files from Telegram",
|
|
308
309
|
load: async () => {
|
|
309
|
-
return (await import("./telegram-
|
|
310
|
+
return (await import("./telegram-YOLLQJAD.js")).zeroTelegramCommand;
|
|
310
311
|
}
|
|
311
312
|
},
|
|
312
313
|
{
|
|
313
314
|
name: "phone",
|
|
314
315
|
description: "Send AgentPhone messages, upload files, and download media",
|
|
315
316
|
load: async () => {
|
|
316
|
-
return (await import("./phone-
|
|
317
|
+
return (await import("./phone-RNO6FX7L.js")).zeroPhoneCommand;
|
|
317
318
|
}
|
|
318
319
|
},
|
|
319
320
|
{
|
|
320
321
|
name: "variable",
|
|
321
322
|
description: "Read or write non-sensitive configuration values",
|
|
322
323
|
load: async () => {
|
|
323
|
-
return (await import("./variable-
|
|
324
|
+
return (await import("./variable-DA2WFE4T.js")).zeroVariableCommand;
|
|
324
325
|
}
|
|
325
326
|
},
|
|
326
327
|
{
|
|
327
328
|
name: "logs",
|
|
328
329
|
description: "View and search agent run logs",
|
|
329
330
|
load: async () => {
|
|
330
|
-
return (await import("./logs-
|
|
331
|
+
return (await import("./logs-OD5TWOMM.js")).zeroLogsCommand;
|
|
331
332
|
}
|
|
332
333
|
},
|
|
333
334
|
{
|
|
334
335
|
name: "search",
|
|
335
336
|
description: "Search logs, chat, or get a recipe for external sources",
|
|
336
337
|
load: async () => {
|
|
337
|
-
return (await import("./search-
|
|
338
|
+
return (await import("./search-MXVMYLCD.js")).zeroSearchCommand;
|
|
338
339
|
}
|
|
339
340
|
},
|
|
340
341
|
{
|
|
341
342
|
name: "chat",
|
|
342
343
|
description: "Manage the current web chat thread",
|
|
343
344
|
load: async () => {
|
|
344
|
-
return (await import("./chat-
|
|
345
|
+
return (await import("./chat-QDX76VKQ.js")).zeroChatCommand;
|
|
345
346
|
}
|
|
346
347
|
},
|
|
347
348
|
{
|
|
348
349
|
name: "resource",
|
|
349
350
|
description: "Pull registry resources from private R2-backed archives",
|
|
350
351
|
load: async () => {
|
|
351
|
-
return (await import("./resource-
|
|
352
|
+
return (await import("./resource-MHQNW43J.js")).zeroResourceCommand;
|
|
352
353
|
}
|
|
353
354
|
},
|
|
354
355
|
{
|
|
355
356
|
name: "whoami",
|
|
356
357
|
description: "Show agent identity, run ID, and capabilities",
|
|
357
358
|
load: async () => {
|
|
358
|
-
return (await import("./whoami-
|
|
359
|
+
return (await import("./whoami-OVUZ6SOF.js")).zeroWhoamiCommand;
|
|
359
360
|
}
|
|
360
361
|
},
|
|
361
362
|
{
|
|
@@ -369,112 +370,112 @@ var ZERO_COMMAND_DEFINITIONS = [
|
|
|
369
370
|
name: "workflow",
|
|
370
371
|
description: "Manage workflows",
|
|
371
372
|
load: async () => {
|
|
372
|
-
return (await import("./workflow-
|
|
373
|
+
return (await import("./workflow-HUZUCICV.js")).zeroWorkflowCommand;
|
|
373
374
|
}
|
|
374
375
|
},
|
|
375
376
|
{
|
|
376
377
|
name: "goal",
|
|
377
378
|
description: "Manage the current thread goal",
|
|
378
379
|
load: async () => {
|
|
379
|
-
return (await import("./goal-
|
|
380
|
+
return (await import("./goal-BN5LKSTE.js")).zeroGoalCommand;
|
|
380
381
|
}
|
|
381
382
|
},
|
|
382
383
|
{
|
|
383
384
|
name: "developer-support",
|
|
384
385
|
description: "Submit a diagnostic report to the dev team",
|
|
385
386
|
load: async () => {
|
|
386
|
-
return (await import("./developer-support-
|
|
387
|
+
return (await import("./developer-support-6N3L37QV.js")).zeroDeveloperSupportCommand;
|
|
387
388
|
}
|
|
388
389
|
},
|
|
389
390
|
{
|
|
390
391
|
name: "computer-use",
|
|
391
392
|
description: "Desktop app computer use through Zero CLI",
|
|
392
393
|
load: async () => {
|
|
393
|
-
return (await import("./computer-use-
|
|
394
|
+
return (await import("./computer-use-IYQMPZ6Z.js")).zeroComputerUseCommand;
|
|
394
395
|
}
|
|
395
396
|
},
|
|
396
397
|
{
|
|
397
398
|
name: "browser",
|
|
398
399
|
description: "Managed remote browser sessions for agent-browser",
|
|
399
400
|
load: async () => {
|
|
400
|
-
return (await import("./browser-
|
|
401
|
+
return (await import("./browser-4UDUMO4E.js")).zeroBrowserCommand;
|
|
401
402
|
}
|
|
402
403
|
},
|
|
403
404
|
{
|
|
404
405
|
name: "generate",
|
|
405
406
|
description: "Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance",
|
|
406
407
|
load: async () => {
|
|
407
|
-
return (await import("./generate-
|
|
408
|
+
return (await import("./generate-NH322XK7.js")).generateCommand;
|
|
408
409
|
}
|
|
409
410
|
},
|
|
410
411
|
{
|
|
411
412
|
name: "web",
|
|
412
413
|
description: "Upload and download files via the web chat endpoint",
|
|
413
414
|
load: async () => {
|
|
414
|
-
return (await import("./web-
|
|
415
|
+
return (await import("./web-L6OZ6YCP.js")).zeroWebCommand;
|
|
415
416
|
}
|
|
416
417
|
},
|
|
417
418
|
{
|
|
418
419
|
name: "video",
|
|
419
420
|
description: "Video processing utilities",
|
|
420
421
|
load: async () => {
|
|
421
|
-
return (await import("./video-
|
|
422
|
+
return (await import("./video-PQE2UQXE.js")).zeroVideoCommand;
|
|
422
423
|
}
|
|
423
424
|
},
|
|
424
425
|
{
|
|
425
426
|
name: "host",
|
|
426
427
|
description: "Publish static sites and clone owned hosted site files",
|
|
427
428
|
load: async () => {
|
|
428
|
-
return (await import("./host-
|
|
429
|
+
return (await import("./host-N6YDZZ7R.js")).zeroHostCommand;
|
|
429
430
|
}
|
|
430
431
|
},
|
|
431
432
|
{
|
|
432
433
|
name: "maps",
|
|
433
434
|
description: "Use managed zero maps services",
|
|
434
435
|
load: async () => {
|
|
435
|
-
return (await import("./maps-
|
|
436
|
+
return (await import("./maps-Y73QZLVB.js")).zeroMapsCommand;
|
|
436
437
|
}
|
|
437
438
|
},
|
|
438
439
|
{
|
|
439
440
|
name: "weather",
|
|
440
441
|
description: "Use managed Zero weather services",
|
|
441
442
|
load: async () => {
|
|
442
|
-
return (await import("./weather-
|
|
443
|
+
return (await import("./weather-ONJBEMN6.js")).zeroWeatherCommand;
|
|
443
444
|
}
|
|
444
445
|
},
|
|
445
446
|
{
|
|
446
447
|
name: "scrape",
|
|
447
448
|
description: "Scrape public web pages through managed zero scrape",
|
|
448
449
|
load: async () => {
|
|
449
|
-
return (await import("./scrape-
|
|
450
|
+
return (await import("./scrape-Q3IVZXJ6.js")).zeroScrapeCommand;
|
|
450
451
|
}
|
|
451
452
|
},
|
|
452
453
|
{
|
|
453
454
|
name: "people-search",
|
|
454
455
|
description: "Find professionals through managed zero people search",
|
|
455
456
|
load: async () => {
|
|
456
|
-
return (await import("./people-search-
|
|
457
|
+
return (await import("./people-search-FR42MOHJ.js")).zeroPeopleSearchCommand;
|
|
457
458
|
}
|
|
458
459
|
},
|
|
459
460
|
{
|
|
460
461
|
name: "web-search",
|
|
461
462
|
description: "Search the public web through managed zero web search",
|
|
462
463
|
load: async () => {
|
|
463
|
-
return (await import("./web-search-
|
|
464
|
+
return (await import("./web-search-OJ56H7SN.js")).zeroWebSearchCommand;
|
|
464
465
|
}
|
|
465
466
|
},
|
|
466
467
|
{
|
|
467
468
|
name: "finance",
|
|
468
469
|
description: "Query financial instruments through managed zero finance",
|
|
469
470
|
load: async () => {
|
|
470
|
-
return (await import("./finance-
|
|
471
|
+
return (await import("./finance-MNQZHPLG.js")).zeroFinanceCommand;
|
|
471
472
|
}
|
|
472
473
|
},
|
|
473
474
|
{
|
|
474
475
|
name: "banking",
|
|
475
476
|
description: "Use managed zero banking services",
|
|
476
477
|
load: async () => {
|
|
477
|
-
return (await import("./banking-
|
|
478
|
+
return (await import("./banking-LFBBKVW3.js")).zeroBankingCommand;
|
|
478
479
|
}
|
|
479
480
|
}
|
|
480
481
|
];
|
|
@@ -665,7 +666,7 @@ function registerZeroCommands(prog, commands, featureSwitchOverrides) {
|
|
|
665
666
|
var program = new Command();
|
|
666
667
|
program.name("zero").description(
|
|
667
668
|
"Zero CLI \u2014 interact with the zero platform from inside the sandbox"
|
|
668
|
-
).version("9.260.
|
|
669
|
+
).version("9.260.1").addHelpText("after", () => {
|
|
669
670
|
return buildZeroHelpText();
|
|
670
671
|
});
|
|
671
672
|
if (process.argv[1]?.endsWith("zero.js") || process.argv[1]?.endsWith("zero.ts") || process.argv[1]?.endsWith("zero")) {
|
package/zero.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/zero.ts","../src/instrument.ts","../src/lib/network/proxy.ts"],"sourcesContent":["// Zero CLI entry point - standalone binary for zero platform commands\n// Sentry must be initialized before any other imports\nimport \"./instrument.js\";\nimport { Command } from \"commander\";\nimport { FeatureSwitchKey } from \"@vm0/connectors/feature-switch-key\";\nimport { isFeatureEnabled } from \"@vm0/core/feature-switch\";\nimport { configureGlobalProxyFromEnv } from \"./lib/network/proxy.js\";\nimport {\n decodeZeroTokenPayload,\n type ZeroTokenPayload,\n} from \"./lib/api/zero-token.js\";\n\ninterface ZeroCommandDefinition {\n name: string;\n description: string;\n load: () => Promise<Command>;\n}\n\n/**\n * Map of command names to the capability required to see them.\n * Commands not in this map are hidden when ZERO_TOKEN is active.\n * Use an array when a top-level command has subcommands with different\n * capability gates and any one of them should make the command visible.\n * Use `null` for commands that should always be visible in sandbox.\n */\nconst COMMAND_CAPABILITY_MAP: Record<\n string,\n string | readonly string[] | null\n> = {\n agent: \"agent:read\",\n workflow: \"agent:read\",\n goal: [\"goal:read\", \"goal:agent-result:write\", \"goal:user-control:write\"],\n connector: \"connector:read\",\n mail: \"connector:read\",\n doctor: null,\n credit: [\"billing:read\", \"billing:write\"],\n upgrade: null,\n model: null,\n \"model-provider\": null,\n logs: \"agent-run:read\",\n search: \"chat-message:read\",\n chat: [\"chat-thread:read\", \"chat-thread:write\"],\n resource: null,\n github: [\"github:read\", \"github:write\"],\n slack: \"slack:write\",\n feishu: \"feishu:write\",\n teams: \"teams:write\",\n telegram: [\"telegram:read\", \"telegram:write\"],\n phone: [\"phone:read\", \"phone:write\"],\n whoami: null,\n \"developer-support\": null,\n \"computer-use\": \"computer-use:write\",\n browser: [\"browser:read\", \"browser:write\"],\n intro: null,\n generate: null,\n web: null,\n video: null,\n host: [\"host:read\", \"host:write\"],\n maps: \"maps:read\",\n weather: \"weather:read\",\n scrape: \"scrape:read\",\n \"people-search\": \"people-search:read\",\n \"web-search\": \"web-search:read\",\n finance: \"finance:read\",\n banking: \"banking:read\",\n};\n\nconst COMMAND_FEATURE_SWITCH_MAP: Readonly<\n Partial<Record<string, FeatureSwitchKey>>\n> = {\n upgrade: FeatureSwitchKey.PlanUpgradeGuidance,\n browser: FeatureSwitchKey.ZeroBrowser,\n};\n\ntype FeatureSwitchOverrides = Partial<Record<FeatureSwitchKey, boolean>>;\n\nconst ZERO_COMMAND_DEFINITIONS: readonly ZeroCommandDefinition[] = [\n {\n name: \"org\",\n description: \"Manage organization settings, members, and providers\",\n load: async () => {\n return (await import(\"./commands/zero/org\")).zeroOrgCommand;\n },\n },\n {\n name: \"model\",\n description: \"List available models and model-switching guidance\",\n load: async () => {\n return (await import(\"./commands/zero/model\")).zeroModelCommand;\n },\n },\n {\n name: \"model-provider\",\n description: \"Inspect model provider routing\",\n load: async () => {\n return (await import(\"./commands/zero/model-provider\"))\n .zeroModelProviderCommand;\n },\n },\n {\n name: \"agent\",\n description: \"View or manage zero agents\",\n load: async () => {\n return (await import(\"./commands/zero/agent\")).zeroAgentCommand;\n },\n },\n {\n name: \"connector\",\n description: \"Check third-party service connections (GitHub, Slack, etc.)\",\n load: async () => {\n return (await import(\"./commands/zero/connector\")).zeroConnectorCommand;\n },\n },\n {\n name: \"mail\",\n description: \"Review and send mail through Gmail or Outlook Mail\",\n load: async () => {\n return (await import(\"./commands/zero/mail\")).zeroMailCommand;\n },\n },\n {\n name: \"credit\",\n description: \"View or buy credits\",\n load: async () => {\n return (await import(\"./commands/zero/credit\")).zeroCreditCommand;\n },\n },\n {\n name: \"upgrade\",\n description: \"Create a workspace plan upgrade link\",\n load: async () => {\n return (await import(\"./commands/zero/upgrade\")).zeroUpgradeCommand;\n },\n },\n {\n name: \"doctor\",\n description:\n \"Diagnose runtime issues (connector health, permission denials)\",\n load: async () => {\n return (await import(\"./commands/zero/doctor\")).zeroDoctorCommand;\n },\n },\n {\n name: \"preference\",\n description: \"View or update user preferences (timezone, notifications)\",\n load: async () => {\n return (await import(\"./commands/zero/preference\")).zeroPreferenceCommand;\n },\n },\n {\n name: \"secret\",\n description: \"Read or write secrets (API keys, tokens)\",\n load: async () => {\n return (await import(\"./commands/zero/secret\")).zeroSecretCommand;\n },\n },\n {\n name: \"github\",\n description: \"Upload and download GitHub files\",\n load: async () => {\n return (await import(\"./commands/zero/github\")).zeroGithubCommand;\n },\n },\n {\n name: \"slack\",\n description:\n \"Send messages, upload files, and download files from Slack as the bot\",\n load: async () => {\n return (await import(\"./commands/zero/slack\")).zeroSlackCommand;\n },\n },\n {\n name: \"feishu\",\n description: \"Send messages to Feishu as an organization bot\",\n load: async () => {\n return (await import(\"./commands/zero/feishu\")).zeroFeishuCommand;\n },\n },\n {\n name: \"teams\",\n description:\n \"Send Microsoft Teams messages, upload files, and download files\",\n load: async () => {\n return (await import(\"./commands/zero/teams\")).zeroTeamsCommand;\n },\n },\n {\n name: \"telegram\",\n description:\n \"Inspect bots, send messages, upload files, and download files from Telegram\",\n load: async () => {\n return (await import(\"./commands/zero/telegram\")).zeroTelegramCommand;\n },\n },\n {\n name: \"phone\",\n description: \"Send AgentPhone messages, upload files, and download media\",\n load: async () => {\n return (await import(\"./commands/zero/phone\")).zeroPhoneCommand;\n },\n },\n {\n name: \"variable\",\n description: \"Read or write non-sensitive configuration values\",\n load: async () => {\n return (await import(\"./commands/zero/variable\")).zeroVariableCommand;\n },\n },\n {\n name: \"logs\",\n description: \"View and search agent run logs\",\n load: async () => {\n return (await import(\"./commands/zero/logs\")).zeroLogsCommand;\n },\n },\n {\n name: \"search\",\n description: \"Search logs, chat, or get a recipe for external sources\",\n load: async () => {\n return (await import(\"./commands/zero/search\")).zeroSearchCommand;\n },\n },\n {\n name: \"chat\",\n description: \"Manage the current web chat thread\",\n load: async () => {\n return (await import(\"./commands/zero/chat\")).zeroChatCommand;\n },\n },\n {\n name: \"resource\",\n description: \"Pull registry resources from private R2-backed archives\",\n load: async () => {\n return (await import(\"./commands/zero/resource\")).zeroResourceCommand;\n },\n },\n {\n name: \"whoami\",\n description: \"Show agent identity, run ID, and capabilities\",\n load: async () => {\n return (await import(\"./commands/zero/whoami\")).zeroWhoamiCommand;\n },\n },\n {\n name: \"intro\",\n description: \"Print Zero's self-introduction and capability guide\",\n load: async () => {\n return (await import(\"./commands/zero/intro\")).zeroIntroCommand;\n },\n },\n {\n name: \"workflow\",\n description: \"Manage workflows\",\n load: async () => {\n return (await import(\"./commands/zero/workflow\")).zeroWorkflowCommand;\n },\n },\n {\n name: \"goal\",\n description: \"Manage the current thread goal\",\n load: async () => {\n return (await import(\"./commands/zero/goal\")).zeroGoalCommand;\n },\n },\n {\n name: \"developer-support\",\n description: \"Submit a diagnostic report to the dev team\",\n load: async () => {\n return (await import(\"./commands/zero/developer-support\"))\n .zeroDeveloperSupportCommand;\n },\n },\n {\n name: \"computer-use\",\n description: \"Desktop app computer use through Zero CLI\",\n load: async () => {\n return (await import(\"./commands/zero/computer-use\"))\n .zeroComputerUseCommand;\n },\n },\n {\n name: \"browser\",\n description: \"Managed remote browser sessions for agent-browser\",\n load: async () => {\n return (await import(\"./commands/zero/browser\")).zeroBrowserCommand;\n },\n },\n {\n name: \"generate\",\n description:\n \"Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance\",\n load: async () => {\n return (await import(\"./commands/zero/generate\")).generateCommand;\n },\n },\n {\n name: \"web\",\n description: \"Upload and download files via the web chat endpoint\",\n load: async () => {\n return (await import(\"./commands/zero/web\")).zeroWebCommand;\n },\n },\n {\n name: \"video\",\n description: \"Video processing utilities\",\n load: async () => {\n return (await import(\"./commands/zero/video\")).zeroVideoCommand;\n },\n },\n {\n name: \"host\",\n description: \"Publish static sites and clone owned hosted site files\",\n load: async () => {\n return (await import(\"./commands/zero/host\")).zeroHostCommand;\n },\n },\n {\n name: \"maps\",\n description: \"Use managed zero maps services\",\n load: async () => {\n return (await import(\"./commands/zero/maps\")).zeroMapsCommand;\n },\n },\n {\n name: \"weather\",\n description: \"Use managed Zero weather services\",\n load: async () => {\n return (await import(\"./commands/zero/weather\")).zeroWeatherCommand;\n },\n },\n {\n name: \"scrape\",\n description: \"Scrape public web pages through managed zero scrape\",\n load: async () => {\n return (await import(\"./commands/zero/scrape\")).zeroScrapeCommand;\n },\n },\n {\n name: \"people-search\",\n description: \"Find professionals through managed zero people search\",\n load: async () => {\n return (await import(\"./commands/zero/people-search\"))\n .zeroPeopleSearchCommand;\n },\n },\n {\n name: \"web-search\",\n description: \"Search the public web through managed zero web search\",\n load: async () => {\n return (await import(\"./commands/zero/web-search\")).zeroWebSearchCommand;\n },\n },\n {\n name: \"finance\",\n description: \"Query financial instruments through managed zero finance\",\n load: async () => {\n return (await import(\"./commands/zero/finance\")).zeroFinanceCommand;\n },\n },\n {\n name: \"banking\",\n description: \"Use managed zero banking services\",\n load: async () => {\n return (await import(\"./commands/zero/banking\")).zeroBankingCommand;\n },\n },\n];\n\nconst ZERO_COMMAND_DEFINITION_BY_NAME = new Map(\n ZERO_COMMAND_DEFINITIONS.map((definition) => {\n return [definition.name, definition];\n }),\n);\n\nfunction createZeroCommandStub(definition: ZeroCommandDefinition): Command {\n return new Command(definition.name).description(definition.description);\n}\n\nfunction buildDefaultCommands(): Command[] {\n return ZERO_COMMAND_DEFINITIONS.map(createZeroCommandStub);\n}\n\nfunction shouldHideCommand(\n name: string,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): boolean {\n if (!isCommandFeatureEnabled(name, payload, featureSwitchOverrides)) {\n return true;\n }\n if (!payload) return false;\n const requiredCap = COMMAND_CAPABILITY_MAP[name];\n if (requiredCap === undefined) return true;\n if (requiredCap === null) return false;\n if (typeof requiredCap !== \"string\") {\n return !requiredCap.some((capability) => {\n return payload.capabilities.includes(capability);\n });\n }\n return !payload.capabilities.includes(requiredCap);\n}\n\nfunction isCommandFeatureEnabled(\n name: string,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): boolean {\n const featureSwitch = COMMAND_FEATURE_SWITCH_MAP[name];\n const overrides = featureSwitchOverrides ?? payload?.featureSwitchOverrides;\n return (\n !featureSwitch ||\n isFeatureEnabled(featureSwitch, {\n userId: payload?.userId,\n orgId: payload?.orgId,\n overrides,\n })\n );\n}\n\nfunction addZeroCommand(\n prog: Command,\n cmd: Command,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): void {\n const hidden = shouldHideCommand(cmd.name(), payload, featureSwitchOverrides);\n prog.addCommand(cmd, hidden ? { hidden: true } : {});\n}\n\nfunction getNonOptionArgs(argv: string[]): string[] {\n const args: string[] = [];\n\n for (const arg of argv.slice(2)) {\n if (arg === \"--\") {\n break;\n }\n if (arg.startsWith(\"-\")) {\n continue;\n }\n args.push(arg);\n }\n\n return args;\n}\n\nfunction getRequestedZeroCommandName(argv = process.argv): string | undefined {\n const [firstArg, secondArg] = getNonOptionArgs(argv);\n\n if (!firstArg) {\n return undefined;\n }\n\n if (firstArg === \"help\") {\n return secondArg;\n }\n\n return firstArg;\n}\n\nasync function loadZeroCommand(\n name: string | undefined,\n): Promise<Command | undefined> {\n if (!name) {\n return undefined;\n }\n\n return ZERO_COMMAND_DEFINITION_BY_NAME.get(name)?.load();\n}\n\nfunction commandExampleIfVisible(\n name: string,\n example: string,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): string[] {\n return shouldHideCommand(name, payload, featureSwitchOverrides)\n ? []\n : [example];\n}\n\nexport function buildZeroHelpText(\n payload: ZeroTokenPayload | undefined = decodeZeroTokenPayload(),\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): string {\n const canReadHost = !payload || payload.capabilities.includes(\"host:read\");\n const canWriteHost = !payload || payload.capabilities.includes(\"host:write\");\n const examples = [\n \" Check a connector? zero connector check --env-name <ENV_NAME>\",\n ...(payload && !payload.capabilities.includes(\"billing:read\")\n ? []\n : [\" Check credits? zero credit\"]),\n ...(payload && !payload.capabilities.includes(\"billing:write\")\n ? []\n : [\" Buy credits? zero credit 20000\"]),\n ...commandExampleIfVisible(\n \"upgrade\",\n \" Upgrade plan? zero upgrade pro\",\n payload,\n featureSwitchOverrides,\n ),\n \" Send a Slack message? zero slack message send --help\",\n ...commandExampleIfVisible(\n \"feishu\",\n \" Send Feishu? zero feishu message send --help\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"mail\",\n \" Link Gmail draft? zero mail link --help\",\n payload,\n featureSwitchOverrides,\n ),\n \" Send Teams? zero teams message send --help\",\n \" Upload Teams? zero teams upload-file --help\",\n \" Download Teams? zero teams download-file --help\",\n \" Upload GitHub? zero github upload-file --help\",\n \" Download GitHub? zero github download-file --help\",\n \" List Telegram bots? zero telegram bot list\",\n \" Send Telegram? zero telegram message send --help\",\n \" Upload Telegram? zero telegram upload-file --help\",\n \" Download Telegram? zero telegram download-file --help\",\n \" Send AgentPhone? zero phone message --help\",\n \" Upload AgentPhone? zero phone upload-file --help\",\n \" Download AgentPhone? zero phone download-file --help\",\n \" List models? zero model ls\",\n \" Model routing? zero model-provider ls\",\n \" Update yourself? zero agent --help\",\n \" Manage workflows? zero workflow --help\",\n ...commandExampleIfVisible(\n \"chat\",\n ' Rename this chat? zero chat rename \"New title\"',\n payload,\n featureSwitchOverrides,\n ),\n \" Introduce Zero? zero intro\",\n \" List generators? zero generate --help\",\n ' Generate image? zero generate image --raw-prompt \"...\"',\n ' Generate website? zero generate website --prompt \"...\"',\n ' Generate voice? zero generate voice --prompt \"...\"',\n ...(canWriteHost\n ? [\" Host a static site? zero host ./dist --site my-site --spa\"]\n : []),\n ...(canReadHost\n ? [\" Clone hosted site? zero host clone <public-slug>\"]\n : []),\n ...commandExampleIfVisible(\n \"maps\",\n ' Get directions? zero maps directions --origin \"SFO\" --destination \"Mountain View\" --json',\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"weather\",\n \" Check weather? zero weather current --lat 39.9042 --lng 116.4074 --json\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"scrape\",\n \" Scrape a web page? zero scrape https://example.com --json\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"web-search\",\n ' Search the public web? zero web-search \"latest news\" --json',\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"finance\",\n \" Get a market quote? zero finance quote AAPL --json\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"people-search\",\n ' Find a professional? zero people-search \"platform engineering leaders\" --json',\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"banking\",\n \" Read bank data? zero banking accounts --json\",\n payload,\n featureSwitchOverrides,\n ),\n \" Check your identity? zero whoami\",\n ];\n\n return `\\nExamples:\\n${examples.join(\"\\n\")}`;\n}\n\n/**\n * Register commands with visibility based on ZERO_TOKEN capabilities.\n * Commands not granted by the token are registered as hidden via\n * Commander's public `addCommand(cmd, { hidden: true })` API.\n * When no ZERO_TOKEN is present, all commands remain visible.\n *\n * @param commands - override default commands (used in tests)\n */\nexport function registerZeroCommands(\n prog: Command,\n commands?: Command[],\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): void {\n const token = process.env.ZERO_TOKEN;\n const payload = token ? decodeZeroTokenPayload(token) : undefined;\n\n for (const cmd of commands ?? buildDefaultCommands()) {\n if (!isCommandFeatureEnabled(cmd.name(), payload, featureSwitchOverrides)) {\n continue;\n }\n addZeroCommand(prog, cmd, payload, featureSwitchOverrides);\n }\n}\n\nconst program = new Command();\n\ndeclare const __CLI_VERSION__: string;\n\nprogram\n .name(\"zero\")\n .description(\n \"Zero CLI — interact with the zero platform from inside the sandbox\",\n )\n .version(__CLI_VERSION__)\n .addHelpText(\"after\", () => {\n return buildZeroHelpText();\n });\n\nexport { program };\n\nif (\n process.argv[1]?.endsWith(\"zero.js\") ||\n process.argv[1]?.endsWith(\"zero.ts\") ||\n process.argv[1]?.endsWith(\"zero\")\n) {\n await configureGlobalProxyFromEnv();\n const requestedCommand = await loadZeroCommand(getRequestedZeroCommandName());\n registerZeroCommands(\n program,\n requestedCommand ? [requestedCommand] : undefined,\n );\n program.parse();\n}\n","declare const __CLI_VERSION__: string;\ndeclare const __DEFAULT_SENTRY_DSN__: string;\n\nconst DSN = process.env.SENTRY_DSN ?? __DEFAULT_SENTRY_DSN__;\n\nconst OPERATIONAL_ERROR_PATTERNS = [\n /not authenticated/i,\n /not found/i,\n /agent not found/i,\n /version not found/i,\n /checkpoint not found/i,\n /session not found/i,\n /file not found/i,\n /environment file not found/i,\n /invalid format/i,\n /invalid.*config/i,\n /rate limit/i,\n /concurrent run limit/i,\n /insufficient.*credit/i,\n /no model provider/i,\n /network error/i,\n /network issue/i,\n /fetch failed/i,\n /connection refused/i,\n /timeout/i,\n /ECONNREFUSED/i,\n /ETIMEDOUT/i,\n /forbidden/i,\n /access denied/i,\n];\n\nfunction isOperationalError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n const message = error.message;\n return OPERATIONAL_ERROR_PATTERNS.some((pattern) => {\n return pattern.test(message);\n });\n}\n\nif (DSN) {\n const [Sentry, os] = await Promise.all([\n import(\"@sentry/node\"),\n import(\"node:os\"),\n ]);\n\n Sentry.init({\n dsn: DSN,\n environment: process.env.SENTRY_ENVIRONMENT ?? \"production\",\n release: __CLI_VERSION__,\n sendDefaultPii: false,\n tracesSampleRate: 0,\n shutdownTimeout: 500,\n initialScope: {\n tags: {\n app: \"cli\",\n },\n },\n // Filter out operational errors - only send programmer errors (bugs)\n beforeSend(event, hint) {\n const error = hint.originalException;\n if (isOperationalError(error)) {\n return null; // Drop operational errors\n }\n return event;\n },\n });\n\n Sentry.setContext(\"cli\", {\n version: __CLI_VERSION__,\n command: process.argv.slice(2).join(\" \"),\n });\n\n Sentry.setContext(\"runtime\", {\n node_version: process.version,\n os_platform: os.platform(),\n os_release: os.release(),\n });\n}\n\nfunction handleEpipe(err: NodeJS.ErrnoException) {\n if (err.code === \"EPIPE\") {\n process.exit(0);\n }\n throw err;\n}\n\nprocess.stdout.on(\"error\", handleEpipe);\nprocess.stderr.on(\"error\", handleEpipe);\n","interface ProxyConfig {\n httpProxy?: string;\n httpsProxy?: string;\n noProxy?: string;\n}\n\nlet configured = false;\n\nfunction getEnvValue(\n lowercaseKey: string,\n uppercaseKey: string,\n): string | null {\n const lowercaseValue = process.env[lowercaseKey]?.trim();\n if (lowercaseValue) {\n return lowercaseValue;\n }\n\n const uppercaseValue = process.env[uppercaseKey]?.trim();\n if (uppercaseValue) {\n return uppercaseValue;\n }\n\n return null;\n}\n\nfunction getProxyConfigFromEnv(): ProxyConfig | null {\n const httpProxy = getEnvValue(\"http_proxy\", \"HTTP_PROXY\");\n const httpsProxy = getEnvValue(\"https_proxy\", \"HTTPS_PROXY\");\n\n if (!httpProxy && !httpsProxy) {\n return null;\n }\n\n const noProxy = getEnvValue(\"no_proxy\", \"NO_PROXY\");\n const config: ProxyConfig = {};\n\n if (httpProxy) {\n config.httpProxy = httpProxy;\n }\n\n if (httpsProxy) {\n config.httpsProxy = httpsProxy;\n }\n\n if (noProxy) {\n config.noProxy = noProxy;\n }\n\n return config;\n}\n\nexport async function configureGlobalProxyFromEnv(): Promise<void> {\n if (configured) {\n return;\n }\n\n const config = getProxyConfigFromEnv();\n if (!config) {\n return;\n }\n\n try {\n const { EnvHttpProxyAgent, setGlobalDispatcher } = await import(\"undici\");\n const dispatcher = new EnvHttpProxyAgent(config);\n setGlobalDispatcher(dispatcher);\n configured = true;\n } catch (error) {\n throw new Error(\n \"Invalid proxy configuration. Check HTTP_PROXY/HTTPS_PROXY/NO_PROXY values.\",\n {\n cause: error instanceof Error ? error : undefined,\n },\n );\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/zero.ts","../src/instrument.ts","../src/lib/network/proxy.ts"],"sourcesContent":["// Zero CLI entry point - standalone binary for zero platform commands\n// Sentry must be initialized before any other imports\nimport \"./instrument.js\";\nimport { Command } from \"commander\";\nimport { FeatureSwitchKey } from \"@vm0/core/feature-switch-key\";\nimport { isFeatureEnabled } from \"@vm0/core/feature-switch\";\nimport { configureGlobalProxyFromEnv } from \"./lib/network/proxy.js\";\nimport {\n decodeZeroTokenPayload,\n type ZeroTokenPayload,\n} from \"./lib/api/zero-token.js\";\n\ninterface ZeroCommandDefinition {\n name: string;\n description: string;\n load: () => Promise<Command>;\n}\n\n/**\n * Map of command names to the capability required to see them.\n * Commands not in this map are hidden when ZERO_TOKEN is active.\n * Use an array when a top-level command has subcommands with different\n * capability gates and any one of them should make the command visible.\n * Use `null` for commands that should always be visible in sandbox.\n */\nconst COMMAND_CAPABILITY_MAP: Record<\n string,\n string | readonly string[] | null\n> = {\n agent: \"agent:read\",\n workflow: \"agent:read\",\n goal: [\"goal:read\", \"goal:agent-result:write\", \"goal:user-control:write\"],\n connector: \"connector:read\",\n mail: \"connector:read\",\n doctor: null,\n credit: [\"billing:read\", \"billing:write\"],\n upgrade: null,\n model: null,\n \"model-provider\": null,\n logs: \"agent-run:read\",\n search: \"chat-message:read\",\n chat: [\"chat-thread:read\", \"chat-thread:write\"],\n resource: null,\n github: [\"github:read\", \"github:write\"],\n slack: \"slack:write\",\n feishu: \"feishu:write\",\n teams: \"teams:write\",\n telegram: [\"telegram:read\", \"telegram:write\"],\n phone: [\"phone:read\", \"phone:write\"],\n whoami: null,\n \"developer-support\": null,\n \"computer-use\": \"computer-use:write\",\n browser: [\"browser:read\", \"browser:write\"],\n intro: null,\n generate: null,\n web: null,\n video: null,\n host: [\"host:read\", \"host:write\"],\n maps: \"maps:read\",\n weather: \"weather:read\",\n scrape: \"scrape:read\",\n \"people-search\": \"people-search:read\",\n \"web-search\": \"web-search:read\",\n finance: \"finance:read\",\n banking: \"banking:read\",\n};\n\nconst COMMAND_FEATURE_SWITCH_MAP: Readonly<\n Partial<Record<string, FeatureSwitchKey>>\n> = {\n browser: FeatureSwitchKey.ZeroBrowser,\n};\n\ntype FeatureSwitchOverrides = Partial<Record<FeatureSwitchKey, boolean>>;\n\nconst ZERO_COMMAND_DEFINITIONS: readonly ZeroCommandDefinition[] = [\n {\n name: \"org\",\n description: \"Manage organization settings, members, and providers\",\n load: async () => {\n return (await import(\"./commands/zero/org\")).zeroOrgCommand;\n },\n },\n {\n name: \"model\",\n description: \"List available models and model-switching guidance\",\n load: async () => {\n return (await import(\"./commands/zero/model\")).zeroModelCommand;\n },\n },\n {\n name: \"model-provider\",\n description: \"Inspect model provider routing\",\n load: async () => {\n return (await import(\"./commands/zero/model-provider\"))\n .zeroModelProviderCommand;\n },\n },\n {\n name: \"agent\",\n description: \"View or manage zero agents\",\n load: async () => {\n return (await import(\"./commands/zero/agent\")).zeroAgentCommand;\n },\n },\n {\n name: \"connector\",\n description: \"Check third-party service connections (GitHub, Slack, etc.)\",\n load: async () => {\n return (await import(\"./commands/zero/connector\")).zeroConnectorCommand;\n },\n },\n {\n name: \"mail\",\n description: \"Review and send mail through Gmail or Outlook Mail\",\n load: async () => {\n return (await import(\"./commands/zero/mail\")).zeroMailCommand;\n },\n },\n {\n name: \"credit\",\n description: \"View or buy credits\",\n load: async () => {\n return (await import(\"./commands/zero/credit\")).zeroCreditCommand;\n },\n },\n {\n name: \"upgrade\",\n description: \"Create a workspace plan upgrade link\",\n load: async () => {\n return (await import(\"./commands/zero/upgrade\")).zeroUpgradeCommand;\n },\n },\n {\n name: \"doctor\",\n description:\n \"Diagnose runtime issues (connector health, permission denials)\",\n load: async () => {\n return (await import(\"./commands/zero/doctor\")).zeroDoctorCommand;\n },\n },\n {\n name: \"preference\",\n description: \"View or update user preferences (timezone, notifications)\",\n load: async () => {\n return (await import(\"./commands/zero/preference\")).zeroPreferenceCommand;\n },\n },\n {\n name: \"secret\",\n description: \"Read or write secrets (API keys, tokens)\",\n load: async () => {\n return (await import(\"./commands/zero/secret\")).zeroSecretCommand;\n },\n },\n {\n name: \"github\",\n description: \"Upload and download GitHub files\",\n load: async () => {\n return (await import(\"./commands/zero/github\")).zeroGithubCommand;\n },\n },\n {\n name: \"slack\",\n description:\n \"Send messages, upload files, and download files from Slack as the bot\",\n load: async () => {\n return (await import(\"./commands/zero/slack\")).zeroSlackCommand;\n },\n },\n {\n name: \"feishu\",\n description: \"Send messages to Feishu as an organization bot\",\n load: async () => {\n return (await import(\"./commands/zero/feishu\")).zeroFeishuCommand;\n },\n },\n {\n name: \"teams\",\n description:\n \"Send Microsoft Teams messages, upload files, and download files\",\n load: async () => {\n return (await import(\"./commands/zero/teams\")).zeroTeamsCommand;\n },\n },\n {\n name: \"telegram\",\n description:\n \"Inspect bots, send messages, upload files, and download files from Telegram\",\n load: async () => {\n return (await import(\"./commands/zero/telegram\")).zeroTelegramCommand;\n },\n },\n {\n name: \"phone\",\n description: \"Send AgentPhone messages, upload files, and download media\",\n load: async () => {\n return (await import(\"./commands/zero/phone\")).zeroPhoneCommand;\n },\n },\n {\n name: \"variable\",\n description: \"Read or write non-sensitive configuration values\",\n load: async () => {\n return (await import(\"./commands/zero/variable\")).zeroVariableCommand;\n },\n },\n {\n name: \"logs\",\n description: \"View and search agent run logs\",\n load: async () => {\n return (await import(\"./commands/zero/logs\")).zeroLogsCommand;\n },\n },\n {\n name: \"search\",\n description: \"Search logs, chat, or get a recipe for external sources\",\n load: async () => {\n return (await import(\"./commands/zero/search\")).zeroSearchCommand;\n },\n },\n {\n name: \"chat\",\n description: \"Manage the current web chat thread\",\n load: async () => {\n return (await import(\"./commands/zero/chat\")).zeroChatCommand;\n },\n },\n {\n name: \"resource\",\n description: \"Pull registry resources from private R2-backed archives\",\n load: async () => {\n return (await import(\"./commands/zero/resource\")).zeroResourceCommand;\n },\n },\n {\n name: \"whoami\",\n description: \"Show agent identity, run ID, and capabilities\",\n load: async () => {\n return (await import(\"./commands/zero/whoami\")).zeroWhoamiCommand;\n },\n },\n {\n name: \"intro\",\n description: \"Print Zero's self-introduction and capability guide\",\n load: async () => {\n return (await import(\"./commands/zero/intro\")).zeroIntroCommand;\n },\n },\n {\n name: \"workflow\",\n description: \"Manage workflows\",\n load: async () => {\n return (await import(\"./commands/zero/workflow\")).zeroWorkflowCommand;\n },\n },\n {\n name: \"goal\",\n description: \"Manage the current thread goal\",\n load: async () => {\n return (await import(\"./commands/zero/goal\")).zeroGoalCommand;\n },\n },\n {\n name: \"developer-support\",\n description: \"Submit a diagnostic report to the dev team\",\n load: async () => {\n return (await import(\"./commands/zero/developer-support\"))\n .zeroDeveloperSupportCommand;\n },\n },\n {\n name: \"computer-use\",\n description: \"Desktop app computer use through Zero CLI\",\n load: async () => {\n return (await import(\"./commands/zero/computer-use\"))\n .zeroComputerUseCommand;\n },\n },\n {\n name: \"browser\",\n description: \"Managed remote browser sessions for agent-browser\",\n load: async () => {\n return (await import(\"./commands/zero/browser\")).zeroBrowserCommand;\n },\n },\n {\n name: \"generate\",\n description:\n \"Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance\",\n load: async () => {\n return (await import(\"./commands/zero/generate\")).generateCommand;\n },\n },\n {\n name: \"web\",\n description: \"Upload and download files via the web chat endpoint\",\n load: async () => {\n return (await import(\"./commands/zero/web\")).zeroWebCommand;\n },\n },\n {\n name: \"video\",\n description: \"Video processing utilities\",\n load: async () => {\n return (await import(\"./commands/zero/video\")).zeroVideoCommand;\n },\n },\n {\n name: \"host\",\n description: \"Publish static sites and clone owned hosted site files\",\n load: async () => {\n return (await import(\"./commands/zero/host\")).zeroHostCommand;\n },\n },\n {\n name: \"maps\",\n description: \"Use managed zero maps services\",\n load: async () => {\n return (await import(\"./commands/zero/maps\")).zeroMapsCommand;\n },\n },\n {\n name: \"weather\",\n description: \"Use managed Zero weather services\",\n load: async () => {\n return (await import(\"./commands/zero/weather\")).zeroWeatherCommand;\n },\n },\n {\n name: \"scrape\",\n description: \"Scrape public web pages through managed zero scrape\",\n load: async () => {\n return (await import(\"./commands/zero/scrape\")).zeroScrapeCommand;\n },\n },\n {\n name: \"people-search\",\n description: \"Find professionals through managed zero people search\",\n load: async () => {\n return (await import(\"./commands/zero/people-search\"))\n .zeroPeopleSearchCommand;\n },\n },\n {\n name: \"web-search\",\n description: \"Search the public web through managed zero web search\",\n load: async () => {\n return (await import(\"./commands/zero/web-search\")).zeroWebSearchCommand;\n },\n },\n {\n name: \"finance\",\n description: \"Query financial instruments through managed zero finance\",\n load: async () => {\n return (await import(\"./commands/zero/finance\")).zeroFinanceCommand;\n },\n },\n {\n name: \"banking\",\n description: \"Use managed zero banking services\",\n load: async () => {\n return (await import(\"./commands/zero/banking\")).zeroBankingCommand;\n },\n },\n];\n\nconst ZERO_COMMAND_DEFINITION_BY_NAME = new Map(\n ZERO_COMMAND_DEFINITIONS.map((definition) => {\n return [definition.name, definition];\n }),\n);\n\nfunction createZeroCommandStub(definition: ZeroCommandDefinition): Command {\n return new Command(definition.name).description(definition.description);\n}\n\nfunction buildDefaultCommands(): Command[] {\n return ZERO_COMMAND_DEFINITIONS.map(createZeroCommandStub);\n}\n\nfunction shouldHideCommand(\n name: string,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): boolean {\n if (!isCommandFeatureEnabled(name, payload, featureSwitchOverrides)) {\n return true;\n }\n if (!payload) return false;\n const requiredCap = COMMAND_CAPABILITY_MAP[name];\n if (requiredCap === undefined) return true;\n if (requiredCap === null) return false;\n if (typeof requiredCap !== \"string\") {\n return !requiredCap.some((capability) => {\n return payload.capabilities.includes(capability);\n });\n }\n return !payload.capabilities.includes(requiredCap);\n}\n\nfunction isCommandFeatureEnabled(\n name: string,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): boolean {\n const featureSwitch = COMMAND_FEATURE_SWITCH_MAP[name];\n const overrides = featureSwitchOverrides ?? payload?.featureSwitchOverrides;\n return (\n !featureSwitch ||\n isFeatureEnabled(featureSwitch, {\n userId: payload?.userId,\n orgId: payload?.orgId,\n overrides,\n })\n );\n}\n\nfunction addZeroCommand(\n prog: Command,\n cmd: Command,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): void {\n const hidden = shouldHideCommand(cmd.name(), payload, featureSwitchOverrides);\n prog.addCommand(cmd, hidden ? { hidden: true } : {});\n}\n\nfunction getNonOptionArgs(argv: string[]): string[] {\n const args: string[] = [];\n\n for (const arg of argv.slice(2)) {\n if (arg === \"--\") {\n break;\n }\n if (arg.startsWith(\"-\")) {\n continue;\n }\n args.push(arg);\n }\n\n return args;\n}\n\nfunction getRequestedZeroCommandName(argv = process.argv): string | undefined {\n const [firstArg, secondArg] = getNonOptionArgs(argv);\n\n if (!firstArg) {\n return undefined;\n }\n\n if (firstArg === \"help\") {\n return secondArg;\n }\n\n return firstArg;\n}\n\nasync function loadZeroCommand(\n name: string | undefined,\n): Promise<Command | undefined> {\n if (!name) {\n return undefined;\n }\n\n return ZERO_COMMAND_DEFINITION_BY_NAME.get(name)?.load();\n}\n\nfunction commandExampleIfVisible(\n name: string,\n example: string,\n payload: ZeroTokenPayload | undefined,\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): string[] {\n return shouldHideCommand(name, payload, featureSwitchOverrides)\n ? []\n : [example];\n}\n\nexport function buildZeroHelpText(\n payload: ZeroTokenPayload | undefined = decodeZeroTokenPayload(),\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): string {\n const canReadHost = !payload || payload.capabilities.includes(\"host:read\");\n const canWriteHost = !payload || payload.capabilities.includes(\"host:write\");\n const examples = [\n \" Check a connector? zero connector check --env-name <ENV_NAME>\",\n ...(payload && !payload.capabilities.includes(\"billing:read\")\n ? []\n : [\" Check credits? zero credit\"]),\n ...(payload && !payload.capabilities.includes(\"billing:write\")\n ? []\n : [\" Buy credits? zero credit 20000\"]),\n ...commandExampleIfVisible(\n \"upgrade\",\n \" Upgrade plan? zero upgrade pro\",\n payload,\n featureSwitchOverrides,\n ),\n \" Send a Slack message? zero slack message send --help\",\n ...commandExampleIfVisible(\n \"feishu\",\n \" Send Feishu? zero feishu message send --help\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"mail\",\n \" Link Gmail draft? zero mail link --help\",\n payload,\n featureSwitchOverrides,\n ),\n \" Send Teams? zero teams message send --help\",\n \" Upload Teams? zero teams upload-file --help\",\n \" Download Teams? zero teams download-file --help\",\n \" Upload GitHub? zero github upload-file --help\",\n \" Download GitHub? zero github download-file --help\",\n \" List Telegram bots? zero telegram bot list\",\n \" Send Telegram? zero telegram message send --help\",\n \" Upload Telegram? zero telegram upload-file --help\",\n \" Download Telegram? zero telegram download-file --help\",\n \" Send AgentPhone? zero phone message --help\",\n \" Upload AgentPhone? zero phone upload-file --help\",\n \" Download AgentPhone? zero phone download-file --help\",\n \" List models? zero model ls\",\n \" Model routing? zero model-provider ls\",\n \" Update yourself? zero agent --help\",\n \" Manage workflows? zero workflow --help\",\n ...commandExampleIfVisible(\n \"chat\",\n ' Rename this chat? zero chat rename \"New title\"',\n payload,\n featureSwitchOverrides,\n ),\n \" Introduce Zero? zero intro\",\n \" List generators? zero generate --help\",\n ' Generate image? zero generate image --raw-prompt \"...\"',\n ' Generate website? zero generate website --prompt \"...\"',\n ' Generate voice? zero generate voice --prompt \"...\"',\n ...(canWriteHost\n ? [\" Host a static site? zero host ./dist --site my-site --spa\"]\n : []),\n ...(canReadHost\n ? [\" Clone hosted site? zero host clone <public-slug>\"]\n : []),\n ...commandExampleIfVisible(\n \"maps\",\n ' Get directions? zero maps directions --origin \"SFO\" --destination \"Mountain View\" --json',\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"weather\",\n \" Check weather? zero weather current --lat 39.9042 --lng 116.4074 --json\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"scrape\",\n \" Scrape a web page? zero scrape https://example.com --json\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"web-search\",\n ' Search the public web? zero web-search \"latest news\" --json',\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"finance\",\n \" Get a market quote? zero finance quote AAPL --json\",\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"people-search\",\n ' Find a professional? zero people-search \"platform engineering leaders\" --json',\n payload,\n featureSwitchOverrides,\n ),\n ...commandExampleIfVisible(\n \"banking\",\n \" Read bank data? zero banking accounts --json\",\n payload,\n featureSwitchOverrides,\n ),\n \" Check your identity? zero whoami\",\n ];\n\n return `\\nExamples:\\n${examples.join(\"\\n\")}`;\n}\n\n/**\n * Register commands with visibility based on ZERO_TOKEN capabilities.\n * Commands not granted by the token are registered as hidden via\n * Commander's public `addCommand(cmd, { hidden: true })` API.\n * When no ZERO_TOKEN is present, all commands remain visible.\n *\n * @param commands - override default commands (used in tests)\n */\nexport function registerZeroCommands(\n prog: Command,\n commands?: Command[],\n featureSwitchOverrides?: FeatureSwitchOverrides,\n): void {\n const token = process.env.ZERO_TOKEN;\n const payload = token ? decodeZeroTokenPayload(token) : undefined;\n\n for (const cmd of commands ?? buildDefaultCommands()) {\n if (!isCommandFeatureEnabled(cmd.name(), payload, featureSwitchOverrides)) {\n continue;\n }\n addZeroCommand(prog, cmd, payload, featureSwitchOverrides);\n }\n}\n\nconst program = new Command();\n\ndeclare const __CLI_VERSION__: string;\n\nprogram\n .name(\"zero\")\n .description(\n \"Zero CLI — interact with the zero platform from inside the sandbox\",\n )\n .version(__CLI_VERSION__)\n .addHelpText(\"after\", () => {\n return buildZeroHelpText();\n });\n\nexport { program };\n\nif (\n process.argv[1]?.endsWith(\"zero.js\") ||\n process.argv[1]?.endsWith(\"zero.ts\") ||\n process.argv[1]?.endsWith(\"zero\")\n) {\n await configureGlobalProxyFromEnv();\n const requestedCommand = await loadZeroCommand(getRequestedZeroCommandName());\n registerZeroCommands(\n program,\n requestedCommand ? [requestedCommand] : undefined,\n );\n program.parse();\n}\n","declare const __CLI_VERSION__: string;\ndeclare const __DEFAULT_SENTRY_DSN__: string;\n\nconst DSN = process.env.SENTRY_DSN ?? __DEFAULT_SENTRY_DSN__;\n\nconst OPERATIONAL_ERROR_PATTERNS = [\n /not authenticated/i,\n /not found/i,\n /agent not found/i,\n /version not found/i,\n /checkpoint not found/i,\n /session not found/i,\n /file not found/i,\n /environment file not found/i,\n /invalid format/i,\n /invalid.*config/i,\n /rate limit/i,\n /concurrent run limit/i,\n /insufficient.*credit/i,\n /no model provider/i,\n /network error/i,\n /network issue/i,\n /fetch failed/i,\n /connection refused/i,\n /timeout/i,\n /ECONNREFUSED/i,\n /ETIMEDOUT/i,\n /forbidden/i,\n /access denied/i,\n];\n\nfunction isOperationalError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n const message = error.message;\n return OPERATIONAL_ERROR_PATTERNS.some((pattern) => {\n return pattern.test(message);\n });\n}\n\nif (DSN) {\n const [Sentry, os] = await Promise.all([\n import(\"@sentry/node\"),\n import(\"node:os\"),\n ]);\n\n Sentry.init({\n dsn: DSN,\n environment: process.env.SENTRY_ENVIRONMENT ?? \"production\",\n release: __CLI_VERSION__,\n sendDefaultPii: false,\n tracesSampleRate: 0,\n shutdownTimeout: 500,\n initialScope: {\n tags: {\n app: \"cli\",\n },\n },\n // Filter out operational errors - only send programmer errors (bugs)\n beforeSend(event, hint) {\n const error = hint.originalException;\n if (isOperationalError(error)) {\n return null; // Drop operational errors\n }\n return event;\n },\n });\n\n Sentry.setContext(\"cli\", {\n version: __CLI_VERSION__,\n command: process.argv.slice(2).join(\" \"),\n });\n\n Sentry.setContext(\"runtime\", {\n node_version: process.version,\n os_platform: os.platform(),\n os_release: os.release(),\n });\n}\n\nfunction handleEpipe(err: NodeJS.ErrnoException) {\n if (err.code === \"EPIPE\") {\n process.exit(0);\n }\n throw err;\n}\n\nprocess.stdout.on(\"error\", handleEpipe);\nprocess.stderr.on(\"error\", handleEpipe);\n","interface ProxyConfig {\n httpProxy?: string;\n httpsProxy?: string;\n noProxy?: string;\n}\n\nlet configured = false;\n\nfunction getEnvValue(\n lowercaseKey: string,\n uppercaseKey: string,\n): string | null {\n const lowercaseValue = process.env[lowercaseKey]?.trim();\n if (lowercaseValue) {\n return lowercaseValue;\n }\n\n const uppercaseValue = process.env[uppercaseKey]?.trim();\n if (uppercaseValue) {\n return uppercaseValue;\n }\n\n return null;\n}\n\nfunction getProxyConfigFromEnv(): ProxyConfig | null {\n const httpProxy = getEnvValue(\"http_proxy\", \"HTTP_PROXY\");\n const httpsProxy = getEnvValue(\"https_proxy\", \"HTTPS_PROXY\");\n\n if (!httpProxy && !httpsProxy) {\n return null;\n }\n\n const noProxy = getEnvValue(\"no_proxy\", \"NO_PROXY\");\n const config: ProxyConfig = {};\n\n if (httpProxy) {\n config.httpProxy = httpProxy;\n }\n\n if (httpsProxy) {\n config.httpsProxy = httpsProxy;\n }\n\n if (noProxy) {\n config.noProxy = noProxy;\n }\n\n return config;\n}\n\nexport async function configureGlobalProxyFromEnv(): Promise<void> {\n if (configured) {\n return;\n }\n\n const config = getProxyConfigFromEnv();\n if (!config) {\n return;\n }\n\n try {\n const { EnvHttpProxyAgent, setGlobalDispatcher } = await import(\"undici\");\n const dispatcher = new EnvHttpProxyAgent(config);\n setGlobalDispatcher(dispatcher);\n configured = true;\n } catch (error) {\n throw new Error(\n \"Invalid proxy configuration. Check HTTP_PROXY/HTTPS_PROXY/NO_PROXY values.\",\n {\n cause: error instanceof Error ? error : undefined,\n },\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;ACAA;AAGA,IAAM,MAAM,QAAQ,IAAI,cAAc;AAEtC,IAAM,6BAA6B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,mBAAmB,OAAyB;AACnD,MAAI,EAAE,iBAAiB,QAAQ;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,MAAM;AACtB,SAAO,2BAA2B,KAAK,CAAC,YAAY;AAClD,WAAO,QAAQ,KAAK,OAAO;AAAA,EAC7B,CAAC;AACH;AAEA,IAAI,KAAK;AACP,QAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,QAAQ,IAAI;AAAA,IACrC,OAAO,mBAAc;AAAA,IACrB,OAAO,IAAS;AAAA,EAClB,CAAC;AAED,SAAO,KAAK;AAAA,IACV,KAAK;AAAA,IACL,aAAa,QAAQ,IAAI,sBAAsB;AAAA,IAC/C,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,cAAc;AAAA,MACZ,MAAM;AAAA,QACJ,KAAK;AAAA,MACP;AAAA,IACF;AAAA;AAAA,IAEA,WAAW,OAAO,MAAM;AACtB,YAAM,QAAQ,KAAK;AACnB,UAAI,mBAAmB,KAAK,GAAG;AAC7B,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,SAAO,WAAW,OAAO;AAAA,IACvB,SAAS;AAAA,IACT,SAAS,QAAQ,KAAK,MAAM,CAAC,EAAE,KAAK,GAAG;AAAA,EACzC,CAAC;AAED,SAAO,WAAW,WAAW;AAAA,IAC3B,cAAc,QAAQ;AAAA,IACtB,aAAa,GAAG,SAAS;AAAA,IACzB,YAAY,GAAG,QAAQ;AAAA,EACzB,CAAC;AACH;AAEA,SAAS,YAAY,KAA4B;AAC/C,MAAI,IAAI,SAAS,SAAS;AACxB,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,QAAM;AACR;AAEA,QAAQ,OAAO,GAAG,SAAS,WAAW;AACtC,QAAQ,OAAO,GAAG,SAAS,WAAW;;;AC1FtC;AAMA,IAAI,aAAa;AAEjB,SAAS,YACP,cACA,cACe;AACf,QAAM,iBAAiB,QAAQ,IAAI,YAAY,GAAG,KAAK;AACvD,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,QAAQ,IAAI,YAAY,GAAG,KAAK;AACvD,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,wBAA4C;AACnD,QAAM,YAAY,YAAY,cAAc,YAAY;AACxD,QAAM,aAAa,YAAY,eAAe,aAAa;AAE3D,MAAI,CAAC,aAAa,CAAC,YAAY;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,YAAY,YAAY,UAAU;AAClD,QAAM,SAAsB,CAAC;AAE7B,MAAI,WAAW;AACb,WAAO,YAAY;AAAA,EACrB;AAEA,MAAI,YAAY;AACd,WAAO,aAAa;AAAA,EACtB;AAEA,MAAI,SAAS;AACX,WAAO,UAAU;AAAA,EACnB;AAEA,SAAO;AACT;AAEA,eAAsB,8BAA6C;AACjE,MAAI,YAAY;AACd;AAAA,EACF;AAEA,QAAM,SAAS,sBAAsB;AACrC,MAAI,CAAC,QAAQ;AACX;AAAA,EACF;AAEA,MAAI;AACF,UAAM,EAAE,mBAAmB,oBAAoB,IAAI,MAAM,OAAO,sBAAQ;AACxE,UAAM,aAAa,IAAI,kBAAkB,MAAM;AAC/C,wBAAoB,UAAU;AAC9B,iBAAa;AAAA,EACf,SAAS,OAAO;AACd,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,QACE,OAAO,iBAAiB,QAAQ,QAAQ;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACF;;;AFjDA,IAAM,yBAGF;AAAA,EACF,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM,CAAC,aAAa,2BAA2B,yBAAyB;AAAA,EACxE,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ,CAAC,gBAAgB,eAAe;AAAA,EACxC,SAAS;AAAA,EACT,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM,CAAC,oBAAoB,mBAAmB;AAAA,EAC9C,UAAU;AAAA,EACV,QAAQ,CAAC,eAAe,cAAc;AAAA,EACtC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,iBAAiB,gBAAgB;AAAA,EAC5C,OAAO,CAAC,cAAc,aAAa;AAAA,EACnC,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,SAAS,CAAC,gBAAgB,eAAe;AAAA,EACzC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM,CAAC,aAAa,YAAY;AAAA,EAChC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,SAAS;AACX;AAEA,IAAM,6BAEF;AAAA,EACF;AACF;AAIA,IAAM,2BAA6D;AAAA,EACjE;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,mBAAqB,GAAG;AAAA,IAC/C;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,8BAAgC,GAClD;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,yBAA2B,GAAG;AAAA,IACrD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,oBAAsB,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,uBAAyB,GAAG;AAAA,IACnD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aACE;AAAA,IACF,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,0BAA4B,GAAG;AAAA,IACtD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aACE;AAAA,IACF,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aACE;AAAA,IACF,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aACE;AAAA,IACF,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,wBAA0B,GAAG;AAAA,IACpD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,wBAA0B,GAAG;AAAA,IACpD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,oBAAsB,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,oBAAsB,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,wBAA0B,GAAG;AAAA,IACpD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,wBAA0B,GAAG;AAAA,IACpD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,oBAAsB,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,iCAAmC,GACrD;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,4BAA8B,GAChD;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,uBAAyB,GAAG;AAAA,IACnD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aACE;AAAA,IACF,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,wBAA0B,GAAG;AAAA,IACpD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,mBAAqB,GAAG;AAAA,IAC/C;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,qBAAuB,GAAG;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,oBAAsB,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,oBAAsB,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,uBAAyB,GAAG;AAAA,IACnD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,sBAAwB,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,6BAA+B,GACjD;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,0BAA4B,GAAG;AAAA,IACtD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,uBAAyB,GAAG;AAAA,IACnD;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM,YAAY;AAChB,cAAQ,MAAM,OAAO,uBAAyB,GAAG;AAAA,IACnD;AAAA,EACF;AACF;AAEA,IAAM,kCAAkC,IAAI;AAAA,EAC1C,yBAAyB,IAAI,CAAC,eAAe;AAC3C,WAAO,CAAC,WAAW,MAAM,UAAU;AAAA,EACrC,CAAC;AACH;AAEA,SAAS,sBAAsB,YAA4C;AACzE,SAAO,IAAI,QAAQ,WAAW,IAAI,EAAE,YAAY,WAAW,WAAW;AACxE;AAEA,SAAS,uBAAkC;AACzC,SAAO,yBAAyB,IAAI,qBAAqB;AAC3D;AAEA,SAAS,kBACP,MACA,SACA,wBACS;AACT,MAAI,CAAC,wBAAwB,MAAM,SAAS,sBAAsB,GAAG;AACnE,WAAO;AAAA,EACT;AACA,MAAI,CAAC,QAAS,QAAO;AACrB,QAAM,cAAc,uBAAuB,IAAI;AAC/C,MAAI,gBAAgB,OAAW,QAAO;AACtC,MAAI,gBAAgB,KAAM,QAAO;AACjC,MAAI,OAAO,gBAAgB,UAAU;AACnC,WAAO,CAAC,YAAY,KAAK,CAAC,eAAe;AACvC,aAAO,QAAQ,aAAa,SAAS,UAAU;AAAA,IACjD,CAAC;AAAA,EACH;AACA,SAAO,CAAC,QAAQ,aAAa,SAAS,WAAW;AACnD;AAEA,SAAS,wBACP,MACA,SACA,wBACS;AACT,QAAM,gBAAgB,2BAA2B,IAAI;AACrD,QAAM,YAAY,0BAA0B,SAAS;AACrD,SACE,CAAC,iBACD,iBAAiB,eAAe;AAAA,IAC9B,QAAQ,SAAS;AAAA,IACjB,OAAO,SAAS;AAAA,IAChB;AAAA,EACF,CAAC;AAEL;AAEA,SAAS,eACP,MACA,KACA,SACA,wBACM;AACN,QAAM,SAAS,kBAAkB,IAAI,KAAK,GAAG,SAAS,sBAAsB;AAC5E,OAAK,WAAW,KAAK,SAAS,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;AACrD;AAEA,SAAS,iBAAiB,MAA0B;AAClD,QAAM,OAAiB,CAAC;AAExB,aAAW,OAAO,KAAK,MAAM,CAAC,GAAG;AAC/B,QAAI,QAAQ,MAAM;AAChB;AAAA,IACF;AACA,QAAI,IAAI,WAAW,GAAG,GAAG;AACvB;AAAA,IACF;AACA,SAAK,KAAK,GAAG;AAAA,EACf;AAEA,SAAO;AACT;AAEA,SAAS,4BAA4B,OAAO,QAAQ,MAA0B;AAC5E,QAAM,CAAC,UAAU,SAAS,IAAI,iBAAiB,IAAI;AAEnD,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,QAAQ;AACvB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,eAAe,gBACb,MAC8B;AAC9B,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,SAAO,gCAAgC,IAAI,IAAI,GAAG,KAAK;AACzD;AAEA,SAAS,wBACP,MACA,SACA,SACA,wBACU;AACV,SAAO,kBAAkB,MAAM,SAAS,sBAAsB,IAC1D,CAAC,IACD,CAAC,OAAO;AACd;AAEO,SAAS,kBACd,UAAwC,uBAAuB,GAC/D,wBACQ;AACR,QAAM,cAAc,CAAC,WAAW,QAAQ,aAAa,SAAS,WAAW;AACzE,QAAM,eAAe,CAAC,WAAW,QAAQ,aAAa,SAAS,YAAY;AAC3E,QAAM,WAAW;AAAA,IACf;AAAA,IACA,GAAI,WAAW,CAAC,QAAQ,aAAa,SAAS,cAAc,IACxD,CAAC,IACD,CAAC,sCAAsC;AAAA,IAC3C,GAAI,WAAW,CAAC,QAAQ,aAAa,SAAS,eAAe,IACzD,CAAC,IACD,CAAC,4CAA4C;AAAA,IACjD,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,eACA,CAAC,gEAAgE,IACjE,CAAC;AAAA,IACL,GAAI,cACA,CAAC,wDAAwD,IACzD,CAAC;AAAA,IACL,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AAAA;AAAA,EAAgB,SAAS,KAAK,IAAI,CAAC;AAC5C;AAUO,SAAS,qBACd,MACA,UACA,wBACM;AACN,QAAM,QAAQ,QAAQ,IAAI;AAC1B,QAAM,UAAU,QAAQ,uBAAuB,KAAK,IAAI;AAExD,aAAW,OAAO,YAAY,qBAAqB,GAAG;AACpD,QAAI,CAAC,wBAAwB,IAAI,KAAK,GAAG,SAAS,sBAAsB,GAAG;AACzE;AAAA,IACF;AACA,mBAAe,MAAM,KAAK,SAAS,sBAAsB;AAAA,EAC3D;AACF;AAEA,IAAM,UAAU,IAAI,QAAQ;AAI5B,QACG,KAAK,MAAM,EACX;AAAA,EACC;AACF,EACC,QAAQ,SAAe,EACvB,YAAY,SAAS,MAAM;AAC1B,SAAO,kBAAkB;AAC3B,CAAC;AAIH,IACE,QAAQ,KAAK,CAAC,GAAG,SAAS,SAAS,KACnC,QAAQ,KAAK,CAAC,GAAG,SAAS,SAAS,KACnC,QAAQ,KAAK,CAAC,GAAG,SAAS,MAAM,GAChC;AACA,QAAM,4BAA4B;AAClC,QAAM,mBAAmB,MAAM,gBAAgB,4BAA4B,CAAC;AAC5E;AAAA,IACE;AAAA,IACA,mBAAmB,CAAC,gBAAgB,IAAI;AAAA,EAC1C;AACA,UAAQ,MAAM;AAChB;","names":[]}
|