@multiplayer-app/sandbox 1.0.0-wip-yjs-state-changes.0 → 2.0.0-wip-yjs-state-changes.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/README.md CHANGED
@@ -8,12 +8,35 @@ WebSocket, so the worker needs **no inbound ports**.
8
8
  Supported engines (auto-detected): `qemu`, `firecracker`, `docker`, `docker-sandbox`,
9
9
  `lambda-microvm`, `fargate`, `remote`, and `mock`.
10
10
 
11
- `vm-gateway` imports this package directly and runs the worker in-process (see
12
- `services/vm-gateway/src/index.ts`) there is no standalone worker service or CLI
13
- `start` command. Engine configuration is entirely env-driven and auto-detected —
11
+ `vm-gateway` can import this package directly and run the worker in-process (see
12
+ `services/vm-gateway/src/index.ts`). The published package also installs a standalone
13
+ `sandbox` executable. Engine configuration is env-driven and auto-detected —
14
14
  `WORKER_ID`, `WORKER_TOKEN`, `SANDBOX_URL`, `MAX_VMS`, `WORKER_REGION`, plus per-engine
15
15
  vars like `QEMU_IMAGES_DIR`, `DOCKER_STACK_IMAGES`, `MICROVM_IMAGE_ARN`,
16
16
  `FARGATE_CLUSTER`, `AGENT_URL` — see `src/config.ts` for the full list.
17
+ `WORKER_TOKEN` is required. `WORKER_ID` is optional and defaults to the machine
18
+ hostname; set it explicitly when multiple workers could report the same hostname.
19
+ `SANDBOX_URL` is optional and defaults to
20
+ `https://api.sandbox.filingramp.com`; set it explicitly for local or self-hosted
21
+ control planes.
22
+
23
+ ## Start a worker
24
+
25
+ Install the package globally and start the worker with its authentication token:
26
+
27
+ ```sh
28
+ npm install --global @multiplayer-app/sandbox
29
+ WORKER_TOKEN=<token> sandbox start
30
+ ```
31
+
32
+ The worker ID defaults to the hostname and the control-plane URL defaults to
33
+ `https://api.sandbox.filingramp.com`. Both can be overridden with environment
34
+ variables or flags:
35
+
36
+ ```sh
37
+ sandbox start --token <token> --worker-id worker-eu-01 \
38
+ --sandbox-url http://localhost:3011 --max-vms 5
39
+ ```
17
40
 
18
41
  For the `qemu` engine, the host needs QEMU (`qemu-system-*`) installed; for
19
42
  `firecracker`, a Linux host with `/dev/kvm`; for `docker`, just a running Docker
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,eAAe,CAAA"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAIA,OAAO,eAAe,CAAA"}
package/dist/cli.js CHANGED
@@ -2,20 +2,58 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  /* eslint-disable no-console -- console output is the CLI's user interface */
5
- // Ops CLI for the worker library image management and engine probing only. Running the
6
- // worker itself is vm-gateway's job now (it imports this package directly and connects to
7
- // sandbox in-process); invoke via `pnpm --filter @multiplayer-app/sandbox run cli -- <args>`.
5
+ // Worker CLI. Published as the global `sandbox` executable and also available locally via
6
+ // `pnpm --filter @multiplayer-app/sandbox run cli -- <args>`.
8
7
  require("dotenv/config");
9
8
  const commander_1 = require("commander");
10
9
  const package_json_1 = require("../package.json");
11
10
  const config_1 = require("./config");
11
+ const executor_1 = require("./executor");
12
12
  const detect_1 = require("./executor/detect");
13
13
  const images_1 = require("./images");
14
+ const socket_client_1 = require("./socket-client");
15
+ const console_relays_1 = require("./console-relays");
14
16
  const program = new commander_1.Command();
15
17
  program
16
- .name('worker-cli')
17
- .description('Multiplayer Builder VM worker ops engine probing and base-image management')
18
+ .name('sandbox')
19
+ .description('Run and manage a Multiplayer sandbox worker')
18
20
  .version(package_json_1.version);
