@vm0/cli 9.278.0 → 9.279.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-HUDTEGLK.js → agent-4N7ZZDFJ.js} +16 -10
- package/agent-4N7ZZDFJ.js.map +1 -0
- package/{banking-BMZONEXP.js → banking-HBODHOCJ.js} +64 -10
- package/banking-HBODHOCJ.js.map +1 -0
- package/{browser-LQP445CU.js → browser-KT5KVZY2.js} +7 -8
- package/browser-KT5KVZY2.js.map +1 -0
- package/{chat-UF7QAWUT.js → chat-6RRIXDF5.js} +29 -21
- package/chat-6RRIXDF5.js.map +1 -0
- package/chunk-4ATK3VFX.js +202 -0
- package/chunk-4ATK3VFX.js.map +1 -0
- package/chunk-4CXT7THL.js +55 -0
- package/chunk-4CXT7THL.js.map +1 -0
- package/{chunk-BRV4D3P2.js → chunk-4QGLWHVD.js} +3 -3
- package/chunk-4SGKKHZW.js +309 -0
- package/chunk-4SGKKHZW.js.map +1 -0
- package/{chunk-AUWSMG4F.js → chunk-52CNCL6Y.js} +5 -2
- package/{chunk-AUWSMG4F.js.map → chunk-52CNCL6Y.js.map} +1 -1
- package/chunk-5RY3DZTW.js +101 -0
- package/chunk-5RY3DZTW.js.map +1 -0
- package/chunk-AFKJ4MU3.js +105 -0
- package/chunk-AFKJ4MU3.js.map +1 -0
- package/chunk-AMLZWOJK.js +792 -0
- package/chunk-AMLZWOJK.js.map +1 -0
- package/chunk-B3U6VDOF.js +90 -0
- package/chunk-B3U6VDOF.js.map +1 -0
- package/chunk-B6RXOHA2.js +801 -0
- package/chunk-B6RXOHA2.js.map +1 -0
- package/chunk-BB6QIVAM.js +189 -0
- package/chunk-BB6QIVAM.js.map +1 -0
- package/{chunk-NDYPPVD3.js → chunk-BMQE7GWV.js} +2 -2
- package/chunk-BMRAUGFL.js +198 -0
- package/chunk-BMRAUGFL.js.map +1 -0
- package/{chunk-45J5VDVQ.js → chunk-BS6PZU7T.js} +2 -2
- package/chunk-C4LKBBIS.js +2053 -0
- package/chunk-C4LKBBIS.js.map +1 -0
- package/{chunk-QC63TUJC.js → chunk-CBNDRL4P.js} +3 -3
- package/{chunk-V7A6ZFHR.js → chunk-CMWQJ3XO.js} +26 -775
- package/chunk-CMWQJ3XO.js.map +1 -0
- package/{chunk-NKYACNWA.js → chunk-DUWZNPUA.js} +2 -2
- package/{chunk-BVCE3PAD.js → chunk-G2HB4N56.js} +2 -2
- package/chunk-HMH473P6.js +362 -0
- package/chunk-HMH473P6.js.map +1 -0
- package/chunk-HMUAPCDD.js +81 -0
- package/chunk-HMUAPCDD.js.map +1 -0
- package/chunk-HXIDRGW4.js +434 -0
- package/chunk-HXIDRGW4.js.map +1 -0
- package/chunk-JXWXVXOW.js +1275 -0
- package/chunk-JXWXVXOW.js.map +1 -0
- package/{chunk-32FE3MDA.js → chunk-KHPTA6UQ.js} +2 -2
- package/chunk-KWHNNLC5.js +31 -0
- package/chunk-KWHNNLC5.js.map +1 -0
- package/chunk-LLQCX33F.js +49 -0
- package/chunk-LLQCX33F.js.map +1 -0
- package/{chunk-E53W6UVQ.js → chunk-LO24UKAH.js} +5 -5
- package/chunk-LO24UKAH.js.map +1 -0
- package/chunk-ML33LZ5V.js +66 -0
- package/chunk-ML33LZ5V.js.map +1 -0
- package/chunk-NIG6LRRX.js +39 -0
- package/chunk-NIG6LRRX.js.map +1 -0
- package/{chunk-JAUTPXVK.js → chunk-PAULHBEP.js} +2 -2
- package/chunk-PO3DAXC6.js +52 -0
- package/chunk-PO3DAXC6.js.map +1 -0
- package/chunk-QQT7SBVV.js +1300 -0
- package/chunk-QQT7SBVV.js.map +1 -0
- package/{chunk-J45P5ALH.js → chunk-RAQ7DE6K.js} +2 -2
- package/chunk-RKOODQ77.js +194 -0
- package/chunk-RKOODQ77.js.map +1 -0
- package/{chunk-V5ZVB7RJ.js → chunk-T656XQMT.js} +7 -7
- package/chunk-T656XQMT.js.map +1 -0
- package/chunk-TDLAIIDN.js +568 -0
- package/chunk-TDLAIIDN.js.map +1 -0
- package/{chunk-A6TMOGPR.js → chunk-TQKKFLRI.js} +1416 -339
- package/chunk-TQKKFLRI.js.map +1 -0
- package/{chunk-5ZZI2LSO.js → chunk-U2PPHCTL.js} +7 -7
- package/{chunk-VNNPAHD3.js → chunk-UH7XK55U.js} +2 -2
- package/chunk-VCAMYQOI.js +31 -0
- package/chunk-VCAMYQOI.js.map +1 -0
- package/chunk-WERS62WT.js +21130 -0
- package/chunk-WERS62WT.js.map +1 -0
- package/chunk-XIZVMBW4.js +188 -0
- package/chunk-XIZVMBW4.js.map +1 -0
- package/{chunk-SVFOPAWB.js → chunk-XJXBVERS.js} +2 -2
- package/chunk-XQ4CXHGB.js +131 -0
- package/chunk-XQ4CXHGB.js.map +1 -0
- package/{chunk-F2AM4RWA.js → chunk-XW5M3ADB.js} +3 -3
- package/{chunk-F2AM4RWA.js.map → chunk-XW5M3ADB.js.map} +1 -1
- package/chunk-YEXLP5U7.js +64 -0
- package/chunk-YEXLP5U7.js.map +1 -0
- package/chunk-ZEFTCUFJ.js +114 -0
- package/chunk-ZEFTCUFJ.js.map +1 -0
- package/{computer-use-RRD7BCCK.js → computer-use-VG65FLDL.js} +12 -10
- package/computer-use-VG65FLDL.js.map +1 -0
- package/{connector-XX7UU6XE.js → connector-25H4SU52.js} +28 -16
- package/connector-25H4SU52.js.map +1 -0
- package/{credit-GDNNAQRO.js → credit-D3RLUW6C.js} +12 -14
- package/credit-D3RLUW6C.js.map +1 -0
- package/{developer-support-IISP5UBI.js → developer-support-NMZJG32A.js} +30 -10
- package/developer-support-NMZJG32A.js.map +1 -0
- package/{doctor-IZM2TJOH.js → doctor-MXF4RDPN.js} +17 -15
- package/doctor-MXF4RDPN.js.map +1 -0
- package/{esm-GRI4FR5B.js → esm-XLHK4LBA.js} +3 -3
- package/{feishu-XB7SQBSI.js → feishu-SHMTS5ZM.js} +102 -12
- package/feishu-SHMTS5ZM.js.map +1 -0
- package/{finance-OGWHKQLU.js → finance-A3QUYKGH.js} +52 -12
- package/finance-A3QUYKGH.js.map +1 -0
- package/{generate-AA2PVOYQ.js → generate-QQ6ZTCR2.js} +31 -26
- package/generate-QQ6ZTCR2.js.map +1 -0
- package/{getMachineId-bsd-UR6WEJ6T.js → getMachineId-bsd-WOC3WZM5.js} +4 -4
- package/{getMachineId-darwin-O3UESQMK.js → getMachineId-darwin-K35YZX2F.js} +4 -4
- package/{getMachineId-linux-EGNGXDN3.js → getMachineId-linux-A4QJCCBS.js} +3 -3
- package/{getMachineId-unsupported-EZ7SMARH.js → getMachineId-unsupported-UOQIWS5S.js} +3 -3
- package/{getMachineId-win-CM62ICHH.js → getMachineId-win-YJDJQYJQ.js} +4 -4
- package/{github-VJVIBTVF.js → github-5M3YRGDF.js} +86 -11
- package/github-5M3YRGDF.js.map +1 -0
- package/{goal-7SYVHDTK.js → goal-F6G5KOI2.js} +72 -16
- package/goal-F6G5KOI2.js.map +1 -0
- package/{host-UVQMIOBA.js → host-6UT2OW4I.js} +127 -13
- package/host-6UT2OW4I.js.map +1 -0
- package/{intro-2UYXBOHI.js → intro-HYSW634N.js} +3 -3
- package/{logs-PIS4X24E.js → logs-YH346I7J.js} +57 -17
- package/logs-YH346I7J.js.map +1 -0
- package/{mail-L33OSQ2R.js → mail-SC44CH54.js} +42 -11
- package/mail-SC44CH54.js.map +1 -0
- package/{maps-D5XTXU5U.js → maps-YQ62JSHO.js} +68 -14
- package/maps-YQ62JSHO.js.map +1 -0
- package/{model-ZFMRECDM.js → model-PPOIXDVZ.js} +9 -9
- package/model-PPOIXDVZ.js.map +1 -0
- package/{model-provider-EZZ2DRYZ.js → model-provider-PD7FGL7A.js} +9 -9
- package/model-provider-PD7FGL7A.js.map +1 -0
- package/package.json +2 -5
- package/{people-search-PFTIO2QS.js → people-search-VS5J4HME.js} +25 -9
- package/people-search-VS5J4HME.js.map +1 -0
- package/{phone-6SG5ZUNL.js → phone-YZ7TX25A.js} +93 -12
- package/phone-YZ7TX25A.js.map +1 -0
- package/{recognize-LLU6J3SW.js → recognize-XKO53YEI.js} +30 -12
- package/recognize-XKO53YEI.js.map +1 -0
- package/{resource-FGUSXS4G.js → resource-V43QBVKO.js} +25 -11
- package/resource-V43QBVKO.js.map +1 -0
- package/{scrape-BAUZ2YFD.js → scrape-PDMJI2PY.js} +25 -9
- package/scrape-PDMJI2PY.js.map +1 -0
- package/{search-DLO5RXRM.js → search-USJZ3HKX.js} +35 -15
- package/search-USJZ3HKX.js.map +1 -0
- package/{slack-CVATPKP3.js → slack-K557P6WW.js} +106 -14
- package/slack-K557P6WW.js.map +1 -0
- package/{teams-ZZYO6YIK.js → teams-HN2UOU3U.js} +93 -12
- package/teams-HN2UOU3U.js.map +1 -0
- package/{telegram-VY7T4YAR.js → telegram-YCRQFLJC.js} +104 -13
- package/telegram-YCRQFLJC.js.map +1 -0
- package/{undici-MBS5ACFE.js → undici-YESHDB4G.js} +2 -2
- package/{upgrade-GFA4ZUU4.js → upgrade-VVJ3KJ6V.js} +7 -8
- package/upgrade-VVJ3KJ6V.js.map +1 -0
- package/{video-STFG7BET.js → video-DNGIFKVY.js} +8 -7
- package/video-DNGIFKVY.js.map +1 -0
- package/{weather-ISJEHJWR.js → weather-4Z7OZ2TP.js} +73 -19
- package/weather-4Z7OZ2TP.js.map +1 -0
- package/{web-YN4CVHK7.js → web-C6RLBMZM.js} +8 -8
- package/web-C6RLBMZM.js.map +1 -0
- package/{web-search-PC7IECND.js → web-search-CDPWLF74.js} +25 -9
- package/web-search-CDPWLF74.js.map +1 -0
- package/{whoami-KXFXZGM6.js → whoami-VDI5345O.js} +19 -10
- package/whoami-VDI5345O.js.map +1 -0
- package/{workflow-O7YZHB7A.js → workflow-VEZ3NTPR.js} +140 -44
- package/workflow-VEZ3NTPR.js.map +1 -0
- package/zero.js +46 -46
- package/agent-HUDTEGLK.js.map +0 -1
- package/banking-BMZONEXP.js.map +0 -1
- package/browser-LQP445CU.js.map +0 -1
- package/chat-UF7QAWUT.js.map +0 -1
- package/chunk-2W73DZDW.js +0 -32
- package/chunk-2W73DZDW.js.map +0 -1
- package/chunk-6PN6QGIM.js +0 -11405
- package/chunk-6PN6QGIM.js.map +0 -1
- package/chunk-A6TMOGPR.js.map +0 -1
- package/chunk-ANOLYIPL.js +0 -10
- package/chunk-ANOLYIPL.js.map +0 -1
- package/chunk-E53W6UVQ.js.map +0 -1
- package/chunk-V5ZVB7RJ.js.map +0 -1
- package/chunk-V7A6ZFHR.js.map +0 -1
- package/computer-use-RRD7BCCK.js.map +0 -1
- package/connector-XX7UU6XE.js.map +0 -1
- package/credit-GDNNAQRO.js.map +0 -1
- package/developer-support-IISP5UBI.js.map +0 -1
- package/doctor-IZM2TJOH.js.map +0 -1
- package/feishu-XB7SQBSI.js.map +0 -1
- package/finance-OGWHKQLU.js.map +0 -1
- package/generate-AA2PVOYQ.js.map +0 -1
- package/github-VJVIBTVF.js.map +0 -1
- package/goal-7SYVHDTK.js.map +0 -1
- package/host-UVQMIOBA.js.map +0 -1
- package/logs-PIS4X24E.js.map +0 -1
- package/mail-L33OSQ2R.js.map +0 -1
- package/maps-D5XTXU5U.js.map +0 -1
- package/model-ZFMRECDM.js.map +0 -1
- package/model-provider-EZZ2DRYZ.js.map +0 -1
- package/people-search-PFTIO2QS.js.map +0 -1
- package/phone-6SG5ZUNL.js.map +0 -1
- package/recognize-LLU6J3SW.js.map +0 -1
- package/resource-FGUSXS4G.js.map +0 -1
- package/scrape-BAUZ2YFD.js.map +0 -1
- package/search-DLO5RXRM.js.map +0 -1
- package/slack-CVATPKP3.js.map +0 -1
- package/teams-ZZYO6YIK.js.map +0 -1
- package/telegram-VY7T4YAR.js.map +0 -1
- package/upgrade-GFA4ZUU4.js.map +0 -1
- package/video-STFG7BET.js.map +0 -1
- package/weather-ISJEHJWR.js.map +0 -1
- package/web-YN4CVHK7.js.map +0 -1
- package/web-search-PC7IECND.js.map +0 -1
- package/whoami-KXFXZGM6.js.map +0 -1
- package/workflow-O7YZHB7A.js.map +0 -1
- /package/{chunk-BRV4D3P2.js.map → chunk-4QGLWHVD.js.map} +0 -0
- /package/{chunk-NDYPPVD3.js.map → chunk-BMQE7GWV.js.map} +0 -0
- /package/{chunk-45J5VDVQ.js.map → chunk-BS6PZU7T.js.map} +0 -0
- /package/{chunk-QC63TUJC.js.map → chunk-CBNDRL4P.js.map} +0 -0
- /package/{chunk-NKYACNWA.js.map → chunk-DUWZNPUA.js.map} +0 -0
- /package/{chunk-BVCE3PAD.js.map → chunk-G2HB4N56.js.map} +0 -0
- /package/{chunk-32FE3MDA.js.map → chunk-KHPTA6UQ.js.map} +0 -0
- /package/{chunk-JAUTPXVK.js.map → chunk-PAULHBEP.js.map} +0 -0
- /package/{chunk-J45P5ALH.js.map → chunk-RAQ7DE6K.js.map} +0 -0
- /package/{chunk-5ZZI2LSO.js.map → chunk-U2PPHCTL.js.map} +0 -0
- /package/{chunk-VNNPAHD3.js.map → chunk-UH7XK55U.js.map} +0 -0
- /package/{chunk-SVFOPAWB.js.map → chunk-XJXBVERS.js.map} +0 -0
- /package/{esm-GRI4FR5B.js.map → esm-XLHK4LBA.js.map} +0 -0
- /package/{getMachineId-bsd-UR6WEJ6T.js.map → getMachineId-bsd-WOC3WZM5.js.map} +0 -0
- /package/{getMachineId-darwin-O3UESQMK.js.map → getMachineId-darwin-K35YZX2F.js.map} +0 -0
- /package/{getMachineId-linux-EGNGXDN3.js.map → getMachineId-linux-A4QJCCBS.js.map} +0 -0
- /package/{getMachineId-unsupported-EZ7SMARH.js.map → getMachineId-unsupported-UOQIWS5S.js.map} +0 -0
- /package/{getMachineId-win-CM62ICHH.js.map → getMachineId-win-YJDJQYJQ.js.map} +0 -0
- /package/{intro-2UYXBOHI.js.map → intro-HYSW634N.js.map} +0 -0
- /package/{undici-MBS5ACFE.js.map → undici-YESHDB4G.js.map} +0 -0
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
init_esm_shims
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-52CNCL6Y.js";
|
|
7
7
|
|
|
8
8
|
// ../../packages/core/src/resource-registry.ts
|
|
9
9
|
init_esm_shims();
|
|
@@ -3499,4 +3499,4 @@ export {
|
|
|
3499
3499
|
toGenerationTarget,
|
|
3500
3500
|
selectResourceCandidates
|
|
3501
3501
|
};
|
|
3502
|
-
//# sourceMappingURL=chunk-
|
|
3502
|
+
//# sourceMappingURL=chunk-DUWZNPUA.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
|
init_esm_shims
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-52CNCL6Y.js";
|
|
7
7
|
|
|
8
8
|
// ../../node_modules/.pnpm/@opentelemetry+resources@2.7.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js
|
|
9
9
|
init_esm_shims();
|
|
@@ -14,4 +14,4 @@ var execAsync = util.promisify(child_process.exec);
|
|
|
14
14
|
export {
|
|
15
15
|
execAsync
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
17
|
+
//# sourceMappingURL=chunk-G2HB4N56.js.map
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
authHeadersSchema
|
|
6
|
+
} from "./chunk-NIG6LRRX.js";
|
|
7
|
+
import {
|
|
8
|
+
apiErrorSchema,
|
|
9
|
+
external_exports,
|
|
10
|
+
getClientConfig,
|
|
11
|
+
handleError,
|
|
12
|
+
initClient,
|
|
13
|
+
initContract
|
|
14
|
+
} from "./chunk-U2PPHCTL.js";
|
|
15
|
+
import {
|
|
16
|
+
init_esm_shims
|
|
17
|
+
} from "./chunk-52CNCL6Y.js";
|
|
18
|
+
|
|
19
|
+
// ../../packages/api-contracts/src/contracts/zero-browser.ts
|
|
20
|
+
init_esm_shims();
|
|
21
|
+
var c = initContract();
|
|
22
|
+
var ZERO_BROWSER_IDLE_LEASE_MINUTES = 10;
|
|
23
|
+
var ZERO_BROWSER_SCREEN_WIDTH = 1440;
|
|
24
|
+
var ZERO_BROWSER_MIN_SCREEN_HEIGHT = 320;
|
|
25
|
+
var ZERO_BROWSER_MAX_SCREEN_HEIGHT = 3456;
|
|
26
|
+
var zeroBrowserStatusSchema = external_exports.enum([
|
|
27
|
+
"creating",
|
|
28
|
+
"active",
|
|
29
|
+
"resuming",
|
|
30
|
+
"stopping",
|
|
31
|
+
"suspended",
|
|
32
|
+
"error"
|
|
33
|
+
]);
|
|
34
|
+
var zeroBrowserSuspensionReasonSchema = external_exports.enum([
|
|
35
|
+
// Historical reason kept for rows written before the idle lease existed.
|
|
36
|
+
"run_end",
|
|
37
|
+
"idle",
|
|
38
|
+
"timeout",
|
|
39
|
+
"provider",
|
|
40
|
+
"reconcile",
|
|
41
|
+
"user"
|
|
42
|
+
]);
|
|
43
|
+
var zeroBrowserScreenSchema = external_exports.object({
|
|
44
|
+
width: external_exports.literal(ZERO_BROWSER_SCREEN_WIDTH),
|
|
45
|
+
height: external_exports.number().int().min(ZERO_BROWSER_MIN_SCREEN_HEIGHT).max(ZERO_BROWSER_MAX_SCREEN_HEIGHT),
|
|
46
|
+
resizable: external_exports.boolean()
|
|
47
|
+
});
|
|
48
|
+
var zeroBrowserSessionSchema = external_exports.object({
|
|
49
|
+
threadId: external_exports.uuid(),
|
|
50
|
+
name: external_exports.string().min(1).max(64),
|
|
51
|
+
status: zeroBrowserStatusSchema,
|
|
52
|
+
viewerUrl: external_exports.url(),
|
|
53
|
+
liveUrl: external_exports.url().nullable(),
|
|
54
|
+
// Additive for frontend/backend rollout compatibility. Old API versions
|
|
55
|
+
// omit this field; new versions return the latest captured foreground tab.
|
|
56
|
+
screenshotUrl: external_exports.url().nullable().optional(),
|
|
57
|
+
proxyCountryCode: external_exports.string().length(2).nullable(),
|
|
58
|
+
timeoutMinutes: external_exports.number().int().positive(),
|
|
59
|
+
// Only live provider instances have persisted window dimensions.
|
|
60
|
+
screen: zeroBrowserScreenSchema.optional(),
|
|
61
|
+
// When Zero reclaims the live provider instance unless somebody leases it
|
|
62
|
+
// again. Null once no provider instance is running.
|
|
63
|
+
idleExpiresAt: external_exports.iso.datetime().nullable(),
|
|
64
|
+
suspendedAt: external_exports.iso.datetime().nullable(),
|
|
65
|
+
suspensionReason: zeroBrowserSuspensionReasonSchema.nullable(),
|
|
66
|
+
createdAt: external_exports.iso.datetime(),
|
|
67
|
+
updatedAt: external_exports.iso.datetime()
|
|
68
|
+
}).strict();
|
|
69
|
+
var zeroBrowserCreateRequestSchema = external_exports.object({
|
|
70
|
+
name: external_exports.string().trim().min(1).max(64).default("browser"),
|
|
71
|
+
proxyCountryCode: external_exports.string().trim().length(2).transform((value) => {
|
|
72
|
+
return value.toLowerCase();
|
|
73
|
+
}).nullable().default(null)
|
|
74
|
+
}).strict();
|
|
75
|
+
var browserThreadParamsSchema = external_exports.object({
|
|
76
|
+
threadId: external_exports.uuid()
|
|
77
|
+
});
|
|
78
|
+
var browserResponseSchema = external_exports.object({
|
|
79
|
+
browser: zeroBrowserSessionSchema
|
|
80
|
+
});
|
|
81
|
+
var browserLifecycleRequestSchema = external_exports.object({
|
|
82
|
+
eventId: external_exports.uuid()
|
|
83
|
+
});
|
|
84
|
+
var browserMutationResponseSchema = browserResponseSchema.extend({
|
|
85
|
+
lifecycleEventId: external_exports.uuid().nullable()
|
|
86
|
+
});
|
|
87
|
+
var browserCloseResponseSchema = external_exports.object({
|
|
88
|
+
lifecycleEventId: external_exports.uuid()
|
|
89
|
+
});
|
|
90
|
+
var browserResizeRequestSchema = external_exports.object({
|
|
91
|
+
aspectRatio: external_exports.number().positive().finite()
|
|
92
|
+
});
|
|
93
|
+
var browserAuthorizationRequestTokenPathParamsSchema = external_exports.object({
|
|
94
|
+
requestToken: external_exports.string().min(1)
|
|
95
|
+
});
|
|
96
|
+
var browserAuthorizationRequestCreateResponseSchema = external_exports.object({
|
|
97
|
+
authorizationUrl: external_exports.url(),
|
|
98
|
+
expiresAt: external_exports.iso.datetime()
|
|
99
|
+
});
|
|
100
|
+
var browserAuthorizationRequestResponseSchema = external_exports.object({
|
|
101
|
+
expiresAt: external_exports.iso.datetime(),
|
|
102
|
+
completedAt: external_exports.iso.datetime().nullable(),
|
|
103
|
+
cloudBrowserEnabled: external_exports.boolean()
|
|
104
|
+
});
|
|
105
|
+
var browserAuthorizationRequestApplyResponseSchema = external_exports.object({
|
|
106
|
+
ok: external_exports.literal(true),
|
|
107
|
+
cloudBrowserEnabled: external_exports.literal(true)
|
|
108
|
+
});
|
|
109
|
+
var browserConnectionResponseSchema = browserResponseSchema.extend({
|
|
110
|
+
cdpUrl: external_exports.url(),
|
|
111
|
+
lifecycleEventId: external_exports.uuid().nullable()
|
|
112
|
+
});
|
|
113
|
+
var commonErrorResponses = {
|
|
114
|
+
400: apiErrorSchema,
|
|
115
|
+
401: apiErrorSchema,
|
|
116
|
+
403: apiErrorSchema,
|
|
117
|
+
404: apiErrorSchema,
|
|
118
|
+
409: apiErrorSchema,
|
|
119
|
+
502: apiErrorSchema,
|
|
120
|
+
503: apiErrorSchema
|
|
121
|
+
};
|
|
122
|
+
var zeroBrowserContract = c.router({
|
|
123
|
+
create: {
|
|
124
|
+
method: "POST",
|
|
125
|
+
path: "/api/zero/browsers",
|
|
126
|
+
headers: authHeadersSchema,
|
|
127
|
+
body: zeroBrowserCreateRequestSchema,
|
|
128
|
+
responses: {
|
|
129
|
+
201: browserConnectionResponseSchema,
|
|
130
|
+
...commonErrorResponses
|
|
131
|
+
},
|
|
132
|
+
summary: "Create a new managed browser for the current chat thread using its isolated profile"
|
|
133
|
+
},
|
|
134
|
+
use: {
|
|
135
|
+
method: "POST",
|
|
136
|
+
path: "/api/zero/browsers/use",
|
|
137
|
+
headers: authHeadersSchema,
|
|
138
|
+
body: external_exports.object({}),
|
|
139
|
+
responses: {
|
|
140
|
+
200: browserConnectionResponseSchema,
|
|
141
|
+
...commonErrorResponses
|
|
142
|
+
},
|
|
143
|
+
summary: "Create, reuse, or resume the current chat thread's managed browser and extend its idle lease"
|
|
144
|
+
},
|
|
145
|
+
lease: {
|
|
146
|
+
method: "POST",
|
|
147
|
+
path: "/api/zero/browsers/lease",
|
|
148
|
+
headers: authHeadersSchema,
|
|
149
|
+
body: external_exports.object({}),
|
|
150
|
+
responses: {
|
|
151
|
+
200: browserResponseSchema,
|
|
152
|
+
...commonErrorResponses
|
|
153
|
+
},
|
|
154
|
+
summary: "Extend the idle lease of the current chat thread's live browser"
|
|
155
|
+
},
|
|
156
|
+
leaseByThread: {
|
|
157
|
+
method: "POST",
|
|
158
|
+
path: "/api/zero/chat-threads/:threadId/browser/lease",
|
|
159
|
+
headers: authHeadersSchema,
|
|
160
|
+
pathParams: browserThreadParamsSchema,
|
|
161
|
+
body: external_exports.object({}),
|
|
162
|
+
responses: {
|
|
163
|
+
200: browserResponseSchema,
|
|
164
|
+
...commonErrorResponses
|
|
165
|
+
},
|
|
166
|
+
summary: "Extend the idle lease of a live browser from its viewer"
|
|
167
|
+
},
|
|
168
|
+
open: {
|
|
169
|
+
method: "POST",
|
|
170
|
+
path: "/api/zero/chat-threads/:threadId/browser/open",
|
|
171
|
+
headers: authHeadersSchema,
|
|
172
|
+
pathParams: browserThreadParamsSchema,
|
|
173
|
+
body: browserLifecycleRequestSchema,
|
|
174
|
+
responses: {
|
|
175
|
+
200: browserMutationResponseSchema,
|
|
176
|
+
...commonErrorResponses
|
|
177
|
+
},
|
|
178
|
+
summary: "Open a chat thread's managed browser"
|
|
179
|
+
},
|
|
180
|
+
close: {
|
|
181
|
+
method: "POST",
|
|
182
|
+
path: "/api/zero/chat-threads/:threadId/browser/close",
|
|
183
|
+
headers: authHeadersSchema,
|
|
184
|
+
pathParams: browserThreadParamsSchema,
|
|
185
|
+
body: browserLifecycleRequestSchema,
|
|
186
|
+
responses: {
|
|
187
|
+
200: browserCloseResponseSchema,
|
|
188
|
+
...commonErrorResponses
|
|
189
|
+
},
|
|
190
|
+
summary: "Record that the managed browser sidebar was closed"
|
|
191
|
+
},
|
|
192
|
+
// Compatibility aliases for browser bundles loaded before open/close.
|
|
193
|
+
// Remove after the stale web-client window has closed.
|
|
194
|
+
start: {
|
|
195
|
+
method: "POST",
|
|
196
|
+
path: "/api/zero/chat-threads/:threadId/browser/start",
|
|
197
|
+
headers: authHeadersSchema,
|
|
198
|
+
pathParams: browserThreadParamsSchema,
|
|
199
|
+
body: browserLifecycleRequestSchema,
|
|
200
|
+
responses: {
|
|
201
|
+
200: browserMutationResponseSchema,
|
|
202
|
+
...commonErrorResponses
|
|
203
|
+
},
|
|
204
|
+
summary: "Compatibility alias for opening a managed browser"
|
|
205
|
+
},
|
|
206
|
+
stop: {
|
|
207
|
+
method: "POST",
|
|
208
|
+
path: "/api/zero/chat-threads/:threadId/browser/stop",
|
|
209
|
+
headers: authHeadersSchema,
|
|
210
|
+
pathParams: browserThreadParamsSchema,
|
|
211
|
+
body: browserLifecycleRequestSchema,
|
|
212
|
+
responses: {
|
|
213
|
+
200: browserMutationResponseSchema,
|
|
214
|
+
...commonErrorResponses
|
|
215
|
+
},
|
|
216
|
+
summary: "Compatibility endpoint for a stale browser viewer"
|
|
217
|
+
},
|
|
218
|
+
resizeByThread: {
|
|
219
|
+
method: "POST",
|
|
220
|
+
path: "/api/zero/chat-threads/:threadId/browser/resize",
|
|
221
|
+
headers: authHeadersSchema,
|
|
222
|
+
pathParams: browserThreadParamsSchema,
|
|
223
|
+
body: browserResizeRequestSchema,
|
|
224
|
+
responses: {
|
|
225
|
+
200: browserResponseSchema,
|
|
226
|
+
...commonErrorResponses
|
|
227
|
+
},
|
|
228
|
+
summary: "Resize a live browser to match a viewer aspect ratio"
|
|
229
|
+
},
|
|
230
|
+
current: {
|
|
231
|
+
method: "GET",
|
|
232
|
+
path: "/api/zero/browsers/current",
|
|
233
|
+
headers: authHeadersSchema,
|
|
234
|
+
responses: {
|
|
235
|
+
200: browserResponseSchema,
|
|
236
|
+
...commonErrorResponses
|
|
237
|
+
},
|
|
238
|
+
summary: "Get the current chat thread's managed browser"
|
|
239
|
+
},
|
|
240
|
+
get: {
|
|
241
|
+
method: "GET",
|
|
242
|
+
path: "/api/zero/chat-threads/:threadId/browser",
|
|
243
|
+
headers: authHeadersSchema,
|
|
244
|
+
pathParams: browserThreadParamsSchema,
|
|
245
|
+
responses: {
|
|
246
|
+
200: browserResponseSchema,
|
|
247
|
+
...commonErrorResponses
|
|
248
|
+
},
|
|
249
|
+
summary: "Get a chat thread's managed browser"
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
var zeroBrowserAuthorizationRequestsContract = c.router({
|
|
253
|
+
create: {
|
|
254
|
+
method: "POST",
|
|
255
|
+
path: "/api/zero/browser/authorization-requests",
|
|
256
|
+
headers: authHeadersSchema,
|
|
257
|
+
body: external_exports.object({}),
|
|
258
|
+
responses: {
|
|
259
|
+
200: browserAuthorizationRequestCreateResponseSchema,
|
|
260
|
+
400: apiErrorSchema,
|
|
261
|
+
401: apiErrorSchema,
|
|
262
|
+
403: apiErrorSchema,
|
|
263
|
+
404: apiErrorSchema,
|
|
264
|
+
409: apiErrorSchema
|
|
265
|
+
},
|
|
266
|
+
summary: "Create a short-lived cloud browser authorization request for the current run"
|
|
267
|
+
},
|
|
268
|
+
get: {
|
|
269
|
+
method: "GET",
|
|
270
|
+
path: "/api/zero/browser/authorization-requests/:requestToken",
|
|
271
|
+
headers: authHeadersSchema,
|
|
272
|
+
pathParams: browserAuthorizationRequestTokenPathParamsSchema,
|
|
273
|
+
responses: {
|
|
274
|
+
200: browserAuthorizationRequestResponseSchema,
|
|
275
|
+
401: apiErrorSchema,
|
|
276
|
+
403: apiErrorSchema,
|
|
277
|
+
404: apiErrorSchema,
|
|
278
|
+
410: apiErrorSchema
|
|
279
|
+
},
|
|
280
|
+
summary: "Read a cloud browser authorization request"
|
|
281
|
+
},
|
|
282
|
+
apply: {
|
|
283
|
+
method: "POST",
|
|
284
|
+
path: "/api/zero/browser/authorization-requests/:requestToken/apply",
|
|
285
|
+
headers: authHeadersSchema,
|
|
286
|
+
pathParams: browserAuthorizationRequestTokenPathParamsSchema,
|
|
287
|
+
body: external_exports.object({}),
|
|
288
|
+
responses: {
|
|
289
|
+
200: browserAuthorizationRequestApplyResponseSchema,
|
|
290
|
+
400: apiErrorSchema,
|
|
291
|
+
401: apiErrorSchema,
|
|
292
|
+
403: apiErrorSchema,
|
|
293
|
+
404: apiErrorSchema,
|
|
294
|
+
410: apiErrorSchema
|
|
295
|
+
},
|
|
296
|
+
summary: "Enable the cloud browser for a delegated authorization request"
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
// src/lib/api/domains/zero-browser.ts
|
|
301
|
+
init_esm_shims();
|
|
302
|
+
async function client() {
|
|
303
|
+
return initClient(zeroBrowserContract, await getClientConfig());
|
|
304
|
+
}
|
|
305
|
+
async function authorizationClient() {
|
|
306
|
+
return initClient(
|
|
307
|
+
zeroBrowserAuthorizationRequestsContract,
|
|
308
|
+
await getClientConfig()
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
async function createBrowserAuthorizationRequest() {
|
|
312
|
+
const result = await (await authorizationClient()).create({ headers: {}, body: {} });
|
|
313
|
+
if (result.status === 200) {
|
|
314
|
+
return result.body;
|
|
315
|
+
}
|
|
316
|
+
handleError(result, "Failed to create cloud browser authorization request");
|
|
317
|
+
}
|
|
318
|
+
async function createZeroBrowser(body) {
|
|
319
|
+
const result = await (await client()).create({ headers: {}, body });
|
|
320
|
+
if (result.status === 201) {
|
|
321
|
+
return result.body;
|
|
322
|
+
}
|
|
323
|
+
handleError(result, "Failed to create a new managed browser");
|
|
324
|
+
}
|
|
325
|
+
async function useZeroBrowser() {
|
|
326
|
+
const result = await (await client()).use({
|
|
327
|
+
headers: {},
|
|
328
|
+
body: {}
|
|
329
|
+
});
|
|
330
|
+
if (result.status === 200) {
|
|
331
|
+
return result.body;
|
|
332
|
+
}
|
|
333
|
+
handleError(result, "Failed to open the managed browser");
|
|
334
|
+
}
|
|
335
|
+
async function leaseZeroBrowser() {
|
|
336
|
+
const result = await (await client()).lease({
|
|
337
|
+
headers: {},
|
|
338
|
+
body: {}
|
|
339
|
+
});
|
|
340
|
+
if (result.status === 200) {
|
|
341
|
+
return result.body.browser;
|
|
342
|
+
}
|
|
343
|
+
handleError(result, "Failed to extend the managed browser lease");
|
|
344
|
+
}
|
|
345
|
+
async function getCurrentZeroBrowser() {
|
|
346
|
+
const result = await (await client()).current({ headers: {} });
|
|
347
|
+
if (result.status === 200) {
|
|
348
|
+
return result.body.browser;
|
|
349
|
+
}
|
|
350
|
+
handleError(result, "Failed to get the current managed browser");
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
export {
|
|
354
|
+
ZERO_BROWSER_IDLE_LEASE_MINUTES,
|
|
355
|
+
zeroBrowserCreateRequestSchema,
|
|
356
|
+
createBrowserAuthorizationRequest,
|
|
357
|
+
createZeroBrowser,
|
|
358
|
+
useZeroBrowser,
|
|
359
|
+
leaseZeroBrowser,
|
|
360
|
+
getCurrentZeroBrowser
|
|
361
|
+
};
|
|
362
|
+
//# sourceMappingURL=chunk-HMH473P6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/api-contracts/src/contracts/zero-browser.ts","../src/lib/api/domains/zero-browser.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { authHeadersSchema, initContract } from \"./base\";\nimport { apiErrorSchema } from \"./errors\";\n\nconst c = initContract();\n\n// Zero always asks Browser Use for its longest provider lifetime and manages\n// reclamation itself through the idle lease below, so a hard provider timeout\n// can never cut a browser short while somebody is still using it.\nexport const ZERO_BROWSER_PROVIDER_TIMEOUT_MINUTES = 240;\nexport const ZERO_BROWSER_IDLE_LEASE_MINUTES = 10;\nexport const ZERO_BROWSER_SCREEN_WIDTH = 1440;\nexport const ZERO_BROWSER_INITIAL_SCREEN_HEIGHT = 900;\nexport const ZERO_BROWSER_MIN_SCREEN_HEIGHT = 320;\nexport const ZERO_BROWSER_MAX_SCREEN_HEIGHT = 3456;\n\nexport const zeroBrowserStatusSchema = z.enum([\n \"creating\",\n \"active\",\n \"resuming\",\n \"stopping\",\n \"suspended\",\n \"error\",\n]);\n\nexport const zeroBrowserSuspensionReasonSchema = z.enum([\n // Historical reason kept for rows written before the idle lease existed.\n \"run_end\",\n \"idle\",\n \"timeout\",\n \"provider\",\n \"reconcile\",\n \"user\",\n]);\n\nconst zeroBrowserScreenSchema = z.object({\n width: z.literal(ZERO_BROWSER_SCREEN_WIDTH),\n height: z\n .number()\n .int()\n .min(ZERO_BROWSER_MIN_SCREEN_HEIGHT)\n .max(ZERO_BROWSER_MAX_SCREEN_HEIGHT),\n resizable: z.boolean(),\n});\n\nexport const zeroBrowserSessionSchema = z\n .object({\n threadId: z.uuid(),\n name: z.string().min(1).max(64),\n status: zeroBrowserStatusSchema,\n viewerUrl: z.url(),\n liveUrl: z.url().nullable(),\n // Additive for frontend/backend rollout compatibility. Old API versions\n // omit this field; new versions return the latest captured foreground tab.\n screenshotUrl: z.url().nullable().optional(),\n proxyCountryCode: z.string().length(2).nullable(),\n timeoutMinutes: z.number().int().positive(),\n // Only live provider instances have persisted window dimensions.\n screen: zeroBrowserScreenSchema.optional(),\n // When Zero reclaims the live provider instance unless somebody leases it\n // again. Null once no provider instance is running.\n idleExpiresAt: z.iso.datetime().nullable(),\n suspendedAt: z.iso.datetime().nullable(),\n suspensionReason: zeroBrowserSuspensionReasonSchema.nullable(),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n })\n .strict();\n\nexport type ZeroBrowserStatus = z.infer<typeof zeroBrowserStatusSchema>;\nexport type ZeroBrowserSuspensionReason = z.infer<\n typeof zeroBrowserSuspensionReasonSchema\n>;\nexport type ZeroBrowserSession = z.infer<typeof zeroBrowserSessionSchema>;\n\nexport const zeroBrowserCreateRequestSchema = z\n .object({\n name: z.string().trim().min(1).max(64).default(\"browser\"),\n proxyCountryCode: z\n .string()\n .trim()\n .length(2)\n .transform((value) => {\n return value.toLowerCase();\n })\n .nullable()\n .default(null),\n })\n .strict();\n\nexport type ZeroBrowserCreateRequest = z.infer<\n typeof zeroBrowserCreateRequestSchema\n>;\n\nconst browserThreadParamsSchema = z.object({\n threadId: z.uuid(),\n});\n\nconst browserResponseSchema = z.object({\n browser: zeroBrowserSessionSchema,\n});\n\nconst browserLifecycleRequestSchema = z.object({\n eventId: z.uuid(),\n});\n\nconst browserMutationResponseSchema = browserResponseSchema.extend({\n lifecycleEventId: z.uuid().nullable(),\n});\n\nconst browserCloseResponseSchema = z.object({\n lifecycleEventId: z.uuid(),\n});\n\nconst browserResizeRequestSchema = z.object({\n aspectRatio: z.number().positive().finite(),\n});\n\nconst browserAuthorizationRequestTokenPathParamsSchema = z.object({\n requestToken: z.string().min(1),\n});\n\nconst browserAuthorizationRequestCreateResponseSchema = z.object({\n authorizationUrl: z.url(),\n expiresAt: z.iso.datetime(),\n});\n\nconst browserAuthorizationRequestResponseSchema = z.object({\n expiresAt: z.iso.datetime(),\n completedAt: z.iso.datetime().nullable(),\n cloudBrowserEnabled: z.boolean(),\n});\n\nconst browserAuthorizationRequestApplyResponseSchema = z.object({\n ok: z.literal(true),\n cloudBrowserEnabled: z.literal(true),\n});\n\nconst browserConnectionResponseSchema = browserResponseSchema.extend({\n cdpUrl: z.url(),\n lifecycleEventId: z.uuid().nullable(),\n});\n\nconst commonErrorResponses = {\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 409: apiErrorSchema,\n 502: apiErrorSchema,\n 503: apiErrorSchema,\n} as const;\n\nexport const zeroBrowserContract = c.router({\n create: {\n method: \"POST\",\n path: \"/api/zero/browsers\",\n headers: authHeadersSchema,\n body: zeroBrowserCreateRequestSchema,\n responses: {\n 201: browserConnectionResponseSchema,\n ...commonErrorResponses,\n },\n summary:\n \"Create a new managed browser for the current chat thread using its isolated profile\",\n },\n use: {\n method: \"POST\",\n path: \"/api/zero/browsers/use\",\n headers: authHeadersSchema,\n body: z.object({}),\n responses: {\n 200: browserConnectionResponseSchema,\n ...commonErrorResponses,\n },\n summary:\n \"Create, reuse, or resume the current chat thread's managed browser and extend its idle lease\",\n },\n lease: {\n method: \"POST\",\n path: \"/api/zero/browsers/lease\",\n headers: authHeadersSchema,\n body: z.object({}),\n responses: {\n 200: browserResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Extend the idle lease of the current chat thread's live browser\",\n },\n leaseByThread: {\n method: \"POST\",\n path: \"/api/zero/chat-threads/:threadId/browser/lease\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n body: z.object({}),\n responses: {\n 200: browserResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Extend the idle lease of a live browser from its viewer\",\n },\n open: {\n method: \"POST\",\n path: \"/api/zero/chat-threads/:threadId/browser/open\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n body: browserLifecycleRequestSchema,\n responses: {\n 200: browserMutationResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Open a chat thread's managed browser\",\n },\n close: {\n method: \"POST\",\n path: \"/api/zero/chat-threads/:threadId/browser/close\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n body: browserLifecycleRequestSchema,\n responses: {\n 200: browserCloseResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Record that the managed browser sidebar was closed\",\n },\n // Compatibility aliases for browser bundles loaded before open/close.\n // Remove after the stale web-client window has closed.\n start: {\n method: \"POST\",\n path: \"/api/zero/chat-threads/:threadId/browser/start\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n body: browserLifecycleRequestSchema,\n responses: {\n 200: browserMutationResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Compatibility alias for opening a managed browser\",\n },\n stop: {\n method: \"POST\",\n path: \"/api/zero/chat-threads/:threadId/browser/stop\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n body: browserLifecycleRequestSchema,\n responses: {\n 200: browserMutationResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Compatibility endpoint for a stale browser viewer\",\n },\n resizeByThread: {\n method: \"POST\",\n path: \"/api/zero/chat-threads/:threadId/browser/resize\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n body: browserResizeRequestSchema,\n responses: {\n 200: browserResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Resize a live browser to match a viewer aspect ratio\",\n },\n current: {\n method: \"GET\",\n path: \"/api/zero/browsers/current\",\n headers: authHeadersSchema,\n responses: {\n 200: browserResponseSchema,\n ...commonErrorResponses,\n },\n summary: \"Get the current chat thread's managed browser\",\n },\n get: {\n method: \"GET\",\n path: \"/api/zero/chat-threads/:threadId/browser\",\n headers: authHeadersSchema,\n pathParams: browserThreadParamsSchema,\n responses: {\n 200: browserResponseSchema,\n ...commonErrorResponses,\n } as const,\n summary: \"Get a chat thread's managed browser\",\n },\n});\n\nexport const zeroBrowserAuthorizationRequestsContract = c.router({\n create: {\n method: \"POST\",\n path: \"/api/zero/browser/authorization-requests\",\n headers: authHeadersSchema,\n body: z.object({}),\n responses: {\n 200: browserAuthorizationRequestCreateResponseSchema,\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 409: apiErrorSchema,\n },\n summary:\n \"Create a short-lived cloud browser authorization request for the current run\",\n },\n get: {\n method: \"GET\",\n path: \"/api/zero/browser/authorization-requests/:requestToken\",\n headers: authHeadersSchema,\n pathParams: browserAuthorizationRequestTokenPathParamsSchema,\n responses: {\n 200: browserAuthorizationRequestResponseSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 410: apiErrorSchema,\n },\n summary: \"Read a cloud browser authorization request\",\n },\n apply: {\n method: \"POST\",\n path: \"/api/zero/browser/authorization-requests/:requestToken/apply\",\n headers: authHeadersSchema,\n pathParams: browserAuthorizationRequestTokenPathParamsSchema,\n body: z.object({}),\n responses: {\n 200: browserAuthorizationRequestApplyResponseSchema,\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 410: apiErrorSchema,\n },\n summary: \"Enable the cloud browser for a delegated authorization request\",\n },\n});\n\nexport type ZeroBrowserContract = typeof zeroBrowserContract;\nexport type ZeroBrowserAuthorizationRequestsContract =\n typeof zeroBrowserAuthorizationRequestsContract;\nexport type BrowserAuthorizationRequestCreateResponse = z.infer<\n typeof browserAuthorizationRequestCreateResponseSchema\n>;\nexport type BrowserAuthorizationRequestResponse = z.infer<\n typeof browserAuthorizationRequestResponseSchema\n>;\nexport type BrowserAuthorizationRequestApplyResponse = z.infer<\n typeof browserAuthorizationRequestApplyResponseSchema\n>;\n","import {\n zeroBrowserAuthorizationRequestsContract,\n zeroBrowserContract,\n type BrowserAuthorizationRequestCreateResponse,\n type ZeroBrowserCreateRequest,\n type ZeroBrowserSession,\n} from \"@vm0/api-contracts/contracts/zero-browser\";\nimport { initClient } from \"@vm0/api-contracts/contracts/trpc-contract\";\n\nimport { getClientConfig, handleError } from \"../core/client-factory\";\n\nasync function client() {\n return initClient(zeroBrowserContract, await getClientConfig());\n}\n\nasync function authorizationClient() {\n return initClient(\n zeroBrowserAuthorizationRequestsContract,\n await getClientConfig(),\n );\n}\n\nexport async function createBrowserAuthorizationRequest(): Promise<BrowserAuthorizationRequestCreateResponse> {\n const result = await (\n await authorizationClient()\n ).create({ headers: {}, body: {} });\n if (result.status === 200) {\n return result.body;\n }\n handleError(result, \"Failed to create cloud browser authorization request\");\n}\n\nexport async function createZeroBrowser(\n body: ZeroBrowserCreateRequest,\n): Promise<{ browser: ZeroBrowserSession; cdpUrl: string }> {\n const result = await (await client()).create({ headers: {}, body });\n if (result.status === 201) {\n return result.body;\n }\n handleError(result, \"Failed to create a new managed browser\");\n}\n\nexport async function useZeroBrowser(): Promise<{\n browser: ZeroBrowserSession;\n cdpUrl: string;\n}> {\n const result = await (\n await client()\n ).use({\n headers: {},\n body: {},\n });\n if (result.status === 200) {\n return result.body;\n }\n handleError(result, \"Failed to open the managed browser\");\n}\n\nexport async function leaseZeroBrowser(): Promise<ZeroBrowserSession> {\n const result = await (\n await client()\n ).lease({\n headers: {},\n body: {},\n });\n if (result.status === 200) {\n return result.body.browser;\n }\n handleError(result, \"Failed to extend the managed browser lease\");\n}\n\nexport async function getCurrentZeroBrowser(): Promise<ZeroBrowserSession> {\n const result = await (await client()).current({ headers: {} });\n if (result.status === 200) {\n return result.body.browser;\n }\n handleError(result, \"Failed to get the current managed browser\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
authHeadersSchema
|
|
6
|
+
} from "./chunk-NIG6LRRX.js";
|
|
7
|
+
import {
|
|
8
|
+
apiErrorSchema,
|
|
9
|
+
external_exports,
|
|
10
|
+
initContract
|
|
11
|
+
} from "./chunk-U2PPHCTL.js";
|
|
12
|
+
import {
|
|
13
|
+
init_esm_shims
|
|
14
|
+
} from "./chunk-52CNCL6Y.js";
|
|
15
|
+
|
|
16
|
+
// ../../packages/api-contracts/src/contracts/zero-people-search.ts
|
|
17
|
+
init_esm_shims();
|
|
18
|
+
var c = initContract();
|
|
19
|
+
var ZERO_PEOPLE_SEARCH_DEFAULT_LIMIT = 5;
|
|
20
|
+
var ZERO_PEOPLE_SEARCH_MAX_LIMIT = 20;
|
|
21
|
+
var ZERO_PEOPLE_SEARCH_MAX_QUERY_CHARS = 2048;
|
|
22
|
+
var ZERO_PEOPLE_SEARCH_MAX_NAME_CHARS = 256;
|
|
23
|
+
var ZERO_PEOPLE_SEARCH_MAX_TITLE_CHARS = 512;
|
|
24
|
+
var ZERO_PEOPLE_SEARCH_MAX_COMPANY_CHARS = 256;
|
|
25
|
+
var ZERO_PEOPLE_SEARCH_MAX_LOCATION_CHARS = 256;
|
|
26
|
+
var ZERO_PEOPLE_SEARCH_MAX_SUMMARY_CHARS = 1e3;
|
|
27
|
+
var ZERO_PEOPLE_SEARCH_MAX_SOURCE_TITLE_CHARS = 512;
|
|
28
|
+
var ZERO_PEOPLE_SEARCH_MAX_SOURCE_URL_CHARS = 2048;
|
|
29
|
+
var ZERO_PEOPLE_SEARCH_MAX_SOURCES = 5;
|
|
30
|
+
var zeroPeopleSearchRequestSchema = external_exports.object({
|
|
31
|
+
query: external_exports.string().trim().min(1).max(ZERO_PEOPLE_SEARCH_MAX_QUERY_CHARS),
|
|
32
|
+
limit: external_exports.number().int().min(1).max(ZERO_PEOPLE_SEARCH_MAX_LIMIT).default(ZERO_PEOPLE_SEARCH_DEFAULT_LIMIT)
|
|
33
|
+
});
|
|
34
|
+
var zeroPeopleSearchHttpUrlSchema = external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_SOURCE_URL_CHARS).url().regex(/^https?:\/\//i, "Source URL must use http or https");
|
|
35
|
+
var zeroPeopleSearchSourceSchema = external_exports.object({
|
|
36
|
+
title: external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_SOURCE_TITLE_CHARS),
|
|
37
|
+
url: zeroPeopleSearchHttpUrlSchema
|
|
38
|
+
});
|
|
39
|
+
var zeroPeopleSearchProfileSchema = external_exports.object({
|
|
40
|
+
name: external_exports.string().min(1).max(ZERO_PEOPLE_SEARCH_MAX_NAME_CHARS),
|
|
41
|
+
title: external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_TITLE_CHARS).optional(),
|
|
42
|
+
company: external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_COMPANY_CHARS).optional(),
|
|
43
|
+
location: external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_LOCATION_CHARS).optional(),
|
|
44
|
+
summary: external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_SUMMARY_CHARS).optional(),
|
|
45
|
+
sources: external_exports.array(zeroPeopleSearchSourceSchema).min(1).max(ZERO_PEOPLE_SEARCH_MAX_SOURCES)
|
|
46
|
+
});
|
|
47
|
+
var zeroPeopleSearchResponseSchema = external_exports.object({
|
|
48
|
+
query: external_exports.string().max(ZERO_PEOPLE_SEARCH_MAX_QUERY_CHARS),
|
|
49
|
+
limit: external_exports.number().int().min(1).max(ZERO_PEOPLE_SEARCH_MAX_LIMIT),
|
|
50
|
+
provider: external_exports.literal("perplexity"),
|
|
51
|
+
billingCategory: external_exports.literal("request"),
|
|
52
|
+
billingQuantity: external_exports.literal(1),
|
|
53
|
+
creditsCharged: external_exports.number().int().nonnegative(),
|
|
54
|
+
profiles: external_exports.array(zeroPeopleSearchProfileSchema).max(ZERO_PEOPLE_SEARCH_MAX_LIMIT)
|
|
55
|
+
});
|
|
56
|
+
var zeroPeopleSearchContract = c.router({
|
|
57
|
+
search: {
|
|
58
|
+
method: "POST",
|
|
59
|
+
path: "/api/zero/people-search",
|
|
60
|
+
headers: authHeadersSchema,
|
|
61
|
+
body: zeroPeopleSearchRequestSchema,
|
|
62
|
+
responses: {
|
|
63
|
+
200: zeroPeopleSearchResponseSchema,
|
|
64
|
+
400: apiErrorSchema,
|
|
65
|
+
401: apiErrorSchema,
|
|
66
|
+
402: apiErrorSchema,
|
|
67
|
+
403: apiErrorSchema,
|
|
68
|
+
502: apiErrorSchema,
|
|
69
|
+
503: apiErrorSchema
|
|
70
|
+
},
|
|
71
|
+
summary: "Find professionals through managed Zero People Search"
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
ZERO_PEOPLE_SEARCH_DEFAULT_LIMIT,
|
|
77
|
+
ZERO_PEOPLE_SEARCH_MAX_LIMIT,
|
|
78
|
+
zeroPeopleSearchRequestSchema,
|
|
79
|
+
zeroPeopleSearchContract
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=chunk-HMUAPCDD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/api-contracts/src/contracts/zero-people-search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { authHeadersSchema, initContract } from \"./base\";\nimport { apiErrorSchema } from \"./errors\";\n\nconst c = initContract();\n\nexport const ZERO_PEOPLE_SEARCH_DEFAULT_LIMIT = 5;\nexport const ZERO_PEOPLE_SEARCH_MAX_LIMIT = 20;\nexport const ZERO_PEOPLE_SEARCH_MAX_QUERY_CHARS = 2_048;\nexport const ZERO_PEOPLE_SEARCH_MAX_NAME_CHARS = 256;\nexport const ZERO_PEOPLE_SEARCH_MAX_TITLE_CHARS = 512;\nexport const ZERO_PEOPLE_SEARCH_MAX_COMPANY_CHARS = 256;\nexport const ZERO_PEOPLE_SEARCH_MAX_LOCATION_CHARS = 256;\nexport const ZERO_PEOPLE_SEARCH_MAX_SUMMARY_CHARS = 1_000;\nexport const ZERO_PEOPLE_SEARCH_MAX_SOURCE_TITLE_CHARS = 512;\nexport const ZERO_PEOPLE_SEARCH_MAX_SOURCE_URL_CHARS = 2_048;\nexport const ZERO_PEOPLE_SEARCH_MAX_SOURCES = 5;\n\nexport const zeroPeopleSearchRequestSchema = z.object({\n query: z.string().trim().min(1).max(ZERO_PEOPLE_SEARCH_MAX_QUERY_CHARS),\n limit: z\n .number()\n .int()\n .min(1)\n .max(ZERO_PEOPLE_SEARCH_MAX_LIMIT)\n .default(ZERO_PEOPLE_SEARCH_DEFAULT_LIMIT),\n});\n\nconst zeroPeopleSearchHttpUrlSchema = z\n .string()\n .max(ZERO_PEOPLE_SEARCH_MAX_SOURCE_URL_CHARS)\n .url()\n .regex(/^https?:\\/\\//i, \"Source URL must use http or https\");\n\nexport const zeroPeopleSearchSourceSchema = z.object({\n title: z.string().max(ZERO_PEOPLE_SEARCH_MAX_SOURCE_TITLE_CHARS),\n url: zeroPeopleSearchHttpUrlSchema,\n});\n\nexport const zeroPeopleSearchProfileSchema = z.object({\n name: z.string().min(1).max(ZERO_PEOPLE_SEARCH_MAX_NAME_CHARS),\n title: z.string().max(ZERO_PEOPLE_SEARCH_MAX_TITLE_CHARS).optional(),\n company: z.string().max(ZERO_PEOPLE_SEARCH_MAX_COMPANY_CHARS).optional(),\n location: z.string().max(ZERO_PEOPLE_SEARCH_MAX_LOCATION_CHARS).optional(),\n summary: z.string().max(ZERO_PEOPLE_SEARCH_MAX_SUMMARY_CHARS).optional(),\n sources: z\n .array(zeroPeopleSearchSourceSchema)\n .min(1)\n .max(ZERO_PEOPLE_SEARCH_MAX_SOURCES),\n});\n\nexport const zeroPeopleSearchResponseSchema = z.object({\n query: z.string().max(ZERO_PEOPLE_SEARCH_MAX_QUERY_CHARS),\n limit: z.number().int().min(1).max(ZERO_PEOPLE_SEARCH_MAX_LIMIT),\n provider: z.literal(\"perplexity\"),\n billingCategory: z.literal(\"request\"),\n billingQuantity: z.literal(1),\n creditsCharged: z.number().int().nonnegative(),\n profiles: z\n .array(zeroPeopleSearchProfileSchema)\n .max(ZERO_PEOPLE_SEARCH_MAX_LIMIT),\n});\n\nexport type ZeroPeopleSearchRequest = z.infer<\n typeof zeroPeopleSearchRequestSchema\n>;\nexport type ZeroPeopleSearchSource = z.infer<\n typeof zeroPeopleSearchSourceSchema\n>;\nexport type ZeroPeopleSearchProfile = z.infer<\n typeof zeroPeopleSearchProfileSchema\n>;\nexport type ZeroPeopleSearchResponse = z.infer<\n typeof zeroPeopleSearchResponseSchema\n>;\n\nexport const zeroPeopleSearchContract = c.router({\n search: {\n method: \"POST\",\n path: \"/api/zero/people-search\",\n headers: authHeadersSchema,\n body: zeroPeopleSearchRequestSchema,\n responses: {\n 200: zeroPeopleSearchResponseSchema,\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 402: apiErrorSchema,\n 403: apiErrorSchema,\n 502: apiErrorSchema,\n 503: apiErrorSchema,\n },\n summary: \"Find professionals through managed Zero People Search\",\n },\n});\n\nexport type ZeroPeopleSearchContract = typeof zeroPeopleSearchContract;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAKA,IAAM,IAAI,aAAa;AAEhB,IAAM,mCAAmC;AACzC,IAAM,+BAA+B;AACrC,IAAM,qCAAqC;AAC3C,IAAM,oCAAoC;AAC1C,IAAM,qCAAqC;AAC3C,IAAM,uCAAuC;AAC7C,IAAM,wCAAwC;AAC9C,IAAM,uCAAuC;AAC7C,IAAM,4CAA4C;AAClD,IAAM,0CAA0C;AAChD,IAAM,iCAAiC;AAEvC,IAAM,gCAAgC,iBAAE,OAAO;AAAA,EACpD,OAAO,iBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,kCAAkC;AAAA,EACtE,OAAO,iBACJ,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,EACL,IAAI,4BAA4B,EAChC,QAAQ,gCAAgC;AAC7C,CAAC;AAED,IAAM,gCAAgC,iBACnC,OAAO,EACP,IAAI,uCAAuC,EAC3C,IAAI,EACJ,MAAM,iBAAiB,mCAAmC;AAEtD,IAAM,+BAA+B,iBAAE,OAAO;AAAA,EACnD,OAAO,iBAAE,OAAO,EAAE,IAAI,yCAAyC;AAAA,EAC/D,KAAK;AACP,CAAC;AAEM,IAAM,gCAAgC,iBAAE,OAAO;AAAA,EACpD,MAAM,iBAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,iCAAiC;AAAA,EAC7D,OAAO,iBAAE,OAAO,EAAE,IAAI,kCAAkC,EAAE,SAAS;AAAA,EACnE,SAAS,iBAAE,OAAO,EAAE,IAAI,oCAAoC,EAAE,SAAS;AAAA,EACvE,UAAU,iBAAE,OAAO,EAAE,IAAI,qCAAqC,EAAE,SAAS;AAAA,EACzE,SAAS,iBAAE,OAAO,EAAE,IAAI,oCAAoC,EAAE,SAAS;AAAA,EACvE,SAAS,iBACN,MAAM,4BAA4B,EAClC,IAAI,CAAC,EACL,IAAI,8BAA8B;AACvC,CAAC;AAEM,IAAM,iCAAiC,iBAAE,OAAO;AAAA,EACrD,OAAO,iBAAE,OAAO,EAAE,IAAI,kCAAkC;AAAA,EACxD,OAAO,iBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,4BAA4B;AAAA,EAC/D,UAAU,iBAAE,QAAQ,YAAY;AAAA,EAChC,iBAAiB,iBAAE,QAAQ,SAAS;AAAA,EACpC,iBAAiB,iBAAE,QAAQ,CAAC;AAAA,EAC5B,gBAAgB,iBAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC7C,UAAU,iBACP,MAAM,6BAA6B,EACnC,IAAI,4BAA4B;AACrC,CAAC;AAeM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,SAAS;AAAA,EACX;AACF,CAAC;","names":[]}
|