@vm0/cli 9.151.0 → 9.152.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.
@@ -74083,7 +74083,7 @@ if (DSN) {
74083
74083
  init2({
74084
74084
  dsn: DSN,
74085
74085
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
74086
- release: "9.151.0",
74086
+ release: "9.152.0",
74087
74087
  sendDefaultPii: false,
74088
74088
  tracesSampleRate: 0,
74089
74089
  shutdownTimeout: 500,
@@ -74102,7 +74102,7 @@ if (DSN) {
74102
74102
  }
74103
74103
  });
74104
74104
  setContext("cli", {
74105
- version: "9.151.0",
74105
+ version: "9.152.0",
74106
74106
  command: process.argv.slice(2).join(" ")
74107
74107
  });
74108
74108
  setContext("runtime", {
@@ -107049,7 +107049,21 @@ var localBrowserReadCommandKindSchema = external_exports.enum([
107049
107049
  "page.selection",
107050
107050
  "page.metadata"
107051
107051
  ]);
107052
+ var localBrowserWriteCommandKindSchema = external_exports.enum([
107053
+ "page.click",
107054
+ "page.type",
107055
+ "page.scroll",
107056
+ "page.navigate",
107057
+ "tabs.activate",
107058
+ "tabs.open",
107059
+ "tabs.close"
107060
+ ]);
107061
+ var localBrowserCommandKindSchema = external_exports.enum([
107062
+ ...localBrowserReadCommandKindSchema.options,
107063
+ ...localBrowserWriteCommandKindSchema.options
107064
+ ]);
107052
107065
  var localBrowserCommandStatusSchema = external_exports.enum([
107066
+ "pending_approval",
107053
107067
  "queued",
107054
107068
  "running",
107055
107069
  "succeeded",
@@ -107066,6 +107080,11 @@ var hostNameSchema2 = external_exports.string().trim().min(1).max(128);
107066
107080
  var browserSchema = external_exports.string().trim().min(1).max(64);
107067
107081
  var extensionVersionSchema = external_exports.string().trim().min(1).max(64);
107068
107082
  var tabIdSchema = external_exports.string().trim().min(1).max(128);
107083
+ var targetUrlSchema = external_exports.string().trim().url().max(2048).refine((value) => {
107084
+ const protocol = new URL(value).protocol;
107085
+ return protocol === "http:" || protocol === "https:";
107086
+ }, "URL must use http or https");
107087
+ var cssSelectorSchema = external_exports.string().trim().min(1).max(1024);
107069
107088
  var supportedCapabilitiesSchema = external_exports.array(external_exports.string().trim().min(1).max(128)).max(50);
107070
107089
  var localBrowserRuntimeBodySchema = external_exports.object({
107071
107090
  hostName: hostNameSchema2,
@@ -107126,15 +107145,81 @@ var localBrowserHostStartResponseSchema = external_exports.object({
107126
107145
  var localBrowserHostDeleteResponseSchema = external_exports.object({
107127
107146
  ok: external_exports.literal(true)
107128
107147
  });
107129
- var localBrowserCommandCreateBodySchema = external_exports.object({
107130
- kind: localBrowserReadCommandKindSchema,
107148
+ var localBrowserCommandTargetShape = {
107131
107149
  tabId: tabIdSchema.optional(),
107132
107150
  hostId: external_exports.string().min(1).optional(),
107133
107151
  hostName: hostNameSchema2.optional(),
107134
107152
  timeoutMs: external_exports.number().int().min(1e3).max(6e4).default(15e3)
107153
+ };
107154
+ var localBrowserCommandCreateBodySchema = external_exports.object({
107155
+ kind: localBrowserReadCommandKindSchema,
107156
+ ...localBrowserCommandTargetShape
107157
+ });
107158
+ var localBrowserWriteCommandCreateBodySchema = external_exports.object({
107159
+ kind: localBrowserWriteCommandKindSchema,
107160
+ ...localBrowserCommandTargetShape,
107161
+ selector: cssSelectorSchema.optional(),
107162
+ x: external_exports.number().int().min(0).optional(),
107163
+ y: external_exports.number().int().min(0).optional(),
107164
+ text: external_exports.string().min(1).max(64e3).optional(),
107165
+ direction: external_exports.enum(["up", "down"]).optional(),
107166
+ amount: external_exports.number().int().positive().max(1e4).optional(),
107167
+ url: targetUrlSchema.optional()
107168
+ }).superRefine((body, ctx) => {
107169
+ const requireField = (field, message) => {
107170
+ ctx.addIssue({
107171
+ code: "custom",
107172
+ path: [field],
107173
+ message
107174
+ });
107175
+ };
107176
+ if (body.kind === "page.click") {
107177
+ const hasPoint = body.x !== void 0 && body.y !== void 0;
107178
+ if (!body.selector && !hasPoint) {
107179
+ requireField("selector", "page.click requires selector or x/y");
107180
+ }
107181
+ if (body.x === void 0 !== (body.y === void 0)) {
107182
+ requireField("x", "page.click coordinates require both x and y");
107183
+ }
107184
+ return;
107185
+ }
107186
+ if (body.kind === "page.type") {
107187
+ if (!body.selector) {
107188
+ requireField("selector", "page.type requires selector");
107189
+ }
107190
+ if (!body.text) {
107191
+ requireField("text", "page.type requires text");
107192
+ }
107193
+ return;
107194
+ }
107195
+ if (body.kind === "page.scroll") {
107196
+ if (!body.direction) {
107197
+ requireField("direction", "page.scroll requires direction");
107198
+ }
107199
+ if (!body.amount) {
107200
+ requireField("amount", "page.scroll requires amount");
107201
+ }
107202
+ return;
107203
+ }
107204
+ if (body.kind === "page.navigate" || body.kind === "tabs.open") {
107205
+ if (!body.url) {
107206
+ requireField("url", `${body.kind} requires url`);
107207
+ }
107208
+ return;
107209
+ }
107210
+ if ((body.kind === "tabs.activate" || body.kind === "tabs.close") && !body.tabId) {
107211
+ requireField("tabId", `${body.kind} requires tabId`);
107212
+ }
107135
107213
  });
107136
107214
  var localBrowserCommandPayloadSchema = external_exports.object({
107137
- tabId: tabIdSchema.optional()
107215
+ tabId: tabIdSchema.optional(),
107216
+ selector: cssSelectorSchema.optional(),
107217
+ x: external_exports.number().int().min(0).optional(),
107218
+ y: external_exports.number().int().min(0).optional(),
107219
+ text: external_exports.string().max(64e3).optional(),
107220
+ direction: external_exports.enum(["up", "down"]).optional(),
107221
+ amount: external_exports.number().int().positive().max(1e4).optional(),
107222
+ url: targetUrlSchema.optional()
107138
107223
  });
107139
107224
  var localBrowserTabSchema = external_exports.object({
107140
107225
  id: external_exports.string(),
@@ -107171,7 +107256,11 @@ var localBrowserCommandResultSchema = external_exports.union([
107171
107256
  faviconUrl: external_exports.string().max(2048).optional()
107172
107257
  }).refine((value) => {
107173
107258
  return Object.keys(value).length > 0;
107174
- }, "Metadata result must include at least one field")
107259
+ }, "Metadata result must include at least one field"),
107260
+ external_exports.object({
107261
+ ok: external_exports.literal(true),
107262
+ details: external_exports.string().max(1024).optional()
107263
+ })
107175
107264
  ]);
107176
107265
  var localBrowserCommandErrorSchema = external_exports.object({
107177
107266
  code: localBrowserCommandErrorCodeSchema,
@@ -107179,11 +107268,11 @@ var localBrowserCommandErrorSchema = external_exports.object({
107179
107268
  });
107180
107269
  var localBrowserCommandCreateResponseSchema = external_exports.object({
107181
107270
  commandId: external_exports.string(),
107182
- status: external_exports.literal("queued")
107271
+ status: external_exports.enum(["queued", "pending_approval"])
107183
107272
  });
107184
107273
  var localBrowserCommandResponseSchema = external_exports.object({
107185
107274
  id: external_exports.string(),
107186
- kind: localBrowserReadCommandKindSchema,
107275
+ kind: localBrowserCommandKindSchema,
107187
107276
  status: localBrowserCommandStatusSchema,
107188
107277
  hostId: external_exports.string().nullable(),
107189
107278
  hostName: external_exports.string().nullable(),
@@ -107203,7 +107292,7 @@ var localBrowserHostCommandNextResponseSchema = external_exports.discriminatedUn
107203
107292
  status: external_exports.literal("command"),
107204
107293
  command: external_exports.object({
107205
107294
  id: external_exports.string(),
107206
- kind: localBrowserReadCommandKindSchema,
107295
+ kind: localBrowserCommandKindSchema,
107207
107296
  payload: localBrowserCommandPayloadSchema,
107208
107297
  timeoutMs: external_exports.number().int().positive().nullable()
107209
107298
  })
@@ -107226,6 +107315,10 @@ var localBrowserHostCommandCompleteBodySchema = external_exports.discriminatedUn
107226
107315
  var localBrowserHostCommandCompleteResponseSchema = external_exports.object({
107227
107316
  ok: external_exports.literal(true)
107228
107317
  });
107318
+ var localBrowserCommandApprovalResponseSchema = external_exports.object({
107319
+ commandId: external_exports.string(),
107320
+ status: external_exports.enum(["queued", "failed"])
107321
+ });
107229
107322
  var zeroLocalBrowserDeviceStartContract = c27.router({
107230
107323
  start: {
107231
107324
  method: "POST",
@@ -107389,6 +107482,46 @@ var zeroLocalBrowserCommandContract = c27.router({
107389
107482
  summary: "Get a local-browser command result"
107390
107483
  }
107391
107484
  });
107485
+ var zeroLocalBrowserWriteCommandContract = c27.router({
107486
+ create: {
107487
+ method: "POST",
107488
+ path: "/api/zero/local-browser/write-commands",
107489
+ headers: authHeadersSchema,
107490
+ body: localBrowserWriteCommandCreateBodySchema,
107491
+ responses: {
107492
+ 200: localBrowserCommandCreateResponseSchema,
107493
+ 400: apiErrorSchema,
107494
+ 401: apiErrorSchema,
107495
+ 403: apiErrorSchema,
107496
+ 404: apiErrorSchema,
107497
+ 409: apiErrorSchema
107498
+ },
107499
+ summary: "Create an approved-write local-browser command"
107500
+ }
107501
+ });
107502
+ var zeroLocalBrowserCommandApprovalContract = c27.router({
107503
+ decide: {
107504
+ method: "POST",
107505
+ path: "/api/zero/local-browser/commands/:commandId/approval",
107506
+ pathParams: external_exports.object({
107507
+ commandId: external_exports.string().min(1)
107508
+ }),
107509
+ headers: authHeadersSchema,
107510
+ body: external_exports.object({
107511
+ decision: external_exports.enum(["approve", "deny"]),
107512
+ message: external_exports.string().trim().min(1).max(1024).optional()
107513
+ }),
107514
+ responses: {
107515
+ 200: localBrowserCommandApprovalResponseSchema,
107516
+ 400: apiErrorSchema,
107517
+ 401: apiErrorSchema,
107518
+ 403: apiErrorSchema,
107519
+ 404: apiErrorSchema,
107520
+ 409: apiErrorSchema
107521
+ },
107522
+ summary: "Approve or deny a pending local-browser write command"
107523
+ }
107524
+ });
107392
107525
  var zeroLocalBrowserHostCommandsContract = c27.router({
107393
107526
  next: {
107394
107527
  method: "POST",
@@ -107402,7 +107535,7 @@ var zeroLocalBrowserHostCommandsContract = c27.router({
107402
107535
  400: apiErrorSchema,
107403
107536
  401: apiErrorSchema
107404
107537
  },
107405
- summary: "Claim the next local-browser read command"
107538
+ summary: "Claim the next approved local-browser command"
107406
107539
  },
107407
107540
  complete: {
107408
107541
  method: "POST",
@@ -107419,7 +107552,7 @@ var zeroLocalBrowserHostCommandsContract = c27.router({
107419
107552
  404: apiErrorSchema,
107420
107553
  409: apiErrorSchema
107421
107554
  },
107422
- summary: "Complete a local-browser read command"
107555
+ summary: "Complete a local-browser command"
107423
107556
  }
107424
107557
  });
107425
107558
 
@@ -107478,6 +107611,30 @@ async function createLocalBrowserReadCommand(params) {
107478
107611
  }
107479
107612
  handleError(result, "Failed to create local-browser command");
107480
107613
  }
107614
+ async function createLocalBrowserWriteCommand(params) {
107615
+ const config4 = await getLocalBrowserClientConfig();
107616
+ const client = initClient(zeroLocalBrowserWriteCommandContract, config4);
107617
+ const result = await client.create({
107618
+ body: {
107619
+ kind: params.kind,
107620
+ timeoutMs: params.timeoutMs ?? 15e3,
107621
+ ...params.tabId ? { tabId: params.tabId } : {},
107622
+ ...params.hostId ? { hostId: params.hostId } : {},
107623
+ ...params.hostName ? { hostName: params.hostName } : {},
107624
+ ...params.selector ? { selector: params.selector } : {},
107625
+ ...params.x !== void 0 ? { x: params.x } : {},
107626
+ ...params.y !== void 0 ? { y: params.y } : {},
107627
+ ...params.text ? { text: params.text } : {},
107628
+ ...params.direction ? { direction: params.direction } : {},
107629
+ ...params.amount !== void 0 ? { amount: params.amount } : {},
107630
+ ...params.url ? { url: params.url } : {}
107631
+ }
107632
+ });
107633
+ if (result.status === 200) {
107634
+ return result.body;
107635
+ }
107636
+ handleError(result, "Failed to create local-browser write command");
107637
+ }
107481
107638
  async function getLocalBrowserReadCommand(commandId) {
107482
107639
  const config4 = await getLocalBrowserClientConfig();
107483
107640
  const client = initClient(zeroLocalBrowserCommandContract, config4);
@@ -128051,6 +128208,7 @@ export {
128051
128208
  unregisterComputerUseHost,
128052
128209
  getComputerUseHost,
128053
128210
  createLocalBrowserReadCommand,
128211
+ createLocalBrowserWriteCommand,
128054
128212
  getLocalBrowserReadCommand,
128055
128213
  downloadWebFile,
128056
128214
  uploadWebFile,
@@ -128108,4 +128266,4 @@ undici/lib/web/fetch/body.js:
128108
128266
  undici/lib/web/websocket/frame.js:
128109
128267
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
128110
128268
  */
128111
- //# sourceMappingURL=chunk-VUZYX6DE.js.map
128269
+ //# sourceMappingURL=chunk-T32CMT7F.js.map