Roles and consequence tiers

Intertrace reads how much each call can cost you, and an agent's role decides which tiers run, ask or block.

Consequence tiers

Every decision carries a consequence tier that Intertrace assigns itself:

  • read: looks without changing anything.
  • reversible: changes that can be undone, such as writes and code runs.
  • irreversible: deletes and changes that cannot be undone.
  • external: anything that leaves the company, such as messages and outbound calls.
  • privileged: payments and admin changes.

The tier comes from the tool name and its arguments. A client's own labels can only raise it, never lower it.

Roles

A role (Coding, Support, Finance, Research, Data, Operations or Custom) sets each tier to runs, asks in production, asks or blocked. Roles are applied after tool lists and approval rules and before pre-approvals, and they only add asks and blocks. A role is a full template: it can bring a policy pack (only when the agent has none) plus data, attack and rate defaults, still tighten-only against the organization.

GET  /api/agents/:id/role
PUT  /api/agents/:id/role
POST /api/agents/:id/role/preview   # replay recent calls under the new role

In agent policy as code the role is spec.role.

Environment tiers

The environment is the runtime key's environment, raised to production when a call points at production. Outside production, code runs and deletes do not wait for a person. Outbound messages, payments and admin changes always ask. No header, purpose or user agent relaxes enforcement.

Known destinations and quorum

A role may list known destinations: external calls that go only to those destinations do not ask. A role may also require two approvers for privileged actions. Quorum only ever raises the number of approvers an approval needs, never lowers it.