> = {
intake: {
ideas: 'Ideas',
'discovery-board': 'Discovery Board',
discoveries: 'Discovery',
},
planning: {
'initiatives-board': 'Initiatives',
'epics-board': 'Epics',
initiatives: 'Initiative',
epics: 'Epic',
},
work: {
dashboard: 'Dashboard',
board: 'Kanban Board',
prioritization: 'Prioritization',
sprints: 'Sprints',
backlog: 'Backlog',
'parking-lot': 'Parking Lot',
'docs-board': 'Docs Board',
'docs-tickets': 'Docs Tickets',
'test-plans': 'Test Plan Board',
items: 'Item',
},
engineering: {
board: 'Kanban Board',
items: 'Item',
planning: 'Planning',
epics: 'Epics',
sprints: 'Sprints',
backlog: 'Backlog',
'parking-lot': 'Parking Lot',
docs: 'Docs Board',
'test-plans': 'Test Plan Board',
},
devops: {
dashboard: 'Main Dashboard',
kanban: 'Kanban Board',
},
qa: {
dashboard: 'Dashboard',
kanban: 'Kanban Board',
'ai-training': 'AI Training',
unit: 'Unit Tests',
integration: 'Integration Tests',
e2e: 'E2E Tests',
runs: 'Test Runs',
},
delivery: {
pipelines: 'Pipeline Runs',
deployments: 'Deployments',
environments: 'Environments',
releases: 'Releases',
},
logging: {
logs: 'Log List',
signals: 'Signals',
uptime: 'Uptime',
performance: 'Performance',
services: 'Services',
},
incident: {
dashboard: 'Incident Dashboard',
board: 'Incident Board',
},
knowledge: {
dashboard: 'Knowledge Base Dashboard',
kb: 'KB Kanban',
ai: 'KB AI',
articles: 'KB Articles',
runbooks: 'Run Books',
postmortems: 'Postmortems',
cil: 'Code Intelligence',
},
}
function subsectionTitle(section: string, sub: string): string {
return SUBSECTION_TITLES[section]?.[sub] || sub.charAt(0).toUpperCase() + sub.slice(1)
}
function WorkbenchLayout() {
const location = useLocation()
const appPath = useAppPath()
const hasActiveSev1 = useActiveSev1()
const segments = location.pathname.split('/').filter(Boolean)
const breadcrumbs: { title: string; url?: string }[] = []
const section = segments[1]
const sub = segments[2]
if (section === 'dashboard' || !section) {
breadcrumbs.push({ title: 'Command Center' })
} else {
breadcrumbs.push({ title: 'Workbench', url: appPath('/dashboard') })
breadcrumbs.push({ title: SECTION_TITLES[section] || section.charAt(0).toUpperCase() + section.slice(1) })
if (sub) {
const leaf = segments[3] && sub !== 'items' ? segments[3] : sub
breadcrumbs.push({
title: sub === 'items' && segments[3]
? segments[3] === 'new'
? 'New'
: segments[3]
: subsectionTitle(section, leaf),
})
}
}
const Fallback =
return (
}
breadcrumbs={breadcrumbs}
banner={hasActiveSev1 ? : undefined}
>
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
)
}
// CIL[END chunk_id="workbench_index_layout_1784572423"]
// CIL[BEGIN chunk_id="workbench_index_app_1784572423" type="function" identity="WorkbenchApp" parent="none"]
// CIL[DOC-MACRO purpose="Export the default Workbench app wrapped in the Tooltip provider"]
// CIL[DOC-RESPONSIBILITY responsibility="Serve as the default exported component loaded by the Spine app registry"]
// CIL[DOC-CONTEXT module="workbench" layer="frontend-entry" related_files="[\"custom/apps/workbench/index.tsx\"]"]
// CIL[DOC-CONTRACT inputs="none" outputs="JSX WorkbenchLayout wrapped in TooltipProvider" errors="none" side_effects="renders DOM"]
// CIL[DOC-MICRO logic_summary="Wraps WorkbenchLayout in TooltipProvider so tooltips work across the app" notable_decisions=[]]
// CIL[DOC-CONFIDENCE pass="first" score="0.95" flags="none"]
// CIL[DOC-STABILITY stability="stable"]
// CIL[DOC-AUDIENCE audience="developer"]
export default function WorkbenchApp() {
return (
)
}
// CIL[END chunk_id="workbench_index_app_1784572423"]