// modules/vibecoder/src/workspaceDef.tsx // // workspaceDef — Phase 0 / Standalone extraction of the VibeCoder // sovereign workspace surface tree. // // Per pact/blueprint/workspace/workspace-model.md (D-056): VibeCoder // is one of the 4 sovereign workspaces. Its three surfaces are: // S1 (left curtain): FileTreeRail (file browser) // S2 (home/centre): EditorVibeCard (the 3-pane editor) // S3 (right curtain): InspectorPanel (6-mode inspector) // // This file is the workspaceDef for VibeCoder — it bundles the // three surfaces under a single root that wraps them in the // providers they need (VibeCoderProjectProvider + InspectorProvider // + EditorBufferProvider). Mirrors the FVS-mounted pattern // (workspaceDef is what the sovereign registry hands to the // centre-stage router), but the standalone reuses this directly // as its boot entry point. // // No chrome, no dock, no vibe-panel, no peek-panel, no centre-stage // here. The standalone IS the workspace. // // Surface 1 (left) + Surface 2 (centre) + Surface 3 (right) is // the VibeCoder shell layout. The standalone renders them in a // 3-column CSS grid with mobile collapse handled in the surface // wrappers (reactive collapse is in the parked list). import * as React from 'react'; import { VibeCoderHomeSurface } from './surfaces/VibeCoderHomeSurface'; import { VibeCoderLeftCurtain } from './surfaces/VibeCoderLeftCurtain'; import { VibeCoderRightCurtain } from './surfaces/VibeCoderRightCurtain'; export { VibeCoderHomeSurface, VibeCoderLeftCurtain, VibeCoderRightCurtain }; /** * Root layout for the VibeCoder standalone. Renders the 3 surfaces * in a grid: left curtain / home centre / right curtain. * * When user is "workspace browsing" (e.g. project list is showing), * the centre area renders VibeCoderHomeSurface instead of the * editor. Both paths share the same providers. */ export function VibeCoderWorkspaceRoot(): React.ReactElement { return (