feat: an optional origin where an artifact may actually run master
A page-shaped artifact is framed sandboxed without allow-same-origin, which is what keeps generated markup away from the app it is shown in — and also why it can never hold a camera, a microphone, or storage: permissions belong to origins, and that frame has an opaque one. The way out is a different origin rather than a weaker sandbox. Set server.artifactOrigin to a host that owns nothing and the pane loads the page from there with allow-same-origin and an explicit camera grant; same origin then means that empty host, not the app. Unset, everything is exactly as it was. The module is mostly refusals: it answers only on that host, serves only HTML, names who may frame it, and the app's API refuses to answer there at all — so a proxy that forwards too much still cannot make it the app's origin.