21
+ program
22
+ .command('start')
23
+ .description('start a worker and connect it to the sandbox control plane')
24
+ .option('--token <token>', 'worker authentication token (env: WORKER_TOKEN)')
25
+ .option('--worker-id <id>', 'stable worker ID (env: WORKER_ID; default: hostname)')
26
+ .option('--sandbox-url <url>', 'control-plane URL (env: SANDBOX_URL; default: https://api.sandbox.filingramp.com)')
27
+ .option('--max-vms <count>', 'maximum concurrent VMs (env: MAX_VMS)')
28
+ .action(async (opts) => {
29
+ const config = (0, config_1.loadWorkerConfigFromEnv)({
30
+ ...process.env,
31
+ ...(opts.token ? { WORKER_TOKEN: opts.token } : {}),
32
+ ...(opts.workerId ? { WORKER_ID: opts.workerId } : {}),
33
+ ...(opts.sandboxUrl ? { SANDBOX_URL: opts.sandboxUrl } : {}),
34
+ ...(opts.maxVms ? { MAX_VMS: opts.maxVms } : {}),
35
+ });
36
+ const executor = (0, executor_1.createExecutor)(config);
37
+ const socket = (0, socket_client_1.connectToSandbox)(config, executor);
38
+ (0, console_relays_1.attachConsoleRelays)(executor, socket);
39
+ let stopping = false;
40
+ const stop = async (signal) => {
41
+ if (stopping)
42
+ return;
43
+ stopping = true;
44
+ console.log(`\n${signal} received; shutting down sandbox worker...`);
45
+ socket.disconnect();
46
+ const results = await Promise.allSettled(executor.list().map((vm) => executor.destroy(vm.vmId)));
47
+ const failed = results.filter((result) => result.status === 'rejected');
48
+ if (failed.length)
49
+ console.error(`Failed to destroy ${failed.length} VM(s) during shutdown`);
50
+ process.exit(failed.length ? 1 : 0);
51
+ };
52
+ process.once('SIGINT', () => { void stop('SIGINT'); });
53
+ process.once('SIGTERM', () => { void stop('SIGTERM'); });
54
+ console.log(`Starting sandbox worker ${config.workerId} → ${config.sandboxUrl}`);
55
+ // Socket.IO's reconnect timers keep the process alive until a termination signal arrives.
56
+ });
19
57
  program
20
58
  .command('detect')
21
59
  .description('probe this host and report which micro-VM engines it can run')
@@ -43,7 +81,7 @@ images
43
81
  const files = await (0, images_1.pullImages)({ location: opts.from, arch: opts.arch, stacks: opts.stack, endpoint: opts.endpoint }, dest);
44
82
  for (const file of files)
45
83
  console.log(`pulled ${file}`);
46
- console.log('\nbase images ready — "worker-cli detect" shows which engines they enable');
84
+ console.log('\nbase images ready — "sandbox detect" shows which engines they enable');
47
85
  });
48
86
  images
49
87
  .command('push')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -33,65 +33,65 @@ function parseArnList(raw) {
33
33
  return arns.length ? arns : undefined;
34
34
  }
