mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-17 12:58:00 +00:00
Added the visual briefing assistant (#893)
Build and Release / Determine run mode (push) Has been cancelled
Build and Release / Read metadata (push) Has been cancelled
Build and Release / Sync Flatpak repo (push) Has been cancelled
Build and Release / Collect Flatpak artifacts (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Has been cancelled
Build and Release / Prepare & create release (push) Has been cancelled
Build and Release / Publish release (push) Has been cancelled
Build and Release / Determine run mode (push) Has been cancelled
Build and Release / Read metadata (push) Has been cancelled
Build and Release / Sync Flatpak repo (push) Has been cancelled
Build and Release / Collect Flatpak artifacts (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Has been cancelled
Build and Release / Prepare & create release (push) Has been cancelled
Build and Release / Publish release (push) Has been cancelled
This commit is contained in:
1 parent
df4663fff4
commit
58cc811a58
214 files changed
+18943
-353
No files matched your search
@@ -0,0 +1,30 @@
|
||||
using AIStudio.Chat;
|
||||
|
||||
namespace AIStudio.Tools.Media;
|
||||
|
||||
/// <summary>
|
||||
/// Persists a completed media transcript for a feature-specific owner.
|
||||
/// </summary>
|
||||
public interface IMediaTranscriptStorage
|
||||
{
|
||||
/// <summary>
|
||||
/// Determines whether this storage handles the specified media-import owner.
|
||||
/// </summary>
|
||||
/// <param name="owner">The feature-specific media-import owner.</param>
|
||||
/// <returns><see langword="true"/> when the transcript can be stored.</returns>
|
||||
bool CanStore(MediaImportOwner owner);
|
||||
|
||||
/// <summary>
|
||||
/// Persists a completed transcript and returns the attachment exposed to the calling workflow.
|
||||
/// </summary>
|
||||
/// <param name="target">The stable media-import target.</param>
|
||||
/// <param name="originalMediaPath">The original media path.</param>
|
||||
/// <param name="transcript">The completed transcript text.</param>
|
||||
/// <param name="token">The cancellation token.</param>
|
||||
/// <returns>The attachment representing the persisted transcript.</returns>
|
||||
Task<FileAttachment> StoreAsync(
|
||||
MediaImportTarget target,
|
||||
string originalMediaPath,
|
||||
string transcript,
|
||||
CancellationToken token);
|
||||
}
|
||||
@@ -8,4 +8,11 @@ public readonly record struct MediaImportOwner(MediaImportOwnerKind Kind, string
|
||||
public static MediaImportOwner ForChat(Guid chatId) => new(MediaImportOwnerKind.CHAT, chatId.ToString("N"));
|
||||
|
||||
public static MediaImportOwner ForAssistant(AssistantSessionKey key) => new(MediaImportOwnerKind.ASSISTANT, key.ToString());
|
||||
|
||||
/// <summary>
|
||||
/// Creates a persistent media-import owner for a visual briefing.
|
||||
/// </summary>
|
||||
/// <param name="briefingId">The stable briefing identifier.</param>
|
||||
/// <returns>The media-import owner.</returns>
|
||||
public static MediaImportOwner ForVisualBriefing(Guid briefingId) => new(MediaImportOwnerKind.VISUAL_BRIEFING, briefingId.ToString("D"));
|
||||
}
|
||||
@@ -5,4 +5,17 @@ public enum MediaImportOwnerKind
|
||||
{
|
||||
CHAT,
|
||||
ASSISTANT,
|
||||
|
||||
/// <summary>
|
||||
/// Identifies persistent media transcripts owned by a visual briefing.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// A visual briefing cannot use <see cref="ASSISTANT"/>: that kind is keyed by an assistant
|
||||
/// session, which ends when the user navigates away or closes the app. A briefing is a stored
|
||||
/// document that outlives both, and its transcripts are stored next to it. The owner is
|
||||
/// therefore keyed by the briefing ID, see <see cref="MediaImportOwner.ForVisualBriefing"/>.
|
||||
/// This is what lets AI Studio re-associate transcripts with the right briefing after a
|
||||
/// restart, and what lets the UI show a running import on the briefing it belongs to.
|
||||
/// </remarks>
|
||||
VISUAL_BRIEFING,
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
namespace AIStudio.Tools.Media;
|
||||
|
||||
/// <summary>Capabilities of a media-import owner kind.</summary>
|
||||
public static class MediaImportOwnerKindExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets whether the owner stores its own source list and transcripts.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Owners that persist their own sources take the attached media over immediately and keep it
|
||||
/// next to the stored document, see <see cref="MediaImportOwnerKind.VISUAL_BRIEFING"/>. The
|
||||
/// attachment control must therefore neither wait for the transcription to finish before showing
|
||||
/// the file, nor deliver the completed transcripts back into its own list afterwards, because
|
||||
/// the owner already holds them. All other owners rely on that delivery instead.
|
||||
/// </remarks>
|
||||
/// <param name="kind">The owner kind to look up.</param>
|
||||
/// <returns><c>true</c> when the owner persists its own sources.</returns>
|
||||
public static bool PersistsOwnSources(this MediaImportOwnerKind kind) => kind is MediaImportOwnerKind.VISUAL_BRIEFING;
|
||||
}
|
||||
Reference in new issue
Block a user