@vm0/cli 9.162.1 → 9.163.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{chunk-4XWIBE2Y.js → chunk-QZUAFJQ7.js} +24 -52
- package/{chunk-4XWIBE2Y.js.map → chunk-QZUAFJQ7.js.map} +1 -1
- package/index.js +9 -9
- package/package.json +1 -1
- package/zero.js +126 -11
- package/zero.js.map +1 -1
package/index.js
CHANGED
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
source_default,
|
|
69
69
|
volumeConfigSchema,
|
|
70
70
|
withErrorHandler
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-QZUAFJQ7.js";
|
|
72
72
|
import {
|
|
73
73
|
__toESM,
|
|
74
74
|
init_esm_shims
|
|
@@ -387,7 +387,7 @@ function getConfigPath() {
|
|
|
387
387
|
return join(os.homedir(), ".vm0", "config.json");
|
|
388
388
|
}
|
|
389
389
|
var infoCommand = new Command().name("info").description("Display environment and debug information").action(async () => {
|
|
390
|
-
console.log(source_default.bold(`VM0 CLI v${"9.
|
|
390
|
+
console.log(source_default.bold(`VM0 CLI v${"9.163.0"}`));
|
|
391
391
|
console.log();
|
|
392
392
|
const config = await loadConfig();
|
|
393
393
|
const hasEnvToken = !!process.env.VM0_TOKEN;
|
|
@@ -4280,7 +4280,7 @@ var composeCommand = new Command().name("compose").description("Create or update
|
|
|
4280
4280
|
options.autoUpdate = false;
|
|
4281
4281
|
}
|
|
4282
4282
|
if (options.autoUpdate !== false) {
|
|
4283
|
-
await startSilentUpgrade("9.
|
|
4283
|
+
await startSilentUpgrade("9.163.0");
|
|
4284
4284
|
}
|
|
4285
4285
|
try {
|
|
4286
4286
|
let result;
|
|
@@ -4372,7 +4372,7 @@ var mainRunCommand = new Command().name("run").description("Run an agent").argum
|
|
|
4372
4372
|
withErrorHandler(
|
|
4373
4373
|
async (identifier, prompt, options) => {
|
|
4374
4374
|
if (options.autoUpdate !== false) {
|
|
4375
|
-
await startSilentUpgrade("9.
|
|
4375
|
+
await startSilentUpgrade("9.163.0");
|
|
4376
4376
|
}
|
|
4377
4377
|
const { name, version } = parseIdentifier(identifier);
|
|
4378
4378
|
let composeId;
|
|
@@ -6165,13 +6165,13 @@ var upgradeCommand = new Command().name("upgrade").description("Upgrade vm0 CLI
|
|
|
6165
6165
|
if (latestVersion === null) {
|
|
6166
6166
|
throw new Error("Could not check for updates. Please try again later.");
|
|
6167
6167
|
}
|
|
6168
|
-
if (latestVersion === "9.
|
|
6169
|
-
console.log(source_default.green(`\u2713 Already up to date (${"9.
|
|
6168
|
+
if (latestVersion === "9.163.0") {
|
|
6169
|
+
console.log(source_default.green(`\u2713 Already up to date (${"9.163.0"})`));
|
|
6170
6170
|
return;
|
|
6171
6171
|
}
|
|
6172
6172
|
console.log(
|
|
6173
6173
|
source_default.yellow(
|
|
6174
|
-
`Current version: ${"9.
|
|
6174
|
+
`Current version: ${"9.163.0"} -> Latest version: ${latestVersion}`
|
|
6175
6175
|
)
|
|
6176
6176
|
);
|
|
6177
6177
|
console.log();
|
|
@@ -6198,7 +6198,7 @@ var upgradeCommand = new Command().name("upgrade").description("Upgrade vm0 CLI
|
|
|
6198
6198
|
const success = await performUpgrade(packageManager);
|
|
6199
6199
|
if (success) {
|
|
6200
6200
|
console.log(
|
|
6201
|
-
source_default.green(`\u2713 Upgraded from ${"9.
|
|
6201
|
+
source_default.green(`\u2713 Upgraded from ${"9.163.0"} to ${latestVersion}`)
|
|
6202
6202
|
);
|
|
6203
6203
|
return;
|
|
6204
6204
|
}
|
|
@@ -6265,7 +6265,7 @@ var whoamiCommand = new Command().name("whoami").description("Show current ident
|
|
|
6265
6265
|
|
|
6266
6266
|
// src/index.ts
|
|
6267
6267
|
var program = new Command();
|
|
6268
|
-
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.
|
|
6268
|
+
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.163.0");
|
|
6269
6269
|
program.addCommand(authCommand);
|
|
6270
6270
|
program.addCommand(infoCommand);
|
|
6271
6271
|
program.addCommand(composeCommand);
|
package/package.json
CHANGED
package/zero.js
CHANGED
|
@@ -152,7 +152,7 @@ import {
|
|
|
152
152
|
zeroAgentCustomSkillNameSchema,
|
|
153
153
|
zeroLocalAgentCommand,
|
|
154
154
|
zeroTokenAllowsFeatureSwitch
|
|
155
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-QZUAFJQ7.js";
|
|
156
156
|
import {
|
|
157
157
|
__toESM,
|
|
158
158
|
init_esm_shims
|
|
@@ -7344,14 +7344,19 @@ import { readFileSync as readFileSync14 } from "fs";
|
|
|
7344
7344
|
init_esm_shims();
|
|
7345
7345
|
var OPEN_DESIGN_REPO = "vm0-ai/open-design";
|
|
7346
7346
|
var OPEN_DESIGN_COMMIT = "d021b04720ace133f1d6133d1487326f5fc28f07";
|
|
7347
|
-
var
|
|
7348
|
-
|
|
7347
|
+
var VM0_REPO = "vm0-ai/vm0";
|
|
7348
|
+
var NOTION_ILLUSTRATION_COMMIT = "12d5aa42de4323c034cfb6e8005c69304dd510e5";
|
|
7349
|
+
var OPEN_DESIGN_REGISTRY_VERSION = `federated:${OPEN_DESIGN_REPO}@${OPEN_DESIGN_COMMIT}`;
|
|
7350
|
+
function sourceRef(repo, commit, path) {
|
|
7349
7351
|
return {
|
|
7350
|
-
repo
|
|
7351
|
-
commit
|
|
7352
|
+
repo,
|
|
7353
|
+
commit,
|
|
7352
7354
|
path
|
|
7353
7355
|
};
|
|
7354
7356
|
}
|
|
7357
|
+
function source(path) {
|
|
7358
|
+
return sourceRef(OPEN_DESIGN_REPO, OPEN_DESIGN_COMMIT, path);
|
|
7359
|
+
}
|
|
7355
7360
|
var OPEN_DESIGN_REGISTRY = [
|
|
7356
7361
|
{
|
|
7357
7362
|
id: "od:skill:data-report",
|
|
@@ -7608,6 +7613,38 @@ var OPEN_DESIGN_REGISTRY = [
|
|
|
7608
7613
|
bestFor: ["phone-framed product mocks", "consumer mobile UI"],
|
|
7609
7614
|
status: "curated",
|
|
7610
7615
|
priority: 34
|
|
7616
|
+
},
|
|
7617
|
+
{
|
|
7618
|
+
id: "vm0:image-style:notion-illustration",
|
|
7619
|
+
kind: "image-style",
|
|
7620
|
+
name: "Notion Illustration",
|
|
7621
|
+
description: "Zero-native illustration style for hand-drawn product spot illustrations with simple ink contours and soft backgrounds.",
|
|
7622
|
+
source: sourceRef(
|
|
7623
|
+
VM0_REPO,
|
|
7624
|
+
NOTION_ILLUSTRATION_COMMIT,
|
|
7625
|
+
".claude/skills/notion-illustration"
|
|
7626
|
+
),
|
|
7627
|
+
targets: ["website", "poster", "presentation", "report"],
|
|
7628
|
+
tags: ["image", "illustration", "notion", "spot", "hand-drawn", "product"],
|
|
7629
|
+
triggers: [
|
|
7630
|
+
"illustration",
|
|
7631
|
+
"notion illustration",
|
|
7632
|
+
"spot illustration",
|
|
7633
|
+
"hand drawn",
|
|
7634
|
+
"product illustration"
|
|
7635
|
+
],
|
|
7636
|
+
bestFor: [
|
|
7637
|
+
"in-app empty states",
|
|
7638
|
+
"gallery previews",
|
|
7639
|
+
"product narrative artwork"
|
|
7640
|
+
],
|
|
7641
|
+
outputKinds: ["image"],
|
|
7642
|
+
primaryOutputKind: "image",
|
|
7643
|
+
executorHints: ["skill-authored", "built-in-image"],
|
|
7644
|
+
previewHint: "image",
|
|
7645
|
+
remixHint: "prompt-with-resource-hints",
|
|
7646
|
+
status: "experimental",
|
|
7647
|
+
priority: 18
|
|
7611
7648
|
}
|
|
7612
7649
|
];
|
|
7613
7650
|
function toOpenDesignTarget(value) {
|
|
@@ -7680,6 +7717,16 @@ function selectOpenDesignCandidates(options) {
|
|
|
7680
7717
|
repo: OPEN_DESIGN_REPO,
|
|
7681
7718
|
commit: OPEN_DESIGN_COMMIT
|
|
7682
7719
|
},
|
|
7720
|
+
sources: [
|
|
7721
|
+
{
|
|
7722
|
+
repo: OPEN_DESIGN_REPO,
|
|
7723
|
+
commit: OPEN_DESIGN_COMMIT
|
|
7724
|
+
},
|
|
7725
|
+
{
|
|
7726
|
+
repo: VM0_REPO,
|
|
7727
|
+
commit: NOTION_ILLUSTRATION_COMMIT
|
|
7728
|
+
}
|
|
7729
|
+
],
|
|
7683
7730
|
candidates: {
|
|
7684
7731
|
skills: selectByKind(
|
|
7685
7732
|
"skill",
|
|
@@ -7698,6 +7745,30 @@ function selectOpenDesignCandidates(options) {
|
|
|
7698
7745
|
options.target,
|
|
7699
7746
|
options.prompt,
|
|
7700
7747
|
limitPerKind
|
|
7748
|
+
),
|
|
7749
|
+
imageStyles: selectByKind(
|
|
7750
|
+
"image-style",
|
|
7751
|
+
options.target,
|
|
7752
|
+
options.prompt,
|
|
7753
|
+
limitPerKind
|
|
7754
|
+
),
|
|
7755
|
+
audioStyles: selectByKind(
|
|
7756
|
+
"audio-style",
|
|
7757
|
+
options.target,
|
|
7758
|
+
options.prompt,
|
|
7759
|
+
limitPerKind
|
|
7760
|
+
),
|
|
7761
|
+
videoTemplates: selectByKind(
|
|
7762
|
+
"video-template",
|
|
7763
|
+
options.target,
|
|
7764
|
+
options.prompt,
|
|
7765
|
+
limitPerKind
|
|
7766
|
+
),
|
|
7767
|
+
bundleTemplates: selectByKind(
|
|
7768
|
+
"bundle-template",
|
|
7769
|
+
options.target,
|
|
7770
|
+
options.prompt,
|
|
7771
|
+
limitPerKind
|
|
7701
7772
|
)
|
|
7702
7773
|
}
|
|
7703
7774
|
};
|
|
@@ -7743,20 +7814,55 @@ function createHtmlArtifactAuthoringPacket(options) {
|
|
|
7743
7814
|
skills: "string[]",
|
|
7744
7815
|
template: "string",
|
|
7745
7816
|
designSystem: "string | null",
|
|
7817
|
+
imageStyle: "string | null",
|
|
7818
|
+
audioStyle: "string | null",
|
|
7819
|
+
videoTemplate: "string | null",
|
|
7820
|
+
bundleTemplate: "string | null",
|
|
7746
7821
|
rationale: "string"
|
|
7747
7822
|
};
|
|
7823
|
+
const artifact = {
|
|
7824
|
+
outputMode: "primary-artifact-with-supporting-assets",
|
|
7825
|
+
primaryArtifact: {
|
|
7826
|
+
kind: options.kind,
|
|
7827
|
+
path: `${outputDir}/index.html`
|
|
7828
|
+
},
|
|
7829
|
+
supportingAssets: [
|
|
7830
|
+
{
|
|
7831
|
+
kind: "image",
|
|
7832
|
+
path: `${outputDir}/assets/`,
|
|
7833
|
+
optional: true
|
|
7834
|
+
},
|
|
7835
|
+
{
|
|
7836
|
+
kind: "audio",
|
|
7837
|
+
path: `${outputDir}/assets/`,
|
|
7838
|
+
optional: true
|
|
7839
|
+
},
|
|
7840
|
+
{
|
|
7841
|
+
kind: "video",
|
|
7842
|
+
path: `${outputDir}/assets/`,
|
|
7843
|
+
optional: true
|
|
7844
|
+
},
|
|
7845
|
+
{
|
|
7846
|
+
kind: "metadata",
|
|
7847
|
+
path: `${outputDir}/metadata.json`,
|
|
7848
|
+
optional: true
|
|
7849
|
+
}
|
|
7850
|
+
],
|
|
7851
|
+
previewKind: "hosted-url",
|
|
7852
|
+
outputDir
|
|
7853
|
+
};
|
|
7748
7854
|
const instructions = [
|
|
7749
7855
|
`# Zero built-in generate ${options.kind}`,
|
|
7750
7856
|
"",
|
|
7751
|
-
"This is
|
|
7857
|
+
"This is a federated generation resource-selection packet for the current agent.",
|
|
7752
7858
|
`Zero is not generating this ${title} on the server. You select resources, resolve them, and author the artifact.`,
|
|
7753
7859
|
"",
|
|
7754
7860
|
"## User Prompt",
|
|
7755
7861
|
options.prompt,
|
|
7756
7862
|
"",
|
|
7757
7863
|
"## Stage 1: Resource Selection",
|
|
7758
|
-
"- Choose
|
|
7759
|
-
"- Select one template, one or more skills,
|
|
7864
|
+
"- Choose generation resources from the bundled federated registry slice below.",
|
|
7865
|
+
"- Select one template, one or more skills, zero or one design system, and optional media/style resources when relevant.",
|
|
7760
7866
|
"- Choose only IDs present in this packet; do not invent registry IDs.",
|
|
7761
7867
|
"- Prefer compatible resources, but the user prompt is the highest-priority signal.",
|
|
7762
7868
|
"- Treat the selection JSON as internal working state, then continue to authoring.",
|
|
@@ -7774,13 +7880,19 @@ function createHtmlArtifactAuthoringPacket(options) {
|
|
|
7774
7880
|
"```",
|
|
7775
7881
|
"",
|
|
7776
7882
|
"## Stage 2: Resolve Selected Resources",
|
|
7777
|
-
"- For every selected resource, fetch or read the referenced
|
|
7883
|
+
"- For every selected resource, fetch or read the referenced source before authoring.",
|
|
7778
7884
|
"- Source refs are pinned as `repo@commit:path`; use the commit in the packet for reproducibility.",
|
|
7779
7885
|
"- For directory refs, inspect the most relevant files such as `SKILL.md`, `DESIGN.md`, `README.md`, tokens, examples, and templates.",
|
|
7780
7886
|
"- If a source file cannot be fetched, state that limitation and fall back to the registry metadata for that resource.",
|
|
7781
7887
|
"",
|
|
7782
7888
|
"## Stage 3: Author Artifact",
|
|
7783
|
-
`Author a production-quality ${title} as a static HTML artifact using the selected
|
|
7889
|
+
`Author a production-quality ${title} as a static HTML artifact using the selected generation resources.`,
|
|
7890
|
+
"",
|
|
7891
|
+
"## Artifact Output Model",
|
|
7892
|
+
`- Primary artifact: \`${artifact.primaryArtifact.kind}\` at \`${artifact.primaryArtifact.path}\`.`,
|
|
7893
|
+
`- Output mode: \`${artifact.outputMode}\`.`,
|
|
7894
|
+
"- Supporting images, audio, video, or metadata may live inside the same output directory when the result needs them.",
|
|
7895
|
+
"- Treat the output directory as a project bundle when multiple media types are generated, while keeping the HTML entry point primary.",
|
|
7784
7896
|
"",
|
|
7785
7897
|
"## Output Contract",
|
|
7786
7898
|
`- Write the artifact under \`${outputDir}/\`.`,
|
|
@@ -7807,6 +7919,8 @@ function createHtmlArtifactAuthoringPacket(options) {
|
|
|
7807
7919
|
}),
|
|
7808
7920
|
"",
|
|
7809
7921
|
"## Verification",
|
|
7922
|
+
"- Use `agent-browser` for browser verification when available. Start with `agent-browser skills get core` if you need command guidance.",
|
|
7923
|
+
"- Prefer `agent-browser` over Playwright, Puppeteer, or installing browser automation dependencies.",
|
|
7810
7924
|
"- Open the HTML locally and verify it is nonblank.",
|
|
7811
7925
|
"- Check that keyboard/click interactions work when present.",
|
|
7812
7926
|
"- Check that text does not overflow or overlap at desktop and mobile viewport sizes.",
|
|
@@ -7824,6 +7938,7 @@ function createHtmlArtifactAuthoringPacket(options) {
|
|
|
7824
7938
|
kind: options.kind,
|
|
7825
7939
|
prompt: options.prompt,
|
|
7826
7940
|
registryVersion: candidateSlice.registryVersion,
|
|
7941
|
+
artifact,
|
|
7827
7942
|
selection: {
|
|
7828
7943
|
candidates: candidateSlice.candidates,
|
|
7829
7944
|
outputSchema: selectionSchema
|
|
@@ -9760,7 +9875,7 @@ function registerZeroCommands(prog, commands) {
|
|
|
9760
9875
|
var program = new Command();
|
|
9761
9876
|
program.name("zero").description(
|
|
9762
9877
|
"Zero CLI \u2014 interact with the zero platform from inside the sandbox"
|
|
9763
|
-
).version("9.
|
|
9878
|
+
).version("9.163.0").addHelpText("after", () => {
|
|
9764
9879
|
return buildZeroHelpText();
|
|
9765
9880
|
});
|
|
9766
9881
|
if (process.argv[1]?.endsWith("zero.js") || process.argv[1]?.endsWith("zero.ts") || process.argv[1]?.endsWith("zero")) {
|