CyberdyneDevelopment.Mc3Po.Protocols
0.1.0-preview.6
dotnet add package CyberdyneDevelopment.Mc3Po.Protocols --version 0.1.0-preview.6
NuGet\Install-Package CyberdyneDevelopment.Mc3Po.Protocols -Version 0.1.0-preview.6
<PackageReference Include="CyberdyneDevelopment.Mc3Po.Protocols" Version="0.1.0-preview.6"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="CyberdyneDevelopment.Mc3Po.Protocols" Version="0.1.0-preview.6" />
<PackageReference Include="CyberdyneDevelopment.Mc3Po.Protocols"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add CyberdyneDevelopment.Mc3Po.Protocols --version 0.1.0-preview.6
#r "nuget: CyberdyneDevelopment.Mc3Po.Protocols, 0.1.0-preview.6"
#:package CyberdyneDevelopment.Mc3Po.Protocols@0.1.0-preview.6
#addin nuget:?package=CyberdyneDevelopment.Mc3Po.Protocols&version=0.1.0-preview.6&prerelease
#tool nuget:?package=CyberdyneDevelopment.Mc3Po.Protocols&version=0.1.0-preview.6&prerelease
Mc3Po.Protocols
Core protocol infrastructure including the ProtocolTypes TypeCollection, provider, and factory interfaces.
Key Components
ProtocolTypes
Source-generated TypeCollection for protocol type discovery:
// O(1) lookup by name
var planeType = ProtocolTypes.ByName("Plane");
// Check capabilities
if (planeType.SupportsProjectManagement)
{
// ...
}
// Iterate all protocols
foreach (var protocolType in ProtocolTypes.All())
{
Console.WriteLine($"{protocolType.DisplayName}: PM={protocolType.SupportsProjectManagement}, SC={protocolType.SupportsSourceControl}");
}
ProtocolTypeBase
Base class for protocol type descriptors:
public abstract class ProtocolTypeBase : TypeOptionBase<Guid, ProtocolTypeBase>, IProtocolType
{
protected ProtocolTypeBase(
Guid id,
string name,
string sectionName,
string displayName,
string description,
bool supportsProjectManagement,
bool supportsSourceControl);
public abstract IServiceCollection RegisterRequiredServices(IServiceCollection services);
public abstract void RegisterFactory(DefaultProtocolProvider provider, IServiceProvider services);
}
IProtocolFactory
Factory interface for creating protocol instances:
public interface IProtocolFactory<TProtocol, TConfiguration>
where TProtocol : IProtocol
where TConfiguration : IProtocolConfiguration
{
Task<IGenericResult<TProtocol>> CreateAsync(
TConfiguration configuration,
IProtocolCreationContext context,
CancellationToken cancellationToken = default);
}
IProtocolProvider
Provider for accessing configured protocols:
public interface IProtocolProvider
{
IGenericResult<IProjectManagementProtocol> GetProjectManagement(string? name = null);
IGenericResult<ISourceControlProtocol> GetSourceControl(string? name = null);
}
Three-Phase Registration
Phase 1: ConfigureServices
// Register all protocol services
builder.Services.AddProtocols();
// Or: ProtocolTypes.RegisterAll(builder.Services);
Phase 2: InitializeFactories
var app = builder.Build();
// Resolve factories and register with provider
ProtocolTypes.InitializeFactories(app.Services);
Phase 3: Runtime
// Get the configured protocol
var pmResult = protocolProvider.GetProjectManagement();
if (pmResult.IsSuccess)
{
var pm = pmResult.Value;
await pm.CreateIssueAsync(request, ct);
}
Extension Methods
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddProtocols(this IServiceCollection services)
{
return ProtocolTypes.RegisterAll(services);
}
}
Dependencies
Mc3Po.Protocols.AbstractionsFractalDataWorks.CollectionsMicrosoft.Extensions.DependencyInjectionMicrosoft.Extensions.Configuration
Protocol Implementations
This package is referenced by protocol implementations:
Mc3Po.Protocols.PlaneMc3Po.Protocols.GitLabMc3Po.Protocols.GitHubMc3Po.Protocols.AzureDevOps
See Adding New Protocols for implementation guide.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CyberdyneDevelopment.Mc3Po.Protocols.Abstractions (>= 0.1.0-preview.6)
- FractalDataWorks.Collections (>= 0.1.0-preview.1)
- FractalDataWorks.Collections.SourceGenerators (>= 0.1.0-preview.1)
- FractalDataWorks.MessageLogging.Abstractions (>= 0.1.0-preview.1)
- FractalDataWorks.MessageLogging.SourceGenerators (>= 0.1.0-preview.1)
- FractalDataWorks.Services.SecretManagers (>= 0.1.0-preview.1)
- FractalDataWorks.ServiceTypes (>= 0.1.0-preview.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.1)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on CyberdyneDevelopment.Mc3Po.Protocols:
| Package | Downloads |
|---|---|
|
CyberdyneDevelopment.Mc3Po.Protocols.Plane
Plane protocol implementation for mc3-po - project management integration with Plane |
|
|
CyberdyneDevelopment.Mc3Po.Protocols.GitHub
Development tools and utilities for the FractalDataWorks ecosystem. Build: |
|
|
CyberdyneDevelopment.Mc3Po.Protocols.GitLab
GitLab protocol implementation for mc3-po - source control and project management integration |
|
|
CyberdyneDevelopment.Mc3Po.Protocols.AzureDevOps
Development tools and utilities for the FractalDataWorks ecosystem. Build: |
|
|
CyberdyneDevelopment.DeveloperTools.SourceControl
Source control tool wrappers for FractalDataWorks. Provides thin command wrappers that delegate to external MCP servers (GitLab). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.6 | 56 | 1/9/2026 |
| 0.1.0-preview.4 | 71 | 1/7/2026 |