The reason I cannot include it in the library is due to native method.
[DllImport("user32.dll", EntryPoint = "SendMessageA", CallingConvention = CallingConvention.StdCall,
ExactSpelling = true)]
public static extern IntPtr SendMessage(IntPtr hWnd, int dwMsg, IntPtr wParam, ref COPYDATASTRUCT lParam);
Which is problematic in my view.
I would like to keep this library as open as possible and as pluggable as possible,
For this reason I keep ConnectionInfo class public that allows you to implement any additional connection info class like AgentConnectionInfo and use it.
Also AgentConnectionInfo can be implemented in your project without changing SshNet.
Hope it explains the reason behind this decision.