save checkpoint: save features

This commit is contained in:
master
2026-02-12 10:27:23 +02:00
parent dca86e1248
commit 5bca406787
8837 changed files with 1796879 additions and 5294 deletions

View File

@@ -93,4 +93,20 @@ public sealed partial class ChangeTraceAttestationService
_ => ExploitabilityImpact.Unchanged
};
}
private static bool IsHysteresisSuppressed(PackageDelta delta, double threshold)
{
if (threshold <= 0 || delta.TrustDelta is null)
{
return false;
}
var isOscillationCandidate = delta.ChangeType is PackageChangeType.Modified or PackageChangeType.Rebuilt;
if (!isOscillationCandidate)
{
return false;
}
return Math.Abs(delta.TrustDelta.Score) < threshold;
}
}

View File

@@ -22,7 +22,11 @@ public sealed partial class ChangeTraceAttestationService
ChangeTraceModel trace,
ChangeTraceAttestationOptions options)
{
var deltas = trace.Deltas
var filteredDeltas = trace.Deltas
.Where(delta => !IsHysteresisSuppressed(delta, options.HysteresisThreshold))
.ToImmutableArray();
var deltas = filteredDeltas
.Take(options.MaxDeltas)
.Select(d => new ChangeTraceDeltaEntry
{
@@ -40,14 +44,14 @@ public sealed partial class ChangeTraceAttestationService
})
.ToImmutableArray();
var proofSteps = trace.Deltas
var proofSteps = filteredDeltas
.Where(d => d.TrustDelta is not null)
.SelectMany(d => d.TrustDelta!.ProofSteps)
.Distinct()
.Take(options.MaxProofSteps)
.ToImmutableArray();
var aggregateReachability = AggregateReachabilityImpact(trace.Deltas);
var aggregateReachability = AggregateReachabilityImpact(filteredDeltas);
var aggregateExploitability = DetermineExploitabilityFromScore(trace.Summary.RiskDelta);
return new ChangeTracePredicate

View File

@@ -55,4 +55,10 @@ public sealed record ChangeTraceAttestationOptions
/// Maximum number of deltas to include in the predicate.
/// </summary>
public int MaxDeltas { get; init; } = 1000;
/// <summary>
/// Suppress minor modified/rebuilt deltas whose absolute trust score is below this threshold.
/// This dampens noisy flip-flop changes between near-identical snapshots.
/// </summary>
public double HysteresisThreshold { get; init; } = 0.05;
}

View File

