@Model.BookTitle
Review scenes
PlotDirector is reading the approved chapters and turning them into scenes you can review before creating them.
@if (TempData["OnboardingStoryIntelligenceError"] is string error)
{
@error
}
@if (TempData["OnboardingStoryIntelligenceMessage"] is string message)
{
@message
}
Overall progress
@progressPercent%
Chapters completed
@Model.CompletedChapterCount / @Model.ChapterCount
Scenes analysed
@Model.TotalCompletedScenes / @Model.TotalDetectedScenes
Failures
@(Model.FailedChapterCount + Model.TotalFailedScenes)
Reading now
Current chapter
@(CurrentChapter(Model)?.ChapterTitle ?? "Waiting")
Current stage
@(CurrentChapter(Model)?.CurrentStage ?? "Queued")
Elapsed
@Elapsed(Model)
Estimated remaining
Calculating
@(CurrentChapter(Model)?.CurrentMessage ?? "Waiting for analysis to begin.")
Chapters
@foreach (var chapter in Model.Chapters.OrderBy(chapter => chapter.ChapterNumber))
{
@chapter.ChapterNumber. @chapter.ChapterTitle
@ChapterStatusLabel(chapter)
Status
@chapter.Status
Scenes
@((chapter.CompletedScenes ?? 0).ToString("N0")) / @((chapter.TotalDetectedScenes ?? 0).ToString("N0"))
Failed
@((chapter.FailedScenes ?? 0).ToString("N0"))
Tokens
@(chapter.TotalTokens?.ToString("N0") ?? "-")
@(chapter.CurrentMessage ?? string.Empty)
@if (!string.IsNullOrWhiteSpace(chapter.ErrorMessage))
{
@chapter.ErrorMessage
}
else
{
}
@if (chapter.Warnings.Any())
{
@foreach (var warning in chapter.Warnings)
{
- @warning
}
}
@if (chapter.Blockers.Any())
{
@foreach (var blocker in chapter.Blockers)
{
- @blocker
}
}
@if (chapter.HasCompletedCommit)
{
@chapter.ScenesCreated scene(s) created
}
else if (chapter.CanCommit && Model.BatchID.HasValue)
{
}
else if (chapter.IsRunComplete)
{
Review needed
}
}
@if (Model.BatchID.HasValue)
{
Continue
}