@vm0/cli 9.245.2 → 9.245.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{agent-Y4IBUXSH.js → agent-4CGYOALD.js} +5 -6
- package/{agent-Y4IBUXSH.js.map → agent-4CGYOALD.js.map} +1 -1
- package/{banking-6ZH3HO5R.js → banking-GCHVRAPY.js} +3 -4
- package/{banking-6ZH3HO5R.js.map → banking-GCHVRAPY.js.map} +1 -1
- package/{chat-WYYQC23N.js → chat-RQKAW7FR.js} +4 -5
- package/{chat-WYYQC23N.js.map → chat-RQKAW7FR.js.map} +1 -1
- package/{chunk-HLEMRLRY.js → chunk-5CWUMNMG.js} +2 -2
- package/{chunk-462GZSDP.js → chunk-CPFBZJ2C.js} +4 -4
- package/{chunk-PM3ANOL6.js → chunk-EXTW7UBF.js} +2 -2
- package/{chunk-R5TGEYFS.js → chunk-KH3MTJCV.js} +2 -2
- package/{chunk-MNL5ZATJ.js → chunk-L34DKTMT.js} +2 -2
- package/{chunk-QFYTVVYX.js → chunk-MZJV5WOW.js} +249 -393
- package/chunk-MZJV5WOW.js.map +1 -0
- package/{chunk-I37LCNCV.js → chunk-OSWEW5PE.js} +329 -218
- package/chunk-OSWEW5PE.js.map +1 -0
- package/{chunk-S7RGM5X6.js → chunk-W55UDQNU.js} +15955 -15369
- package/chunk-W55UDQNU.js.map +1 -0
- package/{computer-use-E4R7GXCN.js → computer-use-2U55RQHG.js} +3 -4
- package/{computer-use-E4R7GXCN.js.map → computer-use-2U55RQHG.js.map} +1 -1
- package/{connector-MBMPF5RX.js → connector-CTT4V72Q.js} +6 -7
- package/{connector-MBMPF5RX.js.map → connector-CTT4V72Q.js.map} +1 -1
- package/{credit-PPE5TDPI.js → credit-SSUTF7R6.js} +4 -5
- package/{credit-PPE5TDPI.js.map → credit-SSUTF7R6.js.map} +1 -1
- package/{developer-support-EYWPPNRP.js → developer-support-FMW2ABRF.js} +3 -4
- package/{developer-support-EYWPPNRP.js.map → developer-support-FMW2ABRF.js.map} +1 -1
- package/{doctor-ECDE7LIK.js → doctor-2EQAHOT4.js} +3 -4
- package/{doctor-ECDE7LIK.js.map → doctor-2EQAHOT4.js.map} +1 -1
- package/{generate-DJDLYQ64.js → generate-U3RM4Q6R.js} +6 -8
- package/{generate-DJDLYQ64.js.map → generate-U3RM4Q6R.js.map} +1 -1
- package/{github-ZM75ZPOB.js → github-APH6C6X6.js} +3 -4
- package/{github-ZM75ZPOB.js.map → github-APH6C6X6.js.map} +1 -1
- package/{goal-EZOH2CGO.js → goal-BUHWITX4.js} +3 -4
- package/{goal-EZOH2CGO.js.map → goal-BUHWITX4.js.map} +1 -1
- package/{host-YNP6XAPV.js → host-H2RY75JS.js} +3 -4
- package/{host-YNP6XAPV.js.map → host-H2RY75JS.js.map} +1 -1
- package/{logs-NRQCRIE7.js → logs-DMRB45CG.js} +4 -5
- package/{logs-NRQCRIE7.js.map → logs-DMRB45CG.js.map} +1 -1
- package/{mail-V5CBBII5.js → mail-3ZLSTOTE.js} +5 -6
- package/{mail-V5CBBII5.js.map → mail-3ZLSTOTE.js.map} +1 -1
- package/{maps-753YZBUF.js → maps-NLP4KG7J.js} +3 -4
- package/{maps-753YZBUF.js.map → maps-NLP4KG7J.js.map} +1 -1
- package/{model-4G2736SH.js → model-A6VSPYLO.js} +4 -5
- package/{model-4G2736SH.js.map → model-A6VSPYLO.js.map} +1 -1
- package/{model-provider-HD3TF2IU.js → model-provider-4MZQGAXO.js} +4 -5
- package/{model-provider-HD3TF2IU.js.map → model-provider-4MZQGAXO.js.map} +1 -1
- package/{org-XNIYZFU3.js → org-CMN22RSQ.js} +5 -45
- package/org-CMN22RSQ.js.map +1 -0
- package/package.json +1 -2
- package/{phone-C7J24IVA.js → phone-L5UXOL3Q.js} +3 -4
- package/{phone-C7J24IVA.js.map → phone-L5UXOL3Q.js.map} +1 -1
- package/{preference-FZWREF3S.js → preference-HQFCKZYA.js} +3 -4
- package/{preference-FZWREF3S.js.map → preference-HQFCKZYA.js.map} +1 -1
- package/{resource-S4PPLX3A.js → resource-JUIVRW5O.js} +3 -4
- package/{resource-S4PPLX3A.js.map → resource-JUIVRW5O.js.map} +1 -1
- package/{scrape-SD7WZGRZ.js → scrape-VAFAIMSF.js} +3 -4
- package/{scrape-SD7WZGRZ.js.map → scrape-VAFAIMSF.js.map} +1 -1
- package/{search-GAR47AEJ.js → search-JB5VCK7F.js} +4 -5
- package/{search-GAR47AEJ.js.map → search-JB5VCK7F.js.map} +1 -1
- package/{secret-O253FYZR.js → secret-MFI5BKOL.js} +3 -4
- package/{secret-O253FYZR.js.map → secret-MFI5BKOL.js.map} +1 -1
- package/{slack-ZTJWGFHQ.js → slack-FSFZ5FVX.js} +3 -4
- package/{slack-ZTJWGFHQ.js.map → slack-FSFZ5FVX.js.map} +1 -1
- package/{teams-526UBPFQ.js → teams-OP2KCQTH.js} +3 -4
- package/{teams-526UBPFQ.js.map → teams-OP2KCQTH.js.map} +1 -1
- package/{telegram-46KXR257.js → telegram-XAIIVIOI.js} +3 -4
- package/{telegram-46KXR257.js.map → telegram-XAIIVIOI.js.map} +1 -1
- package/{variable-LUQEU4QR.js → variable-SBKVCLKH.js} +3 -4
- package/{variable-LUQEU4QR.js.map → variable-SBKVCLKH.js.map} +1 -1
- package/{video-I7ULZOPN.js → video-D55KEPEA.js} +4 -6
- package/{video-I7ULZOPN.js.map → video-D55KEPEA.js.map} +1 -1
- package/{web-C32RSDLJ.js → web-663IHNZI.js} +5 -7
- package/{web-C32RSDLJ.js.map → web-663IHNZI.js.map} +1 -1
- package/{web-search-3F5SDLMG.js → web-search-TSP743HI.js} +3 -4
- package/{web-search-3F5SDLMG.js.map → web-search-TSP743HI.js.map} +1 -1
- package/{whoami-O63BTFVG.js → whoami-CQ2HMP2Q.js} +16 -12
- package/{whoami-O63BTFVG.js.map → whoami-CQ2HMP2Q.js.map} +1 -1
- package/{workflow-I6ZG7WBH.js → workflow-XJF657OQ.js} +3 -4
- package/{workflow-I6ZG7WBH.js.map → workflow-XJF657OQ.js.map} +1 -1
- package/zero.js +174 -37
- package/zero.js.map +1 -1
- package/chunk-I37LCNCV.js.map +0 -1
- package/chunk-LC4G5YDA.js +0 -678
- package/chunk-LC4G5YDA.js.map +0 -1
- package/chunk-QFYTVVYX.js.map +0 -1
- package/chunk-S7RGM5X6.js.map +0 -1
- package/chunk-ZBN5RDRS.js +0 -149
- package/chunk-ZBN5RDRS.js.map +0 -1
- package/index.js +0 -267
- package/index.js.map +0 -1
- package/org-XNIYZFU3.js.map +0 -1
- /package/{chunk-HLEMRLRY.js.map → chunk-5CWUMNMG.js.map} +0 -0
- /package/{chunk-462GZSDP.js.map → chunk-CPFBZJ2C.js.map} +0 -0
- /package/{chunk-PM3ANOL6.js.map → chunk-EXTW7UBF.js.map} +0 -0
- /package/{chunk-R5TGEYFS.js.map → chunk-KH3MTJCV.js.map} +0 -0
- /package/{chunk-MNL5ZATJ.js.map → chunk-L34DKTMT.js.map} +0 -0
package/zero.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __createRequire } from "node:module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
|
-
import {
|
|
5
|
-
configureGlobalProxyFromEnv
|
|
6
|
-
} from "./chunk-ZBN5RDRS.js";
|
|
7
4
|
import {
|
|
8
5
|
decodeZeroTokenPayload
|
|
9
6
|
} from "./chunk-LRHXR7JT.js";
|
|
@@ -16,6 +13,146 @@ import {
|
|
|
16
13
|
|
|
17
14
|
// src/zero.ts
|
|
18
15
|
init_esm_shims();
|
|
16
|
+
|
|
17
|
+
// src/instrument.ts
|
|
18
|
+
init_esm_shims();
|
|
19
|
+
var DSN = process.env.SENTRY_DSN ?? "https://268d9b4cd051531805af76a5b3934dca@o4510583739777024.ingest.us.sentry.io/4510832047947776";
|
|
20
|
+
var OPERATIONAL_ERROR_PATTERNS = [
|
|
21
|
+
/not authenticated/i,
|
|
22
|
+
/not found/i,
|
|
23
|
+
/agent not found/i,
|
|
24
|
+
/version not found/i,
|
|
25
|
+
/checkpoint not found/i,
|
|
26
|
+
/session not found/i,
|
|
27
|
+
/file not found/i,
|
|
28
|
+
/environment file not found/i,
|
|
29
|
+
/invalid format/i,
|
|
30
|
+
/invalid.*config/i,
|
|
31
|
+
/rate limit/i,
|
|
32
|
+
/concurrent run limit/i,
|
|
33
|
+
/insufficient.*credit/i,
|
|
34
|
+
/no model provider/i,
|
|
35
|
+
/network error/i,
|
|
36
|
+
/network issue/i,
|
|
37
|
+
/fetch failed/i,
|
|
38
|
+
/connection refused/i,
|
|
39
|
+
/timeout/i,
|
|
40
|
+
/ECONNREFUSED/i,
|
|
41
|
+
/ETIMEDOUT/i,
|
|
42
|
+
/forbidden/i,
|
|
43
|
+
/access denied/i
|
|
44
|
+
];
|
|
45
|
+
function isOperationalError(error) {
|
|
46
|
+
if (!(error instanceof Error)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const message = error.message;
|
|
50
|
+
return OPERATIONAL_ERROR_PATTERNS.some((pattern) => {
|
|
51
|
+
return pattern.test(message);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (DSN) {
|
|
55
|
+
const [Sentry, os] = await Promise.all([
|
|
56
|
+
import("./esm-PZKPCIYJ.js"),
|
|
57
|
+
import("os")
|
|
58
|
+
]);
|
|
59
|
+
Sentry.init({
|
|
60
|
+
dsn: DSN,
|
|
61
|
+
environment: process.env.SENTRY_ENVIRONMENT ?? "production",
|
|
62
|
+
release: "9.245.3",
|
|
63
|
+
sendDefaultPii: false,
|
|
64
|
+
tracesSampleRate: 0,
|
|
65
|
+
shutdownTimeout: 500,
|
|
66
|
+
initialScope: {
|
|
67
|
+
tags: {
|
|
68
|
+
app: "cli"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
// Filter out operational errors - only send programmer errors (bugs)
|
|
72
|
+
beforeSend(event, hint) {
|
|
73
|
+
const error = hint.originalException;
|
|
74
|
+
if (isOperationalError(error)) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return event;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
Sentry.setContext("cli", {
|
|
81
|
+
version: "9.245.3",
|
|
82
|
+
command: process.argv.slice(2).join(" ")
|
|
83
|
+
});
|
|
84
|
+
Sentry.setContext("runtime", {
|
|
85
|
+
node_version: process.version,
|
|
86
|
+
os_platform: os.platform(),
|
|
87
|
+
os_release: os.release()
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function handleEpipe(err) {
|
|
91
|
+
if (err.code === "EPIPE") {
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
throw err;
|
|
95
|
+
}
|
|
96
|
+
process.stdout.on("error", handleEpipe);
|
|
97
|
+
process.stderr.on("error", handleEpipe);
|
|
98
|
+
|
|
99
|
+
// src/lib/network/proxy.ts
|
|
100
|
+
init_esm_shims();
|
|
101
|
+
var configured = false;
|
|
102
|
+
function getEnvValue(lowercaseKey, uppercaseKey) {
|
|
103
|
+
const lowercaseValue = process.env[lowercaseKey]?.trim();
|
|
104
|
+
if (lowercaseValue) {
|
|
105
|
+
return lowercaseValue;
|
|
106
|
+
}
|
|
107
|
+
const uppercaseValue = process.env[uppercaseKey]?.trim();
|
|
108
|
+
if (uppercaseValue) {
|
|
109
|
+
return uppercaseValue;
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
function getProxyConfigFromEnv() {
|
|
114
|
+
const httpProxy = getEnvValue("http_proxy", "HTTP_PROXY");
|
|
115
|
+
const httpsProxy = getEnvValue("https_proxy", "HTTPS_PROXY");
|
|
116
|
+
if (!httpProxy && !httpsProxy) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const noProxy = getEnvValue("no_proxy", "NO_PROXY");
|
|
120
|
+
const config = {};
|
|
121
|
+
if (httpProxy) {
|
|
122
|
+
config.httpProxy = httpProxy;
|
|
123
|
+
}
|
|
124
|
+
if (httpsProxy) {
|
|
125
|
+
config.httpsProxy = httpsProxy;
|
|
126
|
+
}
|
|
127
|
+
if (noProxy) {
|
|
128
|
+
config.noProxy = noProxy;
|
|
129
|
+
}
|
|
130
|
+
return config;
|
|
131
|
+
}
|
|
132
|
+
async function configureGlobalProxyFromEnv() {
|
|
133
|
+
if (configured) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const config = getProxyConfigFromEnv();
|
|
137
|
+
if (!config) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
const { EnvHttpProxyAgent, setGlobalDispatcher } = await import("./undici-ZMFN7TNU.js");
|
|
142
|
+
const dispatcher = new EnvHttpProxyAgent(config);
|
|
143
|
+
setGlobalDispatcher(dispatcher);
|
|
144
|
+
configured = true;
|
|
145
|
+
} catch (error) {
|
|
146
|
+
throw new Error(
|
|
147
|
+
"Invalid proxy configuration. Check HTTP_PROXY/HTTPS_PROXY/NO_PROXY values.",
|
|
148
|
+
{
|
|
149
|
+
cause: error instanceof Error ? error : void 0
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// src/zero.ts
|
|
19
156
|
var COMMAND_CAPABILITY_MAP = {
|
|
20
157
|
agent: "agent:read",
|
|
21
158
|
workflow: "agent:read",
|
|
@@ -53,147 +190,147 @@ var ZERO_COMMAND_DEFINITIONS = [
|
|
|
53
190
|
name: "org",
|
|
54
191
|
description: "Manage organization settings, members, and providers",
|
|
55
192
|
load: async () => {
|
|
56
|
-
return (await import("./org-
|
|
193
|
+
return (await import("./org-CMN22RSQ.js")).zeroOrgCommand;
|
|
57
194
|
}
|
|
58
195
|
},
|
|
59
196
|
{
|
|
60
197
|
name: "model",
|
|
61
198
|
description: "List available models and model-switching guidance",
|
|
62
199
|
load: async () => {
|
|
63
|
-
return (await import("./model-
|
|
200
|
+
return (await import("./model-A6VSPYLO.js")).zeroModelCommand;
|
|
64
201
|
}
|
|
65
202
|
},
|
|
66
203
|
{
|
|
67
204
|
name: "model-provider",
|
|
68
205
|
description: "Inspect model provider routing",
|
|
69
206
|
load: async () => {
|
|
70
|
-
return (await import("./model-provider-
|
|
207
|
+
return (await import("./model-provider-4MZQGAXO.js")).zeroModelProviderCommand;
|
|
71
208
|
}
|
|
72
209
|
},
|
|
73
210
|
{
|
|
74
211
|
name: "agent",
|
|
75
212
|
description: "View or manage zero agents",
|
|
76
213
|
load: async () => {
|
|
77
|
-
return (await import("./agent-
|
|
214
|
+
return (await import("./agent-4CGYOALD.js")).zeroAgentCommand;
|
|
78
215
|
}
|
|
79
216
|
},
|
|
80
217
|
{
|
|
81
218
|
name: "connector",
|
|
82
219
|
description: "Check third-party service connections (GitHub, Slack, etc.)",
|
|
83
220
|
load: async () => {
|
|
84
|
-
return (await import("./connector-
|
|
221
|
+
return (await import("./connector-CTT4V72Q.js")).zeroConnectorCommand;
|
|
85
222
|
}
|
|
86
223
|
},
|
|
87
224
|
{
|
|
88
225
|
name: "mail",
|
|
89
226
|
description: "Review and send mail through Gmail or Outlook Mail",
|
|
90
227
|
load: async () => {
|
|
91
|
-
return (await import("./mail-
|
|
228
|
+
return (await import("./mail-3ZLSTOTE.js")).zeroMailCommand;
|
|
92
229
|
}
|
|
93
230
|
},
|
|
94
231
|
{
|
|
95
232
|
name: "credit",
|
|
96
233
|
description: "View or buy credits",
|
|
97
234
|
load: async () => {
|
|
98
|
-
return (await import("./credit-
|
|
235
|
+
return (await import("./credit-SSUTF7R6.js")).zeroCreditCommand;
|
|
99
236
|
}
|
|
100
237
|
},
|
|
101
238
|
{
|
|
102
239
|
name: "doctor",
|
|
103
240
|
description: "Diagnose runtime issues (connector health, permission denials)",
|
|
104
241
|
load: async () => {
|
|
105
|
-
return (await import("./doctor-
|
|
242
|
+
return (await import("./doctor-2EQAHOT4.js")).zeroDoctorCommand;
|
|
106
243
|
}
|
|
107
244
|
},
|
|
108
245
|
{
|
|
109
246
|
name: "preference",
|
|
110
247
|
description: "View or update user preferences (timezone, notifications)",
|
|
111
248
|
load: async () => {
|
|
112
|
-
return (await import("./preference-
|
|
249
|
+
return (await import("./preference-HQFCKZYA.js")).zeroPreferenceCommand;
|
|
113
250
|
}
|
|
114
251
|
},
|
|
115
252
|
{
|
|
116
253
|
name: "secret",
|
|
117
254
|
description: "Read or write secrets (API keys, tokens)",
|
|
118
255
|
load: async () => {
|
|
119
|
-
return (await import("./secret-
|
|
256
|
+
return (await import("./secret-MFI5BKOL.js")).zeroSecretCommand;
|
|
120
257
|
}
|
|
121
258
|
},
|
|
122
259
|
{
|
|
123
260
|
name: "github",
|
|
124
261
|
description: "Upload and download GitHub files",
|
|
125
262
|
load: async () => {
|
|
126
|
-
return (await import("./github-
|
|
263
|
+
return (await import("./github-APH6C6X6.js")).zeroGithubCommand;
|
|
127
264
|
}
|
|
128
265
|
},
|
|
129
266
|
{
|
|
130
267
|
name: "slack",
|
|
131
268
|
description: "Send messages, upload files, and download files from Slack as the bot",
|
|
132
269
|
load: async () => {
|
|
133
|
-
return (await import("./slack-
|
|
270
|
+
return (await import("./slack-FSFZ5FVX.js")).zeroSlackCommand;
|
|
134
271
|
}
|
|
135
272
|
},
|
|
136
273
|
{
|
|
137
274
|
name: "teams",
|
|
138
275
|
description: "Send Microsoft Teams messages, upload files, and download files",
|
|
139
276
|
load: async () => {
|
|
140
|
-
return (await import("./teams-
|
|
277
|
+
return (await import("./teams-OP2KCQTH.js")).zeroTeamsCommand;
|
|
141
278
|
}
|
|
142
279
|
},
|
|
143
280
|
{
|
|
144
281
|
name: "telegram",
|
|
145
282
|
description: "Inspect bots, send messages, upload files, and download files from Telegram",
|
|
146
283
|
load: async () => {
|
|
147
|
-
return (await import("./telegram-
|
|
284
|
+
return (await import("./telegram-XAIIVIOI.js")).zeroTelegramCommand;
|
|
148
285
|
}
|
|
149
286
|
},
|
|
150
287
|
{
|
|
151
288
|
name: "phone",
|
|
152
289
|
description: "Send AgentPhone messages, upload files, and download media",
|
|
153
290
|
load: async () => {
|
|
154
|
-
return (await import("./phone-
|
|
291
|
+
return (await import("./phone-L5UXOL3Q.js")).zeroPhoneCommand;
|
|
155
292
|
}
|
|
156
293
|
},
|
|
157
294
|
{
|
|
158
295
|
name: "variable",
|
|
159
296
|
description: "Read or write non-sensitive configuration values",
|
|
160
297
|
load: async () => {
|
|
161
|
-
return (await import("./variable-
|
|
298
|
+
return (await import("./variable-SBKVCLKH.js")).zeroVariableCommand;
|
|
162
299
|
}
|
|
163
300
|
},
|
|
164
301
|
{
|
|
165
302
|
name: "logs",
|
|
166
303
|
description: "View and search agent run logs",
|
|
167
304
|
load: async () => {
|
|
168
|
-
return (await import("./logs-
|
|
305
|
+
return (await import("./logs-DMRB45CG.js")).zeroLogsCommand;
|
|
169
306
|
}
|
|
170
307
|
},
|
|
171
308
|
{
|
|
172
309
|
name: "search",
|
|
173
310
|
description: "Search logs, chat, or get a recipe for external sources",
|
|
174
311
|
load: async () => {
|
|
175
|
-
return (await import("./search-
|
|
312
|
+
return (await import("./search-JB5VCK7F.js")).zeroSearchCommand;
|
|
176
313
|
}
|
|
177
314
|
},
|
|
178
315
|
{
|
|
179
316
|
name: "chat",
|
|
180
317
|
description: "Manage the current web chat thread",
|
|
181
318
|
load: async () => {
|
|
182
|
-
return (await import("./chat-
|
|
319
|
+
return (await import("./chat-RQKAW7FR.js")).zeroChatCommand;
|
|
183
320
|
}
|
|
184
321
|
},
|
|
185
322
|
{
|
|
186
323
|
name: "resource",
|
|
187
324
|
description: "Pull registry resources from private R2-backed archives",
|
|
188
325
|
load: async () => {
|
|
189
|
-
return (await import("./resource-
|
|
326
|
+
return (await import("./resource-JUIVRW5O.js")).zeroResourceCommand;
|
|
190
327
|
}
|
|
191
328
|
},
|
|
192
329
|
{
|
|
193
330
|
name: "whoami",
|
|
194
331
|
description: "Show agent identity, run ID, and capabilities",
|
|
195
332
|
load: async () => {
|
|
196
|
-
return (await import("./whoami-
|
|
333
|
+
return (await import("./whoami-CQ2HMP2Q.js")).zeroWhoamiCommand;
|
|
197
334
|
}
|
|
198
335
|
},
|
|
199
336
|
{
|
|
@@ -207,84 +344,84 @@ var ZERO_COMMAND_DEFINITIONS = [
|
|
|
207
344
|
name: "workflow",
|
|
208
345
|
description: "Manage workflows",
|
|
209
346
|
load: async () => {
|
|
210
|
-
return (await import("./workflow-
|
|
347
|
+
return (await import("./workflow-XJF657OQ.js")).zeroWorkflowCommand;
|
|
211
348
|
}
|
|
212
349
|
},
|
|
213
350
|
{
|
|
214
351
|
name: "goal",
|
|
215
352
|
description: "Manage the current thread goal",
|
|
216
353
|
load: async () => {
|
|
217
|
-
return (await import("./goal-
|
|
354
|
+
return (await import("./goal-BUHWITX4.js")).zeroGoalCommand;
|
|
218
355
|
}
|
|
219
356
|
},
|
|
220
357
|
{
|
|
221
358
|
name: "developer-support",
|
|
222
359
|
description: "Submit a diagnostic report to the dev team",
|
|
223
360
|
load: async () => {
|
|
224
|
-
return (await import("./developer-support-
|
|
361
|
+
return (await import("./developer-support-FMW2ABRF.js")).zeroDeveloperSupportCommand;
|
|
225
362
|
}
|
|
226
363
|
},
|
|
227
364
|
{
|
|
228
365
|
name: "computer-use",
|
|
229
366
|
description: "Desktop app computer use through Zero CLI",
|
|
230
367
|
load: async () => {
|
|
231
|
-
return (await import("./computer-use-
|
|
368
|
+
return (await import("./computer-use-2U55RQHG.js")).zeroComputerUseCommand;
|
|
232
369
|
}
|
|
233
370
|
},
|
|
234
371
|
{
|
|
235
372
|
name: "generate",
|
|
236
373
|
description: "Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance",
|
|
237
374
|
load: async () => {
|
|
238
|
-
return (await import("./generate-
|
|
375
|
+
return (await import("./generate-U3RM4Q6R.js")).generateCommand;
|
|
239
376
|
}
|
|
240
377
|
},
|
|
241
378
|
{
|
|
242
379
|
name: "web",
|
|
243
380
|
description: "Upload and download files via the web chat endpoint",
|
|
244
381
|
load: async () => {
|
|
245
|
-
return (await import("./web-
|
|
382
|
+
return (await import("./web-663IHNZI.js")).zeroWebCommand;
|
|
246
383
|
}
|
|
247
384
|
},
|
|
248
385
|
{
|
|
249
386
|
name: "video",
|
|
250
387
|
description: "Video processing utilities",
|
|
251
388
|
load: async () => {
|
|
252
|
-
return (await import("./video-
|
|
389
|
+
return (await import("./video-D55KEPEA.js")).zeroVideoCommand;
|
|
253
390
|
}
|
|
254
391
|
},
|
|
255
392
|
{
|
|
256
393
|
name: "host",
|
|
257
394
|
description: "Publish static sites and clone owned hosted site files",
|
|
258
395
|
load: async () => {
|
|
259
|
-
return (await import("./host-
|
|
396
|
+
return (await import("./host-H2RY75JS.js")).zeroHostCommand;
|
|
260
397
|
}
|
|
261
398
|
},
|
|
262
399
|
{
|
|
263
400
|
name: "maps",
|
|
264
401
|
description: "Use managed zero maps services",
|
|
265
402
|
load: async () => {
|
|
266
|
-
return (await import("./maps-
|
|
403
|
+
return (await import("./maps-NLP4KG7J.js")).zeroMapsCommand;
|
|
267
404
|
}
|
|
268
405
|
},
|
|
269
406
|
{
|
|
270
407
|
name: "scrape",
|
|
271
408
|
description: "Scrape public web pages through managed zero scrape",
|
|
272
409
|
load: async () => {
|
|
273
|
-
return (await import("./scrape-
|
|
410
|
+
return (await import("./scrape-VAFAIMSF.js")).zeroScrapeCommand;
|
|
274
411
|
}
|
|
275
412
|
},
|
|
276
413
|
{
|
|
277
414
|
name: "web-search",
|
|
278
415
|
description: "Search the public web through managed zero web search",
|
|
279
416
|
load: async () => {
|
|
280
|
-
return (await import("./web-search-
|
|
417
|
+
return (await import("./web-search-TSP743HI.js")).zeroWebSearchCommand;
|
|
281
418
|
}
|
|
282
419
|
},
|
|
283
420
|
{
|
|
284
421
|
name: "banking",
|
|
285
422
|
description: "Use managed zero banking services",
|
|
286
423
|
load: async () => {
|
|
287
|
-
return (await import("./banking-
|
|
424
|
+
return (await import("./banking-GCHVRAPY.js")).zeroBankingCommand;
|
|
288
425
|
}
|
|
289
426
|
}
|
|
290
427
|
];
|
|
@@ -399,7 +536,7 @@ function registerZeroCommands(prog, commands) {
|
|
|
399
536
|
var program = new Command();
|
|
400
537
|
program.name("zero").description(
|
|
401
538
|
"Zero CLI \u2014 interact with the zero platform from inside the sandbox"
|
|
402
|
-
).version("9.245.
|
|
539
|
+
).version("9.245.3").addHelpText("after", () => {
|
|
403
540
|
return buildZeroHelpText();
|
|
404
541
|
});
|
|
405
542
|
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 mail: \"connector:read\",\n doctor: null,\n credit: [\"billing:read\", \"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 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 intro: null,\n generate: null,\n web: null,\n video: null,\n host: [\"host:read\", \"host:write\"],\n maps: \"maps:read\",\n scrape: \"scrape:read\",\n \"web-search\": \"web-search: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: \"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: \"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: \"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: \"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: \"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: \"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: \"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 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 \" Send a Slack message? zero slack message send --help\",\n ...(shouldHideCommand(\"mail\", payload)\n ? []\n : [\" Link Gmail draft? zero mail link --help\"]),\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 ...(shouldHideCommand(\"chat\", payload)\n ? []\n : [' Rename this chat? zero chat rename \"New title\"']),\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 ...(shouldHideCommand(\"maps\", payload)\n ? []\n : [\n ' Get directions? zero maps directions --origin \"SFO\" --destination \"Mountain View\" --json',\n ]),\n ...(shouldHideCommand(\"scrape\", payload)\n ? []\n : [\" Scrape a web page? zero scrape https://example.com --json\"]),\n ...(shouldHideCommand(\"web-search\", payload)\n ? []\n : [' Search the public web? zero web-search \"latest news\" --json']),\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","../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 { 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 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 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 intro: null,\n generate: null,\n web: null,\n video: null,\n host: [\"host:read\", \"host:write\"],\n maps: \"maps:read\",\n scrape: \"scrape:read\",\n \"web-search\": \"web-search: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: \"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: \"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: \"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: \"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: \"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: \"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: \"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 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 \" Send a Slack message? zero slack message send --help\",\n ...(shouldHideCommand(\"mail\", payload)\n ? []\n : [\" Link Gmail draft? zero mail link --help\"]),\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 ...(shouldHideCommand(\"chat\", payload)\n ? []\n : [' Rename this chat? zero chat rename \"New title\"']),\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 ...(shouldHideCommand(\"maps\", payload)\n ? []\n : [\n ' Get directions? zero maps directions --origin \"SFO\" --destination \"Mountain View\" --json',\n ]),\n ...(shouldHideCommand(\"scrape\", payload)\n ? []\n : [\" Scrape a web page? zero scrape https://example.com --json\"]),\n ...(shouldHideCommand(\"web-search\", payload)\n ? []\n : [' Search the public web? zero web-search \"latest news\" --json']),\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","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":[]}
|