35
35
  function loadWorkerConfigFromEnv(env = process.env) {
36
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
37
- const workerId = env.WORKER_ID;
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
37
+ const workerId = ((_a = env.WORKER_ID) === null || _a === void 0 ? void 0 : _a.trim()) || os_1.default.hostname();
38
38
  const token = env.WORKER_TOKEN;
39
- if (!workerId || !token) {
40
- throw new Error('WORKER_ID and WORKER_TOKEN are required');
39
+ if (!token) {
40
+ throw new Error('WORKER_TOKEN is required');
41
41
  }
42
42
  return {
43
43
  workerId,
44
44
  token,
45
- sandboxUrl: (_a = env.SANDBOX_URL) !== null && _a !== void 0 ? _a : 'http://localhost:3011',
46
- workerSocketPath: (_b = env.WORKER_SOCKET_PATH) !== null && _b !== void 0 ? _b : '/v0/sapi/workers/ws',
45
+ sandboxUrl: (_b = env.SANDBOX_URL) !== null && _b !== void 0 ? _b : 'https://api.sandbox.filingramp.com',
46
+ workerSocketPath: (_c = env.WORKER_SOCKET_PATH) !== null && _c !== void 0 ? _c : '/v0/sapi/workers/ws',
47
47
  maxVms: Number(env.MAX_VMS) || 10,
48
48
  region: env.WORKER_REGION,
49
49
  remote: {
50
50
  // No default: an unset AGENT_URL means the remote engine is not configured on this worker
51
- agentUrl: (_c = env.AGENT_URL) !== null && _c !== void 0 ? _c : '',
51
+ agentUrl: (_d = env.AGENT_URL) !== null && _d !== void 0 ? _d : '',
52
52
  authToken: env.AGENT_TOKEN,
53
53
  },
54
54
  firecracker: {
55
- bin: (_d = env.FIRECRACKER_BIN) !== null && _d !== void 0 ? _d : 'firecracker',
55
+ bin: (_e = env.FIRECRACKER_BIN) !== null && _e !== void 0 ? _e : 'firecracker',
56
56
  // Per-stack base images (<imagesDir>/<stack>/vmlinuz + initramfs.img) from
57
57
  // `worker-cli images pull` / setup-vm-images.sh; engine detection checks
58
58
  // existence, so missing images just disable the engine.
59
- imagesDir: (_f = (_e = env.FIRECRACKER_IMAGES_DIR) !== null && _e !== void 0 ? _e : env.VM_IMAGES_DIR) !== null && _f !== void 0 ? _f : (0, images_1.defaultImagesDir)(),
59
+ imagesDir: (_g = (_f = env.FIRECRACKER_IMAGES_DIR) !== null && _f !== void 0 ? _f : env.VM_IMAGES_DIR) !== null && _g !== void 0 ? _g : (0, images_1.defaultImagesDir)(),
60
60
  // Explicit single-image override, applied to every stack when both are set
61
61
  kernelPath: env.FIRECRACKER_KERNEL,
62
62
  initrdPath: env.FIRECRACKER_INITRD,
63
- vmDataPath: (_g = env.FIRECRACKER_VM_DATA) !== null && _g !== void 0 ? _g : path_1.default.join(os_1.default.tmpdir(), 'firecracker-vms'),
63
+ vmDataPath: (_h = env.FIRECRACKER_VM_DATA) !== null && _h !== void 0 ? _h : path_1.default.join(os_1.default.tmpdir(), 'firecracker-vms'),
64
64
  },
65
65
  lambdaMicrovm: {
66
- region: (_h = env.MICROVM_AWS_REGION) !== null && _h !== void 0 ? _h : env.AWS_REGION,
67
- imageArn: (_j = env.MICROVM_IMAGE_ARN) !== null && _j !== void 0 ? _j : '',
66
+ region: (_j = env.MICROVM_AWS_REGION) !== null && _j !== void 0 ? _j : env.AWS_REGION,
67
+ imageArn: (_k = env.MICROVM_IMAGE_ARN) !== null && _k !== void 0 ? _k : '',
68
68
  stackImageArns: parseStackMap(env.MICROVM_STACK_IMAGE_ARNS),
69
69
  ingressConnectorArns: parseArnList(env.MICROVM_INGRESS_CONNECTORS),
70
70
  egressConnectorArns: parseArnList(env.MICROVM_EGRESS_CONNECTORS),
71
71
  executionRoleArn: env.MICROVM_EXECUTION_ROLE_ARN,
72
72
  // 0 disables auto-suspend; the sandbox drives pause/resume explicitly by default
73
- maxIdleSeconds: Number((_k = env.MICROVM_MAX_IDLE_SECONDS) !== null && _k !== void 0 ? _k : 900),
74
- suspendedDurationSeconds: Number((_l = env.MICROVM_SUSPENDED_DURATION_SECONDS) !== null && _l !== void 0 ? _l : 28800),
75
- maximumDurationInSeconds: Number((_m = env.MICROVM_MAX_DURATION_SECONDS) !== null && _m !== void 0 ? _m : 28800),
73
+ maxIdleSeconds: Number((_l = env.MICROVM_MAX_IDLE_SECONDS) !== null && _l !== void 0 ? _l : 900),
74
+ suspendedDurationSeconds: Number((_m = env.MICROVM_SUSPENDED_DURATION_SECONDS) !== null && _m !== void 0 ? _m : 28800),
75
+ maximumDurationInSeconds: Number((_o = env.MICROVM_MAX_DURATION_SECONDS) !== null && _o !== void 0 ? _o : 28800),
76
76
  },
77
77
  fargate: {
78
- region: (_o = env.FARGATE_AWS_REGION) !== null && _o !== void 0 ? _o : env.AWS_REGION,
79
- cluster: (_p = env.FARGATE_CLUSTER) !== null && _p !== void 0 ? _p : '',
78
+ region: (_p = env.FARGATE_AWS_REGION) !== null && _p !== void 0 ? _p : env.AWS_REGION,
79
+ cluster: (_q = env.FARGATE_CLUSTER) !== null && _q !== void 0 ? _q : '',
80
80
  taskDefinition: env.FARGATE_TASK_DEFINITION,
81
81
  // Per-stack task definitions: "node:builder-node:3,python:builder-python:1"
82
82
  stackTaskDefinitions: parseStackMap(env.FARGATE_STACK_TASK_DEFS),
83
- subnets: (_r = (_q = env.FARGATE_SUBNETS) === null || _q === void 0 ? void 0 : _q.split(',').map((s) => s.trim()).filter(Boolean)) !== null && _r !== void 0 ? _r : [],
84
- securityGroups: (_s = env.FARGATE_SECURITY_GROUPS) === null || _s === void 0 ? void 0 : _s.split(',').map((s) => s.trim()).filter(Boolean),
83
+ subnets: (_s = (_r = env.FARGATE_SUBNETS) === null || _r === void 0 ? void 0 : _r.split(',').map((s) => s.trim()).filter(Boolean)) !== null && _s !== void 0 ? _s : [],
84
+ securityGroups: (_t = env.FARGATE_SECURITY_GROUPS) === null || _t === void 0 ? void 0 : _t.split(',').map((s) => s.trim()).filter(Boolean),
85
85
  // ENABLED when the worker runs outside the task VPC (proxies to the task's public IP)
86
86
  assignPublicIp: env.FARGATE_ASSIGN_PUBLIC_IP === 'true',
87
87
  guestPort: Number(env.FARGATE_GUEST_PORT) || 8080,
88
88
  startTimeoutMs: Number(env.FARGATE_START_TIMEOUT_MS) || 180000,
89
89
  },
90
90
  docker: {
91
- bin: (_t = env.DOCKER_BIN) !== null && _t !== void 0 ? _t : 'docker',
91
+ bin: (_u = env.DOCKER_BIN) !== null && _u !== void 0 ? _u : 'docker',
92
92
  // Local images from `scripts/setup-docker-images.sh`: <imagePrefix>-<stack>:<imageTag>
93
- imagePrefix: (_u = env.DOCKER_IMAGE_PREFIX) !== null && _u !== void 0 ? _u : 'multiplayer-builder-vm',
94
- imageTag: (_v = env.DOCKER_IMAGE_TAG) !== null && _v !== void 0 ? _v : 'local',
93
+ imagePrefix: (_v = env.DOCKER_IMAGE_PREFIX) !== null && _v !== void 0 ? _v : 'multiplayer-builder-vm',
94
+ imageTag: (_w = env.DOCKER_IMAGE_TAG) !== null && _w !== void 0 ? _w : 'local',
95
95
  stackImages: parseStackMap(env.DOCKER_STACK_IMAGES),
96
96
  network: env.DOCKER_NETWORK,
97
97
  portRangeStart: Number(env.DOCKER_PORT_MIN) || 9100,
@@ -99,11 +99,11 @@ function loadWorkerConfigFromEnv(env = process.env) {
99
99
  guestPort: Number(env.DOCKER_GUEST_PORT) || 8080,
100
100
  },
101
101
  dockerSandbox: {
102
- bin: (_w = env.SBX_BIN) !== null && _w !== void 0 ? _w : 'sbx',
102
+ bin: (_x = env.SBX_BIN) !== null && _x !== void 0 ? _x : 'sbx',
103
103
  // Bridged from the same local images `docker` (imagePrefix-imageTag) already uses —
104
104
  // `docker save` + `sbx template load`, see docker-sandbox-executor.ts.
105
- imagePrefix: (_x = env.SBX_IMAGE_PREFIX) !== null && _x !== void 0 ? _x : 'multiplayer-builder-vm',
106
- imageTag: (_y = env.SBX_IMAGE_TAG) !== null && _y !== void 0 ? _y : 'local',
105
+ imagePrefix: (_y = env.SBX_IMAGE_PREFIX) !== null && _y !== void 0 ? _y : 'multiplayer-builder-vm',
106
+ imageTag: (_z = env.SBX_IMAGE_TAG) !== null && _z !== void 0 ? _z : 'local',
107
107
  stackTemplates: parseStackMap(env.SBX_STACK_TEMPLATES),
108
108
  // `sbx create shell` doesn't run the image's own CMD, so the engine launches
109
109
  // it explicitly — defaults match each Dockerfile's own WORKDIR /app + CMD.
@@ -113,7 +113,7 @@ function loadWorkerConfigFromEnv(env = process.env) {
113
113
  static: 'node app.js',
114
114
  ...parseStackMap(env.SBX_STACK_AGENT_COMMANDS),
115
115
  },
116
- workspaceRoot: (_z = env.SBX_WORKSPACE_DIR) !== null && _z !== void 0 ? _z : path_1.default.join(os_1.default.tmpdir(), 'sbx-vms'),
116
+ workspaceRoot: (_0 = env.SBX_WORKSPACE_DIR) !== null && _0 !== void 0 ? _0 : path_1.default.join(os_1.default.tmpdir(), 'sbx-vms'),
117
117
  portRangeStart: Number(env.SBX_PORT_MIN) || 9200,
118
118
  portRangeEnd: Number(env.SBX_PORT_MAX) || 9299,
119
119
  guestPort: Number(env.SBX_GUEST_PORT) || 8080,
@@ -121,23 +121,23 @@ function loadWorkerConfigFromEnv(env = process.env) {
121
121
  minMemoryMib: Number(env.SBX_MIN_MEMORY_MIB) || 1024,
122
122
  },
123
123
  qemu: {
124
- bin: (_0 = env.QEMU_BIN) !== null && _0 !== void 0 ? _0 : 'qemu-system-aarch64',
124
+ bin: (_1 = env.QEMU_BIN) !== null && _1 !== void 0 ? _1 : 'qemu-system-aarch64',
125
125
  // Per-stack base images (<imagesDir>/<stack>/vmlinuz + initramfs.img) from
126
126
  // `worker-cli images pull` / setup-vm-images.sh; engine detection checks
127
127
  // existence, so missing images just disable the engine.
128
- imagesDir: (_2 = (_1 = env.QEMU_IMAGES_DIR) !== null && _1 !== void 0 ? _1 : env.VM_IMAGES_DIR) !== null && _2 !== void 0 ? _2 : (0, images_1.defaultImagesDir)(),
128
+ imagesDir: (_3 = (_2 = env.QEMU_IMAGES_DIR) !== null && _2 !== void 0 ? _2 : env.VM_IMAGES_DIR) !== null && _3 !== void 0 ? _3 : (0, images_1.defaultImagesDir)(),
129
129
  // Explicit single-image override, applied to every stack when both are set
130
130
  kernelPath: env.QEMU_KERNEL,
131
131
  initrdPath: env.QEMU_INITRD,
132
- vmDataPath: (_3 = env.QEMU_VM_DATA) !== null && _3 !== void 0 ? _3 : path_1.default.join(os_1.default.tmpdir(), 'qemu-vms'),
132
+ vmDataPath: (_4 = env.QEMU_VM_DATA) !== null && _4 !== void 0 ? _4 : path_1.default.join(os_1.default.tmpdir(), 'qemu-vms'),
133
133
  portRangeStart: Number(env.QEMU_PORT_MIN) || 9000,
134
134
  portRangeEnd: Number(env.QEMU_PORT_MAX) || 9999,
135
135
  // Accelerator: hvf (macOS host), kvm (Linux + /dev/kvm), tcg (software, any host — slow)
136
- accel: (_4 = env.QEMU_ACCEL) !== null && _4 !== void 0 ? _4 : (process.platform === 'darwin' ? 'hvf' : 'kvm'),
136
+ accel: (_5 = env.QEMU_ACCEL) !== null && _5 !== void 0 ? _5 : (process.platform === 'darwin' ? 'hvf' : 'kvm'),
137
137
  // CPU model: host requires hvf/kvm; max is best for tcg on aarch64; qemu64 for tcg x86_64
138
- cpu: (_5 = env.QEMU_CPU) !== null && _5 !== void 0 ? _5 : 'host',
138
+ cpu: (_6 = env.QEMU_CPU) !== null && _6 !== void 0 ? _6 : 'host',
139
139
  // Machine type: virt (aarch64), q35 (x86_64)
140
- machine: (_6 = env.QEMU_MACHINE) !== null && _6 !== void 0 ? _6 : 'virt',
140
+ machine: (_7 = env.QEMU_MACHINE) !== null && _7 !== void 0 ? _7 : 'virt',
141
141
  },
142
142
  };
143
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAuHA,0DA4GC;AAnOD,4CAAmB;AACnB,gDAAuB;AACvB,kDAA2D;AAGlD,+FAHW,sBAAc,OAGX;AAFvB,qCAA2C;AAgG3C,2GAA2G;AAC3G,SAAS,aAAa,CAAC,GAAuB;IAC5C,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IACpB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAQ;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACtC,IAAI,KAAK,IAAI,GAAG;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IACpC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACvC,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAAyB,OAAO,CAAC,GAAG;;IAC1E,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAA;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAA;IAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK;QACL,UAAU,EAAE,MAAA,GAAG,CAAC,WAAW,mCAAI,uBAAuB;QACtD,gBAAgB,EAAE,MAAA,GAAG,CAAC,kBAAkB,mCAAI,qBAAqB;QACjE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,GAAG,CAAC,aAAa;QACzB,MAAM,EAAE;YACN,0FAA0F;YAC1F,QAAQ,EAAE,MAAA,GAAG,CAAC,SAAS,mCAAI,EAAE;YAC7B,SAAS,EAAE,GAAG,CAAC,WAAW;SAC3B;QACD,WAAW,EAAE;YACX,GAAG,EAAE,MAAA,GAAG,CAAC,eAAe,mCAAI,aAAa;YACzC,2EAA2E;YAC3E,yEAAyE;YACzE,wDAAwD;YACxD,SAAS,EAAE,MAAA,MAAA,GAAG,CAAC,sBAAsB,mCAAI,GAAG,CAAC,aAAa,mCAAI,IAAA,yBAAgB,GAAE;YAChF,2EAA2E;YAC3E,UAAU,EAAE,GAAG,CAAC,kBAAkB;YAClC,UAAU,EAAE,GAAG,CAAC,kBAAkB;YAClC,UAAU,EAAE,MAAA,GAAG,CAAC,mBAAmB,mCAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC;SACjF;QACD,aAAa,EAAE;YACb,MAAM,EAAE,MAAA,GAAG,CAAC,kBAAkB,mCAAI,GAAG,CAAC,UAAU;YAChD,QAAQ,EAAE,MAAA,GAAG,CAAC,iBAAiB,mCAAI,EAAE;YACrC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,wBAAwB,CAAC;YAC3D,oBAAoB,EAAE,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAClE,mBAAmB,EAAE,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAChE,gBAAgB,EAAE,GAAG,CAAC,0BAA0B;YAChD,iFAAiF;YACjF,cAAc,EAAE,MAAM,CAAC,MAAA,GAAG,CAAC,wBAAwB,mCAAI,GAAG,CAAC;YAC3D,wBAAwB,EAAE,MAAM,CAAC,MAAA,GAAG,CAAC,kCAAkC,mCAAI,KAAM,CAAC;YAClF,wBAAwB,EAAE,MAAM,CAAC,MAAA,GAAG,CAAC,4BAA4B,mCAAI,KAAM,CAAC;SAC7E;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAA,GAAG,CAAC,kBAAkB,mCAAI,GAAG,CAAC,UAAU;YAChD,OAAO,EAAE,MAAA,GAAG,CAAC,eAAe,mCAAI,EAAE;YAClC,cAAc,EAAE,GAAG,CAAC,uBAAuB;YAC3C,4EAA4E;YAC5E,oBAAoB,EAAE,aAAa,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAChE,OAAO,EAAE,MAAA,MAAA,GAAG,CAAC,eAAe,0CAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,mCAAI,EAAE;YACnF,cAAc,EAAE,MAAA,GAAG,CAAC,uBAAuB,0CAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;YAC5F,sFAAsF;YACtF,cAAc,EAAE,GAAG,CAAC,wBAAwB,KAAK,MAAM;YACvD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI;YACjD,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,MAAO;SAChE;QACD,MAAM,EAAE;YACN,GAAG,EAAE,MAAA,GAAG,CAAC,UAAU,mCAAI,QAAQ;YAC/B,uFAAuF;YACvF,WAAW,EAAE,MAAA,GAAG,CAAC,mBAAmB,mCAAI,wBAAwB;YAChE,QAAQ,EAAE,MAAA,GAAG,CAAC,gBAAgB,mCAAI,OAAO;YACzC,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACnD,OAAO,EAAE,GAAG,CAAC,cAAc;YAC3B,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI;YACnD,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI;YACjD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI;SACjD;QACD,aAAa,EAAE;YACb,GAAG,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,KAAK;YACzB,oFAAoF;YACpF,uEAAuE;YACvE,WAAW,EAAE,MAAA,GAAG,CAAC,gBAAgB,mCAAI,wBAAwB;YAC7D,QAAQ,EAAE,MAAA,GAAG,CAAC,aAAa,mCAAI,OAAO;YACtC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACtD,6EAA6E;YAC7E,2EAA2E;YAC3E,kBAAkB,EAAE;gBAClB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,aAAa;gBACrB,GAAG,aAAa,CAAC,GAAG,CAAC,wBAAwB,CAAC;aAC/C;YACD,aAAa,EAAE,MAAA,GAAG,CAAC,iBAAiB,mCAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;YACzE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;YAChD,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;YAC9C,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI;YAC7C,4CAA4C;YAC5C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI;SACrD;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,MAAA,GAAG,CAAC,QAAQ,mCAAI,qBAAqB;YAC1C,2EAA2E;YAC3E,yEAAyE;YACzE,wDAAwD;YACxD,SAAS,EAAE,MAAA,MAAA,GAAG,CAAC,eAAe,mCAAI,GAAG,CAAC,aAAa,mCAAI,IAAA,yBAAgB,GAAE;YACzE,2EAA2E;YAC3E,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,UAAU,EAAE,MAAA,GAAG,CAAC,YAAY,mCAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC;YAClE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;YACjD,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;YAC/C,yFAAyF;YACzF,KAAK,EAAE,MAAA,GAAG,CAAC,UAAU,mCAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACxE,0FAA0F;YAC1F,GAAG,EAAE,MAAA,GAAG,CAAC,QAAQ,mCAAI,MAAM;YAC3B,6CAA6C;YAC7C,OAAO,EAAE,MAAA,GAAG,CAAC,YAAY,mCAAI,MAAM;SACpC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@multiplayer-app/sandbox",
3
- "version": "1.0.0-wip-yjs-state-changes.0",
4
- "description": "Micro-VM worker library (QEMU, Firecracker, AWS Lambda MicroVM, Fargate) — connects to the Multiplayer sandbox control plane and runs VMs",
3
+ "version": "2.0.0-wip-yjs-state-changes.0",
4
+ "description": "Sandbox worker library and CLI (Docker, QEMU, Firecracker, AWS Lambda MicroVM, Fargate)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "sandbox": "dist/cli.js"
9
+ },
7
10
  "files": [
8
11
  "dist"
9
12
  ],
@@ -28,12 +31,12 @@
28
31
  "typescript": "^6.0.3"
29
32
  },
30
33
  "scripts": {
31
- "build": "tsc --build --force",
34
+ "build": "tsc --build --force && chmod +x dist/cli.js",
32
35
  "clean": "rm -rf ./dist tsconfig.tsbuildinfo",
33
36
  "typecheck": "tsc --noEmit",
34
37
  "lint": "eslint src/**/*.ts --config ../../eslint.config.js",
35
38
  "images:build": "bash scripts/build-base-images.sh",
36
- "cli": "node dist/cli.js",
39
+ "start": "node dist/cli.js",
37
40
  "test": "tsc --build --force && node --test 'dist/**/*.test.js'",
38
41
  "postversion": "git commit -m \"sandbox v$npm_package_version\" -- package.json && git tag \"sandbox-v$npm_package_version\" && git push && git push --tags"
39
42
  }