import { useEffect, useState } from 'react' import { useParams } from 'react-router-dom' import { apiFetch } from '@core/lib/api' import { Card, CardContent, CardHeader, CardTitle } from '@core/components/ui/card' export default function CILProjectDetailPage() { const { id } = useParams<{ id: string }>() const [project, setProject] = useState(null) const [loading, setLoading] = useState(false) const [error, setError] = useState(null) useEffect(() => { if (!id) return setLoading(true) apiFetch(`/api/admin-data?entity=items&id=${encodeURIComponent(id)}`) .then(r => r.json()) .then(json => { if (json.error) throw new Error(json.error) setProject(json.data || null) }) .catch(err => { setError(err.message || 'Failed to load project') }) .finally(() => setLoading(false)) }, [id]) if (!id) return

Project id is required.

if (loading) return

Loading project...

if (error) return

{error}

if (!project) return

Project not found.

return (

{project.title || 'CIL Project'}

{project.id}

Configuration
{JSON.stringify(project.data || {}, null, 2)}

Advanced CIL operations (search, graph, ingest, health, proposals, agent) are available through the spine_cil_* MCP tools on the spine-framework MCP server.

) }