@@ -4,12 +4,20 @@ namespace StellaOps.Attestor.ProofChain.Generators;
public sealed partial class BackportProofGenerator
{
private enum ProofStrength
{
Heuristic = 40,
StaticAnalysis = 60,
BinaryProof = 80,
Authoritative = 100
}
private static double ComputeAggregateConfidence(IReadOnlyList<ProofEvidence> evidences)
{
// Confidence aggregation strategy:
// 1. Start with highest individual confidence
// 2. Add bonus for multiple independent sources
// 3. Cap at 0.98 (never 100% certain)
// 1. Start from strongest proof tier (Authoritative > Binary > Static > Heuristic)
// 2. Add small diminishing bonus for independent corroboration
// 3. Cap at 0.98 (never claim perfect certainty)
var baseConfidence = evidences.Count switch
{
@@ -18,8 +26,7 @@ public sealed partial class BackportProofGenerator
_ => evidences.Max(e => DetermineEvidenceConfidence(e.Type))
};
// Bonus for multiple sources (diminishing returns)
var multiSourceBonus = evidences.Count switch
var corroborationBonus = evidences.Count switch
{
<= 1 => 0.0,
2 => 0.05,
@@ -27,22 +34,23 @@ public sealed partial class BackportProofGenerator
_ => 0.10
};
return Math.Min(baseConfidence + multiSourceBonus, 0.98);
return Math.Min(baseConfidence + corroborationBonus, 0.98);
}
private static double DetermineEvidenceConfidence(EvidenceType type)
{
return type switch
=> (double)ResolveStrength(type) / 100.0;
private static ProofStrength ResolveStrength(EvidenceType type)
=> type switch
{
EvidenceType.DistroAdvisory => 0.98,
EvidenceType.ChangelogMention => 0.80,
EvidenceType.PatchHeader => 0.85,
EvidenceType.BinaryFingerprint => 0.70,
EvidenceType.VersionComparison => 0.95,
EvidenceType.BuildCatalog => 0.90,
_ => 0.50
EvidenceType.DistroAdvisory => ProofStrength.Authoritative,
EvidenceType.VersionComparison => ProofStrength.BinaryProof,
EvidenceType.BuildCatalog => ProofStrength.BinaryProof,
EvidenceType.PatchHeader => ProofStrength.StaticAnalysis,
EvidenceType.ChangelogMention => ProofStrength.StaticAnalysis,
EvidenceType.BinaryFingerprint => ProofStrength.Heuristic,
_ => ProofStrength.Heuristic
};
}
private static string DetermineMethod(IReadOnlyList<ProofEvidence> evidences)
{

View File

@@ -11,6 +11,18 @@ public sealed partial class InMemoryProofGraphService
string targetId,
ProofGraphEdgeType edgeType,
CancellationToken ct = default)
=> AddEdgeAsync(sourceId, targetId, edgeType, provenance: null, ct);
/// <summary>
/// Add a provenance-aware edge. Duplicate edges are merged by semantic key
/// and provenance values are merged deterministically.
/// </summary>
public Task<ProofGraphEdge> AddEdgeAsync(
string sourceId,
string targetId,
ProofGraphEdgeType edgeType,
IEnumerable<string>? provenance,
CancellationToken ct = default)
{
ArgumentException.ThrowIfNullOrWhiteSpace(sourceId);
ArgumentException.ThrowIfNullOrWhiteSpace(targetId);
@@ -26,6 +38,7 @@ public sealed partial class InMemoryProofGraphService
}
var edgeId = $"{sourceId}->{edgeType}->{targetId}";
var normalizedProvenance = NormalizeProvenance(provenance);
var edge = new ProofGraphEdge
{
@@ -33,7 +46,8 @@ public sealed partial class InMemoryProofGraphService
SourceId = sourceId,
TargetId = targetId,
Type = edgeType,
CreatedAt = _timeProvider.GetUtcNow()
CreatedAt = _timeProvider.GetUtcNow(),
Provenance = normalizedProvenance
};
if (_edges.TryAdd(edgeId, edge))
@@ -51,8 +65,38 @@ public sealed partial class InMemoryProofGraphService
else
{
edge = _edges[edgeId];
if (normalizedProvenance.Count != 0)
{
var merged = edge.Provenance
.Concat(normalizedProvenance)
.Where(value => !string.IsNullOrWhiteSpace(value))
.Distinct(StringComparer.Ordinal)
.OrderBy(value => value, StringComparer.Ordinal)
.ToArray();
if (merged.Length != edge.Provenance.Count || !merged.SequenceEqual(edge.Provenance, StringComparer.Ordinal))
{
edge = edge with { Provenance = merged };
_edges[edgeId] = edge;
}
}
}
return Task.FromResult(edge);
}
private static IReadOnlyList<string> NormalizeProvenance(IEnumerable<string>? provenance)
{
if (provenance is null)
{
return [];
}
return provenance
.Where(value => !string.IsNullOrWhiteSpace(value))
.Select(value => value.Trim())
.Distinct(StringComparer.Ordinal)
.OrderBy(value => value, StringComparer.Ordinal)
.ToArray();
}
}

View File

@@ -31,4 +31,10 @@ public sealed record ProofGraphEdge
/// When this edge was created.
/// </summary>
public required DateTimeOffset CreatedAt { get; init; }
/// <summary>
/// Provenance sources associated with this edge.
/// When duplicate edges are ingested, provenance is merged deterministically.
/// </summary>
public IReadOnlyList<string> Provenance { get; init; } = [];
}

View File

