@model StoryIntelligenceFullChapterTestViewModel @{ ViewData["Title"] = "Full Chapter Story Intelligence Test"; var canQueue = Model.Preflight is not null && string.IsNullOrWhiteSpace(Model.ErrorMessage); }

Admin utility

Full chapter test

Queue one large chapter into the persisted Story Intelligence runner without changing PlotDirector story data.

@if (!string.IsNullOrWhiteSpace(Model.ErrorMessage)) {
@Model.ErrorMessage
}
@Html.AntiForgeryToken()
@if (!string.IsNullOrWhiteSpace(Model.SourceFileName)) {

Loaded @Model.SourceFileName (@DisplayBytes(Model.SourceFileSizeBytes)).

}
Open monitor
@if (Model.Preflight is not null) {

Pre-flight

Characters

@Model.Preflight.CharacterCount.ToString("N0")

Words

@Model.Preflight.WordCount.ToString("N0")

Paragraphs

@Model.Preflight.ParagraphCount.ToString("N0")

Input tokens

@Model.Preflight.EstimatedInputTokens.ToString("N0")

Estimated pipeline input tokens
@Model.Preflight.EstimatedPipelineInputTokens.ToString("N0")
Selected models
Chapter Structure: @Model.Form.ChapterStructureModel; Scene Intelligence: @Model.Form.SceneIntelligenceModel
Estimated input cost
@DisplayCost(Model.Preflight.EstimatedInputCostGBP, "GBP") / @DisplayCost(Model.Preflight.EstimatedInputCostUSD, "USD")
@if (Model.Preflight.Warnings.Count > 0) {
} else {
No pre-flight warnings detected.
}
} @functions { private static string DisplayBytes(long? bytes) => bytes.HasValue ? $"{bytes.Value:N0} bytes" : "None"; private static string DisplayCost(decimal? value, string currency) => value.HasValue ? $"{value.Value:0.000000} {currency}" : "Not configured"; }