Get effective (composed) protection with provenance
Returns the composed canonical protection card (platform → org → team → agent cascade applied) with _composition.field_provenance always populated. The provenance map carries per-key {layer, layer_id?, kind?} entries showing which authoring scope contributed each leaf. Caller-aware redaction: layer labels (platform / org / team / agent / derived) are always visible; layer_id is only revealed to callers who can read that scope. cards-as-primitive Phase 4 W2.2.
Authorizations
Supabase JWT token in Authorization: Bearer header
Path Parameters
Agent identifier (e.g. smolt-abc123)
Response
Composed effective card with per-key field_provenance.
Unified protection card (ADR-037). Safe House thresholds + trusted-source policy for a single agent. Shape matches src/composition/types.ts::UnifiedProtectionCard (canonical) and what the runtime validator at src/composition/validate.ts accepts. The customer-facing docs at /concepts/protection-card and /specifications/protection-card-schema document this same shape.
Strictest-wins composition: enforce > nudge > observe > off.
off, observe, nudge, enforce Score bands. Must satisfy warn <= quarantine <= block; each value in [0, 1].
Which request surfaces Safe House inspects. Composed across scopes by OR-per-field (any scope requiring inspection wins).
Sources for which detectors short-circuit (each match logged in the trace). Composed as platform->agent intersection (compliance ceiling) with org+agent union inside that ceiling — an agent cannot widen trust beyond what the platform allows.
Free-form extension slot for non-canonical fields. Ignored by the composer; preserved on read for tooling that needs an audit-tail metadata bag.
System-managed block describing which scope sources merged into the canonical card. Only returned when ?include_composition=true.