opbox

The oversight.* family (6 verbs). Every verb enters through the one front door: it is capability-checked, permission-checked, scope-checked and audited before it runs (see Security & permissions). Each entry below lists its capability, risk class (which fixes the minimum autonomy level), the minimum caller permission, its availability tier, whether it is idempotent, and any outbound egress.

Escalateoversight.escalate

PropertyValue
Capabilityoversight.write
Risk classSensitive - autonomy L2
Min. permissionAdmin
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)
Legal basisCC-OPBOX 99

file a governance complaint + notify the matter workspace’s OWNER. Input: { matter_id, reason }. Output: { complaint_id, matter_id, workspace_id, status, notified }.

Call POST /v/oversight.escalate with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool oversight.escalate.

Revokeoversight.relationship.revoke

PropertyValue
Capabilityoversight.write
Risk classSensitive - autonomy L2
Min. permissionAdmin
AvailabilityOn demand (MCP tier 2)
IdempotentYes
EgressNone - in-box (pure Postgres, no outbound call)

Hard DELETE a relationship, fenced to overseer_org_id = ctx.workspace_id. Idempotent: a missing row returns deleted

. The route gates this OWNER-only. { relationshipId }.

Call POST /v/oversight.relationship.revoke with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool oversight.relationship.revoke.

Updateoversight.relationship.update

PropertyValue
Capabilityoversight.write
Risk classSensitive - autonomy L2
Min. permissionAdmin
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

Patch a relationship’s config and/or status (a cross-workspace visibility boundary). Fenced to overseer_org_id = ctx.workspace_id (FOR UPDATE). { relationshipId, config?, status? (ACTIVE|SUSPENDED|REVOKED) }.

Call POST /v/oversight.relationship.update with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool oversight.relationship.update.

Createoversight.request.create

PropertyValue
Capabilityoversight.write
Risk classWrite - autonomy L1
Min. permissionAdmin
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

The requesting workspace asks to oversee a target workspace. requesting_org_id = ctx.workspace_id, requested_by_id = acting user, status PENDING. Refuses self-target. Fail-closed Conflict if an ACTIVE relationship or a PENDING request already exists. The ON CONFLICT (requesting_org_id, target_org_id) upsert ABSORBS the route’s old delete-then-create (a stale non-PENDING row is reset to a fresh PENDING request). { targetWorkspaceId, message?, config?, expiresAt }.

Call POST /v/oversight.request.create with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool oversight.request.create.

Rejectoversight.request.reject

PropertyValue
Capabilityoversight.write
Risk classWrite - autonomy L1
Min. permissionAdmin
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

Only the TARGET workspace may reject a PENDING request. Fenced target_org_id = ctx.workspace_id; PENDING -> REJECTED (idempotent re-call returns changed

). reviewed_by_id = acting user, reviewed_at = now(). { requestId, note? }.

Call POST /v/oversight.request.reject with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool oversight.request.reject.

Withdrawoversight.request.withdraw

PropertyValue
Capabilityoversight.write
Risk classWrite - autonomy L1
Min. permissionAdmin
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

Only the REQUESTING workspace may withdraw a PENDING request. Fenced requesting_org_id = ctx.workspace_id; PENDING -> WITHDRAWN (idempotent). { requestId }.

Call POST /v/oversight.request.withdraw with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool oversight.request.withdraw.