@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.
Files changed (109) hide show
  1. package/{agent-CVBI2U7K.js → agent-OKECNBTT.js} +7 -7
  2. package/{banking-ZFXLS34X.js → banking-LFBBKVW3.js} +5 -5
  3. package/{browser-AXMVZEXD.js → browser-4UDUMO4E.js} +5 -5
  4. package/{chat-WY4VMGHJ.js → chat-QDX76VKQ.js} +6 -6
  5. package/{chunk-BY7YDOHH.js → chunk-24WPP3D2.js} +2 -2
  6. package/{chunk-2KSQ243U.js → chunk-4FG63PKD.js} +2 -2
  7. package/{chunk-GXTHF4DD.js → chunk-AG76QAC3.js} +2 -2
  8. package/{chunk-6AE53QDK.js → chunk-HXKIQDJI.js} +35 -8
  9. package/chunk-HXKIQDJI.js.map +1 -0
  10. package/{chunk-QHOV3CNA.js → chunk-I4VCZWOS.js} +2 -2
  11. package/{chunk-ATTDFHLS.js → chunk-LJ5ON5RL.js} +2 -2
  12. package/{chunk-PU2AEGBG.js → chunk-PDM45336.js} +4 -4
  13. package/{chunk-CVQKOA2N.js → chunk-Q7HE2GL3.js} +2 -2
  14. package/chunk-QH4JBUUQ.js +33 -0
  15. package/chunk-QH4JBUUQ.js.map +1 -0
  16. package/{chunk-FEHGYJGF.js → chunk-XLD34HM7.js} +10 -4
  17. package/chunk-XLD34HM7.js.map +1 -0
  18. package/{chunk-6GBUMHRL.js → chunk-YS47HRHU.js} +11 -62
  19. package/chunk-YS47HRHU.js.map +1 -0
  20. package/{chunk-Q2CWPFH2.js → chunk-YTDZVDR5.js} +7 -15
  21. package/{chunk-Q2CWPFH2.js.map → chunk-YTDZVDR5.js.map} +1 -1
  22. package/{computer-use-MCREZICH.js → computer-use-IYQMPZ6Z.js} +5 -5
  23. package/{connector-2RUHAPEE.js → connector-756JP6YH.js} +8 -8
  24. package/{credit-FPR2NEB3.js → credit-TRHARC56.js} +7 -7
  25. package/{developer-support-EFOM6KEK.js → developer-support-6N3L37QV.js} +5 -5
  26. package/{doctor-HD2RWNKF.js → doctor-SYBB76KN.js} +7 -7
  27. package/{feishu-I4GHDZSV.js → feishu-SPKJAQ4F.js} +5 -5
  28. package/{finance-ROLQNDWR.js → finance-MNQZHPLG.js} +5 -5
  29. package/{generate-IHAISPWK.js → generate-NH322XK7.js} +7 -7
  30. package/{github-INCPLLLD.js → github-VWLTA25N.js} +5 -5
  31. package/{goal-OIUF5OU6.js → goal-BN5LKSTE.js} +5 -5
  32. package/{host-ACRWIKMU.js → host-N6YDZZ7R.js} +5 -5
  33. package/{logs-V55QDVRJ.js → logs-OD5TWOMM.js} +7 -6
  34. package/{logs-V55QDVRJ.js.map → logs-OD5TWOMM.js.map} +1 -1
  35. package/{mail-WIQI2V2P.js → mail-7PNAUC3X.js} +7 -7
  36. package/{maps-OJXQAQJQ.js → maps-Y73QZLVB.js} +5 -5
  37. package/{model-TRG2R6CJ.js → model-CAE7SDRE.js} +6 -6
  38. package/{model-provider-P7HOAOQE.js → model-provider-LETXPLPC.js} +6 -6
  39. package/{org-BJLSSFI3.js → org-KEFUCQLB.js} +5 -5
  40. package/package.json +1 -1
  41. package/{people-search-YZXTOACF.js → people-search-FR42MOHJ.js} +5 -5
  42. package/{phone-5R5HAAPC.js → phone-RNO6FX7L.js} +5 -5
  43. package/{preference-VM3LUPGB.js → preference-XFQMPX36.js} +5 -5
  44. package/{resource-TEJLALGA.js → resource-MHQNW43J.js} +5 -5
  45. package/{scrape-QJCYFJ6O.js → scrape-Q3IVZXJ6.js} +5 -5
  46. package/{search-AN3BTQHS.js → search-MXVMYLCD.js} +7 -6
  47. package/{search-AN3BTQHS.js.map → search-MXVMYLCD.js.map} +1 -1
  48. package/{secret-CSQKYWNT.js → secret-3CJW5A6C.js} +5 -5
  49. package/{slack-REQK25VI.js → slack-T7VRXIFK.js} +5 -5
  50. package/{teams-BY7GNQCM.js → teams-DUKL2BRE.js} +5 -5
  51. package/{telegram-XDNTH57U.js → telegram-YOLLQJAD.js} +5 -5
  52. package/{upgrade-MTLB67AH.js → upgrade-K4BWE4WZ.js} +4 -4
  53. package/{variable-SAXYXBYY.js → variable-DA2WFE4T.js} +5 -5
  54. package/{video-QFZADY5X.js → video-PQE2UQXE.js} +4 -4
  55. package/{weather-IWLSOMUW.js → weather-ONJBEMN6.js} +5 -5
  56. package/{web-HTHISWVB.js → web-L6OZ6YCP.js} +5 -5
  57. package/{web-search-RPWD3LYT.js → web-search-OJ56H7SN.js} +5 -5
  58. package/{whoami-HSB4GG2H.js → whoami-OVUZ6SOF.js} +7 -7
  59. package/{workflow-QW2MUFXN.js → workflow-HUZUCICV.js} +8 -6
  60. package/workflow-HUZUCICV.js.map +1 -0
  61. package/zero.js +46 -45
  62. package/zero.js.map +1 -1
  63. package/chunk-6AE53QDK.js.map +0 -1
  64. package/chunk-6GBUMHRL.js.map +0 -1
  65. package/chunk-FEHGYJGF.js.map +0 -1
  66. package/workflow-QW2MUFXN.js.map +0 -1
  67. /package/{agent-CVBI2U7K.js.map → agent-OKECNBTT.js.map} +0 -0
  68. /package/{banking-ZFXLS34X.js.map → banking-LFBBKVW3.js.map} +0 -0
  69. /package/{browser-AXMVZEXD.js.map → browser-4UDUMO4E.js.map} +0 -0
  70. /package/{chat-WY4VMGHJ.js.map → chat-QDX76VKQ.js.map} +0 -0
  71. /package/{chunk-BY7YDOHH.js.map → chunk-24WPP3D2.js.map} +0 -0
  72. /package/{chunk-2KSQ243U.js.map → chunk-4FG63PKD.js.map} +0 -0
  73. /package/{chunk-GXTHF4DD.js.map → chunk-AG76QAC3.js.map} +0 -0
  74. /package/{chunk-QHOV3CNA.js.map → chunk-I4VCZWOS.js.map} +0 -0
  75. /package/{chunk-ATTDFHLS.js.map → chunk-LJ5ON5RL.js.map} +0 -0
  76. /package/{chunk-PU2AEGBG.js.map → chunk-PDM45336.js.map} +0 -0
  77. /package/{chunk-CVQKOA2N.js.map → chunk-Q7HE2GL3.js.map} +0 -0
  78. /package/{computer-use-MCREZICH.js.map → computer-use-IYQMPZ6Z.js.map} +0 -0
  79. /package/{connector-2RUHAPEE.js.map → connector-756JP6YH.js.map} +0 -0
  80. /package/{credit-FPR2NEB3.js.map → credit-TRHARC56.js.map} +0 -0
  81. /package/{developer-support-EFOM6KEK.js.map → developer-support-6N3L37QV.js.map} +0 -0
  82. /package/{doctor-HD2RWNKF.js.map → doctor-SYBB76KN.js.map} +0 -0
  83. /package/{feishu-I4GHDZSV.js.map → feishu-SPKJAQ4F.js.map} +0 -0
  84. /package/{finance-ROLQNDWR.js.map → finance-MNQZHPLG.js.map} +0 -0
  85. /package/{generate-IHAISPWK.js.map → generate-NH322XK7.js.map} +0 -0
  86. /package/{github-INCPLLLD.js.map → github-VWLTA25N.js.map} +0 -0
  87. /package/{goal-OIUF5OU6.js.map → goal-BN5LKSTE.js.map} +0 -0
  88. /package/{host-ACRWIKMU.js.map → host-N6YDZZ7R.js.map} +0 -0
  89. /package/{mail-WIQI2V2P.js.map → mail-7PNAUC3X.js.map} +0 -0
  90. /package/{maps-OJXQAQJQ.js.map → maps-Y73QZLVB.js.map} +0 -0
  91. /package/{model-TRG2R6CJ.js.map → model-CAE7SDRE.js.map} +0 -0
  92. /package/{model-provider-P7HOAOQE.js.map → model-provider-LETXPLPC.js.map} +0 -0
  93. /package/{org-BJLSSFI3.js.map → org-KEFUCQLB.js.map} +0 -0
  94. /package/{people-search-YZXTOACF.js.map → people-search-FR42MOHJ.js.map} +0 -0
  95. /package/{phone-5R5HAAPC.js.map → phone-RNO6FX7L.js.map} +0 -0
  96. /package/{preference-VM3LUPGB.js.map → preference-XFQMPX36.js.map} +0 -0
  97. /package/{resource-TEJLALGA.js.map → resource-MHQNW43J.js.map} +0 -0
  98. /package/{scrape-QJCYFJ6O.js.map → scrape-Q3IVZXJ6.js.map} +0 -0
  99. /package/{secret-CSQKYWNT.js.map → secret-3CJW5A6C.js.map} +0 -0
  100. /package/{slack-REQK25VI.js.map → slack-T7VRXIFK.js.map} +0 -0
  101. /package/{teams-BY7GNQCM.js.map → teams-DUKL2BRE.js.map} +0 -0
  102. /package/{telegram-XDNTH57U.js.map → telegram-YOLLQJAD.js.map} +0 -0
  103. /package/{upgrade-MTLB67AH.js.map → upgrade-K4BWE4WZ.js.map} +0 -0
  104. /package/{variable-SAXYXBYY.js.map → variable-DA2WFE4T.js.map} +0 -0
  105. /package/{video-QFZADY5X.js.map → video-PQE2UQXE.js.map} +0 -0
  106. /package/{weather-IWLSOMUW.js.map → weather-ONJBEMN6.js.map} +0 -0
  107. /package/{web-HTHISWVB.js.map → web-L6OZ6YCP.js.map} +0 -0
  108. /package/{web-search-RPWD3LYT.js.map → web-search-OJ56H7SN.js.map} +0 -0
  109. /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-6GBUMHRL.js";
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.0",
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.0",
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-BJLSSFI3.js")).zeroOrgCommand;
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-TRG2R6CJ.js")).zeroModelCommand;
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-P7HOAOQE.js")).zeroModelProviderCommand;
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-CVBI2U7K.js")).zeroAgentCommand;
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-2RUHAPEE.js")).zeroConnectorCommand;
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-WIQI2V2P.js")).zeroMailCommand;
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-FPR2NEB3.js")).zeroCreditCommand;
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-MTLB67AH.js")).zeroUpgradeCommand;
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-HD2RWNKF.js")).zeroDoctorCommand;
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-VM3LUPGB.js")).zeroPreferenceCommand;
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-CSQKYWNT.js")).zeroSecretCommand;
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-INCPLLLD.js")).zeroGithubCommand;
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-REQK25VI.js")).zeroSlackCommand;
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-I4GHDZSV.js")).zeroFeishuCommand;
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-BY7GNQCM.js")).zeroTeamsCommand;
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-XDNTH57U.js")).zeroTelegramCommand;
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-5R5HAAPC.js")).zeroPhoneCommand;
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-SAXYXBYY.js")).zeroVariableCommand;
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-V55QDVRJ.js")).zeroLogsCommand;
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-AN3BTQHS.js")).zeroSearchCommand;
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-WY4VMGHJ.js")).zeroChatCommand;
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-TEJLALGA.js")).zeroResourceCommand;
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-HSB4GG2H.js")).zeroWhoamiCommand;
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-QW2MUFXN.js")).zeroWorkflowCommand;
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-OIUF5OU6.js")).zeroGoalCommand;
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-EFOM6KEK.js")).zeroDeveloperSupportCommand;
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-MCREZICH.js")).zeroComputerUseCommand;
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-AXMVZEXD.js")).zeroBrowserCommand;
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-IHAISPWK.js")).generateCommand;
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-HTHISWVB.js")).zeroWebCommand;
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-QFZADY5X.js")).zeroVideoCommand;
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-ACRWIKMU.js")).zeroHostCommand;
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-OJXQAQJQ.js")).zeroMapsCommand;
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-IWLSOMUW.js")).zeroWeatherCommand;
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-QJCYFJ6O.js")).zeroScrapeCommand;
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-YZXTOACF.js")).zeroPeopleSearchCommand;
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-RPWD3LYT.js")).zeroWebSearchCommand;
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-ROLQNDWR.js")).zeroFinanceCommand;
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-ZFXLS34X.js")).zeroBankingCommand;
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.0").addHelpText("after", () => {
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":"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","names":[]}