@vm0/runner 2.8.3 → 2.8.5
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 +65 -38
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -12,6 +12,15 @@ import { dirname, join } from "path";
|
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
import fs from "fs";
|
|
14
14
|
import yaml from "yaml";
|
|
15
|
+
var SANDBOX_DEFAULTS = {
|
|
16
|
+
max_concurrent: 1,
|
|
17
|
+
vcpu: 2,
|
|
18
|
+
memory_mb: 2048,
|
|
19
|
+
poll_interval_ms: 5e3
|
|
20
|
+
};
|
|
21
|
+
var PROXY_DEFAULTS = {
|
|
22
|
+
port: 8080
|
|
23
|
+
};
|
|
15
24
|
var runnerConfigSchema = z.object({
|
|
16
25
|
name: z.string().min(1, "Name is required"),
|
|
17
26
|
group: z.string().regex(
|
|
@@ -23,58 +32,45 @@ var runnerConfigSchema = z.object({
|
|
|
23
32
|
token: z.string().min(1, "Server token is required")
|
|
24
33
|
}),
|
|
25
34
|
sandbox: z.object({
|
|
26
|
-
max_concurrent: z.number().int().min(1).default(
|
|
27
|
-
vcpu: z.number().int().min(1).default(
|
|
28
|
-
memory_mb: z.number().int().min(128).default(
|
|
29
|
-
poll_interval_ms: z.number().int().min(1e3).default(
|
|
30
|
-
}).default(
|
|
31
|
-
max_concurrent: 1,
|
|
32
|
-
vcpu: 2,
|
|
33
|
-
memory_mb: 2048,
|
|
34
|
-
poll_interval_ms: 5e3
|
|
35
|
-
}),
|
|
35
|
+
max_concurrent: z.number().int().min(1).default(SANDBOX_DEFAULTS.max_concurrent),
|
|
36
|
+
vcpu: z.number().int().min(1).default(SANDBOX_DEFAULTS.vcpu),
|
|
37
|
+
memory_mb: z.number().int().min(128).default(SANDBOX_DEFAULTS.memory_mb),
|
|
38
|
+
poll_interval_ms: z.number().int().min(1e3).default(SANDBOX_DEFAULTS.poll_interval_ms)
|
|
39
|
+
}).default(SANDBOX_DEFAULTS),
|
|
36
40
|
firecracker: z.object({
|
|
37
41
|
binary: z.string().min(1, "Firecracker binary path is required"),
|
|
38
42
|
kernel: z.string().min(1, "Kernel path is required"),
|
|
39
43
|
rootfs: z.string().min(1, "Rootfs path is required")
|
|
40
44
|
}),
|
|
41
45
|
proxy: z.object({
|
|
42
|
-
port: z.number().int().min(1024).max(65535).default(
|
|
43
|
-
}).default(
|
|
44
|
-
port: 8080
|
|
45
|
-
})
|
|
46
|
+
port: z.number().int().min(1024).max(65535).default(PROXY_DEFAULTS.port)
|
|
47
|
+
}).default(PROXY_DEFAULTS)
|
|
46
48
|
});
|
|
49
|
+
var DEBUG_SERVER_DEFAULTS = {
|
|
50
|
+
url: "http://localhost:3000",
|
|
51
|
+
token: "debug-token"
|
|
52
|
+
};
|
|
47
53
|
var debugConfigSchema = z.object({
|
|
48
54
|
name: z.string().default("debug-runner"),
|
|
49
55
|
group: z.string().default("debug/local"),
|
|
50
56
|
server: z.object({
|
|
51
|
-
url: z.string().url().default(
|
|
52
|
-
token: z.string().default(
|
|
53
|
-
}).default(
|
|
54
|
-
url: "http://localhost:3000",
|
|
55
|
-
token: "debug-token"
|
|
56
|
-
}),
|
|
57
|
+
url: z.string().url().default(DEBUG_SERVER_DEFAULTS.url),
|
|
58
|
+
token: z.string().default(DEBUG_SERVER_DEFAULTS.token)
|
|
59
|
+
}).default(DEBUG_SERVER_DEFAULTS),
|
|
57
60
|
sandbox: z.object({
|
|
58
|
-
max_concurrent: z.number().int().min(1).default(
|
|
59
|
-
vcpu: z.number().int().min(1).default(
|
|
60
|
-
memory_mb: z.number().int().min(128).default(
|
|
61
|
-
poll_interval_ms: z.number().int().min(1e3).default(
|
|
62
|
-
}).default(
|
|
63
|
-
max_concurrent: 1,
|
|
64
|
-
vcpu: 2,
|
|
65
|
-
memory_mb: 2048,
|
|
66
|
-
poll_interval_ms: 5e3
|
|
67
|
-
}),
|
|
61
|
+
max_concurrent: z.number().int().min(1).default(SANDBOX_DEFAULTS.max_concurrent),
|
|
62
|
+
vcpu: z.number().int().min(1).default(SANDBOX_DEFAULTS.vcpu),
|
|
63
|
+
memory_mb: z.number().int().min(128).default(SANDBOX_DEFAULTS.memory_mb),
|
|
64
|
+
poll_interval_ms: z.number().int().min(1e3).default(SANDBOX_DEFAULTS.poll_interval_ms)
|
|
65
|
+
}).default(SANDBOX_DEFAULTS),
|
|
68
66
|
firecracker: z.object({
|
|
69
67
|
binary: z.string().min(1, "Firecracker binary path is required"),
|
|
70
68
|
kernel: z.string().min(1, "Kernel path is required"),
|
|
71
69
|
rootfs: z.string().min(1, "Rootfs path is required")
|
|
72
70
|
}),
|
|
73
71
|
proxy: z.object({
|
|
74
|
-
port: z.number().int().min(1024).max(65535).default(
|
|
75
|
-
}).default(
|
|
76
|
-
port: 8080
|
|
77
|
-
})
|
|
72
|
+
port: z.number().int().min(1024).max(65535).default(PROXY_DEFAULTS.port)
|
|
73
|
+
}).default(PROXY_DEFAULTS)
|
|
78
74
|
});
|
|
79
75
|
function loadDebugConfig(configPath) {
|
|
80
76
|
if (!fs.existsSync(configPath)) {
|
|
@@ -6379,11 +6375,19 @@ var scheduleResponseSchema = z15.object({
|
|
|
6379
6375
|
volumeVersions: z15.record(z15.string(), z15.string()).nullable(),
|
|
6380
6376
|
enabled: z15.boolean(),
|
|
6381
6377
|
nextRunAt: z15.string().nullable(),
|
|
6382
|
-
lastRunAt: z15.string().nullable(),
|
|
6383
|
-
lastRunId: z15.string().nullable(),
|
|
6384
6378
|
createdAt: z15.string(),
|
|
6385
6379
|
updatedAt: z15.string()
|
|
6386
6380
|
});
|
|
6381
|
+
var runSummarySchema = z15.object({
|
|
6382
|
+
id: z15.string().uuid(),
|
|
6383
|
+
status: z15.enum(["pending", "running", "completed", "failed", "timeout"]),
|
|
6384
|
+
createdAt: z15.string(),
|
|
6385
|
+
completedAt: z15.string().nullable(),
|
|
6386
|
+
error: z15.string().nullable()
|
|
6387
|
+
});
|
|
6388
|
+
var scheduleRunsResponseSchema = z15.object({
|
|
6389
|
+
runs: z15.array(runSummarySchema)
|
|
6390
|
+
});
|
|
6387
6391
|
var scheduleListResponseSchema = z15.object({
|
|
6388
6392
|
schedules: z15.array(scheduleResponseSchema)
|
|
6389
6393
|
});
|
|
@@ -6512,6 +6516,29 @@ var schedulesEnableContract = c11.router({
|
|
|
6512
6516
|
summary: "Disable schedule"
|
|
6513
6517
|
}
|
|
6514
6518
|
});
|
|
6519
|
+
var scheduleRunsContract = c11.router({
|
|
6520
|
+
/**
|
|
6521
|
+
* GET /api/agent/schedules/:name/runs
|
|
6522
|
+
* List recent runs for a schedule
|
|
6523
|
+
*/
|
|
6524
|
+
listRuns: {
|
|
6525
|
+
method: "GET",
|
|
6526
|
+
path: "/api/agent/schedules/:name/runs",
|
|
6527
|
+
pathParams: z15.object({
|
|
6528
|
+
name: z15.string().min(1, "Schedule name required")
|
|
6529
|
+
}),
|
|
6530
|
+
query: z15.object({
|
|
6531
|
+
composeId: z15.string().uuid("Compose ID required"),
|
|
6532
|
+
limit: z15.coerce.number().min(0).max(100).default(5)
|
|
6533
|
+
}),
|
|
6534
|
+
responses: {
|
|
6535
|
+
200: scheduleRunsResponseSchema,
|
|
6536
|
+
401: apiErrorSchema,
|
|
6537
|
+
404: apiErrorSchema
|
|
6538
|
+
},
|
|
6539
|
+
summary: "List recent runs for a schedule"
|
|
6540
|
+
}
|
|
6541
|
+
});
|
|
6515
6542
|
|
|
6516
6543
|
// ../../packages/core/src/contracts/public/common.ts
|
|
6517
6544
|
import { z as z16 } from "zod";
|
|
@@ -9721,7 +9748,7 @@ from mitmproxy import http, ctx, tls
|
|
|
9721
9748
|
# VM0 Proxy configuration from environment
|
|
9722
9749
|
API_URL = os.environ.get("VM0_API_URL", "https://www.vm0.ai")
|
|
9723
9750
|
REGISTRY_PATH = os.environ.get("VM0_REGISTRY_PATH", "/tmp/vm0-vm-registry.json")
|
|
9724
|
-
VERCEL_BYPASS = os.environ.get("
|
|
9751
|
+
VERCEL_BYPASS = os.environ.get("VERCEL_AUTOMATION_BYPASS_SECRET", "")
|
|
9725
9752
|
|
|
9726
9753
|
# Construct proxy URL
|
|
9727
9754
|
PROXY_URL = f"{API_URL}/api/webhooks/agent/proxy"
|
|
@@ -11300,7 +11327,7 @@ var benchmarkCommand = new Command3("benchmark").description(
|
|
|
11300
11327
|
});
|
|
11301
11328
|
|
|
11302
11329
|
// src/index.ts
|
|
11303
|
-
var version = true ? "2.8.
|
|
11330
|
+
var version = true ? "2.8.5" : "0.1.0";
|
|
11304
11331
|
program.name("vm0-runner").version(version).description("Self-hosted runner for VM0 agents");
|
|
11305
11332
|
program.addCommand(startCommand);
|
|
11306
11333
|
program.addCommand(statusCommand);
|