What is SINT Gate?
SINT Gate is the Security Wedge — a mandatory policy enforcement layer between AI agents and physical actuators. It is the single entry point through which every physical action must pass. No token, no action.intercept() is synchronous on the critical path. It returns one of three decisions:
| Decision | Meaning | HTTP Status |
|---|---|---|
approve | Action permitted within constraints | 200 |
deny | Action rejected — token invalid, constraint violated, or hijack detected | 403 |
escalate | Action queued for human approval (T2+ tiers) | 202 |
Capability Tokens
Capability tokens are Ed25519-signed JSON structures that define exactly what an agent is authorized to do. They are the only mechanism for granting physical action rights.Token Structure
Issuing Tokens
Delegation
A token holder can delegate a subset of their permissions to another agent. The child token cannot exceed the parent’s constraints on any dimension.Delegation is attenuation-only. The gateway enforces
Math.min(parent.constraint, child.constraint) on all numeric fields at delegation time and re-verifies at intercept time. Max delegation depth: 3 hops from root issuer.Five-Tier Safety System
Safety tiers define the operational envelope and oversight requirements for an agent. Tiers are monotonically increasing — a tier can be escalated during a session (e.g., human detected → force to T2) but never de-escalated.T1 — Sandbox
T1 — Sandbox
Simulation only. No physical I/O permitted.
- All actions execute against
@sint/engine-capsule-sandbox - Physical actuator calls are no-ops with simulated responses
- No approval queue, no evidence ledger entries (simulation events logged separately)
- Use for: development, integration testing, CI pipelines
T2 — Guarded
T2 — Guarded
Human-in-the-loop required. Hard velocity cap.
- Every action requires explicit human approval before execution
- Approval delivered via SSE stream or WebSocket (
GET /v1/approvals/stream) - Hard constraint:
velocity_mps < 0.5— gateway rejects tokens exceeding this at T2 - Timeout: if no human response within configurable window (default 30s), action is denied
- Use for: new agent onboarding, unfamiliar environments, proximity to humans
T3 — Supervised
T3 — Supervised
Alert-based oversight. Force cap enforced.
- Actions execute immediately, but every action generates a supervisor alert
- Hard constraint:
force_newtons < 50— gateway rejects tokens exceeding this at T3 - CSML anomaly score above 0.6 → automatic escalation to T2 (human approval required)
- Supervisor dashboard receives real-time feed via
GET /v1/risk/stream - Use for: validated agents in known environments with supervisor available
T4 — Autonomous
T4 — Autonomous
Full autonomy. Complete audit trail required.
- Actions execute without human approval
- Every action, with full context and CSML scores, logged to evidence ledger
- No hard constraint caps beyond token-specified limits
- Goal hijack detection runs on every payload
- Circuit breaker active — CSML score > 0.95 auto-trips
- Use for: validated agents with extensive operational history in controlled environments
T5 — Unsupervised
T5 — Unsupervised
Classified clearance required. Military/space applications.
- Highest autonomy level. Governance structure is operator-defined.
- Requires classified issuer credential in the trust registry
- Evidence ledger entries are encrypted at rest with operator-controlled keys
- Not available via standard token issuance API — requires out-of-band provisioning
- Use for: military robotics, deep space autonomous systems, classified industrial applications
Tier Escalation
Physical context can force tier escalation. The gateway evaluatesPhysicalActionContext on every intercept call:
| Trigger | Escalation |
|---|---|
human_detected: true AND tier < 2 | Force T2 |
human_distance_meters < 1.0 AND tier < 3 | Force T3 |
| CSML anomaly score > threshold | Force T2 |
Policy Evaluation Pipeline
Constraint System
ThePhysicalActionContext is the runtime representation of what the agent is actually requesting. It is compared against the token’s PhysicalConstraints:
Math.min() is applied at delegation creation time:
Evidence Ledger
The evidence ledger is an append-only SHA-256 hash chain — every record references the hash of the previous record, making tampering detectable.Proof Receipts
Callers can request a proof receipt for any ledger entry:Chain Verification
SIEM Export
Approval Queue
For T2 tokens (and T3 escalations), actions are held in an approval queue until a human operator acts.- SSE Stream
- WebSocket
- REST
API Reference
All endpoints require TLS in production. Base path:/v1.
Health — /health
Health — /health
| Method | Path | Description |
|---|---|---|
GET | /health | Liveness check. Returns 200 if process is alive. |
GET | /health/ready | Readiness check. Returns 200 if DB + Redis connected. |
GET | /health/live | Kubernetes-style liveness probe. |
Intercept — /v1/intercept
Intercept — /v1/intercept
| Method | Path | Description |
|---|---|---|
POST | /v1/intercept | Submit action for policy evaluation. Returns InterceptResult. |
Tokens — /v1/tokens
Tokens — /v1/tokens
| Method | Path | Description |
|---|---|---|
POST | /v1/tokens | Issue a new capability token. |
GET | /v1/tokens | List tokens (filterable by agentId, resource, tier). |
GET | /v1/tokens/:id | Fetch a specific token by ID. |
POST | /v1/tokens/delegate | Create a delegated (attenuated) child token. |
DELETE | /v1/tokens/:id | Revoke a token immediately. |
Ledger — /v1/ledger
Ledger — /v1/ledger
| Method | Path | Description |
|---|---|---|
GET | /v1/ledger | List ledger entries (paginated, filterable). |
GET | /v1/ledger/:id | Fetch a specific ledger entry. |
GET | /v1/ledger/proof/:id | Get Merkle proof receipt for an entry. |
POST | /v1/ledger/verify | Verify chain integrity from genesis or a given entry. |
GET | /v1/ledger/export | Export entries as NDJSON for SIEM ingestion. |
Approvals — /v1/approvals
Approvals — /v1/approvals
| Method | Path | Description |
|---|---|---|
GET | /v1/approvals | List approval requests (filter: pending/approved/denied). |
GET | /v1/approvals/:id | Fetch a specific approval request. |
POST | /v1/approvals/:id/approve | Approve a pending action. |
POST | /v1/approvals/:id/deny | Deny a pending action. |
GET | /v1/approvals/stream | SSE stream of real-time approval requests. |
Discovery — /v1/discovery
Discovery — /v1/discovery
| Method | Path | Description |
|---|---|---|
GET | /v1/discovery/agents | List registered agents. |
GET | /v1/discovery/agents/:id | Get agent details and public key. |
POST | /v1/discovery/agents/register | Register a new agent with public key. |
DELETE | /v1/discovery/agents/:id | Deregister an agent. |
Economy — /v1/economy
Economy — /v1/economy
| Method | Path | Description |
|---|---|---|
GET | /v1/economy/balance | Get agent’s resource credit balance. |
POST | /v1/economy/charge | Charge credits for a completed action. |
GET | /v1/economy/transactions | List transaction history. |
Agent-to-Agent — /v1/a2a
Agent-to-Agent — /v1/a2a
| Method | Path | Description |
|---|---|---|
POST | /v1/a2a/delegate | Create cross-agent delegation (A2A protocol). |
GET | /v1/a2a/trust-chain/:id | Resolve full trust chain for an agent. |
POST | /v1/a2a/revoke | Revoke an A2A delegation. |
Risk Stream — /v1/risk
Risk Stream — /v1/risk
| Method | Path | Description |
|---|---|---|
GET | /v1/risk/stream | WebSocket: real-time CSML scores, anomaly events, circuit breaker state. |
GET | /v1/risk/snapshot | Current risk snapshot: all active agents, scores, tier distribution. |
Dashboard — /v1/dashboard
Dashboard — /v1/dashboard
| Method | Path | Description |
|---|---|---|
GET | /v1/dashboard/stats | Aggregate stats: intercept counts, approval rates, anomaly rates. |
GET | /v1/dashboard/agents | Agent overview with current tier and last action. |
GET | /v1/dashboard/alerts | Active alerts from CSML and goal hijack detection. |
Circuit Breaker
The circuit breaker implements invariant I-G2: when tripped, the gateway denies all intercept requests regardless of token validity, tier, or approval status.Trip Conditions
| Trigger | Source | Action |
|---|---|---|
| CSML anomaly score > 0.95 | Automatic | Trip + alert all operators |
| Goal hijack detected (critical pattern) | Automatic | Trip + alert all operators |
| Manual e-stop | Operator via sintctl estop trip | Trip + log operator identity |
| Watchdog timeout | Automatic (no heartbeat in N seconds) | Trip + alert |