@vm0/cli 9.222.9 → 9.222.11

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 (100) hide show
  1. package/{agent-ZDJQRV5F.js → agent-XNVQRMKI.js} +4 -4
  2. package/automation-7MAK66QT.js +31 -0
  3. package/automation-7MAK66QT.js.map +1 -0
  4. package/{banking-3VE6CETL.js → banking-QBTNNOCQ.js} +2 -2
  5. package/{chat-LBGYMTDO.js → chat-ELAJKQXT.js} +2 -2
  6. package/{chunk-S473TX4B.js → chunk-5EPGSDIQ.js} +479 -46
  7. package/chunk-5EPGSDIQ.js.map +1 -0
  8. package/{chunk-OJEINPMU.js → chunk-7ZJOZZXZ.js} +3 -3
  9. package/{chunk-Y3NUN3UL.js → chunk-F774K6TY.js} +2 -2
  10. package/{chunk-YVZFUVCW.js → chunk-JOOQB7W3.js} +2 -2
  11. package/{chunk-QVSVGYE3.js → chunk-KBDCWC3F.js} +40 -395
  12. package/chunk-KBDCWC3F.js.map +1 -0
  13. package/{chunk-N2FY46MD.js → chunk-MJ4W2C3Z.js} +7 -9
  14. package/{chunk-N2FY46MD.js.map → chunk-MJ4W2C3Z.js.map} +1 -1
  15. package/{chunk-TWIQPNKQ.js → chunk-VTG6TDYL.js} +2 -2
  16. package/{chunk-LBHBBYUU.js → chunk-Y4YHS5UO.js} +2 -2
  17. package/{chunk-3ZVLQIJN.js → chunk-ZPWEXRMA.js} +3 -3
  18. package/{computer-use-7M4K42CT.js → computer-use-XXPDTJSQ.js} +2 -2
  19. package/{connector-PLTWJW2T.js → connector-PWDJ3R6G.js} +2 -2
  20. package/{credit-2MVNEHI6.js → credit-MYBUWRHP.js} +2 -2
  21. package/{developer-support-PEFJTIAK.js → developer-support-65OQ2RK4.js} +2 -2
  22. package/{doctor-NCFSDVXU.js → doctor-2U4HK4AX.js} +6 -6
  23. package/{generate-BZ2SR3S2.js → generate-UEDRCAKX.js} +2 -2
  24. package/{github-D52YY3PW.js → github-R6JKL74U.js} +2 -2
  25. package/{goal-CGDHCZQL.js → goal-BG47S2RP.js} +2 -2
  26. package/{host-RU374UJZ.js → host-2VS2KOZQ.js} +2 -2
  27. package/index.js +18 -20
  28. package/index.js.map +1 -1
  29. package/{logs-GLJEMUTL.js → logs-XFVZAKVG.js} +11 -13
  30. package/{logs-GLJEMUTL.js.map → logs-XFVZAKVG.js.map} +1 -1
  31. package/{maps-QCEV2Y5T.js → maps-ZBULOEZW.js} +2 -2
  32. package/{maskdb.generated-X4O7LDNM.js → maskdb.generated-VAIGGNUJ.js} +2 -2
  33. package/maskdb.generated-VAIGGNUJ.js.map +1 -0
  34. package/{maskdb.generated-ROG4XZ7X.js → maskdb.generated-WA5B4GQ5.js} +5 -1
  35. package/maskdb.generated-WA5B4GQ5.js.map +1 -0
  36. package/{model-RTTTCIHY.js → model-BFHGQJ5U.js} +3 -3
  37. package/{model-provider-CZJPMY6Z.js → model-provider-OUSOKSWW.js} +3 -3
  38. package/{org-4WKWAWHE.js → org-RI2EYUW7.js} +2 -2
  39. package/package.json +1 -1
  40. package/{phone-GI7KA3KZ.js → phone-SNLGLD3J.js} +2 -2
  41. package/{preference-KD4UYLQE.js → preference-XDSQRZWM.js} +2 -2
  42. package/{resource-UYWSXAUZ.js → resource-BA4FQCNQ.js} +2 -2
  43. package/schedule-OSHL7HWT.js +33 -0
  44. package/schedule-OSHL7HWT.js.map +1 -0
  45. package/{search-V5ME4TLE.js → search-KXVRANLT.js} +8 -10
  46. package/{search-V5ME4TLE.js.map → search-KXVRANLT.js.map} +1 -1
  47. package/{secret-YCQ5IAMV.js → secret-NFJQKUPS.js} +3 -3
  48. package/{slack-UF64OZUG.js → slack-JPM5WVX6.js} +2 -2
  49. package/{telegram-U76HOCPN.js → telegram-BNX4UZTT.js} +2 -2
  50. package/{variable-NXY6SYD3.js → variable-IAIPAH3T.js} +2 -2
  51. package/{web-QQFWWXYM.js → web-3TJGHZNA.js} +2 -2
  52. package/{whoami-NFGUYQYI.js → whoami-OVIXXMRR.js} +4 -4
  53. package/{workflow-CIIUERNL.js → workflow-WWMTJDLF.js} +71 -10
  54. package/workflow-WWMTJDLF.js.map +1 -0
  55. package/zero.js +36 -37
  56. package/zero.js.map +1 -1
  57. package/automation-FJOIHXBS.js +0 -501
  58. package/automation-FJOIHXBS.js.map +0 -1
  59. package/chunk-H63W4KQL.js +0 -160
  60. package/chunk-H63W4KQL.js.map +0 -1
  61. package/chunk-HQFETCZ6.js +0 -71
  62. package/chunk-HQFETCZ6.js.map +0 -1
  63. package/chunk-QVSVGYE3.js.map +0 -1
  64. package/chunk-S473TX4B.js.map +0 -1
  65. package/maskdb.generated-ROG4XZ7X.js.map +0 -1
  66. package/maskdb.generated-X4O7LDNM.js.map +0 -1
  67. package/schedule-MTI5OP23.js +0 -31
  68. package/schedule-MTI5OP23.js.map +0 -1
  69. package/workflow-CIIUERNL.js.map +0 -1
  70. /package/{agent-ZDJQRV5F.js.map → agent-XNVQRMKI.js.map} +0 -0
  71. /package/{banking-3VE6CETL.js.map → banking-QBTNNOCQ.js.map} +0 -0
  72. /package/{chat-LBGYMTDO.js.map → chat-ELAJKQXT.js.map} +0 -0
  73. /package/{chunk-OJEINPMU.js.map → chunk-7ZJOZZXZ.js.map} +0 -0
  74. /package/{chunk-Y3NUN3UL.js.map → chunk-F774K6TY.js.map} +0 -0
  75. /package/{chunk-YVZFUVCW.js.map → chunk-JOOQB7W3.js.map} +0 -0
  76. /package/{chunk-TWIQPNKQ.js.map → chunk-VTG6TDYL.js.map} +0 -0
  77. /package/{chunk-LBHBBYUU.js.map → chunk-Y4YHS5UO.js.map} +0 -0
  78. /package/{chunk-3ZVLQIJN.js.map → chunk-ZPWEXRMA.js.map} +0 -0
  79. /package/{computer-use-7M4K42CT.js.map → computer-use-XXPDTJSQ.js.map} +0 -0
  80. /package/{connector-PLTWJW2T.js.map → connector-PWDJ3R6G.js.map} +0 -0
  81. /package/{credit-2MVNEHI6.js.map → credit-MYBUWRHP.js.map} +0 -0
  82. /package/{developer-support-PEFJTIAK.js.map → developer-support-65OQ2RK4.js.map} +0 -0
  83. /package/{doctor-NCFSDVXU.js.map → doctor-2U4HK4AX.js.map} +0 -0
  84. /package/{generate-BZ2SR3S2.js.map → generate-UEDRCAKX.js.map} +0 -0
  85. /package/{github-D52YY3PW.js.map → github-R6JKL74U.js.map} +0 -0
  86. /package/{goal-CGDHCZQL.js.map → goal-BG47S2RP.js.map} +0 -0
  87. /package/{host-RU374UJZ.js.map → host-2VS2KOZQ.js.map} +0 -0
  88. /package/{maps-QCEV2Y5T.js.map → maps-ZBULOEZW.js.map} +0 -0
  89. /package/{model-RTTTCIHY.js.map → model-BFHGQJ5U.js.map} +0 -0
  90. /package/{model-provider-CZJPMY6Z.js.map → model-provider-OUSOKSWW.js.map} +0 -0
  91. /package/{org-4WKWAWHE.js.map → org-RI2EYUW7.js.map} +0 -0
  92. /package/{phone-GI7KA3KZ.js.map → phone-SNLGLD3J.js.map} +0 -0
  93. /package/{preference-KD4UYLQE.js.map → preference-XDSQRZWM.js.map} +0 -0
  94. /package/{resource-UYWSXAUZ.js.map → resource-BA4FQCNQ.js.map} +0 -0
  95. /package/{secret-YCQ5IAMV.js.map → secret-NFJQKUPS.js.map} +0 -0
  96. /package/{slack-UF64OZUG.js.map → slack-JPM5WVX6.js.map} +0 -0
  97. /package/{telegram-U76HOCPN.js.map → telegram-BNX4UZTT.js.map} +0 -0
  98. /package/{variable-NXY6SYD3.js.map → variable-IAIPAH3T.js.map} +0 -0
  99. /package/{web-QQFWWXYM.js.map → web-3TJGHZNA.js.map} +0 -0
  100. /package/{whoami-NFGUYQYI.js.map → whoami-OVIXXMRR.js.map} +0 -0
