-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSessionExecutionContracts.cs
More file actions
135 lines (97 loc) · 2.83 KB
/
SessionExecutionContracts.cs
File metadata and controls
135 lines (97 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
namespace DotPilot.Core.Features.ControlPlaneDomain;
[GenerateSerializer]
public sealed record SessionDescriptor
{
[Id(0)]
public SessionId Id { get; init; }
[Id(1)]
public WorkspaceId WorkspaceId { get; init; }
[Id(2)]
public string Title { get; init; } = string.Empty;
[Id(3)]
public SessionPhase Phase { get; init; } = SessionPhase.Plan;
[Id(4)]
public ApprovalState ApprovalState { get; init; } = ApprovalState.NotRequired;
[Id(5)]
public FleetId? FleetId { get; init; }
[Id(6)]
public AgentProfileId[] AgentProfileIds { get; init; } = [];
[Id(7)]
public DateTimeOffset CreatedAt { get; init; }
[Id(8)]
public DateTimeOffset UpdatedAt { get; init; }
}
[GenerateSerializer]
public sealed record SessionApprovalRecord
{
[Id(0)]
public ApprovalId Id { get; init; }
[Id(1)]
public SessionId SessionId { get; init; }
[Id(2)]
public ApprovalScope Scope { get; init; }
[Id(3)]
public ApprovalState State { get; init; } = ApprovalState.Pending;
[Id(4)]
public string RequestedAction { get; init; } = string.Empty;
[Id(5)]
public string RequestedBy { get; init; } = string.Empty;
[Id(6)]
public DateTimeOffset RequestedAt { get; init; }
[Id(7)]
public DateTimeOffset? ResolvedAt { get; init; }
}
[GenerateSerializer]
public sealed record ArtifactDescriptor
{
[Id(0)]
public ArtifactId Id { get; init; }
[Id(1)]
public SessionId SessionId { get; init; }
[Id(2)]
public AgentProfileId? AgentProfileId { get; init; }
[Id(3)]
public string Name { get; init; } = string.Empty;
[Id(4)]
public ArtifactKind Kind { get; init; }
[Id(5)]
public string RelativePath { get; init; } = string.Empty;
[Id(6)]
public DateTimeOffset CreatedAt { get; init; }
}
[GenerateSerializer]
public sealed record TelemetryRecord
{
[Id(0)]
public TelemetryRecordId Id { get; init; }
[Id(1)]
public SessionId SessionId { get; init; }
[Id(2)]
public TelemetrySignalKind Kind { get; init; }
[Id(3)]
public string Name { get; init; } = string.Empty;
[Id(4)]
public string Summary { get; init; } = string.Empty;
[Id(5)]
public DateTimeOffset RecordedAt { get; init; }
}
[GenerateSerializer]
public sealed record EvaluationRecord
{
[Id(0)]
public EvaluationId Id { get; init; }
[Id(1)]
public SessionId SessionId { get; init; }
[Id(2)]
public ArtifactId? ArtifactId { get; init; }
[Id(3)]
public EvaluationMetricKind Metric { get; init; }
[Id(4)]
public decimal Score { get; init; }
[Id(5)]
public EvaluationOutcome Outcome { get; init; } = EvaluationOutcome.NeedsReview;
[Id(6)]
public string Summary { get; init; } = string.Empty;
[Id(7)]
public DateTimeOffset EvaluatedAt { get; init; }
}