@miosa/cli 1.0.66 → 1.0.68
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/CHANGELOG.md +0 -8
- package/README.md +0 -20
- package/dist/bin/miosa.js +1 -0
- package/dist/bin/miosa.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +22 -21
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-runtime-profiles.d.ts +3 -0
- package/dist/commands/agent-runtime-profiles.d.ts.map +1 -0
- package/dist/commands/agent-runtime-profiles.js +151 -0
- package/dist/commands/agent-runtime-profiles.js.map +1 -0
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +119 -0
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/capabilities.d.ts.map +1 -1
- package/dist/commands/capabilities.js +0 -54
- package/dist/commands/capabilities.js.map +1 -1
- package/dist/commands/computers.d.ts.map +1 -1
- package/dist/commands/computers.js +12 -5
- package/dist/commands/computers.js.map +1 -1
- package/dist/commands/devices.d.ts.map +1 -1
- package/dist/commands/devices.js +6 -6
- package/dist/commands/devices.js.map +1 -1
- package/dist/commands/enterprise-util.d.ts +1 -1
- package/dist/commands/enterprise-util.d.ts.map +1 -1
- package/dist/commands/enterprise-util.js.map +1 -1
- package/dist/commands/machines.d.ts +3 -0
- package/dist/commands/machines.d.ts.map +1 -0
- package/dist/commands/machines.js +29 -0
- package/dist/commands/machines.js.map +1 -0
- package/dist/commands/sandbox.d.ts.map +1 -1
- package/dist/commands/sandbox.js +127 -48
- package/dist/commands/sandbox.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enterprise-util.d.ts","sourceRoot":"","sources":["../../src/commands/enterprise-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,IAAI,CAC1B,WAAW,
|
|
1
|
+
{"version":3,"file":"enterprise-util.d.ts","sourceRoot":"","sources":["../../src/commands/enterprise-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enterprise-util.js","sourceRoot":"","sources":["../../src/commands/enterprise-util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"enterprise-util.js","sourceRoot":"","sources":["../../src/commands/enterprise-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/commands/machines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC/C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { addDataOption, deleteAndPrint, enc, getAndPrint, postAndPrint, resourceCommands, runAction, } from "./enterprise-util.js";
|
|
2
|
+
const actions = ["start", "stop", "restart", "clone", "resize", "move"];
|
|
3
|
+
export function register(program) {
|
|
4
|
+
resourceCommands({
|
|
5
|
+
program,
|
|
6
|
+
command: "machines",
|
|
7
|
+
description: "Manage persistent machines",
|
|
8
|
+
route: "/computers",
|
|
9
|
+
itemName: "machine-id",
|
|
10
|
+
actions,
|
|
11
|
+
});
|
|
12
|
+
const machines = program.commands.find((cmd) => cmd.name() === "machines");
|
|
13
|
+
addDataOption(machines
|
|
14
|
+
.command("exec <machine-id>")
|
|
15
|
+
.description("Run a command on a machine via the raw exec API"))
|
|
16
|
+
.option("--json", "Output as JSON")
|
|
17
|
+
.action((id, opts) => runAction(() => postAndPrint(`/computers/${enc(id)}/exec`, opts, {})));
|
|
18
|
+
machines
|
|
19
|
+
.command("logs <machine-id>")
|
|
20
|
+
.description("Show machine logs")
|
|
21
|
+
.option("--json", "Output as JSON")
|
|
22
|
+
.action((id, opts) => runAction(() => getAndPrint(`/computers/${enc(id)}/logs`, opts)));
|
|
23
|
+
machines
|
|
24
|
+
.command("delete-snapshot <machine-id> <snapshot-id>")
|
|
25
|
+
.description("Delete a machine snapshot")
|
|
26
|
+
.option("--json", "Output as JSON")
|
|
27
|
+
.action((id, sid, opts) => runAction(() => deleteAndPrint(`/computers/${enc(id)}/snapshots/${enc(sid)}`, opts)));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=machines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/commands/machines.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,cAAc,EACd,GAAG,EACH,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,SAAS,GAGV,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAEjF,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,gBAAgB,CAAC;QACf,OAAO;QACP,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,4BAA4B;QACzC,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,YAAY;QACtB,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,UAAU,CAAC,CAAC;IAC3E,aAAa,CACX,QAAS;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,iDAAiD,CAAC,CAClE;SACE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAiB,EAAE,EAAE,CACxC,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CACtE,CAAC;IAEJ,QAAS;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAiB,EAAE,EAAE,CACxC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CACjE,CAAC;IAEJ,QAAS;SACN,OAAO,CAAC,4CAA4C,CAAC;SACrD,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,CAAC,EAAU,EAAE,GAAW,EAAE,IAAiB,EAAE,EAAE,CACrD,SAAS,CAAC,GAAG,EAAE,CACb,cAAc,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CACpE,CACF,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA22E/C"}
|
package/dist/commands/sandbox.js
CHANGED
|
@@ -150,6 +150,7 @@ export function register(program) {
|
|
|
150
150
|
}
|
|
151
151
|
console.log(kvPanel(rows));
|
|
152
152
|
console.log();
|
|
153
|
+
warnIfExpiringSoon(sb, str(sb["id"]));
|
|
153
154
|
console.log(hintBlock("Try", [
|
|
154
155
|
`miosa sandbox exec ${str(sb["id"])} --command ...`,
|
|
155
156
|
`miosa sandbox preview ${str(sb["id"])} --port 5173 --wait`,
|
|
@@ -181,6 +182,8 @@ export function register(program) {
|
|
|
181
182
|
.option("--depth <n>", "Git clone depth when --source git: is used", parseIntegerOption)
|
|
182
183
|
.option("--snapshot <id>", "Create from a sandbox snapshot")
|
|
183
184
|
.option("--workspace <id-or-slug>", "Workspace ID/slug")
|
|
185
|
+
.option("--agent-profile <id>", "Agent runtime profile ID to mount into the sandbox")
|
|
186
|
+
.option("--skip-agent-profile", "Do not apply the tenant/workspace default agent runtime profile")
|
|
184
187
|
.option("--network-policy <policy>", "Network policy: allow-all or deny-all")
|
|
185
188
|
.option("--allowed-domain <domain>", "Allowed egress domain. Repeatable.", collectOption, [])
|
|
186
189
|
.option("--allowed-cidr <cidr>", "Allowed egress CIDR. Repeatable.", collectOption, [])
|
|
@@ -222,6 +225,12 @@ export function register(program) {
|
|
|
222
225
|
body["depth"] = opts.depth;
|
|
223
226
|
if (opts.snapshot)
|
|
224
227
|
body["snapshot_id"] = opts.snapshot;
|
|
228
|
+
if (opts.agentProfile) {
|
|
229
|
+
body["agent_runtime_profile_id"] = opts.agentProfile;
|
|
230
|
+
}
|
|
231
|
+
if (opts.skipAgentProfile) {
|
|
232
|
+
body["skip_agent_runtime_profile"] = true;
|
|
233
|
+
}
|
|
225
234
|
const workspace = opts.workspace ??
|
|
226
235
|
program.opts().workspace ??
|
|
227
236
|
process.env["MIOSA_WORKSPACE"];
|
|
@@ -314,7 +323,10 @@ export function register(program) {
|
|
|
314
323
|
console.log(chalk.green("Sandbox stopped"));
|
|
315
324
|
console.log(kvPanel([
|
|
316
325
|
{ label: "ID", value: str(row["id"] ?? id) },
|
|
317
|
-
{
|
|
326
|
+
{
|
|
327
|
+
label: "State",
|
|
328
|
+
value: statusColor(str(row["state"] ?? "paused")),
|
|
329
|
+
},
|
|
318
330
|
{ label: "Resume", value: `miosa sandbox resume ${id}` },
|
|
319
331
|
{ label: "Destroy", value: `miosa sandbox destroy ${id}` },
|
|
320
332
|
]));
|
|
@@ -361,13 +373,12 @@ export function register(program) {
|
|
|
361
373
|
}
|
|
362
374
|
}));
|
|
363
375
|
registerSandboxConnectorCommands(sandbox);
|
|
364
|
-
// prompt — invoke an in-Sandbox AI agent CLI
|
|
365
|
-
//
|
|
376
|
+
// prompt — invoke an in-Sandbox AI agent CLI through the Agent Runs API.
|
|
377
|
+
// This keeps the old CLI shape while returning a stable run response shape.
|
|
366
378
|
sandbox
|
|
367
379
|
.command("prompt <sandbox-id> <instruction...>")
|
|
368
|
-
.description("Run an in-Sandbox AI agent
|
|
369
|
-
.option("--provider <name>", "
|
|
370
|
-
.option("--runtime-command <command>", "Executable command for --provider custom, e.g. 'hermes-agent run'")
|
|
380
|
+
.description("Run an in-Sandbox AI agent with the given instruction")
|
|
381
|
+
.option("--provider <name>", "AI provider: claude (default), claude-code, codex, hermes, osa, pi")
|
|
371
382
|
.option("--model <name>", "Provider-specific model name")
|
|
372
383
|
.option("--connector <uid>", "MIOSA Connect connector UID to preflight before running the agent")
|
|
373
384
|
.option("--preflight", "Verify the Sandbox has the requested provider connector before exec")
|
|
@@ -376,13 +387,17 @@ export function register(program) {
|
|
|
376
387
|
.option("--json", "Output as JSON")
|
|
377
388
|
.action((id, words, opts) => runAction(async () => {
|
|
378
389
|
const provider = opts.provider ?? "claude";
|
|
379
|
-
|
|
380
|
-
|
|
390
|
+
const allowedProviders = [
|
|
391
|
+
"claude",
|
|
392
|
+
"claude-code",
|
|
393
|
+
"codex",
|
|
394
|
+
"hermes",
|
|
395
|
+
"osa",
|
|
396
|
+
"pi",
|
|
397
|
+
];
|
|
398
|
+
if (!allowedProviders.includes(provider)) {
|
|
381
399
|
throw new Error(`Unsupported provider "${provider}". Use: ${allowedProviders.join(", ")}`);
|
|
382
400
|
}
|
|
383
|
-
if (opts.runtimeCommand && provider !== "custom") {
|
|
384
|
-
throw new Error("--runtime-command can only be used with --provider custom");
|
|
385
|
-
}
|
|
386
401
|
if (opts.connector || opts.preflight) {
|
|
387
402
|
await preflightSandboxConnector(id, {
|
|
388
403
|
provider,
|
|
@@ -398,8 +413,6 @@ export function register(program) {
|
|
|
398
413
|
provider,
|
|
399
414
|
prompt: instruction,
|
|
400
415
|
};
|
|
401
|
-
if (opts.runtimeCommand)
|
|
402
|
-
body["command"] = opts.runtimeCommand;
|
|
403
416
|
if (opts.model)
|
|
404
417
|
body["model"] = opts.model;
|
|
405
418
|
if (opts.cwd)
|
|
@@ -1230,6 +1243,79 @@ export function register(program) {
|
|
|
1230
1243
|
handleError(err);
|
|
1231
1244
|
}
|
|
1232
1245
|
});
|
|
1246
|
+
sandbox
|
|
1247
|
+
.command("export <sandbox-id> <remote-paths...>")
|
|
1248
|
+
.description("Create a portable export for sandbox-generated files; optionally download it")
|
|
1249
|
+
.option("--label <label>", "Human-readable export label")
|
|
1250
|
+
.option("--filename <name>", "Filename to use when downloading")
|
|
1251
|
+
.option("--output <file>", "Download the file/archive to this local path")
|
|
1252
|
+
.option("--json", "Output as JSON")
|
|
1253
|
+
.action(async (id, remotePaths, opts) => {
|
|
1254
|
+
try {
|
|
1255
|
+
if (remotePaths.length === 0) {
|
|
1256
|
+
throw new UserError("At least one remote path is required.");
|
|
1257
|
+
}
|
|
1258
|
+
const body = remotePaths.length === 1
|
|
1259
|
+
? { path: remotePaths[0] }
|
|
1260
|
+
: { paths: remotePaths };
|
|
1261
|
+
if (opts.label)
|
|
1262
|
+
body["label"] = opts.label;
|
|
1263
|
+
if (opts.filename)
|
|
1264
|
+
body["filename"] = opts.filename;
|
|
1265
|
+
const exportData = unwrap(await client().apiPost(apiPath(`/sandboxes/${enc(id)}/exports`), body));
|
|
1266
|
+
if (opts.output) {
|
|
1267
|
+
const query = new URLSearchParams();
|
|
1268
|
+
if (remotePaths.length === 1) {
|
|
1269
|
+
query.set("path", remotePaths[0] ?? "");
|
|
1270
|
+
}
|
|
1271
|
+
else {
|
|
1272
|
+
for (const remotePath of remotePaths) {
|
|
1273
|
+
query.append("paths[]", remotePath);
|
|
1274
|
+
}
|
|
1275
|
+
}
|
|
1276
|
+
if (opts.filename)
|
|
1277
|
+
query.set("filename", opts.filename);
|
|
1278
|
+
const bytes = await client().apiGetBinary(apiPath(`/sandboxes/${enc(id)}/exports/download?${query.toString()}`));
|
|
1279
|
+
fs.writeFileSync(opts.output, bytes);
|
|
1280
|
+
}
|
|
1281
|
+
if (isJsonMode(opts)) {
|
|
1282
|
+
console.log(JSON.stringify(opts.output
|
|
1283
|
+
? { ...exportData, downloaded_to: opts.output }
|
|
1284
|
+
: exportData, null, 2));
|
|
1285
|
+
return;
|
|
1286
|
+
}
|
|
1287
|
+
console.log();
|
|
1288
|
+
console.log(kvPanel([
|
|
1289
|
+
{ label: "Export", value: chalk.bold(str(exportData["id"])) },
|
|
1290
|
+
{ label: "Sandbox", value: id },
|
|
1291
|
+
{ label: "Status", value: statusColor(str(exportData["status"])) },
|
|
1292
|
+
{
|
|
1293
|
+
label: "Archive",
|
|
1294
|
+
value: str(exportData["archive_download_url"]),
|
|
1295
|
+
},
|
|
1296
|
+
...(opts.output
|
|
1297
|
+
? [{ label: "Downloaded", value: opts.output }]
|
|
1298
|
+
: []),
|
|
1299
|
+
]));
|
|
1300
|
+
const files = Array.isArray(exportData["files"])
|
|
1301
|
+
? exportData["files"]
|
|
1302
|
+
: [];
|
|
1303
|
+
if (files.length > 0) {
|
|
1304
|
+
console.log();
|
|
1305
|
+
renderTable(files, [
|
|
1306
|
+
{ header: "PATH", key: "path" },
|
|
1307
|
+
{
|
|
1308
|
+
header: "DOWNLOAD URL",
|
|
1309
|
+
key: "download_url",
|
|
1310
|
+
},
|
|
1311
|
+
]);
|
|
1312
|
+
}
|
|
1313
|
+
console.log();
|
|
1314
|
+
}
|
|
1315
|
+
catch (err) {
|
|
1316
|
+
handleError(err);
|
|
1317
|
+
}
|
|
1318
|
+
});
|
|
1233
1319
|
// logs — GET /sandboxes/:id/logs
|
|
1234
1320
|
sandbox
|
|
1235
1321
|
.command("logs <sandbox-id>")
|
|
@@ -2168,7 +2254,9 @@ async function recoverSandboxDeploy(idOrName, opts) {
|
|
|
2168
2254
|
const template = stringOrNull(sandbox["template_id"]);
|
|
2169
2255
|
const port = opts.port ?? suggestedRecoveryPort(template);
|
|
2170
2256
|
const execOk = await checkSandboxExec(c, sandboxId);
|
|
2171
|
-
const doctor = port != null
|
|
2257
|
+
const doctor = port != null
|
|
2258
|
+
? await safeDoctorSandbox(sandboxId, port, opts.probePath)
|
|
2259
|
+
: null;
|
|
2172
2260
|
const previewUrl = stringOrNull(doctor?.["preview_url"]);
|
|
2173
2261
|
const previewReady = doctor && typeof doctor["preview_ready"] === "boolean"
|
|
2174
2262
|
? Boolean(doctor["preview_ready"])
|
|
@@ -2441,7 +2529,9 @@ function sandboxRecoveryHint(sandboxId, sandbox) {
|
|
|
2441
2529
|
const name = String(sandbox["name"] ?? "new-sandbox");
|
|
2442
2530
|
const template = String(sandbox["template_id"] ?? "nextjs");
|
|
2443
2531
|
const timeoutRemainingSec = timeoutRemainingSeconds(sandbox);
|
|
2444
|
-
if (state === "running" &&
|
|
2532
|
+
if (state === "running" &&
|
|
2533
|
+
timeoutRemainingSec != null &&
|
|
2534
|
+
timeoutRemainingSec <= EXPIRING_SANDBOX_THRESHOLD_SEC) {
|
|
2445
2535
|
return `Sandbox expires soon. Extend it with: miosa sandbox extend ${sandboxId} --timeout 1h`;
|
|
2446
2536
|
}
|
|
2447
2537
|
if (state === "paused") {
|
|
@@ -2489,6 +2579,23 @@ function timeoutRemainingSeconds(sandbox) {
|
|
|
2489
2579
|
const sec = sandbox["timeout_remaining_sec"];
|
|
2490
2580
|
return typeof sec === "number" ? sec : null;
|
|
2491
2581
|
}
|
|
2582
|
+
/**
|
|
2583
|
+
* Prints a yellow expiry warning when a running sandbox has <5 minutes left.
|
|
2584
|
+
* Call this in any non-JSON render path that shows sandbox state.
|
|
2585
|
+
*/
|
|
2586
|
+
function warnIfExpiringSoon(sandbox, sandboxId) {
|
|
2587
|
+
const state = String(sandbox["state"] ?? sandbox["status"] ?? "").toLowerCase();
|
|
2588
|
+
if (state !== "running" && state !== "active")
|
|
2589
|
+
return;
|
|
2590
|
+
const remainingSec = timeoutRemainingSeconds(sandbox);
|
|
2591
|
+
if (remainingSec == null || remainingSec > EXPIRING_SANDBOX_THRESHOLD_SEC)
|
|
2592
|
+
return;
|
|
2593
|
+
const mins = Math.floor(remainingSec / 60);
|
|
2594
|
+
const secs = remainingSec % 60;
|
|
2595
|
+
const humanTime = mins > 0 ? `${mins}m${secs > 0 ? `${secs}s` : ""}` : `${secs}s`;
|
|
2596
|
+
console.log(chalk.yellow(` Warning: Sandbox expires in ${humanTime}. Extend: miosa sandbox extend ${sandboxId} --timeout 1h`));
|
|
2597
|
+
console.log();
|
|
2598
|
+
}
|
|
2492
2599
|
function createDeployArchive(sourceDir) {
|
|
2493
2600
|
const archivePath = path.join(os.tmpdir(), `miosa-deploy-${process.pid}-${Date.now()}.tgz`);
|
|
2494
2601
|
const result = spawnSync("tar", [
|
|
@@ -2712,7 +2819,10 @@ function renderResourceMetrics(title, raw) {
|
|
|
2712
2819
|
: {};
|
|
2713
2820
|
printBanner({ subtitle: title });
|
|
2714
2821
|
console.log(kvPanel([
|
|
2715
|
-
{
|
|
2822
|
+
{
|
|
2823
|
+
label: "resource_id",
|
|
2824
|
+
value: String(row["resource_id"] ?? row["sandbox_id"] ?? "-"),
|
|
2825
|
+
},
|
|
2716
2826
|
{ label: "window", value: String(row["window"] ?? "1h") },
|
|
2717
2827
|
{ label: "state", value: formatState(current["state"]) },
|
|
2718
2828
|
{ label: "ready", value: formatBool(current["ready"]) },
|
|
@@ -3057,38 +3167,6 @@ function commandInCwd(command, cwd) {
|
|
|
3057
3167
|
return command;
|
|
3058
3168
|
return `cd ${shellQuote(cwd)} && ${command}`;
|
|
3059
3169
|
}
|
|
3060
|
-
function supportedPromptProviders() {
|
|
3061
|
-
return [
|
|
3062
|
-
"claude",
|
|
3063
|
-
"claude-code",
|
|
3064
|
-
"codex",
|
|
3065
|
-
"pi",
|
|
3066
|
-
"hermes",
|
|
3067
|
-
"osa",
|
|
3068
|
-
"custom",
|
|
3069
|
-
];
|
|
3070
|
-
}
|
|
3071
|
-
function runtimeCommandForProvider(provider, runtimeCommand) {
|
|
3072
|
-
const normalized = provider.trim().toLowerCase();
|
|
3073
|
-
if (normalized === "custom") {
|
|
3074
|
-
if (!runtimeCommand?.trim()) {
|
|
3075
|
-
throw new Error("--provider custom requires --runtime-command, e.g. --runtime-command 'hermes-agent run'");
|
|
3076
|
-
}
|
|
3077
|
-
return runtimeCommand.trim();
|
|
3078
|
-
}
|
|
3079
|
-
const builtIns = {
|
|
3080
|
-
claude: "claude",
|
|
3081
|
-
"claude-code": "claude",
|
|
3082
|
-
codex: "codex",
|
|
3083
|
-
pi: "pi",
|
|
3084
|
-
hermes: "hermes",
|
|
3085
|
-
osa: "osa",
|
|
3086
|
-
};
|
|
3087
|
-
return builtIns[normalized] ?? null;
|
|
3088
|
-
}
|
|
3089
|
-
function isSupportedPromptProvider(provider) {
|
|
3090
|
-
return supportedPromptProviders().includes(provider.trim().toLowerCase());
|
|
3091
|
-
}
|
|
3092
3170
|
function backgroundCommand(command) {
|
|
3093
3171
|
if (!command.trim())
|
|
3094
3172
|
return command;
|
|
@@ -3270,6 +3348,7 @@ function renderCreateSuccess(raw, elapsedMs) {
|
|
|
3270
3348
|
{ label: "Status", value: statusColor(str(sb["status"])) },
|
|
3271
3349
|
]));
|
|
3272
3350
|
console.log();
|
|
3351
|
+
warnIfExpiringSoon(sb, id);
|
|
3273
3352
|
console.log(hintBlock("Next", [
|
|
3274
3353
|
`miosa sandbox show ${id}`,
|
|
3275
3354
|
`miosa sandbox exec ${id} --command 'python -c print(2+2)'`,
|