@@ -0,0 +1,135 @@
using System.Collections.Immutable;
using System.Globalization;
namespace StellaOps.Attestor.ProofChain.Predicates;
public sealed partial record DeltaVerdictPredicate
{
public const string ChangeTypeNew = "New";
public const string ChangeTypeResolved = "Resolved";
public const string ChangeTypeConfidenceUp = "ConfidenceUp";
public const string ChangeTypeConfidenceDown = "ConfidenceDown";
public const string ChangeTypePolicyImpact = "PolicyImpact";
/// <summary>
/// Returns a copy where every change has a normalized change type.
/// </summary>
public DeltaVerdictPredicate CategorizeChanges()
=> this with
{
Changes = Changes.Select(CategorizeChange).ToImmutableArray()
};
internal static DeltaVerdictChange CategorizeChange(DeltaVerdictChange change)
{
ArgumentNullException.ThrowIfNull(change);
var explicitType = NormalizeExplicitType(change.ChangeType);
if (explicitType is not null)
{
return change with { ChangeType = explicitType };
}
var inferred = InferChangeType(change);
return change with { ChangeType = inferred };
}
private static string InferChangeType(DeltaVerdictChange change)
{
if (IsPolicyImpact(change))
{
return ChangeTypePolicyImpact;
}
if (IsNew(change))
{
return ChangeTypeNew;
}
if (IsResolved(change))
{
return ChangeTypeResolved;
}
if (TryParseScoreDelta(change.PreviousValue, change.CurrentValue, out var delta))
{
if (delta > 0)
{
return ChangeTypeConfidenceUp;
}
if (delta < 0)
{
return ChangeTypeConfidenceDown;
}
}
var direction = change.Direction ?? string.Empty;
if (direction.Contains("increase", StringComparison.OrdinalIgnoreCase)
|| direction.Contains("up", StringComparison.OrdinalIgnoreCase))
{
return ChangeTypeConfidenceUp;
}
if (direction.Contains("decrease", StringComparison.OrdinalIgnoreCase)
|| direction.Contains("down", StringComparison.OrdinalIgnoreCase))
{
return ChangeTypeConfidenceDown;
}
return ChangeTypePolicyImpact;
}
private static bool IsPolicyImpact(DeltaVerdictChange change)
=> ContainsAny(change.Rule, "policy", "rule")
|| ContainsAny(change.Reason, "policy", "gate", "rule");
private static bool IsNew(DeltaVerdictChange change)
=> ContainsAny(change.Direction, "new", "added", "introduced")
|| string.IsNullOrWhiteSpace(change.PreviousValue) && !string.IsNullOrWhiteSpace(change.CurrentValue);
private static bool IsResolved(DeltaVerdictChange change)
=> ContainsAny(change.Direction, "resolved", "removed", "eliminated")
|| !string.IsNullOrWhiteSpace(change.PreviousValue) && string.IsNullOrWhiteSpace(change.CurrentValue);
private static bool ContainsAny(string? value, params string[] needles)
{
if (string.IsNullOrWhiteSpace(value))
{
return false;
}
return needles.Any(needle => value.Contains(needle, StringComparison.OrdinalIgnoreCase));
}
private static bool TryParseScoreDelta(string? before, string? after, out double delta)
{
delta = 0;
if (!double.TryParse(before, NumberStyles.Float, CultureInfo.InvariantCulture, out var beforeValue)
|| !double.TryParse(after, NumberStyles.Float, CultureInfo.InvariantCulture, out var afterValue))
{
return false;
}
delta = afterValue - beforeValue;
return true;
}
private static string? NormalizeExplicitType(string? rawType)
{
if (string.IsNullOrWhiteSpace(rawType))
{
return null;
}
return rawType.Trim().ToLowerInvariant() switch
{
"new" => ChangeTypeNew,
"resolved" => ChangeTypeResolved,
"confidenceup" => ChangeTypeConfidenceUp,
"confidencedown" => ChangeTypeConfidenceDown,
"policyimpact" => ChangeTypePolicyImpact,
_ => null
};
}
}

View File

