Experimental A2A extension
Exact Action Authorization v1
Continue an A2A task after human authorization without turning TASK_STATE_AUTH_REQUIRED into a blank check.
The gap
A2A intentionally leaves authorization scope, representation, validity, and revocation to implementations or extensions. This profile binds a decision to the exact action class, principal, requesting agent, tenant, target, canonical input hash, constraints, expiry, and nonce.
proposed effect → AUTH_REQUIRED → exact action hash
→ single-use grant → atomic consume → execute once
→ receipt artifact → outcome evidence
Required rules
- A task-state transition alone never authorizes an effect.
- Changed target or input requires a new decision.
- Expired, revoked, consumed, or identity-mismatched grants fail closed.
- Pure validation is not authority; the executor atomically checks durable revocation and consumes the grant in a shared store before provider invocation.
- Only provider-confirmed completion produces a completed receipt.
Schemas and implementation
ActionBindingImmutable reviewed effect
ApprovalGrantExpiring, revocable, single-use authority
Full specificationFlow, security, failures, and conformance
npm install @trust-graduation/core@beta
npm run example:a2a
This draft is not yet an official A2A extension. The next gate is two independent implementations passing mutation, expiry, revocation, identity, unchanged-grant replay, and simultaneous-consumer fixtures before an upstream proposal.