NightTeam.Conductor 1.0.1

dotnet add package NightTeam.Conductor --version 1.0.1
                    
NuGet\Install-Package NightTeam.Conductor -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NightTeam.Conductor" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NightTeam.Conductor" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="NightTeam.Conductor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NightTeam.Conductor --version 1.0.1
                    
#r "nuget: NightTeam.Conductor, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NightTeam.Conductor@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NightTeam.Conductor&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=NightTeam.Conductor&version=1.0.1
                    
Install as a Cake Tool

ConductorSdk

.NET SDK for connecting agents to Conductor server. Provides TCP, UDP, SSH, Serial, ADB, and Firebase communication capabilities.

Prerequisites

  • .NET 8.0 or .NET 9.0 SDK
  • Windows, Linux, or macOS

Installing .NET on macOS

# Via Homebrew (recommended)
brew install --cask dotnet-sdk

# Or download from: https://dotnet.microsoft.com/download
# For Intel Mac: Download x64 version
# For Apple Silicon (M1/M2/M3): Download Arm64 version

Verify installation:

dotnet --version

If dotnet: command not found:

export PATH="$PATH:/usr/local/share/dotnet"
echo 'export PATH="$PATH:/usr/local/share/dotnet"' >> ~/.zshrc
source ~/.zshrc

Installation

From NuGet (when published)

dotnet add package ConductorSdk

From Local .nupkg File

# 1. Create local packages folder
mkdir -p ~/.nuget/local          # macOS/Linux
mkdir %USERPROFILE%\.nuget\local # Windows

# 2. Copy package to local folder
cp /path/to/ConductorSdk.1.0.1.nupkg ~/.nuget/local/

# 3. Add local NuGet source (one-time setup)
dotnet nuget add source ~/.nuget/local/ --name Local

# 4. Create new project
dotnet new console -n MyAgent -f net9.0
cd MyAgent

# 5. Install SDK (dependencies download from nuget.org)
dotnet add package ConductorSdk --version 1.0.1

# 6. Build and run
dotnet build && dotnet run
Method 2: Direct Package Reference
# 1. Create project
dotnet new console -n MyAgent -f net9.0
cd MyAgent

# 2. Copy package to project folder
cp /path/to/ConductorSdk.1.0.1.nupkg ./

# 3. Add current folder as NuGet source
dotnet nuget add source ./ --name LocalPkg

# 4. Install package
dotnet add package ConductorSdk --version 1.0.1

Quick Start

using ConductorSdk;

Console.WriteLine("Starting Conductor Agent...");

var config = new AgentConfig
{
    ServerUrl = "http://YOUR_SERVER_IP:5000/hub",  // Include /hub
    AgentId = "my-agent-001",
    Name = "My Agent",
    HeartbeatIntervalSeconds = 30,
    AutoReconnect = true
};

var agent = ConductorFactory.CreateAgent(config);

agent.OnConnectionStateChanged += (s, e) =>
    Console.WriteLine($"Connection: {e.State}");

agent.OnMessageReceived += (s, e) =>
    Console.WriteLine($"Message: {e.Message.Type}");

// Connect to server
await agent.ConnectAsync();

// Send a message
await agent.SendMessageAsync(new BaseMessage
{
    Type = "EVENT",
    Payload = new { data = "Hello from agent!" }
});

// Keep running
Console.WriteLine("Press Enter to disconnect...");
Console.ReadLine();

// Disconnect when done
await agent.DisconnectAsync();

Configuration Options

Property Type Default Description
ServerUrl string http://localhost:5000/hub Conductor server URL (must include /hub)
AgentId string required Unique identifier for this agent
Name string null Human-readable agent name
AuthToken string null Authentication token
HeartbeatIntervalSeconds int 30 Heartbeat interval in seconds
MaxReconnectAttempts int 5 Maximum reconnection attempts
ReconnectDelaySeconds int 5 Delay between reconnection attempts
AutoReconnect bool true Enable automatic reconnection

Features

TCP Client/Server

var tcpClient = agent.CreateTcpClient(new TcpClientConfig
{
    Host = "192.168.1.100",
    Port = 8080
});

await tcpClient.ConnectAsync();
await tcpClient.SendAsync("Hello TCP!");

tcpClient.OnDataReceived += (s, e) =>
    Console.WriteLine($"Received: {Encoding.UTF8.GetString(e.Data)}");

UDP Client

var udpClient = agent.CreateUdpClient(new UdpClientConfig
{
    Host = "192.168.1.100",
    Port = 9000
});

udpClient.Start();
await udpClient.SendAsync("Hello UDP!");

SSH

var sshClient = agent.CreateSshClient(new SshClientConfig
{
    Host = "192.168.1.100",
    Username = "user",
    Password = "pass"
});

await sshClient.ConnectAsync();
var result = await sshClient.ExecuteAsync("ls -la");

Serial Port

var serialClient = agent.CreateSerialClient(new SerialClientConfig
{
    PortName = "COM3",           // Windows
    // PortName = "/dev/ttyUSB0" // Linux
    // PortName = "/dev/tty.usbserial" // macOS
    BaudRate = 9600
});

serialClient.Open();
await serialClient.SendAsync("AT\r\n");

Cross-Platform Paths

using ConductorSdk;

// Get platform-specific paths
var configPath = ConductorPaths.Config;    // Config directory
var logsPath = ConductorPaths.Logs;        // Logs directory
var cachePath = ConductorPaths.Cache;      // Cache directory

// Check platform
if (ConductorPaths.IsWindows) { /* Windows-specific code */ }
if (ConductorPaths.IsLinux) { /* Linux-specific code */ }
if (ConductorPaths.IsMacOS) { /* macOS-specific code */ }

// Normalize paths for current platform
var path = ConductorPaths.NormalizePath("config/settings.json");

Path Locations

Platform AppData Config Logs
Windows %APPDATA%\Conductor %APPDATA%\Conductor\config %APPDATA%\Conductor\logs
Linux ~/.config/conductor ~/.config/conductor/config ~/.config/conductor/logs
macOS ~/Library/Application Support/Conductor .../config .../logs

Useful Commands

Command Description
dotnet --version Check .NET version
dotnet nuget list source List NuGet sources
dotnet list package List installed packages
dotnet restore Restore packages
dotnet build Build project
dotnet run Run project

Troubleshooting

"Package not found"

# Verify NuGet sources
dotnet nuget list source

# Re-add local source
dotnet nuget add source ~/.nuget/local/ --name Local

"Unable to find dependencies"

Ensure you have internet connection for nuget.org dependencies:

dotnet nuget enable source nuget.org

Connection fails

  1. Verify server is running
  2. Check ServerUrl includes /hub suffix
  3. Check firewall allows the port
  4. For remote access, ensure port forwarding is configured

Supported Platforms

  • .NET 8.0
  • .NET 9.0
  • Windows (x64, x86)
  • Linux (x64, Arm64)
  • macOS (x64 Intel, Arm64 Apple Silicon)

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 44 12/22/2025