@@ -1,10 +1,14 @@
# Attestor ProofChain Task Board
# Attestor ProofChain Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229_049_BE_csproj_audit_maint_tests.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| QA-ATTESTOR-VERIFY-006 | DONE | `ai-remediation-plan-attestation` verified with run-001 Tier 0/1/2 evidence; fixed remediation threshold fixture and completed retest (`17/17`). |
| QA-ATTESTOR-VERIFY-007 | DONE | `asn-1-native-rfc-3161-timestamp-token-parsing` run-001 completed with terminal `not_implemented`; dossier moved to `docs/features/unimplemented/attestor/`. |
| QA-ATTESTOR-VERIFY-008 | DONE | `attestable-exception-objects-with-expiries-and-audit-trails` run-001 reached terminal `not_implemented`; dossier moved to `docs/features/unimplemented/attestor/`. |
| QA-ATTESTOR-VERIFY-009 | DONE | `attestable-reachability-slices` run-001 verified with targeted reachability witness DSSE behavior tests (`5/5`) and moved to `docs/features/checked/attestor/`. |
| QA-ATTESTOR-VERIFY-001 | DONE | `adaptive-noise-gating-for-vulnerability-graphs` verified with run-002 evidence and moved to checked. |
| QA-ATTESTOR-VERIFY-002 | DONE | `ai-assisted-explanation-and-classification` verified with run-001 evidence and moved to checked. |
| QA-ATTESTOR-VERIFY-003 | DONE | `ai-authority-classification-engine` revalidated with run-002 (`11/11`) and docs/state synchronized. |
@@ -13,3 +17,6 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0062-T | DONE | Revalidated 2026-01-06. |
| AUDIT-0062-A | TODO | Reopened after revalidation 2026-01-06. |

View File

