# Core concepts

The few ideas everything else builds on.

## Proposal, not execution

An agent proposes. It holds no target credential and can't run the protected action. The runtime bridge runs an approved action, and it alone holds the credential.

## Decisions

| Decision            | Meaning                            | What your agent does                    |
| ------------------- | ---------------------------------- | --------------------------------------- |
| `AUTHORIZED`        | Allowed, but **not yet run**       | Read the result later                   |
| `AWAITING_APPROVAL` | A person must decide               | Read the result later                   |
| `BLOCKED`           | Refused, with an exact reason code | Report the reason; don't work around it |
| `EXPIRED`           | The window closed                  | Propose again if it's still wanted      |
| `ERROR`             | Delegrity couldn't decide          | Treat as not done                       |

Identity, mandate and principal are resolved by Delegrity, never taken from your request. You can't name a mandate or claim one.

## Four separate facts

Delegrity never merges these into one status, because being approved doesn't mean something happened.

- **Decision:** what was allowed.
- **Execution:** whether the call ran. `NOT_DISPATCHED`, `PENDING`, `COMPLETED`, `FAILED` or `UNKNOWN`.
- **Outcome:** what the business system actually shows. `PENDING`, `MATCHED`, `PARTIAL`, `MISMATCHED` or `UNKNOWN`.
- **Receipt:** the signed evidence, and how complete it is.

## Exact action

Each request becomes one fingerprinted action. A material change makes a different action, which an earlier approval doesn't cover.

## Revocation

Taking away a mandate stops an action even when the agent's login and token still work. Authority is rechecked just before anything runs.
