@vm0/cli 9.265.0 → 9.267.0
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-Z2FIHSGT.js → agent-OMZZFFOX.js} +6 -6
- package/{banking-LGUZ5VNG.js → banking-BVCIXQ5N.js} +4 -4
- package/{browser-YLIWZZ6D.js → browser-MZYVERXT.js} +13 -33
- package/browser-MZYVERXT.js.map +1 -0
- package/{chat-EI7BN74G.js → chat-XAIEMJJJ.js} +5 -5
- package/{chunk-IW4TR3DM.js → chunk-3AYDKKKU.js} +2 -2
- package/{chunk-HYSVCVEH.js → chunk-5TMLTATP.js} +10 -2
- package/chunk-5TMLTATP.js.map +1 -0
- package/{chunk-SZUNGLD5.js → chunk-FLF6ZMKJ.js} +11 -17
- package/chunk-FLF6ZMKJ.js.map +1 -0
- package/{chunk-7ZIFGPRL.js → chunk-GTGI6NWJ.js} +2 -2
- package/{chunk-HCF2BKID.js → chunk-GU4ZJECC.js} +2 -2
- package/{chunk-K36BESR5.js → chunk-LYI45KHY.js} +251 -95
- package/chunk-LYI45KHY.js.map +1 -0
- package/{chunk-TK3OYU57.js → chunk-PYNAJYFD.js} +2 -2
- package/{chunk-VK5XI46M.js → chunk-RU2TI2U2.js} +2 -2
- package/{chunk-YL2ISI5E.js → chunk-TX5E4N6E.js} +4 -4
- package/{computer-use-MEF72YRU.js → computer-use-OMUCKEH4.js} +4 -4
- package/{connector-ADZC3UUD.js → connector-DZ5RLANA.js} +7 -7
- package/{credit-XP5O4KDG.js → credit-ZTZPYLHJ.js} +5 -5
- package/{developer-support-EEYI4ZIM.js → developer-support-VWUHT7BY.js} +4 -4
- package/{doctor-6IKUKRIN.js → doctor-WTSDGI5C.js} +5 -5
- package/{feishu-TMG2N5KK.js → feishu-CWVMYPJJ.js} +4 -4
- package/{finance-O5MHGWTZ.js → finance-67XW3BDK.js} +4 -4
- package/{generate-AUPFFQLI.js → generate-5BFGTIYQ.js} +5 -5
- package/{github-CRHENPJV.js → github-D2WOKACM.js} +4 -4
- package/{goal-MUYVQVAB.js → goal-PB5PPIKK.js} +4 -4
- package/{host-V7DG7VT2.js → host-SKUS46EY.js} +4 -4
- package/{logs-U5AKPOEH.js → logs-UVEMZZGC.js} +5 -5
- package/{mail-DBQGZ5QR.js → mail-NIXLTFM2.js} +6 -6
- package/{maps-AWH5HB4Y.js → maps-O4EJGJGI.js} +4 -4
- package/{model-D55WMDT2.js → model-CYLLV5SU.js} +5 -5
- package/{model-provider-ZGDNIWDF.js → model-provider-VDFCPVGR.js} +5 -5
- package/{org-EQUTXVUP.js → org-EKZ5TZ6C.js} +4 -4
- package/package.json +1 -1
- package/{people-search-YAEDYHCN.js → people-search-SXKWISQC.js} +4 -4
- package/{phone-HCJIFH4N.js → phone-KQUWXL2F.js} +4 -4
- package/{preference-RNU6XCSS.js → preference-ZUT6YDYU.js} +4 -4
- package/{resource-OPBBCIDG.js → resource-WLJIYIAG.js} +4 -4
- package/{scrape-5NOKI766.js → scrape-RBI7L7OI.js} +4 -4
- package/{search-OJF44IQ7.js → search-N4HHOYG3.js} +5 -5
- package/{secret-Q6N2AQ7A.js → secret-M3JN4ILK.js} +4 -4
- package/{slack-KHAA7PN5.js → slack-RKIRNUMX.js} +4 -4
- package/{teams-C2JNGM46.js → teams-EOQH4NSD.js} +4 -4
- package/{telegram-NGPTNBBI.js → telegram-TKIUQBRV.js} +4 -4
- package/{upgrade-75V657YJ.js → upgrade-Z46EJ6LM.js} +3 -3
- package/{variable-3DW76KDG.js → variable-4MKDDCMH.js} +4 -4
- package/{video-V2EXAJCM.js → video-L5EPZEBJ.js} +3 -3
- package/{weather-KBKC4WV7.js → weather-WBTWM2L3.js} +4 -4
- package/{web-HRDFN5K6.js → web-OI25YJCD.js} +4 -4
- package/{web-search-OWKG5UTV.js → web-search-55JR4DFQ.js} +4 -4
- package/{whoami-WDMQPK2D.js → whoami-5B24JEWY.js} +6 -6
- package/{workflow-3I3UWWQE.js → workflow-F2DNCBSD.js} +4 -4
- package/zero.js +42 -42
- package/browser-YLIWZZ6D.js.map +0 -1
- package/chunk-HYSVCVEH.js.map +0 -1
- package/chunk-K36BESR5.js.map +0 -1
- package/chunk-SZUNGLD5.js.map +0 -1
- /package/{agent-Z2FIHSGT.js.map → agent-OMZZFFOX.js.map} +0 -0
- /package/{banking-LGUZ5VNG.js.map → banking-BVCIXQ5N.js.map} +0 -0
- /package/{chat-EI7BN74G.js.map → chat-XAIEMJJJ.js.map} +0 -0
- /package/{chunk-IW4TR3DM.js.map → chunk-3AYDKKKU.js.map} +0 -0
- /package/{chunk-7ZIFGPRL.js.map → chunk-GTGI6NWJ.js.map} +0 -0
- /package/{chunk-HCF2BKID.js.map → chunk-GU4ZJECC.js.map} +0 -0
- /package/{chunk-TK3OYU57.js.map → chunk-PYNAJYFD.js.map} +0 -0
- /package/{chunk-VK5XI46M.js.map → chunk-RU2TI2U2.js.map} +0 -0
- /package/{chunk-YL2ISI5E.js.map → chunk-TX5E4N6E.js.map} +0 -0
- /package/{computer-use-MEF72YRU.js.map → computer-use-OMUCKEH4.js.map} +0 -0
- /package/{connector-ADZC3UUD.js.map → connector-DZ5RLANA.js.map} +0 -0
- /package/{credit-XP5O4KDG.js.map → credit-ZTZPYLHJ.js.map} +0 -0
- /package/{developer-support-EEYI4ZIM.js.map → developer-support-VWUHT7BY.js.map} +0 -0
- /package/{doctor-6IKUKRIN.js.map → doctor-WTSDGI5C.js.map} +0 -0
- /package/{feishu-TMG2N5KK.js.map → feishu-CWVMYPJJ.js.map} +0 -0
- /package/{finance-O5MHGWTZ.js.map → finance-67XW3BDK.js.map} +0 -0
- /package/{generate-AUPFFQLI.js.map → generate-5BFGTIYQ.js.map} +0 -0
- /package/{github-CRHENPJV.js.map → github-D2WOKACM.js.map} +0 -0
- /package/{goal-MUYVQVAB.js.map → goal-PB5PPIKK.js.map} +0 -0
- /package/{host-V7DG7VT2.js.map → host-SKUS46EY.js.map} +0 -0
- /package/{logs-U5AKPOEH.js.map → logs-UVEMZZGC.js.map} +0 -0
- /package/{mail-DBQGZ5QR.js.map → mail-NIXLTFM2.js.map} +0 -0
- /package/{maps-AWH5HB4Y.js.map → maps-O4EJGJGI.js.map} +0 -0
- /package/{model-D55WMDT2.js.map → model-CYLLV5SU.js.map} +0 -0
- /package/{model-provider-ZGDNIWDF.js.map → model-provider-VDFCPVGR.js.map} +0 -0
- /package/{org-EQUTXVUP.js.map → org-EKZ5TZ6C.js.map} +0 -0
- /package/{people-search-YAEDYHCN.js.map → people-search-SXKWISQC.js.map} +0 -0
- /package/{phone-HCJIFH4N.js.map → phone-KQUWXL2F.js.map} +0 -0
- /package/{preference-RNU6XCSS.js.map → preference-ZUT6YDYU.js.map} +0 -0
- /package/{resource-OPBBCIDG.js.map → resource-WLJIYIAG.js.map} +0 -0
- /package/{scrape-5NOKI766.js.map → scrape-RBI7L7OI.js.map} +0 -0
- /package/{search-OJF44IQ7.js.map → search-N4HHOYG3.js.map} +0 -0
- /package/{secret-Q6N2AQ7A.js.map → secret-M3JN4ILK.js.map} +0 -0
- /package/{slack-KHAA7PN5.js.map → slack-RKIRNUMX.js.map} +0 -0
- /package/{teams-C2JNGM46.js.map → teams-EOQH4NSD.js.map} +0 -0
- /package/{telegram-NGPTNBBI.js.map → telegram-TKIUQBRV.js.map} +0 -0
- /package/{upgrade-75V657YJ.js.map → upgrade-Z46EJ6LM.js.map} +0 -0
- /package/{variable-3DW76KDG.js.map → variable-4MKDDCMH.js.map} +0 -0
- /package/{video-V2EXAJCM.js.map → video-L5EPZEBJ.js.map} +0 -0
- /package/{weather-KBKC4WV7.js.map → weather-WBTWM2L3.js.map} +0 -0
- /package/{web-HRDFN5K6.js.map → web-OI25YJCD.js.map} +0 -0
- /package/{web-search-OWKG5UTV.js.map → web-search-55JR4DFQ.js.map} +0 -0
- /package/{whoami-WDMQPK2D.js.map → whoami-5B24JEWY.js.map} +0 -0
- /package/{workflow-3I3UWWQE.js.map → workflow-F2DNCBSD.js.map} +0 -0
|
@@ -4,14 +4,14 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
loadConnectorPermissionInfos,
|
|
6
6
|
policyIcon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TX5E4N6E.js";
|
|
8
8
|
import {
|
|
9
9
|
isInteractive,
|
|
10
10
|
promptConfirm
|
|
11
11
|
} from "./chunk-NU6ECB2E.js";
|
|
12
12
|
import {
|
|
13
13
|
permissionGrantsToFirewallPolicies
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GU4ZJECC.js";
|
|
15
15
|
import {
|
|
16
16
|
createZeroAgent,
|
|
17
17
|
deleteZeroAgent,
|
|
@@ -23,13 +23,13 @@ import {
|
|
|
23
23
|
listZeroUserPermissionGrants,
|
|
24
24
|
updateZeroAgent,
|
|
25
25
|
updateZeroAgentInstructions
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
} from "./chunk-LYI45KHY.js";
|
|
27
|
+
import "./chunk-GTGI6NWJ.js";
|
|
28
28
|
import "./chunk-MA22KQYU.js";
|
|
29
29
|
import {
|
|
30
30
|
source_default,
|
|
31
31
|
withErrorHandler
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-5TMLTATP.js";
|
|
33
33
|
import "./chunk-MD3YWUKO.js";
|
|
34
34
|
import {
|
|
35
35
|
Command
|
|
@@ -599,4 +599,4 @@ Notes:
|
|
|
599
599
|
export {
|
|
600
600
|
zeroAgentCommand
|
|
601
601
|
};
|
|
602
|
-
//# sourceMappingURL=agent-
|
|
602
|
+
//# sourceMappingURL=agent-OMZZFFOX.js.map
|
|
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
callZeroBanking
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-LYI45KHY.js";
|
|
7
|
+
import "./chunk-GTGI6NWJ.js";
|
|
8
8
|
import "./chunk-MA22KQYU.js";
|
|
9
9
|
import {
|
|
10
10
|
source_default,
|
|
11
11
|
withErrorHandler
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-5TMLTATP.js";
|
|
13
13
|
import "./chunk-MD3YWUKO.js";
|
|
14
14
|
import {
|
|
15
15
|
Command,
|
|
@@ -114,4 +114,4 @@ Notes:
|
|
|
114
114
|
export {
|
|
115
115
|
zeroBankingCommand
|
|
116
116
|
};
|
|
117
|
-
//# sourceMappingURL=banking-
|
|
117
|
+
//# sourceMappingURL=banking-BVCIXQ5N.js.map
|
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from "node:module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
|
-
ZERO_BROWSER_DEFAULT_MAX_CREDITS,
|
|
6
5
|
ZERO_BROWSER_IDLE_LEASE_MINUTES,
|
|
7
|
-
ZERO_BROWSER_MAX_CREDITS,
|
|
8
6
|
createZeroBrowser,
|
|
9
7
|
getCurrentZeroBrowser,
|
|
10
8
|
leaseZeroBrowser,
|
|
11
9
|
useZeroBrowser,
|
|
12
10
|
zeroBrowserCreateRequestSchema
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-LYI45KHY.js";
|
|
12
|
+
import "./chunk-GTGI6NWJ.js";
|
|
15
13
|
import "./chunk-MA22KQYU.js";
|
|
16
14
|
import {
|
|
17
15
|
source_default,
|
|
18
16
|
withErrorHandler
|
|
19
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-5TMLTATP.js";
|
|
20
18
|
import "./chunk-MD3YWUKO.js";
|
|
21
19
|
import {
|
|
22
20
|
Command,
|
|
@@ -31,22 +29,6 @@ import {
|
|
|
31
29
|
init_esm_shims();
|
|
32
30
|
import { spawnSync } from "child_process";
|
|
33
31
|
var DEFAULT_AGENT_BROWSER_SESSION = "zero-browser";
|
|
34
|
-
function positiveInteger(label, maximum) {
|
|
35
|
-
return (value) => {
|
|
36
|
-
if (!/^\d+$/u.test(value)) {
|
|
37
|
-
throw new InvalidArgumentError(
|
|
38
|
-
`${label} must be an integer from 1 to ${maximum}`
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
const parsed = Number(value);
|
|
42
|
-
if (parsed < 1 || parsed > maximum) {
|
|
43
|
-
throw new InvalidArgumentError(
|
|
44
|
-
`${label} must be an integer from 1 to ${maximum}`
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
return parsed;
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
32
|
function parseCountry(value) {
|
|
51
33
|
const normalized = value.trim().toLowerCase();
|
|
52
34
|
if (!/^[a-z]{2}$/u.test(normalized)) {
|
|
@@ -63,7 +45,13 @@ function parseAgentSession(value) {
|
|
|
63
45
|
return value;
|
|
64
46
|
}
|
|
65
47
|
function browserJson(browser) {
|
|
66
|
-
const {
|
|
48
|
+
const {
|
|
49
|
+
creditsCharged: _creditsCharged,
|
|
50
|
+
grossCredits: _grossCredits,
|
|
51
|
+
liveUrl: _liveUrl,
|
|
52
|
+
maxCredits: _maxCredits,
|
|
53
|
+
...safeBrowser
|
|
54
|
+
} = browser;
|
|
67
55
|
return safeBrowser;
|
|
68
56
|
}
|
|
69
57
|
function connectAgentBrowser(cdpUrl, sessionName) {
|
|
@@ -89,11 +77,6 @@ function reclaimNotice(browser) {
|
|
|
89
77
|
function renderBrowser(browser) {
|
|
90
78
|
console.log(`${browser.name} \xB7 ${browser.status}`);
|
|
91
79
|
console.log(source_default.dim(` ID: ${browser.id}`));
|
|
92
|
-
console.log(
|
|
93
|
-
source_default.dim(
|
|
94
|
-
` Credits: ${browser.creditsCharged} charged / ${browser.maxCredits} budget`
|
|
95
|
-
)
|
|
96
|
-
);
|
|
97
80
|
console.log(source_default.dim(` ${reclaimNotice(browser)}`));
|
|
98
81
|
console.log(` ${browser.viewerUrl}`);
|
|
99
82
|
}
|
|
@@ -156,8 +139,6 @@ var newCommand = new Command().name("new").description(
|
|
|
156
139
|
"--country <code>",
|
|
157
140
|
"Residential proxy country; omitted uses lower-cost proxyless egress"
|
|
158
141
|
).argParser(parseCountry)
|
|
159
|
-
).addOption(
|
|
160
|
-
new Option("--max-credits <credits>", "Logical browser credit budget").default(ZERO_BROWSER_DEFAULT_MAX_CREDITS).argParser(positiveInteger("max-credits", ZERO_BROWSER_MAX_CREDITS))
|
|
161
142
|
).addOption(
|
|
162
143
|
new Option(
|
|
163
144
|
"--agent-session <name>",
|
|
@@ -167,8 +148,7 @@ var newCommand = new Command().name("new").description(
|
|
|
167
148
|
withErrorHandler(async (options) => {
|
|
168
149
|
const request = zeroBrowserCreateRequestSchema.parse({
|
|
169
150
|
name: options.name,
|
|
170
|
-
proxyCountryCode: options.country ?? null
|
|
171
|
-
maxCredits: options.maxCredits
|
|
151
|
+
proxyCountryCode: options.country ?? null
|
|
172
152
|
});
|
|
173
153
|
await connectResponse(await createZeroBrowser(request), options);
|
|
174
154
|
})
|
|
@@ -200,7 +180,7 @@ Examples:
|
|
|
200
180
|
|
|
201
181
|
Notes:
|
|
202
182
|
- The browser outlives this run; the user can keep working in it from the viewer link
|
|
203
|
-
- Zero reclaims it after ${ZERO_BROWSER_IDLE_LEASE_MINUTES} idle minutes
|
|
183
|
+
- Zero reclaims it after ${ZERO_BROWSER_IDLE_LEASE_MINUTES} idle minutes
|
|
204
184
|
- \`zero browser use\` restores a reclaimed browser's login profile, not its old tabs
|
|
205
185
|
- Browser Use credentials and connection URLs are never printed
|
|
206
186
|
- Threads for the same user and organization share one login profile
|
|
@@ -209,4 +189,4 @@ Notes:
|
|
|
209
189
|
export {
|
|
210
190
|
zeroBrowserCommand
|
|
211
191
|
};
|
|
212
|
-
//# sourceMappingURL=browser-
|
|
192
|
+
//# sourceMappingURL=browser-MZYVERXT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/zero/browser/index.ts"],"sourcesContent":["import { spawnSync } from \"node:child_process\";\n\nimport chalk from \"chalk\";\nimport { Command, InvalidArgumentError, Option } from \"commander\";\nimport {\n ZERO_BROWSER_IDLE_LEASE_MINUTES,\n zeroBrowserCreateRequestSchema,\n type ZeroBrowserSession,\n} from \"@vm0/api-contracts/contracts/zero-browser\";\n\nimport {\n createZeroBrowser,\n getCurrentZeroBrowser,\n leaseZeroBrowser,\n useZeroBrowser,\n} from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\nconst DEFAULT_AGENT_BROWSER_SESSION = \"zero-browser\";\n\ninterface NewOptions {\n readonly name: string;\n readonly country?: string;\n readonly agentSession?: string;\n readonly json?: boolean;\n}\n\ninterface ConnectionOptions {\n readonly agentSession?: string;\n readonly json?: boolean;\n}\n\ninterface OutputOptions {\n readonly json?: boolean;\n}\n\nfunction parseCountry(value: string): string {\n const normalized = value.trim().toLowerCase();\n if (!/^[a-z]{2}$/u.test(normalized)) {\n throw new InvalidArgumentError(\"country must be a two-letter country code\");\n }\n return normalized;\n}\n\nfunction parseAgentSession(value: string): string {\n if (!/^[a-zA-Z0-9_-]{1,64}$/u.test(value)) {\n throw new InvalidArgumentError(\n \"agent-session must contain only letters, numbers, underscores, or hyphens\",\n );\n }\n return value;\n}\n\nfunction browserJson(\n browser: ZeroBrowserSession,\n): Omit<\n ZeroBrowserSession,\n \"creditsCharged\" | \"grossCredits\" | \"liveUrl\" | \"maxCredits\"\n> {\n const {\n creditsCharged: _creditsCharged,\n grossCredits: _grossCredits,\n liveUrl: _liveUrl,\n maxCredits: _maxCredits,\n ...safeBrowser\n } = browser;\n return safeBrowser;\n}\n\nfunction connectAgentBrowser(cdpUrl: string, sessionName: string): void {\n const result = spawnSync(\n \"agent-browser\",\n [\"--session\", sessionName, \"connect\", cdpUrl],\n { stdio: \"ignore\" },\n );\n if (result.error) {\n throw new Error(\"Could not start agent-browser\", {\n cause: result.error,\n });\n }\n if (result.status !== 0) {\n throw new Error(\n `agent-browser connect exited with status ${result.status ?? \"unknown\"}`,\n );\n }\n}\n\nfunction reclaimNotice(browser: ZeroBrowserSession): string {\n return browser.idleExpiresAt\n ? `Zero reclaims this browser at ${browser.idleExpiresAt} unless it is used or leased again`\n : \"This browser has no live window to reclaim\";\n}\n\nfunction renderBrowser(browser: ZeroBrowserSession): void {\n console.log(`${browser.name} · ${browser.status}`);\n console.log(chalk.dim(` ID: ${browser.id}`));\n console.log(chalk.dim(` ${reclaimNotice(browser)}`));\n console.log(` ${browser.viewerUrl}`);\n}\n\nasync function connectResponse(\n response: {\n readonly browser: ZeroBrowserSession;\n readonly cdpUrl: string;\n },\n options: ConnectionOptions,\n): Promise<void> {\n const sessionName = options.agentSession ?? DEFAULT_AGENT_BROWSER_SESSION;\n connectAgentBrowser(response.cdpUrl, sessionName);\n if (options.json) {\n console.log(\n JSON.stringify({\n browser: browserJson(response.browser),\n agentBrowserSession: sessionName,\n }),\n );\n return;\n }\n console.log(chalk.green(\"✓ Managed browser ready\"));\n console.log(chalk.dim(` agent-browser session: ${sessionName}`));\n console.log(chalk.dim(` ${reclaimNotice(response.browser)}`));\n console.log(`[Open live browser](${response.browser.viewerUrl})`);\n}\n\nconst useCommand = new Command()\n .name(\"use\")\n .description(\n \"Create, reuse, or resume this thread's browser, attach it to agent-browser, and extend its lease\",\n )\n .addOption(\n new Option(\n \"--agent-session <name>\",\n \"Named agent-browser session\",\n ).argParser(parseAgentSession),\n )\n .option(\"--json\", \"Print machine-readable output without connection secrets\")\n .action(\n withErrorHandler(async (options: ConnectionOptions) => {\n await connectResponse(await useZeroBrowser(), options);\n }),\n );\n\nconst resumeCommand = new Command()\n .name(\"resume\")\n .description(\"Deprecated alias of use\")\n .addOption(\n new Option(\n \"--agent-session <name>\",\n \"Named agent-browser session\",\n ).argParser(parseAgentSession),\n )\n .option(\"--json\", \"Print machine-readable output without connection secrets\")\n .action(\n withErrorHandler(async (options: ConnectionOptions) => {\n await connectResponse(await useZeroBrowser(), options);\n }),\n );\n\nconst leaseCommand = new Command()\n .name(\"lease\")\n .description(\n `Keep this thread's live browser for another ${ZERO_BROWSER_IDLE_LEASE_MINUTES} minutes`,\n )\n .option(\"--json\", \"Print machine-readable output\")\n .action(\n withErrorHandler(async (options: OutputOptions) => {\n const browser = await leaseZeroBrowser();\n if (options.json) {\n console.log(JSON.stringify({ browser: browserJson(browser) }));\n return;\n }\n console.log(chalk.green(\"✓ Managed browser lease extended\"));\n console.log(chalk.dim(` ${reclaimNotice(browser)}`));\n }),\n );\n\nconst newCommand = new Command()\n .name(\"new\")\n .description(\n \"Create another thread browser with the shared user profile and attach it to agent-browser\",\n )\n .addOption(new Option(\"--name <name>\", \"Browser name\").default(\"browser\"))\n .addOption(\n new Option(\n \"--country <code>\",\n \"Residential proxy country; omitted uses lower-cost proxyless egress\",\n ).argParser(parseCountry),\n )\n .addOption(\n new Option(\n \"--agent-session <name>\",\n \"Named agent-browser session\",\n ).argParser(parseAgentSession),\n )\n .option(\"--json\", \"Print machine-readable output without connection secrets\")\n .action(\n withErrorHandler(async (options: NewOptions) => {\n const request = zeroBrowserCreateRequestSchema.parse({\n name: options.name,\n proxyCountryCode: options.country ?? null,\n });\n await connectResponse(await createZeroBrowser(request), options);\n }),\n );\n\nconst statusCommand = new Command()\n .name(\"status\")\n .description(\"Show the current thread browser status\")\n .option(\"--json\", \"Print machine-readable output\")\n .action(\n withErrorHandler(async (options: OutputOptions) => {\n const browser = await getCurrentZeroBrowser();\n if (options.json) {\n console.log(JSON.stringify({ browser: browserJson(browser) }));\n return;\n }\n renderBrowser(browser);\n }),\n );\n\nconst viewCommand = new Command()\n .name(\"view\")\n .description(\"Print the current thread browser's authenticated viewer link\")\n .action(\n withErrorHandler(async () => {\n console.log((await getCurrentZeroBrowser()).viewerUrl);\n }),\n );\n\nexport const zeroBrowserCommand = new Command()\n .name(\"browser\")\n .description(\"Use a managed remote browser through agent-browser\")\n .addCommand(useCommand)\n .addCommand(leaseCommand)\n .addCommand(resumeCommand)\n .addCommand(newCommand)\n .addCommand(statusCommand)\n .addCommand(viewCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n Open this thread's browser: zero browser use\n Keep it alive: zero browser lease\n Create another browser: zero browser new --name booking --country us\n Use the browser: agent-browser --session zero-browser open https://example.com\n Share live view: zero browser view\n\nNotes:\n - The browser outlives this run; the user can keep working in it from the viewer link\n - Zero reclaims it after ${ZERO_BROWSER_IDLE_LEASE_MINUTES} idle minutes\n - \\`zero browser use\\` restores a reclaimed browser's login profile, not its old tabs\n - Browser Use credentials and connection URLs are never printed\n - Threads for the same user and organization share one login profile\n - Threads can use the shared profile in parallel`,\n );\n"],"mappings":"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","names":[]}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-LN2ATWKS.js";
|
|
12
12
|
import {
|
|
13
13
|
formatModelProviderRoute
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-3AYDKKKU.js";
|
|
15
15
|
import {
|
|
16
16
|
chatThreadEventSchema,
|
|
17
17
|
chatThreadSnapshotProjectionSchema,
|
|
@@ -25,14 +25,14 @@ import {
|
|
|
25
25
|
renameZeroChatThread,
|
|
26
26
|
sendZeroChatEvent,
|
|
27
27
|
updateZeroChatThreadModelSelection
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
} from "./chunk-LYI45KHY.js";
|
|
29
|
+
import "./chunk-GTGI6NWJ.js";
|
|
30
30
|
import "./chunk-MA22KQYU.js";
|
|
31
31
|
import {
|
|
32
32
|
getApiUrl,
|
|
33
33
|
source_default,
|
|
34
34
|
withErrorHandler
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-5TMLTATP.js";
|
|
36
36
|
import {
|
|
37
37
|
decodeZeroTokenPayload
|
|
38
38
|
} from "./chunk-MD3YWUKO.js";
|
|
@@ -987,4 +987,4 @@ Examples:
|
|
|
987
987
|
export {
|
|
988
988
|
zeroChatCommand
|
|
989
989
|
};
|
|
990
|
-
//# sourceMappingURL=chat-
|
|
990
|
+
//# sourceMappingURL=chat-XAIEMJJJ.js.map
|
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
MODEL_PROVIDER_TYPES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5TMLTATP.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-GPYQ24DR.js";
|
|
@@ -40,4 +40,4 @@ export {
|
|
|
40
40
|
formatModelProviderRoute,
|
|
41
41
|
formatModelPolicyStatus
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-3AYDKKKU.js.map
|
|
@@ -542,7 +542,12 @@ var CLIENT_VERSION_HEADER = "X-Client-Version";
|
|
|
542
542
|
var CLIENT_TYPE_HEADER = "X-Client-Type";
|
|
543
543
|
var CLIENT_SESSION_ID_HEADER = "X-Client-Session-Id";
|
|
544
544
|
var CLIENT_REQUEST_ID_HEADER = "X-Client-Request-Id";
|
|
545
|
+
var CLIENT_CAPABILITY_CONNECTOR_SLUG_IDENTITIES = "connector-slug-identities-v1";
|
|
545
546
|
var CLIENT_TYPE_CLI = "CLI";
|
|
547
|
+
function addClientCapabilityToVersion(version2, capability) {
|
|
548
|
+
const separator = version2.includes("+") ? "." : "+";
|
|
549
|
+
return `${version2}${separator}${capability}`;
|
|
550
|
+
}
|
|
546
551
|
|
|
547
552
|
// ../../packages/api-contracts/src/contracts/trpc-contract.ts
|
|
548
553
|
init_esm_shims();
|
|
@@ -15385,7 +15390,10 @@ function createCliClientHeaderInjector(options) {
|
|
|
15385
15390
|
};
|
|
15386
15391
|
}
|
|
15387
15392
|
var addDefaultCliClientHeaders = createCliClientHeaderInjector({
|
|
15388
|
-
clientVersion:
|
|
15393
|
+
clientVersion: addClientCapabilityToVersion(
|
|
15394
|
+
"9.267.0",
|
|
15395
|
+
CLIENT_CAPABILITY_CONNECTOR_SLUG_IDENTITIES
|
|
15396
|
+
)
|
|
15389
15397
|
});
|
|
15390
15398
|
function addCliClientHeaders(headers) {
|
|
15391
15399
|
addDefaultCliClientHeaders(headers);
|
|
@@ -16776,4 +16784,4 @@ export {
|
|
|
16776
16784
|
apiErrorSchema,
|
|
16777
16785
|
withErrorHandler
|
|
16778
16786
|
};
|
|
16779
|
-
//# sourceMappingURL=chunk-
|
|
16787
|
+
//# sourceMappingURL=chunk-5TMLTATP.js.map
|