@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.
- package/index.js +119 -45
- 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.
|
|
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.
|
|
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.
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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
|
|
9606
|
-
var cliAgentNameSchema =
|
|
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:
|
|
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 =
|
|
9631
|
-
version:
|
|
9632
|
-
agents:
|
|
9633
|
-
volumes:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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((
|
|
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((
|
|
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((
|
|
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((
|
|
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((
|
|
18429
|
-
title:
|
|
18430
|
-
value:
|
|
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((
|
|
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.
|
|
18792
|
-
console.log(chalk86.green(`\u2713 Already up to date (${"9.
|
|
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.
|
|
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.
|
|
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.
|
|
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);
|