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.
/// </summary>
[JsonRequired]
public string AssetId { get; init; } = string.Empty;
public string AssetId { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the model's visual description for presentation decisions.
/// </summary>
[JsonRequired]
public string Description { get; init; } = string.Empty;
public string Description { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the target-language text alternative.
/// </summary>
[JsonRequired]
public string AltText { get; init; } = string.Empty;
public string AltText { get; set; } = string.Empty;
}
@@ -8,12 +8,12 @@ public sealed class VisualBriefingBuildRecord
/// <summary>
/// Gets or sets the build-record schema version.
/// </summary>
public int BuildVersion { get; init; } = VisualBriefingVersions.BUILD;
public int BuildVersion { get; set; } = VisualBriefingVersions.BUILD;
/// <summary>
/// Gets or sets the build identifier.
/// </summary>
public Guid BuildId { get; init; }
public Guid BuildId { get; set; }
/// <summary>
/// Gets or sets the operation identifier shown in diagnostics and logs.
@@ -23,17 +23,17 @@ public sealed class VisualBriefingBuildRecord
/// <summary>
/// Gets or sets the owning briefing identifier.
/// </summary>
public Guid BriefingId { get; init; }
public Guid BriefingId { get; set; }
/// <summary>
/// Gets or sets the requested edit mode.
/// </summary>
public VisualBriefingEditMode Mode { get; init; }
public VisualBriefingEditMode Mode { get; set; }
/// <summary>
/// Gets or sets the parent revision identifier.
/// </summary>
public Guid? ParentRevisionId { get; init; }
public Guid? ParentRevisionId { get; set; }
/// <summary>
/// Gets or sets the local revision instruction used for recovery.
@@ -48,7 +48,7 @@ public sealed class VisualBriefingBuildRecord
/// <summary>
/// Gets or sets durable stage progress.
/// </summary>
public List<VisualBriefingBuildStageRecord> Stages { get; init; } = [];
public List<VisualBriefingBuildStageRecord> Stages { get; set; } = [];
/// <summary>
/// Gets or sets the content artifact identifier.
@@ -83,47 +83,47 @@ public sealed class VisualBriefingBuildRecord
/// <summary>
/// Gets or sets the complete safe input fingerprint.
/// </summary>
public string InputFingerprint { get; init; } = string.Empty;
public string InputFingerprint { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the source and transcript fingerprint.
/// </summary>
public string SourceFingerprint { get; init; } = string.Empty;
public string SourceFingerprint { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the content prompt contract version.
/// </summary>
public int ContentContractVersion { get; init; } = VisualBriefingVersions.CONTENT_CONTRACT;
public int ContentContractVersion { get; set; } = VisualBriefingVersions.CONTENT_CONTRACT;
/// <summary>
/// Gets or sets the evidence prompt contract version.
/// </summary>
public int EvidenceContractVersion { get; init; } = VisualBriefingVersions.EVIDENCE_CONTRACT;
public int EvidenceContractVersion { get; set; } = VisualBriefingVersions.EVIDENCE_CONTRACT;
/// <summary>
/// Gets or sets the plan prompt contract version.
/// </summary>
public int PlanContractVersion { get; init; } = VisualBriefingVersions.PLAN_CONTRACT;
public int PlanContractVersion { get; set; } = VisualBriefingVersions.PLAN_CONTRACT;
/// <summary>
/// Gets or sets the design prompt contract version.
/// </summary>
public int DesignContractVersion { get; init; } = VisualBriefingVersions.DESIGN_CONTRACT;
public int DesignContractVersion { get; set; } = VisualBriefingVersions.DESIGN_CONTRACT;
/// <summary>
/// Gets or sets the selected provider family.
/// </summary>
public string ProviderFamily { get; init; } = string.Empty;
public string ProviderFamily { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the selected model name.
/// </summary>
public string Model { get; init; } = string.Empty;
public string Model { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the build creation time.
/// </summary>
public DateTimeOffset CreatedAtUtc { get; init; }
public DateTimeOffset CreatedAtUtc { get; set; }
/// <summary>
/// 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>
[JsonRequired]
public string Value { get; init; } = string.Empty;
public string Value { get; set; } = string.Empty;
/// <summary>Gets or sets the visible option label.</summary>
[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>
[JsonRequired]
public string ControlId { get; init; } = string.Empty;
public string ControlId { get; set; } = string.Empty;
/// <summary>Gets or sets the owning component identifier.</summary>
[JsonRequired]
public string ComponentId { get; init; } = string.Empty;
public string ComponentId { get; set; } = string.Empty;
/// <summary>Gets or sets the control kind.</summary>
[JsonRequired]
public VisualBriefingControlKind Kind { get; init; }
public VisualBriefingControlKind Kind { get; set; }
/// <summary>Gets or sets the deterministic initial value.</summary>
[JsonRequired]
public JsonElement InitialValue { get; init; }
public JsonElement InitialValue { get; set; }
/// <summary>Gets or sets the selectable options.</summary>
[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;
/// <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>
public DateTimeOffset CreatedAtUtc { get; set; }
/// <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>
public List<VisualBriefingEvidenceFact> Facts { get; init; } = [];
public List<VisualBriefingEvidenceFact> Facts { get; set; } = [];
/// <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>
public List<VisualBriefingEvidenceTable> Tables { get; init; } = [];
public List<VisualBriefingEvidenceTable> Tables { get; set; } = [];
/// <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>
public List<VisualBriefingAssetPlanItem> AssetPlan { get; init; } = [];
public List<VisualBriefingAssetPlanItem> AssetPlan { get; set; } = [];
/// <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>
/// Defines <c>ArtifactVersion</c> for the visual briefing feature.
/// </summary>
public int ArtifactVersion { get; init; } = VisualBriefingVersions.ARTIFACT;
public int ArtifactVersion { get; set; } = VisualBriefingVersions.ARTIFACT;
/// <summary>
/// Defines <c>SchemaVersion</c> for the visual briefing feature.
/// </summary>
public int SchemaVersion { get; init; } = VisualBriefingVersions.SCHEMA;
public int SchemaVersion { get; set; } = VisualBriefingVersions.SCHEMA;
/// <summary>
/// Defines <c>RuntimeVersion</c> for the visual briefing feature.
/// </summary>
public int RuntimeVersion { get; init; } = VisualBriefingVersions.RUNTIME;
public int RuntimeVersion { get; set; } = VisualBriefingVersions.RUNTIME;
/// <summary>
/// Defines <c>BriefingId</c> for the visual briefing feature.
/// </summary>
public Guid BriefingId { get; init; }
public Guid BriefingId { get; set; }
/// <summary>
/// Defines <c>RevisionId</c> for the visual briefing feature.
/// </summary>
public Guid RevisionId { get; init; }
public Guid RevisionId { get; set; }
/// <summary>
/// Defines <c>ParentRevisionId</c> for the visual briefing feature.
/// </summary>
public Guid? ParentRevisionId { get; init; }
public Guid? ParentRevisionId { get; set; }
/// <summary>
/// Defines <c>Name</c> for the visual briefing feature.
/// </summary>
public string Name { get; init; } = string.Empty;
public string Name { get; set; } = string.Empty;
/// <summary>
/// Defines <c>Author</c> for the visual briefing feature.
/// </summary>
public string Author { get; init; } = string.Empty;
public string Author { get; set; } = string.Empty;
/// <summary>
/// Defines <c>CreatedAtUtc</c> for the visual briefing feature.
/// </summary>
public DateTimeOffset CreatedAtUtc { get; init; }
public DateTimeOffset CreatedAtUtc { get; set; }
/// <summary>
/// Defines <c>TargetLanguage</c> for the visual briefing feature.
/// </summary>
public CommonLanguages TargetLanguage { get; init; }
public CommonLanguages TargetLanguage { get; set; }
/// <summary>
/// Defines <c>CustomTargetLanguage</c> for the visual briefing feature.
/// </summary>
public string CustomTargetLanguage { get; init; } = string.Empty;
public string CustomTargetLanguage { get; set; } = string.Empty;
/// <summary>
/// Defines <c>AudienceProfile</c> for the visual briefing feature.
/// </summary>
public AudienceProfile AudienceProfile { get; init; }
public AudienceProfile AudienceProfile { get; set; }
/// <summary>
/// Defines <c>AudienceAgeGroup</c> for the visual briefing feature.
/// </summary>
public AudienceAgeGroup AudienceAgeGroup { get; init; }
public AudienceAgeGroup AudienceAgeGroup { get; set; }
/// <summary>
/// Defines <c>AudienceOrganizationalLevel</c> for the visual briefing feature.
/// </summary>
public AudienceOrganizationalLevel AudienceOrganizationalLevel { get; init; }
public AudienceOrganizationalLevel AudienceOrganizationalLevel { get; set; }
/// <summary>
/// Defines <c>AudienceExpertise</c> for the visual briefing feature.
/// </summary>
public AudienceExpertise AudienceExpertise { get; init; }
public AudienceExpertise AudienceExpertise { get; set; }
/// <summary>
/// Defines <c>ShowSourceReferences</c> for the visual briefing feature.
/// </summary>
public bool ShowSourceReferences { get; init; }
public bool ShowSourceReferences { get; set; }
/// <summary>
/// Defines <c>ProtectionLevel</c> for the visual briefing feature.
/// </summary>
public VisualBriefingProtectionLevel ProtectionLevel { get; init; }
public VisualBriefingProtectionLevel ProtectionLevel { get; set; }
/// <summary>
/// Defines <c>CustomProtectionLevel</c> for the visual briefing feature.
/// </summary>
public string CustomProtectionLevel { get; init; } = string.Empty;
public string CustomProtectionLevel { get; set; } = string.Empty;
/// <summary>
/// Defines <c>AIStudioVersion</c> for the visual briefing feature.
/// </summary>
public string AIStudioVersion { get; init; } = string.Empty;
public string AIStudioVersion { get; set; } = string.Empty;
/// <summary>
/// Defines <c>RuntimeAIStudioVersion</c> for the visual briefing feature.
/// </summary>
public string RuntimeAIStudioVersion { get; init; } = string.Empty;
public string RuntimeAIStudioVersion { get; set; } = string.Empty;
/// <summary>
/// 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>
[JsonRequired]
public string NodeId { get; init; } = string.Empty;
public string NodeId { get; set; } = string.Empty;
/// <summary>Gets or sets the node kind.</summary>
[JsonRequired]
public VisualBriefingLayoutNodeKind Kind { get; init; }
public VisualBriefingLayoutNodeKind Kind { get; set; }
/// <summary>Gets or sets the planned section identifier for a section node.</summary>
[JsonRequired]
public string? SectionId { get; init; }
public string? SectionId { get; set; }
/// <summary>Gets or sets the planned component identifier for a component node.</summary>
[JsonRequired]
public string? ComponentId { get; init; }
public string? ComponentId { get; set; }
/// <summary>Gets or sets the ordered child nodes.</summary>
[JsonRequired]
public List<VisualBriefingLayoutNode> Children { get; init; } = [];
public List<VisualBriefingLayoutNode> Children { get; set; } = [];
/// <summary>Gets or sets responsive columns for a grid node.</summary>
[JsonRequired]
@@ -39,7 +39,7 @@ public sealed class VisualBriefingLayoutNode
/// <summary>Gets or sets the explicit sibling order.</summary>
[JsonRequired]
public int Order { get; init; }
public int Order { get; set; }
/// <summary>Gets or sets whether the node receives visual emphasis.</summary>
[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
/// written before this property existed, demands nothing.
/// </remarks>
public ChatRestrictions Restrictions { get; init; } = ChatRestrictions.NONE;
public ChatRestrictions Restrictions { get; set; } = ChatRestrictions.NONE;
/// <summary>
/// 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;
/// <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>
public DateTimeOffset CreatedAtUtc { get; set; }
/// <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>
public List<VisualBriefingPlanSection> Sections { get; init; } = [];
public List<VisualBriefingPlanSection> Sections { get; set; } = [];
/// <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>
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>
[JsonRequired]
public string SlotId { get; init; } = string.Empty;
public string SlotId { get; set; } = string.Empty;
/// <summary>Gets or sets the validated slot value.</summary>
[JsonRequired]
public JsonElement Value { get; init; }
public JsonElement Value { get; set; }
}