-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRuntimeFoundationCatalog.cs
More file actions
86 lines (81 loc) · 4.03 KB
/
RuntimeFoundationCatalog.cs
File metadata and controls
86 lines (81 loc) · 4.03 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
using DotPilot.Core.Features.ControlPlaneDomain;
using DotPilot.Core.Features.RuntimeFoundation;
using DotPilot.Runtime.Features.ToolchainCenter;
namespace DotPilot.Runtime.Features.RuntimeFoundation;
public sealed class RuntimeFoundationCatalog : IRuntimeFoundationCatalog
{
private const string EpicSummary =
"Issue #12 builds on the #11 foundation contracts and stages host and orchestration work behind isolated runtime slices so the Uno app stays presentation-only.";
private const string DeterministicProbePrompt =
"Summarize the runtime foundation readiness for a local-first session that may require approval.";
private const string DeterministicClientStatusSummary = "Always available for in-repo and CI validation.";
private const string DomainModelName = "Domain contracts";
private const string DomainModelSummary =
"Typed identifiers and durable agent, session, fleet, provider, and runtime contracts live outside the Uno app.";
private const string CommunicationName = "Communication contracts";
private const string CommunicationSummary =
"Public result and problem boundaries are isolated so later provider and orchestration slices share one contract language.";
private const string HostName = "Embedded host";
private const string HostSummary =
"The Orleans host integration point is sequenced behind dedicated runtime contracts instead of being baked into page code.";
private const string OrchestrationName = "Orchestration runtime";
private const string OrchestrationSummary =
"Agent Framework integration is prepared as a separate slice that can plug into the embedded host without reshaping the UI layer.";
public RuntimeFoundationSnapshot GetSnapshot()
{
return new(
RuntimeFoundationIssues.FormatIssueLabel(RuntimeFoundationIssues.EmbeddedAgentRuntimeHostEpic),
EpicSummary,
ProviderToolchainNames.DeterministicClientDisplayName,
DeterministicProbePrompt,
CreateSlices(),
CreateProviders());
}
private static IReadOnlyList<RuntimeSliceDescriptor> CreateSlices()
{
return
[
new(
RuntimeFoundationIssues.DomainModel,
RuntimeFoundationIssues.FormatIssueLabel(RuntimeFoundationIssues.DomainModel),
DomainModelName,
DomainModelSummary,
RuntimeSliceState.ReadyForImplementation),
new(
RuntimeFoundationIssues.CommunicationContracts,
RuntimeFoundationIssues.FormatIssueLabel(RuntimeFoundationIssues.CommunicationContracts),
CommunicationName,
CommunicationSummary,
RuntimeSliceState.Sequenced),
new(
RuntimeFoundationIssues.EmbeddedOrleansHost,
RuntimeFoundationIssues.FormatIssueLabel(RuntimeFoundationIssues.EmbeddedOrleansHost),
HostName,
HostSummary,
RuntimeSliceState.Sequenced),
new(
RuntimeFoundationIssues.AgentFrameworkRuntime,
RuntimeFoundationIssues.FormatIssueLabel(RuntimeFoundationIssues.AgentFrameworkRuntime),
OrchestrationName,
OrchestrationSummary,
RuntimeSliceState.Sequenced),
];
}
private static IReadOnlyList<ProviderDescriptor> CreateProviders()
{
return
[
new ProviderDescriptor
{
Id = ProviderId.New(),
DisplayName = ProviderToolchainNames.DeterministicClientDisplayName,
CommandName = ProviderToolchainNames.DeterministicClientCommandName,
Status = ProviderConnectionStatus.Available,
StatusSummary = DeterministicClientStatusSummary,
RequiresExternalToolchain = false,
},
.. ToolchainProviderSnapshotFactory.Create(TimeProvider.System.GetUtcNow())
.Select(snapshot => snapshot.Provider),
];
}
}