context.ts / capability-types.ts / event-types.ts. The operator's directive binds to r206; r206 is missing. Recommended: ship r206 first, then r207. No parallel work.studio/modules/vibecoder/src/host/. 5 new files, ~600 LoC: PreviewHostMount.tsx (150), InspectorHostMount.tsx (120), CompositionMount.tsx (180), mountAll.ts (80), __tests__/mount.test.ts (80).context.ts (StudioContext type + adapter), capability-types.ts (Capability manifest), event-types.ts (typed event contract v2 with EventMap, dispatchTyped, subscribeTyped).InspectorCard.tsx as a ~15 LoC wrapper that calls <InspectorHostMount hostId="inspector-card" initialSubMode="ast" />. VibeScope still works unchanged.composition:region-clicked) flow through CompositionMount → InspectorHostMount updates selection → VibeChat/Edge Panel subscribe separately. Preview host lifecycle managed by useEffect mount/unmount dispatches (preview-host:mounted, preview-host:unmounted, preview-host:error).r207 is the mounting layer that turns the existing components (a789 PreviewHostVSIL, a788 VSILInspectorPanel, a791 CompositionGraphHost) into PM2-mountable units. Without r207, those components can only mount inside their workspace (VibeScope for Inspector, VibeCoder cockpit for the others). With r207, all 3 can mount in any chrome (PM2 panel, Edge Panel, Gallery panel).
Critical sequencing: r207 cannot start until r206 ships. r206 is the host-level StudioContext adapter + typed event contract — without it, the 3 hosts have no consistent way to get workspace state, surface state, the bus, the bridge. The plan includes the r206 contract here so it can be approved as part of the r207 plan, then shipped first (1-2 days), then r207 binds to it (2-3 days).
CustomEvent<string, any>. r207 v2 wraps them with dispatchTyped / subscribeTyped. The wrapper is backwards-compatible — v1 callers still work — but a strict migration is a separate task.VibeCoder host in avidtech6/vibecoder-standalone: r207 expects a <StudioContextProvider> at the top of the VibeCoder host. Today the host is a Vite SPA that doesn't have a host-level provider. The boot.ts (step 1) is a new file that wraps the SPA in the provider.@vibecoder/event-types package)? → default: just type, no namespacing.CompositionGraphHost events (so the inspector auto-shows region metadata when a region is clicked)? → default: yes, in v1.VSILInspectorPanel consumed as-isPreviewHostVSIL consumed as-isCompositionGraphHost consumed as-is*_CAPABILITIES pattern reusedInspectorCard.tsx thin wrapperStudioContext shape in §1.1 sufficient, or do we need additional fields (e.g. user identity, undo stack, theme tokens)? Recommend: minimum viable for r207, add fields in r208+ as needed.EVENT_NAMES live in a separate package (@vibecoder/event-types) or in the same studio/modules/vibecoder/src/host/ directory? Recommend: same directory for v1, split later if multiple modules need to import.