import { Navigate, Route, Routes } from 'react-router-dom'
import { SessionProvider, useSession } from './context/SessionContext.jsx'
import { ProgramScopeProvider } from './context/ProgramScopeContext.jsx'
import { ScopedOperationsBridge } from './layout/ScopedOperationsBridge.jsx'
import { AppLayout } from './layout/AppLayout.jsx'
import { AuthPanel } from './pages/AuthPanel.jsx'
import { ActionDetailPage } from './pages/ActionDetailPage.jsx'
import { ProjectObjectPage } from './pages/objects/ProjectObjectPage.jsx'
import { GateObjectPage } from './pages/objects/GateObjectPage.jsx'
import {
VIEWS,
WorkLayout,
WorkIndexRedirect,
PlanLayout,
PlanIndexRedirect,
ControlLayout,
ControlIndexRedirect,
} from './registry/viewRegistry.js'
import { renderModeRoutes } from './registry/renderModeRoutes.jsx'
import {
WorkspaceRedirect,
MyActionsRedirect,
InitiativeRootRedirect,
InitiativePlanRedirect,
InitiativeExecutionRedirect,
InitiativeInboxRedirect,
InitiativeJourneyRedirect,
InitiativeGateRedirect,
InitiativeProjectRedirect,
InitiativeActionRedirect,
} from './pages/LegacyRedirects.jsx'
import './app.css'
function AppRoutes() {
const { isAuthenticated, loading } = useSession()
if (loading) {
return null
}
if (!isAuthenticated) {
return
}
const topLevelViews = VIEWS.filter(
(v) =>
![
'kairo.workspace',
'kairo.my_actions',
'kairo.work',
'kairo.plan',
'kairo.control',
].includes(v.key),
)
return (
}>
{topLevelViews.map((view) => (
} />
))}
}>
} />
{renderModeRoutes('work')}
}>
} />
{renderModeRoutes('plan')}
}>
} />
{renderModeRoutes('control')}
} />
} />
} />
} />
} />
} />
} />
} />
} />
}
/>
} />
} />
} />
} />
} />
} />
)
}
export default function App() {
return (
)
}