@vm0/cli 9.70.3 → 9.72.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.
Files changed (2) hide show
  1. package/index.js +119 -45
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -45,7 +45,7 @@ if (DSN) {
45
45
  Sentry.init({
46
46
  dsn: DSN,
47
47
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
48
- release: "9.70.3",
48
+ release: "9.72.0",
49
49
  sendDefaultPii: false,
50
50
  tracesSampleRate: 0,
51
51
  shutdownTimeout: 500,
@@ -64,7 +64,7 @@ if (DSN) {
64
64
  }
65
65
  });
66
66
  Sentry.setContext("cli", {
67
- version: "9.70.3",
67
+ version: "9.72.0",
68
68
  command: process.argv.slice(2).join(" ")
69
69
  });
70
70
  Sentry.setContext("runtime", {
@@ -675,7 +675,7 @@ function getConfigPath() {
675
675
  return join2(homedir2(), ".vm0", "config.json");
676
676
  }
677
677
  var infoCommand = new Command6().name("info").description("Display environment and debug information").action(async () => {
678
- console.log(chalk4.bold(`VM0 CLI v${"9.70.3"}`));
678
+ console.log(chalk4.bold(`VM0 CLI v${"9.72.0"}`));
679
679
  console.log();
680
680
  const config = await loadConfig();
681
681
  const hasEnvToken = !!process.env.VM0_TOKEN;
@@ -1162,7 +1162,7 @@ var logDetailSchema = z5.object({
1162
1162
  var logsListContract = c2.router({
1163
1163
  list: {
1164
1164
  method: "GET",
1165
- path: "/api/app/logs",
1165
+ path: "/api/zero/logs",
1166
1166
  query: listQuerySchema.extend({
1167
1167
  search: z5.string().optional(),
1168
1168
  agent: z5.string().optional(),
@@ -1180,7 +1180,7 @@ var logsListContract = c2.router({
1180
1180
  var logsByIdContract = c2.router({
1181
1181
  getById: {
1182
1182
  method: "GET",
1183
- path: "/api/app/logs/:id",
1183
+ path: "/api/zero/logs/:id",
1184
1184
  headers: authHeadersSchema,
1185
1185
  pathParams: z5.object({
1186
1186
  id: z5.string().uuid("Invalid log ID")
@@ -1373,14 +1373,14 @@ var orgContract = c4.router({
1373
1373
  });
1374
1374
  var orgDefaultAgentContract = c4.router({
1375
1375
  /**
1376
- * PUT /api/orgs/default-agent?org={slug}
1376
+ * PUT /api/zero/default-agent?org={slug}
1377
1377
  * Set or unset the default agent for an org.
1378
1378
  * Only org admins can perform this action.
1379
1379
  * The agent must belong to the same org.
1380
1380
  */
1381
1381
  setDefaultAgent: {
1382
1382
  method: "PUT",
1383
- path: "/api/orgs/default-agent",
1383
+ path: "/api/zero/default-agent",
1384
1384
  headers: authHeadersSchema,
1385
1385
  query: z7.object({
1386
1386
  org: z7.string().optional()
@@ -1440,6 +1440,10 @@ var unifiedRunRequestSchema = z8.object({
1440
1440
  appendSystemPrompt: z8.string().optional(),
1441
1441
  // Optional list of tools to disable in Claude CLI (passed as --disallowed-tools)
1442
1442
  disallowedTools: z8.array(z8.string()).optional(),
1443
+ // Optional list of tools to make available in Claude CLI (passed as --tools)
1444
+ tools: z8.array(z8.string()).optional(),
1445
+ // Settings JSON to pass to Claude CLI (passed as --settings)
1446
+ settings: z8.string().optional(),
1443
1447
  // How the run was triggered (defaults to "cli" on the server if not provided)
1444
1448
  triggerSource: triggerSourceSchema.optional()
1445
1449
  });
@@ -1654,17 +1658,22 @@ var agentEventsResponseSchema = z8.object({
1654
1658
  });
1655
1659
  var networkLogEntrySchema = z8.object({
1656
1660
  timestamp: z8.string(),
1657
- mode: z8.literal("mitm").optional(),
1658
1661
  action: z8.enum(["ALLOW", "DENY"]).optional(),
1659
1662
  host: z8.string().optional(),
1660
1663
  port: z8.number().optional(),
1661
- rule_matched: z8.string().nullable().optional(),
1662
1664
  method: z8.string().optional(),
1663
1665
  url: z8.string().optional(),
1664
1666
  status: z8.number().optional(),
1665
1667
  latency_ms: z8.number().optional(),
1666
1668
  request_size: z8.number().optional(),
1667
- response_size: z8.number().optional()
1669
+ response_size: z8.number().optional(),
1670
+ firewall_base: z8.string().optional(),
1671
+ firewall_name: z8.string().optional(),
1672
+ firewall_ref: z8.string().optional(),
1673
+ firewall_permission: z8.string().optional(),
1674
+ firewall_rule_match: z8.string().optional(),
1675
+ firewall_params: z8.record(z8.string(), z8.string()).optional(),
1676
+ firewall_error: z8.string().optional()
1668
1677
  });
1669
1678
  var networkLogsResponseSchema = z8.object({
1670
1679
  networkLogs: z8.array(networkLogEntrySchema),
@@ -3393,7 +3402,7 @@ var chatThreadDetailSchema = z18.object({
3393
3402
  var chatThreadsContract = c14.router({
3394
3403
  create: {
3395
3404
  method: "POST",
3396
- path: "/api/chat-threads",
3405
+ path: "/api/zero/chat-threads",
3397
3406
  headers: authHeadersSchema,
3398
3407
  body: z18.object({
3399
3408
  agentComposeId: z18.string().min(1),
@@ -3407,7 +3416,7 @@ var chatThreadsContract = c14.router({
3407
3416
  },
3408
3417
  list: {
3409
3418
  method: "GET",
3410
- path: "/api/chat-threads",
3419
+ path: "/api/zero/chat-threads",
3411
3420
  headers: authHeadersSchema,
3412
3421
  query: z18.object({
3413
3422
  agentComposeId: z18.string().min(1, "agentComposeId is required")
@@ -3422,7 +3431,7 @@ var chatThreadsContract = c14.router({
3422
3431
  var chatThreadByIdContract = c14.router({
3423
3432
  get: {
3424
3433
  method: "GET",
3425
- path: "/api/chat-threads/:id",
3434
+ path: "/api/zero/chat-threads/:id",
3426
3435
  headers: authHeadersSchema,
3427
3436
  pathParams: z18.object({ id: z18.string() }),
3428
3437
  responses: {
@@ -3436,7 +3445,7 @@ var chatThreadByIdContract = c14.router({
3436
3445
  var chatThreadRunsContract = c14.router({
3437
3446
  addRun: {
3438
3447
  method: "POST",
3439
- path: "/api/chat-threads/:id/runs",
3448
+ path: "/api/zero/chat-threads/:id/runs",
3440
3449
  headers: authHeadersSchema,
3441
3450
  pathParams: z18.object({ id: z18.string() }),
3442
3451
  body: z18.object({
@@ -3534,6 +3543,10 @@ var storedExecutionContextSchema = z19.object({
3534
3543
  experimentalCapabilities: z19.array(z19.enum(VALID_CAPABILITIES)).optional(),
3535
3544
  // Tools to disable in Claude CLI (passed as --disallowed-tools)
3536
3545
  disallowedTools: z19.array(z19.string()).optional(),
3546
+ // Tools to make available in Claude CLI (passed as --tools)
3547
+ tools: z19.array(z19.string()).optional(),
3548
+ // Settings JSON to pass to Claude CLI (passed as --settings)
3549
+ settings: z19.string().optional(),
3537
3550
  // VM profile for resource allocation (e.g., "vm0/default")
3538
3551
  experimentalProfile: z19.string().optional()
3539
3552
  });
@@ -3574,6 +3587,10 @@ var executionContextSchema = z19.object({
3574
3587
  experimentalCapabilities: z19.array(z19.enum(VALID_CAPABILITIES)).optional(),
3575
3588
  // Tools to disable in Claude CLI (passed as --disallowed-tools)
3576
3589
  disallowedTools: z19.array(z19.string()).optional(),
3590
+ // Tools to make available in Claude CLI (passed as --tools)
3591
+ tools: z19.array(z19.string()).optional(),
3592
+ // Settings JSON to pass to Claude CLI (passed as --settings)
3593
+ settings: z19.string().optional(),
3577
3594
  // VM profile for resource allocation (e.g., "vm0/default")
3578
3595
  experimentalProfile: z19.string().optional()
3579
3596
  });
@@ -7768,7 +7785,7 @@ var onboardingStatusResponseSchema = z25.object({
7768
7785
  var onboardingStatusContract = c21.router({
7769
7786
  getStatus: {
7770
7787
  method: "GET",
7771
- path: "/api/onboarding/status",
7788
+ path: "/api/zero/onboarding/status",
7772
7789
  headers: authHeadersSchema,
7773
7790
  responses: {
7774
7791
  200: onboardingStatusResponseSchema,
@@ -8551,6 +8568,27 @@ var zeroVariablesContract = c34.router({
8551
8568
  }
8552
8569
  });
8553
8570
 
8571
+ // ../../packages/core/src/contracts/zero-sessions.ts
8572
+ import { z as z36 } from "zod";
8573
+ var c35 = initContract();
8574
+ var zeroSessionsByIdContract = c35.router({
8575
+ getById: {
8576
+ method: "GET",
8577
+ path: "/api/zero/sessions/:id",
8578
+ headers: authHeadersSchema,
8579
+ pathParams: z36.object({
8580
+ id: z36.string().min(1, "Session ID is required")
8581
+ }),
8582
+ responses: {
8583
+ 200: sessionResponseSchema,
8584
+ 401: apiErrorSchema,
8585
+ 403: apiErrorSchema,
8586
+ 404: apiErrorSchema
8587
+ },
8588
+ summary: "Get session by ID (zero proxy)"
8589
+ }
8590
+ });
8591
+
8554
8592
  // ../../packages/core/src/storage-names.ts
8555
8593
  function getInstructionsStorageName(agentName) {
8556
8594
  return `agent-instructions@${agentName}`;
@@ -9602,8 +9640,8 @@ async function resolveSkills(skillUrls) {
9602
9640
  }
9603
9641
 
9604
9642
  // src/lib/domain/yaml-validator.ts
9605
- import { z as z36 } from "zod";
9606
- var cliAgentNameSchema = z36.string().min(3, "Agent name must be at least 3 characters").max(64, "Agent name must be 64 characters or less").regex(
9643
+ import { z as z37 } from "zod";
9644
+ var cliAgentNameSchema = z37.string().min(3, "Agent name must be at least 3 characters").max(64, "Agent name must be 64 characters or less").regex(
9607
9645
  /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$/,
9608
9646
  "Agent name must start and end with letter or number, and contain only letters, numbers, and hyphens"
9609
9647
  );
@@ -9617,7 +9655,7 @@ var cliAgentDefinitionSchema = agentDefinitionSchema.superRefine(
9617
9655
  resolveSkillRef(skillRef);
9618
9656
  } catch (error) {
9619
9657
  ctx.addIssue({
9620
- code: z36.ZodIssueCode.custom,
9658
+ code: z37.ZodIssueCode.custom,
9621
9659
  message: error instanceof Error ? error.message : `Invalid skill reference: ${skillRef}`,
9622
9660
  path: ["skills", i]
9623
9661
  });
@@ -9627,15 +9665,15 @@ var cliAgentDefinitionSchema = agentDefinitionSchema.superRefine(
9627
9665
  }
9628
9666
  }
9629
9667
  );
9630
- var cliComposeSchema = z36.object({
9631
- version: z36.string().min(1, "Missing config.version"),
9632
- agents: z36.record(cliAgentNameSchema, cliAgentDefinitionSchema),
9633
- volumes: z36.record(z36.string(), volumeConfigSchema).optional()
9668
+ var cliComposeSchema = z37.object({
9669
+ version: z37.string().min(1, "Missing config.version"),
9670
+ agents: z37.record(cliAgentNameSchema, cliAgentDefinitionSchema),
9671
+ volumes: z37.record(z37.string(), volumeConfigSchema).optional()
9634
9672
  }).superRefine((config, ctx) => {
9635
9673
  const agentKeys = Object.keys(config.agents);
9636
9674
  if (agentKeys.length === 0) {
9637
9675
  ctx.addIssue({
9638
- code: z36.ZodIssueCode.custom,
9676
+ code: z37.ZodIssueCode.custom,
9639
9677
  message: "agents must have at least one agent defined",
9640
9678
  path: ["agents"]
9641
9679
  });
@@ -9643,7 +9681,7 @@ var cliComposeSchema = z36.object({
9643
9681
  }
9644
9682
  if (agentKeys.length > 1) {
9645
9683
  ctx.addIssue({
9646
- code: z36.ZodIssueCode.custom,
9684
+ code: z37.ZodIssueCode.custom,
9647
9685
  message: "Multiple agents not supported yet. Only one agent allowed.",
9648
9686
  path: ["agents"]
9649
9687
  });
@@ -9655,7 +9693,7 @@ var cliComposeSchema = z36.object({
9655
9693
  if (agentVolumes && agentVolumes.length > 0) {
9656
9694
  if (!config.volumes) {
9657
9695
  ctx.addIssue({
9658
- code: z36.ZodIssueCode.custom,
9696
+ code: z37.ZodIssueCode.custom,
9659
9697
  message: "Agent references volumes but no volumes section defined. Each volume must have explicit name and version.",
9660
9698
  path: ["volumes"]
9661
9699
  });
@@ -9665,7 +9703,7 @@ var cliComposeSchema = z36.object({
9665
9703
  const parts = volDeclaration.split(":");
9666
9704
  if (parts.length !== 2) {
9667
9705
  ctx.addIssue({
9668
- code: z36.ZodIssueCode.custom,
9706
+ code: z37.ZodIssueCode.custom,
9669
9707
  message: `Invalid volume declaration: ${volDeclaration}. Expected format: volume-key:/mount/path`,
9670
9708
  path: ["agents", agentName, "volumes"]
9671
9709
  });
@@ -9674,7 +9712,7 @@ var cliComposeSchema = z36.object({
9674
9712
  const volumeKey = parts[0].trim();
9675
9713
  if (!config.volumes[volumeKey]) {
9676
9714
  ctx.addIssue({
9677
- code: z36.ZodIssueCode.custom,
9715
+ code: z37.ZodIssueCode.custom,
9678
9716
  message: `Volume "${volumeKey}" is not defined in volumes section. Each volume must have explicit name and version.`,
9679
9717
  path: ["volumes", volumeKey]
9680
9718
  });
@@ -10873,7 +10911,7 @@ var composeCommand = new Command7().name("compose").description("Create or updat
10873
10911
  options.autoUpdate = false;
10874
10912
  }
10875
10913
  if (options.autoUpdate !== false) {
10876
- await startSilentUpgrade("9.70.3");
10914
+ await startSilentUpgrade("9.72.0");
10877
10915
  }
10878
10916
  try {
10879
10917
  let result;
@@ -11694,11 +11732,17 @@ var mainRunCommand = new Command8().name("run").description("Run an agent").argu
11694
11732
  ).option(
11695
11733
  "--disallowed-tools <tools...>",
11696
11734
  "Tools to disable in Claude CLI (e.g., CronCreate WebSearch)"
11735
+ ).option(
11736
+ "--tools <tools...>",
11737
+ "Built-in tools to make available in Claude CLI (e.g., Bash Edit Read)"
11738
+ ).option(
11739
+ "--settings <json>",
11740
+ "Settings JSON to pass to Claude CLI (e.g., hooks, permissions)"
11697
11741
  ).option("--verbose", "Show full tool inputs and outputs").option("--check-env", "Validate secrets and vars before running").addOption(new Option2("--debug-no-mock-claude").hideHelp()).addOption(new Option2("--no-auto-update").hideHelp()).action(
11698
11742
  withErrorHandler(
11699
11743
  async (identifier, prompt, options) => {
11700
11744
  if (options.autoUpdate !== false) {
11701
- await startSilentUpgrade("9.70.3");
11745
+ await startSilentUpgrade("9.72.0");
11702
11746
  }
11703
11747
  const { org, name, version } = parseIdentifier(identifier);
11704
11748
  let composeId;
@@ -11752,6 +11796,8 @@ var mainRunCommand = new Command8().name("run").description("Run an agent").argu
11752
11796
  modelProvider: options.modelProvider,
11753
11797
  appendSystemPrompt: options.appendSystemPrompt,
11754
11798
  disallowedTools: options.disallowedTools,
11799
+ tools: options.tools,
11800
+ settings: options.settings,
11755
11801
  checkEnv: options.checkEnv || void 0,
11756
11802
  debugNoMockClaude: options.debugNoMockClaude || void 0
11757
11803
  });
@@ -11805,6 +11851,12 @@ var resumeCommand = new Command9().name("resume").description("Resume an agent r
11805
11851
  ).option(
11806
11852
  "--disallowed-tools <tools...>",
11807
11853
  "Tools to disable in Claude CLI (e.g., CronCreate WebSearch)"
11854
+ ).option(
11855
+ "--tools <tools...>",
11856
+ "Built-in tools to make available in Claude CLI (e.g., Bash Edit Read)"
11857
+ ).option(
11858
+ "--settings <json>",
11859
+ "Settings JSON to pass to Claude CLI (e.g., hooks, permissions)"
11808
11860
  ).option("--verbose", "Show full tool inputs and outputs").option("--check-env", "Validate secrets and vars before running").addOption(new Option3("--debug-no-mock-claude").hideHelp()).action(
11809
11861
  withErrorHandler(
11810
11862
  async (checkpointId, prompt, options, command) => {
@@ -11829,6 +11881,8 @@ var resumeCommand = new Command9().name("resume").description("Resume an agent r
11829
11881
  modelProvider: options.modelProvider || allOpts.modelProvider,
11830
11882
  appendSystemPrompt: options.appendSystemPrompt || allOpts.appendSystemPrompt,
11831
11883
  disallowedTools: options.disallowedTools || allOpts.disallowedTools,
11884
+ tools: options.tools || allOpts.tools,
11885
+ settings: options.settings || allOpts.settings,
11832
11886
  checkEnv: options.checkEnv || allOpts.checkEnv || void 0,
11833
11887
  debugNoMockClaude: options.debugNoMockClaude || allOpts.debugNoMockClaude || void 0
11834
11888
  });
@@ -11875,6 +11929,12 @@ var continueCommand = new Command10().name("continue").description(
11875
11929
  ).option(
11876
11930
  "--disallowed-tools <tools...>",
11877
11931
  "Tools to disable in Claude CLI (e.g., CronCreate WebSearch)"
11932
+ ).option(
11933
+ "--tools <tools...>",
11934
+ "Built-in tools to make available in Claude CLI (e.g., Bash Edit Read)"
11935
+ ).option(
11936
+ "--settings <json>",
11937
+ "Settings JSON to pass to Claude CLI (e.g., hooks, permissions)"
11878
11938
  ).option("--verbose", "Show full tool inputs and outputs").option("--check-env", "Validate secrets and vars before running").addOption(new Option4("--debug-no-mock-claude").hideHelp()).action(
11879
11939
  withErrorHandler(
11880
11940
  async (agentSessionId, prompt, options, command) => {
@@ -11899,6 +11959,8 @@ var continueCommand = new Command10().name("continue").description(
11899
11959
  modelProvider: options.modelProvider || allOpts.modelProvider,
11900
11960
  appendSystemPrompt: options.appendSystemPrompt || allOpts.appendSystemPrompt,
11901
11961
  disallowedTools: options.disallowedTools || allOpts.disallowedTools,
11962
+ tools: options.tools || allOpts.tools,
11963
+ settings: options.settings || allOpts.settings,
11902
11964
  checkEnv: options.checkEnv || allOpts.checkEnv || void 0,
11903
11965
  debugNoMockClaude: options.debugNoMockClaude || allOpts.debugNoMockClaude || void 0
11904
11966
  });
@@ -13436,7 +13498,7 @@ var cookAction = new Command35().name("cook").description("Quick start: prepare,
13436
13498
  withErrorHandler(
13437
13499
  async (prompt, options) => {
13438
13500
  if (options.autoUpdate !== false) {
13439
- const shouldExit = await checkAndUpgrade("9.70.3", prompt);
13501
+ const shouldExit = await checkAndUpgrade("9.72.0", prompt);
13440
13502
  if (shouldExit) {
13441
13503
  process.exit(0);
13442
13504
  }
@@ -14414,7 +14476,13 @@ function formatMetric(metric) {
14414
14476
  const diskPercent = (metric.disk_used / metric.disk_total * 100).toFixed(1);
14415
14477
  return `[${metric.ts}] CPU: ${metric.cpu.toFixed(1)}% | Mem: ${formatBytes(metric.mem_used)}/${formatBytes(metric.mem_total)} (${memPercent}%) | Disk: ${formatBytes(metric.disk_used)}/${formatBytes(metric.disk_total)} (${diskPercent}%)`;
14416
14478
  }
14417
- function formatNetworkLog(entry) {
14479
+ function formatNetworkDeny(entry) {
14480
+ const method = entry.method || "???";
14481
+ const url = entry.url || entry.host || "unknown";
14482
+ const firewall = entry.firewall_name ? ` ${chalk36.cyan(`[${entry.firewall_name}]`)}` : "";
14483
+ return `[${entry.timestamp}] ${method.padEnd(6)} ${chalk36.red.bold("DENY")} ${chalk36.dim(url)}${firewall}`;
14484
+ }
14485
+ function formatNetworkRequest(entry) {
14418
14486
  let statusColor;
14419
14487
  const status = entry.status || 0;
14420
14488
  if (status >= 200 && status < 300) {
@@ -14439,7 +14507,13 @@ function formatNetworkLog(entry) {
14439
14507
  const requestSize = entry.request_size || 0;
14440
14508
  const responseSize = entry.response_size || 0;
14441
14509
  const url = entry.url || entry.host || "unknown";
14442
- return `[${entry.timestamp}] ${method.padEnd(6)} ${statusColor(status)} ${latencyColor(latencyMs + "ms")} ${formatBytes(requestSize)}/${formatBytes(responseSize)} ${chalk36.dim(url)}`;
14510
+ const firewall = entry.firewall_name ? ` ${chalk36.cyan(`[${entry.firewall_name}]`)}` : "";
14511
+ const error = entry.firewall_error ? ` ${chalk36.red(entry.firewall_error)}` : "";
14512
+ return `[${entry.timestamp}] ${method.padEnd(6)} ${statusColor(status)} ${latencyColor(latencyMs + "ms")} ${formatBytes(requestSize)}/${formatBytes(responseSize)} ${chalk36.dim(url)}${firewall}${error}`;
14513
+ }
14514
+ function formatNetworkLog(entry) {
14515
+ if (entry.action === "DENY") return formatNetworkDeny(entry);
14516
+ return formatNetworkRequest(entry);
14443
14517
  }
14444
14518
  function createLogRenderer(verbose) {
14445
14519
  return new EventRenderer({
@@ -15788,7 +15862,7 @@ var listCommand9 = new Command65().name("list").alias("ls").description("List al
15788
15862
  );
15789
15863
  return;
15790
15864
  }
15791
- const nameWidth = Math.max(4, ...data.composes.map((c35) => c35.name.length));
15865
+ const nameWidth = Math.max(4, ...data.composes.map((c36) => c36.name.length));
15792
15866
  const header = ["NAME".padEnd(nameWidth), "VERSION", "UPDATED"].join(
15793
15867
  " "
15794
15868
  );
@@ -16389,7 +16463,7 @@ async function gatherFrequency(optionFrequency, existingFrequency) {
16389
16463
  if (!isInteractive()) {
16390
16464
  throw new Error("--frequency is required (daily|weekly|monthly|once|loop)");
16391
16465
  }
16392
- const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((c35) => c35.value === existingFrequency) : 0;
16466
+ const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((c36) => c36.value === existingFrequency) : 0;
16393
16467
  frequency = await promptSelect(
16394
16468
  "Schedule frequency",
16395
16469
  FREQUENCY_CHOICES,
@@ -16414,7 +16488,7 @@ async function gatherDay(frequency, optionDay, existingDay) {
16414
16488
  throw new Error("--day is required for weekly/monthly");
16415
16489
  }
16416
16490
  if (frequency === "weekly") {
16417
- const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((c35) => c35.value === existingDay) : 0;
16491
+ const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((c36) => c36.value === existingDay) : 0;
16418
16492
  const day2 = await promptSelect(
16419
16493
  "Day of week",
16420
16494
  DAY_OF_WEEK_CHOICES,
@@ -17864,7 +17938,7 @@ import chalk76 from "chalk";
17864
17938
  var listCommand13 = new Command86().name("list").alias("ls").description("List all connectors and their status").action(
17865
17939
  withErrorHandler(async () => {
17866
17940
  const result = await listConnectors();
17867
- const connectedMap = new Map(result.connectors.map((c35) => [c35.type, c35]));
17941
+ const connectedMap = new Map(result.connectors.map((c36) => [c36.type, c36]));
17868
17942
  const allTypesRaw = Object.keys(CONNECTOR_TYPES);
17869
17943
  const allTypes = [];
17870
17944
  for (const type2 of allTypesRaw) {
@@ -18425,16 +18499,16 @@ async function handleModelProvider(ctx) {
18425
18499
  const providerType = await step.prompt(
18426
18500
  () => promptSelect(
18427
18501
  "Select provider type:",
18428
- choices.map((c35) => ({
18429
- title: c35.label,
18430
- value: c35.type
18502
+ choices.map((c36) => ({
18503
+ title: c36.label,
18504
+ value: c36.type
18431
18505
  }))
18432
18506
  )
18433
18507
  );
18434
18508
  if (!providerType) {
18435
18509
  process.exit(0);
18436
18510
  }
18437
- const selectedChoice = choices.find((c35) => c35.type === providerType);
18511
+ const selectedChoice = choices.find((c36) => c36.type === providerType);
18438
18512
  if (selectedChoice?.helpText) {
18439
18513
  for (const line of selectedChoice.helpText.split("\n")) {
18440
18514
  step.detail(chalk82.dim(line));
@@ -18788,13 +18862,13 @@ var upgradeCommand = new Command94().name("upgrade").description("Upgrade vm0 CL
18788
18862
  if (latestVersion === null) {
18789
18863
  throw new Error("Could not check for updates. Please try again later.");
18790
18864
  }
18791
- if (latestVersion === "9.70.3") {
18792
- console.log(chalk86.green(`\u2713 Already up to date (${"9.70.3"})`));
18865
+ if (latestVersion === "9.72.0") {
18866
+ console.log(chalk86.green(`\u2713 Already up to date (${"9.72.0"})`));
18793
18867
  return;
18794
18868
  }
18795
18869
  console.log(
18796
18870
  chalk86.yellow(
18797
- `Current version: ${"9.70.3"} -> Latest version: ${latestVersion}`
18871
+ `Current version: ${"9.72.0"} -> Latest version: ${latestVersion}`
18798
18872
  )
18799
18873
  );
18800
18874
  console.log();
@@ -18821,7 +18895,7 @@ var upgradeCommand = new Command94().name("upgrade").description("Upgrade vm0 CL
18821
18895
  const success = await performUpgrade(packageManager);
18822
18896
  if (success) {
18823
18897
  console.log(
18824
- chalk86.green(`\u2713 Upgraded from ${"9.70.3"} to ${latestVersion}`)
18898
+ chalk86.green(`\u2713 Upgraded from ${"9.72.0"} to ${latestVersion}`)
18825
18899
  );
18826
18900
  return;
18827
18901
  }
@@ -18895,7 +18969,7 @@ var whoamiCommand = new Command95().name("whoami").description("Show current ide
18895
18969
 
18896
18970
  // src/index.ts
18897
18971
  var program = new Command96();
18898
- program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.70.3");
18972
+ program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.72.0");
18899
18973
  program.addCommand(authCommand);
18900
18974
  program.addCommand(infoCommand);
18901
18975
  program.addCommand(composeCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vm0/cli",
3
- "version": "9.70.3",
3
+ "version": "9.72.0",
4
4
  "description": "CLI application",
5
5
  "repository": {
6
6
  "type": "git",