# TraconDiagnosticsReport

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.tracondiagnosticsreport/
> Summary: TraconDiagnosticsReport: Reports the self-diagnostics of the installation.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

Reports the self-diagnostics of the installation.

```csharp
public sealed record TraconDiagnosticsReport : IEquatable<TraconDiagnosticsReport>
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.tracondiagnosticsreport/">TraconDiagnosticsReport</a></dd><dt>Implements</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable&lt;TraconDiagnosticsReport&gt;</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

This type does not carry a `secret`. It has no connection string, API
key, or credential fields. It only carries whether configuration resolved.

`TraconDiagnosticsCollector` in Tracon.Core creates this report.
It makes no model call and applies no migration. It only reads the current state.

## Constructors

### <a id="Tracon_TraconDiagnosticsReport__ctor"></a> TraconDiagnosticsReport\(\)

```csharp
public TraconDiagnosticsReport()
```

## Properties

### <a id="Tracon_TraconDiagnosticsReport_AgentCount"></a> AgentCount

Gets the number of registered agents. Returns [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) when the catalog cannot be read.

```csharp
public required int? AgentCount { get; init; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)?

#### Remarks

[null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) and `0` are different. This report must
describe a broken installation. A catalog query fails when
`AutoApplyMigrations=false` and the schema is not applied yet.
Returning `0` would incorrectly state that no agents exist;
[null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) states that counting failed. The remaining report,
especially [TraconDiagnosticsReport.PendingMigrations](/api/tracon.tracondiagnosticsreport/#Tracon_TraconDiagnosticsReport_PendingMigrations), is still populated.

### <a id="Tracon_TraconDiagnosticsReport_AgentSources"></a> AgentSources

Gets the agent sources registered in priority order.

```csharp
public required IReadOnlyList<AgentSourceDiagnostic> AgentSources { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[AgentSourceDiagnostic](/api/tracon.agentsourcediagnostic/)\>

### <a id="Tracon_TraconDiagnosticsReport_CanConnect"></a> CanConnect

Gets whether the active SQL provider can connect. Returns [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool)
without an SQL provider.

```csharp
public required bool CanConnect { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconDiagnosticsReport_Configuration"></a> Configuration

Gets the resolution status of configuration keys required by registered providers.

```csharp
public required IReadOnlyList<ConfigurationDiagnostic> Configuration { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[ConfigurationDiagnostic](/api/tracon.configurationdiagnostic/)\>

### <a id="Tracon_TraconDiagnosticsReport_ExtensionPoints"></a> ExtensionPoints

Gets the embedding points a host application binds to attach Tracon
to its own tenancy, identity, authorization, eventing, and storage.

```csharp
public required IReadOnlyList<ExtensionPointDiagnostic> ExtensionPoints { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[ExtensionPointDiagnostic](/api/tracon.extensionpointdiagnostic/)\>

#### Remarks

Fixed length: one entry per embedding point (`ITenantContext`,
`IRunAttributionContext`, `IToolAuthorizationHandler`,
`IRunAuthorizationHandler`, `IRunEventSink`,
`IAttachmentStorage`, `IToolApprovalPresenter`), never more. Carries no
`secret`: only the bound implementation's type name and whether it
is Tracon's built-in default.

### <a id="Tracon_TraconDiagnosticsReport_MigrationsUpToDate"></a> MigrationsUpToDate

Gets whether no migrations are pending. Returns [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) without an SQL provider.

```csharp
public required bool MigrationsUpToDate { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconDiagnosticsReport_ModelProviders"></a> ModelProviders

Gets the last known status of each registered model provider.

```csharp
public required IReadOnlyList<ProviderDiagnostic> ModelProviders { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[ProviderDiagnostic](/api/tracon.providerdiagnostic/)\>

### <a id="Tracon_TraconDiagnosticsReport_PendingMigrations"></a> PendingMigrations

Gets the pending migration names. The list is empty when there is no SQL
provider or all migrations are applied.

```csharp
public required IReadOnlyList<string> PendingMigrations { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

### <a id="Tracon_TraconDiagnosticsReport_PersistenceProvider"></a> PersistenceProvider

Gets the name of the active persistence provider, for example `PostgreSQL` or `InMemory`.

```csharp
public required string PersistenceProvider { get; init; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_TraconDiagnosticsReport_Pricing"></a> Pricing

Gets whether this installation can actually put a price on a run.

```csharp
public required PricingDiagnostic Pricing { get; init; }
```

#### Property Value

 [PricingDiagnostic](/api/tracon.pricingdiagnostic/)

### <a id="Tracon_TraconDiagnosticsReport_RegisteredPersistenceProviders"></a> RegisteredPersistenceProviders

Gets the number of registered SQL persistence providers. More than `1`
indicates a setup defect: the last call wins and silently disables the others.

```csharp
public required int RegisteredPersistenceProviders { get; init; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_TraconDiagnosticsReport_RunRecording"></a> RunRecording

Gets the run recording settings this installation is running with.

```csharp
public required RunRecordingDiagnostic RunRecording { get; init; }
```

#### Property Value

 [RunRecordingDiagnostic](/api/tracon.runrecordingdiagnostic/)

### <a id="Tracon_TraconDiagnosticsReport_ToolCount"></a> ToolCount

Gets the number of registered tools.

```csharp
public required int ToolCount { get; init; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_TraconDiagnosticsReport_UiEmbedded"></a> UiEmbedded

Gets whether the management UI has embedded assets.

```csharp
public required bool UiEmbedded { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Methods

### <a id="Tracon_TraconDiagnosticsReport_Equals_System_Object_"></a> Equals\(object?\)

```csharp
public override bool Equals(object? obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconDiagnosticsReport_Equals_Tracon_TraconDiagnosticsReport_"></a> Equals\(TraconDiagnosticsReport?\)

```csharp
public bool Equals(TraconDiagnosticsReport? other)
```

#### Parameters

`other` [TraconDiagnosticsReport](/api/tracon.tracondiagnosticsreport/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconDiagnosticsReport_GetHashCode"></a> GetHashCode\(\)

```csharp
public override int GetHashCode()
```

#### Returns

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_TraconDiagnosticsReport_ToString"></a> ToString\(\)

```csharp
public override string ToString()
```

#### Returns

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Operators

### <a id="Tracon_TraconDiagnosticsReport_op_Equality_Tracon_TraconDiagnosticsReport_Tracon_TraconDiagnosticsReport_"></a> operator ==\(TraconDiagnosticsReport?, TraconDiagnosticsReport?\)

```csharp
public static bool operator ==(TraconDiagnosticsReport? left, TraconDiagnosticsReport? right)
```

#### Parameters

`left` [TraconDiagnosticsReport](/api/tracon.tracondiagnosticsreport/)?

`right` [TraconDiagnosticsReport](/api/tracon.tracondiagnosticsreport/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconDiagnosticsReport_op_Inequality_Tracon_TraconDiagnosticsReport_Tracon_TraconDiagnosticsReport_"></a> operator \!=\(TraconDiagnosticsReport?, TraconDiagnosticsReport?\)

```csharp
public static bool operator !=(TraconDiagnosticsReport? left, TraconDiagnosticsReport? right)
```

#### Parameters

`left` [TraconDiagnosticsReport](/api/tracon.tracondiagnosticsreport/)?

`right` [TraconDiagnosticsReport](/api/tracon.tracondiagnosticsreport/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)
