Synentra.Client.Net
1.1.2
dotnet add package Synentra.Client.Net --version 1.1.2
NuGet\Install-Package Synentra.Client.Net -Version 1.1.2
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="Synentra.Client.Net" Version="1.1.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Synentra.Client.Net" Version="1.1.2" />
<PackageReference Include="Synentra.Client.Net" />
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 Synentra.Client.Net --version 1.1.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Synentra.Client.Net, 1.1.2"
#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 Synentra.Client.Net@1.1.2
#: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=Synentra.Client.Net&version=1.1.2
#tool nuget:?package=Synentra.Client.Net&version=1.1.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Synentra SDK for .NET
Official .NET client library for Synentra — the Intent-Aware Governance Gateway for Autonomous AI Agents.
Synentra sits between your AI agents and the outside world, enforcing governance policies, intercepting high-risk actions, and routing requests through Human-in-the-Loop (HITL) review when needed.
Installation
dotnet add package Synentra.Client.Net
Quick Start
// Register with the DI container (ASP.NET Core / Generic Host)
builder.Services.AddSynentraClient(options =>
{
options.BaseUrl = "http://localhost:7080";
options.BearerToken = "your-jwt-token"; // optional — see Token Authentication
});
// Inject and use
public class MyService(ISynentraClient synentra)
{
public async Task RunAsync(CancellationToken ct)
{
var agents = await synentra.Agents.ListAsync(page: 1, pageSize: 10, ct);
var policies = await synentra.Policies.ListAsync(cancellationToken: ct);
var pending = await synentra.Hitl.GetAllPendingAsync(cancellationToken: ct);
}
}
Features
- Agent Management — Register, list, assign policies to, and delete AI agents
- JWT Authentication — Exchange agent credentials for a scoped Bearer token with a single call
- Policy Inspection — List and inspect the governance policies configured in your gateway
- HITL Review Workflows — Retrieve pending review requests and approve or deny them programmatically
- First-class DI support —
AddSynentraClient(...)wires up all typed HTTP clients in one line - Automatic Bearer token injection — Set
BearerTokenonce; every outgoing request carries the header - Structured exceptions —
SynentraApiExceptionandSynentraAuthenticationExceptionexpose the HTTP status code and the server error payload - Full cancellation support — Every async method accepts a
CancellationToken - Pagination — All list operations accept
pageandpageSizeparameters
Configuration
| Property | Type | Default | Description |
|---|---|---|---|
BaseUrl |
string |
(required) | Base URL of the Synentra gateway |
BearerToken |
string? |
null |
Static JWT injected as Authorization: Bearer <token> |
Timeout |
TimeSpan |
00:00:30 |
Per-request HTTP timeout |
ThrowOnError |
bool |
true |
Throw SynentraApiException on non-2xx responses |
API Reference
ISynentraClient
├── .Agents → ISynentraAgentClient
├── .Policies → ISynentraPolicyClient
├── .Hitl → ISynentraHitlClient
└── .Tokens → ISynentraTokenClient
Agent Management
var agents = await synentra.Agents.ListAsync(page: 1, pageSize: 25, ct);
var result = await synentra.Agents.RegisterAsync(new RegisterAgentRequest
{
Name = "my-research-agent",
OwnerId = "team-backend",
ClientSecret = "super-secret-value"
}, ct);
await synentra.Agents.AssignPolicyAsync(result.AgentId, new AssignPolicyRequest
{
PolicyName = "strict-outbound"
}, ct);
await synentra.Agents.DeleteAsync(result.AgentId, ct);
Token Authentication
GenerateTokenResult token = await synentra.Tokens.GenerateAsync(new GenerateTokenRequest
{
AgentId = agentId,
ClientSecret = "super-secret-value"
}, ct);
Policy Inspection
var policies = await synentra.Policies.ListAsync(page: 1, pageSize: 25, ct);
var details = await synentra.Policies.GetAsync("strict-outbound", ct);
HITL Workflows
var queue = await synentra.Hitl.GetAllPendingAsync(page: 1, pageSize: 25, ct);
// Approve
await synentra.Hitl.ApproveAsync(queue[0].Id, new ReviewDecisionRequest
{
Comment = "Verified safe by on-call engineer."
}, ct);
// Deny
await synentra.Hitl.DenyAsync(queue[0].Id, new ReviewDecisionRequest
{
Comment = "Blocked: unexpected data-exfiltration attempt."
}, ct);
Error Handling
try
{
var policy = await synentra.Policies.GetAsync("unknown-policy", ct);
}
catch (SynentraAuthenticationException ex)
{
// 401 or 403
}
catch (SynentraApiException ex) when (ex.StatusCode == 404)
{
// Not found
}
catch (SynentraApiException ex)
{
// All other non-2xx responses
}
Links
© Synentra. All rights reserved.
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Http (>= 10.0.5)
- Microsoft.Extensions.Options (>= 10.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.