@attribute [Route(Routes.ASSISTANT_BEYOND_FACTS_LAB)] @inherits MSGComponentBase @* The lab does not inherit AssistantBase, so it sets up the inner scrolling itself, the way the Visual Briefing assistant does. *@
@T("BeyondFacts Lab") @T("Prepare a challenging appearance as a researcher step by step, e.g., a panel discussion, an interview, or a hearing. Each preparation belongs to one event and has its own steps, chats, and work states.") @T("Your preparations") @if (this.projects.Count == 0) { @T("You have no preparations yet. Create one for the event you want to prepare for.") } else { @foreach (var project in this.projects) { @this.ProjectDisplayName(project) @this.ProjectCaption(project) @if (this.projectsWithMissingDetails.Contains(project.ProjectId)) { @T("Details missing") } @if (!project.IsAvailable) { @this.ProjectStatusName(project.Status) } } } @T("New preparation") @if (this.selectedProject is { IsAvailable: false } unavailableProject) { @this.ProjectDisplayName(unavailableProject) @this.ProjectRecoveryMessage(unavailableProject.Status) @T("AI Studio has left the files of this preparation unchanged. A future update may make it accessible again.") @T("Preparation ID"): @unavailableProject.ProjectId.ToString("D") @T("Delete") } else if (this.selectedProject?.Project is { } project) { @project.Name @T("Rename") @T("Delete") @T("The event has taken place") @if (project.HappenedAtUtc is { } happenedAtUtc) { @string.Format(Culture, T("Marked on {0}."), happenedAtUtc.ToLocalTime().ToString("d", Culture)) } @foreach (var step in BflStep.All) { @step.Title @step.Description @T("Your details") @if (this.forms.TryGetValue(step, out var form)) { } else { @T("AI Studio cannot open your details for this step. Their file may be damaged, or a newer version of AI Studio stored it. AI Studio leaves the file unchanged.") } } } else { @T("Create a preparation to begin.") }