Checkpoint.Core
0.3.2
See the version list below for details.
dotnet add package Checkpoint.Core --version 0.3.2
NuGet\Install-Package Checkpoint.Core -Version 0.3.2
<PackageReference Include="Checkpoint.Core" Version="0.3.2" />
<PackageVersion Include="Checkpoint.Core" Version="0.3.2" />
<PackageReference Include="Checkpoint.Core" />
paket add Checkpoint.Core --version 0.3.2
#r "nuget: Checkpoint.Core, 0.3.2"
#:package Checkpoint.Core@0.3.2
#addin nuget:?package=Checkpoint.Core&version=0.3.2
#tool nuget:?package=Checkpoint.Core&version=0.3.2
Core AI agent detection engine for .NET. Detects AI agents (Claude, ChatGPT, Gemini, etc.) via user-agent patterns, header analysis, and behavioral signals. Platform-agnostic — use with any .NET HTTP server, including ASP.NET Core (via Checkpoint.AspNetCore) and classic .NET Framework 4.6.2+ (via Checkpoint.AspNet).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- BouncyCastle.Cryptography (>= 2.4.0)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options (>= 8.0.2)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net8.0
- BouncyCastle.Cryptography (>= 2.4.0)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options (>= 8.0.2)
- System.Text.Json (>= 8.0.5)
- Wasmtime (>= 22.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Checkpoint.Core:
| Package | Downloads |
|---|---|
|
Checkpoint.AspNetCore
ASP.NET Core middleware for AI agent detection and policy enforcement. Drop-in middleware that detects AI agents, enforces policies from the Checkpoint dashboard, and blocks/redirects automated traffic. The .NET equivalent of @kya-os/checkpoint-express. |
|
|
Checkpoint.AspNet
ASP.NET (System.Web) HTTP module for AI agent detection and policy enforcement. Drop-in IHttpModule that detects AI agents using the same Rust-compiled WASM engine as AgentShield's Next.js, Express, and .NET Core packages — classic ASP.NET / MVC 5 / Web API 2 / Web Forms consumers get identical detection behavior to modern .NET consumers. Register via Web.config; zero code changes required. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.0 | 63 | 4/22/2026 |
| 0.3.3 | 78 | 4/21/2026 |
| 0.3.2 | 105 | 4/21/2026 |
| 0.3.1 | 130 | 4/18/2026 |
| 0.3.0 | 121 | 4/18/2026 |
| 0.2.9 | 114 | 4/18/2026 |
| 0.2.8 | 113 | 4/17/2026 |
| 0.2.7 | 128 | 4/17/2026 |
| 0.2.6 | 118 | 4/17/2026 |
| 0.2.5 | 121 | 4/17/2026 |
| 0.2.4 | 132 | 4/17/2026 |
| 0.2.3 | 132 | 4/17/2026 |
| 0.2.2 | 130 | 4/15/2026 |
| 0.2.1 | 128 | 4/15/2026 |
| 0.2.0 | 127 | 4/15/2026 |
| 0.1.11 | 108 | 4/13/2026 |
| 0.1.10 | 150 | 4/10/2026 |
| 0.1.9 | 114 | 4/2/2026 |
| 0.1.8 | 114 | 3/31/2026 |
| 0.1.7 | 104 | 3/31/2026 |
0.3.2 — Send detectionClass with log-detection payload
Pre-0.3.2 middleware submitted detection events to
POST /api/v1/log-detection without a detectionClass field. The server
falls back to isAgent ? "ai_agent" : "human", which mis-stamped every
Googlebot, GPTBot, ClaudeBot, SemrushBot, etc. hit as an interactive
AI agent. One hardwareworld.com test window produced 325,056 such
mis-classified rows under source="middleware" in 72 hours.
The detector already produces the correct class in
DetectionResult.DetectionClass. The gap was purely transport — the
DetectionEvent DTO and log-detection payload both dropped the field.
This release closes the gap:
* DetectionEvent gains a nullable DetectionClass property
(Checkpoint.Core). Nullable preserves binary compat for any caller
that constructs the DTO manually.
* CheckpointApiClient.TryReportToLogDetectionAsync now emits
detectionClass in the JSON payload via a wire mapping:
Human -> "human", AiAgent -> "ai_agent", Bot -> "bot",
IncompleteData/Unknown -> "incomplete_data". Null omits the field so
the server's UA-pattern fallback still applies for older callers.
* Both middlewares pass result.DetectionClass through to the
DetectionEvent — CheckpointMiddleware (AspNetCore, net8.0) and
CheckpointModule (AspNet, net462) share the same wiring.
Covers all four packages — Checkpoint.Core, Checkpoint.AspNet,
Checkpoint.AspNetCore, and the KyaOs.Checkpoint umbrella.
9 new tests:
* Checkpoint.Core.Tests/Api/CheckpointApiClientPayloadTests (7) —
per-enum wire assertions + null-omitted + endpoint URL.
* Checkpoint.AspNetCore.Tests/Middleware (2) — bot and AI-agent
DetectionClass pass-through from detector to DetectionEvent.
Follow-up (out of this release): harden the server fallback at
apps/web/app/api/v1/log-detection/route.ts so older clients that still
omit the field are classified via UA pattern instead of defaulted to
ai_agent.
0.3.1 — Block/Instruct response no longer leaks bad McpServerUrl
Follow-up to 0.3.0. The redirect branches in 0.3.0 correctly refused to
302 to a relative or non-http(s) McpServerUrl, but the block-response
body (PlainText "MCP Server: /connect/x" line, JSON "mcp_server" field)
and Instruct response still propagated the bad URL to the agent. An LLM
fetcher would relay the broken instructions to the user verbatim.
Changes:
* WritePlainTextResponseAsync (AspNetCore): McpServerUrl is gated through
UrlHelpers.IsAbsoluteHttpUrl — relative / non-http values are dropped
from the body and the agent gets the "contact site owner" fallback.
* WriteJsonResponseAsync (AspNetCore) + WriteBlockedJsonResponse (AspNet):
the "mcp_server" / "mcpServer" field is omitted (along with the
"instructions" sentence) when McpServerUrl is not an absolute http(s)
URL.
* WriteJsonResponseAsync + WriteInstructResponseAsync (AspNetCore):
switched from WriteAsJsonAsync to JsonSerializer.Serialize +
response.WriteAsync. The streaming serializer requires the response
body PipeWriter to implement UnflushedBytes, which TestServer's pipe
writer doesn't — every JSON-mode test in the AspNetCore suite was
silently throwing into FailOpen and falling through to the route
handler. Buffering matches what the AspNet adapter already does, and
resolves the four pre-existing test failures inherited from earlier
releases.
7 new tests in CheckpointMiddlewareTests covering Json/PlainText
McpServerUrl omission across path-relative, schemeless, protocol-relative,
javascript:, and ftp:// inputs. AspNetCore suite now 20/20 green
(was 9/13).