@@ -0,0 +1,558 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"StellaOps.Attestor.ProofChain/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"StellaOps.Attestor.Envelope": "1.0.0",
"StellaOps.Canonical.Json": "1.0.0",
"StellaOps.Concelier.SourceIntel": "1.0.0",
"StellaOps.Feedser.BinaryAnalysis": "1.0.0",
"StellaOps.Feedser.Core": "1.0.0",
"StellaOps.Scanner.ChangeTrace": "1.0.0"
},
"runtime": {
"StellaOps.Attestor.ProofChain.dll": {}
}
},
"Blake3/1.1.0": {
"runtime": {
"lib/net7.0/Blake3.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.1.0.0"
}
},
"runtimeTargets": {
"runtimes/linux-arm/native/libblake3_dotnet.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libblake3_dotnet.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libblake3_dotnet.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-arm64/native/libblake3_dotnet.dylib": {
"rid": "osx-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libblake3_dotnet.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/blake3_dotnet.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/blake3_dotnet.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/blake3_dotnet.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"BouncyCastle.Cryptography/2.6.2": {
"runtime": {
"lib/net6.0/BouncyCastle.Cryptography.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.6.2.46322"
}
}
},
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Caching.Memory/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.1",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.DependencyInjection/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Diagnostics/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.1",
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Http/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Diagnostics": "10.0.1",
"Microsoft.Extensions.Logging": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Http.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Logging/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Primitives/10.0.1": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.IdentityModel.Abstractions/8.15.0": {
"runtime": {
"lib/net10.0/Microsoft.IdentityModel.Abstractions.dll": {
"assemblyVersion": "8.15.0.0",
"fileVersion": "8.15.0.61118"
}
}
},
"Microsoft.IdentityModel.Logging/8.15.0": {
"dependencies": {
"Microsoft.IdentityModel.Abstractions": "8.15.0"
},
"runtime": {
"lib/net10.0/Microsoft.IdentityModel.Logging.dll": {
"assemblyVersion": "8.15.0.0",
"fileVersion": "8.15.0.61118"
}
}
},
"Microsoft.IdentityModel.Tokens/8.15.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.IdentityModel.Logging": "8.15.0"
},
"runtime": {
"lib/net10.0/Microsoft.IdentityModel.Tokens.dll": {
"assemblyVersion": "8.15.0.0",
"fileVersion": "8.15.0.61118"
}
}
},
"StellaOps.Attestor.Envelope/1.0.0": {
"dependencies": {
"BouncyCastle.Cryptography": "2.6.2",
"StellaOps.Cryptography": "1.0.0"
},
"runtime": {
"StellaOps.Attestor.Envelope.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Canonical.Json/1.0.0": {
"runtime": {
"StellaOps.Canonical.Json.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Concelier.SourceIntel/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
"Microsoft.Extensions.Caching.Memory": "10.0.1",
"Microsoft.Extensions.Http": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1"
},
"runtime": {
"StellaOps.Concelier.SourceIntel.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Cryptography/1.0.0": {
"dependencies": {
"Blake3": "1.1.0",
"BouncyCastle.Cryptography": "2.6.2",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.IdentityModel.Tokens": "8.15.0"
},
"runtime": {
"StellaOps.Cryptography.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Feedser.BinaryAnalysis/1.0.0": {
"runtime": {
"StellaOps.Feedser.BinaryAnalysis.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Feedser.Core/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1"
},
"runtime": {
"StellaOps.Feedser.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Scanner.ChangeTrace/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"StellaOps.Canonical.Json": "1.0.0"
},
"runtime": {
"StellaOps.Scanner.ChangeTrace.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"StellaOps.Attestor.ProofChain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Blake3/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/gWRFsXYeIFof8YAoFJwzv2fYjSTCo+6vvTSL6pyXw2ZLXQdRvEyXhO43jyDfEFBCTxMxWpoHbIcIEIF6a3QdQ==",
"path": "blake3/1.1.0",
"hashPath": "blake3.1.1.0.nupkg.sha512"
},
"BouncyCastle.Cryptography/2.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==",
"path": "bouncycastle.cryptography/2.6.2",
"hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
"path": "microsoft.extensions.caching.abstractions/10.0.1",
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Memory/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
"path": "microsoft.extensions.caching.memory/10.0.1",
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
"path": "microsoft.extensions.configuration/10.0.1",
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
"path": "microsoft.extensions.configuration.binder/10.0.1",
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
"path": "microsoft.extensions.dependencyinjection/10.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
"path": "microsoft.extensions.diagnostics/10.0.1",
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Http/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
"path": "microsoft.extensions.http/10.0.1",
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
"path": "microsoft.extensions.logging/10.0.1",
"hashPath": "microsoft.extensions.logging.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
"path": "microsoft.extensions.logging.abstractions/10.0.1",
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
"path": "microsoft.extensions.options/10.0.1",
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
"path": "microsoft.extensions.primitives/10.0.1",
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
},
"Microsoft.IdentityModel.Abstractions/8.15.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-e/DApa1GfxUqHSBHcpiQg8yaghKAvFVBQFcWh25jNoRobDZbduTUACY8bZ54eeGWXvimGmEDdF0zkS5Dq16XPQ==",
"path": "microsoft.identitymodel.abstractions/8.15.0",
"hashPath": "microsoft.identitymodel.abstractions.8.15.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Logging/8.15.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1gJLjhy0LV2RQMJ9NGzi5Tnb2l+c37o8D8Lrk2mrvmb6OQHZ7XJstd/XxvncXgBpad4x9CGXdipbZzJJCXKyAg==",
"path": "microsoft.identitymodel.logging/8.15.0",
"hashPath": "microsoft.identitymodel.logging.8.15.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Tokens/8.15.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zUE9ysJXBtXlHHRtcRK3Sp8NzdCI1z/BRDTXJQ2TvBoI0ENRtnufYIep0O5TSCJRJGDwwuLTUx+l/bEYZUxpCA==",
"path": "microsoft.identitymodel.tokens/8.15.0",
"hashPath": "microsoft.identitymodel.tokens.8.15.0.nupkg.sha512"
},
"StellaOps.Attestor.Envelope/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Canonical.Json/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Concelier.SourceIntel/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Cryptography/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Feedser.BinaryAnalysis/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Feedser.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Scanner.ChangeTrace/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,646 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"StellaOps.Attestor.StandardPredicates/1.0.0": {
"dependencies": {
"JsonSchema.Net": "8.0.4",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"StellaOps.Attestor.Envelope": "1.0.0",
"StellaOps.Attestor.ProofChain": "1.0.0"
},
"runtime": {
"StellaOps.Attestor.StandardPredicates.dll": {}
}
},
"Blake3/1.1.0": {
"runtime": {
"lib/net7.0/Blake3.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.1.0.0"
}
},
"runtimeTargets": {
"runtimes/linux-arm/native/libblake3_dotnet.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libblake3_dotnet.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libblake3_dotnet.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-arm64/native/libblake3_dotnet.dylib": {
"rid": "osx-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libblake3_dotnet.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/blake3_dotnet.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/blake3_dotnet.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/blake3_dotnet.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"BouncyCastle.Cryptography/2.6.2": {
"runtime": {
"lib/net6.0/BouncyCastle.Cryptography.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.6.2.46322"
}
}
},
"Humanizer.Core/3.0.1": {
"runtime": {
"lib/net10.0/Humanizer.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.0.1.28244"
}
}
},
"Json.More.Net/2.2.0": {
"runtime": {
"lib/net10.0/Json.More.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.2.0.0"
}
}
},
"JsonPointer.Net/6.0.1": {
"dependencies": {
"Humanizer.Core": "3.0.1",
"Json.More.Net": "2.2.0"
},
"runtime": {
"lib/net10.0/JsonPointer.Net.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.1.0"
}
}
},
"JsonSchema.Net/8.0.4": {
"dependencies": {
"JsonPointer.Net": "6.0.1"
},
"runtime": {
"lib/net9.0/JsonSchema.Net.dll": {
"assemblyVersion": "8.0.4.0",
"fileVersion": "8.0.4.0"
}
}
},
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Caching.Memory/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.1",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.DependencyInjection/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Diagnostics/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.1",
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Http/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Diagnostics": "10.0.1",
"Microsoft.Extensions.Logging": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Http.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Logging/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Primitives/10.0.1": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.IdentityModel.Abstractions/8.15.0": {
"runtime": {
"lib/net10.0/Microsoft.IdentityModel.Abstractions.dll": {
"assemblyVersion": "8.15.0.0",
"fileVersion": "8.15.0.61118"
}
}
},
"Microsoft.IdentityModel.Logging/8.15.0": {
"dependencies": {
"Microsoft.IdentityModel.Abstractions": "8.15.0"
},
"runtime": {
"lib/net10.0/Microsoft.IdentityModel.Logging.dll": {
"assemblyVersion": "8.15.0.0",
"fileVersion": "8.15.0.61118"
}
}
},
"Microsoft.IdentityModel.Tokens/8.15.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.IdentityModel.Logging": "8.15.0"
},
"runtime": {
"lib/net10.0/Microsoft.IdentityModel.Tokens.dll": {
"assemblyVersion": "8.15.0.0",
"fileVersion": "8.15.0.61118"
}
}
},
"StellaOps.Attestor.Envelope/1.0.0": {
"dependencies": {
"BouncyCastle.Cryptography": "2.6.2",
"StellaOps.Cryptography": "1.0.0"
},
"runtime": {
"StellaOps.Attestor.Envelope.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Attestor.ProofChain/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"StellaOps.Attestor.Envelope": "1.0.0",
"StellaOps.Canonical.Json": "1.0.0",
"StellaOps.Concelier.SourceIntel": "1.0.0",
"StellaOps.Feedser.BinaryAnalysis": "1.0.0",
"StellaOps.Feedser.Core": "1.0.0",
"StellaOps.Scanner.ChangeTrace": "1.0.0"
},
"runtime": {
"StellaOps.Attestor.ProofChain.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Canonical.Json/1.0.0": {
"runtime": {
"StellaOps.Canonical.Json.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Concelier.SourceIntel/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
"Microsoft.Extensions.Caching.Memory": "10.0.1",
"Microsoft.Extensions.Http": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1"
},
"runtime": {
"StellaOps.Concelier.SourceIntel.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Cryptography/1.0.0": {
"dependencies": {
"Blake3": "1.1.0",
"BouncyCastle.Cryptography": "2.6.2",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.IdentityModel.Tokens": "8.15.0"
},
"runtime": {
"StellaOps.Cryptography.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Feedser.BinaryAnalysis/1.0.0": {
"runtime": {
"StellaOps.Feedser.BinaryAnalysis.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Feedser.Core/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1"
},
"runtime": {
"StellaOps.Feedser.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Scanner.ChangeTrace/1.0.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"StellaOps.Canonical.Json": "1.0.0"
},
"runtime": {
"StellaOps.Scanner.ChangeTrace.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"StellaOps.Attestor.StandardPredicates/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Blake3/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/gWRFsXYeIFof8YAoFJwzv2fYjSTCo+6vvTSL6pyXw2ZLXQdRvEyXhO43jyDfEFBCTxMxWpoHbIcIEIF6a3QdQ==",
"path": "blake3/1.1.0",
"hashPath": "blake3.1.1.0.nupkg.sha512"
},
"BouncyCastle.Cryptography/2.6.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==",
"path": "bouncycastle.cryptography/2.6.2",
"hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512"
},
"Humanizer.Core/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-scB3+KcxNmEjZK5V8rKCW2gIiL8m8KH91w14FuuExyhi9xTyAJ+jr+DDxGdy12mHmioe2uvjxTfMgM7WmSUFlw==",
"path": "humanizer.core/3.0.1",
"hashPath": "humanizer.core.3.0.1.nupkg.sha512"
},
"Json.More.Net/2.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fiyEZJNgiCzDa7/N9bZ+CnM5qnawyJ54+CkHNZ2svwxWBWNNFzydJ7RlroqMdOjokGBiLcKIxdajNvOklzlYqQ==",
"path": "json.more.net/2.2.0",
"hashPath": "json.more.net.2.2.0.nupkg.sha512"
},
"JsonPointer.Net/6.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EbSJkd/1y9r0WBIptjUctA6BzjgKh1aNU/g6QGgdMZVZ8wc0S/ysQhfiQerP9/VFTeENFHFdCQaoOk9fZqwnFQ==",
"path": "jsonpointer.net/6.0.1",
"hashPath": "jsonpointer.net.6.0.1.nupkg.sha512"
},
"JsonSchema.Net/8.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NSJ1iu+7Dg6fxaev90bWLvHi5mCqrGMgJuRzXr9mIaRt54Niox3D5g3uKH7ic7vcfkyhDU9opkAPGvek+cG53g==",
"path": "jsonschema.net/8.0.4",
"hashPath": "jsonschema.net.8.0.4.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
"path": "microsoft.extensions.caching.abstractions/10.0.1",
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Memory/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
"path": "microsoft.extensions.caching.memory/10.0.1",
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
"path": "microsoft.extensions.configuration/10.0.1",
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
"path": "microsoft.extensions.configuration.binder/10.0.1",
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
"path": "microsoft.extensions.dependencyinjection/10.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
"path": "microsoft.extensions.diagnostics/10.0.1",
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Http/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
"path": "microsoft.extensions.http/10.0.1",
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
"path": "microsoft.extensions.logging/10.0.1",
"hashPath": "microsoft.extensions.logging.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
"path": "microsoft.extensions.logging.abstractions/10.0.1",
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
"path": "microsoft.extensions.options/10.0.1",
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
"path": "microsoft.extensions.primitives/10.0.1",
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
},
"Microsoft.IdentityModel.Abstractions/8.15.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-e/DApa1GfxUqHSBHcpiQg8yaghKAvFVBQFcWh25jNoRobDZbduTUACY8bZ54eeGWXvimGmEDdF0zkS5Dq16XPQ==",
"path": "microsoft.identitymodel.abstractions/8.15.0",
"hashPath": "microsoft.identitymodel.abstractions.8.15.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Logging/8.15.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1gJLjhy0LV2RQMJ9NGzi5Tnb2l+c37o8D8Lrk2mrvmb6OQHZ7XJstd/XxvncXgBpad4x9CGXdipbZzJJCXKyAg==",
"path": "microsoft.identitymodel.logging/8.15.0",
"hashPath": "microsoft.identitymodel.logging.8.15.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Tokens/8.15.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zUE9ysJXBtXlHHRtcRK3Sp8NzdCI1z/BRDTXJQ2TvBoI0ENRtnufYIep0O5TSCJRJGDwwuLTUx+l/bEYZUxpCA==",
"path": "microsoft.identitymodel.tokens/8.15.0",
"hashPath": "microsoft.identitymodel.tokens.8.15.0.nupkg.sha512"
},
"StellaOps.Attestor.Envelope/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Attestor.ProofChain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Canonical.Json/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Concelier.SourceIntel/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Cryptography/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Feedser.BinaryAnalysis/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Feedser.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Scanner.ChangeTrace/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}