@sandbank.dev/boxlite 0.3.1 → 0.3.3
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 +9 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +10 -1
- package/dist/local-client.d.ts.map +1 -1
- package/dist/local-client.js +143 -36
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -63,6 +63,15 @@ const { stdout } = await sandbox.exec('echo hello')
|
|
|
63
63
|
await provider.destroy(sandbox.id)
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
### Local OCI rootfs (skip registry pull)
|
|
67
|
+
|
|
68
|
+
If `image` is an absolute path, it is treated as a local OCI layout directory:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// Export image: skopeo copy docker-daemon:myimage:latest oci:~/.boxlite/myimage-oci:latest
|
|
72
|
+
const sandbox = await provider.create({ image: '/Users/you/.boxlite/myimage-oci' })
|
|
73
|
+
```
|
|
74
|
+
|
|
66
75
|
### OAuth2 authentication (remote mode)
|
|
67
76
|
|
|
68
77
|
```typescript
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,YAAY,EAGZ,UAAU,EACV,cAAc,EACd,WAAW,EAIZ,MAAM,oBAAoB,CAAA;AAI3B,OAAO,KAAK,EAAE,oBAAoB,EAA6B,MAAM,YAAY,CAAA;AAoKjF,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,IAAI,aAAY;IACzB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAE9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;gBAEtD,MAAM,EAAE,oBAAoB;IAalC,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,YAAY,EAGZ,UAAU,EACV,cAAc,EACd,WAAW,EAIZ,MAAM,oBAAoB,CAAA;AAI3B,OAAO,KAAK,EAAE,oBAAoB,EAA6B,MAAM,YAAY,CAAA;AAoKjF,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,IAAI,aAAY;IACzB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAE9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;gBAEtD,MAAM,EAAE,oBAAoB;IAalC,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAgD5D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAW/C,aAAa,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA0B1D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C,8EAA8E;IACxE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
package/dist/adapter.js
CHANGED
|
@@ -162,14 +162,23 @@ export class BoxLiteAdapter {
|
|
|
162
162
|
}
|
|
163
163
|
async createSandbox(config) {
|
|
164
164
|
try {
|
|
165
|
+
// If image looks like an absolute path, treat it as a local OCI rootfs
|
|
166
|
+
const isLocalPath = config.image.startsWith('/');
|
|
165
167
|
const box = await this.client.createBox({
|
|
166
|
-
image: config.image,
|
|
168
|
+
...(isLocalPath ? { rootfs_path: config.image } : { image: config.image }),
|
|
167
169
|
cpu: config.resources?.cpu,
|
|
168
170
|
memory_mb: config.resources?.memory,
|
|
171
|
+
disk_size_gb: config.resources?.disk,
|
|
169
172
|
env: config.env,
|
|
170
173
|
auto_remove: false,
|
|
174
|
+
ports: config.ports,
|
|
171
175
|
});
|
|
172
176
|
const portMap = new Map();
|
|
177
|
+
if (config.ports) {
|
|
178
|
+
for (const [hostPort, guestPort] of config.ports) {
|
|
179
|
+
portMap.set(guestPort, hostPort);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
173
182
|
this.portMaps.set(box.id, portMap);
|
|
174
183
|
if (box.status === 'configured' || box.status === 'stopped') {
|
|
175
184
|
await this.client.startBox(box.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-client.d.ts","sourceRoot":"","sources":["../src/local-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,aAAa,EAGb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"local-client.d.ts","sourceRoot":"","sources":["../src/local-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,aAAa,EAGb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AA6XnB;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,CAsRlF"}
|
package/dist/local-client.js
CHANGED
|
@@ -37,36 +37,59 @@ class Bridge:
|
|
|
37
37
|
if self._runtime is not None:
|
|
38
38
|
return
|
|
39
39
|
|
|
40
|
-
#
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
# Create a Boxlite runtime for the custom home_dir, then use SimpleBox
|
|
41
|
+
# with that runtime. SimpleBox's exec is more stable for rapid consecutive
|
|
42
|
+
# calls than Boxlite.create(BoxOptions).exec().
|
|
43
|
+
Options = getattr(boxlite, "Options", None)
|
|
44
|
+
Boxlite = getattr(boxlite, "Boxlite", None)
|
|
45
|
+
if Options and Boxlite:
|
|
45
46
|
try:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
await rt.start()
|
|
49
|
-
self._runtime = rt
|
|
50
|
-
return
|
|
47
|
+
opts = Options(home_dir=self._home)
|
|
48
|
+
self._boxlite_rt = Boxlite(opts)
|
|
51
49
|
except Exception:
|
|
52
|
-
|
|
50
|
+
self._boxlite_rt = None
|
|
51
|
+
else:
|
|
52
|
+
self._boxlite_rt = None
|
|
53
53
|
|
|
54
|
-
#
|
|
54
|
+
# Use SimpleBox with the runtime (handles home_dir correctly)
|
|
55
55
|
self._runtime = "simple_box"
|
|
56
56
|
|
|
57
57
|
async def create(self, params):
|
|
58
58
|
await self._ensure_runtime()
|
|
59
59
|
|
|
60
|
-
image = params
|
|
61
|
-
|
|
62
|
-
for k in ("cpu", "memory_mb", "disk_size_gb", "env", "working_dir"):
|
|
63
|
-
if params.get(k) is not None:
|
|
64
|
-
kwargs[k] = params[k]
|
|
65
|
-
|
|
60
|
+
image = params.get("image", "")
|
|
61
|
+
rootfs = params.get("rootfs_path")
|
|
66
62
|
now = datetime.now(timezone.utc).isoformat()
|
|
67
63
|
|
|
64
|
+
# Normalize env/ports
|
|
65
|
+
env = params.get("env")
|
|
66
|
+
if isinstance(env, dict):
|
|
67
|
+
env = list(env.items())
|
|
68
|
+
ports = params.get("ports")
|
|
69
|
+
if isinstance(ports, list):
|
|
70
|
+
ports = [tuple(p) for p in ports]
|
|
71
|
+
|
|
68
72
|
if self._runtime == "simple_box":
|
|
69
|
-
|
|
73
|
+
# SimpleBox uses: image, memory_mib, cpus, disk_size_gb, env, working_dir
|
|
74
|
+
# rootfs_path overrides image when provided (local OCI layout directory)
|
|
75
|
+
sb_kwargs = {"rootfs_path": rootfs} if rootfs else {"image": image}
|
|
76
|
+
if params.get("cpu") is not None:
|
|
77
|
+
sb_kwargs["cpus"] = params["cpu"]
|
|
78
|
+
if params.get("memory_mb") is not None:
|
|
79
|
+
sb_kwargs["memory_mib"] = params["memory_mb"]
|
|
80
|
+
if params.get("disk_size_gb") is not None:
|
|
81
|
+
sb_kwargs["disk_size_gb"] = params["disk_size_gb"]
|
|
82
|
+
if env is not None:
|
|
83
|
+
sb_kwargs["env"] = env
|
|
84
|
+
if params.get("working_dir") is not None:
|
|
85
|
+
sb_kwargs["working_dir"] = params["working_dir"]
|
|
86
|
+
if ports is not None:
|
|
87
|
+
sb_kwargs["ports"] = ports
|
|
88
|
+
|
|
89
|
+
# Pass the Boxlite runtime to SimpleBox so it uses the correct home_dir
|
|
90
|
+
if getattr(self, "_boxlite_rt", None) is not None:
|
|
91
|
+
sb_kwargs["runtime"] = self._boxlite_rt
|
|
92
|
+
sb = boxlite.SimpleBox(**sb_kwargs)
|
|
70
93
|
box = await sb.__aenter__()
|
|
71
94
|
box_id = str(getattr(box, "id", None)
|
|
72
95
|
or getattr(getattr(box, "_box", None), "id", None)
|
|
@@ -74,11 +97,43 @@ class Bridge:
|
|
|
74
97
|
self._boxes[box_id] = box
|
|
75
98
|
self._simple_boxes[box_id] = sb
|
|
76
99
|
else:
|
|
77
|
-
#
|
|
78
|
-
|
|
79
|
-
if
|
|
80
|
-
|
|
81
|
-
|
|
100
|
+
# Boxlite.create(BoxOptions(...), name=None)
|
|
101
|
+
BoxOptions = getattr(boxlite, "BoxOptions", None)
|
|
102
|
+
if BoxOptions is not None:
|
|
103
|
+
opt_kwargs = {}
|
|
104
|
+
if rootfs:
|
|
105
|
+
opt_kwargs["rootfs_path"] = rootfs
|
|
106
|
+
else:
|
|
107
|
+
opt_kwargs["image"] = image
|
|
108
|
+
if params.get("cpu") is not None:
|
|
109
|
+
opt_kwargs["cpus"] = params["cpu"]
|
|
110
|
+
if params.get("memory_mb") is not None:
|
|
111
|
+
opt_kwargs["memory_mib"] = params["memory_mb"]
|
|
112
|
+
if params.get("disk_size_gb") is not None:
|
|
113
|
+
opt_kwargs["disk_size_gb"] = params["disk_size_gb"]
|
|
114
|
+
if env is not None:
|
|
115
|
+
opt_kwargs["env"] = env
|
|
116
|
+
if params.get("working_dir") is not None:
|
|
117
|
+
opt_kwargs["working_dir"] = params["working_dir"]
|
|
118
|
+
if ports is not None:
|
|
119
|
+
opt_kwargs["ports"] = ports
|
|
120
|
+
opts = BoxOptions(**opt_kwargs)
|
|
121
|
+
box = await self._runtime.create(opts)
|
|
122
|
+
else:
|
|
123
|
+
# Legacy fallback: pass as kwargs
|
|
124
|
+
kwargs = {"rootfs_path": rootfs} if rootfs else {"image": image}
|
|
125
|
+
for k in ("cpu", "memory_mb", "disk_size_gb", "working_dir"):
|
|
126
|
+
if params.get(k) is not None:
|
|
127
|
+
kwargs[k] = params[k]
|
|
128
|
+
if env is not None:
|
|
129
|
+
kwargs["env"] = env
|
|
130
|
+
if ports is not None:
|
|
131
|
+
kwargs["ports"] = ports
|
|
132
|
+
create_fn = getattr(self._runtime, "create", None) or getattr(self._runtime, "create_box", None)
|
|
133
|
+
if create_fn is None:
|
|
134
|
+
raise RuntimeError("boxlite runtime has no create/create_box method")
|
|
135
|
+
box = await create_fn(**kwargs)
|
|
136
|
+
|
|
82
137
|
box_id = str(box.id)
|
|
83
138
|
self._boxes[box_id] = box
|
|
84
139
|
|
|
@@ -86,8 +141,8 @@ class Bridge:
|
|
|
86
141
|
"id": box_id,
|
|
87
142
|
"status": "running",
|
|
88
143
|
"image": image,
|
|
89
|
-
"cpu":
|
|
90
|
-
"memory_mb":
|
|
144
|
+
"cpu": params.get("cpu", 1),
|
|
145
|
+
"memory_mb": params.get("memory_mb", 512),
|
|
91
146
|
"created_at": now,
|
|
92
147
|
"name": None,
|
|
93
148
|
}
|
|
@@ -144,22 +199,68 @@ class Bridge:
|
|
|
144
199
|
# Strategy 3: box._box.exec(cmd[0], args=cmd[1:])
|
|
145
200
|
if result is None and hasattr(box, "_box"):
|
|
146
201
|
try:
|
|
147
|
-
|
|
148
|
-
if hasattr(exec_obj, "wait"):
|
|
149
|
-
result = await exec_obj.wait()
|
|
150
|
-
else:
|
|
151
|
-
result = exec_obj
|
|
202
|
+
result = await box._box.exec(cmd[0], args=cmd[1:])
|
|
152
203
|
except Exception as e:
|
|
153
204
|
errors.append(f"box._box.exec(...): {e}")
|
|
154
205
|
|
|
155
206
|
if result is None:
|
|
156
207
|
raise RuntimeError(f"All exec strategies failed: {'; '.join(errors)}")
|
|
157
208
|
|
|
209
|
+
stdout = ""
|
|
210
|
+
stderr = ""
|
|
211
|
+
exit_code = 0
|
|
212
|
+
|
|
213
|
+
# Execution object (Boxlite runtime API): collect stdout/stderr streams, then wait
|
|
214
|
+
if hasattr(result, "wait") and callable(result.wait):
|
|
215
|
+
async def _collect(stream_fn):
|
|
216
|
+
try:
|
|
217
|
+
buf = bytearray()
|
|
218
|
+
async for chunk in stream_fn():
|
|
219
|
+
if isinstance(chunk, (bytes, bytearray)):
|
|
220
|
+
buf.extend(chunk)
|
|
221
|
+
else:
|
|
222
|
+
buf.extend(str(chunk).encode("utf-8"))
|
|
223
|
+
return buf.decode("utf-8", errors="replace")
|
|
224
|
+
except Exception:
|
|
225
|
+
return ""
|
|
226
|
+
|
|
227
|
+
# Read stdout/stderr concurrently to avoid pipe deadlocks
|
|
228
|
+
tasks = []
|
|
229
|
+
has_stdout = hasattr(result, "stdout") and callable(result.stdout)
|
|
230
|
+
has_stderr = hasattr(result, "stderr") and callable(result.stderr)
|
|
231
|
+
if has_stdout:
|
|
232
|
+
tasks.append(asyncio.create_task(_collect(result.stdout)))
|
|
233
|
+
if has_stderr:
|
|
234
|
+
tasks.append(asyncio.create_task(_collect(result.stderr)))
|
|
235
|
+
|
|
236
|
+
if tasks:
|
|
237
|
+
collected = await asyncio.gather(*tasks)
|
|
238
|
+
idx = 0
|
|
239
|
+
if has_stdout:
|
|
240
|
+
stdout = collected[idx]; idx += 1
|
|
241
|
+
if has_stderr:
|
|
242
|
+
stderr = collected[idx]
|
|
243
|
+
|
|
244
|
+
exec_result = await result.wait()
|
|
245
|
+
exit_code = int(getattr(exec_result, "exit_code",
|
|
246
|
+
getattr(exec_result, "returncode", 0)) or 0)
|
|
247
|
+
else:
|
|
248
|
+
# SimpleBox / legacy: result already has stdout/stderr as attributes
|
|
249
|
+
raw_stdout = getattr(result, "stdout", "")
|
|
250
|
+
raw_stderr = getattr(result, "stderr", "")
|
|
251
|
+
if callable(raw_stdout):
|
|
252
|
+
raw_stdout = raw_stdout()
|
|
253
|
+
if callable(raw_stderr):
|
|
254
|
+
raw_stderr = raw_stderr()
|
|
255
|
+
stdout = str(raw_stdout or "")
|
|
256
|
+
stderr = str(raw_stderr or "")
|
|
257
|
+
exit_code = int(getattr(result, "exit_code",
|
|
258
|
+
getattr(result, "returncode", 0)) or 0)
|
|
259
|
+
|
|
158
260
|
return {
|
|
159
|
-
"stdout":
|
|
160
|
-
"stderr":
|
|
161
|
-
"exit_code":
|
|
162
|
-
getattr(result, "returncode", 0)) or 0),
|
|
261
|
+
"stdout": stdout,
|
|
262
|
+
"stderr": stderr,
|
|
263
|
+
"exit_code": exit_code,
|
|
163
264
|
}
|
|
164
265
|
|
|
165
266
|
async def destroy(self, box_id):
|
|
@@ -413,7 +514,13 @@ export function createBoxLiteLocalClient(config) {
|
|
|
413
514
|
},
|
|
414
515
|
async exec(boxId, req) {
|
|
415
516
|
const timeoutMs = (req.timeout_seconds ?? 300) * 1000;
|
|
416
|
-
const result = await send({
|
|
517
|
+
const result = await send({
|
|
518
|
+
action: 'exec',
|
|
519
|
+
box_id: boxId,
|
|
520
|
+
cmd: req.cmd,
|
|
521
|
+
...(req.working_dir ? { working_dir: req.working_dir } : {}),
|
|
522
|
+
...(req.timeout_seconds ? { timeout_seconds: req.timeout_seconds } : {}),
|
|
523
|
+
}, timeoutMs);
|
|
417
524
|
return {
|
|
418
525
|
stdout: result.stdout ?? '',
|
|
419
526
|
stderr: result.stderr ?? '',
|
package/dist/types.d.ts
CHANGED
|
@@ -90,7 +90,9 @@ export interface BoxLiteSnapshot {
|
|
|
90
90
|
container_disk_bytes?: number;
|
|
91
91
|
}
|
|
92
92
|
export interface BoxLiteCreateParams {
|
|
93
|
-
image
|
|
93
|
+
image?: string;
|
|
94
|
+
/** Path to a local OCI layout directory. When set, overrides `image` (no registry pull). */
|
|
95
|
+
rootfs_path?: string;
|
|
94
96
|
name?: string;
|
|
95
97
|
cpu?: number;
|
|
96
98
|
memory_mb?: number;
|
|
@@ -99,6 +101,8 @@ export interface BoxLiteCreateParams {
|
|
|
99
101
|
env?: Record<string, string>;
|
|
100
102
|
auto_remove?: boolean;
|
|
101
103
|
security?: string;
|
|
104
|
+
/** Port mappings [hostPort, guestPort][] for local mode */
|
|
105
|
+
ports?: [number, number][];
|
|
102
106
|
}
|
|
103
107
|
export interface BoxLiteTokenResponse {
|
|
104
108
|
access_token: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sandbank.dev/boxlite",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "BoxLite bare-metal sandbox adapter for Sandbank",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"clean": "rm -rf dist"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@sandbank.dev/core": "^0.
|
|
35
|
+
"@sandbank.dev/core": "^0.3.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^25.3.0",
|