humanish 0.101.0 → 0.102.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 +3 -2
- package/dist/affordance.d.ts +2 -0
- package/dist/affordance.js +3 -0
- package/dist/affordance.js.map +1 -1
- package/dist/browser-control-client.d.ts +2 -0
- package/dist/browser-control-client.js +4 -0
- package/dist/browser-control-client.js.map +1 -1
- package/dist/browser-control-dispatcher.js +3 -0
- package/dist/browser-control-dispatcher.js.map +1 -1
- package/dist/browser-control-protocol.d.ts +77 -0
- package/dist/browser-control-protocol.js +31 -4
- package/dist/browser-control-protocol.js.map +1 -1
- package/dist/computer-use.d.ts +9 -0
- package/dist/computer-use.js +36 -8
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +1 -0
- package/dist/cua-actor-lab.js +10 -6
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/cua-speech.d.ts +13 -0
- package/dist/cua-speech.js +2 -0
- package/dist/cua-speech.js.map +1 -0
- package/dist/desktop-session.js +1 -0
- package/dist/desktop-session.js.map +1 -1
- package/dist/doctor-lab.js +1 -1
- package/dist/doctor-lab.js.map +1 -1
- package/dist/e2b-cua-desktop.js +51 -42
- package/dist/e2b-cua-desktop.js.map +1 -1
- package/dist/e2b-cua-provisioning.d.ts +4 -1
- package/dist/e2b-cua-provisioning.js +8 -2
- package/dist/e2b-cua-provisioning.js.map +1 -1
- package/dist/e2b-desktop-executor.js +3 -0
- package/dist/e2b-desktop-executor.js.map +1 -1
- package/dist/e2b-desktop-launch.d.ts +11 -1
- package/dist/e2b-desktop-launch.js.map +1 -1
- package/dist/e2b-desktop-media.d.ts +14 -0
- package/dist/e2b-desktop-media.js +58 -0
- package/dist/e2b-desktop-media.js.map +1 -0
- package/dist/guest-bootstrap.d.ts +4 -2
- package/dist/guest-bootstrap.js +16 -9
- package/dist/guest-bootstrap.js.map +1 -1
- package/dist/guest-desktop-executor.js +1 -0
- package/dist/guest-desktop-executor.js.map +1 -1
- package/dist/guest-desktop-media.d.ts +33 -0
- package/dist/guest-desktop-media.js +281 -0
- package/dist/guest-desktop-media.js.map +1 -0
- package/dist/guest-media-config.d.ts +15 -0
- package/dist/guest-media-config.js +8 -0
- package/dist/guest-media-config.js.map +1 -0
- package/dist/guest-media-worker.d.ts +1 -0
- package/dist/guest-media-worker.js +319 -0
- package/dist/guest-media-worker.js.map +1 -0
- package/dist/guest-runtime-desktop.d.ts +3 -1
- package/dist/guest-runtime-desktop.js +20 -3
- package/dist/guest-runtime-desktop.js.map +1 -1
- package/dist/guest-runtime-main.js +2 -2
- package/dist/guest-runtime-main.js.map +1 -1
- package/dist/guest-runtime.d.ts +2 -1
- package/dist/guest-runtime.js +1 -1
- package/dist/guest-runtime.js.map +1 -1
- package/dist/lab-config.d.ts +2 -2
- package/dist/lab-config.js +15 -4
- package/dist/lab-config.js.map +1 -1
- package/dist/lab-summary.js +1 -1
- package/dist/lab-summary.js.map +1 -1
- package/dist/local-firecracker-desktop.d.ts +3 -0
- package/dist/local-firecracker-desktop.js +7 -1
- package/dist/local-firecracker-desktop.js.map +1 -1
- package/dist/local-firecracker-study.js +16 -2
- package/dist/local-firecracker-study.js.map +1 -1
- package/dist/local-runtime-config.js +5 -2
- package/dist/local-runtime-config.js.map +1 -1
- package/dist/local-runtime-release.d.ts +2 -0
- package/dist/local-runtime-release.js +15 -0
- package/dist/local-runtime-release.js.map +1 -1
- package/dist/local-runtime.d.ts +1 -0
- package/dist/local-runtime.js +11 -9
- package/dist/local-runtime.js.map +1 -1
- package/dist/program.js +3 -2
- package/dist/program.js.map +1 -1
- package/dist/restricted-codex-participant-policy.d.ts +2 -1
- package/dist/restricted-codex-participant-policy.js +9 -6
- package/dist/restricted-codex-participant-policy.js.map +1 -1
- package/dist/restricted-codex-participant-run.js +2 -1
- package/dist/restricted-codex-participant-run.js.map +1 -1
- package/dist/restricted-codex-participant.d.ts +2 -0
- package/dist/restricted-codex-participant.js +20 -7
- package/dist/restricted-codex-participant.js.map +1 -1
- package/dist/run.d.ts +8 -5
- package/dist/run.js +6 -6
- package/dist/run.js.map +1 -1
- package/dist/study-analysis-engine.d.ts +1 -1
- package/dist/study-analysis-engine.js +53 -10
- package/dist/study-analysis-engine.js.map +1 -1
- package/docs/architecture/local-browser-runtime.md +3 -2
- package/docs/architecture/participant-media.md +90 -0
- package/docs/contracts/schemas.md +1 -1
- package/docs/contracts/study-analysis.md +14 -0
- package/docs/goals/current.md +13 -9
- package/docs/ramp/README.md +7 -1
- package/docs/release/0.102.0-participant-media.md +43 -0
- package/package.json +5 -4
- package/skills/humanish/SKILL.md +8 -5
|
@@ -6,12 +6,17 @@ import { localBrowserDefaults, localBrowserUnsupportedReason } from "./local-run
|
|
|
6
6
|
import { prepareLocalRuntime } from "./local-runtime.js";
|
|
7
7
|
import { checkRestrictedCodexAnalysisReadiness } from "./restricted-codex-analysis.js";
|
|
8
8
|
import { createRestrictedCodexParticipant } from "./restricted-codex-participant.js";
|
|
9
|
+
import { guestMediaConfigSchema } from "./guest-media-config.js";
|
|
9
10
|
/** Local desktop/provider composition over the shared lab runner. */
|
|
10
11
|
export async function runLocalFirecrackerStudy(options) {
|
|
11
12
|
const config = localBrowserDefaults(options.config);
|
|
12
13
|
const unsupported = localBrowserUnsupportedReason(config);
|
|
13
14
|
if (unsupported)
|
|
14
15
|
throw new Error(unsupported);
|
|
16
|
+
const declaredMedia = config.execution?.desktop?.media;
|
|
17
|
+
const media = declaredMedia === undefined ? undefined : guestMediaConfigSchema.parse({
|
|
18
|
+
...declaredMedia, permission: config.policies?.mediaPermission ?? "prompt"
|
|
19
|
+
});
|
|
15
20
|
const account = config.actors[0]?.type === "local-agent";
|
|
16
21
|
let preparing;
|
|
17
22
|
const assets = () => preparing ??= (async () => {
|
|
@@ -21,6 +26,7 @@ export async function runLocalFirecrackerStudy(options) {
|
|
|
21
26
|
throw new Error(`Codex account is not ready (${readiness.errorCode}). Run humanish doctor --lab <lab> before starting a local study.`);
|
|
22
27
|
}
|
|
23
28
|
return options.assets ?? await prepareLocalRuntime({
|
|
29
|
+
...(media === undefined ? {} : { media: true }),
|
|
24
30
|
...(options.signal ? { signal: options.signal } : {}),
|
|
25
31
|
progress: message => process.stderr.write(`${message}\n`)
|
|
26
32
|
});
|
|
@@ -43,9 +49,17 @@ export async function runLocalFirecrackerStudy(options) {
|
|
|
43
49
|
return {
|
|
44
50
|
async prepare() {
|
|
45
51
|
session = await createLocalFirecrackerDesktop({ assets: await assets(),
|
|
52
|
+
...(media === undefined ? {} : { media }),
|
|
46
53
|
appUrl: spec.targetUrl ?? config.subject.appUrl, outputRoot: path.join(options.cwd, ".humanish", "local-runtime"),
|
|
47
54
|
...(options.signal === undefined ? {} : { signal: options.signal }) });
|
|
48
55
|
sessions.push(session);
|
|
56
|
+
if (media !== undefined)
|
|
57
|
+
evidence.desktopBrowser = { requested: "chromium", resolved: "chromium", media: {
|
|
58
|
+
...(media.camera === undefined ? {} : { camera: { source: "synthetic", file: "/dev/video0" } }),
|
|
59
|
+
...(media.microphone === undefined ? {} : { microphone: { source: "speech" } }),
|
|
60
|
+
permission: media.permission,
|
|
61
|
+
flags: media.permission === "granted" ? ["--use-fake-ui-for-media-stream"] : []
|
|
62
|
+
} };
|
|
49
63
|
},
|
|
50
64
|
async openSession() {
|
|
51
65
|
if (!session)
|
|
@@ -71,8 +85,8 @@ export async function runLocalFirecrackerStudy(options) {
|
|
|
71
85
|
snapshot: () => evidence
|
|
72
86
|
};
|
|
73
87
|
},
|
|
74
|
-
...(account ? { async buildProvider() {
|
|
75
|
-
const participant = createRestrictedCodexParticipant();
|
|
88
|
+
...(account ? { async buildProvider({ executor }) {
|
|
89
|
+
const participant = createRestrictedCodexParticipant({ speechEnabled: executor?.speechEnabled === true });
|
|
76
90
|
participants.push(participant);
|
|
77
91
|
return Object.assign(participant.provider, { async close() {
|
|
78
92
|
if ((await participant.close()).status !== "confirmed") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-firecracker-study.js","sourceRoot":"","sources":["../src/local-firecracker-study.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAuC,MAAM,iBAAiB,CAAC;AAI9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAA+B,MAAM,gCAAgC,CAAC;AAC5G,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"local-firecracker-study.js","sourceRoot":"","sources":["../src/local-firecracker-study.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,8 +31,11 @@ export function localBrowserUnsupportedReason(config) {
|
|
|
31
31
|
actor.lanes?.some(lane => lane.device !== undefined) || desktop.template !== undefined || desktop.sandboxTimeoutMs !== undefined) {
|
|
32
32
|
return "The local browser runtime currently uses a 960×720 Chromium desktop. Omit hosted templates, device presets and sandboxTimeoutMs.";
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
35
|
-
return "Local browser inboxes
|
|
34
|
+
if (config.comms !== undefined)
|
|
35
|
+
return "Local browser inboxes are not integrated yet. Remove comms declarations or select a supported hosted route.";
|
|
36
|
+
if (desktop.media?.camera !== undefined && desktop.media.camera.source !== "synthetic") {
|
|
37
|
+
return "Local cameras currently use source: synthetic. Camera files remain supported on hosted desktops.";
|
|
38
|
+
}
|
|
36
39
|
if (actor.type === "local-agent" && (actor.model !== "gpt-6-astra" || actor.reasoningEffort !== "low" ||
|
|
37
40
|
actor.lanes?.some(lane => lane.reasoningEffort !== undefined && lane.reasoningEffort !== "low") ||
|
|
38
41
|
actor.maxOutputTokens !== undefined || config.execution?.caps?.maxUsd !== undefined || config.execution?.caps?.maxTotalUsd !== undefined ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime-config.js","sourceRoot":"","sources":["../src/local-runtime-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"local-runtime-config.js","sourceRoot":"","sources":["../src/local-runtime-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,3 +3,5 @@ import type { LocalRuntimeRelease } from "./local-runtime.js";
|
|
|
3
3
|
export declare const LOCAL_RUNTIME_RELEASE: LocalRuntimeRelease;
|
|
4
4
|
/** Architecture-specific artifacts; each retains matching sources and notices. */
|
|
5
5
|
export declare const LOCAL_RUNTIME_RELEASES: Partial<Record<"amd64" | "arm64", LocalRuntimeRelease>>;
|
|
6
|
+
/** Media assets are separate so ordinary browser studies keep the smaller download. */
|
|
7
|
+
export declare const LOCAL_MEDIA_RUNTIME_RELEASES: Partial<Record<"amd64" | "arm64", LocalRuntimeRelease>>;
|
|
@@ -15,4 +15,19 @@ export const LOCAL_RUNTIME_RELEASES = {
|
|
|
15
15
|
image: "sha256:fcb7e1e8e5641fa39c7b74016648f2f0da50760546753e5835f6e93f4d50834f"
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
+
/** Media assets are separate so ordinary browser studies keep the smaller download. */
|
|
19
|
+
export const LOCAL_MEDIA_RUNTIME_RELEASES = {
|
|
20
|
+
amd64: {
|
|
21
|
+
url: "https://github.com/danielgwilson/humanish/releases/download/runtime-2026.09.26.1/runtime-linux-amd64.tar.gz",
|
|
22
|
+
sha256: "4f352a8b499d06e5d35c01f2a3d5dbd306d71bdeef07014b8440b40e98131f62",
|
|
23
|
+
bytes: 846993108,
|
|
24
|
+
image: "sha256:cc40a86169ba8281c07247cdada01ab2ff2f9a2fec5a0f0971ae1e1e1af2c9e7"
|
|
25
|
+
},
|
|
26
|
+
arm64: {
|
|
27
|
+
url: "https://github.com/danielgwilson/humanish/releases/download/runtime-2026.09.26.2/runtime-linux-arm64.tar.gz",
|
|
28
|
+
sha256: "a87b3d10c2b1c298398332e61dec5736f53388626bd6cbcd70fb11451fdb4c6c",
|
|
29
|
+
bytes: 828220836,
|
|
30
|
+
image: "sha256:ea1beba9a943b5994c259910abe5a50e48b260fe07b99bc235a495d9635862ae"
|
|
31
|
+
}
|
|
32
|
+
};
|
|
18
33
|
//# sourceMappingURL=local-runtime-release.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime-release.js","sourceRoot":"","sources":["../src/local-runtime-release.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,GAAG,EAAE,6GAA6G;IAClH,MAAM,EAAE,kEAAkE;IAC1E,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,yEAAyE;CACjF,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAA4D;IAC7F,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE;QACL,GAAG,EAAE,6GAA6G;QAClH,MAAM,EAAE,kEAAkE;QAC1E,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,yEAAyE;KACjF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"local-runtime-release.js","sourceRoot":"","sources":["../src/local-runtime-release.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,GAAG,EAAE,6GAA6G;IAClH,MAAM,EAAE,kEAAkE;IAC1E,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,yEAAyE;CACjF,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAA4D;IAC7F,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE;QACL,GAAG,EAAE,6GAA6G;QAClH,MAAM,EAAE,kEAAkE;QAC1E,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,yEAAyE;KACjF;CACF,CAAC;AAEF,uFAAuF;AACvF,MAAM,CAAC,MAAM,4BAA4B,GAA4D;IACnG,KAAK,EAAE;QACL,GAAG,EAAE,6GAA6G;QAClH,MAAM,EAAE,kEAAkE;QAC1E,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,yEAAyE;KACjF;IACD,KAAK,EAAE;QACL,GAAG,EAAE,6GAA6G;QAClH,MAAM,EAAE,kEAAkE;QAC1E,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,yEAAyE;KACjF;CACF,CAAC"}
|
package/dist/local-runtime.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface LocalRuntimeStatus {
|
|
|
13
13
|
assets?: LocalFirecrackerAssets;
|
|
14
14
|
}
|
|
15
15
|
interface RuntimeOptions extends RuntimeHostOptions {
|
|
16
|
+
media?: boolean;
|
|
16
17
|
progress?: (message: string) => void;
|
|
17
18
|
/** Explicit source-build/test override; never provided by a participant. */
|
|
18
19
|
release?: LocalRuntimeRelease;
|
package/dist/local-runtime.js
CHANGED
|
@@ -5,10 +5,10 @@ import { tmpdir } from "node:os";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { Readable, Transform } from "node:stream";
|
|
7
7
|
import { pipeline } from "node:stream/promises";
|
|
8
|
-
import { LOCAL_RUNTIME_RELEASES } from "./local-runtime-release.js";
|
|
8
|
+
import { LOCAL_MEDIA_RUNTIME_RELEASES, LOCAL_RUNTIME_RELEASES } from "./local-runtime-release.js";
|
|
9
9
|
import { limaStatus, loadRuntimeArchive, prepareLima, runtimeArchitecture, runtimeDocker, runtimeExec, usesLima } from "./local-runtime-host.js";
|
|
10
10
|
const docker = async (args, options) => (await runtimeDocker(args, options)).stdout.trim();
|
|
11
|
-
const runtimeRelease = (options) => options.release ?? LOCAL_RUNTIME_RELEASES[runtimeArchitecture(options) ?? "amd64"];
|
|
11
|
+
const runtimeRelease = (options) => options.release ?? (options.media ? LOCAL_MEDIA_RUNTIME_RELEASES : LOCAL_RUNTIME_RELEASES)[runtimeArchitecture(options) ?? "amd64"];
|
|
12
12
|
/** Read-only host and cache inspection. Never pulls an image or starts a container. */
|
|
13
13
|
export async function localRuntimeStatus(options = {}) {
|
|
14
14
|
const architecture = runtimeArchitecture(options), lima = usesLima(options);
|
|
@@ -58,27 +58,29 @@ export async function localRuntimeStatus(options = {}) {
|
|
|
58
58
|
: "Docker is unavailable. Install/start Docker Engine and give your account access, then run humanish runtime setup." };
|
|
59
59
|
}
|
|
60
60
|
const release = runtimeRelease(options);
|
|
61
|
-
const
|
|
61
|
+
const imageVariable = options.media ? "HUMANISH_LOCAL_MEDIA_RUNTIME_IMAGE" : "HUMANISH_LOCAL_RUNTIME_IMAGE";
|
|
62
|
+
const reference = env[imageVariable]?.trim() || release?.image;
|
|
62
63
|
if (!reference)
|
|
63
|
-
return { ok: false, installed: false, message:
|
|
64
|
+
return { ok: false, installed: false, message: `This build does not include a published local ${options.media ? "media " : ""}runtime. Source builds can set ${imageVariable}.` };
|
|
64
65
|
let images;
|
|
65
66
|
try {
|
|
66
67
|
images = JSON.parse(await docker(["image", "inspect", reference], options));
|
|
67
68
|
}
|
|
68
69
|
catch {
|
|
69
|
-
return env
|
|
70
|
-
? { ok: false, installed: false, message:
|
|
70
|
+
return env[imageVariable]?.trim()
|
|
71
|
+
? { ok: false, installed: false, message: `${imageVariable} must name an already-built local image. Build or load it before running.` }
|
|
71
72
|
: { ok: true, installed: false, message: "Local runtime will download before the first live run. Run humanish runtime setup to prepare it now." };
|
|
72
73
|
}
|
|
73
74
|
const image = images[0];
|
|
74
75
|
const labels = image?.Config?.Labels ?? {};
|
|
75
76
|
const revision = labels["to.humanish.runtime.revision"];
|
|
76
77
|
if (image?.Os !== "linux" || image.Architecture !== architecture || labels["to.humanish.runtime.api"] !== "1" ||
|
|
77
|
-
typeof revision !== "string" || !/^guest-api1-[a-f0-9]{64}$/.test(revision)
|
|
78
|
+
typeof revision !== "string" || !/^guest-api1-[a-f0-9]{64}$/.test(revision) ||
|
|
79
|
+
(options.media === true && labels["to.humanish.runtime.media"] !== "1")) {
|
|
78
80
|
return { ok: false, installed: false, message: "The cached image is not a compatible Humanish local browser runtime." };
|
|
79
81
|
}
|
|
80
|
-
return { ok: true, installed: true, message:
|
|
81
|
-
assets: { image: image.Id, runtimeRevision: revision } };
|
|
82
|
+
return { ok: true, installed: true, message: `Local ${options.media ? "media" : "browser"} runtime is installed. No E2B key is needed.`,
|
|
83
|
+
assets: { image: image.Id, runtimeRevision: revision, ...(labels["to.humanish.runtime.media"] === "1" ? { media: true } : {}) } };
|
|
82
84
|
}
|
|
83
85
|
/** Docker owns the installed image/cache. The archive is verified before docker load. */
|
|
84
86
|
export async function prepareLocalRuntime(options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime.js","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"local-runtime.js","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/program.js
CHANGED
|
@@ -1214,12 +1214,13 @@ function registerRuntimeCommands(parent, io) {
|
|
|
1214
1214
|
runtime.command(action)
|
|
1215
1215
|
.description(action === "status" ? "Check local Docker, virtualization and the cached browser image without downloads." : "Download and install the local browser image. Does not start a study or use model quota.")
|
|
1216
1216
|
.option("--json", JSON_OPTION_DESCRIPTION)
|
|
1217
|
+
.option("--media", "Prepare or inspect the optional camera and speech runtime.")
|
|
1217
1218
|
.action(async (_options, command) => {
|
|
1218
1219
|
const { localRuntimeStatus, prepareLocalRuntime } = await import("./local-runtime.js");
|
|
1219
1220
|
try {
|
|
1220
1221
|
if (action === "setup")
|
|
1221
|
-
await prepareLocalRuntime({ progress: message => io.writeErr(`${message}\n`) });
|
|
1222
|
-
const status = await localRuntimeStatus();
|
|
1222
|
+
await prepareLocalRuntime({ media: _options.media === true, progress: message => io.writeErr(`${message}\n`) });
|
|
1223
|
+
const status = await localRuntimeStatus({ media: _options.media === true });
|
|
1223
1224
|
const result = { schema: "humanish.runtime-result.v1", ...status };
|
|
1224
1225
|
writeResult(command, io, result, () => `${status.message}\n`);
|
|
1225
1226
|
io.setExitCode(status.ok ? 0 : 2);
|