Jake Shore 96e52666c5 MCPEngine full sync — studio scaffold, factory v2, server updates, state.json — 2026-02-12
=== NEW ===
- studio/ — MCPEngine Studio scaffold (Next.js monorepo, build plan)
- docs/FACTORY-V2.md — Factory v2 architecture doc
- docs/CALENDLY_MCP_BUILD_SUMMARY.md — Calendly MCP build report

=== UPDATED SERVERS ===
- fieldedge: Added jobs-tools, UI build script, main entry update
- lightspeed: Updated main + server entry points
- squarespace: Added collection-browser + page-manager apps
- toast: Added main + server entry points

=== INFRA ===
- infra/command-center/state.json — Updated pipeline state
- infra/command-center/FACTORY-V2.md — Factory v2 operator playbook
2026-02-12 17:58:33 -05:00

44 lines
883 B
TypeScript

'use client';
import React from 'react';
import { clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';
export interface AppShellProps {
navRail: React.ReactNode;
inspector?: React.ReactNode;
children: React.ReactNode;
className?: string;
}
export const AppShell: React.FC<AppShellProps> = ({
navRail,
inspector,
children,
className,
}) => {
return (
<div
className={twMerge(
clsx(
'flex h-screen w-screen overflow-hidden',
'bg-gray-950 text-gray-100',
),
className,
)}
>
{/* NavRail — 64px fixed left */}
{navRail}
{/* Main content — flex-1 */}
<main className="flex-1 overflow-y-auto overflow-x-hidden">
{children}
</main>
{/* Inspector panel — slide-in right */}
{inspector}
</div>
);
};
AppShell.displayName = 'AppShell';