Class FileAgentDefinitionRegistry
File-backed IVersionedAgentDefinitionRegistry that stores
AgentDefinition instances as *.agent.yaml files inside
environment-scoped sub-directories of a root path.
public sealed class FileAgentDefinitionRegistry : IVersionedAgentDefinitionRegistry, IAgentDefinitionRegistry
- Inheritance
-
FileAgentDefinitionRegistry
- Implements
- Inherited Members
Remarks
Directory layout:
{root}/dev/ → development agent definitions
{root}/staging/ → staging agent definitions
{root}/prod/ → production agent definitions
Files are named {name}@{version}.agent.yaml.
A companion {name}@{version}.sha256 file stores the checksum.
Constructors
FileAgentDefinitionRegistry(string)
public FileAgentDefinitionRegistry(string rootPath)
Parameters
rootPathstring
Methods
GetAll()
Returns all registered agent definitions.
public IReadOnlyList<AgentDefinition> GetAll()
Returns
GetByName(string)
Returns the definition with the given name,
or null if no matching definition is registered.
public AgentDefinition? GetByName(string name)
Parameters
namestring
Returns
GetByTag(string)
Returns all definitions that carry the specified tag.
public IReadOnlyList<AgentDefinition> GetByTag(string tag)
Parameters
tagstring
Returns
ListAsync(string, CancellationToken)
Lists all definitions in the given environment, optionally filtered by name.
public Task<IReadOnlyList<AgentDefinition>> ListAsync(string environment = "dev", CancellationToken cancellationToken = default)
Parameters
environmentstringcancellationTokenCancellationToken
Returns
PromoteAsync(string, string, string, string, CancellationToken)
Copies a definition from fromEnvironment to
toEnvironment. The definition must be registered in the
source environment.
public Task PromoteAsync(string name, string version, string fromEnvironment, string toEnvironment, CancellationToken cancellationToken = default)
Parameters
namestringversionstringfromEnvironmentstringtoEnvironmentstringcancellationTokenCancellationToken
Returns
Register(AgentDefinition)
Registers a definition. If a definition with the same
definition.Name.Name already exists it is replaced.
public void Register(AgentDefinition definition)
Parameters
definitionAgentDefinition
RegisterAsync(AgentDefinition, string, CancellationToken)
Persists the definition in the given environment scope. If a definition with the same name+version already exists it is overwritten.
public Task RegisterAsync(AgentDefinition definition, string environment = "dev", CancellationToken cancellationToken = default)
Parameters
definitionAgentDefinitionenvironmentstringcancellationTokenCancellationToken
Returns
ResolveAsync(string, string?, string, CancellationToken)
Resolves a definition by name and optional version within the given environment.
If version is null or "latest", the highest semver
definition is returned. Returns null if not found.
public Task<AgentDefinition?> ResolveAsync(string name, string? version = null, string environment = "dev", CancellationToken cancellationToken = default)
Parameters
namestringversionstringenvironmentstringcancellationTokenCancellationToken
Returns
UnregisterAsync(string, string, string, CancellationToken)
Removes the named version from the given environment.
public Task UnregisterAsync(string name, string version, string environment = "dev", CancellationToken cancellationToken = default)
Parameters
namestringversionstringenvironmentstringcancellationTokenCancellationToken