{
  "name": "Hekate Lite",
  "version": "0.1.0",
  "service": "agentsec",
  "brand": "Hekate",
  "product": "Hekate Lite",
  "legacy_name": "AgentSec Lite",
  "description": "Security preflight for AI agents before they call, trust or pay an API, MCP tool or on-chain workflow.",
  "canonical_discovery": "https://hekategate.com/.well-known/hekate.json",
  "mode": "testnet-first",
  "mainnet_certification": "not_certified",
  "openapi": "https://hekategate.com/openapi.json",
  "agents_guide": "https://hekategate.com/AGENTS.md",
  "llms_index": "https://hekategate.com/llms.txt",
  "trust_bundle": "https://hekategate.com/v1/agentsec/trust",
  "jwks": "https://hekategate.com/.well-known/agentsec-jwks.json",
  "endpoints": [
    { "name": "health", "method": "GET", "path": "/v1/health" },
    { "name": "mcp_preflight", "method": "POST", "path": "/v1/mcp/preflight" },
    { "name": "x402_preflight", "method": "POST", "path": "/v1/x402/preflight" },
    { "name": "permission_diff", "method": "POST", "path": "/v1/permissions/diff" },
    { "name": "tool_chain_risk", "method": "POST", "path": "/v1/tool-chain/risk" },
    { "name": "repo_scan", "method": "POST", "path": "/v1/repo/scan" },
    { "name": "repo_osv_enrich", "method": "POST", "path": "/v1/repo/osv/enrich" },
    { "name": "repo_osv_refresh_jobs", "method": "POST", "path": "/v1/repo/osv/refresh-jobs" },
    { "name": "repo_osv_refresh_jobs", "method": "GET", "path": "/v1/repo/osv/refresh-jobs" },
    { "name": "repo_osv_run_due", "method": "POST", "path": "/v1/repo/osv/refresh-jobs/run-due" },
    { "name": "receipt_verify", "method": "POST", "path": "/v1/receipts/verify" },
    { "name": "receipt_signing_status", "method": "GET", "path": "/v1/receipts/signing-status" },
    { "name": "trust_bundle", "method": "GET", "path": "/v1/agentsec/trust" },
    { "name": "jwks", "method": "GET", "path": "/.well-known/agentsec-jwks.json" },
    { "name": "sage_preflight", "method": "POST", "path": "/v1/ergo/sage/preflight" },
    { "name": "ergo_note_check", "method": "POST", "path": "/v1/ergo/note/check" },
    { "name": "sage_receipt_verify", "method": "POST", "path": "/v1/ergo/sage/receipts/verify" },
    { "name": "agentsec_receipts", "method": "GET", "path": "/v1/agentsec/receipts" },
    { "name": "agentsec_evidence_bundle", "method": "GET", "path": "/v1/agentsec/receipts/:id/evidence-bundle" },
    { "name": "agentsec_audit", "method": "GET", "path": "/v1/agentsec/audit" },
    { "name": "agentsec_payments", "method": "GET", "path": "/v1/agentsec/payments" },
    { "name": "agentsec_retention", "method": "GET", "path": "/v1/agentsec/retention" },
    { "name": "agentsec_retention_purge", "method": "POST", "path": "/v1/agentsec/retention/purge" }
  ],
  "decisions": ["allow", "warn", "block"],
  "sbom": {
    "schema_version": "agentsec.sbom.v1",
    "ecosystems": ["npm", "PyPI"],
    "package_manifests": ["package.json", "requirements*.txt", "pyproject.toml"],
    "lockfiles": ["package-lock.json", "pnpm-lock.yaml", "yarn.lock", "poetry.lock", "uv.lock", "Pipfile.lock"],
    "vulnerability_enrichment": "/v1/repo/osv/enrich",
    "custom_osv_url_allowed_env": "MC_AGENTSEC_OSV_ALLOWED_URLS"
  },
  "remote_mcp_fetch": {
    "default": "disabled",
    "enable_env": "MC_AGENTSEC_MCP_FETCH_ENABLED=1",
    "allowlist_env": "MC_AGENTSEC_MCP_FETCH_ALLOWED_URLS",
    "timeout_env": "MC_AGENTSEC_MCP_FETCH_TIMEOUT_MS",
    "max_bytes_env": "MC_AGENTSEC_MCP_FETCH_MAX_BYTES",
    "controls": ["https_only", "explicit_allowlist", "no_url_credentials", "private_dns_ip_block", "manual_redirect", "timeout", "json_content_type", "size_cap", "manifest_hash"]
  },
  "evidence_retention": {
    "bundle_schema": "agentsec.evidence_bundle.v1",
    "bundle_endpoint": "/v1/agentsec/receipts/:id/evidence-bundle",
    "retention_days_env": "MC_AGENTSEC_EVIDENCE_RETENTION_DAYS",
    "purge_endpoint": "/v1/agentsec/retention/purge",
    "behavior": "purges stored evidence payloads while keeping signed receipts and hash-chain audit events"
  },
  "payment": {
    "mode": "optional_feature_flag",
    "enable_env": "MC_AGENTSEC_LITE_PAYWALL=1",
    "challenge_status": 402,
    "proof_headers": ["X-PAYMENT", "X-AgentSec-Payment-Receipt"],
    "verifier_modes": ["demo", "hmac", "facilitator"],
    "hmac_signature_scheme": "hmac-sha256.v1",
    "hmac_receipt_ttl_env": "MC_AGENTSEC_LITE_HMAC_RECEIPT_TTL_SECONDS",
    "facilitator_url_env": "MC_AGENTSEC_LITE_FACILITATOR_URL",
    "facilitator_timeout_env": "MC_AGENTSEC_LITE_FACILITATOR_TIMEOUT_MS",
    "facilitator_hmac_secret_env": "MC_AGENTSEC_LITE_FACILITATOR_HMAC_SECRET",
    "facilitator_require_settlement_proof_env": "MC_AGENTSEC_LITE_FACILITATOR_REQUIRE_SETTLEMENT_PROOF",
    "facilitator_signature_header": "X-AgentSec-Facilitator-Signature",
    "facilitator_settlement_proof_schemas": [
      "x402.facilitator.v1",
      "ergo.note.v1",
      "agentsec.payment.verification.v1"
    ],
    "default_asset": "USDC",
    "default_network": "base"
  },
  "auth": {
    "static_token_format": "MC_API_TOKENS=org_id:token[:scope1|scope2]",
    "legacy_unscoped_tokens": "org_id:token is accepted as * for backwards compatibility",
    "oidc_scope_claims": ["MC_OIDC_SCOPE_CLAIM", "scope", "scp", "permissions", "roles"],
    "scopes": {
      "scan": "agentsec:scan",
      "receipt_verify": "agentsec:receipt:verify",
      "receipt_read": "agentsec:receipt:read",
      "audit_read": "agentsec:audit:read",
      "payments_read": "agentsec:payments:read",
      "retention_read": "agentsec:retention:read",
      "retention_write": "agentsec:retention:write",
      "jobs_read": "agentsec:jobs:read",
      "jobs_write": "agentsec:jobs:write",
      "provider_write": "provider:write",
      "kill_switch": "admin:kill_switch",
      "signer_read": "admin:signer:read",
      "api_keys": "admin:api_keys",
      "registry_status": "admin:registry_status"
    },
    "api_key_lifecycle": {
      "issue": "POST /v1/admin/api-keys",
      "list": "GET /v1/admin/api-keys",
      "rotate": "POST /v1/admin/api-keys/:id/rotate",
      "revoke": "POST /v1/admin/api-keys/:id/revoke",
      "grant_review": "GET /v1/admin/api-keys/grants/review",
      "record_grant_review": "POST /v1/admin/api-keys/:id/grant-review",
      "storage": "sha256 token hash with one-time raw token return"
    },
    "signer_status": {
      "endpoint": "GET /v1/admin/signer/status",
      "required_scope": "admin:signer:read",
      "behavior": "redacted signer and custody readiness snapshot without private keys or HMAC secrets"
    },
    "registry_status_review": {
      "endpoints": [
        "GET /v1/admin/registry/status-changes",
        "POST /v1/admin/registry/status-changes",
        "POST /v1/admin/registry/status-changes/:id/review"
      ],
      "required_scope": "admin:registry_status",
      "behavior": "pending registry claim changes are private; only approved changes are included in the signed public status history"
    }
  },
  "receipt_type": "agentsec.security_preflight.v1",
  "receipt_signature_scheme": "ed25519.signer.v1",
  "public_web_signature_boundary": "Public web endpoints return none.private_beta.v1 receipts unless HEKATE_RECEIPT_ED25519_PRIVATE_KEY_PEM or HEKATE_RECEIPT_HMAC_SECRET is configured.",
  "claims": {
    "provides": [
      "security preflight checks",
      "dangerous permission and tool-chain detection",
      "policy gates",
      "signed verification receipts"
    ],
    "does_not_provide": [
      "guaranteed agent safety",
      "mainnet production certification",
      "legal or compliance review replacement"
    ]
  }
}
