Skip to content
Tracon

RunInputRecord

Namespace Tracon · Assembly Tracon.Abstractions.dll

A run’s stored input.

public sealed record RunInputRecord : IEquatable<RunInputRecord>
Inheritance
object ← RunInputRecord
Implements
IEquatable<RunInputRecord>
Inherited Members
object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
public RunInputRecord()

The record’s creation time (UTC).

public required DateTimeOffset CreatedAt { get; init; }

DateTimeOffset

The input messages.

public required IReadOnlyList<ChatMessage> Messages { get; init; }

IReadOnlyList<ChatMessage>

Carries polymorphic content (TextContent, UriContent, FunctionResultContent …). Stored in the json column, not jsonb: jsonb reorders object keys, and System.Text.Json’s $type discriminator must be the object’s first property.

The run’s final parameter values: the values the caller supplied with the schema defaults applied. null means nothing was recorded (a run from before this field existed, or one started while input recording was off); an empty map means the run was recorded and carried no values.

public IReadOnlyDictionary<string, string>? Parameters { get; init; }

IReadOnlyDictionary<string, string>?

The two states must stay apart. A replay, a workflow resume and an approval resume read this to run with the SAME instructions as the source run; a missing record read as “no values” would let a parameterized definition run on its defaults and change what the model is told.

The values are user content. They are stored in their own column, protected by ProtectedColumn.RunInputParameters.

The run identifier.

public required Guid RunId { get; init; }

Guid

The tenant the run belongs to.

public required string TenantId { get; init; }

string

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(RunInputRecord? other)

other RunInputRecord?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(RunInputRecord?, RunInputRecord?)

Section titled “ operator ==(RunInputRecord?, RunInputRecord?)”
public static bool operator ==(RunInputRecord? left, RunInputRecord? right)

left RunInputRecord?

right RunInputRecord?

bool

operator !=(RunInputRecord?, RunInputRecord?)

Section titled “ operator !=(RunInputRecord?, RunInputRecord?)”
public static bool operator !=(RunInputRecord? left, RunInputRecord? right)

left RunInputRecord?

right RunInputRecord?

bool