# EvalCaseDraft

> 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.evalcasedraft/
> Summary: EvalCaseDraft: Carrier for adding a single EvalCase.

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

Carrier for adding a single [EvalCase](/api/tracon.evalcase/).

```csharp
public sealed record EvalCaseDraft : IEquatable<EvalCaseDraft>
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.evalcasedraft/">EvalCaseDraft</a></dd><dt>Implements</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable&lt;EvalCaseDraft&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>

## Constructors

### <a id="Tracon_EvalCaseDraft__ctor"></a> EvalCaseDraft\(\)

```csharp
public EvalCaseDraft()
```

## Properties

### <a id="Tracon_EvalCaseDraft_Context"></a> Context

Text given to the model as extra context.

```csharp
public string? Context { get; init; }
```

#### Property Value

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

The agent receives it through the document channel, ahead of
[EvalCaseDraft.Query](/api/tracon.evalcasedraft/#Tracon_EvalCaseDraft_Query); see [EvalCase.Context](/api/tracon.evalcase/#Tracon_EvalCase_Context). A promoted case
stores the source run's document channel blocks here verbatim.

### <a id="Tracon_EvalCaseDraft_ExpectedOutput"></a> ExpectedOutput

The expected output.

```csharp
public string? ExpectedOutput { get; init; }
```

#### Property Value

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

The expected tool calls. See [EvalCase.ExpectedToolCalls](/api/tracon.evalcase/#Tracon_EvalCase_ExpectedToolCalls).

```csharp
public IReadOnlyList<EvalExpectedToolCall> ExpectedToolCalls { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[EvalExpectedToolCall](/api/tracon.evalexpectedtoolcall/)\>

### <a id="Tracon_EvalCaseDraft_Parameters"></a> Parameters

Values for the target agent's [AgentDefinition.Parameters](/api/tracon.agentdefinition/#Tracon_AgentDefinition_Parameters)
schema. [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) for an agent that declares no parameters.
See [EvalCase.Parameters](/api/tracon.evalcase/#Tracon_EvalCase_Parameters).

```csharp
public IReadOnlyDictionary<string, string>? Parameters { get; init; }
```

#### Property Value

 [IReadOnlyDictionary](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary\-2)<[string](https://learn.microsoft.com/dotnet/api/system.string), [string](https://learn.microsoft.com/dotnet/api/system.string)\>?

#### Remarks

A promoted case copies the values the source run recorded
([RunInputRecord.Parameters](/api/tracon.runinputrecord/#Tracon_RunInputRecord_Parameters), defaults included), so the case
is bound with what the production run was told. An
[IEvalStore](/api/tracon.ievalstore/) writes them like the case's other fields; one
that drops them leaves a promoted case of a parameterized agent failing
on a missing value, or running on a default the run never used.

### <a id="Tracon_EvalCaseDraft_Query"></a> Query

The query text sent to the agent.

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

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

The reason for promotion. [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) for hand-added cases.

```csharp
public EvalCaseSource? SourceKind { get; init; }
```

#### Property Value

 [EvalCaseSource](/api/tracon.evalcasesource/)?

### <a id="Tracon_EvalCaseDraft_SourceRunId"></a> SourceRunId

The run the case was generated from. [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) for hand-added cases.

```csharp
public Guid? SourceRunId { get; init; }
```

#### Property Value

 [Guid](https://learn.microsoft.com/dotnet/api/system.guid)?

## Methods

### <a id="Tracon_EvalCaseDraft_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_EvalCaseDraft_Equals_Tracon_EvalCaseDraft_"></a> Equals\(EvalCaseDraft?\)

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

`other` [EvalCaseDraft](/api/tracon.evalcasedraft/)?

#### Returns

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

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

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

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

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

### <a id="Tracon_EvalCaseDraft_op_Equality_Tracon_EvalCaseDraft_Tracon_EvalCaseDraft_"></a> operator ==\(EvalCaseDraft?, EvalCaseDraft?\)

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

`left` [EvalCaseDraft](/api/tracon.evalcasedraft/)?

`right` [EvalCaseDraft](/api/tracon.evalcasedraft/)?

#### Returns

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

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

`left` [EvalCaseDraft](/api/tracon.evalcasedraft/)?

`right` [EvalCaseDraft](/api/tracon.evalcasedraft/)?

#### Returns

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