package/zero.js CHANGED
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  configureGlobalProxyFromEnv
6
- } from "./chunk-3ZVLQIJN.js";
6
+ } from "./chunk-ZPWEXRMA.js";
7
7
  import {
8
8
  decodeZeroTokenPayload
9
9
  } from "./chunk-LRHXR7JT.js";
@@ -21,9 +21,9 @@ var COMMAND_CAPABILITY_MAP = {
21
21
  workflow: "agent:read",
22
22
  goal: ["goal:read", "goal:agent-result:write", "goal:user-control:write"],
23
23
  connector: "connector:read",
24
- // "schedule" is deliberately absent: the rename stub stays out of
25
- // token-scoped (agent) help but remains invokable and visible to humans.
26
- automation: "automation:read",
24
+ // "schedule" and "automation" are deliberately absent: the removal stubs
25
+ // stay out of token-scoped (agent) help but remain invokable and visible to
26
+ // humans.
27
27
  doctor: null,
28
28
  credit: "billing:write",
29
29
  model: null,
@@ -51,189 +51,189 @@ var ZERO_COMMAND_DEFINITIONS = [
51
51
  name: "org",
52
52
  description: "Manage organization settings, members, and providers",
53
53
  load: async () => {
54
- return (await import("./org-4WKWAWHE.js")).zeroOrgCommand;
54
+ return (await import("./org-RI2EYUW7.js")).zeroOrgCommand;
55
55
  }
56
56
  },
57
57
  {
58
58
  name: "model",
59
59
  description: "List available models and model-switching guidance",
60
60
  load: async () => {
61
- return (await import("./model-RTTTCIHY.js")).zeroModelCommand;
61
+ return (await import("./model-BFHGQJ5U.js")).zeroModelCommand;
62
62
  }
63
63
  },
64
64
  {
65
65
  name: "model-provider",
66
66
  description: "Inspect model provider routing",
67
67
  load: async () => {
68
- return (await import("./model-provider-CZJPMY6Z.js")).zeroModelProviderCommand;
68
+ return (await import("./model-provider-OUSOKSWW.js")).zeroModelProviderCommand;
69
69
  }
70
70
  },
71
71
  {
72
72
  name: "agent",
73
73
  description: "View or manage zero agents",
74
74
  load: async () => {
75
- return (await import("./agent-ZDJQRV5F.js")).zeroAgentCommand;
75
+ return (await import("./agent-XNVQRMKI.js")).zeroAgentCommand;
76
76
  }
77
77
  },
78
78
  {
79
79
  name: "connector",
80
80
  description: "Check third-party service connections (GitHub, Slack, etc.)",
81
81
  load: async () => {
82
- return (await import("./connector-PLTWJW2T.js")).zeroConnectorCommand;
82
+ return (await import("./connector-PWDJ3R6G.js")).zeroConnectorCommand;
83
83
  }
84
84
  },
85
85
  {
86
86
  name: "credit",
87
87
  description: "Create a Stripe checkout link to buy credits",
88
88
  load: async () => {
89
- return (await import("./credit-2MVNEHI6.js")).zeroCreditCommand;
89
+ return (await import("./credit-MYBUWRHP.js")).zeroCreditCommand;
90
90
  }
91
91
  },
92
92
  {
93
93
  name: "doctor",
94
94
  description: "Diagnose runtime issues (connector health, permission denials)",
95
95
  load: async () => {
96
- return (await import("./doctor-NCFSDVXU.js")).zeroDoctorCommand;
96
+ return (await import("./doctor-2U4HK4AX.js")).zeroDoctorCommand;
97
97
  }
98
98
  },
99
99
  {
100
100
  name: "preference",
101
101
  description: "View or update user preferences (timezone, notifications)",
102
102
  load: async () => {
103
- return (await import("./preference-KD4UYLQE.js")).zeroPreferenceCommand;
103
+ return (await import("./preference-XDSQRZWM.js")).zeroPreferenceCommand;
104
104
  }
105
105
  },
106
106
  {
107
107
  name: "schedule",
108
108
  description: "(removed: use `zero automation`) Schedules are Automations now",
109
109
  load: async () => {
110
- return (await import("./schedule-MTI5OP23.js")).zeroScheduleCommand;
110
+ return (await import("./schedule-OSHL7HWT.js")).zeroScheduleCommand;
111
111
  }
112
112
  },
113
113
  {
114
114
  name: "automation",
115
- description: "Create or manage scheduled automations",
115
+ description: "(removed: use `zero workflow`) Automations are workflows now",
116
116
  load: async () => {
117
- return (await import("./automation-FJOIHXBS.js")).zeroAutomationCommand;
117
+ return (await import("./automation-7MAK66QT.js")).zeroAutomationCommand;
118
118
  }
119
119
  },
120
120
  {
121
121
  name: "secret",
122
122
  description: "Read or write secrets (API keys, tokens)",
123
123
  load: async () => {
124
- return (await import("./secret-YCQ5IAMV.js")).zeroSecretCommand;
124
+ return (await import("./secret-NFJQKUPS.js")).zeroSecretCommand;
125
125
  }
126
126
  },
127
127
  {
128
128
  name: "github",
129
129
  description: "Upload and download GitHub files",
130
130
  load: async () => {
131
- return (await import("./github-D52YY3PW.js")).zeroGithubCommand;
131
+ return (await import("./github-R6JKL74U.js")).zeroGithubCommand;
132
132
  }
133
133
  },
134
134
  {
135
135
  name: "slack",
136
136
  description: "Send messages, upload files, and download files from Slack as the bot",
137
137
  load: async () => {
138
- return (await import("./slack-UF64OZUG.js")).zeroSlackCommand;
138
+ return (await import("./slack-JPM5WVX6.js")).zeroSlackCommand;
139
139
  }
140
140
  },
141
141
  {
142
142
  name: "telegram",
143
143
  description: "Inspect bots, send messages, upload files, and download files from Telegram",
144
144
  load: async () => {
145
- return (await import("./telegram-U76HOCPN.js")).zeroTelegramCommand;
145
+ return (await import("./telegram-BNX4UZTT.js")).zeroTelegramCommand;
146
146
  }
147
147
  },
148
148
  {
149
149
  name: "phone",
150
150
  description: "Send AgentPhone messages, upload files, and download media",
151
151
  load: async () => {
152
- return (await import("./phone-GI7KA3KZ.js")).zeroPhoneCommand;
152
+ return (await import("./phone-SNLGLD3J.js")).zeroPhoneCommand;
153
153
  }
154
154
  },
155
155
  {
156
156
  name: "variable",
157
157
  description: "Read or write non-sensitive configuration values",
158
158
  load: async () => {
159
- return (await import("./variable-NXY6SYD3.js")).zeroVariableCommand;
159
+ return (await import("./variable-IAIPAH3T.js")).zeroVariableCommand;
160
160
  }
161
161
  },
162
162
  {
163
163
  name: "logs",
164
164
  description: "View and search agent run logs",
165
165
  load: async () => {
166
- return (await import("./logs-GLJEMUTL.js")).zeroLogsCommand;
166
+ return (await import("./logs-XFVZAKVG.js")).zeroLogsCommand;
167
167
  }
168
168
  },
169
169
  {
170
170
  name: "search",
171
171
  description: "Search logs, chat, or get a recipe for external sources",
172
172
  load: async () => {
173
- return (await import("./search-V5ME4TLE.js")).zeroSearchCommand;
173
+ return (await import("./search-KXVRANLT.js")).zeroSearchCommand;
174
174
  }
175
175
  },
176
176
  {
177
177
  name: "chat",
178
178
  description: "Manage the current web chat thread",
179
179
  load: async () => {
180
- return (await import("./chat-LBGYMTDO.js")).zeroChatCommand;
180
+ return (await import("./chat-ELAJKQXT.js")).zeroChatCommand;
181
181
  }
182
182
  },
183
183
  {
184
184
  name: "resource",
185
185
  description: "Pull registry resources from private R2-backed archives",
186
186
  load: async () => {
187
- return (await import("./resource-UYWSXAUZ.js")).zeroResourceCommand;
187
+ return (await import("./resource-BA4FQCNQ.js")).zeroResourceCommand;
188
188
  }
189
189
  },
190
190
  {
191
191
  name: "whoami",
192
192
  description: "Show agent identity, run ID, and capabilities",
193
193
  load: async () => {
194
- return (await import("./whoami-NFGUYQYI.js")).zeroWhoamiCommand;
194
+ return (await import("./whoami-OVIXXMRR.js")).zeroWhoamiCommand;
195
195
  }
196
196
  },
197
197
  {
198
198
  name: "workflow",
199
199
  description: "Manage workflows",
200
200
  load: async () => {
201
- return (await import("./workflow-CIIUERNL.js")).zeroWorkflowCommand;
201
+ return (await import("./workflow-WWMTJDLF.js")).zeroWorkflowCommand;
202
202
  }
203
203
  },
204
204
  {
205
205
  name: "goal",
206
206
  description: "Manage the current thread goal",
207
207
  load: async () => {
208
- return (await import("./goal-CGDHCZQL.js")).zeroGoalCommand;
208
+ return (await import("./goal-BG47S2RP.js")).zeroGoalCommand;
209
209
  }
210
210
  },
211
211
  {
212
212
  name: "developer-support",
213
213
  description: "Submit a diagnostic report to the dev team",
214
214
  load: async () => {
215
- return (await import("./developer-support-PEFJTIAK.js")).zeroDeveloperSupportCommand;
215
+ return (await import("./developer-support-65OQ2RK4.js")).zeroDeveloperSupportCommand;
216
216
  }
217
217
  },
218
218
  {
219
219
  name: "computer-use",
220
220
  description: "Desktop app computer use through Zero CLI",
221
221
  load: async () => {
222
- return (await import("./computer-use-7M4K42CT.js")).zeroComputerUseCommand;
222
+ return (await import("./computer-use-XXPDTJSQ.js")).zeroComputerUseCommand;
223
223
  }
224
224
  },
225
225
  {
226
226
  name: "generate",
227
227
  description: "Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance",
228
228
  load: async () => {
229
- return (await import("./generate-BZ2SR3S2.js")).generateCommand;
229
+ return (await import("./generate-UEDRCAKX.js")).generateCommand;
230
230
  }
231
231
  },
232
232
  {
233
233
  name: "web",
234
234
  description: "Upload and download files via the web chat endpoint",
235
235
  load: async () => {
236
- return (await import("./web-QQFWWXYM.js")).zeroWebCommand;
236
+ return (await import("./web-3TJGHZNA.js")).zeroWebCommand;
237
237
  }
238
238
  },
239
239
  {
@@ -247,21 +247,21 @@ var ZERO_COMMAND_DEFINITIONS = [
247
247
  name: "host",
248
248
  description: "Publish static sites and clone owned hosted site files",
249
249
  load: async () => {
250
- return (await import("./host-RU374UJZ.js")).zeroHostCommand;
250
+ return (await import("./host-2VS2KOZQ.js")).zeroHostCommand;
251
251
  }
252
252
  },
253
253
  {
254
254
  name: "maps",
255
255
  description: "Use managed zero maps services",
256
256
  load: async () => {
257
- return (await import("./maps-QCEV2Y5T.js")).zeroMapsCommand;
257
+ return (await import("./maps-ZBULOEZW.js")).zeroMapsCommand;
258
258
  }
259
259
  },
260
260
  {
261
261
  name: "banking",
262
262
  description: "Use managed zero banking services",
263
263
  load: async () => {
264
- return (await import("./banking-3VE6CETL.js")).zeroBankingCommand;
264
+ return (await import("./banking-QBTNNOCQ.js")).zeroBankingCommand;
265
265
  }
266
266
  }
267
267
  ];
@@ -338,7 +338,6 @@ function buildZeroHelpText(payload = decodeZeroTokenPayload()) {
338
338
  " Send AgentPhone? zero phone message --help",
339
339
  " Upload AgentPhone? zero phone upload-file --help",
340
340
  " Download AgentPhone? zero phone download-file --help",
341
- " Automate a task? zero automation create --help",
342
341
  " List models? zero model ls",
343
342
  " Model routing? zero model-provider ls",
344
343
  " Update yourself? zero agent --help",
@@ -370,7 +369,7 @@ function registerZeroCommands(prog, commands) {
370
369
  var program = new Command();
371
370
  program.name("zero").description(
372
371
  "Zero CLI \u2014 interact with the zero platform from inside the sandbox"
373
- ).version("9.222.9").addHelpText("after", () => {
372
+ ).version("9.222.11").addHelpText("after", () => {
374
373
  return buildZeroHelpText();
375
374
  });
376
375
  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"],"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 { 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 // \"schedule\" is deliberately absent: the rename stub stays out of\n // token-scoped (agent) help but remains invokable and visible to humans.\n automation: \"automation:read\",\n doctor: null,\n credit: \"billing:write\",\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 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 generate: null,\n web: null,\n video: null,\n host: [\"host:read\", \"host:write\"],\n maps: \"maps:read\",\n banking: \"banking:read\",\n};\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: \"credit\",\n description: \"Create a Stripe checkout link to buy credits\",\n load: async () => {\n return (await import(\"./commands/zero/credit\")).zeroCreditCommand;\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: \"schedule\",\n description:\n \"(removed: use `zero automation`) Schedules are Automations now\",\n load: async () => {\n return (await import(\"./commands/zero/schedule\")).zeroScheduleCommand;\n },\n },\n {\n name: \"automation\",\n description: \"Create or manage scheduled automations\",\n load: async () => {\n return (await import(\"./commands/zero/automation\")).zeroAutomationCommand;\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: \"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: \"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: \"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: \"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): boolean {\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 addZeroCommand(\n prog: Command,\n cmd: Command,\n payload: ZeroTokenPayload | undefined,\n): void {\n const hidden = shouldHideCommand(cmd.name(), payload);\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\nexport function buildZeroHelpText(\n payload: ZeroTokenPayload | undefined = decodeZeroTokenPayload(),\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 doctor check-connector --env-name <ENV_NAME>\",\n ...(payload && !payload.capabilities.includes(\"billing:read\")\n ? []\n : [\" Check credits? zero doctor credit\"]),\n ...(shouldHideCommand(\"credit\", payload)\n ? []\n : [\" Buy credits? zero credit 20000\"]),\n \" Send a Slack message? zero slack message send --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 \" Automate a task? zero automation create --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 ...(shouldHideCommand(\"chat\", payload)\n ? []\n : [' Rename this chat? zero chat rename \"New title\"']),\n \" List generators? zero generate --help\",\n ' Generate image? zero generate image --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 ...(shouldHideCommand(\"maps\", payload)\n ? []\n : [\n ' Get directions? zero maps directions --origin \"SFO\" --destination \"Mountain View\" --json',\n ]),\n ...(shouldHideCommand(\"banking\", payload)\n ? []\n : [\" Read bank data? zero banking accounts --json\"]),\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): void {\n const token = process.env.ZERO_TOKEN;\n const payload = token ? decodeZeroTokenPayload(token) : undefined;\n\n for (const cmd of commands ?? buildDefaultCommands()) {\n addZeroCommand(prog, cmd, payload);\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/zero.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 { 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 // \"schedule\" and \"automation\" are deliberately absent: the removal stubs\n // stay out of token-scoped (agent) help but remain invokable and visible to\n // humans.\n doctor: null,\n credit: \"billing:write\",\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 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 generate: null,\n web: null,\n video: null,\n host: [\"host:read\", \"host:write\"],\n maps: \"maps:read\",\n banking: \"banking:read\",\n};\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: \"credit\",\n description: \"Create a Stripe checkout link to buy credits\",\n load: async () => {\n return (await import(\"./commands/zero/credit\")).zeroCreditCommand;\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: \"schedule\",\n description:\n \"(removed: use `zero automation`) Schedules are Automations now\",\n load: async () => {\n return (await import(\"./commands/zero/schedule\")).zeroScheduleCommand;\n },\n },\n {\n name: \"automation\",\n description: \"(removed: use `zero workflow`) Automations are workflows now\",\n load: async () => {\n return (await import(\"./commands/zero/automation\")).zeroAutomationCommand;\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: \"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: \"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: \"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: \"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): boolean {\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 addZeroCommand(\n prog: Command,\n cmd: Command,\n payload: ZeroTokenPayload | undefined,\n): void {\n const hidden = shouldHideCommand(cmd.name(), payload);\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\nexport function buildZeroHelpText(\n payload: ZeroTokenPayload | undefined = decodeZeroTokenPayload(),\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 doctor check-connector --env-name <ENV_NAME>\",\n ...(payload && !payload.capabilities.includes(\"billing:read\")\n ? []\n : [\" Check credits? zero doctor credit\"]),\n ...(shouldHideCommand(\"credit\", payload)\n ? []\n : [\" Buy credits? zero credit 20000\"]),\n \" Send a Slack message? zero slack message send --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 ...(shouldHideCommand(\"chat\", payload)\n ? []\n : [' Rename this chat? zero chat rename \"New title\"']),\n \" List generators? zero generate --help\",\n ' Generate image? zero generate image --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 ...(shouldHideCommand(\"maps\", payload)\n ? []\n : [\n ' Get directions? zero maps directions --origin \"SFO\" --destination \"Mountain View\" --json',\n ]),\n ...(shouldHideCommand(\"banking\", payload)\n ? []\n : [\" Read bank data? zero banking accounts --json\"]),\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): void {\n const token = process.env.ZERO_TOKEN;\n const payload = token ? decodeZeroTokenPayload(token) : undefined;\n\n for (const cmd of commands ?? buildDefaultCommands()) {\n addZeroCommand(prog, cmd, payload);\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"],"mappings":"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","names":[]}