module Web.FrontController where import IHP.RouterPrelude import IHP.LoginSupport.Middleware import IHP.ControllerPrelude (getAppConfig) import Generated.Types import Web.Types import Web.Routes () import Config (AnnotationLauncherEnabled (..)) -- Controllers import Web.Controller.Hubs () import Web.Controller.Widgets () import Web.Controller.InteractionEvents () import Web.Controller.Annotations () import Web.Controller.AnnotationThreads () import Web.Controller.RequirementCandidates () import Web.Controller.Requirements () import Web.Controller.DecisionRecords () import Web.Controller.DeploymentRecords () import Web.Controller.AgentProposals () import Web.Controller.ApiInteractionEvents () import Web.Controller.EnvelopeEmissionContracts () import Web.Controller.InteractionReportingContracts () import Web.Controller.WidgetAdapterSpecs () import Web.Controller.CrossHubPropagations () import Web.Controller.WidgetOwnerships () import Web.Controller.HubRoutingRules () import Web.Controller.FederatedPolicyOverlays () import Web.Controller.StewardshipRoles () import Web.Controller.ArchiveRecords () import Web.Controller.FederatedGovernance () import Web.Controller.TypeRegistries () import Web.Controller.HubCapabilityManifests () -- Phase 9 — External API Surface (IHUB-WP-0010) import Web.Controller.ApiConsumers () import Web.Controller.ApiKeys () import Web.Controller.WebhookSubscriptions () import Web.Controller.ApiDashboard () import Web.Controller.Api.V2.Widgets () import Web.Controller.Api.V2.InteractionEvents () import Web.Controller.Api.V2.Annotations () import Web.Controller.Api.V2.RequirementCandidates () import Web.Controller.Api.V2.DecisionRecords () import Web.Controller.Api.V2.DeploymentRecords () import Web.Controller.Api.V2.OutcomeSignals () import Web.Controller.Api.V2.Registries () import Web.Controller.Api.V2.OpenApi () import Web.Controller.Api.V2.Token () import Web.Controller.Api.V2.Sdk () -- Phase 10 — Hub Registry and Widget Marketplace (IHUB-WP-0011) import Web.Controller.HubRegistry () import Web.Controller.WidgetPatterns () import Web.Controller.GovernanceTemplates () import Web.Controller.MarketplaceDashboard () import Web.Controller.Api.V2.HubRegistry () import Web.Controller.Api.V2.WidgetPatterns () import Web.Controller.Sessions () instance FrontController WebApplication where controllers = [ parseRoute @SessionsController , parseRoute @HubsController , parseRoute @WidgetsController , parseRoute @InteractionEventsController , parseRoute @AnnotationsController , parseRoute @AnnotationThreadsController , parseRoute @RequirementCandidatesController , parseRoute @RequirementsController , parseRoute @DecisionRecordsController , parseRoute @DeploymentRecordsController , parseRoute @AgentProposalsController , parseRoute @ApiInteractionEventsController , parseRoute @EnvelopeEmissionContractsController , parseRoute @InteractionReportingContractsController , parseRoute @WidgetAdapterSpecsController , parseRoute @CrossHubPropagationsController , parseRoute @WidgetOwnershipsController , parseRoute @HubRoutingRulesController , parseRoute @FederatedPolicyOverlaysController , parseRoute @StewardshipRolesController , parseRoute @ArchiveRecordsController , parseRoute @FederatedGovernanceController , parseRoute @TypeRegistriesController , parseRoute @HubCapabilityManifestsController -- Phase 9 — External API Surface (IHUB-WP-0010) , parseRoute @ApiConsumersController , parseRoute @ApiKeysController , parseRoute @WebhookSubscriptionsController , parseRoute @ApiDashboardController -- /api/v2/ REST endpoints (registered before /api/v1/ to avoid prefix clash) , parseRoute @ApiV2WidgetsController , parseRoute @ApiV2InteractionEventsController , parseRoute @ApiV2AnnotationsController , parseRoute @ApiV2RequirementCandidatesController , parseRoute @ApiV2DecisionRecordsController , parseRoute @ApiV2DeploymentRecordsController , parseRoute @ApiV2OutcomeSignalsController , parseRoute @ApiV2RegistriesController , parseRoute @ApiV2OpenApiController , parseRoute @ApiV2TokenController , parseRoute @ApiV2SdkController -- Phase 10 — Hub Registry and Widget Marketplace (IHUB-WP-0011) , parseRoute @HubRegistryController , parseRoute @WidgetPatternsController , parseRoute @GovernanceTemplatesController , parseRoute @MarketplaceDashboardController , parseRoute @ApiV2HubRegistryController , parseRoute @ApiV2WidgetPatternsController ] instance InitControllerContext WebApplication where initContext = do setLayout defaultLayout initAuthentication @User annotationLauncherScript :: (?context :: ControllerContext) => Html annotationLauncherScript = let AnnotationLauncherEnabled enabled = getAppConfig @AnnotationLauncherEnabled in if enabled then [hsx||] else mempty defaultLayout :: Layout defaultLayout inner = [hsx|