diff --git a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua
index f70ad3ff..64313c27 100644
--- a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua
+++ b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua
@@ -2281,9 +2281,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Stop build
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1150899861"] = "Stop build"
--- Running
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1160324588"] = "Running"
-
-- changed
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1177151643"] = "changed"
@@ -2314,12 +2311,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Protection level
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1407518380"] = "Protection level"
--- Failed
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1434043348"] = "Failed"
-
--- Curate content
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1458812674"] = "Curate content"
-
-- Import
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1463683828"] = "Import"
@@ -2356,9 +2347,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Refresh status
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2035829510"] = "Refresh status"
--- Analyze material
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T204596900"] = "Analyze material"
-
-- Unavailable visual briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2068761945"] = "Unavailable visual briefing"
@@ -2368,9 +2356,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Documents, spreadsheets, images, audio, and video are considered as source context.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2228157968"] = "Documents, spreadsheets, images, audio, and video are considered as source context."
--- Compile and save
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2332777012"] = "Compile and save"
-
-- Target language
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T237828418"] = "Target language"
@@ -2431,15 +2416,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Enter a new name for this visual briefing.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2782842014"] = "Enter a new name for this visual briefing."
--- Prepare sources
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2838352358"] = "Prepare sources"
-
-- Linked sources
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2857875074"] = "Linked sources"
--- Action required
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2870470104"] = "Action required"
-
-- import
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T288002260"] = "import"
@@ -2452,9 +2431,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Opened the visual briefing project folder.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2964042492"] = "Opened the visual briefing project folder."
--- Resume build
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3016389190"] = "Resume build"
-
-- Visual assets
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3226971402"] = "Visual assets"
@@ -2470,9 +2446,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Could not open the visual briefing project folder.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3290777125"] = "Could not open the visual briefing project folder."
--- {0} in progress...
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3291403991"] = "{0} in progress..."
-
-- The visual briefing was imported.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3348040099"] = "The visual briefing was imported."
@@ -2503,15 +2476,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Author (optional)
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3529399925"] = "Author (optional)"
--- Not started
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3531294543"] = "Not started"
-
-- The visual briefing project folder is not available.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3564616779"] = "The visual briefing project folder is not available."
--- Plan briefing
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3576809882"] = "Plan briefing"
-
-- The visual briefing recompilation failed unexpectedly. Copy the technical details for support.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3614047460"] = "The visual briefing recompilation failed unexpectedly. Copy the technical details for support."
@@ -2545,9 +2512,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Choose a different export location so the immutable briefing version is not overwritten.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3955270674"] = "Choose a different export location so the immutable briefing version is not overwritten."
--- Completed
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3968379570"] = "Completed"
-
-- Show source references
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3977003073"] = "Show source references"
@@ -2557,9 +2521,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- unchanged
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4017131198"] = "unchanged"
--- Design presentation
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4023219825"] = "Design presentation"
-
-- Create briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4028101071"] = "Create briefing"
@@ -2575,9 +2536,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- transcript outdated
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4158473953"] = "transcript outdated"
--- Canceled
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4165352378"] = "Canceled"
-
-- Large visual briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4198749440"] = "Large visual briefing"
@@ -2605,9 +2563,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- The briefing was recompiled with the current AI Studio version.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T453632597"] = "The briefing was recompiled with the current AI Studio version."
--- Reused
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T48113973"] = "Reused"
-
-- The updated content no longer fits the current presentation. You can continue as a rebuild without another content model call.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T494870741"] = "The updated content no longer fits the current presentation. You can continue as a rebuild without another content model call."
@@ -2650,9 +2605,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Please provide a briefing name.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T902674552"] = "Please provide a briefing name."
--- Build progress
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T909046610"] = "Build progress"
-
-- Briefing settings
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T937201158"] = "Briefing settings"
@@ -2665,6 +2617,54 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- The media file changed. Transcribe it again with the configured transcription provider?
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T998394163"] = "The media file changed. Transcribe it again with the configured transcription provider?"
+-- Running
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1160324588"] = "Running"
+
+-- Failed
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1434043348"] = "Failed"
+
+-- Curate content
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1458812674"] = "Curate content"
+
+-- Analyze material
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T204596900"] = "Analyze material"
+
+-- Compile and save
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2332777012"] = "Compile and save"
+
+-- Prepare sources
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2838352358"] = "Prepare sources"
+
+-- Action required
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2870470104"] = "Action required"
+
+-- Resume build
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3016389190"] = "Resume build"
+
+-- {0} in progress...
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3291403991"] = "{0} in progress..."
+
+-- Not started
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3531294543"] = "Not started"
+
+-- Plan briefing
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3576809882"] = "Plan briefing"
+
+-- Completed
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3968379570"] = "Completed"
+
+-- Design presentation
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T4023219825"] = "Design presentation"
+
+-- Canceled
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T4165352378"] = "Canceled"
+
+-- Reused
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T48113973"] = "Reused"
+
+-- Build progress
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T909046610"] = "Build progress"
+
-- System
UI_TEXT_CONTENT["AISTUDIO::CHAT::CHATROLEEXTENSIONS::T2402387132"] = "System"
diff --git a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor
index ed4423fb..5325d85e 100644
--- a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor
+++ b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor
@@ -245,62 +245,7 @@
@if (this.latestBuild is not null)
{
- string[] buildStepTitles =
- [
- T("Prepare sources"),
- T("Analyze material"),
- T("Plan briefing"),
- T("Curate content"),
- T("Design presentation"),
- T("Compile and save"),
- ];
-
-
-
-
- @for (var index = 0; index < buildStepTitles.Length; index++)
- {
- var stepIndex = index;
-
-
- @this.BuildGroupSummary(stepIndex)
- @if (this.BuildGroupRunning(stepIndex))
- {
-
- @string.Format(T("{0} in progress..."), buildStepTitles[stepIndex])
- }
- @if (this.BuildGroupStopped(stepIndex))
- {
-
- @this.BuildGroupFailure(stepIndex)
-
- @if (this.latestBuild.Status is VisualBriefingBuildStatus.FAILED or VisualBriefingBuildStatus.CANCELED)
- {
-
- @T("Resume build")
-
- }
- }
-
-
- }
-
-
-
-
+
}
@if (this.reusableContentBuildId is { } reusableBuildId)
diff --git a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.Build.cs b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.Build.cs
index eede041a..141a25c7 100644
--- a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.Build.cs
+++ b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.Build.cs
@@ -38,61 +38,6 @@ public partial class VisualBriefingAssistant
this.selectedBriefing?.Sources.Any(source =>
source.Status is VisualBriefingSourceStatus.UNREACHABLE or VisualBriefingSourceStatus.TRANSCRIPT_OUTDATED) == true;
- /// Gets the active build stepper index.
- private int BuildStepperIndex
- {
- get
- {
- if (this.latestBuild is null)
- return 0;
-
- var groups = BuildStageGroups();
- for (var index = 0; index < groups.Length; index++)
- {
- var statuses = groups[index].Select(this.StageStatus).ToArray();
- if (statuses.Any(status => status is VisualBriefingBuildStageStatus.RUNNING or
- VisualBriefingBuildStageStatus.FAILED or VisualBriefingBuildStageStatus.CANCELED))
- return index;
-
- if (statuses.Any(status => status is VisualBriefingBuildStageStatus.NOT_STARTED))
- return index;
- }
-
- return groups.Length - 1;
- }
- }
-
- ///
- /// Gets the localized collapsed build-progress summary.
- ///
- private string BuildProgressTitle
- {
- get
- {
- var title = this.latestBuild?.Status switch
- {
- VisualBriefingBuildStatus.COMPLETED => $"{T("Build progress")} · {T("Completed")}",
- VisualBriefingBuildStatus.FAILED => $"{T("Build progress")} · {T("Failed")}",
- VisualBriefingBuildStatus.CANCELED => $"{T("Build progress")} · {T("Canceled")}",
- VisualBriefingBuildStatus.AWAITING_REBUILD => $"{T("Build progress")} · {T("Action required")}",
-
- _ => $"{T("Build progress")} · {T("Running")}",
- };
-
- var duration = this.CalculateBuildDuration(this.latestBuild?.Stages ?? []);
- return duration > TimeSpan.Zero ? $"{title} · {FormatBuildDuration(duration)}" : title;
- }
- }
-
- ///
- /// Keeps the status stepper informational while allowing actions inside the active step.
- ///
- private static Task PreventBuildStepperInteractionAsync(StepperInteractionEventArgs args)
- {
- args.Cancel = true;
- return Task.CompletedTask;
- }
-
///
/// Defines GenerateAsync for the visual briefing feature.
///
@@ -358,34 +303,10 @@ public partial class VisualBriefingAssistant
return;
this.latestBuild = this.BuildProgressService.GetLatest(briefingId);
- this.buildDurationReferenceUtc = DateTimeOffset.UtcNow;
this.StateHasChanged();
});
}
- ///
- /// Refreshes live build durations at most once per second while a selected stage is running.
- ///
- private async Task MonitorBuildDurationAsync(CancellationToken token)
- {
- using var timer = new PeriodicTimer(TimeSpan.FromSeconds(1));
- try
- {
- while (await timer.WaitForNextTickAsync(token))
- await this.InvokeAsync(() =>
- {
- if (this.latestBuild?.Stages.Any(stage => stage.Status is VisualBriefingBuildStageStatus.RUNNING) != true)
- return;
-
- this.buildDurationReferenceUtc = DateTimeOffset.UtcNow;
- this.StateHasChanged();
- });
- }
- catch (OperationCanceledException) when (token.IsCancellationRequested)
- {
- }
- }
-
///
/// Resumes the latest failed build with its persisted operation inputs.
///
@@ -418,120 +339,6 @@ public partial class VisualBriefingAssistant
this.StateHasChanged();
}
- ///
- /// Gets the six UI groups for the eight durable build stages.
- ///
- private static VisualBriefingBuildStage[][] BuildStageGroups() =>
- [
- [VisualBriefingBuildStage.SOURCE_PREPARATION],
- [VisualBriefingBuildStage.EVIDENCE],
- [VisualBriefingBuildStage.PLAN],
- [VisualBriefingBuildStage.CONTENT],
- [VisualBriefingBuildStage.DESIGN],
- [VisualBriefingBuildStage.COMPILATION, VisualBriefingBuildStage.ASSEMBLY, VisualBriefingBuildStage.COMMIT],
- ];
-
- ///
- /// Gets a persistent stage status, defaulting to not started.
- ///
- private VisualBriefingBuildStageStatus StageStatus(VisualBriefingBuildStage stage) =>
- this.latestBuild?.Stages.FirstOrDefault(item => item.Stage == stage)?.Status ??
- VisualBriefingBuildStageStatus.NOT_STARTED;
-
- ///
- /// Gets whether one UI group completed or was reused.
- ///
- private bool BuildGroupCompleted(int index) =>
- BuildStageGroups()[index].All(stage =>
- this.StageStatus(stage) is VisualBriefingBuildStageStatus.COMPLETED or VisualBriefingBuildStageStatus.SKIPPED);
-
- ///
- /// Gets whether one UI group failed.
- ///
- private bool BuildGroupFailed(int index) =>
- BuildStageGroups()[index].Any(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.FAILED);
-
- ///
- /// Gets whether one UI group was canceled.
- ///
- private bool BuildGroupCanceled(int index) =>
- BuildStageGroups()[index].Any(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.CANCELED);
-
- ///
- /// Gets whether one UI group stopped with a failure or cancellation.
- ///
- private bool BuildGroupStopped(int index) =>
- this.BuildGroupFailed(index) || this.BuildGroupCanceled(index);
-
- ///
- /// Gets whether one UI group is active.
- ///
- private bool BuildGroupRunning(int index) =>
- BuildStageGroups()[index].Any(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.RUNNING);
-
- ///
- /// Formats a safe localized status summary and duration.
- ///
- private string BuildGroupSummary(int index)
- {
- if (this.latestBuild is null)
- return T("Not started");
-
- var records = BuildStageGroups()[index]
- .Select(stage => this.latestBuild.Stages.FirstOrDefault(item => item.Stage == stage))
- .Where(record => record is not null)
- .Cast()
- .ToArray();
-
- var status = this.BuildGroupRunning(index)
- ? T("Running")
- : this.BuildGroupFailed(index)
- ? T("Failed")
- : this.BuildGroupCanceled(index)
- ? T("Canceled")
- : records.Length > 0 && records.All(record => record.Status is VisualBriefingBuildStageStatus.SKIPPED)
- ? T("Reused")
- : this.BuildGroupCompleted(index)
- ? T("Completed")
- : T("Not started");
-
- var duration = this.CalculateBuildDuration(records);
- return duration > TimeSpan.Zero ? $"{status} · {FormatBuildDuration(duration)}" : status;
- }
-
- ///
- /// Calculates active processing time without counting reused stages or time between resume attempts.
- ///
- private TimeSpan CalculateBuildDuration(IEnumerable records) => records
- .Where(record => record.StartedAtUtc is not null && record.Status is not VisualBriefingBuildStageStatus.SKIPPED)
- .Aggregate(TimeSpan.Zero, (total, record) => total + this.CalculateStageDuration(record));
-
- ///
- /// Calculates one stage duration against the shared live timestamp.
- ///
- private TimeSpan CalculateStageDuration(VisualBriefingBuildStageRecord record)
- {
- var finishedAtUtc = record.Status is VisualBriefingBuildStageStatus.RUNNING ? this.buildDurationReferenceUtc : record.FinishedAtUtc;
- if (record.StartedAtUtc is null || finishedAtUtc is null)
- return TimeSpan.Zero;
-
- var duration = finishedAtUtc.Value - record.StartedAtUtc.Value;
- return duration > TimeSpan.Zero ? duration : TimeSpan.Zero;
- }
-
- ///
- /// Formats a build duration using the current UI culture.
- ///
- private static string FormatBuildDuration(TimeSpan duration) => $"{duration.TotalSeconds:0.0} s";
-
- ///
- /// Gets the safe failure reason for a UI group.
- ///
- private string BuildGroupFailure(int index) =>
- BuildStageGroups()[index]
- .Select(stage => this.latestBuild?.Stages.FirstOrDefault(item => item.Stage == stage)?.Failure)
- .FirstOrDefault(failure => failure is not null)?.UserMessage ?? this.latestBuild?.Failure?.UserMessage ?? string.Empty;
-
///
/// Defines CopyTechnicalDetailsAsync for the visual briefing feature.
///
diff --git a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.cs b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.cs
index f308e298..06c14ffc 100644
--- a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.cs
+++ b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingAssistant.razor.cs
@@ -91,9 +91,6 @@ public partial class VisualBriefingAssistant : MSGComponentBase
/// Stops the background source-status monitor.
private readonly CancellationTokenSource sourceMonitorCancellation = new();
- /// Stops the live build-duration monitor.
- private readonly CancellationTokenSource buildDurationMonitorCancellation = new();
-
/// Stores available and recoverable projects ordered by most recent modification.
private IReadOnlyList projects = [];
@@ -172,9 +169,6 @@ public partial class VisualBriefingAssistant : MSGComponentBase
/// Stores the latest persistent or live build shown in the stepper.
private VisualBriefingBuildRecord? latestBuild;
- /// Stores the shared timestamp used to render consistent live build durations.
- private DateTimeOffset buildDurationReferenceUtc = DateTimeOffset.UtcNow;
-
/// Stores incompatible validated content offered for rebuild continuation.
private Guid? reusableContentBuildId;
@@ -220,7 +214,6 @@ public partial class VisualBriefingAssistant : MSGComponentBase
this.BuildProgressService.Changed += this.BuildProgressChanged;
await this.ReloadListAsync();
_ = this.MonitorSourceStatusAsync(this.sourceMonitorCancellation.Token);
- _ = this.MonitorBuildDurationAsync(this.buildDurationMonitorCancellation.Token);
var deferredInstruction = this.MessageBus.CheckDeferredMessages(Event.SEND_TO_VISUAL_BRIEFING_ASSISTANT).FirstOrDefault();
if (!string.IsNullOrWhiteSpace(deferredInstruction))
@@ -243,8 +236,6 @@ public partial class VisualBriefingAssistant : MSGComponentBase
this.isDisposed = true;
this.sourceMonitorCancellation.Cancel();
this.sourceMonitorCancellation.Dispose();
- this.buildDurationMonitorCancellation.Cancel();
- this.buildDurationMonitorCancellation.Dispose();
this.MediaTranscriptionService.StateChanged -= this.MediaStateChanged;
this.BuildProgressService.Changed -= this.BuildProgressChanged;
base.DisposeResources();
diff --git a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildProgress.razor b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildProgress.razor
new file mode 100644
index 00000000..35c1ede3
--- /dev/null
+++ b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildProgress.razor
@@ -0,0 +1,48 @@
+@inherits MSGComponentBase
+
+
+
+
+
+ @for (var index = 0; index < STAGE_GROUPS.Length; index++)
+ {
+ var stepIndex = index;
+
+
+ @this.BuildGroupSummary(stepIndex)
+ @if (this.BuildGroupRunning(stepIndex))
+ {
+
+ @string.Format(T("{0} in progress..."), this.StepTitle(stepIndex))
+ }
+
+ @if (this.BuildGroupStopped(stepIndex))
+ {
+
+ @this.BuildGroupFailure(stepIndex)
+
+
+ @if (this.Build?.Status is VisualBriefingBuildStatus.FAILED or VisualBriefingBuildStatus.CANCELED)
+ {
+
+ @T("Resume build")
+
+ }
+ }
+
+
+ }
+
+
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildProgress.razor.cs b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildProgress.razor.cs
new file mode 100644
index 00000000..c99e0148
--- /dev/null
+++ b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildProgress.razor.cs
@@ -0,0 +1,291 @@
+using AIStudio.Components;
+
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Assistants.VisualBriefing;
+
+///
+/// Renders the staged progress, durations, and failures of one visual briefing build.
+///
+///
+/// The component derives everything it shows from alone. It also owns the timer
+/// that keeps the duration of a running stage current, so a build in progress re-renders this panel
+/// once per second instead of the entire assistant page.
+///
+public partial class VisualBriefingBuildProgress : MSGComponentBase
+{
+ ///
+ /// Gets or sets the build whose progress is displayed.
+ ///
+ [Parameter, EditorRequired]
+ public VisualBriefingBuildRecord? Build { get; set; }
+
+ ///
+ /// Gets or sets whether the resume action is blocked because other work is running.
+ ///
+ [Parameter]
+ public bool Disabled { get; set; }
+
+ ///
+ /// Gets or sets the callback raised when the user resumes a failed or canceled build.
+ ///
+ [Parameter]
+ public EventCallback OnResume { get; set; }
+
+ ///
+ /// The six UI groups covering the eight durable build stages.
+ ///
+ private static readonly VisualBriefingBuildStage[][] STAGE_GROUPS =
+ [
+ [VisualBriefingBuildStage.SOURCE_PREPARATION],
+ [VisualBriefingBuildStage.EVIDENCE],
+ [VisualBriefingBuildStage.PLAN],
+ [VisualBriefingBuildStage.CONTENT],
+ [VisualBriefingBuildStage.DESIGN],
+ [VisualBriefingBuildStage.COMPILATION, VisualBriefingBuildStage.ASSEMBLY, VisualBriefingBuildStage.COMMIT],
+ ];
+
+ /// Stops the live build-duration monitor.
+ private readonly CancellationTokenSource durationMonitorCancellation = new();
+
+ /// Stores the shared timestamp used to render consistent live build durations.
+ private DateTimeOffset durationReferenceUtc = DateTimeOffset.UtcNow;
+
+ #region Overrides of ComponentBase
+
+ protected override async Task OnInitializedAsync()
+ {
+ await base.OnInitializedAsync();
+ _ = this.MonitorBuildDurationAsync(this.durationMonitorCancellation.Token);
+ }
+
+ protected override void OnParametersSet()
+ {
+ // The parent re-renders us whenever it received a progress update, so this is the moment the
+ // durations of running stages must be measured against again.
+ this.durationReferenceUtc = DateTimeOffset.UtcNow;
+ }
+
+ #endregion
+
+ #region Overrides of MSGComponentBase
+
+ protected override void DisposeResources()
+ {
+ this.durationMonitorCancellation.Cancel();
+ this.durationMonitorCancellation.Dispose();
+ base.DisposeResources();
+ }
+
+ #endregion
+
+ ///
+ /// Refreshes live build durations at most once per second while a stage is running.
+ ///
+ /// The token that stops the monitor.
+ /// A task that completes once the monitor was stopped.
+ private async Task MonitorBuildDurationAsync(CancellationToken token)
+ {
+ using var timer = new PeriodicTimer(TimeSpan.FromSeconds(1));
+ try
+ {
+ while (await timer.WaitForNextTickAsync(token))
+ await this.InvokeAsync(() =>
+ {
+ if (this.Build?.Stages.Any(stage => stage.Status is VisualBriefingBuildStageStatus.RUNNING) != true)
+ return;
+
+ this.durationReferenceUtc = DateTimeOffset.UtcNow;
+ this.StateHasChanged();
+ });
+ }
+ catch (OperationCanceledException) when (token.IsCancellationRequested)
+ {
+ }
+ }
+
+ ///
+ /// Gets the localized title of one build step.
+ ///
+ /// The zero-based index of the step.
+ /// The localized step title.
+ private string StepTitle(int index) => index switch
+ {
+ 0 => T("Prepare sources"),
+ 1 => T("Analyze material"),
+ 2 => T("Plan briefing"),
+ 3 => T("Curate content"),
+ 4 => T("Design presentation"),
+
+ _ => T("Compile and save"),
+ };
+
+ /// Gets the active build stepper index.
+ private int BuildStepperIndex
+ {
+ get
+ {
+ for (var index = 0; index < STAGE_GROUPS.Length; index++)
+ {
+ var statuses = STAGE_GROUPS[index].Select(this.StageStatus).ToArray();
+ if (statuses.Any(status => status is VisualBriefingBuildStageStatus.RUNNING or VisualBriefingBuildStageStatus.FAILED or VisualBriefingBuildStageStatus.CANCELED))
+ return index;
+
+ if (statuses.Any(status => status is VisualBriefingBuildStageStatus.NOT_STARTED))
+ return index;
+ }
+
+ return STAGE_GROUPS.Length - 1;
+ }
+ }
+
+ ///
+ /// Gets the localized collapsed build-progress summary.
+ ///
+ private string BuildProgressTitle
+ {
+ get
+ {
+ if(this.Build is null)
+ return $"{T("Build progress")} · {T("Running")}";
+
+ var title = this.Build.Status switch
+ {
+ VisualBriefingBuildStatus.COMPLETED => $"{T("Build progress")} · {T("Completed")}",
+ VisualBriefingBuildStatus.FAILED => $"{T("Build progress")} · {T("Failed")}",
+ VisualBriefingBuildStatus.CANCELED => $"{T("Build progress")} · {T("Canceled")}",
+ VisualBriefingBuildStatus.AWAITING_REBUILD => $"{T("Build progress")} · {T("Action required")}",
+
+ _ => $"{T("Build progress")} · {T("Running")}",
+ };
+
+ var duration = this.CalculateBuildDuration(this.Build.Stages);
+ return duration > TimeSpan.Zero ? $"{title} · {FormatBuildDuration(duration)}" : title;
+ }
+ }
+
+ ///
+ /// Keeps the status stepper informational while allowing actions inside the active step.
+ ///
+ /// The interaction to cancel.
+ /// A completed task.
+ private static Task PreventBuildStepperInteractionAsync(StepperInteractionEventArgs args)
+ {
+ args.Cancel = true;
+ return Task.CompletedTask;
+ }
+
+ ///
+ /// Gets a persistent stage status, defaulting to not started.
+ ///
+ /// The stage to look up.
+ /// The stage status.
+ private VisualBriefingBuildStageStatus StageStatus(VisualBriefingBuildStage stage) => this.Build?.Stages.FirstOrDefault(item => item.Stage == stage)?.Status ?? VisualBriefingBuildStageStatus.NOT_STARTED;
+
+ ///
+ /// Gets whether one UI group completed or was reused.
+ ///
+ /// The zero-based index of the group.
+ /// true when the group finished.
+ private bool BuildGroupCompleted(int index) => STAGE_GROUPS[index].All(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.COMPLETED or VisualBriefingBuildStageStatus.SKIPPED);
+
+ ///
+ /// Gets whether one UI group failed.
+ ///
+ /// The zero-based index of the group.
+ /// true when the group failed.
+ private bool BuildGroupFailed(int index) => STAGE_GROUPS[index].Any(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.FAILED);
+
+ ///
+ /// Gets whether one UI group was canceled.
+ ///
+ /// The zero-based index of the group.
+ /// true when the group was canceled.
+ private bool BuildGroupCanceled(int index) => STAGE_GROUPS[index].Any(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.CANCELED);
+
+ ///
+ /// Gets whether one UI group stopped with a failure or cancellation.
+ ///
+ /// The zero-based index of the group.
+ /// true when the group stopped.
+ private bool BuildGroupStopped(int index) => this.BuildGroupFailed(index) || this.BuildGroupCanceled(index);
+
+ ///
+ /// Gets whether one UI group is active.
+ ///
+ /// The zero-based index of the group.
+ /// true when the group is running.
+ private bool BuildGroupRunning(int index) => STAGE_GROUPS[index].Any(stage => this.StageStatus(stage) is VisualBriefingBuildStageStatus.RUNNING);
+
+ ///
+ /// Formats a safe localized status summary and duration.
+ ///
+ /// The zero-based index of the group.
+ /// The localized summary.
+ private string BuildGroupSummary(int index)
+ {
+ if(this.Build is null)
+ return T("Not started");
+
+ var records = STAGE_GROUPS[index]
+ .Select(stage => this.Build.Stages.FirstOrDefault(item => item.Stage == stage))
+ .Where(record => record is not null)
+ .Cast()
+ .ToArray();
+
+ var status = this.BuildGroupRunning(index)
+ ? T("Running")
+ : this.BuildGroupFailed(index)
+ ? T("Failed")
+ : this.BuildGroupCanceled(index)
+ ? T("Canceled")
+ : records.Length > 0 && records.All(record => record.Status is VisualBriefingBuildStageStatus.SKIPPED)
+ ? T("Reused")
+ : this.BuildGroupCompleted(index)
+ ? T("Completed")
+ : T("Not started");
+
+ var duration = this.CalculateBuildDuration(records);
+ return duration > TimeSpan.Zero ? $"{status} · {FormatBuildDuration(duration)}" : status;
+ }
+
+ ///
+ /// Calculates active processing time without counting reused stages or time between resume attempts.
+ ///
+ /// The stage records to aggregate.
+ /// The aggregated duration.
+ private TimeSpan CalculateBuildDuration(IEnumerable records) => records
+ .Where(record => record.StartedAtUtc is not null && record.Status is not VisualBriefingBuildStageStatus.SKIPPED)
+ .Aggregate(TimeSpan.Zero, (total, record) => total + this.CalculateStageDuration(record));
+
+ ///
+ /// Calculates one stage duration against the shared live timestamp.
+ ///
+ /// The stage record to measure.
+ /// The stage duration.
+ private TimeSpan CalculateStageDuration(VisualBriefingBuildStageRecord record)
+ {
+ var finishedAtUtc = record.Status is VisualBriefingBuildStageStatus.RUNNING ? this.durationReferenceUtc : record.FinishedAtUtc;
+ if (record.StartedAtUtc is null || finishedAtUtc is null)
+ return TimeSpan.Zero;
+
+ var duration = finishedAtUtc.Value - record.StartedAtUtc.Value;
+ return duration > TimeSpan.Zero ? duration : TimeSpan.Zero;
+ }
+
+ ///
+ /// Formats a build duration in seconds using the current culture.
+ ///
+ /// The duration to format.
+ /// The formatted duration.
+ private static string FormatBuildDuration(TimeSpan duration) => $"{duration.TotalSeconds:0.0} s";
+
+ ///
+ /// Gets the safe failure reason for a UI group.
+ ///
+ /// The zero-based index of the group.
+ /// The user-facing failure message.
+ private string BuildGroupFailure(int index) => this.Build is null ? string.Empty : STAGE_GROUPS[index]
+ .Select(stage => this.Build.Stages.FirstOrDefault(item => item.Stage == stage)?.Failure)
+ .FirstOrDefault(failure => failure is not null)?.UserMessage ?? this.Build.Failure?.UserMessage ?? string.Empty;
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildRecord.cs b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildRecord.cs
index 290834c1..c7b988b5 100644
--- a/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildRecord.cs
+++ b/app/MindWork AI Studio/Assistants/VisualBriefing/VisualBriefingBuildRecord.cs
@@ -8,12 +8,12 @@ public sealed class VisualBriefingBuildRecord
///
/// Gets or sets the build-record schema version.
///
- public int BuildVersion { get; set; } = VisualBriefingVersions.BUILD;
+ public int BuildVersion { get; init; } = VisualBriefingVersions.BUILD;
///
/// Gets or sets the build identifier.
///
- public Guid BuildId { get; set; }
+ public Guid BuildId { get; init; }
///
/// Gets or sets the operation identifier shown in diagnostics and logs.
@@ -23,17 +23,17 @@ public sealed class VisualBriefingBuildRecord
///
/// Gets or sets the owning briefing identifier.
///
- public Guid BriefingId { get; set; }
+ public Guid BriefingId { get; init; }
///
/// Gets or sets the requested edit mode.
///
- public VisualBriefingEditMode Mode { get; set; }
+ public VisualBriefingEditMode Mode { get; init; }
///
/// Gets or sets the parent revision identifier.
///
- public Guid? ParentRevisionId { get; set; }
+ public Guid? ParentRevisionId { get; init; }
///
/// Gets or sets the local revision instruction used for recovery.
@@ -48,7 +48,7 @@ public sealed class VisualBriefingBuildRecord
///
/// Gets or sets durable stage progress.
///
- public List Stages { get; set; } = [];
+ public List Stages { get; init; } = [];
///
/// Gets or sets the content artifact identifier.
@@ -83,47 +83,47 @@ public sealed class VisualBriefingBuildRecord
///
/// Gets or sets the complete safe input fingerprint.
///
- public string InputFingerprint { get; set; } = string.Empty;
+ public string InputFingerprint { get; init; } = string.Empty;
///
/// Gets or sets the source and transcript fingerprint.
///
- public string SourceFingerprint { get; set; } = string.Empty;
+ public string SourceFingerprint { get; init; } = string.Empty;
///
/// Gets or sets the content prompt contract version.
///
- public int ContentContractVersion { get; set; } = VisualBriefingVersions.CONTENT_CONTRACT;
+ public int ContentContractVersion { get; init; } = VisualBriefingVersions.CONTENT_CONTRACT;
///
/// Gets or sets the evidence prompt contract version.
///
- public int EvidenceContractVersion { get; set; } = VisualBriefingVersions.EVIDENCE_CONTRACT;
+ public int EvidenceContractVersion { get; init; } = VisualBriefingVersions.EVIDENCE_CONTRACT;
///
/// Gets or sets the plan prompt contract version.
///
- public int PlanContractVersion { get; set; } = VisualBriefingVersions.PLAN_CONTRACT;
+ public int PlanContractVersion { get; init; } = VisualBriefingVersions.PLAN_CONTRACT;
///
/// Gets or sets the design prompt contract version.
///
- public int DesignContractVersion { get; set; } = VisualBriefingVersions.DESIGN_CONTRACT;
+ public int DesignContractVersion { get; init; } = VisualBriefingVersions.DESIGN_CONTRACT;
///
/// Gets or sets the selected provider family.
///
- public string ProviderFamily { get; set; } = string.Empty;
+ public string ProviderFamily { get; init; } = string.Empty;
///
/// Gets or sets the selected model name.
///
- public string Model { get; set; } = string.Empty;
+ public string Model { get; init; } = string.Empty;
///
/// Gets or sets the build creation time.
///
- public DateTimeOffset CreatedAtUtc { get; set; }
+ public DateTimeOffset CreatedAtUtc { get; init; }
///
/// Gets or sets the most recent build update time.
diff --git a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua
index d931ab66..f46ff72c 100644
--- a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua
+++ b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua
@@ -2283,9 +2283,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Stop build
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1150899861"] = "Erstellung stoppen"
--- Running
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1160324588"] = "Wird ausgeführt"
-
-- changed
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1177151643"] = "geändert"
@@ -2316,12 +2313,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Protection level
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1407518380"] = "Schutzstufe"
--- Failed
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1434043348"] = "fehlgeschlagen"
-
--- Curate content
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1458812674"] = "Inhalte kuratieren"
-
-- Import
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1463683828"] = "Importieren"
@@ -2358,9 +2349,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Refresh status
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2035829510"] = "Status aktualisieren"
--- Analyze material
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T204596900"] = "Material analysieren"
-
-- Unavailable visual briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2068761945"] = "Nicht verfügbares visuelles Briefing"
@@ -2370,9 +2358,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Documents, spreadsheets, images, audio, and video are considered as source context.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2228157968"] = "Dokumente, Tabellenkalkulationen, Bilder, Audio- und Videodateien werden als Ausgangsmaterial berücksichtigt."
--- Compile and save
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2332777012"] = "Kompilieren und speichern"
-
-- Target language
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T237828418"] = "Zielsprache"
@@ -2433,15 +2418,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Enter a new name for this visual briefing.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2782842014"] = "Geben Sie einen neuen Namen für dieses visuelle Briefing ein."
--- Prepare sources
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2838352358"] = "Ausgangsmaterial vorbereiten"
-
-- Linked sources
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2857875074"] = "Verknüpfte Quellen"
--- Action required
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2870470104"] = "Handlung erforderlich"
-
-- import
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T288002260"] = "Importieren"
@@ -2454,9 +2433,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Opened the visual briefing project folder.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2964042492"] = "Projektordner für das visuelle Briefing öffnen."
--- Resume build
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3016389190"] = "Erstellung fortsetzen"
-
-- Visual assets
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3226971402"] = "Visuelle Elemente"
@@ -2472,9 +2448,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Could not open the visual briefing project folder.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3290777125"] = "Der Projektordner für das visuelle Briefing konnte nicht geöffnet werden."
--- {0} in progress...
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3291403991"] = "{0} wird verarbeitet ..."
-
-- The visual briefing was imported.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3348040099"] = "Das visuelle Briefing wurde importiert."
@@ -2505,15 +2478,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Author (optional)
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3529399925"] = "Autor/in (optional)"
--- Not started
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3531294543"] = "Nicht gestartet"
-
-- The visual briefing project folder is not available.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3564616779"] = "Der Projektordner für das visuelle Briefing ist nicht verfügbar."
--- Plan briefing
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3576809882"] = "Briefing planen"
-
-- The visual briefing recompilation failed unexpectedly. Copy the technical details for support.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3614047460"] = "Die erneute Erstellung des visuellen Briefings ist unerwartet fehlgeschlagen. Kopieren Sie die technischen Details für den Support."
@@ -2547,9 +2514,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Choose a different export location so the immutable briefing version is not overwritten.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3955270674"] = "Wähle einen anderen Ort für den Export, damit die unveränderliche Briefing-Version nicht überschrieben wird."
--- Completed
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3968379570"] = "Abgeschlossen"
-
-- Show source references
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3977003073"] = "Quellverweise anzeigen"
@@ -2559,9 +2523,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- unchanged
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4017131198"] = "unverändert"
--- Design presentation
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4023219825"] = "Präsentation gestalten"
-
-- Create briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4028101071"] = "Briefing erstellen"
@@ -2577,9 +2538,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- transcript outdated
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4158473953"] = "Transkript veraltet"
--- Canceled
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4165352378"] = "Abgebrochen"
-
-- Large visual briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4198749440"] = "Umfassendes visuelles Briefing"
@@ -2607,9 +2565,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- The briefing was recompiled with the current AI Studio version.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T453632597"] = "Das Briefing wurde mit der aktuellen AI Studio-Version neu kompiliert."
--- Reused
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T48113973"] = "Wiederverwendet"
-
-- The updated content no longer fits the current presentation. You can continue as a rebuild without another content model call.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T494870741"] = "Die aktualisierten Inhalte passen nicht mehr in die aktuelle Präsentation. Sie können ohne weiteren Aufruf des KI-Modells mit einer Neuerstellung fortfahren."
@@ -2652,9 +2607,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Please provide a briefing name.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T902674552"] = "Bitte geben Sie einen Namen für das Briefing ein."
--- Build progress
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T909046610"] = "Erstellungsfortschritt"
-
-- Briefing settings
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T937201158"] = "Briefing-Einstellungen"
@@ -2667,6 +2619,54 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- The media file changed. Transcribe it again with the configured transcription provider?
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T998394163"] = "Die Mediendatei wurde geändert. Mit dem konfigurierten Transkriptionsanbieter erneut transkribieren?"
+-- Running
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1160324588"] = "Wird ausgeführt"
+
+-- Failed
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1434043348"] = "Fehlgeschlagen"
+
+-- Curate content
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1458812674"] = "Inhalte kuratieren"
+
+-- Analyze material
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T204596900"] = "Material analysieren"
+
+-- Compile and save
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2332777012"] = "Kompilieren und speichern"
+
+-- Prepare sources
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2838352358"] = "Quellen vorbereiten"
+
+-- Action required
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2870470104"] = "Aktion erforderlich"
+
+-- Resume build
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3016389190"] = "Erstellung fortsetzen"
+
+-- {0} in progress...
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3291403991"] = "{0} wird bearbeitet …"
+
+-- Not started
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3531294543"] = "Nicht gestartet"
+
+-- Plan briefing
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3576809882"] = "Briefing planen"
+
+-- Completed
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3968379570"] = "Abgeschlossen"
+
+-- Design presentation
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T4023219825"] = "Präsentation gestalten"
+
+-- Canceled
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T4165352378"] = "Abgebrochen"
+
+-- Reused
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T48113973"] = "Wiederverwendet"
+
+-- Build progress
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T909046610"] = "Erstellungsfortschritt"
+
-- System
UI_TEXT_CONTENT["AISTUDIO::CHAT::CHATROLEEXTENSIONS::T2402387132"] = "System"
diff --git a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua
index 84c7892a..0579dfb8 100644
--- a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua
+++ b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua
@@ -2283,9 +2283,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Stop build
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1150899861"] = "Stop build"
--- Running
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1160324588"] = "Running"
-
-- changed
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1177151643"] = "changed"
@@ -2316,12 +2313,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Protection level
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1407518380"] = "Protection level"
--- Failed
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1434043348"] = "Failed"
-
--- Curate content
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1458812674"] = "Curate content"
-
-- Import
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T1463683828"] = "Import"
@@ -2358,9 +2349,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Refresh status
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2035829510"] = "Refresh status"
--- Analyze material
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T204596900"] = "Analyze material"
-
-- Unavailable visual briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2068761945"] = "Unavailable visual briefing"
@@ -2370,9 +2358,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Documents, spreadsheets, images, audio, and video are considered as source context.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2228157968"] = "Documents, spreadsheets, images, audio, and video are considered as source context."
--- Compile and save
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2332777012"] = "Compile and save"
-
-- Target language
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T237828418"] = "Target language"
@@ -2433,15 +2418,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Enter a new name for this visual briefing.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2782842014"] = "Enter a new name for this visual briefing."
--- Prepare sources
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2838352358"] = "Prepare sources"
-
-- Linked sources
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2857875074"] = "Linked sources"
--- Action required
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2870470104"] = "Action required"
-
-- import
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T288002260"] = "import"
@@ -2454,9 +2433,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Opened the visual briefing project folder.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T2964042492"] = "Opened the visual briefing project folder."
--- Resume build
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3016389190"] = "Resume build"
-
-- Visual assets
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3226971402"] = "Visual assets"
@@ -2472,9 +2448,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Could not open the visual briefing project folder.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3290777125"] = "Could not open the visual briefing project folder."
--- {0} in progress...
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3291403991"] = "{0} in progress..."
-
-- The visual briefing was imported.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3348040099"] = "The visual briefing was imported."
@@ -2505,15 +2478,9 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Author (optional)
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3529399925"] = "Author (optional)"
--- Not started
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3531294543"] = "Not started"
-
-- The visual briefing project folder is not available.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3564616779"] = "The visual briefing project folder is not available."
--- Plan briefing
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3576809882"] = "Plan briefing"
-
-- The visual briefing recompilation failed unexpectedly. Copy the technical details for support.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3614047460"] = "The visual briefing recompilation failed unexpectedly. Copy the technical details for support."
@@ -2547,9 +2514,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Choose a different export location so the immutable briefing version is not overwritten.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3955270674"] = "Choose a different export location so the immutable briefing version is not overwritten."
--- Completed
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3968379570"] = "Completed"
-
-- Show source references
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T3977003073"] = "Show source references"
@@ -2559,9 +2523,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- unchanged
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4017131198"] = "unchanged"
--- Design presentation
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4023219825"] = "Design presentation"
-
-- Create briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4028101071"] = "Create briefing"
@@ -2577,9 +2538,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- transcript outdated
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4158473953"] = "transcript outdated"
--- Canceled
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4165352378"] = "Canceled"
-
-- Large visual briefing
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T4198749440"] = "Large visual briefing"
@@ -2607,9 +2565,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- The briefing was recompiled with the current AI Studio version.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T453632597"] = "The briefing was recompiled with the current AI Studio version."
--- Reused
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T48113973"] = "Reused"
-
-- The updated content no longer fits the current presentation. You can continue as a rebuild without another content model call.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T494870741"] = "The updated content no longer fits the current presentation. You can continue as a rebuild without another content model call."
@@ -2652,9 +2607,6 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- Please provide a briefing name.
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T902674552"] = "Please provide a briefing name."
--- Build progress
-UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T909046610"] = "Build progress"
-
-- Briefing settings
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T937201158"] = "Briefing settings"
@@ -2667,6 +2619,54 @@ UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::
-- The media file changed. Transcribe it again with the configured transcription provider?
UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGASSISTANT::T998394163"] = "The media file changed. Transcribe it again with the configured transcription provider?"
+-- Running
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1160324588"] = "Running"
+
+-- Failed
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1434043348"] = "Failed"
+
+-- Curate content
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T1458812674"] = "Curate content"
+
+-- Analyze material
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T204596900"] = "Analyze material"
+
+-- Compile and save
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2332777012"] = "Compile and save"
+
+-- Prepare sources
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2838352358"] = "Prepare sources"
+
+-- Action required
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T2870470104"] = "Action required"
+
+-- Resume build
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3016389190"] = "Resume build"
+
+-- {0} in progress...
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3291403991"] = "{0} in progress..."
+
+-- Not started
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3531294543"] = "Not started"
+
+-- Plan briefing
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3576809882"] = "Plan briefing"
+
+-- Completed
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T3968379570"] = "Completed"
+
+-- Design presentation
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T4023219825"] = "Design presentation"
+
+-- Canceled
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T4165352378"] = "Canceled"
+
+-- Reused
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T48113973"] = "Reused"
+
+-- Build progress
+UI_TEXT_CONTENT["AISTUDIO::ASSISTANTS::VISUALBRIEFING::VISUALBRIEFINGBUILDPROGRESS::T909046610"] = "Build progress"
+
-- System
UI_TEXT_CONTENT["AISTUDIO::CHAT::CHATROLEEXTENSIONS::T2402387132"] = "System"