@vm0/cli 9.278.0 → 9.278.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{agent-HUDTEGLK.js → agent-4F3XAJWN.js} +12 -6
- package/agent-4F3XAJWN.js.map +1 -0
- package/{banking-BMZONEXP.js → banking-CWQFQKZB.js} +61 -7
- package/banking-CWQFQKZB.js.map +1 -0
- package/{browser-LQP445CU.js → browser-BI6UFWPH.js} +4 -5
- package/browser-BI6UFWPH.js.map +1 -0
- package/{chat-UF7QAWUT.js → chat-MKIW4FPP.js} +24 -16
- package/chat-MKIW4FPP.js.map +1 -0
- package/chunk-2SJTFDC2.js +189 -0
- package/chunk-2SJTFDC2.js.map +1 -0
- package/chunk-4FTIKZKP.js +64 -0
- package/chunk-4FTIKZKP.js.map +1 -0
- package/chunk-7UZXNER2.js +568 -0
- package/chunk-7UZXNER2.js.map +1 -0
- package/chunk-A6ZRMNM3.js +102 -0
- package/chunk-A6ZRMNM3.js.map +1 -0
- package/{chunk-QC63TUJC.js → chunk-C62A6LD6.js} +2 -2
- package/chunk-CCTF3YVW.js +52 -0
- package/chunk-CCTF3YVW.js.map +1 -0
- package/chunk-CD2BLKGC.js +188 -0
- package/chunk-CD2BLKGC.js.map +1 -0
- package/chunk-CEJGHPF3.js +55 -0
- package/chunk-CEJGHPF3.js.map +1 -0
- package/chunk-DUA6CF7E.js +2053 -0
- package/chunk-DUA6CF7E.js.map +1 -0
- package/chunk-E2TQAKNL.js +1300 -0
- package/chunk-E2TQAKNL.js.map +1 -0
- package/{chunk-5ZZI2LSO.js → chunk-GHKWW4NC.js} +5 -5
- package/chunk-GV3PG6CZ.js +114 -0
- package/chunk-GV3PG6CZ.js.map +1 -0
- package/chunk-GY7D76EZ.js +81 -0
- package/chunk-GY7D76EZ.js.map +1 -0
- package/chunk-HHHHZMTA.js +434 -0
- package/chunk-HHHHZMTA.js.map +1 -0
- package/chunk-HZYOJTEE.js +1275 -0
- package/chunk-HZYOJTEE.js.map +1 -0
- package/chunk-J3ZRXVI6.js +740 -0
- package/chunk-J3ZRXVI6.js.map +1 -0
- package/chunk-JJWFO27K.js +31 -0
- package/chunk-JJWFO27K.js.map +1 -0
- package/chunk-JV6LM2YC.js +39 -0
- package/chunk-JV6LM2YC.js.map +1 -0
- package/chunk-KER77KJB.js +105 -0
- package/chunk-KER77KJB.js.map +1 -0
- package/{chunk-V5ZVB7RJ.js → chunk-KKO2XGLQ.js} +1 -6
- package/chunk-KKO2XGLQ.js.map +1 -0
- package/chunk-LIYPTQAO.js +198 -0
- package/chunk-LIYPTQAO.js.map +1 -0
- package/chunk-LYLDVUHT.js +131 -0
- package/chunk-LYLDVUHT.js.map +1 -0
- package/chunk-PFWBO2VK.js +801 -0
- package/chunk-PFWBO2VK.js.map +1 -0
- package/chunk-RTCRU35A.js +194 -0
- package/chunk-RTCRU35A.js.map +1 -0
- package/{chunk-F2AM4RWA.js → chunk-RTEEWZUT.js} +2 -2
- package/{chunk-F2AM4RWA.js.map → chunk-RTEEWZUT.js.map} +1 -1
- package/{chunk-BRV4D3P2.js → chunk-RUKMHBNQ.js} +2 -2
- package/chunk-SA4DYSBR.js +31 -0
- package/chunk-SA4DYSBR.js.map +1 -0
- package/chunk-SJPOFQJU.js +792 -0
- package/chunk-SJPOFQJU.js.map +1 -0
- package/{chunk-V7A6ZFHR.js → chunk-SMPSKBAP.js} +25 -774
- package/chunk-SMPSKBAP.js.map +1 -0
- package/{chunk-E53W6UVQ.js → chunk-T2X2EGV2.js} +4 -4
- package/chunk-T2X2EGV2.js.map +1 -0
- package/chunk-U2GQH6AD.js +309 -0
- package/chunk-U2GQH6AD.js.map +1 -0
- package/chunk-U6A2RPHO.js +66 -0
- package/chunk-U6A2RPHO.js.map +1 -0
- package/chunk-UIXUGVZB.js +362 -0
- package/chunk-UIXUGVZB.js.map +1 -0
- package/chunk-XRZKJACM.js +49 -0
- package/chunk-XRZKJACM.js.map +1 -0
- package/chunk-YDS3X7KB.js +202 -0
- package/chunk-YDS3X7KB.js.map +1 -0
- package/{chunk-A6TMOGPR.js → chunk-ZKNJW4K6.js} +1412 -334
- package/chunk-ZKNJW4K6.js.map +1 -0
- package/chunk-ZXSCBS77.js +90 -0
- package/chunk-ZXSCBS77.js.map +1 -0
- package/{computer-use-RRD7BCCK.js → computer-use-6AEVW47F.js} +9 -7
- package/computer-use-6AEVW47F.js.map +1 -0
- package/{connector-XX7UU6XE.js → connector-XDQ6JEBU.js} +25 -13
- package/connector-XDQ6JEBU.js.map +1 -0
- package/{credit-GDNNAQRO.js → credit-JPQA5XPA.js} +8 -10
- package/credit-JPQA5XPA.js.map +1 -0
- package/{developer-support-IISP5UBI.js → developer-support-V7NZOU2P.js} +27 -7
- package/developer-support-V7NZOU2P.js.map +1 -0
- package/{doctor-IZM2TJOH.js → doctor-FJO24TG3.js} +13 -11
- package/doctor-FJO24TG3.js.map +1 -0
- package/{feishu-XB7SQBSI.js → feishu-PNOAM33Q.js} +99 -9
- package/feishu-PNOAM33Q.js.map +1 -0
- package/{finance-OGWHKQLU.js → finance-55OJ6GYP.js} +49 -9
- package/finance-55OJ6GYP.js.map +1 -0
- package/{generate-AA2PVOYQ.js → generate-XUKBK523.js} +26 -21
- package/generate-XUKBK523.js.map +1 -0
- package/{github-VJVIBTVF.js → github-V4MD2PMM.js} +83 -8
- package/github-V4MD2PMM.js.map +1 -0
- package/{goal-7SYVHDTK.js → goal-FS5FJKVU.js} +69 -13
- package/goal-FS5FJKVU.js.map +1 -0
- package/{host-UVQMIOBA.js → host-GITTJ6PR.js} +124 -10
- package/host-GITTJ6PR.js.map +1 -0
- package/{logs-PIS4X24E.js → logs-EEUIGYUD.js} +51 -11
- package/logs-EEUIGYUD.js.map +1 -0
- package/{mail-L33OSQ2R.js → mail-G4SAJSBD.js} +39 -8
- package/mail-G4SAJSBD.js.map +1 -0
- package/{maps-D5XTXU5U.js → maps-7ANNU3BX.js} +65 -11
- package/maps-7ANNU3BX.js.map +1 -0
- package/{model-ZFMRECDM.js → model-DSPDCJLB.js} +6 -6
- package/model-DSPDCJLB.js.map +1 -0
- package/{model-provider-EZZ2DRYZ.js → model-provider-RZQ45PNG.js} +6 -6
- package/model-provider-RZQ45PNG.js.map +1 -0
- package/package.json +1 -1
- package/{people-search-PFTIO2QS.js → people-search-I7PUMF5M.js} +22 -6
- package/people-search-I7PUMF5M.js.map +1 -0
- package/{phone-6SG5ZUNL.js → phone-SSAPGMTW.js} +90 -9
- package/phone-SSAPGMTW.js.map +1 -0
- package/{recognize-LLU6J3SW.js → recognize-D7VORZBN.js} +27 -9
- package/recognize-D7VORZBN.js.map +1 -0
- package/{resource-FGUSXS4G.js → resource-76IV3TMW.js} +21 -7
- package/resource-76IV3TMW.js.map +1 -0
- package/{scrape-BAUZ2YFD.js → scrape-JBDLNTLB.js} +22 -6
- package/scrape-JBDLNTLB.js.map +1 -0
- package/{search-DLO5RXRM.js → search-UNZNUTZX.js} +29 -9
- package/search-UNZNUTZX.js.map +1 -0
- package/{slack-CVATPKP3.js → slack-AAH6GG2W.js} +103 -11
- package/slack-AAH6GG2W.js.map +1 -0
- package/{teams-ZZYO6YIK.js → teams-6OPXE4TX.js} +90 -9
- package/teams-6OPXE4TX.js.map +1 -0
- package/{telegram-VY7T4YAR.js → telegram-RRZG73RT.js} +101 -10
- package/telegram-RRZG73RT.js.map +1 -0
- package/{upgrade-GFA4ZUU4.js → upgrade-I5IL4UQL.js} +3 -4
- package/upgrade-I5IL4UQL.js.map +1 -0
- package/{video-STFG7BET.js → video-HV44W4X7.js} +5 -4
- package/video-HV44W4X7.js.map +1 -0
- package/{weather-ISJEHJWR.js → weather-EQ7CSADB.js} +70 -16
- package/weather-EQ7CSADB.js.map +1 -0
- package/{web-YN4CVHK7.js → web-6LIMWEOZ.js} +5 -5
- package/web-6LIMWEOZ.js.map +1 -0
- package/{web-search-PC7IECND.js → web-search-AT7WONZN.js} +22 -6
- package/web-search-AT7WONZN.js.map +1 -0
- package/{whoami-KXFXZGM6.js → whoami-RKTLLSI4.js} +16 -7
- package/whoami-RKTLLSI4.js.map +1 -0
- package/{workflow-O7YZHB7A.js → workflow-ZH32P622.js} +135 -39
- package/workflow-ZH32P622.js.map +1 -0
- package/zero.js +40 -40
- 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-QC63TUJC.js.map → chunk-C62A6LD6.js.map} +0 -0
- /package/{chunk-5ZZI2LSO.js.map → chunk-GHKWW4NC.js.map} +0 -0
- /package/{chunk-BRV4D3P2.js.map → chunk-RUKMHBNQ.js.map} +0 -0
|
@@ -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-JV6LM2YC.js";
|
|
7
|
+
import {
|
|
8
|
+
apiErrorSchema,
|
|
9
|
+
external_exports,
|
|
10
|
+
getClientConfig,
|
|
11
|
+
handleError,
|
|
12
|
+
initClient,
|
|
13
|
+
initContract
|
|
14
|
+
} from "./chunk-GHKWW4NC.js";
|
|
15
|
+
import {
|
|
16
|
+
init_esm_shims
|
|
17
|
+
} from "./chunk-AUWSMG4F.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-UIXUGVZB.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,49 @@
|
|
|
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-JV6LM2YC.js";
|
|
7
|
+
import {
|
|
8
|
+
apiErrorSchema,
|
|
9
|
+
external_exports,
|
|
10
|
+
initContract
|
|
11
|
+
} from "./chunk-GHKWW4NC.js";
|
|
12
|
+
import {
|
|
13
|
+
init_esm_shims
|
|
14
|
+
} from "./chunk-AUWSMG4F.js";
|
|
15
|
+
|
|
16
|
+
// ../../packages/api-contracts/src/contracts/zero-developer-support.ts
|
|
17
|
+
init_esm_shims();
|
|
18
|
+
var c = initContract();
|
|
19
|
+
var developerSupportBodySchema = external_exports.object({
|
|
20
|
+
title: external_exports.string().min(1, "Title is required"),
|
|
21
|
+
description: external_exports.string().min(1, "Description is required"),
|
|
22
|
+
consentCode: external_exports.string().optional()
|
|
23
|
+
});
|
|
24
|
+
var consentCodeResponseSchema = external_exports.object({
|
|
25
|
+
consentCode: external_exports.string()
|
|
26
|
+
});
|
|
27
|
+
var submitResponseSchema = external_exports.object({
|
|
28
|
+
reference: external_exports.string()
|
|
29
|
+
});
|
|
30
|
+
var zeroDeveloperSupportContract = c.router({
|
|
31
|
+
submit: {
|
|
32
|
+
method: "POST",
|
|
33
|
+
path: "/api/zero/developer-support",
|
|
34
|
+
headers: authHeadersSchema,
|
|
35
|
+
body: developerSupportBodySchema,
|
|
36
|
+
responses: {
|
|
37
|
+
200: external_exports.union([consentCodeResponseSchema, submitResponseSchema]),
|
|
38
|
+
400: apiErrorSchema,
|
|
39
|
+
401: apiErrorSchema,
|
|
40
|
+
403: apiErrorSchema
|
|
41
|
+
},
|
|
42
|
+
summary: "Developer support: consent code generation or diagnostic submission"
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export {
|
|
47
|
+
zeroDeveloperSupportContract
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=chunk-XRZKJACM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/api-contracts/src/contracts/zero-developer-support.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { authHeadersSchema, initContract } from \"./base\";\nimport { apiErrorSchema } from \"./errors\";\n\nconst c = initContract();\n\nconst developerSupportBodySchema = z.object({\n title: z.string().min(1, \"Title is required\"),\n description: z.string().min(1, \"Description is required\"),\n consentCode: z.string().optional(),\n});\n\nconst consentCodeResponseSchema = z.object({\n consentCode: z.string(),\n});\n\nconst submitResponseSchema = z.object({\n reference: z.string(),\n});\n\nexport const zeroDeveloperSupportContract = c.router({\n submit: {\n method: \"POST\",\n path: \"/api/zero/developer-support\",\n headers: authHeadersSchema,\n body: developerSupportBodySchema,\n responses: {\n 200: z.union([consentCodeResponseSchema, submitResponseSchema]),\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n },\n summary:\n \"Developer support: consent code generation or diagnostic submission\",\n },\n});\n\nexport type ZeroDeveloperSupportContract = typeof zeroDeveloperSupportContract;\nexport {\n developerSupportBodySchema,\n consentCodeResponseSchema,\n submitResponseSchema,\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAIA,IAAM,IAAI,aAAa;AAEvB,IAAM,6BAA6B,iBAAE,OAAO;AAAA,EAC1C,OAAO,iBAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB;AAAA,EAC5C,aAAa,iBAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA,EACxD,aAAa,iBAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,IAAM,4BAA4B,iBAAE,OAAO;AAAA,EACzC,aAAa,iBAAE,OAAO;AACxB,CAAC;AAED,IAAM,uBAAuB,iBAAE,OAAO;AAAA,EACpC,WAAW,iBAAE,OAAO;AACtB,CAAC;AAEM,IAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,MACT,KAAK,iBAAE,MAAM,CAAC,2BAA2B,oBAAoB,CAAC;AAAA,MAC9D,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,SACE;AAAA,EACJ;AACF,CAAC;","names":[]}
|
|
@@ -0,0 +1,202 @@
|
|
|
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-JV6LM2YC.js";
|
|
7
|
+
import {
|
|
8
|
+
apiErrorSchema,
|
|
9
|
+
external_exports,
|
|
10
|
+
initContract
|
|
11
|
+
} from "./chunk-GHKWW4NC.js";
|
|
12
|
+
import {
|
|
13
|
+
init_esm_shims
|
|
14
|
+
} from "./chunk-AUWSMG4F.js";
|
|
15
|
+
|
|
16
|
+
// ../../packages/api-contracts/src/contracts/zero-host.ts
|
|
17
|
+
init_esm_shims();
|
|
18
|
+
var c = initContract();
|
|
19
|
+
var ORG_SLUG_HASH_LENGTH = 8;
|
|
20
|
+
var RANDOM_SLUG_SUFFIX_LENGTH = 8;
|
|
21
|
+
var PUBLIC_SLUG_SEPARATOR_LENGTH = 2;
|
|
22
|
+
var MAX_HOSTED_SITE_PUBLIC_SLUG_LENGTH = 96;
|
|
23
|
+
var hostedArtifactKindSchema = external_exports.enum([
|
|
24
|
+
"hosted-site",
|
|
25
|
+
"presentation-html"
|
|
26
|
+
]);
|
|
27
|
+
var hostedSiteSlugSchema = external_exports.string().trim().min(3).max(63).regex(
|
|
28
|
+
/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/,
|
|
29
|
+
"Site slug must use lowercase letters, numbers, and hyphens, and must start and end with a letter or number"
|
|
30
|
+
);
|
|
31
|
+
var hostedSiteSlugSuffixSchema = external_exports.string().trim().min(3).max(32).regex(
|
|
32
|
+
/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/,
|
|
33
|
+
"Site slug suffix must use lowercase letters, numbers, and hyphens, and must start and end with a letter or number"
|
|
34
|
+
);
|
|
35
|
+
var hostedSitePublicSlugSchema = external_exports.string().trim().min(3).max(MAX_HOSTED_SITE_PUBLIC_SLUG_LENGTH).regex(
|
|
36
|
+
/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/,
|
|
37
|
+
"Hosted site public slug must use lowercase letters, numbers, and hyphens, and must start and end with a letter or number"
|
|
38
|
+
);
|
|
39
|
+
var hostedSiteFileSchema = external_exports.object({
|
|
40
|
+
path: external_exports.string().min(1).max(1024).regex(/^\//, "File path must start with /"),
|
|
41
|
+
size: external_exports.number().int().nonnegative(),
|
|
42
|
+
sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
43
|
+
contentType: external_exports.string().min(1).max(200),
|
|
44
|
+
immutable: external_exports.boolean().optional()
|
|
45
|
+
});
|
|
46
|
+
var hostedSiteDownloadFileSchema = hostedSiteFileSchema.extend({
|
|
47
|
+
downloadUrl: external_exports.string().url()
|
|
48
|
+
});
|
|
49
|
+
var hostedSitePrepareRequestSchema = external_exports.object({
|
|
50
|
+
site: hostedSiteSlugSchema,
|
|
51
|
+
slugSuffix: hostedSiteSlugSuffixSchema.optional(),
|
|
52
|
+
artifactKind: hostedArtifactKindSchema.default("hosted-site"),
|
|
53
|
+
spaFallback: external_exports.boolean().default(false),
|
|
54
|
+
files: external_exports.array(hostedSiteFileSchema).min(1).max(5e3)
|
|
55
|
+
}).superRefine((value, ctx) => {
|
|
56
|
+
const suffixLength = value.slugSuffix?.length ?? RANDOM_SLUG_SUFFIX_LENGTH;
|
|
57
|
+
const publicSlugLength = value.site.length + ORG_SLUG_HASH_LENGTH + suffixLength + PUBLIC_SLUG_SEPARATOR_LENGTH;
|
|
58
|
+
if (publicSlugLength > MAX_HOSTED_SITE_PUBLIC_SLUG_LENGTH) {
|
|
59
|
+
ctx.addIssue({
|
|
60
|
+
code: external_exports.ZodIssueCode.custom,
|
|
61
|
+
path: value.slugSuffix ? ["slugSuffix"] : ["site"],
|
|
62
|
+
message: "Hosted site public slug must be 96 characters or fewer; shorten site or slug suffix"
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
var hostedSiteUploadSchema = external_exports.object({
|
|
67
|
+
path: external_exports.string(),
|
|
68
|
+
uploadUrl: external_exports.string().url()
|
|
69
|
+
});
|
|
70
|
+
var hostedSitePrepareResponseSchema = external_exports.object({
|
|
71
|
+
siteId: external_exports.string().uuid(),
|
|
72
|
+
deploymentId: external_exports.string().uuid(),
|
|
73
|
+
publicSlug: external_exports.string(),
|
|
74
|
+
url: external_exports.string().url(),
|
|
75
|
+
deploymentVersion: external_exports.number().int().positive().optional(),
|
|
76
|
+
artifactUrl: external_exports.string().url().optional(),
|
|
77
|
+
aliasUrl: external_exports.string().url().optional(),
|
|
78
|
+
uploads: external_exports.array(hostedSiteUploadSchema)
|
|
79
|
+
});
|
|
80
|
+
var hostedSiteCompleteResponseSchema = external_exports.object({
|
|
81
|
+
siteId: external_exports.string().uuid(),
|
|
82
|
+
deploymentId: external_exports.string().uuid(),
|
|
83
|
+
publicSlug: external_exports.string(),
|
|
84
|
+
url: external_exports.string().url(),
|
|
85
|
+
deploymentVersion: external_exports.number().int().positive().optional(),
|
|
86
|
+
artifactUrl: external_exports.string().url().optional(),
|
|
87
|
+
aliasUrl: external_exports.string().url().optional(),
|
|
88
|
+
isActive: external_exports.boolean().optional(),
|
|
89
|
+
activeDeploymentVersion: external_exports.number().int().positive().optional(),
|
|
90
|
+
status: external_exports.literal("ready")
|
|
91
|
+
});
|
|
92
|
+
var hostedSiteFilesResponseSchema = external_exports.object({
|
|
93
|
+
siteId: external_exports.string().uuid(),
|
|
94
|
+
deploymentId: external_exports.string().uuid(),
|
|
95
|
+
publicSlug: hostedSitePublicSlugSchema,
|
|
96
|
+
url: external_exports.string().url(),
|
|
97
|
+
deploymentVersion: external_exports.number().int().positive().optional(),
|
|
98
|
+
artifactUrl: external_exports.string().url().optional(),
|
|
99
|
+
aliasUrl: external_exports.string().url().optional(),
|
|
100
|
+
fileCount: external_exports.number().int().nonnegative(),
|
|
101
|
+
size: external_exports.number().int().nonnegative(),
|
|
102
|
+
files: external_exports.array(hostedSiteDownloadFileSchema)
|
|
103
|
+
});
|
|
104
|
+
var hostedSiteDeploymentSummarySchema = external_exports.object({
|
|
105
|
+
deploymentId: external_exports.string().uuid(),
|
|
106
|
+
deploymentVersion: external_exports.number().int().positive().nullable(),
|
|
107
|
+
artifactUrl: external_exports.string().url().nullable(),
|
|
108
|
+
status: external_exports.enum(["uploading", "ready", "failed", "deleted"]),
|
|
109
|
+
isActive: external_exports.boolean(),
|
|
110
|
+
createdAt: external_exports.string().datetime(),
|
|
111
|
+
readyAt: external_exports.string().datetime().nullable()
|
|
112
|
+
});
|
|
113
|
+
var hostedSiteDeploymentsResponseSchema = external_exports.object({
|
|
114
|
+
siteId: external_exports.string().uuid(),
|
|
115
|
+
site: hostedSiteSlugSchema,
|
|
116
|
+
publicSlug: hostedSitePublicSlugSchema,
|
|
117
|
+
aliasUrl: external_exports.string().url(),
|
|
118
|
+
activeDeploymentId: external_exports.string().uuid().nullable(),
|
|
119
|
+
activeDeploymentVersion: external_exports.number().int().positive().nullable(),
|
|
120
|
+
deployments: external_exports.array(hostedSiteDeploymentSummarySchema)
|
|
121
|
+
});
|
|
122
|
+
var zeroHostContract = c.router({
|
|
123
|
+
prepare: {
|
|
124
|
+
method: "POST",
|
|
125
|
+
path: "/api/zero/host/deployments/prepare",
|
|
126
|
+
headers: authHeadersSchema,
|
|
127
|
+
body: hostedSitePrepareRequestSchema,
|
|
128
|
+
responses: {
|
|
129
|
+
200: hostedSitePrepareResponseSchema,
|
|
130
|
+
400: apiErrorSchema,
|
|
131
|
+
401: apiErrorSchema,
|
|
132
|
+
402: apiErrorSchema,
|
|
133
|
+
403: apiErrorSchema,
|
|
134
|
+
409: apiErrorSchema,
|
|
135
|
+
500: apiErrorSchema
|
|
136
|
+
},
|
|
137
|
+
summary: "Prepare a static hosted-site deployment"
|
|
138
|
+
},
|
|
139
|
+
complete: {
|
|
140
|
+
method: "POST",
|
|
141
|
+
path: "/api/zero/host/deployments/:deploymentId/complete",
|
|
142
|
+
pathParams: external_exports.object({
|
|
143
|
+
deploymentId: external_exports.string().uuid()
|
|
144
|
+
}),
|
|
145
|
+
headers: authHeadersSchema,
|
|
146
|
+
body: external_exports.object({}),
|
|
147
|
+
responses: {
|
|
148
|
+
200: hostedSiteCompleteResponseSchema,
|
|
149
|
+
400: apiErrorSchema,
|
|
150
|
+
401: apiErrorSchema,
|
|
151
|
+
402: apiErrorSchema,
|
|
152
|
+
403: apiErrorSchema,
|
|
153
|
+
404: apiErrorSchema,
|
|
154
|
+
409: apiErrorSchema,
|
|
155
|
+
500: apiErrorSchema
|
|
156
|
+
},
|
|
157
|
+
summary: "Complete a static hosted-site deployment"
|
|
158
|
+
},
|
|
159
|
+
files: {
|
|
160
|
+
method: "GET",
|
|
161
|
+
path: "/api/zero/host/sites/:publicSlug/files",
|
|
162
|
+
pathParams: external_exports.object({
|
|
163
|
+
publicSlug: hostedSitePublicSlugSchema
|
|
164
|
+
}),
|
|
165
|
+
query: external_exports.object({
|
|
166
|
+
version: external_exports.coerce.number().int().positive().optional()
|
|
167
|
+
}),
|
|
168
|
+
headers: authHeadersSchema,
|
|
169
|
+
responses: {
|
|
170
|
+
200: hostedSiteFilesResponseSchema,
|
|
171
|
+
400: apiErrorSchema,
|
|
172
|
+
401: apiErrorSchema,
|
|
173
|
+
403: apiErrorSchema,
|
|
174
|
+
404: apiErrorSchema,
|
|
175
|
+
409: apiErrorSchema,
|
|
176
|
+
500: apiErrorSchema
|
|
177
|
+
},
|
|
178
|
+
summary: "List active hosted-site files for an owned site"
|
|
179
|
+
},
|
|
180
|
+
deployments: {
|
|
181
|
+
method: "GET",
|
|
182
|
+
path: "/api/zero/host/sites/:site/deployments",
|
|
183
|
+
pathParams: external_exports.object({
|
|
184
|
+
site: hostedSiteSlugSchema
|
|
185
|
+
}),
|
|
186
|
+
headers: authHeadersSchema,
|
|
187
|
+
responses: {
|
|
188
|
+
200: hostedSiteDeploymentsResponseSchema,
|
|
189
|
+
400: apiErrorSchema,
|
|
190
|
+
401: apiErrorSchema,
|
|
191
|
+
403: apiErrorSchema,
|
|
192
|
+
404: apiErrorSchema,
|
|
193
|
+
500: apiErrorSchema
|
|
194
|
+
},
|
|
195
|
+
summary: "List deployment versions for an owned hosted site"
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
export {
|
|
200
|
+
hostedArtifactKindSchema
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=chunk-YDS3X7KB.js.map
|