Launch a bound program to RUN in a region (§2). Non-blocking: resolves once the
frame is created and bound, with a LaunchHandle — or a typed
{ ok:false, code } on refusal (§8), NEVER a throw for an ordinary refusal (so
a launcher branches on code without a try/catch). The launched app runs under
its OWN grants; the launcher's authority does not flow to it (R-SAL-4).
Launch a bound program to RUN in a region (§2). Non-blocking: resolves once the frame is created and bound, with a LaunchHandle — or a typed
{ ok:false, code }on refusal (§8), NEVER a throw for an ordinary refusal (so a launcher branches oncodewithout a try/catch). The launched app runs under its OWN grants; the launcher's authority does not flow to it (R-SAL-4).const h = await launch({ task: 'open-project' }, { region: 'stage', input: { dir: capDir({ mountId: 'space:abc', relPath: 'proj' }, { mode: 'ro' }) }, }); if ('ok' in h && h.ok === false) { ...handle h.code... } else { h.onDismiss(() => ...); }
Off-host (plain
vite dev— no host transport) it rejects with a plain "no host transport" error: there is no host to run a launch in.