@vm0/cli 9.176.3 → 9.176.4

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/index.js CHANGED
@@ -67,7 +67,7 @@ import {
67
67
  source_default,
68
68
  volumeConfigSchema,
69
69
  withErrorHandler
70
- } from "./chunk-PK542UZ7.js";
70
+ } from "./chunk-JQ72VVQC.js";
71
71
  import {
72
72
  __toESM,
73
73
  init_esm_shims
@@ -400,7 +400,7 @@ function getConfigPath() {
400
400
  return join(os.homedir(), ".vm0", "config.json");
401
401
  }
402
402
  var infoCommand = new Command().name("info").description("Display environment and debug information").action(async () => {
403
- console.log(source_default.bold(`VM0 CLI v${"9.176.3"}`));
403
+ console.log(source_default.bold(`VM0 CLI v${"9.176.4"}`));
404
404
  console.log();
405
405
  const config = await loadConfig();
406
406
  const hasEnvToken = !!process.env.VM0_TOKEN;
@@ -4293,7 +4293,7 @@ var composeCommand = new Command().name("compose").description("Create or update
4293
4293
  options.autoUpdate = false;
4294
4294
  }
4295
4295
  if (options.autoUpdate !== false) {
4296
- await startSilentUpgrade("9.176.3");
4296
+ await startSilentUpgrade("9.176.4");
4297
4297
  }
4298
4298
  try {
4299
4299
  let result;
@@ -4395,7 +4395,7 @@ var mainRunCommand = new Command().name("run").description("Run an agent").argum
4395
4395
  withErrorHandler(
4396
4396
  async (identifier, prompt, options) => {
4397
4397
  if (options.autoUpdate !== false) {
4398
- await startSilentUpgrade("9.176.3");
4398
+ await startSilentUpgrade("9.176.4");
4399
4399
  }
4400
4400
  const { name, version } = parseIdentifier(identifier);
4401
4401
  let composeId;
@@ -6189,13 +6189,13 @@ var upgradeCommand = new Command().name("upgrade").description("Upgrade vm0 CLI
6189
6189
  if (latestVersion === null) {
6190
6190
  throw new Error("Could not check for updates. Please try again later.");
6191
6191
  }
6192
- if (latestVersion === "9.176.3") {
6193
- console.log(source_default.green(`\u2713 Already up to date (${"9.176.3"})`));
6192
+ if (latestVersion === "9.176.4") {
6193
+ console.log(source_default.green(`\u2713 Already up to date (${"9.176.4"})`));
6194
6194
  return;
6195
6195
  }
6196
6196
  console.log(
6197
6197
  source_default.yellow(
6198
- `Current version: ${"9.176.3"} -> Latest version: ${latestVersion}`
6198
+ `Current version: ${"9.176.4"} -> Latest version: ${latestVersion}`
6199
6199
  )
6200
6200
  );
6201
6201
  console.log();
@@ -6222,7 +6222,7 @@ var upgradeCommand = new Command().name("upgrade").description("Upgrade vm0 CLI
6222
6222
  const success = await performUpgrade(packageManager);
6223
6223
  if (success) {
6224
6224
  console.log(
6225
- source_default.green(`\u2713 Upgraded from ${"9.176.3"} to ${latestVersion}`)
6225
+ source_default.green(`\u2713 Upgraded from ${"9.176.4"} to ${latestVersion}`)
6226
6226
  );
6227
6227
  return;
6228
6228
  }
@@ -6289,7 +6289,7 @@ var whoamiCommand = new Command().name("whoami").description("Show current ident
6289
6289
 
6290
6290
  // src/index.ts
6291
6291
  var program = new Command();
6292
- program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.176.3");
6292
+ program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.176.4");
6293
6293
  program.addCommand(authCommand);
6294
6294
  program.addCommand(infoCommand);
6295
6295
  program.addCommand(composeCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vm0/cli",
3
- "version": "9.176.3",
3
+ "version": "9.176.4",
4
4
  "description": "CLI application",
5
5
  "repository": {
6
6
  "type": "git",
package/zero.js CHANGED
@@ -143,9 +143,8 @@ import {
143
143
  uploadWebFile,
144
144
  upsertZeroOrgModelProvider,
145
145
  withErrorHandler,
146
- zeroAgentCustomSkillNameSchema,
147
- zeroTokenAllowsFeatureSwitch
148
- } from "./chunk-PK542UZ7.js";
146
+ zeroAgentCustomSkillNameSchema
147
+ } from "./chunk-JQ72VVQC.js";
149
148
  import {
150
149
  __toESM,
151
150
  init_esm_shims
@@ -9891,7 +9890,7 @@ function toGenerationTarget(value) {
9891
9890
  }
9892
9891
  return value;
9893
9892
  }
9894
- function selectResourceCandidates() {
9893
+ function selectResourceCandidates(target) {
9895
9894
  return {
9896
9895
  registryVersion: RESOURCE_REGISTRY_VERSION,
9897
9896
  source: {
@@ -9910,7 +9909,7 @@ function selectResourceCandidates() {
9910
9909
  ],
9911
9910
  candidates: {
9912
9911
  skills: filterByKind("skill"),
9913
- templates: filterByKind("template"),
9912
+ templates: listTemplates(target),
9914
9913
  designSystems: filterByKind("design-system"),
9915
9914
  imageStyles: filterByKind("image-style"),
9916
9915
  audioStyles: filterByKind("audio-style"),
@@ -11030,11 +11029,11 @@ function outputDirForSite(site) {
11030
11029
  return `./generated/mockups/${site}`;
11031
11030
  }
11032
11031
  function createHtmlArtifactAuthoringPacket(options) {
11033
- const site = options.site ?? slugify(options.slugSource ?? options.prompt);
11032
+ const site = options.siteSlug ?? slugify(options.slugSource ?? options.prompt);
11034
11033
  const outputDir2 = outputDirForSite(site);
11035
11034
  const hostCommand = `zero host ${outputDir2} --site ${site}${options.kind === "website" ? " --spa" : ""}`;
11036
11035
  const title = titleForKind(options.kind);
11037
- const candidateSlice = selectResourceCandidates();
11036
+ const candidateSlice = selectResourceCandidates(options.kind);
11038
11037
  const selectionSchema = {
11039
11038
  skills: "string[]",
11040
11039
  template: "string",
@@ -11217,7 +11216,7 @@ function createArtifactGenerateCommand(config) {
11217
11216
  ).option(
11218
11217
  "--all",
11219
11218
  "When listing providers (no --prompt given), include unavailable or not-yet-authorized connectors"
11220
- ).option("--site <slug>", "Hosted site slug; defaults to generated name").option("--title <text>", "Requested artifact title or name").option("--audience <text>", "Audience context").option(
11219
+ ).option("--site-slug <slug>", "Hosted site slug override").option("--title <text>", "Requested artifact title or name").option(
11221
11220
  "--design-system <id>",
11222
11221
  "Design system id from the registry (see Design Systems below). Accepts either 'apple' or 'design-system:apple'."
11223
11222
  ).option(
@@ -11293,7 +11292,7 @@ ${formatRegistryListing(templates, `${config.target} templates`)}`;
11293
11292
  kind: toGenerationTarget(config.target),
11294
11293
  prompt,
11295
11294
  slugSource: options.title,
11296
- site: options.site,
11295
+ siteSlug: options.siteSlug,
11297
11296
  details: [...config.details(options), ...extraDetails],
11298
11297
  artifactRules: config.artifactRules
11299
11298
  });
@@ -11311,8 +11310,7 @@ function standardDetails(kind) {
11311
11310
  return (options) => {
11312
11311
  return [
11313
11312
  `Artifact kind: ${kind}`,
11314
- `Requested title/name: ${options.title ?? "not specified"}`,
11315
- `Audience: ${options.audience ?? "not specified"}`
11313
+ `Requested title/name: ${options.title ?? "not specified"}`
11316
11314
  ];
11317
11315
  };
11318
11316
  }
@@ -11323,7 +11321,7 @@ var reportCommand = createArtifactGenerateCommand({
11323
11321
  description: "Generate an HTML report from a prompt",
11324
11322
  usageCommand: "zero generate report",
11325
11323
  examples: ` Generate report: zero generate report --prompt "A Q2 usage report for the API team"
11326
- Stable hosted slug: zero generate report --site api-usage-q2 --prompt "A Q2 usage report"
11324
+ Stable hosted slug: zero generate report --site-slug api-usage-q2 --prompt "A Q2 usage report"
11327
11325
  List providers: zero generate report`,
11328
11326
  details: standardDetails("report"),
11329
11327
  artifactRules: [
@@ -11340,7 +11338,7 @@ var docsDesignCommand = createArtifactGenerateCommand({
11340
11338
  description: "Generate a documentation design from a prompt",
11341
11339
  usageCommand: "zero generate docs-design",
11342
11340
  examples: ` Generate docs design: zero generate docs-design --prompt "Docs for adding artifact targets"
11343
- Stable hosted slug: zero generate docs-design --site artifact-target-docs --prompt "Artifact target docs"
11341
+ Stable hosted slug: zero generate docs-design --site-slug artifact-target-docs --prompt "Artifact target docs"
11344
11342
  List providers: zero generate docs-design`,
11345
11343
  details: standardDetails("docs-design"),
11346
11344
  artifactRules: [
@@ -11357,7 +11355,7 @@ var posterCommand = createArtifactGenerateCommand({
11357
11355
  description: "Generate an HTML poster from a prompt",
11358
11356
  usageCommand: "zero generate poster",
11359
11357
  examples: ` Generate poster: zero generate poster --prompt "A launch poster for artifact targets"
11360
- Stable hosted slug: zero generate poster --site artifact-poster --prompt "A launch poster"
11358
+ Stable hosted slug: zero generate poster --site-slug artifact-poster --prompt "A launch poster"
11361
11359
  List providers: zero generate poster`,
11362
11360
  details: standardDetails("poster"),
11363
11361
  artifactRules: [
@@ -11374,7 +11372,7 @@ var dashboardDesignCommand = createArtifactGenerateCommand({
11374
11372
  description: "Generate a dashboard design from a prompt",
11375
11373
  usageCommand: "zero generate dashboard-design",
11376
11374
  examples: ` Generate dash design: zero generate dashboard-design --prompt "An ops dashboard for generation runs"
11377
- Stable hosted slug: zero generate dashboard-design --site generation-ops --prompt "A generation ops dashboard"
11375
+ Stable hosted slug: zero generate dashboard-design --site-slug generation-ops --prompt "A generation ops dashboard"
11378
11376
  List providers: zero generate dashboard-design`,
11379
11377
  details: standardDetails("dashboard-design"),
11380
11378
  artifactRules: [
@@ -11391,7 +11389,7 @@ var mobileAppDesignCommand = createArtifactGenerateCommand({
11391
11389
  description: "Generate a mobile app design prototype from a prompt",
11392
11390
  usageCommand: "zero generate mobile-app-design",
11393
11391
  examples: ` Generate mobile UI: zero generate mobile-app-design --prompt "A mobile review screen for generation artifacts"
11394
- Stable hosted slug: zero generate mobile-app-design --site generation-mobile-review --prompt "A mobile review screen"
11392
+ Stable hosted slug: zero generate mobile-app-design --site-slug generation-mobile-review --prompt "A mobile review screen"
11395
11393
  List providers: zero generate mobile-app-design`,
11396
11394
  details: standardDetails("mobile-app-design"),
11397
11395
  artifactRules: [
@@ -11464,7 +11462,7 @@ function createPresentationGenerateCommand(config) {
11464
11462
  ).option(
11465
11463
  "--all",
11466
11464
  "When listing providers (no --prompt given), include unavailable or not-yet-authorized connectors"
11467
- ).option("--style <style>", "Style: editorial or swiss", "editorial").option("--slides <count>", "Slide count: 4-20", parseSlideCount, 8).option(
11465
+ ).option("--slides <count>", "Slide count: 4-20", parseSlideCount, 8).option(
11468
11466
  "--images <count>",
11469
11467
  `Generated image count: 0-${PRESENTATION_MAX_IMAGES}`,
11470
11468
  parseImageCount,
@@ -11472,10 +11470,7 @@ function createPresentationGenerateCommand(config) {
11472
11470
  ).option(
11473
11471
  "--image-model <model>",
11474
11472
  "Image model for generated visuals (default: gpt-image-1): gpt-image-2, gpt-image-1.5, gpt-image-1, gpt-image-1-mini, flux-pro-1.1, flux-pro-1.1-ultra, qwen-image, or seedream4"
11475
- ).option(
11476
- "--theme <theme>",
11477
- "Theme: editorial supports ink, coral, forest; swiss supports ikb, lemon, lime, mono"
11478
- ).option("--audience <text>", "Audience context").option("--title <text>", "Requested deck title").option(
11473
+ ).option("--title <text>", "Requested deck title").option("--site-slug <slug>", "Hosted site slug override").option(
11479
11474
  "--design-system <id>",
11480
11475
  "Design system id from the registry (see Design Systems below). Accepts either 'apple' or 'design-system:apple'."
11481
11476
  ).option(
@@ -11546,13 +11541,11 @@ ${formatRegistryListing(templates, "presentation templates")}`;
11546
11541
  kind: "presentation",
11547
11542
  prompt,
11548
11543
  slugSource: options.title,
11544
+ siteSlug: options.siteSlug,
11549
11545
  details: [
11550
- `Style: ${options.style}`,
11551
11546
  `Slide count: ${options.slides}`,
11552
11547
  `Suggested generated visual count: ${options.images}`,
11553
11548
  `Image model preference if visuals are generated separately: ${options.imageModel ?? "default"}`,
11554
- `Theme: ${options.theme ?? "agent decides from style"}`,
11555
- `Audience: ${options.audience ?? "not specified"}`,
11556
11549
  `Requested deck title: ${options.title ?? "not specified"}`,
11557
11550
  `Selected design system: ${resolvedDesignSystem ? `${resolvedDesignSystem.id} (${resolvedDesignSystem.name})` : "agent decides"}`,
11558
11551
  `Selected template: ${resolvedTemplate ? `${resolvedTemplate.id} (${resolvedTemplate.name})` : "agent decides"}`
@@ -11581,8 +11574,8 @@ var presentationCommand = createPresentationGenerateCommand({
11581
11574
  usageCommand: "zero generate presentation",
11582
11575
  examples: ` Generate deck: zero generate presentation --prompt "A strategy deck for reducing support volume"
11583
11576
  Pipe prompt: cat brief.txt | zero generate presentation
11584
- Swiss style: zero generate presentation --style swiss --theme ikb --slides 10 --images 8 --image-model gpt-image-1.5 --prompt "A product launch narrative"
11585
- Audience context: zero generate presentation --audience "engineering leadership" --prompt "API migration plan"
11577
+ Generated visuals: zero generate presentation --slides 10 --images 8 --image-model gpt-image-1.5 --prompt "A product launch narrative"
11578
+ Stable hosted slug: zero generate presentation --site-slug api-migration-plan --prompt "API migration plan"
11586
11579
  List providers: zero generate presentation`
11587
11580
  });
11588
11581
 
@@ -11907,20 +11900,9 @@ var videoCommand = createVideoGenerateCommand({
11907
11900
 
11908
11901
  // src/commands/zero/generate/website.ts
11909
11902
  init_esm_shims();
11910
- var WEBSITE_TEMPLATE_DIRECTIONS = ["auto", "launch", "profile"];
11911
11903
  var WEBSITE_MAX_IMAGES = 3;
11912
11904
  var WEBSITE_TARGET = "website";
11913
11905
  var WEBSITE_USAGE_COMMAND = "zero generate website";
11914
- function parseTemplateDirection(value) {
11915
- if (WEBSITE_TEMPLATE_DIRECTIONS.some((direction) => {
11916
- return direction === value;
11917
- })) {
11918
- return value;
11919
- }
11920
- throw new InvalidArgumentError(
11921
- "template-direction must be auto, launch, or profile"
11922
- );
11923
- }
11924
11906
  function parseImageCount2(value) {
11925
11907
  const imageCount = Number(value);
11926
11908
  if (!Number.isInteger(imageCount)) {
@@ -11965,11 +11947,6 @@ var websiteCommand = new Command().name("website").description("Prepare website
11965
11947
  ).option(
11966
11948
  "--all",
11967
11949
  "When listing providers (no --prompt given), include unavailable or not-yet-authorized connectors"
11968
- ).option(
11969
- "--template-direction <direction>",
11970
- "High-level website direction: auto, launch, or profile",
11971
- parseTemplateDirection,
11972
- "auto"
11973
11950
  ).option(
11974
11951
  "--template <id>",
11975
11952
  "Template id from the registry, scoped to website (see Templates below). Accepts either short id or full 'template:<id>'."
@@ -11984,16 +11961,15 @@ var websiteCommand = new Command().name("website").description("Prepare website
11984
11961
  ).option(
11985
11962
  "--image-model <model>",
11986
11963
  "Image model for generated visuals (default: gpt-image-1): gpt-image-2, gpt-image-1.5, gpt-image-1, gpt-image-1-mini, flux-pro-1.1, flux-pro-1.1-ultra, qwen-image, or seedream4"
11987
- ).option("--site <slug>", "Hosted site slug; defaults to the generated name").option("--title <text>", "Requested site title or name").option("--audience <text>", "Audience context").option("--json", "Print metadata as JSON").addHelpText("after", () => {
11964
+ ).option("--site-slug <slug>", "Hosted site slug override").option("--title <text>", "Requested site title or name").option("--json", "Print metadata as JSON").addHelpText("after", () => {
11988
11965
  const designSystems = listDesignSystems();
11989
11966
  const templates = listTemplates(WEBSITE_TARGET);
11990
11967
  return `
11991
11968
  Examples:
11992
11969
  Generate site: zero generate website --prompt "A launch site for a developer observability tool"
11993
- Pick direction: zero generate website --template-direction profile --images 2 --image-model gpt-image-1.5 --prompt "Portfolio for a robotics photographer"
11994
11970
  Pick template: zero generate website --template saas-landing --prompt "Launch site for a billing API"
11995
11971
  Pick design system: zero generate website --design-system stripe --prompt "Pricing page for a SaaS"
11996
- Stable hosted slug: zero generate website --site api-migration-demo --prompt "An internal migration microsite"
11972
+ Stable hosted slug: zero generate website --site-slug api-migration-demo --prompt "An internal migration microsite"
11997
11973
  Pipe prompt: cat brief.txt | zero generate website
11998
11974
  List providers: zero generate website
11999
11975
 
@@ -12046,13 +12022,11 @@ ${formatRegistryListing(templates, "website templates")}`;
12046
12022
  kind: "website",
12047
12023
  prompt,
12048
12024
  slugSource: options.title,
12049
- site: options.site,
12025
+ siteSlug: options.siteSlug,
12050
12026
  details: [
12051
- `Template direction: ${options.templateDirection}`,
12052
12027
  `Suggested generated visual count: ${options.images}`,
12053
12028
  `Image model preference if visuals are generated separately: ${options.imageModel ?? "default"}`,
12054
12029
  `Requested title/site name: ${options.title ?? "not specified"}`,
12055
- `Audience: ${options.audience ?? "not specified"}`,
12056
12030
  `Selected design system: ${resolvedDesignSystem ? `${resolvedDesignSystem.id} (${resolvedDesignSystem.name})` : "agent decides"}`,
12057
12031
  `Selected template: ${resolvedTemplate ? `${resolvedTemplate.id} (${resolvedTemplate.name})` : "agent decides"}`
12058
12032
  ],
@@ -12205,9 +12179,7 @@ function buildGenerateHelpText() {
12205
12179
  ' Generate report: zero generate report --prompt "A Q2 usage report"',
12206
12180
  ' Generate docs: zero generate docs-design --prompt "A setup guide"',
12207
12181
  ' Generate video: zero generate video --prompt "A cinematic city shot"',
12208
- ...zeroTokenAllowsFeatureSwitch("hostedSites" /* HostedSites */) ? [
12209
- ' Generate site: zero generate website --prompt "A launch site"'
12210
- ] : [],
12182
+ ' Generate site: zero generate website --prompt "A launch site"',
12211
12183
  ' Generate speech: zero generate voice --prompt "Hello"',
12212
12184
  "",
12213
12185
  " List image providers: zero generate image",
@@ -12225,10 +12197,7 @@ Notes:
12225
12197
  }
12226
12198
  var generateCommand = new Command().name("generate").description(
12227
12199
  "Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance"
12228
- ).addCommand(imageCommand).addCommand(presentationCommand).addCommand(reportCommand).addCommand(docsDesignCommand).addCommand(posterCommand).addCommand(dashboardDesignCommand).addCommand(mobileAppDesignCommand).addCommand(videoCommand).addCommand(
12229
- websiteCommand,
12230
- zeroTokenAllowsFeatureSwitch("hostedSites" /* HostedSites */) ? {} : { hidden: true }
12231
- ).addCommand(voiceCommand).addCommand(audioCommand).addCommand(textCommand).addCommand(codeCommand).addCommand(documentCommand).addHelpText("after", buildGenerateHelpText);
12200
+ ).addCommand(imageCommand).addCommand(presentationCommand).addCommand(reportCommand).addCommand(docsDesignCommand).addCommand(posterCommand).addCommand(dashboardDesignCommand).addCommand(mobileAppDesignCommand).addCommand(videoCommand).addCommand(websiteCommand).addCommand(voiceCommand).addCommand(audioCommand).addCommand(textCommand).addCommand(codeCommand).addCommand(documentCommand).addHelpText("after", buildGenerateHelpText);
12232
12201
 
12233
12202
  // src/commands/zero/web/index.ts
12234
12203
  init_esm_shims();
@@ -12966,7 +12935,7 @@ var COMMAND_CAPABILITY_MAP = {
12966
12935
  whoami: null,
12967
12936
  "developer-support": null,
12968
12937
  "computer-use": "computer-use:write",
12969
- generate: "file:write",
12938
+ generate: null,
12970
12939
  web: null,
12971
12940
  host: "host:write",
12972
12941
  maps: "maps:read"
@@ -13002,9 +12971,6 @@ var DEFAULT_COMMANDS = [
13002
12971
  ];
13003
12972
  function shouldHideCommand(name, payload) {
13004
12973
  if (!payload) return false;
13005
- if (name === "generate") {
13006
- return !payload.capabilities.includes("file:write") && !zeroTokenAllowsFeatureSwitch("hostedSites" /* HostedSites */, payload);
13007
- }
13008
12974
  const requiredCap = COMMAND_CAPABILITY_MAP[name];
13009
12975
  if (requiredCap === void 0) return true;
13010
12976
  if (requiredCap === null) return false;
@@ -13037,7 +13003,7 @@ function buildZeroHelpText(payload = decodeZeroTokenPayload()) {
13037
13003
  " Manage custom skills? zero skill --help",
13038
13004
  " List generators? zero generate --help",
13039
13005
  ' Generate image? zero generate image --prompt "..."',
13040
- ...zeroTokenAllowsFeatureSwitch("hostedSites" /* HostedSites */, payload) ? [' Generate website? zero generate website --prompt "..."'] : [],
13006
+ ' Generate website? zero generate website --prompt "..."',
13041
13007
  ' Generate voice? zero generate voice --prompt "..."',
13042
13008
  ...shouldHideCommand("host", payload) ? [] : [" Host a static site? zero host ./dist --site my-site --spa"],
13043
13009
  ...shouldHideCommand("maps", payload) ? [] : [
@@ -13060,7 +13026,7 @@ function registerZeroCommands(prog, commands) {
13060
13026
  var program = new Command();
13061
13027
  program.name("zero").description(
13062
13028
  "Zero CLI \u2014 interact with the zero platform from inside the sandbox"
13063
- ).version("9.176.3").addHelpText("after", () => {
13029
+ ).version("9.176.4").addHelpText("after", () => {
13064
13030
  return buildZeroHelpText();
13065
13031
  });
13066
13032
  if (process.argv[1]?.endsWith("zero.js") || process.argv[1]?.endsWith("zero.ts") || process.argv[1]?.endsWith("zero")) {