SDK and Clients
FabrCore 2.0 · Release and package availability
These guides track the current 2.0 source. Stable 2.0.0 publication is pending; package commands show the release target. Until it is published, follow the source quick start or use a matching available prerelease set. Release migration · Runtime modes
SDK and Clients
FabrCore 2.0.0 separates the HTTP SDK from real-time transport. Use FabrCore.Sdk for Host REST operations and FabrCore.Client.WebSocket for the authenticated WebSocket v2 protocol. Keep user-interface state and identity integration in your application.
ClientGrain is now PrincipalGrain. Handles use principalHandle:agentHandle, and the principal is the partition for tracking, access control, durable delivery, and agent state.
Install
dotnet add package FabrCore.Sdk
dotnet add package FabrCore.Client.WebSocket
Typed Host API Client
IFabrCoreHostApiClient wraps the Host REST API for agent lifecycle, messaging, health, storage, discovery, diagnostics, Blueprints, verifiable execution, and administrative operations. Configure the Host base address and authenticated principal in one application service, then expose business-specific methods to your UI.
Remote model-configuration endpoints require the FabrCoreAdmin policy. Set FabrCore:AdminAuthentication:ApiKey for an SDK client that is authorized to manage models. Do not place that key in browser-delivered code.
Typed WebSocket Client
The v2 client obtains a short-lived connection ticket, negotiates fabrcore.v2, waits for the server hello, and exposes typed operations. Configure a stable clientId when the application needs ordered replay across reconnects.
await using var client = new FabrCoreWebSocketClient(
authenticatedHttpClient,
new FabrCoreWebSocketClientOptions
{
HostUri = new Uri("https://agents.example.com"),
ClientId = "research-console-42"
});
await client.ConnectAsync(cancellationToken);
await client.SendMessageAsync(
new AgentMessage
{
ToHandle = "research-agent",
Message = "Summarize the latest evidence."
},
cancellationToken);
For tickets, operations, acknowledgements, replay, and gap handling, see WebSocket v2.
Harness Skills Administration
The 2.0.0 SDK includes methods for listing, publishing, retrieving, and deleting exact-version Harness Skills for a principal. The administration routes are protected by FabrCoreAdmin; execution receives only the versions explicitly selected in the agent's _HarnessSkills argument.
See Harness Skills for package constraints and versioning rules.
Migration Notes
- Replace
IClientGrain/ClientGrainwithIPrincipalGrain/PrincipalGrain. - Remove the obsolete
FabrCore.Client,ClientContext,DirectMessageSender, and ChatDock dependencies. - Replace query-string WebSocket identity and raw
AgentMessagepayloads with WebSocket v2 tickets and typed operations.
Typed administration client
FabrCoreAdministrationClient in FabrCore.Sdk 2.0 wraps management APIs over an authenticated HttpClient or connect-channel handler. It includes paged principal/blueprint reads, conditional writes, operation receipts, diagnostic sessions, monitor queries and evidence export access. Use GetPrincipalPageAsync for registered plus runtime-discovered principals; GetPrincipalsAsync retains runtime-only behavior.
See the integration guide and bundled SDK example. The caller owns operator authentication, capability checks and retry decisions; a lost mutation response must not cause automatic replay with a new ID.