module Web.FrontController where import IHP.RouterPrelude import IHP.LoginSupport.Middleware import IHP.ControllerPrelude import IHP.ViewPrelude (Html, hsx, Layout, autoRefreshMeta) import Generated.Types import Web.Types import Web.Routes () -- 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 () import Web.Controller.Api.V2.Hubs () import Web.Controller.Api.V2.HubCapabilityManifests () -- 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 () -- Phase 11 — Advanced AI Federation (IHUB-WP-0012) import Web.Controller.AgentRegistrations () import Web.Controller.ModelRoutingPolicies () import Web.Controller.AgentDelegations () import Web.Controller.CollectiveProposals () import Web.Controller.AiGovernancePolicies () -- Phase 12 — Platform Memory and Continuous Learning (IHUB-WP-0013) import Web.Controller.OutcomeCorrelations () import Web.Controller.PatternPerformance () import Web.Controller.AdaptiveThresholds () import Web.Controller.InstitutionalKnowledge () import Web.Controller.LineageEnrichment () import Web.Controller.LearningDashboard () import Web.Controller.Api.V2.Learning () import Web.Controller.Sessions () -- WP-0015 — Public intro / tutorial pages import Web.Controller.StaticPages () 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 , parseRoute @ApiV2HubsController , parseRoute @ApiV2HubCapabilityManifestsController -- Phase 10 — Hub Registry and Widget Marketplace (IHUB-WP-0011) , parseRoute @HubRegistryController , parseRoute @WidgetPatternsController , parseRoute @GovernanceTemplatesController , parseRoute @MarketplaceDashboardController , parseRoute @ApiV2HubRegistryController , parseRoute @ApiV2WidgetPatternsController -- Phase 11 — Advanced AI Federation (IHUB-WP-0012) , parseRoute @AgentRegistrationsController , parseRoute @ModelRoutingPoliciesController , parseRoute @AgentDelegationsController , parseRoute @CollectiveProposalsController , parseRoute @AiGovernancePoliciesController -- Phase 12 — Platform Memory and Continuous Learning (IHUB-WP-0013) , parseRoute @OutcomeCorrelationsController , parseRoute @PatternPerformanceController , parseRoute @AdaptiveThresholdsController , parseRoute @InstitutionalKnowledgeController , parseRoute @LineageEnrichmentController , parseRoute @LearningDashboardController , parseRoute @ApiV2LearningController -- WP-0015 — Public intro / tutorial pages (must be last; catches "/" root) , parseRoute @StaticPagesController ] instance InitControllerContext WebApplication where initContext = do setLayout defaultLayout initAuthentication @User defaultLayout :: (?context :: ControllerContext, ?request :: Request) => Layout defaultLayout inner = let authWidget :: Html authWidget = case currentUserOrNothing @User of Just _ -> [hsx|
|] Nothing -> [hsx| Sign in |] in [hsx| inter-hub {autoRefreshMeta}
{inner}
|]