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 () -- 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 -- 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 annotationLauncherScript :: (?context :: ControllerContext) => Html annotationLauncherScript = let AnnotationLauncherEnabled enabled = getAppConfig @AnnotationLauncherEnabled in if enabled then [hsx||] else mempty defaultLayout :: Layout defaultLayout inner = [hsx|