feat: complete task board workflow gates
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
namespace Nexus.Api.Services;
|
||||
|
||||
public static class AgentIdentityCatalog
|
||||
{
|
||||
public static readonly string[] DefaultConfiguredAgentIds =
|
||||
[
|
||||
"main",
|
||||
"iris",
|
||||
"product-owner",
|
||||
"programmer",
|
||||
"programmer-fast",
|
||||
"reviewer",
|
||||
"architekt",
|
||||
"researcher",
|
||||
"executor"
|
||||
];
|
||||
|
||||
private static readonly string[] WorkflowActorIds =
|
||||
[
|
||||
"bao",
|
||||
"nexus-system"
|
||||
];
|
||||
|
||||
public static IReadOnlySet<string> BuildAllowedActorIds(IEnumerable<string> configuredAgentIds)
|
||||
{
|
||||
var ids = new HashSet<string>(WorkflowActorIds, StringComparer.OrdinalIgnoreCase);
|
||||
foreach (var configuredAgentId in configuredAgentIds)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(configuredAgentId))
|
||||
ids.Add(configuredAgentId.Trim().ToLowerInvariant());
|
||||
}
|
||||
|
||||
return ids;
|
||||
}
|
||||
|
||||
public static string? NormalizeActorId(string? actorId, IReadOnlySet<string> allowedActorIds)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(actorId))
|
||||
return null;
|
||||
|
||||
var normalized = actorId.Trim().ToLowerInvariant();
|
||||
return allowedActorIds.Contains(normalized) ? normalized : null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user