Made the JSON types of the Visual Briefing assistant settable instead of init-only

This commit is contained in:
Thorsten Sommer committed 2026-11-03 08:40:05 +01:00
1 parent 4c0ba56546
commit c47c024399
10 files changed
+67 -67

No files matched your search

@@ -13,17 +13,17 @@ public sealed class VisualBriefingAssetPlanItem
/// Gets or sets the stable visual asset identifier. /// Gets or sets the stable visual asset identifier.
/// </summary> /// </summary>
[JsonRequired] [JsonRequired]
public string AssetId { get; init; } = string.Empty; public string AssetId { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the model's visual description for presentation decisions. /// Gets or sets the model's visual description for presentation decisions.
/// </summary> /// </summary>
[JsonRequired] [JsonRequired]
public string Description { get; init; } = string.Empty; public string Description { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the target-language text alternative. /// Gets or sets the target-language text alternative.
/// </summary> /// </summary>
[JsonRequired] [JsonRequired]
public string AltText { get; init; } = string.Empty; public string AltText { get; set; } = string.Empty;
} }
@@ -8,12 +8,12 @@ public sealed class VisualBriefingBuildRecord
/// <summary> /// <summary>
/// Gets or sets the build-record schema version. /// Gets or sets the build-record schema version.
/// </summary> /// </summary>
public int BuildVersion { get; init; } = VisualBriefingVersions.BUILD; public int BuildVersion { get; set; } = VisualBriefingVersions.BUILD;
/// <summary> /// <summary>
/// Gets or sets the build identifier. /// Gets or sets the build identifier.
/// </summary> /// </summary>
public Guid BuildId { get; init; } public Guid BuildId { get; set; }
/// <summary> /// <summary>
/// Gets or sets the operation identifier shown in diagnostics and logs. /// Gets or sets the operation identifier shown in diagnostics and logs.
@@ -23,17 +23,17 @@ public sealed class VisualBriefingBuildRecord
/// <summary> /// <summary>
/// Gets or sets the owning briefing identifier. /// Gets or sets the owning briefing identifier.
/// </summary> /// </summary>
public Guid BriefingId { get; init; } public Guid BriefingId { get; set; }
/// <summary> /// <summary>
/// Gets or sets the requested edit mode. /// Gets or sets the requested edit mode.
/// </summary> /// </summary>
public VisualBriefingEditMode Mode { get; init; } public VisualBriefingEditMode Mode { get; set; }
/// <summary> /// <summary>
/// Gets or sets the parent revision identifier. /// Gets or sets the parent revision identifier.
/// </summary> /// </summary>
public Guid? ParentRevisionId { get; init; } public Guid? ParentRevisionId { get; set; }
/// <summary> /// <summary>
/// Gets or sets the local revision instruction used for recovery. /// Gets or sets the local revision instruction used for recovery.
@@ -48,7 +48,7 @@ public sealed class VisualBriefingBuildRecord
/// <summary> /// <summary>
/// Gets or sets durable stage progress. /// Gets or sets durable stage progress.
/// </summary> /// </summary>
public List<VisualBriefingBuildStageRecord> Stages { get; init; } = []; public List<VisualBriefingBuildStageRecord> Stages { get; set; } = [];
/// <summary> /// <summary>
/// Gets or sets the content artifact identifier. /// Gets or sets the content artifact identifier.
@@ -83,47 +83,47 @@ public sealed class VisualBriefingBuildRecord
/// <summary> /// <summary>
/// Gets or sets the complete safe input fingerprint. /// Gets or sets the complete safe input fingerprint.
/// </summary> /// </summary>
public string InputFingerprint { get; init; } = string.Empty; public string InputFingerprint { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the source and transcript fingerprint. /// Gets or sets the source and transcript fingerprint.
/// </summary> /// </summary>
public string SourceFingerprint { get; init; } = string.Empty; public string SourceFingerprint { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the content prompt contract version. /// Gets or sets the content prompt contract version.
/// </summary> /// </summary>
public int ContentContractVersion { get; init; } = VisualBriefingVersions.CONTENT_CONTRACT; public int ContentContractVersion { get; set; } = VisualBriefingVersions.CONTENT_CONTRACT;
/// <summary> /// <summary>
/// Gets or sets the evidence prompt contract version. /// Gets or sets the evidence prompt contract version.
/// </summary> /// </summary>
public int EvidenceContractVersion { get; init; } = VisualBriefingVersions.EVIDENCE_CONTRACT; public int EvidenceContractVersion { get; set; } = VisualBriefingVersions.EVIDENCE_CONTRACT;
/// <summary> /// <summary>
/// Gets or sets the plan prompt contract version. /// Gets or sets the plan prompt contract version.
/// </summary> /// </summary>
public int PlanContractVersion { get; init; } = VisualBriefingVersions.PLAN_CONTRACT; public int PlanContractVersion { get; set; } = VisualBriefingVersions.PLAN_CONTRACT;
/// <summary> /// <summary>
/// Gets or sets the design prompt contract version. /// Gets or sets the design prompt contract version.
/// </summary> /// </summary>
public int DesignContractVersion { get; init; } = VisualBriefingVersions.DESIGN_CONTRACT; public int DesignContractVersion { get; set; } = VisualBriefingVersions.DESIGN_CONTRACT;
/// <summary> /// <summary>
/// Gets or sets the selected provider family. /// Gets or sets the selected provider family.
/// </summary> /// </summary>
public string ProviderFamily { get; init; } = string.Empty; public string ProviderFamily { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the selected model name. /// Gets or sets the selected model name.
/// </summary> /// </summary>
public string Model { get; init; } = string.Empty; public string Model { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the build creation time. /// Gets or sets the build creation time.
/// </summary> /// </summary>
public DateTimeOffset CreatedAtUtc { get; init; } public DateTimeOffset CreatedAtUtc { get; set; }
/// <summary> /// <summary>
/// Gets or sets the most recent build update time. /// Gets or sets the most recent build update time.
@@ -11,9 +11,9 @@ public sealed class VisualBriefingControlOption
{ {
/// <summary>Gets or sets the stored option value.</summary> /// <summary>Gets or sets the stored option value.</summary>
[JsonRequired] [JsonRequired]
public string Value { get; init; } = string.Empty; public string Value { get; set; } = string.Empty;
/// <summary>Gets or sets the visible option label.</summary> /// <summary>Gets or sets the visible option label.</summary>
[JsonRequired] [JsonRequired]
public string Label { get; init; } = string.Empty; public string Label { get; set; } = string.Empty;
} }
@@ -12,21 +12,21 @@ public sealed class VisualBriefingControlSpec
{ {
/// <summary>Gets or sets the globally unique control identifier.</summary> /// <summary>Gets or sets the globally unique control identifier.</summary>
[JsonRequired] [JsonRequired]
public string ControlId { get; init; } = string.Empty; public string ControlId { get; set; } = string.Empty;
/// <summary>Gets or sets the owning component identifier.</summary> /// <summary>Gets or sets the owning component identifier.</summary>
[JsonRequired] [JsonRequired]
public string ComponentId { get; init; } = string.Empty; public string ComponentId { get; set; } = string.Empty;
/// <summary>Gets or sets the control kind.</summary> /// <summary>Gets or sets the control kind.</summary>
[JsonRequired] [JsonRequired]
public VisualBriefingControlKind Kind { get; init; } public VisualBriefingControlKind Kind { get; set; }
/// <summary>Gets or sets the deterministic initial value.</summary> /// <summary>Gets or sets the deterministic initial value.</summary>
[JsonRequired] [JsonRequired]
public JsonElement InitialValue { get; init; } public JsonElement InitialValue { get; set; }
/// <summary>Gets or sets the selectable options.</summary> /// <summary>Gets or sets the selectable options.</summary>
[JsonRequired] [JsonRequired]
public List<VisualBriefingControlOption> Options { get; init; } = []; public List<VisualBriefingControlOption> Options { get; set; } = [];
} }
@@ -15,29 +15,29 @@ public sealed class VisualBriefingEvidenceArtifact
public int ContractVersion { get; set; } = VisualBriefingVersions.EVIDENCE_CONTRACT; public int ContractVersion { get; set; } = VisualBriefingVersions.EVIDENCE_CONTRACT;
/// <summary>Gets or sets the immutable artifact identifier.</summary> /// <summary>Gets or sets the immutable artifact identifier.</summary>
public Guid ArtifactId { get; init; } public Guid ArtifactId { get; set; }
/// <summary>Gets or sets the artifact creation time.</summary> /// <summary>Gets or sets the artifact creation time.</summary>
public DateTimeOffset CreatedAtUtc { get; set; } public DateTimeOffset CreatedAtUtc { get; set; }
/// <summary>Gets or sets the hash of the artifact payload.</summary> /// <summary>Gets or sets the hash of the artifact payload.</summary>
public string PayloadHash { get; init; } = string.Empty; public string PayloadHash { get; set; } = string.Empty;
/// <summary>Gets or sets the extracted factual statements.</summary> /// <summary>Gets or sets the extracted factual statements.</summary>
public List<VisualBriefingEvidenceFact> Facts { get; init; } = []; public List<VisualBriefingEvidenceFact> Facts { get; set; } = [];
/// <summary>Gets or sets the extracted numeric metrics.</summary> /// <summary>Gets or sets the extracted numeric metrics.</summary>
public List<VisualBriefingEvidenceMetric> Metrics { get; init; } = []; public List<VisualBriefingEvidenceMetric> Metrics { get; set; } = [];
/// <summary>Gets or sets the extracted tables.</summary> /// <summary>Gets or sets the extracted tables.</summary>
public List<VisualBriefingEvidenceTable> Tables { get; init; } = []; public List<VisualBriefingEvidenceTable> Tables { get; set; } = [];
/// <summary>Gets or sets source coverage.</summary> /// <summary>Gets or sets source coverage.</summary>
public List<VisualBriefingSourceCoverage> SourceCoverage { get; init; } = []; public List<VisualBriefingSourceCoverage> SourceCoverage { get; set; } = [];
/// <summary>Gets or sets the visual asset plan.</summary> /// <summary>Gets or sets the visual asset plan.</summary>
public List<VisualBriefingAssetPlanItem> AssetPlan { get; init; } = []; public List<VisualBriefingAssetPlanItem> AssetPlan { get; set; } = [];
/// <summary>Gets or sets the contributing model name.</summary> /// <summary>Gets or sets the contributing model name.</summary>
public string Model { get; init; } = string.Empty; public string Model { get; set; } = string.Empty;
} }
@@ -11,102 +11,102 @@ public sealed class VisualBriefingExportManifest
/// <summary> /// <summary>
/// Defines <c>ArtifactVersion</c> for the visual briefing feature. /// Defines <c>ArtifactVersion</c> for the visual briefing feature.
/// </summary> /// </summary>
public int ArtifactVersion { get; init; } = VisualBriefingVersions.ARTIFACT; public int ArtifactVersion { get; set; } = VisualBriefingVersions.ARTIFACT;
/// <summary> /// <summary>
/// Defines <c>SchemaVersion</c> for the visual briefing feature. /// Defines <c>SchemaVersion</c> for the visual briefing feature.
/// </summary> /// </summary>
public int SchemaVersion { get; init; } = VisualBriefingVersions.SCHEMA; public int SchemaVersion { get; set; } = VisualBriefingVersions.SCHEMA;
/// <summary> /// <summary>
/// Defines <c>RuntimeVersion</c> for the visual briefing feature. /// Defines <c>RuntimeVersion</c> for the visual briefing feature.
/// </summary> /// </summary>
public int RuntimeVersion { get; init; } = VisualBriefingVersions.RUNTIME; public int RuntimeVersion { get; set; } = VisualBriefingVersions.RUNTIME;
/// <summary> /// <summary>
/// Defines <c>BriefingId</c> for the visual briefing feature. /// Defines <c>BriefingId</c> for the visual briefing feature.
/// </summary> /// </summary>
public Guid BriefingId { get; init; } public Guid BriefingId { get; set; }
/// <summary> /// <summary>
/// Defines <c>RevisionId</c> for the visual briefing feature. /// Defines <c>RevisionId</c> for the visual briefing feature.
/// </summary> /// </summary>
public Guid RevisionId { get; init; } public Guid RevisionId { get; set; }
/// <summary> /// <summary>
/// Defines <c>ParentRevisionId</c> for the visual briefing feature. /// Defines <c>ParentRevisionId</c> for the visual briefing feature.
/// </summary> /// </summary>
public Guid? ParentRevisionId { get; init; } public Guid? ParentRevisionId { get; set; }
/// <summary> /// <summary>
/// Defines <c>Name</c> for the visual briefing feature. /// Defines <c>Name</c> for the visual briefing feature.
/// </summary> /// </summary>
public string Name { get; init; } = string.Empty; public string Name { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Defines <c>Author</c> for the visual briefing feature. /// Defines <c>Author</c> for the visual briefing feature.
/// </summary> /// </summary>
public string Author { get; init; } = string.Empty; public string Author { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Defines <c>CreatedAtUtc</c> for the visual briefing feature. /// Defines <c>CreatedAtUtc</c> for the visual briefing feature.
/// </summary> /// </summary>
public DateTimeOffset CreatedAtUtc { get; init; } public DateTimeOffset CreatedAtUtc { get; set; }
/// <summary> /// <summary>
/// Defines <c>TargetLanguage</c> for the visual briefing feature. /// Defines <c>TargetLanguage</c> for the visual briefing feature.
/// </summary> /// </summary>
public CommonLanguages TargetLanguage { get; init; } public CommonLanguages TargetLanguage { get; set; }
/// <summary> /// <summary>
/// Defines <c>CustomTargetLanguage</c> for the visual briefing feature. /// Defines <c>CustomTargetLanguage</c> for the visual briefing feature.
/// </summary> /// </summary>
public string CustomTargetLanguage { get; init; } = string.Empty; public string CustomTargetLanguage { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Defines <c>AudienceProfile</c> for the visual briefing feature. /// Defines <c>AudienceProfile</c> for the visual briefing feature.
/// </summary> /// </summary>
public AudienceProfile AudienceProfile { get; init; } public AudienceProfile AudienceProfile { get; set; }
/// <summary> /// <summary>
/// Defines <c>AudienceAgeGroup</c> for the visual briefing feature. /// Defines <c>AudienceAgeGroup</c> for the visual briefing feature.
/// </summary> /// </summary>
public AudienceAgeGroup AudienceAgeGroup { get; init; } public AudienceAgeGroup AudienceAgeGroup { get; set; }
/// <summary> /// <summary>
/// Defines <c>AudienceOrganizationalLevel</c> for the visual briefing feature. /// Defines <c>AudienceOrganizationalLevel</c> for the visual briefing feature.
/// </summary> /// </summary>
public AudienceOrganizationalLevel AudienceOrganizationalLevel { get; init; } public AudienceOrganizationalLevel AudienceOrganizationalLevel { get; set; }
/// <summary> /// <summary>
/// Defines <c>AudienceExpertise</c> for the visual briefing feature. /// Defines <c>AudienceExpertise</c> for the visual briefing feature.
/// </summary> /// </summary>
public AudienceExpertise AudienceExpertise { get; init; } public AudienceExpertise AudienceExpertise { get; set; }
/// <summary> /// <summary>
/// Defines <c>ShowSourceReferences</c> for the visual briefing feature. /// Defines <c>ShowSourceReferences</c> for the visual briefing feature.
/// </summary> /// </summary>
public bool ShowSourceReferences { get; init; } public bool ShowSourceReferences { get; set; }
/// <summary> /// <summary>
/// Defines <c>ProtectionLevel</c> for the visual briefing feature. /// Defines <c>ProtectionLevel</c> for the visual briefing feature.
/// </summary> /// </summary>
public VisualBriefingProtectionLevel ProtectionLevel { get; init; } public VisualBriefingProtectionLevel ProtectionLevel { get; set; }
/// <summary> /// <summary>
/// Defines <c>CustomProtectionLevel</c> for the visual briefing feature. /// Defines <c>CustomProtectionLevel</c> for the visual briefing feature.
/// </summary> /// </summary>
public string CustomProtectionLevel { get; init; } = string.Empty; public string CustomProtectionLevel { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Defines <c>AIStudioVersion</c> for the visual briefing feature. /// Defines <c>AIStudioVersion</c> for the visual briefing feature.
/// </summary> /// </summary>
public string AIStudioVersion { get; init; } = string.Empty; public string AIStudioVersion { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Defines <c>RuntimeAIStudioVersion</c> for the visual briefing feature. /// Defines <c>RuntimeAIStudioVersion</c> for the visual briefing feature.
/// </summary> /// </summary>
public string RuntimeAIStudioVersion { get; init; } = string.Empty; public string RuntimeAIStudioVersion { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the SHA-256 hash of the complete standalone HTML document. /// Gets or sets the SHA-256 hash of the complete standalone HTML document.
@@ -11,23 +11,23 @@ public sealed class VisualBriefingLayoutNode
{ {
/// <summary>Gets or sets the globally unique layout node identifier.</summary> /// <summary>Gets or sets the globally unique layout node identifier.</summary>
[JsonRequired] [JsonRequired]
public string NodeId { get; init; } = string.Empty; public string NodeId { get; set; } = string.Empty;
/// <summary>Gets or sets the node kind.</summary> /// <summary>Gets or sets the node kind.</summary>
[JsonRequired] [JsonRequired]
public VisualBriefingLayoutNodeKind Kind { get; init; } public VisualBriefingLayoutNodeKind Kind { get; set; }
/// <summary>Gets or sets the planned section identifier for a section node.</summary> /// <summary>Gets or sets the planned section identifier for a section node.</summary>
[JsonRequired] [JsonRequired]
public string? SectionId { get; init; } public string? SectionId { get; set; }
/// <summary>Gets or sets the planned component identifier for a component node.</summary> /// <summary>Gets or sets the planned component identifier for a component node.</summary>
[JsonRequired] [JsonRequired]
public string? ComponentId { get; init; } public string? ComponentId { get; set; }
/// <summary>Gets or sets the ordered child nodes.</summary> /// <summary>Gets or sets the ordered child nodes.</summary>
[JsonRequired] [JsonRequired]
public List<VisualBriefingLayoutNode> Children { get; init; } = []; public List<VisualBriefingLayoutNode> Children { get; set; } = [];
/// <summary>Gets or sets responsive columns for a grid node.</summary> /// <summary>Gets or sets responsive columns for a grid node.</summary>
[JsonRequired] [JsonRequired]
@@ -39,7 +39,7 @@ public sealed class VisualBriefingLayoutNode
/// <summary>Gets or sets the explicit sibling order.</summary> /// <summary>Gets or sets the explicit sibling order.</summary>
[JsonRequired] [JsonRequired]
public int Order { get; init; } public int Order { get; set; }
/// <summary>Gets or sets whether the node receives visual emphasis.</summary> /// <summary>Gets or sets whether the node receives visual emphasis.</summary>
[JsonRequired] [JsonRequired]
@@ -52,7 +52,7 @@ public sealed class VisualBriefingManifest
/// than in the settings, which the editor replaces with every save. A briefing nothing was sent to, or one /// than in the settings, which the editor replaces with every save. A briefing nothing was sent to, or one
/// written before this property existed, demands nothing. /// written before this property existed, demands nothing.
/// </remarks> /// </remarks>
public ChatRestrictions Restrictions { get; init; } = ChatRestrictions.NONE; public ChatRestrictions Restrictions { get; set; } = ChatRestrictions.NONE;
/// <summary> /// <summary>
/// Defines <c>Sources</c> for the visual briefing feature. /// Defines <c>Sources</c> for the visual briefing feature.
@@ -15,20 +15,20 @@ public sealed class VisualBriefingPlanArtifact
public int ContractVersion { get; set; } = VisualBriefingVersions.PLAN_CONTRACT; public int ContractVersion { get; set; } = VisualBriefingVersions.PLAN_CONTRACT;
/// <summary>Gets or sets the immutable artifact identifier.</summary> /// <summary>Gets or sets the immutable artifact identifier.</summary>
public Guid ArtifactId { get; init; } public Guid ArtifactId { get; set; }
/// <summary>Gets or sets the artifact creation time.</summary> /// <summary>Gets or sets the artifact creation time.</summary>
public DateTimeOffset CreatedAtUtc { get; set; } public DateTimeOffset CreatedAtUtc { get; set; }
/// <summary>Gets or sets the hash of the artifact payload.</summary> /// <summary>Gets or sets the hash of the artifact payload.</summary>
public string PayloadHash { get; init; } = string.Empty; public string PayloadHash { get; set; } = string.Empty;
/// <summary>Gets or sets the ordered planned sections.</summary> /// <summary>Gets or sets the ordered planned sections.</summary>
public List<VisualBriefingPlanSection> Sections { get; init; } = []; public List<VisualBriefingPlanSection> Sections { get; set; } = [];
/// <summary>Gets or sets the canonical structural signature.</summary> /// <summary>Gets or sets the canonical structural signature.</summary>
public string StructuralSignature { get; init; } = string.Empty; public string StructuralSignature { get; set; } = string.Empty;
/// <summary>Gets or sets the contributing model name.</summary> /// <summary>Gets or sets the contributing model name.</summary>
public string Model { get; init; } = string.Empty; public string Model { get; set; } = string.Empty;
} }
@@ -12,9 +12,9 @@ public sealed class VisualBriefingSlotValue
{ {
/// <summary>Gets or sets the planned slot identifier.</summary> /// <summary>Gets or sets the planned slot identifier.</summary>
[JsonRequired] [JsonRequired]
public string SlotId { get; init; } = string.Empty; public string SlotId { get; set; } = string.Empty;
/// <summary>Gets or sets the validated slot value.</summary> /// <summary>Gets or sets the validated slot value.</summary>
[JsonRequired] [JsonRequired]
public JsonElement Value { get; init; } public JsonElement Value { get; set; }
} }