import { FormEvent, useCallback, useEffect, useRef, useState } from "react";
import {
Boxes, Command, Cpu, Database, FlaskConical, Menu, Monitor, Moon, Plus, RefreshCw,
ShieldCheck, Sun, X,
} from "lucide-react";
import { CommandCenter } from "./components/CommandCenter";
import { CommandPalette } from "./components/CommandPalette";
import { ModelsRegistry } from "./components/ModelsRegistry";
import { DiscoverWorkspace } from "./components/DiscoverWorkspace";
import { RuntimeWorkspace } from "./components/RuntimeWorkspace";
import { CapabilityWorkspace } from "./components/CapabilityWorkspace";
import { EvaluationWorkspace } from "./components/EvaluationWorkspace";
import { AdvisorWorkspace } from "./components/AdvisorWorkspace";
import { LifecycleWorkspace } from "./components/LifecycleWorkspace";
import { MigrationWorkspace } from "./components/MigrationWorkspace";
import { OperationsWorkspace } from "./components/OperationsWorkspace";
import { RecoveryWorkspace } from "./components/RecoveryWorkspace";
import {
api, ApiError, clearOperatorCredential, setOperatorCredential,
onOperatorSessionInvalidated, operatorCredentialReference,
type PublicHealth, type PublicRelease,
} from "./lib/api";
import { navigation, navigationGroups, type RouteKey } from "./navigation";
import type {
AcceleratorState, CapabilityDeployment, EnrollmentCreated, HardwareState, ModelSummary,
NodeDecommissionPreview, NodeDecommissionRecordCount, NodeDecommissionResult, NodeState,
ObservedValue, ProjectIntegration, ProjectSummary, SchedulerBudget, SystemMetadata,
} from "./types";
type Theme = "dark" | "light" | "system";
const THEME_STORAGE_KEY = "modelforge.theme";
const MOBILE_NAV_MEDIA = "(max-width: 860px)";
function readStoredTheme(): Theme {
// Storage can throw outright in a private window or when site data is blocked, so a failure to
// read a cosmetic preference must never stop the console from rendering.
try {
const stored = window.localStorage.getItem(THEME_STORAGE_KEY);
if (stored === "dark" || stored === "light" || stored === "system") return stored;
} catch { /* fall through to the default */ }
return "system";
}
function currentRoute(): string {
const route = window.location.hash.replace("#/", "");
if (route.startsWith("nodes/")) return route;
return navigation.some((item) => item.key === route) ? route : "overview";
}
function routeKey(route: string): RouteKey {
return route.startsWith("nodes/") ? "nodes" : (route as RouteKey);
}
function LoadingState() {
return
Loading control-plane state…
;
}
function EmptyState({ children }: { children: string }) {
return {children}
;
}
export default function App() {
const [route, setRoute] = useState(currentRoute);
const [models, setModels] = useState([]);
const [projects, setProjects] = useState([]);
const [projectIntegrations, setProjectIntegrations] = useState([]);
const [hardware, setHardware] = useState(null);
const [deployments, setDeployments] = useState([]);
const [budgets, setBudgets] = useState([]);
const [deploymentsLoaded, setDeploymentsLoaded] = useState(false);
const [budgetsLoaded, setBudgetsLoaded] = useState(false);
const [refreshing, setRefreshing] = useState(false);
const [system, setSystem] = useState(null);
const [lastUpdated, setLastUpdated] = useState(null);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const [pollError, setPollError] = useState(null);
const [operatorUnlocked, setOperatorUnlocked] = useState(false);
const [operatorDraft, setOperatorDraft] = useState("");
const [unlocking, setUnlocking] = useState(false);
const [publicHealth, setPublicHealth] = useState(null);
const [publicRelease, setPublicRelease] = useState(null);
const [theme, setTheme] = useState(readStoredTheme);
const [navOpen, setNavOpen] = useState(false);
const [paletteOpen, setPaletteOpen] = useState(false);
const menuButtonRef = useRef(null);
const closeButtonRef = useRef(null);
const sidebarRef = useRef(null);
const navWasOpen = useRef(false);
const navOpenRef = useRef(false);
const closeFocusTarget = useRef<"menu" | "active-route">("menu");
const loadControlPlane = useCallback(async () => {
setLoading(true);
setError(null);
await Promise.all([api.system(), api.models(), api.projects(), api.projectIntegrations(), api.hardware()])
.then(async ([systemData, modelData, projectData, integrationData, hardwareData]) => {
setSystem(systemData);
setModels(modelData.items);
setProjects(projectData);
setProjectIntegrations(integrationData);
setHardware(hardwareData);
const [deploymentResult, budgetResult] = await Promise.allSettled([
api.capabilityDeployments(), api.scheduler(),
]);
setDeploymentsLoaded(deploymentResult.status === "fulfilled" && Array.isArray(deploymentResult.value));
setBudgetsLoaded(budgetResult.status === "fulfilled" && Array.isArray(budgetResult.value));
if (deploymentResult.status === "fulfilled" && Array.isArray(deploymentResult.value)) setDeployments(deploymentResult.value);
if (budgetResult.status === "fulfilled" && Array.isArray(budgetResult.value)) setBudgets(budgetResult.value);
setLastUpdated(new Date());
})
.catch((cause: unknown) => setError(cause instanceof Error ? cause.message : "Unable to load ModelForge API"))
.finally(() => setLoading(false));
}, []);
useEffect(() => {
const onHashChange = () => setRoute(currentRoute());
window.addEventListener("hashchange", onHashChange);
Promise.allSettled([api.liveness(), api.version()]).then(([healthResult, releaseResult]) => {
if (healthResult.status === "fulfilled") setPublicHealth(healthResult.value);
if (releaseResult.status === "fulfilled") setPublicRelease(releaseResult.value);
});
return () => window.removeEventListener("hashchange", onHashChange);
}, []);
useEffect(() => {
if (!operatorUnlocked) return;
void loadControlPlane();
}, [loadControlPlane, operatorUnlocked]);
useEffect(() => onOperatorSessionInvalidated(() => {
lockOperatorSession();
setError("Operator session is no longer valid; unlock again to continue");
}), []);
useEffect(() => {
if (!operatorUnlocked) return undefined;
const interval = window.setInterval(() => {
api.hardware()
.then((state) => { setHardware(state); setPollError(null); setLastUpdated(new Date()); })
.catch((cause: unknown) => setPollError(cause instanceof Error ? cause.message : "Hardware polling failed"));
}, 5000);
return () => window.clearInterval(interval);
}, [operatorUnlocked]);
useEffect(() => {
const root = document.documentElement;
if (theme === "system") root.removeAttribute("data-theme");
else root.setAttribute("data-theme", theme);
try { window.localStorage.setItem(THEME_STORAGE_KEY, theme); } catch { /* preference is not load-bearing */ }
}, [theme]);
// Escape closes the mobile drawer; a drawer you can open but not close is a trap.
useEffect(() => {
if (!navOpen) return undefined;
const onKeyDown = (event: KeyboardEvent) => { if (event.key === "Escape") setNavOpen(false); };
window.addEventListener("keydown", onKeyDown);
return () => window.removeEventListener("keydown", onKeyDown);
}, [navOpen]);
useEffect(() => {
const onShortcut = (event: KeyboardEvent) => {
if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === "k") {
if (document.querySelector('[aria-modal="true"]')) return;
event.preventDefault();
setPaletteOpen((current) => !current);
}
};
window.addEventListener("keydown", onShortcut);
return () => window.removeEventListener("keydown", onShortcut);
}, []);
useEffect(() => {
if (typeof window.matchMedia !== "function") return undefined;
const mobile = window.matchMedia(MOBILE_NAV_MEDIA);
const closeAfterResize = (event: MediaQueryListEvent) => {
if (!event.matches && navOpenRef.current) {
closeFocusTarget.current = "active-route";
setNavOpen(false);
}
};
mobile.addEventListener("change", closeAfterResize);
return () => mobile.removeEventListener("change", closeAfterResize);
}, []);
useEffect(() => {
navOpenRef.current = navOpen;
if (navOpen) {
navWasOpen.current = true;
closeButtonRef.current?.focus();
} else if (navWasOpen.current) {
navWasOpen.current = false;
if (closeFocusTarget.current === "active-route") {
sidebarRef.current?.querySelector('button[aria-current="page"]')?.focus();
} else {
menuButtonRef.current?.focus();
}
closeFocusTarget.current = "menu";
}
}, [navOpen]);
const activeRoute = routeKey(route);
const routeInfo = navigation.find((item) => item.key === activeRoute)!;
const detailNode = route.startsWith("nodes/")
? hardware?.nodes.find((node) => node.id === route.slice(6))
: undefined;
const navigate = useCallback((key: string) => {
window.location.hash = `#/${key}`;
setRoute(key);
setNavOpen(false);
}, []);
async function refreshHardware() {
if (refreshing) return;
setRefreshing(true);
setError(null);
try { setHardware(await api.refreshHardware()); }
catch (cause: unknown) { setError(cause instanceof Error ? cause.message : "Hardware refresh failed"); }
finally { setRefreshing(false); }
}
async function refreshDashboard() {
if (refreshing) return;
setRefreshing(true);
setError(null);
try {
const [hardwareResult, deploymentResult, budgetResult] = await Promise.allSettled([
api.hardware(), api.capabilityDeployments(), api.scheduler(),
]);
if (hardwareResult.status === "fulfilled") setHardware(hardwareResult.value);
setDeploymentsLoaded(deploymentResult.status === "fulfilled" && Array.isArray(deploymentResult.value));
setBudgetsLoaded(budgetResult.status === "fulfilled" && Array.isArray(budgetResult.value));
if (deploymentResult.status === "fulfilled" && Array.isArray(deploymentResult.value)) setDeployments(deploymentResult.value);
if (budgetResult.status === "fulfilled" && Array.isArray(budgetResult.value)) setBudgets(budgetResult.value);
const failures = [hardwareResult, deploymentResult, budgetResult].filter((result) => result.status === "rejected");
setPollError(failures.length ? `${failures.length} command-center evidence source${failures.length === 1 ? "" : "s"} unavailable` : null);
setLastUpdated(new Date());
} finally { setRefreshing(false); }
}
function cycleTheme() {
setTheme((current) => (current === "system" ? "dark" : current === "dark" ? "light" : "system"));
}
async function unlockOperatorSession(event: FormEvent) {
event.preventDefault();
if (!operatorDraft || unlocking) return;
setUnlocking(true);
setError(null);
try {
const verifiedSystem = await api.verifyOperatorCredential(operatorDraft);
setOperatorCredential(operatorDraft);
setOperatorDraft("");
setSystem(verifiedSystem);
setOperatorUnlocked(true);
} catch (cause: unknown) {
clearOperatorCredential();
setError(cause instanceof Error ? cause.message : "Operator authentication failed");
} finally {
setUnlocking(false);
}
}
function lockOperatorSession() {
clearOperatorCredential();
setOperatorDraft("");
setOperatorUnlocked(false);
setModels([]);
setProjects([]);
setProjectIntegrations([]);
setHardware(null);
setDeployments([]);
setBudgets([]);
setDeploymentsLoaded(false);
setBudgetsLoaded(false);
setSystem(null);
setError(null);
setPollError(null);
setLastUpdated(null);
}
const title = detailNode?.display_name ?? routeInfo.label;
const description = detailNode
? `Observed inventory and telemetry reported by this node's agent.`
: routeInfo.description;
if (!operatorUnlocked) {
return ;
}
return
{
event.preventDefault();
document.getElementById("workspace-content")?.focus();
}}>Skip to workspace
setNavOpen(true)}
aria-label="Open navigation"
aria-expanded={navOpen}
aria-controls="primary-sidebar"
>
{title}
{navOpen ?
setNavOpen(false)} /> : null}
ModelForge / {routeInfo.group} / {title}
setPaletteOpen(true)}>Quick jump Ctrl K
Lock console
{routeInfo.group.toUpperCase()}
{title}
{description}
{system?.environment ?? "control plane"} · v{system?.version ?? "…"}
{error ? (
Operation failed
{error}. No operational state is being inferred.
) : null}
{pollError ? (
Live node updates paused
{pollError}. Last-good state is retained.
) : null}
{loading ? : null}
{!loading && activeRoute === "overview" ? (
) : null}
{!loading && activeRoute === "models" ? : null}
{!loading && activeRoute === "discover" ? : null}
{!loading && activeRoute === "runtime" ? : null}
{!loading && activeRoute === "capabilities" ? : null}
{!loading && activeRoute === "evaluation" ? : null}
{!loading && activeRoute === "recommendations" ? : null}
{!loading && activeRoute === "lifecycle" ? : null}
{!loading && activeRoute === "migrations" ? : null}
{!loading && activeRoute === "operations" ? : null}
{!loading && activeRoute === "recovery" ? : null}
{!loading && activeRoute === "projects" ? : null}
{!loading && activeRoute === "nodes" && !route.startsWith("nodes/") ? (
navigate(`nodes/${id}`)}
onError={setError}
/>
) : null}
{!loading && route.startsWith("nodes/") ? (
detailNode ? (
navigate("nodes")}
onChanged={async () => setHardware(await api.hardware())}
onError={setError}
/>
) : Compute node not found.
) : null}
{!loading && !routeInfo.implemented ? : null}
setPaletteOpen(false)} onNavigate={navigate} />
;
}
function OperatorSessionLock({
credential, unlocking, error, health, release, theme,
onCredential, onSubmit, onTheme,
}: {
credential: string;
unlocking: boolean;
error: string | null;
health: PublicHealth | null;
release: PublicRelease | null;
theme: Theme;
onCredential: (value: string) => void;
onSubmit: (event: FormEvent
) => void;
onTheme: () => void;
}) {
return
MODELFORGE CONTROL PLANE
Operator session locked
Unlock once to load governed models, projects, hardware and operational evidence. The credential stays only in this page's memory and is cleared when you lock or reload the console.
API liveness {health?.status ?? "checking"}
Release {release?.version ?? "checking"}
{error ? Unlock denied {error}
: null}
No credential is written to localStorage, sessionStorage, a URL, telemetry or logs.
;
}
function ThemeButton({ theme, onClick }: { theme: Theme; onClick: () => void }) {
const Icon = theme === "dark" ? Moon : theme === "light" ? Sun : Monitor;
const next = theme === "system" ? "dark" : theme === "dark" ? "light" : "system";
return (
);
}
function Nodes({ hardware, refreshing, onRefresh, onSelect, onError }: {
hardware: HardwareState | null; refreshing: boolean; onRefresh: () => void;
onSelect: (id: string) => void; onError: (message: string | null) => void;
}) {
const [enrolling, setEnrolling] = useState(false);
return
{hardware?.overview.node_count ?? 0} registered nodes · {hardware?.overview.accelerator_count ?? 0} accelerators
setEnrolling((value) => !value)}> Enroll node
{refreshing ? "Refreshing…" : "Refresh local"}
{enrolling ?
setEnrolling(false)} onError={onError} /> : null}
{!hardware?.nodes.length ? (
No compute nodes are registered. Create an enrollment token to connect one.
) : (
{hardware.nodes.map((node) => {
const gpu = node.accelerators[0];
return (
onSelect(node.id)}>
{node.observation_source.replace("_", " ")}
{node.display_name}
{gpu ? `${gpu.name} · ${formatObservedBytes(gpu.total_vram_bytes)}` : "No accelerator"}
{eligibility(node).join(" · ") || "not scheduler eligible"}
);
})}
)}
;
}
function EnrollmentPanel({ onClose, onError }: { onClose: () => void; onError: (message: string | null) => void }) {
const sessionCredential = operatorCredentialReference();
const [adminToken, setAdminToken] = useState(sessionCredential);
const [displayName, setDisplayName] = useState("");
const [role, setRole] = useState("worker");
const [labelsJson, setLabelsJson] = useState("{}");
const [productionEligible, setProductionEligible] = useState(false);
const [labEligible, setLabEligible] = useState(true);
const [benchmarkEligible, setBenchmarkEligible] = useState(false);
const [result, setResult] = useState(null);
const [submitting, setSubmitting] = useState(false);
async function submit(event: FormEvent) {
event.preventDefault();
setSubmitting(true);
onError(null);
try {
const labels = JSON.parse(labelsJson) as Record;
if (!labels || Array.isArray(labels) || typeof labels !== "object") throw new Error("Labels must be a JSON object");
if (Object.values(labels).some((value) => typeof value !== "string" && typeof value !== "boolean")) {
throw new Error("Label values must be strings or booleans");
}
setResult(await api.createEnrollment({
expires_in_seconds: 900,
display_name: displayName || undefined,
role: role || undefined,
labels,
production_eligible: productionEligible,
lab_eligible: labEligible,
benchmark_eligible: benchmarkEligible,
}, adminToken));
setAdminToken("");
} catch (cause: unknown) {
onError(cause instanceof Error ? cause.message : "Enrollment creation failed");
} finally {
setSubmitting(false);
}
}
if (result) {
return
ONE-TIME SECRET
Enrollment token created
Copy this now. ModelForge stores only its hash and will never display it again.
{result.enrollment_token}
{Object.entries(result.setup_environment).map(([key, value]) => `${key}=${value}`).join("\n")}
Expires {new Date(result.expires_at).toLocaleString()} and becomes invalid after first use.
Waiting for the first authenticated report; the node list updates automatically.
Done
;
}
return ;
}
function NodeDetail({ node, onBack, onChanged, onError }: {
node: NodeState; onBack: () => void; onChanged: () => Promise;
onError: (message: string | null) => void;
}) {
return
← All compute nodes
{node.last_connection_error ? (
Agent report warning {node.last_connection_error}
) : null}
NODE ID {node.id}
{node.hostname}
{node.status}
{Object.entries(node.labels).map(([key, value]) => {key}={String(value)})}
{eligibility(node).map((item) => {item})}
{node.accelerators.length
? node.accelerators.map((gpu) => )
: No NVIDIA accelerator detected. }
{node.storage.map((disk) => (
{disk.purpose}
{disk.path}
{formatObservedBytes(disk.free_bytes)} free / {formatObservedBytes(disk.total_bytes)}
))}
;
}
function NodeDecommissionPanel({ node, onChanged, onError }: {
node: NodeState; onChanged: () => Promise; onError: (message: string | null) => void;
}) {
const sessionCredential = operatorCredentialReference();
const [adminToken, setAdminToken] = useState(sessionCredential);
const [operator, setOperator] = useState("");
const [reason, setReason] = useState("");
const [confirmation, setConfirmation] = useState("");
const [preview, setPreview] = useState(null);
const [result, setResult] = useState(null);
const [busy, setBusy] = useState(false);
const [localError, setLocalError] = useState(null);
const [idempotencyKey] = useState(() => `node-decommission:${node.id}:${Date.now()}`);
async function loadPreview() {
setBusy(true);
setLocalError(null);
onError(null);
try {
setPreview(await api.previewNodeDecommission(node.id, adminToken));
setResult(null);
} catch (cause: unknown) {
setLocalError(cause instanceof Error ? cause.message : "Decommission preview failed");
} finally {
setBusy(false);
}
}
async function execute() {
if (!preview?.safe) return;
setBusy(true);
setLocalError(null);
onError(null);
try {
const completed = await api.decommissionNode(node.id, {
expected_generation: preview.node_generation,
preview_digest: preview.dependency_digest,
idempotency_key: idempotencyKey,
operator,
reason,
confirmation,
}, adminToken);
setResult(completed);
setAdminToken("");
await onChanged();
} catch (cause: unknown) {
const message = cause instanceof Error ? cause.message : "Node decommission failed";
setLocalError(message);
if (cause instanceof ApiError && cause.code === "decommission_preview_stale") setPreview(null);
} finally {
setBusy(false);
}
}
if (node.decommissioned_at || result) {
return
TERMINAL NODE TOMBSTONE
Node decommissioned
Old credentials are revoked and this persisted identity cannot automatically enroll, publish inventory, or return online.
;
}
return
DANGER ZONE · AUDITED LIFECYCLE
Decommission this node
This is not a delete. Preview first; execution fails closed if work, residency, leases, approvals, migrations, enrollment, or production safety still depends on the node.
{localError ? Decommission refused {localError}
: null}
{!sessionCredential ? Operator API key setAdminToken(event.target.value)} /> : null}
Operator identity setOperator(event.target.value)} placeholder="name or change owner" />
Reason
{busy ? "Checking…" : "Preview decommission"}
{preview ?
{preview.safe ? "Safe to decommission" : `${preview.blockers.length} safety blocker${preview.blockers.length === 1 ? "" : "s"}`}
Generation {preview.node_generation} · dependency digest {preview.dependency_digest.slice(0, 12)}…
{preview.blockers.length ?
Blocking dependencies
{preview.blockers.map((blocker) =>
{blocker.code.replaceAll("_", " ")}
{blocker.message}
{blocker.record_type} · {blocker.count}
)}
: null}
{preview.safe ?
Type {preview.persisted_identity}, {preview.hostname}, or {preview.display_name} to confirm
setConfirmation(event.target.value)} autoComplete="off" />
{busy ? "Decommissioning…" : "Permanently decommission node"}
: null}
: null}
;
}
function DecommissionCounts({ title, rows }: { title: string; rows: NodeDecommissionRecordCount[] }) {
return {title} {rows.map((row) =>
{row.record_type.replaceAll("_", " ")} {row.count} · {row.action.replaceAll("_", " ")}
)} ;
}
function Liveness({ state }: { state: NodeState["liveness"] }) {
return {state} ;
}
function eligibility(node: NodeState): string[] {
return [node.production_eligible && "production", node.lab_eligible && "lab", node.benchmark_eligible && "benchmark"]
.filter((value): value is string => Boolean(value));
}
function formatAge(value?: string | null): string {
if (!value) return "never";
const seconds = Math.max(0, Math.round((Date.now() - new Date(value).getTime()) / 1000));
return `${formatSeconds(seconds)} ago`;
}
function formatSeconds(value?: number | null): string {
if (value == null) return "unknown";
if (value < 60) return `${value}s`;
if (value < 3600) return `${Math.floor(value / 60)}m`;
return `${Math.floor(value / 3600)}h`;
}
function formatObserved(observation?: ObservedValue | null): string {
if (!observation || observation.availability !== "known") {
return observation?.availability?.replace("_", " ") ?? "unknown";
}
return String(observation.value);
}
function formatObservedBytes(observation?: ObservedValue | null): string {
return observation?.availability === "known" && observation.value != null
? `${(observation.value / 1024 ** 3).toFixed(1)} GB`
: formatObserved(observation);
}
function Meter({ value }: { value?: ObservedValue | null }) {
const percent = value?.availability === "known" && value.value != null
? Math.max(0, Math.min(100, value.value))
: null;
return (
);
}
function Property({ label, value }: { label: string; value: string }) {
return {label} {value}
;
}
function GpuCard({ gpu }: { gpu: AcceleratorState }) {
const compute = gpu.compute_capability_major.availability === "known" && gpu.compute_capability_minor.availability === "known"
? `${gpu.compute_capability_major.value}.${gpu.compute_capability_minor.value}`
: "unknown";
return
NVIDIA ACCELERATOR
{gpu.name}
{gpu.device_uuid.length > 22 ? `${gpu.device_uuid.slice(0, 18)}…` : gpu.device_uuid}
{gpu.status}
GPU utilization
{gpu.telemetry
? formatObserved(gpu.telemetry.gpu_utilization_percent) + (gpu.telemetry.gpu_utilization_percent.availability === "known" ? "%" : "")
: "unknown"}
;
}
function ModelRows({ models }: { models: ModelSummary[] }) {
if (!models.length) return No candidate metadata has been registered. ;
return
{models.map((model) => {
const capabilities = Array.isArray(model.interpretation_metadata.intended_capabilities)
? model.interpretation_metadata.intended_capabilities.map(String)
: [];
return
{model.display_name}
{String(model.interpretation_metadata.proposed_role ?? "No local role interpretation")}
{capabilities.map((capability) => {capability})}
{model.verification_status}
{model.deployment_status.replace("_", " ")}
;
})}
;
}
function Projects({ projects, integrations }: { projects: ProjectSummary[]; integrations: ProjectIntegration[] }) {
if (!projects.length) return No project manifests are registered. ;
const activeIntegrations = integrations.filter((item) => item.state.toLowerCase() === "active").length;
const requestVolume = integrations.reduce((sum, item) => sum + item.usage.request_volume, 0);
return
Registered projects {projects.length} Manifest-backed consumers
Capability bindings {projects.reduce((sum, item) => sum + item.bindings.length, 0)} No concrete model paths
Active integrations {activeIntegrations}/{integrations.length} {requestVolume.toLocaleString()} observed requests
{projects.map((project) => {
const active = integrations.filter((item) => item.project_key === project.id);
return
PROJECT · {project.id} {project.name} {project.description}
{project.bindings.length} bindings · {active.length} integrations
Declared capability contracts Manifest source of truth
{project.bindings.map((binding) =>
{binding.capability}@{binding.contract_version}
{binding.binding.channel} · {binding.binding.priority}{binding.binding.optional ? " · optional" : ""}
)}
Operational integrations Credential identity, usage and project fit
{active.length ? active.map((item) =>
{item.capability}{item.client_name} · {item.environment}
{item.state}
{item.purpose}
Requests {item.usage.request_volume.toLocaleString()} Success {item.usage.successful_requests.toLocaleString()} Errors {item.usage.error_count.toLocaleString()} p95 {item.usage.latency_p95_ms == null ? "—" : `${item.usage.latency_p95_ms.toFixed(1)} ms`}
Engineering {item.project_fit?.engineering_integration ?? "INCOMPLETE"} Fit {item.project_fit?.recommendation ?? "REQUIRES_MORE_EVIDENCE"} Production {item.project_fit?.production_validation ?? "REQUIRED"}
) : Planning bindings only No scoped consumer identity has used ModelForge yet.
}
;
})}
;
}
function FutureRoute({ title }: { title: string }) {
return
NOT AVAILABLE IN THIS RELEASE
{title} has no console workspace in this release
The route is reserved in the information architecture. ModelForge will not fabricate data or expose premature controls.
;
}